PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KPCEtLU5ld1BhZ2UtLT4KPEhUTUw+CjxIRUFEPgo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFdlZCBBcHIgMTQgMDg6MjY6MzUgRURUIDIwMDQgLS0+CjxUSVRMRT4KVmVsb2NpdHkgMS40IEFQSTogQ2xhc3MgIE1ldGhvZE1hcAo8L1RJVExFPgo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+CjwvSEVBRD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01ldGhvZE1hcC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDwvVFI+CjwvVEFCTEU+CjwvVEQ+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgo8L0VNPgo8L1REPgo8L1RSPgoKPFRSPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9JbnRyb3NwZWN0b3JCYXNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9VYmVyc3BlY3RJbXBsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJNZXRob2RNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTogJm5ic3A7PEEgSFJFRj0iI2lubmVyX2NsYXNzX3N1bW1hcnkiPklOTkVSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgo8SDI+CjxGT05UIFNJWkU9Ii0xIj4Kb3JnLmFwYWNoZS52ZWxvY2l0eS51dGlsLmludHJvc3BlY3Rpb248L0ZPTlQ+CjxCUj4KQ2xhc3MgIE1ldGhvZE1hcDwvSDI+CjxQUkU+CmphdmEubGFuZy5PYmplY3QKICB8CiAgKy0tPEI+b3JnLmFwYWNoZS52ZWxvY2l0eS51dGlsLmludHJvc3BlY3Rpb24uTWV0aG9kTWFwPC9CPgo8L1BSRT4KPEhSPgo8REw+CjxEVD5wdWJsaWMgY2xhc3MgPEI+TWV0aG9kTWFwPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgoKPFA+CjxETD4KPERUPjxCPlZlcnNpb246IDwvQj48REQ+JElkOiBNZXRob2RNYXAuamF2YSx2IDEuMTUuNC4xIDIwMDQvMDMvMDMgMjM6MjM6MDggZ2Vpcm0gRXhwICQ8L0REPgo8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPjxhIGhyZWY9Im1haWx0bzpqdmFuenlsQGFwYWNoZS5vcmciPkphc29uIHZhbiBaeWw8L2E+LCA8YSBocmVmPSJtYWlsdG86Ym9iQHdlcmtlbi5jb20iPkJvYiBNY1doaXJ0ZXI8L2E+LCA8YSBocmVmPSJtYWlsdG86Q2hyaXN0b3BoLlJlY2tAZGxyLmRlIj5DaHJpc3RvcGggUmVjazwvYT4sIDxhIGhyZWY9Im1haWx0bzpnZWlybUBvcHRvbmxpbmUubmV0Ij5HZWlyIE1hZ251c3NvbiBKci48L2E+LCA8YSBocmVmPSJtYWlsdG86c3plZ2VkaWFAZnJlZW1haWwuaHUiPkF0dGlsYSBTemVnZWRpPC9hPjwvREQ+CjwvREw+CjxIUj4KCjxQPgo8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+Cgo8QSBOQU1FPSJpbm5lcl9jbGFzc19zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+SW5uZXIgQ2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+c3RhdGljJm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuQW1iaWd1b3VzRXhjZXB0aW9uLmh0bWwiPk1ldGhvZE1hcC5BbWJpZ3VvdXNFeGNlcHRpb248L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2ltcGxlIGRpc3Rpbmd1aXNoYWJsZSBleGNlcHRpb24sIHVzZWQgd2hlbgogIHdlIHJ1biBhY3Jvc3MgYW1iaWd1b3VzIG92ZXJsb2FkaW5nPC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KCjxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdXRpbC9pbnRyb3NwZWN0aW9uL01ldGhvZE1hcC5odG1sI0lOQ09NUEFSQUJMRSI+SU5DT01QQVJBQkxFPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vTWV0aG9kTWFwLmh0bWwjTEVTU19TUEVDSUZJQyI+TEVTU19TUEVDSUZJQzwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4ocGFja2FnZSBwcml2YXRlKSAmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vTWV0aG9kTWFwLmh0bWwjbWV0aG9kQnlOYW1lTWFwIj5tZXRob2RCeU5hbWVNYXA8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7S2VlcCB0cmFjayBvZiBhbGwgbWV0aG9kcyB3aXRoIHRoZSBzYW1lIG5hbWUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNNT1JFX1NQRUNJRklDIj5NT1JFX1NQRUNJRklDPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOwo8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+Cgo8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNNZXRob2RNYXAoKSI+TWV0aG9kTWFwPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KCjxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNhZGQoamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kKSI+YWRkPC9BPjwvQj4oamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kJm5ic3A7bWV0aG9kKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbWV0aG9kIHRvIGEgbGlzdCBvZiBtZXRob2RzIGJ5IG5hbWUuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vTWV0aG9kTWFwLmh0bWwjZmluZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj5maW5kPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCiAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7YXJncyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwogIEZpbmQgYSBtZXRob2QuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7amF2YS51dGlsLkxpc3Q8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBsaXN0IG9mIG1ldGhvZHMgd2l0aCB0aGUgc2FtZSBuYW1lLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS51dGlsLkxpbmtlZExpc3Q8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNnZXRBcHBsaWNhYmxlcyhqYXZhLnV0aWwuTGlzdCwgamF2YS5sYW5nLkNsYXNzW10pIj5nZXRBcHBsaWNhYmxlczwvQT48L0I+KGphdmEudXRpbC5MaXN0Jm5ic3A7bWV0aG9kcywKICAgICAgICAgICAgICAgamF2YS5sYW5nLkNsYXNzW10mbmJzcDtjbGFzc2VzKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhbGwgbWV0aG9kcyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIGFjdHVhbCBhcmd1bWVudCB0eXBlcy48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdXRpbC9pbnRyb3NwZWN0aW9uL01ldGhvZE1hcC5odG1sI2dldE1vc3RTcGVjaWZpYyhqYXZhLnV0aWwuTGlzdCwgamF2YS5sYW5nLkNsYXNzW10pIj5nZXRNb3N0U3BlY2lmaWM8L0E+PC9CPihqYXZhLnV0aWwuTGlzdCZuYnNwO21ldGhvZHMsCiAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3NbXSZuYnNwO2NsYXNzZXMpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNpc0FwcGxpY2FibGUoamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLCBqYXZhLmxhbmcuQ2xhc3NbXSkiPmlzQXBwbGljYWJsZTwvQT48L0I+KGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCZuYnNwO21ldGhvZCwKICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7Y2xhc3Nlcyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdHJ1ZSBpZiB0aGUgc3VwcGxpZWQgbWV0aG9kIGlzIGFwcGxpY2FibGUgdG8gYWN0dWFsCiBhcmd1bWVudCB0eXBlcy48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuaHRtbCNpc01ldGhvZEludm9jYXRpb25Db252ZXJ0aWJsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEubGFuZy5DbGFzcykiPmlzTWV0aG9kSW52b2NhdGlvbkNvbnZlcnRpYmxlPC9BPjwvQj4oamF2YS5sYW5nLkNsYXNzJm5ic3A7Zm9ybWFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3MmbmJzcDthY3R1YWwpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZXRlcm1pbmVzIHdoZXRoZXIgYSB0eXBlIHJlcHJlc2VudGVkIGJ5IGEgY2xhc3Mgb2JqZWN0IGlzCiBjb252ZXJ0aWJsZSB0byBhbm90aGVyIHR5cGUgcmVwcmVzZW50ZWQgYnkgYSBjbGFzcyBvYmplY3QgdXNpbmcgYQogbWV0aG9kIGludm9jYXRpb24gY29udmVyc2lvbiwgdHJlYXRpbmcgb2JqZWN0IHR5cGVzIG9mIHByaW1pdGl2ZQogdHlwZXMgYXMgaWYgdGhleSB3ZXJlIHByaW1pdGl2ZSB0eXBlcyAodGhhdCBpcywgYSBCb29sZWFuIGFjdHVhbAogcGFyYW1ldGVyIHR5cGUgbWF0Y2hlcyBib29sZWFuIHByaW1pdGl2ZSBmb3JtYWwgdHlwZSkuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vTWV0aG9kTWFwLmh0bWwjaXNTdHJpY3RNZXRob2RJbnZvY2F0aW9uQ29udmVydGlibGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLmxhbmcuQ2xhc3MpIj5pc1N0cmljdE1ldGhvZEludm9jYXRpb25Db252ZXJ0aWJsZTwvQT48L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO2Zvcm1hbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkNsYXNzJm5ic3A7YWN0dWFsKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGV0ZXJtaW5lcyB3aGV0aGVyIGEgdHlwZSByZXByZXNlbnRlZCBieSBhIGNsYXNzIG9iamVjdCBpcwogY29udmVydGlibGUgdG8gYW5vdGhlciB0eXBlIHJlcHJlc2VudGVkIGJ5IGEgY2xhc3Mgb2JqZWN0IHVzaW5nIGEKIG1ldGhvZCBpbnZvY2F0aW9uIGNvbnZlcnNpb24sIHdpdGhvdXQgbWF0Y2hpbmcgb2JqZWN0IGFuZCBwcmltaXRpdmUKIHR5cGVzLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vTWV0aG9kTWFwLmh0bWwjbW9yZVNwZWNpZmljKGphdmEubGFuZy5DbGFzc1tdLCBqYXZhLmxhbmcuQ2xhc3NbXSkiPm1vcmVTcGVjaWZpYzwvQT48L0I+KGphdmEubGFuZy5DbGFzc1tdJm5ic3A7YzEsCiAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3NbXSZuYnNwO2MyKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGV0ZXJtaW5lcyB3aGljaCBtZXRob2Qgc2lnbmF0dXJlIChyZXByZXNlbnRlZCBieSBhIGNsYXNzIGFycmF5KSBpcyBtb3JlCiBzcGVjaWZpYy48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+CjxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjxQPgoKPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iTU9SRV9TUEVDSUZJQyI+PCEtLSAtLT48L0E+PEgzPgpNT1JFX1NQRUNJRklDPC9IMz4KPFBSRT4KcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IDxCPk1PUkVfU1BFQ0lGSUM8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iTEVTU19TUEVDSUZJQyI+PCEtLSAtLT48L0E+PEgzPgpMRVNTX1NQRUNJRklDPC9IMz4KPFBSRT4KcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IDxCPkxFU1NfU1BFQ0lGSUM8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iSU5DT01QQVJBQkxFIj48IS0tIC0tPjwvQT48SDM+CklOQ09NUEFSQUJMRTwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGZpbmFsIGludCA8Qj5JTkNPTVBBUkFCTEU8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ibWV0aG9kQnlOYW1lTWFwIj48IS0tIC0tPjwvQT48SDM+Cm1ldGhvZEJ5TmFtZU1hcDwvSDM+CjxQUkU+CmphdmEudXRpbC5NYXAgPEI+bWV0aG9kQnlOYW1lTWFwPC9CPjwvUFJFPgo8REw+CjxERD5LZWVwIHRyYWNrIG9mIGFsbCBtZXRob2RzIHdpdGggdGhlIHNhbWUgbmFtZS48L0RMPgoKPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgoKPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iTWV0aG9kTWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KTWV0aG9kTWFwPC9IMz4KPFBSRT4KcHVibGljIDxCPk1ldGhvZE1hcDwvQj4oKTwvUFJFPgo8REw+CjwvREw+Cgo8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KCjxBIE5BTUU9ImFkZChqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QpIj48IS0tIC0tPjwvQT48SDM+CmFkZDwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmFkZDwvQj4oamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kJm5ic3A7bWV0aG9kKTwvUFJFPgo8REw+CjxERD5BZGQgYSBtZXRob2QgdG8gYSBsaXN0IG9mIG1ldGhvZHMgYnkgbmFtZS4KIEZvciBhIHBhcnRpY3VsYXIgY2xhc3Mgd2UgYXJlIGtlZXBpbmcgdHJhY2sKIG9mIGFsbCB0aGUgbWV0aG9kcyB3aXRoIHRoZSBzYW1lIG5hbWUuPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CmdldDwvSDM+CjxQUkU+CnB1YmxpYyBqYXZhLnV0aWwuTGlzdCA8Qj5nZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+CjxETD4KPEREPlJldHVybiBhIGxpc3Qgb2YgbWV0aG9kcyB3aXRoIHRoZSBzYW1lIG5hbWUuPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5TdHJpbmc8L0NPREU+IC0ga2V5PERUPjxCPlJldHVybnM6PC9CPjxERD5MaXN0IGxpc3Qgb2YgbWV0aG9kczwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbmQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PCEtLSAtLT48L0E+PEgzPgpmaW5kPC9IMz4KPFBSRT4KcHVibGljIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCA8Qj5maW5kPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9NZXRob2RNYXAuQW1iaWd1b3VzRXhjZXB0aW9uLmh0bWwiPk1ldGhvZE1hcC5BbWJpZ3VvdXNFeGNlcHRpb248L0E+PC9QUkU+CjxETD4KPEREPjxwPgogIEZpbmQgYSBtZXRob2QuICBBdHRlbXB0cyB0byBmaW5kIHRoZQogIG1vc3Qgc3BlY2lmaWMgYXBwbGljYWJsZSBtZXRob2QgdXNpbmcgdGhlCiAgYWxnb3JpdGhtIGRlc2NyaWJlZCBpbiB0aGUgSkxTIHNlY3Rpb24KICAxNS4xMi4yICh3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBpdCBjYW4ndAogIGRpc3Rpbmd1aXNoIGEgcHJpbWl0aXZlIHR5cGUgYXJndW1lbnQgZnJvbQogIGFuIG9iamVjdCB0eXBlIGFyZ3VtZW50LCBzaW5jZSBpbiByZWZsZWN0aW9uCiAgcHJpbWl0aXZlIHR5cGUgYXJndW1lbnRzIGFyZSByZXByZXNlbnRlZCBieQogIHRoZWlyIG9iamVjdCBjb3VudGVycGFydHMsIHNvIGZvciBhbiBhcmd1bWVudCBvZgogIHR5cGUgKHNheSkgamF2YS5sYW5nLkludGVnZXIsIGl0IHdpbGwgbm90IGJlIGFibGUKICB0byBkZWNpZGUgYmV0d2VlbiBhIG1ldGhvZCB0aGF0IHRha2VzIGludCBhbmQgYQogIG1ldGhvZCB0aGF0IHRha2VzIGphdmEubGFuZy5JbnRlZ2VyIGFzIGEgcGFyYW1ldGVyLgogIDwvcD4KCiAgPHA+CiAgVGhpcyB0dXJucyBvdXQgdG8gYmUgYSByZWxhdGl2ZWx5IHJhcmUgY2FzZQogIHdoZXJlIHRoaXMgaXMgbmVlZGVkIC0gaG93ZXZlciwgZnVuY3Rpb25hbGl0eQogIGxpa2UgdGhpcyBpcyBuZWVkZWQuCiAgPC9wPjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBuYW1lIG9mIG1ldGhvZDxERD48Q09ERT5hcmdzPC9DT0RFPiAtIHRoZSBhY3R1YWwgYXJndW1lbnRzIHdpdGggd2hpY2ggdGhlIG1ldGhvZCBpcyBjYWxsZWQ8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBtb3N0IHNwZWNpZmljIGFwcGxpY2FibGUgbWV0aG9kLCBvciBudWxsIGlmIG5vCiAgbWV0aG9kIGlzIGFwcGxpY2FibGUuPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvdXRpbC9pbnRyb3NwZWN0aW9uL01ldGhvZE1hcC5BbWJpZ3VvdXNFeGNlcHRpb24uaHRtbCI+TWV0aG9kTWFwLkFtYmlndW91c0V4Y2VwdGlvbjwvQT48L0NPREU+IC0gaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBtYXhpbWFsbHkKICBzcGVjaWZpYyBhcHBsaWNhYmxlIG1ldGhvZDwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldE1vc3RTcGVjaWZpYyhqYXZhLnV0aWwuTGlzdCwgamF2YS5sYW5nLkNsYXNzW10pIj48IS0tIC0tPjwvQT48SDM+CmdldE1vc3RTcGVjaWZpYzwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCA8Qj5nZXRNb3N0U3BlY2lmaWM8L0I+KGphdmEudXRpbC5MaXN0Jm5ic3A7bWV0aG9kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3NbXSZuYnNwO2NsYXNzZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS91dGlsL2ludHJvc3BlY3Rpb24vTWV0aG9kTWFwLkFtYmlndW91c0V4Y2VwdGlvbi5odG1sIj5NZXRob2RNYXAuQW1iaWd1b3VzRXhjZXB0aW9uPC9BPjwvUFJFPgo8REw+CjwvREw+CjxIUj4KCjxBIE5BTUU9Im1vcmVTcGVjaWZpYyhqYXZhLmxhbmcuQ2xhc3NbXSwgamF2YS5sYW5nLkNsYXNzW10pIj48IS0tIC0tPjwvQT48SDM+Cm1vcmVTcGVjaWZpYzwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGludCA8Qj5tb3JlU3BlY2lmaWM8L0I+KGphdmEubGFuZy5DbGFzc1tdJm5ic3A7YzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkNsYXNzW10mbmJzcDtjMik8L1BSRT4KPERMPgo8REQ+RGV0ZXJtaW5lcyB3aGljaCBtZXRob2Qgc2lnbmF0dXJlIChyZXByZXNlbnRlZCBieSBhIGNsYXNzIGFycmF5KSBpcyBtb3JlCiBzcGVjaWZpYy4gVGhpcyBkZWZpbmVzIGEgcGFydGlhbCBvcmRlcmluZyBvbiB0aGUgbWV0aG9kIHNpZ25hdHVyZXMuPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jMTwvQ09ERT4gLSBmaXJzdCBzaWduYXR1cmUgdG8gY29tcGFyZTxERD48Q09ERT5jMjwvQ09ERT4gLSBzZWNvbmQgc2lnbmF0dXJlIHRvIGNvbXBhcmU8RFQ+PEI+UmV0dXJuczo8L0I+PEREPk1PUkVfU1BFQ0lGSUMgaWYgYzEgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIGMyLCBMRVNTX1NQRUNJRklDIGlmCiBjMSBpcyBsZXNzIHNwZWNpZmljIHRoYW4gYzIsIElOQ09NUEFSQUJMRSBpZiB0aGV5IGFyZSBpbmNvbXBhcmFibGUuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0QXBwbGljYWJsZXMoamF2YS51dGlsLkxpc3QsIGphdmEubGFuZy5DbGFzc1tdKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRBcHBsaWNhYmxlczwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGphdmEudXRpbC5MaW5rZWRMaXN0IDxCPmdldEFwcGxpY2FibGVzPC9CPihqYXZhLnV0aWwuTGlzdCZuYnNwO21ldGhvZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7Y2xhc3Nlcyk8L1BSRT4KPERMPgo8REQ+UmV0dXJucyBhbGwgbWV0aG9kcyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIGFjdHVhbCBhcmd1bWVudCB0eXBlcy48REQ+PERMPgo8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1ldGhvZHM8L0NPREU+IC0gbGlzdCBvZiBhbGwgY2FuZGlkYXRlIG1ldGhvZHM8REQ+PENPREU+Y2xhc3NlczwvQ09ERT4gLSB0aGUgYWN0dWFsIHR5cGVzIG9mIHRoZSBhcmd1bWVudHM8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmEgbGlzdCB0aGF0IGNvbnRhaW5zIG9ubHkgYXBwbGljYWJsZSBtZXRob2RzIChudW1iZXIgb2YKIGZvcm1hbCBhbmQgYWN0dWFsIGFyZ3VtZW50cyBtYXRjaGVzLCBhbmQgYXJndW1lbnQgdHlwZXMgYXJlIGFzc2lnbmFibGUKIHRvIGZvcm1hbCB0eXBlcyB0aHJvdWdoIGEgbWV0aG9kIGludm9jYXRpb24gY29udmVyc2lvbikuPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iaXNBcHBsaWNhYmxlKGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCwgamF2YS5sYW5nLkNsYXNzW10pIj48IS0tIC0tPjwvQT48SDM+CmlzQXBwbGljYWJsZTwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGJvb2xlYW4gPEI+aXNBcHBsaWNhYmxlPC9CPihqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QmbmJzcDttZXRob2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7Y2xhc3Nlcyk8L1BSRT4KPERMPgo8REQ+UmV0dXJucyB0cnVlIGlmIHRoZSBzdXBwbGllZCBtZXRob2QgaXMgYXBwbGljYWJsZSB0byBhY3R1YWwKIGFyZ3VtZW50IHR5cGVzLjwvREw+CjxIUj4KCjxBIE5BTUU9ImlzTWV0aG9kSW52b2NhdGlvbkNvbnZlcnRpYmxlKGphdmEubGFuZy5DbGFzcywgamF2YS5sYW5nLkNsYXNzKSI+PCEtLSAtLT48L0E+PEgzPgppc01ldGhvZEludm9jYXRpb25Db252ZXJ0aWJsZTwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGJvb2xlYW4gPEI+aXNNZXRob2RJbnZvY2F0aW9uQ29udmVydGlibGU8L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO2Zvcm1hbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3MmbmJzcDthY3R1YWwpPC9QUkU+CjxETD4KPEREPkRldGVybWluZXMgd2hldGhlciBhIHR5cGUgcmVwcmVzZW50ZWQgYnkgYSBjbGFzcyBvYmplY3QgaXMKIGNvbnZlcnRpYmxlIHRvIGFub3RoZXIgdHlwZSByZXByZXNlbnRlZCBieSBhIGNsYXNzIG9iamVjdCB1c2luZyBhCiBtZXRob2QgaW52b2NhdGlvbiBjb252ZXJzaW9uLCB0cmVhdGluZyBvYmplY3QgdHlwZXMgb2YgcHJpbWl0aXZlCiB0eXBlcyBhcyBpZiB0aGV5IHdlcmUgcHJpbWl0aXZlIHR5cGVzICh0aGF0IGlzLCBhIEJvb2xlYW4gYWN0dWFsCiBwYXJhbWV0ZXIgdHlwZSBtYXRjaGVzIGJvb2xlYW4gcHJpbWl0aXZlIGZvcm1hbCB0eXBlKS4gVGhpcyBiZWhhdmlvcgogaXMgYmVjYXVzZSB0aGlzIG1ldGhvZCBpcyB1c2VkIHRvIGRldGVybWluZSBhcHBsaWNhYmxlIG1ldGhvZHMgZm9yCiBhbiBhY3R1YWwgcGFyYW1ldGVyIGxpc3QsIGFuZCBwcmltaXRpdmUgdHlwZXMgYXJlIHJlcHJlc2VudGVkIGJ5CiB0aGVpciBvYmplY3QgZHVhbHMgaW4gcmVmbGVjdGl2ZSBtZXRob2QgY2FsbHMuPEREPjxETD4KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb3JtYWw8L0NPREU+IC0gdGhlIGZvcm1hbCBwYXJhbWV0ZXIgdHlwZSB0byB3aGljaCB0aGUgYWN0dWFsCiBwYXJhbWV0ZXIgdHlwZSBzaG91bGQgYmUgY29udmVydGlibGU8REQ+PENPREU+YWN0dWFsPC9DT0RFPiAtIHRoZSBhY3R1YWwgcGFyYW1ldGVyIHR5cGUuPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIGVpdGhlciBmb3JtYWwgdHlwZSBpcyBhc3NpZ25hYmxlIGZyb20gYWN0dWFsIHR5cGUsCiBvciBmb3JtYWwgaXMgYSBwcmltaXRpdmUgdHlwZSBhbmQgYWN0dWFsIGlzIGl0cyBjb3JyZXNwb25kaW5nIG9iamVjdAogdHlwZSBvciBhbiBvYmplY3QgdHlwZSBvZiBhIHByaW1pdGl2ZSB0eXBlIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0bwogdGhlIGZvcm1hbCB0eXBlLjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImlzU3RyaWN0TWV0aG9kSW52b2NhdGlvbkNvbnZlcnRpYmxlKGphdmEubGFuZy5DbGFzcywgamF2YS5sYW5nLkNsYXNzKSI+PCEtLSAtLT48L0E+PEgzPgppc1N0cmljdE1ldGhvZEludm9jYXRpb25Db252ZXJ0aWJsZTwvSDM+CjxQUkU+CnByaXZhdGUgc3RhdGljIGJvb2xlYW4gPEI+aXNTdHJpY3RNZXRob2RJbnZvY2F0aW9uQ29udmVydGlibGU8L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO2Zvcm1hbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3MmbmJzcDthY3R1YWwpPC9QUkU+CjxETD4KPEREPkRldGVybWluZXMgd2hldGhlciBhIHR5cGUgcmVwcmVzZW50ZWQgYnkgYSBjbGFzcyBvYmplY3QgaXMKIGNvbnZlcnRpYmxlIHRvIGFub3RoZXIgdHlwZSByZXByZXNlbnRlZCBieSBhIGNsYXNzIG9iamVjdCB1c2luZyBhCiBtZXRob2QgaW52b2NhdGlvbiBjb252ZXJzaW9uLCB3aXRob3V0IG1hdGNoaW5nIG9iamVjdCBhbmQgcHJpbWl0aXZlCiB0eXBlcy4gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1vcmUgc3BlY2lmaWMgdHlwZSB3aGVuCiBjb21wYXJpbmcgc2lnbmF0dXJlcyBvZiBtZXRob2RzLjxERD48REw+CjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9ybWFsPC9DT0RFPiAtIHRoZSBmb3JtYWwgcGFyYW1ldGVyIHR5cGUgdG8gd2hpY2ggdGhlIGFjdHVhbAogcGFyYW1ldGVyIHR5cGUgc2hvdWxkIGJlIGNvbnZlcnRpYmxlPEREPjxDT0RFPmFjdHVhbDwvQ09ERT4gLSB0aGUgYWN0dWFsIHBhcmFtZXRlciB0eXBlLjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dHJ1ZSBpZiBlaXRoZXIgZm9ybWFsIHR5cGUgaXMgYXNzaWduYWJsZSBmcm9tIGFjdHVhbCB0eXBlLAogb3IgZm9ybWFsIGFuZCBhY3R1YWwgYXJlIGJvdGggcHJpbWl0aXZlIHR5cGVzIGFuZCBhY3R1YWwgY2FuIGJlCiBzdWJqZWN0IHRvIHdpZGVuaW5nIGNvbnZlcnNpb24gdG8gZm9ybWFsLjwvREw+CjwvREQ+CjwvREw+CjwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KPEhSPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01ldGhvZE1hcC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDwvVFI+CjwvVEFCTEU+CjwvVEQ+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgo8L0VNPgo8L1REPgo8L1RSPgoKPFRSPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9JbnRyb3NwZWN0b3JCYXNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3V0aWwvaW50cm9zcGVjdGlvbi9VYmVyc3BlY3RJbXBsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJNZXRob2RNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTogJm5ic3A7PEEgSFJFRj0iI2lubmVyX2NsYXNzX3N1bW1hcnkiPklOTkVSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KQ29weXJpZ2h0IKkgMjAwMiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPC9CT0RZPgo8L0hUTUw+Cg==