PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KPCEtLU5ld1BhZ2UtLT4KPEhUTUw+CjxIRUFEPgo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFdlZCBBcHIgMTQgMDg6MjY6MzMgRURUIDIwMDQgLS0+CjxUSVRMRT4KVmVsb2NpdHkgMS40IEFQSTogQ2xhc3MgIFZlbG9jaXR5Q2hhclN0cmVhbQo8L1RJVExFPgo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+CjwvSEVBRD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiPgoKPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+CjxUUj4KPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDwvVFI+CjwvVEFCTEU+CjwvVEQ+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgo8L0VNPgo8L1REPgo8L1RSPgoKPFRSPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1Rva2VuLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOzxBIEhSRUY9IlZlbG9jaXR5Q2hhclN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjxUUj4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgo8SDI+CjxGT05UIFNJWkU9Ii0xIj4Kb3JnLmFwYWNoZS52ZWxvY2l0eS5ydW50aW1lLnBhcnNlcjwvRk9OVD4KPEJSPgpDbGFzcyAgVmVsb2NpdHlDaGFyU3RyZWFtPC9IMj4KPFBSRT4KamF2YS5sYW5nLk9iamVjdAogIHwKICArLS08Qj5vcmcuYXBhY2hlLnZlbG9jaXR5LnJ1bnRpbWUucGFyc2VyLlZlbG9jaXR5Q2hhclN0cmVhbTwvQj4KPC9QUkU+CjxETD4KPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sIj5DaGFyU3RyZWFtPC9BPjwvREQ+CjwvREw+CjxIUj4KPERMPgo8RFQ+cHVibGljIGZpbmFsIGNsYXNzIDxCPlZlbG9jaXR5Q2hhclN0cmVhbTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9ETD4KCjxQPgpBbiBpbXBsZW1lbnRhdGlvbiBvZiBpbnRlcmZhY2UgQ2hhclN0cmVhbSwgd2hlcmUgdGhlIHN0cmVhbSBpcyBhc3N1bWVkIHRvCiBjb250YWluIG9ubHkgQVNDSUkgY2hhcmFjdGVycyAod2l0aG91dCB1bmljb2RlIHByb2Nlc3NpbmcpLgo8UD4KPEhSPgoKPFA+CjwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KCgo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+KHBhY2thZ2UgcHJpdmF0ZSkgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNhdmFpbGFibGUiPmF2YWlsYWJsZTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO2ludFtdPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNidWZjb2x1bW4iPmJ1ZmNvbHVtbjwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO2NoYXJbXTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjYnVmZmVyIj5idWZmZXI8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtpbnRbXTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjYnVmbGluZSI+YnVmbGluZTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2J1ZnBvcyI+YnVmcG9zPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPihwYWNrYWdlIHByaXZhdGUpICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjYnVmc2l6ZSI+YnVmc2l6ZTwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjY29sdW1uIj5jb2x1bW48L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2luQnVmIj5pbkJ1ZjwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO2phdmEuaW8uUmVhZGVyPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNpbnB1dFN0cmVhbSI+aW5wdXRTdHJlYW08L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2xpbmUiPmxpbmU8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI21heE5leHRDaGFySW5kIj5tYXhOZXh0Q2hhckluZDwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI3ByZXZDaGFySXNDUiI+cHJldkNoYXJJc0NSPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjcHJldkNoYXJJc0xGIj5wcmV2Q2hhcklzTEY8L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjc3RhdGljRmxhZyI+c3RhdGljRmxhZzwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4ocGFja2FnZSBwcml2YXRlKSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI3Rva2VuQmVnaW4iPnRva2VuQmVnaW48L0E+PC9CPjwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KCjxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjVmVsb2NpdHlDaGFyU3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0sIGludCwgaW50KSI+VmVsb2NpdHlDaGFyU3RyZWFtPC9BPjwvQj4oamF2YS5pby5JbnB1dFN0cmVhbSZuYnNwO2RzdHJlYW0sCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbik8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNWZWxvY2l0eUNoYXJTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgaW50LCBpbnQsIGludCkiPlZlbG9jaXR5Q2hhclN0cmVhbTwvQT48L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtkc3RyZWFtLAogICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRsaW5lLAogICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRjb2x1bW4sCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJzaXplKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI1ZlbG9jaXR5Q2hhclN0cmVhbShqYXZhLmlvLlJlYWRlciwgaW50LCBpbnQpIj5WZWxvY2l0eUNoYXJTdHJlYW08L0E+PC9CPihqYXZhLmlvLlJlYWRlciZuYnNwO2RzdHJlYW0sCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbik8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNWZWxvY2l0eUNoYXJTdHJlYW0oamF2YS5pby5SZWFkZXIsIGludCwgaW50LCBpbnQpIj5WZWxvY2l0eUNoYXJTdHJlYW08L0E+PC9CPihqYXZhLmlvLlJlYWRlciZuYnNwO2RzdHJlYW0sCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbiwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlcnNpemUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjYWRqdXN0QmVnaW5MaW5lQ29sdW1uKGludCwgaW50KSI+YWRqdXN0QmVnaW5MaW5lQ29sdW1uPC9BPjwvQj4oaW50Jm5ic3A7bmV3TGluZSwKICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO25ld0NvbCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCB0byBhZGp1c3QgbGluZSBhbmQgY29sdW1uIG51bWJlcnMgZm9yIHRoZSBzdGFydCBvZiBhIHRva2VuLjxCUj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNiYWNrdXAoaW50KSI+YmFja3VwPC9BPjwvQj4oaW50Jm5ic3A7YW1vdW50KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QmFja3MgdXAgdGhlIGlucHV0IHN0cmVhbSBieSBhbW91bnQgc3RlcHMuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7Y2hhcjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjQmVnaW5Ub2tlbigpIj5CZWdpblRva2VuPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbmV4dCBjaGFyYWN0ZXIgdGhhdCBtYXJrcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IHRva2VuLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI0RvbmUoKSI+RG9uZTwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsZXhlciBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIGluZGljYXRlIHRoYXQgaXQgaXMgZG9uZSB3aXRoIHRoZSBzdHJlYW0KIGFuZCBoZW5jZSBpbXBsZW1lbnRhdGlvbnMgY2FuIGZyZWUgYW55IHJlc291cmNlcyBoZWxkIGJ5IHRoaXMgY2xhc3MuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNFeHBhbmRCdWZmKGJvb2xlYW4pIj5FeHBhbmRCdWZmPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3dyYXBBcm91bmQpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI0ZpbGxCdWZmKCkiPkZpbGxCdWZmPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNnZXRCZWdpbkNvbHVtbigpIj5nZXRCZWdpbkNvbHVtbjwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBmb3IgY3VycmVudCB0b2tlbiAoYmVpbmcKIG1hdGNoZWQgYWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byBCZWdpblRPa2VuKS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2dldEJlZ2luTGluZSgpIj5nZXRCZWdpbkxpbmU8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvciBjdXJyZW50IHRva2VuIChiZWluZwogbWF0Y2hlZCBhZnRlciB0aGUgbGFzdCBjYWxsIHRvIEJlZ2luVE9rZW4pLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjZ2V0Q29sdW1uKCkiPmdldENvbHVtbjwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGNvbHVtbiBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGxhc3QgcmVhZC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2dldEVuZENvbHVtbigpIj5nZXRFbmRDb2x1bW48L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBsYXN0IGNoYXJhY3RlciBmb3IgY3VycmVudCB0b2tlbiAoYmVpbmcKIG1hdGNoZWQgYWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byBCZWdpblRPa2VuKS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2dldEVuZExpbmUoKSI+Z2V0RW5kTGluZTwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGxpbmUgbnVtYmVyIG9mIHRoZSBsYXN0IGNoYXJhY3RlciBmb3IgY3VycmVudCB0b2tlbiAoYmVpbmcKIG1hdGNoZWQgYWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byBCZWdpblRPa2VuKS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNHZXRJbWFnZSgpIj5HZXRJbWFnZTwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSBzdHJpbmcgbWFkZSB1cCBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIG1hcmtlZCB0b2tlbiBiZWdpbm5pbmcgCiB0byB0aGUgY3VycmVudCBidWZmZXIgcG9zaXRpb24uPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNnZXRMaW5lKCkiPmdldExpbmU8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY2hhcmFjdGVyIGxhc3QgcmVhZC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtjaGFyW108L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI0dldFN1ZmZpeChpbnQpIj5HZXRTdWZmaXg8L0E+PC9CPihpbnQmbmJzcDtsZW4pPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMgdGhhdCBtYWtlIHVwIHRoZSBzdWZmaXggb2YgbGVuZ3RoICdsZW4nIGZvcgogdGhlIGN1cnJlbnRseSBtYXRjaGVkIHRva2VuLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI3JlYWRDaGFyKCkiPnJlYWRDaGFyPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbSB0aGUgc2VsZWN0ZWQgaW5wdXQuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvVmVsb2NpdHlDaGFyU3RyZWFtLmh0bWwjUmVJbml0KGphdmEuaW8uSW5wdXRTdHJlYW0sIGludCwgaW50KSI+UmVJbml0PC9BPjwvQj4oamF2YS5pby5JbnB1dFN0cmVhbSZuYnNwO2RzdHJlYW0sCiAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbik8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI1JlSW5pdChqYXZhLmlvLklucHV0U3RyZWFtLCBpbnQsIGludCwgaW50KSI+UmVJbml0PC9BPjwvQj4oamF2YS5pby5JbnB1dFN0cmVhbSZuYnNwO2RzdHJlYW0sCiAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbiwKICAgICAgIGludCZuYnNwO2J1ZmZlcnNpemUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNSZUluaXQoamF2YS5pby5SZWFkZXIsIGludCwgaW50KSI+UmVJbml0PC9BPjwvQj4oamF2YS5pby5SZWFkZXImbmJzcDtkc3RyZWFtLAogICAgICAgaW50Jm5ic3A7c3RhcnRsaW5lLAogICAgICAgaW50Jm5ic3A7c3RhcnRjb2x1bW4pPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCNSZUluaXQoamF2YS5pby5SZWFkZXIsIGludCwgaW50LCBpbnQpIj5SZUluaXQ8L0E+PC9CPihqYXZhLmlvLlJlYWRlciZuYnNwO2RzdHJlYW0sCiAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbiwKICAgICAgIGludCZuYnNwO2J1ZmZlcnNpemUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI1VwZGF0ZUxpbmVDb2x1bW4oY2hhcikiPlVwZGF0ZUxpbmVDb2x1bW48L0E+PC9CPihjaGFyJm5ic3A7Yyk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPFA+Cgo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+Cgo8QSBOQU1FPSJzdGF0aWNGbGFnIj48IS0tIC0tPjwvQT48SDM+CnN0YXRpY0ZsYWc8L0gzPgo8UFJFPgpwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gPEI+c3RhdGljRmxhZzwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJidWZzaXplIj48IS0tIC0tPjwvQT48SDM+CmJ1ZnNpemU8L0gzPgo8UFJFPgppbnQgPEI+YnVmc2l6ZTwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJhdmFpbGFibGUiPjwhLS0gLS0+PC9BPjxIMz4KYXZhaWxhYmxlPC9IMz4KPFBSRT4KaW50IDxCPmF2YWlsYWJsZTwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJ0b2tlbkJlZ2luIj48IS0tIC0tPjwvQT48SDM+CnRva2VuQmVnaW48L0gzPgo8UFJFPgppbnQgPEI+dG9rZW5CZWdpbjwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJidWZwb3MiPjwhLS0gLS0+PC9BPjxIMz4KYnVmcG9zPC9IMz4KPFBSRT4KcHVibGljIGludCA8Qj5idWZwb3M8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYnVmbGluZSI+PCEtLSAtLT48L0E+PEgzPgpidWZsaW5lPC9IMz4KPFBSRT4KcHJpdmF0ZSBpbnRbXSA8Qj5idWZsaW5lPC9CPjwvUFJFPgo8REw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImJ1ZmNvbHVtbiI+PCEtLSAtLT48L0E+PEgzPgpidWZjb2x1bW48L0gzPgo8UFJFPgpwcml2YXRlIGludFtdIDxCPmJ1ZmNvbHVtbjwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjb2x1bW4iPjwhLS0gLS0+PC9BPjxIMz4KY29sdW1uPC9IMz4KPFBSRT4KcHJpdmF0ZSBpbnQgPEI+Y29sdW1uPC9CPjwvUFJFPgo8REw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImxpbmUiPjwhLS0gLS0+PC9BPjxIMz4KbGluZTwvSDM+CjxQUkU+CnByaXZhdGUgaW50IDxCPmxpbmU8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icHJldkNoYXJJc0NSIj48IS0tIC0tPjwvQT48SDM+CnByZXZDaGFySXNDUjwvSDM+CjxQUkU+CnByaXZhdGUgYm9vbGVhbiA8Qj5wcmV2Q2hhcklzQ1I8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icHJldkNoYXJJc0xGIj48IS0tIC0tPjwvQT48SDM+CnByZXZDaGFySXNMRjwvSDM+CjxQUkU+CnByaXZhdGUgYm9vbGVhbiA8Qj5wcmV2Q2hhcklzTEY8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iaW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPjxIMz4KaW5wdXRTdHJlYW08L0gzPgo8UFJFPgpwcml2YXRlIGphdmEuaW8uUmVhZGVyIDxCPmlucHV0U3RyZWFtPC9CPjwvUFJFPgo8REw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImJ1ZmZlciI+PCEtLSAtLT48L0E+PEgzPgpidWZmZXI8L0gzPgo8UFJFPgpwcml2YXRlIGNoYXJbXSA8Qj5idWZmZXI8L0I+PC9QUkU+CjxETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ibWF4TmV4dENoYXJJbmQiPjwhLS0gLS0+PC9BPjxIMz4KbWF4TmV4dENoYXJJbmQ8L0gzPgo8UFJFPgpwcml2YXRlIGludCA8Qj5tYXhOZXh0Q2hhckluZDwvQj48L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJpbkJ1ZiI+PCEtLSAtLT48L0E+PEgzPgppbkJ1ZjwvSDM+CjxQUkU+CnByaXZhdGUgaW50IDxCPmluQnVmPC9CPjwvUFJFPgo8REw+CjwvREw+Cgo8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+Cgo8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgo8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+Cgo8QSBOQU1FPSJWZWxvY2l0eUNoYXJTdHJlYW0oamF2YS5pby5SZWFkZXIsIGludCwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+ClZlbG9jaXR5Q2hhclN0cmVhbTwvSDM+CjxQUkU+CnB1YmxpYyA8Qj5WZWxvY2l0eUNoYXJTdHJlYW08L0I+KGphdmEuaW8uUmVhZGVyJm5ic3A7ZHN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRjb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyc2l6ZSk8L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJWZWxvY2l0eUNoYXJTdHJlYW0oamF2YS5pby5SZWFkZXIsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgpWZWxvY2l0eUNoYXJTdHJlYW08L0gzPgo8UFJFPgpwdWJsaWMgPEI+VmVsb2NpdHlDaGFyU3RyZWFtPC9CPihqYXZhLmlvLlJlYWRlciZuYnNwO2RzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRsaW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0Y29sdW1uKTwvUFJFPgo8REw+CjwvREw+CjxIUj4KCjxBIE5BTUU9IlZlbG9jaXR5Q2hhclN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtLCBpbnQsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgpWZWxvY2l0eUNoYXJTdHJlYW08L0gzPgo8UFJFPgpwdWJsaWMgPEI+VmVsb2NpdHlDaGFyU3RyZWFtPC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7ZHN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRjb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyc2l6ZSk8L1BSRT4KPERMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJWZWxvY2l0eUNoYXJTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+ClZlbG9jaXR5Q2hhclN0cmVhbTwvSDM+CjxQUkU+CnB1YmxpYyA8Qj5WZWxvY2l0eUNoYXJTdHJlYW08L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtkc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0bGluZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzdGFydGNvbHVtbik8L1BSRT4KPERMPgo8L0RMPgoKPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgoKPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+CjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+Cgo8QSBOQU1FPSJFeHBhbmRCdWZmKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CkV4cGFuZEJ1ZmY8L0gzPgo8UFJFPgpwcml2YXRlIGZpbmFsIHZvaWQgPEI+RXhwYW5kQnVmZjwvQj4oYm9vbGVhbiZuYnNwO3dyYXBBcm91bmQpPC9QUkU+CjxETD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iRmlsbEJ1ZmYoKSI+PCEtLSAtLT48L0E+PEgzPgpGaWxsQnVmZjwvSDM+CjxQUkU+CnByaXZhdGUgZmluYWwgdm9pZCA8Qj5GaWxsQnVmZjwvQj4oKQogICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9IkJlZ2luVG9rZW4oKSI+PCEtLSAtLT48L0E+PEgzPgpCZWdpblRva2VuPC9IMz4KPFBSRT4KcHVibGljIGZpbmFsIGNoYXIgPEI+QmVnaW5Ub2tlbjwvQj4oKQogICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KPERMPgo8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9CPjwvREQ+CjxERD5SZXR1cm5zIHRoZSBuZXh0IGNoYXJhY3RlciB0aGF0IG1hcmtzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgdG9rZW4uCiBBbGwgY2hhcmFjdGVycyBtdXN0IHJlbWFpbiBpbiB0aGUgYnVmZmVyIGJldHdlZW4gdHdvIHN1Y2Nlc3NpdmUgY2FsbHMKIHRvIHRoaXMgbWV0aG9kIHRvIGltcGxlbWVudCBiYWNrdXAgY29ycmVjdGx5LjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjQmVnaW5Ub2tlbigpIj5CZWdpblRva2VuPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sIj5DaGFyU3RyZWFtPC9BPjwvQ09ERT48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJVcGRhdGVMaW5lQ29sdW1uKGNoYXIpIj48IS0tIC0tPjwvQT48SDM+ClVwZGF0ZUxpbmVDb2x1bW48L0gzPgo8UFJFPgpwcml2YXRlIGZpbmFsIHZvaWQgPEI+VXBkYXRlTGluZUNvbHVtbjwvQj4oY2hhciZuYnNwO2MpPC9QUkU+CjxETD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icmVhZENoYXIoKSI+PCEtLSAtLT48L0E+PEgzPgpyZWFkQ2hhcjwvSDM+CjxQUkU+CnB1YmxpYyBmaW5hbCBjaGFyIDxCPnJlYWRDaGFyPC9CPigpCiAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KPERMPgo8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9CPjwvREQ+CjxERD5SZXR1cm5zIHRoZSBuZXh0IGNoYXJhY3RlciBmcm9tIHRoZSBzZWxlY3RlZCBpbnB1dC4gIFRoZSBtZXRob2QKIG9mIHNlbGVjdGluZyB0aGUgaW5wdXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjbGFzcwogaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlLiAgQ2FuIHRocm93IGFueSBqYXZhLmlvLklPRXhjZXB0aW9uLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjcmVhZENoYXIoKSI+cmVhZENoYXI8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldENvbHVtbigpIj48IS0tIC0tPjwvQT48SDM+CmdldENvbHVtbjwvSDM+CjxQUkU+CnB1YmxpYyBmaW5hbCBpbnQgPEI+Z2V0Q29sdW1uPC9CPigpPC9QUkU+CjxETD4KPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPjwvST4mbmJzcDsKPFA+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sIj5DaGFyU3RyZWFtPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPlJldHVybnMgdGhlIGNvbHVtbiBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGxhc3QgcmVhZC48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sI2dldENvbHVtbigpIj5nZXRDb2x1bW48L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2dldEVuZENvbHVtbigpIj48Q09ERT5nZXRFbmRDb2x1bW4oKTwvQ09ERT48L0E+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0TGluZSgpIj48IS0tIC0tPjwvQT48SDM+CmdldExpbmU8L0gzPgo8UFJFPgpwdWJsaWMgZmluYWwgaW50IDxCPmdldExpbmU8L0I+KCk8L1BSRT4KPERMPgo8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+PC9JPiZuYnNwOwo8UD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+UmV0dXJucyB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGNoYXJhY3RlciBsYXN0IHJlYWQuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCNnZXRMaW5lKCkiPmdldExpbmU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL1ZlbG9jaXR5Q2hhclN0cmVhbS5odG1sI2dldEVuZExpbmUoKSI+PENPREU+Z2V0RW5kTGluZSgpPC9DT0RFPjwvQT48L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJnZXRFbmRDb2x1bW4oKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRFbmRDb2x1bW48L0gzPgo8UFJFPgpwdWJsaWMgZmluYWwgaW50IDxCPmdldEVuZENvbHVtbjwvQj4oKTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sIj5DaGFyU3RyZWFtPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPlJldHVybnMgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGZvciBjdXJyZW50IHRva2VuIChiZWluZwogbWF0Y2hlZCBhZnRlciB0aGUgbGFzdCBjYWxsIHRvIEJlZ2luVE9rZW4pLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjZ2V0RW5kQ29sdW1uKCkiPmdldEVuZENvbHVtbjwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0RW5kTGluZSgpIj48IS0tIC0tPjwvQT48SDM+CmdldEVuZExpbmU8L0gzPgo8UFJFPgpwdWJsaWMgZmluYWwgaW50IDxCPmdldEVuZExpbmU8L0I+KCk8L1BSRT4KPERMPgo8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9CPjwvREQ+CjxERD5SZXR1cm5zIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIgZm9yIGN1cnJlbnQgdG9rZW4gKGJlaW5nCiBtYXRjaGVkIGFmdGVyIHRoZSBsYXN0IGNhbGwgdG8gQmVnaW5UT2tlbikuPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCNnZXRFbmRMaW5lKCkiPmdldEVuZExpbmU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldEJlZ2luQ29sdW1uKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0QmVnaW5Db2x1bW48L0gzPgo8UFJFPgpwdWJsaWMgZmluYWwgaW50IDxCPmdldEJlZ2luQ29sdW1uPC9CPigpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+UmV0dXJucyB0aGUgY29sdW1uIG51bWJlciBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvciBjdXJyZW50IHRva2VuIChiZWluZwogbWF0Y2hlZCBhZnRlciB0aGUgbGFzdCBjYWxsIHRvIEJlZ2luVE9rZW4pLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjZ2V0QmVnaW5Db2x1bW4oKSI+Z2V0QmVnaW5Db2x1bW48L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldEJlZ2luTGluZSgpIj48IS0tIC0tPjwvQT48SDM+CmdldEJlZ2luTGluZTwvSDM+CjxQUkU+CnB1YmxpYyBmaW5hbCBpbnQgPEI+Z2V0QmVnaW5MaW5lPC9CPigpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+UmV0dXJucyB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBmb3IgY3VycmVudCB0b2tlbiAoYmVpbmcKIG1hdGNoZWQgYWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byBCZWdpblRPa2VuKS48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sI2dldEJlZ2luTGluZSgpIj5nZXRCZWdpbkxpbmU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImJhY2t1cChpbnQpIj48IS0tIC0tPjwvQT48SDM+CmJhY2t1cDwvSDM+CjxQUkU+CnB1YmxpYyBmaW5hbCB2b2lkIDxCPmJhY2t1cDwvQj4oaW50Jm5ic3A7YW1vdW50KTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sIj5DaGFyU3RyZWFtPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPkJhY2tzIHVwIHRoZSBpbnB1dCBzdHJlYW0gYnkgYW1vdW50IHN0ZXBzLiBMZXhlciBjYWxscyB0aGlzIG1ldGhvZCBpZiBpdAogaGFkIGFscmVhZHkgcmVhZCBzb21lIGNoYXJhY3RlcnMsIGJ1dCBjb3VsZCBub3QgdXNlIHRoZW0gdG8gbWF0Y2ggYQogKGxvbmdlcikgdG9rZW4uIFNvLCB0aGV5IHdpbGwgYmUgdXNlZCBhZ2FpbiBhcyB0aGUgcHJlZml4IG9mIHRoZSBuZXh0CiB0b2tlbiBhbmQgaXQgaXMgdGhlIGltcGxlbWV0YXRpb24ncyByZXNwb25zaWJpbGl0eSB0byBkbyB0aGlzIHJpZ2h0LjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjYmFja3VwKGludCkiPmJhY2t1cDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iUmVJbml0KGphdmEuaW8uUmVhZGVyLCBpbnQsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgpSZUluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5SZUluaXQ8L0I+KGphdmEuaW8uUmVhZGVyJm5ic3A7ZHN0cmVhbSwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0bGluZSwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0Y29sdW1uLAogICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyc2l6ZSk8L1BSRT4KPERMPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJSZUluaXQoamF2YS5pby5SZWFkZXIsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgpSZUluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5SZUluaXQ8L0I+KGphdmEuaW8uUmVhZGVyJm5ic3A7ZHN0cmVhbSwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0bGluZSwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0Y29sdW1uKTwvUFJFPgo8REw+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9IlJlSW5pdChqYXZhLmlvLklucHV0U3RyZWFtLCBpbnQsIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgpSZUluaXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5SZUluaXQ8L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtkc3RyZWFtLAogICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRsaW5lLAogICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c3RhcnRjb2x1bW4sCiAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJzaXplKTwvUFJFPgo8REw+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9IlJlSW5pdChqYXZhLmlvLklucHV0U3RyZWFtLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KUmVJbml0PC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+UmVJbml0PC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7ZHN0cmVhbSwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0bGluZSwKICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0Y29sdW1uKTwvUFJFPgo8REw+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9IkdldEltYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KR2V0SW1hZ2U8L0gzPgo8UFJFPgpwdWJsaWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5HZXRJbWFnZTwvQj4oKTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sIj5DaGFyU3RyZWFtPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPlJldHVybnMgYSBzdHJpbmcgbWFkZSB1cCBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIG1hcmtlZCB0b2tlbiBiZWdpbm5pbmcgCiB0byB0aGUgY3VycmVudCBidWZmZXIgcG9zaXRpb24uIEltcGxlbWVudGF0aW9ucyBoYXZlIHRoZSBjaG9pY2Ugb2YgcmV0dXJuaW5nCiBhbnl0aGluZyB0aGF0IHRoZXkgd2FudCB0by4gRm9yIGV4YW1wbGUsIGZvciBlZmZpY2llbmN5LCBvbmUgbWlnaHQgZGVjaWRlCiB0byBqdXN0IHJldHVybiBudWxsLCB3aGljaCBpcyBhIHZhbGlkIGltcGxlbWVudGF0aW9uLjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjR2V0SW1hZ2UoKSI+R2V0SW1hZ2U8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9IkdldFN1ZmZpeChpbnQpIj48IS0tIC0tPjwvQT48SDM+CkdldFN1ZmZpeDwvSDM+CjxQUkU+CnB1YmxpYyBmaW5hbCBjaGFyW10gPEI+R2V0U3VmZml4PC9CPihpbnQmbmJzcDtsZW4pPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+UmV0dXJucyBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRoYXQgbWFrZSB1cCB0aGUgc3VmZml4IG9mIGxlbmd0aCAnbGVuJyBmb3IKIHRoZSBjdXJyZW50bHkgbWF0Y2hlZCB0b2tlbi4gVGhpcyBpcyB1c2VkIHRvIGJ1aWxkIHVwIHRoZSBtYXRjaGVkIHN0cmluZwogZm9yIHVzZSBpbiBhY3Rpb25zIGluIHRoZSBjYXNlIG9mIE1PUkUuIEEgc2ltcGxlIGFuZCBpbmVmZmljaWVudAogaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpcyBhcyBmb2xsb3dzIDoKCiAgIHsKICAgICAgU3RyaW5nIHQgPSBHZXRJbWFnZSgpOwogICAgICByZXR1cm4gdC5zdWJzdHJpbmcodC5sZW5ndGgoKSAtIGxlbiwgdC5sZW5ndGgoKSkudG9DaGFyQXJyYXkoKTsKICAgfTxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwjR2V0U3VmZml4KGludCkiPkdldFN1ZmZpeDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iRG9uZSgpIj48IS0tIC0tPjwvQT48SDM+CkRvbmU8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5Eb25lPC9CPigpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9DaGFyU3RyZWFtLmh0bWwiPkNoYXJTdHJlYW08L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+VGhlIGxleGVyIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyBkb25lIHdpdGggdGhlIHN0cmVhbQogYW5kIGhlbmNlIGltcGxlbWVudGF0aW9ucyBjYW4gZnJlZSBhbnkgcmVzb3VyY2VzIGhlbGQgYnkgdGhpcyBjbGFzcy4KIEFnYWluLCB0aGUgYm9keSBvZiB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBqdXN0IGVtcHR5IGFuZCBpdCB3aWxsIG5vdAogYWZmZWN0IHRoZSBsZXhlcidzIG9wZXJhdGlvbi48REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvdmVsb2NpdHkvcnVudGltZS9wYXJzZXIvQ2hhclN0cmVhbS5odG1sI0RvbmUoKSI+RG9uZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3ZlbG9jaXR5L3J1bnRpbWUvcGFyc2VyL0NoYXJTdHJlYW0uaHRtbCI+Q2hhclN0cmVhbTwvQT48L0NPREU+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWRqdXN0QmVnaW5MaW5lQ29sdW1uKGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgphZGp1c3RCZWdpbkxpbmVDb2x1bW48L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5hZGp1c3RCZWdpbkxpbmVDb2x1bW48L0I+KGludCZuYnNwO25ld0xpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtuZXdDb2wpPC9QUkU+CjxETD4KPEREPk1ldGhvZCB0byBhZGp1c3QgbGluZSBhbmQgY29sdW1uIG51bWJlcnMgZm9yIHRoZSBzdGFydCBvZiBhIHRva2VuLjxCUj48REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+CjxIUj4KCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgo8VFI+CjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9WZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8L1RSPgo8L1RBQkxFPgo8L1REPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KPC9FTT4KPC9URD4KPC9UUj4KCjxUUj4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS92ZWxvY2l0eS9ydW50aW1lL3BhcnNlci9Ub2tlbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDs8QSBIUkVGPSJWZWxvY2l0eUNoYXJTdHJlYW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+Cgo8SFI+CkNvcHlyaWdodCCpIDIwMDIgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCjwvQk9EWT4KPC9IVE1MPgo=