PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9ICAgICBCIGkgZSBuIHYgZSBuIGkgZCBvICAgYSBsICAgdCB1IHQgbyByICAgZCBlICAgViBJIE0gIC0gIFZlcnNp824gMS40ICAgICA9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgVmltIGVzIHVuIGVkaXRvciBtdXkgcG90ZW50ZSBxdWUgZGlzcG9uZSBkZSBtdWNob3MgbWFuZGF0b3MsIGRlbWFzaWFkb3MKICAgICBwYXJhIHNlciBleHBsaWNhZG9zIGVuIHVuIHR1dG9yIGNvbW8g6XN0ZS4gRXN0ZSB0dXRvciBlc3ThIGRpc2XxYWRvCiAgICAgcGFyYSBkZXNjcmliaXIgc3VmaWNpZW50ZXMgbWFuZGF0b3MgcGFyYSBxdWUgdXN0ZWQgc2VhIGNhcGF6IGRlCiAgICAgYXByZW5kZXIgZuFjaWxtZW50ZSBhIHVzYXIgVmltIGNvbW8gdW4gZWRpdG9yIGRlIHByb3Dzc2l0byBnZW5lcmFsLgoKICAgICBFbCB0aWVtcG8gbmVjZXNhcmlvIHBhcmEgY29tcGxldGFyIGVsIHR1dG9yIGVzIGFwcm94aW1hZGFtZW50ZSBkZSAyNS0zMAogICAgIG1pbnV0b3MsIGRlcGVuZGllbmRvIGRlIGN1YW50byB0aWVtcG8gc2UgZGVkaXF1ZSBhIGxhIGV4cGVyaW1lbnRhY2nzbi4KCiAgICAgTG9zIG1hbmRhdG9zIGRlIGVzdGFzIGxlY2Npb25lcyBtb2RpZmljYXLhbiBlbCB0ZXh0by4gSGFnYSB1bmEgY29waWEgZGUKICAgICBlc3RlIGZpY2hlcm8gcGFyYSBwcmFjdGljYXIgKGNvbiCrdmltdHV0b3K7IGVzdG8geWEgZXMgdW5hIGNvcGlhKS4KCiAgICAgRXMgaW1wb3J0YW50ZSByZWNvcmRhciBxdWUgZXN0ZSB0dXRvciBlc3ThIHBlbnNhZG8gcGFyYSBlbnNl8WFyIGNvbgogICAgIGxhIHBy4WN0aWNhLiBFc3RvIHNpZ25pZmljYSBxdWUgZXMgbmVjZXNhcmlvIGVqZWN1dGFyIGxvcyBtYW5kYXRvcwogICAgIHBhcmEgYXByZW5kZXJsb3MgYWRlY3VhZGFtZW50ZS4gU2kg+m5pY2FtZW50ZSBzZSBsZWUgZWwgdGV4dG8sIHNlCiAgICAgb2x2aWRhcuFuIGxvcyBtYW5kYXRvcy4KCiAgICAgQWhvcmEsIGFzZWf6cmVzZSBkZSBxdWUgbGEgdGVjbGEgZGUgYmxvcXVlbyBkZSBtYXn6c2N1bGFzIG5vIGVzdOEKICAgICBhY3RpdmFkYSB5IHB1bHNlIGxhIHRlY2xhCWogIGxvIHN1ZmljaWVudGUgcGFyYSBtb3ZlciBlbCBjdXJzb3IKICAgICBkZSBmb3JtYSBxdWUgbGEgTGVjY2nzbiAxLjEgb2N1cGUgY29tcGxldGFtZW50ZSBsYSBwYW50YWxsYS4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMZWNjafNuIDEuMTogTU9WSU1JRU5UT1MgREVMIENVUlNPUgoKICoqIFBhcmEgbW92ZXIgZWwgY3Vyc29yLCBwdWxzZSBsYXMgdGVjbGFzIGgsaixrLGwgZGUgbGEgZm9ybWEgcXVlIHNlIGluZGljYS4gKioKICAgICAgXgogICAgICBrICAgICAgIEluZGljYWNp8246IExhIHRlY2xhIGggZXN04SBhIGxhIGl6cXVpZXJkYSB5IG11ZXZlIGEgbGEgaXpxdWllcmRhLgogPCBoCSBsID4JCSAgTGEgdGVjbGEgbCBlc3ThIGEgbGEgZGVyZWNoYSB5IG11ZXZlIGEgbGEgZGVyZWNoYS4KICAgICAgagkJCSAgTGEgdGVjbGEgaiBwYXJlY2UgdW5hIGZsZWNoYSBxdWUgYXB1bnRhIGhhY2lhIGFiYWpvLgogICAgICB2CgogIDEuIE11ZXZhIGVsIGN1cnNvciBwb3IgbGEgcGFudGFsbGEgaGFzdGEgcXVlIHNlIHNpZW50YSBj821vZG8gY29uIGVsbG8uCgogIDIuIE1hbnRlbmdhIHB1bHNhZGEgbGEgdGVjbGEJaiAgaGFzdGEgcXVlIHNlIHJlcGl0YSCrYXV0b23hZ2ljYW1lbnRluy4KLS0tPiBBaG9yYSB5YSBzYWJlIGNvbW8gbGxlZ2FyIGEgbGEgbGVjY2nzbiBzaWd1aWVudGUuCgogIDMuIFV0aWxpemFuZG8gbGEgdGVjbGEgYWJham8sIHZheWEgYSBsYSBMZWNjafNuIDEuMi4KCk5vdGE6IFNpIGFsZ3VuYSB2ZXogbm8gZXN04SBzZWd1cm8gc29icmUgYWxnbyBxdWUgaGEgdGVjbGVhZG8sIHB1bHNlIDxFU0M+CiAgICAgIHBhcmEgc2l0dWFyc2UgZW4gbW9kbyBOb3JtYWwuIEx1ZWdvIHZ1ZWx2YSBhIHRlY2xlYXIgbGEgb3JkZW4gcXVlIGRlc2VhYmEuCgpOb3RhOiBMYXMgdGVjbGFzIGRlIG1vdmltaWVudG8gZGVsIGN1cnNvciB0YW1iaeluIGZ1bmNpb25hbi4gUGVybyB1c2FuZG8KICAgICAgaGprbCBwb2Ry4SBtb3ZlcnNlIG11Y2hvIG3hcyBy4XBpZG8gdW5hIHZleiBxdWUgc2UgYWNvc3R1bWJyZSBhIGVsbG8uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgTGVjY2nzbiAxLjI6IEVOVFJBTkRPIFkgU0FMSUVORE8gREUgVklNCgogIKGhIE5PVEE6IEFudGVzIGRlIGVqZWN1dGFyIGFsZ3VubyBkZSBsb3MgcGFzb3Mgc2lndWllbnRlcyBsZWEgcHJpbWVybwoJICAgbGEgbGVjY2nzbiBlbnRlcmEhIQoKICAxLiBQdWxzZSBsYSB0ZWNsYSA8RVNDPiAocGFyYSBhc2VndXJhcnNlIGRlIHF1ZSBlc3ThIGVuIG1vZG8gTm9ybWFsKS4KCiAgMi4gRXNjcmliYToJCQk6cSEgPElOVFJPPgoKLS0tPiBFc3RvIHByb3ZvY2EgbGEgc2FsaWRhIGRlbCBlZGl0b3IgU0lOIGd1YXJkYXIgbmluZ/puIGNhbWJpbyBxdWUgc2UgaGF5YQogICAgIGhlY2hvLiBTaSBxdWllcmUgZ3VhcmRhciBsb3MgY2FtYmlvcyB5IHNhbGlyIGVzY3JpYmE6CgkJCQk6d3EgPElOVFJPPgoKICAzLiBDdWFuZG8gdmVhIGVsIHPtbWJvbG8gZGVsIHNpc3RlbWEsIGVzY3JpYmEgZWwgbWFuZGF0byBxdWUgbGUgdHJham8gYSBlc3RlCiAgICAgdHV0b3IuIMlzdGUgcHVlZGUgaGFiZXIgc2lkbzogICB2aW10dXRvciA8SU5UUk8+CiAgICAgTm9ybWFsbWVudGUgc2UgdXNhcu1hOgkgICAgIHZpbSB0dXRvciA8SU5UUk8+CgotLS0+ICd2aW0nIHNpZ25pZmljYSBlbnRyYXIgYWwgZWRpdG9yLCAndHV0b3InIGVzIGVsIGZpY2hlcm8gYSBlZGl0YXIuCgogIDQuIFNpIGhhIG1lbW9yaXphZG8gZXN0b3MgcGFzb3MgeSBzZSBzZSBzaWVudGUgY29uIGNvbmZpYW56YSwgZWplY3V0ZSBsb3MKICAgICBwYXNvcyAxIGEgMyBwYXJhIHNhbGlyIHkgdm9sdmVyIGEgZW50cmFyIGFsIGVkaXRvci4gRGVzcHXpcyBtdWV2YSBlbAogICAgIGN1cnNvciBoYXN0YSBsYSBMZWNjafNuIDEuMy4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgTGVjY2nzbiAxLjM6IEVESUNJ004gREUgVEVYVE8gLSBCT1JSQURPCgoqKiBFc3RhbmRvIGVuIG1vZG8gTm9ybWFsIHB1bHNlICB4ICBwYXJhIGJvcnJhciBlbCBjYXLhY3RlciBzb2JyZSBlbCBjdXJzb3IuICoqagoKCiAgMS4gTXVldmEgZWwgY3Vyc29yIGEgbGEgbO1uZWEgZGUgYWJham8gc2XxYWxhZGEgY29uIC0tLT4uCgogIDIuIFBhcmEgY29ycmVnaXIgbG9zIGVycm9yZXMsIG11ZXZhIGVsIGN1cnNvciBoYXN0YSBxdWUgZXN06SBiYWpvIGVsCiAgICAgY2Fy4WN0ZXIgcXVlIHZhIGFzZXIgYm9ycmFkby4KCiAgMy4gUHVsc2UgbGEgdGVjbGEgIHgJcGFyYSBib3JyYXIgZWwgY2Fy4WN0ZXIgc29icmFudGUuCgogIDQuIFJlcGl0YSBsb3MgcGFzb3MgMiBhIDQgaGFzdGEgcXVlIGxhIGZyYXNlIHNlYSBsYSBjb3JyZWN0YS4KCi0tLT4gTGEgdnZhY2Egc2FsdPPzIHNvb2JyZWUgbGFhIGx1dXV1bmEuCgogIDUuIEFob3JhIHF1ZSBsYSBs7W5lYSBlc3RhIGNvcnJlY3RhLCBjb250aW76ZSBjb24gbGEgTGVjY2nzbiAxLjQuCgoKTk9UQTogQSBtZWRpZGEgcXVlIHZheWEgYXZhbnphbmRvIGVuIGVzdGUgdHV0b3Igbm8gaW50ZW50ZSBtZW1vcml6YXIsCiAgICAgIGFwcmVuZGEgcHJhY3RpY2FuZG8uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICBMZWNjafNuIDEuNDogRURJQ0nTTiBERSBURVhUTyAtIElOU0VSQ0nTTgoKICAgICAgKiogRXN0YW5kbyBlbiBtb2RvIE5vcm1hbCBwdWxzZSAgaSAgcGFyYSBpbnNlcnRhciB0ZXh0by4gKioKCgogIDEuIE11ZXZhIGVsIGN1cnNvciBhIGxhIHByaW1lcmEgbO1uZWEgZGUgYWJham8gc2XxYWxhZGEgY29uIC0tLT4uCgogIDIuIFBhcmEgcXVlIGxhIHByaW1lcmEgbO1uZWEgc2UgaWd1YWwgYSBsYSBzZWd1bmRhIG11ZXZhIGVsIGN1cnNvciBiYWpvIGVsCiAgICAgcHJpbWVyIGNhcuFjdGVyIHF1ZSBzaWd1ZSBhbCB0ZXh0byBxdWUgaGEgZGUgc2VyIGluc2VydGFkby4KCiAgMy4gUHVsc2UgIGkgIHkgZXNjcmliYSBsb3MgY2FyYWN0ZXJlcyBhIGHxYWRpci4KCiAgNC4gQSBtZWRpZGEgcXVlIHNlYSBjb3JyZWdpZG8gY2FkYSBlcnJvciBwdWxzZSA8RVNDPiBwYXJhIHZvbHZlciBhbCBtb2RvCiAgICAgTm9ybWFsLiBSZXBpdGEgbG9zIHBhc29zIDIgYSA0IHBhcmEgY29ycmVnaXIgbGEgZnJhc2UuCgotLS0+IEZsdGEgdGV4dG8gZW4gZXN0YSAuCi0tLT4gRmFsdGEgYWxnbyBkZSB0ZXh0byBlbiBlc3RhIGztbmVhLgoKICA1LiBDdWFuZG8gc2Ugc2llbnRhIGPzbW9kbyBpbnNlcnRhbmRvIHRleHRvIHBhc2UgYWwgcmVzdW1lbiBxdWUgZXN0YSBt4XMKICAgICBhYmFqby4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgIFJFU1VNRU4gREUgTEEgTEVDQ0nTTiAxCgoKICAxLiBFbCBjdXJzb3Igc2UgbXVldmUgdXRpbGl6YW5kbyBsYXMgdGVjbGFzIGRlIGxhcyBmbGVjaGFzIG8gbGFzIHRlY2xhcyBoamtsLgoJIGggKGl6cXVpZXJkYSkJICAgaiAoYWJham8pCSAgayAoYXJyaWJhKQkgIGwgKGRlcmVjaGEpCgogIDIuIFBhcmEgYWNjZWRlciBhIFZpbSAoZGVzZGUgZWwgc+1tYm9sbyBkZWwgc2lzdGVtYSAlKSBlc2NyaWJhOgogICAgIHZpbSBGSUxFTkFNRSA8SU5UUk8+CgogIDMuIFBhcmEgc2FsaXIgZGUgVmltIGVzY3JpYmE6IDxFU0M+IDpxISA8SU5UUk8+IHBhcmEgZWxpbWluYXIgdG9kb3MKICAgICBsb3MgY2FtYmlvcy4KCiAgNC4gUGFyYSBib3JyYXIgdW4gY2Fy4WN0ZXIgc29icmUgZWwgY3Vyc29yIGVuIG1vZG8gTm9ybWFsIHB1bHNlOiAgeAoKICA1LiBQYXJhIGluc2VydGFyIHRleHRvIGVuIGxhIHBvc2ljafNuIGRlbCBjdXJzb3IgZXN0YW5kbyBlbiBtb2RvIE5vcm1hbDoKCSAgcHVsc2UgICBpICAgZXNjcmliYSBlbCB0ZXh0bwkgcHVsc2UgPEVTQz4KCk5PVEE6IFB1bHNhbmRvIDxFU0M+IHNlIHZ1ZWx2ZSBhbCBtb2RvIE5vcm1hbCBvIGNhbmNlbGEgdW4gbWFuZGF0byBubyBkZXNlYWRvCiAgICAgIG8gaW5jb21wbGV0by4KCkFob3JhIGNvbnRpbvplIGNvbiBsYSBMZWNjafNuIDIuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgIExlY2Np824gMi4xOiAgTUFOREFUT1MgUEFSQSBCT1JSQVIKCgogICAgICAgKiogRXNjcmliYSBkdyBwYXJhIGJvcnJhciBoYXN0YSBlbCBmaW5hbCBkZSB1bmEgcGFsYWJyYSAqKgoKCiAgMS4gUHVsc2UgPEVTQz4gcGFyYSBhc2VndXJhcnNlIGRlIHF1ZSBlc3ThIGVuIGVsIG1vZG8gTm9ybWFsLgoKICAyLiBNdWV2YSBlbCBjdXJzb3IgYSBsYSBs7W5lYSBkZSBhYmFqbyBzZfFhbGFkYSBjb24gLS0tPi4KCiAgMy4gTXVldmEgZWwgY3Vyc29yIGFsIGNvbWllbnpvIGRlIHVuYSBwYWxhYnJhIHF1ZSBkZXNlZSBib3JyYXIuCgogIDQuIFB1bHNlICAgZHcgICBwYXJhIGhhY2VyIHF1ZSBsYSBwYWxhYnJhIGRlc2FwYXJlemNhLgoKCiAgTk9UQTogTGFzIGxldHJhcyAgIGR3ICAgYXBhcmVjZXLhbiBlbiBsYSD6bHRpbWEgbO1uZWEgZGUgbGEgcGFudGFsbGEgY3VhbmRvCglsYXMgZXNjcmliYS4gU2kgZXNjcmliZSBhbGdvIGVxdWl2b2NhZG8gcHVsc2UgPEVTQz4geSBjb21pZW5jZSBkZSBudWV2by4KCgotLS0+IEhheSBhbGd1bmFzIHBhbGFicmFzIHDhc2FsbyBiaWVuIHF1ZSBubyBwZXJ0ZW5lY2VuIHBhcGVsIGEgZXN0YSBmcmFzZS4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgTGVjY2nzbiAyLjI6IE3BUyBNQU5EQVRPUyBQQVJBIEJPUlJBUgoKCgkgICoqIEVzY3JpYmEgIGQkICBwYXJhIGJvcnJhciBoYXN0YSBlbCBmaW5hbCBkZSBsYSBs7W5lYS4gKioKCgogIDEuIFB1bHNlICA8RVNDPiAgcGFyYSBhc2VndXJhcnNlIGRlIHF1ZSBlc3ThIGVuIGVsIG1vZG8gTm9ybWFsLgoKICAyLiBNdWV2YSBlbCBjdXJzb3IgYSBsYSBs7W5lYSBkZSBhYmFqbyBzZfFhbGFkYSBjb24gLS0tPi4KCiAgMy4gTXVldmEgZWwgY3Vyc29yIGFsIGZpbmFsIGRlIGxhIGztbmVhIGNvcnJlY3RhIChERVNQVclTIGRlbCBwcmltZXIgLiApLgoKICA0LiBFc2NyaWJhICBkJCAgcGFyYSBib3JyYXIgaGFzdGEgZWwgZmluYWwgZGUgbGEgbO1uZWEuCgotLS0+IEFsZ3VpZW4gaGEgZXNjcml0byBlbCBmaW5hbCBkZSBlc3RhIGztbmVhIGRvcyB2ZWNlcy4gZXN0YSBs7W5lYSBkb3MgdmVjZXMuCgoKCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgTGVjY2nzbiAyLjM6IFNPQlJFIE1BTkRBVE9TIFkgT0JKRVRPUwoKCiAgRWwgZm9ybWF0byBkZWwgbWFuZGF0byBkZSBib3JyYXIgICBkCSBlcyBjb21vIHNpZ3VlOgoKCSBbbvptZXJvXSAgIGQJb2JqZXRvCSAgICBPCSAgICAgZAkgW276bWVyb10gICBvYmpldG8KICBkb25kZToKICAgbvptZXJvIC0gZXMgY3XhbnRhcyB2ZWNlcyBzZSBoYSBkZSBlamVjdXRhciBlbCBtYW5kYXRvIChvcGNpb25hbCwgZGVmZWN0bz0xKS4KICAgZCAtIGVzIGVsIG1hbmRhdG8gcGFyYSBib3JyYXIuCiAgIG9iamV0byAtIGVzIHNvYnJlIGxvIHF1ZSBlbCBtYW5kYXRvIHZhIGEgb3BlcmFyIChsaXN0YSwgYWJham8pLgoKICBVbmEgbGlzdGEgY29ydGEgZGUgb2JqZXRvczoKICAgdyAtIGRlc2RlIGVsIGN1cnNvciBoYXN0YSBlbCBmaW5hbCBkZSBsYSBwYWxhYnJhLCBpbmNsdXllbmRvIGVsIGVzcGFjaW8uCiAgIGUgLSBkZXNkZSBlbCBjdXJzb3IgaGFzdGEgZWwgZmluYWwgZGUgbGEgcGFsYWJyYSwgU0lOIGluY2x1aXIgZWwgZXNwYWNpby4KICAgJCAtIGRlc2RlIGVsIGN1cnNvciBoYXN0YSBlbCBmaW5hbCBkZSBsYSBs7W5lYS4KCk5PVEU6IFBhcmEgbG9zIGF2ZW50dXJlcm9zLCBwdWxzYW5kbyBz82xvIGVsIG9iamV0byBlc3RhbmRvIGVuIG1vZG8gTm9ybWFsCiAgICAgIHNpbiB1biBtYW5kYXRvIG1vdmVy4SBlbCBjdXJzb3IgY29tbyBzZSBlc3BlY2lmaWNhIGVuIGxhIGxpc3RhIGRlIG9iamV0b3MuCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJICAgICAgIExlY2Np824gMi40OiBVTkEgRVhDRVBDSdNOIEFMICdNQU5EQVRPLU9CSkVUTycKCgkgICAqKiBFc2NyaWJhCWRkICAgcGFyYSBib3JyYXIgdW5hIGztbmVhIGVudGVyYS4gKioKCiAgRGViaWRvIGEgbGEgZnJlY3VlbmNpYSBjb24gcXVlIHNlIGJvcnJhbiBs7W5lYXMgZW50ZXJhcywgbG9zIGRpc2XxYWRvcmVzCiAgZGUgVmltIGRlY2lkaWVyb24gcXVlIHNlcu1hIG3hcyBm4WNpbCBlbCBlc2NyaWJpciBzaW1wbGVtZW50ZSBkb3MgZGVzIGVuCiAgdW5hIGZpbGEgcGFyYSBib3JyYXIJdW5hIGztbmVhLgoKICAxLiBNdWV2YSBlbCBjdXJzb3IgYSBsYSBzZWd1bmRhIGztbmVhIGRlIGxhIGxpc3RhIGRlIGFiYWpvLgogIDIuIEVzY3JpYmEgIGRkICBwYXJhIGJvcnJhciBsYSBs7W5lYS4KICAzLiBNdel2YXNlIGFob3JhIGEgbGEgY3VhcnRhIGztbmVhLgogIDQuIEVzY3JpYmEgICAyZGQgICAocmVjdWVyZGUJbvptZXJvLW1hbmRhdG8tb2JqZXRvKSBwYXJhIGJvcnJhciBsYXMgZG9zCiAgICAgbO1uZWFzLgoKICAgICAgMSkgTGFzIHJvc2FzIHNvbiByb2phcywKICAgICAgMikgRWwgYmFycm8gZXMgZGl2ZXJ0aWRvLAogICAgICAzKSBFbCBjaWVsbyBlcyBhenVsLAogICAgICA0KSBZbyB0ZW5nbyB1biBjb2NoZSwKICAgICAgNSkgTG9zIHJlbG9qZXMgbWFyY2FuIGxhIGhvcmEsCiAgICAgIDYpIEVsIGF6dWNhciBlcyBkdWxjZSwKICAgICAgNykgWSBhc+0gZXJlcyB0dS4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgICBMZWNjafNuIDIuNTogRUwgTUFOREFUTyBERVNIQUNFUgoKCiAgICoqIFB1bHNlICB1CXBhcmEgZGVzaGFjZXIgbG9zIPpsdGltb3MgbWFuZGF0b3MsCgkgICAgIFUJcGFyYSBkZXNoYWNlciB1bmEgbO1uZWEgZW50ZXJhLiAgICAgICAqKgoKICAxLiBNdWV2YSBlbCBjdXJzb3IgYSBsYSBs7W5lYSBkZSBhYmFqbyBzZfFhbGFkYSBjb24gLS0tPiB5IHNpdPplbG8gYmFqbyBlbAogICAgIHByaW1lciBlcnJvci4KICAyLiBQdWxzZSAgeCAgcGFyYSBib3JyYXIgZWwgcHJpbWVyIGNhcuF0ZXIgZXJy825lby4KICAzLiBQdWxzZSBhaG9yYSAgdSAgcGFyYSBkZXNoYWNlciBlbCD6bHRpbW8gbWFuZGF0byBlamVjdXRhZG8uCiAgNC4gQWhvcmEgY29ycmlqYSB0b2RvcyBsb3MgZXJyb3JlcyBkZSBsYSBs7W5lYSB1c2FuZG8gZWwgbWFuZGF0byAgeC4KICA1LiBQdWxzZSBhaG9yYSAgVSAgbWF5+nNjdWxhIHBhcmEgZGV2b2x2ZXIgbGEgbO1uZWEgYSBzdSBlc3RhZG8gb3JpZ2luYWwuCiAgNi4gUHVsc2UgYWhvcmEgIHUgIHVuYXMgcG9jYXMgdmVjZXMgcGFyYSBkZXNoYWNlciBsbyBoZWNobyBwb3IgIFUgIHkgbG9zCiAgICAgbWFuZGF0b3MgcHJldmlvcy4KICA3LiBBaG9yYSBwdWxzZSBDVFJMLVIgKG1hbnRlbmdhIHB1bHNhZGEgbGEgdGVjbGEgQ1RSTCB5IHB1bHNlIFIpIHVuYXMKICAgICBwb2NhcyB2ZWNlcyBwYXJhIHZvbHZlciBhIGVqZWN1dGFyIGxvcyBtYW5kYXRvcyAoZGVzaGFjZXIgbG8gZGVzaGVjaG8pLgoKLS0tPiBDb3JycmlqYSBsb3MgZXJyb3JlcyBkZWUgZXN0dHRhIGztbmVhIHkgdnV1ZWx2YSBhIHBvbmVybG9zIGNvb24gZGVzaGFjZXIuCgogIDguIEVzdG9zIG1hbmRhdG9zIHNvbiBtdXkg+nRpbGVzLiBBaG9yYSBwYXNlIGFsIHJlc3VtZW4gZGUgbGEgTGVjY2nzbiAyLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICBSRVNVTUVOIERFIExBIExFQ0NJ004gMgoKICAxLiBQYXJhIGJvcnJhciBkZXNkZSBlbCBjdXJzb3IgaGFzdGEgZWwgZmluYWwgZGUgdW5hIHBhbGFicmEgcHVsc2U6CWR3CgogIDIuIFBhcmEgYm9ycmFyIGRlc2RlIGVsIGN1cnNvciBoYXN0YSBlbCBmaW5hbCBkZSB1bmEgbO1uZWEgcHVsc2U6CWQkCgogIDMuIFBhcmEgYm9ycmFyIHVuYSBs7W5lYSBlbnRlciBwdWxzZTogICAgZGQKCiAgNC4gRWwgZm9ybWF0byBkZSB1biBtYW5kYXRvIGVuIG1vZG8gTm9ybWFsIGVzOgoKICAgICAgIFtu+m1lcm9dICAgbWFuZGF0byAgIG9iamV0byAgIE8JIG1hbmRhdG8gICBbbvptZXJvXSAgIG9iamV0bwogICAgIGRvbmRlOgogICAgICAgbvptZXJvIC0gZXMgY3XhbnRhcyB2ZWNlcyBzZSBoYSBkZSBlamVjdXRhciBlbCBtYW5kYXRvCiAgICAgICBtYW5kYXRvIC0gZXMgbG8gcXVlIGhheSBxdWUgaGFjZXIsIHBvciBlamVtcGxvLCBkIHBhcmEgYm9ycmFyCiAgICAgICBvYmpldG8gLSBlcyBzb2JyZSBsbyBxdWUgZWwgbWFuZGF0byB2YSBhIG9wZXJhciwgcG9yIGVqZW1wbG8KCQl3IChwYWxhYnJhKSwgJCAoaGFzdGEgZWwgZmluYWwgZGUgbGEgbO1uZWEpLCBldGMuCgogIDUuIFBhcmEgZGVzaGFjZXIgYWNjaW9uZXMgcHJldmlhcyBwdWxzZToJCSB1ICh1IG1pbvpzY3VsYSkKICAgICBQYXJhIGRlc2hhY2VyIHRvZG9zIGxvcyBjYW1iaW9zIGRlIHVuYSBs7W5lYSBwdWxzZTogVSAoVSBtYXn6c2N1bGEpCiAgICAgUGFyYSBkZXNoYWNlciBsbyBkZXNoZWNobyBwdWxzZToJCQkgQ1RSTC1SCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSBMZWNjafNuIDMuMTogRUwgTUFOREFUTyCrUFVUuyAocG9uZXIpCgogICoqIFB1bHNlIHAgcGFyYSBwb25lciBsbyD6bHRpbW8gcXVlIGhhIGJvcnJhZG8gZGVzcHXpcyBkZWwgY3Vyc29yLiAqKgoKICAxLiBNdWV2YSBlbCBjdXJzb3IgYWwgZmluYWwgZGUgbGEgbGlzdGEgZGUgYWJham8uCgogIDIuIEVzY3JpYmEgIGRkICBwYXJhIGJvcnJhciBsYSBs7W5lYSB5IGFsbWFjZW5hcmxhIGVuIGVsIGJ1ZmZlciBkZSBWaW0uCgogIDMuIE11ZXZhIGVsIGN1cnNvciBhIGxhIGztbmVhIHF1ZSBkZWJlIHF1ZWRhciBwb3IgZGViYWpvIGRlIGxhCiAgICAgbO1uZWEgYSBtb3Zlci4KCiAgNC4gRXN0YW5kbyBlbiBtb2QgTm9ybWFsLCBwdWxzZSAgIHAJcGFyYSByZXN0aXR1aXIgbGEgbO1uZWEgYm9ycmFkYS4KCiAgNS4gUmVwaXRhIGxvcyBwYXNvcyAyIGEgNCBwYXJhIHBvbmVyIHRvZGFzIGxhcyBs7W5lYXMgZW4gZWwgb3JkZW4gY29ycmVjdG8uCgogICAgIGQpIL9QdWVkZXMgYXByZW5kZXJsYSB0dT8KICAgICBiKSBMYXMgdmlvbGV0YXMgc29uIGF6dWxlcywKICAgICBjKSBMYSBpbnRlbGlnZW5jaWEgc2UgYXByZW5kZSwKICAgICBhKSBMYXMgcm9zYXMgc29uIHJvamFzLAoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgIExlY2Np824gMy4yOiBFTCBNQU5EQVRPIKtSRVBMQUNFuyAocmVtcGxhemFyKQoKCiAgKiogUHVsc2UgIHIgIHkgdW4gY2Fy4WN0ZXIgcGFyYSBzdXN0aXR1aXIgZWwgY2Fy4WN0ZXIgc29icmUgZWwgY3Vyc29yLiAqKgoKCiAgMS4gTXVldmEgZWwgY3Vyc29yIGEgbGEgcHJpbWVyYSBs7W5lYSBkZSBhYmFqbyBzZfFhbGFkYSBjb24gLS0tPi4KCiAgMi4gTXVldmEgZWwgY3Vyc29yIHBhcmEgc2l0dWFybG8gYmFqbyBlbCBwcmltZXIgZXJyb3IuCgogIDMuIFB1bHNlICAgcgkgeSBlbCBjYXLhY3RlciBxdWUgZGViZSBzdXN0aXR1aXIgYWwgZXJy825lby4KCiAgNC4gUmVwaXRhIGxvcyBwYXNvcyAyIHkgMyBoYXN0YSBxdWUgbGEgcHJpbWVyYSBs7W5lYSBlc3TpIGNvcnJlZ2lkYS4KCi0tLT4goUN1ZW5kbyBlc3RhIGztbmVhIGZ1ZSByc2NyaXRhIGFsZ3VpZW4gcHVsc28gYWxndW5hcyB0ZWNsYXMgZXF1aWJvY2FkYXMhCi0tLT4goUN1YW5kbyBlc3RhIGztbmVhIGZ1ZSBlc2NyaXRhIGFsZ3VpZW4gcHVsc/MgYWxndW5hcyB0ZWNsYXMgZXF1aXZvY2FkYXMhCgoKCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQlMZWNjafNuIDMuMzogRUwgTUFOREFUTyCrQ0hBTkdFuyAoY2FtYmlhcikKCgogICAgICoqIFBhcmEgY2FtYmlhciBwYXJ0ZSBkZSB1bmEgcGFsYWJyYSBvIHRvZGEgZWxsYSBlc2NyaWJhICBjdyAuICoqCgoKICAxLiBNdWV2YSBlbCBjdXJzb3IgYSBsYSBwcmltZXJhIGztbmVhIGRlIGFiYWpvIHNl8WFsYWRhIGNvbiAtLS0+LgoKICAyLiBTaXT6ZSBlbCBjdXJzb3IgZW4gbGEgdSBkZSBsdWJycy4KCiAgMy4gRXNjcmliYSAgY3cgIHkgY29ycmlqYSBsYSBwYWxhYnJhIChlbiBlc3RlIGNhc28sIGVzY3JpYmEgJ+1uZWEnKS4KCiAgNC4gUHVsc2UgPEVTQz4geSBtdWV2YSBlbCBjdXJzb3IgYWwgZXJyb3Igc2lndWllbnRlIChlbCBwcmltZXIgY2Fy4WN0ZXIKICAgICBxdWUgZGViYSBjYW1iaWFyc2UpLgoKICA1LiBSZXBpdGEgbG9zIHBhc29zIDMgeSA0IGhhc3RhIHF1ZSBsYSBwcmltZXJhIGZyYXNlIHNlYSBpZ3VhbCBhIGxhIHNlZ3VuZGEuCgotLS0+IEVzdGEgbHVicnMgdGllbmUgdW5hcyBwb2NhcyBwc2thdnRhZCBxdWUgY29ycmVnaXIgdXNlbSBlbCBtYW5kYXRvIGNoYW5nZS4KLS0tPiBFc3RhIGztbmVhIHRpZW5lIHVuYXMgcG9jYXMgcGFsYWJyYXMgcXVlIGNvcnJlZ2lyIHVzYW5kbyBlbCBtYW5kYXRvIGNoYW5nZS4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgICBMZWNjafNuIDMuNDogTcFTIENBTUJJT1MgVVNBTkRPIGMKCiAgICoqIEVsIG1hbmRhdG8gY2hhbmdlIHNlIHV0aWxpemEgY29uIGxvcyBtaXNtb3Mgb2JqZXRvcyBxdWUgZGVsZXRlLiAqKgoKICAxLiBFbCBtYW5kYXRvIGNoYW5nZSBmdW5jaW9uYSBkZSBsYSBtaXNtYSBmb3JtYSBxdWUgZGVsZXRlLiBFbCBmb3JtYXRvIGVzOgoKICAgICAgIFtu+m1lcm9dICAgYyAgIG9iamV0bwkgICBPCSAgICBjCVtu+m1lcm9dICAgb2JqZXRvCgogIDIuIExvcyBvYmpldG9zIHNvbiB0YW1iaeltIGxvcyBtaXNtb3MsIHRhbGVzIGNvbW8gIHcgKHBhbGFicmEpLCAkIChmaW4gZGUKICAgICBsYSBs7W5lYSksIGV0Yy4KCiAgMy4gTXVldmEgZWwgY3Vyc29yIGEgbGEgcHJpbWVyYSBs7W5lYSBkZSBhYmFqbyBzZfFhbGFkYSBjb24gLS0tPi4KCiAgNC4gTXVldmEgZWwgY3Vyc29yIGFsIHByaW1lciBlcnJvci4KCiAgNS4gRXNjcmliYSAgYyQgIHBhcmEgaGFjZXIgcXVlIGVsIHJlc3RvIGRlIGxhIGztbmVhIHNlYSBjb21vIGxhIHNlZ3VuZGEKICAgICB5IHB1bHNlIDxFU0M+LgoKLS0tPiBFbCBmaW5hbCBkZSBlc3RhIGztbmVhIG5lY2VzaXRhIGFsZ3VuYSBheXVkYSBwYXJhIHF1ZSBzZWEgY29tbyBsYSBzZWd1bmRhLgotLS0+IEVsIGZpbmFsIGRlIGVzdGEgbO1uZWEgbmVjZXNpdGEgc2VyIGNvcnJlZ2lkbyB1c2FuZG8gZWwgbWFuZGF0byAgYyQuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgIFJFU1VNRU4gREUgTEEgTEVDQ0nTTiAzCgoKICAxLiBQYXJhIHN1c3RpdHVpciB0ZXh0byBxdWUgaGEgc2lkbyBib3JyYWRvLCBwdWxzZSAgcCAuIEVzdG8gUG9uZSBlbCB0ZXh0bwogICAgIGJvcnJhZG8gREVTUFXJUyBkZWwgY3Vyc29yIChzaSBsbyBxdWUgc2UgaGEgYm9ycmFkbyBlcyB1bmEgbO1uZWEgc2UKICAgICBzaXR1YXLhIHNvYnJlIGxhIGztbmVhIHF1ZSBlc3ThIHNvYnJlIGVsIGN1cnNvcikuCgogIDIuIFBhcmEgc3VzdGl0dWlyIGVsIGNhcuFjdGVyIGJham8gZWwgY3Vyc29yLCBwdWxzZQlyICAgeSBsdWVnbyBlbAogICAgIGNhcuFjdGVyIHF1ZSBzdXN0aXR1aXLhIGFsIG9yaWdpbmFsLgoKICAzLiBFbCBtYW5kYXRvIGNoYW5nZSBsZSBwZXJtaXRlIGNhbWJpYXIgZWwgb2JqZXRvIGVzcGVjaWZpY2FkbyBkZXNkZSBsYQogICAgIHBvc2ljafNuIGRlbCBjdXJzb3IgaGFzdGEgZWwgZmluYWwgZGVsIG9iamV0bzsgZS5nLiBQdWxzZQljdyAgcGFyYQogICAgIGNhbWJpYXIgZGVzZGUgZWwgY3Vyc29yIGhhc3RhIGVsIGZpbmFsIGRlIGxhIHBhbGFicmEsIGMkICBwYXJhIGNhbWJpYXIKICAgICBoYXN0YSBlbCBmaW5hbCBkZSBsYSBs7W5lYS4KCiAgNC4gRWwgZm9ybWF0byBwYXJhIGNoYW5nZSBlczoKCgkgW276bWVyb10gICBjCW9iamV0bwkgICAgICBPCQljICAgW276bWVyb10gICBvYmpldG8KCiAgUGFzZSBhaG9yYSBhIGxhIGxlY2Np824gc2lndWllbnRlLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJICAgICAgIExlY2Np824gNC4xOiBTSVRVQUNJ004gRU4gRUwgRklDSEVSTyBZIFNVIEVTVEFETwoKCiAqKiBQdWxzZSBDVFJMLWcgcGFyYSBtb3N0cmFyIHN1IHNpdHVhY2nzbiBlbiBlbCBmaWNoZXJvIHkgc3UgZXN0YWRvLgogICAgUHVsc2UgTUFZVS1HIHBhcmEgbW92ZXJzZSBhIHVuYSBkZXRlcm1pbmFkYSBs7W5lYSBkZWwgZmljaGVyby4gKioKCiAgTm90YTogoaFMZWEgZXN0YSBsZWNjafNuIGVudGVyYSBhbnRlcyBkZSBlamVjdXRhciBhbGd1bm8gZGUgbG9zIHBhc29zISEKCgogIDEuIE1hbnRlbmdhIHB1bHNhZGEgbGEgdGVjbGEgQ3RybCB5IHB1bHNlICBnIC4gQXBhcmVjZSB1bmEgbO1uZWEgZGUgZXN0YWRvCiAgICAgYWwgZmluYWwgZGUgbGEgcGFudGFsbGEgY29uIGVsIG5vbWJyZSBkZWwgZmljaGVybyB5IGxhIGztbmVhIGVuIGxhIHF1ZQogICAgIGVzdOEgc2l0dWFkby4gUmVjdWVyZGUgZWwgbvptZXJvIGRlIGxhIGztbmVhIHBhcmEgZWwgUGFzbyAzLgoKICAyLiBQdWxzZSBNYXl1LUcgcGFyYSBpciBhbCBmaW5hbCBkZWwgZmljaGVyby4KCiAgMy4gRXNjcmliYSBlbCBu+m1lcm8gZGUgbGEgbO1uZWEgZW4gbGEgcXVlIGVzdGFiYSB5IGRlc3D6ZXMgTWF5dS1HLiBFc3RvCiAgICAgbGUgdm9sdmVy4SBhIGxhIGztbmVhIGVuIGxhIHF1ZSBlc3RhYmEgY3VhbmRvIHB1bHPzIEN0cmwtZy4KICAgICAoQ3VhbmRvIGVzY3JpYmEgbG9zIG76bWVyb3MgTk8gc2UgbW9zdHJhcuFuIGVuIGxhIHBhbnRhbGxhKS4KCiAgNC4gU2kgc2Ugc2llbnRlIGNvbmZpYWRvIGVuIHBvZGVyIGhhY2VyIGVzdG8gZWplY3V0ZSBsb3MgcGFzb3MgMSBhIDMuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGVjY2nzbiA0LjI6IEVMIE1BTkRBVE8gq1NFQVJDSLsgKGJ1c2NhcikKCiAgICAgKiogRXNjcmliYSAgLyAgc2VndWlkbyBkZSB1bmEgZnJhc2UgcGFyYSBidXNjYXIgbGEgZnJhc2UuICoqCgogIDEuIEVuIG1vZG8gTm9ybWFsIHB1bHNlIGVsIGNhcuFjdGVyICAvIC4gRu1qZXNlIHF1ZSB0YW50byBlbCBjYXLhY3RlciAgLwogICAgIGNvbW8gZWwgY3Vyc29yIGFwYXJlY2VuIGVuIGxhIPpsdGltYSBs7W5lYSBkZSBsYSBwYW50YWxsYSwgbG8gbWlzbW8KICAgICBxdWUgZWwgbWFuZGF0byAgOiAuCgogIDIuIEVzY3JpYmEgYWhvcmEgICBlcnJyb29yICAgPElOVFJPPi4gRXN0YSBlcyBsYSBwYWxhYnJhIHF1ZSBxdWllcmUgYnVzY2FyLgoKICAzLiBQYXJhIHJlcGV0aXIgbGEgYvpzcXVlZGEsIHNpbXBsZW1lbnRlIHB1bHNlICBuIC4KICAgICBQYXJhIGJ1c2FjYXIgbGEgbWlzbWEgZnJhc2UgZW4gbGEgZGlyZWNjafNuIG9wdWVzdGEsIHB1bHNlIE1heXUtTiAuCgogIDQuIFNpIHF1aWVyZSBidXNjYXIgdW5hIGZyYXNlIGVuIGxhIGRpcmVjY2nzbiBvcHVlc3RhIChoYWNpYSBhcnJpYmEpLAogICAgIHV0aWxpY2UgZWwgbWFuZGF0byAgPyAgZW4gbHVnYXIgZGUgIC8gLgoKLS0tPiBDdWFuZG8gbGEgYvpzcXVlZGEgYWxjYW56YSBlbCBmaW5hbCBkZWwgZmljaGVybyBjb250aW51YXLhIGRlc2RlIGVsCiAgICAgcHJpbmNpcGlvLgoKICCrZXJycm9vcrsgbm8gZXMgbGEgZm9ybWEgZGUgZGVsZXRyZWFyIGVycm9yOyBlcnJyb29yIGVzIHVuIGVycm9yLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkgICAgICAgTGVjY2nzbiA0LjM6IELaU1FVRURBIFBBUkEgQ09NUFJPQkFSIFBBUslOVEVTSVMKCiAgICoqIFB1bHNlICUgIHBhcmEgZW5jb250cmFyIGVsIHBhculudGVzaXMgY29ycmVzcG9uZGllbnRlIGEgKSxdIG8gfSAuICoqCgoKICAxLiBTaXT6ZSBlbCBjdXJzb3IgZW4gY3VhbHF1aWVyYSBkZSBsb3MgY2FyYWN0ZXJlcyApLCBdIG8gfSBlbiBsYSBs7W5lYSBkZQogICAgIGFiYWpvIHNl8WFsYWRhIGNvbiAtLS0+LgoKICAyLiBQdWxzZSBhaG9yYSBlbCBjYXLhY3RlciAgJSAgLgoKICAzLiBFbCBjdXJzb3IgZGViZXLtYSBzaXR1YXJzZSBlbiBlbCBwYXLpbnRlc2lzICgsIGNvcmNoZXRlIFsgbyBsbGF2ZSB7CiAgICAgY29ycmVzcG9uZGllbnRlLgoKICA0LiBQdWxzZSAgJSAgcGFyYSBtb3ZlciBkZSBudWV2byBlbCBjdXJzb3IgYWwgcGFy6W50ZXNpcywgY29yY2hldGUgbyBsbGF2ZQogICAgIGNvcnJlc3BvbmRpZW50ZS4KCi0tLT4gRXN0byAoIGVzIHVuYSBs7W5lYSBkZSBwcnVlYmEgY29uICgsIFssIF0sIHssIHkgfSBlbiBlbGxhLiApKS4KCk5vdGE6IKFFc3RvIGVzIG11eSD6dGlsIGVuIGxhIGRldGVjY2nzbiBkZSBlcnJvcmVzIGVuIHVuIHByb2dyYW1hIGNvbgogICAgICBwYXLpbnRlc2lzLCBjb3JjaGV0ZXMgbyBsbGF2ZXMgZGlzcGFyZWpvcy4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgTGVjY2nzbiA0LjQ6IFVOQSBGT1JNQSBERSBDQU1CSUFSIEVSUk9SRVMKCgogICAgKiogRXNjcmliYQk6cy92aWVqby9udWV2by9nIHBhcmEgc3VzdGl0dWlyICd2aWVqbycgcG9yICdudWV2bycuICoqCgoKICAxLiBNdWV2YSBlbCBjdXJzb3IgYSBsYSBs7W5lYSBkZSBhYmFqbyBzZfFhbGFkYSBjb24gLS0tPi4KCiAgMi4gRXNjcmliYSAgOnMvbGFhcy9sYXMvICA8SU5UUk8+IC4gVGVuZ2EgZW4gY3VlbnRhIHF1ZSBlc3RlIG1hbmRhdG8gY2FtYmlhCiAgICAgc/NsbyBsYSBwcmltZXJhIGFwYXJpY2nzbiBlbiBsYSBs7W5lYSBkZSBsYSBleHByZXNp824gYSBjYW1iaWFyLgoKLS0tPiBMYWFzIG1lam9yZXMg6XBvY2FzIHBhcmEgdmVyIGxhYXMgZmxvcmVzIHNvbiBsYWFzIHByaW1hdmVyYXMuCgogIDQuIFBhcmEgY2FtYmlhciB0b2RhcyBsYXMgYXBhcmljaW9uZXMgZGUgdW5hIGV4cHJlc2nzbiBlbnRlIGRvcyBs7W5lYXMKICAgICBlc2NyaWJhICAgOiMsI3Mvdmllam8vbnVldm8vZyAgIGRvbmRlICMsIyBzb24gbG9zIG76bWVyb3MgZGUgbGFzIGRvcwogICAgIGztbmVhcy4gRXNjcmliYSAgIDolcy92aWVqby9udWV2by9nICAgcGFyYSBoYWNlciBsb3MgY2FtYmlvcyBlbiB0b2RvCiAgICAgZWwgZmljaGVyby4KCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgIFJFU1VNRU4gREUgTEEgTEVDQ0nTTiA0CgoKICAxLiBDdHJsLWcgIG11ZXN0cmEgbGEgcG9zaWNp824gZGVsIGN1cnNvciBlbiBlbCBmaWNoZXJvIHkgc3UgZXN0YWRvLgogICAgIE1heXUtRyBtdWV2ZSBlbCBjdXJzb3IgYWwgZmluYWwgZGVsIGZpY2hlcm8uIFVuIG76bWVybyBkZSBs7W5lYQogICAgIHNld2d1aWRvIGRlIE1heXUtRyBtdWV2ZSBlbCBjdXJzb3IgYSBsYSBs7W5lYSBjb24gZXNlIG76bWVyby4KCiAgMi4gUHVsc2FuZG8gIC8gIHNlZ3VpZG8gZGUgdW5hIGZyYXNlIGJ1c2NhIGxhIGZyYXNlIGhhY2lhIEFERUxBTlRFLgogICAgIFB1bHNhbmRvICA/ICBzZWd1aWRvIGRlIHVuYSBmcmFzZSBidXNjYSBsYSBmcmFzZSBoYWNpYSBBVFLBUy4KICAgICBEZXNwdelzIGRlIHVuYSBi+nNxdWVkYSBwdWxzZSAgbiAgcGFyYSBlbmNvbnRyYXIgbGEgYXBhcmljafNuCiAgICAgc2lndWllbnRlIGVuIGxhIG1pc21hIGRpcmVjY2nzbi4KCiAgMy4gUHVsc2FuZG8gICUgIGN1YW5kbyBlbCBjdXJzb3IgZXN0YSBzb2JyZSAoLCksIFssXSwgeyBvIH0gbG9jYWxpemEKICAgICBsYSBwYXJlamEgY29ycmVzcG9uZGllbnRlLgoKICA0LiBQYXJhIGNhbWJpYXIgdmllam8gcG9yIG51ZXZvIGVuIHVuYSBs7W5lYSBwdWxzZQkgICAgICA6cy92aWVqby9udWV2bwogICAgIFBhcmEgY2FtYmlhciB0b2RvcyBsb3Mgdmllam8gcG9yIG51ZXZvIGVuIHVuYSBs7W5lYSBwdWxzZSA6cy92aWVqby9udWV2by9nCiAgICAgUGFyYSBjYW1iaWFyIGZyYXNlcyBlbnRyZSBkb3MgbvptZXJvcyBkZSBs7W5lYXMgcHVsc2UgIDojLCNzL3ZpZWpvL251ZXZvL2cKICAgICBQYXJhIGNhbWJpYXIgdmllam8gcG9yIG51ZXZvIGVuIHRvZG8gZWwgZmljaGVybyBwdWxzZSAgOiVzL3ZpZWpvL251ZXZvL2cKICAgICBQYXJhIHBlZGlyIGNvbmZpcm1hY2nzbiBlbiBjYWRhIGNhc28gYfFhZGEgICdjJwkgICAgOiVzL3ZpZWpvL251ZXZvL2djCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJTGVjY2nzbiA1LjE6IEPTTU8gRUpFQ1VUQVIgVU4gTUFOREFUTyBFWFRFUk5PCgoKICAqKiBFc2NyaWJhICA6ISAgc2VndWlkbyBkZSB1biBtYW5kYXRvIGV4dGVybm8gcGFyYSBlamVjdXRhciBlc2UgbWFuZGF0by4gKioKCgogIDEuIEVzY3JpYmEgZWwgY29ub2NpZG8gbWFuZGF0byAgOiAgcGFyYSBzaXR1YXIgZWwgY3Vyc29yIGFsIGZpbmFsIGRlIGxhCiAgICAgcGFudGFsbGEuIEVzdG8gbGUgcGVybWl0aXLhIGludHJvZHVjaXIgdW4gbWFuZGF0by4KCiAgMi4gQWhvcmEgZXNjcmliYSBlbCBjYXLhY3RlciAhIChzaWdubyBkZSBhZG1pcmFjafNuKS4gRXN0byBsZSBwZXJtaXRpcuEKICAgICBlamVjdXRhciBjdWFscXVpZXIgbWFuZGF0byBkZWwgc2lzdGVtYS4KCiAgMy4gQ29tbyBlamVtcGxvIGVzY3JpYmEgICBscwkgZGVzcHXpcyBkZWwgISB5IGx1ZWdvIHB1bHNlIDxJTlRSTz4uIEVzdG8KICAgICBsZSBtb3N0cmFy4SB1bmEgbGlzdGEgZGUgc3UgZGlyZWN0b3JpbywgaWd1YWwgcXVlIHNpIGVzdHV2aWVyYSBlbiBlbAogICAgIHPtbWJvbG8gZGVsIHNpc3RlbWEuIFNpICBscyAgbm8gZnVuY2lvbmEgdXRpbGljZQkhOmRpcgkuCgotLS0+Tm90YTogRGUgZXN0YSBtYW5lcmEgZXMgcG9zaWJsZSBlamVjdXRhciBjdWFscXVpZXIgbWFuZGF0byBleHRlcm5vLgoKLS0tPk5vdGE6IFRvZG9zIGxvcyBtYW5kYXRvcyAgIDogICBkZWJlbiBmaW5hbGl6YXJzZSBwdWxzYW5kbyA8SU5UUk8+LgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMZWNjafNuIDUuMjogTcFTIFNPQlJFIEdVQVJEQVIgRklDSEVST1MKCgogICAgICoqIFBhcmEgZ3VhcmRhciBsb3MgY2FtYmlvcyBoZWNob3MgZW4gdW4gZmljaGVybywKCWVzY3JpYmEgIDp3IE5PTUJSRV9ERV9GSUNIRVJPLiAqKgoKCiAgMS4gRXNjcmliYSAgOiFkaXIgIG8JOiFscyAgcGFyYSB2ZXIgdW5hIGxpc3RhIGRlIHN1IGRpcmVjdG9yaW8uCiAgICAgWWEgc2FiZSBxdWUgZGViZSBwdWxzYXIgPElOVFJPPiBkZXNwdelzIGRlIGVsbG8uCgogIDIuIEVsaWphIHVuIG5vbWJyZSBkZSBmaWNoZXJvIHF1ZSB0b2Rhdu1hIG5vIGV4aXN0YSwgY29tbyBURVNULgoKICAzLiBBaG9yYSBlc2NyaWJhICAgOncgVEVTVCAgKGRvbmRlIFRFU1QgZXMgZWwgbm9tYnJlIGRlIGZpY2hlcm8gZWxlZ2lkbykuCgogIDQuIEVzdGEgYWNjafNuIGd1YXJkYSB0b2RvIGVsIGZpY2hlcm8gIChWaW0gVHV0b3IpICBiYWpvIGVsIG5vbWJyZSBURVNULgogICAgIFBhcmEgY29tcHJvYmFybG8gZXNjcmliYQk6IWRpcglkZSBudWV2byB5IHZlYSBzdSBkaXJlY3RvcmlvLgoKLS0tPiBUZW5nYSBlbiBjdWVudGEgcXVlIHNpIHNhbGUgZGUgVmltIHkgIGVudHJhIGRlIG51ZXZvIGNvbiBlbCBub21icmUgZGUKICAgICBmaWNoZXJvIFRFU1QsIGVsIGZpY2hlcm8gc2Vy7WEgdW5hIGNvcGlhIGV4YWN0YSBkZWwgdHV0b3IgY3VhbmRvIGxvCiAgICAgaGEgZ3VhcmRhZG8uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCSAgICAgICBMZWNjafNuIDUuMzogVU4gTUFOREFUTyBERSBFU0NSSVRVUkEgU0VMRUNUSVZPCgogICAqKiBQYXJhIGd1YXJkYXIgcGFydGUgZGVsIGZ1Y2hlcm8gZXNjcmliYSAgIDojLCMgTk9NQlJFX0RFTF9GSUNIRVJPICoqCgoKICAxLiBFc2NyaWJhIGRlIG51ZXZvLCB1bmEgdmV6IG3hcywgIDohZGlyICBvICA6IWxzICBwYXJhIG9idGVuZXIgdW5hIGxpc3RhCiAgICAgZGUgc3UgZGlyZWN0b3JpbyB5IGVsaWphIG5vbWJyZSBkZSBmaWNoZXJvIGFkZWN1YWRvLCBjb21vIFRFU1QuCgogIDIuIE11ZXZhIGVsIGN1cnNvciBhbCBwcmluY2lwaW8gZGUgbGEgcGFudGFsbGEgeSBwdWxzZSAgQ3RybC1nICBwYXJhIHNhYmVyCiAgICAgZWwgbvptZXJvIGRlIGxhIGztbmVhIGNvcnJlc3BvbmRpZW50ZS4goVJFQ1VFUkRFIEVTVEUgTtpNRVJPIQoKICAzLiBBaG9yYSBtdWV2YSBlbCBjdXJzb3IgYSBsYSD6bHRpbWEgbO1uZWEgZGUgbGEgcGFudGFsbGEgeSBwdWxzZSBDdHJsLWcKICAgICBkZSBudWV2by4goVJFQ1VFUkRFIFRBTUJJyU4gRVNURSBO2k1FUk8hCgogIDQuIFBhcmEgZ3VhcmRhciBTT0xBTUVOVEUgdW5hIHBhcnRlIGRlIHVuIGZpY2hlcm8sIGVzY3JpYmEgIDojLCMgdyBURVNUCiAgICAgZG9uZGUgIywjIHNvbiBsb3MgbvptZXJvcyBxdWUgdXN0ZWQgaGEgcmVjb3JkYWRvIChwcmltZXJhIGztbmVhLAogICAgIPpsdGltYSBs7W5lYSkgeSBURVNUIGVzIHN1IG5vbWJyZSBkZSBkaWNoZXJvLgoKICA1LiBEZSBudWV2bywgdmVhIHF1ZSBlbCBmaWNoZXJvIGVzdGEgYWjtIGNvbgk6IWRpciAgcGVybyBOTyBsbyBib3JyZS4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQlMZWNjafNuIDUuNDogUkVDVVBFUkFORE8gWSBNRVpDTEFORE8gRklDSEVST1MKCiAqKiBQYXJhIGluc2VydGFyIGVsIGNvbnRlbmlkbyBkZSB1biBmaWNoZXJvIGVzY3JpYmEgOnIgTk9NQlJFX0RFTF9GSUNIRVJPICoqCgogIDEuIEVzY3JpYmEgICA6IWRpciAgIHBhcmEgYXNlZ3VyYXJzZSBkZSBxdWUgc3UgZmljaGVybyBURVNUIGRlbCBlamVyY2ljaW8KICAgICBhbnRlcmlvciBlc3ThIHByZXNlbnRlLgoKICAyLiBTaXR1ZSBlbCBjdXJzb3IgYWwgcHJpbmNpcGlvIGRlIGVzdGEgcGFudGFsbGEuCgpOT1RBOiBEZXNwdelzIGRlIGVqZWN1dGFyIGVsIHBhc28gMyBzZSB2ZXLhIGxhIExlY2Np824gNS4zLiBMdWVnbyBtdel2YXNlCiAgICAgIGhhY2lhIEFCQUpPIHBhcmEgdmVyIGVzdGEgbGVjY2nzbiBkZSBudWV2by4KCiAgMy4gQWhvcmEgcmVjdXBlcmUgZWwgZmljaGVybyBURVNUIHV0aWxpemFuZG8gZWwgbWFuZGF0byAgOnIgVEVTVCAgZG9uZGUKICAgICBURVNUIGVzIGVsIG5vbWJyZSBkZWwgZmljaGVyby4KCk5PVEE6IEVsIGZpY2hlcm8gcmVjdXBlcmFkbyBzZSBzaXT6YSBhIHBhcnRpciBkZSBsYSBwb3NpY2nzbiBkZWwgY3Vyc29yLgoKICA0LiBQYXJhIHZlcmlmaWNhciBxdWUgZWwgZmljaGVybyBoYSBzaWRvIHJlY3VwZXJhZG8sIG11ZXZhIGVsIGN1cnNvciBoYWNpYQogICAgIGFycmliYSB5IHZlYSBxdWUgaGF5IGRvcyBjb3BpYXMgZGUgbGEgTGVjY2nzbiA1LjMsIGxhIG9yaWdpbmFsIHkgbGEKICAgICB2ZXJzafNuIGRlbCBmaWNoZXJvLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgIFJFU1VNRU4gREUgTEEgTEVDQ0nTTiA1CgoKICAxLiAgOiFtYW5kYXRvICBlamVjdXRhIHVuIG1hbmRhdG8gZXh0ZXJuby4KCiAgICAgIEFsZ3Vub3MgZWplbXBsb3Mg+nRpbGVzIHNvbjoKCSAgOiFkaXIgLSBtdWVzdHJhIGVsIGNvbnRlbmlkbyBkZSB1biBkaXJlY3RvcmlvLgoJICA6IWRlbCBOT01CUkVfREVfRklDSEVSTyAgLSAgYm9ycmEgZWwgZmljaGVybyBOT01CUkVfREUgRklDSEVSTy4KCiAgMi4gIDojLCN3IE5PTUJSRV9ERSBfRklDSEVSTyAgZ3VhcmRhIGRlc2RlIGxhcyBs7W5lYXMgIyBoYXN0YSBsYSAjIGVuIGVsCiAgICAgZmljaGVybyBOT01CUkVfREVfRklDSEVSTy4KCiAgMy4gIDpyIE5PTUJSRV9ERSBfRklDSEVSTyAgcmVjdXBlcmEgZWwgZmljaGVybyBkZWwgZGlzY28gTk9NQlJFX0RFIEZJQ0hFUk8KICAgICB5IGxvIGluc2VydGEgZW4gZWwgZmljaGVybyBlbiBjdXJzbyBhIHBhcnRpciBkZSBsYSBwb3NpY2nzbiBkZWwgY3Vyc29yLgoKCgoKCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSBMZWNjafNuIDYuMTogRUwgTUFOREFUTyCrT1BFTrsgKGFicmlyKQoKCgkgKiogUHVsc2UgIG8gIHBhcmEgYWJyaXIgdW5hIGztbmVhIGRlYmFqbyBkZWwgY3Vyc29yCgkgICAgeSBzaXR1YXJsZSBlbiBtb2RvIEluc2VydCAqKgoKCiAgMS4gTXVldmEgZWwgY3Vyc29yIGEgbGEgbO1uZWEgZGUgYWJham8gc2XxYWxhZGEgY29uIC0tLT4uCgogIDIuIFB1bHNlICBvIChtaW76c2N1bGEpIHBhcmEgYWJyaXIgdW5hIGztbmVhIHBvciBERUJBSk8gZGVsIGN1cnNvcgogICAgIHkgc2l0dWFybGUgZW4gbW9kbyBJbnNlcnQuCgogIDMuIEFob3JhIGNvcGllIGxhIGztbmVhIHNl8WFsYWRhIGNvbiAtLS0+IHkgcHVsc2UgPEVTQz4gcGFyYSBzYWxpciBkZWwKICAgICBtb2RvIEluc2VydC4KCi0tLT4gTHVlZ28gZGUgcHVsc2FyICBvICBlbCBjdXJzb3Igc2Ugc2l0+mEgZW4gbGEgbO1uZWEgYWJpZXJ0YSBlbiBtb2RvIEluc2VydC4KCiAgNC4gUGFyYSBhYnJpciB1bmEgbO1uZWEgcG9yIGVuY2ltYSBkZWwgY3Vyc29yLCBzaW1wbGVtZW50ZSBwdWxzZSB1bmEgTwogICAgIG1hefpzY3VsYSwgZW4gbHVnYXIgZGUgdW5hIG8gbWlu+nNjdWxhLiBQcnVlYmUgZXN0ZSBlbiBsYSBs7W5lYSBzaWd1aWVudGUuCkFicmEgdW5hIGztbmVhIHNvYnJlIOlzdGEgcHVsc2FuZG8gTWF5dS1PIGN1YW5kbyBlbCBjdXJzbyBlc3ThIGVuIGVzdGEgbO1uZWEuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGVjY2nzbiA2LjI6IEVMIE1BTkRBVE8gq0FQUEVORLsgKGHxYWRpcikKCgkgKiogUHVsc2UgIGEgIHBhcmEgaW5zZXJ0YXIgdGV4dG8gREVTUFXJUyBkZWwgY3Vyc29yLiAqKgoKCiAgMS4gTXVldmEgZWwgY3Vyc29yIGFsIGZpbmFsIGRlIGxhIHByaW1lcmEgbO1uZWEgZGUgYWJham8gc2XxYWxhZGEgY29uIC0tLT4KICAgICBwdWxzYW5kbyAgJCAgZW4gbW9kbyBOb3JtYWwuCgogIDIuIEVzY3JpYmEgdW5hICBhICAobWlu+nNjdWxhKSBwYXJhIGHxYWRpciB0ZXh0byBERVNQVclTIGRlbCBjYXLhY3RlcgogICAgIHF1ZSBlc3ThIHNvYnJlIGVsIGN1cnNvci4gKEEgbWF5+nNjdWxhIGHxYWRlIHRleHRvIGFsIGZpbmFsIGRlIGxhIGztbmVhKS4KCk5vdGE6IKFFc3RvIGV2aXRhIGVsIHB1bHNhciAgaSAsIGVsIPpsdGltbyBjYXLhY3RlciwgZWwgdGV4dG8gYSBpbnNlcnRhciwKICAgICAgPEVTQz4sIGN1cnNvciBhIGxhIGRlcmVjaGEgeSwgZmluYWxtZW50ZSwgeCAsIHPzbG8gcGFyYSBh8WFkaXIgYWxnbwogICAgICBhbCBmaW5hbCBkZSB1bmEgbO1uZWEhCgogIDMuIENvbXBsZXRlIGFob3JhIGxhIHByaW1lcmEgbO1uZWEuIE7zdGVzZSBxdWUgYXBwZW5kIGVzIGV4YWN0YW1lbnRlIGxvCiAgICAgbWlzbW8gcXVlIG1vZG8gSW5zZXJ0LCBleGNlcHRvIHBvciBlbCBsdWdhciBkb25kZSBzZSBpbnNlcnRhIGVsIHRleHRvLgoKLS0tPiBFc3RhIGztbmVhIGxlIHBlcm1pdGly4SBwcmF0aWNhcgotLS0+IEVzdGEgbO1uZWEgbGUgcGVybWl0aXLhIHByYXRpY2FyIGVsIGHxYWRpZG8gZGUgdGV4dG8gYWwgZmluYWwgZGUgdW5hIGztbmVhLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMZWNjafNuIDYuMzogT1RSQSBWRVJTSdNOIERFIKtSRVBMQUNFuyAocmVtcGxhemFyKQoKICAgICoqIFB1bHNlIHVuYSAgUiAgbWF5+nNjdWxhIHBhcmEgc3VzdGl0dWlyIG3hcyBkZSB1biBjYXLhY3Rlci4gKioKCgogIDEuIE11ZXZhIGVsIGN1cnNvciBhIGxhIHByaW1lcmEgbO1uZWEgZGUgYWJham8gc2XxYWxhZGEgY29uIC0tLT4uCgogIDIuIFNpdPplIGVsIGN1cnNvciBhbCBjb21pZW56byBkZSBsYSBwcmltZXJhIHBhbGFicmEgcXVlIHNlYSBkaWZlcmVudGUKICAgICBkZSBsYXMgZGUgbGEgc2VndW5kYSBs7W5lYSBtYXJjYWRhIGNvbiAtLS0+IChsYSBwYWxhYnJhICdhbnRlcmlvcicpLgoKICAzLiBBaG9yYSBwdWxzZSAgUiAgeSBzdXN0aXR1eWEgZWwgcmVzdG8gZGVsIHRleHRvIGRlIGxhIHByaW1lcmEgbO1uZWEKICAgICBlc2NyaWJpZW5kbyBzb2JyZSBlbCB2aWVqbyB0ZXh0byBwYXJhIHF1ZSBsYSBwcmltZXJhIGztbmVhIHNlYSBpZ3VhbAogICAgIHF1ZSBsYSBwcmltZXJhLgoKLS0tPiBQYXJhIGhhY2VyIHF1ZSBlc3RhIGztbmVhIHNlYSBpZ3VhbCBxdWUgbGEgYW50ZXJpb3IgdXNlIGxhcyB0ZWNsYXMuCi0tLT4gUGFyYSBoYWNlciBxdWUgZXN0YSBs7W5lYSBzZWEgaWd1YWwgcXVlIGxhIHNpZ3VpZW50ZSBlc2NyaWJhIFIgeSBlbCB0ZXh0by4KCiAgNC4gTvN0ZXNlIHF1ZSBjdWFuZG8gcHVsc2UgPEVTQz4gcGFyYSBzYWxpciwgZWwgdGV4dG8gbm8gYWx0ZXJhZG8gcGVybWFuZWNlLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJIExlY2Np824gNi40OiBGSUpBUiBPUENJT05FUwoKICoqIEZpamFyIHVuYSBvcGNp824gZGUgZm9ybWEgcXVlIHVuYSBi+nNxdWVkYSBvIHN1c3RpdHVjafNuIGlnbm9yZSBsYSBjYWphICoqCiAgKFBhcmEgZWwgY29uY2VwdG8gZGUgY2FqYSBkZSB1bmEgbGV0cmEsIHbpYXNlIGxhIG5vdGEgYWwgZmluYWwgZGVsIGZpY2hlcm8pCgoKICAxLiBCdXNxdWUgJ2lnbm9yYXInIGludHJvZHVjaWVuZG86CiAgICAgL2lnbm9yYXIKICAgICBSZXBpdGEgdmFyaWFzIHZlY2VzIGxhIGL6c3F1ZSBwdWxzYW5kbyBsYSB0ZWNsYSBuCgogIDIuIEZpamUgbGEgb3BjafNuICdpYycgKElnbm9yYXIgbGEgY2FqYSBkZSBsYSBsZXRyYSkgZXNjcmliaWVuZG86CiAgICAgOnNldCBpYwoKICAzLiBBaG9yYSBidXNxdWUgJ2lnbm9yYXInIGRlIG51ZXZvIHB1bHNhbmRvIG4KICAgICBSZXBpdGEgbGEgYvpzcXVlZGEgdmFyaWFzIHZlY2VzIG3hcyBwdWxzYW5kbyBsYSB0ZWNsYSBuCgogIDQuIEZpamUgbGFzIG9wY2lvbmVzICdobHNlYXJjaCcgeSAnaW5zZWFyY2gnOgogICAgIDpzZXQgaGxzIGlzCgogIDUuIEFob3JhIGludHJvZHV6Y2EgbGEgb3JkZW4gZGUgYvpzcXVlZGEgb3RyYSB2ZXosIHkgdmVhIHF16SBwYXNhOgogICAgIC9pZ25vcmUKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgICBSRVNVTUVOIERFIExBIExFQ0NJ004gNgoKCiAgMS4gUHVsc2FuZG8gIG8gIGFicmUgdW5hIGztbmVhIHBvciBERUJBSk8gZGVsIGN1cnNvciB5IHNpdPphIGVsIGN1cnNvciBlbgogICAgIGxhIGztbmVhIGFiaWVydGEgZW4gbW9kbyBJbnNlcnQuCiAgICAgUHVsc2FuZG8gdW5hIE8gbWF5+nNjdWxhIHNlIGFicmUgdW5hIGztbmVhIFNPQlJFIGxhIHF1ZSBlc3ThIGVsIGN1cnNvci4KCiAgMi4gUHVsc2UgdW5hCWEgIHBhcmEgaW5zZXJ0YXIgdGV4dG8gREVTUFXJUyBkZWwgY2Fy4WN0ZXIgc29icmUgZWwgY3Vyc29yLgogICAgIFB1bHNhbmRvIHVuYSAgQSAgbWF5+nNjdWxhIGHxYWRlIGF1dG9t4XRpY2FtZW50ZSB0ZXh0byBhbCBmaW5hbCBkZSBsYQogICAgIGztbmVhLgoKICAzLiBQdWxzYW5kbyB1bmEgIFIgIG1hefpzY3VsYSBzZSBlbnRyYSBlbiBtb2RvIFJlcGxhY2UgaGFzdGEgcXVlLCBwYXJhIHNhbGlyLAogICAgIHNlIHB1bHNlIDxFU0M+LgoKICA0LiBFc2NyaWJpZW5kbyCrOnNldCB4eHi7IGZpamEgbGEgb3BjafNuIKt4eHi7CgoKCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgIExlY2Np824gNzogTUFOREFUT1MgUEFSQSBMQSBBWVVEQSBFTiBMzU5FQQoKCQkgKiogVXRpbGljZSBlbCBzaXN0ZW1hIGRlIGF5dWRhIGVuIGztbmVhICoqCgoKICBWaW0gZGlzcG9uZSBkZSB1biBzaXN0ZW1hIGRlIGF5dWRhIGVuIGztbmVhLiBQYXJhIGFjdGl2YXJsbywgcHJ1ZWJlIHVuYQogIGRlIGVzdGFzIHRyZXMgZm9ybWFzOgoJLSBwdWxzZSBsYSB0ZWNsYSA8QVlVREE+IChzaSBkaXNwb25lIGRlIGVsbGEpCgktIHB1bHNlIGxhIHRlY2xhIDxGMT4gKHNpIGRpc3BvbmUgZGUgZWxsYSkKCS0gZXNjcmliYSAgIDpoZWxwIDxJTlRSTz4KCiAgRXNjcmliYSAgIDpxIDxJTlRSTz4JIHBhcmEgY2VycmFyIGxhIHZlbnRhbmEgZGUgYXl1ZGEuCgogIFB1ZWRlIGVuY29udHJhciBheXVkYSBlbiBjYXNpIGN1YWxxdWllciB0ZW1hIGHxYWRpZW5kbyB1biBhcmd1bWVudG8gYWwKICBtYW5kYXRvIKs6aGVscLsgbWFuZGF0by4gUHJ1ZWJlIOlzdG9zOgoKICA6aGVscCB3IDxJTlRSTz4KICA6aGVscCBjXzxUIDxJTlRSTz4KICA6aGVscCBpbnNlcnQtaW5kZXggPElOVFJPPgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKICBBcXXtIGNvbmNsdXllIGVsIHR1dG9yIGRlIFZpbS4gRXN04SBwZW5zYWRvIHBhcmEgZGFyIHVuYSB2aXNp824gYnJldmUgZGVsCiAgZWRpdG9yIFZpbSwgbG8gc3VmaWNpZW50ZSBwYXJhIHBlcm1pdGlybGUgdXNhciBlbCBlZGl0b3IgZGUgZm9ybWEgYmFzdGFudGUKICBzZW5jaWxsYS4gRXN04SBtdXkgbGVqb3MgZGUgZXN0YXIgY29tcGxldG8gcHVlcyBWaW0gdGllbmUgbXVjaO1zaW1vcyBt4XMKICBtYW5kYXRvcy4KCiAgUGFyYSBsZWN0dXJhcyB5IGVzdHVkaW9zIHBvc3RlcmlvcmVzIHNlIHJlY29taWVuZGEgZWwgbGlicm86CglMZWFybmluZyB0aGUgVmkgRWRpdG9yIC0gcG9yIExpbmRhIExhbWIKCUVkaXRvcmlhbDogTydSZWlsbHkgJiBBc3NvY2lhdGVzIEluYy4KICBFcyB1biBidWVuIGxpYnJvIHBhcmEgbGxlZ2FyIGEgc2FiZXIgY2FzaSB0b2RvIGxvIHF1ZSBkZXNlZSBoYWNlciBjb24gVmkuCiAgTGEgc2V4dGEgZWRpY2nzbiBpbmNsdXllIHRhbWJp6W4gaW5mb3JtYWNp824gc29icmUgVmltLgoKICBFc3RlIHR1dG9yaWFsIGhhIHNpZG8gZXNjcml0byBwb3IgTWljaGFlbCBDLiBQaWVyY2UgeSBSb2JlcnQgSy4gV2FyZSwKICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMgdXRpbGl6YW5kbyBpZGVhcyBzdW1pbmlzdHJhZGFzIHBvciBDaGFybGVzIFNtaXRoLAogIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCiAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCgogIE1vZGlmaWNhZG8gcGFyYSBWaW0gcG9yIEJyYW0gTW9vbGVuYWFyLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgogIFRyYWR1Y2lkbyBkZWwgaW5nbOlzIHBvcjoKCiAgRWR1YXJkbyBGLiBBbWF0cmlhCiAgQ29ycmVvIGVsZWN0cvNuaWNvOiBlZmVybmExQHBsYXRlYS5wbnRpYy5tZWMuZXMKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo=