MS4gSU5UUk9EVUtTSk9OCgpXaW5lIGVyIGV0IHByb2dyYW0gc29tIGdq+HIgZGV0IG11bGlnIOUga2r4cmUgV2luZG93cy1wcm9ncmFtbWVyCihpbmtsdWRlcnQgRE9TLCBXaW5kb3dzIDMueCBvZyBXaW4zMikgaSBVbml4LiBEZXQgYmVzdOVyIGF2IGVuCnByb2dyYW1zdGFydGVyIHNvbSBzdGFydGVyIG9nIGtq+HJlciBlbiBXaW5kb3dzLXByb2dyYW1maWwsIG9nIGV0CmJpYmxpb3RlayBrYWx0IKtXaW5lbGliuywgZW4gdWF2aGVuZ2lnIHV0Z2F2ZSBhdiBXaW5kb3dzJyBBUEkgc29tCmJydWtlciBVbml4LSBlbGxlciBYMTEuIEJpYmxpb3Rla2V0IGthbiBvZ3PlIGJydWtlcyB0aWwg5SBwdXR0ZQpXaW4zMi1rb2RlIGkgdmFubGlnZSBVbml4LXByb2dyYW1tZXIuCgpXaW5lIGVyIGZyaSBwcm9ncmFtdmFyZSwgdXRnaXR0IHVuZGVyIHZpbGvlcmVuZSBpIEdOVSBMR1BMOyBzZQpmaWxlbiCrTElDRU5TRbsgZm9yIGRldGFsamVyLgoKMi4gS09NIEkgR0FORwoKRGV0IGFuYmVmYWxlcyDlIGJydWtlIFdpbmVzIGluc3RhbGxhc2pvbnNwcm9ncmFtIGZvciDlIGJ5Z2dlIG9nCmluc3RhbGxlcmUgV2luZSBu5XIgZGV0IGJ5Z2dlcyBmcmEga2lsZGVrb2RlLiBLavhyIGb4bGdlbmRlIGkKcm90a2F0YWxvZ2VuIHRpbCBXaW5lLWtpbGRla29kZW4KCi4vdG9vbHMvd2luZWluc3RhbGwKCktq+HIgcHJvZ3JhbW1lciBzb20gq3dpbmUgW3ZhbGddIHByb2dyYW27LiBTZSByZXN0ZW4gYXYgZGVubmUgZmlsZW4sCldpbmVzIG1hbi1zaWRlIG9nIGh0dHA6Ly93d3cud2luZWhxLm9yZy8gZm9yIG1lciBpbmZvcm1hc2pvbiBvZwpwcm9ibGVtbPhzaW5nLgoKMy4gU1lTVEVNS1JBVgoKRvhsZ2VuZGUga3JldmVzIGZvciDlIGJ5Z2dlIG9nIGtq+HJlIFdpbmUKCiAgTGludXggdmVyc2pvbiAyLjAuMzYgZWxsZXIgbnllcmUKICBGcmVlQlNEIDcuMCBlbGxlciBueWVyZQogIFNvbGFyaXMgeDg2IDkgZWxsZXIgbnllcmUKICBOZXRCU0QtY3VycmVudAogIE1hYyBPUyBYIDEwLjQgZWxsZXIgbnllcmUKCldpbmUga3JldmVyIHN0+HR0ZSBmb3IgdHLlZGVyIHDlIGtqZXJuZW5pduUsIG9nIGRlcmZvciBlciBkZXQgYmFyZQpvcGVyYXRpdnN5c3RlbWVuZSBvdmVuZm9yIHNvbSBzdPh0dGVzLiBBbmRyZSBvcGVyYXRpdnN5c3RlbWVyIHNvbQpzdPh0dGVyIGtqZXJuZXRy5WRlciBzdPh0dGVzIGthbnNramUgaSBmcmFtdGlkZW4uCgpJbmZvcm1hc2pvbiBmb3IgTGludXgKICBTZWx2IG9tIExpbnV4IDIuMi54IGFudGFrZWxpZyB2aXJrZXIsIG9nIExpbnV4IDIuMHgga2Fuc2tqZSB2aXJrZXIKICAodGlkbGlnZXJlIDIuMC54LXZlcnNqb25lciBoYWRkZSBwcm9ibGVtZXIgbWVkIHRy5WRlciksIGVyIGRldAogIGJlc3Qg5SBoYSBlbiBueSBramVybmUgc29tIDIuNC54LgoKSW5mb3JtYXNqb24gZm9yIEZyZWVCU0QKICBXaW5lIHZpbCBzb20gcmVnZWwgaWtrZSB2aXJrZSBw5SBGcmVlQlNELXZlcnNqb25lciBlbGRyZSBlbm4gNy4wLgogIEZyZWVCU0QgNi4zIGthbiBvcHBkYXRlcmVzIGZvciDlIHN0+HR0ZSBXaW5lOyBzZQogIDxodHRwOi8vd2lraS5mcmVlYnNkLm9yZy9XaW5lPiBmb3IgbWVyIGluZm9ybWFzam9uLgoKSW5mb3Jtc2pvbiBmb3IgU29sYXJpcwogIFdpbmUgbeUgYW50YWtlbGlnIGJ5Z2dlcyBtZWQgR05VLXZlcmt0+HllbmUgKGdjYywgZ2FzIGV0Yy4pLgogIEFkdmFyc2VsOiBzZWx2IG9tIGdhcyBpbnN0YWxsZXJlcyBlciBkZXQgaWtrZSBzaWtrZXJ0IGRldCBicnVrZXMgYXYKICBnY2MuIERldCBzaWVzIGF0IGdjYyBt5SBieWdnZXMgcOUgbnl0dCwgZWxsZXIgYXQgc3ltYm9sc2tlCiAga29ibGluZ2VyIGZvciCrY2O7LCCrYXO7IG9nIKtsZLsgbeUgbGVnZ2VzIHRpbCBHTlUtdmVya3T4eWVuZS4KCkluZm9ybWFzam9uIGZvciBOZXRCU0QKICBVU0VSX0xEVCwgU1lTVlNITSwgU1lTVlNFTSBvZyBTWVNWTVNHIG3lIHbmcmUgYWt0aXZlcnQgaSBramVybmVuLgoKSW5mb3JtYXNqb24gZm9yIE1hYyBPUyBYOgogIER1IG3lIGhhIFhjb2RlIDIuNCBlbGxlciBueWVyZSBmb3Ig5SBieWdnZSBXaW5lIG9yZGVudGxpZy4KCgpTdPh0dGVkZSBmaWxzeXN0ZW1lcgogIFdpbmUga2FuIGtq+HJlIHDlIGRlIGZsZXN0ZSBmaWxzeXN0ZW1lciwgbWVuIHN0YXJ0ZXIgaWtrZSBodmlzICcvdG1wJy0KICBrYXRhbG9nZW4gYnJ1a2VyICd1bXNkb3MnLiBEZXQgaGFyIG9nc+UgduZydCByYXBwb3J0ZXJ0IG9tIHByb2JsZW1lcgogIG1lZCBmaWx0aWxnYW5nIGdqZW5ub20gU2FtYmEuIFZpIGFuYmVmYWxlciBpa2tlIGJydWsgYXYgTlRGUywgc2lkZW4KICBkZXR0ZSBpa2tlIHN0+HR0ZXIgZnVua3Nqb25lciBzb20gbm9lbiBwcm9ncmFtIHRyZW5nZXIuIERldCBhbmJlZmFsZXMKICDlIGJydWtlIGV0IExpbnV4LWZpbHN5c3RlbSBzb20gZXh0My4KCkJhc2lza3JhdgogIElua2x1ZGVyaW5nc2ZpbGVuZSBmb3IgWDExIG3lIHbmcmUgaW5zdGFsbGVydCAoa2FsdCCreGxpYjZnLWRldrsgaQogIERlYmlhbiBvZyCrWEZyZWU4Ni1kZXZlbLsgaSBSZWRIYXQpLgoKICBEdSBt5SBzZWx2ZvhsZ2VsaWcgb2dz5SBoYSCrbWFrZbssIHNhbm5zeW5saWd2aXMgq0dOVSBtYWtluy4KCiAgZmxleCAyLjUgZWxsZXIgbnllcmUgb2cgYmlzb24gZXIgb2dz5SBu+GR2ZW5kaWcuCgpWYWxnZnJpZSBzdPh0dGViaWJsaW90ZWtlcjoKICBjb25maWd1cmUtc2tyaXB0ZXQgdmlzZXIgbWVsZGluZ2VyIG7lciB2YWxnZnJpZSBiaWJsaW90ZWtlciBpa2tlIGJsaXIKICBmdW5uZXQuIFNlIGh0dHA6Ly93aWtpLndpbmVocS5vcmcvUmVjb21tZW5kZWRfUGFja2FnZXMgZm9yIGluZm8gb20KICBodmlsa2UgcGFra2VyIGR1IGL4ciBpbnN0YWxsZXJlLgoKICBQ5SA2NCBiaXQtc3lzdGVtZXIgdHJlbmdlciBkdSAzMiBiaXQtdmVyc2pvbmVyIGF2IGRpc3NlIGJpYmxpb3Rla2VuZTsKICBzZSBodHRwOi8vd2lraS53aW5laHEub3JnL1dpbmVPbjY0Yml0IGZvciBmbGVyZSBkZXRhbGplci4KCjQuIEJZR0dJTkcKCktq+HIgZvhsZ2VuZGUga29tbWFuZG9lciBmb3Ig5SBieWdnZSBXaW5lIGh2aXMgZHUgaWtrZSBicnVrZXIgd2luZWluc3RhbGwKCi4vY29uZmlndXJlCm1ha2UgZGVwZW5kCm1ha2UKCkRldHRlIGJ5Z2dlciBwcm9ncmFtbWV0IKt3aW5luyBvZyBkaXZlcnNlIHN0+HR0ZWJpYmxpb3Rla2VyL3Byb2dyYW1maWxlci4KUHJvZ3JhbWZpbGVuICd3aW5lIGxhc3RlciBvZyBravhyZXIgV2luZG93cy1wcm9ncmFtbWVyLgpCaWJsaW90ZWtldCCrbGlid2luZbsgKKtXaW5lbGliuykga2FuIGJydWtlcyB0aWwg5SBieWdnZSBvZyBrb2JsZQpXaW5kb3dzLWtpbGRla29kZSBpIFVuaXguCgpLavhyICcuL2NvbmZpZ3VlIC0taGVscCcgZm9yIOUgc2UgdmFsZyBmb3IgYnlnZ2luZy4KCkdq+HIgZvhsZ2VuZGUgZm9yIOUgb3BwZ3JhZGVyZSB0aWwgZW4gbnkgdXRnYXZlIHZlZCBoamVscCBhdiBlbgpvcHBkYXRlcmluZ3NmaWw6CkflIGlubiBpIHV0Z2l2ZWxzZW5zIHJvdGthdGFsb2cgb2cga2r4ciBrb21tYW5kb2VuIKttYWtlIGNsZWFuuy4KRGVyZXR0ZXIgb3BwZGF0ZXJlciBkdSB1dGdpdmVsc2VuIG1lZAoKICAgIGJ1bnppcCAtYyBvcHBkYXRlcmluZ3NmaWwgfCBwYXRjaCAtcDEKCmRlciCrb3BwZGF0ZXJpbmdzZmlsuyBlciBuYXZuZXQgcOUgb3BwZGF0ZXJpbmdzZmlsZW4gKG5vZSBzb20KV2luZS3l5W1tZGQuZGlmZi5neikuIERlcmV0dGVyIGthbiBkdSBravhyZSCrLi9jb25maWd1cmW7IG9nCqttYWtlIGRlcGVuZCAmJiBtYWtluy4KCjUuIElOU1RBTExBU0pPTgoKTuVyIFdpbmUgZXIgYnlnZ2V0IGthbiBkdSBravhyZSCrbWFrZSBpbnN0YWxsuyBmb3Ig5SBpbnN0YWxsZXJlIGRldDsKZGV0dGUgaW5zdGFsbGVyZXIgb2dz5SBtYW4tc2lkZW4gb2cgbm9lbiBhbmRyZSBu+GR2ZW5kaWdoZXRlci4KCklra2UgZ2xlbSDlIGF2aW5zdGFsbGVyZSB0aWRsaWdlcmUgV2luZS12ZXJzam9uZXIgZvhyc3QuIFBy+HYgZW50ZW4Kq2Rwa2cgLXIgd2luZbssIKtycG0gLWUgd2luZbsgZWxsZXIgq21ha2UgdW5pbnN0YWxsuyBm+HIgaW5zdGFsbHNqb25lbi4KCk7lciBXaW5lIGVyIGluc3RhbGxlcnQga2FuIGR1IGJydWtlIG9wcHNldHRzdmVya3T4eWV0IKt3aW5lY2Y/uy4KU2Ugc3T4dHRlb21y5WRldCBw5SBodHRwOi8vd3d3LndpbmVocS5vcmcvIGZvciBoaW50IG9tIG9wcHNldHQuCgoKNi4gS0rYUklORyBBViBQUk9HUkFNTUVSCgpO5XIgZHUgYnJ1a2VyIFdpbmUga2FuIGR1IG9wcGdpIGhlbGUgc3RpZW4gdGlsIHByb2dyYW1maWxlbiwgZWxsZXIgYmFyZQpldCBmaWxuYXZuLgoKRm9yIOUga2r4cmUgS2FiYWwKCiAgICAgICAgd2luZSBzb2wgICAgICAgICAgICAgICAgICAgKHZlZCDlIGJydWtlIHP4a2VzdGllbiBvcHBnaXR0IGkKICAgICAgICB3aW5lIHNvbC5leGUgICAgICAgICAgICAgICAgV2luZS1yZWdpc3RlcmV0IGZvciDlIGZpbm5lIGZpbGVuKQoKICAgICAgICB3aW5lIGM6XFx3aW5kb3dzXFxzb2wuZXhlICAoYnJ1ayBhdiBET1MtZmlsbmF2bnN5bnRha3MpCgogICAgICAgIHdpbmUgfi8ud2luZS9kcml2ZV9jL3dpbmRvd3Mvbm90ZXBhZC5leGUgIChicnVrIGF2IFVuaXgtZmlsYmFuZXIpCgogICAgICAgIHdpbmUgc29sLmV4ZSAvcGFyYW1ldGVyMSAtcGFyYW1ldGVyMiBwYXJhbWV0ZXIzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtq+HJlIHByb2dyYW1tZXIgbWVkIHBhcmFtZXRlcmUpCgoKCldpbmUgZXIgaWtrZSBoZWx0IGZlcmRpZyBlbm7lLCBz5SBkZXQgZXIgbXVsaWcgbWFuZ2UgcHJvZ3JhbW1lciBrbGlra2VyLgpEYSBXaW5lcyBmZWlsc/hrZXIsIGRlciBkdSBrYW4gdW5kZXJz+GtlIG9nIGZpa3NlIHByb2JsZW1ldC4gTGVzCmRlbGVuIG9tIGZlaWxz+GtpbmcgaSBXaW5lcyB1dHZpa2xlcm1hbnVhbCBmb3IgbWVyIGluZm9ybXNqb24gb20gaHZvcmRhbgpkZXR0ZSBnavhyZXMuCgoKNy4gTUVSIElORk9STUFTSk9OCgpJbnRlcm5ldHQ6IEVuIGdvZCBkZWwgaW5mb3JtYXNqb24gb20gV2luZSBmaW5uZXMgaG9zIFdpbmVIUSBw5QogICAgICAgICAgIGh0dHA6Ly93d3cud2luZWhxLm9yZy86IGRpdmVyc2UgdmVpbGVkZXJlLCBlbiBwcm9ncmFtZGF0YWJhc2UsCiAgICAgICAgICAgb2cgZmVpbHNwb3JpbmcuIERldHRlIGVyIGFudGFrZWxpZyBkZXQgYmVzdGUgc3RlZGV0IOUgYmVneW5ubmUuIAoKU3ZhcjogICAgICBXaW5lcyBzcPhyc23lbCBvZyBzdmFyIGZpbm5lcyBw5SBodHRwOi8vd3d3LndpbmVocS5vcmcvRkFRCgpVc2VuZXQ6ICAgIER1IGthbiBkaXNrdXRlcmUgcHJvYmxlbWVyIG1lZCBXaW5lIG9nIGblIGhqZWxwIHDlCiAgICAgICAgICAgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lLgoKRmVpbDogICAgICBSYXBwb3J0ZXIgZmVpbCB0aWwgV2luZXMgQnVnemlsbGEgcOUgaHR0cDovL2J1Z3Mud2luZWhxLm9yZwogICAgICAgICAgIFP4ayBpIEJ1Z3ppbGxhLWRhdGFiYXNlbiBvZyBzZSBvbSBwcm9iZWxtZXQgYWxsZXJlZGUgZXIgZnVubmV0CiAgICAgICAgICAgZvhyIGR1IHNlbmRlciBlbiBmZWlscmFwcG9ydC4gRHUga2FuIG9nc+UgcmFwcG9ydGVyZSBmZWlsIHRpbAogICAgICAgICAgIGNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZS4KCklSQzogICAgICAgRGlyZWt0ZSBoamVscCBlciB0aWxnamVuZ2VsaWcgcOUga2FuYWxlbiAjV2luZUhRIHDlCiAgICAgICAgICAgaXJjLmZyZWVub2RlLm5ldC4KCkdJVDogICAgICAgV2luZXMgb3BwZGF0ZXJ0ZSB1dHZpa2xlci12ZXJzam9uIGVyIHRpbGdqZW5nZWxpZyBnamVubm9tIEdJVC4KICAgICAgICAgICBH5SB0aWwgaHR0cDovL3d3dy53aW5laHEub3JnL2dpdCBmb3IgbWVyIGluZm9ybWFzam9uLgoKRS1wb3N0bGlzdGVyCiAgICAgICAgRGV0IGZpbm5lcyBmbGVyZSBlLXBvc3RsaXN0ZXIgZm9yIFdpbmUtdXR2aWtsZXJlOyBzZQogICAgICAgIGh0dHA6Ly93d3cud2luZWhxLm9yZy9mb3J1bXMgZm9yIG1lciBpbmZvcm1hc2pvbi4KCldpa2k6ICAgV2luZXMgV2lraSBmaW5uZXMgcOUgaHR0cDovL3dpa2kud2luZWhxLm9yZwoKSHZpcyBkdSBsZWdnZXIgdGlsIG5vZSBlbGxlciBmaWtzZXIgZW4gZmVpbCwgZXIgZGV0IGZpbnQgc29tIGR1IHNlbmRlcgplbiBsYXBwZWZpbCAoaSCrZGlmZiAtdbstZm9ybWF0KSB0aWwgbGlzdGVuIHdpbmUtcGF0Y2hlc0B3aW5laHEub3JnIGZvcgppbmtsdWRlcmluZyBpIGRlbiBuZXN0ZSB1dGdpdmVsc2VuLgoKLS0KRGVuIG9yaWdpbmFsZSB2ZXJzam9uZW4gYmxlIHNrcmV2ZXQgYXYKQWxleGFuZHJlIEp1bGxpYXJkCmp1bGxpYXJkQHdpbmVocS5vcmcKCk92ZXJzZXR0ZWxzZSB0aWwgbm9yc2sgKGJva23lbCkgYXYKQWxleGFuZGVyIE4uIFP4cm5lcwphbGV4QHRoZWhhbmRvZmFnb255LmNvbQo=