PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTI6NTMgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBJbnRlcmZhY2UgIFRlbXBsYXRlc0hhbmRsZXINCjwvVElUTEU+DQo8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+DQo8L0hFQUQ+DQo8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UZW1wbGF0ZXNIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8L1RSPg0KPC9UQUJMRT4NCjwvVEQ+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4NCjwvRU0+DQo8L1REPg0KPC9UUj4NCg0KPFRSPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsNCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vc2F4L1RyYW5zZm9ybWVySGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iVGVtcGxhdGVzSGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCkRFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4NCg0KPEhSPg0KPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPg0KPEgyPg0KPEZPTlQgU0laRT0iLTEiPg0KamF2YXgueG1sLnRyYW5zZm9ybS5zYXg8L0ZPTlQ+DQo8QlI+DQpJbnRlcmZhY2UgIFRlbXBsYXRlc0hhbmRsZXI8L0gyPg0KPERMPg0KPERUPjxCPkFsbCBLbm93biBJbXBsZW1lbnRpbmcgQ2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3hhbGFuL3Byb2Nlc3Nvci9TdHlsZXNoZWV0SGFuZGxlci5odG1sIj5TdHlsZXNoZWV0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUveGFsYW4veHNsdGMvdHJheC9UZW1wbGF0ZXNIYW5kbGVySW1wbC5odG1sIj5UZW1wbGF0ZXNIYW5kbGVySW1wbDwvQT48L0REPg0KPC9ETD4NCjxIUj4NCjxETD4NCjxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPlRlbXBsYXRlc0hhbmRsZXI8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+PC9ETD4NCg0KPFA+DQpBIFNBWCBDb250ZW50SGFuZGxlciB0aGF0IG1heSBiZSB1c2VkIHRvIHByb2Nlc3MgU0FYCiBwYXJzZSBldmVudHMgKHBhcnNpbmcgdHJhbnNmb3JtYXRpb24gaW5zdHJ1Y3Rpb25zKSBpbnRvIGEgVGVtcGxhdGVzIG9iamVjdC4KCiA8cD5Ob3RlIHRoYXQgVGVtcGxhdGVzSGFuZGxlciBkb2VzIG5vdCBuZWVkIHRvIGltcGxlbWVudCBMZXhpY2FsSGFuZGxlci48L3A+DQo8UD4NCjxIUj4NCg0KPFA+DQo8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4NCg0KDQo8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+DQoNCjxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+DQo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4NCjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPg0KPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vc2F4L1RlbXBsYXRlc0hhbmRsZXIuaHRtbCNnZXRTeXN0ZW1JZCgpIj5nZXRTeXN0ZW1JZDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgYmFzZSBJRCAoVVJJIG9yIHN5c3RlbSBJRCkgZnJvbSB3aGVyZSByZWxhdGl2ZQogVVJMcyB3aWxsIGJlIHJlc29sdmVkLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwvdHJhbnNmb3JtL1RlbXBsYXRlcy5odG1sIj5UZW1wbGF0ZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vc2F4L1RlbXBsYXRlc0hhbmRsZXIuaHRtbCNnZXRUZW1wbGF0ZXMoKSI+Z2V0VGVtcGxhdGVzPC9BPjwvQj4oKTwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hlbiBhIFRlbXBsYXRlc0hhbmRsZXIgb2JqZWN0IGlzIHVzZWQgYXMgYSBDb250ZW50SGFuZGxlcgogZm9yIHRoZSBwYXJzaW5nIG9mIHRyYW5zZm9ybWF0aW9uIGluc3RydWN0aW9ucywgaXQgY3JlYXRlcyBhIFRlbXBsYXRlcyBvYmplY3QsCiB3aGljaCB0aGUgY2FsbGVyIGNhbiBnZXQgb25jZSB0aGUgU0FYIGV2ZW50cyBoYXZlIGJlZW4gY29tcGxldGVkLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vc2F4L1RlbXBsYXRlc0hhbmRsZXIuaHRtbCNzZXRTeXN0ZW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3lzdGVtSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3lzdGVtSUQpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGJhc2UgSUQgKFVSSSBvciBzeXN0ZW0gSUQpIGZvciB0aGUgVGVtcGxhdGVzIG9iamVjdAogY3JlYXRlZCBieSB0aGlzIGJ1aWxkZXIuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcueG1sLnNheC5Db250ZW50SGFuZGxlciI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+DQo8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLnhtbC5zYXguPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCI+Q29udGVudEhhbmRsZXI8L0E+PC9CPjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCNjaGFyYWN0ZXJzKGNoYXJbXSwgaW50LCBpbnQpIj5jaGFyYWN0ZXJzPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI2VuZERvY3VtZW50KCkiPmVuZERvY3VtZW50PC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI2VuZEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmVuZEVsZW1lbnQ8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0NvbnRlbnRIYW5kbGVyLmh0bWwjZW5kUHJlZml4TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZW5kUHJlZml4TWFwcGluZzwvQT4sIA0KPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3htbC9zYXgvQ29udGVudEhhbmRsZXIuaHRtbCNpZ25vcmFibGVXaGl0ZXNwYWNlKGNoYXJbXSwgaW50LCBpbnQpIj5pZ25vcmFibGVXaGl0ZXNwYWNlPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI3Byb2Nlc3NpbmdJbnN0cnVjdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc2luZ0luc3RydWN0aW9uPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI3NldERvY3VtZW50TG9jYXRvcihvcmcueG1sLnNheC5Mb2NhdG9yKSI+c2V0RG9jdW1lbnRMb2NhdG9yPC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI3NraXBwZWRFbnRpdHkoamF2YS5sYW5nLlN0cmluZykiPnNraXBwZWRFbnRpdHk8L0E+LCANCjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy94bWwvc2F4L0NvbnRlbnRIYW5kbGVyLmh0bWwjc3RhcnREb2N1bWVudCgpIj5zdGFydERvY3VtZW50PC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI3N0YXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcueG1sLnNheC5BdHRyaWJ1dGVzKSI+c3RhcnRFbGVtZW50PC9BPiwgDQo8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcveG1sL3NheC9Db250ZW50SGFuZGxlci5odG1sI3N0YXJ0UHJlZml4TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+c3RhcnRQcmVmaXhNYXBwaW5nPC9BPjwvQ09ERT48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQombmJzcDsNCjxQPg0KDQo8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+DQoNCg0KPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0iZ2V0VGVtcGxhdGVzKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldFRlbXBsYXRlczwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2phdmF4L3htbC90cmFuc2Zvcm0vVGVtcGxhdGVzLmh0bWwiPlRlbXBsYXRlczwvQT4gPEI+Z2V0VGVtcGxhdGVzPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+V2hlbiBhIFRlbXBsYXRlc0hhbmRsZXIgb2JqZWN0IGlzIHVzZWQgYXMgYSBDb250ZW50SGFuZGxlcgogZm9yIHRoZSBwYXJzaW5nIG9mIHRyYW5zZm9ybWF0aW9uIGluc3RydWN0aW9ucywgaXQgY3JlYXRlcyBhIFRlbXBsYXRlcyBvYmplY3QsCiB3aGljaCB0aGUgY2FsbGVyIGNhbiBnZXQgb25jZSB0aGUgU0FYIGV2ZW50cyBoYXZlIGJlZW4gY29tcGxldGVkLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBUZW1wbGF0ZXMgb2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQgZHVyaW5nCiB0aGUgU0FYIGV2ZW50IHByb2Nlc3MsIG9yIG51bGwgaWYgbm8gVGVtcGxhdGVzIG9iamVjdCBoYXMKIGJlZW4gY3JlYXRlZC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InNldFN5c3RlbUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+DQpzZXRTeXN0ZW1JZDwvSDM+DQo8UFJFPg0KcHVibGljIHZvaWQgPEI+c2V0U3lzdGVtSWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzeXN0ZW1JRCk8L1BSRT4NCjxETD4NCjxERD5TZXQgdGhlIGJhc2UgSUQgKFVSSSBvciBzeXN0ZW0gSUQpIGZvciB0aGUgVGVtcGxhdGVzIG9iamVjdAogY3JlYXRlZCBieSB0aGlzIGJ1aWxkZXIuICBUaGlzIG11c3QgYmUgc2V0IGluIG9yZGVyIHRvCiByZXNvbHZlIHJlbGF0aXZlIFVSSXMgaW4gdGhlIHN0eWxlc2hlZXQuICBUaGlzIG11c3QgYmUKIGNhbGxlZCBiZWZvcmUgdGhlIHN0YXJ0RG9jdW1lbnQgZXZlbnQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3lzdGVtSUQ8L0NPREU+IC0gQmFzZSBVUkkgZm9yIHRoaXMgc3R5bGVzaGVldC48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldFN5c3RlbUlkKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldFN5c3RlbUlkPC9IMz4NCjxQUkU+DQpwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTeXN0ZW1JZDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkdldCB0aGUgYmFzZSBJRCAoVVJJIG9yIHN5c3RlbSBJRCkgZnJvbSB3aGVyZSByZWxhdGl2ZQogVVJMcyB3aWxsIGJlIHJlc29sdmVkLjxERD48REw+DQo8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBzeXN0ZW1JRCB0aGF0IHdhcyBzZXQgd2l0aCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwvdHJhbnNmb3JtL3NheC9UZW1wbGF0ZXNIYW5kbGVyLmh0bWwjc2V0U3lzdGVtSWQoamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPnNldFN5c3RlbUlkKGphdmEubGFuZy5TdHJpbmcpPC9DT0RFPjwvQT4uPC9ETD4NCjwvREQ+DQo8L0RMPg0KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPg0KPEhSPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGVtcGxhdGVzSGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPC9UUj4NCjwvVEFCTEU+DQo8L1REPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+DQo8L0VNPg0KPC9URD4NCjwvVFI+DQoNCjxUUj4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQombmJzcDtQUkVWIENMQVNTJm5ic3A7DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9qYXZheC94bWwvdHJhbnNmb3JtL3NheC9UcmFuc2Zvcm1lckhhbmRsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsNCiZuYnNwOzxBIEhSRUY9IlRlbXBsYXRlc0hhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQpERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCkNvcHlyaWdodCCpIDIwMDYgQXBhY2hlIFhNTCBQcm9qZWN0LiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPC9CT0RZPg0KPC9IVE1MPg0K