PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+CjwhLS1OZXdQYWdlLS0+CjxIVE1MPgo8SEVBRD4KPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgo8VElUTEU+CkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKPC9USVRMRT4KPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIsRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyIGNsYXNzIj4KPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgo8L0hFQUQ+CjxTQ1JJUFQ+CmZ1bmN0aW9uIGFzZCgpCnsKcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKfQo8L1NDUklQVD4KPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgo8VFI+CjxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8L1RSPgo8L1RBQkxFPgo8L1REPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KPC9FTT4KPC9URD4KPC9UUj4KCjxUUj4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOwombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7PEEgSFJFRj0iRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOwombmJzcDsKPFNDUklQVD4KICA8IS0tCiAgaWYod2luZG93PT10b3ApIHsKICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOwogIH0KICAvLy0tPgo8L1NDUklQVD4KPE5PU0NSSVBUPgo8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KPC9OT1NDUklQVD4KPC9GT05UPjwvVEQ+CjwvVFI+CjxUUj4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgpERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgoKPEhSPgo8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+CjxIMj4KPEZPTlQgU0laRT0iLTEiPgpvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+CjxCUj4KQ2xhc3MgRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMj4KPFBSRT4KamF2YS5sYW5nLk9iamVjdAogIHwKICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPgo8L1BSRT4KPERMPgo8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvREQ+CjwvREw+CjxIUj4KPERMPgo8RFQ+cHVibGljIGNsYXNzIDxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvREw+Cgo8UD4KVGhpcyBpcyBhIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIHRoYXQgd3JpdGVzIGZpbGUgZGF0YSBkaXJlY3RseSB0bwogdG8gdGVtcG9yYXJ5IGZpbGVzIG9uIGRpc2suCjxQPgoKPFA+CjxETD4KPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgo8L0RMPgo8SFI+Cgo8UD4KPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KCgo8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjYWxsRWxlbWVudHMiPmFsbEVsZW1lbnRzPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSGFzaHRhYmxlIHJlcHJlc2VudGluZyBhbGwgZWxlbW5lbnRzLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2ZpbGVFbGVtZW50cyI+ZmlsZUVsZW1lbnRzPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSBmaWxlcyB1cGxvYWRlZC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjbWFwcGluZyI+bWFwcGluZzwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSB1c2VkIGZvciB0aGlzIGNsYXNzLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjdGVtcERpciI+dGVtcERpcjwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCN0ZXh0RWxlbWVudHMiPnRleHRFbGVtZW50czwvQT48L0I+PC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgdGhlIGZvcm0gdGV4dCBpbnB1dCBuYW1lcyBhbmQgdmFsdWVzLjwvVEQ+CjwvVFI+CjwvVEFCTEU+CiZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+CjxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjQVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQiPkFUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEPC9BPjwvQ09ERT48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgoKPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgo8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CjxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDsKPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CjxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY3JlYXRlRGlza0ZpbGUob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj5jcmVhdGVEaXNrRmlsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Jm5ic3A7ZWxlbWVudCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2NyZWF0ZVRleHRFbGVtZW50KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRFbGVtZW50KSI+Y3JlYXRlVGV4dEVsZW1lbnQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4mbmJzcDtlbGVtZW50KTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2FsbHMgb24gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPjxDT0RFPnJvbGxiYWNrKCk8L0NPREU+PC9BPiB0byBkZWxldGUKIHRlbXBvcmFyeSBmaWxlcy48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPmdldEFsbEVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmV0dXJucyBhbGwgZWxlbWVudHMgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEZpbGVFbGVtZW50cygpIj5nZXRGaWxlRWxlbWVudHM8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSBGb3JtRmlsZQogaW5wdXQgZWxlbWVudHMgb2YgdGhlIHJlcXVlc3QuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KCjxCUj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3Q8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRNYXhTaXplKGphdmEubGFuZy5TdHJpbmcpIj5nZXRNYXhTaXplPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0cmluZ1NpemUpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzIGZyb20gdGhlIHN0cmluZwogcmVwcmVzZW50YXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2U8L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFRleHRFbGVtZW50cygpIj5nZXRUZXh0RWxlbWVudHM8L0E+PC9CPigpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSB0ZXh0CiBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgo8L1RSPgo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgo8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2hhbmRsZVJlcXVlc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmhhbmRsZVJlcXVlc3Q8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgaW50ZXJuYWwgaGFzaHRhYmxlcyB3aXRoIG11bHRpcGFydCByZXF1ZXN0IGRhdGEuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcmV0cmlldmVUZW1wRGlyKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5yZXRyaWV2ZVRlbXBEaXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgZnJvbSBlaXRoZXIgQWN0aW9uU2VydmxldCwgYSBjb250ZXh0CiBwcm9wZXJ0eSwgb3IgYSBzeXN0ZW0gcHJvcGVydHksIGluIHRoYXQgb3JkZXIuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNyb2xsYmFjaygpIj5yb2xsYmFjazwvQT48L0I+KCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkLjwvVEQ+CjwvVFI+CjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+CjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+CjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnNldE1hcHBpbmc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgoKPEJSPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UuPC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L0NPREU+Cgo8QlI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZwogQWN0aW9uU2VydmxldCBpbnN0YW5jZS48L1REPgo8L1RSPgo8L1RBQkxFPgombmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+CjxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KPC9UUj4KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+CjxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KPC9UUj4KPC9UQUJMRT4KJm5ic3A7CjxQPgoKPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgoKPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+CmxvZzwvSDM+CjxQUkU+CnByb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KPERMPgo8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgo8UD4KPERMPgo8L0RMPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJzZXJ2bGV0Ij48IS0tIC0tPjwvQT48SDM+CnNlcnZsZXQ8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gPEI+c2VydmxldDwvQj48L1BSRT4KPERMPgo8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UgdXNlZCBmb3IgdGhpcyBjbGFzcy4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0ibWFwcGluZyI+PCEtLSAtLT48L0E+PEgzPgptYXBwaW5nPC9IMz4KPFBSRT4KcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPm1hcHBpbmc8L0I+PC9QUkU+CjxETD4KPEREPlRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuCjxQPgo8REw+CjwvREw+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImZpbGVFbGVtZW50cyI+PCEtLSAtLT48L0E+PEgzPgpmaWxlRWxlbWVudHM8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5maWxlRWxlbWVudHM8L0I+PC9QUkU+CjxETD4KPEREPkEgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSBmaWxlcyB1cGxvYWRlZC4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0idGV4dEVsZW1lbnRzIj48IS0tIC0tPjwvQT48SDM+CnRleHRFbGVtZW50czwvSDM+CjxQUkU+CnByb3RlY3RlZCBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPnRleHRFbGVtZW50czwvQj48L1BSRT4KPERMPgo8REQ+QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIHRoZSBmb3JtIHRleHQgaW5wdXQgbmFtZXMgYW5kIHZhbHVlcy4KPFA+CjxETD4KPC9ETD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iYWxsRWxlbWVudHMiPjwhLS0gLS0+PC9BPjxIMz4KYWxsRWxlbWVudHM8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5hbGxFbGVtZW50czwvQj48L1BSRT4KPERMPgo8REQ+QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIGFsbCBlbGVtbmVudHMuCjxQPgo8REw+CjwvREw+CjwvREw+CjxIUj4KCjxBIE5BTUU9InRlbXBEaXIiPjwhLS0gLS0+PC9BPjxIMz4KdGVtcERpcjwvSDM+CjxQUkU+CnByb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRlbXBEaXI8L0I+PC9QUkU+CjxETD4KPEREPlRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5Lgo8UD4KPERMPgo8L0RMPgo8L0RMPgoKPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgoKPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgo8L1RSPgo8L1RBQkxFPgoKPEEgTkFNRT0iRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMz4KPFBSRT4KcHVibGljIDxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj4oKTwvUFJFPgo8REw+CjwvREw+Cgo8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+Cgo8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+CjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KPC9UUj4KPC9UQUJMRT4KCjxBIE5BTUU9ImhhbmRsZVJlcXVlc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KaGFuZGxlUmVxdWVzdDwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPmhhbmRsZVJlcXVlc3Q8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KQogICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGludGVybmFsIGhhc2h0YWJsZXMgd2l0aCBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhLgogSWYgdGhlIHJlcXVlc3QgYXJndW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIsCiB0aGUgcmVxdWVzdCB3cmFwcGVyIHdpbGwgYmUgcG9wdWxhdGVkIGFzIHdlbGwuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aGFuZGxlUmVxdWVzdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+Cgo8RFQ+PEI+VGhyb3dzOjwvQj4KPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSB0aHJvd24gaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmc8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjcmVhdGVUZXh0RWxlbWVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPjwhLS0gLS0+PC9BPjxIMz4KY3JlYXRlVGV4dEVsZW1lbnQ8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgdm9pZCA8Qj5jcmVhdGVUZXh0RWxlbWVudDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Jm5ic3A7ZWxlbWVudCk8L1BSRT4KPERMPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8REQ+PERMPgo8L0RMPgo8L0REPgo8L0RMPgo8SFI+Cgo8QSBOQU1FPSJjcmVhdGVEaXNrRmlsZShvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPjwhLS0gLS0+PC9BPjxIMz4KY3JlYXRlRGlza0ZpbGU8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgdm9pZCA8Qj5jcmVhdGVEaXNrRmlsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4mbmJzcDtlbGVtZW50KTwvUFJFPgo8REw+CjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldEFsbEVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0QWxsRWxlbWVudHM8L0gzPgo8UFJFPgpwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRBbGxFbGVtZW50czwvQj4oKTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+CjxERD5UaGlzIG1ldGhvZCByZXR1cm5zIGFsbCBlbGVtZW50cyBvZiBhIG11bHRpcGFydCByZXF1ZXN0Lgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPmdldEFsbEVsZW1lbnRzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYXJlIGlucHV0IG5hbWVzIGFuZCB2YWx1ZXMKICAgYXJlIGVpdGhlciBTdHJpbmdzIG9yIEZvcm1GaWxlczwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldFRleHRFbGVtZW50cygpIj48IS0tIC0tPjwvQT48SDM+CmdldFRleHRFbGVtZW50czwvSDM+CjxQUkU+CnB1YmxpYyBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmdldFRleHRFbGVtZW50czwvQj4oKTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+CjxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSB0ZXh0CiBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRUZXh0RWxlbWVudHMoKSI+Z2V0VGV4dEVsZW1lbnRzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYW5kIHZhbHVlcyBhcmUgdGhlIG5hbWVzIGFuZAogIHZhbHVlcyBvZiB0aGUgcmVxdWVzdCBpbnB1dCBwYXJhbWV0ZXJzPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0RmlsZUVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0RmlsZUVsZW1lbnRzPC9IMz4KPFBSRT4KcHVibGljIGphdmEudXRpbC5IYXNodGFibGUgPEI+Z2V0RmlsZUVsZW1lbnRzPC9CPigpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIEZvcm1GaWxlCiBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+Z2V0RmlsZUVsZW1lbnRzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KCjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYXJlIHRoZSBpbnB1dCBuYW1lcyBvZiB0aGUKICBmaWxlcyBhbmQgdGhlIHZhbHVlcyBhcmUgRm9ybUZpbGUgb2JqZWN0czxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Q09ERT5Gb3JtRmlsZTwvQ09ERT48L0E+PC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0icm9sbGJhY2soKSI+PCEtLSAtLT48L0E+PEgzPgpyb2xsYmFjazwvSDM+CjxQUkU+CnB1YmxpYyB2b2lkIDxCPnJvbGxiYWNrPC9CPigpPC9QUkU+CjxETD4KPEREPkRlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkLgo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPnJvbGxiYWNrPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZmluaXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KZmluaXNoPC9IMz4KPFBSRT4KcHVibGljIHZvaWQgPEI+ZmluaXNoPC9CPigpPC9QUkU+CjxETD4KPEREPkNhbGxzIG9uIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNyb2xsYmFjaygpIj48Q09ERT5yb2xsYmFjaygpPC9DT0RFPjwvQT4gdG8gZGVsZXRlCiB0ZW1wb3JhcnkgZmlsZXMuCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InNldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CnNldFNlcnZsZXQ8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRTZXJ2bGV0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPkNvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZwogQWN0aW9uU2VydmxldCBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InNldE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+CnNldE1hcHBpbmc8L0gzPgo8UFJFPgpwdWJsaWMgdm9pZCA8Qj5zZXRNYXBwaW5nPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9QUkU+CjxETD4KPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KPEREPkNvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZwogQWN0aW9uTWFwcGluZyBpbnN0YW5jZS4KPFA+CjxERD48REw+CjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+c2V0TWFwcGluZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgpnZXRTZXJ2bGV0PC9IMz4KPFBSRT4KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPmdldFNlcnZsZXQ8L0I+KCk8L1BSRT4KPERMPgo8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvQj48L0REPgo8REQ+R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlCjxQPgo8REQ+PERMPgo8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPEhSPgoKPEEgTkFNRT0iZ2V0TWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CmdldE1hcHBpbmc8L0gzPgo8UFJFPgpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+Z2V0TWFwcGluZzwvQj4oKTwvUFJFPgo8REw+CjxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+CjxERD5HZXQgdGhlIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UgZm9yIHRoaXMgcmVxdWVzdAo8UD4KPEREPjxETD4KPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+Z2V0TWFwcGluZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+CjwvREQ+CjxERD48REw+CjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9ImdldE1heFNpemUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KZ2V0TWF4U2l6ZTwvSDM+CjxQUkU+CnByb3RlY3RlZCBsb25nIDxCPmdldE1heFNpemU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHJpbmdTaXplKQogICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgo8REw+CjxERD5HZXRzIHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzIGZyb20gdGhlIHN0cmluZwogcmVwcmVzZW50YXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4KPFA+CjxERD48REw+CjwvREw+CjwvREQ+CjxERD48REw+Cgo8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+CjwvREQ+CjwvREw+CjxIUj4KCjxBIE5BTUU9InJldHJpZXZlVGVtcERpcihvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgpyZXRyaWV2ZVRlbXBEaXI8L0gzPgo8UFJFPgpwcm90ZWN0ZWQgdm9pZCA8Qj5yZXRyaWV2ZVRlbXBEaXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L1BSRT4KPERMPgo8REQ+UmV0cmlldmVzIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZyb20gZWl0aGVyIEFjdGlvblNlcnZsZXQsIGEgY29udGV4dAogcHJvcGVydHksIG9yIGEgc3lzdGVtIHByb3BlcnR5LCBpbiB0aGF0IG9yZGVyLgo8UD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPEREPjxETD4KPC9ETD4KPC9ERD4KPC9ETD4KPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgo8SFI+Cgo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+CjxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KPFRSPgo8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+CjxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgogIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CiAgPC9UUj4KPC9UQUJMRT4KPC9URD4KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+CjwvRU0+CjwvVEQ+CjwvVFI+Cgo8VFI+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+CjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CiZuYnNwOzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKJm5ic3A7CjxTQ1JJUFQ+CiAgPCEtLQogIGlmKHdpbmRvdz09dG9wKSB7CiAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKICB9CiAgLy8tLT4KPC9TQ1JJUFQ+CjxOT1NDUklQVD4KPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+CjwvTk9TQ1JJUFQ+CjwvRk9OVD48L1REPgo8L1RSPgo8VFI+CjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CiAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+CjwvVFI+CjwvVEFCTEU+CjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KCjxIUj4KQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KPC9CT0RZPgo8L0hUTUw+Cg==