RGllc2UgUnVicmlrIChMb2NvLCAyMC4gSnVsIDE5OTQsIDIyOjE2OjI5KToKTmFjaCBlcnN0ZW4gQW5sYXVmc2Nod2llcmlna2VpdGVuIGlzdCBkaWVzZSBuZXVlIFJ1YnJpayBlbmRsaWNoIG51dHpiYXIuCldvZnVlciBhbHNvIGlzdCBzaWUgZGE/CkhpZXIga29lbm50IGlociBldXJlIEhvY2h6ZWl0cy0sIEZhbWlsaWVuLSwgU3VjaC0gdW5kIHNvbnN0aWdlbiBBbnplaWdlbgp2ZXJvZWZmZW50bGljaGVuLiBEYXMgZW50bGFzdGV0IGVpbmVyc2VpdHMgZGllIFJ1YnJpayAnYWxsZ2VtZWluZXMnIChkaWUgYWxzbwphYiBzb2ZvcnQgZGVyIGZhbHNjaGUgT3J0IGRhZnVlciBpc3QpLCB1bmQgZXJsYXVidCBkZW5qZW5pZ2VuIExldXRlbiwgZGllIHNpY2gKei5CLiBhdXMgWmVpdGdydWVuZGVuIG51ciBhdWYgImRhcyBXZXNlbnRsaWNoZSIga29uemVudHJpZXJlbiB3b2xsZW4sIGRpZQpSdWJyaWsgYWJ6dWJlc3RlbGxlbi4KClByaXZhdGUgS2xlaW5hbnplaWdlbiBibGVpYmVuIHNlbGJzdHZlcnN0YWVuZGxpY2gga29zdGVubG9zLgoKICAgTG9jbwogICAgICAgIFRlY2huaXNjaGUgTGVpdHVuZyB2b24gbXBhIHVuZCBQb3N0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gZGllIFRvY2h0ZXIgVGhlb2R3eW4ncyB1bmQgRW9tdW5kJ3MgKEZsaW50bmFpbCwgIDUuIEF1ZyAxOTk0LCAwOTo1NDo0MCk6CkxpZWJlIEVPV1lOICEKCjEyIEphaHJlIGtlbm5lbiB3aXIgdW5zIG51biB1bmQgbWVpbiB0dW1iZXIgU2NoYWVkZWwga2FubiBzaWNoIGRlbiBUZXJtaW4KZnVlciBkaWUgV2llZGVya2VociBEZWluZXMgR2VidXJ0c3RhZ2VzIG5pY2h0IG1lcmtlbi4gQml0dGUgZW50c2NodWxkaWdlIGRhcwppY2ggdmVyZ2FzcywgYW0gMi4gV2VkbWF0aCBhbnp1cnVmZW4hIERlc2hhbGIgYXVjaCBhbiBkaWVzZW0gVGFnZSBhbiBkaWVzZXIKU3RlbGxlLi4uLgoKZ2xpbmdpbCBFb3d5bixNYWxsb3RoIG1hbiwgbWVsbG9uIEZsaW50bmFpbCAoS29lbm50IGlociBMYXRlaW5lciBhdWNoClF1ZW5pYT8pCgpBbGxlcyBMaWViZS4uLkZsaW50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW4gZGllIFRvY2h0ZXIgVGhlb2R3eW4ncyB1bmQgRW9tdW5kJ3MgKENhcmFkaHJhcywgIDUuIEF1ZyAxOTk0LCAyMzoyNDo0Mik6CglIdUh1IDotKQoKVW5kIGljaCBkYWNodGUgaW1tZXIsIGRhcyBoZWlzc3QgUXVlbnlhIHVuZCBuaWNodCBRdWVuaWEgOi0pCgpTaW5kYXJpbjogQ2FyYWRocmFzLCBXZXN0cm9uOiBSb3Rob3JuIG9kZXIgUmVkaG9ybiwgS2hhemFkOiBCYXJhemluYmFyCkVpbiBrYWx0ZXIgV2luZCBibGllcyBoaW50ZXIgaWhuZW4gaGVyLCBhbHMgc2llIGRlbSBSb3Rob3JucGFzcyBkZW4gUnVlY2tlbgp3YW5kdGVuIHVuZCBtdWVkZSBkZW4gSGFuZyBoaW51bnRlcnN0b2xwZXJ0ZW4uIENhcmFkaHJhcyBoYXR0ZSBzaWUgYmVzaWVndC4KCkNhcmFkaHJhcywgZGVyIEdyYXVzYW1lIChzY2hhZGUsIFJvY2h1cywgZ2VsbD8gKmdyaW5zIGZyb2VobGljaCopCiAgICAgICAgICAtIGhldXRlIGZ1cmNodGJhciBsaWViIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhFSVJBVFNBTlpFSUdFIChWYXNjbywgMTcuIEF1ZyAxOTk0LCAwNDoxMjo0MSk6CkJla2FubnRtYWNodW5nOiBuYWNoIGxhbmdlciBaZWl0IGRlciBTdWNoZSBuYWNoIGVpbmVtIGdlZWlnbmV0ZW4gVGVybWluIGZ1ZXIKdW5zZXJlIEhvY2h6ZWl0LCBoYWJlbiB3aXIgdW5zIGRhenUgZHVyY2hnZXJ1bmdlbiBkZW4gQnVuZCBmdWVyYHMgTGViZW4gYW0KRG9ubmVyc3RhZywgZGVtIDI1LkF1Z3VzdCAxOTk0IHVtIDIzIFVociBhYmVuZHMgenUgc2NobGllc3Nlbi4gV2lyIGhvZmZlbiwKZGFzcyBtb2VnbGljaHN0IHZpZWxlIHRyb3R6IGRlciBldHdhcyBzcGFldGVyZW4gVWhyemVpdCB6dSB1bnNlcmVyIFRyYXV1bmcgaW4KZGVyIFRyYXVrYXBlbGxlIGluIE5pYmVsaGVpbSB1bmQgenVyIGFuc2NobGllc3NlbmRlbiBQYXJ0eSBrb21tZW4gd2VyZGVuLgpJbiBFcndhcnR1bmcgZWluZXIgc2Nob2VuZW4gWmVyZW1vbmllOgogICAgICAgICAgICAgICBDaHJpc3kgICsgIFZhc2NvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoJ24gVGlwIChFbHJpYywgMjQuIEF1ZyAxOTk0LCAxNzowMDo0Myk6CgpXbyB3aXIgc2Nob24gbWFsIGJlaSBOYW1lbiB1bmQgQnVlY2hlcm4gc2luZC4uLiBFbHJpYyBpc3QgZGVyICJIZWxkIiBlaW5lcgpSb21hbnJlaWhlIHZvbiBNaWNoYWVsIEogTW9vcmNvY2ssIGVpbiBkaWUgSnVuZ2VuIEtvZW5pZ3JlaWNoZSB1bmQgZGl2ZXJzZQphbmRlcmUgRXhpc3RlbnplYmVuZW4gbWVociBvZGVyIHdlbmlnZXIgZnJlaXdpbGxpZyBiZXJlaXNlbmRlciBFeGtuaWcgZWluZXMKZGVnZW5lcmllcnRlbiBWb2xrZXMsIGRhcyAgZWlnZW50bGljaCBuaWNodCB2aWVsIHR1dCBhbHMgdHJhZXVtZW4gdW5kIGRlbiBSZXN0CmRlciBXZWx0IGluIEFuZ3N0IHVuZCBTY2hyZWNrZW4genUgdmVyc2V0emVuLiBXZW0gZGVyIEhlcnIgZGVyIFJpbmdlIHp1CmV1cGhlbWlzdGlzY2ggaXN0IGlzdCBtaXQgRWxyaWMgYmVzdGVucyBiZXJhdGVuLiBHdXRlIERhcmsgRmFudGFzeS4gRXJzY2hpZW5lbgooYXVmIERldXRzY2gpIGJlaSBIZXluZSB1bmQgKGluIEVuZ2xpc2NoZXIgU3ByYWNoZSkgYmVpIEFjZSBGYW50YXN5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2gnbiBUaXAgKEZsaW50bmFpbCwgMjQuIEF1ZyAxOTk0LCAxNzoxMDoyNik6CgpXbyB3aXIgZ2VyYWRlIGJlaSBNb29yY29jayBzaW5kOiB3ZXIncyBub2NoIG5pY2h0IHdlaXNzLCBlcyBnaWJ0IHZvbiBNb29yY29jawpuZSBnYW56ZSBSb21hbi1SZWloZSB1bSBkZW4gc29nZW5hbm50ZW4gRXdpZ2VuIEhlbGRlbi4gQWxsZSBtYWwgYmVpIEhleW5lIGFscwpTYW1tZWxiYWVuZGUgZXJzY2hpZW5lbi4uLmhpZXIgZGllIG1pciBiZWthbm50ZW4gVGl0ZWwKCiAgIERlciBld2lnZSBIZWxkCiAgIEVscmljIHZvbiBNZWxuaWJvbmVlCiAgIERhcyBCdWNoIENvcnVtCiAgIERlciBIZXJ6b2cgdm9uIEtvZWxuICYgRGVyIGxhbmdlIFdlZyBuYWNoIFRhbmVsb3JuCgpJbiBhbGxlbiBCdWVjaGVybiBkcmVodCBlcyBzaWNoIHVtIGRpZSBJbmthcm5hdGlvbmVuIGRlcyBld2lnZW4gSGVsZGVuLCBkZXIKcGxhdHQgZ2VzYWd0IG51ciBzZWluZSBSdWhlIGhhYmVuIHdpbGwgYWJlciB2b20gU2NoaWNrc2FsIHp1IGRpZXNlbgpIZWxkZW50YXRlbiBnZXp3dW5nZW4gaXN0LiBLbGluZ3QgendhciBuZW4gYmlzc2NoZW4gbHVzdGlnLCBpc3QgYWJlciBoZWZ0aWcsCmRhIG1laXN0ZW5zIGlyZ2VuZGVpbmUgV2VsdCBiencuIEdlc2VsbHNjaGFmdCBkYXMgemVpdGxpY2hlIHNlZ25ldC4gV2llIHVuc2VyCkVscmljIHNjaG9uIHNhZ3RlIERhcmsgRmFudGFzaWUgLi4ubWl0IG5lbSBTdGljaCBpbnMgVHJhZ2lrb21pc2NoZQoKICAgICAgICAgICAgICAgIEZsaW50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLZWluIFRpcCAoQ2F0d2VhemxlLCAyNC4gQXVnIDE5OTQsIDE3OjU1OjU5KToKSWNoIGJyYXVjaCBFdWNoIGRvY2ggd29obCBuaWNodCB6dSBlcmtsYWVyZW4sIHdvaGVyIGRlciBOYW1lCkNhdHdlYXpsZSBrb21tdCwgb2Rlcj8gOi0pKSkpCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtlaW4gVGlwIChCZWxkaW4sIDI0LiBBdWcgMTk5NCwgMTg6MjI6MzQpOgpOZWluIGRhcyBicmF1Y2hzdCBEVSBuaWNodCBDQVQgOj4KCUJlbGRpbiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2gnbiBUaXAgKFJvY2h1cywgMjQuIEF1ZyAxOTk0LCAxODoyNToxNyk6CldlbiBlcyBzY2hvbiBpbW1lciBpbnRlcmVzc2llcnQgaGF0LCB3b2hlciBkaWUgTmFtZW4gbWVpbmVyClRlc3RzcGllbGVyIChHcmlmZmluIHVuZCBNaWxsaWNlbnQpIGtvbW1lbiBkZW0gZW1wZmVobGUgaWNoCnZvbiBMYXJyeSBOaXZlbiB1bmQgU3RldmVuIEJhcm5lczoKICBUcmF1bXBhcmsKICBEYXMgTWFyc3Byb2pla3QKICBEYXMgVm9vZG9vLVNwaWVsCgpFcnN0ZXJlcyB3aXJkIGVpbmlnZW4gdm9uIEV1Y2ggc2ljaGVybGljaCBzdGVsbGVud2Vpc2UKYmVrYW5udCB2b3Jrb21tZW4gOi0pCgpBdXNzZXJkZW0gaXN0ICJEaWUgTGFuZHVuZyBkZXIgQW5hbnNpIiBhdWNoIG5vY2ggenUgZW1wZmVobGVuLApoYXQgamVkb2NoIGFic29sdXQgbmljaHRzIG1pdCBGYW50YXN5IHp1IHR1bi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hbWVuIDotKCAoR3JpbW1ib3JuLCAyNC4gQXVnIDE5OTQsIDIxOjEwOjQzKToKWnUgbWVpbmVyIFNjaGFuZGUgbXVzcyBpY2ggZ2VzdGVoZW4sIGRhc3MgZXMgd2VkZXIgZnVlciBHcmltbWJvcm4gbm9jaCBmdWVyCkdyaW1tZGVhdGggbWVpbmVzcyBXaXNzZW5zIGxpdGVyYXJpc2NoZSBWb3JsYWdlbiBnaWJ0LiBBdWNoIHdlbm4gZXMgbWlyCnBlaW5saWNoIGlzdCwgbWVpbmVuIE1hbmdlbCBhbiBCaWxkdW5nIHVuZCBCZWxlc2VuaGVpdCBzbyBvZWZmZW50bGljaCB6dQptYWNoZW4gKG5ldWRldXRzY2g6IG91dGVuKSwgd2Vpc2UgaWNoIGRhZnVlciBzdG9seiBhdWYgbWVpbmUgUGhhbnRhc2llIHVuZApLcmVhdGl2aXRhZXQgaGluLi4uCgpHcmltbWJvcm4sIGRhcyBPcmlnaW5hbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hbWVuIDotKCAoS25vZXJyeSwgMjQuIEF1ZyAxOTk0LCAyMTo0NjowNyk6ClVlYmVyIEtub2VycnkgaGF0IGF1Y2ggbm9jaCBrZWluZXIgZWluIEJ1Y2ggZ2VzY2hyaWViZW4uLi53aXJkIGRvY2ggbWFsIFplaXQKb2RlciA/Cm1mRyBLbm9lcnJ5IChEYXMgT3JpZ2luYWwpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiAoQXNtb2RpcywgMjQuIEF1ZyAxOTk0LCAyMzozMTo1MCk6CkhtbSwgZGVyIE5hbWUgQXNtb2RpcyBnZWlzdGVydCBpbiBtZWhyZXJlbiBIZWZ0LUdydXNlbHNlcmllbiBoZXJ1bSwgc28Kei5CLiBpbiAnUHJvZmVzc29yIFphbW9ycmEnIHVuZCAnSm9obiBTaW5jbGFpcicgLgpCZXNvbmRlcnMgJ1Byb2Zlc3NvciBaYW1vcnJhJyBrYW5uIGljaCBudXIgZW1wZmVobGVuLCBkaWUgU2VyaWUgaGF0CnNvd29obCBGYW50YXN5LCBIb3Jyb3IsIGFiZXIgYXVjaCBTY2llbmNlIEZpY3Rpb24genUgYmlldGVuLgoKICAgICAgICAgQ2lhbywgQXNtb2RpcyAobGllc3QgZ2VybmUgZ3J1c2VsaWdlcykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOk5hbWVuIChNZXBoaXN0bywgMjUuIEF1ZyAxOTk0LCAwMDowNzozOSk6CkRpZSBIZXJrdW5mdCBtZWluZXMgTmFtZW5zIGJlZGFyZiB3b2hsIGtlaW5lciBFcmxhZXV0ZXJ1bmcsdW5kIHdlcnMgd2lya2xpY2gKbmljaHQgd2Vpc3Msc29sbCBzaWNoIGRlbiBGYXVzdCByZWluemllaGVuLgoqZ3JpbnMqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gKExpLCAyNS4gQXVnIDE5OTQsIDA4OjAzOjEwKToKaGFsbG8gQXNtb2RpcywKQWxzbywgZGVyIE5hbWUgQXNtb2RpcyBpc3Qgc2Nob24gZXR3YXMgYWVsdGVyIGFscyBQcm9mLiBaYW1vcnJhIHVuZCBqb2huClNpbmNsYWlyLiBFciBzdGFtbXQsIHdlbm4gbWljaCBuaWNodCBhbGxlcyB0YWV1c2NodCwgYXVzIGRlbSBIZWJyYWVpc2NoZW4gdW5kCmJlemVpY2huZXQgZG9ydCBlaW5lbiBtYWVjaHRpZ2VuIFRldWZlbCwgYWJlciBuaWNodCBkZW4gaG9lY2hzdGVuLCBkZXIgaGVpc3QKZGEgYW5kZXJzLiBXZWxjaGUgTGV2ZWwgaGF0IEFzbWlvZGlzIGRlbm4gYmVpIFNpbmNsYWlyIHVuZCBaYW1vcnJhPwpMaSAoRGVyIHNpY2ggbGllYmVyIGJlaSBMb3ZlY3JhZnQgdW5kIE1hY2hlbiBncnVzZWx0LCBhYmVyIG5pY2h0cyBnZWdlbgoiR3Jvc2NoZW5yb21hbmUiIGhhdCwgZGVubiBlciBsaWVzIHNlbGJzdCBQZXJyeSBSaG9kYW4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hbWVuIChDaWZlciwgMjUuIEF1ZyAxOTk0LCAxMToyNzowMCk6CkhpLAppY2ggd3VyZGUgb2Z0IGFuZ2VzcHJvY2hlbiwgd2FzIGRlbm4gTC5VLiBiZWRldXRldDoKTC5VLiBDaWZlciA9PSBMdWR3aWcgVWhsYW5kIENpZmVyCkphLCBpY2ggd2Vpc3MsIGRhcyBob2VydCBzaWNoIGJlc2NoZXVlcnQgYW4sIGlzdCBhYmVyIGF1Y2ggZWluZQpSb21hbmZpZ3VyLCB1bmQgendhciBMdWNpZmVyIGluY29nbml0byBhdXMgZGVtIFJvbWFuCiJFaW4gQmVpbCBpbiBkZXIgTmFjaHQiIHZvbiBKYW1lcyBQLiBLaW5nc3RvbiwgZnJhZ3QgamV0enQgYWJlcgpiaXR0ZSBuaWNodCwgd28gbWFuIGRhcyBCdWNoIGthdWZlbiBrYW5uLCBkZXIgUm9tYW4gZXhpc3RpZXJ0Cm5hZW1saWNoIG51ciBpbiBkZXIgRm9ybSBlaW5lcyBNYW51c2tyaXB0ZXMuCkRlciBOYW1lIG1laW5lcyBUZXN0aWVzLCAiR3Jvb2YiIHN0YW1tdCBhdXMgZGVtIFJvbWFuCiJBbHB0cmF1bSBpbiBkZXIgR2Vpc3Rlcmdyb3R0ZSIgdm9uIDE5ODUgKGViZW5mYWxscyBLaW5nc3RvbiksIHVuZCBpc3QKYWxzIEVyc3RsaW5nc3dlcmsgZGVzIE1laXN0ZXJzIGxlaWRlciBlYmVuZmFsbHMgdW52ZXJvZWZmZW50bGljaHQuCgpVZWJyaWdlbnMsIEFzbW9kaXM6IGZydWVoZXIgbGFzIGljaCBhdWNoIEpTLCBoZXV0ZSBudXIgbm9jaCBQWiwKd2VubiBtYWwgWmVpdCBkYWZ1ZXIgaXN0LiA6KQoKTC5VLiBDaWZlcgoKUC5TLjogQ2lmZXIgd2lyZCB1ZWJyaWdlbnMgU2FpZmVyIGF1c2dlc3Byb2NoZW4gKGVuZ2xpc2NoISkuClVuZCBoYXQgaGllciBuaWNodHMgbWl0IGRlciBGaWd1ciBhdXMgIkFuZ2VsIEhlYXJ0IiB6dSB0dW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiBkaWUgWHRlIChSYWlzdGxpbiwgMjUuIEF1ZyAxOTk0LCAxODo0ODozNik6CkhpIDopCldvIHNjaG9uIHNvIHZpZWxlIGRpZSBkdWVzdGVyZSBEZWNrZSAoOikpIHVlYmVyIGlocmVuIE5hbWVuIGdlbHVlZnRldCBoYWJlbiwKd2lsbCBpY2ggaGllciBtYWwgbmljaHQgbmFjaHN0ZWhlbi4KKEFiZXIgZ2lidCBlcyB3aXJrbGljaCBqZW1hbmRlbiwgZGVyIGRpZSBIZXJrdW5mdCBtZWluZXMgTmFtZW5zIE5JQ0hUCmtlbm50Pz8/Pz8pClJhaXN0bGluIGVudHN0YW1tdCBhdXMgZGVyIERyYWdvbmxhbmNlIFNhZ2EgKHZvbiBUU1IpIFthbGxlIEJhZW5kZSBpbiBkZW5lbgplciB2b3Jrb21tdCBhdWZ6dXphZWhsZW4gd2FlcmUgZWluIG11ZWhzYW1lcyBVbnRlcmZhbmdlbiwgZGEgaW1tZXIgbm9jaCBuZXVlCmVyc2NoZWluZW46KV0KRGllIHdpY2h0aWdzdGVuIGplZG9jaCBzaW5kIHdvaGwgZGllIC1EcmFnb25sYW5jZSBDaHJvbmljbGVzIHVuZCBkaWUKRHJhZ29ubGFuY2UgTGVnZW5kcyBpbiBkZW5lbiBtYW4gZXJmYWVocnQgd2llIGRpZXNlciBmYW50YXN0aXNjaGUgTWFnaWVyICg6KSkKc2VsYnN0IGRpZSBHb2V0dGVyIGJlc2llZ3QgaGF0IChiaXMgZGllIFplaXQgenVydWVja2dlZHJlaHQgd3VyZGUpLgotLW5vY2ggZWluIFRpcDogTGVzdCBkaWUgQnVlY2hlciBhdWYgamVkZW4gRmFsbCBpbiBFbmdsaXNjaCwgZGllIERldXRzY2hlbgpVZWJlcnNldHp1bmdlbiBzaW5kIHp1bSBLLi4uIChmaW5kZSBpY2ggenVtaW5kZXN0KQoKU29ycnkgZnVlciBkaWUgYmVzY2hlaWRlbmUgRm9ybWF0aWVydW5nIHVuZCB2aWVsbGVpY2h0IGxlaWNodGVuClNpbm51bnp1c2FtbWVuaGFuZyBhYmVyIC4uLiB3YXMgc29sbHMgPyEKCiAgICBSYWlzdGxpbiBNYWplcmUgLSBUaGUgTWFzdGVyIG9mIFBhc3QgYW5kIFByZXNlbnQKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgTXVkIChUYXJhbiwgMjUuIEF1ZyAxOTk0LCAxOToyOToyOSk6CkljaCB3YXIgZnJ1ZWhlciBzY2hvbiBtYWwgaW0gTVVEIHVuZCBtdXNzIHNhZ2VuIGRhcyBlcyB2aWVsIHp1IENvbXBsZXgKZ2V3b3JkZW4gaXN0LkRpZSB3ZWdlIHNpbmQgc2NobGV0IHVlYmVyc2NoYXUgYmFyLgpQLlMuOiBNaXIgZ2VmaWVsIGRhcyBhbHRlIE11ZCBiZXNzZXIuIQpHdWVzc2UuLi4gRVhNYXZlcmljay4uIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmU6IERhcyBNdWQgKEtsaW5nZSwgMjUuIEF1ZyAxOTk0LCAxOTo1NzoxMSk6CkxpZWJlciBUYXJhbiwgc2VsdHNhbWVyd2Vpc2Uga29tbWVuIGFsbGUgYW5kZXJlbiBoaWVyIHp1cmVjaHQsCm1vZWdsaWNoZXJ3ZWlzZSBsaWVndCBkYXMgUHJvYmxlbSBqYSBiZWkgRGlyLgpXZW5uIERpciBkYXMgTUcgenUgIkNvbXBsZXgiIGlzdCwgZW1wZmVobGUgaWNoIGRpciBNdWVobGUsIERhbWUgb2RlcgpLYWVzZWthZXN0Y2hlbi4KVW5ubm5ubm5kIHRzY2h1ZXNzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiAoQXNtb2RpcywgMjUuIEF1ZyAxOTk0LCAyMDowOTozNyk6CkphamEsIGthbm4gc2VpbiwgZGFzcyBkZXIgTmFtZSBzY2hvbiBpbSBIZWJyYWVpc2NoZW4gdm9ya2FtLCBqZWRlbmZhbGxzCmlzdCBBc21vZGlzIGVpbmVyIGRlciBob2VjaHN0ZW4gVGV1ZmVsIGRpcmVrdCBuYWNoIEx1emlmZXIsIGRlbSBCb3NzCmRlciBIb2VsbGUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2lhbywgQXNtb2RpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiAoTW9yZ290aCwgMjkuIEF1ZyAxOTk0LCAxMzoxMDowMCk6CkFzbW9kaXMgaXN0IGJlaSBTaW5jbGFpciBlaW5lciBkZXIgZHJlaSBUZWlsZSB2b24gTHVjaWZlci4KRGllIGFuZGVyZW4gc2luZCBCZWVsemVidWIgdW5kIEJhcGhvbWV0KGgpLi4uCk1vcmdvdGggKFNpbG1hcmlsbGlvbiB2b24gSi5SLlIuIFRvbGtpZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZGllIFh0ZSAoTW9yZ290aCwgMjkuIEF1ZyAxOTk0LCAxMzoxMToyMyk6Ckphd29obCwgZGllIEJ1ZWNoZXIgc2luZCB3aXJrbGljaCBTVVBFUi4uLi4gaWNoIGhhYiBzaWUgZ2VsZXNlbihlbmdsaXNoKSAhIQoKTW9yZ290aAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCdWNodGlwIChGbGludG5haWwsIDI5LiBBdWcgMTk5NCwgMTQ6MTc6MzApOgpDYXJhZGhyYXMgbHQuIFNpbG1hcmlsbGlvbiAnZGFzIHJvdGUgSG9ybicgYXVzIGNhcmFuIHJhc3NhICh3ZW5uIGljaCdzIG5vY2gKcmljaHRpZyBpbSBLb3BmIGhhYiEpLiBCZXJnZ2lwZmVsIGltIE5lYmVsZ2ViaXJnZSwgaW4gZGVzc2VuIHN1ZWRsaWNoZW4KQXVzbGFldWZlcm4gd2llIENhcmFkaHJhcyBzY2hvbiBzYWd0ZSBNb3JpYSBsaWVndC4KWnUgQ2VsYmRpbCBmYWVsbHQgbWlyIG5peCBlaW4uLi5ub3JtYWxlcndlaXNlIHd1ZXJkZSBpY2ggYXVmIGVpbmVuClF1ZW55YS1OYW1lbiBlaW5lcyBFbGJlbiB0aXBwZW4sIG11c3MgYWJlciBuaWNodC4uLi5CZXJnZSB3ZXJkZW4gaW4gTWl0dGVsZXJkZQp1ZWJyaWdlbnMgYWxsZ2VtZWluIGFscyBBbW9uIGJlemVpY2huZXQgKGF1Y2ggaGllciB3aWVkZXI6d2VubiBpY2gncyBub2NoCnJpY2h0aWcgaW0gS29wZiBoYWIqZ3JpbnMqKS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hbWVuIEZsaW50bmFpbCAoRmxpbnRuYWlsLCAyOS4gQXVnIDE5OTQsIDE0OjI3OjQ4KToKCkZsaW50bmFpbCBpc3QgdWVicmlnZW5zIGVpbiBad2VyZyBhdXMgZGVyIFJ1bmVxdWVzdCBNeXRob2xvZ2llLgpSdW5lcXVlc3Qgd2llZGVydW0gaXN0IGVpbiBSb2xsZW5zcGllbCB2b24gQ2hhb3Npc20gKGdsYXViIGljaCEpLCBpbgpEZXV0c2NobGFuZCB2ZXJ0cmllYmVuIHZvbiBXZWx0ZGVyU3BpZWxlIChsZWlkZXIgaXN0IFJRIDMgemllbWxpY2ggc2NobGVjaHQsCmljaCBlbXBmZWhsZSBSUSAyIGltIE9yaWdpbmFsKS4KRmxpbnRuYWlsIGlzdCBoaWVyIGVpbiBad2VyZywgZGVyIGVyIHNjaGFmZnRlIGVpbmUgU3RhZHQgJ1BhdmlzJyBtZWluIGljaAp3YXJzLCB6dSBlcmJhdWVuLiBEaWUgRWlud29obmVyIFBhdmlzIHZlcmVocnRlbiBpaG4gZGFmdWVyIHVuZCBzbyB3dXJkZSBlcgpkYWZ1ZXIgdW5kIGZ1ZXIgZWluaWdlIGFuZGVyZSBIZWxkZW50YXRlbiB6dW0gR290dCBlcmhvYmVuOyBmcmVpIG5hY2ggZGVtCk1vdHRvOiBHb2V0dGVyIGxlYmVuIHZvbiBBbmJldHVuZywgaGFzdCBkdSBnZW51ZyBXZXNlbiBkaWUgZGlyIHVsZGlnZW4uLndpcnN0CmR1IGVpbiBHb3R0IQpEYXMgU3BpZWwga29tbXQgdWVicmlnZW5zIG9obmUgRXJmYWhydW5nc3B1bmt0ZSBhdXMuLi5tYW4gdmVyYmVzc2VydCBzaWNoCmR1cmNoIGRhcyBBbndlbmRlbiB2b24gRmVydGlna2VpdGVuIChzb3ZpZWwgaWNoIHdlaXNzIGlzdCBkYXMgYXVzIFJvbGVtYXN0ZXIKYWJnZWxlaXRldCkgdW5kIGFuaW1pc3Rpc2NoZSBNYWdpZSBrYW5uIHZvbiBqZWRlbSBXZXNlbiBhdXNnZVtidCB3ZXJkZW4sIGRhcwplaW5lbSBLdWx0IGFuZ2Vob2VydCAoZGF2b24gZ2liIGVzIGdlbnVnIChLdWx0cyBvZiBQcmF4PSBlaW4gRElOIEE0IE9yZG5lcjsKS3VsdHMgb2YgVGVycm9yIGF1Y2ghKS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthcnRlIChHcmltbWJvcm4sIDMwLiBBdWcgMTk5NCwgMDk6NTg6NTQpOgoKSWNoIG1vZWNodGUgbWljaCBnYW56IGhlcnpsaWNoIGJlaSBhbGxlbiBVbnRlcnplaWNobmVybiBkZXIgR2VidXJ0c3RhZ3NrYXJ0ZQphbiBtaWNoIGJlZGFua2VuIChjYS4gNzAgU3R1ZWNrLCBpbmNsLiBBbmR5LCBIaXBwZS4uLikhIEljaCBoYWIgc2llIGdlc3Rlcm4KZXJoYWx0ZW4gdW5kIHdhciByaWNodGlnIGdlcnVlaHJ0ICpzY2hudWVmZiouIFdhcyBmdWVyIGVpbiBKYW1tZXIsIGRhc3MgaWNoCm5pY2h0IHNlbGJlciBiZWkgZGVyIFBhcnR5IHNlaW4ga29ubnRlLgpBbmRlcmVyc2VpdHM6IERhIGhhYnQgaWhyIG5vY2htYWwgR2x1ZWNrIGdlaGFidC4uLgoKTWl0IGVpbmVyIFRyYWVuZSBpbSBLbm9wZmxvY2ggKHdpZSBhYmdlZ3JpZmZlbi4uLik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZGllIFh0ZSAoU2lsdmFuYSwgMzAuIEF1ZyAxOTk0LCAxMDowNDozMCk6CkljaCBnbGF1YmUga2F1bSwgZGFzcyBkZXIgTmFtZSBSYWlzdGxpbiBlaW5lIEVya2xhZXJ1bmcgbm9ldGlnIGhhdC4KQWxsZXJkaW5ncyBzaW5kIGF1cyBkZXIgRHJhY2hlbmxhbnplIG5vY2ggZWluZSBnYW56ZSBSZWloZSBhbmRlcmVyIE5hbWVuCmVudGxpZWhlbiwgZGllIGViZW5mYWxscyBpbSBNRyBhdWZ0YXVjaGVuOiBTaWx2YW5hLCBDYXJhbW9uIChSYWlzdGxpbnMKWndpbGxpbmdzYnJ1ZGVyKSwgTWFqZXJlIChFaWdlbnRsaWNoIFBhbGluIE1hamVyZSAgLSBSYWlzdGxpbnMgTmVmZmUpLCBUaWthCihXYXlsYW4gTWFqZXJlIC0gQ2FyYW1vbnMgRnJhdSB1bmQgTXV0dGVyIHZvbiBQYWxpbiksIExhdXJhbmEsIHVuZCBlaW5pZ2UKYW5kZXJlLiAoSWNoIGdsYXViZSBUYW5pcyBnaWJ0J3MgYXVjaC4uLikKQWxsZSBkaWUgaWNoIGpldHp0IHZlcmdlc3NlbiBoYWJlIG1vZWdlbiBkZXMgZW50c2NodWxpZ2VuLi4uIDstKQpTaWx2YW5hIC0gRHJhY2hlbmxhbnplLUZhbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2htYWwgTmFtZW4gKEdyaW1tYm9ybiwgMzAuIEF1ZyAxOTk0LCAxOTozNjo0OCk6CgpXYXMgbWljaCBub2NoIGludGVyZXNzaWVyZW4gd3VlcmRlIGRhIGljaCBkaWUgSGVya3VuZnQgdm9uIEpvZiBrZW5uZTogV28Ka29tbXQgZGVyIE5hbWUgQm9pbmcgaGVyPyBFdHdhIHZvbiBkaWVzZW4gRmx1Z3pldWdlbiwgZGllIGRhdWVybmQgYWJzdHVlcnplbj8KCk5hbWVuc2ZvcnNjaHVuZyBiZXRyZWliZW5kOgogICAgICAgICAgICAgICAgICAgICAgICAgICBHcmltbWJvcm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NobWFsIE5hbWVuIChCb2luZywgMzAuIEF1ZyAxOTk0LCAxOTo1MzozMSk6Ck5laW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5vY2htYWwgTmFtZW4gKENhcmFkaHJhcywgMzAuIEF1ZyAxOTk0LCAyMDozNTo0Nik6CkNhcmFkaHJhcyAodm9uIGNhcmFuLXJhc3MpIHVlYnJpZ2VucyBTaW5kYXJpbiwgTklDSFQgUXVlbnlhLCBRdWVueWEgd2FlcmUKY2FybmUgc3RhdHQgY2FyYW4uCgpDZWxlYmRpbCBkaWUgU2lsYmVyemlubmUsIENlbGViLCBkYXMgU2lsYmVyLCBhdWNoIFNpbmRhcmluLCBrZWluIFF1ZW55YSwKdGVsZXAgYnp3LiB0ZWxwZSBpc3QgUXVlbnlhLCB3aWUgaW4gdGVscGVyaW9uCgpEaWVzIG51ciB1bSBrbGFyenVzdGVsbGVuIGRhc3MgZXMgU2luZGFyaW4gdW5kIG5pY2h0IFF1ZW55YSB3YXIgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNZWluIE5hbWUuLi4gKEFyb21ib2xvc2NoLCAzMC4gQXVnIDE5OTQsIDIyOjU4OjM3KToKV2VuIGVzIGludGVyZXNzaWVydCwgbWVpbiBOYW1lIGtvbW10IHZvbiAnc2Nod2FyemVuIEF1Z2UnLCBhbGxzZWl0cyBiZXJ1ZWhtdC0KYmVydWVjaHRpZ3RlcyBkZXV0c2NoZXMgUm9sbGVuc3BpZWwsIHVuZCBBcm9tYm9sb3NjaCBpc3QgZG9ydCBkZXIgS29lbmlnCmFsbGVyIFp3ZXJnZSAobnUgc2VodCBpaHIgd2FydW0gaWNoIGltbWVyIHNhdWVyIHdhciBhbHMgTGV1dGUgZGVuIFp3ZXJnZW4tCmtvZW5pZyBhbmdlZ3JpZmZlbiBoYWJlbi4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiByZTogenUgZGVyIGh1dXNnZSBxdWVzdCAoUmFpc3RsaW4sICAxLiBTZXAgMTk5NCwgMTc6NDA6NDIpOgp3b2xsdGUgZ2FyIG5pY2h0cyBzYWdlbiwgaGFiIHNpZSBkb2NoIG5vY2ggZ2FyIG5pY2h0IGdlbWFjaHQKKnNjaGFlbSogUmFpc3RsaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmFtZW4gZGllIFh0ZSAoUmFpc3RsaW4sICAxLiBTZXAgMTk5NCwgMTc6NDI6MjQpOgpFaW5lIFJpZXNlbiBFbnRzY2h1bGRpZ3VuZyBhbiBhbGxlIERyYWdvbmxhbmNlIENoYXJha3RlcnMgOikKV29sbHRlIG1pY2ggbmljaHQgdWViZXIgZGllIGFuZGVyZW4gc3RlbGxlbiA6KQoKLS1SYWlzdGxpbiAoZnVlciBrdXJ6ZSBaZWl0IGVpbiBHb3R0IGF1ZiBLcnlubikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiBkaWUgWXRlIChQaWxncmltLCAgNC4gU2VwIDE5OTQsIDE5OjI2OjQyKToKSGksCmJldm9yIGpldHp0IGFsbGUgc2FnZW46ICJpc3QgZG9jaCBrbGFyLCAnUGlsZ3JpbScga29tbXQgYXVzIGRlbSBFbmdsaXNjaGVuCnVuZCBoZWlzc3Q6IFBpbGdlciwgV2FsbGZhaHJlciIgbXVzcyBpY2ggc2FnZW46ICJmYWxzY2ggLSBkYXMgaXN0IG51ciBkaWUKaGFsYmUgV2FocmhlaXQiLgoKUGlsZ3JpbSBrb21tdCBhdXMgZGVyICcgRGVyIE5pZWJlbHVuZ2VuIE5vdCBgLCB3YXIgS3JpZW1oaWxkcyBPaGVpbSB1bmQgc2VpbnMKWmVpY2hlbnMgQmlzY2hvZiBpbiBQYXNzYXUuCgpQaWxncmltCihOaWJlbHVuZ2VuIG5hdHVlcmxpY2ggb2huZSAnaWUnIDstKSApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGFtbXRpc2NoIChDYXR3ZWF6bGUsICA4LiBTZXAgMTk5NCwgMTk6MzQ6MjIpOgpIYWxsb2VjaGVuIQpKYWFhLCBkZXIgVGl0ZWwgaXN0IGV0d2FzIHZlcndpcnJlbmQsIGFiZXIgcHJpbnppcGllbGwgc2Nob24KZ2FueiBrb3JyZWt0LiBXaXIgaGFiZW4gbmV1bGljaCBiZXNjaGxvc3NlbiBlaW5lbiBNb3JnZW5HcmF1ZW4tClN0YW1tdGlzY2ggZWluenVyaWNodGVuLCB3b2JlaSBkYXMgV29ydCBzdGFtbXRpc2NoIG5pY2h0IHNvIGVybnN0Cmdlbm9tbWVuIHdlcmRlbiBzb2xsdGUuIFdpciBoYWJlbiBoYWx0IHZvciB1bnMgd29lY2hlbnRsaWNoIG9kZXIKendlaXdvZWNoZW50bGljaCBtYWwgaXJnZW5kd28gYWJlbmRzIGluIFJMIHp1IHRyZWZmZW4uCldpZSwgd2Fubiwgd28gZ2VuYXUsIG9iIHJlZ2VsbWFlc3NpZywgd2lyZCBzaWNoIHplaWdlbiwgbWFsCmFid2FydGVuLCB3aWUgZXMgbGFldWZ0LgpWb3JnZXNlaGVuIGlzdCB6dW5hZWNoc3QgbWFsIGplZGVuIERpZW5zdGFnIHVtIDIwOjAwIFVociBpbQonT2JpbmEgU2hvY2snLCBkYXMgaXN0IGFtIFJpbmcgRWNrZSBIdWVmZmVyc3RyYXNzZS4KV2VyIGltbWVyIEx1c3QgaGF0IHp1IGtvbW1lbiwgZGVyIGRhcmYgZGFzIGRhbm4gYXVjaC4KQWxvcywgbmFlY2hzdGVuIERJZW5zdGFnIGRhcyBlcnN0ZSBtYWw6CkRlciAnTW9yZ2VuR3JhdWVuLVN0YW1tdGlzY2gnIDotKSkpKSkKWW91cnMgdHJ1bHksCiAgICAgICAgICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTUdNIChHcmltbWJvcm4sICA5LiBTZXAgMTk5NCwgMjI6NTA6NTcpOgoKSmEsIGRhcyBNYWdhemluIHdhciB3b2hsIGRvY2ggbmljaHQgc28gYXV0b2xvYWQsIHdhcyBIYXRlPyA7LSkpKQoKRGFzIE1hZ2F6aW4gbmljaHQgbGVzZW4ga29lbm5lbmQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptb3JlIG5hbWVzIChDbGF5bW9yZSwgMTUuIFNlcCAxOTk0LCAxNDo0ODozNyk6CmhhbGxpaGFsbG8KYWxzbyBlcnN0ZWlubWFsIGRhcyBpc3QgbWVpbiBlcnN0ZXIgYXJ0aWtlbCB0b2xsIHdhcyBpY2ggaG9mZmUgZXMgbGllc3N0IGlobgp0cm90emRlbSBqZW1hbmQgd2VubiBuaWNodCBkYW5uIGF1Y2ggZWdhbC4gd2VnZW4gbWVpbmVyIG5hbWVuIDwxcnN0LzJuZD4gZGllCmRhIGxhdXRlbiBDbGF5bW9yZSAvIFRlYnVqZSAuIGRlbiBlcnN0ZQpmCmZmZmYKbm4KcQpzbyBuZSBrLi4uLiBpY2ggcGVpbCBkYXMgbm9jaCBuaWNodCBzbyBnYW5zIGFsc28gc29ycnkuCmFsc28gd2VpdGVyIGRlciBlcnN0ZSBrb21tdCBuaWNodCB2b24gZGVtIHNjaG1pdC1zcGllbCAsIHNvbmRlcm4gdm9uIGVpbmVtCndhZmZlbiBrb21wZW5pdW0uCmluIGRpZXNlbSBmYW5kIGljaCBlaW5lbiBzY2hvdHRpc2NoZW4gMi1oYWVuZGVyIGRlbiBkaWUgZG9ydCBhbnNhZXNzaWdlbgpyaXR0ZXIgdHJ1Z2VuIG5hbWVucyBDTEFZTU9SRSB1bmQgaWNoIGZhbmQgZGFzIHNvIHRvbGwgZGFzIGljaCBkZW4gbmFtZW4genUKbWVpbmVtIHN5bm9udWVtIGVya2xhZXJ0IGhhYmUuCmRlciAyLiBuYW1lIGlzdCBhdWNoIGVpbiBzY2h3ZXJ0IGF1cyBlaW5lbSBSTS1Lb21wZW5kaXVtIGVzIGlzdCBlaW4gMSAxLzIKLWhhZW5kZXIgd2VsY2hlciBhbiBkZXIga2xpbmdlIGtyYXNzZSB6YWNrZW4gYmVzaXR6dCB1bmQgZGF6dSBnZWRhY2h0IGlzdCBpbQpLYW1wZiBkaWUgbGV1dGUgZWluZmFjaCBBVUZaVVJFSVNTRU4gISEhISEhISEhISEhISEhISEhCkNvb2wgd2FoPwoKbmFqYSB1bmQgZGFubiBub2NoIHp1IGRyYWdvbmxhbmNlIGljaCBiZWRhdXJlIHplaHIgZGFzIGlociBEYWxhbWFyIHZlcmdlc3NlbgpoYWJ0IGVyIHdhciBuYWVtbGljaCBtZWluIGZhZm9yaXQgPG5hIGljaCBtZWluZSBoZWxkIHVuZCBzbywgd2Vpc3MgbmljaHQgd2llCmRhcyBnZXNjaHJpZWJlbiB3aXJkPiAhISEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbW9yZSBuYW1lcyAoRmxpbnRuYWlsLCAxNS4gU2VwIDE5OTQsIDE0OjU2OjUzKToKSG0uLi4uZGFzIFNjaG1pZHRzcGllbCB0cmFlZ3QgZGVuIE5hbWVuIG5hY2ggZGVtIFNjaHdlcnQsIENsYXkuLi4ubmFqYSB1bmQKa3Jhc3NlIFphY2tlbiB1bSBMZXV0ZSBhdWZ6dXJlaXNzZW4gZnVua3Rpb25pZXJlbiBlaWdlbnRsaWNoIG51ciBpbgpLZXR0ZW5zYWVnZW5mb3JtIHdpZSBiZWkgRE9PTS4uLmxlaWRlciBzY2hlaXRlcnRlbiBpbSBNaXRlbGFsdGVyIGRpZSBtZWlzdGVuClZlcnN1Y2hlIHNvbGNoZSBXYWZmZW4genUgYmVudXR6ZWVuIGFuIGZlaGxlbmRlciBTdGFlcmtlLCBzcHJpY2gsIGRpZSBaYWNrZW4KdmVyaGFya3RlbiBzaWNoIGltIGVyc3RlbiBnZXRyb2ZmZW5lbiBHZWduZXIgdW5kIG1hbiBoYXR0ZSBkaWUgV2FobDogZW50d2VkZXIKV2FmZmUgaW0gR2VnbmVyIGxhc3NlbiBvZGVyIHZvbiBzZWluZW4gQ29tcmFkZXMgZXJzY2hsYWdlbiB3ZXJkZW4uLi5uYWphIGluCkZhbnRhc3lyb2xsZW5zcGllbGVuIGlzdCBtYW4gbWVpc3QgbmljaHQgc28gc3RyZW5nIDspKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuemVpZ2UhIChCbGFja3ksIDE1LiBTZXAgMTk5NCwgMTU6NDE6MDQpOgpNZWluZSBHZWxpZWJ0ZSBWZXJsb2J0ZSBpc3QgbGVpZGVyIHZvbiB1bnMgZ2VnYW5nZW4sIHNvIGRhc3MgaWNoIGFsbGUKZW50dGFldXNjaGVuIG11c3MsIGRpZSBiaXMgamV0enQgYXVmIGRlbiBUZXJtaW4gZGVyIEhvY2h6ZWl0IGdld2FydGV0CmhhYmVuLi4uLi4uLgogICAgICAgICAgICBFaW4gdW0gTG9saXRhIGV3aWcgdHJhdWVybmRlciBCbGFja3kgOiwtKAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBtb3JlIG5hbWVzIChFeG9kdXMsIDE2LiBTZXAgMTk5NCwgMTA6NDc6MDQpOgpZby4gRmxpbnROYWlsIGlzIGphbiBlY2h0ZXIgS2VubmVyISBIYWIgbGV0enRlbnMgZGVpbmVuIEFydGlrZWwgdWViZXIgZGVuCkZlcm5lbiBPc3RlbiBnZWxlc2VuLi4uIHd1cmRlIGRhcyBXYWtpemFzaGkgdWViZXJoYXVwdCB6dW0gS2FlbXBmZW4gdmVyd2VuZGV0CihLYXRhbmEgYWxsZWluIGlzIGphIHNjaG9uIHJlY2h0IGdyb3NzKSBvZGVyIG51ciB6dW0gU2VwcHVrdT8KVHNjaGF1LCBYLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLi4uIG1hbCBuZSBBbnplaWdlIGFuZGVyZXIgQXJ0IChIYXJkaWwsIDE2LiBTZXAgMTk5NCwgMTU6MDU6MjQpOgoKICAgVyAgIEEgICBOICAgVCAgIEUgICBEICAgISEhCgpIYXQgamVtYW5kIHZvbiBFdWNoIEx1c3QsIHNpY2ggbWFsIGF1ZiBlaW4gKGV0d2FzKSBhbmRlcmVzIHNwaWVsZXJpc2NoZXMKVGVycmFpbiB6dSBiZWdlYmVuID8KSWNoIHN1Y2hlIChtZWhyIG9kZXIgd2VuaWdlcikgZHJpbmdlbmQgMSAtIDMgTWl0c3BpZWxlciBmdWVyIGRhcyBQb3N0c3BpZWwKIlRPVUNIRE9XTiIsIGRpZSBlaW4gVGVhbSB1ZWJlcm5laG1lbiB3b2xsZW4uCldpZSBkZXIgTmFtZSBzY2hvbiBhbmRldXRldCwgaGFuZGVsdCBlcyBzaWNoIHVtIGVpbmUKQW1lci5Gb290YmFsbC1TaW11bGF0aW9uLgpXZXIgbmFlaGVyZXMgd2lzc2VuIHdpbGwgKHdhcyBpc3QgZWluIFBvc3RzcGllbCA/IFdhcyBpc3QgVG91Y2hkb3duID8gV2FydW0KZ2VyYWRlIGljaCA/KSwgZGVyIG1lbGRlIHNpY2ggYml0dGUgZGlyZWt0IHVlYmVyIE11ZC1Qb3N0IChvZGVyIHBlcnNvZW5saWNoKQpiZWkgbWlyLgpWaWVsIFNwYXNzIGdhcmFudGllcmVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFyZGlsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUG9zdHNwaWVsIChRdWFzaW1vZG8sIDE2LiBTZXAgMTk5NCwgMTU6MDk6NDMpOgpUYWNoIEhhcmRpbCEKClBCTSB1ZWJlciBQb3N0IG9kZXIgZS1tYWlsPwoKUXVhc2ltb2RvCgpQLlMuOiBIYWIgaWNoIGFscyBBcnRpa2VsIGdlc2NocmllYmVuLCB3ZWlsIGVzIHZpZWxsZWljaCBub2NoIG1laHIgTGV1dGUKd2lzc2VuIHdvbGxlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1pciBlZ2FsIChIYXJkaWwsIDE2LiBTZXAgMTk5NCwgMTU6MTE6NDcpOgoKRWlnZW50bGljaCB1ZWJlciBCdW1tZWxwb3N0LCBkYSBpY2ggYWJlciBwZXIgZS1tYWlsIGVycmVpY2hiYXIgYmluLCBpc3QgYXVjaApQQk0gcGVyIGUtbWFpbCBtb2VnbGljaC4gS2VpbiBQcm9ibGVtLgoKSGFyZGlsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGFtbXRpc2NoISAoQ2F0d2VhemxlLCAxNi4gU2VwIDE5OTQsIDE4OjQ5OjA5KToKTm9jaCBtYWwgenVyIEVyaW5uZXJ1bmchCldpciBoYWJlbiBqZXR6dCBqZWRlbiBEaWVuc3RhZyB1bSAyMDowMCBVaHIgaW0gT2JpbmEgU2hvY2sKKFJpbmcsIEVja2UgSHVlZmZlcnN0cmFzc2UpIGVpbiBUcmVmZmVuIGFsbGVyIE1vcmdlbkdyYXVlbi0KU3BpZWxlci9TZWhlci9NYWdpZXIuCldlciBhdWNoIGltbWVyIEx1c3QgaGF0IHVuZCBtaWNoIHVuZCBlaW4gcGFhciBhbmRlcmUgTXVkZGllcwptYWwgTGlmZSBlcmxlYmVuIHdpbGwgOikgaXN0IGhlcnpsaWNoIGVpbmdlbGFkZW4uCkRpZXNlIFdvY2hlIHdhcnMgZGFzIGVyc3RlIG1hbCwgNyBMZXV0ZSB3YXJlbiBkYSB1bmQgZXMgd2FyCmVpZ2VudGxpY2ggdmVyZGFtbXQgbHVzdGlnLgpZb3VycyB0cnVseSwKICAgICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbWlyIGVnYWwgKElzbm9nb29kLCAxNy4gU2VwIDE5OTQsIDAxOjA1OjQyKToKVWViZXIgRS1tYWlsIGhhZXR0IGljaCBJbnRlcmVzc2UsIG1lbGRlIGRpY2ggbWFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbi4uLiAoR3JpbW1ib3JuLCAxNy4gU2VwIDE5OTQsIDA2OjMwOjUzKToKCkVzIGlzdCBqYSBhbGxnZW1laW4gYmVrYW5udCwgZGFzcyBpY2ggZWluZW4gWndlaXR5IG5hbWVucyBHcmltbWRlYXRoIGhhYmUuCkFscyBoaWVyIGFsc28gZWluIEdyaW1tbGlmZSBhdWZ0YXVjaHRlLCBsYWcgZGllIFZlcm11dHVuZyBuYWhlLCBlcyBrb2VubnRlCmF1Y2ggZWluIENoYXJha3RlciB2b24gbWlyIHNlaW4KICAgICAgICAgICAgICAgICAgIERBUyBJU1QgTklDSFQgREVSIEZBTEwhCkplZGVyIGhhdCBoaWVyIGltIG11ZCBkaWUgTW9lZ2xpY2hrZWl0LCBzaWNoIGVpbmVuIE5hbWVuIGF1c3p1c3VjaGVuLCB3ZW5uIGVzCmRhYmVpIHp1ZmFlbGxpZyg/KSB6dSBNaXNzdmVyc3RhZW5kbmlzc2VuIGtvbW1lbiBrYW5uIHNvIG11c3MgbWFuIGRhbWl0IGxlYmVuLgoqZ3JpbnMqCgpKZWRlbmZhbGxzIHd1ZW5zY2hlIGljaCBHcmltbWxpZmUgaGllciB2aWVsIFNwYXNzIGltIG11ZCEKCiAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QsIGRlciBkYXMgbnVyIG1hbCBlcndhZWhudCBoYWJlbiB3b2xsdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi51bmQgdHNjaHVlc3MgOikgKFJoaWFubm9uLCAxOC4gU2VwIDE5OTQsIDE1OjQ3OjM4KToKSGFsbG8gaWhyLApkYSBpY2ggbWljaCBhbSBEaWVuc3RhZywgMjAuOS4gendlY2tzIFN0dWRpdW0gZnVlciAzIE1vbmF0ZSBuYWNoCkdsYXNnb3cgKFNjaG90dGxhbmQpIHZlcnppZWhlbiB3ZXJkZSwgbW9lY2h0ZSBpY2ggbWljaCBzY2hvbm1hbAp2b24gRXVjaCB2ZXJhYnNjaGllZGVuLiBJY2ggd2Vpc3MgbGVpZGVyIG5vY2ggbmljaHQsIG9iIG1hbiBtaXIgZG9ydAphbiBkZXIgVW5pIGVpbmVuIGFjY291bnQgYW52ZXJ0cmF1ZW4gd2lyZCAoKmhvZmYqLCAzIE1vbmF0ZSBvaG5lIG11ZApzaW5kIGVpbmUgZ3JhdXNhbWUgVm9yc3RlbGx1bmcgOykuIFNvbGx0ZSBpY2ggZWluZW4gYmVrb21tZW4sIHdlcmRlCmljaCBiZXN0aW1tdCBhYiB1bmQgenUgbWFsIHJlaW5zY2hhdWVuLiBXZW5uIG5pY2gsIHNpZWh0IG1hbiBzaWNoCnNwYWV0ZXN0ZW5zIG5hY2ggV2VpaG5hY2h0ZW4gd2llZGVyLi4uCk1hY2h0cyBndXQsCiAgICAgICAgICAgIFJoaWFubm9uLCBkaWUgc29lYmVuIGlocmVuIGVyc3RlbiBBcnRpa2VsIGdlc2NocmllYmVuCmhhdCwgdW5kIGhvZmZ0LCBkYXNzIGVyIG5pY2h0IHp1IHNlaHIgdm9sbCBGZWhsZXJuIGlzdCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVrYW5udG1hY2h1bmcgKExvY28sIDE5LiBTZXAgMTk5NCwgMDA6MDE6MjIpOgpOYWNoIGVpbmVyIGtsZWluZW4gUmVub3ZpZXJ1bmcgZmFlaHJ0IGRhcyBQb3N0c2NoaWZmIGRlciBIdXJ0aWdydXRlbiBhYgpzb2ZvcnQgdW50ZXIgZGVtIE5hbWVuICJNL1MgTG9mb3RlbiIuIERpZSBGYWhydHN0cmVja2UgaGF0IHNpY2ggbmljaHQKZ2VhZW5kZXJ0LgpOdXIgZGFzcyBrZWluZXIgbWVpbnQsIGRhcyBTY2hpZmYgd3VlcmRlIG5pY2h0IGtvbW1lbi4uLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGllIFJlZWRlcmVpZW4gZGVyIEh1cnRpZ3J1dGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gYWxsZSBTcGllbGVyIG1pdCBJZGVlbiAoUXVhc2ltb2RvLCAxOS4gU2VwIDE5OTQsIDEyOjM2OjA1KToKSGkhCgpOdXIgd2VpbCBpY2ggZ2VyYWRlIG1laW5lIExvZy1maWxlcyBkdXJjaGdlc2NoYXV0IGhhYmU6CgpJY2ggZmluZGUgZXMgZ3V0LCB3ZW5uIGlociBJZGVlL1R5cG8vQnVnIHphaGxyZWljaCBiZW51dHp0IHVuZCBpY2ggd2VyZGUKbW9lZ2xpY2hzdCB2aWVsZSBkaWVzZXIgVm9yc2NobGFlZ2UgaW4gZGllIFRhdCB1bXNldHp0ZW4sIGFiZXIgaWNoIGZpbmRlIGF1Y2gKdmllbGUgVm9yc2NobGFlZ2UsIGRpZSBzaWNoIG5pY2h0IGF1ZiBkZW4gamV3ZWlsaWdlbiBSYXVtLCBvZGVyIGRpZSBHZWdlbmQKYmV6aWVoZW4sIHNvbmRlcm4gZGllIHpCIFJhc3NlbnVudGVyc2NoaWVkZSBvZGVyIGFuZGVyZSBnbG9iYWxlIFRoZW1hdGlrZW4KYmV0cmVmZmVuLiBEYWhlciBtZWluZSBCaXR0ZToKV2VubiBJaHIgc29sY2hlIElkZWVuIGhhYnQsIGRhbm4gdmVyb2VmZm50bGljaCBzaWUgZG9jaCBpbiBkZXIgWmVpdHVuZy4gRGllCm1laXN0ZW4gTWFnaWVyIGtvZW5uZW4gc2llIG5hZW1saWNoIGdhciBuaWNodCB1bXNldHplbi4gTGVpZGVyLgoKUXVhc2ltb2RvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiBkaWUgWHRlIChCdW5nbGUsIDE5LiBTZXAgMTk5NCwgMTU6NDE6NTEpOgpIYWxsb2VjaGVuICEKCkVzIGdpYnQgZGEgYXVjaCBlaW5lIEJhbmQgbmFtZW5zIEFzbW9kaXMuRGllIGhhbSBzb2dhciBzY2hvbiAnbmUgUGxhdHRlCmRyYXVzc2VuLHdlbGNoZSBoZWlzc3QgOgoiRmFociB6dXIgSG9lbGxlLFBmbGVpc2NobXVldHplISIgKGluY2wuIHBmIDopCgpJcmdlbmR3aWUgcGFzc2VuZCxmaW5kZXQgaWhyIG5pY2h0ID8gLi4uLi4gOykgIEV1ZXIgQnVuZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogKEVscmljLCAxOS4gU2VwIDE5OTQsIDE2OjUyOjUwKToKQ2hlbWllIG1hY2h0IGRvZi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbiBhbGxlIFNwaWVsZXIgbWl0IElkZWVuIChCb2luZywgMTkuIFNlcCAxOTk0LCAxNzoxNTozNCk6CkFiZXIgZGllIGZlaGxnZWxlaXRldGVuIElkZWVuIGtvZW5uZW4gamEgaW1tZXIgbm9jaCB2b20gZW50c3ByZWNoZW5kZW4KTWFnaWVyIG5hY2ggbWFnaWVyLmVudHdpY2tsdW5nIGdlcG9zdGV0IHdlcmRlbiAuLi4KICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmU6IGNoZW1pZSBtYWNodCBkb29mIChHdWxkdWthdCwgMTkuIFNlcCAxOTk0LCAyMjowODozMyk6CjwgQ2hlbWllIG1hY2h0IGRvb2YKdW5nbGF1YmxpY2gKCkNoZW1pZSBtYWNodCBuaWNodCBkb29mLCBhbGxlcmRpbmdzLCB3ZW5uIG1hbiBkb29mIGlzdCwgbWFjaHQgY2hlbWllIGVpbmVuCnRvdCA7LSkKCkd1bCBEdWthdCwgT2Jlci1DaGVtaWtlciBhdWYgRFNOCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlOiBtb3JlIG5hbWVzIChGbGludG5haWwsIDIwLiBTZXAgMTk5NCwgMTU6Mzk6NTYpOgpIbW0uLi4uWCEgU292aWVsIHdlaXNzIGljaCB1ZWJlciBqYXBhbmlzY2hlIFNjaHdlcnRrYW1wZnRlY2huaWtlbiBuaWNodC4uLmljaApoYWIgbWlyIHNwYXNzZXNoYWxiZXIgZWluZSBVZWJlcnNldHp1bmcgdm9uIE11c2FzaGkncyBCdWNoIGRlciA1IFJpbmdlCmdla2F1ZnQsIGRhcyBhbmdlYmxpY2ggc2VpbmUgU2Nod2VydGthbXBmdGVjaG5payBiZXNjaHJlaWJ0LiBEYXMgRGluZyB3aXJkIGluCkphcGFuIHdvaGwgYXVjaCB6dW0gTWFuYWdlclRyYWluaW5nIGVpbmdlc2V0enQsIHdlaWwgbWFuIGRpZSBMZWhyZSwgd2VubiBtYW4Kc2llIGVyc3RtYWwgdmVyc3RhbmRlbiBoYXQsIGluIGplZGVtIEdlYmlldCBlaW5zZXR6ZW4ga2FubiwgdW0genUgc2llZ2VuIQooTmFqYS4ud2VyJ3MgZ2xhdWJ0ISkKQXVmIGplZGVuIEZhbGwsIFgsIHdpcmQgaGllciBlaW5lIFNjaHdlcnRrYW1wZnRlY2huaWssIGljaCBnbGF1YiBzaWUgaGllc3MKJ2dlb2VmZm5ldHRlciBIaW1tZWwgKG9kZXJzbyksIGJlc2NocmllYmVuLCBiZWkgZGVyIGRlciBTY2h3ZXJ0a2FlbXBmZXIgQkVJREUKV2FmZmVuIHVlYmVyIEtvcGYgZnVlaHJ0LCB1bSBkZW4gR2VnbmVyenUgZXJzY2hsYWdlbi4uLm5hamEuLi53aWUncyBnZW5hdQpmdW5rdGlvbmllcnQgd2Vpc3MgaWNoIGF1Y2ggbmljaHQsIGFiZXIgZXIgYmVudXR6dCBCRUlERSBXYWZmZW4hCgogICAgICAgRmxpbnRuYWlsIGhvZmZlbmQgZGFzIEV4byBqZXR6dCBzY2hsYXVlciBpcyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaGVtaWUgaXN0IGRvb2YhIChRdWFzaW1vZG8sIDIxLiBTZXAgMTk5NCwgMTI6MTg6MDIpOgoKQ2hlbWllIG1hY2h0IG5pY2h0IGRvb2YsIHNvbmRlcm4gd2VyIGRvb2YgaXN0IG1hY2h0IENoZW1pZS4gOikKClF1YXNpbW9kbwoKUFM6QmxvcyBuaWNodCBwZXJzb2VubGljaCBuZWhtZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENoZW1pZSBpc3QgZG9vZiEgKENpZmVyLCAyMS4gU2VwIDE5OTQsIDEyOjU2OjA2KToKSGksCmdsYXVidCBtaXIsIGRlbm4gaWNoIGhhYiBudW4gOCBTZW1lc3RlciBhbHMgQmV0cm9mZmVuZXIgaGludGVyCm1pciwgZGFzcyBDaGVtaWUgZ2VuYXUgZGFubiBkb29mIGlzdCwgd2VubiBtYW4gc2llIGxlcm5lbiBtdXNzLiBTZWxic3QgZGFubiwKd2VubiBldHdhcyB2b3JoZXIgU3Bhc3MgbWFjaHRlLCBob2VydCBkZXIgU3Bhc3MgYXVmLCB3ZW5uIG1hbiBldHdhcyB1bnRlcgpad2FuZyBsZXJuZW4gbXVzcy4gQWJlcjogV29sbHQgSWhyIHdpcmtsaWNoIG9obmUgQ2hlbWllIGF1c2tvbW1lbj8gT2huZQpLb25zZXJ2aWVydW5nc21pdHRlbCBpbSBFc3Nlbj8gT2huZSBBYmdhc2UgaW4gZGVyIEx1ZnQ/IE9obmUgRGlveGluIGluIGRlcgpLaW5kZXJrbGVpZHVuZz8gQWxzbywgaWNoIG5pY2h0ISBXbyB3dWVyZGUgZGEgZGllIFNwYW5udW5nIGltIExlYmVuIGJsZWliZW4/ClVuZCAtIHNpbmQgd2lyIG5pY2h0IGFsbGUgZG9vZj8KU2luZCBuaWNodCBkaWUsIGRpZSBpbiBkZXIgTWF0aGVtYXRpayBuYWNoIGltbWVyIGdyb2Vzc2VyZW4gbmV1ZW4gWmFobGVuCnN1Y2hlbiwgbmljaHQgYXVjaCBkb29mPyBEaWUgQXN0cm9ub21lbiwgZGllIGRhcyBWb2x1bWVuIGRlcyBNb25kZXMKYmVyZWNobmVuPwpEaWUgTWVkaXppbmVyLCBkaWUgdW5zIHp1IGhlaWxlbiB2ZXJzdWNoZW4/IERpZSBCaW9sb2dlbiwgZGllIGdsYXViZW4sIGRpZQpXZWx0IHdhZXJlIGdydWVuPwpEaWUgUHN5Y2hvYW5hbHl0aWtlciwgZGllIGdsYXViZW4sIHNpZSBrb2VubnRlbiBub2NoIGV0d2FzIHJldHRlbj8KCkhtbS4sIGlzdCBuaWNodCB3ZW5pZ3N0ZW5zIGRpZXNlciBBcnRpa2VsIGRvb2Y/IE9kZXIgdmllbGxlaWNodCBkb2NoIG51cgpKKmYsIHVtIGhpZXIgbWFsIHdpZWRlciBlaW4gZ2FlbmdpZ2VzIFNwcmljaHdvcnQgenUgeml0aWVyZW4/Ckxhc3N0IHVucyBwaGlsb3NvcGhpZXJlbiB3aWUgZGllIElycmVuIC0gd2llIHdhZXJlIGVzIG1pdCBuZXIgUnVicmlrClBoaWxvc29waGllLi4uPwoKQ2lmZXIsIExhbGxzYWNrIHVuZCBEb29maWUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTZWhlcndldHRiZXdlcmIgKENhdHdlYXpsZSwgMjIuIFNlcCAxOTk0LCAxOTowMDo1NCk6CkhhbGxvZWNoZW4hCkljaCBkYWNodGUgbWlyLCBzb3JnIGRvY2ggbWFsIGVpbiBiaXNzY2hlbiBmdWVyIGFla3NjaG4gZnVlciBkaWUgU2VoZXIsCmFsc28gZ2lidHMgamV0enQgZWluZW4gV2V0dGJld2VyYiwgZWluZW4gV2V0dHN0cmVpdCBiZXNzZXIgZ2VzYWd0LgpFcyBnZWh0IHVtIGZvbGdlbmRlczoKV2lyIHN1Y2hlbiBkZW4gU2VoZXIvZGllIFNlaGVyaW4sIGRlci9kaWUgZXMgc2NoYWZmdCwgaW5uZXJoYWxiCmVpbmVzIFplaXRsaW1pdHMgbW9lZ2xpY2hzdCB2aWVsIEdlbGQgcmFuenVzY2hlZmZlbG4uIERhcyB3aXJkIGVpbmUKaXJyZSBNZXR6ZWxlaSA6KQpVbmQgamV0enkga29tbXQgZGVyIENsb3UsIGVzIGdpYnQgYXVjaCBlaW5lbiBIYXVwdHByZWlzLCB1bmQgendhcgpudXIgZnVlciBkZW4gYmVzdGVuLCBkZXIgWndlaXRlIGlzdCBzY2hvbiBMb3Nlci4KVW5kIGpldHp0IGhhbHRldCBFdWNoIGZlc3QsIGRlciBIYXVwdHByZWlzIGlzdDoKICAgIEVpbiBTRUhFUkhBVVMsCmF1ZmJhdWJhciwgYW4gZWluZW0gT3J0IGRlaW5lciBXYWhsLgpBYmVyIG51biB6dSBkZW4gUmVnZWxuOgpXQU5OOiAgRGllIHNjaGxhZWNodGVyZWkgYmVnaW5udCBhbSBrb21tZW5kZW4gTWl0dHdvY2gsIGRlbiAyOC4wOS4KdW0gMTQ6MDAgVWhyIHVuZCBkYXVlcnQsIG5hamEsIGJpcyBpY2ggZXMgbmljaHQgbWVociBlcnRyYWdlLCBhYmVyCm1pbmRlc3RlbnMgYmlzIGNhLiAyMDowMCBVaHIuCldPOiBOYXR1ZXJsaWNoIGhpZXIgaW0gTVVELCBobW0sIHNhZ2VuIHdpciBtYWwgbWl0dGVuIGF1ZiBkZXIgSG9jaGViZW5lLgpEb3J0IGlzdCBkZXIgU3RhcnRwdW5rdCBmdWVyIFRlaWxuZWhtZXIuCldFUjogVGVpbG5haG1lYmVyZWNodGlndCBzaW5kIE5VUiBTZWhlci9TZWhlcmlubmVuLgoKVW5kIG51biBkaWUgSEFSVEVOIHJlZ2VsbjoKLSBCZW51dHp1bmcgdm9uIFp3ZWl0aWVzL2RyaXR0aWVzIHVzdy4gaXN0IHN0cmVuZ3N0ZW5zIHZlcmJvdGVuLgotIEViZW5zbyBkYXJmIGtlaW4gR2VsZCB2b24gYW5kZXJlbiBTcGllbGVybiBhbmdlbm9tbWVuIHdlcmRlbgotIEVzIGR1ZXJmZW4gYXVjaCBrZWluZSBPYmpla3RlIGplZ2xpY2hlciBBcnQgYW5nZW5vbW1lbiB3ZXJkZW4KLSBqZWRlciBUZWlsbmVobWVyIHdpcmQgdWViZXJ3YWNodCB1bSBlaW5lIFViZXJ0cmV0dW5nIGRlciBSZWdlbG4KICB6dSBlcmZhc3Nlbi4gTWl0IGFuZGVyZW4gV29ydGVuLCBlciB3aXJkIGdlc25vb3B0LgotIFdlcmRlbiB6d2VpdGllcy9kcml0dGllcyB1c3cuIHZvbiBUZWlsbmVobWVybiBlaW5nZWxvZ2d0IHVuZCBkaWVzCmJlbXdlcmt0LCBzbyB3ZXJkZW4gc2llIHNvZm9ydCBhdXMgZGVtIFNwaWVsIGdld29yZmVuCi0gZXMgZGFyZiBtaXQgYmVsaWViaWdlciBBdXNydWVzdHVuZyBhbmdldHJldGVuIHdlcmRlbgotIERlciBXZXJ0IGRlciBBdXNydWVzdHVuZyB2b3IgQmVnaW5uIHVuZCBuYWNoIGRlbSBFbmRlIHdlcmRlbgogIHZlcmdsaWNoZW4sIERpZmZlcmVuemVuIHdlcmRlbiBhdWYgZGFzIGVyZ2VibmlzcyBhdWZnZXNjaGxhZ2VuCiAgb2RlciBhYmdlem9nZW4KLSBVbSBUcmFnZXByb2JsZW1lIHp1IHZlcm1laWRlbiwga2FubiBlcmJldXRldGVzIEdlbGQgendpc2NoZW56ZWl0bGljaAogIGRlcG9uaWVydCB3ZXJkZW4uCi0gRGVwb25pZXJ0ZXMgR2VsZCBrYW5uIE5JQ0hUIHdpZWRlciBhYmdlaG9sdCB3ZXJkZW4hISEKCkVpbiBVZWJlcnRyZXRlbiBkaWVzZXIgUmVnZWxuIGZ1ZWhydCB6dW0gc29mb3J0aWdlbiBBdXNzY2hlaWRlbgphdXMgZGVtIFdldHRiZXdlcmIuClNvbGx0ZW4gbWlyIG5vY2ggd2VpdGVyZSB3aWNodGlnZSBSZWdlbG4gZWluZmFsbGVuLCBzbyBzY2hyZWliIGljaCBzaWUKbm9jaCBoaWVyIGRhenUuCgpBY2hzbywgZGFzIHdpY2h0aWdzdGUuIE1hbiBoYXQgZ2VuYXUgMSBTdHVuZGUgWmVpdCB1bmQgenUgc292aWVsCkdlbGQgenUga29tbWVuLCB3aWUgbW9lZ2xpY2guCkRpZXNlciBXZXR0YmV3ZXJiIHdpcmQgZHVyY2hnZWZ1ZWhydCBpbiBlbmdlciBadXNhbW1lbmFyYmVpdAptaXQgZGVyIE1vcmdlbkdyYXVlbi1CYW5rICdEaWUgQmFuayBpbiBJaHJlbSBSdWVja2VuJwoKWW91cnMgdHJ1bHksCiAgICAgICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2VoZXJ3ZXR0YmV3ZXJiIChDaWZlciwgMjIuIFNlcCAxOTk0LCAxOTowNTowOSk6CkRhcyBpc3QgamEgd2lya2xpY2ggc3VwZXIhIEdpYnQgZXMgYXVjaCBzY2hvbiBlaW5lbiBCdWNobWFjaGVyLCBiZWkgZGVtCmljaCBtZWluIEdlbGQgYXVmIEFzbW9kaXMgc2V0emVuIGthbm4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc2VoZXJ3ZXR0YmV3ZXJiIChHdWxkdWthdCwgMjIuIFNlcCAxOTk0LCAxOTowNTo1MCk6CkF1IGphLCB1bmQgYWxsZSBzcGllbGVyIGhhZW5nZW4gaW4gZGVyIHNzcCBydW0gdW5kIHBsYXR0ZW4gYWxsZSBtb25zdGVyLApkYW1pdCBkaWUgc2VoZXIgbml4IG1laHIgYWJrcmllZ2VuIDstKQoKR3VsRHVrYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBzZWhlcndldHRiZXdlcmIgKEtub2VycnksIDIyLiBTZXAgMTk5NCwgMTk6MDk6MTcpOgpXZXIgaXN0IEFzbW9kaXMgPyBJY2ggd2V0dGUgMTAwMDAgbXVlbnplbiwgZGFzcyBUb2V0ZXIgc2ljaCBlaW4gSGF1cyBiYXVlbgpkYXJmIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTogc2VoZXJ3ZXR0YmV3ZXJiIChDaWZlciwgMjIuIFNlcCAxOTk0LCAxOToxMToyMyk6CkRpZSBXZXR0ZSBnaWx0IC0gYWJlciBkdWVyZnRlIGljaCBEaXIgZGFzIEdlbGQgaW0gRmFsbGUgRGVpbmVzIEVyZm9sZ2VzCmF1Y2ggYXVzYmV6YWhsZW4gb2RlciB3YWVyZSBkYXMgU3BpZWxlcmhpbGZlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2VoZXJ3ZXR0YmV3ZXJiIChDYXR3ZWF6bGUsIDIyLiBTZXAgMTk5NCwgMTk6NTU6MjApOgpBY2hzbywgdW0gZGFzIGVpbmlnZXJtYXNzZW4genUgcGxhbmVuLCBiaXR0ZSBhbiBtaWNoIG1haWxlbiwKV0VSIGJlYWJzaWNodGlndCBtaXR6dW1hY2hlbiB1bmQgdm9yIGFsbGVuIERpbmdlbiBXQU5OLCBpY2ggd2lsbApqYSBuaWNodCBhbGxlIHNlaGVyIGdsZWljaHplaXRpZyBhdWZzIG11ZCBsb3NsYXNzZW4sIHNvbmRlcm4gZWluCmJpc3NjaGVuIHplaXR2ZXJzZXR6dApZVCwKICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2V0dGJld2VyYiAoVGhvcmluLCAyMi4gU2VwIDE5OTQsIDIwOjI0OjQ4KToKQWxzbyBDYXQsIGVpbmUgd2l0emlnZSBJZGVlLCBhYmVyIGljaCB3ZWlzcyBqZXR6dCBzY2hvbiwgZGFzcyBpY2ggbmljaHQgZHJhbgp0ZWlsbmVobWUsIGRlbm4gaWNoIGhhbHRlIHZvbSByZWluZW4gTWV0emVsbiBuaWNodHMuIERhIHdhcnRlIGljaCBsaWViZXIgZWluCnBhYXIgV29jaGVuIHVuZCBiYXUgbWlyIGRhbm4gZWluIFNlaGVyaGF1cy4gV2VubiBoYWV0dGVzdCBEdSBEaXIgamEgYXVjaCB3YXMKd2l0emlnZXJlcyBBdXNkZW5rZW4Ka29lbm5lbiwgei5CLiB3ZXIga29tbXQgaW5uZXJoYWxiIHZvbiAyIFN0dW5kZW4gYW0gd2VpdGVzdGVuIGR1cmNoIFRyb3lzIG5ldWUKU2VoZXJxdWVzdCAod2VubiBkaWUgbWFsIGRyYW5rb21tdCwgYWJlciB3aXIgd2FlcmVuIGRvY2ggb3B0aW1hbGUgVGVzdGVyLCBvZGVyCj8/PykuIERhIHdhZXIgd2VuaWdzdGVucyBuZW4gR2FnIHVuZCBuZSBBYndlY2hzbHVuZyBiZWksIGFiZXIgc3R1cmVzIE1ldHplbG4KPz8gTmFqYSwgYWJlcgppbW1lcmhpbiBtYWwgbmUgSWRlZSAuLi4KUC5TLiBJY2ggc2V0eiBhdWYgQXNtb2RpcywgZWdhbCB3ZXIgYXVmIHdhcyBzZXR6dCA6KSkpClNlcnZ1cyB1bmQgYXJyaXZpZGVyY2ksIFRob3JpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdldHRiZXdlcmIgKENhdHdlYXpsZSwgMjIuIFNlcCAxOTk0LCAyMToxMzowMik6CkhtLCBpY2ggd3VlcmRlIERpciByYXRlbiwgYW4gZGVtIFdldHRiZXdlcmIgdGVpbHp1bmVobWVuLCBlcyBpc3QgZGllCmVpbnppZ2UgTW9lZ2xpY2hrZWl0IFNDSE5FTEwgYW4gZWluIFNlaGVyaGF1cyB6dSBrb21tZW4gOykKaW4gZGVyIEhvZmZudW5nLCBkYXMgZXIgZXMgdmVyc3RlaHQsCiAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyZS13ZXR0YmV3ZXJiIChUaG9yaW4sIDIyLiBTZXAgMTk5NCwgMjE6Mjk6MTcpOgpUamEsIENhdCwgaWNoIHd1ZXJkZSB2aWVsbGVpY2h0IG5vY2htYWwgZGllIFZvcnp1ZWdlIGVpbmVzIFNlaGVyaGF1c2VzCmVyd2FlaG5lbiwgYXVjaCB3ZW5uIGVzIG1pY2ggcGVyc29lbmxpY2ggbmljaHQgc28gc2VociBpbnRlcmVzc2llcnQuIFdlbm4gaWNoCnByb2dnZW4gd2lsbCwgbWFjaGUgaWNoIGRhcyBpbiAqUElFUCogb2RlciAqUElFUCosIHVuZCBoaWVyIGJpbiBpY2ggenVtCnNwaWVsZW4sIG5pY2h0IHp1bSBtZXR6ZWxuLiBEZXIKbGV0enRlIEdydW5kIGlzdCBhdWNoLCBkYXNzIGljaCBqYSBtaXQgbWVpbmVyIEVoZWdhdHRpbiB6dXNhbW1lbndvaG5lbiB3aWxsLAp1bmQgZGEgZGllIHNjaG9uIGVpbmUgV29obnVuZyAoS0VJTiBTZWhlcmhhdXMpIHByb2dyYW1taWVydCwgd296dSBzb2xsdGUgaWNoCmRhbm4gbWVpbmVuIFByaW56aXBpZW4gKG5vIHVubmVjZXNzYXJ5IGtpbGxpbmcpIHdpZGVyc3ByZWNoZW4gPz8KQWxzbyBuaWNodHMgZnVlciB1bmd1dCwgYWJlciBkaWVzZXIgV2V0dGJld2VyYiBpc3QgbmljaHRzIGZ1ZXIgbWljaC4uLiBBYmVyCnZpZWxsZWljaHQgbGFzc3QgaWhyIGV1Y2ggamEgbWFsIGFuZGVyZSBXZXR0YmV3ZXJiZSBlaW5mYWxsZW4sIGRpZSBJZGVlIGFuCnNpY2ggaXN0IGd1dC4uLiBCcmF1Y2h0IGphIG5pY2h0IGltbWVyIGVpbiBTZWhlcmhhdXMgYmVpIHJhdXNzcHJpbmdlbiwgaWhyCmtvZW5udCBqYSBhdWNoIE1lZGFsbGllbgpiYXN0ZWxuLi4uIE9kZXIgYXVjaCBiZWkgZGllc2VtIFdldHRiZXdlcmIgQXV0b2xvYWRtZWRhbGxpZW4gZnVlciBkaWUgZXJzdGVuCjMgLi4uClRob3JpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbHVlY2tlIChUaG9yaW4sIDIyLiBTZXAgMTk5NCwgMjE6Mzk6NDUpOgpVZWJyaWdlbnMsIFJlZ2VsbHVlY2tlIDE6IFNjaGxpZXNzIGF1Y2ggYXVzLCBkYXNzIFNhY2hlbiBpcmdlbmR3byAncmVpbgp6dWZhZWxsaWcnIHJ1bWxpZWdlbiBvZGVyIGRhcyBNb25zdGVyICdwbG9ldHpsaWNoJyA1MDAwIG11ZW56ZW4gZGFiZWkgaGFiZW4KOikpKSBBYmVyIGdhbnogZmFpciB3aXJkIGRlciBXZXR0YmV3ZXJiIG5pZSwgZGVubiB3aWUgd2lsbHN0IGR1IGFsbGUgYW5kZXJlbgpkYXZvbiBhYmhhbHRlbiwgenUgZGVyIFplaXQKd28gZGllIHNlaGVyaW4vZGVyIHNlaGVyIGdlcmFkZSBydW1tZXR6ZWx0IG5pY2h0IGF1Y2ggcnVtenVtZXR6ZWxuID8/IGluCnNvZmVybiBrYW5uIG1hbiBkYSBkb2NoIHppZW1saWNoIHN0b2VyZW4uLi4KTmFqYSwganVzdCBlaW4gcGFhciBUaG91Z2h0cy4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2V0dGJld2VyYiAoR3JpbW1ib3JuLCAyMy4gU2VwIDE5OTQsIDAzOjE1OjIzKToKCkljaCBkZW5rZSBzY2hvbiwgVGhvcmluLCBkYXNzIGVzIG1vZWdsaWNoIGlzdCwgdW50ZXIgU2VoZXJuIGRlbiBXZXR0YmV3ZXJiCmZhaXIgYXVzenV0cmFnZW4uIE9kZXIga29lbm50ZXN0IER1IERpciBlaW5lbiBhbmRlcmVuIFNlaGVyIHZvcnN0ZWxsZW4sIGRlcgphdXMgcmVpbmVyIEJvc2hlaXQgYW5kZXJlbiBkYXMgR2VsZCB2b3IgZGVyIE5hc2Ugd2VnbmltbXQ/IEljaCBkZW5rZSBrYXVtLApkYXNzIGRhcyBqZW1hbmQgc28gdmVyYmlzc2VuIHNpZWh0LgpXYXMgaWNoIGludGVyZXNzYW50ZXIgZmluZGU6IEV3aWcgbGFuZ2UgYmVrb21tdCBtYW4genUgaG9laHJlbiwgZGFzcyBkYXMgbWl0CmRlbiBTZWhlcmhhZXVzZXJuIG5pY2h0IHNvIHNjaG5lbGwgZ2VodCwgd2VpbCBlcyBhdWYgZGllIGVpbmUgb2RlciBhbmRlcmUKV2Vpc2UgUHJvYmxlbWUgZ2lidC4gTnVuIHN0ZWxsdCBzaWNoIHJhdXM6IEVzIGdlaHQgamEgZG9jaCEgKnN0YXVuKiBXZXIgaGFldHRlCmRhcyBnZWRhY2h0Li4uIFVuZCB3ZW5uIGljaCBSb2NodXMgeml0aWVyZW4gZGFyZiAoaWNoIGdsYXVicyBpbW1lciBub2NoIG5pY2h0LgpSb2NodXMsIGJpc3QgRHUgc2ljaGVyIGRhc3MgbnVyIER1IERlaW4gUGFzc3dvcnQga2VubnN0PyA7LSkgKSBTZWhlciBoYWJlbiBpbQpNRyBlaW5pZ2VzIGdlbGVpc3RldCB1bmQgZGFzIFJlY2h0LCBzaWNoIGF1ZiBkZW4gTG9vcmJlZXJlbiBhdXN6dXJ1aGVuLiBLZWluCkdydW5kIHdlaXQgdW5kIGJyZWl0IHVtIGlobmVuIHNvbGNoZSBTY2h3aWVyaWdrZWl0ZW4genUgbWFjaGVuLCBzaWNoIGluIGRlbgpkYXp1IGdlaG9lcmlnZW4gU2NoYXVrZWxzdHVobCB6dSBzZXR6ZW4sIG9kZXI/CkljaCB3ZXJkZSBuaWNodCBhbiBkaWVzZW0gV2V0dGJld2VyYiB0ZWlsbmVobWVuLCB1bmQgendhciBhdXMgZWluZW0gZ2FuegphbmRlcmVuIEdydW5kLiBJY2ggaGVnZSBtaXR0bGVyd2VpbGUgZWluIGRldXRsaWNoZXMgTWlzc3RyYXVlbiBNYWdpZXJuCmdlZ2VudWViZXIgaW4gZGVtIFNpbm5lLCBhbHMgaWNoIG5pY2h0IGdld2lsbHQgYmluLCBoaWVyIGRlbiBNdXN0ZXJzZWhlciB6dQpzcGllbGVuLiBXZW5uIHNpY2ggcmF1c3N0ZWxsdCwgd2lldmllbCBHZWxkIHp1IG1hY2hlbiBpc3QgZ2VoZSBpY2ggamVkZSBXZXR0ZQplaW4sIGRhc3MgYmVpIGVpbmVtIGFlaG5saWNoZW4gV2V0dGJld2VyYiA0IFdvY2hlbiBzcGFldGVyIG5pY2h0IGFubmFlaGVybmQgc28KdmllbCByYXVzc3ByaW5ndC4gRGllc2VzIE1pc3N0cmF1ZW4gaXN0IG5pY2h0IGdydW5kbG9zOiBOYWNoIGVpbiBwYWFyIFNjaGVyemVuCnVlYmVyIGRpZSAiU2VoZXJiYW5rIiAoU3RhZHR3YWNoZSB2b24gTW91bG9raW4pIHdvIGVzIHJlbGF0aXYgbGVpY2h0IHdhciwgYW4KR2VsZCB6dSBrb21tZW4gd3VyZGUgc2llIG1hc3NpdiB2ZXJzY2hhZXJmdCwgbmljaHQgbnVyIGRhc3MgZGllIE1pbm90YXVyZW4KZGF6dSBrYW1lbiwgYXVjaCBkaWUgS29zdCBkZXIgZWluZmFjaGVuIFdhZWNodGVyIG11c3Mgc2ljaCBnZWJlc3NlcnQgaGFiZW4sCnBsb2V0emxpY2ggaGF0dGVuIHNpZSBkZXV0bGljaCBtZWhyIFNwZWNrIGF1ZiBkZW4gUmlwcGVuLiBEYW5uIGhhYmUgaWNoIG1pY2gKZWluZXMgVGFnZXMgendhbmdsb3MgbWl0IFRyb3kgdWViZXIgSHVubmFyIFJvdGJhcnQgdW50ZXJoYWx0ZW4gKGljaAplbnRzY2h1bGRpZ2UgbWljaCBoaWVybWl0IGJlaSBhbGxlbiBTZWhlcm4pLCBlaW4gVGFnIHNwYWV0ZXIgd2FyIEh1bm5hciBudXIKbm9jaCBtaXQgQnVtZXJhbmcgYW56dWdyZWlmZW4sIHp3ZWkgVGFnZSBzcGFldGVyIHVlYmVyaGF1cHQgbmljaHQuIFdlbm4gYWxzbwpkZW4gTWFnaWVybiBkaWUgTW9lZ2xpY2hrZWl0IGRlciBTZWhlciB6dSBkZXV0bGljaCB3aXJkLCB3aXJkIGRpZSBLbGluZ2UKYW5nZXNldHp0LiBEYWJlaSBzZWhlIGljaCBtZWluIFNlaGVydHVtIHNvLCBkYXNzIGljaCBpbiBtb2VnbGljaHN0IGd1dGVyCkF1c3J1ZXN0dW5nIHJ1bWxhdWZlIChTdGF0dXNzeW1ib2wpLCB2aWVsZXMgcGxhZXR0ZW4gS09FTk5URSwgbWljaCBhYmVyIGRhbm4KaW0gd2VzZW50bGljaGVuIGF1ZiBtZWluZW4gTG9vcmJlZXJlbiBhdXNydWhlLiBadW1pbmRlc3Qgd3VlcmRlIGljaCAyMDBrIGluCnJ1bmQgMTUgU3R1bmRlbiBzbyBiZXplaWNobmVuLgpXZW5uIG5pZW1hbmQgd2FzIGRhZ2VnZW4gaGF0IHVuZCBlciBtb2VjaHRlLCB3dWVyZGUgaWNoIGdlcm5lIG1laW5lbgpTdGFydHBsYXR6IGFuIENhcmFkaHJhcyB2ZXJlcmJlbi4gRGFzIGZhZW5kZSBpY2ggZGFubiBkb2NoIHdpcmtsaWNoCmludGVyZXNzYW50Li4uCgpJbiBkaWVzZW0gU2lubmU6CiAgICAgICAgICAgICAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QgaW0gV2FydGVuIGF1ZiBkaWVzZW4KKiMlJX4hQC1WYW1waWVyLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2V0dGJld2VyYiAoSGlnaGxhbmRlciwgMjMuIFNlcCAxOTk0LCAxMjowMDowMik6CkhpIGdyaW1taWdlciBHcmltbWJvcm4hCkFsc28gbWl0IGRlbSBIYWVnYXIsIGFlaCwgSHVubmFyIG11c3MgaWNoIFRyb3kgc296dXNhZ2VuIGluIFNjaHV0eiBuZWhtZW4uCkRhIHdhciBuYWVtbGljaCBkZXIgZnVlciBXYWZmZW4gdW5kIFJ1ZXN0dW5nZW4gdmVyYW50d29ydGxpY2hlIEVyem1hZ2llciBtYWwKd2llZGVyIGF1ZiBkZXIgU3VjaGUgdW5kIHd1cmRlIGJlaSBIdW5uYXIgZnVlbmRpZy4gRGFyYXVmaGluIG11c3N0ZQpUcm95IGlobiBpcmdlbmR3aWUgYWVuZGVybi4gVW5kIGRhcyBoYXQgZXIgaGFsdCBzbyBnZW1hY2h0LCBkYXNzIG1hbiBkZW4KS2FwaXRhZW4gKGlzdCBlciBkb2NoLCBvZGVyPykgbmljaHQgbWVociBhbmdyZWlmZW4ga2Fubi4KQW4gZGVyIFVudGVyaGFsdHVuZyBtaXQgVHJveSBsYWdzIGFsc28gbmljaHQuCkNpYW8sCiAgIEhpZ2hsYW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmh1bm5hciAoR3JpbW1ib3JuLCAyMy4gU2VwIDE5OTQsIDEyOjIwOjM3KToKClNvLCBkYXMgd2lyZCBlaW4gY2hhb3Rpc2NoZXIgQXJ0aWtlbCwgd2VpbCBpY2ggYW0gTWFjIHNpdHplIHVuZCBlaWdlbnRsaWNoCmtlaW5lIFplaXQgaGFiZS4uLgpEdSBpcnJzdCwgaGlnaGxhbmRlciwgSHVubmFyIGlzdCBFcnN0ZXIgT2ZmaXppZXIsIHNvd2FzIGluIGRpZSBSaWNodHVuZy4gRGllCkF1c3J1ZXN0dW5nc3F1YWxpdGFldCBpc3QgbmljaHQgbmV1IGJpcyBhdWYgZGllIFN0aWVmZWwuCkhhbmRzY2h1aGUgc2luZCB3aWUgc2lsYmVybmUsIHNjaHdlcmVyLiBIZWxtIHdpZSBHb2JsaW4sIGxlaWNodGVyLiBXYWZmZSB3aWUKQlMgKGFiZXIgendlaWhhZW5kaWcpLCBzY2h3ZXJlciBhbHMgQmF1bXN0YW1tLiBIb3NlIGdpYnRzIGF1Y2ggaXJnZW5kd28uLi4KSmVtYW5kZW4gdW5hbmdyZWlmYmFyIHp1IG1hY2hlbiBpc3Qgc2ljaGVybGljaCBkaWUgc2NobGVjaHRlc3RlIExvZXN1bmcsIHdlaWwKZGEgc2VociBzY2huZWxsIGRpZSBCZWdydWVuZHVuZyBhdXNnZWh0LCBXSUVTTyBqZW1hbmQgdW5hbmdyZWlmYmFyIGlzdC4KCkRhcyBtaXQgZGVtIHJ1bWxhdWZlbmRlbiBFcnptYWdpZXIgaXN0IGtlaW5lIGJlZ3J1ZW5kdW5nLiBNZWluZSBHdWV0ZSwgaWhyCk1hZ2llciBzZWlkIGRvY2gga2VpbiBLaW5kZXJnYXJ0ZW4sIGthbm4gZXMgZGVubiBzbyBzY2h3ZXIgc2Vpbiwgc293YXMgVk9SSEVSCmFienVrbGFlcmVuPyBEYXMgaXN0IGRvY2ggd29obCBlaW4gc2NobGVjaHRlciBXaXR6LCBrYW5uIGljaCBudXIgc2FnZW4uCkplZGVuZmFsbHMsIHNvIHdpZSBkYXMgZ2VsYXVmZW4gaXN0LCBpc3RzIHNjaGxlY2h0IGdlbGF1ZmVuLiBUcm95IGhhZXR0ZSBqYQpzZWluZXIgTGluaWUgZWluZmFjaCB0cmV1IGJsZWliZW4ga29lbm5lbiB1bmQgSHVubmFyIGVpbmUgRXNrb3J0ZSBLYW1wZm1vZXdlbgptaXRnZWJlbiBrb2VubmVuLiBKZWRlIFdldHRlLCBkYXNzIGRhbm4gYWxsZSBTZWhlciBkaWUgRmluZ2VyIHZvbiBIdW5uYXIKbGFzc2VuLi4uCgpHZXNwYW5udCBhdWYgZGllIGVuZGd1ZWx0aWdlLCBtb2VnbGljaHN0IHNvZ2FyIGxvZ2lzY2hlIExvZXN1bmc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoxMDAxIEZyYWdlbiAoSGFyZGlsLCAyNi4gU2VwIDE5OTQsIDEyOjA2OjA0KToKCkhhLCBlbmRsaWNoIGlzdCBtYWwgd2llZGVyIGVpbiBzbG90IGluIGRlciBSdWJyaWsgMiBmcmVpLiBHbGVpY2ggbnV0emVuLi4uIDopCkFsc28sIENhdCwgZGFzIGlzdCB6d2FyIGFsbGVzIHJlY2h0IG5ldHQsIGFhYWFiZXIuCldhcyBpc3QgZGVubiBudW4gZXJsYXVidC4KV2FzIGlzdCB1bmVybGF1YnRlIEhpbGZlID8KV2VubiBpY2ggZWluZW0gdW5iZXRlaWxpZ3RlbiBTcGllbGVyIGVpbmVuIFBsYXR0ZW5wYW56ZXIgZnVlciA2MDAwIE11ZW56ZW4KKEJ1Y2h3ZXJ0KSB2ZXJrYXVmZSAtIGlzdCBkYXMgZXJsYXVidCA/Ck9kZXIgZGFyZiBpY2ggbnVyIGRpZSAxMDAwIHZvbSBoYWVuZGxlciBuZWhlbW4gPwpXYXMgaXN0LCB3ZW5uIHZvciBtaXIgZWluZSBIb3JkZSBMZXV0ZSBoZXJsYWV1ZnQsIGRpZSBhbGxlIE1vbnN0ZXIKYW5wbGFldHRlbiwgc28gZGFzcyBpY2ggbnVyIG5vY2gga3VyeiBmaW5pc2hlbiBtdXNzIHVuZCBkZWkgQmV1dGUgaGFiZSA/Ck9kZXIgd2FzIHNpdCwgd2VubiBpY2ggaW0gT3JrbGFnZXIgbm9jaCBkaWUgZ2VzYW10ZSBCZXV0ZSB2b24gZGVyIHZvcmhlcmlnZW4KTmFjaHQgZWluc2FtbWVsZSB1bmQgZGFubiB2ZXJrYXVmZT8gT2RlciBub2NoIGJlc3Nlcjogd2VubiBpY2ggaW4gZGVyIFNTUApNdWVsbHNjaGx1Y2tlciBzcGllbGUgdW5kIDQwMDAgQmxlY2hlLCAxMDAwIHZlcm1vZGVydGUgQmVsY2hlIHVuZCAzMzMKRWlzc3NjaHdlcnRlciBlaW5zYW1tZWxlID8KQWxsZXMgZXJsYXVidCA/Pz8KKGFlaCwgc29ycnkgZnVlciBSZXhzY2hyZWliZmVobGVyLCBpY2ggdmVyc3VjaGUgbWljaCBpbSA4LUZpbmdlci1TeXN0ZW0pCldlcmRlbiBkaWUgR2ViaWV0ZSB2b3JoZXIgcmUtc2V0dGV0IHVuZCBmdWVyIGFuZGVyZSBTcGllbGVyIGdlc3BlcnJ0ID8KICAgIE5hZWNoc3RlciBQdW5rdDogd2FzIGhlaXNzdCBkYXMsIGRhcyBtZWlzdGUgR2VsZCBlcmJldXRldCA/CkhlaXNzdCBkYXM6IEJydXR0by1FaW5uYWhtZW4sIG9kZXIgTmV0dG8tR2V3aW5uIG5hY2ggQWJ6dWcgZGVyIFNwZXNlbmtvc3RlbgpmdWVyIEVzc2VuLCBUcmlua2VuIHVuZCBzb25zdGlnZXMgPwpJY2ggaG9mZmUgamV0enQgZWluZmFjaCBtYWwgYXVmIDEwMDEgQW50d29ydGVuICh1bmQgYmluIGdlc3Bhbm50LCBpbiB3ZWxjaGVyClJ1YnJpaywgZGllc2UgaXN0IGphIGpldHp0IGhpZXJtaXQgdm9sbCkgOikKCkhhcmRpbCAobW9lY2h0ZSwgd2VubiwgZGFubiB2b24gMDg6MDAgYmlzIDA5OjAwIFVociBkaWUgZXJzdGUgTWFya2Ugc2V0emVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTogUmU6IEh1bm5hciAoVHJveSwgMjYuIFNlcCAxOTk0LCAxMjoxMDowNik6CkFsc286IEljaCBoYWJlIEh1bm5hciBhdWZncnVuZCBkZXIgSGlud2Vpc2Ugdm9uIEJvaW5nIGF1ZiBuaWNodCBhbmdyZWlmYmFyCmdlc2V0enQsIHdlaWwgaWNoIGltIE1vbWVudCBlaW5lbiBIYXVmZW4gQXJiZWl0IGltIFd1bmRlcmxhbmQgbWFjaGUgdW5kCmRlc3dlZ2VuIGZ1ZXIgbmUgaW50ZWxsaWdlbnRlcmUgTG9lc3VuZyBrZWluZSBaZWl0IGhhdHRlIChpY2ggSEFTU0UKaGFsYmludGVsbGlnZW50ZSBMb2VzdW5nZW4gYXVmIGRpZSBTY2huZWxsZSwgYWJlciBlcyBnaW5nIG5pY2h0IGFuZGVycykuCldlbm4gaWNoIHdpZWRlciBlaW4gYmlzY2hlbiBMdWZ0IGhhYmUsIGRhbm4ga2FlbXBmdCBkZXIgSHVubmFyIGF1Y2ggd2llZGVyLgoKVHJveS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFuemVpZ2UgPz8/IChXb2xsaSwgMjYuIFNlcCAxOTk0LCAxNjoyMzoxOCk6CklyZ2VuZHdpZSB2ZXJtaXNzZSBpY2ggaW4gZGVyIFJVQlJJSyBBTlpFSUdFTiB3aXJrbGljaGUgQW56ZWlnZW4gISEhIQpXaWVzbyB3ZXJkZW4gaGllciBSZTogYXJ0aWtlbCByZWluZ2VzY2hyaWViZW4gPwpXbyBzaW5kIGRpZSBzY2hvZW5lbiBIZWlyYXRzYW56ZWlnZW4sIFZlcmxvYnVuZ3NhbnplaWdlbiwgLi4uIGhpbiA/Pz8KCkVpbiB1ZWJlciBrZWluZSBBbnplaWdlbiBpbiBkZXIgUnVicmlrIEFuemVpZ2VuIHd1bmRlcm5kZXIgICAgIFdPTExJCgpwLnMuOiBqYWphLCBpY2ggd2Vpc3MgISBkc2EgaXN0IGF1Y2gga2VpbmUgYW56ZWlnZSAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphcnRpa2VsIFJlOiAxMDAxIEZyYWdlbiAoQ2F0d2VhemxlLCAyNi4gU2VwIDE5OTQsIDE2OjM4OjUzKToKSGkhCgpBbHNvLCBoaWVyIG5vY2ggZWluIHBhYXIgUmVnZWxuIGZ1ZXIgZGVuIFdldHRiZXdlcmIgYW0gTWl0dHdvY2g6CgotIEdlbGQvR2VnZW5zdGFlbmRlIGR1ZXJmZW4gbmljaHQgdm9uIFNwaWVsZXJuIGFuZ2Vub21tZW4gd2VyZGVuLAogIGF1Y2ggbmljaHQgaW5kaXJla3QsIGR1cmNoIGFibGVnZW4gdW5kIHNwYWV0ZXJlbSBBYmhvbGVuIHp1bQogIEJlaXNwaWVsCi0gIEVyYmV1dGV0ZSBHZWdlbnN0YWVuZGUgZHVlcmZlbiBuaWNodCBhbiBTcGllbGVyIHZlcmthdWZ0IHdlcmRlbiwKICBzb25kZXJuIG51ciBpbSBMYWRlbi4gSWNoIGdlYiB6dSBkYXMga2xpbmd0IGJsb2VkLCBhYmVyIG1hbiBrYW5uCiAgc2VociBzY2hsZWNodCB1bnRlcnNjaGVpZGVuLCBvYiBkZXIgU3BpZWxlciBkZW0gU2VoZXIgZGFiZWkgaGlsZnQsCiAgb2RlciBvYiBlcyBzaWNoIHVtIGVpbiByZWFsIGFiZ2V3aWNrZWx0IEdlc2NoYWVmdCBoYW5kZWx0IChobSwgaGF0CiAgbWFzbiBkYXMgamV0enQgdmVyc3RhbmRlbj8gbmEgZWdhbCkKLSBNb25zdGVyIHZvcnBsYWV0dGVuIGlzdCBuYXR1ZXJsaWNoIGF1Y2ggdmVyYm90ZW4sIGxhZXNzdCBzaWNoCiAgYWJlciB3b2hsIG5pY2h0IHZlcm1laWRlbi91ZWJlcndhY2hlbi4gRGFydW0gYml0dGUgaWNoIGV1Y2ggaW0KICBTaW5uZSBkZXIgRmFpcm5lc3MgYXVmIHNvbGNoZSB0cmlja3MgenUgdmVyemljaHRlbi4KLSBXZXIgYWx0ZS96dXJ1ZWNrZ2VsYXNzZW5lIEF1c3J1ZXN0dW5nIGZpbmRldCwgaGF0IG5hdHVlcmxpY2gKICBHbHVlY2sgZ2VoYWJ0LiBJY2ggZ2ViIHp1LCBkYXMgaXN0IHNlaHIgYWhubGljaCB6dSBkZW0gVHJpY2ssCiAgdm9uIGFuZGVyZW4gU3BpZWxlcm4gR2VnZW5zdGFlbmRlIHp1IGJla29tbWVuLCBhYmVyIGF1Y2ggaGllcgogIGdpbHQgd2llZGVyOiBGYWlyIGdlaHQgdm9yLgogR2VnZW5kZW4vR2ViaWV0ZSB3ZXJkZW4gbmljaHQgZ2VyZXNldGV0IG9kZXIgZ2VzcGVycnQsIGVzIGZpbmRldAotIEdlZ2VuZGVuL0dlYmlldGUgd2VyZGVuIG5pY2h0IGdlcmVzZXRldCBvZGVyIGdlc3BlcnJ0LCBlcyBmaW5kZXQKICBhbGxlcyBpbiBkZXIgJ25hdHVlcmxpY2gnIFVtZ2VidW5nIHN0YXR0LgotICdtZWlzdGUgR2VsZCBlcmJldXRldCcgaGVpc3N0IGtvbmtyZXQ6CiAgV2VydChhdXNydWVzdHVuZyhuYWNoaGVyKSktV2VydChhdXNydWVzdHVuZyh2b3JoZXIpKStHZWxkKG5hY2hoZXIpLQogIEdlbGQodm9yaGVyKSAgICAgZWlubGV1Y2h0ZW5kPwpBbGxlcyBpbiBhbGxlbSwgc29sbHRldCBpaHIgZXVyZW4gTWl0c3RyZWl0ZXJuIGdlZ2VudWViZXIgZmFpcgpdYmxlaWJlbiB1bmQgaGFsdCBzbyBrYWVtcGZlbiB3aWUgc29uc3QgYXVjaC4gSG0sIGljaCBnbGF1YmUgaWNoCnZlcmJpZXRlIGF1Y2ggbm9jaCBUZWFta2FlbXBmZSwgZGFzIGJyYXVjaHQgaWhyIHNlaGVyIGRvY2gKc293aWVzbyBuaWNodCA6KQoKCkF1ZiB3ZWl0ZXJlIDk5MSBGcmFnZW4gd2FydGVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIdW5uYXIgKEJvaW5nLCAyNi4gU2VwIDE5OTQsIDIwOjAwOjIxKToKRGFzIG1pdCBkZW0gcnVtbGF1ZmVuZGVuIEVyem1hZ2llciBpc3QgZGllIHJpY2h0aWdlIEJlZ3J1ZW5kdW5nLCBhbGxlcmRpbmdzCmxhdWZlIGljaCBuaWNodCBydW0sIHNvbmRlcm4gd3VlaGxlIG1pY2ggdmllbG1laHIgZHVyY2ggVmVyemVpY2huaXNiYWV1bWUuCk51biwgd2FyIGVzIG9mZmVuc2ljaHRsaWNoIFZJRUwgenUgZWluZmFjaCBhbiBkaWUgUnVlc3R1bmdlbiB2b24gSHVubmFyCnJhbnp1a29tbWVuLiBXZW5uIG1hbiBkYXMgbWl0IGRlbSBBdWZ3YW5kIHZlcmdsZWljaHQsIGRlbiBtYW4gZnVlciBhbmRlcmUKdmVyZ2xlaWNoYmFyZSBXYWZmZW4vUnVlc3R1bmdlbiBicmF1Y2h0LCBkYW5uIHdhciBIdW5uYXIgd2lya2xpY2ggZWluCldpdHouIEljaCBoYWJlIFRyb3kgYWxzbyAyIFZvcnNjaGxhZWdlIGdlbWFjaHQsIGRpZSBTaXR1YXRpb24genUgYWVuZGVybiwKYmVpZGVzIGxpZWYgZGFyYXVmIGhpbmF1cyBkaWUgQXVzcnVlc3R1bmcgdm9uIEh1bm5hciBTVEFSSyB6dSByZWR1emllcmVuCmJ6dy4genUgdmVyc2NobGVjaHRlcm4uIFRyb3lzIExvZXN1bmcgaXN0IG1pciAoYWxzIEVyem1hZ2llciBmdWVyIFdhZmZlbgp1c3cuKSBhdWNoIHJlY2h0LCBkYSBzaWUgZGFzIFByb2JsZW0gKHp1IGd1dGUgQXVzcnVlc3R1bmcgaXN0IHp1IGxlaWNodAp6dSBoYWJlbikgYXVjaCBsb2VzdC4KCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkltbWVyIG5vY2ggU3RhbW10aXNjaCEgKENhdHdlYXpsZSwgIDQuIE9rdCAxOTk0LCAxOTo0NjozNik6CkhpIQpTbywgd2llZGVyIGVpbm1hbCB6dXIgRXJpbm5lcnVuZy4gRGVyIE1vcmdlbkdyYXVlbi1TdGFtbXRpc2NoCmVudHdpY2tlbHQgc2ljaCB6dSBlaW5lciBmZXN0ZW4gRWlucmljaHR1bmcuIEVyIGZpbmRldCBqZWRlbgpEaWVuc3RhZyB1bSAyMDowMCBVaHIgaW0gT2JpbmEgU2hvY2sgKFJpbmcsIEVja2UgSHVlZmZlcnN0cmFzc2UpCnN0YXR0LiBTcGllbGVyLCBTZWhlciB1bmQgTWFnaWVyIHNpbmQgaGVyemxpY2ggZWluZ2VsYWRlbiBhbmRlcmUKU3BpZWxlciwgU2VoZXIgdW5kIE1hZ2llciBtYWwgaW0gUmVhbGxpZmUgenUgdHJlZmZlbiB1bmQgZ2VtdWV0bGljaAptaXQgaWhuZW4genUgcXVhdHNjaGVuLiBLb21tdCBkb2NoIG1hbCB2b3JiZWkgOikKWW91cnMgdHJ1bHksCiAgICAgICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGFtbXRpc2NoICEgKENhdHdlYXpsZSwgIDYuIE9rdCAxOTk0LCAxOToxODozNSk6CkhpIQpBbGxlIExldXRlLCBkaWUgbmFlY2hzdGVuIERpZW5zdGFnIHp1bSBTdGFtbXRpc2NoIGtvbW1lbiB3b2xsZW4uLi4uLgpQZWNoLCBEaWVuc3RhZ3MgZmFlbGx0IGF1cyEhISEhIQpBbGxlIG1pdGJla29tbWVuPyBIb2ZmZW50bGljaC4KU1RBVFRERVNTRU4gZmluZGV0IGRlciBTdGFtbXRpc2NoIGFtIE1JVFRXT0NILCBkZW0gMTIuMTAgc3RhdHQhISEKQWxsZXMga2xhcj8KWW91cnMgdHJ1bHksCiAgICAgICAgICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRvZGVzZmFsbCA6KCAoR3V5YnJ1c2gsICA3LiBPa3QgMTk5NCwgMTg6MTQ6NTApOgoKSGllcm1pdCBtb2VjaHRlIGljaCBtZWluZSBUcmF1ZXIgdW0gZGVuIGdsZWxpZWJ0ZW4gTWl0c3BpZWxlciBCaWdmb290IHVuZApzZWluZW4ga2xlaW5lbiBad2VpdGkgV29vZG9vIGF1c2RydWVja2VuLCBkaWUgdW5zIGhldXRlIGFtIDcub2t0LjE5OTQKdmVybGFzc2VuIGhhYmVuLgpEaWUgVHJhdWVyZmVpZXJsaWNoa2VpdGVuIGZpbmRlbiBiZWkgZGVtIG5hZWNoc3RlbiBUcmVmZmVuIGRlciBNRy1GcmV1bmRlIGluCkthcmxzcnVoZSBzdGF0dC4KRWluZ2VsYWRlbiBzaW5kIGFsbGUgZGllIGdlcm5lIGZlaWVybiB1bmQgU3Bhc3MgaGFiZW4gd29sbGVuLiBGdWVyCmF1c3JlaWNoZW5kZSBCZXdpcnR1bmcgc29yZ3QgZGFzIGd1dCBnZWZ1ZWxsdGUgUG9ydGVtb25uYWllIGplZGVzIEVpbnplbG5lbi4KCglHdXlicnVzaCwgdHJhdWVybmQgdW5kIGRpZSBGYWhuZSBob2NoIGhhbHRlbmQKCUlSUywgZGVuIDA3LjEwLjE5OTQKCjooIAk6KAkgOiggCTooIAk6KCAJOiggCTooIAk6KCAJOiggCTooCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhbW10aXNjaCEgKENhdHdlYXpsZSwgMTAuIE9rdCAxOTk0LCAxOToyMDowMik6CkhhbG9vZWNoZW4gbWFsIHdpZWRlci4KU28sIGRlciBkaWVzd29lY2hpZ2Ugc3RhbW10aXNjaCBmaW5kZXQgYWxzbyBuaWNodCBhbSBEaWVzbnRhZwpzdGF0dCB1bmQsIG5laW4sIGF1Y2ggbmljaHQgYW0gTWl0dHdvY2gsIGFuIGRlbSBUYWcgaXN0IG5hZW1saWNoCkVTZU1lRmUgaW0gT2JpbmEtc2Nob2NrIChEYXMgaXN0IGVpbmUgSm9mJ3NjaGUgQWJrdWVyenVuZyB1bmQKYmVkZXV0ZXQgRXJzdFNlbWVzdGVyRmV0ZSA6LSkgKQoKU3RhdHRkZXNzZW4gZmluZGV0IGVyIGFtIERPTk5FUlNUQUcgZGVuIDEzLjEwIHN0YXR0LCB3aWUgaW1tZXIKdW0gMjA6MDAgVWhyIQpJY2ggaG9mZmUgamV0enQgaXNzZXMgZ2VudWcgbWl0IGRlciBWZXJzY2hpZWJlcmVpIDotKSkKCllvdXJzIHRydWx5LAogICAgICAgICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbmshIChDYXR3ZWF6bGUsIDE4LiBPa3QgMTk5NCwgMTA6MDM6MDIpOgpNb2luIQpTbywgZXMgaXN0IHNvd2VpdC4gSW0gTGF1ZmUgZGVzIFRhZ2VzIC0gd2FocnNjaGVpbmxpY2ggc2Nob24gYW0KVm9ybWl0dGFnIC0gd2lyZCBkZW5uIG51biBkaWUgTW9yZ2VuZ3JhdWVuLUJhbmsgZXJvZWZmbmV0LgpJaHIgZWluemlnZXMgWmllbCB1bmQgWndlY2sgaXN0IGVzLCBCYXVzcGFydmVydHJhZWdlIGFuIFNlaGVyIHp1CnZlcmthdWZlbiwgZGllIGRhbm4genVtIEVyaGFsdCBlaW5lcyBTZWhlcmhhdXNlcyBmdWVocmVuLgpFaW4gQmF1c3BhcnZlcnRyYWcgd2lyZCB1ZWJlciAzMCBSYXRlbiBhIDIwMDAwIE11ZW56ZW4gbGF1ZmVuLAphYmVyIGVzIGdpYnQgYXVjaCBkaWUgTW9lZ2xpY2hrZWl0IGVpbmVyIHNjaG5lbGxlcmVuIFJhdGVuLQplaW56YWhsdW5nLCB3b2JlaSBzaWNoIGRlciBHZXNhbXRwcmVpcyByZWR1emllcnQuCkljaCBtb2VjaHRlIGFuIGRpZXNlciBTdGVsbGUgYmV0b25lbiwgZGFzcyBkYXMgU2VoZXJoYXVzIHVuZApzYWVtdGxpY2hlIEVpbnJpY2h0dW5nZW4gZGVyIE1vcmdlbkdyYXVlbi1CYW5rIGVpbnppZyB1bmQKYWxsZWluIGRlbiBTRUhFUk4genVyIEJlbnV0enVuZyBmcmVpc3RlaGVuLCBuaWNodCAnZ2V3b2VobmxpY2hlbicKU3BpZWxlcm4hCkVyb2VmZm5ldCB3aXJkIGRpZSBCYW5rIGluIERyYWNoZW5ob3J0LgpFdmVudHVlbGxlIFNjaHdpZXJpZ2tlaXRlbiBtaXQgZGVyIEJhbmsgc2VsYnN0IG9kZXIgZGVyZW4KQW5nZXN0ZWxsdGVuIGJpdHRlIGljaCBpbSBWb3JyYXVzIHp1IGVudHNjaHVsZGlnZW4uIFdpciBoYWJlbgp1bnMgendhciBiZW11ZWh0LCBhbGxlcyB6dSBFdXJlciBadWZyaWVkZW5oZWl0IGVpbnp1cmljaHRlbiwgYWJlcgpndXRlcyBQZXJzb25hbCBpc3QgaGV1dHp1dGFnZSBoYWx0IHNlaHIgc2Nod2VyIHp1IGZpbmRlbi4gV2VubgphbHNvIGlyZ2VuZHdlbGNoZSBQcm9ibGVtZSBhdWZ0YXVjaGVuIHNvbGx0ZW4sIGJpdHRlIHdlbmRldCBFdWNoCm9obmUgenUgem9lZ2VybiBhbiBlaW5lbiBkZXIgQmFua21pdGFyYmVpdGVyLgpUamEsIGRhcyB3YWVycyBmdWVycyBlcnN0ZS4gVmllbCBTcGFzcyB1bmQgdmllbCBWZXJnbnVlZ2VuCm1pdCBkZW0gU2VoZXJoYXVzIHd1ZW5zY2h0IEV1Y2ggRXVlciAnTW9yZ2VuR3JhdWVuLUJhbmsnLVRlYW0sCgogICAgQ2F0d2VhemxlLCAgRGlyZWt0b3IKICAgIFdhcmdvbiwgICAgIFZpemUtUHJhZXNpZGVudAogICAgQmVsZGluLCAgICAgQXVmc2ljaHRzcmF0dm9yc2Nod2l0emVuZGVyCiAgICBPbGltLCAgICAgICBHZXNjaGFlZnRzZnVlaHJlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VnZW5kYXJzdGVsbHVuZyAhISEgKEJ1bmdsZSwgMTkuIE9rdCAxOTk0LCAyMDoxMjo1Mik6CkhhbGxvIGlociBkYSAhCgpEYSB3YXIgaWNoIG51biBtYWwgJ25lIGdhbnplIFdlaWxlIG5pY2h0IGhpZXIgZ2V3ZXNlbiAoIDMgV29jaGVuID8pLCBrYWVtcGZlCm1pY2ggaGV1dGUgZXJzdG1hbCBkdXJjaCBkaWUgWmVpdHVuZywgdW5kIHdhcyBtdXNzIGljaCBsZXNlbiA/Pz8KRGEgZ2FiIGVzIGVpbmVuIGdld2lzc2VuIERyLkJ1bmdsZSwgZGVyIE1VRC1tYWVzc2lnIGVpbmVyIGFybWVuIHVuc2NodWxkaWdlbgpVc2VyaW4gd2FzIFNjaGxpbW1lcyBnZXRhbiBoYXQgKCBBcnRpa2VsIGluIGRlciBaRUlUICkuCk51biBtb2VjaHRlIGljaCBFdWNoIGt1bmR0dW4sIGRhc3MgaWNoIG1pdCBkaWVzZW0gTWVuc2NoZW4gbmljaHRzLCBhYmVyIGF1Y2gKZ2FyIG5pY2h0cyBnZW1laW4gaGFiZS4gKCBNYWwgdm9tIE5hbWVuIGFiZ2VzZWhlbiBuYXR1ZXJsaWNoLikKSmEsIGljaCB3ZWhyZSBtaWNoIGhpZXJtaXQgZW50c2NoaWVkZW5zdCBnZWdlbiBkZW4gTWlzc2JyYXVjaCBtZWluZXMgZ3V0ZW4KTmFtZW5zICggbWl0IGRlbSBpY2ggamEgc2NobGllc3NsaWNoIGF1Y2ggbm9jaCBtYWwgaXJnZW5kd2FubiBiZXphaGxlbiB3b2xsdGUKOikuCkljaCB3dWVyZGUgamEgZ2VybmUgYmVoYXVwdGVuIHdvbGxlbiwgZGFzcyBlciBzaWNoIGRpZXNlbiBOYW1lbiBnZXdhZWhsdCBoYXQsCnNwcmljaHQgZnVlciBzZWluZW4gZ3V0ZW4gR2VzY2htYWNrLCBhYmVyIGRhcyBpc3Qgb2ZmZW5zaWNodGxpY2ggbmljaHQgc28uClNlbGJzdCB3ZW5uIGVyIFBzeWNob2xvZ2llc3R1ZGVudCBpc3QgdW5kIGRhbWl0IHZpZWxsZWljaHQgYmxvc3MgaXJnZW5kd2FzCnRlc3RlbiB3b2xsdGUsIGZpbmRlIGljaCBzZWluZSBBa3Rpb24gZG9jaCB6aWVtbGljaCBkYW5lYmVuLgpBbHNvIG5vY2ggbWFsIGluIGFsbGVyIERldXRsaWNoa2VpdCA6IEljaCBoYWJlIG1pdCBkaWVzZW0gRHIuQnVuZ2xlIG5pY2h0cyB6dQpzY2hhZmZlbiB1bmQgYmluIHVlYmVyaGF1cHQgZ2FueiBnYW56IGFuZGVycyB1bmQgcmljaHRpZyBsaWViIHVuZCBzbyAoCm1laXN0ZW5zIHp1bWluZGVzdCApLgpBdXNzZXJkZW0gYmluIGljaCBrZWluIFBzeWNob2xvZ2llc3R1ZGVudCBzb25kZXJuIEluc2NoZW5pb2VyICggbmFqYSwgaW4KTGF1ZXJzdGVsbHVuZyA6KSwgc28hCgpOYSBkZW5uZSwgbm9jaCB2aWVsIFNwYXNzIEV1ZXIgZ3V0ZXIgYWx0ZXIgTXIuIEJ1bmdsZSA9OF4+CgpQUzogSGFyISBEdSBoYXN0IGRvY2ggbmljaHQgZXR3YSBhbiBtaXIgZ2V6d2VpZmVsdCA/ISBXZW5uIG5pY2h0LCBkYW5rZSBpY2gKRGlyIGhpZXJtaXQgZnVlciBkYXMgbWlyIGVudGdlZ2VuZ2VicmFjaHRlIFZlcnRyYXVlbi4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJTViAoR3JpbW1ib3JuLCAxOS4gT2t0IDE5OTQsIDIyOjMxOjM4KToKClNvbGx0ZSBkZXIgQmF1c3BhcnZlcnRyYWcgbmljaHQgY3Jhc2hmZXN0IHNlaW4gZ2lidHMgZWluIERvbm5lcndldHRlci4uLiA7LSkpCgpTaWNoIHNpZW5lIEdlZGFua2VuIG1hY2hlbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QKClAuUy4gTWlzdCB0eXBvcy4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJWIChEYW5jZXIsIDE5LiBPa3QgMTk5NCwgMjM6MDE6MzEpOgpFciBpc3QgZXMsIEdyaW1tYm9ybi4uLmhhYmUgbWljaCBnZXN0ZXJuIGR1cmNoIGRpZSBmaWxlcyBnZWthZW1wZnQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOlJlOkJWIChLZXJtaXQsIDIwLiBPa3QgMTk5NCwgMTQ6MTI6MTQpOgpUamEgbGllYmVyIERhbmNlci4uLnNjaG9lbiB3YWVycy4uCkRlciBCYXVzcGFydmVydHJhZyBtYWcgendhciBDcmFzaGZlc3Qgc2Vpbi4uLmFiZXIgc2Nob2VuIHdhZXJlIGVzLAp3ZW5uIGRpZSBBYmJ1Y2h1bmcgdWViZXIgZGVuIE1hc3Rlci1CbG9jayBtYWwgUmVpYnVuZ3Nsb3MgdmVybGF1ZmVuIHd1ZXJkZS4uLgpJY2ggaG9mZmUgZGFzIGlzdCBiYWxkIHJlcGFyaWVydC4uOikKQ2lhby58LwogICAgIHxcRVJNSVQuLi4uLnN1Y2h0IGVpbiBIYXVzLjopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6UmU6QlYgKEFzbW9kaXMsIDIwLiBPa3QgMTk5NCwgMTU6MDQ6NDUpOgooQmV6dWc6IEFydGlrZWwgdm9uIEtlcm1pdCwgRG9uLCAyMC4gT2t0IDE5OTQsIDE0OjEyOjE0KQpOYWphLCBkZXIgVmVydHJhZyBtYWcgQ3Jhc2hmZXN0IHNlaW4sIGFiZXIgZGVyIE1hc3RlLUJsb2NrIGlzdCBlcwpvZmZlbnRzaWNodGxpY2ggbmljaHQhIQpBZWgsIE1hc3Rlci1CbG9jayBzb2xsIGVzIGhlaXNzZW4hCkJlaSAnZW5kZScgdmVyd2VpZ2VydCBlciBuYWVtbGljaCBqZWRlIHdlaXRlcmUgRWluemFobHVuZyEKCiAgICAgICAgICAgICAgICAgICAgIENpYW8sIEFzbW9kaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWdlbmRhcnN0ZWxsdW5nICEhISAoSGFyLCAyMS4gT2t0IDE5OTQsIDEwOjAzOjM4KToKSGFsbG8gYnVuZ2xlLCBzY2hvZW4gZGFzcyBEdSB3aWVkZXIgZGEgYmlzdCEKV28gaGFzdCBEdSBkZWluZW4gVXJsYXViIHZlcmJyYWNodD8gSW4gZWluZW0gYW1lcmlrYW5pc2NoZW4gTVVELCB3byBkdQpsYXVmZW5kIGtsZWluZSBNYWVkY2hlbiBiZWxhZXN0aWd0IGhhc3Q/Ck5peCBmdWVyIHVuZ3V0LCBoYWJlIG5hdHVlcmxpY2ggbmllIGFuIERpciBnZXp3ZWlmZWx0IDspCgoJSGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZS9CaWV0ZS9UYXVzY2hlIChTdW5ueSwgMjQuIE9rdCAxOTk0LCAxMzozMTo0Nik6CkhhbGxlIHdlciBrYW5uIG1pciBoZWxmZW4/Pz8/Pz8KZWhtIGhhbGxvb29vb28gc29sbHRlIGRhIHN0ZWhlbgp3ZXIgaGF0IG1laW5lbiBicmllZiBnZXNlaGVuLCBkZXIgbWlyIGxldHp0ZW4gZnJlaXRhZyBhYmhhbmRlbiBnZWtvbW1lbiBpc3Q/PwptaXIgd3VlcmRlIGphIHNjaG9uIHJlaWNoZW4gd2VubiBpY2ggd3Vlc3RlIHZvbiB3ZW0gZGVyIGJyaWVmIGthbShzdW5ueSBnYWFhbgpuZXVnaWVyaWcpIG9kZXIgd2FzIGRyaW5zdGFuZCBvZGVyIHNvZ2FyIGJlaWRlcwphbHNvIGJpdHRlIG1lbGRlbiBiZWkKICAgICAgICAgICAgICAgICAgIFNVTk5ZIChnYW56IHRyYXVyaWcgb2huZSBpaHJlbiBicmllZikKCiAgIHNuaWVmIHNjaGx1Y2h6IHNjaG51ZWZmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaGFyYWt0ZXJiZXNjaHJlaWJ1bmcgKEhhdGUsIDI2LiBPa3QgMTk5NCwgMTA6NTg6NDIpOgpadXIgS2VubnRuaXNuYWhtZToKCkFiIHNvZm9ydCBpc3QgZXMgbW9lZ2xpY2ggc2VpbmVtIENoYXJha3RlciBlaW5lIHBlcnNvZW5saWNoZSBOb3RlCnp1IGdlYmVuLiBEaWUgd2lyZCB2b24gZWluZXIgSGV4ZSBuYW1lbnMgTWFzdHJhZGVuYSBkdXJjaGdlZnVlaHJ0LApkaWUgc2ljaCBhdWYgZGVuIE1lZXJlbiB2b24gTW9yZ2VuR3JhdWVuIGhlcnVtdHJlaWJ0LiBNYW4ga2FubiBzaWUKZGFuYWNoIGZyYWdlbiwgb2RlciBlaW5mYWNoIHNhZ2VuIGFlbmRyZSBtaWNoLgpadXIgQmVhY2h0dW5nIHNlaSBmb2xnZW5kZXMgYW5nZW1lcmt0OgogICogTWFuIHVlYmVybGVnZSBzaWNoIHZvcmhlciwgd2FzIG1hbiBzY2hyZWliZW4gd2lsbCwgZGEgbWFuIDYgWmVpbGVuCiAgICB6dSA3OCBaZWljaGVuIHp1ciB2ZXJmdWVndW5nIGhhdC4KICAqIERhcyBlcnN0ZSBtYWwgaXN0IGtvc3RlbmxvcywgYWJlciBqZWRlIHdlaXRlcmUgQWVuZGVydW5nIHdpcmQgbWl0CiAgICBlaW5lbSBLb3N0ZW5hdWZ3YW5kIHZvbiBldHdhIDI4MDAwIEdvbGRtdWVuemVuIHp1IEJ1Y2hlIHNjaGxhZ2VuLgoKVmllbCBTcGFzcyBiZWltIEJlc2NocmVpYmVuLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVJTkxBRFVORyA6KSAoWWFudHJvLCAyNi4gT2t0IDE5OTQsIDE2OjU0OjIwKToKSGFsbG8gbWVpbmUgTGllYmVuLAoKSmFubmEgdW5kIGljaCBsYWRlbiBlaW4genVyIGt1cnpmcmlzdGlnZW4sIGFiZXIgZGVzaGFsYiBuaWNodCB3ZW5pZ2VyCnNjaG9lbmVuLi4uCgoKICAgICAgICAgICAgSCBPIEMgSCBaIEUgSSBUCgogICAgICAgICBhbSBEbywgZGVuIDI3LjEwLjE5OTQgdW0KCiAgICAgICAgICAgICAgICAgMTQgVWhyCgogICBOYXR1ZXJsaWNoIGluIE5pYmVsaGVpbSAod28gYXVjaCBzb25zdCA6KSApCgpXaXIgZnJldWVuIHVucyBhdWYgemFobHJlaWNoZXMgRXJzY2hlaW5lbi4gRnVlciBhbGxlcyBpc3QgZ2Vzb3JndCAoaG9mZmUKaWNoKSwgbnVyIGRpZSBHdXRlIExhdW5lIG11ZXNzdCBJaHIgc2VsYmVyIG1pdGJyaW5nZW4uLi4uLi4KCgogICAgICAgICAgICAgICAgRXVlciBZYW50cm86KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENoYXJha3RlcmJlc2NocmVpYnVuZyAoRmxpbnRuYWlsLCAyNi4gT2t0IDE5OTQsIDE4OjM3OjUyKToKKEJlenVnOiBBcnRpa2VsIHZvbiBIYXRlLCBNaXQsIDI2LiBPa3QgMTk5NCwgMTA6NTg6NDIpCmhtbW0uLi5zZWhyIHNjaG9lbiBIYXRlISEhIQpEaWVzZSBIZXhlIGlzdCB6d2FyIGhhZXNzbGljaCwgYWJlciBuZXR0Li4uOikgd2VubiBudXIgZGllIGFuZGVyZW4KTWl0c3BpZWxlciBlaW4gYmlzc2NoZW4gc2VsdGVuZXIgdm9uIGRlbSBSdWZlLUtvbW1hbmRvIGdlYnJhdWNoIG1hY2hlbgp3dWVyZGVuLCBrb2VubnRlIG1hbiBhdWNoIGVpbmUgb3JkZW50bGljaGUgQmVzY2hyZWlidW5nIGF1ZmJhdWVuLi4uLi46KQpOYWphLi5pY2ggaGFicyBnbGF1YiBpY2ggYXVjaCBzbyBnZXNjaGFmZnQuLi4KICAgICAgICAgICAgIEZsaW50bmFpbC4uLm5pY2h0IEZsaW50OykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaGFyYWt0ZXJiZXNjaHJlaWJ1bmcgKFllbmRpLCAyNy4gT2t0IDE5OTQsIDEyOjU0OjQ1KToKRGllIE1vZWdsaWNoa2VpdCwgZWluZSBDaGFyYWt0ZXJiZXNjaHJlaWJ1bmcgYXVmenViYXVlbiBpc3QgamEgZ2FueiBuZXR0fnIKRXMgaXN0IGphIHRvbGwsIGRhc3MgbWFuIGpldHp0IGVpbmUgQ2hhcmFrdGVyYmVzY2hyZWlidW5nIGVpbmdlYmVuIGthbm4sIGFiZXIKdmllbGxlaWNodCBzb2xsdGUgZGllIEhleGUgZWluZW4gdm9yaGVyIGRhcmF1ZiBoaW53ZWlzZW4sIGRhc3MgZGllCkJlc2NocmVpYnVuZyBsZWlkZXIgbmljaHQgY3Jhc2hmZXN0IGlzdC4uLgoKQXVzc2VyZGVtIGhhdCBzaWUgbWlyIGF1Y2ggc2Nob24gYmVpbSBhbGxlcmVyc3RlbiBNYWwgZGllIDI4MDAwLC0KYWJnZWtub2VwZnQuCgogICAgICAgICAgICAgICAgICAgICAgICAgWWVuZGkKICAgICAgICAgKHRyYXVyaWcsIHdlaWwgc2VpbmUgdGV1cmUgQmVzY2hyZWlidW5nIGZ1dHNjaCBpc3QpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVzY2hyZWlidW5nICYgQ3Jhc2ggKEhhdGUsIDI5LiBPa3QgMTk5NCwgMTg6MDc6MTIpOgpMaWViZSBTcGllbGVyLCBTZWhlciB1bmQgd2FzIHNvbnN0IG5vY2ggc28ga3JldWNodCB1bmQgZmxldWNodCwKCmljaCBoYWJlIG1pY2ggZGVzIEJVR3MgYnp3IGRlcyBWZXJzZWhlbnMgYW5nZW5vbW1lbiB1bmQgamV0enQgZGllCkhleGUgTWFzdHJhZGVuYSBkYXp1IGJlbWFlY2h0aWd0LCBqZWRlbiwgZGVyIHNlaW5lIEJlc2NocmVpYnVuZwpiZWkgSWhyIHNldHplbiBsYWVzc3QgenVtIGFic3BlaWNoZXJuIHp1IHp3aW5nZW4uIERhZHVyY2ggd2lyZCBzby0KZm9ydCBkaWUgQWVuZGVydW5nIGZlc3RnZXNldHp0LgoKRGllamVuaWdlbiwgZGllIGR1cmNoIGRpZXNlbiBGZWhsZXIgaWhyZSBCZXNjaHJlaWJ1bmcgdmVybG9yZW4KaGFiZW4sIGtvZW5uZW4gc2ljaCBiZWkgbWlyIG1lbGRlbiB1bmQgaWNoIHNldHplIGlobmVuIGRpZXNlCndpZWRlciwgZGVubiBzaWUgd2lyZCBtaXRnZWxvZ2d0LiBHZW5hdXNvIHdlcmRlIGljaCBuYXR1ZXJsaWNoCnBydWVmZW4gaW53aWV3ZWl0IGVpbmUgR2VsZHJ1ZWNrZXJzdGF0dHVuZyBtb2VnbGljaCBpc3QsIHdpZQplcyBpbSBGYWxsIFllbmRpIHdhaHJzY2hlaW5saWNoIHZvbm5vZXRlbiBzZWluIHdpcmQuCgpNaXQgZnJldW5kbGljaGVtIEdydXNzLAoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhPQ0haRUlUISEgKFJ5bmUsIDMxLiBPa3QgMTk5NCwgMTA6NTU6NDcpOgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgV2lyIHdvbGxlbiBqZWRlcyBNb3JnZW5HcmF1ZW4genVzYW1tZW4gZXJsZWJlbi4uLi4uICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICBQZW5lbG9wZSAgJiAgUnluZSAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICB1bmQgZGVzaGFsYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgSCBPIEMgSCBaIEUgSSBUICEgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgYW0gTWl0dHdvY2gsIDIuMTEuLCAyMC4wMCBpbiBOaWJlbGhlaW0gISEgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgIFdlciBtaXQgdW5zIGZlaWVybiBtb2VjaHRlIChvZGVyIGluIGxldHp0ZXIgU2VrdW5kZSBkYXMgICAqCiogICBkcm9oZW5kZSBVbmhlaWwgZHVyY2ggc2VpbmVuIEVpbnNwcnVjaCBhYndlbmRlbiA7KSkgaXN0ICAgKgoqICAgaGVyemxpY2ggZWluZ2VsYWRlbiAhISEhISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgdW5kIGVyd2VpdGV0ZXMgQW5nZWJvdCBpbiBkZXIgQXBvdGhla2UgKEtldG9zLCAzMS4gT2t0IDE5OTQsIDE5OjMwOjU0KToKRGllIEFwb3RoZWtlIGltIEJlbGdkb2xmIGhhdCBpaGwgQW5nZWJvdCB1bmQgU2VsdmljZWxlaXN0dW5nZW4gdmVsYmVzc2VsdCAKdW5kIGVsd2VpdGVsdC4KIApOZXUgaW0gQW5nZWJvdCBzaW5kOgoKICBjaGluc2lzY2hlcyBNaW56b2VsICAgZnVlbCBudWwgOTc0IEdvbGRzdHVlY2tlCiAgTG9zZW5ibGF0dG9lbCAgICAgICAgIGZ1ZWwgbnVsIDc1MSBHb2xkc3R1ZWNrZQogIEtub2JsYXVjaHBpbGxlbiAgICAgICBmdWVsIG51bCA0OTAgR29sZHN0dWVja2UKICBMZWJlbHRsYW5zYWxiZSAgICAgICAgZnVlbCBudWwgMzQ4IEdvbGRzdHVlY2tlCgogIFdpbCB3ZWlzZW4gbm9jaCBhdWYgdW5zZWwgYWx0YmV3YWVsdGVzIFNvbHRpbWVudCBmdWVsIFNlaGVsIHp1bHVlY2s6CgogIFd1ZW5zY2hlbGx1dGVuLCBTaWViZW5tZWlsZW5zdGllZmVsIHVuZCBtYWdpc2NoZXMgTG9laGxjaGVuCiAgVW5kIG5pY2h0IHp1dmVsZ2Vzc2VuIGRpZSBiZWxpZWJ0ZW4gWmF1YmVsLSB1bmQgTGllYmVzdGxhZW5rZS4KCkJlbGhlbGVuIFNpZSB1bnMgYmFsZCB3aWVkZWwgaW0gQmVsZ2RvbGYuCldlbiBzaWUgbm9jaCB3ZWl0ZWxlIEZsYWdlbiBoYWJlbiwga29tbWVuIHNpZSBlaW5mYWNoIHZvbGJlaS4KClZvbSBEbGFjaGVuc2VlIGluIGRlciBHZWJpbGdlc3NjaGx1Y2h0IExpY2h0dW5nIEdsZXRzY2hlbCB1bmQgU2lsYmVsd2FsZC4KCiAtIE1pbmcgLSBBcG90aGVrZWwKClAuUy46IERlbCBvZWx0bGljaGUgQWx6dCBmdWVobHQga29zdGVubG9zIGVpbmUgbWVkaXppbmlzY2hlIFVudGVsc3VjaHVuZyBkdWxjaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkljaCB3YXIgZGFiZWkhIChDYXR3ZWF6bGUsICA3LiBOb3YgMTk5NCwgMTc6Mjc6NTEpOgoxMDAgdXNlcjogTW9uLCAgNy4gTm92IDE5OTQsIDE3OjI0OjUzICEhISEhISEhIQoKVm9sbCwgZ2VsbD8KWW91cnMgdHJ1bHksCiAgICAgICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSWNoIHdhciBkYWJlaSEgKFNjaGxvbnosICA4LiBOb3YgMTk5NCwgMTA6MDI6MjQpOgooQmV6dWc6IEFydGlrZWwgdm9uIENhdHdlYXpsZSwgTW9uLCAgNy4gTm92IDE5OTQsIDE3OjI3OjUxKQppY2ggYXVjaCwKdW5kIGRhcyBMYWFhYWFnZ2cgaGllbHQgc2ljaCBkZW4gdW1zdGFlbmRlbiBuYWNoIHNvZ2FyIG5vY2ggaW4gYW5nZW5laG1lbgpncmVuemVuICEKClNjaGxvbnoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJY2ggd2FyIGRhYmVpISAoSGF0ZSwgIDguIE5vdiAxOTk0LCAxMjoyNjozOCk6CihCZXp1ZzogQXJ0aWtlbCB2b24gQ2F0d2VhemxlLCBNb24sICA3LiBOb3YgMTk5NCwgMTc6Mjc6NTEpCkFsc28gbmVpbiwgZGEgbXVzcyBpY2ggamEgZGllIFNjYWxhIG1laW5lciBTdGF0aXN0aWtlbiBhZW5kZXJuIDooCkRpZSBnZWh0IG51ciBiaXMgMTAwCgpOYSB3YXMgc29sbHMuCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEljaCB3YXIgZGFiZWkhIChDYXJhZGhyYXMsICA4LiBOb3YgMTk5NCwgMTM6NTk6MTQpOgooQmV6dWc6IEFydGlrZWwgdm9uIEhhdGUsIERpZSwgIDguIE5vdiAxOTk0LCAxMjoyNjozOCkKV2llc28gc29sbCBsYXV0IENhdCogMTAwIHZvbGwgc2VpbiwgZ2VodCBkb2NoIGJpcyAxNTAgOi0pCgogICAgQ2FyYWRocmFzIGRlciBld2lnZSBQcm9waGV0IC0gaWVlaCwgc2Nob24gdWViZXIgMTAwMCBBUCAqc2NodWV0dGVsKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhbW10aXNjaCAoQ2F0d2VhemxlLCAgOC4gTm92IDE5OTQsIDE1OjQzOjU3KToKRGFtaXQgZXIgbmljaHQgaW4gVmVyZ2Vzc2VuaGVpdCBnZXJhZXQgOi0pCkljaCBtb2VjaHRlIGRhcmFuIGVyaW5uZXJuLCBkYXMgZGFzIE1vcmdlbkdyYXVlbiBqZWRlbiBEaWVuc3RhZyB1bSAyMDowMApVaHIgaW0gTXVlbnN0ZXJhbmVyICdPYmluYSBzaG9jaycgKFJpbmcsIEVja2UgSHVlZmZlcnN0cmFzc2UpIGVpbmVuClN0YW1tdGlzY2ggaGF0LiBEb3J0IHRyZWZmZW4gc2ljaCBTcGllbGVyLCBTZWhlciBNYWdpZXIgbWFsIGluIFJlYWxMaWZlLgpBbHNvLCB3ZXIgZ2VybmUgbWFsIHZvcmJlaXNjaGF1ZW4gbW9lY2h0ZSBpc3QgaGVyemxpY2ggZGF6dSBlaW5nZWxhZGVuLgpJc3QgbmF0dWVybGljaCBhdWNoIGludGVyZXNzYW50IGZ1ZXIgTmljaHQtTXVlbnN0ZXJhbmVyLCBrb21tdCBkb2NoIGVpbmZhY2gKbWFsIG1pdCBkZW0gWnVnLCBvZGVyIGJpbGRldCBuZSBGRy4gQmlzIGRhbm4gLi4uCllvdXJzIHRydWx5LAogICAgICAgICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2huIHBhYXIgRm90b3MhIChFbmd5d3VjaywgMTMuIE5vdiAxOTk0LCAxNzoxMzowMyk6ClNvLCBlcyBpc3QgbWlyIG51biBnZWx1bmdlbiwgbm9jaCBlaW4gcGFhciBGb3RvcyBlaW56dXNjYW5uZW4uLi4gTmFjaHNjaGF1ZW4KYml0dGUgaW0gT3Blbi1WZXJ6ZWljaG5pcyB1bnRlciBGb3Rvcy5Fbmd5d3Vjay4KV2VyIGFsc28gc2Nob24gaW1tZXIgbWFsIHdpc3NlbiB3b2xsdGUsIHdpZSBlaW4gU2FuZHRpZ2VyIHNlaW5lIEhvc2UgZm9laG50Cm9kZXIgR3JpbW1ib3JuIGVpbmUgQm93bGUga29uc3VtaWVydDogRGEgc2luZCBkaWUgQW50d29ydGVuIQpWaWVsIFNwYXNzIQoKRW5neXd1Y2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NobiBwYWFyIEZvdG9zISAoRGFuY2VyLCAxMy4gTm92IDE5OTQsIDIwOjE3OjA0KToKIyEgcm49RW5neXd1Y2sgcnQ9Nzg0NzQzMTgzCkljaCBlcnd1ZXJnZSBpaG4sIGljaCBlcnd1ZXJnZSBpaG4sIGljaCBlcnd1ZXJnZSBpaG4gOi0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2huIHBhYXIgRm90b3MhIChHcmltbWJvcm4sIDE0LiBOb3YgMTk5NCwgMDc6NDg6MDYpOgojISBybj1Fbmd5d3VjayBydD03ODQ3NDMxODMKCkljaCBlcnd1ZXJnZSBpaG4uLi4gKmtuaXJzY2gqCgpHcmltbWJvcm4gZGVyIGJvd2xldHJpbmtlbmRlIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlc2Nod29lcmVyIGluIGRlciBIb2VsbGUhIChCYXNpbGl1cywgMjUuIE5vdiAxOTk0LCAxMTowMzo1OCk6CkhhbGxvIE11ZGRpZXMsCldpZSBlaW5pZ2UgdmllbGxlaWNodCBmZXN0c3RlbGx0ZW4sIGhhdHRlIGljaCBsZXR6dGVucyBlaW5lbiB1bmZyZWl3aWxsaWdlbgpBdWZlbnRoYWx0IGluIGRlciBIb2VsbGUgKERhbmsgU3lzb3AgdmVya3Vlcnp0LCBhYmVyIGRhcyBpc3QgZWluZSBhbmRlcmUKR2VzY2hpY2h0ZSkuIEVyc3QgamV0enQgaXN0IG1pciBrbGFyZ2V3b3JkZW4sIHdpZSBlcyBkYXp1IGthbS4KRWluZXMgc2Nob2VuZW4gVGFnZXMga2FtIGljaCB2b3IgbGF1dGVyIEJvc2hlaXQgYXVmIGRpZSBJZGVlLCBkZW4gRnJvc2NoIGFtCkJydW5uZW4gKGRlbiBtYW4gbWFsIGt1ZXNzZW4gc29sbHRlLCBmYWxscyBtYW4gZXMgbm9jaCBuaWNodCBnZXRhbiBoYXQpIHZvbgpzZWluZW0gaXJkaXNjaGVuIERhc2VpbiB6dSBiZWZyZWllbi4gTnVuIG11c3MgZXMgc2ljaCBzbyB6dWdldHJhZ2VuIGhhYmVuLApkYXNzIGp1c3QgaW4gZGllc2VtIE1vbWVudCBlaW4ga2xlaW5lciBGcm9zY2ggbmFtZW5zID8/PyBhdXMgZGVtIEJydW5uZW4Ka2xldHRlcnRlLiBBYmVyIGRhIGZpZWwgbWVpbiBaZWlnZWZpbmdlciBzY2hvbiB1bmJhcm1oZXJ6aWcgYXVmIGRpZQpFTlRFUi1UYXN0ZSBuaWVkZXIuCgpBbHMgaWNoIHdpZWRlciBkaWUgQXVnZW4gYXVmc2NobHVnLCB3dW5kZXJ0ZSBpY2ggbWljaCBzZWhyIHVlYmVyIG1laW4gbmV1ZXMKQW1iaWVudGUuIEFiZXIgbmEsamEuIElgbGwgYmUgYmFjay4KQWJlciBpY2ggbW9lY2h0ZSBldWNoIGFsbGVuIHNhZ2VuOiBJY2ggYmluIGtlaW4gU3BpZWxlcmtpbGxlcgoqd2ltbWVyLHNjaGx1Y2h6KgoKRXMgd2FyIGtlaW5lIEFic2ljaHQgKGhhZWhhZWhhZSkuCgpHZXouCiAgIEJhc2lsaXVzCgpQLlMuOiBTb3JyeSBhbiBkZW4ga2xlaW5lbiBGcm9zY2gsIHdlciBpbW1lciBlcyBhdWNoIHdhci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCZXNjaHdvZXJlciBpbiBkZXIgSG9lbGxlISAoR3JpbW1ib3JuLCAyNS4gTm92IDE5OTQsIDE0OjE1OjAyKToKIyEgcm49QmFzaWxpdXMgcnQ9Nzg1NzU3ODM4Ck51ciBhbHMgQW5tZXJrdW5nOiBXZWdlbiBlaW5lcyBQbGF5ZXJraWxscyBrb21tdCBtYW4gbmljaHQgaW4gZGllIEhvZWxsZS4KSWNoIHdlaXNzIGRhIEJlc2NoZWlkLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgdW5kIFBsYXllcmtpbGxlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2FsZXJpZSBlcm9lZmZuZXQgKEtldG9zLCAyNS4gTm92IDE5OTQsIDE3OjUxOjIwKToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBLZXRvcywgMjUuIE5vdiAxOTk0LCAxNzo0NzoyOV06ClNvZWJlbiB3dXJkZSBkaWUgR2FsZXJpZSBpbSBTdGFkdGhhdXMgdm9uIFBvcnQgVmFpbiBlcm9lZmZuZXQuCkRpZSBBdXNzdGVsbHVuZyB1bWZhc3N0IEdlbWFlbGRlIGRlciBiZXJ1ZWhtdGVzdGVuIE1hZ2llciBhdXMgTW9yZ2VuZ3JhdWVuLgoKV2lyIHd1ZW5zY2hlbiBlaW5lbiBhbmdlbmVobWVuIEt1bnN0Z2VudXNzLgoKICAgICAgICAgICAgICAgICBEaWUgTW9yZ2VuR3JhdWVuIEdhbGVyaWUgaW0gU3RhZHRoYXVzIFBvcnQgVmFpbgpQLlMuOiBTaWUgZmluZGVuIHVucyAyIFNjaHJpdHRlIG5vZXJkbGljaCB2b24gZGVyIEFiZW50ZXVyZXJnaWxkZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCZXNjaHdvZXJlciBpbiBkZXIgSG9lbGxlISAoQm9pbmcsIDI1LiBOb3YgMTk5NCwgMTg6MTk6MTkpOgojISBybj1CYXNpbGl1cyBydD03ODU3NTc4MzgKRGFzIHN0aW1tdCBzbyBhYmVyIG5pY2h0LCBEdSBrYW1zdCBpbiBkaWUgSG9lbGxlIHdlaWwgRHUgc28gYm9lc2Ugd2Fyc3QKdW5kIGRlbiBrbGVpbmVuIEZyb3NjaCBhbSBCcnVubmVuIChkZXIgZWggc2Nob24gZWluIGFybWVzIGhpbGZsb3NlcwpXZXNlbiBpc3QpIGdla2lsbHQgaGFzdC4KICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdhbGVyaWUgZXJvZWZmbmV0IChDYXJhZGhyYXMsIDI1LiBOb3YgMTk5NCwgMjE6MjI6MzApOgojISBybj1LZXRvcyBydD03ODU3ODIyODAKU28gZ2FueiBzdGltbXQgZGFzIGFiZXIgYXVjaCBuaWNodCwgS2V0b3MgOi0pCgpEYSBrcmV1Y2h0IGVpbmlnZXMgaW4gZGVyIEdhbGVyaWUgcnVtLCB3YXMgZWluZGV1dGlnIG5pY2h0IE1hZ2llciBpc3QuCkFiZXIgYW5zb25zdGVuIHNlaHIgaHVlYnNjaC4gOi0pIFdhciBkaXJla3QgYW11ZXNhbnQgOi0pKQoKICAgICAgdHNjaG9lICAgICAgIENhcmFkaHJhcyBkZXIgZXdpZ2UgUHJvcGhldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU1VDSEUgQ0QgKEtsaW5nZSwgMjguIE5vdiAxOTk0LCAwMzozMToxMyk6CkhpZXIgZWluZSBCaXR0ZSBhbiBkaWUgT2VzdGVyZWljaGVyIHVuZCBTY2h3ZWl6ZXIgTXVkZGVyLgpWb3IgZ2VyYXVtZXIgWmVpdCBsYXMgaWNoIGluIGVpbmVyIENvbXB1dGVyemVpdHVuZyB2b24gZWluZXIgQ0QgbWl0IGRlbQpUZWxlZm9udmVyemVpY2huaXMKdm9uIGdhbnogRGV1dHNjaGxhbmQgbWl0IGVpbmVtIFByZWlzIHZvbiBjYS4gOTksLQpkaWUgQ0QgYnp3LiBpaHIgVmVydHJpZWIgaXN0IGRhbm4gYXVmIGJldHJlaWJlbiBkZXIgVGVsZWtvbSB2ZXJib3RlbiB3b3JkZW4KSWNoIGhvZmZlIG51biBhdWYgZGllc2VtIFdlZ2UgZGllIGFkcmVzc2UgZWluZXMgYXVzbGFlbmRpc2NoZW4gSGFlbmRsZXJzCnp1IGZpbmRlbiB1bSBkaWUgQ0QgZG9jaCBub2NoIHp1IGJla29tbWVuLgp3ZW5uIGVpbmUvciB3YXMgd2VpcyBtb2VnZSBlciBkb2NoIGJpdHRlIHNvIGZyZXVuZGxpY2ggc2VpbiBtaXIgZGFzIHp1Cnp1bWFpbGVuCkljaCB3YWVyZSBhdWNoIGludGVyZXNzaWVydCBhbiBkZW4gYWRyZXNzZW4gdW5kIGJlc29uZGVycyBkZW4gRmF4bnVtbWVybgphdXNsYWVuZGlzY2hlciBzaGFyZXdhcmV2ZXJzZW5kZXIgZGEgZGllc2UgZXZ0bC4gc293YXMgYmVzb3JnZW4ga29lbm5lbi4KVmllbGVuIGRhbmsgaW0gdm9yYXVzLCBLTElOR0UKCk1haWwgYml0dGUgYW46CmtsaW5nZSAoaGllciBpbSBNRykKb2RlcgpidXNtYW5uQHVuaS1tdWVuc3Rlci5kZSAoaW0gUkwpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYWVsc2NodW5nZW4gaW4gZGVyIEdhbGVyaWUgPyAoVGhvcmluLCAyOC4gTm92IDE5OTQsIDA4OjQyOjIzKToKV2llIGVyc3QgaGV1dGUgZHVyY2ggdmVyc2NoaWVkZW5lIEt1bnN0ZXhwZXJ0ZW4gYXVmZ2VkZWNrdCB3dXJkZSwgd2VyZGVuIGluCmRlciBHYWxlcmllIHZvbiBQb3J0IFZhaW4gbmljaHQgbnVyIE9yaWdpbmFsZSBnZXplaWd0LCBkaWUgZGVuIEt1ZW5zdGxlcm4gU0VIUgpHVVQgYmlzIEhFUlZPUlJBR0VORCBnZWx1bmdlbiBzaW5kLCBzb25kZXJuIGF1Y2ggYmlsbGlnZSBGYWVsc2NodW5nZW4uIERhcwpmaW5kZXQgZGVyIFRob3JpbmVyCkJ1bmQgZ2VnZW4gdm9yc2FldHpsaWNoZSBLb3BpZXJ1bmdlbiB1bnNjaG9lbi4gTXVzcyBkYXNzIGRlbm4gc2VpbiA/PyBXZW5uCnNjaG9uIEJpbGRlciwgZGFubiBORVVFIEJpbGRlciwgZGVua2UgaWNoLiBEZW5uIDQqIGRhc3NlbGJlIEJpbGQgaXN0IGRvY2ggYXJnCnVlYmVyZmx1ZXNzaWcuCkVpbiBhbnNvbnN0ZW4gdm9sbCB1ZWJlcndhZWx0aWd0ZXIgS3Vuc3Rrcml0aWtlciBUaG9yaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwb25zb3JlbjogU2NocmVpYnRzIHdhcyB1ZWJlcnMgTVVELiAoSGF0ZSwgMjkuIE5vdiAxOTk0LCAxNTo0NToxNik6CkhpIExldXRlLAoKd2lyIHNpbmQgYXVmIGRlciBTdWNoZSBuYWNoIFNwb25zb3JlbiBmdWVyIGRlbiBNRyBGb2VyZGVydmVyZWluLgpEYWR1cmNoIHNvbGwgZXMgaW4gWnVrdW5mdCBtb2VnbGljaCBzZWluLCB1bmFiaGFlbmdpZyB2b24gZGVyIFVuaSB1bmQKZGVyZW4gTmV0emFuc2NobHVzcyBzb3dpZSBSZWNobmVyIHp1IHdlcmRlbi4KRGFmdWVyIGJyYXVjaGVuIHdpciBhYmVyIGF1Y2ggRWluZHJ1ZWNrZSB2b24gU3BpZWxlcm4sIGQuaC4gc2NocmVpYnQKd2FzIHVlYmVycyBNVUQgKFN0aWNod29ydCBLb21tdW5pa2F0aW9uLCBTb3ppYWxlcyB1bmQgZWluIGJpc2NoZW4KU3BpZWwpLiBJY2ggd2VyZGUgZGFyYXVzIHdhcyB6dXNhbW1lbnN0ZWxsZW4gdW5kIGVzIGRhbm4gZGVuCmpld2VpbGlnZW4gSW50ZXJlc3NlbnRlbiB6dXNjaGlja2VuLCBkYW1pdCBzaWUgc2ljaCBpbmZvcm1pZXJlbgprb2VubmVuLCB3YXMgTVVEcyBzaW5kIHVuZCB3YXMgZGllIFNwaWVsZXIgZGFydWViZXIgZGVua2VuLgpadXNhZXR6bGljaCB3ZXJkZSBpY2ggbm9jaCBhbGxnZW1laW5lIEluZm9zIHVuZCBkaXZlcnNlIGFuZGVyZQpEYXRhbiBkYXp1cGFja2VuLgoKV2VubiBtb2VnbGljaCBzY2hyZWlidCBFdXJlIElkZWVuIGFuOiBsZW9AY3MudHUtYmVybGluLmRlCkRhcyBiaW4gaWNoIDopCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNwb25zb3JlbjogU2NocmVpYnRzIHdhcyB1ZWJlcnMgTVVELiAoS2xpbmdlLCAzMC4gTm92IDE5OTQsIDAxOjQ5OjQxKToKIyEgcm49SGF0ZSBydD03ODYxMjAzMTYKV2VyZGVuIGRhbm4gZGllIFF1ZXN0cyB1bmQgZGllIEthZW1wZmUgYWxsZSAyMCBNaW51dGVuIHZvbiBXZXJiZWJsb2Nrcwp1bnRlcmJyb2NoZW4gPwo7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU3BvbnNvcmVuOiBTY2hyZWlidHMgd2FzIHVlYmVycyBNVUQuIChLcmV0ZWssIDMwLiBOb3YgMTk5NCwgMDI6MDA6NDMpOgojISBybj1LbGluZ2UgcnQ9Nzg2MTU2NTgxCkdlbmlhbGUgSWRlZSwgS2xpbmdlIQpEYXMgaXN0IGRvY2ggRElFIE1ldGhvZGUsIHVtIEdlbGQgZnVlciBkZW4gVmVyZWluIHp1IHNhbW1lbG47IHdlbm4gZGEgbWFsCmdlbnVnIHJlaW5rb21tdCwgZGFubiBrYW5uIHNpY2ggZGFzIE1vcmdlbkdyYXVlbiBlbmRndWVsdGlnIHZvbiBkZXIgVW5pCk11ZW5zdGVyIHVuYWJoYWVuZ2lnIG1hY2hlbiEgRGFubiBkdWVyZmVuIHdpciB3aWVkZXIgZnJhdWVuLSB1bmQgYW5kZXJzd2llLQpmZWluZGxpY2hlIFdpdHplIGVyemFlaGxlbiwgb2huZSBkYXNzIGlyZ2VuZHdlbGNoZSBQcm9mcyAodGhlb3JldGlzY2gpCnJlaW5wZnVzY2hlbiEgVW5kIEpvZiB1bmQgQm9pbmcga29lbm50ZW4gamEgc28gJ25lIEFydCBBbnNhZ2VyIHdlcmRlbiwKZGllIGhhYmVuIGphIGVoIG5peCB6dSB0dW4hICA6LSkKCmMgdSBsOGVyCiAgIEtyZXRlayAoZGVyIHNpY2ggdWViZXJsZWd0LCBvYiBkYXMgaW4gIlNjaG1hcnJuIiBuaWNodCBkb2NoIGFuZ2VicmFjaHRlcgogICAgICAgICAgICBnZXdlc2VuIHdhZXJlLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU3BvbnNvcmVuOiBTY2hyZWlidHMgd2FzIHVlYmVycyBNVUQuIChCb2luZywgMzAuIE5vdiAxOTk0LCAxMDo0MDo0Mik6CiMhIHJuPUtyZXRlayBydD03ODYxNTcyNDMKRGFzIE1VRCB6dSBrb21tZXJ6aWFsaXNpZXJlbiBpc3QgYXVzIENvcHlyaWdodC1HcnVlbmRlbiBuaWNodCBtb2VnbGljaAooSm9mIHNlaSBEYW5rISkuCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFNwb25zb3JlbjogU2NocmVpYnRzIHdhcyB1ZWJlcnMgTVVELiAoR3JpbW1ib3JuLCAzMC4gTm92IDE5OTQsIDE3OjQzOjM2KToKIyEgcm49Qm9pbmcgcnQ9Nzg2MTg4NDQyCgpIZSwgZGllIElkZWUgaXN0IGd1dCEgSWNoIGZpbmRlIGRpZXNlIFdlcmJlZXBhdXNlbiBrbGFzc2UsIGRhIGthbm4gbWFuIG1hbAphdWYgS2xvIGdlaGVuLCBuZXVlbiBUZWUga29jaGVuLCBiaXNjaGVuIHJlZ2VuZXJpZXJlbiwgRGF1bWVuIGRydWVja2VuLCBkYXNzCmRhcyBBbXVsZXR0IGphIGRvY2ggbWFsIG1pdHRlbiBpbSBLYW1wZiB6dXNjaGxhZWd0Li4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKKG5hdHVlcmxpY2ggaGFiZW4gSm9mIHVuZCBCb2luZyBuaWNodHMgenUgdHVuLiBFcyBnaWJ0IHNpZSBqYSBuaWNodG1hbC4pCiwKLAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5zIFdldHRidWVybyAoVGhvcmluLCAgNy4gRGV6IDE5OTQsIDA5OjE1OjM4KToKQWVoLCBrYW5uIGphIHNlaW4sIGRhc3MgaWNoIHdhcyB1ZWJlcmxlc2VuIGhhYiwgYWJlcjoKLXdhbm4gZmluZGVuIGRpZSBTcGllbGUgaW1tZXIgc3RhdHQgPwotd2FzIGthbm4gbWFuIGJlaSBkZW4gUGxhdHp3ZXR0ZW4gZ2V3aW5uZW4gPwpIYWIgaWNoIGlyZ2VuZHdpZSBuaWNodCBnZWZ1bmRlbiwgdmllbGxlaWNodCBrYW5uIGVpbmVyIG1pY2ggamEgYXVma2xhZXJlbgooYWJlciBvaG5lIEJpZW5lbiB1bmQgc28pICpncmlucyoKRWluIHVuaW5mb3JtaWVydGVyIFRob3JpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU3BvbnNvcmVuOiBTY2hyZWlidHMgd2FzIHVlYmVycyBNVUQuIChRdWFzaW1vZG8sICA3LiBEZXogMTk5NCwgMTY6MDM6MTIpOgojISBybj1HcmltbWJvcm4gcnQ9Nzg2MjEzODE2CgoKV2llIHdhZXJzIHdlbm4gbWFuIGFuc3RlbGxlIGRlciBUb2Rlc3NlcXVlbnplbiBudXIgbm9jaCBXZXJidW5nIGJyaW5ndD8gRGFubgpoYXQgbWFuIG5vY2ggdmllbCBtZWhyIHZlcnNjaGllZGVuZS4gOikKClF1YXNpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBTcG9uc29yZW46IFNjaHJlaWJ0cyB3YXMgdWViZXJzIE1VRC4gKEhvYm8sICA3LiBEZXogMTk5NCwgMTY6MTg6MjcpOgojISBybj1RdWFzaW1vZG8gcnQ9Nzg2ODEyNTkyCkd1dGUgSWRlZSwgd2llIHdhZXIncyBkZW5uIHouQi4gbWl0IFdlcmJ1bmcgdm9uIExlYmVuc3ZlcnNpY2hlcnVuZ2VuPyA7KQoKIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbnMgV2V0dGJ1ZXJvIChEYW5jZXIsICA3LiBEZXogMTk5NCwgMTY6NDc6MjEpOgpIaSBUaG9yaW4hCgpXYW5uIGRpZSBqZXdlaWxzIG5hZWNoc3RlbiBXZXR0a2FlbXBmZSBzdGF0dGZpbmRlbiBzdGVodCBpbiBkZXIgRW1wZmFuZ3MtCmhhbGxlIGF1ZiBkZXIgZ3Jvc3NlbiBUYWZlbCAoaWNoIHdlcmQgc2llIG5vY2ggZ3JvZXNzZXIgbWFjaGVuIDspICkuCgpCZWkgZWluZXIgUGxhdHp3ZXR0ZSBoYXN0IER1IGFiIHp3ZWkgcmljaHRpZ2VuIFRyZWZmZXJuIGV0d2FzIGdld29ubmVuLCBqZQptZWhyIFRyZWZmZXIgZGVzdG8gaG9laGVyIGlzdCBkZXIgR2V3aW5uLiBLbGFyLgpXSUUgaG9jaCBkZXIgR2V3aW5uIHBybyBUcmVmZmVycHVua3QgaXN0LCBoYWVuZ3Qgdm9uIGRlciBNZW5nZSBkZXIgRWluemFoLQpsdW5nZW4gdW5kIFRpcHMgYWIuIER1IGJla29tbXN0IGFiZXIgLSBmYWxscyBEdSBnZXdpbm5zdCAtIGdlc2FndCwgenUKd2VsY2hlciBRdW90ZSBEdSBnZXdvbm5lbiBoYXN0LiBWb3JoZXIga2FubiBkYXJ1ZWJlciBhdWNoIGtlaW5lIEF1c3NhZ2UKZ2VtYWNodCB3ZXJkZW4uCkRpZSBHZXdpbm5lIGJlaSBTaWVnd2V0dGVuIHNvbGx0ZW4gdmVyc3RhZW5kbGljaCBzZWluLCBkaWUgc3RlaGVuIGltIEJ1Y2gKZGVyIFF1b3RlbiBpbiBkZXIgSW5mb3JtYXRpb25zbG91bmdlLi4ubnVyIGRlciBWb2xsc3RhZW5kaWdrZWl0CmhhbGJlci4uLgoKRGFuY2VyIGRlciBTYW5kdGlnZXIKVm9yc3RhbmRzdm9ydGlnZXJuZGVyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFuY2VycyBXZXR0YnVlcm8gKER1cmlhbiwgIDcuIERleiAxOTk0LCAxODoyMzoyNSk6CkhhbGxvIExldXRlIQoKbmVpbiBuZWluIG5laW4gbmVpbiBuZWluIC4uLgoKbmVpbiBuZWluIG5laW4gbmVpbiBuZWluCgpGYW5ndCBnYXIgbmljaHQgZXJzdCBkYW1pdCBhbiAhISEKCktvbW10IGdhciBuaWNodCBlcnN0IGF1ZiBkaWUgSWRlZSEhIQoKVmVyZ2Vzc3QgZXMhISEKClN0cmVpY2h0IGVzIGF1cyBFdXJlbSBHZWRhZWNodG5pcyEhIQoKYml0dGUgLi4uCgpiaXR0ZSAuLi4KCktFSU5FIEJVR01FTERVTkdFTiBVRUJFUiBEQVMgV0VUVEJVRVJPIEFOIE1JQ0ghISBFUyBTVEFNTVQgVk9OIERBTkNFUgpVTkQgTklFTUFOREVOIFNPTlNUISEhISAqendpbmtlciBIYXJkaWwqCgpEYW5jZXIsIHZpZWxsZWljaHQgc29sbHRlbiB3aXIgamVkZW4sIGRlciB1bnMgbm9jaG1hbCB2ZXJ3ZWNoc2VsdAphdWYgZGVyIGhvZWNoc3RlbiBEdWVuZSBpbiBkZXIgV3Vlc3RlIGdlbnVlc3NsaWNoIGluIGRlciBNaXR0YWdzaGl0emUKZ3JpbGxlbiB1bmQgc2NobW9yZW4/IFZpZWxsZWljaHQgbGVybmVuIHNpZSdzIGRhbm4gZW5kbGljaCAuLi4KCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXR0YnVlcm8gKEFyYW55YSwgIDcuIERleiAxOTk0LCAxODo0MDo0OSk6CkR1cmlhbiwgZGFzIEJ1ZXJvIGlzdCBhZXVzc2Vyc3QgZ2VzY2htYWNrdm9sbCBlaW5nZXJpY2h0ZXQhIEljaCBoYWIgbWljaCBzZWhyCndvaGwgZ2VmdWVobHQgdW5kIGltbWVyIGdlZGFjaHQ6IFRldWZlbCBub2NoIGVpbnMsIGhhdCBkZXIgRHVyaWFuIElkZWVuIQoKVG9sbCwgZmluZGV0CiAgICAgICAgICAgIEFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV3R0YnVlcm8gSUkgKEFyYW55YSwgIDcuIERleiAxOTk0LCAxODo0MTo0MSk6ClBhcmRvbiwgaGFiIGljaCB2ZXJnZXNzZW46CgpJUk9OSUUgT0ZGCihkYW1pdCBlcyBrZWluZSBWZXJ3ZWNoc2x1bmdlbiBnaWJ0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2V0dGJ1ZXJvIChDYW1waW5vLCAgNy4gRGV6IDE5OTQsIDE4OjQ5OjAyKToKRGVpbiBXZXR0YnVlcm8gaXN0IGVpbmZhY2ggdG9sbC4gRHUgaGFldHRlc3QgZGllIEVyb2VmZm51bmcgbnVyIDE1IE1pbnV0ZW4KZnJ1ZWhlciBzdGF0dGZpbmRlbiBsYXNzZW4sIG5hY2hkZW0gaWNoIERpY2ggbWluZGVzdGVucyAxIFN0dW5kZSBsYW5nCmF1ZiBtZWluZSBmcmV1bmRsaWNoZSBBcnQgdW5kIFdlaXNlIGRhcnVtIGdlYmV0ZW4gaGFiZS4KCkRlaW5lIFJhdW1iZXNjaHJlaWJ1bmdlbiBrb2VubmVuIGplZGVtIE1hZ2llciBudXIgYWxzIFZvcmJpbGQgZGllbmVuLAptYWNoIHdlaXRlciBzbyBEdXJpYW4uCgoKQ2FtcGlubwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXZXR0YnVlcm8gKENhbXBpbm8sICA3LiBEZXogMTk5NCwgMTg6NTI6MjcpOgojISBybj1DYW1waW5vIHJ0PTc4NjgyMjU0MgpBY2ggamEsIHVuZCBuZW5uIG1pY2ggYml0dGUgbmljaHQgTWFnaWVyMSwgbGllYmVyIHdhZXJlIG1pciAnZGVyIDEuIE1hZ2llcicsCndlbm4gZXMgdW0gbml2ZWF1dm9sbGUgVW50ZXJoYWx0dW5nZW4gYXVmIGRlbiBLYW5hZWxlbiBnZWh0LCBuYWphIGljaCBrb21tZQp3b2hsIHZvbSBUaGVtYSBhYi4gVGhlbWEgPz8gRWdhbC4KSWNoIGhvZXIgYXVmLCB3ZWlsIG1pciBuaXggbWVociBlaW5mYWVsbHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFuY2VycyBXZXR0YnVlcm8gKERhbmNlciwgIDcuIERleiAxOTk0LCAyMToyOTozNyk6CiMhIHJuPUR1cmlhbiBydD03ODY4MjEwMDUKRHVyaWFuLi4ud2FzIGZ1ZXIgQnVnbWVsZHVuZ2VuPz8/IERlciBXZXR0cGFsYXN0IGhhdCBiaXMgamV0enQga2VpbmVuIDotKQoKU1RSQUhMRU5ECgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMT0IgISAoU3RhaGxkb3JuLCAgNy4gRGV6IDE5OTQsIDIzOjEyOjQ2KToKSGFsbG8gRHVyaWFuICEhIQoKQWxzbyBpY2ggbXVzcyBkaWNoIHdlZ2VuIGRlbSBXZXR0cGFsYXN0IGhlZnRpZyBsb2JlbiAhIQpUb2xsIGdlbWFjaHQgISBXZWl0ZXIgc28sIERVUklBTiAhCgphZWguLi4KYWNoIGphLCBkYSBmZWhsdCBub2NoIHdhcy4KCklST05JRSBPRkYKCiAgICAgICBTVEFITCAgKGhhdCBuYXR1ZXJsaWNoIERhbmNlciBnZW1laW50IDopCiAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEQU5DRVJTIFdldHRwYWxhc3QgKEFuYXRvbCwgIDguIERleiAxOTk0LCAxMTowNzowNyk6CgogICAgICAgICAgICBHcm9zc2VzIExvYi4KCiAgICAgICAgICAgICAgICAgICAgQW5hdG9sIChiZWdlaXN0ZXJ0KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGFuY2VycyBXZXR0YnVlcm8gKE5peGlob3UsICA4LiBEZXogMTk5NCwgMTE6MzY6NDIpOgojISBybj1EYW5jZXIgcnQ9Nzg2ODMyMTc3CnZpZWxsZWljaHQgaGFzdCBkdSBkYXMgbnVyIG5pY2h0IGJlbWVya3QsIHdlaWwgYWxsZSBidWdtZWxkdW5nZW4gYmlzaGVyIGFuCmR1cmlhbiBnZWdhbmdlbiBzaW5kPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VtYWVsZGV2ZXJ3ZWNoc2x1bmcgKExpLCAgOC4gRGV6IDE5OTQsIDE0OjE3OjQ2KToKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogICAgICAgICAgICAgICAgICAgR0VNQUVMREVWRVJUQVVTQ0hVTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICBXZXIgaW4gZGVyIGxldHp0ZW4gWmVpdCBpbiBkZXIgR2FsZXJpZSBpbiBQb3J0IFZhaW4gd2FyLCBoYXQgdmllbGVpY2h0ICAqCiogICBkb3J0IGF1Y2ggZWluIEJpbGQgdm9uIG1pciBnZXNlaGVuLiBMZWlkZXIgaGFuZGVsdGUgZXMgc2ljaCBkYWJlaSB1bSAgICAqCiogICBlaW5lIFZlcndlY2hsdW5nLiBOdW4gaXN0IGRlciBJcnJ0dW0gYXVmZ2VrbGFlcnQsIHVuZCBkYXMgcmljaHRpZ2UgQmlsZCAqCisgICBpc3QgaW4gZGllIEdhbGVyaWUgYXVmZ2Vub21tZW4gd29yZGVuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICBMaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhbmNlcnMgV2V0dGJ1ZXJvIChBc21vZGlzLCAgOC4gRGV6IDE5OTQsIDE0OjI3OjAxKToKIyEgcm49RHVyaWFuIHJ0PTc4NjgyMTAwNQpEdXJpYW4sIGR1IGJpc3QgZG9jaCBlaCBkZXIgWndlaXRpZSB2b24gRGFuY2VyLCBhbHNvIHdhcyBzb2xsIGRhcyA/IDopCgogICAgICAgICAgICAgICAgICAgICAgQ2lhbywgQXNtb2RpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTHVja3kgVGlnZXIncyAoRGFuY2VyLCAgOC4gRGV6IDE5OTQsIDE1OjA3OjA4KToKV2VnZW4gdmVybWVocnRlciBaZWNocHJlbGxlcmVpLCB3dXJkZSBhbmdlZmFuZ2VuLCBpbQpXZXR0cGFsYXN0IGRhcnVlYmVyIEJ1Y2ggenUgaGFsdGVuLgoKRGFzIG5ldWUgJ0J1Y2ggZGVyIFZpcHMnIGxpZWd0IGluIGRlciBJbmZvcm1hdGlvbnNsb3VuZ2UgYXVzIHVuZAprYW5uIHZpbiBqZWRlbSBlaW5nZXNlaGVuIHdlcmRlbiA6LSkKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGFuY2VycyBXZXR0YnVlcm8gKENhbHVtLCAgOC4gRGV6IDE5OTQsIDE3OjUwOjQxKToKIyEgcm49QXNtb2RpcyBydD03ODY4OTMyMjEKRHVyaWFuLCB3aWUga29tbXN0IER1IGF1ZiBkaWUgSWRlZSwgZGFzcyBEaWNoIGplbWFuZApmdWVyIGRhcyBXZXR0YnVlcm8gdmVyYW50d29ydGxpY2ggbWFjaHQ/IFNjaGxpZXNzbGljaCBoYXQKRGlyIGphIGF1Y2ggbm9jaCBuaWVtYW5kIERhbmNlcnMgUHlyYW1pZGVuIGluIGRpZQpTY2h1aGUgZ2VzY2hvYmVuLCBvZGVyPz8/IDotKSkpKSkpCgpJUk9OSUUgT0ZGCgogICAtIENhbHVtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZXN0ZWNobGljaGtlaXQgdm9uIEJlYW10ZW4gKFRob3JpbiwgIDguIERleiAxOTk0LCAxOTozMjozNyk6CldpZSBnZXJhZGUgZWluZHJ1Y2tzdm9sbCBiZXdpZXNlbiB3dXJkZSwgc2luZCBCZWFtdGVuIGJlc3RlY2hsaWNoOgpnaWIgMiBtdWVuemVuIGFuIGJlYW10ZXIKRHUgZ2lic3QgZGVtIEJlYW10ZXIgMiBNdWVuemVuLgpEZXIgR2VnZW5zdGFuZCB3aXJkIHZlcndhbHRldC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN1Y2hlIChPZXR0aSwgIDguIERleiAxOTk0LCAyMToxMDo1MSk6CkhpICEKCkxhZXN0aWdlciwgbmVydmlnZXIsIGxhYmVybmRlciwgdW5vcmRlbnRsaWNoZXIsIG1pbmRlc3RlbnMKendlaW1hbCBwb3IgdGFnIHN0ZXJiZW5kZXIsIHJhdWNoZW5kZXIsIHNhdWZlbmRlciBkZW4gQXRyaWJ1dGVuIG5hY2gKemllbWxpY2ggdW50ZXJiZWxpY2h0ZXRlciwgc2Nod2FlY2hsaWNoZXIsIHVuZ2VzY2hpY2t0ZXIgdW5kIHNjaG5lbGwKc2NobGFwcG1hY2hlbmRlciwgaGFlc3NsaWNoZXIgRWxmLCBtaXQgZGl2ZXJzZW4gS2FtcGZuYXJiZW4KT2huZSBHZWxkLCBadWt1bmZ0LCBBdXNzaWNodGVuLCBuYWNrdCwgaWRsZW5kLCBzY2hyZWllbmQsIHNpY2ggaW4Ka2FuYWVsZW4gdW5iZWxpZWJ0IG1hY2hlbmQsIGZyYXVlbmZlaW5kbGljaCwgaHVtb3Jsb3MsCnVudmVyc2NoYWVtdCwgc29kb21pdCwgbmVrcm9waGlsZXIsIHVuZCBhZWhubGljaGVuIEF1c2Nod2VpZnVuZ2VuCm5pY2h0IGFiZ2VuZWlndGVyIHN1Y2h0IGViZW5zb2xjaGVzIFBlbmRhbnQsIG1vZWdsaWNoc3Qgd2VpYmxpY2gsCmFiZXIgZWlnZW50bGljaCBhdWNoIGVnYWwsIHp3ZWNrcyBFaGVsaWNodW5nLCB6dXIgU2ljaGVydW5nIGRlciBadWt1bmZ0LgoKQml0dGUgbnVyIGVybnN0Z2VtZWludGUgWnVzY2hyaWZ0ZW4gdm9uIFdlc2VuIG1pdCBlaW5lbQpnYXJhbnRpZXJ0ZW4gRWlua29tbWVuIHZvbiBtaW5kZXN0ZW4gMTAwMDAgTXVlbnplbiBwcm8gc3R1bmRlLgphbiBjaGlmZnJlIE9ldHRpLCBoaWVyIGluIGRpZXNlbSBNdWQsIGluIGplZGVyIFBvc3RzdGVsbGUsIG9kZXIKZGlyZWt0IGFuIE1QQSwgQWJ0LiBBbnplaWdlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLcml0aWsgKFRob3JpbiwgIDguIERleiAxOTk0LCAyMToxMzoyMyk6CkljaCB3ZWlzcywgaWNoIHdlaXNzLCB3YWhyc2NoZWlubGljaCBvdXRlIGljaCBtaWNoIGR1cmNoIGRpZXNlIEtyaXRpaywgYWJlcgppY2ggZmluZGU6CkhBRU5HVCBESUUgUVVFU1QgREVSIEZSQUdHTEVTIEFCIFVORCBURVNURVQgU0lFIE5PQ0hNQUwgRFVSQ0ggISEhCkRlbm4gc293YXMgYW4gQ29kZSB1bmQgQnVncyBzb2xsdGUgdmVyYm90ZW4gd2VyZGVuIGJ6dy4gdm9uIFF1ZXN0dGVzdGVybgphYmdlZmFuZ2VuIHdlcmRlbi4uLiBJY2ggd3VlcmRlIGF1Y2ggbmljaHRzIHNhZ2VuLCB3ZW5uIGljaCBhbHMgU2VoZXIgd2llIHouQi4Kdm9uIExpIHp1bSBUZXN0ZW4gZWluZ2VsYWRlbiB3ZXJkZSB1bmQgZGFubiBlaW4gcGFhciAoYXVmIGplZGVuIEZhbGwgbmljaHQgc28KdmllbGUgd2llIGluIGRlcgpGcmFnZ2xlcXVlc3QpIFR5cG9zIGZpbmRlLCBhYmVyIEJVR1M/PwpOYWphLCB3YXIgbWFsIG1laW5lIE1laW51bmcsIGljaCB3ZXJkIGRpZSBRdWVzdCB2aWVsbGVpY2h0IG1hbCBpbiBlaW5lbSBNb25hdApzcGllbGVuLCBzbyBuaWNodCBkZW5rZSBpY2ggLi4uClBTOiBJY2ggZmluZGUgbmV1ZSBRdWVzdHMgc2VociBzY2hvZW4gdW5kIGhhYiBhdWNoIG5pY2h0cyBnZWdlbiBlaW4gcGFhcgpGZWhsZXIgKHdlbSBwYXNzaWVyZW4gZGllIG5pY2h0KSB3YWVocmVuZCBkZXIgVGVzdHBoYXNlLCBhYmVyIGltCmFuZ2VzY2hsb3NzZW5lbiBadXN0YW5kIHNvbGx0ZSBkYW5uIGVpZ2VudGxpY2ggYWxsZXMgZHJhdXNzZW4gc2VpbiA6KSkpClBQUzogTnVuIHplcnJlaXNzdCBtaWNoICpncmlucyoKRWluIGJ1Zy90eXBvL2lkZWUgaGludGVybGFzc2VuZGVyIFRob3JpbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtyaXRpayAoQXNtb2RpcywgIDkuIERleiAxOTk0LCAwMDo1OToyNCk6CiMhIHJuPVRob3JpbiBydD03ODY5MTc2MDMKSG1tLCBhcHJvcG9zIEZyYWdnbGVzLCB3byBpc3QgZGVubiBkaWVzZXMgYmxvZWRlIGJsYXVlIEtyaXN0YWxscG9ydGFsID8KSWNoIGthbm4gZGFzIG5pcmdlbmR3byBmaW5kZW4gISEKCk1hbiBzb2xsdGUgd2lya2xpY2ggbWFsIG1laHIgSGlud2Vpc2UgYXVmIGRpZSBnYW56ZW4gU2FjaGVuIHZlcnRlaWxlbiAhIQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2lhbywgQXNtb2RpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogU3BvbnNvcmVuOiBTY2hyZWlidHMgd2FzIHVlYmVycyBNVUQuIChXdXIsICA5LiBEZXogMTk5NCwgMDQ6NTY6MzApOgojISBybj1Ib2JvIHJ0PTc4NjgxMzUwNwpoaSBpaHIhCgpEYXMgd2FlcmUgZnVlciBtaWNoIGphIGRhcyBsZXR6dGUsIHp1IHN0ZXJiZW4sIHVuZCBhbHMgZGFua2VzY2hvZW4gZGFyYXVmCldFUkJVTkchIERhIGthbm4gaWNoIG1pY2ggamEgZ2xlaWNoIHZvciBkZW0gZmVybnNlaGVyIG5pZWRlcmxhc3NlbiB1bmQKd2FzLXdlaXNzLWljaCBndWNrZW4uCgogICAgIFdVUiAtIGRlciBXZXJidW5nIGFldHplbmQgZmluZGV0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS3JpdGlrIChDaWZlciwgIDkuIERleiAxOTk0LCAxMjo0NTo0OSk6CiMhIHJuPVRob3JpbiBydD03ODY5MTc2MDMKR3JhZGUgRHUgaGFzdCBlcyBub2V0aWcsIFRob3Jpbj8gSWNoIGRlbmtlIG51ciBhbiBJbmRpYW5hIEpvbmVzLAphdWYgZGllc2VyIFdlbHQsIGFiZXIgaW4gZWluZW0gYW5kZXJlbiBNVUQhCgpDaWZlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLcml0aWsgKEZyYWdnbGUsICA5LiBEZXogMTk5NCwgMTM6NTc6MDEpOgojISBybj1UaG9yaW4gcnQ9Nzg2OTE3NjAzCkljaCBtdXNzIGxlaWRlciBlaW5yYWV1bWVuLCBkYXNzIG5vY2ggZWluaWdlIFR5cG9zIGluIGRlbiBHZWdlbnN0YWVuZGVuIHVuZApNb25zdGVybiBzdGVja2VuIGtvZW5uZW4uIERpZSBRdWVzdCBpc3QgemllbWxpY2ggZ3Jvc3MgZ2V3b3JkZW4gdW5kIGljaApoYWJlIG9mdCBlaW5pZ2VzIGFtIFRleHQgZ2VhZW5kZXJ0LiBJY2ggYml0dGUgdW0gTmFjaHNpY2h0IHVuZCB2ZXJzcHJlY2hlLApub3RpZXJ0ZSBUeXBvcyBzY2huZWxsc3RlbnMgenUgYWVuZGVybi4gRGllIFF1ZXN0IHd1cmRlIHNlaHIgd29obCBnZXRlc3RlZCwKZGllIEZ1bmt0aW9uIGRlciBRdWVzdCBpc3QgdW5iZWVpbnRyYWVjaHRpZ3QuIChJY2ggaGFiZSBzaWUgbWVocmZhY2gKZHVyY2hnZXNwaWVsdCwgenVsZXR6dCBub2NoIGNhLiAxaCB2b3IgQW5zY2hsdXNzKS4gVmVyYmVzc2VydW5nc3ZvcnNjaGxhZWdlCndlcmRlbiB0cm90emRlbSBnZXJuZSBiZWFyYmVpdGV0LiBJY2ggaG9mZmUsIGlociBsYXNzdCBldWNoIHZvbiBUaG9yaW5zCktyaXRpawpuaWNodCB6dSBzZWhyIGFic2NocmVja2VuLCBpY2ggZmFuZGUgc2llIGVpbiBiaXNjaGVuIGhhcnQuCgogICAgRnJhZ2dsZSAoZGVyIGxlYmVuZGUgVHlwbykKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmFnZ2xlcywgRG9vemVyLi4uIChGcmFnZ2xlLCAgOS4gRGV6IDE5OTQsIDE2OjE2OjIzKToKTmFjaCBkZW0gZGllIGVyc3RlbiBBYmVudGV1cmVyIGluIEZyYWdnbGUgUm9jayB6dSBiZXN1Y2ggd2FyZW4sIGlzdAplaW4gZ3JvYmVyLCB6YWhsZW5tYWVzc2lnZXIgUnVlY2tnYW5nIHZvbiBEb296ZXJuIHVuZCBGcmFnZ2xlcyB6dQp2ZXJ6ZWljaG5lbiEKQWxzbywgTGV1dGU6IERhcyBzaW5kIGVjaHQgbmllZGxpY2hlICwga2xlaW5lIFdlc2VuISBJaHIgc29sbHQgaWhuZW4gaGVsZmVuLApuaWNodCBzaWUgdW1icmluZ2VuIQoKRnJhZ2dsZSAoYmVzb3JndCB1bSBzZWluZSBTY2h1ZXR6bGluZ2UpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtyaXRpayAoVGhvcmluLCAgOS4gRGV6IDE5OTQsIDE2OjQ4OjE3KToKIyEgcm49Q2lmZXIgcnQ9Nzg2OTczNTQ5CkFsc28sIGRhenUgbXVzcyBpY2ggZm9sZ2VuZGVzIG1hbCBzYWdlbiAod2VubiBzb3dhcyBoaWVyIGVyd2FlaG50IHdpcmQpOgoxLikgRGFzIHZvbiBkaXIgZXJ3YWVobnRlIG11ZCBpc3Qgbm9jaCBuaWNodCBvZmZlbiwgaW5zb2Zlcm4gaXN0IGRvcnQgSkVERVIKUXVlc3R0ZXN0ZXIuIEFsc28gc3BpZWx0IGRhcyBlaGVyIGF1ZiBtZWluZW4gUHVua3QgYW4sIGRhc3MgbWFuIG1laHIgVGVzdGVyCmluIEZyYWdnbGVzIFF1ZXN0IHNjaGxldXNlbiBtdWVzc3RlLCBiZXZvciBtYW4gaWhuIG9mZmVuIHp1Z2FlbmdsaWNoIG1hY2h0LgoyLikgU3RlbGxlIGljaCBtaWNoIGdlcm4gYWxzIFRlc3RlciB6dXIgVmVyZnVlZ3VuZywgQkVWT1IgZGVyIFF1ZXN0IGRyYW4KaXN0LiBBYmVyIHdlbm4gZXIgZXJzdG1hbCBkcmFuIGlzdCwgZXJ3YXJ0ZSBpY2ggbnVyIG5vY2gga2xlaW5lIFR5cG9zLCBhYmVyCmF1ZiBqZWRlbiBGYWxsIGtlaW5lIEJ1Z3Mgd2llIHouYi4gZGFzIGljaCBlaW5lbiBCYWxsIHgtbWFsIGF1cyBkZW0gQnJ1bm5lbgp0cmV0ZW4ga2FubiwgZWluZW4gRG9vemVyIHgtbWFsLCBzZWxic3Qgd2VubiBlciB0b3QgaXN0IG9kZXIgZ2FyIG5pY2h0IGRhCmlzdCwKYXVzIGVpbmVtIERpc2tzY2hhY2h0IHJldHRlbiBrYW5uLCBvZGVyIGRpZSBXZWx0IG1pdCBlaW5lciBNaWxsaWFyZGUKUmFkaWVzY2hlbnVlYmVyc2NodWV0dGVuLiBEYXMgd2FlcmVuIG51ciBlaW4gcGFhciBkZXIgRGluZ2UsIGRpZSBpY2ggZ2VmdW5kZW4KaGFiIC4uLgpEYWZ1ZXIgZ2lidCBlcyBqYSBkaWUgUXVlc3R0ZXN0ZXIsIGRpZSBzb3dhcyBmaW5kZW4vcHJvYmVzcGllbGVuIHVuZCBkYW1pdApmdWVyIHJlaWJ1bmdzZnJlaWVuIEFibGF1ZiBkZXIgRGluZ2Ugc29yZ2VuLi4uClRob3JpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS3JpdGlrIChGcmFnZ2xlLCAgOS4gRGV6IDE5OTQsIDE3OjUxOjUyKToKIyEgcm49VGhvcmluIHJ0PTc4Njk4ODA5NwpEaWUgUmFkaWVzY2hlbiBzaW5kIGtlaW4gQlVHIC0+IEthbWlsbGVibHVldGVuIC4uLgpCYWxsIHVuZCBEb296ZXIgc2luZCBiZWhvYmVuIChiZWVpbnRyYWVjaHRpZ3RlbiBkaWUgU3BpZWxiYXJrZWl0IGplZG9jaApuaWNodCkKCj4KPkRhcyB3YWVyZW4gbnVyIGVpbiBwYWFyIGRlciBEaW5nZSwgZGllIGljaAo+Z2VmdW5kZW4gaGFiIC4uLgpBdXNzZXIgZGVuIFR5cG9zIGhhYmUgaWNoIGRhIG51ciBub2NoIGVpbmVuIHN0ZWhlbj8KPkRhZnVlciBnaWJ0IGVzIGphIGRpZSBRdWVzdHRlc3RlciwgZGllIHNvd2FzIGZpbmRlbi9wcm9iZXNwaWVsZW4gdW5kIGRhbWl0Cj5mdWVyIHJlaWJ1bmdzZnJlaWVuIEFibGF1ZiBkZXIgRGluZ2Ugc29yZ2VuLi4uCkVzIGdhYiBkdXJjaGF1cyBUZXN0ZXIgaW4gbWVpbmVyIFF1ZXN0LCBhYmVyIHJlaWJ1bmdzbG9zIGlzdCBkb2NoIGV0d2FzCnVlYmVydHJpZWJlbi4gQWxsZXMga29lbm5lbiBUZXN0ZXIgYXVjaCBuaWNodCBmaW5kZW4uIEljaCBnZWIgamEgenUsIGRhcwpzIGRpZSB2b24gRGlyIGFuZ2VzcHJvY2hlbmVuIERpbmdlIHVuc2Nob2VuIHdhcmVuLCBhYmVyIGljaCBnbGF1YmUsIER1CmVyd2FydGVzdCBldHdhcyB6dXZpZWwuIERpZSBGaXJtYSBrbGVpbndlaWNoIChNaWNyb3NvZnQpIGhhdCBzY2hsaWVzc2xpY2gKYXVjaAprZWluZSBidWdmcmVpZW4gUHJvZHVrdGUgdW5kIGljaCBiaW4gbmljaHQgR290dCAod2VkZXIgUkwgbm9jaCBWTCkuCldlbm4gRHUgbGllYmVyIHdhcnRlbiBtb2VjaHRlc3QsIGJpcyBkaWUgUXVlc3QgYnVnZnJlaSBpc3QsIGJpdHRlLApBYmVyIGJlaSBEZWluZXIgS3JpdGlrIGhhdCBtYW4gZGVuIEVpbmRydWNrLCBpbiBtZWluZXIgUXVlc3QgbGllZmUgbmljaHRzLAp1bmQKZGFzIG11c3MgaWNoIGhpZXIgYXVmcyBoZWZ0aWdzdGUgZGVtZW50aWVyZW4uCgpHcnVzcwogICAgRnJhZ2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS3JpdGlrIChUaG9yaW4sICA5LiBEZXogMTk5NCwgMTc6NTg6MzgpOgojISBybj1GcmFnZ2xlIHJ0PTc4Njk5MTkxMgpMYXNzIHVucyBwZXIgbWFpbCB3ZWl0ZXJtYWNoZW4gOikgQWxzbywgZGllIFFVZXN0IGxhZXVmdCBqYSwgaGFiIGljaCBuaWNodHMKZ2VnZW4genUgc2FnZW4sIGFiZXIgZXMgZ2luZyBoYWx0IHVtIEtsZWluaWdrZWl0ZW4sIGRpZSBtYW4sIHdpZSBpY2ggZmluZGUsCnZvcmhlciBiZXNlaXRpZ2VuIHNvbGx0ZSAuLi4KS251ZGRsZSBGcmFnZ2xlLCBUaG9yaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEtyaXRpayAoQm9pbmcsICA5LiBEZXogMTk5NCwgMTg6MzI6MzYpOgojISBybj1UaG9yaW4gcnQ9Nzg2OTg4MDk3CkRhenUgbnVyIGVpbnM6IEVzIGlzdCBOSUNIVCBlcmxhdWJ0IFNwaWVsZXIgaW4gbmljaHQgYW5nZXNjaGxvc3NlbmUKR2ViaWV0ZSB6dSBsYXNzZW4uCgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBLcml0aWsgKElzbm9nb29kLCAgOS4gRGV6IDE5OTQsIDIzOjQ2OjM3KToKIyEgcm49RnJhZ2dsZSBydD03ODY5OTE5MTIKQWxzbyBpY2ggbXVzcyBmUmFnZ2xlIHJlY2h0IGdlYmVuLCBhdWNoIHdlbm4gaWNoIGltIGFsbGdlbWVpbmVuIFRob3JpbiBudXIKdW5nZXJuIHdpZGVyc3ByZWNoZS4gTWljaCBoYWJlbiBkaWUga2xlaW5lbiBGZWhsZXIgdWViZXJoYXVwdCBuaWNodCBnZXN0b2VydCwKYWJnZXNlaGVuIGRhdm9uLCBkYXNzIG1hbiBzaWUgYXVjaCBudXIgZmluZGV0IHdlbm4gbWFuIGVzIGRhcmF1ZiBhbmxlZ3QuCkFiZ2VzZWhlbiBkYXZvbiBmaW5kZSBpY2ggZGllIFF1ZXN0LCBzb3dlaXQgaWNoIGRpZSBiaXNoZXIgZ2VzcGllbHQgaGFiZSwKZWNodCBzdXBlciB1bmQgaWNoIGhhYmUgbm9jaCBrZWluZW4gZWluemlnZW4gQnVnIGdlc2VoZW4sIGRlciBkaWUgU3BpZWxiYXJrZWl0CmJlZWludHJjaHRpZ3QgaGFldHRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtyaXRpayAoR2F0c2J5LCAxMS4gRGV6IDE5OTQsIDAwOjExOjI5KToKIyEgcm49RnJhZ2dsZSBydD03ODY5Nzc4MjEKQWxzbzogaWNoIHN0ZWxsZSBtaWNoIGhpZXJtaXQgbWl0IEZyYWdnbGUgZ2VtZWluc2FtIGFuIGRlbiBQcmFuZ2VyLgpJY2ggaGFiZSBkaWUgUXVlc3QgZ2V0ZXN0ZXQgdW5kIGF1Y2ggbWl0IHZpZWwgTXVlaGUga29ycmlnaWVydC4KRGVubiBGcmFnZ2xlIGlzdCB3aXJrbGljaCBlaW4gbGViZW5kZXIgVHlwbyA7LSkpICgqZ3JpbnMgRnJhZ2dsZSopCkFiZXIgZGFzIGlzdCBqYSBuaWNodCBzbyBzY2hsaW1tLCBkZW5uIHNjaGxpZXNzbGljaCBoZWxmZW4gd2lyIHVucwphbGxlIGdlZ2Vuc2VpdGlnISBXZXIgZGllc2UgUXVlc3QgYW0gZXJzdGVuIFRlc3QtVGFnIGdlc2VoZW4gaGFldHRlLApoYWV0dGUgbmllIGdlZ2xhdWJ0LCBkYXNzIHNpZSBqZW1hbHMgYW5nZXNjaGxvc3NlbiB3ZXJkZW4ga29lbm50ZS4KV2lyIGhhYmVuIHZpZWwgZGFyYW4gZ2VhcmJlaXRldDsgYWJlciBiaXR0ZSwgaGVsZnQgdW5zIG1pdCBJZGVlbiwKc2NocmVpYnQgcmVpbiwgd2FzIHVucyBlbnRnYW5nZW4gaXN0LiBEYW5rZSEKCkdhdHNieSwgZGllIHNpY2ggbWFuY2htYWwgZnJhZ3QsIHdhcnVtIGRlciBsaWViZSBUaG9yaW4gbmljaHQKICAgICAgICBsaWViZXIgR290dCBpbiBlaW5lciBhbmRlcmVuIFdlbHQgc3BpZWx0IGFuc3RhdHQgaGllcgogICAgICAgIG51ciB6dSBrcml0aXNpZXJlbiA6KAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhZ2dsZSBxdWVzdCAoRXJvcywgMTEuIERleiAxOTk0LCAxNDoxNzowNCk6CkFsc28gamV0enQgbXVzcyBpY2ggYXVjaCBtYWwgd2FzIGRhenUgc2FnZW4uCgpJY2ggZ2ViZSBSeW5lIHJlY2h0IGluIGRlbSBQdW5rdCBkYXMgZXMgZWluZSBncm9zc2UgQW56YWhsIHZvbiBRdWVzdG9iamVrdGVuCmdpYnQuIFdlaXRlcnMgZGFzIGRpZSBIaW5laXNlIHVtIGVpbmlnZSB3aWNodGlnZSBUZWlsZSB6dSBmaW5kZW4gYWV1c3NlcnN0CmR1ZXJmdGlnIHNpbmQsIGFiZXIgZGFzIFF1ZXN0IGlzIGFuc29uc3RlbiBndXQgZHVyY2hzcGllbGJhci4KRXMgZ2lidCBlaW5pZ2Ugc2VociBsdXN0aWdlIEVsZW1lbnRlLCB1bmQgd2VyIHNpY2ggbWl0IGRlciBRdWVzdCBuYWVoZXIKYmVzY2hhZWZ0aWd0IHVuZCBldHdhcyBFaW5mdWVobHVuZ3N2ZXJtb2VnZW4gYmVzaXR6dCBoYXQgZmFzdCBrZWluZQpTY2h3aWVyaWdrZWl0ZW4gYmVpbSBMb2VzZW4uCkVpbiB3aXJrbGljaGVyIEtyaXRpa3B1bmt0IHNpbmQgbm9jaCBkaWUgU3ludGF4ZW4sIHdlbGNoZSBvZnQgbnVyIGluIGVpbmVyCmVpbnppZ2VuIEZvcm0genVtIEVyZ2VibmlzcyBmZXVocmVuOiBCZWlzcGllbDogZWluIHJvdGVyIERyYWNoZW46IHVudCBEcmFjaGUKZ2VodCBuaWNodCBzb25kZXJuIG51ciB1bnQgRHJhY2hlbi4gRGllc2VzIHNvbGx0ZSBnZW5lcmVsbCBhdWNoIGJlaSB2aWVsZW4KYW5kZXJlbiBPYmpla3RlbiBub2NoCnZlcmJlc3NlcnQgd2VyZGVuLiBEYSBkaWVzIGRvY2ggZWluZSB6dSBzcGV6aWZpc2NoZSBFaW5zY2hyYWVua3VuZyBkZXIKU3ludGF4ZW4gaXN0LgpBbnNvbnN0ZW4gZmluZGUgaWNoIGRhcyBRdWVzdCBlaW5lIEJlcmVpY2hlcnVuZywgdW5kIGVpbmUgc2VociBhbXVlc3NhbnRlCkFid2VjaHNsdW5nIHp1IGRlbiBiaXNoZXJpZ2VuIEZvcm1lbiwgaWNoIGthbm4gZXMgbnVyIGplZGVtIGVtcGZlaGxlbiBkZXIKU3Bhc3MgYW0gcXVlc3RlbiB1bmQgcnVtcmFldHNlbG4gaGF0IHVuZCBuaWNodCBkYXVlcm5kIG1ldHplbG4gd2lsbC4KCkVST1MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldldHRlbiEgKEVyb3MsIDEyLiBEZXogMTk5NCwgMDM6NTI6NTgpOgorKysrKyBESUVOU1RBRyArKysrKyBESUVOU1RBRyArKysrKyBESUVOU1RBRyArKysrKyBESUVOU1RBRyArKysrKwoKRGVyIEthbXBmIGRlciBHaWdhbnRlbiEgKioqKiogRGVyIEthbXBmIGRlciBHaWdhbnRlbiEgKioqKgoKRGVyIFdldHRwYWxhc3QgZXJvZWZmbmV0IHNlaW5lIDIuIFJ1bmRlIGltIGdyb3NzZW4gU3BpZWwgZGVyIExlaWRlbnNjaGFmdApXZXIga2FubiBkYSB3aWVkZXJzdGVoZW4uIEdld2lubmUgaW4gdHJhdW1oYWZ0ZXIgSG9laGUuIEFsbGVzIHdhcyBtYW4gc2ljaAp3dWVuc2NodCBrYW5uIHdhaHIgd2VyZGVuISEgRGVyIGVpZ2VuZSBTY2h1cHBlbnBhbnplciBkYXMgQmx1dHNhdWdlcnNjaHdlcnQKbWl0IEdlbGQga29lbm5lbiBTaWUgYWxsZXMgZXJyZWljaGVuLiBFaW4gSGF1cyBpbSBHcnVlbmVuIGZ1ZXIgZGllIFNlaGVyLAplaW5lIHVudmVyZ2xlaWNoZSBBdXNydWVzdHVuZyBmdWVyIGRpZSBTcGllbGVyIQpCZWVocmVuIFNpZSB1bnMgd2llZGVyIGFtIERJRU5TVEFHIHVtIDE4LjAwIFVociBpc3QgZXMgd2llZGVyIHNvd2VpdCEhCgpWZXJ3aXJrbGljaGVuIFNpZSBzaWNoIGRlbiBUcmF1bSBpaHJlciBGcmF1IGVuZGxpY2ggZGVuIFNjaG11Y2sgenUgc2NoZW5rZW4KZGVuIHNpZSBzY2hvbiBpbW1lciB3b2xsdGUhCgooQmV6YWhsdGUgV2VyYmVhbnplaWdlIGRlciBGaXJtYTogR2x1ZWNrc3NwaWVsZSBBRykKTWl0IGZyZXVuZGxpY2hlbiBHcnVlc3NlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUk9TCgogICAgICAgICAgICAgICAgICAgKE1hcmtldGluZ2NoZWYgdm9uIERhbmNlcikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJ1bmVuc2Nod2VydCAoRXJvcywgMTIuIERleiAxOTk0LCAwODoyOTo1Mik6CkJlaW0gUnVuZW5zY2h3ZXJ0IGJlaSBkZW4gRHVua2VsZWxmZW4gZ2lidHMgZWluZW4gR2VmYWhyLgpNYW4gbXVzcyBnYXIgbmljaHQgZGFzIFNjaHdlcnQgaW4gZGllIEhhbmQgbmVobWVuIGFsbGVpbiB3ZW5uIGVpbiBXYWVjaHRlcgp0b3QgaXN0IHVuZCBtYW4gZGVuIHp3ZWl0ZW4gbWl0IGZldWVyYmFlbGxlbiBiZWthZW1wZnQgZ2VudWVndCBlaW4genVlY2tlClNjaGVydCBkYXMgZGFzIFJ1bmVuc2Nod2VydCBleHBsb2RpZXJ0IGFsc28gdm9yc2ljaHQhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcnVlbmR1bmdzdmVyc2FtbWx1bmchISEgKEpvZiwgMTIuIERleiAxOTk0LCAxMToyMDoyMSk6CiBIZXV0ZSB1bSAxOS4wMCBpc3QgaW0gTGljaHRob2YgZGVyIE1hdGhlbWF0aWsgZGllIEdydWVuZHVuZ3N2ZXJzYW1tbHVuZwpkZXMgTUcgRm9lcmRlcnZlcmVpbnMuIEplZGVyIGlzdCBlaW5nZWxhZGVuLCBiaXR0ZSBlcnNjaGVpbnQgemFobHJlaWNoIDopCgogSm9mCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3J1ZW5kdW5nc3ZlcnNhbW1sdW5nISEhIChZZW5kaSwgMTIuIERleiAxOTk0LCAxMjoxMDozNik6CiMhIHJuPUpvZiBydD03ODcyMjc2MjEKCkZ1ZXIgYWxsZSwgZGllIHNpY2ggKG5vY2gpIG5pY2h0IGF1c2tlbm5lbjoKCkRlciBMaWNodGhvZiBpc3QgaW0gTWF0aGVpbnN0aXR1dCBpbSA2LiBTdG9jaywgTWl0dGUgZGVzIEdhbmdlcywKbGlua2UgU2VpdGUsIHZlcmdsYXN0IHdpZSBlaW4gQXF1YXJpdW0gKGRhaGVyIHdvaGwgZGVyIE5hbWUpLgoKSG9wZSB0aGlzIGhlbHBzCiAgICAgICAgICAgWVRZCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJ1bmVuc2Nod2VydCAoU3lzb3AsIDEyLiBEZXogMTk5NCwgMTI6Mjc6MzIpOgojISBybj1Fcm9zIHJ0PTc4NzIxNzM5MgpEYXMgaXN0IGRvY2ggb2ZmZW5zaWNodGxpY2ggZWluIEJJRyBCQUQgQlVHIQpWaWVsbGVpY2h0IHNvbGx0ZSBzaWNoIGRlciAoZGllKSB6dXN0YWVuZGlnZSBNYWdpZXIoaW4pCm1hbCBkYXJ1bSBrdWVtbWVybi4gTWFuIGthbm4gbnVuIG1hbCBlaW4gU2Nod2VydCBudXIgenVlY2tlbiwgd2VubiBtYW4gZXMKaW4gZGVyIEhhbmQgaGFlbHQuIFVuZCB3YXJ1bSBzb2xsdGUgZGFzIG5lYmVuIG1pciBsaWVnZW5kZQpSdW5lbnNjaHdlcnQgaG9jaGdlaGVuLCB3ZWlsIGljaCBtZWluCkVsZmVuLSBvZGVyIFNvbnN0d2Fzc2Nod2VydCB6dWVja2U/Pz8/Pz8KLS0gU3lzb3AgKGdydWViZWxuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR3J1ZW5kdW5nc3ZlcnNhbW1sdW5nISEhIChKb2YsIDEyLiBEZXogMTk5NCwgMTM6MTg6NTYpOgojISBybj1ZZW5kaSBydD03ODcyMzA2MzYKIEFjaGphLCBzb2xsdGUgZGVyIExJQ0hUSE9GIHdlZ2VuIGRlcyBncm9zc2VuIEFuZHJhbmdzIG5pY2h0IGF1c3JlaWNoZW4KKHdhcyB3aXIgYWxsZSBob2ZmZW4gOikpLCB6aWVoZW4gd2lyIGluIGRlbiBTUjYgKFJhdW0gNjAyLCBkaWUgMi4gVHVlciBhdWYKZGVyIExJTktFTiBTZWl0ZSkgdW0uCgogSm9mCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpiZXp1ZyB6dW0gQXJ0aWtlbCBSdW5lbnNjaHdlcnRlciB2b24gRXJvcyAoTXlzdGl4LCAxMy4gRGV6IDE5OTQsIDE5OjQ4OjQ0KToKSWNoIG1vZWNodGUgbWljaCBudXIgbm9jaCBtYWwgRXJvcyBXYXJudW5nIGFuc2NobGllc3Nlbi4KSWNoIHdhciB1bnRlbiBiZWkgZGVuIER1bmtlbGVsZmVuLCBiaW4gZ2x1ZWNrbGljaCBtaXQgNzAgTEUgZGEgcmF1c2dla29tbWVuIC0KZGEgc2FoIGljaCBhdWYgZGVtIFdlZyB6dSBtZWluZW0gSGF1cyBkYXMgRHJhY2hlbmJhYnkgLSB1bmQgYmVudXR6dGUgbWVpbgp6dWVja2Ugc2Nod2VydCBhbGkgLSBkYXMgaGF0IG1pY2ggcHJvbXB0IHVuZCB6dXZlcmxhZXNzaWcgZ2V0b2V0ZXQuCgpBTFNPIEFOIEFMTEUgRUxGRU4gLSBWIE8gUiBTIEkgQyBIIFQhISEhISEhISEhISEhISEhISEhIQoKTXlzdGl4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIZWlyYXQgKExvY3VsdXMsIDEzLiBEZXogMTk5NCwgMjM6MTA6MTMpOgoKICAgICAgICAgIEVzIGlzdCBwYXNzaWVydCx3YXMga29tbWVuIG11c3N0ZToKCiAgICAgICAgICAgICBJT0xBTlRIRSAmIExPQ1VMVVMgSEVJUkFURU4KCiAgICAgICAgICBXYW5uOiBNaXR0d29jaCBkZXIgMTQuMTIuIHVtIDE5LjAwCiAgICAgICAgICAgIFdvOiBLYXBlbGxlIGluIE5pYmVsaGVpbSAod28gc29uc3Q/KQoKICAgIEVpbmdlbGFkZW4gc2luZCBuYXR1ZXJsaWNoIGFsbGUsZGllIGd1dGUgTGF1bmUgbWl0YnJpbmdlbgoKCgpMb2N1bHVzLAogICBpbW1lciBub2NoIGF1ZiBkaWUgTWVsZHVuZyBob2ZmZW5kOgoKICAnRHUga2FubnN0IGRlbiBFaGVyaW5nIG5pY2h0IG1laHIgdHJhZ2VuLicgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNVQ0hFIChIb2JvLCAxNC4gRGV6IDE5OTQsIDE0OjQwOjU4KToKRGEgd2lyIGphIGpldHp0IHp1c2FtbWVuIHdvaG5lbiwgaXN0IEVJTiBDb21wdXRlciBlaW5mYWNoIHp1IHdlbmlnLiBBbHNvCmJldm9yIGplbWFuZCBzZWluZW4gYWx0ZW4gdmVyc2NoZW5rdCBvZGVyIGRlcmdsZWljaGVuIHVudmVyemVpaGxpY2hlIFNhY2hlbgpkYW1pdCBtYWNodDogRXJzdCBtYWwgdW5zIGZyYWdlbiA6KQoKV2FlciBqZWRlbmZhbGxzIG5ldHQKCiAgICAgICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU1VDSEUgKEdyaW1tYm9ybiwgMTQuIERleiAxOTk0LCAxNDo1MTo1NCk6CiMhIHJuPUhvYm8gcnQ9Nzg3NDEyNDU4CgpBbHNvLCBobW0sIGljaCBiaW4gamEgbmljaHQgc2ljaGVyLCBIb2JvLCBhYmVyIHdlciBpc3QgJ3Vucyc/IFNvbGx0ZSBkYXMgZWluCk1hamVzdGFldHNwbHVyYWwgc2VpbiBzb2xsdGVzdCBEdSBEaWNoIG1hbCBtaXQgZWluZXIgcHN5Y2hvbG9naXNjaCBnZXNjaHVsdGVuClBlcnNvbiBEZWluZXMgVmVydHJhdWVucyB1bnRlcmhhbHRlbi4KCldlbm5zIGFiZXIgbnVyIFNjaGl6b3BocmVuaWUgaXN0IGRhbm4gaXN0cyBpbiBPcmRudW5nLiBEYXMgdmVyc3RlaGVuCkdyaW1tZGVhdGggdW5kIGljaCBzZWhyIGd1dC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNVQ0hFIChIb2JvLCAxNC4gRGV6IDE5OTQsIDE1OjE4OjQyKToKIyEgcm49R3JpbW1ib3JuIHJ0PTc4NzQxMzExNAoqR1JJTU1FTCoKSWNoIHdpbGwga2VpbmVuIFBzeWNob2xvZ2VuLCBpY2ggd2lsbCAnbmVuIENvbXB1dGVyIQoKSG9ibyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU1VDSEUgKEdyaW1tYm9ybiwgMTQuIERleiAxOTk0LCAxNToyMDoyOCk6CiMhIHJuPUhvYm8gcnQ9Nzg3NDE0NzIyCgpBY2ggc28uIE5hamEsIGljaCBnbGF1YmUsIGJlaSB1bnMgenUgSGF1c2UgbGllZ3Qgbm9jaCBlaW4gWlggU3BlY3RydW0gcnVtLApkZW4ga2FubnN0IER1IHNpY2hlciBnZXJuZSBoYWJlbi4gRnVlciB1bXNvbnN0LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTVUNIRSAoRGFuY2VyLCAxNC4gRGV6IDE5OTQsIDIyOjIyOjAxKToKIyEgcm49R3JpbW1ib3JuIHJ0PTc4NzQxNDgyOApJY2ggaGFiIG5vY2ggZWluZW4gYWx0ZW4gVEktMzAuLi4uCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZXR0ZXIgZGVyIEdhbGF4aXMgKENhdHdlYXpsZSwgMTUuIERleiAxOTk0LCAwOTo0MzozNyk6CltWZXJsZWd0IHZvbiBkLmdlYmlyZ2UsIE1lZ2FyYWxmLCAxNC4gRGV6IDE5OTQsIDE4OjQyOjEyXToKSGFsbG8gaWNoIGZvcmRlcmUgYWxsZSBTcGllbGVyIGF1Ziwgc2NobGllc3N0IGV1Y2ggZGVuIFJldHRlcm4gZGVyIEdhbGF4aXMgYW4uCkRpZSBSZXR0ZXIgZGVyIEdhbGF4aXMgc2luZCBlaW4gZ2FyYW50aWVydCB1bmVpZ2VudWV0emlnZXIgVmVyZWluLCBkZXIgc2ljaApzZWluZW4gcGVyc29lbmxpY2hlbiBaaWVsZW4gb2huZSBqZWdsaWNoZSBHZXdhbHQgd2l0dG1ldC4KClVlYnJpZ2VucyBzaWUga29lbm5lbiBpaHJlbiBNaXR0Z2xpZWRlcmJlaXRyYWcgdm9uIGRlciBTdGV1ZXIgYWJzZXR6ZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBTVUNIRSAoSGFyZGlsLCAxNS4gRGV6IDE5OTQsIDEzOjEzOjU5KToKIyEgcm49RGFuY2VyIHJ0PTc4NzQ0MDEyMQpIbW0sIGRhIGZhZWxsdCBtaXIgbWVpbiB1cmFsdGVyIFRJIDQtOTkgQSBlaW4uCk9iIGRlciBEaXIgd2VpdGVyaGlsZnQgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU1VDSEUgKEFzbW9kaXMsIDE1LiBEZXogMTk5NCwgMTM6NTY6NTUpOgojISBybj1EYW5jZXIgcnQ9Nzg3NDQwMTIxCkhtbSwgaXJnZW5kd28gaW0gS2VsbGVyIG11c3Mgc2ljaCBub2NoIGVpbiBDLTE2IGhlcnVtbHVlbW1lbG4gOikKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaWFvLCBBc21vZGlzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcm9oZSBXZWlobmFjaHRlbiAoQXJhbnlhLCAxOS4gRGV6IDE5OTQsIDE2OjI1OjAyKToKTGllYmUgTVVEZGVyIQoKRGllIEZyZXVuZGxpY2hrZWl0c3Zlcm1pdHRsdW5nc3N0ZWxsZSBBcmFueWFGcmV1bmRsaWNoIEdtYkggJiBDby5LRyBiZWVocnQKc2ljaCwgSWhuZW4gdW5kIGFsbGVuIElocmVuIEZyZXVuZGVuIGluIGFuZGVyZW4gTVVEcyBmcm9oZSBXZWlobmFjaHRlbiB1bmQKZWluIGdsdWVja2xpY2hlcyBOZXVlcyBKYWhyIHp1IHd1ZW5zY2hlbi4gRGllIEFGRyBibGVpYnQgdWViZXIgZGllIEZlaWVydGEtCmdlIGdlc2NobG9zc2VuLiBCaXR0ZSB2ZXJtaXR0ZWx0IGRpZSBGcmV1bmRsaWNoa2VpdGVuIHNlbGJzdC4KCk1pdCBkZW4gRnJldW5kbGljaGVuIEdydWVzc2VuLCBmdWVyIGRpZSB1bnNlciBIYXVzIGJla2FubnQgaXN0OgoKQXJhbnlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKdWJpbGFldW0gKENhdHdlYXpsZSwgMjAuIERleiAxOTk0LCAwMDoxNDoyMCk6CkhpIQpJY2ggbW9lY2h0ZSBFdWNoIGF1ZiBlaW4gYmVzb25kZXJlcyBEYXR1bSBoaW53ZWlzZW4sIHVuZCB6d2FyIGF1ZiBkZW4KaGV1dGlnZW4gVGFnLiBFcyBpc3QgdGF0c2FlY2hsaWNoIHNvLCBkYXMgdW5zZXIgZ2VtZWluc2FtZXMgTXVkCidNb3JnZW5HcmF1ZW4nIEVJTlRBVVNFTkQgVGFnZSBhbHQgZ2V3b3JkZW4gaXN0LiBXZXJzIG5pY2h0IGdsYXVidAp1ZWJlcnpldWdlIHNpY2ggYml0dGUgYW4gZGVyIEtvbnRyb2xsdGFmZWwgaW0gTWFnaWVya29udHJvbGx6ZW50cnVtCipraWNoZXIqLgpHcmF0dWxhdGlvbmVuIGR1ZXJmZW4gYXVzZ2VzcHJvY2hlbiB3ZXJkZW4gOi0pCllvdXJzIHRydWx5LAogICAgICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHUkFUUyEgKERhbmNlciwgMjAuIERleiAxOTk0LCAwMDoxNDo0OCk6CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqIEFsbGUgTWl0YXJiZWl0ZXIgdm9tIEx1Y2t5IFRpZ2VyJ3MgV2V0dHBhbGFzdCAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgd3VlbnNjaGVuICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgIHVuc2VyZW0gZ2VsaWVidGVtIE1vcmdlbkdyYXVlbiAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICBBbGxlcyBHdXRlIHVuZCBMaWViZSB6dW0gICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgIDEwMDAuIEdlYnVydHN0YWchISEgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgUG9ydCBWYWluLCAyMC4xMi4xOTk0ICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR1JBVFMhIChBc21vZGlzLCAyMC4gRGV6IDE5OTQsIDAwOjE5OjE1KToKIyEgcm49RGFuY2VyIHJ0PTc4Nzg3ODg4OApIZXJ6bGljaGVuIEdsdWVja3d1bnNjaCB6dW0gVGF1c2VuZHRhZWdpZ2VuLCBtZWluIGxpZWJlcyBNb3JnZW5ncmF1ZW4gdW5kCiAgICAgICAgICAgICBGcm9oZSBXZWlobmFjaHRlbiB1bmQgZWluIHNjaG9lbmVzIG5ldWVzIEphaHIgIQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX18vXF9fCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC9cfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKCApJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICkiIiIiJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmJiYmKCApIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYmKCApIiIiIiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIiIiYmJiYmKCApJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYmIiIiIiIiIiYmKCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCApJiYmJiYmJiYmJiIiIiIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmJiYmKCApIiIiIiImJiYoICkmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICggKSYmIiIiIiIiJiYoICkmJiYmJiYmJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIoICkmJiYmJiYoICkmJiYmKCApJgogICAgICAgICAgICAgICAgICAgICAgICAgICggKSYmJiIiIiIiIiIiIiYmJiYmJiYoICkmJgogICAgICAgICAgICAgICAgICAgICAgICAmJiYmJiggKSYmJiYmJiYmIiIiIiIiIiYmJiYmKCApCiAgICAgICAgICAgICAgICAgICAvXF9fXy9cICYoICkmJiYmJiYmJiggKSYmJiYmJiYiIiImJiYmJiYKICAgICAgICAgICAgICAgICAgIHwgbyBvIHwgKSYmJiYmKCApJiYmJiIiIiIiIl9fX1x8L19fXyYmJiYmJgogICAgICAgICAgICAgICAgICBfX1xfXl8vX18gIF9fX1x8L19fXyAmJiYmJiB8ICAgfHx8ICAgfCYiIiYmJgogICAgICAgICAgICAgICAgIChfXy8gICBcX18pfCAgIHx8fCAgIHwgICBfX1x8L19ffHx8ICBffF9fX1x8L19fX19fCiAgICAgICAgICAgICAgICAgIF98ICAuICB8XyB8X19ffHx8X19ffCAgfF9ffHx8X198fHxffCAgICAgfHx8ICAgICB8CiAgICAgICAgICAgICAgICAgKF9fXF9fXy9fXykgICAgICAgICAgICAgICAgICAgICAgICAgfF9fX19ffHx8X19fX198CgoKd3VlbnNjaHQgZGlyIEFzbW9kaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR1JBVFMhIChMb2NvLCAyMC4gRGV6IDE5OTQsIDE0OjA3OjIyKToKIyEgcm49QXNtb2RpcyBydD03ODc4NzkxNTUKLC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4KfCAgIEVzIGdyYXR1bGllcmVuIHJlY2h0IGhlcnpsaWNoIGRpZSAgIHwKfCAgICAgIHRlY2huaXNjaGVuIEFidGVpbHVuZ2VuIGRlcyAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgTW9yZ2VuZ3JhdWVuIFBvc3RtaW5pc3Rlcml1bXMgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICB1bmQgZGVyICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgIE1vcmdlbmdyYXVlbiBQcmVzc2UtQWdlbnR1ciAobXBhKSAgIHwKYC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvbXBpIGZ1ZXIgSG9iZ28gKEVscmljLCAyMC4gRGV6IDE5OTQsIDE1OjAyOjUzKToKSWNoIGtvZW5udGUgYW4gJ25lbiBTQ0hFSURFUiBDUEMgNDY0ICdyYW5rb21tZW4uLi4uIHdlbm4gZGFzIGhpbGZ0ID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdSQVRTISAoRHVyaWFuLCAyMC4gRGV6IDE5OTQsIDE1OjQ3OjUzKToKLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgQXVjaCAgd2lyICBtb2VjaHRlbiAgdW5zZXJlbSBnZWxpZWJ0ZW4gIHwKfCAgTW9yZ2VuR3JhdWVuIGRpZSBiZXN0ZW4gR2x1ZWNrd3VlbnNjaGUgIHwKfCAgdW5kIHVuc2VyZSBIb2NoYWNodHVuZyB6dW0gICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgLS0tPiAgICBUQVVTRU5EVEFFR0lHRU4gICAgPC0tLSAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgYXVzc3ByZWNoZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgRXVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgTW9yZ2VuR3JhdWVuQXJlbmFCZXRyZWliZXJHZXNlbGxzY2hhZnQgIHwKfCAgICAgICAgICAgICAgICAqIE1HQUJHICogICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgVW5kICBhbGxlbiAgU3BpZWxlcm4gd3VlbnNjaGVuIHdpciBlaW4gIHwKfCAgc2Nob2VuZXMsICBmcmllZGxpY2hlcyAgV2VpaG5hY2h0c2Zlc3QgIHwKfCAgdW5kIGVpbmVuIGd1dGVuIFJ1dHNjaCBuYWNoIDE5OTUhICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKXC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0YW1tdGlzY2ggKENhdHdlYXpsZSwgMjEuIERleiAxOTk0LCAwOTozNDozNSk6CkhpIQpJY2ggbW9lY2h0ZSBudXIga3VyeiBiZWthbm50IGdlYmVuLCBkYXMgYXVjaCBhbSBEaWVuc3RhZyB6d2lzY2hlbiBkZW4KRmVpZXJ0YWdlbiwgYWxzbyBhbSAyNy4xMi4gZGVyIFN0YW1tdGlzY2ggc3RhdHRmaW5kZW4gd2lyZC4gSWhyIHNlaWQKYWxsZSBoZXJ6bGljaCBlaW5nZWxhZGVuIQpZb3VycyB0cnVseSwKICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJvaGVzIEZlc3QgKEdhdHNieSwgMjMuIERleiAxOTk0LCAxNjoxMjozNSk6CgpXaXIsIGRpZSBHJkcgQ29tcGFueSBhdXMgZGVtICdSZWFrdG9yJyBiZWkgS0EsIHd1ZW5zY2hlbiBhbGxlbgpNaXRzcGllbGVybiB1bmQgLW1hZ2llcm4KCiAgICAgICAgICAgICAgRUlOIEVSSE9MU0FNRVMgVU5EIEZST0hFUyBXRUlITkFDSFRTRkVTVAoKdW5kIG5hdHVlcmxpY2gKCiAgICAgICAgICAgICAgRUlOIFJBVVNDSEVOREVTLCBTQ0hMQUZMT1NFUywgTFVTVElHRVMsIFFVSVJMSUdFUwogICAgICAgICAgICAgIFVORCBIT0ZGRU5UTElDSCBVTlZFUkdFU1NMSUNIRVMgRkVJRVJOIElOIERBUyBORVVFIEpBSFIhCgpCbGVpYnQgc28gd2llIElociBzZWlkIQoKZ2V6ZWljaG5ldDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdXlicnVzaCAmIEdhdHNieQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdydWVzc2UhIChLcmV0ZWssIDI0LiBEZXogMTk5NCwgMjA6MjE6MTApOgpIYWxsbywgbGllYmUgTWl0TVVEZGVySW5uZW4hCgpBdXMgZ2VnZWJlbmVtIEFubGFzcyAoaGV1dGUgaXN0IFdlaWhuYWNodGVuISkgRXVjaCBhbGxlbiBzY2hvZW5lIEZlaWVydGFnZQp1bmQgJ25lbiBndXRlbiBSdXRzY2ggaW4ncyBOZXVlIEphaHIgMTk5NSEKVmVybXV0bGljaCB3aXJkJ3MgaW4gbmFlY2hzdGVyIFplaXQgLSBmZXJpZW5iZWRpbmd0IC0gaGllciBkb2NoIGVpbgpiaXNzY2hlbiBsZWVyZXIgc2VpbiBhbHMgc29uc3Q7IGljaCBtdXNzIG1pY2ggYXVjaAplaW4gYmlzc2NoZW4gcmFyIG1hY2hlbi4uLgpBbnNvbnN0ZW46IEljaCBzZWggRXVjaCBhbGxlIHdpZWRlciBpbSBuYWVjaHN0ZW4gSmFociwKaGllciBpbSBNb3JnZW5HcmF1ZW4sIHdvIGRpZSBTb25uZSBuaWUgdW50ZXJnZWh0ISA7LSkKClRzY2h1ZXNzaSwKbWl0ICduZW0gZGlja2VuICJjIHUgbDhlciIsCgpLcmV0ZWssIGRlciBhZ25vc3Rpc2NoZSBQcm9waGV0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5ob2VybmVyIGdlc3VjaHQhIChTdG9mZmVsLCAyNi4gRGV6IDE5OTQsIDEyOjU2OjExKToKU2VpZCBnZWdydWVzc3QgQWJlbnRldXJlciEKU2VpZCBKYWhyZW4gYmluIGljaCBzY2hvbiBhdWYgZGVyIFN1Y2hlIG5hY2ggZGVuIEdsdWVja2JyaW5nZW5kZW4KRWluaG9lcm5lcm4uClZpZWxlIFdlbHRlbiBoYWJlIGljaCBkdXJjaHN0cmlmZmVuIGF1ZiBkZXIgU3VjaGUgbmFjaCBpaG5lbi4gSWNoIGJpbiBudW4KZHVyY2ggZWluIERpbWVuc2lvbnN0b3IgaW4gZGllc2UgV2VsdCBnZWxhbmd0IHVuZCBob2ZmZSBoaWVyIGVuZGxpY2gKZnVlbmRpZyB6dSB3ZXJkZW4uIEZhbGxzIGlyZ2VuZGplbWFuZCBlaW5lbiBIaW53ZWlzIGF1ZiBkaWUgRXhpc3Rlbnogdm9uIEVpbi0KaG9lcm5lcm4gaW4gZGllc2VyIFdlbHQgKE1laW5lIE5hY2hmb3JzY2h1bmdlbiBzYWdlbiBtaXIsIGlociBOYW1lIHNlaQoiTW9yZ2VuZ3JhdWVuIikgaGF0LCBiaXR0ZSBpY2ggaWhuIHNpY2ggbW9lZ2xpY2hzdCBzY2huZWxsIG1pdCBtaXIgaW4KVmVyYmluZHVuZyB6dSBzZXR6ZW4uIE1laW5lIE1pdHRlbCBzaW5kIG5pY2h0IGdyb3NzLCBhYmVyIGVpbmUgQmVsb2hudW5nIHNlaQpkZW0tIG9kZXIgZGVyamVuaWdlbiBHZXdpc3MuCgpNaXQgZnJldW5kbGljaGVuIEdydWVzc2VuIHZlcmJsZWlidDoKICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9mZmVsLCBkZXIgRWluaG9ybmphZWdlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmU6c3RvZmZlbCAoRWxyaWMsIDI4LiBEZXogMTk5NCwgMjA6NDY6NDgpOgpEYXMgaGVpc3N0ICJkdXJjaHN0cmVpZnQiLgoKU0VORiBPRkYKCiAgICAgIEVscmljCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNRkcgbmFjaCBGcmFua2Z1cnQgKFllbmRpLCAyOS4gRGV6IDE5OTQsIDEzOjI0OjQyKToKClNhbHZldGUhCkljaCBoYWJlIGVpZ2VudGxpY2ggdm9yLCBtaWNoIGFtIEZyZWl0YWcgKGFsc28gX21vcmdlbl8hKSBtaXQgZWluIHBhYXIgTGV1dGVuCmluIEJBRCBIT01CVVJHIHp1IHRyZWZmZW4gdW5kIFN5bHZlc3RlciB6dSBmZWllcm4uIExlaWRlciBoYWJlIGljaCBiaXMgamV0enQKbm9jaCBrZWluZW4gU2NoaW1tZXIsIHdpZSBpY2ggbWljaCwgU2NobGFmc2FjayB1bmQgWmFobmJ1ZXJzdGUgdW5kIGV0d2EKMC41IG1eMyBTcGllbGUgZ2VuIFN1ZWRlbiBzY2hhZmZlbiBzb2xsLi4uIDooCgpBbHNvOiBXZXIgZmFlaHJ0IGFtIEZyZWl0YWcgZnJ1ZWggUmljaHR1bmcgRnJhbmtmdXJ0IChiZXNzZXIgbm9jaDogZGlyZWt0Cm5hY2gKQmFkIEhvbWJ1cmcpIHVuZCBoYXQgc28gMi0zIFBsYWV0emUgaW0gV2FnZW4gZnJlaT8KCiAgICAgICAgICAgICAgICAgICAgIHdpZGVyIGFsbGUgVmVybnVuZnQgaG9mZmVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWWVuZGkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmYW50YXN5LW1pbmlhdHVyZW4gKERpb24sICAxLiBKYW4gMTk5NSwgMjM6MjY6MTgpOgphbHNvLCBkYXMgaXN0IG1laW4gYWxsbGxsZXIgZXJzdGVyIGFydGlrZWwgaW4gZGVyIG1wYSwgZXZlbnR1ZWxsZSBmZWhsZXIKYml0dGUgaWNoIGRhaGVyIHp1IGVudHNjaHVsZGlnZW4gKG9id29obCBtaXIgZGVyIGVkaXRvciBpcmdlbmR3aWUgdmVydHJhdXQKdm9ya29tbXQsIGlzdCB3b2hsIGRlciBnbGVpY2hlIHdpZSBpbiBkZXIgcG9zdCwgb2RlcikuCmVpbmVuIGZvcm1hdGllcnRlbiB0ZXh0IGVyd2FydGV0IGlociBiZXNzZXIgbmljaHQsIGVzIHNlaSBkZW5uLCBkZXIgZWQgbWFjaHQKZGFzIHZvbiBzZWxic3QuLi46KQp3b3J1bSBnZWh0IGVzPwpnYW56IGVpbmZhY2ghIGljaCBtb2VjaHRlIGdlcm5lIGZhbnRhc3ktbWluaWF0dXJlbiB0YXVzY2hlbi4gaWhyIHdpc3R0IHNjaG9uLApkaWUgZGluZ2VyLCBkaWUgYmVpIGRlciBjbGF5bW9yZSBzYWdhLCBoZXJvLXF1ZXN0LCBldGMuLi4uZGFiZWkgc2luZC4gc28Ka2xlaW5lLCBuaWVkbGljaGUgcGxhc3Rpa2ZpZ3VyZW4sIGRpZSBhbmdlbWFsdCBub2NoIGJlc3NlciBhdXNzZWhlbi4Kd2VyIHNvbGNoZSBkaW5nZXIgaGF0IHVuZCBtaXQgbWlyIHRhdXNjaGVuIG1vZWNodGUsIHdlaWwgd2FocnNjaGVpbmxpY2ggYXVjaAplaW4gcGFhciBkb3BwbGV0ZSBleGVtcGxhcmUgZGFiZWkgc2luZCwgZGVyIHNvbGwgc2ljaCB2ZXJ0cmF1ZW5zdm9sbCBhbiBtaWNoCndlbmRlbiB1bmQgbWlyIGVpbmUgcG9zdCBzY2hpY2tlbi4gZGllIHdpcmQgZGFubiB1bWdlaGVuZCBiZWFudHdvcnRldCwKdmVyc3Byb2NoZW4uCmRldGFpbHMgenUgZGVuIGZpZ3VyZW4gdW5kIHRhdXNjaG1vZGFsaXRhZXRlbiBtb2VjaHRlIGljaCBlYmVuZmFsbHMgYXVmCmRpZXNlbSB3ZWdlIChwb3N0KSBrbGFlcmVuLgppbiBkZXIgaG9mZm51bmcgYXVmIHJlZ2VzIGludGVyZXNzZSB1bmQgaGVmdGlnZSByZWFrdGlvbmVuLi4uLi5EaW9uLi4uOikKCnAucy46IHNvbGx0ZSBkZXIgYXJ0aWtlbCBpbiBkaWVzZXIgcnVicmlrIG5pY2h0IGFuIGRlciByaWNodGlnZW4gc3RlbGxlIHNlaW4sCm1vZWdlIG1hbiBtaWNoIGVpbmVzIGJlc3NlcmVuIGJlbGVocmVuLi4uOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW5ob2VybmVyIGdlc3VjaHQhIChHcmltbWJvcm4sICAyLiBKYW4gMTk5NSwgMTE6MzE6MzEpOgojISBybj1TdG9mZmVsIHJ0PTc4ODQ0Mjk3MQpUamEsIEVpbmhvZXJuZXIgaGF0cyBoaWVyIG5hdHVlcmxpY2guCk9iIER1IGRhbm5uIGFsbGVyZGluZ3MgZGllIEhleGVycXVlc3QgdWViZXJsZWJzdCBpc3QgZWluZSBhbmRlcmUgRnJhZ2UuLi4gOy0pCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpV2ktam9iIGluIFR1ZWJpbmdlbiEgKEJhbnphaSwgIDMuIEphbiAxOTk1LCAxODo1NzozMSk6CkhpZXIgd2FzIGludGVyZXNzYW50ZXMgZnVlciBkaWUgVHVlYmluZ2VyIG11ZGRpZXM6CgpEaWUganVyaXN0aXNjaGUgRmFrdWx0YWV0IGRlciBVbml2ZXJzaXRhZXQgVHVlYmluZ2VuIHN1Y2h0IGVpbmVuCnp1dmVybGFlc3NpZ2VuIEhpd2ksIGRlciBkZW4gQXVmYmF1IGRlcyBXV1cvTW9zYWljIHVlYmVybmltbXQuCkRhenUgZ2Vob2VyZW4gZGFzIEVpbnJpY2h0ZW4gZGVyIGh0dHAgZGFlbW9ucywgc293aWUgZGFzIEVyc3RlbGxlbgpkZXIgb2ZmaXppZWxsZW4gU2VpdGVuLiBBbnNwcmVjaHBhcnRuZXIgaXN0IEhlcnIgR2VyYmxpbmdlciwKTGVocnN0dWhsIEhhZnQsIE5ldWUgQXVsYSwgVGVsLiAyOS00MzUyLgoKQ2lhbywKICAgQmFuemFpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCSUVURSA0NSBxdWFkcmF0bWV0ZXIgQXBwYXJ0ZW1lbnQgaW4gTXVlbnN0ZXIgKEtsaW5nZSwgIDQuIEphbiAxOTk1LCAxNjozODowMik6CkFiIEFuZmFuZyBGZWJydWFyIGlzdCBpbiBNUyBlaW4gNDVlciBBcHAuIGZyZWkuClp1IHZlcm1pZXRlbiBqZXdlaWxzIFNlbWVzdGVyIG9kZXIgSmFocmVzd2Vpc2UuCjY2MCwtRE0gV0FSTS4KTWl0IGVpbmdlcmljaHRldGVyIEt1ZWNoZSwgU2NobGFmemltbWVyLCBCYWQgdW5kIEJhbGtvbi4KRGFzIEFwcGFydGVtZW50IGlzdCBUZWlsbW9lYmxpZXJ0LgpJbnRlcmVzc2llcnRlIHdlbmRlbiBzaWNoIGJpdHRlIEJBTERJR1NUIGFuIEtMSU5HRSBoaWVyIGltIE1HLCBwZXIgTWFpbApvZGVyIHBlciBub3JtYWxlciBFLU1haWwgYW4gYnVzbWFubkB1bmktbXVlbnN0ZXIuZGUKb2RlciB0ZWxlZm9uaXNjaCBhbiA6IDAyMzEvMTM0MjMwIChBbnJ1ZmJlYW50d29ydGVyKQpXZW5uIHNpY2ggYmlzIHp1bSAxMHRlbiBrZWluZXIgZ2VtZWxkZXQgaGF0ICwgZ2VodHMgZXh0ZXJuIHdlZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZFUkxPQlVORyBBYmVuZHN0ZXJuIC0gU2xhc2hlciAoU2xhc2hlciwgMTIuIEphbiAxOTk1LCAxMzo0MzowNik6CkhpZXJtaXQgZXJsYXViZW4gd2lyIHVucyBiZWthbm50enVnZWJlbiwgZGFzcyB3aXIgYW0gTWl0dHdvY2gsIGRlbQoxMi4gSmFudWFyIGltIFNjaGxvc3MgZGVzIFBldHJvc2lsaXVzIFp3YWNrZWxtYW5uIHp1ZWluYW5kZXJnZWZ1bmRlbgpoYWJlbi4KRGVyIFRlcm1pbiB1bnNlcmVyIEhlaXJhdCB3aXJkIG5vY2ggcmVjaHR6ZWl0aWcgYmVrYW5udGdlZ2ViZW4uCgogICBBYmVuZHN0ZXJuICYgU2xhc2hlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFByZWlzcmFldHNlbCAoSGF3aywgMTIuIEphbiAxOTk1LCAyMTo0NDo1Nik6ClVwcy4gTm9yd2VnaWFuIHdvb2RzIHdhciBhdWNoIGRhYmVpLiAoZ2lidCdzIGVpbiB0b2xsZXMgSW5zdHJ1bWVuYWwgZGF6dS4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIIE8gQyBIIFogRSBJIFQgISAoQW5hdG9sLCAxMy4gSmFuIDE5OTUsIDAwOjM5OjUzKToKCgogICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICsgICAgICAgICAgICAgICAgICAgICAgIEggTyBDIEggWiBFIEkgVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgIHwgICAgICAgICAgV2lyIGhhYmVuIHVucyBsYW5nZSBiZXNjaG51cHBlcnQgdW5kIGdlcHJ1ZWZ0Li4uICAgICAgICAgfAogICArICAgICAgICAgICAgLi4udW5kIHVuc3JlIE1laW51bmcgbmljaHQgZ2VhZW5kZXJ0ISAgICAgICAgICAgICAgICAgICsKICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICsgICAgICAgICAgICAgICAgICAgIEpldHp0IHNvbGwgZXMgc293ZWl0IHNlaW4hICAgICAgICAgICAgICAgICAgICAgKwogICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgIHwgICAgICAgICAgICAgICAgICAgICAgWkVQSFlSICAmICAgQU5BVE9MICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICsgICAgICAgICAgd2VyZGVuIGFtIEZyZWl0YWcsIGRlbSAxMyBKYW51YXIsIHVtIDE3LjAwIFVociBzLnQuICAgICAgKwogICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgKyAgICAgICAgICAgICAgICAgICAgICAgICBoIGUgaSByIGEgdCBlIG4gISAgICAgICAgICAgICAgICAgICAgICAgICArCiAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICArICAgICAgICAgICAgICAgICAgIFVuZCBEVSBiaXN0IGRhenUgZWluZ2VsYWRlbiEgICAgICAgICAgICAgICAgICAgICsKICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwoKRXMgc29sbCBzaWNoIHVlYnJpZ2VucyB1bSBlaW5lIERvcHBlbGhvY2h6ZWl0IGhhbmRlbG4uIERlciBPcnQgZGVzIFZvbGx6dWdzCndpcmQgbm9jaCByZWNoemVpdGlnIG9lZmZlbnRsaWNoIGdlbWFjaHQgd2VyZGVuISBLT01NRVQgSU4gU0NIQVJFTiEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMdWNreSBUaWdlcidzIEFua3VlbmRpZ3VuZ2VuIDAxLzk0IChEYW5jZXIsIDE0LiBKYW4gMTk5NSwgMTU6MTA6MTkpOgoKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCnw6Ljo6Li46OjouLjo6IF9fX19fX19fX19fX19fX19fX19fX19fIDo6LjouLi46OjouLjoufAp8Ojo6OjouOmAuX19fX3wgICAgICAgICAgICAgICAgICAgICAgIHxfX19fLCcgIC4nOjs6OnwKfC46Oi46LmAuIFwgICB8ICAgICBMVUNLWSBUSUdFUidTICAgICB8ICAgLyAsJywuOi46Ojp8Cnw6Oi4gLSAtLSAgPiAgfF9fX19fX19fX19fX19fX19fX19fX19ffCAgPCAgLS0gLSAuLjoufAp8Oi46Oi46LCcgL19fX19fX18pfn5+fn5+fn5+fn5+fn5+KF9fX19fX19cIGAuOjo6Oi46LnwKfC4uLjo6LjouIH5+fn5+fn5+ICAgICAgICAgICAgICAgICB+fn5+fn5+fiA6Ojo6Li4uOi58Cnw6LjouLi4uOjo6Oi4uLi46OjogQU5LVUVORElHVU5HIDo6OjouLi46Ojo6Oi4uLjo6Ojo6fAp8Li4uOjo6OjouLjo6Oi4uOjouID09PT09PT09PT09PSAuOjo6OjouLi46Ojo6Oi4uLjo6OnwKfDo6Ojo6Li4uLjo6Ojo6Li46Oi4uLi4uLi4uLi4uLi4uOjo6Oi4uOjo6Oi4uOjo6OjouOjp8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFNlaHIgZ2VlaHJ0ZSBEYW1lbiB1bmQgSGVycmVuLCAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIDQwIFRhZ2UgaGF0IGRlciBXZXR0cGFsYXN0IEx1Y2t5IFRpZ2VyJ3MgaW4gUG9ydCAgfAp8IFZhaW4gbnVuIGJlcmVpdHMgc2VpbmUgUGZvcnRlbiBnZW9lZmZuZXQuICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIEluIGRpZXNlciBaZWl0IHd1cmRlbiAzIE1pbGxpb25lbiBNdWVuemVuIGR1cmNoICAgfAp8IFdldHRhYnNjaGx1ZXNzZSB1bmQgVi5JLlAuLUVpbm5haG1lbiBlaW5nZW5vbW1lbiwgIHwKfCBkYWZ1ZXIgbW9lY2h0ZW4gd2lyIHVucyBhdWYgZGFzIEhlcnpsaWNoc3RlIGJlaSAgICB8CnwgdW5zZXJlbiBLdW5kZW4gYmVkYW5rZW4uIERpZXNlIHVuZXJ3YXJ0ZXQgaG9oZW4gICAgfAp8IEVpbm5haG1lbiBoYWJlbiBlcyBtaXIgbW9lZ2xpY2ggZ2VtYWNodCwgZmFlaGlnZSAgIHwKfCBBcmNoaXRla3RlbiBhdXMgYWxsZXIgSGVycmVuIExhZW5kZXIgenUgYmVhdWYtICAgICB8CnwgdHJhZ2VuLCBpaHJlIFBsYW51bmdzdm9yc2NobGFlZ2UgZnVlciB3ZWl0ZXJlICAgICAgfAp8IEF0dHJha3Rpb25lbiBlaW56dXJlaWNoZW4uIFZvbiBkZW4gYXVzZ2V3ZXJ0ZXRlbiAgIHwKfCBJZGVlbiB3YXJlbiBlaW5pZ2Ugc28gZ3V0LCBkYXNzIHNpZSBzb2ZvcnQgaW4gICAgICB8CnwgQW5ncmlmZiBnZW5vbW1lbiB3dXJkZW4gdW5kIHp1bSBncm9lc3N0ZW4gVGVpbCBiZS0gfAp8IHJlaXRzIGZlcnRpZ2dlc3RlbGx0IHNpbmQuICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIFVtIGRlbiBob2NoZ2VzdGVja3RlbiBTdGFuZGFyZCB1bnNlcmVzIEhhdXNlcyAgICAgfAp8IGF1ZnJlY2h0IGVyaGFsdGVuIHp1IGtvZW5uZW4sIHdlcmRlbiBkaWVzZSBFaW4tICAgIHwKfCByaWNodHVuZ2VuIGluIGRlciBmb2xnZW5kZW4gWmVpdCBhdWYgSGVyeiB1bmQgICAgICB8CnwgTmllcmVuIGdlcHJ1ZWZ0IHdlcmRlbi4gRGFoZXIga2FubiBlcyBkZXMgb2VmdGVyZW4gfAp8IGRhenUga29tbWVuLCBkYXNzIGRlciBXZXR0cGFsYXN0IGF1cyBTaWNoZXJoZWl0cy0gIHwKfCBncnVlbmRlbiB6ZWl0d2Vpc2UgZ2VzY2hsb3NzZW4gYmxlaWJlbiBtdXNzLCBkaWUgICB8CnwgV2V0dGthbXBmdmVyYW5zdGFsdHVuZyB2b20gMjQuMDEuMTk5NSBlbnRmYWVsbHQuICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgRGllIG5ldWVuIEF0dHJha3Rpb25lbiBpbSBEZXRhaWw6ICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDEuIEluZGl2aWR1ZWxsZSBIb2NoemVpdGVuLCBpbiBkZW5lbiBTaWUgbmljaHQgbnVyIHwKfCAgICBkYXMgU3plbmFyaW8gYXVzd2FlaGxlbiBrb2VubmVuLCBzb25kZXJuIGF1Y2ggICB8CnwgICAgc2FlbXRsaWNoZSBFeHRyYXMsIEdyb2Vzc2UsIFplaXRwdW5rdCB1bmQgICAgICAgfAp8ICAgIChLb3N0ZW4tKUF1c21hc3MuIE9iIEhvY2h6ZWl0IG9kZXIgRG9wcGVsLSAgICAgIHwKfCAgICBob2NoemVpdCwgZ2xlaWNoZ2VzY2hsZWNodGxpY2hlIFZlcm1hZWhsdW5nICAgICB8CnwgICAgb2RlciBTY2hlaWR1bmcsIGRhcyBhbGxlcyB3aXJkIGZ1ZXIgU2llIG1vZWctICAgfAp8ICAgIGxpY2ggc2Vpbi4gQmVzdWNoZW4gU2llIHVuc2VyZW4gZ2VzY2hhZWZ0aWdlbiAgIHwKfCAgICBJcnJ3aXNjaC4gRGllc2VyIG5hdHVyYmVnYWJ0ZSBIb2NoemVpdHNiZXJhdGVyICB8CnwgICAgd2lyZCBtaXQgSWhuZW4gSWhyZSBnYW56IHBlcnNvZW5saWNoIFRyYXVtaG9jaC0gfAp8ICAgIHplaXQgYXVzYXJiZWl0ZW4uIE9kZXIgb3JnYW5pc2llcmVuIFNpZSBlaW4tICAgIHwKfCAgICBmYWNoIGVpbmUgSG9jaHplaXQgZnVlciBJaHJlbiBiZXNzdGVuIEZyZXVuZCwgICB8CnwgICAgdW5kIHNjaGVua2VuIFNpZSBpaG0gYXVmIGRpZXNlIFdlaXNlIGVpbiBnYW56ICAgfAp8ICAgIGJlc29uZGVyZXMgR2VzY2hlbmshICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICBWZXJmdWVnYmFyIGFiIDEuIEZlYnJ1YXIgMTk5NS4gICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDIuIERpZSBEdWVzdGVya2F0YWtvbWJlbi4gRGllIHVsdGltYXRpdmUgdW5kIHZvbGwgIHwKfCAgICBsaXplbnNpZXJ0ZSBLYW1wZmFyZW5hIGZ1ZXIgU3BpZWxlciwgd2VsY2hlIGRpZSB8CnwgICAgQW5mb3JkZXJ1bmdlbiBlcmZ1ZWxsZW4gKG1pbmRlc3RlbnMgTGV2ZWwgMTUsICAgfAp8ICAgIEFyZW5hcXVlc3QgYWxzIEthbXBmdWVidW5nIG11c3MgZ2Vsb2VzdCBzZWluLikgIHwKfCAgICBBdWYgZWluZW0gQXJlYWwgdm9uIDMwMCB2ZXJ6d2lja3QgdmVyendlaWd0ZW4gICB8CnwgICAgdW5kIHJhZmZpbmllcnQgaW5laW5hbmRlci0gdW5kIHVtZWluYW5kZXIgZ2UtICAgfAp8ICAgIGJhdXRlbiBSYWV1bWVuIGtvZW5uZW4gc2ljaCBTcGllbGVyIGphZ2VuLCAgICAgIHwKfCAgICBhbmdyZWlmZW4gdW5kIHRvZXRlbiAoISksIGRpZSBkYXMgc2Nob24gaW1tZXIgICB8CnwgICAgZWlubWFsIG1hY2hlbiB3b2xsdGVuLiBOaWNodCBzdHVwaWRlIFBydWVnZWxlaSwgfAp8ICAgIGRpZSBudXIgdm9uIGRlbiBTdGF0cyBhYmhhZW5naWcgaXN0LCB6YWVobHQgICAgIHwKfCAgICBoaWVyLCBzb25kZXJuIGVpc2thbHRlIEthbXBmdGFrdGlrLCBFcmZhaHJ1bmcgICB8CnwgICAgbWl0IGRlbiBSYWV1bWVuLCBXYWZmZW4gdW5kIFRyaWNrcyBkZXIgS2F0YWtvbS0gfAp8ICAgIGJlbiB1bmQgc2NobmVsbGUgUmVha3Rpb24uIEVzIHdpcmQgV29jaGVuICAgICAgIHwKfCAgICBkYXVlcm4sIGFsbGUgTW9lZ2xpY2hrZWl0ZW4gdW5kIEdlaGVpbW5pc3NlIHp1ICB8CnwgICAgZXJrdW5kZW4uLi51bmQuLi5uaWVtYW5kIHNvbGx0ZSBzaWNoIGF1ZiBzZWluICAgfAp8ICAgIEJsdXRzYXVnZXJzY2h3ZXJ0IGhpZXIgdmVybGFzc2VuOiBhbGxlIElocmUgICAgIHwKfCAgICBHZWdlbnN0YWVuZGUgd2VyZGVuIHZvciBJaHJlbSBFaW50cml0dCBpbiBkaWUgICB8CnwgICAgQXJlbmEgaW4gZWluIFNjaGxpZXNzZmFjaCBnZXNjaGxvc3Nlbi4uLiBhYmVyICAgfAp8ICAgIGtlaW5lIFNvcmdlLiBEaWUgS2F0YWtvbWJlbiBzaW5kIHZvbGxlciBpbi0gICAgIHwKfCAgICB0ZXJlc3NhbnRlciB1bmQgbnVldHpsaWNoZXIgR2VnZW5zdGFlbmRlLiAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIEZ1ZXIgZGllIGZyaWVkZmVydGlnZXJlbiBNaXRzcGllbGVyIGdpYnQgZXMgICAgIHwKfCAgICBpbW1lciBub2NoIGRpZSBNb2VnbGljaGtlaXQsIFdldHRlbiBhdWYgZGllICAgICB8CnwgICAgS2FlbXBmZXIgZGVyIEthdGFrb21iZW4gYWJ6dXNjaGxpZXNzZW4sIHdlbGNoZSAgfAp8ICAgIGluIHZlcnNjaGllZGVuZW4gS3JpZWdlcmthc3RlbiBpbiBlaW5lbSBld2lnZW4gIHwKfCAgICBXZXR0a2FtcGYgbGllZ2VuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgRGllIER1ZXN0ZXJrYXRha29tYmVuIC0gZGVyIE5lcnZlbmtpdHplbCwgZGVyICAgfAp8ICAgIElocmVuIEFkcmVuYWxpbnNwaWVnZWwgaW4gZGllIEhvZWhlIGphZ2VuIHVuZCAgIHwKfCAgICB3YWhyZSBLcmllZ2VyIHZvbiBTY2htZXR0ZXJsaW5nc3NjaGFlbmRlcm4gICAgICB8CnwgICAgdW50ZXJzY2hlaWRlbiB3aXJkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIFZlcmZ1ZWdiYXIgYWIgMS4gTWFlcnogMTk5NS4gICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgMy4gRG9taW5hdG9yLiBEQVMgR2VzZWxsc2NoYWZ0c3NwaWVsIGRlcyBNb3JnZW4tICAgfAp8ICAgIEdyYXVlbnMuIFRyZXRlbiBTaWUgaW5zIEhpbnRlcnppbW1lciBkZXIgVi5JLlAuIHwKfCAgICBMb3VuZ2UgdW5kIGVyb2VmZm5lbiBTaWUgbWl0IGJpcyB6dSA0IFNwaWVsZXJuICB8CnwgICAgZWluIGltbWVyIGZvcnRzZXR6YmFyZXMgU3BpZWwsIGluIGRlbSBTaWUgICAgICAgfAp8ICAgIExhZW5kZXIga2F1ZmVuIHVuZCB2ZXJ3YWx0ZW4gbXVlc3NlbiAoIHdlciBkYXMgIHwKfCAgICBTcGllbCAnSG90ZWwnIChjKSAxOTg2IE1pbHRvbiBCcmFkbGV5IEdtYkggICAgICB8CnwgICAga2VubnQsIHdlaXNzLCB3b3J1bSBlcyBpbiBldHdhIGdlaHQuIEVyc2V0enQgICAgfAp8ICAgIG1hbiBkaWUgSG90ZWxzIGR1cmNoIExhZW5kZXJlaWVuLCBkaWUgJ0VpbmdhZW4tIHwKfCAgICBnZScgZHVyY2ggWm9sbGhhZXVzc2NoZW4gdW5kIGZ1ZWd0IEVyZWlnbmlza2FyLSB8CnwgICAgdGVuIGhpbnp1LCBzbyBiZWtvbW10IG1hbiBEb21pbmF0b3IgOikgKS4gICAgICAgfAp8ICAgIERhcyBhbGxlcyBtaXQgZWluZXIgZmFzdCBiaWxkc2NoaXJtZnVlbGxlbmRlbiAgIHwKfCAgICBLYXJ0ZSwgZGllIGRlbiBha3R1ZWxsZW4gU3BpZWxzdGFuZCBhbnplaWd0LiAgICB8CnwgICAgVmVyZnVlZ2JhciBhYiAxLiBBcHJpbCAxOTk1LiAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCA0LiBVbSBkZW4gaG9oZW4gSW5mb3JtYXRpb25zZmx1c3MgaW4gdW5kIHVtIGRlbiAgICB8CnwgICAgV2V0dHBhbGFzdCBpbiBlaW5lIEZvcm0genUgYnJpbmdlbiwgd2lyZCBhbSAgICAgfAp8ICAgIDEuIEZlYnJ1YXIgMTk5NSBkaWUgMS4gQXVzZ2FiZSBkZXMgVGlnZXIncyAgICAgIHwKfCAgICBDaHJvbmljbGUgZnVlciBhbGxlIEludGVyZXNzZW50ZW4gaW4gZGVyICAgICAgICB8CnwgICAgRW1wZmFuZ3NoYWxsZSB6dSBoYWJlbiBzZWluLiAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgVW0gZGllIFVlYmVyc2ljaHQgZnVlciBkaWUgS3VuZGVuIHp1IHdhaHJlbiB1bmQgICB8CnwgZWluZSB3ZWl0ZXJlIEFuc3ByZWNocGVyc29uIGZ1ZXIgRnJhZ2VuIHp1bSAgV2V0dC0gfAp8IHVuZCBGZXN0cGFsYXN0IHp1IHNjaGFmZmVuICggZGllIG1pciBnYW56IG5lYmVuYmVpIHwKfCBub2NoIGVpbmlnZXMgYW4gUGFwaWVya3JhbSBhYm5pbW10IDspICksIGhhYmVuICAgICB8CnwgRXJvcyB1bmQgaWNoIHVucyB6dW0gSmFocmVzd2VjaHNlbCBnZWVpbmlndDogICAgICAgfAp8IEVyb3MgdWViZXJuYWhtIGFiIDEuIEphbnVhciAxOTk1IG9mZml6aWVsbCBkZW4gICAgIHwKfCBQb3N0ZW4gZGVzIHN0ZWxsdmVydHJldGVuZGVuIEdlc2NoYWVmdHNmdWVocmVycyAgICB8CnwgdW5kIE1hcmtldGluZ2xlaXRlcnMgZGVzIEx1Y2t5IFRpZ2VyJ3MuIFdpciBob2ZmZW4gfAp8IGF1ZiBndXRlIFp1c2FtbWVuYXJiZWl0IHVuZCBzaW5kIHNpY2hlciwgZGFzcyBlcyAgIHwKfCBpbiBadWt1bmZ0IHdlbmlnZXIgVW5rbGFyaGVpdGVuIHp1IGJlc3RpbW10ZW4gQWItICB8CnwgbGFldWZlbiBnZWJlbiB3aXJkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBJbiBmcmV1ZGlnZXIgRXJ3YXJ0dW5nIGF1ZiBSZWFrdGlvbmVuIHVuZCAgICAgICAgICB8CnwgbWl0IHRpZ2VycHJhbmtlbnd1c2NoZWxpZ2VuIEdydWVzc2VuICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYW5jZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgVm9yc3RhbmRzdm9ydGlnZXJuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1Y2t5IFRpZ2VyJ3MgTGltaXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTHVja3kgVGlnZXIncyBBbmt1ZW5kaWd1bmdlbiAwMS85NCAoQmxvZWRmaW5nZXIsIDE1LiBKYW4gMTk5NSwgMDc6NDg6MjApOgojISBybj1EYW5jZXIgcnQ9NzkwMDkyNjE5CkRhcyBob2VydCBzaWNoIGphIGFsbGVzIHdhaG5zaW5uaWcgZ3V0IGFuLiBBdGVtYmVyYXViZW5kISEhCkJsb2VkZmluZ2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEx1Y2t5IFRpZ2VyJ3MgQW5rdWVuZGlndW5nZW4gMDEvOTQgKExpLCAxNi4gSmFuIDE5OTUsIDA4OjQxOjM2KToKIyEgcm49RGFuY2VyIHJ0PTc5MDA5MjYxOQpJY2ggYmluIHNwcmFjaGxvcyEgSWNoIHdpbGwgYXVjaCBpbiBkaWUgRHVlc3RlcmthdGFrb21iZW4hIERhcyBpc3QgZGFzIGVyc3RlCk1hbCwgZGFzcyBpY2ggZGVuIE1hZ2llcnN0YXR1cyBiZWRhdXJlISBhYmVyIGVzIGdpYnQgamEgYXVjaCBub2NoIGFuZGVyZQpNYWdpZXIgLSB3aWUgaXN0IGRhcyBlaWdlbnRsaWNoIG1pdCBUZXN0aWUgZ2VnZW4gVHN0aWU/CgpsaSAoc3RhdW5lbmQsIGZyZXV0IHNpY2ggc2Nob24gYXVmIGRpZSBlcnN0ZSBSdW5kZSBEb21pbmF0b3IpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGVsbHVuZ25haG1lIHp1IEFua3VlbmRpZ3VuZ2VuIDAxLzk1IChEYW5jZXIsIDE2LiBKYW4gMTk5NSwgMTQ6NTY6MDUpOgpPLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU8KfDouOjouLjo6Oi4uOjogX19fX19fX19fX19fX19fX19fX19fX18gOjouOi4uLjo6Oi4uOi58Cnw6Ojo6Oi46YC5fX19ffCAgICAgICAgICAgICAgICAgICAgICAgfF9fX18sJyAgLic6Ozo6fAp8Ljo6LjouYC4gXCAgIHwgICAgIExVQ0tZIFRJR0VSJ1MgICAgIHwgICAvICwnLC46Ljo6OnwKfDo6LiAtIC0tICA+ICB8X19fX19fX19fX19fX19fX19fX19fX198ICA8ICAtLSAtIC4uOi58Cnw6Ljo6LjosJyAvX19fX19fXyl+fn5+fn5+fn5+fn5+fn4oX19fX19fX1wgYC46Ojo6LjoufAp8Li4uOjouOi4gfn5+fn5+fn4gICAgICAgICAgICAgICAgIH5+fn5+fn5+IDo6OjouLi46LnwKfDouOi4uLi46Ojo6Li4uLjo6OiBTVEVMTFVOR05BTUUgOjo6Oi4uLjo6Ojo6Li4uOjo6Ojp8CnwuLi46Ojo6Oi4uOjo6Li46Oi4gPT09PT09PT09PT09IC46Ojo6Oi4uLjo6Ojo6Li4uOjo6fAp8Ojo6OjouLi4uOjo6OjouLjo6Li4uLi4uLi4uLi4uLi46Ojo6Li46Ojo6Li46Ojo6Oi46OnwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU2VociBnZWVocnRlIERhbWVuIHVuZCBIZXJyZW4sICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBOYWNoIGRlbiBwb3NpdGl2ZW4gdW5kIGFldXNzZXJzdCB6YWhscmVpY2hlbiBSZWFrLSB8CnwgdGlvbmVuIChGUkVVISEpIGF1ZiB1bnNlcmUgQW5rdWVuZGlndW5nZW4gbW9lY2h0ZW4gfAp8IHdpciBtaXQgZGllIEZyYWdlbiBiZWFudHdvcnRlbiwgZGllIGFtIGhhZXVmaWdzdGVuIHwKfCBtYWwgaW4gZGVuIGxldHp0ZW4gendlaSBUYWdlbiBhbiB1bnMgaGVyYW5nZXRyYWdlbiB8Cnwgd3VyZGVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBhKSBEYXJmIGljaCBtZWluIEJsdXRzYXVnZXJzY2h3ZXJ0LCBtZWluZW4gVGVkZHktICB8CnwgICAgYmFlciB1bmQgZWluZSBIYW5kdm9sbCBNdWVuemVuIG1pdCBpbiBkaWUgICAgICAgfAp8ICAgIER1ZXN0ZXJrYXRha29tYmVuIG5laG1lbj8gICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAtLSBOZWluLiBFcyB3YXIgc2Nob24ga2VpbiBTY2hlcnosIGFscyBpY2ggICAgICB8CnwgICAgc2NocmllYiwgZXMgd3VlcmRlIEFMTEVTIGluIGVpbiBTY2hsaWVzc2ZhY2ggICAgfAp8ICAgIGVpbmdlc3BlcnJ0IHdlcmRlbiBiZXZvciBtYW4gaW4gZGllIEFyZW5hICAgICAgIHwKfCAgICBrb21tdC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGIpIEthbm4gaWNoIFdhZmZlbiBvZGVyIFJ1ZXN0dW5nZW4gaW4gZGllIEFyZW5hICAgIHwKfCAgICBoZWltbGljaCBlaW5zY2hsZXVzZW4/ICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgLS0gSmEuIEVpbiBNYWdpZXIga2FubiBkYXMgZGVmaW5pdGl2LiBXaXIgZW0tICAgfAp8ICAgIHBmZWhsZW4gYW4gZGllc2VyIFN0ZWxsZSwgZ2FyIG5pY2h0IGVyc3QgbmFjaC0gIHwKfCAgICB6dWRlbmtlbiwgb2IgbWFuIFdhZmZlbiB2b24gYXVzc2VyaGFsYiBpbiBkZXIgICB8CnwgICAgQXJlbmEgYmVudXR6ZW4gc29sbHRlLiBTb2xsdGUgbWFuIGVzIG5hZW1saWNoICAgfAp8ICAgIHZlcnN1Y2hlbiwgd2lyZCBkYXMgZWluIGF1ZXNzZXJzdCBlaW5tYWxpZ2VzICAgIHwKfCAgICBFcmxlYm5pcywgdW5kIGdsYXVidCBqYSBuaWNodCwgZGFzcyBlcyBub2NobWFsICB8CnwgICAgZWluZSBXYXJudW5nIHZvcmhlciBnaWJ0LiBad2VpIFNjaGxhZWdlOiBFdWVyZSAgfAp8ICAgIGlsbGVnYWxlIFdhZmZlIHNjaGxhZWd0IHp1IHVuZCBJaHIgc2NobGFndCBhdWYgIHwKfCAgICBkZW0gQm9kZW4gYXVmLiA7KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGMpIFdpcmQgZXMgZWluZSBBcnQgJ0ZyaWVkZW5zYmFuZCcgZ2ViZW4sIG1pdCBkZW0gIHwKfCAgICBpY2ggbWlyIGRpZSBBcmVuYSBtYWwgc28gZ2FueiBsb2NrZXIgZmxvY2tpZyAgICB8CnwgICAgYW5zY2hhdWVuIGthbm4sIG9obmUgR2VmYWhyIHp1IGxhdWZlbiwgZGFzcyAgICAgfAp8ICAgIGRyZWkgQmVrbG9wcHRlIGtyaWVnc2hhbW1lcnNjaHdpbmdlbmcgYXVmIG1pY2ggIHwKfCAgICB6dWdlc3R1ZXJtdCBrb21tZW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgLS0gSmEuIE51ciB3aXJkIG1hbiBkYW1pdCBuaWNodHMgbmVobWVuLCB3ZWdsZS0gfAp8ICAgIGdlbixiZXdlZ2VuIG9kZXIgYXVjaCBudXIgYW5zY2hhdWVuIGtvZW5uZW4sIHdpZXwKfCAgICBkYXMgc28gaXN0LCB3ZW5uIG1hbiBhbHMga2xlaW5lIERhbXBmd29sa2UgICAgICB8CnwgICAgZHVyY2ggZGllIEdlZ2VuZCBmbGllZ3QuIEViZW5zbyB3aXJkIG1hbiBhdWNoICAgfAp8ICAgIGF1ZiBlaW4gY2EuIDEwMCBGZWxkZXIgZ3Jvc3NlcyBBcmVhbCBiZS0gICAgICAgIHwKfCAgICBzY2hyYWVua3Qgc2VpbiwgdHJvdHpkZW0ga2FubiBtYW4gYXVmIGRpZXNlICAgICB8CnwgICAgV2Vpc2UgYWx0ZXJuYXRpdiB6dSBkZXIgVHJpYnVlbmVubG91bmdlIGRlbiAgICAgfAp8ICAgIGthZW1wZmVuZGVuIFBhcnRlaWVuIHp1c2NoYXVlbi4gICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgZCkgRGFyZiBpY2ggYXJtZXIsIGltbWVyIG51ciBzY2h1ZnRlbmRlciwgbmllIG1laHIgfAp8ICAgIFNwYXNzIGhhYmVuZGVyLCBpbW1lciBhdWYgZGFzIHNlZWxpc2NoZSBXb2hsICAgIHwKfCAgICBhbGxlciBTcGllbGVyIGJlZGFjaHRlciBNYWdpZXIgbWl0IGVpbmVtIFRlc3RpZSB8CnwgICAgYXVjaCBtYWwgbWl0c3BpZWxlbj8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIC0tIEphYWFhYWEhIE5pY2h0IG1vZGlmaXppZXJ0ZSBUZXN0aWVzIHZvbiBNYS0gIHwKfCAgICBnaWVybiBkdWVyZmVuIGdlbmF1c28gdW0gZGllIFdldHRlIGthZW1wZmVuIHdpZSB8CnwgICAgYWxsZSBhbmRlcmVuLiBTb2xsdGUgZGVyIGVudHNwcmVjaGVuZGUgTWFnaWVyICAgfAp8ICAgIGJlaW0gU25vb3BlbiB2b24gTWl0c3RyZWl0ZXJuIHdhZWhyZW5kIGRlcyAgICAgIHwKfCAgICBXZXR0a2FtcGZlcyBlcndpc2NodCB3ZXJkZW4sIHNvIHdpcmQgZXIgbWl0ICAgICB8CnwgICAgS29uc2VxdWVuemVuIHJlY2huZW4gbXVlc3Nlbi4gQXVmIGplZGVuIEZhbGwgICAgfAp8ICAgIHNjaGxpZXNzdCBkaWVzIGRpZSBWZXJiYW5udW5nIHZvbiBhbGxlbiBBa3RpdmktIHwKfCAgICB0YWV0ZW4gZGVzIFdldHQtIHVuZCBGZXN0cGFsYXN0ZXMgZWluLiAgICAgICAgICB8CnwgICAgTWFnaWVydGVzdGllcyB3ZXJkZW4gZGllIEFyZW5hIGVpbmVuIE1vbmF0IE5BQ0ggfAp8ICAgIGRlciBFcm9lZmZudW5nIGZ1ZXIgZGllIFNwaWVsZXIgYmV0cmV0ZW4gZHVlci0gIHwKfCAgICBmZW4uIERpZXNlbiBWb3JzcHJ1bmcga29lbm5lbiBkaWUgU3BpZWxlciAgICAgICB8CnwgICAgbnV0emVuLCBkYSBzaWUgbmljaHQgaW0gQ29kZSBiZXN0aW1tdGUgVmVyLSAgICAgfAp8ICAgIHN0ZWNrZSB2b24gT2JqZWt0ZW4gbmFjaHNlaGVuIGtvZW5uZW4uICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgZSkgRGFyZiBpY2ggYXVjaCBtaXQgbWVpbmVtIFp3ZWl0aWUgb2RlciBUZXN0aWUgaW4gfAp8ICAgIGRpZSBBcmVuYSBvZGVyIG11c3MgaWNoIG1pdCBtZWluZW0gaG9jaGdlcHVzY2gtIHwKfCAgICB0ZW4gRXJzdGllIHJlaW4sIHVtIHVlYmVyaGF1cHQgZWluZSBDaGFuY2UgenUgICB8CnwgICAgaGFiZW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIC0tIER1IGRhcmZzdCBtaXQgRXJzdGllLCBad2VpdGllLCBUZXN0aWUgb2RlciAgIHwKfCAgICBzb25zdHdhcyByZWluZ2VoZW4sIHdhcyBlaW4gU1BJRUxFUiB6d2lzY2hlbiAgICB8CnwgICAgTGV2ZWwgMTUgdW5kIExldmVsIDUwMCBpc3QgdW5kIGRpZSBBcmVuYXF1ZXN0ICAgfAp8ICAgIGdlbG9lc3QgaGF0LiBEYSBkaWUgU3RhdHMgZnVlciBkYXMgS2FtcGZzeXN0ZW0gIHwKfCAgICBpbiBkZW4gRHVlc3RlcmthdGFrb21iZW4gZWluZSB1bnRlcmdlb3JkbmV0ZXJlICB8CnwgICAgUm9sbGUgc3BpZWx0IGFscyBpbSBSZXN0IGRlcyBNb3JnZW5HcmF1ZW4sIHNpbmQgfAp8ICAgIG5pY2h0ZWlubWFsIGJlc29uZGVycyBob2hlIFdlcnRlIG5vdHdlbmRpZy4gRXMgIHwKfCAgICB3aXJkIGFuIGRpZXNlciBTdGVsbGUgc29nYXIgZW1wZm9obGVuLCBOSUNIVCAgICB8CnwgICAgbWl0IHNlaW5lbSBoZWlzc2dlbGllYnRlbiBFcnN0aWUgcmVpbnp1Z2VoZW4gICAgfAp8ICAgIHdlbm4gbWFuIEdydWV0emUgaW4gZGVuIEtuaWVuIGhhdCB1bmQgbGVpY2h0IHp1IHwKfCAgICBIZXVsYW5mYWVsbGVuIG5laWd0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGYpIERhcmYgaWNoIGVpbmVuIE1hZ2llciBhbmdyZWlmZW4sIHdlbm4gZXIgYXVmICAgIHwKfCAgICBlaW5tYWwgaW4gZGVuIEthdGFrb21iZW4gdm9yIG1pciBzdGVodD8gICAgICAgICB8CnwgICAgLS0gRGFzIHdpcmQgbmljaHQgcGFzc2llcmVuLCBlcyBzZWkgZGVubiBkZXIgICAgfAp8ICAgIE1hZ2llciBpc3QgbWluZGVzdGVucyBFcnptYWdpZXIgdW5kIGhhdCBlaW5lbiAgIHwKfCAgICB0cmlmZnRpZ2VuIEdydW5kIHp1IGtvbW1lbi4gSWNoIGthbm4gbmF0dWVybGljaCB8CnwgICAgYXVjaCBpbiBkaWUgS2F0YWtvbWJlbiwgZnVlciBhbGxlIGFuZGVyZW4gZ2lidCAgfAp8ICAgIGVzIFNpY2hlcmhlaXRzZnVua3Rpb25lbiAoZGllIGFiZXIgbGVkaWdsaWNoICAgIHwKfCAgICBhbHMgJ0VyaW5uZXJ1bmcnIGdlc2VoZW4gd2VyZGVuIHNvbGx0ZW4sIG5pY2h0ICB8CnwgICAgYWxzIEF1ZmZvcmRlcnVuZywgZGllIGZpbGVzIHNvbGFuZ2UgenUgbWFsdHJlLSAgfAp8ICAgIHRpZXJlbiwgYmlzIG1hbiBkaWUgR2VudWd0dXVuZyBoYXQsIHNpY2ggcmVpbi0gIHwKfCAgICBnZWhhY2t0IHp1IGhhYmVuIDspICkgQXVjaCBoaWVyIGdpbHQgZGllIGFsbC0gICB8CnwgICAgc2VpdHMgYmVrYW5udGUgdW5kIGdlbGllYnRlIFJlZ2VsOiBXZXIgZWluZW4gICAgfAp8ICAgIE1hZ2llciBhbmdyZWlmdCBpc3Qgc2VsYmVyIHNjaHVsZC4gICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgZykgS2FubiBtYW4gYmVpbSAnVGlnZXIncyBDaHJvbmljbGUnIG5vY2ggaXJnZW5kLSAgfAp8ICAgIHdpZSBtaXRtYWNoZW4sIHouQnNwLiBhbHMgUmVkYWt0ZXVyIG9kZXIgUmFzZW4tIHwKfCAgICBkZXIgUmVwb3J0ZXI/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgLS0gQWJlciBqYSEgRGUgZmFrdG8gc3VjaGVuIHdpciBzb2dhciBub2NoICAgICAgfAp8ICAgIFJlcG9ydGVyL1JlcG9ydGVydGVhbXMgVU5EIGVpbmUobikgQ2hlZnJlZGFrdGV1cnwKfCAgICAvQ2hlZnJlZGFrdGV1cmluIHNvd2llIGV2ZW50dWVsbCBlaW5lbiBMYXlvdXRlcix8CnwgICAgd2VubiBkZXIvZGllIENoZWZyZWRha3RldXIoaW4pIGRhcyBuaWNodCBzZWxic3QgfAp8ICAgIG1hY2hlbiB3aWxsLiBEaWVzZSBKb2JzIGdlYmVuIG1vbmF0bGljaGUgR2UtICAgIHwKfCAgICBoYWVsdGVyIChpbiBNdWVuemVuISA6KSApLCBlcyBzaW5kIGFsc28gaGllcm1pdCB8CnwgICAgdm9yd2llZ2VuZCBTcGllbGVyL1NlaGVyIGFuZ2VzcHJvY2hlbi4gICAgICAgICAgfAp8ICAgIEludGVyZXNzZW50ZW4gYmV3ZXJiZW4gc2ljaCBiaXR0ZSBzY2hyaWZ0bGljaCAgIHwKfCAgICBiZWkgbWlyLi4uYWJlciBKb2YgYmV3YWhyZSBuaWNodCBtaXQgTGViZW5zbGF1ZiB8CnwgICAgc29uZGVybiBlaW5mYWNoIGZvcm1sb3MuIE1vZWdsaWNoc3QgdW50ZXIgQW4tICAgfAp8ICAgIGdhYmUsIHdpZXZpZWwgTHVzdCB1bmQgWmVpdCBtYW4gKHZvZWxsaWcgendhbmctIHwKfCAgICB1bmQgdmVycGZsaWNodHVuZ3Nsb3MpIG1pdCBzaWNoIGJyaW5nZW4ga2FubiAgICB8CnwgICAgdW5kIHdpbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBoKSBLYW5uIG1hbiBhbHMgTWFnaWVyIGlyZ2VuZHdpZSBub2NoIG1pdG1hY2hlbj8gICB8CnwgICAgLS0gS2FubiBtYW4sIHdlbm4gbWFuIGd1dGUgSWRlZW4gKGtvbXBsZXhlIEFiLSAgfAp8ICAgIGxhZXVmZSwgZHVyY2hzY2hsYWdlbmRlIE5ldWVydW5nZW4gZXRjLikgaGF0ICAgIHwKfCAgICB1bmQgTHVzdCBoYXQsIGFuIG1hbCBldHdhcyBnYW56IGFuZGVyZW0gbWl0enUtICB8CnwgICAgYmF1ZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgIFZpZWxlbiBEYW5rIGFuIGRpZXNlciBTdGVsbGUgZnVlciBkYXMgZ3Jvc3NlIEluLSB8CnwgdGVyZXNzZSB1bmQgZGllIGdhbnplbiBmbGVpc3NpZyBnZXNjaHJpZWJlbmVuICAgICAgfAp8IEJyaWVmZSB1bmQgQmVsb2JpZ3VuZ2VuLiBEaWUgUmVzb25hbnogd2FyIGpldHp0ICAgIHwKfCBzY2hvbiBzbyBncm9zcywgZGFzcyBlcyB3aXJrbGljaCB1bmdsZWljaCBtZWhyICAgICB8CnwgU3Bhc3MgbWFjaHQgdW5kIHdpcmtsaWNoIHdhcyBicmluZ3QuIEhpZXIgaXN0ICAgICAgfAp8IGZhc3QgZWluIElkZWFsZmFsbCB2b24ga3JlYXRpdmVtIERpYWxvZyBkcmF1cyBnZS0gIHwKfCB3b3JkZW4uIFdlaXRlciBzbywgaWNoIGZyZXUgbWljaCEgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYW5jZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgVm9yc3RhbmRzdm9ydGlnZXJuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1Y2t5IFRpZ2VyJ3MgTGltaXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcmVzc2VtaXR0ZWlsdW5nIDAxLzk1IChEYW5jZXIsIDE2LiBKYW4gMTk5NSwgMTY6MTY6MDQpOgpPLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU8KfDouOjouLjo6Oi4uOjogX19fX19fX19fX19fX19fX19fX19fX18gOjouOi4uLjo6Oi4uOi58Cnw6Ojo6Oi46YC5fX19ffCAgICAgICAgICAgICAgICAgICAgICAgfF9fX18sJyAgLic6Ozo6fAp8Ljo6LjouYC4gXCAgIHwgICAgIExVQ0tZIFRJR0VSJ1MgICAgIHwgICAvICwnLC46Ljo6OnwKfDo6LiAtIC0tICA+ICB8X19fX19fX19fX19fX19fX19fX19fX198ICA8ICAtLSAtIC4uOi58Cnw6Ljo6LjosJyAvX19fX19fXyl+fn5+fn5+fn5+fn5+fn4oX19fX19fX1wgYC46Ojo6LjoufAp8Li4uOjouOi4gfn5+fn5+fn4gICAgICAgICAgICAgICAgIH5+fn5+fn5+IDo6OjouLi46LnwKfDouOi4uLi46Ojo6Li4uLjo6IFBSRVNTRU1JVFRFSUxVTkcgOi4uLjo6Ojo6Li4uOjo6Ojp8CnwuLi46Ojo6Oi4uOjo6Li46Oi49PT09PT09PT09PT09PT09Ojo6Oi4uLjo6Ojo6Li4uOjo6fAp8Ojo6OjouLi4uOjo6OjouLjo6Li4uLi4uLi4uLi4uLi46Ojo6Li46Ojo6Li46Ojo6Oi46OnwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU2VociBnZWVocnRlIERhbWVuIHVuZCBIZXJyZW4sICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgTWl0IEZyZXVkZSBkYXJmIGljaCBtaXR0ZWlsZW4sIGRhc3Mgc2ljaCBuYWNoIHNvICB8Cnwga3VyemVyIFplaXQgYmVyZWl0cyB6d2VpIGZhZWhpZ2UgTWl0YXJiZWl0ZXIgZnVlciAgfAp8IHVuc2VyZSBaZWl0dW5nIFRpZ2VyJ3MgQ2hyb25pY2xlIGdlZnVuZGVuIGhhYmVuLiAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIEFSQU5ZQSB1ZWJlcm5pbW10IGFiIDE3LjAxLjE5OTUgZGVuIFBvc3RlbiBkZXIgICAgfAp8ICAgICAgICAgICAgIExFSVRFTkRFTiBDSEVGUkVEQUtURVVSSU4sICAgICAgICAgICAgIHwKfCAgdW5kIHdpcmQgbWl0IGlocmVtIGpvdXJuYWxpc3Rpc2NoZW4gV2lzc2VuIGRlbSAgICB8CnwgIEJsYXR0IGlocmUgTm90ZSBnZWJlbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgT0VUVEkgd2lyZCAoc2ljaCB2b24gc2VpbmVuIE1hZmlhLVRhZXRpZ2tlaXRlbiAgICB8CnwgIHJlaGFiaWxpdGllcmVuZCA7KSBhYiAxNy4wMS4xOTk1IGRlbiBQb3N0ZW4gZWluZXMgfAp8ICAgICAgICAgICAgIFJFUE9SVEVSUyAmIFJFREFLVEVVUkVTICAgICAgICAgICAgICAgIHwKfCAgdWViZXJuZWhtZW4uIEJlaWRlbiB3dWVuc2NoZW4gd2lyIGhpZXJtaXQgdmllbCAgICB8CnwgIEVyZm9sZyEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgSWNoIG1vZWNodGUgbm9jaCBrdXJ6IGRhcmF1ZiBoaW53ZWlzZW4sIGRhc3MgYWxsZSB8Cnwgd2VpdGVyZW4gU3RlbGxlbmdlc3VjaGUgKGF1ZiBmZXN0ZXIgb2RlciBmcmVpZXIpICAgfAp8IEJhc2lzIGFiIHNvZm9ydCB2b24gQXJhbnlhIGJlYXJiZWl0ZXQgdW5kIGVudHNjaGllLXwKfCBkZW4gd2VyZGVuLiBXaXIgZnJldWVuIHVucyB1ZWJlciBqZWRlbiBBcnRpa2VsLCAgICB8CnwgamVkZSBJZGVlLCBqZWRlbiwgZGVyIGJlcmVpdCBpc3QsIHVucyBtaXQgZGVuICAgICAgfAp8IE5ldWlna2VpdGVuIGRpZXNlciBXZWx0IHp1IHZlcnNvcmdlbi4gICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IERhbmNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBWb3JzdGFuZHN2b3J0aWdlcm5kZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTHVja3kgVGlnZXIncyBMaW1pdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfApPLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYWdnbGUtUXVlc3QgKEZyYWdnbGUsIDE2LiBKYW4gMTk5NSwgMTc6NDY6MDQpOgpJY2ggaGFiZSBhbiBtZWluZXIgUXVlc3QgZWluIHBhYXIgKGtsZWluZXJlKSBBZW5kZXJ1bmdlbiB2b3JnZW5vbW1lbjoKRGllIEdpZXNza2FubmUgaXN0IG51biwgd2VubiBtYW4gc2llIGZpbmRldCwgbGVlciEKV2llIGlociBkYSBXYXNzZXIgcmVpbmtyaWVndCwgd2VubiBpaHIgc2llIGJlbm9ldGlndCwgaXN0IGV1ZXIgUHJvYmxlbSEKKGtlaW5lIFNvcmdlLCBkaWUgUXVlc3Qgc29sbHRlIGRhbWl0IG5pY2h0IG5vY2ggc2Nod2VyZXIgd2VyZGVuLCBlaGVyCmltIGdlZ2VudGVpbCA7KQoKSWNoIGhvZmZlLCBkYXMgZ2lidCBrZWluZSBQcm9ibGVtZSwgYW5zb25zdGVuIHNjaHJlaWJ0IG1pciEKCkdydXNzCkZyYWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hY2hyaWNodGVuIGF1cyBhbGxlciBXZWx0ISEhIChIYXRlLCAxNi4gSmFuIDE5OTUsIDE5OjQzOjI3KToKRXMgZ2lidCBqZXR6dCBmdWVyIGFsbGUgdmVyZnVlZ2JhciBkaWUgTmFjaHJpY2h0ZW4tRWJlbmUsIGF1ZiBkZXIgenVyCnZvbGxlbiBTdHVuZGUgamV3ZWlscyBkaWUgTmFjaHJpY2h0ZW4gaW4gS3VyemZvcm0ga29tbWVuLgpHZXBsYW50IHZvbiBtZWluZXIgU2VpdGUgYXVzIGlzdCwgZGllIExhbmdlIHZlcnNpb24gZGF6dSBpbiBkZXIgWmVpdHVuZwp6dSB2ZXJvZWZmZW50bGljaGVuLgoKTWZnLCBIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJlc3NlbWl0dGVpbHVuZyAwMi85NSAoRGFuY2VyLCAxNy4gSmFuIDE5OTUsIDExOjQyOjAwKToKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCnw6Ljo6Li46OjouLjo6IF9fX19fX19fX19fX19fX19fX19fX19fIDo6LjouLi46OjouLjoufAp8Ojo6OjouOmAuX19fX3wgICAgICAgICAgICAgICAgICAgICAgIHxfX19fLCcgIC4nOjs6OnwKfC46Oi46LmAuIFwgICB8ICAgICBMVUNLWSBUSUdFUidTICAgICB8ICAgLyAsJywuOi46Ojp8Cnw6Oi4gLSAtLSAgPiAgfF9fX19fX19fX19fX19fX19fX19fX19ffCAgPCAgLS0gLSAuLjoufAp8Oi46Oi46LCcgL19fX19fX18pfn5+fn5+fn5+fn5+fn5+KF9fX19fX19cIGAuOjo6Oi46LnwKfC4uLjo6LjouIH5+fn5+fn5+ICAgICAgICAgICAgICAgICB+fn5+fn5+fiA6Ojo6Li4uOi58Cnw6LjouLi4uOjo6Oi4uLi4gUFJFU1NFTUlUVEVJTFVORyAyIDouLjo6Ojo6Li4uOjo6Ojo6fAp8Li4uOjo6OjouLjo6Oi4uID09PT09PT09PT09PT09PT09PSA6Oi4uLjo6Ojo6Li4uOjo6LnwKfDo6Ojo6Li4uLjo6Ojo6Li46Oi4uLi4uLi4uLi4uLi4uOjo6Oi4uOjo6Oi4uOjo6OjouOjp8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFNlaHIgZ2VlaHJ0ZSBEYW1lbiB1bmQgSGVycmVuLCAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIG1pdCBGcmV1ZGUga2FubiBpY2ggaGV1dGUgbWl0dGVpbGVuLCBkYXNzIHp3ZWkgICAgfAp8IHdlaXRlcmUgTWl0YXJiZWl0ZXIsIGRpZSBhdWYgbWVpbmVyIFd1bnNjaGxpc3RlICAgIHwKfCBzdGFuZGVuICg6KSksIGRlbSBUZWFtIHZvbiBMdWNreSBUaWdlcidzIGJlaWdldHJlLSB8CnwgdHJldGVuIHNpbmQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR1JJTU1CT1JOIHVlYmVybmltbXQgZGVuIFBvc3RlbiBlaW5lcyAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgUkVEQUtURVVSUyAmIFJFUE9SVEVSUyAgICAgICAgICAgICAgIHwKfCB1bmQgd2lyZCBkYW1pdCB0YXRrcmFlZnRpZyBkZW4gVGlnZXIncyBDaHJvbmljbGUgICB8CnwgdW50ZXJzdHVldHplbiB1bmQgbWl0IGF1ZmJhdWVuLiBGZWluZSBTYWNoZSwgd28gICAgfAp8IHdpciBkb2NoIGFsbGUgR3JpbW1ib3JucyBBcnRpa2VsIGtlbm5lbiA7KSAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFpBUkRPWiBkZXIgRHVua2xlIHdpcmQgYWIgaGV1dGUgbWl0IG1pciB6dXNhbW1lbiAgIHwKfCAgICAgICAgICAgICAgIGRpZSBJTk5FTkFSQ0hJVEVLVFVSICAgICAgICAgICAgICAgICB8CnwgZGVyIER1ZXN0ZXJrYXRha29tYmVuIHp1IEVuZGUgcGxhbmVuIHVuZCBhdWZiYXVlbi4gfAp8IFd1bmRlcm4gU2llIHNpY2ggYWxzbyBuaWNodCwgd2VubiBzaWUgaW4gSG9laGUgZGVzIHwKfCBXZXR0cGFsYXN0ZXMgYW4gZGVyIFBvcnQgVmFpbmVyIExhbmRzdHJhc3NlIGluIGRlciB8CnwgbmFlY2hzdGVuIFplaXQgZWluIGdlc2NoYWVmdGlnZXMgV2Vya2VsbiBzZWhlbiB1bmQgfAp8IGhvZXJlbi4gSWNoIGJpbiBiZXNvbmRlcnMgZnJvaCwgZGFzcyBzaWNoIGVpbiBNYS0gIHwKfCBnaWVyIGdlZnVuZGVuIGhhdCwgZGVyIGluIEJlenVnIGF1ZiBkaWUgS2F0YWtvbWJlbiB8CnwgbWl0IG1laW5lbSBHZXNjaG1hY2sgdWViZXJlaW5zdGltbXQgdW5kIGRpZSBaZWl0ICAgfAp8IGludmVzdGllcmVuIGthbm4sIGRpZSBub3R3ZW5kaWcgaXN0LCB1bSBkaWVzZXMgdW0tIHwKfCBmYW5ncmVpY2hlIFByb2pla3QgenUgcmVhbGlzaWVyZW4uICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYW5jZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgVm9yc3RhbmRzdm9ydGlnZXJuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1Y2t5IFRpZ2VyJ3MgTGltaXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWthbm50Z2FiZSAoRGFuY2VyLCAxOC4gSmFuIDE5OTUsIDEzOjQ4OjIyKToKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCnw6Ljo6Li46OjouLjo6IF9fX19fX19fX19fX19fX19fX19fX19fIDo6LjouLi46OjouLjoufAp8Ojo6OjouOmAuX19fX3wgICAgICAgICAgICAgICAgICAgICAgIHxfX19fLCcgIC4nOjs6OnwKfC46Oi46LmAuIFwgICB8ICAgICBMVUNLWSBUSUdFUidTICAgICB8ICAgLyAsJywuOi46Ojp8Cnw6Oi4gLSAtLSAgPiAgfF9fX19fX19fX19fX19fX19fX19fX19ffCAgPCAgLS0gLSAuLjoufAp8Oi46Oi46LCcgL19fX19fX18pfn5+fn5+fn5+fn5+fn5+KF9fX19fX19cIGAuOjo6Oi46LnwKfC4uLjo6LjouIH5+fn5+fn5+ICAgICAgICAgICAgICAgICB+fn5+fn5+fiA6Ojo6Li4uOi58Cnw6LjouLi4uOjo6Oi4uLi46Ojo6IEJFS0FOTlRHQUJFIDouLjo6Ljo6Ojo6Li4uOjo6Ojo6fAp8Li4uOjo6OjouLjo6Oi4uIDouOiA9PT09PT09PT09PSA6Ljo6Oi4uLjo6Ojo6Li4uOjo6LnwKfDo6Ojo6Li4uLjo6Ojo6Li46Oi4uLi4uLi4uLi4uLi4uOjo6Oi4uOjo6Oi4uOjo6OjouOjp8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFNlaHIgZ2VlaHJ0ZSBEYW1lbiB1bmQgSGVycmVuLCAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIG5hY2ggemFobHJlaWNoZW4gaGFydGVuIHVuZCBrb21wbGl6aWVydGVuIFZlci0gICAgfAp8IGhhbmRsdW5nZW4gdW5kIFZlcmVpbmJhcnVuZ3NnZXNwcmFlY2hlbiBoYWJlbiB3aXIsIHwKfCBkaWUgTHVja3kgVGlnZXIncyBMdGQuIHVuZCBkaWUgTUdNIFB1Ymxpc2hlcnMgTHRkLiB8CnwgdW50ZXIgTGVpdHVuZyB2b24gSGF0ZSB1bnMgZ2VlaW5pZ3QsIGRpZSBhbHRlbiAgICAgfAp8IFJlZGFrdGlvbnNyYWV1bWUgZGVzIE1HTSBNYWdhemlucyBpbiBQb3J0IFZhaW4gYW4gIHwKfCBkZXIgS3JpZWdlcnN0cmFzc2UsIEVja2UgQnJ1bm5lbnN0cmFzc2UsIGZ1ZXIgZGVuICB8CnwgVGlnZXIncyBDaHJvbmljbGUgenUga2F1ZmVuLiAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgSGF0ZSB1ZWJlcm5pbW10IDI3JSBkZXIgQWt0aWVucGFrZXRlIGRlcyBXZXR0LSAgICB8CnwgcGFsYXN0ZXMgYWxzIEthdWZzdW1tZSB1bmQgd2lyZCBzb21pdCB6d2VpdGVyICAgICAgfAp8IEhhdXB0YWt0aW9uYWVyIHVuc2VyZXMgRXRhYmxpc2hlbWVudHMgYW4gZGVyIFBvcnQgIHwKfCBWYWluZXIgTGFuZHN0cmFzc2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICBEaWUgUmVub3ZpZXJ1bmdzYXJiZWl0ZW4gYW4gZGVtIHZlcmFsdGV0ZW4gYWJlciAgIHwKfCBkdXJjaGF1cyBpbnRha3RlbiBHZWJhZXVkZSBoYWJlbiBiZXJlaXRzIGJlZ29ubmVuLCB8Cnwgd2lyIGhvZmZlbiBhdWYgdmllbCBCZXN1Y2ggaW4gdW5zZXJlbiBSZWRha3Rpb25zLSAgfAp8IHJhZXVtZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTWl0IEJhdWhlbG0gYXVmIGRlbSBTYW5kdGlnZXJrb3BmLCAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYW5jZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgVm9yc3RhbmRzdm9ydGlnZXJuZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1Y2t5IFRpZ2VyJ3MgTGltaXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi4gZWluZSBIb2NoemVpdCBzdGVodCBpbnMgSGF1cy4uLiAoQXJkYW5hLCAxOC4gSmFuIDE5OTUsIDE3OjI4OjU0KToKU2VociBnZWVocnRlcyBNVUQsCmhpZXJtaXQgd2lyZCBkaWUgSG9jaHplaXQgendpc2NoZW4KICAgICAgICAgICAgICAgICAgICAgICAgRXRhaW4gJiBBcmRhbmEKZGVtIGdlbWVpbmVtIFZvbGtlIGt1bmRnZXRhbi4KRGVyIE9ydCBkZXIgRmVpZXJsaWNoa2VpdCBpc3Qga2xhci4uLiBkaWUgWmVpdCB3aXJkIGhldXRlIE5hY2h0IFNjaGxhZwpNaXR0ZXJuYWNodCBzZWluLgpGdWVobHQgRXVjaCBoZXJ6bGljaCBlaW5nZWxhZGVuLiBFcyBnaWJ0IGVpbmUgUmllc2VucGFydHkuCkJpcyBkZW5uLCBtaXQgZnJldW5kbGljaGVuIEdydWVzc2VuIEV0YWluICYgQXJkYW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogKEFyYW1lYSwgMTkuIEphbiAxOTk1LCAwOTozNjo1Nik6Ck11ZC1QYXJ0eQpPcmt0b2V0ZXIgdW5kIGljaCBzdWNoZW4gZWluZW4gbGllYmVuIE1lbnNjaGVuIGRlciB1bnMgdm9uIEtvZWxuIGF1cyBtaXRuaW1tdAp6dXIgTXVkLVBhcnR5IGluIE11ZW5zdGVyLi4uOikKSW50ZXJlc3NlbnRlbiBiaXR0ZSBtZWxkZW4hCm1haWwgYW4gT3JrdG9ldGVyIG9kZXIgbWljaC4uLi4KRGFua2Ugc2Nob24gaW0gdm9ycmF1cy4uOikpKSkpKSkpKSkpKSkKWVQgQXJhbWVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCVUcgKEZyYWdnbGUsIDE5LiBKYW4gMTk5NSwgMTU6NTE6MjIpOgpIaSEKTGVpZGVyIHdhciBpbiBkZXIgUXVlc3RiZWxvaG51bmcgZGVyIFJlZC1GcmFnZ2xlLVF1ZXN0IGRpZSBsZXR6dGVuIHBhYXIKVGFnZSBlaW4ga2xlaW5lciBCdWcuIERlciBpc3QgbnVuIGJlaG9iZW4uIElociBrb2VubnQgd2llZGVyIHNjaG5pcHBlbG4gOikKCkZyYWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZFUkxPQlVORyBVTE8gKiBBWlpVUk8gKEF6enVybywgMTkuIEphbiAxOTk1LCAxNjoyMjoxNyk6CiAgICAgICAgVkVSTE9CVU5HCgpBbSAxOS4xIGhhYmVuIHdpciwgVWxvIHVuZCBBenp1cm8sIHVucyBnYW56IGltIFN0aWxsZW4sIGFtIFN0cmFuZCBkZXIKU29ubmVuaW5zZWwgYmVpIFNvbm5lbmF1ZmdhbmcgdmVybG9idCEKCkRpZSBIb2NoemVpdCB3aXJkIHJlY2h0emVpdGlnIGJla2FubnRnZWdlYmVuLgoKCmV0d2FpZ2UgQXVzcnVlc3R1bmcgdW5kIEdlbGRnZXNjaGVua2UgYml0dGUgYXVmIEtvbnRvIE5yLjAwNy00NzExCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIZWlyYXQgKFNsYXNoZXIsIDIwLiBKYW4gMTk5NSwgMTY6MTE6MzgpOgpIaWVybWl0IGVybGF1YmUgaWNoIG1pciBhbnp1a3VlbmRpZ2VuLCBkYXNzIG1laW5lIGdlbGllYnRlIEFiZW5kc3Rlcm4gdW5kIGljaAp1bnMgaGV1dGUgdW0gMTcuMDAgVWhyIGluIGRlciBLaXJjaGUgenUgTmliZWxoZWltIGRhcyBKYXdvcnQgZ2ViZW4gd29sbGVuLgoKQW5zY2hsaWVzc2VuZCBmaW5kZXQgaW0gRmVzdHNhYWwgZWluZSBGZWllciBzdGF0dC4KRWluZ2VsYWRlbiBzaW5kIGFsbGUgTXVkZGllcy4uLi4uLi4uLi4uLgoKICAgICAgQWJlbmRzdGVybiAmIFNsYXNoZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkpvdXJuYWxpc3RlbiBnZXN1Y2h0ISAoQXJhbnlhLCAyMy4gSmFuIDE5OTUsIDIxOjQzOjQ2KToKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU8KfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYXMgPj5UaWdlcidzIENocm9uaWNsZTw8IHN1Y2h0IG5vY2ggSm91cm5hbGlzdGVuISAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBGdWVyIHVuc2VyZSBuZXVlIFplaXR1bmcgc3VjaGVuIHdpciBub2NoIGVpbiBUZWFtIHZvbiAgICAgIHwKfCBNVURkZXJuLCBkaWUgZ2VybiBzY2hyZWliZW4sIGVpbm1hbCBSZWRha3Rpb25zbHVmdCBzY2hudXAtIHwKfCBwZXJuIHdvbGxlbiBvZGVyIHNpY2ggZWluZmFjaCBlaW4gWnVicm90IHZlcmRpZW5lbiB3b2xsZW4uIHwKfCBTY2hsaWVzc2xpY2ggd2VyZGVuIGJlaW0gPj5DaHJvbmljbGU8PCB3aWUgaW0gcmljaHRpZ2VuICAgIHwKfExlYmVuIFplaWxlbmhvbm9yYXJlIGJlemFobHQuIEFsc28sIHNjaHJlaWJ0LCB3YXMgRXVjaCBpbiAgIHwKfCBkZW4gU2lubiBrb21tdCwgc2VpIGVzIG51biBlaW4gVGhlbWEgYXVzIGRlbSB2aXJ0dWVsbGVuLCAgIHwKfCByZWVsbGVuLCBzcGlyaXR1ZWxsZW4gb2RlciBhbmRlcnNlbGxlbiBMZWJlbi4gSWhyIGtvZW5udCAgIHwKfCBiZWkgdW5zIGFscyBGcmVpZSBNaXRhcmJlaXRlciBiZXNjaGFlZnRpZ3Qgd2VyZGVuIC0gaGluICAgIHwKfCB3aWVkZXIgbWFsIGVpbmVuIEFydGlrZWwgdmVyb2VmZmVudGxpY2hlbiAtLCBFdWNoIGFscyBmZS0gIHwKfCBzdGVuIE1pdGFyYmVpdGVyIG1pdCBncm9lc3NlcmVtIFplaWxlbmhvbm9yYXIgYW5zdGVsbGVuICAgIHwKfCBsYXNzZW4gb2RlciBnYXIgYWxzIFJlZGFrdGV1ciBtaXQgZWlnZW5lbSBSZXNzb3J0IGJlaSB1bnMgIHwKfCBhcmJlaXRlbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBVbmQgbWVpbnQgSWhyLCBJaHIga29lbm50ZXQgdWViZXJoYXVwdCBuaWNodCBzY2hyZWliZW4sIHNvICB8CnwgdmVyb2VmZmVudGxpY2hlbiB3aXIgYXVjaCBCaWxkZXIsIHNvIHNpZSBlaW5lIGdld2lzc2UgUXVhLSB8CnxsaXRhZXQgYXVmd2Vpc2VuLiBHZWdlbiBIb25vcmFyLCB2ZXJzdGVodCBzaWNoLiAgICAgICAgICAgICB8CnwgQWxzbywgbGllYmUgTWl0TVVEZGVyLCByYW4gYW4gZGllIFBvc3RmYWVjaGVyISBBcnRpa2VsIHVuZCB8CnwgQmlsZGVyIGJpdHRlIGRpcmVrdCBhbiBjaHJvbmljbGUsIEJld2VyYnVuZ2VuIGFuIG1pY2ggICAgICB8Cnwgc2NoaWNrZW4hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBVbmQgd2llIElociBhbiBkZW0ga3J1bW1lbiBLYXN0ZW4gc2VoZW4ga29lbm50LCBzdWNoZW4gICAgIHwKfCB3aXIgYXVjaCBub2NoIGVpbmVuIGZhZWhpZ2VuIExheW91dGVyLiAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBUaWdlcidzIENocm9uaWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBLcmllZ2Vyd2VnIDItNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQb3J0IFZhaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBcmFueWEsIENoZWZyZWRha3RldXJpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKb3VybmFsaXN0ZW4gZ2VzdWNodCEgKEFzbW9kaXMsIDI0LiBKYW4gMTk5NSwgMTU6MTc6MDYpOgojISBybj1BcmFueWEgcnQ9NzkwODkzODI2CgpNaXN0LCBpY2gga2FubiB3ZWRlciBtYWxlbiBub2NoIGhhYiBpY2ggamVoIGVpbmVuIFplaXR1bmdzYXJ0aWtlbApnZXNjaHJpZWJlbi4KCiAgICAgICAgICAgIENpYW8sIEFzbW9kaXMoaGF0IGFuZGVyZSBGYWVoaWdrZWl0ZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSm91cm5hbGlzdGVuIGdlc3VjaHQhIChRdWFzaW1vZG8sIDI0LiBKYW4gMTk5NSwgMTU6Mzg6NTMpOgojISBybj1BcmFueWEgcnQ9NzkwODkzODI2Ckthbm4gbWFuIGF1Y2ggZ2VnZW4gZWluIEVudGdlbGQgV2VyYnVuZ2VuIGFiZHJ1Y2tlbiBsYXNzZW4/CgpRdWFzaW1vZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTSE9XVElNRSAhISEgKEhhciwgMjQuIEphbiAxOTk1LCAxNTo0MzowNik6CiMhIHJuPUZsaW50bmFpbCBydD03OTA5NTY3ODgKVGphIEZsaW50LApJY2ggYmluIHp3YXIgbm9jaCBrZWluIFNlaGVyICh3ZXJkIHdvaGwgYXVjaCBuaWUgZWluZXIgd2VyZGVuKSwgaGF0dGUgYWJlcgphdWNoIHNjaG9uIGVpbmVuIG5ldHRlIGJlZ2VnbnVuZyBtaXQgTWNsZW9kIGRhbWFscyBpbiBkZXIgQXJlbmEuIEVzIGdlaG9lcnQKc2ljaCB6d2FyIG5pY2h0LCBtYWNodCBhYmVyIHVuZ2xhdWJsaWNoIHZpZWwgU3Bhc3MgOykpKQpWaWVsIFNwYXNzIGRhYmVpCglIYXIgKHVuZCBkcnV1ZiwgRGVwZWNoZU1vZGUgaG9lcmUgaWNoIGVoIG5pY2h0IGdlcm5lLi4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiAoUnh0ZWNoLCAyNC4gSmFuIDE5OTUsIDE2OjEwOjQxKToKTm9lIEZsaW50CldpZXNvIHNvbGx0ZSBtYW4gc2ljaCBkZW4gS2FtcGYgYW5zZWhlbiwgbG9obnQgZG9jaCBkZW4KQXVmd2FuZCBnYXIgbmljaHQgenVyIEFyZW5hIHp1IGxhdWZlbgoKClJ4Cjp3cQoKKysKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiAoUnh0ZWNoLCAyNC4gSmFuIDE5OTUsIDE2OjExOjIwKToKYXJnaApiaW4gaWNoIGFiZXIgYXVjaCBkYWVtbGljaCBoZXV0ZS4KCkJpdHRlIGtlaW5lIEtvbW1lbnRhcmUKClJ4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYWtldHBvc3QgcHJvYmV3ZWlzZSAoISkgZXJvZWZmbmV0IChMb2NvLCAyNC4gSmFuIDE5OTUsIDE2OjM4OjI3KToKICAgICAgICBBbXRsaWNoZSBCZWthbm50bWFjaHVuZyBkZXIgTW9yZ2VuZ3JhdWVuLVBvc3R2ZXJ3YWx0dW5nCiAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkhldXRlIHd1cmRlIGRlciBQcm9iZWJldHJpZWIgZWluZXIgUGFrZXRwb3N0IGF1Zmdlbm9tbWVuLiBBdXMgWmVpdG1hbmdlbAppc3QgbWFuY2hlcyBldHdhcyBlaW5mYWNoZXIgYXVzZ2VmYWxsZW4gYWxzIHp1bmFlY2hzdCBnZXBsYW50LCBhYmVyIGVzCnNvbGx0ZSBhbGxlcyBmdW5rdGlvbmllcmVuLgoKRWluIFBha2V0c2NoYWx0ZXIgc29sbHRlIGluIGFsbGVuIFBvc3RhZW10ZXJuIGRlcyBNb3JnZW5ncmF1ZW5zIHZvcmhhbmRlbgpzZWluLiBTb2xsdGUgZGllcyBpbiBub2NoIG5pY2h0IGRlciBGYWxsIHNlaW4sIHNvIGJpdHRldCBpcmdlbmRlaW5lbiBNYWdpZXIsCmRlbiBSYXVtIG5ldXp1bGFkZW4uCgpJbmZvcm1hdGlvbmVuIHVlYmVyIGRpZSBGdW5rdGlvbnN3ZWlzZSBkZXIgUGFrZXRwb3N0IGdlYmVuIHVuc2VyZSBTY2hhbHRlci0KYmVhbXRlbiwgZnJhZ3Qgc2llIGVpbmZhY2ggbmFjaCBQYWtldGVuLgoKRGllIFBvc3R2ZXJ3YWx0dW5nIGZyZXV0IHNpY2ggdWViZXIgQW5yZWd1bmdlbiB1bmQgS29tbWVudGFyZS4gRGllc2Ugc29sbHRlbgpqZWRvY2ggYXVzbmFobXN3ZWlzZSBfbmljaHRfIG1pdCBkZW4gS29tbWFuZG9zICdpZGVlJyB1bmQgJ2ZlaGxlcicgZ2VnZWJlbgp3ZXJkZW4sIHNvbmRlcm4gbWl0IGVpbmVyIG1haWwgYW4gTG9jby4KClBvcnQgVmFpbiwgZGVuIDI0LiBKYW51YXIgMTk5NSwKICBJaHJlIFBvc3R2ZXJ3YWx0dW5nLCBHZXNjaGFlZnRzYmVyZWljaCBGcmFjaHRwb3N0IHVuZCBQaGlsYXRlbGllLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBKb3VybmFsaXN0ZW4gZ2VzdWNodCEgKEFyYW55YSwgMjQuIEphbiAxOTk1LCAyMToyNDowMSk6CiMhIHJuPVF1YXNpbW9kbyBydD03OTA5NTgzMzMKS2xhciBrYW5uc3QgZHUgV2VyYnVuZyBlaW5ydWVja2VuIGxhc3Nlbi4gTWl0IGRlbSBncm9lc3N0ZW4gVmVyZ251ZWdlbi4KCkFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW56ZWlnZW4hIChIYXRlLCAyNC4gSmFuIDE5OTUsIDIxOjQ4OjM4KToKQWxzbyBpY2ggd3VlcmRlIHNvZ2FyIGVpbmVuIFByb3plbnRwdW50ayBtZWluZXMgR2V3aW5ucyBhdXMgZGVtIFdldHRwYWxhc3QKZWluc2V0emVuIHVtIHJlZ2VsbWFlc3NpZyBkaWUgQWt0aWVud2VydGUgenUgc2VoZW4gdW5kIGRlbiBWZXJkaWVuc3QsIGRlbgppY2ggZGFkdXJjaCBoYWJlLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFuemVpZ2VuIChDYXR3ZWF6bGUsIDI2LiBKYW4gMTk5NSwgMTQ6MjY6NDUpOgpbVmVybGVndCB2b24gc3VjaGUtYmlldGUsIFN1YmJhbWFubiwgMjYuIEphbiAxOTk1LCAwMzozNzozN106CgogICAgIyAgICAgIwogICAjICAjICMgICMKICAgIyAgICMgICAjCiAgICAjICAgICAjCiAgICAgIyAgICMKICAgICAgIyAjCiAgICAgICAjCgpIYWxsbwoKSUNILCBlaW4ga2xlaW5lciwgYWJlciBndXQgZ2ViYXV0ZXIgWndlcmcgaW4gbWl0dGxlcmVtIEFsdGVyLCBzdWNoZSBad2Vja3MKc3BhZXRlcmVyIEhlaXJhdCBlaW5lIG5ldHRlIFNpZSB6d2lzY2hlbiBMZXZlbCA3IHVuZCAxNCwgZGllIGdlbmF1c28gZWluc2FtCk9SS3MgdG9ldGV0IHdpZSBpY2guCgpIYWIgTXV0IHVuZCBtZWxkZSBkaWNoISBXaXIga29lbm5lbiBqYSBtYWwgenVzYW1tZW4gYXVzZ2VoZW4gdW5kIHVucwpiZXNjaG51cHBlcm4uCgpXQVMgTUVJTlNUIERVID8KCnNjaHJlaWIgbWlyIGRvY2ggZWluZmFjaCBlaW5lbiBuZXR0ZW4gQnJpZWYgKFBob3RvIGtlaW4gTVVTUykKClNVYmJBTWFhTgoKKFAuUy46IEljaCBmaW5kZSBkYXMgZ2FueiBzY2hvZW4gU2NoZWlzc2UuIEltbWVyIHdlbm4gbWFuIHNpY2ggZ3JhZGUgbmV0dAptaXQgZWluZW0gd2VpYmxpY2hlbiBLYXJha3RlciB1bnRlcmhhbHRlbiBoYXQgdW5kIHNpY2ggYXVzbG9nZ3QsIGlzdCBlcwphdWNoIHNjaG9uIHp1IHNwYWV0LiBCZWltIG5hZWNoc3RlbiBtYWwgaXN0IFNJRSBtaXQgd2VtIGFuZGVycyB2ZXJoZWlyYXRldCAhCkRhcyBpc3QgZG9jaCB6dW0gdmVycnVlY2t0IHdlcmRlbiwgb2RlciBldHdhIG5pY2h0ID8pCgpBdXNzZXJkZW0gZ2Vob2VydCBkaWVzZXIgQXJ0aWtlbCBpbiBkaWUgUnVicmlrIEFuemVpZ2VuIHVuZCBkZXIgVGl0ZWwgc29sbHRlCmxhdXRlbiA6IEhvY2h6ZWl0c2dlc3VjaGUhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUXVpeiAoTGksIDI2LiBKYW4gMTk5NSwgMTU6MTM6MjUpOgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogICAgICAgICAgICAgTU9SR0VOLCAgMTIgVUhSLCAgICBHUk9TU0VTIFRPTEtJRU4tUVVJWiAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgIFdPPzogICBGZXN0c2FhbCBkZXIgVW50ZXJ3ZWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgIFdhbm4/ICBGcmVpdGFnLCAyNy4xLjk1ICwgMTIgVWhyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgIEluaGFsdDogRGVyIEhlcnIgZGVyIFJpbmdlIChleGtsdXNpdmUgQW5oYWVuZ2UpICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogTWl0bWFjaGVuIGthbm4gbmF0dWVybGljaCBqZWRlcjogU3BpZWxlciwgU2VoZXIsIE1hZ2llciB1bmQgR29ldHRlciAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogRGFtaXQgZGFzIEdhbnplIGF1Y2ggZWluZW4gUmVpeiBoYXQsIGVyaGFlbHQgZGVyIEdld2lubmVyIGVpbiBBbXVsZXR0ICAgICAqCiogbWl0IGRlbSBhdWZncmF2aWVydGVuIFdhcHBlbiB2b24gS29lbmlnIEVsZXNzYXIgKEFyYWdvcm4gSUkuKSAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFF1aXogKFllbmRpLCAyNi4gSmFuIDE5OTUsIDE1OjQwOjE5KToKIyEgcm49TGkgcnQ9NzkxMTI5NjA1CgpTY2hhZGUsIGRhIGthbm4gaWNoIG5pY2h0Li4uIEtvZW5udGUgbWFuIGRhcyBhdWYgZGVuIEFiZW5kIHZlcmxlZ2VuPyAqYmV0dGVsKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBRdWl6IChMaSwgMjYuIEphbiAxOTk1LCAxNTo1Mjo0NCk6CiMhIHJuPVllbmRpIHJ0PTc5MTEzMTIxOQpIaSEKQWxzbyBpY2ggaGFiZSBkZW4gVGVybWluIGF1ZiAxMiBVaHIgZ2VsZ2V0LCB3ZWlsIGRhIGRpZSBMYWdzIG5vY2ggbmljaHQgc28KZ3Jvc3Mgc2luZC4gQXVzc2VyZGVtIGJpbiBpY2ggYWJlbmRzIG5pZSBkYS4KQWJlciBhdWYgMTNVaHIsIGRhcyB3YWVyZSBvay4KCkxpCm5uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBRdWl6IChIaWdobGFuZGVyLCAyNi4gSmFuIDE5OTUsIDE2OjA2OjU4KToKIyEgcm49TGkgcnQ9NzkxMTMxOTY0CkphLCAxMzAwIHdhZXJlIHZpZWwgYmVzc2VyLCB3ZWlsIGljaCB1bSAxMjAwIGJlaW0gRnV0dGVybiBiaW4uCiAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFF1aXogKENhcmFkaHJhcywgMjYuIEphbiAxOTk1LCAxNjoxNTo0MCk6CiMhIHJuPUxpIHJ0PTc5MTEyOTYwNQpJY2ggaGFiIGhldXRlIE1pdHRhZyBnZXNhZ3QgZGFzcyBpY2ggZWluIFRvbGtpZW4tUXVpeiBtYWNoZSwgTGkuCkFsc28gbGllcyBkaXIgYml0dGUgbWVpbmUgNDAgRnJhZ2VuIGR1cmNoIHVuZCBzdGVsbCBuaWNodCBkaWUgZ2xlaWNoZW4gOy0pCgpIYWVuZ3QgbmFjaGhlciBpbiBkZXIgUnVicmlrIHF1aXouCiAgICAgICAgdHNjaG9lCiAgICAgICAgICAgICAgICBDYXJhZGhyYXMgLSAxNS4wMDMgRnVzcyBob2NoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXSVIgV09MTEVOIEhFSVJBVEVOISEhISEgKEFuY2FsYWdvbiwgMjYuIEphbiAxOTk1LCAxNzo0MTo0OSk6CkxpZWJlIE1vcmdlbmdyYXVlciB1bmQgLWlubmVuIQpIZXV0ZSwgYW0gMjYuMS45NSwgaGFiZW4gd2lyIHVucyBkaWUgRWhlIHZlcnNwcm9jaGVuLgpEaWUgSG9jaHplaXRzZmVpZXJsaWNrZWl0ZW4gZmluZGVuIHN0YXR0IGFtIE1vbnRhZywKZGVuIDMwLjAxLjE5OTUsIHVtIDEwLjAwIFVociBpbiBkZXIgTmliZWx1bmdlbmthcGVsbGUuClVtIHphaGxyZWljaGVzIHVuZCBndXRnZWxhdW50ZXMgRXJzY2hlaW5lbiB3aXJkIGhvZWZsaWNoc3QKZ2ViZXRlbi4gQmx1bWVuIHVuZCBHZXNjaGVua2UgYWxsZXIgQXJ0IHdlcmRlbiBkYW5rZW5kCmFuZ2Vub21tZW4uCkluIGZyaXNjaCBlcmJsdWVodGVyIExpZWJlIGdydWVzc2VuCgogICAgICAgICAgICAgICAgICAgICAgIEFuY2FsYWdvbiB1bmQgUm9uZGEKClAuUy46IEtvbW10IGFsbGUsIGF1Y2ggZGllIGlociBuaWNodCBtdWVoc2VsaWcgdW5kIGJlbGFkZW4gc2VpZCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbnplaWdlbiEgKERhbmNlciwgMjYuIEphbiAxOTk1LCAyMToxMzowNyk6CiMhIHJuPUhhdGUgcnQ9NzkwOTgwNTE4CklzdCBpbiBBcmJlaXQsIEhhdGUgOi0pCgpEYW5jZXIKClAuUy46IFp1ZWNrIHNjaG9ubWFsIGRlbiBlaW5lbiBQcm96ZW50cHVua3QgOy0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW5zaWRlciAoRGFuY2VyLCAyOC4gSmFuIDE5OTUsIDExOjU0OjI0KToKSGksCgpmdWVyIGFsbGUgZGllLCBkaWUgZGF2b24gd2lzc2VuICh1bmQgZGllIGljaCBqZXR6dCBiZWkgZGVuIHBlcnNvZW5saWNoZW4KTWFpbHMgdmVyZ2Vzc2VuIGhhYmUpOgpNZWluIHdlaXRlcmZ1ZWhyZW5kZXIgUm9tYW4gdm9uIEplbm5pZmVyIFJvYmVyc29uJ3MgU2Nod2VydHRhZW56ZXJ6eWtsdXMgaXN0CmluIGRpZXNlbiBUYWdlbiBpbiBkZXV0c2NoZXIgVWViZXJzZXR6dW5nIGJlaW0gSGV5bmUgVmVybGFnLCBNdWVuY2hlbiwKaGVyYXVzZ2Vrb21tZW4uIFRpdGVsOiBTY2h3ZXJ0bWFnaWVyLCBJU0JOIDMtNDUzLTA4MDAwLTkuIFZpZWwgU3Bhc3MuCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2Nod2Fzc2VyISEgKEJhbWJ1bGtvLCAzMC4gSmFuIDE5OTUsIDEwOjU2OjAxKToKQW4gYWxsZSBIb2Nod2Fzc2Vyb3BmZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkljaCwgQmFtYnVsa28gZGFzIFdhc3Nlcndlc2VuLCBtb2VjaHRlIG1pY2ggbWl0IGRpZXNlbSBBcnRpa2VsIGJlaSBhbGxlbgpQZXJzb25lbiwgZGllIGR1cmNoIGRhcyBIb2Nod2Fzc2VyIGluIGdhbnogRXVyb3BhIHp1IFNjaGFkZW4gZ2Vrb21tZW4Kc2luZCwgaW4gYWxsZXIgRm9ybSBmdWVyIGRhcyBzY2hhZW5kbGljaGVyIFZlcmhhbHRlbiBtZWluZXIgQXJ0Z2Vub3NzZW4KaW4gZGVuIGxldHp0ZW4gVGFnZW4gZW50c2NodWxkaWdlbi4KRGVyIGFsdGUgQnJhdWNoIHVuc2VyZXMgVm9sa2VzLCBpbiBkZW0gd2lyIGRpZSBWZXJ3YW5kbHVuZyBkZXIgdW5zCnZlcndhbmR0ZW4gU2NobmVlLCBFaXMgdW5kIERhbXBmd2VzZW4genUgV2Fzc2Vyd2VzZW4gZmVpZXJuLCB3aXJkIHZvbgplaW5pZ2VuIEFuZ2Vob2VyaWdlbiB1bnNlcmVzIFZvbGtlcyBsZWlkZXIgaW1tZXIgd2llZGVyIGRhenUgbWlzc2JyYXVjaHQsCmRpZSBNZW5zY2hlbndlc2VuLCBkaWUgZW50bGFuZyB1bnNlcmVyIExlYmVuc3JhZXVtZSBpaHJlIEhhZXVzZXIgYmF1ZW4sCmluIGlocmVyIEV4aXN0ZW5zIHp1IGJlZHJvaGVuLiBJY2ggbW9lY2h0ZSBqZWRvY2ggZGFyYXVmIGhpbndlaXNlbiwgZGFzcwpkaWVzIG51ciBlaW5pZ2Ugd2VuaWdlIHNpbmQuIEZlcm5lciB2ZXJzaWNoZXJlIGljaCBJaG5lbiwgZGFzcyB1bnNlcgpob2hlciBSYXQgYWxsZXMgdW50ZXJuZWhtZW4gd2lyZCwgdW0gZGllIFNjaHVsZGlnZW4gdm9yIEdlcmljaHQgenUgYnJpbmdlbi4KCkljaCBzZWxiZXIgZGlzdGFuemllcmUgbWljaCBlbnRzY2hpZWRlbiB2b24gZGllc2VuIEF1c3NjaHJlaXR1bmdlbiB1bmQKc2NoYWVtZSBtaWNoIGJlaSBkZW4gQmlsZGVybiB2b24gUmhlaW4sIE1vc2VsIHVuZCBkZW4gYW5kZXJlbiBGbHVlc3Nlbi4KSWNoIGhvZmZlLCBkYXNzIGRpZXNlIHVuZXJmcmV1bGljaGVuIEVyZWlnbmlzc2UgZGFzIGd1dGUgVmVyaGFlbHRuaXMgendpc2NoZW4KV2Fzc2Vyd2VzZW4gdW5kIE1lbnNjaGVud2VzZW4gbmljaHQgbmVnYXRpdiBiZWVpbmZsdXNzZW4gd2lyZC4KCkFscyBFbnRzY2h1bGRpZ3VuZyBiaWV0ZSBpY2ggamVkZW0sIGRlciBuYWNod2Vpc2VuIGthbm4sIGRhc3Mgc2VpbiBIYWIgdW5kCkd1dCB2b24gZGVuIEZsdXRlbiBiZXNjaGFlZGlndCB3dXJkZSwgZWluZSBTb2ZvcnRoaWxmZSB2b24gMTAwMDAgTXVlbnplbiBpbgpNb3JnZW5HcmF1ZW4tV2FlaHJ1bmcuCgpHZXNjaGFlZGlndGUgbWVsZGVuIHNpY2ggYml0dGUgc2NocmlmdGxpY2ggYmVpbSBCb3RzY2hhZnRlciBkZXIgV2Fzc2Vyd2VzZW4KaW0gTW9yZ2VuR3JhdWVuIHVudGVyIGZvbGdlbmRlciBBZHJlc3NlOgoKCiAgICAgICAgICAgICAgICAgICAgICBCYW1idWxrbyBkYXMgV2Fzc2Vyd2VzZW4KICAgICAgICAgICAgICAgICAgICAgICAgICBBbSBUcmFtcGVscGZhZCAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhbGQKICAgICAgICAgICAgICAgICAgICAgIDEyODE3NjE3NTEzIE1vcmdlbkdyYXVlbgoKCk1pdCBmcmV1bmRsaWNoZW4gR3J1ZXNzZW4KCgogICAgICAgICAgICAgICAgSSkKICAgICAgICAgICAgICAgIEkpYW1idWxrbyBkYXMgV2Fzc2Vyd2VzZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk11ZFdXVyAmIFplaXR1bmcgKEhhdGUsICAxLiBGZWIgMTk5NSwgMTk6MzE6NTIpOgpBYiBzb2ZvcnQga2FubiBtYW4gYXVmIGVpbmZhY2hlIFdlaXNlIHBlciBXV1cgZGllIFplaXR1bmcgbGVzZW4uCkRlciBMaW5rIGRhenUgaXN0IGF1cyBkZW4gTmV1aWdrZWl0ZW4gdW5kIEFlbmRlcnVuZ2VuIGF1ZiBkZXIgTW9yZ2VuR3JhdWVuCjxBIEhSRUY9aHR0cDovL211ZC51bmktbXVlbnN0ZXIuZGU6NDcxMS8+V1dXIFNlaXRlPC9BPiB6dSBlcmZhaHJlbiA6KQoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldWVyIERpc2NvdW50LU1hcmt0IChGcmFnZ2xlLCAgMi4gRmViIDE5OTUsIDE2OjMyOjA0KToKCkFuemVpZ2U6CgogIEluIEZyYWdnbGUgUm9jayBoYXQgZGVyIFZPT0RPTy1ESVNDT1VOVChUTSkgc2VpbmUgUGZvcnRlbiBnZW9lZmZuZXQhCiAgU2NoYXV0IG1hbCB2b3JiZWkgdW5kIG1hY2h0IG1pY2ggcmVpY2ghCgogIERyLiBWb29kb28tRnJhZ2dsZSAoZGVyIGFuZ2VoZW5kZSBLYXBpdGFsaXN0KQoKUFM6IFp1dHJpdHQgbnVyIGZ1ZXIgQWJlbnRldXJlciwgZGllIFJlZCBiZXJlaXRzIGdlcmV0dGV0IGhhYmVuLgogICAgKFdhZXIgZnVlciBhbmRlcmUgYXVjaCBzaW5ubG9zLikKClBQUzogVW0gTWlzc3ZlcnN0YWVuZG5pc3NlIGF1c3p1cmFldW1lbjogZGllIFF1ZXN0YmVsb2hudW5nIGlzdCB6d2FyIG5pY2h0CiAgICAgQXV0by1Mb2FkLCBhYmVyIFdpZWRlcmJlc2NoYWZmYmFyIChJaHIgbXVlc3N0IGV1Y2ggbnVyIG1lcmtlbiwgd28gaWhyCiAgICAgc2llIGJlaW0gZXJzdGVuIG1hbCBnZWZ1bmRlbiBoYWJ0KSEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbXRsaWNoZSBCZWthbm50bWFjaHVuZyBkZXIgU3RhZHQgU3ZvbHZhZXIgKExvY28sICAyLiBGZWIgMTk5NSwgMTc6NTE6MTgpOgpEYXMgQnVlcmdlcm1laXN0ZXJhbXQgZGVyIFN0YWR0IFN2b2x2YWVyIHdlaXN0IGRhcmF1ZiBoaW4sIGRhc3MgaW4gQW5iZXRyYWNodApkZXIgYW5nZXNwYW5udGVuIGZpbmFuemllbGxlbiBTaXR1YXRpb24sIHVuZCB1bSBCZS0gdW5kIEVudGxhZHVuZyBkZXIgU2NoaWZmZQpuaWNodCB6dSBiZWhpbmRlcm4sIGF1ZiBlaW5lIEVybmV1ZXJ1bmcgZGVyIG1hcm9kZW4gR2VsYWVuZGVyIGltIEhhZmVuYmVyZWljaAp2ZXJ6aWNodGV0IHd1cmRlLgpEYXMgQmV0cmV0ZW4gZGVyIFN0ZWdlIHVuZCBLYWltYXVlcm4gZXJmb2xndCBpbiBadWt1bmZ0IHZvZWxsaWcgYXVmIGVpZ2VuZQpHZWZhaHIuIEVzIHdpcmQgdW0gZXJob2VodGUgVm9yc2ljaHQgZ2ViZXRlbi4KCiAgICAgIEJ1ZXJnZXJtZWlzdGVyYW10IFN2b2x2YWVyCiAgICAgICAgaS5BLiBMb2NvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnRlcnZpZXdwYXJ0bmVySW5uZW4gZ2VzdWNodCEgKEdhc3QxLCAxMC4gRmViIDE5OTUsIDIzOjUwOjU5KToKSGFsbG8sIE1VRC1TcGllbGVySW5uZW4gaW0gUnVocmdlYmlldCB1bmQgYW5ncmVuemVuZGVyIE5pZWRlcnJoZWluIQpCaW4gSm91cm5hbGlzdGluIHVuZCBzdWNoZSBmdWVyIGVpbiBKdWdlbmRtYWdhemluIEludGVydmlldy1QYXJ0bmVySW5uZW4KZnVlciBlaW5lbiBBcnRpa2VsIHVlYmVyIE9uLUxpbmUgQ29tcHV0ZXJzcGllbGUuCkhhdCBqZW1hbmQgTHVzdCwgbWlyIHdhcyB1ZWJlciBkaWVzZSBMZWlkZW5zY2hhZnQgenUgZXJ6YWVobGVuIHVuZCBzaWNoCmF1Y2ggRk9UT0dSQUZJRVJFTiEgenUgbGFzc2VuPwpNVURtYWlsIGFuIEZsaW50bmFpbCBvZGVyIEhhdGUhCkFuc29uc3RlbiBiZXN0ZSBCZWlsZWlkc2dydWVzc2UgYW4gYWxsZSBQYXJ0bmVySW5uZW4gdm9uIE1VRERFUklubmVuIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEludGVydmlld3BhcnRuZXJJbm5lbiBnZXN1Y2h0ISAoSWNldCwgMTEuIEZlYiAxOTk1LCAwMjo1Nzo0OSk6CiMhIHJuPUdhc3QxIHJ0PTc5MjQ1NjY1OQpHYXN0MSB3cm90ZToKPkFuc29uc3RlbiBiZXN0ZSBCZWlsZWlkc2dydWVzc2UgYW4gYWxsZSBQYXJ0bmVySW5uZW4gdm9uIE1VRERFUklubmVuIQoKVW5kIHdlbm4gZGllIFBhcnRuZXJpbiBhdWNoIG11ZGRldD8KLUljZVQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBkZXV0c2Noc3ByYWNoaWdlIE1VRCBBdmFsb24gKEljZXQsIDE1LiBGZWIgMTk5NSwgMDA6MjA6NDYpOgpIaSEKICBJY2ggbW9lY2h0ZSBpbiBkaWVzZW0gQXJ0aWtlbCBtYWwga3VyeiBkYXMgZGV1dHNjaHNwcmFjaGlnZSBNVUQgQXZhbG9uCnZvcnN0ZWxsZW4gdW5kIGdsZWljaHpldGlnIGZ1ZXIgZWluaWdlICh3ZW5pZ2UpIE1VRGRlciBpbiBNRyB1bmQgVU5JdG9waWEsCmRpZSBhdWNoIGluIEF2YWxvbiB0YWV0aWcgc2luZCwgRW50d2FybnVuZyBnZWJlbi4KICBBdmFsb24gd2FyIGluIGRlbiBsZXR6dGVuIFRhZ2VuICpuaWNodCogZG93bi4gRGllIEZIIEF1Z3NidXJnIGhhdCBuZQpzY2huZWxsZXJlIExlaXR1bmcgYmVrb21tZW4gd2llIGVzIHNjaGVpbnQuIEF1ZiBqZWRlbiBGYWxsIGdhYiBlcwpVbXN0ZWxsdW5nZW4gYW0gV2lOLUFuc2NobHVzcyBkZXIgVW5pIEF1Z3NidXJnLCBzb2Rhc3MgZGFzIE1VRCBmdWVyCmVpbmlnZSB6ZWl0IHZvbiBhdXNzZW4gbmljaHQgZXJyZWljaGJhciB3YXIuIEVzIHdhciB3aWUgZ2VzYWd0IG5pY2h0IGRvd24sCmVzIGxpZWYgMTIgVGFnZSBvaG5lIFVudGVyYnJlY2h1bmcgKGljaCBoYWJzIHZvciBuZXIgU3R1bmRlIGF1cyBWZXJzZWhlbgp6dW0gQWJzdHVyeiBnZWJyYWNodCA6KCApCgpTbywgamV0enQgYWJlciB6dSBBdmFsb246CiAgSW0gQXVnZW5ibGljayBnaWJ0IGVzIGRvcnQga2VpbmUgb2ZmaXppZWxsZW4gU3BpZWxlciwgZGEgd2lyIG5vY2ggZ2FyCm5pY2h0IHJpY2h0aWcgYXVmZ2VtYWNodCBoYWJlbi4gRGllIEFkZWxpZ2VuIGRvcnQgKD1NYWdpZXIsR29ldHRlcikgYXJiZWl0ZW4KYWJlciBkYXJhbiwgZGFzcyBtb2VnbGljaHN0IGJhbGQgYXVmZ2VtYWNodCB3ZXJkZW4ga2Fubi4gQW4gVGVzdHNwaWVsZXJuCndlcmRlbiBub2NoIGVpbmlnZSBiZW5vZXRpZ3QuIFdlciBUZXN0c3BpZWxlciB3ZXJkZW4gd2lsbCwgc2NocmVpYnQgZWluZmFjaAphbiBhZG1pbnNAYXZhbG9uLCBkYXMga29tbXQgZGFubiBkb3J0IGFuLgoKRWluaWcgRmVhdHVyZXMgdm9uIEF2YWxvbiwgenUgZWluZW0gZ3Jvc3NlbiBUZWlsIHNjaG9uIGVpbmdlYmF1dCBvZGVyIGluClRlc3RwaGFzZSwgZWluaWdlIGxlaWRlciBlcnN0IGluIFBsYW51bmc6CiAgKiBBdXRvbWFwcGluZyBpbiBkZXIgV2lsZG5pcy4KICAgICAgTWFuIGthbm4gc2ljaCBmdWVyICJNYXByYWV1bWUiIChncm9zc2UgTGFuZHNjaGFmdGVuKSBLYXJ0ZW4ga2F1ZmVuLAogICAgICBkaWUgZWluZW0gZ3JhZmlzY2ggZGVuIEF1ZmVudGhhbHRzb3J0IGFuemVpZ2VuLiBTZWhyIHNjaG9lbiwgd2VubgogICAgICBtYW4gZGllIFZUMTAwICh1bmQgYmFsZCBBTlNJKS1FbXVsYXRpb24gd2FlaGx0LgogICogQm9keS1Mb2NhdGlvbnMgaW0gS2FtcGYuCiAgICAgIE1hbiB3aXJkIGViZW4gbmljaHQgbnVyIGVpbmZhY2ggZ2V0cm9mZmVuLCBzb25kZXJuIGViZW4gei5CLiBhbQogICAgICBsaW5rZW4gQXJtIG9kZXIgYW0gS29wZi4gT2huZSBIZWxtIGlzdCBsZXR6dGVyZXMgbmF0dWVybGljaCBuaWNodAogICAgICBzZWhyIHNjaG9lbi4gS29wZmxvcyBydW1yZW5uZW4gbWFjaHQgd2VuaWcgU3Bhc3MuIEF1Y2ggYmVpIGVpbmVtCiAgICAgIGV4dHJlbSBhbmdlc2NobGFnZW5lbiBCZWluIHNvbGx0ZSBtYW4gc2ljaCB1bSBIZWlsdW5nIGt1ZW1tZXJuLAogICAgICBzb25zdCBodW1wZWx0IG1hbiBmdWVyIGVpbmlnZSBaZWl0IG51ciBub2NoIGR1cmNoIGRpZSBHZWdlbmQgOy0pCiAgKiBHcnVwcGVubW9kdXMuCiAgICAgIFp1c2FtbWVuc2NobHVzcyBtZWhyZXJlciBTcGllbGVyIHp1IGVpbmVyIEdydXBwZS4gSGFydCBkaXNrdXRpZXJ0CiAgICAgIGRlcnplaXQsIGFiZXIgZXMgd2lyZCB3b2hsIGtvbW1lbi4gQWxsZXJkaW5ncyB3aXJkIGVzIEdlZ2VuZGVuIGdlYmVuLAogICAgICBkaWUgZWluZSBHcnVwcGUgbmljaHQgenVsYXNzZW4uIEJlc3RpbW10ZSBBdWZnYWJlbiAoUXVlc3Rlbikgei5CLgogICAgICBBbmRlcmUgQXVmZ2FiZW4gd2VyZGVuIHdpZWRlcnVtIGRlbiBHcnVwcGVubW9kdXMgc3RhcmsgdW50ZXJzdHVldHplbiwKICAgICAgZGFtaXQgZXR3YXMgbWVociBSb2xsZW5zcGllbC1GZWVsaW5nIGF1ZmtvbW10LgogICogZ3Jvc3NlcyBNYWdpZXN5c3RlbQogICAgICBiZXN0ZWhlbmQgYXVzIFRyYWVua2VuLCBTcHJ1Y2hyb2xsZW4gdW5kIFphdWJlcnNwcnVlY2hlbiwgZGllIG1hbgogICAgICBpbW1lciBwYXJhdCBoYXQgKGRhZnVlciBrb3N0ZW4gZGllIGF1Y2ggZGllIG1laXNzdGVuIFphdWJlcnB1bmt0ZSkKICAgICAgTmF0dWVybGljaCBuaWNodCBudXIgS2FtcGZzcHJ1ZWNoZSwgYXVjaCBIZWlsc3BydWVjaGUsIEluZm9zcHJ1ZWNoZQogICAgICBvZGVyIEFid2VocnNwcnVlY2hlIHNpbmQgZGFiZWkuCiAgKiBrZWluIEhMUC1Lb256ZXB0CiAgICAgIEVzIGdpYnQga2VpbmUgSExQcyBpbiBBdmFsb24uIEplZGVuZmFsbHMgbmljaHQgc28sIHdpZSBzaWUgYmVpIGRlbgogICAgICBFbmdlbG4gaW4gVU5JdG9waWEgb2RlciBiZWkgZGVuIFNlaGVybiBpbiBNRyBhdXNzY2hhdWVuLiBWaWVsbWVocgogICAgICBlcmhvZWh0IG1hbiBzZWluZSBGYWVoaWdrZWl0ZW4gU3R1ZmVuLSwgRXJmYWhydW5nc3B1bmt0ZS0gdW5kCiAgICAgIFJhZXRzZWxwdW5rdGUtYWJoYWVuZ2lnLiBXZXIgZ3V0ZSBaYXViZXJzcHJ1ZWNoZSBvZGVyIE1hbmlwdWxhdGlvbnMtCiAgICAgIG1vZWdsaWNoa2VpdGVuIGhhYmVuIHdpbGwsIG11c3Mgc2VociB2aWVsIGRhZnVlciB0dW4uIERhZnVlciBrYW5uCiAgICAgIGVyIHNpY2ggYWJlciBhdWNoIGFtIEVuZGUgZGllIFVuc3RlcmJsaWNoa2VpdCBrYXVmZW4uIEFiZXIgZXIgd2lyZAogICAgICBuaWNodCBkYXp1IGdlend1bmdlbiwgenUgUHJvZ3JhbW1pZXJlbi4KICAgICAgRGFtaXQgZWluaGVyZ2VoZW5kIHNpbmQgZGllCiAgKiBSZWJvb3QtIHVuZCBBYnN0dXJ6c2ljaGVyZW4gQXVzcnVlc3R1bmdlbgogICAgICBEaWVzIGlzdCB2b20gS29uemVwdCBoZXIgbm9jaCBuaWNodCBnYW56IGF1c2dlcmVpZnQuIERlc2hhbGIgbnVyIG1hbAogICAgICB2b3JhYiwgd2FzIGdlcGxhbnQgaXN0OiBTcGllbGVyIG1pdCBuaWVkcmlnZW0gTGV2ZWwga29lbm5lbiBzaWNoCiAgICAgIGluIEhvdGVscyBiZWdlYmVuIHVuZCBkb3J0IGV0d2EgZGFzIG1hY2hlbiwgd2FzIGltIE1HIGRlbQoiZWluc2NobGFmZW4iCiAgICAgIGVudHNwcmljaHQuIE1hbiB2ZXJsaWVydCBhbHNvIHNlaW5lIFNhY2hlbiBuY2lodC4gRXMgc2VpIGRlbm4sIGRhcwogICAgICBNdWQgc3R1ZXJ6dCBhYi4KICAgICAgV2VubiBtYW4gaW0gTGV2ZWwgZXR3YXMgaG9laGVyIGlzdCwga2FubiBtYW4gaW0gSG90ZWwgZWluZSBTdHVmZQogICAgICB3ZWl0ZXJnZWhlbi4gRGFubiBrYW5uIG1hbiBmdWVyIGRpZSBEYXVlciB2b24gMS0yIFdvY2hlbiBzZWluZSBTYWNoZW4KICAgICAgYWJzb2x1dCBzaWNoZXIgaW4gZWluZW0gVHJlc29yIGVpbnNwZXJyZW4gbGFzc2VuLiBEaWVzIGlzdCBuaWNodApiaWxsaWcsCiAgICAgIGRhZnVlciBhYmVyIGFic29sdXQgYWJzdHVyei0vcmVib290LXNpY2hlci4KICAgICAgU3RlaWd0IG1hbiBub2NoIGVpbiBwYWFyIExldmVsIGF1ZiwgYnJhdWNodCBtYW4gbmljaHQgbWVociBleHRyYSBpbgogICAgICBlaW4gSG90ZWwgcmVubmVuLCB1bSBkaWVzZSBEaWVuc3RlIGluIEFuc3BydWNoIG5laG1lbiB6dSBrb2VubmVuLgoKV2VyIEFucmVndW5nZW4gaGF0LCB3YXMgbWFuIG1hY2hlbiBrb2VubnRlLCB3YXMgZXVjaCB6LkIuIGltbWVyIHNjaG9uIGFuCmFuZGVyZW4gKGRldXRzY2hlbikgTVVEUyBnZXN0dW5rZW4gaGF0LCBkZXIgc2NocmVpYmUgZWluZmFjaCBhbiBhZG1pbnNAYXZhbG9uCm9kZXIgaWNldEBhdmFsb24gb2RlciAod2VubiBBdmFsb24gbWFsIHN0cmVpa3QpIGFuIGljZXRAdW5pdG9waWEuCldlbm4gYXVjaCBkYXMgZmVobHNjaGxhZWd0LCBzY2hyZWlidCBlaW5mYWNoIHBlciBlbWFpbCBhbgogIGljZXRAYnJhaW4ucGhpbC51bmktcGFzc2F1LmRlCm9kZXIKICBtaWNoYWVsLndpbGtAc3R1ZC51bmktYmFtYmVyZy5kNDAwLmRlCgpOYSwgd2VubiBkYXMgbmljaHQgcmVpY2h0IDstKQoKRGVyIEVyb2VmZm51bmdzdGVybWluIGZ1ZXIgQXZhbG9uIHN0ZWh0IG5hdHVlcmxpY2ggbm9jaCBuaWNodCBmZXN0LCBhYmVyIHdpcgpob2ZmZW4sIEF2YWxvbiBpbSBTb21tZXIgYXVmbWFjaGVuIHp1IGtvZW5uZW4uCgpXZXIgc2ljaCBtYWwgdW1zY2hhdWVuIHdpbGwgKGZ1ZXIgbm9ybWFsZSBTcGllbGVyIGlzdCBhbGxlcmRpbmdzIGZhc3QgbmljaHRzCmVycmVpY2hiYXIpLCBkZXIga2FubiBzaWNoIG1pdAogICAgIHRlbG5ldCAxNDEuODIuMTYuMTcyIDc3NzcKICBvZGVyCiAgICAgdGVsbmV0IHNwYXJjMTAtMy5yei5maC1hdWdzYnVyZy5kZSA3Nzc3CmphIG1hbCBlaW5sb2dnZW4uCgpJaHIgc2VpZCBoZXJ6bGljaHN0IGVpZ2VsYWRlbi4KCkFuc29uc3RlbiBzaWVodCBtYW4gc2ljaCB2aWVsbGVpY2h0IG1hbCBpbiBBdmFsb24sIHdlbm4gZXMgZXJvZWZmbmV0IHd1cmRlLgoKQmlzIGRhaGluLAoKLUljZVQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldWVzIGtsZWluZXMgTVVEIChNYW1icmVzLCAxNS4gRmViIDE5OTUsIDIzOjM4OjU1KToKCkhpZXIgZWluZSBrbGVpbmUgQW5rdWVuZGlndW5nLCBmdWVyIGFsbGUsIGRpZQp6d2lzY2hlbmRyaW4gYXVjaCBtYWwgZ2VybmUgYXVmIEVuZ2xpc2NoIG11ZGRlbjoKCgpNZWluIE11ZCBpc3Qgc2VpdCB3ZW5pZ2VuIFRhZ2VuIG9ubGluZSAhIEVzIGlzdCBub2NoIHppZW1saWNoIGtsZWluCnVuZCBrYW5uIG1pdCBNRyBzaWNoZXIgbGFuZ2UgbmljaHQgbWl0aGFsdGVuLCBhYmVyIHdpciBoYWJlbiBlaW4KcGFhciBJZGVlbiB1bmQgaG9mZmVuIHVucyBwcmFlY2h0aWcgd2VpdGVyenVlbnR3aWNrZWxuLiBTYWVtdGxpY2hlCndpemFyZHMgYmlzaGVyIHNpbmQgZWhlbWFsaWdlciBOZW1lc2lhbmVyLCB1bmQgd2lyIGhvZmZlbiBtaXQKZGVyIFF1YWxpdGFldCB1bnNlcmVyIEFyZWFzIHVuZCBGZWF0dXJlcyBhbiBkYXMgZ3V0ZSBhbHRlIE5lbWVzaXMKaGVyYW56dXJlaWNoZW4uLi4gd2llIGdlc2FndCBlcnN0bWFsIG5vY2ggYXVmIGdhbnoga2xlaW5lbQpNYXNzc3RhYi4gQWxsZSBzaW5kIGVpbmdlbGFkZW4gbWFsIHZvcmJlaXp1c2NoYXVlbiAhCgoxOTQuMTEyLjIwLjExIDIwMDAgICggPSBmdXNpb24udGFwLm5hY2FtYXIuZGUgMjAwMCApCgpJY2ggZnJldWUgbWljaCBhdWYgQmVzdWNoIHVuZCB2b3IgYWxsZW0gYXVmIEZlZWRiYWNrLApNYW1icmVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMRVRaVEVSIEFVRlJVRiBaVU0gU0VIRVJIQVVTV0VUVEJFV0VSQiAoVHJ5ZmFuLCAxNi4gRmViIDE5OTUsIDAwOjM5OjU2KToKCiAgICAgICAgICAgIE1BQ0hUICAgICBVTlNFUiAgICAgTU9SR0VOR1JBVUVOICAgICBTQ0hPRU5FUiAhCgogICAgICAgICAgICAgICAgICAgIEwgRSBUIFogVCBFIFIgICAgQSBVIEYgUiBVIEYgICEhIQoKICBTRUhFUkhBVVNXRVRUQkVXRVJCISEgICAgIFNFSEVSSEFVU1dFVFRCRVdFUkIhISAgICBTRUhFUkhBVVNXRVRUQkVXRVJCISEKCgogSGllcm1pdCB3aXJkIGZ1ZXIgZGVuIFdldHRiZXdlcmIgdW0gZGFzICdzY2hvZW5zdGUnIFNlaGVyaGF1cyBpbSBNRyBlaW5lCkRlYWRsaW5lIGJpcyB6dW0gRlIgZGVuIDE3LiBGZWIuIDI0OjAwIFVociBnZXNldHp0ISAKIEFsbGUgU2VoZXIsIGRpZSBpaHIgSGF1cyBiaXMgZGFoaW4gbmljaHQgYmVpIENhdHdhZXpsZSBhbmdlbWVsZGV0IGhhYmVuLAprb2VubmUgbGVpZGVyIG5pY2h0IG1laHIgdGVpbG5laG1lbi4gRGllIEp1cnkgaGF0IHNpY2ggYmlzaGVyIGZ1ZXIgZm9sZ2VuZGUKS2F0ZWdvcmllbiBlbnRzY2hpZWRlbjogCiAKMS4gRGV0YWlsdGllZmUKLS0gZ3JvZXNzZSBkZXMgaGF1c2VzIChudXIgYW0gcmFuZGUgd2ljaHRpZykKLS0gYW56YWhsIGRlciBkZXRhaWxzIChhdWNoIHdlbmlnZXIga2FubiBtYW5jaG1hbCBtZWhyIHNlaW4pCi0tIGF1c2Z1ZXJsaWNoa2VpdCBkZXIgZGV0YWlscyAKLS0gdm9sbHN0YWVuZGlna2VpdCBhbGxlciBkZXRhaWxzICh3aWNodGlnKQotLSB0aWVmZSBkZXIgZGV0YWlsdmVyc2NoYWNodGVsdW5nIChiaXR0ZSBuaWNodCB1ZWJlcnRyZWliZW4pCgoKMi4gV2l0egotLSBodW1vcgotLSB3aXR6aWdlIGRldGFpbHMKLS0gc2NoZXJ6ZQoKMy4gR2VzYW10a29uemVwdGlvbgotLSBwYXNzdCBkYXMgaGF1cyB6dW0gc3BpZWxlcj8gKG51ciBzb3dlaXQgYmV1cnRlaWxiYXIsIGthbm4gbnVyIHZvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b3J0ZWlsIHNlaW4pCi0tIHBhc3N0IGRlciBzdGFuZG9ydCB6dW0gaGF1cz8gIChzZWhyIHdpY2h0aWchISEpCi0tIGlzdCBkYXMgaGF1cyBpbiBzaWNoIHNjaGx1ZXNzaWc/Ci0tIGlzdCBkaWUgZGV0YWlsdGllZmUgaG9tb2dlbj8KLS0gbGVybnQgbWFuIGR1cmNoIGRhcyBoYXVzIGV0d2FzIHVlYmVyIGRlbiBzcGllbGVyPwotLSBSZWNodHNjaHJlaWJ1bmcgKHdlbmlnZXIgd2ljaHRpZywgYWJlciBuaWNodCB6dSB2ZXJnZXNzZW4pCgo0LiBJZGVlCi0tIG9yZ2luYWxpdGFldAotLSB1ZWJlcnJhc2NoZW5kZSBlZmZla3RlIAotLSBpbmZvcm1hdGl2ZSBkZXRhaWxzICggYWxsZ2VtZWluZSBJbmZvcyBmdWVyIGFuZGVyZSBTcGllbGVyICkgCgo1LiBTdGltbXVuZwotLSB2ZXJtaXR0bHVuZyBkZXIgYmVhYnNpY2h0aWd0ZSBnZXNhbW10c3RpbW11bmcKICAgKGRhcyBrYW5uIGF1Y2ggZWluZSBuZWdhdGl2ZSBzdGltbXVuZyBzZWluLCB3ZW5uIHNpZSBndXQgcnVlYmVyIGtvbW10KQotLSBhbGxlcywgd2FzIG5vY2ggbmljaHQgZ2VuYW5udCB3dXJkZQogICBkaWVzZSBrYXRlZ29yaWUgaXN0IHdvaGwgYW0gc3ViamVjdGl2c3RlbgoKCiBWb24gZGVyIE9yZ2luYWxqdXJ5IHNpbmQsIHdlbm4gaWNoIG5pY2h0IGRlbiBVZWJlcmJsaWNrIHZlcmxvcmVuIGhhYmUsCnp3ZWkgTWFnaWVyLCB6d2VpIFNlaGVyIHVuZCBkcmVpIFNwaWVsZXIgdWVicmlnIGdlYmxpZWJlbi4gSmVkZXIgaGF0IApzaWNoZXIgYW5kZXJlIFZvcnN0ZWxsdW5nZW4gd2FzIHdlbmlnZXIgdW5kIHdhcyBtZWhyIHdpY2h0aWcgYW4gZWluZW0gClNlaGVyaGF1cyBpc3QuCiBKZWRlciBLYXRlZ29yaWUgd2lyZCBlaW5lbiBHZXdpbm5lciBoYWJlbiwgdW5kIHdpciB3ZXJkZW4gYXVjaCBlaW5lbiAKR2VzYW10Z2V3aW5uZXIgZXJtaXR0ZWxuLiBVZWJlciBkaWUgenUgZ2V3aW5uZW5kZW4gUHJlaXNlIGhhYmVuIHdpciB1bnMKbm9jaCBuaWNodCBnZWVpbmlndCwgYWJlciBlcyB3aXJkIHdvaGwgYXVmIGplZGVuIEZhbGwgenVzYWV0emxpY2hlIFJhZXVtZQp6dSBnZXdpbm5lbiBnZWJlbi4gCgogQWxzbzogTWVsZGV0IEV1cmUgZmVydGlnZW4gSGFldXNlciBhbiEhCiAgICAgICBFcyBnaWJ0IG5pY2h0cyB6dSB2ZXJsaWVyZW4hISEKICAgICAgIE5hY2ggbWVpbmVyIEluZm9ybWF0aW9uIHNpbmQgZXJzdCBzZWNocyBIYWV1c2VyIGFuZ2VtZWxkZXQhCiAgICAgICBEYW1pdCBrYW5uIG1hbiBzY2hvbiBmYXN0IG1pdCBlaW5lbSBQcmVpcyByZWNobmVuLCB3ZW5uIG1hbiBzZWluCiAgICAgICBIYXVzIGFubWVsZGV0ISEKICAgICAgIFNlbGJzdHZlcnN0YWVuZGxpY2ggd2VyZGVuIGRpZSBHZXdpbm5lciBvZWZmZW50bGljaCBiZWthbm50Z2VnZWJlbiEKCgogICAgICAgICAgICAgICAgICAgICAgICAgIFRyeWZhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWt0aWVubWFya3QgKERhbmNlciwgMTYuIEZlYiAxOTk1LCAxNDozOToxMyk6CkhhbGxvIDotKQoKIERhIEhhdGUgamV0enQgc2Nob24gZWluaWdlIE1hbGUgZGFyYXVmIGdlZHJhZW5ndCBoYXQsIGRpZSBXZXJ0YWVuZGVydW5nZW4Kc2VpbmVyIEFrdGllbiB2b20gV2V0dHBhbGFzdCB6dSBlcmZhaHJlbiwgbW9lY2h0ZSBpY2ggZWluZSBNaW5pLUJvZXJzZQplcm9lZmZuZW4uCkRhcyBnYW56ZSBpc3QgbmF0dWVybGljaCBlcnN0IG5vY2ggd2VpdCBpbiBkZXIgUGxhbnVuZywgaWNoIG1lbGRlIG1pY2ggbnVyLAp3ZWlsIGljaCBnZXJuZSBhbGxlIENvbXBhbmllcyBkZXMgTW9yZ2VuR3JhdWVucywgZGllIGFuIGRpZXNlciBCb2Vyc2UKdGVpbG5laG1lbiBtb2VjaHRlbiwgaW4gZWluZSBMaXN0ZSBzZXR6ZW4gd2lsbC4gQWxzbyBEdXJpYW4gKEFyZW5hKSwgTG9jbwooUG9zdCkgZXRjLiBldGMuIG1lbGRldCBFdWNoIGJpdHRlCnBlciBtYWlsIGFuIG1pY2guLi4ua3VyemVzIE1pbmktRmlybWVucHJvZmlsIHdhZXJlIHJlaXplbmQgOi0pCgpLbnVkZGVscwoKRGFuY2VyIC0gaW5taXR0ZW4gdm9uIEJhdXN0ZWxsZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExFVFpURVIgQVVGUlVGIFpVTSBTRUhFUkhBVVNXRVRUQkVXRVJCIChUcnlmYW4sIDE2LiBGZWIgMTk5NSwgMTk6MjA6MTYpOgojISBybj1UcnlmYW4gcnQ9NzkyODkxNTk2CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICBLIE8gTSBBIE4gRCBPICAgICAgICAgWiBVIFIgVSBFIEMgSwoKIFdpZSBpY2ggZ3JhZGUgdm9uIHVuc2VybSBPYm1hbm4gZXJmYWhyZSwgZ2luZyBlcyAnbnVyJyB1bSBkaWUgQmVrYW5udGdhYmUKZGVyIEthdGVnb3JpZW4sIGRpZSBzbyBzZWhyIGRyYWVuZ3RlLCBuaWNodCB1bSBkaWUgQW5tZWxkdW5nZW4genVtClNlaGVyaGF1c3dldHRiZXdlcmIuIERpZSBBbm1lbGR1bmdlbiBoYWJlbiBub2NoIGJpcyBFbmRlIGRpZXNlcyBNb25hdHMKWmVpdC4gQWxzbyBzdGVsbHQgRXVyZSBIYWV1c2VyIGluIFJ1aGUgZmVydGlnLiAKIFdlaXRlcmhpbiBoYWJlIGljaCBsZWlkZXIgZXJzdCBqZXR6dCBlcmZhaHJlbiwgZGFzcyBzaWNoIHdlc2VudGxpY2gKbWVociBhbHMgbnVyIHNlY2hzIFNlaGVyIGJpc2hlciBhbmdlbWVsZGV0IGhhYmVuLiBFcyBzaW5kIGRlcnplaXQKYW5zY2hlaW5lbmQgendhbnppZyBhbiBkZXIgWmFobC4gRGFzIGZyZXV0IG1pY2ggYXVzc2Vyb3JkZW50bGljaCEhIDopCiBFbnRzY2h1bGRpZ3VuZyBmdWVyIGRlbiBrbGVpbmVuIFNjaHJlY2tlbiwgZGVuIGljaCB2aWVsbGVpY2h0IGRlbSBlaW5lbgpvZGVyIGFuZGVyZW4gZWluZ2VqYWd0IGhhYmUuIEFiZXIgZGFmdWVyIHNvbGx0ZW4gZGllIEhhZXVzZXIgZGFubiBhdWNoCmZlcnRpZyBzZWluLCB3ZW5uIHdpciBzaWUgYmVzaWNodGlnZW4uIAoJCQkJCVRyeWZhbgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVyc3RlIHdvbHBpZSBzY2huaXR6ZWxyYWxsbGV5IChHdWxkdWthdCwgMjEuIEZlYiAxOTk1LCAxMTozODo0NCk6CiAgICAgICAgICAgICAgICAgICBXb2xwZXJ0aW5nZXIgQ2x1YgoKICAgIAkgICAgICAgICAgICAxLiBSdW5kc2NocmVpYmVuCiAgICAgICAgICAgICAgICAgICAgICAgICBkZXMKICAgICAgICAgICAgICAgICAgICBuZXVlbiBWb3JzdGFuZGVzCgpFaW4gRHJlaWZhY2ggV29scGVyIFdvbHBlcgoKV2lyLCBkZXIgbmV1ZSBWb3JzdGFuZCB3ZXJkZW4gZWluZSBTY2huaXR6ZWxqYWdkIGR1cmNoZnVlaHJlbiEKCkRhIG5pY2h0IG51ciBXQy1NaXRnbGllZGVyIGRhcmFuIHRlaWxuZWhtZW4gZHVlcmZlbiwgc3RlaHQKZGllc2UgTmV3cyBpbiBBbnplaWdlbgoKTWl0bWFjaGVuIGthbm4gamVkZXIgU3BpZWxlciB1bmQgU2VoZXIsIE1hZ2llciBzaW5kIHZvbgpkZXIgVGVpbG5haG1lIGF1c2dlc2NobG9zc2VuLgoKRGllIFNjaG5pdHplbGphZGcgd2lyZCBzbyBhYmxhdWZlbiwgZGFzcyBlaW4gV29scGVydGluZ2VyIHZvbgplaW5lbSBNYWdpZXIgdW5zZXJlcyBWZXJ0cmF1ZW5zIGFuIGVpbmVtIHVucyBiZWthbm50ZW4gT3J0CmltIE1vcmdlbmdyYXVlbiB2ZXJzdGVja3Qgd2VyZGVuIHdpcmQhIChrZWluIE9ydCwgZGVyIGVyc3QgbmFjaApMb2VzZW4gZWluZXIgUXVlc3QgZXJyZWljaGJhciB3aXJkLCBzb25kZXJuIGplZGVtIHp1Z2FlbmdsaWNoISkKCkltIExhdWZlIGRlcyBTcGllbHMgd2VyZGVuIEhpbndlaXNlIGF1ZiBkZW4gQXVmZW50aGFsdHNvcnQKZGVzIFdvbHBpZXMgZ2VnZWJlbiwgZGllIG1pdCBkZXIgWmVpdCBnZW5hdWVyIHdlcmRlbi4KCkRlcmplbmlnZSwgZGVyIGRlbiBXb2xwaWUgenVlcnN0IGZpbmRldCwgZGFyZiBkYW1pdCBtYWNoZW4sCndhcyBlciB3aWxsIChzb2xsdGUgZGVyIFdvbHBpZSBnZXBsYWV0dGV0IHdlcmRlbiwgaXN0IGFscwpCZXdlaXMgZGVyIGdlbG9lc3RlbiBBdWZnYWJlIGRhcyBGZWxsLCBkYXNzIGVyIGJlaXNpY2ggaGF0LAp2b3J6dWxlZ2VuISkKCkJlbG9obnVuZzogenVtIGVpbmVuIGVpbiB6d2VpdHdvbHBlcnRpbmdlciBiencgd29scGVydGluZ2VyZmVsbAoKenVtIHp3ZWl0ZW4sIHVuZCBkYXMgbWFjaHQgZGllc2VuIHdldHRrYW1wZiBmdWVyIHNwaWVsZXIKYXR0cmFrdGl2OgoKc2V0enQgZGVyIFZvcnN0YW5kc3ZvcnNpdHplbmRlIGVpbmUgQmVsb2hudW5nIHZvbiA1MC4wMDAgKGluCldvcnRlbiA1MCAwMDApICQgYXVzCgooV2VubiBhbmRlcmUgRm9lcmRlcmVyIGRlciBGZ3cgb2RlciBkZXMgV0NzIGRpZXNlbiBCZXRyYWcgZXJob2VoZW4KbW9lY2h0ZW4sIGJpdHRlIHNwZW5kZW4gYmVpIFZvbGtzYmFuayBhYmdlYmVuISkKCgpHdWxEdWthdAoxLlZvcnNpdHplbmRlciBkZXMgV0MKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaXNoZXJpZ2UgQW5tZWxkdW5nZW4gKENhdHdlYXpsZSwgMjEuIEZlYiAxOTk1LCAyMzozNTowOSk6CkhpIQpGdWVyIGRlbiBTZWhlcndldHRiZXdlcmIgaGFiZW4gc2loYyBiaXNoZXIgZm9sZ2VuZGUgTGV1dGUgYW5nZW1lbGRldDoKClRocm9pbiwgTXlzdGl4IChhdXNzZXIgS29ua3VyZW56LCBkYSBtaXR0bGVyd2VpbGUgTWFnaWVyKSwgTWFnaWNPbGxpLApGcnlkZXIsIEd1bGR1a2F0LCBIYXJkaWwsIEJsZWVsdW1wZSwgS2hvcm5lLCBZb2doc290aG90aCwgQ3JlYXRpdmUsCktsb25rLCBBbmFraW4sIFJ1ZGlyYXR0ZXIsIEJhbWJ1bGtvLCBQcmlhbW9zLCBBc21vZGlzLCBLb3R6YnJvY2tlbiwKV2FobiwgKFplcGh5ciwgQW5hdG9sKSwgKFJheSwgQWFyZ29uLCBFZCksIFJ5bmUuCgpGYWxscyBkZWluIE5hbWUgbmljaHQgaW4gZGllc2VyIExpc3RlIHN0ZWh0LCBEdSBkaWNoIGFiZXIgc2Nob24gYW5nZW1lbGRldApoYXN0LCBzbyBzY2hpY2sgbWlyIGF1ZiBqZWRlbiBGYWxsIF9kcmluZ2Vuc3RfIGVpbmUgTXVkbWFpbC4KRmFsbHMgRHUgbWl0bWFjaGVuIG1vZWNodGVzdCBiZWltIFNlaGVyaGF1c3dldHRiZXdlcmIsIER1IGFiZXIgbm9jaApuaWNodCBhdWYgZGllc2VyIExpc3RlIHN0ZWhzdCwgc28gc2NoaWNrIG1pciBlYmVuZmFsbHMgZWluZSBNYWlsLgpBbiBkaWVzZXIgU3RlbGxlIG1vZWNodGUgaWNoIGRhcmF1ZiBoaW53ZWlzZW4sIGRhc3MgZGllIFNlaGVyaGFldXNlciBhYgpkZW0gMS4gTWFlcnogYmVndXRhY2h0ZXQgd2VyZGVuLCBkYXMgaXN0IGluIGVpbmVyIFdvY2hlLiBEYXMgaXN0IGF1Y2gKZGVyIGxldHp0ZSBUZXJtaW4gZnVlciBBbm1lbGR1bmdlbi4KSWNoIG5laG1lIGFuLCBkYXMgZGllIEJlcndlcnR1bmcgZXIgSGFldXNlciBkYW5uIG1pbmRlc3RlbnMgbm9jaCAyCldvY2hlbiBkYXVlcnQsIGViZW4gd2VpbCBlcyBzbyB2aWVsZSBzaW5kIHVuZCB3ZWlsIHdpciBhdXNzZXJkZW0gNQpHZXdpbm5rYXRlZ29yaWVuIGhhYmVuLgpZb3VycyB0cnVseSwKICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBlcnN0ZSB3b2xwaWUgc2Nobml0emVscmFsbGxleSAoR3VsZHVrYXQsIDIyLiBGZWIgMTk5NSwgMTA6NTI6MzgpOgojISBybj1HdWxkdWthdCBydD03OTMzNjMxMjQKU28sIGRlciBUZXJtaW4gc3RlaHQgZmVzdDogZGllIFNjaG5pdHplbGphZ2QgZmluZGV0IGhldXRlLCBtaXR0d29jaCB1bSAxNzMwCnN0YXR0IQoKRGVyIHp3ZWl0ZSBWb3JzdGl6ZW5kZSBoYXQgZGFzIFByZWlzZ2VsZCBub2NobWFsIHVtIDUwMDAwICQgZXJob2VodCwgc28KZGFzcyBqZXR6dCBpbnNnZXNhbXQgMTAwMDAwIE11ZW56ZW4gZGVyIEdld2lubmVyIHNlaW4gZWlnZW4gbmVubmVuIGthbm4hCkplZGVyIGthbm4gbWl0c3BpZWxlbiEKV29scGVyIFdvbHBlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGV0enRlciBUZXJtaW4gZnVlciBkZW4gV2V0dGJld2VyYiAoQ2F0d2VhemxlLCAyOC4gRmViIDE5OTUsIDA5OjUyOjQwKToKSGkhClNvLCBtb3JnZW4gZ2VodHMgYWxzbyBsb3MuCkFiIG1vcmdlbiB3aXJkIGRpZSBKdXJ5IGR1cmNoIGRpZSBhbmdlbWVsZGV0ZW4gSGFldXNlciBzdG9lYmVybi4KQW5nZW1lbGRldCBzaW5kOgpUZWlsbmVobWVyIDogICAgLXRocm9pbgogICAgICAgICAgICAgICAgLW15c3RpeCAobWFnaWVyLCBvdXQgb2Ygd2VydHVuZykKICAgICAgICAgICAgICAgIC1NYWdpY09sbGkKICAgICAgICAgICAgICAgIC1GcnlkZXIKICAgICAgICAgICAgICAgIC1HdWxkdWthdAogICAgICAgICAgICAgICAgLUhhcmRpbCwgVHp1aW9wCiAgICAgICAgICAgICAgICAtQmxlZWx1bXBlCiAgICAgICAgICAgICAgICAtS2hvcm5lCiAgICAgICAgICAgICAgICAtWW9naHNvdGhvdGgKICAgICAgICAgICAgICAgIC1DcmVhdGl2ZQogICAgICAgICAgICAgICAgLUtsb25rCiAgICAgICAgICAgICAgICAtQW5ha2luCiAgICAgICAgICAgICAgICAtUnVkaXJhdHRlcgogICAgICAgICAgICAgICAgLUJhbWJ1bGtvCiAgICAgICAgICAgICAgICAtUHJpYW1vcwogICAgICAgICAgICAgICAgLUFzbW9kaXMKICAgICAgICAgICAgICAgIC1XYWhuCiAgICAgICAgICAgICAgICAtWmVwaHlyLCBBbmF0b2wKICAgICAgICAgICAgICAgIC1SYXksIEFhcmdvbiwgRWQKICAgICAgICAgICAgICAgIC1SeW5lCiAgICAgICAgICAgICAgICAtU3RhaGxkb3JuCiAgICAgICAgICAgICAgICAtRmVsYWd1bmQKCldlciBub2NoIG5pY2h0IGFuZ2VtZWxkZXQgaXN0LCBhYmVyIG1pdG1hY2hlbiBtb2VjaHRlLCBoZXV0ZSBpc3QgbGV0enRlcgpBbm1lbGRldGFnLiBXZXIgc2ljaCBhbmdlbWVsZGV0IGhhdCwgYWJlciBuaWNodCBhdWYgZGVyIExpc3RlIHN0ZWh0LAptaXIgQmVzY2hlaWQgc2FnZW4uCgpEaWUgSnVyeSB3aXJkIHNpY2ggMTAgVGFnZSBsYW5nIGRpZSBIYWV1c2VyIGFuc2VoZW4gKGljaCBob2ZmZSwgYmlzIGRhaGluCmhhYmVuIGFsbGUgYWxsZSBIYWV1c2VyIGdlc2VoZW4pIHVuZCBkYW5uIGVpbmUgRW50c2NoZWlkdW5nIHRyZWZmZW4sIHdlbGNoZXMKSGF1cyBpbiB3ZWxjaGVyIEthdGVnb3JpZSBnZXdpbm50LiBEYXMgZGF1ZXJ0IGV2dGwuIDMtNCBUYWdlLCBkaWUgR2V3aW5uZXIKd2VyZGVuIGFsc28gYW0gMTUuTWFlcnogYmVrYW5udCBnZWdlYmVuLgpWaWVsIFNwYXNzIDopCllvdXJzIHRydWx5LAogICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhZ2dsZS1RdWVzdCAoRnJhZ2dsZSwgMjguIEZlYiAxOTk1LCAxNzowNjowMSk6CkhpIQpFaW5lIGt1cnplIFdhcm51bmcgcHVua3RvIFJlZCBGcmFnZ2xlOgoKQWxzIEZST1NDSCBpc3QgZXMgZGVyemVpdCBuaWNodCBtb2VnbGljaCwgUmVkIHp1IGJlZnJlaWVuLAppY2ggaG9mZmUgZGFzIGJhbGQga29ycmllZ2llcmVuIHp1IGtvZW5uZW4uCgpTb3JyeQpGcmFnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnJhZ2dsZS1RdWVzdCAoR3VsZHVrYXQsICAxLiBNYXIgMTk5NSwgMTM6MDk6MDkpOgojISBybj1GcmFnZ2xlIHJ0PTc5Mzk4NzU2MQpEaWUgV29scGV0aW5nZXIgUXVlc3QgZ2VodCBhbHMgZnJvc2NoIGF1Y2ggbmljaHQhCkRlciBab21iaWV3b2xwaWUga3JpZWd0IGVpbmVuIG1lZ2EgZXJyb3I6IGVyIGdyZWlmdCBkaWNoIG5pY2h0IGFuIQpXZW5uIG1hbiBzZWxic3QgYW5ncmVpZnQsIGdpbmcgYmVpIG1pciAoemVpdGllKSBmb2xnZW5kZXMgbG9zOgpEdSB0cmlmZnN0IGRlbiBXb2xwaWUKRGVyIEdhbWVkcml2ZXIgdGVpbHQgZGlyIG1pdCwgZGVpbiBoZXJ6c2hsYWcgc2V0enQgYXVzCkRlciBHYW1lZHJpdmVyIHRlaWx0IGRpciBtaXQsIGRlaW4gaGVyenNjaGxhZyBzZXR6dCB3aWVkZXIgZWluCkR1IHRyaWZmc3QgZGVuIFdvbHBpZQpldGMgaW4gZWluZXIgZW5kbG9zc2NobGVpZmUKCkVpbiBuaWVkbGljaGVyIFdvbHBpZSBmb2xndCBkaXIgbmljaHQsIHNhZ3QgYXVjaCBuaWNodCBIYWxsbyBvbmtlbCBmcm9zY2gKb2RlciBzb3dhcywgc29uZGVybiBzaXR6dCBudXIgYmxvZWQgcnVtIQoKR3VsRHVrYXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGcmFnZ2xlLVF1ZXN0IChGZWxhZ3VuZCwgIDEuIE1hciAxOTk1LCAxMzo1NDo1NCk6CiMhIHJuPUZyYWdnbGUgcnQ9NzkzOTg3NTYxCkhhdCBzY2hvbm1hbCBqZW1hZCB2ZXJzdWNodCxhbHMgRnJvc2NoIG1pdCBuZW0gU2VlbGVmYW50ZW4genUgc2luZ2VuPz8/PwpJcyBzY2hvbiBTRUhSIGx1c3RpZywgZW5uIG1hbiBkYW5uIGFscyBncnVlYmVsdCwgd2FzIG1hbiBkZW5uIHN5bnRheG1hZXNzaWcKZmFsc2NoIGdlbWFjaHQgaGF0LCBvYndvaGwgbWFuIGRpZSBRdWVzdCBkb2NoIHNjaG9uIG1pdCAyIGFuZGVyZW4gQ2hhcmFrdGVyZW4KZ2VtYWNodCBoYXQuLi4KWVRGCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXJ3b2VsZmUgdW5kIFpvbWJpZXMgKEZyYWdnbGUsICAxLiBNYXIgMTk5NSwgMTc6MDE6MTIpOgpBY2h0dW5nISBXYXJudW5nIQpEYXMgYW5ncmVpZmVuIHZvbiBab21iaWVzIG9kZXIgV2Vyd29lbGZlbiB2b24gU3BpZWxlcm4gaXN0IGRlcnplaXQgQUVVU1NFUlNUCnVuZ2VzdW5kICEhISEKCkZyYWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkljaCBrbGFnZSBhbiEgOikgKEZsaW50bmFpbCwgIDEuIE1hciAxOTk1LCAyMDowNzowNSk6CgoKIERlciBTY2h1ZnQsIGRlciBnbGF1YnQsIGRhc3MgNDh1bmlyZ2VuZHdhcyBNdWVuemVuIGluIGRlciBOYWVoZSAobmljaHQgaW0hKQpFbGZlbmRvcmYga2VpbmVuIEJlc2l0emVyIGhhdHRlbiwgaXN0IGVpbiBTY2h1ZnQgdW5kIHdpcmQgaW4gbWVpbmVuIEF1Z2VuCmltbWVyIGVpbiBTY2h1ZnQgYmxlaWJlbiwgYmlzIGVyIG1pciBkaWUgS29obGUgenVydWVja2dpYnQhCgogIFdhcyBzaW5kIGRhcyBmdWVyIFplaXRlbi4uLgogICAgIC4uLndvIG1hbiBzZWluIEdlbGQgbmljaHQgbWVociBmdWVyIDMwIFNla3VuZGVuIGhpbmxlZ2VuIGthbm4sCiAgICAgb2huZSBkYXNzIGVzIGlyZ2VuZHdlciBzdGlsbCB1bmQgaGVpbWxpY2ggc3RpZWhsdCEKCiAqc2V1ZnoqCgogJ1NjaHdlaW5ld2VsdCcgLi4uLjopCgoKICAgICBGbGludG5haWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFjaHR1bmcgV2VyYnVuZyAhIChPZXR0aSwgIDIuIE1hciAxOTk1LCAxNTowNTozNik6CkVzIGlzdCBkcmVpIFVociBuYWNodHMsIHVuIER1IHNpdHp0IGltbWVyIG5vY2ggYWxsZWluZSB2b3JtIEJpbGRzY2hpcm0uLi4KTmllbWFuZCBkZXIgRGljaCBya251ZGRlbHQsIG5pZW1hbmQgZGVyIERpciBydW1hcm10LCBuaWVtYW5kLi4uCkFCRVIgSEFMVCAhISEKV2FlaGxlIHRtIG9ldHRpIDY2IDY5IDY2IDY5CkZ1ZXIgZWluIG5pZXZhZXVsb3NlcywgYW5zcHJ1Y2hzbG9zZXMgR2VzcHJhZWNoLApTJk0sIFZIUywgT08sIGljaCBiaW4gaW1tZXIgZnVlciBEaWNoIGRhLgoKT2V0dGlsaW5lLCBqZXR6dCBuZXUgaW4gTUcsIHdhZWhsZSB0bSBvZXR0aSA2NiA2OSA2NiA2OS4KdG0gb2V0dGkgNjYgNjkgNjYgNjkKSWNoIHdhcnRlIGF1ZiBEaWNoIDstKSkKCkJpdHRlIEJpdHRlIGxhc3MgbWljaC4uLgpsYXNzIG1pY2ggRGVpbiBTa2xhdmUgc2VpbiAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgotPT4gV09ITlVORyBJTiBNVUVOU1RFUiBHRVNVQ0hUIDw9LSAoTmFiaW5vbCwgIDMuIE1hciAxOTk1LCAxODo0NDowMCk6CkhhbGxvIE1HIFNwaWVsZXJJbm5lbi4KCkljaCBzdWNoZSwgd2VnZW4gVW5pd2VjaHNlbCwgZWluZSBXb2hudW5nIGluIE11ZW5zdGVyLgpPZGVyIGVpbmVuIFBsYXR6IGluIGVpbmVyIFdHLiBCaXMsIHVoLCA1MDAgRE0KCldlbm4gSWhyIGV0d2FzIGhhYnQgb2RlciBqbWQuIGtlbm50LCBkYW5uIGJpdHRlIGVpbmUga3VyemUgRW1haWwKYW4gbWljaC4KClJhbGYgT2VzdGVyZWljaCAgICAgICAgICAgICBvZXN0ZXJlaUBvcmlvbi5ocnouYmEtZnJlaWJlcmcuZGUKCgpWaWVsZW4gRGFuayEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnJhZ2dsZS1RdWVzdCAoRnJhZ2dsZSwgIDMuIE1hciAxOTk1LCAyMToxNjowNSk6CiMhIHJuPUd1bGR1a2F0IHJ0PTc5NDA1OTc0OQpEaWUgRnJhZ2dsZS1RdWVzdCBzb2xsdGUgamV0enQgYXVjaCBhbHMgRnJvc2NoIGxvZXNiYXIgc2Vpbi4KSGF0ZSBoYXQgUmVkIGRpZXNiZXp1ZWdsaWNoIGV0d2FzIGRyZXNzaWVydC4KR3J1c3MKRnJhZ2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlcndvZWxmZSB1bmQgWm9tYmllcyAoRnJhZ2dsZSwgIDMuIE1hciAxOTk1LCAyMToxODozMyk6CiMhIHJuPUZyYWdnbGUgcnQ9Nzk0MDczNjcyCkFjaHR1bmchIEVudHdhcm51bmchCkRhcyBhbmdyZWlmZW4gdm9uIFpvbWJpZXMgb2RlciBXZXJ3b2VsZmVuIHZvbiBTcGllbGVybiBpc3QgZGVyemVpdCBBRVVTU0VSU1QKdW5tb2VnbGljaCAuLi4gc29ycnksIEFzbW9kaXMgLCBzbyB3YXMgbmF0dWVybGljaCBuaWNodCBnZWRhY2h0IQpCb2VzIFNhY2hlIG1pdCBkZXIgUm9iZS4uLi4gSWNoIGJpbiBkYWZ1ZXIsIGRpZSBFUHMgenVydWVja3p1Z2ViZW4sIGRhcmZzCm5hdHVlcmxpY2ggc2VsYmVyIG5pY2h0Li4uIChudXIgc28gYWxzIFBsYWVkb3llcikKR3J1c3MKRnJhZ2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVVMtU2VuYXQgcGxhbnQgUmVzdHJpa3Rpb25lbiBnZWdlbiBJbnRlcm5ldCAoQmVybmFyZCwgIDYuIE1hciAxOTk1LCAyMToyOToxNSk6CkRlbSBVUy1TZW5hdCBsaWVndCBlaW4gR2VzZXR6ZW50d3VyZiB2b3IsIGRlciAnb2Jzem9lbmUsIHNjaG11dHppZ2UgdW5kCmFuc3RvZXNzaWdlJyBJbmZvcm1hdGlvbmVuIG1pdCBTdHJhZmUgYmVkcm9odCwgdW5kIHp3YXIgbmljaHQgbnVyIGRpZQpWZXJmYXNzZXIsIHNvbmRlcm4gYXVjaCBkaWUgJ1RyYWVnZXInLgpEYXMgUHJvYmxlbSBoaWVyYmVpIGlzdCBuaWNodCBudXIsIGRhc3MgJ29ic3pvZW4nLCAnc2NobXV0emlnJyB1bmQKJ2Fuc3RvZXNzaWcnIG5pY2h0IGRlZmluaWVydCB3ZXJkZW4gKGFsc28gZ2VodCBlcyBuYWNoIGRlbSBnZXN1bmRlbiBWb2xrcy0KZW1wZmluZGVuKSwgc29uZGVybiBhdWNoLCBkYXNzIGRpZSBUcmFlZ2VyIG1pdCBTdHJhZmUgdm9uIDEwMC4wMDAgRG9sbGFyCm9kZXIgMiBKYWhyZSBHZWZhZW5nbmlzIGJlc3RyYWZ0IHdlcmRlbiBrb2VubmVuLCB3b2JlaSAnVHJhZWdlcicgYXVmIGFsbGUKenV0cmlmZnQsIGRpZSBkaWVzZSBJbmZvcm1hdGlvbiBuaWNodCBzdG9wcGVuLCBlZ2FsLCBvYiBlcyBzaWNoIHVtIGVpbmVuCk5ld3MtQXJ0aWtlbCBvZGVyIGVpbmUgcHJpdmF0ZSBFLW1haWwgaGFuZGVsdC4KRGVyIFNlbmF0b3IsIGRlciBkaWVzZSBWb3JsYWdlIGVpbmdlYnJhY2h0IGhhdCwgd2lsbCBkYXMgSW50ZXJuZXQgbnVyCnNpY2hlciBmdWVyIE1pbmRlcmphZWhyaWdlIG1hY2hlbiwgZGllIHNpY2ggaW0gQ3liZXJzcGFjZSBiZXdlZ2VuLCBhYmVyCmRhcyBHZXNldHoga2FubiBlYmVuc29ndXQgZWluIFNjaHJpdHQgaW4gZGVuIHRvdGFsZW4gVWViZXJ3YWNodW5nc3N0YWF0CnNlaW47ICdUcmFlZ2VyJywgZGllICdvYnN6b2VuZSwgc2NobXV0emlnZSB1bmQgYW5zdG9lc3NpZ2UnIEluZm9ybWF0aW9uCndpcmtsaWNoIHN0b3BwZW4gd29sbGVuLCBtdWVzc3RlbiBkYW5uIGFsbGVzIHVlYmVyd2FjaGVuIHVuZCBJbmZvcm1hdGlvbgpnZW5laG1pZ2VuLCBiZXZvciBzaWUgZGVuIFZlcmFudHdvcnR1bmdzYmVyZWljaCBkZXMgJ1RyYWVnZXJzJyB2ZXJsYWVzc3QuCgpFcyBoYXQgc2ljaCBlaW5lIEluaXRpYXRpdmUgZ2ViaWxkZXQsIGRpZSBlaW5lIFBldGl0aW9uIHp1bSBTdG9wcCBkZXMKR2VzZXR6ZXMgZWluYnJpbmdlbiB3aWxsOyBkaWVzZSBJbml0aWF0aXZlIGthbm4gYXVjaCB2b24gTmljaHQtVVMtQnVlcmdlcm4KdW50ZXJzdHVldHp0IHdlcmRlbiAoYWxzIFplaWNoZW4gZGVyIE1pdC1iZXRyb2ZmZW5oZWl0LCB3ZW5uIGRpZXNlcyBHZXNldHoKaW4gS3JhZnQgdHJpdHQpLgoKR2VuYXVlcmVzIGlzdCB1bnRlciBodHRwOi8vd3d3LnBoYW50b20uY29tL35zbG93ZG9nIHp1IGxlc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFudGFzeS1CcmllZnNwaWVsIChJcmFzLCAxMC4gTWFyIDE5OTUsIDAyOjI1OjEwKToKSGFsbG8gSWhyLAoKTWFsIGVpbmUgTUctZnJlbWRlIEFuemVpZ2UgaW4gZGVyIG1wYS4gV2lyIChlaW5pZ2UgTGV1dGUsIGRhcnVudGVyIHZpZWxlCmhvZmZudW5nc3ZvbGxlIEFuZmFlbmdlciBhdXMgZGVtIE1vcmdlbmdyYXVlbiwgYWJlciBhdWNoIGVpbiBlY2h0ZXIgV2l6YXJkLAptYWNoZW4gZWluIEZhbnRhc3ktUHJvamVrdCBuYW1lbnMgTVlSQSwgd29iZWkgZGllIEdlc2NoaWNodGUgZGVyIFdlbHQgTXlyYSBpbgplaW5lbSBQb3N0c3BpZWwgbmFtZW5zIFdlbHQgZGVyIFdhYmVuIFdkVyBpbiBtb25hdGxpY2hlbiBTcGllbHp1ZWdlbiBzaW11bGllcnQKd2lyZC4gTmljaHRrb21tZXJ6aWVsbCBuYXR1ZXJsaWNoLiBXaWUgaW0gTUcgaXN0IGRhYmVpIGtyZWF0aXZlIE1pdGdlc3RhbHR1bmcKZGVyIFdlbHQsIHVtIHNpZSBzY2hvZW5lciB1bmQgaW50ZXJlc3NhbnRlciB6dSBtYWNoZW4sIGdlZnJhZ3QuCiAgIERhIGRlciBLb250aW5lbnQgWWhsbGdvcmQgbmV1IGJlbGVidCB3aXJkLCBzaW5kIGRvcnQgamV0enQgbm9jaCBzY2huZWxsCjUtNiBTcGllbHBvc2l0aW9uZW4gYWxzIEhlcnJzY2hlciBlaW5lcyBlaWdlbmVuIFJlaWNoZXMgenUgdmVyZ2ViZW4uIERpZSBSZWdlbAprb3N0ZXQgdWVicmlnZW5zIDEwLC0gdW5kIGJlaSAyMCwtL0phaHIgS29zdGVucGF1c2NoYWxlIGVpbiBTcGllbHp1ZyA1LC0gKGFsc28KYmVpIDYgWnVlZ2VuIDMwLC0vSmFocikuCiAgSW5mb3MgZ2lidCBlcyBhdWYgQW5mcmFnZSBiZWkgR3d5bmRvbiwgR2FydW5pYSwgWWxjcmVzdG9yLCBvZGVyIHBlciBlbWFpbAphbiAibXlyYUB1bmktdHVlYmluZ2VuLmRlIi4gT2RlciB0ZWxlZm9uaXNjaCBiZWkgV29sZmdhbmcgRy5XZXR0YWNoLCBUZWwuCjA3MDcxLzYwMDYyOS5bRFtEW0RbRFtEW0RbRFtEW0RbRFtEWy1bQ1tDW0NbQ1tDW0NbQ1tDW0NbQ1tDW0NbQ1tEW0QuCk5pY2h0ZGV1dHNjaGUgU3BpZWxlciAoYWxzbyBhdXMgZGVtIEF1c2xhbmQpIHNpbmQgd2lsbGtvbW1lbiwgZGV1dHNjaGUgYXVjaAo6LSkpCiAgIFdlciBzaWNoIGRhZnVlciBpbnRlcmVzc2llcnQsIGJpdHRlIEJBTEQgbWVsZGVuIChZaGxsZ29yZCB3aWxsIG5vY2ggaW0KTWFlcnogc3RhcnRlbikuICAgKnduaWsqIGdlei4gSXJhcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRndkOiBQZXRpdGlvbiBnZWdlbiBVUyBTZW5hdCBiaWxsICJDb21tdW5pY2F0aW9ucyBEZWNlbmN5IEFjdCIgKEtldG9zLCAxNC4gTWFyIDE5OTUsIDEzOjQyOjAxKToKRGllcyBpc3QgZWluZSBQZXRpdGlvbiBnZWdlbiBlaW4gR2VzZXR6IGRhcyBiYWxkIGltIFVTIFNlbmF0IHZlcmFic2NoaWVkZXQKd2VyZGVuIHNvbGwgdW5kIHdlbGNoZXMgZGllIEJlbnV0enVuZyBkZXMgSW50ZXJuZXQgcmVnbGVtdGllcmVuIHNvbGwuCkZhbGxzIGlociBkaWVzZSBQZXRpdGlvbiB1bnRlcnN0dWV0emVuIHdvbGx0LCBrb2VubnQgaWhyIHNpZSBiaXMgenVtIDE1LjMuOTUgCihtb3JnZW4pIG5vY2ggcGVyIGVtYWlsIHVudGVyc2NocmVpYmVuLiAKCihEaWVzIE1lbGR1bmcga2FtIHVlYmVyIGRhcyBTY2hsdW1iZXJnIGJ1bGl0aW4gYm9hcmQpCgoKPiBEYXRlOiBTdW4sIDEyIE1hciAxOTk1IDEwOjAwOjQ4ICswMDAwIChHTVQpCj4gRnJvbTogUENCQkBzZWRhbGlhLnNpbmV0LnNsYi5jb20KPiBTdWJqZWN0OiBQQ0JCOiAgTmV0d29yayBzdHJhbmd1bGF0aW9uIGJpbGwgaW4gVVMgU2VuYXRlLgo+IFRvOiBsZXhpc0Btb3Njb3cuZ2VvcXVlc3Quc2xiLmNvbQo+IENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhCSVQKPiBDb250ZW50LUxlbmd0aDogMjk5ODEKPiAKPiBGcm9tOiBHRVRNMzE6OlZBTktFTVBFTiAgICAiSGFucyB2YW4gS2VtcGVuIERJRSIgMTItTUFSLTE5OTUgMDk6MTQ6MTEuNzUKPiBUbzogICBTTkRTTjE6OlBDQkIKPiBDQzogICBWQU5LRU1QRU4KPiBTdWJqOiBOZXR3b3JrIHN0cmFuZ3VsYXRpb24gYmlsbCBpbiBVUyBTZW5hdGUuCj4gCj4gCj4gRm9sbG93aW5nIHRleHQgdGFrZW4gYWNyb3NzIGZyb20gRklETy1OZXR3b3JrOgo+IAo+IEFyZWEgOiAtLS0gQ1JPU1NQT1NUSU5HUy5CUyAtLS0KPiAKPiBEYXRlIDogTWFyIDA1ICc5NSwgMjE6MTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gPkZyb20gOiBHZXJkIFdlc3NlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI6MjQxLzU3MC4xMQo+IFRvICAgOiBBTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiBTdWJqIDogKioqIFVTIFNFTkFURSBXQU5UUyBUTyBDRU5TT1IgWU9VISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+IMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTECj4gLS0tLS0tLS0tLSBDb3BpZXMgdG8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gRW1wZmFlbmdlciA6IC9ERS9PUkcvQ0NDLCAvREUvQ09NTS9JTlRFUk5FVAo+IEtvcGllbiBhbiAgOiAvWi1ORVRaL1JFQ0hORVIvSUJNL0FMTEdFTUVJTiwgL1otTkVUWi9ORVRaV0VSS0UvQUxMR0VNRUlOCj4gS29waWVuIGFuICA6IC9ULU5FVFovUFJFU1NFTUlUVEVJTFVOR0VOLCAvU1VCV0FZL0RGVUUsIC9HVU4vR0VORVJBTAo+IEtvcGllbiBhbiAgOiAvRElOT0NPL0dFTkVSQUwsIC9ERS9DT01QL01JU0MsIC9ERS9DT01QL0lORk9TWVNURU1TCj4gS29waWVuIGFuICA6IC9ERS9DT01NL01JU0MsIC9DTC9QUkVTU0UvVElDS0VSLCAvQ0wvTUVESUVOL0FMTEdFTUVJTgo+IEtvcGllbiBhbiAgOiAvVElNQi9OT0RFUwo+IEFic2VuZGVyICAgOiB0aGVwb2V0QG5ldGNvbS5jb20gIChSSUNIQVJEIE1JTExFUikKPiBCZXRyZWZmICAgIDogKioqVVMgU0VOQVRFIFdBTlRTIFRPIENFTlNPUiBZT1UhCj4gRGF0dW0gICAgICA6IFNhIDA0LjAzLjk1LCAwMTowOSAgKGVyaGFsdGVuOiAwNS4wMy45NSkKPiBHcm9lc3NlICAgIDogMjkxNDcgQnl0ZXMKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gUExFQVNFIFBMRUFTRSBQQVNTIFRISVMgQU5EIENST1NTIFBPU1QhIDYwIE1pbnV0ZXMgc2hvdyB5ZXN0ZXJkYXkgd2lsbAo+IG9ubHlnaXZlIHRoZXNlIHBvbGl0aWNhbCBjbG93bnMgdGhlIGZ1ZWwgdGhleSBuZWVkIHRvIHNodXQgdXMgZG93biEgSWYKPiB5b3V0aGluayB0aGlzIGlzIGEgam9rZSByZWFkIG9uIQo+IEFueW9uZSBrbm93IG9mIGEgZ29vZCB3YXkgdG8gYm9tYmFyZCB0aGVzZSBTZW5hdG9ycyBlLW1haWwuLi4uCj4gCj4gPkZyb20gZmFsa2pAYnZzZC5rMTIuY28udXMgTW9uIEZlYiAyNyAxMjoxMDoxMCAxOTk1IERhdGU6IE1vbiwgMjcgRmViIDE5OTUKPiAxMDo1ODo0MSAtMDcwMCAoTVNUKSBGcm9tOiBGYWxrIEp1c3RpbiA8ZmFsa2pAYnZzZC5rMTIuY28udXM+IFRvOgo+IHJtaXVnLWRpc2N1c3NAcm1pdWcub3JnIFN1YmplY3Q6IExPTkcgLSBQZXRpdGlvbiB0byBzdG9wIFMuMzE0LCB0aGUKPiAiQ29tbXVuaWNhdGlvbnMgRGVjZW5jeSBBY3QiICwgKGZ3ZCkKPiAKPiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0IHlvdSBtaWdodCB3YW50IHRvIHRha2UgYSBsb29rIGF0Li4uCj4gCj4gLSAtLS0tLSBiZWdpbiBmb3J3YXJkZWQgbWVzc2FnZQo+IAo+ICoqKiBETyBOT1QgRk9SV0FSRCBBRlRFUiBNQVJDSCAxNSwgMTk5NSAqKioKPiAKPiAqKiogUFJPVEVDVCBUSEUgSU5URVJORVQuIFJFQUQgVEhJUyBNRVNTQUdFICoqKgo+IAo+IFRoaXMgZG9jdW1lbnQgaXMgYW4gZWxlY3Ryb25pYyBQZXRpdGlvbiBTdGF0ZW1lbnQgdG8gdGhlCj4gVS5TLiBDb25ncmVzcyByZWdhcmRpbmcgcGVuZGluZyBsZWdpc2xhdGlvbiwgdGhlCj4gIkNvbW11bmljYXRpb25zIERlY2VuY3kgQWN0IG9mIDE5OTUiIChTLiAzMTQpIHdoaWNoIHdpbGwKPiBoYXZlLCBpZiBwYXNzZWQsIHZlcnkgc2VyaW91cyBuZWdhdGl2ZSByYW1pZmljYXRpb25zIGZvcgo+IGZyZWVkb20gb2YgZXhwcmVzc2lvbiBvbiBVc2VuZXQsIHRoZSBJbnRlcm5ldCwgYW5kIGFsbAo+IGVsZWN0cm9uaWMgbmV0d29ya3MuICBUaGUgcHJvcG9zZWQgbGVnaXNsYXRpb24gd291bGQgcmVtb3ZlCj4gZ3VhcmFudGVlcyBvZiBwcml2YWN5IGFuZCBmcmVlIHNwZWVjaCBvbiBhbGwgZWxlY3Ryb25pYwo+IG5ldHdvcmtzLCBpbmNsdWRpbmcgdGhlIEludGVybmV0LCBhbmQgbWF5IGV2ZW4gZWZmZWN0aXZlbHkKPiBjbG9zZSB0aGVtIGRvd24gYXMgYSBtZWRpdW0gdG8gZXhjaGFuZ2UgaWRlYXMgYW5kCj4gaW5mb3JtYXRpb24uCj4gCj4gRm9yIGFuIGV4Y2VsbGVudCBhbmFseXNpcyBvZiB0aGlzIEJpbGwgYnkgdGhlIENlbnRlciBmb3IKPiBEZW1vY3JhY3kgYW5kIFRlY2hub2xvZ3kgKENEVCksIHJlZmVyIHRvIHRoZSBBcHBlbmRpeAo+IGF0dGFjaGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBkb2N1bWVudC4gIFRoZSB0ZXh0IHRvIFMuIDMxNAo+IGlzIGFsc28gaW5jbHVkZWQgaW4gdGhpcyBBcHBlbmRpeC4KPiAKPiBUaGlzIGRvY3VtZW50IGlzIHNvbWV3aGF0IGxvbmcsIGJ1dCB0aGUgbGVuZ3RoIGlzIG5lY2Vzc2FyeQo+IHRvIGdpdmUgeW91IHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gbWFrZSBhbiBpbmZvcm1lZAo+IGRlY2lzaW9uLiAgVGltZSBpcyBvZiB0aGUgZXNzZW5jZSwgd2UgYXJlIGdvaW5nIHRvIHR1cm4KPiB0aGlzIHBldGl0aW9uIGFuZCB0aGUgc2lnbmF0dXJlcyBpbiBvbiAzLzE2Lzk1LCBzbyBpZiB5b3UKPiBhcmUgZ29pbmcgdG8gc2lnbiB0aGlzIHBsZWFzZSBkbyBzbyBBU0FQIG9yIGF0IGxlYXN0IGJlZm9yZQo+IG1pZG5pZ2h0IFdlZG5lc2RheSwgTWFyY2ggMTUsIDE5OTUuCj4gCj4gRXZlbiBpZiB5b3UgcmVhZCB0aGlzIHBldGl0aW9uIGFmdGVyIHRoZSBkdWUgZGF0ZSwgcGxlYXNlCj4gc3VibWl0IHlvdXIgc2lnbmF0dXJlIGFueXdheSBhcyB3ZSBleHBlY3QgQ29uZ3Jlc3MgdG8KPiBjb250aW51ZSBkZWJhdGluZyB0aGVzZSBpc3N1ZXMgaW4gdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZQo+IGFuZCB0aGUgbW9yZSBzaWduYXR1cmVzIHdlIGdldCwgdGhlIG1vcmUgaW5mbHVlbmNlIHRoZQo+IHBldGl0aW9uIHdpbGwgaGF2ZSBvbiBkaXNjdXNzaW9uLiAgQW5kIGV2ZW4gaWYgQ29uZ3Jlc3MKPiByZWplY3RzIFMuIDMxNCB3aGlsZSBzaWduYXR1cmVzIGFyZSBiZWluZyBnYXRoZXJlZCwgZG8KPiBzdWJtaXQgeW91ciBzaWduYXR1cmUgYW55d2F5IGZvciB0aGUgc2FtZSByZWFzb24uCj4gCj4gUGxlYXNlIGRvIHVwbG9hZCB0aGlzIHBldGl0aW9uIHN0YXRlbWVudCBhcyBzb29uIGFzCj4gcG9zc2libGUgdG8gYW55IEJCUyBhbmQgb24tbGluZSBzZXJ2aWNlIGluIHlvdXIgYXJlYS4KPiBJZiB5b3UgaGF2ZSBhY2Nlc3MgdG8gb25lIG9mIHRoZSBtYWpvciBuYXRpb25hbCBvbi1saW5lCj4gc2VydmljZXMgc3VjaCBhcyBDb21wdVNlcnZlLCBQcm9kaWd5LCBBT0wsIGV0Yy4sIGRvIHRyeQo+IHRvIHVwbG9hZCBpdCB0aGVyZS4gIFdlIGFyZSB0cnlpbmcgdG8gZ2V0IGF0IGxlYXN0IDUwMDAKPiBzaWduYXR1cmVzLiAgRXZlbiBtb3JlIHNpZ25hdHVyZXMgYXJlIGVudGlyZWx5IHBvc3NpYmxlCj4gaWYgd2UgZWFjaCBwdXQgaW4gYSBsaXR0bGUgZWZmb3J0IHRvIGluZm9ybSBvdGhlcnMsIHN1Y2gKPiBhcyBmcmllbmRzIGFuZCBjb3dvcmtlcnMsIGFib3V0IHRoZSBpbXBvcnRhbmNlIG9mIHRoaXMKPiBwZXRpdGlvbiB0byBlbGVjdHJvbmljIGZyZWVkb20gb2YgZXhwcmVzc2lvbi4KPiAKPiBIZXJlIGlzIGEgYnJpZWYgdGFibGUgb2YgY29udGVudHM6Cj4gCj4gKDEpIEludHJvZHVjdGlvbiAodGhpcyBzZWN0aW9uKQo+ICgyKSBUaGUgUGV0aXRpb24gU3RhdGVtZW50Cj4gKDMpIEluc3RydWN0aW9ucyBmb3Igc2lnbmluZyB0aGlzIHBldGl0aW9uCj4gKDQpIENyZWRpdHMKPiAoQXBwZW5kaXgpIEFuYWx5c2lzIGFuZCB0ZXh0IG9mIFMuIDMxNCAoTE9ORyBidXQgZXhjZWxsZW50KQo+IAo+IAo+ICoqKioqKigyKSBUaGUgUGV0aXRpb24gU3RhdGVtZW50Cj4gCj4gSW4gdW5pdGVkIHZvaWNlLCB3ZSBzaWduIHRoaXMgcGV0aXRpb24gYWdhaW5zdCBwYXNzYWdlIG9mIFMuIDMxNCAodGhlCj4gIkNvbW11bmljYXRpb25zIERlY2VuY3kgQWN0IG9mIDE5OTUiKSBmb3IgdGhlc2UgcmVhc29uczoKPiAKPiBTLiAzMTQgd291bGQgcHJvaGliaXQgbm90IG9ubHkgaW5kaXZpZHVhbCBzcGVlY2ggdGhhdCBpcyAib2JzY2VuZSwgbGV3ZCwKPiBsYXNjaXZpb3VzLCBmaWx0aHksIG9yIGluZGVjZW50IiwgYnV0IHdvdWxkIHByb2hpYml0IGFueSBwcm92aWRlciBvZgo+IHRlbGVjb21tdW5pY2F0aW9ucyBzZXJ2aWNlIGZyb20gY2Fycnlpbmcgc3VjaCB0cmFmZmljLCB1bmRlciB0aHJlYXQgb2YKPiBzdGlmZiBwZW5hbHR5LiAgRXZlbiBhc2lkZSBmcm9tIHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZyZWUgc3BlZWNoLCB0aGlzCj4gd291bGQgY2F1c2UgYW4gdW5kdWUgLSBhbmQgdW5qdXN0IC0gYnVyZGVuIHVwb24gb3BlcmF0b3JzIG9mIHRoZSB2YXJpb3VzCj4gdGVsZWNvbW11bmljYXRpb25zIHNlcnZpY2VzLiAgSW4gYSB0aW1lIHdoZW4gdGhlIGNpdGl6ZW5yeSBhbmQgdGhlaXIKPiBsYXdtYWtlcnMgYWxpa2UgYXJlIGNhbGxpbmcgZm9yIGFuZCBwYXNzaW5nICJubyB1bmZ1bmRlZCBtYW5kYXRlcyIgbGF3cwo+IHRvIHRoZSBiZW5lZml0IG9mIHRoZSBzdGF0ZXMsIGl0IGlzIHVuZm9ydHVuYXRlIHRoYXQgQ29uZ3Jlc3MgbWlnaHQgc2VlayB0bwo+IGltcG9zZSB1bmZ1bmRlZCBtYW5kYXRlcyB1cG9uIGJ1c2luZXNzZXMgdGhhdCBwcm92aWRlIHRoZSBmcmFtZXdvcmsgZm9yCj4gdGhlIGluZm9ybWF0aW9uIGFnZS4KPiAKPiBBbiBhZGRpdGlvbmFsIGFuZCBpbXBvcnRhbnQgY29uc2lkZXJhdGlvbiBpcyB0aGUgdGVjaG5pY2FsIGZlYXNpYmlsaXR5IG9mCj4gcmVxdWlyaW5nIHRoZSBzb3J0IG9mIG1vbml0b3JpbmcgdGhpcyBiaWxsIHdvdWxkIG5lY2Vzc2l0YXRlLiAgVGhlCj4gZmluYW5jaWFsIGJ1cmRlbiBpbiBhbmQgb2YgaXRzZWxmIC0gaW4gZWl0aGVyIG1hbnBvd2VyIG9yIHRlY2hub2xvZ3kgdG8KPiBoYW5kbGUgc3VjaCBtb25pdG9yaW5nIChpZiBldmVuIGxlZ2FsIHVuZGVyIHRoZSBFbGVjdHJvbmljIENvbW11bmljYXRpb25zCj4gUHJpdmFjeSBBY3QpIC0gd291bGQgbGlrZWx5IGNhdXNlIG1hbnkgc21hbGxlciBwcm92aWRlcnMgdG8gZ28gb3V0IG9mCj4gYnVzaW5lc3MsIGFuZCBtb3N0IGxhcmdlciBwcm92aWRlcnMgdG8gc2VyaW91c2x5IGN1cnRhaWwgdGhlaXIgc2VydmljZXMuCj4gCj4gVGhlIHRocmVhdCBvZiBzdWNoIHBlbmFsdHkgYWxvbmUgd291bGQgcmVzdWx0IGluIGEgY2hpbGxpbmcgZWZmZWN0IGluIHRoZQo+IHRlbGVjb21tdW5pY2F0aW9ucyBzZXJ2aWNlIGNvbW11bml0eSwgbm90IG9ubHkgcmVzdHJpY3RpbmcgdGhlIHR5cGVzIG9mCj4gc3BlZWNoIGV4cHJlc3NseSBmb3JiaWRkZW4gYnkgdGhlIGJpbGwsIGJ1dCBjcmVhdGluZyBhbiBlbnZpcm9ubWVudAo+IGNvbnRyYXJ5IHRvIHRoZSBDb25zdGl0dXRpb25hbCBwcmluY2lwbGVzIG9mIGZyZWUgc3BlZWNoLCBwcmVzcywgYW5kCj4gYXNzZW1ibHkgLSBwcmluY2lwbGVzIHdoaWNoIGVudGl0aWVzIHN1Y2ggYXMgdGhlIEludGVybmV0IGVtYm9keSBhcwo+IG5vdGhpbmcgaGFzIGJlZm9yZS4KPiAKPiBCeSBjb21wYXJpc29uLCBwbGFjaW5nIHRoZSBidXJkZW4gZm9yIGNvbnRlbnQgY29udHJvbCB1cG9uIGVhY2ggaW5kaXZpZHVhbAo+IHVzZXIgaXMgc3VycHJpc2luZ2x5IHNpbXBsZSBpbiB0aGUgb25saW5lIGFuZCBpbnRlcmFjdGl2ZSB3b3JsZCwgYW5kIHRoZXJlCj4gaXMgbm8gbGVnaXRpbWF0ZSByZWFzb24gdG8gc2hpZnQgdGhhdCBidXJkZW4gdG8gcHJvdmlkZXJzIHdobyBjYXJyeSB0aGF0Cj4gY29udGVudC4gIFVubGlrZSB0cmFkaXRpb25hbCBicm9hZGNhc3QgbWVkaWEsIG5ldHdvcmtlZCBtZWRpYSBpcwo+IGNvbXBhcmF0aXZlbHkgZWFzeSB0byBzY3JlZW4gb24gdGhlIHVzZXIgZW5kIC0gZ2l2aW5nIHRoZSByZWFkZXIsIHZpZXdlciwKPiBvciBwYXJ0aWNpcGFudCB1bnBhcmFsbGVsZWQgY29udHJvbCBvdmVyIGhpcyBvciBoZXIgb3duIGluZm9ybWF0aW9uCj4gZW52aXJvbm1lbnQuICBBbGwgd2l0aG91dCBpbXBhY3Rpbmcgb3IgcmVzdHJpY3Rpbmcgd2hhdCBhbnkgb3RoZXIgdXNlcgo+IHdpc2hlcyB0byBhY2Nlc3MuICBUaGlzIG1ha2VzIHJlZ3VsYXRpb24gc3VjaCBhcyB0aGF0IHRocmVhdGVuZWQgYnkgdGhpcwo+IFMuIDMxNCBzaW1wbHkgdW5uZWNlc3NhcnkuCj4gCj4gSW4gYWRkaXRpb24sIGR1cmluZyBhIHBlcmlvZCBvZiBldmVyLWluY3JlYXNpbmcgY29tbWVyY2lhbCBpbnRlcmVzdCBpbgo+IGFyZW5hcyBzdWNoIGFzIHRoZSBJbnRlcm5ldCwgcmVzdHJpY3Rpb24gYW5kIHJlZ3VsYXRpb24gb2YgY29udGVudCBvciB0aGUKPiBmbG93IG9mIHRyYWZmaWMgYWNyb3NzIHRoZSB2YXJpb3VzIHRlbGVjb21tdW5pY2F0aW9ucyBzZXJ2aWNlcyB3b3VsZCBoYXZlCj4gc2VyaW91cyBuZWdhdGl2ZSBlY29ub21pYyBlZmZlY3RzLiAgVGhlIHNvcnQgb2YgcmVndWxhdGlvbiBwcm9wb3NlZCBieSB0aGlzCj4gYmlsbCB3b3VsZCBzbG93IHRoZSBleHBsb3NpdmUgZ3Jvd3RoIHRoZSBJbnRlcm5ldCBoYXMgc2VlbiwgZ2l2aW5nIHRoZQo+IGJ1c2luZXNzIGNvbW11bml0eSByZWFzb24gdG8gZG91YnQgdGhlIG1lZGl1bSdzIGNvbW1lcmNpYWwgYXBwZWFsLgo+IAo+IFdlIGFzayB0aGF0IHRoZSBTZW5hdGUgaGFsdCBhbnkgZnVydGhlciBwcm9ncmVzcyBvZiB0aGlzIGJpbGwuICBXZSBhc2sKPiB0aGF0IHRoZSBTZW5hdGUgYmUgYW4gZXhhbXBsZSB0byBDb25ncmVzcyBhcyBhIHdob2xlLCBhbmQgdG8gdGhlIG5hdGlvbgo+IGF0IGxhcmdlIC0gdG8gcHJvbW90ZSB0aGUgZ2VuZXJhbCB3ZWxmYXJlIGFzIHN0YXRlZCBpbiB0aGUgUHJlYW1ibGUgdG8KPiB0aGUgQ29uc3RpdHV0aW9uIGJ5IHByb3RlY3RpbmcgdGhlIGZyZWUgZmxvdyBvZiBpbmZvcm1hdGlvbiBhbmQgaWRlYXMKPiBhY3Jvc3MgYWxsIG9mIG91ciB0ZWxlY29tbXVuaWNhdGlvbnMgc2VydmljZXMuCj4gCj4gCj4gKioqKioqKDMpIEluc3RydWN0aW9ucyBmb3Igc2lnbmluZyB0aGUgcGV0aXRpb24KPiAKPiAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAgICAgICAgICAgSW5zdHJ1Y3Rpb25zIGZvciBTaWduaW5nIFRoaXMgUGV0aXRpb24KPiAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAKPiBJdCBtdXN0IGZpcnN0IGJlIG5vdGVkIHRoYXQgdGhpcyBpcyBhIHBldGl0aW9uLCBub3QgYQo+IHZvdGUuICBCeSAic2lnbmluZyIgaXQgeW91IGFncmVlIHdpdGggKmFsbCogdGhlIHJlcXVlc3RzCj4gbWFkZSBpbiB0aGUgcGV0aXRpb24uICBJZiB5b3UgZG8gbm90IGFncmVlIHdpdGggZXZlcnl0aGluZwo+IGluIHRoaXMgcGV0aXRpb24sIHRoZW4geW91ciBvbmx5IHJlY291cnNlIGlzIHRvIG5vdCBzaWduCj4gaXQuCj4gCj4gSW4gYWRkaXRpb24sIGFsbCBlLW1haWwgc2lnbmF0dXJlcyB3aWxsIGJlIHN1Ym1pdHRlZCB0bwo+IENvbmdyZXNzLCB0aGUgUHJlc2lkZW50IG9mIHRoZSBVbml0ZWQgU3RhdGVzLCBhbmQgdGhlCj4gbmV3cyBtZWRpYS4KPiAKPiBJbmNsdWRpbmcgeW91ciBmdWxsIG5hbWUgaXMgb3B0aW9uYWwsIGJ1dCAqdmVyeSBoaWdobHkKPiBlbmNvdXJhZ2VkKiBhcyB0aGF0IHdvdWxkIGFkZCB0byB0aGUgZWZmZWN0aXZlbmVzcyBvZiB0aGUKPiBwZXRpdGlvbi4gIFNpZ25pbmcgdmlhIGFuIGFub255bW91cyByZW1haWxlciBpcyBoaWdobHkKPiBkaXNjb3VyYWdlZCwgYnV0IG5vdCBmb3JiaWRkZW4sIGFzIGFuIGF0dGVtcHQgd2lsbCBiZSBtYWRlCj4gdG8gc2VwYXJhdGVseSB0YWxseSBzaWduYXR1cmVzIGZyb20gYW5vbnltb3VzIHJlbWFpbGVycy4KPiAKPiBCZWNhdXNlIHRoaXMgaXMgYSBQZXRpdGlvbiB0byB0aGUgVS5TLiBDb25ncmVzcywgd2UgYXNrCj4gdGhhdCB5b3Ugc3RhdGUsIGFzIGluc3RydWN0ZWQgYmVsb3csIHdoZXRoZXIgb3Igbm90IHlvdQo+IGFyZSBhIFUuUy4gY2l0aXplbi4gIFdlIGRvIGVuY291cmFnZSBub24tVS5TLiBjaXRpemVucyB0bwo+IHNpZ24sIGJ1dCB0aGVpciBzaWduYXR1cmVzIHdpbGwgYmUgdGFsbGllZCBzZXBhcmF0ZWx5Lgo+IAo+IFNpZ25pbmcgdGhpcyBwZXRpdGlvbiBpcyBub3QgaGFyZCwgYnV0IHRvIG1ha2Ugc3VyZSB5b3VyCj4gc2lnbmF0dXJlIGlzIG5vdCBsb3N0IG9yIG1pc2NvdW50ZWQsIHBsZWFzZSBmb2xsb3cgdGhlc2UKPiBkaXJlY3Rpb25zIEVYQUNUTFk6Cj4gCj4gMSkgUHJlcGFyZSBhbiBlLW1haWwgbWVzc2FnZS4gIEluIHRoZSBtYWluIGJvZHkgKE5PVCB0aGUKPiBTdWJqZWN0IGxpbmUpIG9mIHlvdXIgZS1tYWlsIGluY2x1ZGUgdGhlIE9ORS1MSU5FIHN0YXRlbWVudDoKPiAKPiBTSUdORUQgPEludGVybmV0IGUtbWFpbCBhZGRyZXNzPiA8RnVsbCBuYW1lPiA8VVMgQ2l0aXplbj4KPiAKPiBZb3UgbmVlZCBub3QgaW5jbHVkZSB0aGUgIjwiIGFuZCAiPiIgY2hhcmFjdGVycy4gJ1NJR05FRCcKPiBzaG91bGQgYmUgY2FwaXRhbGl6ZWQuICBBcyBzdGF0ZWQgYWJvdmUsIHlvdXIgZnVsbCBuYW1lIGlzCj4gb3B0aW9uYWwsIGJ1dCBoaWdobHkgcmVjb21tZW5kZWQuICBJZiB5b3UgZG8gc3VwcGx5IHlvdXIKPiBuYW1lLCBwbGVhc2UgZG9uJ3QgdXNlIGEgcHNldWRvbnltIG9yIG5pY2tuYW1lLCBvciB5b3VyCj4gZmlyc3QgbmFtZSAtLSBpdCdzIGJldHRlciB0byBqdXN0IGxlYXZlIGl0IGJsYW5rIGlmIGl0J3MKPiBub3QgeW91ciBmdWxsIGFuZCByZWFsIG5hbWUuICBJZiB5b3UgYXJlIGEgVS5TLiBjaXRpemVuLAo+IHBsZWFzZSBpbmNsdWRlIGF0IHRoZSBlbmQgb2YgdGhlIHNpZ25hdHVyZSBsaW5lIGEgJ1lFUycsCj4gYW5kIGlmIHlvdSBhcmUgbm90LCBhICdOTycuICBBbGwgc2lnbmF0dXJlcyB3aWxsIGJlCj4gdGFsbGllZCB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGEgVS5TLiBDaXRpemVuCj4gCj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+IEV4YW1wbGU6IE15IGUtbWFpbCBzaWduYXR1cmUgd291bGQgYmU6Cj4gCj4gU0lHTkVEIGRhdmVAa2FjaGluYS5hbHRhZGVuYS5jYS51cyBEYXZlIEMuIEhheWVzIFlFUwo+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiAKPiAyKSBQbGVhc2UgRE9OJ1QgaW5jbHVkZSBhIGNvcHkgb2YgdGhpcyBwZXRpdGlvbiwgbm9yIGFueQo+IG90aGVyIHRleHQsIGluIHlvdXIgZS1tYWlsIG1lc3NhZ2UuICBJZiB5b3UgaGF2ZSBjb21tZW50cwo+IHRvIG1ha2UsIHNlbmQgZS1tYWlsIHRvIG1lIHBlcnNvbmFsbHksIGFuZCBOT1QgdG8gdGhlCj4gc3BlY2lhbCBwZXRpdGlvbiBlLW1haWwgc2lnbmF0dXJlIGFkZHJlc3MuCj4gCj4gMykgU2VuZCB5b3VyIGUtbWFpbCBtZXNzYWdlIGNvbnRhaW5pbmcgeW91ciBzaWduYXR1cmUgdG8KPiB0aGUgZm9sbG93aW5nIEludGVybmV0IGUtbWFpbCBhZGRyZXNzIGFuZCBOT1QgdG8gbWU6Cj4gCj4gICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAgICAgICAgICAgICAgICAgczMxNC1wZXRpdGlvbkBuZXRjb20uY29tCj4gICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAKPiA0KSBXaXRoaW4gYSBmZXcgZGF5cyBvZiByZWNlaXB0IG9mIHlvdXIgc2lnbmF0dXJlLCBhbgo+IGF1dG9tYXRlZCBhY2tub3dsZWRnbWVudCB3aWxsIGJlIGUtbWFpbGVkIHRvIHlvdSBmb3IgZS1tYWlsCj4gYWRkcmVzcyB2ZXJpZmljYXRpb24gcHVycG9zZXMuICBZb3UgZG8gbm90IG5lZWQgdG8gcmVzcG9uZCBvcgo+IHJlcGx5IHRvIHRoaXMgYWNrbm93bGVkZ2VtZW50IHdoZW4geW91IHJlY2VpdmUgaXQuICBXZSBtYXkKPiBhbHNvIGNvbnRhY3QgeW91IGFnYWluIGluIHRoZSBmdXR1cmUgc2hvdWxkIHdlIG5lZWQgbW9yZQo+IGluZm9ybWF0aW9uLCBzdWNoIGFzIHdobyB5b3VyIEhvdXNlIFJlcHJlc2VudGF0aXZlIGFuZAo+IFNlbmF0b3JzIGFyZSwgd2hpY2ggaXMgbm90IGFza2VkIGhlcmUgYXMgaXQgaXMgdW5jbGVhcgo+IHdoZXRoZXIgc3VjaCBpbmZvcm1hdGlvbiBpcyBuZWVkZWQuCj4gCj4gVGhhbmsgeW91IGZvciBzaWduaW5nIHRoaXMgcGV0aXRpb24hCj4gCj4gCj4gKioqKioqKDQpIENyZWRpdHMKPiAKPiBUaGUgcGV0aXRpb24gc3RhdGVtZW50IHdhcyB3cml0dGVuIGJ5IHNsb3dkb2cKPiA8c2xvd2RvZ0B3b29raWUubmV0Piwgc3VwZXIubmV0LmZyZWVkb20uZmlnaHRlci4KPiAKPiBUaGUgcmVzdCBvZiB0aGlzIGRvY3VtZW50IG1vc3RseSBjb2xsYXRlZCBmcm9tIHRoZSBuZXQKPiBieSBEYXZlIEhheWVzLCBuZXQuZnJlZWRvbS5maWdodGVyLgo+IAo+IE11Y2ggaGVscCBjYW1lIGZyb20gSm9uIE5vcmluZywgSU5GSiBhbmQKPiBzZWxmLnByb2NsYWltZWQubmV0LmFjdGl2aXN0IHdobyBtYWRlIGEgZmV3Cj4gc3VnZ2VzdGlvbnMgYW5kIHdpbGwgYmUgdGFsbHlpbmcgdGhlIHNpZ25hdHVyZXMuCj4gCj4gVGhhbmtzIHRvIHRoZSBFRkYgYW5kIENEVCBmb3IgdGhlIGV4Y2VsbGVudCBhbmFseXNpcyBvZgo+IHRoZSBiaWxsLgo+IAo+IChwLnMuLCBzZW5kIHlvdXIgc2lnbmF0dXJlIHRvIHMzMTQtcGV0aXRpb25AbmV0Y29tLmNvbSkKPiAKPiAKPiAqKioqKiooQXBwZW5kaXgpIEFuYWx5c2lzIGFuZCB0ZXh0IG9mIFMuIDMxNAo+IAo+IFtUaGlzIGFuYWx5c2lzIHByb3ZpZGVkIGJ5IHRoZSBDZW50ZXIgZm9yIERlbW9jcmFjeSBhbmQKPiBUZWNobm9sb2d5LCBhIG5vbi1wcm9maXQgcHVibGljIGludGVyZXN0IG9yZ2FuaXphdGlvbi4KPiBDRFQncyBtaXNzaW9uIGlzIHRvIGRldmVsb3AgYW5kIGFkdm9jYXRlIHB1YmxpYyBwb2xpY2llcwo+IHRoYXQgYWR2YW5jZSBDb25zdGl0dXRpb25hbCBjaXZpbCBsaWJlcnRpZXMgYW5kIGRlbW9jcmF0aWMKPiB2YWx1ZXMgaW4gbmV3IGNvbXB1dGVyIGFuZCBjb21tdW5pY2F0aW9ucyB0ZWNobm9sb2dpZXMuCj4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ0RULCBhc2sgSm9uYWggU2VpZ2VyCj4gPGpzZWlnZXJAY2R0Lm9yZz4uXQo+IAo+IENEVCBQT0xJQ1kgUE9TVCAyLzkvOTUKPiAKPiBTRU5BVE9SIEVYT04gSU5UUk9EVUNFUyBPTkxJTkUgSU5ERUNFTkNZIExFR0lTTEFUSU9OCj4gCj4gQS4gIE9WRVJWSUVXCj4gCj4gU2VuYXRvcnMgRXhvbiAoRC1ORSkgYW5kIFNlbmF0b3IgR29ydG9uIChSLVdBKSBoYXZlCj4gaW50cm9kdWNlZCBsZWdpc2xhdGlvbiB0byBleHBhbmQgY3VycmVudCBGQ0MgcmVndWxhdGlvbnMKPiBvbiBvYnNjZW5lIGFuZCBpbmRlY2VudCBhdWRpb3RleHQgdG8gY292ZXIgKmFsbCogY29udGVudAo+IGNhcnJpZWQgb3ZlciBhbGwgZm9ybXMgb2YgZWxlY3Ryb25pYyBjb21tdW5pY2F0aW9ucwo+IG5ldHdvcmtzLiAgSWYgZW5hY3RlZCwgdGhlICJDb21tdW5pY2F0aW9ucyBEZWNlbmN5IEFjdCBvZgo+IDE5OTUiIChTLiAzMTQpIHdvdWxkIHBsYWNlIHN1YnN0YW50aWFsIGNyaW1pbmFsIGxpYWJpbGl0eQo+IG9uIHRlbGVjb21tdW5pY2F0aW9ucyBzZXJ2aWNlIHByb3ZpZGVycyAoaW5jbHVkaW5nCj4gdGVsZXBob25lIG5ldHdvcmtzLCBjb21tZXJjaWFsIG9ubGluZSBzZXJ2aWNlcywgdGhlCj4gSW50ZXJuZXQsIGFuZCBpbmRlcGVuZGVudCBCQlMncykgaWYgdGhlaXIgbmV0d29yayBpcyB1c2VkCj4gaW4gdGhlIHRyYW5zbWlzc2lvbiBvZiBhbnkgaW5kZWNlbnQsIGxld2QsIHRocmVhdGVuaW5nIG9yCj4gaGFyYXNzaW5nIG1lc3NhZ2VzLiAgVGhlIGxlZ2lzbGF0aW9uIGlzIGlkZW50aWNhbCB0byBhCj4gcHJvcG9zYWwgb2ZmZXJlZCBieSBTZW5hdG9yIEV4b24gbGFzdCB5ZWFyIHdoaWNoIGZhaWxlZAo+IGFsb25nIHdpdGggdGhlIFNlbmF0ZSBUZWxlY29tbXVuaWNhdGlvbnMgcmVmb3JtIGJpbGwgKFMuCj4gMTgyMiwgMTAzcmQgQ29uZ3Jlc3MsIFNlY3Rpb25zIDgwMSAtIDgwNCkuIFRoZSB0ZXh0IHRoZQo+IHByb3Bvc2VkIHN0YXR1dGUsIHdpdGggcHJvcG9zZWQgYW1lbmRtZW50LCBpcyBhcHBlbmRlZCBhdAo+IHRoZSBlbmQgb2YgdGhpcyBkb2N1bWVudC4KPiAKPiBUaGUgYmlsbCB3b3VsZCBjb21wZWwgc2VydmljZSBwcm92aWRlcnMgdG8gY2hvc2UgYmV0d2Vlbgo+IHNldmVyZWx5IHJlc3RyaWN0aW5nIHRoZSBhY3Rpdml0aWVzIG9mIHRoZWlyIHN1YnNjcmliZXJzCj4gb3IgY29tcGxldGVseSBzaHV0dGluZyBkb3duIHRoZWlyIGVtYWlsLCBJbnRlcm5ldCBhY2Nlc3MsCj4gYW5kIGNvbmZlcmVuY2luZyBzZXJ2aWNlcyB1bmRlciB0aGUgdGhyZWF0IG9mIGNyaW1pbmFsCj4gbGlhYmlsaXR5LiAgTW9yZW92ZXIsIHNlcnZpY2UgcHJvdmlkZXJzIHdvdWxkIGJlIGZvcmNlZCB0bwo+IGNsb3NlbHkgbW9uaXRvciBldmVyeSBwcml2YXRlIGNvbW11bmljYXRpb24sIGVsZWN0cm9uaWMKPiBtYWlsIG1lc3NhZ2UsIHB1YmxpYyBmb3J1bSwgbWFpbGluZyBsaXN0LCBhbmQgZmlsZSBhcmNoaXZlCj4gY2FycmllZCBieSBvciBhdmFpbGFibGUgb24gdGhlaXIgbmV0d29yaywgYSBwcm9wb3NpdGlvbgo+IHdoaWNoIHBvc2VzIGEgc3Vic3RhbnRpYWwgdGhyZWF0IHRvIHRoZSBmcmVlZG9tIG9mIHNwZWVjaAo+IGFuZCBwcml2YWN5IHJpZ2h0cyBvZiBhbGwgQW1lcmljYW4gY2l0aXplbnMuCj4gCj4gUy4gMzE0LCBpZiBlbmFjdGVkLCB3b3VsZCByZXByZXNlbnQgYSB0cmVtZW5kb3VzIHN0ZXAKPiBiYWNrd2FyZHMgb24gdGhlIHBhdGggdG8gYSBmcmVlIGFuZCBvcGVuIE5hdGlvbmFsCj4gSW5mb3JtYXRpb24gSW5mcmFzdHJ1Y3R1cmUuICBUaGUgYmlsbCByYWlzZXMgZnVuZGFtZW50YWwKPiBxdWVzdGlvbnMgYWJvdXQgdGhlIGFiaWxpdHkgb2YgZ292ZXJubWVudCB0byBjb250cm9sCj4gY29udGVudCBvbiBjb21tdW5pY2F0aW9ucyBuZXR3b3JrcywgYXMgd2VsbCBhcyB0aGUgbG9jdXMKPiBvZiBsaWFiaWxpdHkgZm9yIGNvbnRlbnQgY2FycmllZCBpbiB0aGVzZSBuZXcKPiBjb21tdW5pY2F0aW9ucyBtZWRpYS4KPiAKPiBUbyBhZGRyZXNzIHRoaXMgdGhyZWF0IHRvIHRoZSBGaXJzdCBBbWVuZG1lbnQgaW4gZGlnaXRhbAo+IG1lZGlhLCBDRFQgaXMgd29ya2luZyB0byBvcmdhbml6ZSBhIGJyb2FkIGNvYWxpdGlvbiBvZgo+IHB1YmxpYyBpbnRlcmVzdCBvcmdhbml6YXRpb25zIGluY2x1ZGluZyB0aGUgQUNMVSwgUGVvcGxlCj4gRm9yIHRoZSBBbWVyaWNhbiBXYXksIGFuZCBNZWRpYSBBY2Nlc3MgUHJvamVjdCwgYWxvbmcgd2l0aAo+IHJlcHJlc2VudGF0aXZlcyBmcm9tIHRoZSB0ZWxlY29tbXVuaWNhdGlvbnMsIG9ubGluZQo+IHNlcnZpY2VzLCBhbmQgY29tcHV0ZXIgaW5kdXN0cmllcyB0byBvcHBvc2UgUy4gMzE0IGFuZCB0bwo+IGV4cGxvcmUgYWx0ZXJuYXRpdmUgcG9saWN5IHNvbHV0aW9ucyB0aGF0IHByZXNlcnZlIHRoZQo+IGZyZWUgZmxvdyBvZiBpbmZvcm1hdGlvbiBhbmQgZnJlZWRvbSBvZiBzcGVlY2ggaW4gdGhlCj4gb25saW5lIHdvcmxkLiAgQ0RUIGJlbGlldmVzIHRoYXQgdGVjaG5vbG9naWNhbAo+IGFsdGVybmF0aXZlcyB3aGljaCBhbGxvdyBpbmRpdmlkdWFsIHN1YnNjcmliZXJzIHRvIGNvbnRyb2wKPiB0aGUgY29udGVudCB0aGV5IHJlY2VpdmUgcmVwcmVzZW50IGEgbW9yZSBhcHByb3ByaWF0ZQo+IGFwcHJvYWNoIHRvIHRoaXMgaXNzdWUuCj4gCj4gCj4gQi4gIFNVTU1BUlkgQU5EIEFOQUxZU0lTIE9GIFMuIDMxNAo+IAo+IFMuIDMxNCB3b3VsZCBleHBhbmQgY3VycmVudCBsYXcgcmVzdHJpY3RpbmcgaW5kZWNlbmN5IGFuZAo+IGhhcmFzc21lbnQgb24gdGVsZXBob25lIHNlcnZpY2VzIHRvIGFsbCB0ZWxlY29tbXVuaWNhdGlvbnMKPiBwcm92aWRlcnMgYW5kIGV4cGFuZCBjcmltaW5hbCBsaWFiaWxpdHkgdG8gKmFsbCogY29udGVudAo+IGNhcnJpZWQgYnkgKmFsbCogZm9ybXMgb2YgdGVsZWNvbW11bmljYXRpb25zIG5ldHdvcmtzLgo+IFRoZSBiaWxsIHdvdWxkIGFtZW5kIFNlY3Rpb24gMjIzIG9mIHRoZSBDb21tdW5pY2F0aW9ucyBBY3QKPiAoNDcgVS5TLkMuIDIyMyksIHdoaWNoIHJlcXVpcmVzIGNhcnJpZXJzIHRvIHRha2Ugc3RlcHMgdG8KPiBwcmV2ZW50IG1pbm9ycyBmcm9tIGdhaW5pbmcgYWNjZXNzIHRvIGluZGVjZW50IGF1ZGlvdGV4dAo+IGFuZCBjcmltaW5hbGl6ZXMgaGFyYXNzbWVudCBhY2NvbXBsaXNoZWQgb3ZlciBpbnRlcnN0YXRlCj4gdGVsZXBob25lIGxpbmVzLiAgVGhpcyBzZWN0aW9uLCBjb21tb25seSBrbm93biBhcyB0aGUKPiBIZWxtcyBBbWVuZG1lbnQgKGhhdmluZyBiZWVuIGNoYW1waW9uZWQgYnkgU2VuYXRvciBKZXNzZQo+IEhlbG1zKSwgaGFzIGJlZW4gdGhlIHN1YmplY3Qgb2YgZXh0ZW5kZWQgQ29uc3RpdHV0aW9uYWwKPiBsaXRpZ2F0aW9uIGluIHJlY2VudCB5ZWFycy4KPiAKPiAqIENBUlJJRVJTIExJQUJMRSBGT1IgQ09ORFVDVCBPRiBBTEwgVVNFUlMgT04gVEhFSVIKPiAgIE5FVFdPUktTCj4gCj4gUy4gMzE0IHdvdWxkIG1ha2UgdGVsZWNvbW11bmljYXRpb24gY2FycmllcnMgKGluY2x1ZGluZwo+IHRlbGVwaG9uZSBjb21wYW5pZXMsIGNvbW1lcmNpYWwgb25saW5lIHNlcnZpY2VzLCB0aGUKPiBJbnRlcm5ldCwgYW5kIEJCUydzKSBsaWFibGUgZm9yIGV2ZXJ5IG1lc3NhZ2UsIGZpbGUsIG9yCj4gb3RoZXIgY29udGVudCBjYXJyaWVkIG9uIGl0cyBuZXR3b3JrIC0tIGluY2x1ZGluZyB0aGUKPiBwcml2YXRlIGNvbnZlcnNhdGlvbnMgb3IgbWVzc2FnZXMgZXhjaGFuZ2VkIGJldHdlZW4gdHdvCj4gY29uc2VudGluZyBpbmRpdmlkdWFscy4KPiAKPiBVbmRlciBTLiAzMTQsIGFueW9uZSB3aG8gIm1ha2VzLCB0cmFuc21pdHMsIG9yIG90aGVyd2lzZQo+IG1ha2VzIGF2YWlsYWJsZSBhbnkgY29tbWVudCwgcmVxdWVzdCwgc3VnZ2VzdGlvbiwKPiBwcm9wb3NhbCwgaW1hZ2UsIG9yIG90aGVyIGNvbW11bmljYXRpb24iIHdoaWNoIGlzCj4gIm9ic2NlbmUsIGxld2QsIGxhc2NpdmlvdXMsIGZpbHRoeSwgb3IgaW5kZWNlbnQiIHVzaW5nIGEKPiAidGVsZWNvbW11bmljYXRpb25zIGRldmljZSIgd291bGQgYmUgc3ViamVjdCB0byBhIGZpbmUgb2YKPiAkMTAwLDAwMCBvciB0d28geWVhcnMgaW4gcHJpc29uIChTZWN0aW9uICgyKShhKSkuCj4gCj4gSW4gb3JkZXIgdG8gYXZvaWQgbGlhYmlsaXR5IHVuZGVyIHRoaXMgcHJvdmlzaW9uLCBjYXJyaWVycwo+IHdvdWxkIGJlIGZvcmNlZCB0byBwcmUtc2NyZWVuIGFsbCBtZXNzYWdlcywgZmlsZXMsIG9yCj4gb3RoZXIgY29udGVudCBiZWZvcmUgdHJhbnNtaXR0aW5nIGl0IHRvIHRoZSBpbnRlbmRlZAo+IHJlY2lwaWVudC4gIENhcnJpZXJzIHdvdWxkIGFsc28gYmUgZm9yY2VkIHRvIHByZXZlbnQgb3IKPiBzZXZlcmVseSByZXN0cmljdCB0aGVpciBzdWJzY3JpYmVycyBmcm9tIGNvbW11bmljYXRpbmcKPiB3aXRoIGluZGl2aWR1YWxzIGFuZCBhY2Nlc3NpbmcgY29udGVudCBhdmFpbGFibGUgb24gb3RoZXIKPiBuZXR3b3Jrcy4KPiAKPiBFbGVjdHJvbmljIGNvbW11bmljYXRpb25zIG5ldHdvcmtzIGRvIG5vdCBjb250YWluIGRpc2NyZXRlCj4gYm91bmRhcmllcy4gIEluc3RlYWQsIHVzZXJzIG9mIG9uZSBzZXJ2aWNlIGNhbiBlYXNpbHkKPiBjb21tdW5pY2F0ZSB3aXRoIGFuZCBhY2Nlc3MgY29udGVudCBhdmFpbGFibGUgb24gb3RoZXIKPiBuZXR3b3Jrcy4gIFBsYWNpbmcgdGhlIG9udXMsIGFuZCBjcmltaW5hbCBsaWFiaWxpdHksIG9uCj4gdGhlIGNhcnJpZXIgYXMgb3Bwb3NlZCB0byB0aGUgb3JpZ2luYXRvciBvZiB0aGUgY29udGVudCwKPiB3b3VsZCBtYWtlIHRoZSBjYXJyaWVyIGxlZ2FsbHkgcmVzcG9uc2libGUgbm90IG9ubHkgZm9yCj4gdGhlIGNvbmR1Y3Qgb2YgaXRzIG93biBzdWJzY3JpYmVycywgYnV0IGFsc28gZm9yIGNvbnRlbnQKPiBnZW5lcmF0ZWQgYnkgc3Vic2NyaWJlcnMgb2Ygb3RoZXIgc2VydmljZXMuCj4gCj4gVGhpcyByZWd1bGF0b3J5IHNjaGVtZSBjbGVhcmx5IHBvc2VzIHNlcmlvdXMgdGhyZWF0cyB0bwo+IHRoZSBmcmVlIGZsb3cgb2YgaW5mb3JtYXRpb24gdGhyb3VnaG91dCB0aGUgb25saW5lIHdvcmxkCj4gYW5kIHRoZSBmcmVlIHNwZWVjaCBhbmQgcHJpdmFjeSByaWdodHMgb2YgaW5kaXZpZHVhbAo+IHVzZXJzLiAgRm9yY2luZyBjYXJyaWVycyB0byBwcmUtc2NyZWVuIGNvbnRlbnQgd291bGQgbm90Cj4gb25seSBiZSBpbXBvc3NpYmxlIGR1ZSB0byB0aGUgc2hlZXIgdm9sdW1lIG9mIG1lc3NhZ2VzLCBpdAo+IHdvdWxkIGFsc28gdmlvbGF0ZSBjdXJyZW50IGxlZ2FsIHByb3RlY3Rpb25zLgo+IAo+ICogQ0FSUklFUlMgUkVRVUlSRUQgVE8gQUNUIEFTIFBSSVZBVEUgQ0VOU09SIE9GIEFMTAo+ICAgUFVCTElDIEZPUlVNUyBBTkQgQVJDSElWRVMKPiAKPiBTLiAzMTQgd291bGQgYWxzbyBleHBhbmQgY3VycmVudCByZXN0cmljdGlvbnMgb24gYWNjZXNzIHRvCj4gaW5kZWNlbnQgdGVsZXBob25lIGF1ZGlvdGV4dCBzZXJ2aWNlcyBieSBtaW5vcnMgdW5kZXIgdGhlCj4gYWdlIG9mIDE4IHRvIGNvdmVyIHNpbWlsYXIgY29udGVudCBjYXJyaWVkIGJ5Cj4gdGVsZWNvbW11bmljYXRpb25zIHNlcnZpY2VzIChzdWNoIGFzIEFtZXJpY2EgT25saW5lIGFuZAo+IHRoZSBJbnRlcm5ldCkuICAoU2VjIChhKSg0KSkuCj4gCj4gQXMgYW1lbmRlZCBieSB0aGlzIHByb3Zpc2lvbiwgYW55b25lIHdobywgImJ5IG1lYW5zIG9mCj4gdGVsZXBob25lIG9yIHRlbGVjb21tdW5pY2F0aW9ucyBkZXZpY2UsIG1ha2VzLCB0cmFuc21pdHMsCj4gb3Igb3RoZXJ3aXNlIG1ha2VzIGF2YWlsYWJsZSAoZGlyZWN0bHkgb3IgYnkgcmVjb3JkaW5nCj4gZGV2aWNlKSBhbnkgaW5kZWNlbnQgY29tbXVuaWNhdGlvbiBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcwo+IHdoaWNoIGlzIGF2YWlsYWJsZSB0byBhbnkgcGVyc29uIHVuZGVyIHRoZSBhZ2Ugb2YgMTggeWVhcnMKPiBvZiBhZ2Ugb3IgdG8gYW55IG90aGVyIHBlcnNvbiB3aXRob3V0IHRoYXQgcGVyc29uJ3MKPiBjb25zZW50LCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIG1ha2VyIG9mIHN1Y2gKPiBjb21tdW5pY2F0aW9uIHBsYWNlZCB0aGUgY2FsbCBvciBpbml0aWF0ZWQgdGhlCj4gY29tbXVuaWNhdGlvbiIgd291bGQgYmUgc3ViamVjdCBvZiBhIGZpbmUgb2YgJDEwMCwwMDAgb3IKPiB0d28geWVhcnMgaW4gcHJpc29uLgo+IAo+IFRoaXMgd291bGQgZm9yY2UgY2FycmllcyB0byBhY3QgYXMgcHJpdmF0ZSBjZW5zb3JzIG9mIGFsbAo+IGNvbnRlbnQgYXZhaWxhYmxlIGluIHB1YmxpYyBmb3J1bXMgb3IgZmlsZSBhcmNoaXZlcyBvbgo+IHRoZWlyIG5ldHdvcmtzLiAgTW9yZW92ZXIsIGJlY2F1c2UgdGhlcmUgaXMgbm8gY2xlYXIKPiBkZWZpbml0aW9uIG9mIGluZGVjZW5jeSwgY2FycmllcnMgd291bGQgaGF2ZSB0byByZXN0cmljdAo+IGFjY2VzcyB0byBhbnkgY29udGVudCB0aGF0IGNvdWxkIGJlIHBvc3NpYmx5IGNvbnN0cnVlZCBhcwo+IGluZGVjZW50IG9yIG9ic2NlbmUgdW5kZXIgdGhlIGJyb2FkZXN0IGludGVycHJldGF0aW9uIG9mCj4gdGhlIHRlcm0uIFB1YmxpYyBmb3J1bXMsIGRpc2N1c3Npb24gbGlzdHMsIGZpbGUgYXJjaGl2ZXMsCj4gYW5kIGNvbnRlbnQgYXZhaWxhYmxlIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzIHdvdWxkIGhhdmUKPiB0byBiZSBtZXRpY3Vsb3VzbHkgc2NyZWVuZWQgYW5kIGNlbnNvcmVkIGluIG9yZGVyIHRvIGF2b2lkCj4gcG90ZW50aWFsIGxpYWJpbGl0eSBmb3IgdGhlIGNhcnJpZXIuCj4gCj4gU3VjaCBhIHNjZW5hcmlvIHdvdWxkIHNldmVyZWx5IGxpbWl0IHRoZSBkaXZlcnNpdHkgb2YKPiBjb250ZW50IGF2YWlsYWJsZSBvbiBvbmxpbmUgbmV0d29ya3MsIGFuZCBsaW1pdCB0aGUKPiBlZGl0b3JpYWwgZnJlZWRvbSBvZiBpbmRlcGVuZGVudCBmb3J1bSBvcGVyYXRvcnMuCj4gCj4gQURESVRJT05BTCBOT1RBQkxFIFBST1ZJU0lPTlMKPiAKPiAqIEFNRU5ETUVOVCBUTyBFQ1BBCj4gCj4gU2VjdGlvbiAoNikgb2YgdGhlIGJpbGwgd291bGQgYW1lbmQgdGhlIEVsZWN0cm9uaWMKPiBDb21tdW5pY2F0aW9ucyBQcml2YWN5IEFjdCAoMTggVVNDIDI1MTEpIHRvIHByZXZlbnQgdGhlCj4gdW5hdXRob3JpemVkIGludGVyY2VwdGlvbiBhbmQgZGlzY2xvc3VyZSBvZiAiZGlnaXRhbAo+IGNvbW11bmljYXRpb25zIiAoU2VjLiA2KS4gIEhvd2V2ZXIsIGJlY2F1c2UgdGhlIHRlcm0KPiAiZGlnaXRhbCBjb21tdW5pY2F0aW9uIiBpcyBub3QgZGVmaW5lZCBhbmQgMTggVVNDIDI1MTEKPiBjdXJyZW50bHkgcHJldmVudHMgdW5hdXRob3JpemVkIGludGVyY2VwdGlvbiBhbmQKPiBkaXNjbG9zdXJlIG9mICJlbGVjdHJvbmljIGNvbW11bmljYXRpb25zIiAod2hpY2ggaW5jbHVkZXMKPiBlbGVjdHJvbmljIG1haWwgYW5kIG90aGVyIGZvcm1zIG9mIGNvbW11bmljYXRpb25zIGluCj4gZGlnaXRhbCBmb3JtKSwgdGhlIGVmZmVjdCBvZiB0aGlzIHByb3Zpc2lvbiBoYXMgbm8gY2xlYXIKPiBpbXBvcnRhbmNlLgo+IAo+ICogQ0FCTEUgT1BFUkFUT1JTIE1BWSBSRUZVU0UgSU5ERUNFTlQgUFVCTElDIEFDQ0VTUwo+ICAgUFJPR1JBTU1JTkcKPiAKPiBGaW5hbGx5LCBzZWN0aW9uICg4KSB3b3VsZCBhbWVuZCBzZWN0aW9ucyA2MTEgYW5kIDYxMiBvZgo+IHRoZSBDb21tdW5pY2F0aW9ucyBBY3QgKDQ3IFVTQyA2MTEgLSA2MTIpIHRvIGFsbG93IGFueQo+IGNhYmxlIG9wZXJhdG9yIHRvIHJlZnVzZSB0byBjYXJyeSBhbnkgcHVibGljIGFjY2VzcyBvcgo+IGxlYXNlZCBhY2Nlc3MgcHJvZ3JhbW1pbmcgd2hpY2ggY29udGFpbnMgIm9ic2Nlbml0eSwKPiBpbmRlY2VuY3ksIG9yIG51ZGl0eSIuCj4gCj4gQy4gIEFMVEVSTkFUSVZFUyBUTyBFWE9OOiBSRUNPR05JWkUgVEhFIFVOSVFVRSBVU0VSCj4gICAgIENPTlRST0wgQ0FQQUJJTElUSUVTIE9GIElOVEVSQUNUSVZFIE1FRElBCj4gCj4gR292ZXJubWVudCByZWd1bGF0aW9uIG9mIGNvbnRlbnQgaW4gdGhlIG1hc3MgbWVkaWEgaGFzCj4gYWx3YXlzIGJlZW4gY29uc2lkZXJlZCBlc3NlbnRpYWwgdG8gcHJvdGVjdCBjaGlsZHJlbiBmcm9tCj4gYWNjZXNzIHRvIHNleHVhbGx5LWV4cGxpY2l0IG1hdGVyaWFsLCBhbmQgdG8gcHJldmVudAo+IHVud2l0dGluZyBsaXN0ZW5lcnMvdmlld3MgZnJvbSBiZWluZyBleHBvc2VkIHRvIG1hdGVyaWFsCj4gdGhhdCBtaWdodCBiZSBjb25zaWRlcmVkIGV4dHJlbWVseSBkaXN0YXN0ZWZ1bC4gIFRoZQo+IGNob2ljZSB0byBwcm90ZWN0IGNoaWxkcmVuIGhhcyBoaXN0b3JpY2FsbHkgYmVlbiBtYWRlIGF0Cj4gdGhlIGV4cGVuc2Ugb2YgdGhlIEZpcnN0IEFtZW5kbWVudCBiYW4gb24gZ292ZXJubWVudAo+IGNlbnNvcnNoaXAuICBBcyBDb25ncmVzcyBtb3ZlcyB0byByZWd1bGF0ZSBuZXcgaW50ZXJhY3RpdmUKPiBtZWRpYSwgaXQgaXMgZXNzZW50aWFsIHRoYXQgaXQgdW5kZXJzdGFuZCB0aGF0IGludGVyYWN0aXZlCj4gbWVkaWEgaXMgZGlmZmVyZW50IHRoYW4gbWFzcyBtZWRpYS4gIFRoZSBwb3dlciBhbmQKPiBmbGV4aWJpbGl0eSBvZiBpbnRlcmFjdGl2ZSBtZWRpYSBvZmZlcnMgYSB1bmlxdWUKPiBvcHBvcnR1bml0eSB0byBlbmFibGUgcGFyZW50cyB0byBjb250cm9sIHdoYXQgY29udGVudAo+IHRoZWlyIGtpZHMgaGF2ZSBhY2Nlc3MgdG8sIGFuZCBsZWF2ZSB0aGUgZmxvdyBvZgo+IGluZm9ybWF0aW9uIGZyZWUgZm9yIHRob3NlIGFkdWx0cyB3aG8gd2FudCBpdC4gIEdvdmVybm1lbnQKPiBjb250cm9sIHJlZ3VsYXRpb24gaXMgc2ltcGx5IG5vdCBuZWVkZWQgdG8gYWNoaWV2ZSB0aGUKPiBkZXNpcmVkIHB1cnBvc2UuCj4gCj4gTW9zdCBpbnRlcmFjdGl2ZSB0ZWNobm9sb2d5LCBzdWNoIGFzIEludGVybmV0IGJyb3dzZXJzIGFuZAo+IHRoZSBzb2Z0d2FyZSB1c2VkIHRvIGFjY2VzcyBvbmxpbmUgc2VydmljZXMgc3VjaCBhcwo+IEFtZXJpY2EgT25saW5lIGFuZCBDb21wdXNlcnZlLCBhbHJlYWR5IGhhcyB0aGUgY2FwYWJpbGl0eQo+IHRvIGxpbWl0IGFjY2VzcyB0byBjZXJ0YWluIHR5cGVzIG9mIHNlcnZpY2VzIGFuZCBzZWxlY3RlZAo+IGluZm9ybWF0aW9uLiAgTW9yZW92ZXIsIHRoZSBlbGVjdHJvbmljIHByb2dyYW0gZ3VpZGVzCj4gYmVpbmcgZGV2ZWxvcGVkIGZvciBpbnRlcmFjdGl2ZSBjYWJsZSBUViBuZXR3b3JrcyBhbHNvCj4gcHJvdmlkZSB1c2VycyB0aGUgY2FwYWJpbGl0eSB0byBzY3JlZW4gb3V0IGNlcnRhaW4KPiBjaGFubmVscyBvciBldmVyIGNlcnRhaW4gdHlwZXMgb2YgcHJvZ3JhbW1pbmcuICBNb3Jlb3ZlciwKPiBpbiB0aGUgb25saW5lIHdvcmxkLCBtb3N0IGNvbnRlbnQgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZgo+IHByaXZhdGUgY29tbXVuaWNhdGlvbnMgaW5pdGlhdGVkIGJ5IGNvbnNlbnRpbmcKPiBpbmRpdmlkdWFscykgaXMgdHJhbnNtaXR0ZWQgYnkgcmVxdWVzdC4gIEluIG90aGVyIHdvcmRzLAo+IHVzZXJzIG11c3Qgc2VlayBvdXQgdGhlIGNvbnRlbnQgdGhleSByZWNlaXZlLCB3aGV0aGVyIGl0Cj4gaXMgYnkgam9pbmluZyBhIGRpc2N1c3Npb24gb3IgYWNjZXNzaW5nIGEgZmlsZSBhcmNoaXZlLgo+IEJ5IGl0cyBuYXR1cmUsIHRoaXMgdGVjaG5vbG9neSBwcm92aWRlcyBhbXBsZSBjb250cm9sIGF0Cj4gdGhlIHVzZXIgbGV2ZWwuICBDYXJyaWVycyAoc3VjaCBhcyBjb21tZXJjaWFsIG9ubGluZQo+IHNlcnZpY2VzLCBJbnRlcm5ldCBzZXJ2aWNlIHByb3ZpZGVycykgaW4gbW9zdCBjYXNlcyBhY3QKPiBvbmx5IGFzICJjYXJyaWVycyIgb2YgZWxlY3Ryb25pYyB0cmFuc21pc3Npb25zIGluaXRpYXRlZAo+IGJ5IGluZGl2aWR1YWwgc3Vic2NyaWJlcnMuCj4gCj4gQ0RUIGJlbGlldmVzIHRoYXQgdGhlIEZpcnN0IEFtZW5kbWVudCB3aWxsIGJlIGJldHRlcgo+IHNlcnZlZCBieSBnaXZpbmcgcGFyZW50cyBhbmQgb3RoZXIgdXNlcnMgdGhlIHRvb2xzIHRvCj4gc2VsZWN0IHdoaWNoIGluZm9ybWF0aW9uIHRoZXkgKGFuZCB0aGVpciBjaGlsZHJlbikgc2hvdWxkCj4gaGF2ZSBhY2Nlc3MgdG8uICBJbiB0aGUgY2FzZSBvZiBjcmltaW5hbCBjb250ZW50IHRoZQo+IG9yaWdpbmF0b3Igb2YgdGhlIGNvbnRlbnQsIG5vdCB0aGUgY2FycmllcnMsIHNob3VsZCBiZQo+IHJlc3BvbnNpYmxlIGZvciB0aGVpciBjcmltZXMuICBBbmQsIHVzZXJzIChlc3BlY2lhbGx5Cj4gcGFyZW50cykgc2hvdWxkIGJlIGVtcG93ZXJlZCB0byBkZXRlcm1pbmUgd2hhdCBpbmZvcm1hdGlvbgo+IHRoZXkgYW5kIHRoZWlyIGNoaWxkcmVuIGhhdmUgYWNjZXNzIHRvLiAgSWYgYWxsIGNhcnJpZXJzCj4gb2YgZWxlY3Ryb25pYyBjb21tdW5pY2F0aW9ucyBhcmUgZm9yY2VkIHJlc3RyaWN0IGNvbnRlbnQKPiBpbiBvcmRlciB0byBhdm9pZCBjcmltaW5hbCBsaWFiaWxpdHkgcHJvcG9zZWQgYnkgUy4gMzE0LAo+IHRoZSBGaXJzdCBBbWVuZG1lbnQgd291bGQgYmUgdGhyZWF0ZW5lZCBhbmQgdGhlIHVzZWZ1bG5lc3MKPiBvZiBkaWdpdGFsIG1lZGlhIGZvciBjb21tdW5pY2F0aW9ucyBhbmQgaW5mb3JtYXRpb24KPiBkaXNzZW1pbmF0aW9uIHdvdWxkIGJlIGRyYXN0aWNhbGx5IGxpbWl0ZWQuCj4gCj4gCj4gRC4gIE5FWFQgU1RFUFMKPiAKPiBUaGUgYmlsbCBoYXMgYmVlbiBpbnRyb2R1Y2VkIGFuZCB3aWxsIG5leHQgbW92ZSB0byB0aGUKPiBTZW5hdGUgQ29tbWVyY2UgQ29tbWl0dGVlLCBhbHRob3VnaCBubyBDb21taXR0ZWUgYWN0aW9uCj4gaGFzIGJlZW4gc2NoZWR1bGVkLiAgTGFzdCB5ZWFyLCBhIHNpbWlsYXIgcHJvcG9zYWwgYnkKPiBTZW5hdG9yIEV4b24gd2FzIGFwcHJvdmVkIGJ5IHRoZSBTZW5hdGUgQ29tbWVyY2UgY29tbWl0dGVlCj4gYXMgYW4gYW1lbmRtZW50IHRvIHRoZSBTZW5hdGUgVGVsZWNvbW11bmljYXRpb25zIEJpbGwgKFMuCj4gMTgyMiwgd2hpY2ggZGllZCBhdCB0aGUgZW5kIG9mIHRoZSAxMDNyZCBDb25ncmVzcykuICBDRFQKPiB3aWxsIGJlIHdvcmtpbmcgd2l0aCBhIHdpZGUgcmFuZ2Ugb2Ygb3RoZXIgaW50ZXJlc3QgZ3JvdXBzCj4gdG8gYXNzdXJlIHRoYXQgQ29uZ3Jlc3MgZG9lcyBub3QgcmVzdHJpY3QgdGhlIGZyZWUgZmxvdyBvZgo+IGluZm9ybWF0aW9uIGluIGludGVyYWN0aXZlIG1lZGlhLgo+IAo+IAo+IFRFWFQgT0YgNDcgVS5TLkMuIDIyMyBBUyBBTUVOREVEIEJZIFMuIDMxNAo+IAo+ICoqTk9URTogICAgICAgICBbXSA9IGRlbGV0ZWQKPiAgICAgICAgICAgICAgICAgQUxMIENBUFMgPSBhZGRpdGlvbnMKPiAKPiA0NyBVU0MgMjIzICgxOTkyKQo+IAo+IFNlYy4gMjIzLiAgW09ic2NlbmUgb3IgaGFyYXNzaW5nIHRlbGVwaG9uZSBjYWxscyBpbiB0aGUgRGlzdHJpY3QKPiBvZiBDb2x1bWJpYSBvciBpbiBpbnRlcnN0YXRlIG9yIGZvcmVpZ24gY29tbXVuaWNhdGlvbnNdCj4gCj4gT0JTQ0VORSBPUiBIQVJBU1NJTkcgVVRJTElaQVRJT04gT0YgVEVMRUNPTU1VTklDQVRJT05TCj4gREVWSUNFUyBBTkQgRkFDSUxJVElFUyBJTiBUSEUgRElTVFJJQ1QgT0YgQ09MVU1CSUEgT1IgSU4KPiBJTlRFUlNUQVRFIE9SIEZPUkVJR04gQ09NTVVOSUNBVElPTlMiCj4gCj4gICAgKGEpIFdob2V2ZXItLQo+IAo+ICAgICgxKSBpbiB0aGUgRGlzdHJpY3Qgb2YgQ29sdW1iaWEgb3IgaW4gaW50ZXJzdGF0ZSBvciBmb3JlaWduCj4gY29tbXVuaWNhdGlvbiBieSBtZWFucyBvZiBbdGVsZXBob25lXSBURUxFQ09NTVVOSUNBVElPTlMKPiBERVZJQ0UtLQo+IAo+ICAgIChBKSBbbWFrZXMgYW55IGNvbW1lbnQsIHJlcXVlc3QsIHN1Z2dlc3Rpb24gb3IgcHJvcG9zYWxdCj4gTUFLRVMsIFRSQU5TTUlUUywgT1IgT1RIRVJXSVNFIE1BS0VTIEFWQUlMQUJMRSBBTlkgQ09NTUVOVCxSRVFVRVNULAo+IFNVR0dFU1RJT04sIFBST1BPU0FMLCBJTUFHRSwgT1IgT1RIRVIgQ09NTVVOSUNBVElPTiB3aGljaCBpcwo+IG9ic2NlbmUsIGxld2QsIGxhc2NpdmlvdXMsIGZpbHRoeSwgb3IgaW5kZWNlbnQ7Cj4gCj4gICAgWyhCKSBtYWtlcyBhIHRlbGVwaG9uZSBjYWxsLCB3aGV0aGVyIG9yIG5vdCBjb252ZXJzYXRpb24gZW5zdWVzLAo+IHdpdGhvdXQgZGlzY2xvc2luZyBoaXMgaWRlbnRpdHkgYW5kIHdpdGggaW50ZW50IHRvIGFubm95LCBhYnVzZSwKPiB0aHJlYXRlbiwgb3IgaGFyYXNzIGFueSBwZXJzb24gYXQgdGhlIGNhbGxlZCBudW1iZXI7XQo+IAo+IAo+ICIoQikgTUFLRVMgQSBURUxFUEhPTkUgQ0FMTCBPUiBVVElMSVpFUyBBIFRFTEVDT01NVU5JQ0FUSU9OUwo+IERFVklDRSwgV0hFVEhFUiBPUiBOT1QgQ09OVkVSU0FUSU9OIE9SIENPTU1VTklDQVRJT05TCj4gRU5TVUVTLFdJVEhPVVQgRElTQ0xPU0lORyBISVMgSURFTlRJVFkgQU5EIFdJVEggSU5URU5UIFRPIEFOTk9ZLAo+IEFCVVNFLCBUSFJFQVRFTiwgT1IgSEFSQVNTIEFOWSBQRVJTT04gQVQgVEhFIENBTExFRCBOVU1CRVIgT1IgV0hPCj4gUkVDRUlWRVMgVEhFIENPTU1VTklDQVRJT047Cj4gCj4gCj4gICAgKEMpIG1ha2VzIG9yIGNhdXNlcyB0aGUgdGVsZXBob25lIG9mIGFub3RoZXIgcmVwZWF0ZWRseSBvcgo+IGNvbnRpbnVvdXNseSB0byByaW5nLCB3aXRoIGludGVudCB0byBoYXJhc3MgYW55IHBlcnNvbiBhdCB0aGUKPiBjYWxsZWQgbnVtYmVyOyBvcgo+IAo+ICAgIFsoRCkgbWFrZXMgcmVwZWF0ZWQgdGVsZXBob25lIGNhbGxzLCBkdXJpbmcgd2hpY2ggY29udmVyc2F0aW9uCj4gZW5zdWVzLCBzb2xlbHkgdG8gaGFyYXNzIGFueSBwZXJzb24gYXQgdGhlIGNhbGxlZCBudW1iZXI7IG9yXQo+IAo+IChEKSBNQUtFUyBSRVBFQVRFRCBURUxFUEhPTkUgQ0FMTFMgT1IgUkVQRUFURURMWSBJTklUSUFURVMKPiBDT01NVU5JQ0FUSU9OIFdJVEggQSBURUxFQ09NTVVOSUNBVElPTlMgREVWSUNFLCBEVVJJTkcgV0hJQ0gKPiBDT05WRVJTQVRJT04gT1IgQ09NTVVOSUNBVElPTiBFTlNVRVMsIFNPTEVMWSBUTyBIQVJBU1MgQU5ZIFBFUlNPTgo+IEFUIFRIRSBDQUxMRUQgTlVNQkVSIE9SIFdITyBSRUNFSVZFUyBUSEUgQ09NTVVOSUNBVElPTiwKPiAKPiAgICAoMikga25vd2luZ2x5IHBlcm1pdHMgYW55IFt0ZWxlcGhvbmUgZmFjaWxpdHldCj4gVEVMRUNPTU1VTklDQVRJT05TIEZBQ0lMSVRZIHVuZGVyIGhpcyBjb250cm9sIHRvIGJlIHVzZWQKPiBmb3IgYW55IHB1cnBvc2UgcHJvaGliaXRlZCBieSB0aGlzIHNlY3Rpb24sIHNoYWxsIGJlIGZpbmVkIG5vdCBtb3JlCj4gdGhhbiAkWzUwLDAwMF0xMDAsMDAwIG9yIGltcHJpc29uZWQgIG5vdCBtb3JlIHRoYW4gW3NpeCBtb250aHNdIFRXTwo+IFlFQVJTLCBvciBib3RoLgo+IAo+ICAgIChiKSgxKSBXaG9ldmVyIGtub3dpbmdseS0tCj4gCj4gICAgKEEpIHdpdGhpbiB0aGUgVW5pdGVkIFN0YXRlcywgYnkgbWVhbnMgb2YgW3RlbGVwaG9uZV0KPiBURUxFQ09NTVVOSUNBVElPTlMgREVWSUNDRSwgbWFrZXMgKGRpcmVjdGx5IG9yIGJ5IHJlY29yZGluZyBkZXZpY2UpCj4gYW55IG9ic2NlbmUgY29tbXVuaWNhdGlvbiBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcyB0byBhbnkgcGVyc29uLAo+IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgbWFrZXIgb2Ygc3VjaCBjb21tdW5pY2F0aW9uIHBsYWNlZCB0aGUKPiBjYWxsIG9yIElOSVRJQVRFRCBUSEUgQ09NTVVOSUNBVElPTjsgb3IKPiAKPiAgIChCKSBwZXJtaXRzIGFueSBbdGVsZXBob25lIGZhY2lsaXR5XSBURUxFQ09NTVVOSUNBVElPTlMKPiBGQUNJTElUWSB1bmRlciBzdWNoIHBlcnNvbidzIGNvbnRyb2wgdG8gYmUgdXNlZCBmb3IgYW4gYWN0aXZpdHkKPiBwcm9oaWJpdGVkIGJ5IHN1YnBhcmFncmFwaCAoQSksIHNoYWxsIGJlIGZpbmVkIGluIGFjY29yZGFuY2Ugd2l0aAo+IHRpdGxlIDE4LCBVbml0ZWQgU3RhdGVzIENvZGUsIG9yIGltcHJpc29uZWQgbm90IG1vcmUgdGhhbiB0d28KPiB5ZWFycywgb3IgYm90aC4KPiAKPiAgICAoMikgV2hvZXZlciBrbm93aW5nbHktLQo+IAo+ICAgIChBKSB3aXRoaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIFtieSBtZWFucyBvZiB0ZWxlcGhvbmVdLAo+IG1ha2VzIEJZIE1FQU5TIE9GIFRFTEVQSE9ORSBPUiBURUxFQ09NTVVOSUNBVElPTlMgREVWSUNFLCBNQUtFUywKPiBUUkFOU01JVFMsIE9SIE1BS0VTIEFWQUlMQUJMRShkaXJlY3RseSBvciBieSByZWNvcmRpbmcgZGV2aWNlKSBhbnkKPiBpbmRlY2VudCBjb21tdW5pY2F0aW9uIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzIHdoaWNoIGlzIGF2YWlsYWJsZQo+IHRvIGFueSBwZXJzb24gdW5kZXIgMTggeWVhcnMgb2YgYWdlIG9yIHRvIGFueSBvdGhlciBwZXJzb24gd2l0aG91dAo+IHRoYXQgcGVyc29uJ3MgY29uc2VudCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBtYWtlciBvZiBzdWNoCj4gY29tbXVuaWNhdGlvbiBwbGFjZWQgdGhlIGNhbGwgT1IgSU5JVElBVEVEIFRIRSBDT01NVU5JQ0FUSU9OOyBvcgo+IAo+IAo+ICAgIChCKSBwZXJtaXRzIGFueSBbdGVsZXBob25lIGZhY2lsaXR5XSBURUxFQ09NTVVOSUNBVElPTlMKPiBGQUNJTElUWSB1bmRlciBzdWNoIHBlcnNvbidzIGNvbnRyb2wgdG8gYmUgdXNlZCBmb3IgYW4gYWN0aXZpdHkKPiBwcm9oaWJpdGVkIGJ5IHN1YnBhcmFncmFwaCAoQSksIHNoYWxsIGJlIGZpbmVkIG5vdCBtb3JlIHRoYW4KPiAkWzUwLDAwMF0gMTAwLDAwMCBvciBpbXByaXNvbmVkIG5vdCBtb3JlIHRoYW4gW3NpeCBtb250aHNdCj4gVFdPIFlFQVJTLCBvciBib3RoLgo+IAo+IAo+ICAgICgzKSBJdCBpcyBhIGRlZmVuc2UgdG8gcHJvc2VjdXRpb24gdW5kZXIgcGFyYWdyYXBoICgyKSBvZiB0aGlzCj4gc3Vic2VjdGlvbiB0aGF0IHRoZSBkZWZlbmRhbnQgcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwcm9oaWJpdGVkCj4gY29tbXVuaWNhdGlvbiB0byBwZXJzb25zIDE4IHllYXJzIG9mIGFnZSBvciBvbGRlciBpbiBhY2NvcmRhbmNlCj4gd2l0aCBzdWJzZWN0aW9uIChjKSBvZiB0aGlzIHNlY3Rpb24gYW5kIHdpdGggc3VjaCBwcm9jZWR1cmVzIGFzIHRoZQo+IENvbW1pc3Npb24gbWF5IHByZXNjcmliZSBieSByZWd1bGF0aW9uLgo+IAo+ICAgICg0KSBJbiBhZGRpdGlvbiB0byB0aGUgcGVuYWx0aWVzIHVuZGVyIHBhcmFncmFwaCAoMSksIHdob2V2ZXIsCj4gd2l0aGluIHRoZSBVbml0ZWQgU3RhdGVzLCBpbnRlbnRpb25hbGx5IHZpb2xhdGVzIHBhcmFncmFwaAo+ICgxKSBvciAoMikgc2hhbGwgYmUgc3ViamVjdCB0byBhIGZpbmUgb2Ygbm90IG1vcmUgdGhhbiAkWzUwLDAwMF0KPiAxMDAsMDAwIGZvciBlYWNoIHZpb2xhdGlvbi4gRm9yIHB1cnBvc2VzIG9mIHRoaXMgcGFyYWdyYXBoLCBlYWNoCj4gZGF5IG9mIHZpb2xhdGlvbiBzaGFsbCBjb25zdGl0dXRlIGEgc2VwYXJhdGUgdmlvbGF0aW9uLgo+IAo+ICAgICg1KShBKSBJbiBhZGRpdGlvbiB0byB0aGUgcGVuYWx0aWVzIHVuZGVyIHBhcmFncmFwaHMgKDEpLCAoMiksCj4gYW5kICg1KSwgd2hvZXZlciwgd2l0aGluIHRoZSBVbml0ZWQgU3RhdGVzLCB2aW9sYXRlcyBwYXJhZ3JhcGggKDEpCj4gb3IgKDIpIHNoYWxsIGJlIHN1YmplY3QgdG8gYSBjaXZpbCBmaW5lIG9mIG5vdCBtb3JlIHRoYW4gJFs1MCwwMDBdCj4gMTAwLDAwMCBmb3IgZWFjaCB2aW9sYXRpb24uIEZvciBwdXJwb3NlcyBvZiB0aGlzIHBhcmFncmFwaCwgZWFjaAo+IGRheSBvZiB2aW9sYXRpb24gc2hhbGwgY29uc3RpdHV0ZSBhIHNlcGFyYXRlIHZpb2xhdGlvbi4KPiAKPiAgICAoQikgQSBmaW5lIHVuZGVyIHRoaXMgcGFyYWdyYXBoIG1heSBiZSBhc3Nlc3NlZCBlaXRoZXItLQo+IAo+ICAgIChpKSBieSBhIGNvdXJ0LCBwdXJzdWFudCB0byBjaXZpbCBhY3Rpb24gYnkgdGhlIENvbW1pc3Npb24gb3IKPiBhbnkgYXR0b3JuZXkgZW1wbG95ZWQgYnkgdGhlIENvbW1pc3Npb24gd2hvIGlzIGRlc2lnbmF0ZWQgYnkgdGhlCj4gQ29tbWlzc2lvbiBmb3Igc3VjaCBwdXJwb3Nlcywgb3IKPiAKPiAgICAoaWkpIGJ5IHRoZSBDb21taXNzaW9uIGFmdGVyIGFwcHJvcHJpYXRlIGFkbWluaXN0cmF0aXZlCj4gcHJvY2VlZGluZ3MuCj4gCj4gICAgKDYpIFRoZSBBdHRvcm5leSBHZW5lcmFsIG1heSBicmluZyBhIHN1aXQgaW4gdGhlIGFwcHJvcHJpYXRlCj4gZGlzdHJpY3QgY291cnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgdG8gZW5qb2luIGFueSBhY3Qgb3IgcHJhY3RpY2UKPiB3aGljaCB2aW9sYXRlcyBwYXJhZ3JhcGggKDEpIG9yICgyKS4gQW4gaW5qdW5jdGlvbiBtYXkgYmUgZ3JhbnRlZAo+IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgRmVkZXJhbCBSdWxlcyBvZiBDaXZpbCBQcm9jZWR1cmUuCj4gCj4gICAgKGMpKDEpIEEgY29tbW9uIGNhcnJpZXIgd2l0aGluIHRoZSBEaXN0cmljdCBvZiBDb2x1bWJpYSBvcgo+IHdpdGhpbiBhbnkgU3RhdGUsIG9yIGluIGludGVyc3RhdGUgb3IgZm9yZWlnbiBjb21tZXJjZSwgc2hhbGwgbm90LAo+IHRvIHRoZSBleHRlbnQgdGVjaG5pY2FsbHkgZmVhc2libGUsIHByb3ZpZGUgYWNjZXNzIHRvIGEKPiBjb21tdW5pY2F0aW9uIHNwZWNpZmllZCBpbiBzdWJzZWN0aW9uIChiKSBmcm9tIHRoZQo+IHRlbGVwaG9uZSBvZiBhbnkgc3Vic2NyaWJlciB3aG8gaGFzIG5vdCBwcmV2aW91c2x5IHJlcXVlc3RlZCBpbgo+IHdyaXRpbmcgdGhlIGNhcnJpZXIgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gc3VjaCBjb21tdW5pY2F0aW9uIGlmIHRoZQo+IGNhcnJpZXIgY29sbGVjdHMgZnJvbSBzdWJzY3JpYmVycyBhbiBpZGVudGlmaWFibGUgY2hhcmdlIGZvciBzdWNoCj4gY29tbXVuaWNhdGlvbiB0aGF0IHRoZSBjYXJyaWVyIHJlbWl0cywgaW4gd2hvbGUgb3IgaW4gcGFydCwgdG8gdGhlCj4gcHJvdmlkZXIgb2Ygc3VjaCBjb21tdW5pY2F0aW9uLgo+IAo+ICAgICgyKSBFeGNlcHQgYXMgcHJvdmlkZWQgaW4gcGFyYWdyYXBoICgzKSwgbm8gY2F1c2Ugb2YgYWN0aW9uIG1heQo+IGJlIGJyb3VnaHQgaW4gYW55IGNvdXJ0IG9yIGFkbWluaXN0cmF0aXZlIGFnZW5jeSBhZ2FpbnN0IGFueSBjb21tb24KPiBjYXJyaWVyLCBvciBhbnkgb2YgaXRzIGFmZmlsaWF0ZXMsIGluY2x1ZGluZyB0aGVpciBvZmZpY2VycywKPiBkaXJlY3RvcnMsIGVtcGxveWVlcywgYWdlbnRzLCBvciBhdXRob3JpemVkIHJlcHJlc2VudGF0aXZlcyBvbgo+IGFjY291bnQgb2YtLQo+IAo+ICAgIChBKSBhbnkgYWN0aW9uIHdoaWNoIHRoZSBjYXJyaWVyIGRlbW9uc3RyYXRlcyB3YXMgdGFrZW4gaW4gZ29vZAo+IGZhaXRoIHRvIHJlc3RyaWN0IGFjY2VzcyBwdXJzdWFudCB0byBwYXJhZ3JhcGggKDEpIG9mIHRoaXMKPiBzdWJzZWN0aW9uOyBvcgo+IAo+ICAgIChCKSBhbnkgYWNjZXNzIHBlcm1pdHRlZC0tCj4gCj4gICAgKGkpIGluIGdvb2QgZmFpdGggcmVsaWFuY2UgdXBvbiB0aGUgbGFjayBvZiBhbnkgcmVwcmVzZW50YXRpb24KPiBieSBhIHByb3ZpZGVyIG9mIGNvbW11bmljYXRpb25zIHRoYXQgY29tbXVuaWNhdGlvbnMgcHJvdmlkZWQgYnkKPiB0aGF0IHByb3ZpZGVyIGFyZSBjb21tdW5pY2F0aW9ucyBzcGVjaWZpZWQgaW4gc3Vic2VjdGlvbiAoYiksIG9yCj4gCj4gICAgKGlpKSBiZWNhdXNlIGEgc3BlY2lmaWMgcmVwcmVzZW50YXRpb24gYnkgdGhlIHByb3ZpZGVyIGRpZCBub3QKPiBhbGxvdyB0aGUgY2FycmllciwgYWN0aW5nIGluIGdvb2QgZmFpdGgsIGEgc3VmZmljaWVudCBwZXJpb2QgdG8KPiByZXN0cmljdCBhY2Nlc3MgdG8gY29tbXVuaWNhdGlvbnMgZGVzY3JpYmVkIGluIHN1YnNlY3Rpb24gKGIpLgo+IAo+ICAgICgzKSBOb3R3aXRoc3RhbmRpbmcgcGFyYWdyYXBoICgyKSBvZiB0aGlzIHN1YnNlY3Rpb24sIGEgcHJvdmlkZXIKPiBvZiBjb21tdW5pY2F0aW9ucyBzZXJ2aWNlcyB0byB3aGljaCBzdWJzY3JpYmVycyBhcmUgZGVuaWVkIGFjY2Vzcwo+IHB1cnN1YW50IHRvIHBhcmFncmFwaCAoMSkgb2YgdGhpcyBzdWJzZWN0aW9uIG1heSBicmluZyBhbiBhY3Rpb24KPiBmb3IgYSBkZWNsYXJhdG9yeSBqdWRnbWVudCBvciBzaW1pbGFyIGFjdGlvbiBpbiBhIGNvdXJ0LiBBbnkgc3VjaAo+IGFjdGlvbiBzaGFsbCBiZSBsaW1pdGVkIHRvIHRoZSBxdWVzdGlvbiBvZiB3aGV0aGVyIHRoZQo+IGNvbW11bmljYXRpb25zIHdoaWNoIHRoZSBwcm92aWRlciBzZWVrcyB0byBwcm92aWRlIGZhbGwgd2l0aGluCj4gdGhlIGNhdGVnb3J5IG9mIGNvbW11bmljYXRpb25zIHRvIHdoaWNoIHRoZSBjYXJyaWVyIHdpbGwgcHJvdmlkZQo+IGFjY2VzcyBvbmx5IHRvIHN1YnNjcmliZXJzIHdobyBoYXZlIHByZXZpb3VzbHkgcmVxdWVzdGVkIHN1Y2gKPiBhY2Nlc3MuCj4gCj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gCj4gTk9URTogVGhpcyB2ZXJzaW9uIG9mIHRoZSB0ZXh0IHNob3dzIHRoZSBhY3R1YWwgdGV4dCBvZiBjdXJyZW50IGxhdyBhcwo+IGl0IHdvdWxkIGJlIGNoYW5nZWQuICBGb3IgdGhlIGJpbGwgaXRzZWxmLCB3aGljaCBjb25zaXN0cyBvZiB1bnJlYWRhYmxlCj4gdGV4dCBzdWNoIGFzOgo+IAo+IFsuLi5dCj4gICAgICAgICAgICAgICgxKSBpbiBzdWJzZWN0aW9uIChhKSgxKS0tCj4gICAgICAgICAgICAgICAgICAgICAoQSkgYnkgc3RyaWtpbmcgb3V0IGB0ZWxlcGhvbmUnIGluIHRoZSBtYXR0ZXIgYWJvdmUKPiAgICAgICAgICAgICAgICAgICBzdWJwYXJhZ3JhcGggKEEpIGFuZCBpbnNlcnRpbmcgYHRlbGVjb21tdW5pY2F0aW9ucyBkZXZpY2UnOwo+ICAgICAgICAgICAgICAgICAgICAgKEIpIGJ5IHN0cmlraW5nIG91dCBgbWFrZXMgYW55IGNvbW1lbnQsIHJlcXVlc3QsCj4gICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbiwgb3IgcHJvcG9zYWwnIGluIHN1YnBhcmFncmFwaCAoQSkgYW5kIGluc2VydGluZwo+ICAgICAgICAgICAgICAgICAgIGBtYWtlcywgdHJhbnNtaXRzLCBvciBvdGhlcndpc2UgbWFrZXMgYXZhaWxhYmxlIGFueQo+ICAgICAgICAgICAgICAgICAgIGNvbW1lbnQsIHJlcXVlc3QsIHN1Z2dlc3Rpb24sIHByb3Bvc2FsLCBpbWFnZSwgb3Igb3RoZXIKPiAgICAgICAgICAgICAgICAgICBjb21tdW5pY2F0aW9uJzsKPiAgICAgICAgICAgICAgICAgICAgIChDKSBieSBzdHJpa2luZyBvdXQgc3VicGFyYWdyYXBoIChCKSBhbmQgaW5zZXJ0aW5nIHRoZQo+ICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZzoKPiAgICAgICAgICAgICAgICAgICAgIGAoQikgbWFrZXMgYSB0ZWxlcGhvbmUgY2FsbCBvciB1dGlsaXplcyBhCj4gWy4uLl0KPiAKPiBTZWU6Cj4gCj4gZnRwLmVmZi5vcmcsIC9wdWIvRUZGL0xlZ2lzbGF0aW9uL0JpbGxzX25ldy9zMzE0LmJpbGwKPiBnb3BoZXIuZWZmLm9yZywgMS9FRkYvTGVnaXNsYXRpb24vQmlsbHNfbmV3LCBzMzE0LmJpbGwKPiBodHRwOi8vd3d3LmVmZi5vcmcvcHViL0VGRi9MZWdpc2xhdGlvbi9CaWxsc19uZXcvczMxNC5iaWxsCj4gCj4gICBodHRwOi8vd3d3LnBoYW50b20uY29tL35zbG93ZG9nCj4gICBTdG9wIHRoZSBDb21tdW5pY2F0aW9ucyBEZWNlbmN5IEFjdCEKPiAKPiAtIC0tLS0tLS0gRW5kIG9mIEZvcndhcmRlZCBNZXNzYWdlcwo+IAo+IC0tLS0tLS0gRW5kIG9mIEZvcndhcmRlZCBNZXNzYWdlCj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gICAqKiogWW91IHJlY2VpdmVkIHRoaXMgbWVzc2FnZSBiZWNhdXNlIHlvdSBhcmUgb24gYW4gUk1JVUcgZW1haWwgbGlzdCAgICoqKgo+ICAgKioqIFNlbmQgZW1haWwgdG8gcm1pdWdAcm1pdWcub3JnIGZvciBSTUlVRyAmIHN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbiAqKioKPiAKPiAtLQo+IFRoZXJlJ3Mgbm8gbW9uZXkgaW4gcG9ldHJ5LAo+ICBidXQgdGhlbiBhZ2FpbiB0aGVyZSdzIG5vIHBvZXRyeSBpbiBtb25leSBlaXRoZXIuCj4gCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVwb2V0QG5ldGNvbS5jb20KPiAtLS0tLS0tLSBUZWxsZXJyYW5kIHp1IEVuZGUgLSBFbmQgb2Ygd29ybGQgLSBSZWlzcyAtIFN0b2Zma2FudGUgLS0tLS0tLS0tLQo+IFNvIGRhcyB3YXJzLgo+IAo+ICAgIyAgIEaBciBmcmVpZW4gSWRlZW4KPiAgICAgdW5kIE1laW51bmdzYXVzdGF1c2NoCj4gCj4gR2VyZAo+IAo+IC0tCj4gKiogQmVpc3BpZWwtU2lnbmF0dXIgZoFyIJRmZmVudGxpY2hlIE5hY2hyaWNodGVuICoqCj4gCj4gLS0tIENyb3NzUG9pbnQgdjMuMDIKPiAgKiBPcmlnaW46IDI6MjQxLzU3MC4xMSAoMjoyNDEvNTcwLjExKQo+IAo+IAo+IC0tLS0tIEVuZCBJbmNsdWRlZCBNZXNzYWdlIC0tLS0tCj4gCj4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSWNoIG11c3MgZGVuIEFydGlrZWwgenUgJ1RoZSBVUyBzZW5hdGUgd2FudHMgdG8gY2Vuc3VyZSB5b3UnIChIYXdrLCAxNC4gTWFyIDE5OTUsIDE5OjM2OjIxKToKSWNoIG11c3MgZGllc2VuIEFydGlrZWwga29tbWVudGllcmVuLgpJY2ggaGF0dGUsIGRhIGljaCBpbiBLYW5hZGEgYmluLCB2b24gZGllc2VyIFBldGl0aW9uIHZvciBnZXJldW1lcgpaZWl0IGdlaG9lcnQsIHVuZCBtaXIgZGllIFplaXQgZ2Vub21tZW4sIGhlcmF1c3p1ZmluZGVuLCB3YXMgZWlnZW50bGljaApoaW50ZXIgZGllc2VyIEdlc2V0emVzYWVuZGVydW5nIHN0ZWNrdC4KSWNoIGhhYmUgZGllIEFlbmRlcnVuZywgdW5kIGVpbiBwYWFyIEFuYWx5c2VuIGdlbGVzZW4sIG1pY2ggbWlyCkxldXRlbiB1bnRlcmhhbHRlbiwgZXRjLi4KTWVpbmUgU2NobHVzc2ZvbGdlcnVuZyB3YXIsIGRhc3MgZXMgS0VJTkVOIHZlcm51ZW5mdGlnZW4gR3J1bmQgZ2lidCwKZGllc2UgUGV0aXRpb24genUgdW50ZXJzdHVldHplbi4KR3V0LCBhdWYgZGllICdQcm92aWRlcnMnIHZvbiBUZWxla29tdW5pa2F0aW9uc3ZlcmJpbmR1bmdlbiB3aXJkCmVpbiB3ZW5pZyBtZWhyIEtvbmt1cnJlbnpkcnVjayB6dWtvbW1lbi4gSW5zYmVzb25kZXJlCmRlc2hhbGIsIHdlaWwgc2llIG5pY2h0IG1laHIgYWxsZXMgb2huZSB2ZXJ0cmFnbGljaGUgQWJzaWNoZXJ1bmcKc3VyY2hnZWhlbiBsYXNzZW4ga29lbm5lbi4gSWNoIGRlbmtlIGRhIHp1bSBCZWlzcGllbCBhbiBBbmdlYm90ZSB6dQpTZXggbWl0IEtpbmRlcm4gdW50ZXIgMTIgSmVocmVuLCBkaWUgaGllciB6dSBmaW5kZW4gc2luZC4KRGVyIEdlc2V0emVzdGV4dHIgaXN0IGFiZXIgYXVjaCBOSUNIVCBzbyBmb3JtdWxpZXJ0LCBkYXNzIGVyIHZvbgpTZWl0ZXJuIGRlciBCZXRyZWliZXIgZWluZSB2b2VsbGlnZSBLb250cm9sbGUgdmVybGFuZ3QuCkltIHdlc2VudGxpY2hlbiB3ZXJkZW4gZGllIFJlZ2VsdW5nZW4sIGRpZSBmdWVyIFRlbGVmb252ZXJrZWhyIGdlbHRlbgphdXNnZXdlaXRldC4gRGVyIEJlaXRyZWliZXIgbXVzcyBhbGxlcmRpbmdzIGFrdGl2IHdlcmRlbiwgc29iYWxkIGVyIHZvbgp1bnNpdHRsaWNoZW4gQWt0aXZpdGFldGVuIEtlbm50bmlzIGVybGFuZ3QsIHdpZSBqZWRlIFRlbGVmb25nZXNlbGxzY2hhZnQuCkljaCBwZXJzb2VubGljaCBmaW5kZSBkYXMgdmVybnVlbmZ0aWcuCkJpbGRldCBldWNoIGJpdHRlIGVpbmUgdW5hYmhhZW5naWdlIE1laW51bmcsIGJldm9yIGlociB1bnRlcnplaWNobmV0LgoKSEFXSywgZGVyIHNpY2ggdW5nZXJuIGJlbnV0emVuIGxhZXNzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkltbWVyIG5vY2ggVVMtU2VuYXRzZW50d3VyZiAoQmVybmFyZCwgMTQuIE1hciAxOTk1LCAyMDozNjoyMSk6Ck1laW5lcyBFcmFjaHRlbnMgaXN0IGRlciBHZXNldHplbnR3dXJmIHZpZWwgenUgdW5zY2hhcmYgZm9ybXVsaWVydDoKJ3NjaG11dHppZycsICdhbnN0b2Vzc2lnJyB1c3cuIEFuc3RhdHQga2xhciB6dSBmb3JtdWxpZXJlbiwgd2FzIGhpZXIKZWlnZW50bGljaCB2ZXJib3RlbiB3ZXJkZW4gc29sbCwgd2lyZCBlaW4gSW5zdHJ1bWVudCBnZXNjaGFmZmVuLCBkYXMKc2ljaCBtaXNzYnJhdWNoZW4gbGFlc3N0LCBhIGxhIE1jQ2FydGh5LiBBbHNvOiBuZXVmb3JtdWxpZXJlbiwgc28gZGFzcwplcyBlaW4gR2VzZXR6IHdpcmQsIGRhcyB3aXJrbGljaCBudXIgZGVtIGRpZW50LCB3YXMgb2VmZmVudGxpY2ggYWxzIFp3ZWNrCmFuZ2VnZWJlbiB3aXJkLCBhbHNvIGRhc3Mgd2lya2xpY2ggbnVyIFZlcmJyZWNoZW4gYmVrYWVtcGZ0IHdpcmQgdW5kIG5pY2h0CmFrdGl2IFplbnN1ciBnZWdlbiBBbmRlcnNkZW5rZW5kZSBiZXRyaWViZW4gd2lyZC4KCkljaCBrYW5uIG1pciBzZWhyIGd1dCBlaW4gQW1lcmlrYSB2b3JzdGVsbGVuLCBpbiBkZW0gZGllIFJlcHVibGlrYW5lcgpiZWlzcGllbHN3ZWlzZSBIb21vc2V4dWFsaXRhZXQgYWxzICdzY2htdXR6aWcnIGVya2xhZXJlbiwgdW5kIGVzIHZvbQpJbnRlcm5ldCB2ZXJiYW5uZW4gd29sbGVuLiBVbmQgZGFzIGtvZW5udGUgbnVyIGRlciBBbmZhbmcgc2Vpbi4KCk5vY2htYWw6IGljaCBiaW4gX25pY2h0XyBnZWdlbiBkZW4gb2ZmaXppZWxsIGdlbmFubnRlbiBad2VjayBkZXMgR2VzZXR6ZXMsCm5hZW1saWNoIFZlcmhpbmRlcnVuZyB2b24gVmVyYnJlY2hlbiB3aWUgVmVyYnJlaXR1bmcgdm9uIEtpbmRlcnBvcm5vcyBpbQpJbnRlcm5ldC4gQWJlciBpY2ggYmluIGRlciBNZWludW5nLCBtYW4ga29lbm50ZSBkYXMgR2VzZXR6IGRhbm4gYXVjaCBzbwpmb3JtdWxpZXJlbiwgZGFzcyBlcyBuaWNodCB6dW0gWmVuc3VyaGFtbWVuIHVtZnVua3Rpb25pZXJ0IHdlcmRlbiBrYW5uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEltbWVyIG5vY2ggVVMtU2VuYXRzZW50d3VyZiAoSXJhcywgMTUuIE1hciAxOTk1LCAwMjoxOTo1NCk6CiMhIHJuPUJlcm5hcmQgcnQ9Nzk1MjA5NzgxCgpTdGltbWUgdm9sbGluaGFsdGxpY2ggenUhIGdlei4gSXJhc1tEW0RbRFtEW0RbRFtEW0RbRCAgZ2V6LiBJcmFzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluc3R3ZWlsZW4gQWRlIChBcmFueWEsIDE1LiBNYXIgMTk5NSwgMTc6MDc6MTUpOgpJY2ggd2lsbCBqYSBkZW4gVGV1ZmVsIG5pY2h0IGFuIGRpZSBXYW5kIG1hbGVuLCBhYmVyIGVzIGthbm4gamEgdm9ya29tbWVuLApkYXNzIGljaCBhdXMgZGVtIFVybGF1YiB6dXJ1ZWNra29tbWUgKGluIGRlciBlcnN0ZW4gQXByaWx3b2NoZSkgdW5kIG1laW4gZ2UtCmxpZWJ0ZXMgTW9yZ2VuR3JhdWVuIGV4aXN0aWVydCBuaWNodCBtZWhyLiBJY2ggd2VyZGUgbWVpbiBNb2VnbGljaHN0ZXMgdHVuLAp1bQpkYXMgenUgdmVyaGluZGVybi4KV2llIGF1Y2ggaW1tZXIuIFNvbGx0ZSBkaWVzZXIgRmFsbCBlaW50cmV0ZW4sIG1vZWNodGUgaWNoIG1pY2ggdm9uIGV1Y2ggYWxsZW4KdmVyYWJzY2hpZWRlbi4gRXMgaGF0IG1pdCBFdWNoIFNwYXNzIGdlbWFjaHQuIE5vY2ggbWVociBTcGFzcyB3dWVyZGUgZXMgbWEtCmNoZW4sIHdlbm4gaWNoIGF1cyBIYSdhcmV6IHdpZWRlcmthZW1lLCB1bmQgYWxsZXMgd2FlcmUgbm9jaCBkYS4gRGFzIFJ1bW1vLQpuaWVyZW4sIGRhcyBHZXNjaGltcGZlIGF1ZiBkaWUgTWFnaWVyIHVuZCBTcGllbGVyLCBkYXMgZXdpZ2UgUnVtZ2VydWZlIHVuZApkaWUgdWViZXJyYXNjaGVuZGVuIENyYXNocy4KCkRhcmF1ZiB1bmQgYXVmIEV1Y2ggUGFwcG5hc2VuIGZyZXV0IHNpY2gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSQU5ZQSAtIHppZW1saWNoIHNlbnRpbWVudGFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIG1hbCB6dSBkZXIgJ0ludGVybmV0LXplbnN1cicgKEhhd2ssIDE1LiBNYXIgMTk5NSwgMjA6NTQ6NDApOgpWaWVsbGVpY2h0IG5vY2ggbWFsIGVpbmUgQW5tZXJrdW5nLgpEaWUgR2VmYWhyLCBkYXNzIGVzIHp1IGVpbmVtIE1pc3NicmF1Y2ggZGllc2VzIEdlc2V0emVzIGtvbW10LAppc3Qgc2VociBnZW5hdSB6dSBwcnVlZmVuLiBEYXMgc29sbCB1bnRlciBhbGxlbiBVbXN0YWVuZGVuCnZlcm1pZWRlbiB3ZXJkZW4uIEFiZXIuIERpZSBnZWdlYmVuZSBHZXNldHplc3ZvcmxhZ2Ugc2NoZWludAptaXIgYWV1c3NlcnN0IHdlbmlnIE1vZ2xpY2hrZWl0ZW4genVtIE1pc3NicmF1Y2ggYmVyZWl0enVzdGVsbGVuLgpBbmRlcnMgZ2VzYWd0OiBrZWluZS4KSEFXSywgZGVyIHNpY2ggZGFydWViZXIgV0lSS0xJQ0ggR2VkYW5rZW4gZ2VtYWNodCBoYXQuClAuUy46IEljaCB3aWxsIGhpZXIga2VpbmVuIHVlYmVyemV1Z2VuLCBhYmVyIHp1ciBWb3JzaWNodCB6dSBtYWhuZW4KaXN0IGFuZ2VicmFjaHQuCkRlciBBbmxhc3MgenUgZGllc2VyIEdlc2V0emVzdm9ybGFnZSB3YXIgdWVicmlnZW5zIGRpZSBXZWlnZXJ1bmcgZWluZXMKQmV0cmVpYmVycwonYmVzb25kZXJlIEFuemVpZ2VuJyBhdWYgc2VpbmVtIE5ldHogYWJ6dWtsZW1tZW4sIGFscyBpaG0gYmVrYW5udCBnZW1hY2h0Cnd1cmRlLCB3YXMgc2llIGJlaW5oYWx0ZW4uIEVpbiBzb2xjaGVzIFZlcmhhbHRlbiBtdXNzIHN0cmFmYmFyIHNlaW4sIGZpbmRlCmljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NoIG1hbCB6dSBkZXIgJ0ludGVybmV0LXplbnN1cicgKEJlcm5hcmQsIDE1LiBNYXIgMTk5NSwgMjE6MTc6MDgpOgojISBybj1IYXdrIHJ0PTc5NTI5NzI4MApIYXdrLCBnbGF1YnN0IGR1IG5pY2h0LCBkYXNzIGRhcyBHZXNldHogbGllYmVyIGdlZ2VuICdQb3Jub2dyYXBoaWUnIHVuZAonR2V3YWx0dmVyaGVycmxpY2h1bmcnIGdlcmljaHRldCBzZWluIHNvbGx0ZSBhbnN0YXR0IGdlZ2VuIERpbmdlLCBkaWUKJ3NjaG11dHppZycsICdhbnN0b2Vzc2lnJywgJ29ic3pvZW4nIHVzdyBzaW5kPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaGkgQmVybmhhcmQsIHJlc3QgYml0dGUgdmlhIG1haWwsIGdydXNzIEhBV0suIChIYXdrLCAxNS4gTWFyIDE5OTUsIDIyOjA4OjMwKToKSGFsbG8gQmVybmhhcmQsCmljaCBkZW5rZSwgZGFzIHdpcmQgZWluZSBldHdhcyBsYWVuZ2VyZSBEaXNza3Vzc2lvbiB3ZXJ0IHNlaW4uCldpciBzb2xsdGVuIGRhcyBhYmVyIHVlYmVyIG1haWwgbWFjaGVuLCB1bmQgZGFubiB2aWVsbGVpY2h0IGVpbgpSZXN1bWUgaW4gZGllIE1QQSBwb3N0ZW4uIFZpZWxsZWljaHQgdWViZXJ6ZXVnc3QgRHUgbWljaCBqYSwgb2RlciBpY2gKRGljaC4gRGllIEFyZ3VtZW50ZSBpbiBlaW5lbSB2b3JpZ2VuIEFydGlrZWwga2FubiBpY2gsIHNvIGRlbmtlICBpY2gsCmVudGtyYWVmdGVuLiBBYmVyIG1hbCBzZWhlbi4KVmllbGUgR3J1ZXNzZSwgSEFXSy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NoIG1hbCB6dSBkZXIgJ0ludGVybmV0LXplbnN1cicgKFJvY2h1cywgMTYuIE1hciAxOTk1LCAxNjo0MjoxOCk6CiMhIHJuPUhhd2sgcnQ9Nzk1Mjk3MjgwCldlbm4gZGVyIEJldHJlaWJlciBlaW5lcyBOZXR6ZXMgZnVlciBkZW4gSW5oYWx0IGRlciBkYXJhdWYgdWViZXJ0cmFnZW5lbgpOYWNocmljaHRlbiB2ZXJhbnR3b3J0bGljaCBnZW1hY2h0IHdlcmRlbiBrYW5uLCB3aXJkIGRlbW5hZWNoc3QKamVkZXIgQmV0cmVpYmVyICh6dW5hZWNoc3QgaW4gZGVuIFVTQSkgWmVuc3VyIGF1c3VlYmVuLiBEYXMgaXN0IG5hdHVlcmxpY2gKbnVyIHJlYWxpc2llcmJhciwgd2VubiBlbnR3ZWRlciBhbGxlcywgd2FzIGJlc3RpbW10ZSBTY2hsdWVzc2Vsd29ydGUKZW50aGFlbHQgYXV0b21hdGlzY2ggYXVzZ2VmaWx0ZXJ0IHdpcmQsIG9kZXIgZWluZSBNZW5nZSBMZXV0ZSBkYW1pdApiZXNjaGFlZnRpZ3Qgd2VyZGVuLCBqZWRlIE5hY2hyaWNodCB6dWVyc3QgenUgbGVzZW4gYnp3LiBiZWkgR0lGcwp6dWVyc3QgYW56dXNlaGVuIC0gd28gYmxlaWJ0IGRhIGRhcyBSZWNodCBhdWYgZnJlaWUgTWVpbnVuZ3NhZXVzc2VydW5nCnVuZCBkaWUgUHJpdmF0c3BoYWVyZT8KRGllIGVpbnppZyBzaW5udm9sbGUgTG9lc3VuZyBrYW5uIGRvY2ggd29obCBudXIgc2Vpbiwgd2VubiBHRU5BVQpkZXIgQWJzZW5kZXIgZWluZXIgTmFjaHJpY2h0IGZ1ZXIgZGVuIEluaGFsdCB2ZXJhbnR3b3J0bGljaCBnZW1hY2h0CndlcmRlbiBrYW5uIHVuZCBOSUVNQU5EIEFOREVSRVMgU09OU1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5vY2ggbWFsIHp1IGRlciAnSW50ZXJuZXQtemVuc3VyJyAoWGFudGhpYSwgMTYuIE1hciAxOTk1LCAxODoxMjozNik6CiMhIHJuPVJvY2h1cyBydD03OTUzNjg1MzgKSWNoIHdpbGwgbnVyIG1hbCBnYW56IGt1cnogd2FzIHp1IGRlciBnYW56ZW4gU2FjaGUgdm9uIHdlZ2VuIFplbnN1ciBzYWdlbi4KRHVyY2ggWnVmYWxsIHN0aWVzcyBpY2ggaXJnZW5kd28gaW0gTmV0eiBhdWYgZWluIFByb2dyYW1tLCBtaXQgZGVtIG1hbgphbGxlcyBtb2VnbGljaGUgbmFjaCBkZW0gREVTLVN0YW5kYXJkIHZlcnNjaGx1ZXNzZWxuIGthbm4uIFdpZSBzb2xsIGRlbm4KZGEgbm9jaCBqZW1hbmQgWmVuc3VyIHVlYmVuLCB3ZW5uIGljaCBtZWluZSBnZXNhbXRlbiBNYWlscyB1bmQgQmlsZGVyIG1pdAplaW5lbSBQYXNzd29ydCB2ZXJzY2hsdWVzc2xlIHVuZCBkaWVzZXMgUGFzc3dvcnQgbnVyIGRlbSBFbXBmYWVuZ2VyIHBlcgpUZWxlZm9uIG9kZXIgQnJpZWYgbWl0dGVpbGU/IFdlbm4gZGllIGluIGRlbiBVU0EgbWVpbmVuLCBhdWYgc29sY2hlIFdlaXNlClplbnN1ciB1ZWJlbiB6dSBrb2VubmVuLCBkYW5uIHdpcmQgZXMgc2VociBzY2huZWxsIHNvIHNlaW4sIGRhc3MgaGFsdCBhbGxlCkxldXRlIGlocmUgU2FjaGVuIG51ciBub2NoIHZlcnNjaGx1ZXNzZWx0IHNjaGlja2VuLCBvZGVyPwoKRXVlciBYYW50aGlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOb2NoIG1hbCB6dSBkZXIgJ0ludGVybmV0LXplbnN1cicgKEpvZiwgMTYuIE1hciAxOTk1LCAxODoxNDozNik6CiMhIHJuPVhhbnRoaWEgcnQ9Nzk1MzczOTU2CgpOZWUsIGRpZSBVZWJlcnRyYWd1bmcgdm9uIERhdGVuLCBkaWUgbWl0IGVpbmVtIGFuZGVyZW4gYWxzIGRlbSBDbGlwcGVyLVZlci0KZmFocmVuIHZlcnNjaGx1ZXNzZWx0IHd1cmRlbiwgd29sbGVuIGRpZSBtZWluZXMgV2lzc2VucyBzb3dpZXNvIHZlcmJpZXRlbiAtCmFiZXIgYXVjaCBkYW1pdCB3ZXJkZW4gc2llIHdvaGwga2F1bSBkdXJjaGtvbW1lbi4KCiBKb2YKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5vY2ggbWFsIHp1IGRlciAnSW50ZXJuZXQtemVuc3VyJyAoSWNldCwgMTYuIE1hciAxOTk1LCAxOTowNToxMik6CiMhIHJuPVhhbnRoaWEgcnQ9Nzk1MzczOTU2CkluIGRlbiBVU0EgZGFyZiBtYW4ga2VpbmUgdmVyc2NobHVlc3NlbHRlbiBTYWNoZW4gbWVociBzY2hpY2tlbiAob2Rlcgprb21tdCBkYXMgZXJzdD8gQXVmIGplZGVuIEZhbGwgd2FyIGRhcyBtYWwgc2VociBpbSBHZXNwcmFlY2ggLSBpbm5lcmUKU2ljaGVyaGVpdCB1bmQgc28gbiBLcmFtIGFscyBCZWdydWVuZHVuZykKCi1JY2VUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTm9jaCBtYWwgenUgZGVyICdJbnRlcm5ldC16ZW5zdXInIChSb2NodXMsIDE2LiBNYXIgMTk5NSwgMTY6NDI6MTgpOiAoSGF3aywgMTYuIE1hciAxOTk1LCAxOToxMzoxMCk6CkdlcmFkZSBkYSBsaWVndCBkYXMgTWlzc3ZlcnN0YWVuZG5pcyB2b3I6IFZpZWxsZWljaHQgaXJyZSBpY2ggamEsCmFiZXIgZXMgc2NoZWludCBpbiBkZW0gR2VzZXR6ZXN0ZXh0IG5pY2h0cyB6dSBzdGVoZW4sIHdhcwpkZW4gQmV0cmVpYmVyIHZlcnBmbGljaHRldCwgZGllIERhdGVuIGF1ZiBkZW0gTmV0egp6dSBrb250cm9sbGllcmVuLiBOVVIhIFdlbm4gZXMgaWhtIGJla2xhbm50IGdlbWFjaHQgd2lyZCwgbXVzcyBlciBlcwphYnN0ZWxsZW4uIEljaCBkZW5rZSwgZGFzIGlzdCBldHdhcywgZGFzIG1hbiB2ZXJsYW5nZW4ga2FubiB1bmQgbXVzcy4KClZpZWtsZSBHcnVlc3NlLCBIQVc+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTm9jaCBtYWwuLi4gKEJlcm5hcmQsIDE2LiBNYXIgMTk5NSwgMTk6MTk6MTgpOgpBbHNvOiBGaW5kZXN0IGR1IG5pY2h0LCBkYXNzIGVpbiBHZXNldHosIGluIGRlbSBqZWRlciBkYXMgc2llaHQsIHdhcyBkdQppbSBqZXR6aWdlbiBHZXNldHogc2llaHN0LCB3YWVyZSBiZXNzZXIgYWxzIGRhcyBqZXR6aWdlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOb2NoIG1hbCB6dSBkZXIgJ0ludGVybmV0LXplbnN1cicgKFJvY2h1cywgMTYuIE1hciAxOTk1LCAxNjo0MjoxOCk6IChSb2NodXMsIDE2LiBNYXIgMTk5NSwgMTk6MzA6MjYpOgojISBybj1IYXdrIHJ0PTc5NTM3NzU5MApOZWluLCB3b3J0d29lcnRsaWNoIHN0ZWh0IGRhcyBuaWNodCBkYSBkcmluIC0gYWJlciBLb250cm9sbGUgd2FlcmUgZGVyCmVpbnppZ2UgU2NodXR6IGRhdm9yLCBhbHMgTmV0emJldHJlaWJlciBmdWVyIGRlbiBJbmhhbHQgdmVyYW50d29ydGxpY2gKZ2VtYWNodCB6dSB3ZXJkZW4sIGRlbm4gIlVud2lzc2VuaGVpdCBzY2h1ZXR6IHZvciBTdHJhZmUgbmljaHQiLCB1bmQKaW4gZGVtIEdlc2V0eiBzdGVodCwgZGFzcyBtYW4gZnVlciBKRURFIEFydCBkZXIgVWViZXJ0cmFndW5nIGhhZnRiYXIKZ2VtYWNodCB3ZXJkZW4ga2FubiAob2IgZGFzIGVpbmUgV2VpdGVybGVpdHVuZyBpc3QsIGRpZSBtYW4gYWxzCk5ldHpiZXRyZWliZXIgamEgdm9ybmltbXQsIGlzdCBkYWJlaSBlZ2FsKS4KS3VyejogSW4gZGVtIEdlc2V0eiBpc3QgZW50d2VkZXIgZGFzIFdvcnQgInRyYW5zbWl0cyIgenV2aWVsIG9kZXIKZGFzIFdvcnQgImtub3dpbmciIHp1d2VuaWcuCk5vY2ggZXR3YXM6IEZ1ZXIgSnVyaXN0ZW4gaXN0IGVzIHZvbGxrb21tZW4gZWdhbCwgd2llIGVpbiBHZXNldHoKaW50ZXJwcmV0aWVydCB3ZXJkZW4gU09MTCwgZXMgaW50ZXJlc3NpZXJ0IHNpZSBudXIsCndpZSBlcyBpbnRlcnByZXRpZXJ0IHdlcmRlbiBLQU5OLCBkYWhlciBzb2xsdGUgbWFuIHNpY2ggbmljaHQgZGFyYXVmCnZlcmxhc3Nlbiwgd2llIGVzIGVpZ2VudGxpY2ggZ2VkYWNodCBpc3QuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5vY2ggbWFsIHp1IGRlciAnSW50ZXJuZXQtemVuc3VyJyAoUm9jaHVzLCAxNi4gTWFyIDE5OTUsIDE5OjU3OjQ0KToKIyEgcm49WGFudGhpYSBydD03OTUzNzM5NTYKMS4gREVTIGlzdCBtaXR0bGVyd2VpbGUgenUgdW5zaWNoZXIgLSBuaW1tIGxpZWJlciBQR1AgbWl0IG1pbmRlc3RlbnMKICAgNTEyLUJpdC1TY2hsdWVzc2VsbiBvZGVyIGJlc3NlciAxMDI0LgoyLiBFcyBnaWJ0IGpldHp0IHNjaG9uIGVpbmlnZSBOZXR6YmV0cmVpYmVyLCBkaWUgbmljaHRzIHZlcnNjaGx1ZXNzZWx0ZXMKICAgIHdlaXRlcnZlcm1pdHRlbG4gKGRhIGVpbiBuaWNodC1vZWZmZW50bGljaGVyIEJldHJlaWJlciBzZWxiZXIKICAgZW50c2NoZWlkZW4ga2Fubiwgd2VsY2hlIEFydCB2b24gTmFjaHJpY2h0ZW4gZXIgYmVmb2VyZGVybiB3aWxsLAogICBpc3QgZGFzIGxlaWRlciBsZWdhbCkKMy4gRXMgZ2lidCBCZXN0cmVidW5nZW4gdmVyc2NoaWVkZW5lciBSZWdpZXJ1bmdlbiwgYWxsZSBBcnRlbiB2b24KICAgVmVyc2NobHVlc3NzbHVuZyB6dSB2ZXJiaWV0ZW4sIGRpZSBkaWUgZnVlciBTdHJhZnZlcmZvbGd1bmcKICAgenVzdGFlbmRpZ2VuIEJlaG9lcmRlbiBuaWNodCBrbmFja2VuIG9kZXIgbWl0IGVpbmVtIFp3ZWl0c2NobHVlc3NlbAogICAod2llIGJlaSBDbGlwcGVyKSBsZXNlbiBrb2VubmVuLgogICBJbiBkZW4gVVNBIGlzdCBkZXIgZXJzdGUgU2Nocml0dCBkYXp1IChFaW5mdWVocnVuZyB2b24gQ2xpcHBlcikgc292aWVsCiAgIGljaCB3ZWlzcyBnZXNjaGVpdGVydCwgYWJlciBudXIsIHdlaWwgZXMgZGFtaXQgdHJvdHpkZW0gbW9lZ2xpY2ggd2FyLAogICBOYWNocmljaHRlbiB6dSB1ZWJlcnRyYWdlbiB6dSBkZW5lbiBkZXIgWndlaXRzY2hsdWVzc2VsIG5pY2h0CiAgIGdlZmluZGVuIHdhciAoRWluIFVlYmVycHJ1ZWZ1bmdzZWludHJhZyB3YXIgbnVyIDE2IEJpdCBncm9zcyB1bmQKICAgbWFuIGtvbm50ZSBzbyBsYW5nZSBoZXJ1bXByb2JpZXJlbiBiaXMgbWFuIGRlbiByaWNodGlnZW4KICAgZ2VmdW5kZW4gaGF0dGUsIGVudGRlY2t0IGhhdCBkaWVzIE1hdHQgQmxhemUpLgogICBJbiBGcmFua3JlaWNoIG11c3MgamVkZXMgVmVyc2NobHVlc3NsdW5nc3Byb2dyYW1tIHp1Z2VsYXNzZW4gd2VyZGVuCiAgICh1bmQgcHJha3Rpc2NoIHdlcmRlbiBkb3J0IGtlaW5lIHVua25hY2tiYXJlbiB6dWdlbGFzc2VuKQogICBJbiBEZXV0c2NobGFuZCBzb2xsIGRhcyBCTUkgYXVjaCBtYWwgZ2VzYWd0IGhhYmVuLCBkYXNzIG1hbiB1ZWJlcgogICBlaW4gVmVyYm90IHZvbiBWZXJzY2hsdWVzc2VsdW5nc3Byb2dyYW1tZW4gbmFjaGRhZWNodGUuCiAgIFNvZ2FyIGluIEhvbGxhbmQgZ2FiIGVzIGVpbm1hbCBlaW5lbiBHZXNldHplc2VudHd1cmYgaGllcmZ1ZXIsIGRlcgogICBqZWRvY2ggdmVyd29yZmVuIHd1cmRlLgpJY2ggaG9mZmUgYXVjaCwgZGFzIHNpY2ggc29sY2hlIEdlc2V0emUgbmlyZ2VuZHdvIGR1cmNoc2V0emVuLCBhYmVyCmRhdm9uIGF1c2dlaGVuLCBkYXNzICJzaWUgZGFtaXQgbmljaHQgZHVyY2hrb21tZW4iIGthbm4gbWFuIGxlaWRlciBuaWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NoIG1hbC4uLiAoQmVybmFyZCwgMTYuIE1hciAxOTk1LCAxOToxOToxOCkgKEhhd2ssIDE3LiBNYXIgMTk5NSwgMDA6Mzk6NTApOgpOYXR1ZXJsaWNoIGhhc3QgRHUgcmVjaHQuIEF1Y2ggaWNoIGRlbmtlLCBtYW4ga29lbm50ZSBlaW5pZ2VzCmFuIGRlciBGb3JtdWxpZXJ1bmcgdmVyYmVzc2Vybi4gRG9jaCBkaWVzZSBHZXNldHplc3ZvcmxhZ2UKZ2lidCBlcyBudW4uIEJpcyB6dXIgbmFlY2hzdGVuIGRhdWVydCBlcyB1ZWJsaWNoZXJ3ZWlzZSAxLjUgSmFocmUuCkF1Y2ggZGFubiB3aXJkIG5vY2ggbmljaHQgamVkZXIgenVmcmllZGVuIHNlaW4uCkRhcyBnYW56ZSBpc3QsIHdpZSBtZWlzc3QsIGVpbiBLb21wcm9taXNzIHp3aXNjaGVuIGRlbSwgd2FzIG1hbiBlcnJlaWNoZW4Ka2FubiwKdW5kIGRlbSB3YXMgbWFuIGdlcm5lIGhhZXR0ZS4KSWNoIGJpbiBpbSBBdWdlbmJsaWNrIG1pdCBkZW0sIHdhcyBleGlzdGllcnQgenVmcmllZGVuIGdlbnVnCihkYSBlcyBzaWNoIGFuIGVpbiBzY2hvbiBsYW5nZSBpbiBHZWJyYXVjaCBiZWZpbmRsaWNoZXMKR2VzZXR6IGJ6Z2wuIFRlbGVmb252ZXJrZWhyIGFldXNzZXJzdCBzdGFyayBhbmxlaG50KSwgdW0KZGllIHp1c2FldHpsaWNoIFdhcnRlemVpdCBuaWNodCBpbiBLYXVmIG5laG1lbiB6dSB3b2xsZW4uCkF1Y2ggc3ByaWNodCBkaWUgU2Nod2VyZSBkZXMgUHJvYmxlbXMgZnVlciBzY2huZWxsZXMgSGFuZGVsbi4KV2llIGdlc2FndCwgaWNoIGthbm4gbWljaCBhbiBkaWVzZXIgUGV0aXRpb24gYXVzIGRlbiBnZW5hbm50ZW4gR3J1ZW5kZW4KbmljaHQgYmV0ZWlsaWdlbi4gV2VubiB3ZW5pZ3N0ZW5zIGtvbmtyZXRlIEtyaXRpa3B1bmt0ZSBnZW5hbm50IHd1ZXJkZW4uLi4KQWJlciBzaWUgZ2VodCBnZWdlbiBkaWUgR2VzZXR6ZXNpbml0aWF0aXZlIGFscyBzb2xjaCwgdW5kIGRhIGthbm4gaWNoIG5pY2h0Cm1pdC4KSEFXSywgZGVyIGltIFJMIG1hbmNobWFsIEtvbXByb21pc3NlIGVpZ2VodCwgdW0gZXR3YXMgenVtCnBvc2V0aXZlbiB6dSB2ZXJhZW5kZXJuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGV0aXRpb246IChIYXdrLCAxNy4gTWFyIDE5OTUsIDAwOjUwOjA5KToKRWlnZW50bGljaCB3b2xsdGUgaWNoIG1pY2ggaW4gZGllc2VyIERpc2t1c3Npb24gYXVmIG1haWwgdmVybGVnZW4sCndlaWwgZXMgZWluZSBSTCBBbmdlbGVnZW5oZWl0IGlzdCwgdW5kIHNvIHBlciBzZSBuaWNodCBpbiBkZXIgTVBBCmRpc2t1dGllcnQgd2VyZGVuIHNvbGx0ZS4KU28sIGpldHp0IGFiZXIgJ2F1ZiB6dW0gZnJvZWhsaWNoZW4gTXVkZWxuJywgSEFXSy4KUC5TLjogU29sbCBuaWNodCBoZWlzc2VuLCBkYXNzIGljaCBkYXMgbnVuIGFid3VlcmdlbiBtb2VjaHRlLgpJY2ggZmluZGUgZGllIERpc2t1c3Npb24gYWV1c3NlcnN0IGludGVyZXNzYW50LiBIaWVyIHVudGVyCmRlbiBXaXNzZW5zY2hhZnRsZXJuIGluIEIuQy4gaGVycnNjaHQgcmVnZSBEaXNrdXNzaW9uIHVlYmVyIGRpZXNlClBldGl0aW9uLCB1bmQgaWNoIGJpbiBmdWVyIGplZGVzIEFyZ3VtZW50IGRhbmtiYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2h0dW5nIFdlcmJ1bmcgZGllIHp3ZWl0ZSAhIChPZXR0aSwgMjAuIE1hciAxOTk1LCAxNDoyMTo0NCk6CkhpICEKClNjaG9uIHdpZWRlciBhbGxlaW5lIGFtIFF1ZXN0ZW4uLi4KU0Nob24gd2llZGVyIGtudWRkZWxzdCBEdSBEZWluZW4gd2VpYmxpY2hlbi9tYW5ubGljaGVuIFp3ZWl0aSAhClNjaG9uIHdpZWRlciB1bXNvbnN0IGVpbmVtIE5ld2JpZSBuZW4gTGljaHRwYW56ZXIgYmVzb3JndC4uLgpTY2hvbiB3aWVkZXIgR2VsZCB2ZXJzY2hlbmt0IHVuZCBlci9zaWUgaGF0IERpY2ggZWluZmFjaCBtaXQgbmVtL25lcgphbmRlcmVuIFNpdHplbmxhc3Nlbi4KU2Nob24gd2llZGVyIGFsbGVpbmUgZ2VzdG9yYmVuLgpLZWluZShyKSBkaWUvZGVyIERpY2ggZnJldWRpZyBiZWdydWVzc3QsIHdlbm4gRHUgZGFzIE11ZCBiZXRyaXR0c3QuCgpBYmVyIEhBTFQgISEhIQoKTkFjaCBkZW0gT0V0dGlmb24gbnVuIFBWLU9FVFQKKE5FSU4gbmljaHQgUG9ydCBWYWluLCBQQVJUTkVSVkVSTUlUVExVTkcsIERVIEhJUk5JKQpTY2hyZWlidCBtaXIgRGVpbmVuIFd1bnNjaCB1bmQgd2lyIHN1Y2hlbiBlaW5lbiBQYXJ0bmVyIERlaW5lciBXYWhsLgpNb2Rlcm5zdGUgQ29tcHV0ZXIgKGh1ZXN0ZWwpLCB2ZXJnbGVpY2hlbiBkYXMgUGFydG5lcnByb2ZpbCwgdW5kIGZpbmRlbgphY3VoIERlaW5lKG4pIFRyYXVtbWFubiAoZnJhdSkuClNjaHJlaWIgbWlyIGhldXRlIG5vY2gsIGJlaSBlcmZvbGdyZWljaGVyIFZlcm1pdHRsdW5nIG51cgoyMDAwIE11ZW56ZW4gZ2VidWVoci4uLgoKQml0dGUgYmVhbnR3b3J0ZSBGb2xnZW5kZSBGcmFnZW4gKFdhaHJoZWl0c2dlbWFlc3MsIG9kZXIgYXVjaCBuaWNodCwgZmFsbHMKZXMgZGllIENoYW5jZW4gZXJob2VodC4uLikKCmEuKSBSYXNzZQpiLikgU3R1ZmUKYy4pIFN0YXRzIChJbnRlbGxpZ2VueiwgS3JhZnQsIEF1c2RhdWVyLCBHZXNjaGlja2xpY2hrZWl0KQpkLikgR2VzY2hsZWNodAplLikgR2VzdWNodGVzIEdlc2NobGVjaHQKZi4pIEhvYmJpZXMKZy4pIFdvbHBpZWZhbiAoamEvbmVpbi9lZ2FsKQpoLikgU29uZGVyd3VlbnNjaGUgKERpZSB1ZWJsaWNoZW4gU2F1ZXJlaWVuIGhhbHQuLi4pCgpTY2hyZWliIHVudGVyIENoaWZmcmUgT2V0dGkgaW4gamVkZXIgYmVzc2VyZW4gUG9zdHN0YXRpb24uLi4KCkR1IHN1Y2hzdCwgaWNoIGZpbmRlIC4uLgpJbiB1bnNlcmVyIGJpc2hlcmlnZW4gR2VzY2hhZWZ0c2JpbGFueiBzaW5kIGtlaW5lIE1pc3NlcmZvbGdlIHp1CnZlcnplaWNobmVuLi4uClNjaHJlaWJlIGpldHp0LCBiZXZvciBlaW4oZSkgYW5kZXJlKHIpIG1hbCB3aWVkZXIgc2NobmVsbGVyIHdhci4KClBWLU9FVFQgKFdpciBzdWNoZW4sIHNpZSBmbHVjaGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQgKE9ldHRpLCAyMS4gTWFyIDE5OTUsIDE1OjQ5OjEwKToKSGFsbG8gTGV1dGUgISEhCgpXaXIga29ubnRlbiB1bnNlcmUgd2FocmVuIEdlZnVlaGxlIG5pY2h0IG1laHIgdm9yZWluYW5kZXIKdmVyYmVyZ2VuLCBzY2hvbiBhbHMgd2lyIHVucyBkYXMgZXJzdGUgbWFsIGJlZ2VnbmV0ZW4gd2FyIGVzIGRhCmVpbiBCYW5kIGlubmlnZXIgWndlaXNhbWtlaXQgd2llIGVzIGVuZ2VyIG5pY2h0IGdla251ZXBmdCBzZWluIGthbm4uCkRlc3dlZ2VuIGt1ZW5kaWdlbiB3aXIgaGllcm1pdCBvZmZpemllbGwgdW5kIHVud2lkZXJydWZsaWNoIHVuc2VyZQoKSCBPIEMgSCBaIEUgSSBUCgphbSAxLkFwcmlsIDE5OTUKCmFuLiAoTmVpbiBrZWluIFNjaGVyeiwgZGllc21hbCBuaWNodCkKCkFsc28gbm9jaG1hbCBJaHIgc2VpZCBhbGxlIGhlcnpsaWNoIGVpbmdlbGFkZW4gZGllc2VtIEZlc3QKZGVyIExpZWJlIGJlaXp1d29obmVuLCB1bmQgdW5zIG1pdCBHZXNjaGVua2VuIHp1IHVlYmVyaGFldWZlbi4KCkd1eWJydXNoICYgT2V0dGkgKGJhbGQgYXVmIGltbWVyIHZlcmVpbnQpCgpCaXMgZGFubiAhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoR3V5YnJ1c2gsIDIxLiBNYXIgMTk5NSwgMTc6NDY6MjMpOgojISBybj1PZXR0aSBydD03OTU3OTczNTAKSG1wZiwgUHJ1dXN0LCBncmlucywgbGFjaCwgd2FlbHoKU3RpbW10IGFiZXIsIHNvIGluIEV0d2EKYXVmIGpkZW4gRmFsbCBpc3QgZGllcyBrZWluIFNjaGVyei4KSWNoIGhvZmZlIElociBrb21tdCBhbGxlLCBlcyBpc3QgaW1tZXJoaW4gZWluIEVyZWlnbmlzIQpHdXlicnVzaCwgbmljaHQgbWVociBsYW5nZSBTaW5nbGUuCgpIbS4uLi5sZWlkZXIgaXNzZXIgTWFnCmFiZXIgZWNodGUgTGllYmUga2VubnQga2VpbmUgSGluZGVybmlzc2UgKG5hamEsIGRpZXMgaGFldHRlIGZhc3QgZ2VyZWljaHQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhvY2h6ZWl0IChadWVyaWxldSwgMjIuIE1hciAxOTk1LCAwMDoyNzoyNCk6CiMhIHJuPUd1eWJydXNoIHJ0PTc5NTgwNDM4MwpTYWxpIG9ldHRpICYgR3V5YnJ1c2gsCgpIbW0gbXIgaXN0IG5pY2h0IGJla2FubnQgZGFzIDIgTWFlbm5saWNoZSBDYXJha3RlcmVuIGluIE1vcmdlbmdyYXVlbiBIZWlyYXRlbgprb2VubmVuLiBBYmVyIGljaCB3dWVuc2NoZSBldWNoIGRlbm9jaCBhbGxlcyBndXRlID06KSkKClRzY2hvZSBadWVyaWxldQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZSBIb2VobGUuIChIb3JzY2hkLCAyMi4gTWFyIDE5OTUsIDIyOjUyOjAxKToKCkhhbGxvIExldXRlLgoKSGV1dGUsIGFscyBpY2ggbWVpbiBuZXVlcyBIYXVzIGFtIERyYWNoZW5zZWUgYmV6b2dlbiBoYWJlLCBoYWJlIGljaCB1bnRlcgpkZW0gSGF1cyBkb2NoIGdsYXR0IGRlbiBFaW5nYW5nIHp1IGVpbmVyIEhvZWhsZSBlbnRkZWNrdC4gU2llaHQgZWNodApteXN0ZXJpb2VzIGF1cyBkYSB1bnRlbi4KTmFqYSwgYXVmIGplZGVuIEZhbGwgZ3JhYmUgaWNoIGRhcyBEaW5nIG1hbCBmcmVpLCB1bSB6dSBzZWhlbiwgd2FzIGVzIGRhCnVudGVuIGdpYnQuIElociBrb2VubnQgamEgbWFsIHZvcmJlaWtvbW1lbiwgdW0genUgc2VoZW4sCndpZSB3ZWl0IGljaCBiaW4uIFZpZWxsZWljaHQgZ2lidHMgZGEgdW50ZW4gamEgc29nYXIgZ2VmYWVocmxpY2hlIE1vbnN0ZXIuCgpOYWphLCBpY2ggZnJldSBtaWNoIGF1ZiBqZWRlbiBGYWxsIGF1ZiBldXJlbiBCZXN1Y2guCgpIb3JzY2hkLgoKUC5TLjogTm9jaCBrYW5uIG1hbiBkaWUgSG9laGxlIG5pY2h0IGJldHJldGVuLCBhYmVyIGRpZSBBdXNncmFidW5nZW4Kc2NocmVpdGVuCiAgICAgIHZvcmFuLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVG9kIChNaXJpYW0sIDI3LiBNYXIgMTk5NSwgMDQ6MDA6MDcpOgpIaSBJaHJzLAptYWwgJ25lICJkdW1tZSIgRnJhZ2U6CldlciBoYXQgbWljaCBkZW5uIHVtZ2VicmFjaHQ/IEd1dCwgaWNoIHN0YW5kIGV0d2FzIGFid2VzZW5kIHJ1bSAobmVubnQgbWFuCmF1Y2ggaWRsZSksCmFiZXIgbWljaCBkZXN3ZWdlbiBnbGVpY2ggenUgZGVuIEFobmVuIHp1IHNjaGlja2VuIGlzdCBuaWNodCBzZWhyIG5ldHQuLi4KVW5kIHdpZWRlciBhdWZ6dXdhY2hlbiwgc2ljaCB2b2xsZXIgVGF0ZW5kcmFuZyBpbiBkaWUgV2VsdCB6dSBzdHVlcnplbiB1bmQKZGFubiB6dSBlcmZhaHJlbjogZHUgYmlzdCBlaW4gR2Vpc3QsCmxhZWhtdCBpcmdlbmR3aWUgZGllIEFrdGl2aXRhZXQuLi4KWnVyIFZvcnNpY2h0OiBpY2ggYmluIG5pY2h0IGRpZSBGcmV1bmRpbiB2b24gZGllc2VtIGdydWVuZW4gRnJvc2NoIHZvbiBkZXIKSG9jaGViZW5lLi4uCkFsc286IGxhc3N0IG1pY2ggaGFsdCBpbiBadWt1bmZ0IHZvciBtaWNoIGhpbiBpZGxlbi4uLgpNaXJpYW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlZWxlbmtsZW1wbmVyICYgQ28gS0cgKEVuZ3l3dWNrLCAyNy4gTWFyIDE5OTUsIDE2OjQzOjU3KToKCkhhbGxvIEZyZXVuZGUhCkVpbmUgbWlyIHBlcnNvZW5saWNoIGJla2FubnRlIEZyZXVuZGluIGhhdCBtaXIgbnVuIGRpZSBFaWdudW5nIHp1bQpNRy1Qc3ljaG9sb2dlbiBhdXNnZXNwcm9jaGVuLgpEYSBpY2ggc2VsYnN0IGNocm9uaXNjaCBuZXVnaWVyaWcgYmluLCBuZWhtZSBpY2ggYWxzbyBnZXJuZSBkaWUgQXVmZ2FiZSBhdWYKbWljaCwgdW5kIGhvZXJlIEV1Y2ggYmVpIGRlciBTY2hpbGRlcnVuZyBFdXJlbiBwcml2YXRlc3RlbiB1bmQgaW50aW1zdGVuClByb2JsZW1lIHp1LiBWb2VsbGlnIGRpc2tyZXQgdW5kIGtvc3Rlbmxvcy4KSWNoIGthbm4gYWxsZXJkaW5ncyBuaWNodCB2ZXJzcHJlY2hlbiwgbmljaHQgaWRsZSB6dSBzZWluIDspCgpCaXMgYmFsZCwKRW5neXd1Y2sgLSBNRy1Qc3ljaG9sb2dlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2VlbGVua2xlbXBuZXIgJiBDbyBLRyAoSGlnaGxhbmRlciwgMjguIE1hciAxOTk1LCAxMTozNTozNSk6CiMhIHJuPUVuZ3l3dWNrIHJ0PTc5NjMxNTQzNwpQUk9URVNUISEKRGVyIGVpbnppZyB3YWhyZSBTZWVsZW5rbGVtcG5lciAodG0pIGRlcyBNb3JnZW5HcmF1ZW5zCmJpbiBpY2ggOj4KRGFzIGhhdCB0aWVmZXJlIEdydWVuZGUsIGFiZXIgaWhyIHNvbGx0ZXQgZGFzIGFuIHNpY2gKa2VubmVuIDo+CkhpZ2hsYW5kZXIgcnluIFRhaGFyLCBTZWVsZW5rbGVtcG5lciBzY2hvbiBzZWl0IGxhbmdlciBaZWl0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNRy1TdGFtbXRpc2NoIChTdG9ybWJ1bGwsIDI4LiBNYXIgMTk5NSwgMTg6MDg6NDgpOgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqCQkJCQkJCQkJKgoqICAgIFNvIHdpZSdzIGF1c3NpZWh0IGJsZWlidCBkYXMgTUcgamEgYmVzdGVoZW4uLi4uCQkJKgoqCQkJCQkJCQkJKgoqICAgIC4uLmVpbiBHcnVuZCBtZWhyIG5hY2ggQm9jaHVtIHp1IGtvbW1lbiwgenVtLi4uCSAJCSoKKgkJCQkJCQkJCSoKKgkJTU9SR0VOR1JBVUVOIC0gU1RBTU1USVNDSAkJCQkqCioJCQkJCQkJCQkqCioJQWxzbyBXYWhsLUVsZmVuLCAtWndlcmdlIHVuZCAtTWVuc2NoZW4hISEhCQkJKgoqCQkJCQkJCQkJKgoqCVRyZWZmZW4gYW0gMDcuMDQuMTk5NSAyMDowMCBpbSBVbmljdW0sIG5hZWhlIFJVQm8JCSoKKgkJCQkJCQkJCSoKKgluYWVoZXJlIEluZm9ybWF0aW9uZW4gZ2ViZW4gZ2VybmUgYWxsZSBCb2NodW1lciBNdWRkZXI6KS4JKgoqCQkJCQkJCQkJKgoqCQkuLi4ua29tbWV0IHp1IEhhdWYhIDopCQkJCQkqCioJCQkJCQkJCQkqCioJCUZsaW50bmFpbCAmIFN0b3JtYnVsbAkJCQkJKgoqCQkJCQkJCQkJKgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgkJCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1HLVN0YW1tdGlzY2ggKFJ1bWF0YSwgMjkuIE1hciAxOTk1LCAxMDo0OTo0Myk6CiMhIHJuPVN0b3JtYnVsbCBydD03OTY0MDY5MjgKQWhhLCBNYWdpZXIgc2luZCBhbHNvIG5pY2h0IGVybGF1YnQ/IDotKQpSdW1hdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTUctU3RhbW10aXNjaCAoUXVpbGxpYW4sIDI5LiBNYXIgMTk5NSwgMTE6MDE6MTgpOgojISBybj1SdW1hdGEgcnQ9Nzk2NDY2OTgzCkhtbSwgc2VpdCB3YW5uIHNpbmQgZGVubiBNYWdpZXIgYmVpIEJvY2h1bWVyIFRyZWZmZW4gZXJsYXVidD8/Cldlbm4gRHUgYWxsZXJkaW5ncyBtaXQgZGVpbmVtIFp3ZWl0aSBvZGVyIFRlc3RpIGtvbW1lbiBtb2VjaHRlc3QsCm1hY2hlbiB3aXIgc2ljaGVyIG1hbCBuZSBBdXNuYWhtZSA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoR3V5YnJ1c2gsIDMwLiBNYXIgMTk5NSwgMDg6NTg6MzgpOgojISBybj1PZXR0aSBydD03OTU3OTczNTAKQWxzbzoKRGllIEhvY2h6ZWl0IGlzdCBtYWwgdm9ybGFldWZpZyBnZXBsYW50IGZ1ZXIgMTU6MzAKV2lyIGhvb2ZlbiBlcyBibGVpY2J0IGRhYmVpLiBJc3QgaGFsdCBlaW4gUHJvYiBhbSBTYW1zdGFnLiBBYmVyIHdpcgp1ZWJlcndpbmRlbiBhbGxlIEhpbmRlcm5pc3NlIHVtIHp1ZWluYW5kZXIgenUga29tbWVuLgoKU2VsYnN0IEpBZWdlciBrb2VubmVuIGRhcmFuIG5pY2h0cyBhZW5kZXJuLgpJY2ggaG9mZmUgSWhyIGtvbW10IHphaGxyZWljaCB1bmQgZ3V0Z2VsYXVudApHdXlicnVzaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQU5HRUJPVCAoUGF1bGUsIDMxLiBNYXIgMTk5NSwgMTc6MjM6MzEpOgpbVmVybGVndCB2b24gYWxsZ2VtZWluZXMsIFBhdWxlLCAzMS4gTWFyIDE5OTUsIDE3OjIyOjEwXToKSWNoIGhhYmUgZWluIENvbm5lci1GZXN0cGxhdHRlICggODAgTUIpIG1laXN0YmlldGVuZCBhYnp1Z2ViZW4uIE1pbmRlc3RnZWJvdAo/Cm1tbWggc2FnZW4gd2lyIDEwIERNLgoKUGF1bGUKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lsZGVyIHN1Y2h0IEZyYXUhIChEcmVja2ZpbmssIDMxLiBNYXIgMTk5NSwgMTg6MzU6MTEpOgpLbGVpbmVyIHN1ZXNlciBEcmVja2Zpbmsgc3VjaHQgRnJhdSAoa2FubiBhdWNoIG1pdCBLaW5kIHNlaW4sIEljaCB2ZXJ6aWVoZQphbGxlcyEpIEFsdGVyIGZhc3QgZWdhbCAoMTgtMjUpLiBNdXNzIG5ldHQgdW5uIHdpdHppY2ggdW5uIGlyZ2Vud2llIHRvbGwgc2VpbiEKU2NoaWNrdCBtaXIgZWluZW4gQnJpZWYgb2RlciBlaW4gVW50ZXJob2VzY2hlbiB2b24gZXVjaCEhClRzY2hhdSBzYWd0IERyZWNrZmluayAoYXVmIGJhbGQpICpncmllbioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0c3Byb2JsZW1lIChHdXlicnVzaCwgIDEuIEFwciAxOTk1LCAyMDo1MjowNyk6CkFsc28uLi4uCkRhcyB3YXIga2VpbiBBcHJpbC1TY2hlcnogbWl0IE9ldHRpcyB1bmQgbWVpbmVyIEhvY2h6ZWl0CldpciBoYWJlbnMgYXVjaCBnbGVpY2ggZHJlaW1hbCB2ZXJzdWNodCwgd2llIG1hbiBpbSBCdWNoIGRlciBMaWViZW5kZW4gaW4gZGVyCkthcGVsbGUgaW4gTmliZWxoZWltIG5hY2hsZXNlbiBrYW5uLApBYmVyIGlyZ2VuZHdpZSB3b2xsdHMgbmljaHQga2xhcHBlbi4uLgpXaXIgbWVsZGVuIHVucyB3aWVkZXIsIHdlbm4gd2lyIGVpbmVuIG5ldWVuIFRlcm1pbiB3aXNzZW4uCgpHdXlicnVzaCBkZW5rdCAuIG8gTyAod2FzIHNvbGwgYXVjaCBzY2hvbiBwYXNzaWVyZW4sIHdlbm4gbWFuIGVpbmVuIE1hZwpoZWlyYXRldCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBTkdFQk9UIChCZWxkaW4sICAzLiBBcHIgMTk5NSwgMTQ6MDU6MDMpOgojISBybj1QYXVsZSBydD03OTY2NjM0MTEKSXN0IGVzIFNDU0k/IFdlbm4gRHUgZGVuIFRyYW5zcG9ydCB1ZWJlcm5pbW1zdCB3dWVyZCBpY2ggc2llIGRhbm4gbmFlbWxpY2gKc2Nob24gbmVobWVuIDotKSkpCgpCZWxkaW4gLi4uIChTaGhoaGh0Li4uIEl0J3MgYSBraW5kIG9mIG1hZ2ljayEpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSYWV0c2VsIHVtIGRpZSBIZWlzc3BvcCAoSmltZGlncml6LCAgNC4gQXByIDE5OTUsIDE4OjA2OjQ2KToKSHVodSB2aWVsZXMgbmV1ZXMgaGF0IHNpY2ggZXJlaWduZXQsCm5ldWxpY2ggbGV1Y2hndGV0IG1pciBkb2NoIGJlaW0gRmluZGxpbmdzc3RlaW4gc28gZWluIGtvbWlzY2hlcgpMaWNoc3RyYWhsIEdFTkFVIGlucyBBdWdlLiBUamEgbG9obnQgc2ljaCBtYWwgZGVuIHp1IGVyZm9yc2NoZW4sCnZvciBhbGxlbSBmdWVyIGRpZSBkaWUgc2Nob24gaW1tZXIgdWViZXIgZGllIGhlaXNzcG9wcyBiZXNjaGVpZCB3aXNzZW4Kd29sbHRlbi4KCkljaCBmcmV1IG1pY2ggYXVmIEJlc3VjaCB1bmQgaGFiIGltbWVyIGVpbiBwYWFyIGpvaW50cyBpbiBtZWluZW0gQmV1dGVsLgoKQ2lhbywKIEphbWVzIEJvbGl2YXIgZGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIT0NIWkVJVCAoQ2F0d2VhemxlLCAgNy4gQXByIDE5OTUsIDE4OjMxOjMwKToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBLcmlnaSwgIDcuIEFwciAxOTk1LCAxNzo1Nzo1Ml06CkFua3VlbmRpZ3VuZyEKCkFtIE1vbnRhZywgMTAuIEFwcmlsIDE5OTUgZmluZGV0IGluIGRlciBLYXBlbGxlIGluIE5pYmVsaGVpbQpkaWUgSG9jaHplaXQgdm9uCgogICAgICAgIEJpcmRpZSB1bmQgS3JpZ2kKCnN0YXR0LgoKQWxsZSBGcmV1bmRlIHVuZCBzb250aWdlIE1VRGRlciBzaW5kIGhlcnpsaWNoIGRhenUgZWluZ2VsYWRlbiEhCgpFaW5zcHJ1ZWNoZSBnZWdlbiBkaWUgVHJhdXVuZyBtdWVzc2VuIHJlY2h0emVpdGlnIHZvcmhlcgpiZWkgVlJBSSBhbmdlbWVsZGV0IHdlcmRlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIT0NIWkVJVCAtIFRFUk1JTiAoQ2F0d2VhemxlLCAgNy4gQXByIDE5OTUsIDE4OjMyOjA0KToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBLcmlnaSwgIDcuIEFwciAxOTk1LCAxNzo1OTo1Ml06CgpOYWNodHJhZyB6dXIgSG9jaHplaXQgdm9uIEJpcmRpZSB1bmQgS3JpZ2k6CgpEZXIgVGVybWluIGlzdAoKICAgICAgICAgMTUgVWhyIQoKQW5zY2hsaWVzc2VuZCBGZWllciEhCgogICAgICAgICAgICAgICAgICBLcmlnaQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZWRlciBkYSAoQXJhbnlhLCAxMC4gQXByIDE5OTUsIDE2OjE3OjIxKToKTmFjaGRlbSBpY2ggYXVzIGRlbSAiSXNyYWVsIiBnZW5hbm50ZW4gUGFyYWxsZWx1bml2ZXJzdW0genVydWVja2dla2VocnQgYmluLAprb25zdGF0aWVyZSBpY2ggZXJmcmV1dCwgZGFzcyBlcyBkYXMgTW9yZ2VuR3JhdWVuIG5vY2ggaW1tZXIgZ2lidC4KTWVpbmUgR3VldGUsIHdhcyBoYWV0dGUgaWNoIG9obmUgRXVjaCBnZW1hY2h0IQoKQmluIHdpZWRlciBkYSEKICAgICAgICAgICAgICBFdXJlIEFyYW55YQoKUFM6IEthbm4gbWlyIG1hbCBqZW1hbmQgZGllIFN0b3J5IHVlYmVyIGRpZSBSZXR0dW5nIGRlcyBNRyBlcnphZWhsZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJcmlzaCBGb2xrIChBbnRoZWEsIDEzLiBBcHIgMTk5NSwgMTE6MzU6NDApOgogIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAvIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCnwgICB8ICBfX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogXF8vfCAgfCAgICBcICAgICAgICAgICAgXCAgICAgXCAgICAgICAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgIHwgICAgIHwgIF9fXyAgICAgICB8ICAgICB8ICAgICAgICB8IF9fXyAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICB8X19fXy8gICBfX19cICAgX19ffCAgX19ffCBcICAgXCAgIDxfX18gICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgfCAgICAgICAvICAgfCAgLyAgIHwgLyAgIHwgIHwgICB8ICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgIHwgICAgICAgfF9fX3wgIHxfX198IHxfX198ICAgXF9ffCAgIF9fXy8gICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgX19fX18gICAgICAgICAgICAgICAgICAgICBfXy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgICAgIHwgICAgXCAgICAgICAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICB8ICAgICB8IF9fX18gICAgfCAgICAgICAgICAgX19fICAgIF9fXyAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgfF9fX18vIC8gICAgXCAgLSstIFwgICBcICB8LyAgICAgfC8gICBcICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgICAgIHwgXF8gICB8X19fXy8gICB8ICAgfCAgIHwgfCAgICAgIHwgICAgfCAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICB8ICAgXCAgIFxfX19fICAgXCAgICBcX198IHwgICAgICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgICAgIFRyYWRpdGlvbmFsIElyaXNoIEZvbGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgICAgICBGcmVpdGFnLCAyOC4gQXByaWwsIDIwLjMwIFVociAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgXyB8ICAgIEltIEt1bHR1cnRyZWZmLCBIZWxtc3RyYXNzZSAxLCBFcmxhbmdlbiAoYW0gTWFya3RwbGF0eikgICAgICAgfAogLyBcfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgIHwgICAgICAgICAgRWludHJpdHQ6IDguLSBETSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiBcXy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLwoKIFdlciBhbHNvIElyaXNoIEZvbGsgbWFnLCBzaWNoIHp1IGRpZXNlciBaZWl0IGluIEVybGFuZ2VuIGF1ZmhhZWx0IChvZGVyCiBkYWZ1ZXIgaGVya29tbXQgOikgKSB1bmQgc2Nob24gaW1tZXIgbWFsIHNlaGVuIHdvbGx0ZSwgd2llIHNpY2ggendlaQogTWFnaWVyIGF1ZmZ1ZWhyZW4sIHdlbm4gc2llIGF1ZiBkZXIgQnVlaG5lIHN0ZWhlbiAoYWxsZXJkaW5ncyBvaG5lIFphdWJlcmVpKSwKIGRhcmYgc2ljaCBtaXQgZGllc2VyIEFuemVpZ2UgYW5nZXNwcm9jaGVuIGZ1ZWhsZW4uCgogICAgICAgQW50aGVhIHVuZCBIaWdobGFuZGVyCgogUC5TLjogQWNoIGphLCBhdXNzZXIgdW5zIHN0ZWhlbiBhdWNoIG5vY2ggZWluIHBhYXIgYW5kZXJlIG1pdCBhdWYgZGVyIEJ1ZWhuZSwKICAgICAgIGFsc28ga2VpbmUgQW5nc3QuLi4gRE9SVCBzaW5kIHdpciBuaWNodCBNQUNIVEdFSUwgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCld1bmRlcmxhbmQgZXJvZWZmbmV0IChUaG9yaW4sIDEzLiBBcHIgMTk5NSwgMTM6MDQ6MTMpOgpXZW5uIGhpZXIgc2Nob24gc28gdmllbCBXZXJidW5nIGlzdCwgbW9lY2h0ZSBpY2ggYXVjaCB3YXMgbG9zd2VyZGVuOgpEYXMgV3VuZGVybGFuZCBoYXQgamV0enQgZXJvZWZmbmV0IHVuZCBpc3QgdW50ZXIKcnphaXgzNDAucnoudW5pLWxlaXB6aWcuZGUgNDcxMQp6dSBlcnJlaWNoZW4uIFJlaW5zY2hudXBwZXJlciBzaW5kIGhlcnpsaWNoIHdpbGxrb21tZW4sIGF1Y2ggd2VubgplcyB0ZWlsd2Vpc2Ugbm9jaCBpbSBBdWZiYXUgaXN0IChub2NoIGtlaW5lIGFrdGl2ZW4gR2lsZGVuKS4KVmVyc3VjaCBtYWwgZGVpbiBHbHVlY2ssIENVCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV3VuZGVybGFuZCBlcm9lZmZuZXQgKENoYXJseSwgMTMuIEFwciAxOTk1LCAxMzozNTozNCk6CiMhIHJuPVRob3JpbiBydD03OTc3NzEwNTMKLi4uCm9kZXIgYXVjaCB0ZWxuZXQgOiAxMzkuMTguMTEuOTIgNDcxMQoKYWNoc28sZmFsbHMgaWhyIGVpbiBtZWdhbGFnIGVyd2lzY2h0LWVpbiBhbmRlcmVzIG1hbCB3aWVkZXIgZWlubG9nZ2VuIChlcwpnaWJ0IGF1Y2ggbGFnZ3kgZnJlaWUgemVpdGVuKS4KCi0tPiBtZWluZSBtZWludW5nIDogZGFzIHd1bmRlcmxhbmQgaXN0IGVpbmUgc3VwZXIgYmVyZWljaGVydW5nIDwtLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV1dXLVNlaXRlbiAoQXJhbnlhLCAxOC4gQXByIDE5OTUsIDE3OjQwOjAxKToKSWNoIGVudGRlY2tlIGdlcmFkZSBkaWUgV3VuZGVyV2FyZSBXZWx0IGRlcyBXV1cgZnVlciBtaWNoLiBIYXQgamVtYW5kIGVpbgpwYWFyCm5ldHRlIFdXVy1BZHJlc3NlbiBhdWYgTGFnZXI/IEljaCB3dWVyZGUgbWlyIGdlcm4gZWluIHBhYXIgd2l0emlnZSBTZWl0ZW4gYW4tCnNlaGVuLgpXZW5uIElociBhbHNvIGVpbiBwYWFyIExpZWJsaW5nc3NlaXRlbiBoYWJ0LCBkaWUgaWNoIG1pciBtYWwgYW5zZWhlbiBzb2xsdGUsCmRhbm4gaGVyIG1pdCBkZW4gQWRyZXNzZW4uIEFiZXIgYml0dGUgdmlhIE1VRG1haWwhCgpNZkcKICAgQXJhbnlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgSXJyZSBXZWx0cmF1bXByb2xldCAoTnVkZWksIDIwLiBBcHIgMTk5NSwgMDg6Mzk6NTIpOgoiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgoiIERlciBJcnJlIFdlbHRyYXVtcHJvbGV0IGtvbW10ISEhISEhISEhISEhISEiIiIiIiIiIiIiIgoiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgoKRGFzIFNwaXR6ZW56aW5lIGRlciBFeHRyYWtsYXNzZSBlcnNjaGVpbnQgZGVtbmFlY2hzdCBtaXQgc2VpbmVyIEFwcmlsbnVtbWVyIQpEaW5nZSwgZGllIHNpY2ggZGVyIGVuZ2FnaWVydGUgUm9sbGVuc3BpZWxlciBuaWUgenUgZnJhZ2VuIGdldHJhdXRlLCB3ZXJkZW4KaGllciBiZWFudHdvcnRldGUhCk1pdCBlaW5lciBuZXVlbiBGb2xnZSBkZXIgQWJlbnRldWVyIHZvbiBrZXB0biBTY2h1cmxpIHVuZCBzZWllbm4gQm90dGxidWFtIQpNaXQgZWluZW0gd2VpdGVyZW4gS2FwaXRlbCBhdXMgZGVuIHZlcmxvcmVuIGdlZ2xhdWJ0ZW4gVm9sZ2FyLUNocm9uaWtlbiB2b24KSHlyb25pbXVzIGRlbSBaaXR0cmlnZW4sIGF1Y2ggZ2VuYW5udGUgREVSIENIUk9OSVNUIQoKTWl0IGRlciBwcm9ncmFtbWF0aXNjaGVuIEt1cnpnZXNjaGljaHRlIGRlcyBNb25hdHMhClVuZCBsYXN0LCBub3QgbGVhc3QgbWl0IGVpbmVtIEludGVydmlldyB2b24gZGVyIE51ZXJuYmVyZ2VyIFNwaWVsZW1lc3NlIG1pdApkZW4gYmVrYW5udGVuIEF1dG9yIFdvbGZnYW5nIEhvaGxrb3BmLCBhdWNoIGJla2FubnQgdW50ZXIgc2VpbmVtIFBzZXVkb255bQpIb2x6YmVpbiwgQXV0b3Igdm9uICJIYWdlbiB2b24gVHJvamEiIHVuZCAzMDAgYW5kZXJlciBiZWthbm50ZW4gRmFudGFzeXdlcmtlIQouLi51bmQgdmllbCBtZWhyIQoKTm9jaCBoZXV0ZSBhbmZvcmRlcm4gbWl0IHJlYWxlciBadXN0ZWxsYWRyZXNzZSBiZWkKCk51ZGVpLApTY2hyaWZ0bGVpdHVuZyBEaVdwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcnVzcyAoTGksIDIwLiBBcHIgMTk5NSwgMDk6NDU6MzkpOgpOaSBIYW8hClZpZWxlbiB2b24gRXVjaCBpc3QgaW56d2lzY2hlbiBzaWNoZXJsaWNoIGRlciBHcnVzcyAnbmkgaGF1JyBnZWxhZXVmaWcuIERhIGVyCmFiZXIgb2Z0IG1pc3N2ZXJzdGFuZGVuIHd1cmRlLCB1bmQgaWNoIE1lbGR1bmdlbiBiZWthbSB3aWU6IG5pY2h0IEhhdWVuLCBvZGVyIAppY2ggaGF1IGRpY2ggYXVjaCBnbGVpY2gsIHdlcmRlIGljaCB2b24gaGV1dGUgYW4gbmljaHQgbWVociBkYXMgbGF1dG1hbGVyaXNjaGUKTmkgSGF1LCBzb25kZXJuIGRpZSBrb3JyZWt0ZSBTY2hyZWlid2Vpc2UgTmkgSGFvIHZlcndlbmRlbi4KVXdicmlnZW5zLCBmdWVyIGRpZSwgZGllIGVzIG5vY2ggbmljaHQgd2lzc2VuIHNvbGx0ZW46Ck5pIEhhbyBiZWRldXRldCBqZSBuYWNoZGVtOiBHdXRlbiBNb3JnZW4sIGd1dGVuIFRhZywgb2RlciBndXRlbiBBYmVuZC4KQWxsZXMga2xhcj8KCkxpIChob2ZmdCwgZGFzcyBkZXIgQXJ0aWtlbCByaWNodGlnIGF1Zmdlbm9tbWVuIHdpcmQ6IE5pY2h0IGdhbnogZXJuc3RoYWZ0LgopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpadXJ1ZWNrIG5hY2ggRC1MYW5kISAoS3JldGVrLCAyMi4gQXByIDE5OTUsIDIwOjIzOjQzKToKSGFsbG8sIExldXRlIQoKTmFjaCBlaW5lbSAodmllbCB6dSBrdXJ6ZW4hKSBKYWhyIGlzdCdzIG51biB3aWVkZXIgc293ZWl0LCBlcyB2ZXJzY2hsYWVndAptaWNoIHZvbiBkZW4gVVNBIHdpZWRlciBuYWNoIERldXRzY2hsYW5kIHp1cnVlY2ssIGdlbmF1ZXIgZ2VzYWd0IG5hY2gKUGFzc2F1LiBEb3J0IHdlcmRlIGljaCBhYiAxLiBNYWkgZGFzIGx1c3RpZ2UgRG96ZW50ZW5sZWJlbiB3aWVkZXIgZ2VnZW4KZWluIHRyaXN0ZXMgU3R1ZGVudGVuZGFzZWluIGVpbnRhdXNjaGVuLi4uIFVuZCBkYXMgYmVkZXV0ZXQgZnVlciBtaWNoCnZvciBhbGxlbSBtYWwsIGRhc3MgaWNoIGluIFp1a3VuZnQgdmVybXV0bGljaCBhbHNvIG5pY2h0IG1laHIgc28gb2Z0CndlcmRlIHZvcmJlaXNjaGF1ZW4ga29lbm5lbiwgdW5kIHZvciBhbGxlbSBuaWNodCBzbyBsYW5nZSEKQWJlciBmcmV1dCBldWNoIG5pY2h0IHp1IGZydWVoLCBnYW56IHdlcmRldCBpaHIgbWljaCBub2NoIG5pY2h0IGxvcyEgOikKClRzY2h1ZXNzLAoKS3JldGVrCmVpbiB0cmF1cmlnZXIgT2Noc2VuZnJvc2NoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBU0NJSS1LdWVuc3RsZXIgZ2VzdWNodCEgKExvY28sIDI0LiBBcHIgMTk5NSwgMTU6NTQ6NTcpOgpBbiBhbGxlLCBkaWUgbWVpbmVuLCBkZXIgUG9zdGthcnRlbmtpb3NrIGluIFN2b2x2YWVyIGtvZW5udGUgcnVoaWcgZWluZQpiZXNzZXJlIEF1c3dhaGwgaGFiZW46IEVzIHdlcmRlbiBpbW1lciBnZWVpZ25ldGUgTW90aXZlIGdlc3VjaHQhIFNldHp0IEV1Y2ggYW4KZGVuIEVkaXRvciB1bmQgemVpY2huZXQsIHNjaGlja3QgbWlyIEV1cmUgRW50d3VlcmZlLgpGdWVyIGplZGUgdmVya2F1ZnRlIEthcnRlIGdpYnQgZXMgYXVzc2VyZGVtIGVpbmUgVW1zYXR6YmV0ZWlsaWd1bmcgdm9uIDMKTXVlbnplbi4KR2VzdWNodCB3ZXJkZW4gYWJlciBuaWNodCBCaWxkZXIgYXVzIGRlbiBlaW5zY2hsYWVnaWdlbiBmdHAtU2VydmVybiAob2J3b2hsLAphdWNoIGF1c2dld2FlaGx0ZSBFeGVtcGxhcmUgdm9uIGRhIGtvZW5uZW4gdmllbGxlaWNodCBuZXR0IHNlaW4pLCBzb25kZXJuCm1vZWdsaWNoc3Qgc2VsYnN0Z2V6ZWljaG5ldGUgQVNDSUktQmlsZGVyIG1pdCBNRy1CZXp1ZywgYWxzbyB6LkIuCkFuc2ljaHRza2FydGVuIHZvbiBiZWthbm50ZW4gU3RlbGxlbiBoaWVyLgpJbiBkZXIgSG9mZm51bmcgYXVmIHZpZWxlIHNjaG9lbmUgQmlsZGVyLAogICBMb2ZvdGVuIFRyeWtrZXJpLCBpLlYuIExvY28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBhZGR5J3MgUmV0dXJuIChIaWdobGFuZGVyLCAyNi4gQXByIDE5OTUsIDEzOjU1OjAzKToKSWNoIG1vZWNodGUgbm9jaCBlaW5tYWwgYW4gQW50aGVhcyBBcnRpa2VsIGVyaW5uZXJuIC0KdWViZXJtb3JnZW4sIGRhcyBpc3QgRnJlaXRhZywgZGVyIDI4LiBBcHJpbCwgdW0gMjA6MzAgVWhyIHNwaWVsZW4gd2lyIGJlaWRlCihwbHVzIHZpZXIgbmljaHQtbXVkLXNwaWVsZW5kZSBNaXRnbGllZGVyIGRlciBHcnVwcGUgUGFkZHkncyBSZXR1cm4pIGltCkt1bHR1cnRyZWZmIGluIEVybGFuZ2VuIFRyYWRpdGlvbmFsIElyaXNoIEZvbGsuIERlciBLdWx0dXJ0cmVmZiBpc3QgYW0KU2NobG9zc3BsYXR6LCBnYW56IGxlaWNodCB6dSBmaW5kZW4sIEFkcmVzc2UgaXN0IEhlbG1zdHJhc3NlIDEuCkplZGVyLCBkZXIgZGllIE11c2lrIGRlciBncnVlbmVuIEluc2VsIG1hZyB1bmQgWmVpdCBoYXQsIGlzdCBoZXJ6bGljaCB3aWxsLQprb21tZW4gKHNvbGFuZ2UgZXIgZGllIDggTWFyayBFaW50cml0dCBhdWZicmluZ2VuIGthbm4gOz4pLgpVbmQgbmVpbiwgZGFzIGlzdCBrZWluIHZlcnNwYWV0ZXRlciBBcHJpbHNjaGVyeiwgYXVjaCB3ZW5uIGVzIExldXRlIGdlYmVuCnNvbGwsIGRpZSBBbnRoZWFzIEFuemVpZ2UgbmljaHQgZ2VnbGF1YnQgaGFiZW4uCldvbGx0ZXQgaWhyIHNjaG9uIGltbWVyIG1hbCB3aXNzZW4sIHdhcyBlaW5lIEJvZGhyYW4gaXN0PwpXb2xsdGV0IGlociBzY2hvbiBpbW1lciBtYWwgd2lzc2VuLCB3YXMgRW5nbGFlbmRlcmtub2NoZW4gbWl0IE11c2lrIHp1CnR1biBoYWJlbj8KV29sbHRldCBpaHIgc2Nob24gaW1tZXIgbWFsIGplbWFuZGVuIHNlaGVuLCBkZXIgQmFuam8gbWl0IHp3ZWkgRmluZ2VybgpzcGllbHQ/CldvbGx0ZXQgaWhyIEFudGhlYSBzY2hvbiBpbW1lciBtYWwgc2luZ2VuIGhvZXJlbiAoZWluZSBNZWVyanVuZ2ZyYXUhKT8KV29sbHRldCBpaHIgc2Nob24gaW1tZXIgbWFsIHNlaGVuLCB3aWUgaWNoIG1pdCBkZW4gVHVlY2tlbiBlaW5lciBHZWlnZQprYWVtcGZlPwoKRGFubiBrb21tdCBhbSBGcmVpdGFnIGluIGRlbiBLdWx0dXJ0cmVmZiEKCiAgIEhpZ2hsYW5kZXIgcnluIFRhaGFyIGZ1ZXIgZGllIFBSLUFidGVpbHVuZyB2b24gUGFkZHkncyBSZXR1cm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClcgSSBDIEggVCBJIEcgISAhICEgKFN0b3JtYnVsbCwgIDMuIE1haSAxOTk1LCAxMjo0MjozNSk6CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKgoqICoJCQkJCQkJCQkgKiAqCiogKiAgICAgICAgICAgICAgICBFUyBJU1QgV0lFREVSIFNPV0VJVC4uLgkJCQkgKiAqCiogKgkJCQkJCQkJCSAqICoKKiAqCQkgICAgLi4uIGFtIEZSRUlUQUcsIGRlbSA1LiBNYWkgICAgICAgICAgICAgICAgICAgICAgICAgICAqICoKKiAqCQkJCQkJCQkJICogKgoqICogICAgICAgICAgICAgICAgIC4uLiBpbSBDTE9DSEFSRCBpbiBSSEVJTi1SVUhSLU1FVFJPUExFWCAgICAgICAgICAgICAgKiAqCiogKiAgICAgICAgCQkJCQkJCQkgKiAqCiogKgkJCQkJCQkJCSAqICoKKiAqICAgICAgICAgICAgICBNVURERVItU1RBTU1USVNDSCBpbiAgIEIgTyBDIEggVSBNCQkJICogKgoqICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAqCiogKiAgICAgQ29ubmVjdGlvbjogIFJ1ZGlyYXR0ZXIgZ2lidCBFdWNoIHdlaXRlcmUgSW5mbydzLCBDaHVtbWVyICAgICAgICAqICoKKiAqICAgICAgICAgICAgICAgICAgb2RlciBmcmFndCBqZW1hbmQgYXVzIGRlciBSVUJvLUdhbmchISEgICAgICAgICAgICAgICogKgoqICoJCQkJCQkJCQkgKiAqCiogKiAgICAgYWxzby4uLi4uICAgICAgICAgIEtPTU1FVCBaVUhBVUYhIDstKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICoKKiAqCQkJCQkJCQkgIAkgKiAqCiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFcgSSBDIEggVCBJIEcgISAhICEgKFJ1ZGlyYXR0ZXIsICAzLiBNYWkgMTk5NSwgMjA6MDQ6NTUpOgojISBybj1TdG9ybWJ1bGwgcnQ9Nzk5NDk3NzU1ClNvLCBrdXJ6ZSBBbm1lcmt1bmc6CkljaCBoYWIgZ2VyYWRlIG5vY2ggbWFsIGdlc2NoYXV0LCBvYiBpcmdlbmR3ZXIgZ2VtYWlsdCBoYXQgd2VnZW4gZWluZXIKV2VnYmVzY2hyZWlidW5nLXdhciBhYmVyIG5pY2h0cywgdW5kIGljaCBiaW4gbW9yZ2VuIHVuZCBhbSBGcmVpdGFnIHdvaGwgbmljaHQKZGEgKEFSQkVJVEFSQkVJVEFSQkVJVCkuIFZpZWwgU3Bhc3MgYWxzbyBiZWltIFN0YW1tdGlzY2ggKHdvaGwgb2huZSBtaWNoKQpSdWRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCAoZGllIDJ0ZSkgKEd1eWJydXNoLCAxMS4gTWFpIDE5OTUsIDE0OjMzOjA3KToKTmFjaGRlbSB3aXIgZXMgc2Nob24gbWVocm1hbHMgdmVyc3VjaHRlbiB1bnMgYW5laW5hbmRlciB6dSBiaW5kZW4sIGRhcwpTY2hpY2tzYWwgamVkb2NoIGV0d2FzIGRhZ2VnZW4gZWluenV3ZW5kZW4gaGF0dGUgKG9kZXIgd2FycyBKb2Y/KSwgc3RhcnRlbiB3aXIKZWluZW4gZXJuZXV0ZW4gVmVyc3VjaDoKCkhpZXJtaXQga3VlbmRpZ2UgaWNoIGRpZSBIb2NoemVpdCB2b24KCiBPIEUgVCBUIEkgICAgdW5kICAgIEcgVSBZIEIgUiBVIFMgSAoKYW4KRXMgaXN0IHNvIHdlaXQgYW06Cgp3dW5kZXJzY2hvZW5lbiBEaWVuc3RhZywgZGVuIDE2Lk1haSAxOTk1IChaZWl0cHVua3QgOiBtYWwgbWVpbmUgWnVrdWVuZnRpZ2UKZnJhZ2VuIDspICkKCkd1eWJydXNoLCBiYWxkIHVudGVyIGRlciBIYXViZSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCBuZSBGcmFnZS4uLiAoQXJhbnlhLCAxMS4gTWFpIDE5OTUsIDE3OjMyOjMwKToKSWNoIGhhYiBtYWwgbmUgRnJhZ2U6IEljaCBoYWIgZWluZW4gVXJhbHQtSUJNLVBDIChzbyB2b24gODQgb2RlciBzbywgU2lxdWUKd2Vpc3MgZGEgQmVzY2hlaWQpIHVuZCBzdWNoZSBlaW5lbiBEcnVja2VyIGRhZnVlci4KWgpKZXR6dCBoYWIgaWNoIGFiZXIga2VpbmVybGVpIEFobnVuZywgd2FzIENvbXB1dGVyIGFuZ2VodCB1bmQgc28gd2VuZGUgaWNoCm1pY2ggYW4gRXVjaCBhbHMga29tcGV0ZW50ZSBHZXNlbGxzY2hhZnQ6Ckthbm4gbWlyIGplbWFuZCBlaW5lbiBUaXAgZ2ViZW4sIHdhcyBmdWVyJ24gRHJ1Y2tlciBpY2ggZGEgYW5zY2hsaWVzc2VuCmthbm4sIHdvIG1hbiBzb3dhdCBub2NoIGtyaWNodCB1bmQgd2lldmllbCBzb3dhdCBrb3N0Jy4uLgoKQW50d29ydCBwZXIgbXVkbWFpbCBhbiBtaWNoLgoKQXJhbnlhClBvc3RsYWdlcm5kCkVsZmVucG9zdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ3JhaWcga2FubiBlbmRsaWNoIHNlaGVuOiBQYXJ0eSEgKENyYWlnLCAxMi4gTWFpIDE5OTUsIDExOjMzOjEyKToKCkFtIE1vbnRhZywgMTUuIE1haTogT3Blbi1haXItUGFydHkuCgpHcnVuZDogQ3JhaWcgaGF0IGRvY2ggdGF0c2FlY2hsaWNoIFN0dWZlIDIwIGVycmVpY2h0LgoKVmVyYW5zdGFsdGVyOiBEZXJzZWxiZS4KClRlcm1pbjogTW9udGFnLCB6d2lzY2hlbiAxNzozMCB1bmQgMTggVWhyLgoKT3J0OiBSdWZlIGljaCBkYW5uIGR1cmNoLgoKRWluZ2VsYWRlbiBzaW5kIGFsbGUgRnJldW5kZSwgRmVpbmRlLCBhbGxlIEdsZWljaGd1ZWx0aWdlbiB1bmQgbmF0dWVybGljaAphbGxlLCBkaWUgZWluZmFjaCBudXIgTHVzdCBhdWYgUGFydHkgaGFiZW4uCgpWaWVsIFNwYXNzLgoKQ1JBSUcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDcmFpZyBrYW5uIGVuZGxpY2ggc2VoZW46IFBhcnR5ISAoSGFyZGlsLCAxMi4gTWFpIDE5OTUsIDE0OjUzOjQ3KToKIyEgcm49Q3JhaWcgcnQ9ODAwMjcxMTkyCkFlaG0sIENyYWlnOgoKUmwtUGFydHkgb2RlciBpbSBNdWQ/IFJMLVBhcnR5IGZhZW5kIGljaCBlaWdlbnRsaWNoIGJlc3NlciA7LSkKCllUSAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDcmFpZyBrYW5uIGVuZGxpY2ggc2VoZW46IFBhcnR5ISAoQ3JhaWcsIDE1LiBNYWkgMTk5NSwgMTU6NDI6NDYpOgojISBybj1IYXJkaWwgcnQ9ODAwMjgzMjI3CgpOdW4sIGRpZXNlIFBhcnR5IGZpbmRldCBpbSBNdWQgc3RhdHQuCgpEZXIgT3J0IHN0ZWh0IG1pdHRsZXJ3ZWlsZSBhdWNoIGZlc3Q6IE1pdHRlbiBhdWYgZGVyIEtyZXV6dW5nIHZvciBkZW0KRWxmZW5kb3JmLgpBdWNoIER1IGJpc3QgbmF0dWVybGljaCB3aWxsa29tbWVuLCBIYXJkaWwuCgpQLlMuIFdpciBrb2VubmVuIHVucyBoZXV0IGFiZW5kIGF1Y2ggZ2VybmUgaW4gcmwgZWluZW4gemlzY2hlbiAtIGFuIG1pcgpzb2xsJ3MgbmljaHQgbGllZ2VuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGFyIFRyZWsgTmFjaCBpbiBUdWViaW5nZW4hIChCYW56YWksIDE2LiBNYWkgMTk5NSwgMjI6MTc6NDUpOgpNb2luIG1vaW4sCgpmdWVyIGRpZWplbmlnZW4gZGllJ3Mgbm9jaCBuaWNodCB3aXNzZW46IGFtIEZyZWl0YWcgZGVuIDE5LiBpc3QKaW4gVHVlYmluZ2VuIGltIE11c2V1bSBTdGFyVHJlay1OYWNodCEgQWxsZSA2ICh2aWVsbGVpY2h0IGF1Y2ggNykKRmlsbWUsIG1pdCBUYXNza2FmZiB1bmQgRnJ1ZWhzdHVlY2sgOy0pCkRlciBnYW56ZSBTcGFzcyB3aXJkIHdvaGwgdW0gMjAgVWhyIGFuZmFuZ2VuLCBuYWVoZXJlIEluZm9ybWF0aW9uZW4gZ2lidHMKaW0gTXVzZXVtICh1bmQgbGF0dWVybmljaCBhdWNoIGRpZSBLYXJ0ZW4gOy0pCgpMaXZlIGxvbmcgYW5kIHByb3NwZXIsCiAgICAgICAgICAgICAgICAgICBCYW56YWkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IENyYWlnIGthbm4gZW5kbGljaCBzZWhlbjogUGFydHkhIChXdXIsIDE3LiBNYWkgMTk5NSwgMDU6NTM6MjUpOgojISBybj1DYXJhZGhyYXMgcnQ9ODAwNjgwNzI1CkFiZXIgQ2FyYWRocmFzLi4uZGFzIGlzdCBkb2NoIGFiZXIgZ2VmYWVocmxpY2guLi5kaWUgRWxmZW53YWVjaHRlciBzaW5kIGphCm5pY2h0IGluIGRlciBTU1AsIG9kZXIgZG9jaD8KV3VyIC0gZ3J1ZWJlbG5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3RhciBUcmVrIE5hY2ggaW4gVHVlYmluZ2VuISAoTHdheGFuYSwgMTcuIE1haSAxOTk1LCAxMjo1Njo1Mik6CiMhIHJuPUJhbnphaSBydD04MDA2NTU0NjUKTHdheGFuYSB3aWxsLi4uLi4uClN0YXIgVHJlayBOYWNodCAgdW5kIGRpZSBUb2NodGVyIGRlcyBmdWVuZnRlbiBIYXVzZXMga2FubiBuaWNodCBkYWJlaXNlaW4uLi4uCipoZXVsKiBadSBkaWVzZW0gQW5sYXNzIG11c3Mgc29nYXIgaWNoIG1hbCB3YXMgaW4gZGllIFplaXR1bmcgc2V0emVuLi4uLgpWaWVsIHNwYXNzIGFuIGFsbGUgZGllIGhpbmdlaGVuLi4uLgp0c2NoYXUgZXVyZSBUb2NodGVyIGRlcyBmdWVuZnRlbiBkZXMgZnVlbmZ0ZW4gSGF1c2VzLCBIdWV0ZXJpbiBkZXMgc2FrcmFsZW4KS2VsY2hlcyB2b24gUml4eCB1bmQgRXJiaW4gZGVyIGhlaWxpZ2VuIHJpbmdlIHZvbiBCZXRhemVkICpncmlucyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlbWluYXIgLSsgVU1GUkFHRSArLSAoSGF0ZSwgMTcuIE1haSAxOTk1LCAxMzoyMTo1NCk6CkxpZWJlciBNdWRkZXJpbm5lbiB1bmQgbGllYmUgTXVkZGVyLAoKICBkZXIgRm9lcmRlcnZlcmVpbiBQcm9qZWt0IE1vcmdlbkdyYXVlbiBlLlYuIGhhdCB2b3IsIGFtIDIzLjYuMTk5NSBlaW4gClNlbWluYXIgenVtIE1VRCB6dSBtYWNoZW4uIERpZXNlcyBzb2xsIFByb2dyYW1taWVydW5nLCBMUEMgdW5kIGFuZGVyZXMgCmJlaW5oYWx0ZW4uIERhbWl0IHdpciB1bnMgZ2VudWVnZW5kIHZvcmJlaXJlaXRlbiBrb2VubmVuLCBicmF1Y2hlbiB3aXIgCkV1cmUgTWl0aGlsZmUuICBJbSBBbnNjaGx1c3MgYW4gZGllc2VuIEFydGlrZWwgc3RlaHQgZWluIGtsZWluZXIgRnJhZ2Vib2dlbiwgCndlbGNoZXIgdW5zIGhlbGZlbiBzb2xsLCBFdXJlbiBXdWVuc2NoZW4gYW0gbmFlY2hzdGVuIHp1IGtvbW1lbi4KICBBdXMgZGVuIGdlc2FtbWVsdGVuIERhdGVuLCB3ZXJkZW4gd2lyIGVpbmUga2xlaW5lIFZvcnRyYWdzLS9TZW1pbmFycmVpaGUgCnp1c2FtbWVuc3RlbGxlbiwgd2VsY2hlIGRhbm4gaGllciB2ZXJvZWZmZW50bGljaHQgd2lyZC4gRWluZW4gVm9ydHJhZyBtaXQKU2VtaW5hcmNoYXJha3RlciBrYW5uIGltIFByaW56aXAgamVkZXIgaGFsdGVuLCBkZXIgc2ljaCBkYXp1IGluIGRlciBMYWdlIApmdWVobHQuICBBbHNvIGtlaW5lIFNjaGV1LCB3ZW5uIGlociBnZXJuIHp1IGVpbmVtIGJlc3RpbW10ZW4gVGhlbWEgc3ByZWNoZW4gCm1vZWNodGV0LgoKRGllIGdlc2FtbWVsdGVuIERhdGVuIHdlcmRlbiBudXIgZnVlciBkZW4gWndlY2sgZGVyIEVyZmFzc3VuZyBkZXIgV3VlbnNjaGUKYmVudXR6dC4gQWxsZSBBbmdhYmVuIHNpbmQgZnJlaXdpbGxpZywgc29sbHRlbiBhYmVyIG5hY2ggYmVzdGVtIFdpc3NlbiB1bmQKR2V3aXNzZW4gYXVzZ2VmdWVsbHQgd2VyZGVuLCBkYW1pdCB3aXIgZWluZW4gZ3V0ZW4gVWViZXJibGljayBiZWtvbW1lbi4KCkRpZXNlciBGcmFnZWJvZ2VuIHJpY2h0ZXQgc2ljaCBhbiBBTExFISBXZXIga2VpbmUgTW9lZ2xpY2hrZWl0IGhhdCwgZGVuIApGcmFnZWJvZ2VuIGF1cyBkZXIgTVBBIGhlcmF1c3p1aG9sZW4gKGN1dCZwYXN0ZSksIGthbm4gaWhuIGF1Y2ggYWxzIE1haWwgCnp1Z2VzY2hpY2t0IGJla29tbWVuIChNYWlsIGFuIEhhdGUpLgoKTmFjaCBkZW0gQXVzZnVlbGxlbiBiaXR0ZSBhbiBkZW4gU3BpZWxlciBTZW1pbmFyIGFscyBNYWlsIHNjaGlja2VuLCBEYW5rZS4KCkhhdGUuCgotLSBISUVSIEJFR0lOTlQgREVSIEZSQUdFQk9HRU4gLS0KCldpZSBoZWlzc3QgRHU/CiAgKiBfX19fX19fX19fX19fX19fXwoKV2VsY2hlbiBTdGF0dXMgaGFzdCBEdSBpbiBNb3JnZW5HcmF1ZW4/CiAgKiBHYXN0IFsgXSBTcGllbGVyIFsgXSBTZWhlciBbIF0gTWFnaWVyIFsgXQoKQmlzdCBEdSBpbiBlaW5lbSBNVUQgTWFnaWVyL1dpemFyZD8KICAqIGphIFsgXSBuZWluIFsgXQoKV2VubiAiamEiLCBpbiB3ZWxjaGVtPwogICogTW9yZ2VuR3JhdWVuIFsgXSBUQVBQbXVkIFsgXSBUVUJtdWQgWyBdIE5pZ2h0RmFsbCBbIF0KICAgIEFuZGVyZXMgWyBdIF9fX19fX19fX19fX19fX19fIAoKICBbRGllIGZvbGdlbmRlbiBBbmdhYmVuIHp1bSBUeXAgZGVzIE11ZHMgc2luZCBudXIgYmVpICJBbmRlcmVzIiBub2V0aWchXQoKICAqIFdhcyBmdWVyIGVpbiBUeXAgdm9uIE1VRCBpc3QgZGFzPwogICAgTFBtdWQgWyBdIE1VU0gvTU9PL1RpbnkvZXRjIFsgXQoKICAqIEZ1ZXIgIkxQbXVkIiwgd2VsY2hlIEFydCB2b24gU3lzdGVtIHdpcmQgZG9ydCBnZWZhaHJlbj8KICAgIEFteWxhYXIgWyBdIG9kZXIgTXVkT1MgWyBdIEdhbWVkcml2ZXI/CiAgICAgICsgQ09NUEFUIE1PREUgWyBdIChuaWNodCB1bnRlciBNdWRPUykKICAgICAgKyBOQVRJVkUgTU9ERSBbIF0KICAgICAgKyBNdWRMaWI6IF9fX19fX19fX19fX19fXyAobWVpc3QgaWRlbnRpc2NoIG1pdCBkZW0gTVVEbmFtZW4pCgpIYXN0IER1IEVyZmFocnVuZyBpbSBQcm9ncmFtbWllcmVuPwogICogamEgWyBdIG5laW4gWyBdCiAKV2VubiAiamEiLCB3ZWxjaGVyIEFydD8KICAqIExQQyAgIFsgXQogICogQkFTSUMgWyBdIFBBU0NBTCBbIF0gQ09CT0wgWyBdIEMgWyBdIEMrKyBbIF0gU21hbGxUYWxrIFsgXSBQcm9sb2cgWyBdCgogICogQW5kZXJlIFNwcmFjaGUobik6IF9fX19fX19fX19fX19fCgogICogV2llIHNjaGFldHp0IER1IERlaW4gS29lbm5lbiBlaW4/CiAgICArIG1pbmltYWwgWyBdIGd1dCBbIF0gc2VociBndXQgWyBdIHBlcmZla3QgWyBdCgpXYXMgaW50ZXJlc3NpZXJ0IERpY2ggYW0gbWVpc3RlbiBoaW5zaWNodGxpY2ggUHJvZ3JhbW1pZXJ1bmc/CiAgKiBHcnVuZGxhZ2VuIGRlciBQcm9ncmFtbWllcnVuZyAuLi4uLi4uLi4uLi4uLi4gWyBdIChDIGFscyBCYXNpcykKICAqIEdydW5kbGFnZW4gT2JqZWt0T3JpZW50aWVyZXIgUHJvZ3JhbW1pZXJ1bmcgLiBbIF0gKEMrKy9MUEMgaW0gVmVyZ2xlaWNoKQogICogRGVyIEdhbWVEcml2ZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIFsgXSAKICAqIFByb2dyYW1taWVydW5nIGluIExQQyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiBbIF0gKEMgS2VubnRuaXMgdm9yYXVzZ2VzZXR6dCkKICAqIEdydW5kbGVnZW5kZSBNZXRob2RlbiBkZXIgTXVkTElCIChNRykgLi4uLi4uLiBbIF0gKFByb3BlcnRpZXMsIERhZW1vbmVuKQogICogQW53ZW5kdW5nIGRlciBNdWRMSUIgKE1HKSAuLi4uLi4uLi4uLi4uLi4uLi4uIFsgXSAoUmFldW1lLCBPYmpla3RlLCBOUENzKQogICogRWZmaXppZW56IHVuZCBPcHRpbWllcnVuZyAuLi4uLi4uLi4uLi4uLi4uLi4uIFsgXQogICogQW5kZXJlcyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIFsgXSAodmlydHVlbGxlcyBldGMpCiAgICBXYXM/IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkdpYnQgZXMgYW5kZXJlIFd1ZW5zY2hlLCB3YXMgenUgZGlza3V0aWVyZW4gd2FlcmU/CiAgKiBHaWxkZW4gaW4gTW9yZ2VuR3JhdWVuIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gWyBdCiAgKiBaYXViZXJ0cmFlbmtlIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gWyBdCiAgKiBSYXNzZW4gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gWyBdCiAgKiBXYXMgc29uc3Qgbm9jaCBpbiBkZXIgRkFRIHN0ZWh0IC4uLi4uLi4uLi4uLi4gWyBdCiAgKiBBbmRlcmVzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gWyBdCiAgICBXYXM/IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkhhYmVuIHdpciBldHdhcyB2ZXJnZXNzZW4/CgogICogV2FzPyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgotLSBISUVSIEVOREVUIERFUiBGUkFHRUJPR0VOIC0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2VtaW5hciAtKyBVTUZSQUdFICstIChIYXJkaWwsIDE3LiBNYWkgMTk5NSwgMTQ6NDI6MjcpOgojISBybj1IYXRlIHJ0PTgwMDcwOTcxNAoKQWVobSwgbnVyIGVpbmUga2xlaW5lIEZyYWdlIC0gcmVpY2h0IGVzIG5pY2h0LCBlaW5lbiBBcnRpa2VsIGluICplaW5lcioKUnVicmlrIHp1IHBvc2NodGVuLCBhZWggcG9zdGVuLCBtdXNzIGRhcyBkaWUgZ2FuemUgbXBhIHNlaW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNlbWluYXIgLSsgVU1GUkFHRSArLSAoSGF0ZSwgMTcuIE1haSAxOTk1LCAxNDo0NzoxOCk6CiMhIHJuPUhhcmRpbCBydD04MDA3MTQ1NDcKTmljaHQgamVkZXIgTGllc3N0IFNlbWluYXIsIG5pY2h0IGplZGVyIEFuemVpZ2VuIHVuZCBtYW5jaGUgaGFiZW4gYXVjaApBbGxnZW1laW5lcyBhYmJlc3RlbGx0LgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFydHkgd2lyZCBuYWNoZ2Vob2x0LiAoQ3JhaWcsIDE3LiBNYWkgMTk5NSwgMTg6MTg6MjApOgoKQW4gYWxsZSBlbnR0YWV1c2NodGVuIFBhcnR5ZnJldW5kZToKCkRpZSBQYXJ0eSB3aXJkIG5hY2hnZWhvbHQsIG1laW5ldHdlZ2VuIG1pdCBhdWNoIG1pdCBTY2hsYWNodGVuIHZvbiBXYWVjaHRlcm4sClN1c2FubmUsIFBhcnR5bW9uc3RlciBvZGVyIHNvbnN0d2FzLgoKQW0gRG9ubmVyc3RhZyB6d2lzY2hlbiAxNyB1bmQgMTkgVWhyIGtvbW10IGRhcyBQYXJ0eW1vbnN0ZXIgYXVmIGRpZSBLUkVVWlVORwp2b3IgZGVtIEVMRkVORE9SRi4KRGllc21hbCB3aXJrbGljaC4KCkJyaW5ndCBldXJlIEZyZXVuZGUgdW5kIEZyZXVuZGlubmVuIG1pdC4uLgoKQ1JBSUcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQYXJ0eSB3aXJkIG5hY2hnZWhvbHQuIChEd2lnaHQsIDE3LiBNYWkgMTk5NSwgMTg6Mjk6MjYpOgojISBybj1DcmFpZyBydD04MDA3Mjc1MDAKRHVlcmZlbiBhdWNoIEVoZWZyYXVlbiBtaXRrb21tZW4sIG9kZXIgd2lyZCBkYXMgbmUgdW5hbnN0YWVuZGlnZSBQYXJ0eT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTZW1pbmFyIC0rIFVNRlJBR0UgKy0gKFNjaGlpciwgMTguIE1haSAxOTk1LCAxMzozMToxNSk6CiMhIHJuPUhhdGUgcnQ9ODAwNzA5NzE0CkFiZXIgd2VubiBpY2ggZGVuIEZyYWdlYm9nZW4gbmljaHQgcmF1c3NjaG5laWRlbiBrYW5uLCBrYW5uIGljaCBhdWNoIG5pY2h0cwpyZWluc2NocmVpYmVuIC11bmQgZGFzIGF1Y2ggbmNpaHQsIHdlbm4gRHUgbWlyIGRlbiBhbHMgTWFpbCB6dXNlbmRlc3QuClNjaGlpcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUkwtTGlzdGUgMSAoRnJ5ZGVyLCAxOC4gTWFpIDE5OTUsIDE3OjI0OjUzKToKCkhpZXIgaXN0IG51biBkaWUgZXJzdGUgVmVyc2lvbiBkZXIgUkwtTGlzdGUsIGRpZSBUZWlsbmFobWUgaXN0IG5vY2ggcmVjaHQKZHVlcmZ0aWcuIE5pY2h0c2Rlc3RvdHJvdHogd2VyZGUgaWNoIHNpZSBnZWdlbiBBbmZhbmcgamVkZXMgTW9uYXRzIG1hbApwb3N0ZW4uIFdlbm4gamVtYW5kIHJlaW4vcmF1cyBtb2VjaHRlIG9kZXIgc2ljaCB3YXMgYWVuZGVydCwgYml0dGUgTWFpbAphbiBtaWNoLgoKCkFydHksIFN0ZWZmZW4gSGF1cHQsIFctSC1XIDExMi0yLTQzMSwgODU1NzkgTmJiL011ZW5jaGVuCiAgMDg5LTYwMTIzMDMKCkFuY2FsYWdvbiwgTWF0aGlhcyBCZXRnZSwgSGVicmlkZW5zdHIuIDM4LCAzMzcyOSBCaWVsZWZlbGQKICAoMDUyMSkvNzcyMjg1CgpDYXJhZGhyYXMsIEFuZHJlYXMgTW9zZXIsIE11ZWhsdGFsc3RyYXNzZSAyNSBhLCA5NDAzMiBQYXNzYXUKCkVuZ3l3dWNrLCBUaG9yc3RlbiBLb2NoLCBHb2xkZnVzc3N0ci4gMTEsIDUwNzM1IEtvZWxuCiAgMDIyMS83NjA3NjkwCgpGZWxhZ3VuZCwgLSAgICAgICAgICAgLCAtICAgICAgICAgICwgR2llc3NlbgogIDA2MDMzLzY2NzY5LCByYW1iZWF1ZEBjaGVtaWUudW5pLWdpZXNzZW4uZGUKCkZyeWRlciwgTWFyayBGcnlkZXIsIFctSC1XIDExNy0xOC02MDUsIDg1NTc5IE5iYi9NdWVuY2hlbgogIDA4OS02MDE5Mzc1LCBsMTFhZnJ5ZEByei51bmlidy1tdWVuY2hlbi5kZQoKSmltZGlncml6LCBEYW5pZWwgTGFuZywgUnVmZmluaWFsbGUgMTAsIDgyMTY2IEdyYWVmZWxmaW5nCiAgMDg5IDg1NDAwMTcsIERhbmllbC5MYW5nQGxyei1tdWVuY2hlbi5kZQoKTWllemUsIE1vbmlrYSBPbHNjaGV3c2tpLCBGcmFuY2tlc3RyYXNzZSAxMiwgMDYxMTAgSGFsbGUKICAwMzQ1IDM1ODIzLCBtdWhibkBtbHVjb20yLnVyei51bmktaGFsbGUuZGUKCk1pcm8sIFV3ZSBLb3NzLCBIZXNzc3RyLiA3NywgTXVlbmNoZW4KCk51ZGVpLCBIZXJhdXNnZWJlciBkZXMgREVSIElSUkUgV0VMVFJBVU1QUk9MRVQsIGMvbyBGbG9yaWFuIFNlaWRsCiAgUm9kbGVyZ2Fzc2UgOC8xOCwgQS0xMTkwIFdpZW4KClB1bWEsIEdlcm8gTW9yaXR6LCBIb2VjaGVyYnVlaGwgMTcsIDk2MDQ5IEJhbWJlcmcsIDA5NTEtNTM2OTQ1MzY5NAoKVGhyb2luLCBNYXJrdXMgUmFuZGVyYXRoLCBBcGZlbHN0cmFzc2UgNTUsIDMzNjEzIEJpZWxlZmVsZAogIE81MjEtODk2Mzg3LCByYW5kZXJhdEBocnoudW5pLWJpZWxlZmVsZC5kZQoKVHJhamFuLCBBbmRyZWFzIFdhbHRoZXIsIDAzNDUtNzc2MDMzMCwgd3NpYWJAY2x1c3Rlci51cnoudW5pLWhhbGxlLmRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTZW1pbmFyIC0rIFVNRlJBR0UgKy0gKEljZXQsIDE4LiBNYWkgMTk5NSwgMTg6Mzg6MTMpOgojISBybj1IYXRlIHJ0PTgwMDcxNDgzOAo+TmljaHQgamVkZXIgTGllc3N0IFNlbWluYXIsIG5pY2h0IGplZGVyIEFuemVpZ2VuIHVuZCBtYW5jaGUgaGFiZW4gYXVjaAo+QWxsZ2VtZWluZXMgYWJiZXN0ZWxsdC4KPkhhdGUuCgpXZW5uIGplbWFuZCBTZW1pbmFyIG5pY2h0IGJlc3RlbGx0LCBpc3QgZXIgd2FocnNjaGVpbmxpY2ggYXVjaCBuaWNodCBhbiBlaW5lbQpzb2xjaGVuIGludGVyZXNzaWVydC4KCi1JY2VUIChtaXIgc29sbHMgcmVjaHQgc2VpbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk11ZCwgdW5kIGFuZGVyZSBTY2hvZW5lIFNhY2hlbi4gKEhhd2ssIDE4LiBNYWkgMTk5NSwgMjE6MzQ6MjgpOgpIaSwKSWNoIHd1ZXJkZSBnZXJuZSBkZW4gVmVyc3VjaCBzdGFydGVuLCBhdWYgbWVpbmVyCkFMUEhBIGVpbiBNVUQgenUgaW5zdGFsbGllcmVuLgpIYXQgZWluZXIgdm9uIGV1Y2ggZGFtaXQgZXJmYWhydW5nPwpIQVdLLCBkZXIgYXVjaCBnZXJuIGVpbm1hbCBHb3R0IHNwaWVsZW4gbW9lY2h0ZS4KUC5TLjoKVW0gQW50d29ydCB3aXJkIGdlYmV0ZW4uICh3ZWxsaXNjaEBhbHBoMDYudHJpdW1mLmNhKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTZW1pbmFyIC0rIFVNRlJBR0UgKy0gKEF6enVybywgMTkuIE1haSAxOTk1LCAwMDoyMDoxNSk6CiMhIHJuPVNjaGlpciBydD04MDA3OTY2NzUKQXVjaCB3ZW5uIGR1IHJlaW5zY2hyZWliZW4ga2FubnN0LCBkYW5uIGthbm5zdCBkdSBpaG4gZGlyIGltbWVyaGluIG5hY2gKZHJhdXNlbiBzY2hpY2tlbiB1bmQgZGFubiBhdXNnZWZ1ZWxsdCB3aWVkZXIgaW5zIE11ZCBzY2hpY2tlbi4KKGljaCBzY2hyZWliZSBuaWUgbWVociBBcnRpa2VsIGluIGRlciB1ZWJlcmZ1ZWxsdGVuIEdpbGRlIDspICApCkF6enVybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogQ3JhaWcga2FubiBlbmRsaWNoIHNlaGVuOiBQYXJ0eSEgKENhcmFkaHJhcywgMTkuIE1haSAxOTk1LCAwMzo1NzoxMCk6CiMhIHJuPVd1ciBydD04MDA2ODI4MDUKTmljaHQ/IEF1IHZlcmZsaXh0LCB3YXMgbWFjaCBpY2ggZGFubj8KCiAgQ2FyYWRocmFzIC0gc3RlaHQgZ3JhZGUgaW4gc2VpbmVyIHp3ZWl0ZW4gSGVpbWF0IC0gZGVyIERpYW1hbnRiYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNdWQsIHVuZCBhbmRlcmUgU2Nob2VuZSBTYWNoZW4uIChKb2YsIDE5LiBNYWkgMTk5NSwgMTE6Mjc6NDApOgojISBybj1IYXdrIHJ0PTgwMDgyNTY2OAoKIEhhc3QgZHUgYXVmIGRlciBBbHBoYSBlaW4gQmV0cmllYnN5c3RlbSBvZGVyIG51ciBXaW5kb29mIE5UPwoKSm9mCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXdW5kZXJsYW5kIG9mZmVuIChHYXN0MiwgMjEuIE1haSAxOTk1LCAxODozNDoxNCk6CkljaCB3YXIgbmV1bGljaCBpbSBXVU5ERVJMQU5ELCByemFpeDM0MC5yei51bmktbGVpcHppZy5kZSA0NzExLCB1bmQgZmFuZAplcyBnYXIgbmljaHQgbWFsIHNvIHVlYmVsLiBXb2xsdGUgbnVyIGF1Y2ggbWFsIHdhcyB6dXIgWmVpdHVuZyBkYXp1dHJhZ2VuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTVUNIRSAoQW5ha2luLCAyMS4gTWFpIDE5OTUsIDIyOjM3OjUwKToKSGlobywKCkRlcmplbmlnZSBkZXIgbWlyIGRlbiBSYXVtIG1pdCBmb2xnZW5kZXIgQmVzY2hyZWlidW5nIHplaWd0IGVyaGFlbHQKaG1tbSwgamEgd2FzPyAxMDAwMCBNdWVuemVuIG9kZXIgbmUgdm9sbGUgS3JvbmUgamUgbmFjaCBXdW5zY2guCgpBbHNvIGhpZXIgZGllIEJlc2NocmVpYnVuZywgc28gdW5nZWZhZWhyIHNpZWh0IGRlciBSYXVtIGF1czoKCmRlciBEc2NodW5nZWwgd2lyZCBkaWNodGVyLCBkZXIgQm9kZW4gbWF0c2NoaWdlci4gSW0gT3N0ZW4Kc2NoZWludCBlcyB3ZWl0ZXJ6dWdlaGVuLiBBYmVyIER1IGthbm5zdCBpaG4gZXZ0ZW50dWVsbAppbiBSaWNodHVuZyBOb3Jkd2VzdGVuIG9kZXIgU3VlZHdlc3RlbiB1bWdlaGVuLiBEaWUgYW5kZXJlbgpSaWNodHVuZ2VuIHNpbmQgd2VpdGVyaGluIGR1cmNoIFBmbGFuemVuIHZlcnNwZXJydC4KCkVzIHdhZXIgc2Nob2VuIHdlbm4gZGVuIGVpbmVyIGZpbmRldC4uLjopCgpBbmFraW4gKCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJhdW0gKEFuYWtpbiwgMjEuIE1haSAxOTk1LCAyMjo1NTozMik6CkhpaG8sCgpKYSBhbHNvIG5vY2ggbWFsIHp1IGRlbSBSYXVtLCBkZXIgUmF1bXRleHQgdGF1Y2h0IHNvIHdpcmtsaWNoIGF1ZiwKZXZ0LiBudXIgbm9jaCBlaW4gYmlzc2NoZW4gbWVociAzIG9kZXIgNCBXb2VydGVyLCBhYmVyIHNvbnN0IHN0aW1tdApkZXIgc293ZWl0LCB3ZXIgZXMgZ2VmdW5kZW4gaGF0IGJpdHRlIE1haWwgYW4gbWljaCwgZGVyIEVyc3RlIGJla29tbXQKZXMuCgpFaW4gYXVmIHZpZWxlIEJyaWVmZSBob2ZmZW5kZSBBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmF1bSAoVGhvcmluLCAyMi4gTWFpIDE5OTUsIDEwOjU0OjAwKToKIyEgcm49QW5ha2luIHJ0PTgwMTA4OTczMgpTdWNoc3QgZHUgWlQsIEFuYWtpbiwgb2RlciB3aWVzbyBkZXIgQXVmd2FuZCA/CkVpbiBncmluc2VuZGVyIFRob3JpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTVVNRSAoVGhvcmluLCAyMi4gTWFpIDE5OTUsIDExOjA5OjM4KToKSGF0IGplbWFuZCBkaWUgYWt0dWVsbGUgQWRkcmVzc2Ugdm9uIE1VTUUsIGRlbSBNaXR0ZWxlcmRlLU11ZD8gSWNoIGhhYiB6d2VpCmRhdm9uLCBhYmVyIGtlaW5lIGdlaHQuLi4gV2FlcmUgbmV0dCwgd2VubiBzaWUgbWlyIGplbWFuZCB6dW1haWxlZCwgZmFsbHMgaWNoCm1hbCB3aWVkZXIgWmVpdCBoYWIgdW5kIFdMIGRvd24gaXN0Li4uClRob3Jpbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTZW1pbmFyIC0rIFVNRlJBR0UgKy0gKEhhdGUsIDIyLiBNYWkgMTk5NSwgMTE6NTU6MDMpOgojISBybj1TY2hpaXIgcnQ9ODAwNzk2Njc1CkljaCBrYW5uIGRpZSBNYWlsIHBlciBFbWFpbCwgYWxzbyBuaWNodCBJTSBNdWQgenVzZW5kZW4hCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTZW1pbmFyIC0rIFVNRlJBR0UgKy0gKEhhdGUsIDIyLiBNYWkgMTk5NSwgMTE6NTY6MDMpOgojISBybj1JY2V0IHJ0PTgwMDgxNTA5MwpNaXQgZGllc2VyIFVNZnJhZ2Ugd2lyZCBuaWNodCBudXIgSW5mb3JtYXRpb24gZnVlciBkYXMgU2VtaW5hciBnZXNhbW1lbHQsCnNvbmRlcm4gaWNoIHZlcnN1Y2hlIGVpbmVuIFVlYmVyYmxpY2sgdWViZXIgZGllIFNpdHVhdGlvbiBpbSBNVUQgenUgYmUtCmtvbW1lbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWJnZWJsYXNlbiAoQ3JhaWcsIDIyLiBNYWkgMTk5NSwgMTQ6NTc6MTYpOgoKSWNoIG11c3N0ZSBsZWlkZXIgZmVzdHN0ZWxsZW4sIGRhc3MgZXMgbmljaHQgc28gZWluZmFjaCBpc3QsIGVpbmUgUGFydHkgYXVmCmRlbiBQdW5rdCBnZW5hdSB6dSBwbGFuZW4uIERpZSBQYXJ0eXRyb2V0ZSBpc3QgbmFlbWxpY2ggZWluIHNlaHIga25hcHBlcyBHdXQuCgpOYWNoZGVtIGljaCBlaW5tYWwgNTAgdW5kIGVpbiB3ZWl0ZXJlcyBNYWwgNzAgTWludXRlbiBhdWYgZGllc2VzIHNlbHRlbmUKSW5zdHJ1bWVudCBnZXdhcnRldCBoYWJlLCBibGFzZSBpY2ggZGllIFBhcnR5IGhpZXJtaXQgb2ZmaXppZWxsIGFiLgoKU2ljaGVyIHdpcmQgaXJnZW5kd2FubiBzcG9udGFuIG5hY2hnZWZlaWVydC4KCkNSQUlHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJhdW0gKEFuYWtpbiwgMjIuIE1haSAxOTk1LCAxNTo0MTowNyk6CiMhIHJuPVRob3JpbiBydD04MDExMzI4NDAKSGlobywKCk5lIGlzdCBudXIgbmUgU2Nobml0emVsamFnZCBkdXJjaCBkYXMgTUcsIGRhbWl0IG1laW5lIE1pdHNwaWVsZXIgZGFzCk1HIGJlc3NlciBrZW5uZW5sZXJlbi4gVW5kIGFscyBBbnJlaXogaGFiZSBpY2ggaGFsdCBQcmVpc2UgYXVzLQpnZXNldHp0IHVuZCBlaW5lbiBuaWNodCBzbyBlaW5mYWNoIHp1IGZpbmRlbmRlbiBSYXVtLgoKQW5ha2luIChzY2h3ZXIgZ3JpbnNlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU1VDSEUgKEFuYWtpbiwgMjIuIE1haSAxOTk1LCAyMDo1MzowMik6CiMhIHJuPUFuYWtpbiBydD04MDEwODg2NzAKSGlobywKCk9rLE9rIGljaCBnZWIgbm9jaCBuZW4gQlNTIHVuZCBuZW4gcm9ldGxpY2hlbiBSaW5nIGRyYXVmLiBJY2ggaG9mZmUgSWhyCnNjaGF1dCBldWNoIG1hbCBlaW4gYmlzc2NoZW4gdW0uCgpBbmFraW4oKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTUZHIGdlc3VjaHQgKEFyYW55YSwgMjIuIE1haSAxOTk1LCAyMDo1NDo1MCk6CkljaCBzdWNoZSBmdWVyIGRlbiBIaW1tZWxmYWhydHNkb25uZXJzdGFnIG9kZXIgZGVuIE1pdHR3b2NoIGRhdm9yIGVpbmUgTUZHCnZvbiBGcmVpYnVyZyBpbSBCcmVpc2dhdSAodW50ZW4gbGlua3MpIG5hY2ggQmFkIFNlZ2ViZXJnIChvYmVuIGluIGRlciBNaXR0ZSkuCkRhIGZhZWhydCBuaWNodCB6dWZhZWxsaWcgamVtYW5kIHZvbiBFdWNoPwpOYWphLCB3YXIgamEgbnVyIG5lIEZyYWdlLgpBbmdlYm90ZSB1bnRlciAwNzYxLzI3NjIwNSAoWmltbWVyIDUxNiB2ZXJsYW5nZW4pCkFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNVQ0hFIChBbmFraW4sIDIyLiBNYWkgMTk5NSwgMjM6MDY6MzIpOgojISBybj1BbmFraW4gcnQ9ODAxMDg4NjcwCkhpaG8sCgpPa2ksIHZlcmdlc3N0IGRpZSBTYWNoZS4gRGVuIFJhdW0ga2FubiBrZWluZXIgZmluZGVuLgoKQW5ha2luIChzZXVmenQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNVQ0hFIChDYXJhZGhyYXMsIDIzLiBNYWkgMTk5NSwgMDU6NTY6NDApOgojISBybj1BbmFraW4gcnQ9ODAxMTc2NzkyCipncmlpaWlpaWlpaWlpaWlucyoKTXVzcyBpY2ggaGFsdCB3aWVkZXIgaXJnZW5kd2FubiBtYWwgZWluIFRvbGtpZW4tUXVpeiBtYWNoZW4sIHdlbm5zIG1pdApEaXIgdW5kIERlaW5lciBTY2huaXR6ZWxqYWdkIHNjaG9uIG5pY2h0IGtsYXBwdCwgQW5ha2luLiA6LSkKTGk/IE5vY2ggZGE/IE9kZXIgaXN0IGRlciBncmFkZSBpbiBVcmxhdWI/ICpncnVlYmVsKiBIYWIgZG9jaCBzb3dhcwpnZWxlc2VuLi4uICpuYWNoZGVuayoKCk5hLCBub2NoIGVpbiBNRS1RdWl6PyA6KSBPbmxpbmUgb2RlciBwZXIgQnJpZWYgd2llIGRhcyBsZXR6dGUgbWFsPwpMYW5nIG9kZXIgS3Vyej8KCiAgICAgICB0c2NodWVzcwoKRWluIGthbHRlciBXaW5kIGJsaWVzIGhpbnRlciBpaG5lbiBoZXIsIGFscyBzaWUgZGVtIFJvdGhvcm5wYXNzIGRlbgpSdWVja2VuIHdhbmR0ZW4gdW5kIG11ZWRlIGRlbiBIYW5nIGhpbnVudGVyc3RvbHBlcnRlbi4KQ2FyYWRocmFzIGhhdHRlIHNpZSBiZXNpZWd0Lgo6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFNVQ0hFIChTaWx2YW5hLCAyMy4gTWFpIDE5OTUsIDA3OjIxOjU0KToKIyEgcm49Q2FyYWRocmFzIHJ0PTgwMTIwMTQwMApUamEgLSBpbiBkZXIgVGF0LiBMaSBpc3QgaW4gVXJsYXViLiBLb21tdCBhYmVyIE1vbnRhZyAoZ2VzdGVybiBpbiBlaW5lcgpXb2NoZSkKd2llZGVyLgpTaWx2YW5hLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmU6IEpPRiAoQXJ0aWtlbCAyMykgKEhhd2ssIDIzLiBNYWkgMTk5NSwgMTc6MzE6MzgpOgpJY2ggaGFiIGF1ZiBkZXIgQUxQSEEgT1NGMSBsYXVmZW4sIG1pdCBhbGxlbSBwaSBwYSBwby4KV2luZG9vZiBOVD8gR290dCBiZXdhaHJlIDopCkhBV0suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb256ZXJ0YW5rdWVuZGlndW5nIDstKSAoSGFyLCAyNC4gTWFpIDE5OTUsIDExOjMzOjQ5KToKSGFsbG8gTXVkZGVyIGF1cyBkZW0ga2FsdGVuIE5vcmRkZXV0c2NobGFuZCAoZ2lidHMgZGEgdWViZXJoYXVwdCB3ZWxjaGU/KQpFZ2FsOiBhbSBTYW1zdGFnLCBkZW0gMjcuMDUuOTUgZmluZGV0IGVpbiBLb256ZXJ0IGltIE1hcnF1ZWUgYXVmIFN0LiBQYXVsaQpzdGF0dCwgbWl0IHp3ZWkgQm90dHJvcGVyIFB1bmtiYW5kcywgd29iZWkgaW4gZWluZXIgZWluIE11ZGRlciBhdXMgYm90dHJvcApzcGllbHQgIC0gYWxzbyB3ZXIgTHVzdCBoYXQuLi4uCkRhcyBNYXJxdWVlIGlzdCBpbiBkZXIgRnJpZWRyaWNoc3RyYXNzZSwgZGlyZWt0IGluIGRlciBOYWVoZSBkZXIKIkhlcmJlcnRzdHJhc3NlIiA6KQoKSGFyIChyb2NrZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtvbnplcnRhbmt1ZW5kaWd1bmcgOy0pIChTY2hydW1wZmksIDI0LiBNYWkgMTk5NSwgMjA6NDE6MzgpOgojISBybj1IYXIgcnQ9ODAxMzA4MDI5ClVuZCB3YXMgaXN0IG1pdCBkZW0gdmVyc3Byb2NoZW5lbSBEZW1vdGFwZT8gSGFlPwpTY2hydW1wZmkgc2NoYXV0IG1haG5lbmQgaW4gUmljaHR1bmcgSGFyIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtvbnplcnRhbmt1ZW5kaWd1bmcgOy0pIChIYXIsIDI1LiBNYWkgMTk5NSwgMDk6NDY6NTIpOgojISBybj1TY2hydW1wZmkgcnQ9ODAxMzQwODk4ClRqYSwgYWVoLCBhZWhtbSwgYWxzbyB0amEuLi4uLgpIYXIgaXN0IGhhbHQgaW1tZXIgZXR3YXMgc2NodXNzZWxpZyA7KQpJY2ggYmVtdWVoZSBtaWNoIGFiZXIgdW5kIHBhY2tlIG5ldWVzIERlbW8gdW5kIG5lbiBMaXZlLU1pdHRzY2huaXR0IG1pdApkcmF1ZiEKSGFyIChzY2hsZWNodGVzIEdld2lzc2VuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS29uemVydGFua3VlbmRpZ3VuZyA7LSkgKFNjaHJ1bXBmaSwgMjUuIE1haSAxOTk1LCAxNzo1OToxMyk6CiMhIHJuPUhhciBydD04MDEzODgwMTIKV2VubiBEdSBEaWNoIGJlZWlsc3Qga29lbm50IGlociBhbHMgVm9yZ3J1cHBlIGJlaSBPSSBQT0xMT0kgc3BpZWxlbiA6LSkKU2NocnVtcGZpIGhvbHQgZGllIE9JIFBPTExPSSBuYWNoIExpbnoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEtvbnplcnRhbmt1ZW5kaWd1bmcgOy0pIChQdGVwcGljLCAyNi4gTWFpIDE5OTUsIDA3OjU2OjAwKToKIyEgcm49U2NocnVtcGZpIHJ0PTgwMTQxNzU1Mwp3YXMgc29sbCBkZW4gb2kgcG9sbG9pIHNlaW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUc2NodWVodWVzcyEgKFllbmRpLCAyNi4gTWFpIDE5OTUsIDE0OjAwOjMxKToKClNvLCBpY2ggZmFocmUgaW4gZWluIHBhYXIgU3R1bmRlbiBuYWNoIEtvcnNpa2EsIHVtIGRvcnQgenVzYW1tZW4gbWl0IGV0d2EKaHVuZGVydCBhbmRlcmVuIFZlcnJ1ZWNrdGVuIE1hdGhlIHVuZCBQaHlzaWsgenUgcGF1a2VuIHVuZCBuZWJlbmJlaSBlaW4Ka2xpdHpla2xlaW5lcyBCaXNzY2hlbiBXb2xsaWJhbGwgenUgc3BpZWxlbiwgdW5kIERvS28sIHVuZCB1bSB6dSBncmlsbGVuLCB1bmQKenUgc2Nod2ltbWVuLCB1bmQgam9uZ2xpZXJlbiB1bmQgRnJpc2JlZXMgd2VyZmVuIHVuZCB3YW5kZXJuIHVuZCBrb2NoZW4gdW5kCnVlYmVyaGF1cHQgdW5kIHNvLgoKClZpZWwgU3Bhc3MgYWxsZW4gRGFoZWltZ2VibGllYmVuZW4sIHVuZCBiaXMgaW4gendlaSBXb2NoZW4hCgoKWVRZCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRzY2h1ZWh1ZXNzISAoSGFra2lra3QsIDI2LiBNYWkgMTk5NSwgMTY6NDg6NTUpOgojISBybj1ZZW5kaSBydD04MDE0ODk2MzEKRGFzIHdhcmVuIG5vY2ggWmVpdGVuLCBhbHMgaWNoIGJpbiBlaW5lbSBhZWhubGljaCB2ZXJydWVja3RlbiBIYXVmZW4gYXVmIEVsYmEKd2FyLi4uLgpEaWUgZ2FuemUgTWF0aGUtUGF1a2VyZWkgaGF0IGFiZXIgbmljaHRzIGdlbnV0enQsIGRhIGljaCBkYW5uIHRyb3R6ZGVtIGVyc3QKbWFsIGR1cmNocyBWb3JkaXBsb20gZ2VmYWxsZW4gYmluLi4uCkFiZXIgc2Nob2VuIHdhcnMsIGdlbD8KQmlzIGRlbm5lLCBIYWtraWtrdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogS29uemVydGFua3VlbmRpZ3VuZyA7LSkgKFNjaHJ1bXBmaSwgMjguIE1haSAxOTk1LCAxNTowNTowMyk6CiMhIHJuPVB0ZXBwaWMgcnQ9ODAxNDY3NzYwCk9JIFBPTExPSSBpc3QgZWluZSBzY2hvdHRpc2NoZSBQdW5rcm9ja2JhbmQgbWl0IHNlaHIgZ3V0ZW4gcG9saXRpc2NoZW4gVGV4dGVuCnVuZCBlaW5lbiBhbnNwcnVjaHN2b2xsZW4gU291bmQuIEtlbm50IGxlaWRlciBmYXN0IGtlaW5lciBhYmVyIHNpZSBzaW5kCmdlbmlhbC4gU2llIGtvbW1lbiBhdWNoIG5hY2ggV2llbiBpbnMgRUtIKEVybnN0LUtpcmNod2VnZXItSGF1cyksIGFsc28gd2VubiBEdQplaW4gUGxha2F0IHNpZWhzdDsgR2VoIGhpbgpTY2hydW1wZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEtvbnplcnRhbmt1ZW5kaWd1bmcgOy0pIChIYXIsIDI4LiBNYWkgMTk5NSwgMjA6MTU6MzYpOgojISBybj1TY2hydW1wZmkgcnQ9ODAxNjY2MzAzCk5hb2NoIG1hbCBPaSBQb2xsb2kgLi4uCkRpZSBiYW5kLCBtaXQgZGVyIHdpciBpbiBIYW1idXJnIHdhcmVuIChTbyBXaGF0PyEpIHNvbGx0ZSBhbHMgVm9yZ3J1cHBlIGZ1ZXIKT2kgUG9sbG9pIHNwaWVsZW4sIEJlZGluZ3Vpbmcgd2FyLCBkYXNzIHNpZSBkaWUga29tcGxldHRlIEJhY2tsaW5lIHN0ZWxsZW4sCmlua2x1c2l2ZSBJbnN0cnVtZW50ZW4sIGRhZnVlciB3b2xsdGUgZGVyIFZlci0KYW5zdGFsdGVyIG5vY2ggbmljaHQgbWFsIEtvaGxlIHJhdXNydWVja2VuIChpcmdlbmR3byBpbiBPYmVyIGhhdXNlbiBvZGVyIHNvKSwKT2IgZGFzIGpldHp0IGFtIFZlcmFuc3RhbHRlciBsYWcgb2RlciBhbiBPaSBQb2xsb2kgb2RlciBkZXJlbSBCb29rZXIgd2Vpc3MKaWNoIG5pY2h0LCBhdWYgamVkZW4gRmFsbCBmaW5kZSBpY2ggZGFzIG5lIEZyZWNoaGVpdC4uLgoKSGFyLCB6dXJ1ZWNrIGF1cyBIYW1idXJnIHVuZCBSYW5kdm9sbCBtaXQgSG9sc3Rlbi1Ib3BmZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEtvbnplcnRhbmt1ZW5kaWd1bmcgOy0pIChXdXIsIDI4LiBNYWkgMTk5NSwgMjM6NTE6MTgpOgojISBybj1TY2hydW1wZmkgcnQ9ODAxNjY2MzAzCldpZXNvIHNvbGwgaWNoIHdlbm4gaWNoIHNvbiBQbGFrYXQgc2VoZSB6dW0gUGxha2F0IGhpbmdlaGVuPwpXdXIgLSBldHdhcyBlcnN0YXVudAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFkZHkncyBSZXR1cm4gc3RyaWtlcyBhZ2FpbiAoSGlnaGxhbmRlciwgMjkuIE1haSAxOTk1LCAxNTozOTo0Mik6ClNlaWQgZ2VncnVlc3N0LCBCZXdvaG5lciBNb3JnZW5HcmF1ZW5zIQoKRnVlciBhbGxlIGRpZSwgZGllIHNjaG9uIGltbWVyIG1hbCBzZWhlbiB3b2xsdGVuLCB3aWUgc2ljaCB6d2VpIE1hZ2llcgphdWYgZGVyIEJ1ZWhuZSBhYm11ZWhlbiwgYmlldGV0IHNpY2ggYmFsZCBlaW5tYWwgd2llZGVyIGVpbmUgR2VsZWdlbmhlaXQuCgpBbSA4LiBKdWxpIDE5OTUga29lbm50IGlociBBbnRoZWEgZGllIE1lZXJqdW5nZnJhdSB1bmQgSGlnaGxhbmRlciBkZW4gR3JlaWZlbgphdWYgZGVtIE9wZW4gQWlyIGluIEdlb3JnZW5zZ211ZW5kIGZpbmRlbiwgd28gc2llIG1pdCBkZXIgR3J1cHBlClBhZGR5J3MgUmV0dXJuIGlyaXNjaGUgVHJhZGl0aW9uYWxzIHNwaWVsZW4gdW5kIHNpbmdlbiAoZGFzIFNpbmdlbiB1ZWJlci0KbGFzc2UgaWNoIGRhYmVpIEFudGhlYSA6PikuCkF1c3NlcmRlbSB0cml0dCBub2NoIGRpZSBHcnVwcGUgR3dlcmNoIGF1Ziwgd2llIG1hbiBzY2hvbiBhbSBOYW1lbiBzaWVodAplaW5lIGZyYWVua2lzY2hlIEdydXBwZSwgZGllIHNvd29obCBsdXN0aWdlIGFscyBhdWNoIG5hY2hkZW5rbGljaGUgTGllZGVyCm1pdCBsZWljaHQgZnJhZW5naXNjaG0gWnVuZ2FzY2hsb29jaCAoYWJlciBudXIgbGVpY2h0IDo+KSB6dSBndXRlciBNdXNpawp6dW0gQmVzdGVuIGdlYmVuLgpHZW9yZ2Vuc2dtdWVuZCBpc3QgZXR3YSAzMGttIHN1ZWRsaWNoIHZvbiBOdWVybmJlcmcsIGdlbmF1ZXJlIFdlZy0KYmVzY2hyZWlidW5nIGF1ZiBBbmZyYWdlIHZvbiBtaXIuCgpHZWhhYnQgZXVjaCB3b2hsLCBCZXdvaG5lciBNb3JnZW5HcmF1ZW5zIQoKICAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBhZGR5J3MgUmV0dXJuIHN0cmlrZXMgYWdhaW4gKFNudWdnbGUsIDMwLiBNYWkgMTk5NSwgMTQ6MTY6MjYpOgojISBybj1IaWdobGFuZGVyIHJ0PTgwMTc1NDc4MgpIaSBIaWdobGFuZGVyIHVuZCBBbnRoZWEsCnd1ZXJkZQpFdWNoIGphIGdlcm4gbWFsIGF1ZiBkZXIgQnVlaG5lIHNlaG4sIGFiZXIgd2FydW0gc3BpZWx0IElociBpbW1lciBzbyB3ZWl0CndlZz8KR2VodCBkb2NoIG1hbCBhdWYgRGV1dHNjaGxhbmQtVG91cm5lZSAgOi0pIG9kZXIgYnJpbmd0IEV1cmUgTGV1dGUgbmFjaApNdWVuc3RlciBtaXQgOi0pCgppcmlzaC1mb2xrIGxpZWJlbmQKU251Z2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQYWRkeSdzIFJldHVybiBzdHJpa2VzIGFnYWluIChKYWYsIDMwLiBNYWkgMTk5NSwgMTQ6NTI6MzcpOgojISBybj1TbnVnZ2xlIHJ0PTgwMTgzNjE4NgoKQXUgamEsIGljaCB1bnRlcnN0dWV0emUgU251Z2dsZXMgVm9yc2NobGFnOiBtYWNodCAnbmUgVG91cm5lZSA6KQoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGlXcCAoTnVkZWksIDMxLiBNYWkgMTk5NSwgMTA6MTE6NDMpOgpBbiBBbGxlIGdlc2NoYWV0enRlbiBBYm9ubmVtZW50ZW4gZGVzIERFUiBJUlJFIFdFTFRSQVVNUFJPTEVULCB1bmQgYW4gYWxsCmplbmUsIGRpZSBlcyBub2NoIHdlcmRlbiB3b2xsZW4hCgpJbiBtZWluZXIgRWlnZW5zY2hhZnQgYWxzIEhlcmF1c2dlYmVyIHVuZCBDaGVmcmVkYWt0ZXVyIGRlcyBEaVdwIG11c3MgaWNoCkV1Y2ggbGVpZGVyIG1pdHRlaWxlbiwgZGFzcyBlcyBpbSBNYWkgS0VJTkVOIERpV3AgZ2ViZW4gd2lyZC4gVHV0CmF1ZnJpY2h0aWcgbGVpZCwgYWJlciBlcyBnaWJ0IGViZW4gYW5kZXJlIERpbmdlIGF1Y2ggbm9jaCBhbHMgRnJlc3NlbiB1bmQKU2F1ZmVuLgoKRGVzd2VnZW4gZ2lidCBlcyBhYmVyIG5pY2h0IEdydW5kIHp1bSBIYWVuZ2VubGFzc2VuIGRlciBLb2VwZmUsIGRlbm4gaWNoCmt1ZW5kaWdlIGhpZW1pdCBhbjoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKSW0gSnVuaSBnaWJ0IGVzIGVpbmVuIERvcHBsZXItRGlXcCEKKioqRWlnZW5zY2hhZnQgYWxzIEhlcmF1c2dlYmVyIHVuZCBDaGVmcmVkYWt0ZXVyIGRlcyBEaVdwIG11c3MgaWNoCkV1Y2ggbGVpZGVyIG1pdHRlaWxlbiwgZGFzcyBlcyBpbSBNYWkgS0VJTkVOIERpV3AgZ2ViZW4gd2lyZC4gVHVFaWdlbnNjaGFmdAphbHMgSGVyYXVzZ2ViZXIgdW5kIENoZWZyZWRha3RldXIgZGVzIERpV3AgbXVzcyBpY2gKRXVjaCBsZWlkZXIgbWl0dGVpbGVuLCBkYXNzIGVzIGltIE1haSBLRUlORU4gRGlXcCBnZWJlbiB3aXJkLiBUdXQKYXVmcmljaHRpZyBsZWlkLCBhYmVyIGVzIGdpYnQgZWJlbiBhbmRlcmUgRGluZ2UgYXVjaCBub2NoIGFscyBGcmVzc2VuIHVuZApTYXVmZW4uCgpEZXN3ZWdlbiBnaWJ0IGVzIGFiZXIgbmljaHQgR3J1bmQgenVtIEhhZW5nZW5sYXNzZW4gZGVyIEtvZXBmZSwgZGVubiBpY2gKa3VlbmRpZ2UgaGllbWl0IGFuOgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpJbSBKdW5pIGdpYnQgZXMgZWluZW4gRG9wcGxlci1EaVdwIQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKTWl0IGRlbiBmZXR6aWdlbiBCZWl0cmFlZ2VuIHdpZSB6LkIuCi0xMDEgc2lubnZvbGxlIFphdWJlcnNwcnVlY2hlIGZ1ZXIgZm9ydGdlc2Nocml0dGVuZSBFcnptYWdpZXIKCi1EaWUgcHJvZ3JhbW1hdGlzY2hlIEt1cnpnZXNjaGljaHRlIGRlcyBNb25hdHMKLURpZSBMYW5nZXJ3YXJ0ZXRlIEF1c3dlcnR1bmcgZGVyIERpV3AtTGVzZXJldmFsdWF0aW9uCgotRGllIFN0b3J5IHZvbiBLZXB0biBTY2h1cmwsIHNlaW5lbiBCb3R0bGJ1YW0gdW5kIGRlbSBXdWVyc3RlbHBsYW5ldAoKLUVpbiBuZXVuZXMga2FwaXRlbCBhdXMgZGVuIHZlcmxvcmVuIGdlZ2xhdWJ0ZW4gVm9sZ2FyLUF1ZnplaWNobnVuZ2VuIGRlcwpTY2hyZWliZXJzIEh5cm9uaW11cyBkZXIgWml0dHJpZSwgZ2VuYW5udCBERVIgQ0hST05JU1QKCi11LnYubS4KCkFsc28sIGxlaWJlIExlc2VyIHVuZCBSaW5uZW4sIG5pY2h0IHRyYXVyaWcgc2VpbiwgZGVyIG5hZWNoc3RlIERpV3Aga29tbXQKVW5kIHdlciBudW4gZWluZW4gR3VzdG8gYmVrb21tZW4gaGF0LCBzZWxiZXIgTWl0Z2xpZWQgaW0gS3JlaXNlIGRlcgpEaVdwLUxlc2Vyc2NoYWZ0IHp1IHdlcmRlbiwgZGVyIGxhc3NlIG1pciBzZWluZSBFLU1haWwtTnVtZW1yIHp1a29tbWVuLAp1bSBuYWVoZXJlIEluZm9zIHp1IGVyaGFsdGVuLgoKRWluZmFjaGVyIHdhZXJlIGVzIG5hdHVlcmxpY2gsIG1pciBnbGVpY2ggZGllIFBvc3RhZHJlc3NlIHp1enVzdGVsbGVuLApkZW5uIGRlciBEaVdwIGlzdCBlaW5lIFJMLVplaXR1bmcgenVtIEFuZmFzc2VuLCBMaWViaGFiZW4sIFVudGVybGVnZW4gdW5kCkhpbnRlcm5wdXR6ZW4uCgpBdWYgV2llZGVybGVzZW4KCgpOdWRlaSwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUGFkZHkncyBSZXR1cm4gc3RyaWtlcyBhZ2FpbiAoS2xpbmdlLCAgMS4gSnVuIDE5OTUsIDAwOjIxOjQ5KToKIyEgcm49U251Z2dsZSBydD04MDE4MzYxODYKZ2VuYXUsIHdhcnVtIHNwaWVsZW4gZGllIG5pY2h0IGF1ZiBkZXIgbXVkLXBhcnR5ID8KYW50d29ydCBlcmJldGVuICEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBQYWRkeSdzIFJldHVybiBzdHJpa2VzIGFnYWluIChIaWdobGFuZGVyLCAgMS4gSnVuIDE5OTUsIDExOjI0OjQ1KToKIyEgcm49S2xpbmdlIHJ0PTgwMTk1ODkwOQpbV2FydW0gd2lyIG5pY2h0IGF1ZiBkZXIgTXVkcGFydHkgc3BpZWxlbl0KWndlaSBHcnVlbmRlOgphKSBQYWRkeSdzIGJlc3RlaHQgamEgbmljaHQgbnVyIGF1cyB1bnMgYmVpZGVuLCBzb25kZXJuIGF1cwogICBzZWNocyBMZXV0ZW4uIERpZSBtdWVzc3RlbiBhbGxlIG5hY2ggTVMga29tbWVuLCBtaXQgR3JhZmZsIGltIEF1dG8uCiAgIEJycnIhICAgdW5kCmIpIGdsYXVidCBpaHIgZG9jaCB3b2hsIG5pY2h0LCBkYXNzIHdpciBrb3N0ZW5sb3Mgc3BpZWxlbj8gOj4KICBTbyBhYiA0MDAuLSBsYXNzZW4gd2lyIG1pdCB1bnMgcmVkZW4gKFVudGVyZ3JlbnplISksCiAgIHVuZCBmdWVyIGVpbm1hbCBtaXQgendlaSBiaXMgZHJlaSBBdXRvcyBuYWNoIE1TIGtvbW1lbiBkYSBsb2NrZXIgMTUwCiAgIE1hZXVzZSBkYXp1LiBBYmdlc2VoZW4gZGF2b24sIGRhc3MgZGllIGFuZGVyZW4gYmVzdGltbXQgbmljaHQgYWxsenUKICAgdmllbCBMdXN0IGhhYmVuLCBtYWwgc2NobmVsbCBrbmFwcCA1aCBoaW56dWZhaHJlbiwgenUgc3BpZWxlbiwgdW5kIHdpZWRlcgogICBrbmFwcCA1aCB6dXJ1ZWNrenVmYWhyZW4uCkFsbG5zIENobG9yPwoKICAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogUGFkZHkncyBSZXR1cm4gc3RyaWtlcyBhZ2FpbiAoSmFmLCAgMS4gSnVuIDE5OTUsIDIyOjAyOjAzKToKIyEgcm49SGlnaGxhbmRlciBydD04MDE5OTg2ODUKCkhtLiBTY2hhZGUuIEFiZXIgbWVpbnN0ZSBuaWNodCwgZGFzcyBzaWNoIGFubGFlc3NsaWNoIG5lciBNdWRwYXJ0eQpuaWNodCBub2NoIEJpZXIgdW5kIElzb21hdHRlIGZ1ZXIgdmllciB3ZWl0ZXJlIExldXRlIGZpbmRlbiBsaWVzc2VuPwoKQWxzbyBkYXMgQXJndW1lbnQgbWl0IGRlbSAnZnVlbmYgU3R1bmRlbiBuYWNoIE11ZXN0ZXIsIHNwaWVsZW4gdW5kCnp1cnVlY2snIGthbm4gaWNoIGlyZ2VuZHdpZSBuaWNodCBzbyByaWNodGlnIHZlcnN0ZWhlbi4KCkphZi4gRHVtbSB3aWUgaW1tZXIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFBhZGR5J3MgUmV0dXJuIHN0cmlrZXMgYWdhaW4gKEFudGhlYSwgIDEuIEp1biAxOTk1LCAyMzoyNDoxOSk6CiMhIHJuPUphZiBydD04MDIwMzY5MjMKVGphLCBhdXNzZXJkZW0gZ2lidCBlcyBkYSBlaW4gd2VpdGVyZXMgUHJvYmxlbToKV2VubiBkaWUgTXVkcGFydHkgZWluIFdvY2hlbmVuZGUgc3BhZXRlciB3YWVyZSwgd2FlcmUgaWNoIGF1Y2ggZGEuIGFiZXIgc28uLi4KaGFlbmdlIGljaCB6dSBkZW0gWmVpdHB1bmt0IHdvaGwgbm9jaCBpbiBTcGFuaWVuIHJ1bS4gRXMgaXN0IGRhbm4gamEgc2Nob24Kc2NobGltbSBnZW51ZywgZGFzcyBkaWUgTXVkcGFydHkgb2huZSBtaWNoIHlibGF1ZmVuIG11c3MsIGFiZXIgd2VubiBhdWNoIG5vY2gKZGllIEJhbmQgb2huZSBtaWNoIHNwaWVsZW4gc29sbCwgd2lyZCBlcyBkb2NoIHp1dmllbC4uLgoKICAgICAgQW50aGVhCiAgICAgIChwbGFlZGllcnQgYXVjaCBmdWVyIGVpbmUgVmVyc2NoaWVidW5nIGRlciBNdWRwYXJ0eSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFBhZGR5J3MgUmV0dXJuIHN0cmlrZXMgYWdhaW4gKEhpZ2hsYW5kZXIsICAyLiBKdW4gMTk5NSwgMTE6MzY6MzQpOgojISBybj1KYWYgcnQ9ODAyMDM2OTIzCkFiZ2VzZWhlbiB2b24gQW50aGVhcyBQcm9ibGVtIG1pdCBkZW0gbmljaHQgZGEgc2VpbiAqc2V1ZnoqOgooV2llc28gaXN0IGVpZ2VudGxpY2ggbWVpbmUgendlaXRlIFplaWxlIGJlaSBqZWRlbSBwb3N0aW5nICEtJSA/KQpFcyBzb2xsIGF1Y2ggbmljaHQtTXVkZGVyIGdlYmVuIGF1ZiBkaWVzZXIgV2VsdCwgdW5kIGRpZSBhbmRlcmVuIHZpZXIKdm9uIFBhZGR5J3Mgc2luZCBudW4gbWFsIHdlbGNoZSwgdW5kIHdhcnN0IER1IHNjaG9uIG1hbCBhbHMgdG90YWxlcgpPdXRzaWRlciBhdWYgZWluZXIgUGFydHk/IEJycnIgOj4KSWNoIHVuZCBBbnRoZWEgd3VlcmRlbiBiZXN0aW1tdCBuaWNodCBnbGVpY2ggd2llZGVyIGZhaHJlbiA6PgpCaXMgenVtIEJlcmcsCiAgIEhpZ2hsYW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJQIC0gTXVlbnN0ZXIgOS4gLSAxMS4gIChKaW1kaWdyaXosICAyLiBKdW4gMTk5NSwgMTI6NTg6MTIpOgpIYWxsbyBMZXV0ZSAhCgpBbmxhZXNzbGljaCBkZXIgUlAgLSBNdWVuc3RlciBiaW4gaWNoIGFuIGJlc2FndGVtIFdFIGRvcnQuCgpJY2ggd2Vpc3MgZGFzcyB2aWVsZSBNdWRkZXIgSXJjIG9kZXIgUlAncyBvZGVyIHNvIHNjaGVpc3NlIGZpbmRlbiwgaGFsdGUKZGFzIGFiZXIgZnVlciBlaW4gVm9ydXJ0ZWlsLgp1ZSBzb3RvLXN1a3VpLXVrZQpJY2ggd2VlcmRlIGRpZSBHZWxlZ2VuaGVpdCBnZXJuZSBOdXR6ZW4gdW5kIG1pY2ggZXZ0bCBtaXQgZWluIHBhYXIKTXVlbnN0ZXJhbmVybiB0cmVmZmVuLgpBbHNvIHdlciBCb2NrIGhhdCBzY2hyZWlidCBtaXIgbmUgbWFpbCB1bSBPcnQgdW5kIFN0dW5kZSBhdXN6dW1hY2hlbi4KCldlciB0cm90eiBhbGxlciBWb3J1cnRlaWxlIGluZm9zIHp1ciBSUCB3aWxsOgogIGh0dHA6Ly93d3dtYXRoLnVuaS1tdWVuc3Rlci5kZS9+cnAvCgpJY2ggaG9mZmUgYXVmIHphaGxyZWljaGVzIGludGVyZXNzZSA7LSkpCgpDaWFvLAogSmFtZXMgQm9saXZhciBkaUdyaXoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaWVsZXIgKEhhdGUsICAyLiBKdW4gMTk5NSwgMTU6MzQ6NDgpOgpEaWUgRHVyY2hzY2huaXR0bGljaGUgQW56YWhsIGRlciBTcGllbGVyIGluIE1HIGF1ZiBkaWUgU3R1bmRlbiBkZXMgVGFnZXMKYXVmZ2V0ZWlsdC4KMDBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA1NAowMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA1MAowMmggKioqKioqKioqKioqKioqKioqKioqKioqKiogMDQzCjAzaCAqKioqKioqKioqKioqKioqKioqKiogMDM1CjA0aCAqKioqKioqKioqKioqKioqKiAwMjgKMDVoICoqKioqKioqKioqKioqIDAyNAowNmggKioqKioqKioqKioqIDAyMQowN2ggKioqKioqKioqKioqIDAyMQowOGggKioqKioqKioqKioqKioqKiAwMjgKMDloICoqKioqKioqKioqKioqKioqKioqKiAwMzYKMTBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogMDUyCjExaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAwNjQKMTJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA2OQoxM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAwNzcKMTRoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA4NAoxNWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogMDg0CjE2aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogMDY1CjE3aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA3NwoxOGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA3NgoxOWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDA3NQoyMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogMDczCjIxaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAwNjMKMjJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAwNTUKMjNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogMDU3CgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNwaWVsZXIgKEhhdGUsICAyLiBKdW4gMTk5NSwgMTU6Mzk6MjEpOgojISBybj1IYXRlIHJ0PTgwMjEwMDA4OApadXIgRXJrbGFlcnVuZywgd2FydW0gZGllIFphaGxlbiBzbyBnZXJpbmcgZXJzY2hlaW5lbi4KSW0gUHJpbnppcCBzaW5kIHNpZSBkYXMgbmljaHQsIHdlaWwgaGllciBfYWxsZV8gVGFnZSwgYWxzbyBhdWNoIFNhbXN0YWcKdW5kIFNvbm50YWcgZWluYmVyZWNobmV0IHNpbmQuIERpZSBXb2NoZW5lbmRlbiBkcnVlY2tlbiBkYXMgZ2FuemUgYWxzbyBlaW4Kd2VuaWcuIFdlbm4gZ2VudWcgRGF0ZW4genVzYW1tZW4gc2luZCBrb2VubnRlIG1hbiBzbyBlaW5lIEdyYWZpayBmdWVyIGRlbgpqZXdlaWxpZ2VuIFdvY2hlbnRhZyBtYWNoZW4sIGRhcyB3dWVyZGUgbW9lZ2xpY2hlcndlaXNlIG1laHIgYXVzc2FnZW4uCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUlAgLSBNdWVuc3RlciA5LiAtIDExLiAgKEpvZiwgIDIuIEp1biAxOTk1LCAyMDo0ODozOSk6CiMhIHJuPUppbWRpZ3JpeiBydD04MDIwOTA2OTIKCiBJY2ggaGFiIGF1ZiBkZXIgbGV0emVuIFJQIG1hbCBrdXJ6IHJlaW5nZXNjaGF1dCAod2VubiBhdWNoIG5pY2h0IGdhbnoKImZyZWktCndpbGxpZyIgOikpIHVuZCB3ZXJkJyB6dSBkaWVzZXIgZGVmaW5pdGl2IG5pY2h0IGhpbmdlaGVuIDopIGljaCB3dWVyZGUKYXVjaCBuaWNodCBoaW5nZWhlbiwgd2VubiBpY2ggTklDSFQgaW4gS0Egd2FlciBhbiBkZW0gV0UsIHdhcyBpY2ggYWJlciBiaW4KKHp3ZWNrcyBTdGFtbXRpc2NoYmVzdWNoKSAuLi4KCiBKb2YKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFBhZGR5J3MgUmV0dXJuIHN0cmlrZXMgYWdhaW4gKEhhciwgIDIuIEp1biAxOTk1LCAyMTo1MjowMik6CiMhIHJuPUhpZ2hsYW5kZXIgcnQ9ODAxOTk4Njg1ClRqYSwgZGFzIGtsaW5ndCBuaWNodCBwcm9mZXNzaW9uZWxsLCBsaWViZSBQQWRkeXMgUmV0dXJuZXIuIEVudHdlZGVyIHNlaWQgaWhyCmd1dCB1bmQgdnJlbGFuZ3QgbWluZGVzdGVucyAxMjAwLi0gcHJvIEdpZywgb2RlciBhYmVyIGlociBzcGllbHQgZnVlciAiRnJlaQpTYXVmZW4iIHVuZCBTcHJpdGdlbGQsIGFiZXIgbmUgTWluZGVzdGdhZ2Ugdm9uIDQwMC4tIGlzdCBhbGJlcm4sIHNvIGtyaWVndCBpaHIKbmllIGRhcyBHZWxkIHouQi4gZnVlciBuZSBQQSB6dXNhbW1lbiwgZGVua3QgbWFsIGRydWViZXIgbmFjaCA6KQpIYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlcTogYXJjaGllIG1pdHF1ZXN0ZXIgZ2VzdWNodCAoSmltZGlncml6LCAgMy4gSnVuIDE5OTUsIDEzOjQ0OjE5KToKSG9pIFNwaWVsZXIgIQoKTmFjaGRlbSBpY2ggZGllIGxldHp0ZSBBcmNoaWUtQWt0aW9uIHZlcnBhc3N0IGhhYmUgc3VjaCBpY2gKdWUgc290by1zdWt1aS11a2UKbnVuIG5hY2ggZWluZXIgbmV1ZW4gR2VsZWdlbmhlaXQgZGFzIFF1ZXN0IHp1IG1hY2hlbi4KV2VyIG5vY2ggYmVkYXJmIGhhdCBiaXR0ZSBiZWkgbWlyIG1lbGRlbi4KWmVpdDogTWl0dHdvY2ggYWIgMTYzMCBVaHIgIQoKSWNoIGhvZmZlIGVzIG1lbGRlbiBzaWNoIHdlbGNoZSAqYXVmIEZyeWRlciBkZXV0KiAqZ3JpbnMqLgoKWW91cnMKIEphbWVzIEJvbGl2YXIgZGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFYmVuZSBOYWNocmljaHRlbiAoSGF0ZSwgIDQuIEp1biAxOTk1LCAyMjowNjowNSk6CkRpZSBFYmVuZSBOYWNocmljaHRlbiBmdW5rdGlvbmllcnQgd2llZGVyLCBnZW5hdXNvCndpZSBhdWNoIGRpZSBSdWJyaWsgZHduZXdzIGhpZXIgaW4gZGVyIE1QQSBhdWNoIHdpZWRlcgpBcnRpa2VsIGVudGhhZWx0LgpEZXN3ZWl0ZXJlbiBpc3QgZGllIE1lbGR1bmcsIGRhc3MgTmFjaHJpY2h0ZW4ga29tbWVuIHZvbQpBbGxnZW1laW4gdmVyc2Nod3VuZGVybiwgd2VpbCBDYXJhZGhyYXMgZGFzIHNvIHdvbGx0ZS4KSGF0ZS4KLC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFBhZGR5J3MgUmV0dXJuIHN0cmlrZXMgYWdhaW4gKEFudGhlYSwgIDQuIEp1biAxOTk1LCAyMjozNzozNik6CiMhIHJuPUhhciBydD04MDIxMjI3MjIKVGphLCBkYXMga2xpbmd0IHdhaHJzY2hlaW5saWNoIGRlc2hhbGIgbmljaHQgcHJvZmVzc2lvbmVsbCwgd2VpbCB3aXIgbmljaHQKcHJvZmVzc2lvbmVsbCBzcGllbGVuLiBXaXIgc3R1ZGllcmVuIGhhbHQgbm9jaCAnbmViZW5iZWknIHVuZCBtYWNoZW4gZGFzIG1pdApkZXIgQmFuZCBoYXVwdHNhZWNobGljaCBkZXNoYWxiLCB3ZWlsIGVzIHVucyBTcGFzcyBtYWNodC4gVW5kIGRhIHdpciBiaXNoZXIKbnVyIGluIGRlciBuYWVoZXJlbiBVbWdlYnVuZyBnZXNwaWVsdCBoYWJlbiwgd2FyIGRhcyAnU3ByaXRnZWxkJyBub2NoIG5pZQpiZXNvbmRlcnMgcmVsZXZhbnQuClVuZCBudXIgZnVlciB3YXMgenVtIFNhdWZlbiB6dSBzcGllbGVuLCBkYWZ1ZXIgc2luZCB3aXIgbWVpbmVyIE1laW51bmcgbmFjaAppbnp3aXNjaGVuIHp1IGd1dCBnZXdvcmRlbiB1bmQgaGFiZW4genV2aWVsIEFyYmVpdCBkYSByZWluZ2VzdGVja3QuIEVzIGdpYnQKaGFsdCBhdWNoIEJhbmRzLCBkaWUga2VpbmUgSG9lY2hzdGdhZ2VuIHZlcmxhbmdlbiAoa29lbm5lbikgdW5kIHRyb3R6ZGVtIGd1dApzcGllbGVuLgoKICAgICBBbnRoZWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFYmVuZSBOYWNocmljaHRlbiAoQ2FyYWRocmFzLCAgNS4gSnVuIDE5OTUsIDAxOjE1OjI3KToKIyEgcm49SGF0ZSBydD04MDIyOTYzNjUKSWNoIHdvbGx0ZSBuaWNodCBkYXNzIGRpZSBNZWxkdW5nIHZlcnNjaHdpbmRldCBzb25kZXJuIGRhc3MgbWFuIHNpZQppZ25vcmllcmVuIGthbm4gd2llIGFsbGVzIGFuZGVyZSBhdWNoIGF1ZiBkZW4gS2FuYWVsZW4uCk1pciBpc3NlcyB3dXJzY2h0IG9iIGRpZSBNZWxkdW5nIGRhIGF1ZnRhdWNodCwgc29sYW5nZSBpY2ggc2llCmFic3RlbGxlbiBrYW5uIHdlbm4gaWNoIHdpbGwuCgogICAgICAgIHRzY2hvZSAgICAgQ2FyYWRocmFzClBTOiBBYmVyIGxpZWIgdm9uIEhhdGUgZ2VkYWNodCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogUGFkZHkncyBSZXR1cm4gc3RyaWtlcyBhZ2FpbiAoSGlnaGxhbmRlciwgIDUuIEp1biAxOTk1LCAyMDowNDoyMyk6CiMhIHJuPUhhciBydD04MDIxMjI3MjIKVW5kIGFiZ2VzZWhlbiBkYXZvbiwgd2FzIEFudGhlYSBzY2hvbiBnZXNjaHJpZWJlbiBoYXQsIG1vZWNodGUgaWNoCmRyYXVmIGhpbndlaXNlbiwgZGFzcyBpY2ggX2FiXyA0MDAgZ2VzY2hyaWViZW4gaGFiLgpJY2ggd2Vpc3MsIER1IGhhc3QgTWluZGVzdGdhZ2UgZ2VzY2hyaWViZW4sIGFiZXIgaWNoIHdvbGx0ZSBoYWx0IG5vY2gKbWFsIGRyYXVmIGhpbndlaXNlbiB1bmQgbWljaCBhbnNpbnN0ZW4gbWlzdCBhbnNvbnN0ZW4gQW50aGVhcyBNZWludW5nCnZvbGwgYW5zY2hsaWVzc2VuIDo+CgpBY2ggamE6IFdlbGNvbWUgYmFjaywgWHkgOj4KCiAgIEhpZ2hsYW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvbnplcnRhbmt1ZW5kaWd1bmcgKENhdHdlYXpsZSwgIDYuIEp1biAxOTk1LCAxMjowNjo0Nyk6CltWZXJsZWd0IHZvbiBhbGxnZW1laW5lcywgU2NocnVtcGZpLCAgNS4gSnVuIDE5OTUsIDIyOjIwOjQ3XToKVGphLCBkaWUgYW5kZXJlIFJ1YnJpayBpc3QgbGVpZGVyIHNjaG9uIHZvbGwsIGFsc28gbXVzcyBpY2ggaGllciBzY2hyZWliZW4KOi0pCkVzICBsaWVndCBtaXQgU2ljaGVyaGVpdCBOSUNIVCBhbiBPSSBQT0xMT0ksIGRpZSBoYWJlbiB3aXIgc2Nob24gbWFsCnZlcmFuc3RhbHRldCB1bmQgZGllIHNpbmQgd2lya2xpY2ggc2VociBuZXR0LCB3aXIgaGFiZW4gc2VsdGVuIHNvIGVpbmUgbmV0dGUKQmFuZCB2ZXJhbnN0YWx0ZXQuIFdlbm4gaWhyIGJlaSB1bnMgc3BpZWx0IGtyaWVndCBpaHIgZGllIEtvaGxlIGRpZSB2b3JoZXIKYXVzZ2VtYWNodCB3dXJkZSwgRXNzZW4gdW5kIHRyaW5rZW4gc28gdmllbCBpaHIgaW4gRXVjaCByZWluc2NodWV0dGVuIGtvZW5udC4KTWl0IGRlciBWb3JiYW5kIGJlaSAgT0kgUE9MTE9JIHdpcmQgZXMgbGVpZGVyIG5peCB3ZWlsIGRpZSBzY2hvbiBhbSAyMy4wNgpzaW5kLiBXdWVyZCBtaWNoIGFiZXIgdHJvdHpkZW0gZnJldWVuIEV1Y2ggbWFsIGluIExpbnogdmVyYW5zdGFsdGVuIHp1CmtvZW5uZW4uU28gTy5LIGFsbGVzIGFuZGVyZSBwZXIgTWFpbCA6LSkKU2NocnVtcGZpIGRpZSBLb256ZXJ0dmVyYW5zdGFsdGVyaW4gOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa29uemVydGFua3VlbmRpZ3VuZyAoQ2F0d2VhemxlLCAgNi4gSnVuIDE5OTUsIDEyOjA3OjIwKToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBIYXIsICA2LiBKdW4gMTk5NSwgMTE6MjI6MjFdOgpXYXIgamEgdWFjaCBtZWhyIGFscyBTcGFzIGdlbWVpbnQsIGRhcyBtaXQgZGVyIEdhZ2UuIEJlcnVodCBudXIgYXVmIG5lcgpFcmZhaHJ1bmcsIGRpZSBpY2ggaW0gInNlbWlwcm9mZXNzaW9uZWxsZW4iIE11c2lrYnVzaW5lc3MgZ2VtYWNodCBoYWJlIDstKS4KV2VubiBtYW4gc2Nob24gR2FnZSB2ZXJsYW5ndCwgZGFubiByaWNodGlnLCAxNTAuLSBwcm8gUGVyc29uIHNvbGx0ZW4gc2Nob24KZGFiZWkgcmF1c3NwcmluZ2VuIHVuZCBsaWViZXIgZWluZW4gR2lnIGZ1ZSAxMDAwLi0gYWxzIHp3ZWkgZnVlciA0MDAuLSwgZXMgc2VpCmRlbm4gbWFuIHNwaWVsdCBhdXMgU3ltcGF0aGllIGZ1ZXIgZGVuIFZlcmFuc3RhbHRlciAoZ3JpbnMgU2NocnVtcGZpKS4gSWNoIGhhYgptaXQgZGVyIEZvcmRlcnVuZyA0MDAuLSBNYXJrIGF1Y2ggaW1tZXIgNDAwIC4tIGdla3JpZWd0IHVuZCBqZXR6dCwgd28gY2loIDEwMDAKc2FnZSwgc3ByaW5nZW4gbWVpc3QgbWluZC4gODAwIGJlaSByYXVzLiBBbHNHcnVzcwpBbHNvIHJ1aWhnIGV0d2FzIGF1ZiBkaWUgS2Fja2UgaGF1aGVuIDstKQpIYXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBa3R1YWxpc2llcnRlIFNwaWVsZXJ6YWhsZW4gKEhhdGUsICA3LiBKdW4gMTk5NSwgMTg6MDc6NDgpOgowMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDUzIFNwLgowMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1MCBTcC4KMDJoICoqKioqKioqKioqKioqKioqKioqKioqKiogIDQyIFNwLgowM2ggKioqKioqKioqKioqKioqKioqKioqICAzNSBTcC4KMDRoICoqKioqKioqKioqKioqKiogIDI3IFNwLgowNWggKioqKioqKioqKioqKiogIDIzIFNwLgowNmggKioqKioqKioqKioqICAyMSBTcC4KMDdoICoqKioqKioqKioqKiAgMjAgU3AuCjA4aCAqKioqKioqKioqKioqKioqICAyNyBTcC4KMDloICoqKioqKioqKioqKioqKioqKioqKiogIDM2IFNwLgoxMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTIgU3AuCjExaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNjMgU3AuCjEyaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNjkgU3AuCjEzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc2IFNwLgoxNGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4NSBTcC4KMTVoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDg3IFNwLgoxNmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3NSBTcC4KMTdoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODAgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc1IFNwLgoxOWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc1IFNwLgoyMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzIgU3AuCjIxaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1OCBTcC4KMjJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1NCBTcC4KMjNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTYgU3AuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGlXcCBuZXVpZ2tlaXRlbiEgKE51ZGVpLCAgOS4gSnVuIDE5OTUsIDEzOjAxOjA2KToKTGllYmUgTGVzZXIgdW5kIElubmVuLCBvZGVyIHNvbGNoZSBkaWUgZXMgd2VyZGVuIHdvbGxlbiEKCkRpZSBKdW5pLU1haS1BdXNnYWJlIGRlcyBEaVdwIGlzdCBzb2ViZW4gZXJzY2hpZW5lbiwgZGVyIFByb3RvdHlwIGxpZWd0IGltClBhbnplcnNjaHJhbmsgYmVyZWl0LgpJbnRlcmVzc2VudGVuIGZ1ZXIgZGllIGxhdWZlbmRlIEF1c2dhYmUgaGFiZW4gbm9jaCBiaXMgTW9udGFnLCAxMi5KdW5pIDguMDAKVWhyIFplaXQsIHNpY2ggaW4gZGllIExpc3RlIGVpbnp1cmFnZW4hCkRhbm4gd2VyZGVuIHNpZSB2aWVsbGVpY2h0IGVpbiBFeGVtcGxhciBlcmhhbHRlbiEgQWRyZXNzZSBnZW51ZWd0IQoKTGVzdCBkZW4gSXJyZW4gV2VsdHJhdW1wcm9sZXRlbiwgZGFzIFNwaXR6ZW56aW5lIGZ1ZXIgZGVuIGhhY2tuU2xheWVyLCBkZXIKYXVzc2VyIE1vbnN0ZXJzY2hsYWNodGVuIG51ciBub2NoIGVpbmVzIGltIFNpbm4gaGF0OgpGcmVzc2VuIHVuZCBTYXVmZW4uCgpEZXN3ZWdlbiwgbGllYmUgTWl0bWV0emxlciwgbm9jaCBIRVVURSBBTkZPUkRFUk4hCgpOdWRlaSwgU2NocmlmdGxlaXR1bmcgRGlXcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5rdWVuZGlndW5nIChTbnVnZ2xlLCAxMC4gSnVuIDE5OTUsIDEwOjM1OjQwKToKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICBFcyBiZWdhYiBzaWNoIGFsc28gYW4gZWluZW0gVGFnIGltIERlemVtYmVyIG9kZXIgSmFudWFyICAgICAgICAgICAgICoKKiAgICBpbiBkZXIgR2lsZGUgZGVyIEFiZW50ZXVyZXIgenUgUG9ydCBWYWluOiAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgU251Z2dsZSBrb21tdCBoZXJlaW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgU251Z2dsZSB2ZXJuZWlndCBzaWNoIHZvciBQYXVsaW5lLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgIFBhdWxpbmUgbWFjaHQgZWluZW4gYW5tdXRpZ2VuIEtuaWNrcy4gKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgU2VpdGRlbSBpc3QgdmllbCBXYXNzZXIgZGVuIE5hYmxhIGhlcnVudGVyZ2VmbG9zc2VuICAgICAgICAgICAgICAgKgoqICAgICAgdW5kIGJlaSBlaW5pZ2VuIFF1ZXN0cyB1bmQgYW5kZXJlbiBnZW1laW5zYW1lbiBFcmxlYm5pc3NlbiAgICAgICAgKgoKKiAgICAgIGthbWVuIHdpciB1bnMgbmFlaGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgIFNvIHR1ZSBpY2ggZGVubiBoaWVybWl0IGFsbGVuIGt1bmQgdW5kIHp1IHdpc3NlbiwgICAgICAgICAgICAgICAgICoKKiAgICAgIGRhc3Mgc2ljaCBQYXVsaW5lIHVuZCBTbnVnZ2xlIGFtIHNwYWV0ZW4gQWJlbmQgZGVzIDguIEp1bmkgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJsb2J0IGhhYmVuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgIEVpbiBUZXJtaW4gZnVlciBkaWUgSG9jaHplaXQgd2lyZCBub2NoIGJla2FubnQgZ2VtYWNodC4gICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCllUIFNudWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFua3VlbmRpZ3VuZyAoTGVmdHksIDEwLiBKdW4gMTk5NSwgMTI6MTU6NDkpOgpFaW5lbiBoZXJ6bGljaGUgR2x1ZWNrd3Vuc2NoLCBQYXVsaW5lIHVuZCBTbnVnZ2xlIDopKS4KCk51biBqYSwgd2VubiB3aXIgZ2VyYWRlIGRhYmVpIHNpbmQsIHNvbGNoZSBmcmV1ZGlnZW4gRXJlaWduaXNzZSB6dQp2ZXJrdWVuZGVuLCBrb21tZSBpY2ggbmljaHQgZHJ1bXJ1bSwgaGllciBhdWNoIGVpbmUgQW56ZWlnZSByZWluenVzZXR6ZW4uCgpGZWllcmxpY2ggdmVya3VlbmRlIGljaCwgZGFzIG1laW4gV2VyYmVuIHVtIGRpZSBob2xkZSBIYW5kIG1laW5lcgpnZWxpZWJ0ZW4gTnNjaG90c2NoaSBGcnVlY2h0ZSBnZXRyYWdlbiBoYXQuIEFtIDkuIEp1bmkgc3BhZXQgaW4gZGVyIE5hY2h0CmhhdCBzaWUgbWVpbiBGbGVoZW4gZXJob2VydCB1bmQgbWVpbmVtIEFudHJhZyBmcmV1ZGlnIHp1Z2VzdGltbXQuCk5hY2ggdm9sbHpvZ2VuZXIgVmVybG9idW5nIHdlcmRlbiB3aXIgZGVtbmFlY2hzdCB1bnNlcmUgSGVpcmF0IHBsYW5lbiwKYWxsZSBGcmV1bmRlIHNpbmQgZGFubiBlaW5nZWxhZGVuLCBzb3dpZSBhbGxlLCBkaWUgTHVzdCBoYWJlbi4KT2ZmaXppZWxsIGF1c2dlbGFkZW4gc2luZCBhbGxlIG5vdG9yaXNjaGVuIEVpbnNwcnVjaHNhZ2VyLCBzb2xsdGUgZXMgenUKZWluZW0gc29sY2hlbiBWb3JmYWxsIGtvbW1lbiwgemllaHQgc2ljaCBkZXIvZGllamVuaWdlIHVuc2VyZW4gdWViZXJhdXMKZ3Jvc3NlbiBab3JuIHp1LiA7LSkKCk9rYXksIG1laW4gQmVpdHJhZyBnZWdlbiAnTml4IE5ldWVzIGF1ZiBkZXIgV2VsdCcuLi4KCkVpbiBnbHVlY2tsaWNoZXIgdW5kIHVuaGVpbWxpY2ggdmVybGllYnRlciBMZWZ0eQoKUC5TLjogTnNjaG90c2NoaSwgaWNoIGxpZWJlIERpY2ggISA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9oIHdlaCwgbnVuIGlzdCBlcyBnZXNjaGVoZW4hISEgKEJlbmRlaWdpZCwgMTIuIEp1biAxOTk1LCAxMzozMjowMik6ClBhdWxpbmUsIHdpZSBrb25udGVzdCBkdSBtaXIgZGFzIGFudHVuISEgKnNjaGx1Y2h6IGphZW1tZXJsaWNoKgpTbnVnZ2xlLCBpY2ggYmVnbHVlY2t3dWVuc2NoZSBkaWNoIG5laWR2b2xsLCBkZW5uIGR1IGhhc3QgZGFzIGdyb3NzZSBMb3MKZ2V6b2dlbi4gVmllbGUgc3Vlc3NlIFp3ZWl0aWVzLCBEcml0dGllcyB1c3cuIHd1ZW5zY2ggaWNoIEV1Y2guCgpCZW5kZWlnaWQsIHppZW1saWNoIHZlcnN0b2VydCB1bmQgdHJhdXJpZywgZGFzcyBQYXVsaW5lIG51ciBzbyBzZWx0ZW4gZGEKaXN0Li4uCgpQLlMuIEljaCBwbGFlZGllcmUgZnVlciBkaWUgVmllbHBlcnNvbmVuZWhlISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLb256ZXJ0YW5rdWVuZGlndW5nIChZZW5kaSwgMTIuIEp1biAxOTk1LCAxNDo0ODoxMSk6CiMhIHJuPUNhdHdlYXpsZSBydD04MDI0MzMyMDcKCklociBoYWJ0IE9JIFBPTExPSSAidmVyYW5zdGFsdGV0Ij8/PyAgICAgKmFyZ2wqCgpWb3IgYWxsZW0gaGFzdCBEdSB3b2hsIGRpZSBkZXV0c2NoZSBTcHJhY2hlIHZlcl91bl9zdGFsdGV0LCBDYXQuLi4KCiJEZXIgS2xhZWdlciBnYWIgYW4sIGF1ZiBkZXIgV2lsaGVsbXNzdHJhc3NlIHZlcnVuZmFsbHQgenUgc2Vpbi4iCgo+IFllbmRpIGFyZ2x0IGxlaXNlIHZvciBzaWNoIGhpbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGVsbGVuYW5nZWJvdCBmdWVyIE1hdGhlbWF0aWtlciB1bmQgMSBTdHVkZW50ZW4gKEhhdGUsIDEyLiBKdW4gMTk5NSwgMTc6NTY6MzIpOgoKRGllIEdNRCAtIEZvcnNjaHVuZ3NpbnN0aXR1dCBJbmZvcm1hdGlvbnN0ZWNobmlrIG1iSAogICAgRklSU1QgLSBGb3JzY2h1bmdzaW5zdGl0dXQgZnVlciBSZWNobmVyYXJjaGl0ZWt0dXIgdW5kIFNvZnR3YXJldGVjaG5pawogICAgUHJvZi5Eci4gQS4gU3lkb3cKICAgIFJvZG93ZXIgQ2hhdXNzZWUgNTUKICAgIDEyNDg5IEJlcmxpbiAoQWRsZXJzaG9mKQoKVGVsOiAoKzQ5MzApIDYzOTIgMTgwMApGYXg6ICgrNDkzMCkgNjM5MiAxODA1CgpBcmJlaXRzZ3J1cHBlIERZTU9TIC0gRHluYW1pc2NoZSBNb2RlbGxlIGluIGRlciBTaW11bGF0aW9uIHN1Y2h0CmVpbmVuIChtb2VnbGljaHN0KSBudW1lcmlzY2hlbiBNYXRoZW1hdGlrZXIgdW5kIGVpbmUgc3R1ZGVudGlzY2hlCkhpbGZza3JhZnQgKG51ciBpbiBCZXJsaW4gbW9lZ2xpY2gpLgoKVW5nZWZhZWhyZSBTdGVsbGVuYmVzY2hyZWlidW5nOgoKKiBNYXRoZW1hdGlrZXI6CiAgLS0gRWluc3RlbGx1bmcgYWxzIF9Eb2t0b3JhbmRfCiAgLS0gRWluc3R1ZnVuZyBCQVQgSUlhLzIoLU9zdCkKICAtLSBNb2VnbGljaGUgQXJiZWl0c2dlYmlldGUgWmVpdHJlaWhlbiBpbSBadXNhbW1lbmhhbmcgbWl0CiAgICAgTHVmdHNjaGFkc3RvZmZhdXNicmVpdHVuZ3Ntb2RlbGxlbiwgUGFyYWxsZWxpc2llcnVuZyBvZGVyCiAgICAgYXVjaCBpbSBCZXJlaWNoIFZlcmtlaHJzZmx1c3NzaW11bGF0aW9uLgoKKiBTdHVkZW50aXNjaGUgSGlsZnNrcmFmdDoKICAtLSBNYWVkY2hlbiBmdWVyIGFsbGVzIDopCgpBbGxlIGRpZXNlIEFuZ2FiZW4gb2huZSBHZXdhZWhyISBJY2ggaGFiZSBzbyBpbiBldHdhIGF1Zmdlc2NocmllYmVuLCB3aWUKaWNoIGRpZSBTdGVsbGVuIHNlaGUuIERhcyBrYW5uIG1hbiBhbGxlcyBhdWZ3ZWljaGVuIHVuZCBQcm9mLiBTeWRvdyBpc3QKaW4gZGVyIEJlemllaHVuZyB1bWdhZW5nbGljaC4KRGllcyBiZXppZWh0IHNpY2ggYXVjaCBhdWYgZGllIEVpbnN0ZWxsdW5nIGVpbmVzIE1hdGhlbWF0aWtlcnMsIGVzIGlzdAplaW5lciBlcnd1ZW5zY2h0LCBhYmVyIHdlciBtaXQgZWluZW0gZ3V0ZW4gVGhlbWEga29tbXQsIG1pdCBkZW0gZXIvc2llCnByb21vdmllcmVuIG1vZWNodGUsIHN0ZWh0IGRlbSBuaWNodHMgaW0gV2VnZSwgdm9yYXVzZ2VzZXR6dCBlci9zaWUgd2lyZApnZW5vbW1lbi4KCkFuZnJhZ2VuIGFuIG1pY2ggb2RlciBhbiBQcm9mLiBTeWRvdyBkaXJla3QuIE1laW5lIEFkcmVzc2UgZm9sZ3Q6CgpNYXR0aGlhcyBMLiBKdWdlbCAoZ2xlaWNoZSBBZHJlc3NlIHdpZSBvYmVuKQpUZWw6ICgrNDkzMCkgNjM5MiAxODI0CkZheDogKHdpZSBvYmVuKQpFbWFpbDogbGVvQGZpcnN0LmdtZC5kZSBvZGVyCiAgICAgICBoYXRlQG11ZC51bmktbXVlbnN0ZXIuZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpV3AtIExldHp0ZSBNZWxkdW5nIChOdWRlaSwgMTMuIEp1biAxOTk1LCAwOTo0MDo0MCk6CmxpZWJlIExlc2VyIHVuZCBSaW5uZW4gZGVzIERFUiBJUlJFIFdFTFRSQVVNUFJPTEVUIQoKRGVyIERpV1AgKE1BSS1KVU5JIDE5OTUpIFdVUkRFIEdFU1RFUk4gQVVGIERJRSBQT1NUIEdFQlJBQ0hULCBXRU5OIEVSIEFNCk1JVFRXT0NIIE5PQ0ggTklDSFQgSU4gRVVSRU4gSE9FSExFTiBBTkdFTEFOR1QgSVNULCBTTyBMSUVHVCBFUyBOSUNIVCBJTgpNRUlORU0gQkVSRUlDSC4KClVtIHJlaWNobmxpY2hlIEFudHdvcnQgZGFyZiBnZWJlbnRlbiB3ZXJkZW4uCgpOdWRlaSwgU2NoaXJ0ZmxlaXR1bmcgRGlXcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRFVFTExBTktVRU5ESUdVTkchISEhISAoTmFpcm9sZiwgMTQuIEp1biAxOTk1LCAxNDozMzo1OCk6CkJhbGQgaXN0IGVzIGVuZGxpY2ggc293ZWl0OgpOYWNoIHdvY2hlbmxhbmdlciBBcmJlaXQgd2VyZGUgaWNoLCBNdWVsbGVyIE5haXJvbGYgZGVyIGZsaWVnZW5kZSBIb2xsYWVuZGVyIAogIEx3YXhhbmEgVHJvaSwgQm90c2NoYWZ0ZXJpbiBkZXIgRm9lZGVyYXRpb24gIHp1IGVpbmVtIGdyb3NzZW4gdW5kIGZhaXJlbgpEdWVsbCBoZXJhdXNmb3JkZW4uIEVuZGxpY2ggaGFiZW4gd2lyIGVzIGdlc2NoYWZmdCB1bnNlcmUgU3RhdHMgZ2xlaWNoenVzZXR6ZW4KdW5kIHp1ZGVtIHZlcmdsZWljaGJhcmUgUnVlc3R1bmdlbiB6dSB0cmFnZW4gdW5kIGViZW5zb2xjaGUgV2FmZmVuIHp1IGZ1ZWhyZW4uCkRhaGVyIHdpcmQgZXMgYWxzbyBudXIgZGVtIFp1ZmFsbCB1ZWJlcmxhc3NlbiBzZWluLCB3ZXIgdm9uIHVucyBiZWlkZW4gc2ljaAptaXQgTGFycyB2ZXJnbnVlZ2VuIG11c3MuIEljaCBob2ZmZSwgZGFzcyBMd2F4YW5hIFRyb2ksIEJvdHNjaGFmdGVyaW4gZGVyCkZvZWRlcmF0aW9uICAgbWlyIE5JQ0hUIGJvZXNlIGlzdCwgZGFzcyBpY2ggZGllc2VuIEFydGlrZWwgamV0enQKdmVyb2VmZmVudGxpY2hlLCBhYmVyIGljaCBtb2VjaHRlIG51biBlbmRsaWNoIGVuZGxpY2ggZGllc2VzLCBzY2hvbiBzZWl0CmxhbmdlbSBnZXBsYW50ZSB1bmQgdm9uIG1pciBpbW1lcndpZWRlciBoZXJhdXNnZXpvZWdlcnRlIER1ZWxsIGhpbnRlciBtaWNoCmJyaW5nZW4uIEFsc28gTHdheGFuYSBUcm9pLCBCb3RzY2hhZnRlcmluIGRlciBGb2VkZXJhdGlvbiBpY2ggYml0dGUgRGljaApoaWVybWl0OiBzY2hsYWdlIGJpdHRlIGVpbmVuIFplaXRwdW5rdCB2b3IsIGFuIGRlbSB3aXIgbnVuIGluIGRpZSBBcmVuYSBnZWhlbgprb2VubmVuLgpNaXQgZnJldW5kbGljaGVuIEdydWVzc2VuCgpNdWVsbGVyIE5haXJvbGYgZGVyIGZsaWVnZW5kZSBIb2xsYWVuZGVyLCBkZXIgc2ljaCBkYXJ1ZWJlciBhZXJnZXJ0LCBkYXNzIG51cgogTWFnaWVyIGFiIExldmVsIDI2IEtpbmRlciBiZWtvbW1lbiBrb2VubmVuIDooCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRFVFTExBTktVRU5ESUdVTkchISEhISAoTHdheGFuYSwgMTQuIEp1biAxOTk1LCAxNzozNzo1MCk6CiMhIHJuPU5haXJvbGYgcnQ9ODAzMTMzMjM4Clp3ZWl0ZXIgVmVyc3VjaCwgbmFjaGRlbSBpY2ggZGFzIGxldHp0ZSBtYWwgZHVyY2ggZGVuIHJlYm9vdCB1bnRlcmJyb2NoZW4Kd3VyZGU6CkFsc286CjEuIE1laW4gTmFtZSBpc3QgTHdheGFuYSBUcm9pLCBESUUgQm90c2NoYWZ0ZXJpbiBkZXIgRm9lZGVyYXRpb24sIGRhc3MgZHUKbWVpbmVuIHZvbGxlbiBOYW1lbiBuaWNodCBoaW5rcmllZ3N0LCB3ZWlzcyBpY2ggamEgc2Nob24sIGFiZXJkYXMgZHUgbmljaHQKZWlubWFsIGRpZSB2ZXJlaW5mYWNodGUgVmVyc2lvbiBoaW5rcmllZ3N0IHRyaWZmdCBtaWNoIGphIHNjaG9uLi4uCjIuIE1laW4gVm9yc2NobGFnIGZ1ZXIgZGVuIFplaXRwdW5rdCBkZXMgRHVlbGxzIHdhZXJlIEZyZWl0YWcgSGlnaCBOb29uIChJY2gKc2V0emUgbWFsIHZvcmF1cywgZHUgd2Vpc3N0LCB3YXMgaWNoIGRhbWl0IG1laW5lLi4uKSBUZWlsZSBhbSBiZXN0ZW4gbWVpbmVyClNla3VuZGFudGluIG1pdCwgd2FzIGR1IHZvbiBtZWluZW0gVm9yc2NobGFnIGhhZWxzdCwgZGEgZHUgZWluIHdlbmlnIGluClNjaHdpZXJpZ2tlaXRlbiBrb21tZW4ga29lbm50ZXN0LCBiZWkgZGVtIFZlcnNjdWgsIGVzIG1pciBtaXR6dXRlaWxlbi4KCkZyb2VobGljaCBGZWluZHNjaGFmdCAsCiAgIEx3YXhhbmEgVHJvaSwgVG9jaHRlciBkZXMgZnVlbmZ0ZW4gSGF1c2VzLCBIdWV0ZXJpbiBkZXMgc2FrcmFsZW4gS2VsY2hlcwp2b24gUml4eCB1bmQgRXJiaW4gZGVyIGhlaWxpZ2VuIFJpbmdlIHZvbiBCZXRhemVkLCBkaWUgQm90c2NoYWZ0ZXJpbiBkZXIKRm9lZGVyYXRpb24uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGllbGVyemFobGVuIChIYXRlLCAxNC4gSnVuIDE5OTUsIDIwOjA0OjEzKToKMDBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1NSBTcC4KMDFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTEgU3AuCjAyaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDMgU3AuCjAzaCAqKioqKioqKioqKioqKioqKioqKiogIDM2IFNwLgowNGggKioqKioqKioqKioqKioqKiogIDI5IFNwLgowNWggKioqKioqKioqKioqKiogIDI0IFNwLgowNmggKioqKioqKioqKioqKiAgMjEgU3AuCjA3aCAqKioqKioqKioqKiogIDIwIFNwLgowOGggKioqKioqKioqKioqKioqKiAgMjcgU3AuCjA5aCAqKioqKioqKioqKioqKioqKioqKioqKiAgMzkgU3AuCjEwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDU1IFNwLgoxMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2NiBTcC4KMTJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MyBTcC4KMTNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3OSBTcC4KMTRoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODYgU3AuCjE1aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDkwIFNwLgoxNmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4NiBTcC4KMTdoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDgxIFNwLgoxOGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4MCBTcC4KMTloICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3OCBTcC4KMjBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3NCBTcC4KMjFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDYyIFNwLgoyMmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDU0IFNwLgoyM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTcgU3AuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZXJsaW5lciBTdGFtbXRpc2NoIChBbmFraW4sIDE1LiBKdW4gMTk5NSwgMTg6Mzc6MTEpOgoKCiAgICAgICAgSkEgRVMgR0lCVCBJSE4hIERlbiBlaW56Z2FydGlnZW4gZmFudGFzdGlzY2hlbgoKICAgICAgICAgICAgICAgICAgICAgIE1HLU11ZC1TdGFtbXRpc2NoCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4KCiAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgICAgICAgICAgICAgICB8ICAgICAgQkVSTElOICAgICAgICB8CiAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKCiAgICAgICAgICAgICBURVJNSU46IEplZGVuIDIuIE1pdHR3b2NoIGltIE1vbmF0CgogICAgICAgICAgIE9SVDogJ1NlZWJsaWNrJywgUnlrZXN0cmFzc2UgaW4gUHJlbnpsQmVyZwoKICAgICAgICAgICAgICAgICAgICAgICBaRUlUOiBhYiAyMS4wMAoKCiAgICAgQWxzbyBtZWluZSBsaWViZW4gTWl0bXVkZGVyLCBrb21tdCB2b3JiZWkgdW5kIHNjaGF1dCByZWluLgoKUC5TLjogSmEgdW5kIGRhc3MgYXVjaCB3aXJrbGljaCBhbGxlIGtvbW1lbiwgc2luZCBNYWdpZXIgKGdyaW5zCiAgICAgIG5pZW1hbmQgYW4pIGFtIFVlYmVybGVnZW4gZnVlciBkaWUgWmVpdCBkZXMgU3RhbW10aXNjaGVzCiAgICAgIGRlbiBadWdhbmcgYXVzIEJlcmxpbiB6dSBzcGVycmVuLCBkYW1pdCBpaHIgbmljaHQgbWl0IGRlcgogICAgICBBdXNyZWRlIGtvbW1lbiBrb2VubnQsICdOdXIgZGllIGRhcyBNb25zdGVyIGRhLCBvZGVyIG51cgogICAgICBub2NoIHJhc2NoIGRpZSBRdWVzdCcuIDstKQoKUC5TLlM6IFdlciBub2NoIEZyYWdlbiBoYXQsIE1haWwgYW4gbWljaC4uLgoKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjRHZXdpbm50LVR1cm5pZXJoYWxsZSAoQ3ltb25rLCAxNi4gSnVuIDE5OTUsIDExOjUzOjEwKToKIyMgICAgICAgIyMjIyMgICAjIyAgICAgICMjCiMjICAgICAgIyMgICAgICAgIyMgICAgICAjIwojIyAgIyMgICMjICAgICAgICMjICAgICAgIyMKIyMjIyMjICAjIyAjIyMgICAjIyAgIyMgICMjCiAgICAjIyAgIyMgICAjIyAgIyMgICMjICAjIwogICAgIyMgICMjICAgIyMgICMjICAjIyAgIyMKICAgICMjICAgIyMjICMjICAgIyMjICAjIyMKCkVzIGdpYnQgamV0enQgZWluZSBUdXJuaWVyaGFsbGUgZnVlciA0LUdld2lubnQgaW4gZGVyIEJydW5uZW5zdHJhc3NlCmluIFBvcnQgVmFpbi4KTmViZW4gZGVyIE1vZWdsaWNoa2VpdCBkZXIgQXVzdHJhZ3VuZyB2b24gUGFydGllbiBpbiBkZXIgT2VmZmVudGxpY2hrZWl0LAp0cmVpYnQgc2ljaCBkb3J0IGF1Y2ggZWluIFZlcnRyZXRlciBkZXIgaGllc2lnZW4gU3BpZWxlaW5kdXN0cmllIGhlcnVtLCBkZXIKZXVjaCBnZXJuZSBlaW4gNEdld2lubnQgU3BpZWwgaW0gVGFzY2hlbmZvcm1hdCBhbmRyZWh0LgoKQ3lNb25rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNZWluZSBTY2h1bGQgKEx3YXhhbmEsIDE2LiBKdW4gMTk5NSwgMTI6NDM6MTMpOgpIaWVyIGtvbW10IG51biBlaW5lIGVya2xhZXJ1bmcgZnVlciBtZWluIEZlcm5ibGVpYmVuIGhldXRlIE1vcmdlbiBiZWltCkR1ZWxsOkljaCBoYWJlIHZlcnNjaGxhZmVuLi4uIGF1c3NlcmRlbSBtdXNzIGljaCB6dSBtZWluZXIgU2NoYW5kZSBnZXN0ZWhlbiwKZGFzcyBpY2ggYW0gTWl0dHdvY2ggYmVpIG1laW5lbSBUZXJtaW52b3JzY2hsYWcgdmVyZ2Vzc2VuLCBkYXNzIERvbm5lcnN0YWcgZWluCkZlaWVydGFnIGlzdC4uLgpJc3Qga2VpbmUgRW50c2NodWxkaWd1bmcsIGljaCB3ZWlzcywgc29uZGVybiBudXIgZWluZSBFcmtsYWVydW5nLi4uCk5haXJvbGYgZHUga2FubnN0IGRpciBqYSBlaW5lbiBNYWcgc3VjaGVuLCBkZXIgbWljaCB6YXB0Li4uLiBhbnNvbnN0ZW4gaW5kIFJMCmthbm4gbWFuIGltbWVyIG5vY2ggd2FzIGF1c21hY2hlbi4uLi4KVHNjaGF1IEx3YXggKHplcmtuaXJzY2h0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWluZSBpZGRlIChNY2R1ZmYsIDE2LiBKdW4gMTk5NSwgMTM6MTA6NTkpOgpXaWUgd2FlcmUgZXMgbWl0IGVpbmVtIEZyaWVkaG9mIG9kZXIgZWluZXIgR2VkZW5rdGFmZWwgZnVlciBhbGxlIGRpZSBzaWNoCnNlbGJzdGdlbG9lc2NodCBoYWJlbiwgbmF0dWVybGljaCBnZWdlbiBiZXphaGx1bmcuLi4KZ3J1ZXNzZSBtY2R1ZmYKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWVyIEJ1bWVyYW5nIChLZXRvcywgMTcuIEp1biAxOTk1LCAyMzoyODowMyk6CkljaCBoYWJlIGRlbiBCdW1lcmFuZyBldHdhcyBuZXUgZ2VzdGFsdGV0LgpKZXR6dCBpc3QgZXIgbm9jaCBzY2huZWxsZXIsIGJlc3NlciwgYnVudGVyIHVuZCBnZXJlY2h0ZXIuCkRhcyBsYWVzdGlnZSBUcmlnZ2Vya2xhdWVuIGlzdCB3ZWcuCkRhZnVlciB3dXJkZW4gZWluIHBhYXIgS2xlaW5pZ2tlaXRlbiBhbmdlcGFzc3QuCgpCZXNjaGltcGZ1bmdlbiwgTWV0emVsYmVyaWNodGUsIExvYiB1LmFlLiBlcmJldGVuLgotIGtldG9zIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBlaW5lIGlkZGUgKEZyYWdnbGUsIDE5LiBKdW4gMTk5NSwgMTE6NTU6MjgpOgojISBybj1NY2R1ZmYgcnQ9ODAzMzAxMDU5CldlciBiZXphaGx0IGRhcyBkZW5uPyBEaWUsIGRpZSBzaWNoIGdlbG9lc2NodCBoYWJlbj8KKmtyYXR6IGtyYXR6KgpGcmFnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNT05TVEVSISAoSGF0ZSwgMTkuIEp1biAxOTk1LCAxMzo0MDozNSk6CldlciBMdXN0IHVuZCBMYXVuZSBoYXQga2FubiBqYSBtYWwgc2VpbmUgRXJmYWhydW5nZW4gbWl0IGJlc3RpbW10ZW4gTW9uc3Rlcm4sCmFsc28gTW9uc3RlciBiZXNjaHJlaWJlbiB1bmQgc2FnZW4sIHdvIG1hbiBlcyBmaW5kZXQsIG1pciBzY2hyZWliZW4gdW5kCmljaCB2ZXJzdWNoZSBkYXMgZGFubiBpbiBkYXMgTUcgTW9uc3RlcmtvbXBlbmRpdW0gZWluenViYXVlbi4KS2xlaW5lIEdlc2NoaWNodGVuIGRhenUgd2FlcmVuIGF1Y2ggbmljaHQgc2NobGVjaHQuCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEdWVsbCEgKE5haXJvbGYsIDE5LiBKdW4gMTk5NSwgMTU6MzE6NTYpOgpIQUxMTyBMRVVURSEKTmFjaGRlbSBMd2F4YW5hIFRyb2ksIERJRSBCb3RzY2hhZnRlcmluIGRlciBGb2VkZXJhdGlvbiBsZWlkZXIgbmljaHQgenUKdW5zZXJlbSBEdWVsbCBlcnNjaGVpbmVuIGtvbm50ZSwgZGEgc2llIHZlcnNjaGxhZmVuIGhhdHRlICgqZ3JpbnMqKSB3ZXJkZW4gd2lyCmVzIG51biBub2NoZWlubWFsIHZlcnN1Y2hlbiBlaW4gZ3Jvc3NlcyB1bmQgdm9lbGxpZyBnZXJlY2h0ZXMgRHVlbGwgYXVmIGRpZQpCZWluZSB6dSBzdGVsbGVuIHdpciB3ZXJkZW4gdmVyc3VjaGVuIHZvbiBkZW4gV2VydGVuIGRlciBSdWVzdHVuZ2VuIGdsZWljaCBndXQKenUgc2VpbiAgICB1bnNlcmUgU3RhdHMgZ2xlaWNoenVoYWJlbi4uLiAoaGFiZW4gd2lyIGFiZXIgc2Nob24uLi4pIG5hamEgaWNoCnd1ZXJkZSBhbHNvICAgYWxzIFplaXRwdW5rdCBmdWVyIHVuc2VyIER1ZWxsIHNjaGxhZ2UgaWNoIE1pdHR3b2NoIG9kZXIKRG9ubmVyc3RhZyBWb3JtaXR0YWcgdm9yIHNvIGdlZ2VuIDEwLjAwIG9kZXIgMTEuMDAgVWhyIEljaCB3ZXJkZSBiZXdlaXNlbiwKZGFzcyBkaWUgTWFjaHQgZGVyICAgICAgICBGb2VkZXJhdGlvbiBuaWNodCB1bmJlc2NocmFlbmt0IGlzdCAhISEhCgptaXQgZnJldW5kbGljaGVuIGdydWVzc2VuCgogICAgICBNdWVsbGVyIE5haXJvbGYgZGVyIGZsaWVnZW5kZSBIb2xsYWVuZGVyLCBkZXIgc2ljaCBuaWNodCBtZWhyIGdhbnoKc29zZWhyIGRhcnVlYmVyIGFlcmdlcnQgZGFzIGVyc3QgTWFnaWVyIGFiIExldmVsIDI2IEtpbmRlciBrcmllZ2VuIGtvZW5uZW4uLi4KdW5kIGRlciBqZXR6dCBlbmRsaWNoIHdpZWRlciBtaXQgTHdheGFuYSBiZWZyZXVuZGV0IHNlaW4gd2lsbCB1bmQgZGFzIER1ZWxsCmhpbnRlciBzaWNoIGJyaW5nZW4gd2lsbCB1bSB3ZWl0ZXIgbmFjaCBaVCdzIHN1Y2hlbiB6dSBrb2VubmVuLi4uLi4uLgoKLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNT05TVEVSISAoUHRlcHBpYywgMjAuIEp1biAxOTk1LCAxMDo0ODo0Mik6CiMhIHJuPUhhdGUgcnQ9ODAzNTYyMDM1CgpXZXIgd2lyZCB3b2hsIGRpZSBCZXNjaHJlaWJ1bmcgZnVlciBkZW4gU2Vuc2VubWFubiBtYWNoZW4/IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IER1ZWxsISAoTmFpcm9sZiwgMjEuIEp1biAxOTk1LCAwMToxODo1OSk6CiMhIHJuPUZsaW50bmFpbCBydD04MDM2MzgxNzEKRmxpbnQgaWNoIG11c3Mgbm9jaG1hbCBzYWdlbiBlcyB0dXQgbWlyIGxlaWQgYWJlciBkYXMgZHVlbGwgaGF0IHNjaG9uCnN0YXR0Z2VmdW5kZW4gd2lyIGhhYmVuIG1pdCBuYWNodHJ1ZXN0dW5nIHVuZCBhbXVsZXR0IGRlciBha2FkZW1pZSBhbHMKcnVlc3R1bmcgdW5kIG1pdCBuYWNodHNjaHdlcnRlcm4gZ2VrYWVtcGZ0IHVuZC4uLiBuYWphIGRlciBadWZhbGxzZ2VuZXJhdG9yCmhhdCBsZWlkZXIgdmVyc2FndCEhISBuYWphIHNvcnJ5Li4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRHVlbGwhIChBbnRoZWEsIDIxLiBKdW4gMTk5NSwgMDg6NDM6MzApOgojISBybj1OYWlyb2xmIHJ0PTgwMzY5MDMzOQpGdWVyIGRlbiwgZGVyIGVzIGltbWVyIG5vY2ggbmljaHQga2FwaWVydCBoYXQ6CgpNb24gSnVuIDE5IDE3OjE5OjQ2IDE5OTUgOiBTdGFydCBkZXMgRHVlbGxzIDogTmFpcm9sZiBnZWdlbiBMd2F4YW5hLgpNb24gSnVuIDE5IDE3OjIwOjUwIDE5OTUgOiBOYWlyb2xmIGhhdCBMd2F4YW5hIGltIER1ZWxsIGJlc2llZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTU9OU1RFUiEgKE51ZGVpLCAyMS4gSnVuIDE5OTUsIDA5OjQzOjA3KToKIyEgcm49SGF0ZSBydD04MDM1NjIwMzUKU2llaCBkYSwgc2llaCBkYSwgZGFzIE1VRCB3aXJkIGxpdGVyYXJpc2NoIQoKTGVzdCBkZW4gSVJSRU4gV0VMVFJBVU1QUk9MRVRFTiEKCk51ZGVpLCBTY2hyaWZ0bGVpdHVuZyBEaVdwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1PTlNURVIhIChCb25nbywgMjEuIEp1biAxOTk1LCAxMDo0NDozMik6CiMhIHJuPU51ZGVpIHJ0PTgwMzcyMDU4NwpOdW4gd2lsbCBpY2ggZXMgYWJlciB3aXNzZW4uLi4gV2FzIGlzdCBkZXIgaXJyZSBXZWx0cmF1bXBpbG90Pz8/Ckthbm4gbWFuIGRhcyBoaWVyIGlyZ2VuZHdvIGxlc2VuIChpbSBtdWQpIG9kZXIgaXN0IGRhcyBlaW5lIFNhbW1sdW5nIHZvbgpHZXNjaGljaHRlbiwgZGllIG1hbiBpbSBSTCBiZXN0ZWxsZW4ga2FubiBvZGVyIHdpZSBvZGVyIHdhcz8/PyBJY2ggYml0dGUgdW0KQXVma2xhZXJ1bmcuLi4qZmxlaCoKQm9uZ28gKHRvdGFsIHZlcndpcnJ0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTU9OU1RFUiEgKE51ZGVpLCAyMS4gSnVuIDE5OTUsIDExOjAyOjMyKToKIyEgcm49Qm9uZ28gcnQ9ODAzNzI0MjcyCkxpZWJlIEdlbWVpbmRlIHVuZCBzcGV5aWVsbCBsaWJlciBhdWZrbGFlcnVuZyBoZWlzY2hlbmRlciBCb25nbyEKCkRlciBJcnJlIFdlbHRyYXVtUFJPTEVULCAqbmljaHQgUGlsb3QhKiBpc3QgZWluIEZhbnlpaWNoIG1laW5lIEZhbnppbmUsCndlbGNoZXMgc2ljaCB6dW0gWmVsZSBnZXNldHp0IGhhdCwgZGFzIEFzZWhlbiB1bmQgRnJvbW1lbiBkZXJqZW5pZ2VuIFNwaWVsZXIKdW5kIFJvbGxlbnNwaWVsZXIgenUgbWVocmVuLCB3ZWxjaGUgc2ljaCBkZW0gRWluc2F0emUgaWhyZXIgcGh6c2lzY2hlbiBLcmFlZnRlCndpZG1lbiB1bmQgdW50ZXIgSGFja25TbHllciB2dWxnYXJpc2llcnQgd2VyZGVuLgpVbSBEaWVzZXMgWmllbCB6dSBlcnJlaWNoZW4sIHdpcmQgZGVyIERpV3AgbW9uYXRsaWNoIG1pdCBnZWhhbHR2b2xsZW4KS3Vyemdlc2NoaWNodGVuIGdhcm5pZXJ0LiBFciBpc3QgbmFlbWxpY2ggZWluZSBSTC9aZWl0dW5nLCB6dSBiZXN0ZWxsZW4gYmVpCm1pciwgTnVkZWkuClZvcmVyc3QgZ2FyYW50aWVyZSBpY2ggbm9jaCBqZWRlbSBTdWJza3JpYmVudGVuIGVpbiBHcmF0aXNleGVtcGxhciB5dXIKQW5zaWNodCB1bmQgUHJvYmUuIERhbmFjaCB3aWxsIGljaCBtaWNoIHp1bWluZGVzdCBpbiBQb3N0d2VydHplaWNoZW4gdW0gbWVpbmUKVmVyc2FuZHNwZXNlbiBlbnRzY2hhZWRpZ3Qgd2lzc2VuLiBEaWUgbWFjaGVuIHZvbiBPZXN0ZXJyZWljaCBlaW5lIGdhbnplIE1lbmdlCmF1cy4gRGVzd2VnZW4gcG9yIEF1c2dhYmUgRE0gMS4yMCwgbWFjaCBETSA2IGZ1ZXIgNSBBZ2FiZW4gRGlXcCwgd2VsY2hlIGRhbm4KdW5yZWdlbG1hZXNzaWcsIGFiZXIgYWxsZSB2aWVyL2Z1ZW5mIHdvY2hlbiBmcmVpIGlucyBIYXVzZSBmbGF0dGVybi4KClByb2JpZXJlbiBnZWh0IHVlYmVyIE1ldHplbG4sIGFiZXIgbWV0emVsbiBpc3Qgc2Nob2VuZXIuCkVpbiBXZWlzZXIuCgpGcmV1IG1pY2ghCgpOdWRlaSwgU2NocmlmdGxlaXR1bmcgRGlXcAoKUFM+IEVpbmlnZSBJbSBNVUQga2VubmVuIGRlbiBEaVdwIGJlcmVpdHMsIGZyYWd0IGRvY2ggbWFsIHJ1bS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVyIEJ1bWVyYW5nIChSb2FkcnVubmVyLCAyMS4gSnVuIDE5OTUsIDExOjM4OjI1KToKIyEgcm49S2V0b3MgcnQ9ODAzNDI0NDgzCkhhbGxvIEtldG9zLAoKTmFjaCBlaW5pZ2VuIHRlc3RzIG1pdCBkZW0gbmV1ZW4gQnVtaSBoYWJlIGljaCBiZXNjaGxvc3NlbiBtaWNoIHp1CmJlc2Nod2VyZW4uClNjaG9lbiAtIGRlciBhbHRlIHd1cmRlIG1hbmNobWFsIHdlZ2dlZmFuZ2VuIC0gZGllIE1lbGR1bmcgZGFzcyBtYW4genUKbGFuZ3NhbSBzZWkgaXN0IGF1Y2ggbmV0dCAtIGFiZXIgaWNoIG1laW5lIHNpZSBrb21tdCBlbnRzY2hpZWRlbiB6dSBvZnQgYnp3Lgp6dSBzY2huZWxsLiBBbHMgc2NyaXB0c3BpZWxlciBtYWcgbWFuIGphIGNoYW5jZW4gaGFiZW4gZGFzIGRpbmcgenUgZmFuZ2VuLgpBYmVyIGJlaSBhdWNoIG51ciBsZWljaHRlbSBsYWcgaXN0IG1hbiBldHdhcyB1ZWJlcmZvcmRlcnQgbWl0IHdlcmZlbiB6d2VpZXIKYnVtaXMgLSBzY2h3ZXJ0IHdlZyAtIGJ1bWkgLSBidW1pIC0gc2Nod2VydCAtIHJ1bmRlIGFid2FydGVuIC0gc2Nod2VydCB3ZWcgLQpmYW5nZW4gLSBmYW5nZW4gLSAqZmx1Y2ggLSB3aWVkZXIgYmVpZGUgd2VnKiAuLi4uIGVudHdlZGVyIG1hbiBrYW5uIHNpZSBhdWNoCm9obmUgaGFuZCBmcmVpIGZhbmdlbiBvZGVyIHNpZSBzaW5kIHNvIHNjaG5lbGwgb2RlciBsYW5nc2FtbSB3aWUgZnJ1ZWhlci4uLi4uCi0gYWJlciBiZWlkZSBhZW5kZXJ1bmdlbiB6dXNhbW1lbiBzaW5kIHNlaHIgYWVyZ2VybGljaCB3ZW5uIG1hbiB2b24gaGFuZApzcGllbGVuIHdpbGwuIFBsYXllciBvaG5lIGxhZyAobXVlbnN0ZXIpIHNpbmQgYXVmIGRpZXNlIHdlaXNlIGJldm9yenVndCEKCgoJCVJvYWRSdW5uZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUVUVCSU5HRU4gKEphZiwgMjIuIEp1biAxOTk1LCAwMToxNzo0Mik6CiMhIHJuPUdhcmZpZWxkIHJ0PTgwMzc2MjUxNAoKTnVuIGtvbW0gaWNoIHNjaG9uIG1hbCBhbSBXRSByZWluIHp1ZmFlbGxpZyBuYWNoIFR1ZWJpbmdlbi4uLgoKQWJlciB3ZXIgYml0dGUgaXN0ICBQRSBXRVJORVI/CgpKYWYuIFVud2lzc2VuZCB3aWUgaW1tZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNT05TVEVSISAoUHRlcHBpYywgMjIuIEp1biAxOTk1LCAwNzo1ODowOSk6CiMhIHJuPU51ZGVpIHJ0PTgwMzcyNTM1MgoKR2VzdGVybiBoYWIgYXVjaCBpY2ggZGFzIGVyc3RlIE1hbCBkZW4gRGlXcCBnZWxlc2VuLCB1bmQgMS4yMCBETSBkYWZ1ZXIKemFobGVuCnNpY2ggYmVzdGltbXQgYXVzLCBkYXMga2FubiBpY2ggZXVjaCBnYXJhbnRpZXJlbi4KClB0ZXBwaWMgKGJlc3RlbGx0IHNpY2ggZGFubiBhdWNoIGJhbGQgZWluIEFibykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVFVFQklOR0VOIChIYXIsIDIyLiBKdW4gMTk5NSwgMTM6NDM6NDYpOgojISBybj1KYWYgcnQ9ODAzNzc2NjYyCk5hamEsIFBlIFdlcm5lciBrYW5uIHp3YXIgc2luZ2VuIGFiZXIgZGllc2UgTXVzaSwgbmVlZSwgZGFzIGlzdCBub2NoCnNjaGxpbW1lciBhbHMgaW5uZXIgTWVuc2EgenUgRXNzZW4gKCp3dWVyZyopCkhhci4uLmdvZW5udCB0cm90emRlbSBqZWRlbSBHYXJmaWVsZCBkYXMgc2VpbmUhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplaW5sYWR1bmcgKEFudGhlYSwgMjMuIEp1biAxOTk1LCAxNzo0Nzo1NSk6Cl9fX19fICBfX19fXyAgICAgICAgICAgICAgICAgIF9fX19fXyAgIF9fXyAgICAgICAgICAgICAgICAgICAgICAgX19fCnwgICAgICAgIHwgICAgfFwgICAgIHwgfCAgICAgfCAgICAgIHwgfCAgIFwgICB8ICAgICB8IHxcICAgICB8ICAvICAgXAp8ICAgICAgICB8ICAgIHwgXCAgICB8IHwgICAgIHwgICAgICB8IHwgICAgXCAgfCAgICAgfCB8IFwgICAgfCAvCnxfXyAgICAgIHwgICAgfCAgXCAgIHwgfCAgICAgfF9fX19fX3wgfCAgICAgfCB8ICAgICB8IHwgIFwgICB8IHwKfCAgICAgICAgfCAgICB8ICAgXCAgfCB8ICAgICB8ICAgICAgfCB8ICAgICB8IHwgICAgIHwgfCAgIFwgIHwgfCAgIF9fXwp8ICAgICAgICB8ICAgIHwgICAgXCB8IHwgICAgIHwgICAgICB8IHwgICAgLyAgfCAgICAgfCB8ICAgIFwgfCAgXCAgICAvCnxfX19fICBfX3xfXyAgfCAgICAgXHwgfF9fX18gfCAgICAgIHwgfF9fXy8gICAgXF9fXy8gIHwgICAgIFx8ICAgXF9fLwoKQmFsZCBpc3QgZXMgd2llZGVyIHNvIHdlaXQuLi4gSWNoIHdlcmRlIHNjaG9uIHdpZWRlciBlaW4gSmFociBhZWx0ZXIuCk9iIGRhcyBudW4gZWluIEdydW5kIHp1bSBGZWllcm4gaXN0PyBJY2ggd2Vpc3MgZXMgbmljaHQsIGljaCBmZWllcmUKZXMgYXVmIGplZGVuIEZhbGwuIFVuZCBEVSBmZWllcnN0IHZpZWxsZWljaHQgbWl0IG1pcj8KCkRhcyBHYW56ZSBmaW5kZXQgc3RhdHQgYW06CiAgICAgICAgICAgIDMwLjcuMTk5NSAoRGFzIGlzdCBlaW4gU29ubnRhZykgYWIgMTk6MDAgVWhyCiAgICAgICAgICAgIHVuZCB6d2FyIGluIERlY2hzZW5kb3JmIChkYXMgaXN0IGJlaSBFcmxhbmdlbikKCkRvcnQgaGFiZSBpY2ggZWluZW4gZ3Jvc3NlbiBHcmlsbHBsYXR6IHp1ciBWZXJmdWVndW5nLiBHcmlsbGZsZWlzY2gKKG9kZXIgd2FzIGlociBzb25zdCB1ZWJlciBkaWUgS29obGVuIGhhZW5nZW4gd29sbHQpIG11c3Mgc2VsYmVyCm1pdGdlYnJhY2h0IHdlcmRlbi4gV2VyIEx1c3QgaGF0IHp1IGtvbW1lbiB3ZW5kZSBzaWNoIGJpdHRlIGFuCm1pY2gsIFdlZ2Jlc2NocmVpYnVuZyB1bmQgc29uc3RpZ2UgSW5mb3Mga29tbWVuIGRhbm4gYmVpIEJlZGFyZjoKClBlciBtdWRtYWlsIChhbiBBbnRoZWFATW9yZ2VuZ3JhdWVuLCBBbnRoZWFAVEFQUE11ZCwgQW50aGVhQEd1ZWxkZW5sYW5kKQpQZXIgZS1tYWlsICAoYm9ja0BjaXAuZS10ZWNobmlrLnVuaS1lcmxhbmdlbi5kZSkKUGVyIFRlbGVmb24gKDA5MTMxLzQ0MDU1OCkKUGVyLXNvZW5saWNoICh3ZXIgbWljaCBoYWx0IGtlbm50IHVuZCBzaWVodCkKCkFudGhlYQoKUC5TLjpOZWluLCBkYXMgd2lyZCBrZWluZSBwcml2YXRlIE11ZC1mZXRlLCBlcyBzaW5kIGF1Y2ggTGV1dGUKICAgICBlaW5nZWxhZGVuLCBkaWUga2VpbmUgQWhudW5nIHZvbiBDb21wdXRlcm4gaGFiZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgowIChSb2VzdGksIDI2LiBKdW4gMTk5NSwgMTg6MTU6NDIpOgpGdHAtU2VydmVyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZ0cC1TZXJ2ZXIgKFJvZXN0aSwgMjYuIEp1biAxOTk1LCAxODoxNTo0Mik6ClN1Y2hlIGRpZSBBZHJlc3NlbiB2b24gRlRQLVNlcnZlcm4gbWl0IG5ldHRlbiBzaGFyZXdhcmUtc3BpZWxjaGVuOikKV2FzIHNvbGx0ZSBlaW5lIEJlcnVmc3NwaWVsa2luZCB3aWUgaWNoIGF1Y2ggYW5kZXJlcyBtaXQgZGVtIGludGVybmV0CmFuZmFuZ2VuLi4uOikKZnJldWUgbWljaCBzY2hvbiBhdWYgZXVyZSBwb3N0KGVpbmZhY2ggYW4gcm9lc3RpIGluIG1vcmdlbmdyYXVlbi4uLikKCkVpbiBzaWNoIGF1ZiBQb3N0IGZyZXVlbmRlciBSb2VzdGk6KQpQLlMuUm9lc3RpIG9obmUgZSBhbSBlbmRlOikKCgpubgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnRwLVNlcnZlciAoUm9lc3RpLCAyNi4gSnVuIDE5OTUsIDE4OjE1OjQyKToKU3VjaGUgZGllIEFkcmVzc2VuIHZvbiBGVFAtU2VydmVybiBtaXQgbmV0dGVuIHNoYXJld2FyZS1zcGllbGNoZW46KQpXYXMgc29sbHRlIGVpbmUgQmVydWZzc3BpZWxraW5kIHdpZSBpY2ggYXVjaCBhbmRlcmVzIG1pdCBkZW0gaW50ZXJuZXQKYW5mYW5nZW4uLi46KQpmcmV1ZSBtaWNoIHNjaG9uIGF1ZiBldXJlIHBvc3QoZWluZmFjaCBhbiByb2VzdGkgaW4gbW9yZ2VuZ3JhdWVuLi4uKQoKRWluIHNpY2ggYXVmIFBvc3QgZnJldWVuZGVyIFJvZXN0aTopClAuUy5Sb2VzdGkgb2huZSBlIGFtIGVuZGU6KQoKCm5uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGdHAtU2VydmVyIChSb2VzdGksIDI2LiBKdW4gMTk5NSwgMTg6MTU6NDIpOgpTdWNoZSBkaWUgQWRyZXNzZW4gdm9uIEZUUC1TZXJ2ZXJuIG1pdCBuZXR0ZW4gc2hhcmV3YXJlLXNwaWVsY2hlbjopCldhcyBzb2xsdGUgZWluZSBCZXJ1ZnNzcGllbGtpbmQgd2llIGljaCBhdWNoIGFuZGVyZXMgbWl0IGRlbSBpbnRlcm5ldAphbmZhbmdlbi4uLjopCmZyZXVlIG1pY2ggc2Nob24gYXVmIGV1cmUgcG9zdChlaW5mYWNoIGFuIHJvZXN0aSBpbiBtb3JnZW5ncmF1ZW4uLi4pCgpFaW4gc2ljaCBhdWYgUG9zdCBmcmV1ZW5kZXIgUm9lc3RpOikKUC5TLlJvZXN0aSBvaG5lIGUgYW0gZW5kZTopCgoKbm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkx1Y2t5IFRpZ2VyJ3MgQW56ZWlnZSAoRGFuY2VyLCAyOC4gSnVuIDE5OTUsIDAxOjI0OjExKToKTy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCnw6Ljo6Li46OjouLjo6IF9fX19fX19fX19fX19fX19fX19fX19fIDo6LjouLi46OjouLjoufAp8Ojo6OjouOmAuX19fX3wgICAgICAgICAgICAgICAgICAgICAgIHxfX19fLCcgIC4nOjs6OnwKfC46Oi46LmAuIFwgICB8ICAgICBMVUNLWSBUSUdFUidTICAgICB8ICAgLyAsJywuOi46Ojp8Cnw6Oi4gLSAtLSAgPiAgfF9fX19fX19fX19fX19fX19fX19fX19ffCAgPCAgLS0gLSAuLjoufAp8Oi46Oi46LCcgL19fX19fX18pfn5+fn5+fn5+fn5+fn5+KF9fX19fX19cIGAuOjo6Oi46LnwKfC4uLjo6LjouIH5+fn5+fn5+ICAgICAgICAgICAgICAgICB+fn5+fn5+fiA6Ojo6Li4uOi58CnwgICAgICAgICAgICAgICAgICAgICAgMjguMDYuOTUgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgMzAgV2V0dGthbXBmdGFnZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIDUyNCBhYmdlc2NobG9zc2VuZSBXZXR0ZW4sICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICA0NTEyIE11ZW56ZW4gZHVyY2hzY2huaXR0bGljaGVyIEdld2lubiBwcm8gV2V0dGUsIHwKfCAgMjM2NDMwMCBNdWVuemVuIEdlc2FtdGdld2lubiBhdXNnZXphaGx0LiAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICBEaWVzZSBaYWhsZW4gc3ByZWNoZW4gZnVlciBkZW4gRXJmb2xnLiAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIEVzIHdpcmQgaG9lY2hzdGUgWmVpdCwgZWluZW4gU2Nocml0dCB3ZWl0ZXIgenUgICAgfAp8ICBnZWhlbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIFVuc2VyZSBBcmNoaXRla3RlbiB1bmQgV2V0dHNwaWVsdmVyYW50d29ydGxpY2hlbiAgfAp8ICBlcndhcnRlbiBJaHJlIFZlcmJlc3NlcnVuZ3N2b3JzY2hsYWVnZSwgSWRlZW4gdW5kIHwKfCAgV3VlbnNjaGUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICBEYW5jZXIgLSBWb3JzdGFuZHN2b3J0aWdlcm5kZXIuICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ck8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZ0cC1TZXJ2ZXIgKEJsb29keWhhcnJ5LCAyOS4gSnVuIDE5OTUsIDAxOjU1OjEwKToKIyEgcm49Um9lc3RpIHJ0PTgwNDE4MzM0MgpIaSBSb2VzdGkhCgpEYSBrb2VubnRlIGphIG5vY2ggYW5kZXJlIGRyYW4gaW50ZXJlc3NpZXJ0IHNlaW4gLSBkYXJ1bSBhbnR3b3J0ZSBpY2gKb2VmZm5lZGxpY2guCld1YXJjaGl2ZSBpc3QgbmF0dWVybGljaCBkZXIgaGVpc3NlIFRpcCBhYmVyIGF1Y2ggaW4gRGUgZ2lidCBlcyBTZXJ2ZXIuIFpCIApmdHAudW5pLXJlZ2Vuc2J1cmcuZGUKCk9wYS1QaXJhdCBCbG9vZHkgSGFycnkgKHJlaWNodCBiYWxkIGRpZSBSZW50ZSBlaW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnRwLVNlcnZlciAoSmltZGlncml6LCAyOS4gSnVuIDE5OTUsIDAyOjU5OjAyKToKIyEgcm49Um9lc3RpIHJ0PTgwNDE4MzM0MgpIaSBSb2VzdGkgIQoKRWluZXMgZGVyIHVtZmFuZ3JlaWNoc3RlbiB1bmQgdWViZXJzaWNodGxpY2hzdGVuIEFyY2hpdmUgaXN0CmRhcyBtdWVuY2huZXIgTGVvLUFyY2hpdi4KTWl0IGh0dHA6Ly93d3cubGVvLm9yZy8ga29tbXQgbWFuIGhpbiAhIGZ0cCBmdHAubGVvLm9yZwpnZWh0IG5hdHVlcmxpY2ggYXVjaCwgaXN0IGFiZXIgd2VuaWdlciB1ZWJlcnNpY2h0bGljaCwgZGllIERhdGVuCmthbm4gbWFuIGF1Y2ggcGVyIHd3dy1icm93c2VyIHppZWhlbi4uCgpjdSwKIEphbWVzIEJvbGl2YXIgZGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBQ0hUVU5HQUNIVFVORyAoTWVzaXJpaSwgMzAuIEp1biAxOTk1LCAwMTozNjoxOCk6CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgTiBFIFUgRSBSIE8gRSBGIEYgTiBVIE4gRyAgICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgRnVlciBhbGxlIGRpZSwgZGllIHdpZSBpY2ggYmVyZWl0cyBEYWVtb25lbmJ1cmctICAgICAgIwojICAgZ2VzY2hhZWRpZ3Qgc2luZCwgb2RlciBlcyBub2NoIHdlcmRlbiB3b2xsZW4gICAgICAgICAgIwojICAgKERhbmsgWmFyZG96J1F1aXogaG9mZmVudGxpY2ggdmllbGUgdm9uIEV1Y2gpICAgICAgICAgIwojICAgZXJvZWZmbmUgaWNoIGhpZXJtaXQgZGllIFZlcmthdWZzZWlucmljaHR1bmcgZGVzICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgVkVSRUlOUyBaVVIgVkVSTUFSS1RVTkcgREVTIE1PTk9MSVRIRU4gbi5lLlYgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgRGllc2UgRWlucmljaHR1bmcgYmlldGV0IGFsbGVuIEludGVyZXNzaWVydGVuICAgICAgICAgIwojICAgSW5mb3JtYXRpb25lbiB1ZWJlciBkaWUgR2VzY2hpY2h0ZSBkZXIgQnVyZywgICAgICAgICAgIwojICAgc293aWUgdWViZXIgZGllIEJ1cmcgc2VsYnN0LiBBdXNzZXJkZW0gaXN0IGVzICAgICAgICAgIwojICAgbmF0dWVybGljaCBtb2VnbGljaCwgdmllbGUgU291dmVuaXJzLCBkaWUgaW4gICAgICAgICAgIwojICAgZGVyIEJ1cmcgZ2VmdW5kZW4gd2VyZGVuIGtvZW5uZW4sIHp1IGVyd2VyYmVuLiAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgRGEgZnVlciBkaWUgRWlucmljaHR1bmcgZGVyIFZlcmthdWZzZWlucmljaHR1bmcgICAgICAgIwojICAga2VpbmUgTWl0dGVsIHVuZCBNdWVoZW4gZ2VzY2hldXQgd3VyZGVuLCB1bSBhbGxlICAgICAgIwojICAgRGV0YWlscyBmb3Jtc2Nob2VuIHp1IGJlc2NocmVpYmVuLCBrb2VubmVuIGRpZSAgICAgICAgIwojICAgU291dmVuaXJzIGxlaWRlciBuaWNodCB1bXNvbnN0IGFiZ2VnZWJlbiB3ZXJkZW4uICAgICAgIwojICAgRGVyIGF1Zm1lcmtzYW1lIEJlb2JhY2h0ZXIgd2lyZCBhdWNoIHNjaG5lbGwgZGllICAgICAgIwojICAgUHJlaXNsaXN0ZSBmaW5kZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgVW0gUGVyc29uYWwgZnVlciBkaWUgVmVya2F1ZnNlaW5yaWNodHVuZyBlaW56dS0gICAgICAgIwojICAgc3RlbGxlbiwgd2FyZW4gbGVpZGVyIGtlaW5lIE1pdHRlbCBtZWhyIHZvcmhhbmRlbi4gICAgIwojICAgRGVzaGFsYiB3aXJkIGRpZSBWZXJrYXVmc2VpbnJpY2h0dW5nIGltIFNlbGJzdC0gICAgICAgIwojICAgYmVkaWVudW5nc2JldHJpZWIgZ2VmdWVocnQuIERlciBWZXJlaW4gaXN0IHNvbWl0ICAgICAgIwojICAgYXVmIEV1cmUgRWhybGljaGtlaXQgYW5nZXdpZXNlbiB1bmQgaG9mZnQsIGRhc3MgICAgICAgIwojICAgZXIgc2ljaCBkYW1pdCBuaWNodCBpbiBkZW4gUnVpbiBicmluZ3QuICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICBWaWVsIFNwYXNzIHd1ZW5zY2h0IEV1Y2ggICAgICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgTWVzaWkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojICAgICAgVmVyZWluc3ZvcnNpdHplbmRlciB1bmQgRnJlbWRlbmZ1ZWhyZXIgICAgICAgICAgICAgIwojICAgICAgICAgIChhYmVyIG5pY2h0IGFsbGVzd2lzc2VyIHJ1ZGkpICAgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKUC5TLiBBY2hzbywgZGEgRWluYnJlY2hlciB1bmQgUmVib290IHVuc2VyZSBWb3JyYWV0ZSBnZXNjaG1hZWxlcnQKaGFiZW4sIGJpdHRlbiB3aXIgdW5nZWR1bGRpZ2UgS3VuZGVuIHVtIEdlZHVsZCB1bmQgTmFjaHNpY2h0LiA7KQoKUC5QLlMuIEVzIHNpbmQgd2lya2xpY2ggKGhvZmZlbnRsaWNoKSBhbGxlIERldGFpbHMgaW5uZW4gdW5kCmF1c3NlbiBiZXNjaHJpZWJlbiwgc29sbHRlIGljaCB3YXMgdmVyZ2Vzc2VuIGhhYmVuLCBiaXR0ZSBtYWlsIGFuCm1pY2ggLSBlcyBnaWJ0IEJlbG9obnVuZ2VuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBQ0hUVU5HQUNIVFVORyAoRGFuY2VyLCAzMC4gSnVuIDE5OTUsIDAxOjQwOjE2KToKIyEgcm49TWVzaXJpaSBydD04MDQ0Njg5NzgKQkVMT0hVTkdFTj8/IERhZnVlciBkYXNzIGVpbmVyIGZlaGxlbmRlIERldGFpbHMgZmluZGV0PyEhPz8gUGFoISBEYWZ1ZXIKZ2lidHMgYmVpIG1pciBUcml0dGUgOi0pKQoKRGFuY2VyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gZGVuIFBhc3RhJlBpenphLUNsYW4uLi4uIChUYWlnaW5zZW5nLCAzMC4gSnVuIDE5OTUsIDAyOjA2OjAwKToKCkFuIGRpZSBwYXN0YWZsZXNzZW5kZW4sIGxvdHpmbGVjaGVuIEdhbm92ZWwtRmFtaWxpZW4gaGllbCBpbgpkaWVzZW0gTXVkOgoKV2lsLCBkaWUgbWFlY2h0aWdlbiBUbGkuLi5UbGkuLi5UbHJpLi4uVHJpYWRlbiBzaW5kIGhldXRlCmdlbGFuZGV0IHVuZCBiZWFuc3BsdWNoZW4gZGllc2VzIEZsZWNrY2hlbiB1bnd1ZWxkaWdlbiBCb2RlbgphbHMgdW5zZWwgRWlnZW50dW0uIEFsbGUgRmFtaWxpZW4sIGRpZSBzaWNoIGVudHNjaGVpZGVuLCBuaWNodAppaGxlIE5hc2UgaW4gaWhsZSBQaXp6YSB6dSBzdGVja2VuIHVuZCBsdWhpZyB6dSBzZWluLCBtb2VnZW4KZGVuIGdsYXVzYW1lbiwgdGF1c2VuZGZhY2hlbiBUb2QgZGVzIFRpZ2VscyBzdGVsYmVuLgoKSWhsIGR1ZWxmdCBqZXR6dCBkZW4gTGluZyBhbiB1bnNlbGVtIEZpbmdlbCBrdWVzc2VuLAoKVGFpLUdpbnNlbmcsIG9iZWxzdGVsIExlZG5lbCB2b24gZGVsIGdhbnogZ2FueiBnbG9zc2VuIHVuZApnYW56IG1hZWNodGlnZW4gVGxpLi5UbGkuLi5UbGkuLi4uYWNoIHZlcmxnaXNzIGVzLi4uCgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBQ0hUVU5HQUNIVFVORyAoQW50aGVhLCAzMC4gSnVuIDE5OTUsIDExOjUyOjA5KToKIyEgcm49RGFuY2VyIHJ0PTgwNDQ2OTIxNgpUamEsIERhbmNlci4uLiBkZXNoYWxiIHdlbmRldCBzaWNoIE1lc2lyaWkgamEgYXVjaCBhbiBTcGllbGVyIHVuZCBuaWNodCBhbgpNYWdpZXIsIGRlbm4gTWFnaWVyIHNpbmQgc293aWVzbyBncm9lc3NlbndhaG5zaW5uaWcuLi4gdW5kIGRpZSBhdXMgZGVyIFd1ZXN0ZQpiZXNvbmRlcnMsIGRlbm4gZGllIGhhYmVuIHp1c2FldHpsaWNoIG5vY2ggZWluZW4gU29ubmVuc3RpY2ggOikKICAgICAgICBBbnRoZWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEFDSFRVTkdBQ0hUVU5HIChXYXJnb24sICAzLiBKdWwgMTk5NSwgMTY6MjQ6MDYpOgojISBybj1EYW5jZXIgcnQ9ODA0NTA4NDE0CklOU0VMS1JBQkJMRVI/Pz8KTnVyIHdlaWwgaWhyIHVuc2VyZW4gc2Nob2VuZW4gU2FuZHN0cmFuZCB2ZXJ3YWx0ZW4gZHVlcmZ0IHVuZCBpaG4KZ3Jvc3NzcHVyaWcgIld1ZXN0ZSIgbmVubnQsIGlzdCBkYXMgbm9jaCBsYW5nZSBrZWluIEdydW5kLCBnbGVpY2gKYXVzZmFsbGVuZCB6dSB3ZXJkZW4hCkF1c3NlcmRlbSB3dW5kZXJ0IGVzIG1pY2gsIGRhc3MgaWhyIHdhc3NlcnNjaGV1ZXMgV3Vlc3RlbnZvbGsKU3RlaW5lIHdlcmZ0Li4uIGljaCBkYWNodGUsIGV1cmUgU3BlemlhbGl0YWV0IHdhZXJlIGVzLCBkZW4KYW5kZXJlbiBTYW5kIGluIGRpZSBBdWdlbiB6dSBzdHJldWVuLi4uCiAgSmF3b2xsLAogICAgV2FyZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBQ0hUVU5HQUNIVFVORyAoRGFuY2VyLCAgMy4gSnVsIDE5OTUsIDIyOjIzOjQ2KToKIyEgcm49V2FyZ29uIHJ0PTgwNDc4MTQ0NgpUcyEKRXJzYXVmIGRvY2ggZWluZmFjaCwgRHUgcGF0c2NobmFzc2UgSW5zZWxyb2JiZSEgOi0pCiggKmVpbiB6d2lzY2hlbmR1cmNoa251ZGRlbCwgZGFtaXQga2VpbmVyIG1laW50LCBlcyB3YWVyZSBHQU5aIGVybnN0CmdlbWVpbnQgOikqICkKCkljaCBmcmFnZSBtaWNoIGltbWVyIG5vY2gsIHdlciBkaWUgcGFhciBTYW5kYnVyZ2VuIGluIHVuc2VyZW4gV3Vlc3Rlbi0Kc3dpbW1pbmdwb29sIGdlc2V0enQgaGF0IHVuZCBpaG5lbiBhdWNoIG5vY2ggc28gYWxiZXJuZSBOYW1lbiB3aWUKJ0F1cm9yYScgb2RlciAnU3ZvbHZhZXInIGdlZ2ViZW4gaGF0Li4uIGFtIGJlc3RlbiB3aXJkIHdvaGwgc2Vpbiwgd2lyCnZlcmdyYWJlbiBkYXMgR2FuemUgTWlzc2dlc2NoaWNrIHVudGVyIGVpbmVtIGtsZWluZW4gU2Nod2Fkcm9uIFdhbmRlci0KZHVlbmVuIHVuZCB3ZW5kZW4gdW5zIHdpZWRlciBTY2hvZW5lcmVtIHp1IC0gZGVyIFd1ZXN0ZS4KVW5kIFdFTk4gaWhyIHNjaG9uIHVuYmVkaW5ndCBkaWUgSW5zZWxuIGJlaGFsdGVuIHdvbGx0LCBzb2xsdGVuIHdpciBlaW5lClNjaGVpYmUgZGF2b3JtYWNoZW4gdW5kICdLdXJpb3NpdGFldGVuYXF1YXJpdW0nIGRyYW5zY2hyZWliZW4uLi4uOi0pCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBQ0hUVU5HQUNIVFVORyAoTG9jbywgIDMuIEp1bCAxOTk1LCAyMjo1NTo0MSk6CiMhIHJuPURhbmNlciBydD04MDQ4MDMwMjYKU292aWVsZSBXYW5kZXJkdWVuZW4sIHdpZSBEdSBicmF1Y2hzdCwgdW0gaW4gZGVyIE5hZWhlIHZvbiBTdm9sdmFlciBhdWNoIG51cgplaW4gZWluemlnZXMgV3Vlc3RlbnNhbmRrb3JuIGZ1ZXIgZWluZW4gVGF1Y2hlciBmaW5kYmFyIHp1IG1hY2hlbiwgZ2lidCBlcyBpbgpEZWluZW0gU2NobWVsem9mZW4gZG9jaCBuaWNodCBhbm5hZWhlcm5kISBJbW1lcmhpbiBpc3QgZGFzIFdhc3NlciBiZWkgdW5zIGVpbgpwYWFyIHRhdXNlbmQgTWV0ZXIgdGllZiwgdW5kIHRyb3R6ZGVtIHJhZ3QgbWVpbmUgSW5zZWwgbm9jaCBtYWwgZmFzdCB0YXVzZW5kCm5hY2ggb2JlbiBoZXJhdXMuLi4gd2FzIHNpbmQgZGFnZWdlbiBzY2hvbiBkaWUgbGFlY2hlcmxpY2hlbiBwYWFyIEt1YmlrbWV0ZXIKU2FuZCBlaW5lciBEdWVuZT8KCiAgTG9jbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogQUNIVFVOR0FDSFRVTkcgKENyZWF0aXZlLCAgNC4gSnVsIDE5OTUsIDIwOjQzOjI2KToKIyEgcm49RGFuY2VyIHJ0PTgwNDgwMzAyNgpXQUghISEhISEhIQpEZXIgZ3Jvc3NlIE1laXN0ZXIgRGFuY2VyIGtvbW10IHVuZCBiZXNjaHdlcnQgc2ljaCB1ZWJlciBkaWUKZ2VuaWFsZSB1bmQgdWViZXJhdXMgdG9sbGUgSW5zZWwgS3Jha2F0YXUsIGRpZSBhbGxlcmRpbmdzIGVyc3QgZW50c3RlaGVuCm11c3MhISEKV2VubiBEdSB1ZWJlciBJbnNlbG4gc2NoaW1wZnN0ICgqIHJlendpc2NoZW5kdXJjaGtudWRkZWwgKiksCmRhbm4gc2NoYXUgbWFsIGJlaXplaXRlbiBiZWkgbWlyIHZvcmJlaS4KCkFDSFRVTkcgQUNIVFVORywgZGFzIHdhciBLRUlORSBWb3JhbnplaWdlIDopCldlciBzZWhlci5lbnR3aWNrbHVuZyBuaWNodCBhYmJlc3RlbGx0IGhhdCwgd2Vpc3MgZWggZGF2b24gOikpCgotQ3JlYS0sIGZyZXV0IHNpY2ggc2Nob24gYXVmIHNlaW5lIEluc2VsCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogQUNIVFVOR0FDSFRVTkcgKEFzbW9kaXMsICA1LiBKdWwgMTk5NSwgMDQ6MjE6MjEpOgojISBybj1DcmVhdGl2ZSBydD04MDQ4ODM0MDYKS3Jha2F0YXU/IGdpYnRzIGRpZSBJbnNlbCBuaWNodCBzY2hvbj8gKGluIFJMKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogQUNIVFVOR0FDSFRVTkcgKFphcmRveiwgIDUuIEp1bCAxOTk1LCAwODo1NDo1NSk6CiMhIHJuPUFzbW9kaXMgcnQ9ODA0OTEwODgxCkRpZSBJbnNlbCBnYWJzIG1hbCwgYmlzIHNpZSBleHBsb2RpZXJ0ZS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEFDSFRVTkdBQ0hUVU5HIChCYWJvb24sICA1LiBKdWwgMTk5NSwgMDk6MTA6MTIpOgojISBybj1aYXJkb3ogcnQ9ODA0OTI3Mjk1CkRpZSBJbnNlbCBnaWJ0cyBhdWNoIGhldXRlIG5vY2gsIG51ciBuaWNodCBtZWhyIGluIGVpbmVtIFN0dWVjay4gOi0pCkRpZSBJbnNlbCgtZ3J1cHBlKSBpc3QgYXVjaCBoZXV0ZSBub2NoIHNlaHIgYWt0aXYuIE11c3MgZGFtYWxzIGFubm8gMTg4MwpuZSBHZW5lcmFscHJvYmUgZnVlciBkZW4gV2VsdHVudGVyZ2FuZyBnZXdlc2VuIHNlaW4uIFplaG50YXVzZW5kZSB2b24gVG90ZW4sCmRpZSwgYW4gZGVyIGVuZ3N0ZW4gU3RlbGxlIDIya20gYnJlaXRlLCBTdW5kYXN0cmFzc2UoPykgbWl0IDItNCBNZXRlcgpkaWNrZW4gQmltc3N0ZWluc2NoaWNodGVuIHZlcnN0b3BmdCB1bmQgRmx1dHdlbGxlbiBiaXMgenUgNDEgbSBIb2VoZS4KU3RlaHQgYWxsZXMgaW4gZGVyIGFrdHVlbGxlbiBBdXNnYWJlIHZvbiBHZW8uCgpCYWJvb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBBQ0hUVU5HQUNIVFVORyAoQ3JlYXRpdmUsICA1LiBKdWwgMTk5NSwgMTM6MTU6MzApOgojISBybj1Bc21vZGlzIHJ0PTgwNDkxMDg4MQoKSG0sIGhhdHRlIGRlbiBBcnRpa2VsIHNjaG9uIGZlcnRpZyAoZGVuIHJlcGx5KSwgZGFubiB3ZWl0ZXJnZWxlc2VuLApkYW5uIHdhciBkaWUgUnVicmlrIHZvbGwgOigKCkFsc28uIFdpZSBtZWluZSBWb3JyZWRuZXIgc2Nob24gc2FndGVuLCBkaWUgSW5zZWwKZ2lidCBlcyBzY2hvbiAod2VubiBhdWNoIGluIG1laHJlcmVuIEVpbnplbHRlaWxlbi4gOikgKQpBbGxlcmRpbmdzIHdhciBkaWUgVm9ybGFnZSB6dSBtZWluZXIgSWRlZSBIb2hsYmVpbidzIEhleGVyIChCdWNoIDQgb2RlciBzbykKU2NoZWluYmFyIGhhdCBhdWNoIEVSIFJMLVZvcmxhZ2VuIGJlbnV0enQgOikKRnJldXQgZXVjaCBkcmF1ZiwgaWNoIHR1J3MgYXVjaC4KVW5kIGRlbiBOYW1lbiB3ZXJkJyBpY2ggd29obCBub2NoIGJlbnV0emVuIGR1ZXJmZW4sIG9kZXI/ClNzYWRkaXRzIHdpcmQgZXMgYXVmIGRlciBlY2h0ZW4gSW5zZWwgbmFlbWxpY2gga2F1bSBnZWJlbiwgZGVua2UgaWNoIG1hbC4KOikpKQoKLUNyZWEtLCBoYXQgYmxvc3Mgbm9jaCBMYXZhc3RlaW5lIGltIEtvcGYKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogQUNIVFVOR0FDSFRVTkcgKEFzbW9kaXMsICA2LiBKdWwgMTk5NSwgMTE6Mjg6NDIpOgojISBybj1DcmVhdGl2ZSBydD04MDQ5NDI5MzAKQWNoLCBkaWUgSW5zZWxuIGthbm4gbWFuIG5vdGZhbGxzIG5vY2ggZnVlciBBdG9tYm9tYmVudGVzdGUgZ2VicmF1Y2hlbiwgc28KbnV0emxvcyBzaW5kIHNpZSBnYXIgbmljaHQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBBQ0hUVU5HQUNIVFVORyAoQXNtb2RpcywgIDYuIEp1bCAxOTk1LCAxMToyOTowMyk6CiMhIHJuPUFzbW9kaXMgcnQ9ODA1MDIyOTIyClNvbGwgbmF0dWVybGljaCB0ZXN0cyBoZWlzc2VuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTVUNIRSAoR2FyZmllbGQsICA2LiBKdWwgMTk5NSwgMTY6MTQ6NDYpOgoKaGFsbGloYWxsbyB1bmQgc29uc3Rub2Nod28hCgogICAgICAgICAgICAgSCBJIEwgRiBFICEgISAhICEgISAhCgpHYXJmaWVsZCwgMjIsIE5SLCBKYXBhbm9sb2dpZS0gdW5kIFBoaWxvc29waGllc3R1ZGVudGluLAoKc3VjaHQgdW5iZWRpbmd0IGVpbgoKCiAgICAgIFogSSBNIE0gRSBSICAgSSBOICAgSCBFIEkgRCBFIEwgQiBFIFIgRyAhICEgISAhICEKCmRhcyBpc3Qgd2ljaHRpZywgd2VpbCBpY2ggdW5iZWRpbmd0IG5hZWhlciBhbiBkYXJtc3RhZHQgd29obmVuCm11c3MgLi4uLiAoZ3VuZHVyIHVuZCBzbyAuLi4uKSB0amEuIGFsc28sIHdlciBoYXQgZWluIGhlcnogdW5kCmhhZWx0IG1hbCBhdWcgdW5kIG9ociBvZmZlbj8KCgpCIEkgVCBUIEUgLCAgIEIgSSBUIFQgRSAhISEhIQoKClZJRUxFTiBEQU5LIQoKZ3J1ZXNzZSB2b24gZ2FyZmllbGQsCmhvZmZlbmQgLi4uLgoqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgRGV1dHNjaGUgV2VsbGUgTmFjaHJpY2h0ZW4gaW4gZGVyIE1QQSAoSGF0ZSwgIDcuIEp1bCAxOTk1LCAyMTo1MzoxMSk6CkRpZSBOYWNocmljaHRlbiBkZXIgRGV1dHNjaGVuIFdlbGxlIHdlcmRlbiBqZXR6dCBuaWNodG1laHIgd2llIGJpc2hlcgpqZWRlIFN0dW5kZSBORVUgZ2Vwb3N0ZXQsIHNvbmRlcm4gaW1tZXIgbnVyIGRhbm4sIHdlbm4gc2llIGF1Y2ggd2lya2xpY2gKTkVVIHNpbmQuIEFsc28gc29sbHRlIGR3bmV3cyBudXIgZWlubWFsIGFtIFRBRyBtaXQgbmV1ZW4gQXJ0aWtlbG4gYXVmd2FydGVuCkRpZSBIZWFkbGluZXMga29tbWVuIHdpZSBiaXNoZXIgd2VpdGVyIHBybyBTdHVuZGUgZWlubWFsIGF1ZiBkZXIgRWJlbmUKTmFjaHJpY2h0ZW4uCkhhdGUuClAuUy4gRGFzIHNvbGx0ZSBkaWUgUnVicmlrIGR3bmV3cyBpbiBkZXIgTVBBIGF0dHJha3RpdmVyIG1hY2hlbiwgZGVua2UgaWNoLgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWmFwIG1pY2ggZG9jaCAoTHdheGFuYSwgMTAuIEp1bCAxOTk1LCAxMjowMTozMik6ClNvLCBkYXMgZ2VodCBhbiBlaW5lbiBNYWdpZXIsIGRlciB3b2hsIGhvZmZlbnRsaWNoIHdlaXNzLCBkYXNzIGVyIGdlbWVpbnQKaXN0OgoKWiBBIFAgICBNIEkgQyBIICBEIE8gQyBIISEhISEKCgpKZXR6dCBoYXN0IGR1IGdlbnVnIFpldWdlbiEgSWNoIGhhYmUgZWlnZW50bGljaCBudXIgMSBCaXR0ZTogSGFsdCBkYW5hY2gKZW5kbGljaCBkaWUgS2xhcHBlLCBkYW5uIGhhc3QgZHUgZGVpbmVuIFNwYXNzIGdlaGFidCB1bmQga2FubnN0IG1pY2ggamEgd29obAppbiBSdWhlIGxhc3NlbiwgbGFuZ3NhbSBrYW5uIGljaHMgbmFlbWxpY2ggbmljaHQgbWVociBob2VyZW4hISEhCgoKVHNjaGF1IEx3YXguLi4gVG9jaHRlciBkZXMtd2FzLXdlaXNzLWljaC13aWV2aWVsdGVuIEhhdXNlcy4uLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFphcCBtaWNoIGRvY2ggKEJvaW5nLCAxMC4gSnVsIDE5OTUsIDEyOjEzOjM1KToKIyEgcm49THdheGFuYSBydD04MDUzNzA0OTIKV2VyIGF1Y2ggaW1tZXIgaGllciBhbmdlc3Byb2NoZW4gaXN0IC4uLiBsYXNzIGVzIGxpZWJlciBtaXQgZGVtIFphcHBlbiAuLi4KICAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVzIHdhciBlaW5tYWwuLi4gKEVuZ3l3dWNrLCAxMC4gSnVsIDE5OTUsIDE0OjM5OjE5KToKRXMgd2FyIGVpbm1hbCBhbSBsZXR6dGVuIEZyZWl0YWcsIGRlbiA3LjcuOTUgaXJnZW5kd2FzIGFtIHNwYWV0ZXJlbiBBYmVuZC4KSmVkZXIgZGVyIGRhIHdhciwgd2lyZCBzaWNoIGFuIGRpZSBEaXNrdXNzaW9uIGF1ZiBBbGxnZW1laW4gbm9jaCBsZWJoYWZ0CmVyaW5uZXJuLiBEZXNoYWxiIG1laW5lIEZyYWdlOiBIYXQgZGEgamVtYW5kIHZpZWxsZWljaHQgZWluIGhhbGJ3ZWdzCnZvbGxzdGFlbmRpZ2VzIExvZz8gRGFzIG11c3MgdW5iZWRpbmd0IGluIG1laW5lIFNhbW1sdW5nLCBSdWJyaWsgIktsZWlub2RpZW4iLgpBbHNvLCBmYWxscyBlcyBkYSBub2NoIHdhcyBnaWJ0OiBVbmJlZGluZ3QgaGVyIHp1IG1pciEKClAuUy46IFphcmRveiwgbWVpbiBMb2cgaXN0IHp3YXIgbmljaHQgdW5iZWRpbmd0IGtvbXBsZXR0LCBhYmVyIERBUyBpc3Qgbm9jaApkcmF1ZiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIHdpZWRlciBtYWwgbmUgU3RhdGlzdGlrIChIYXRlLCAxMC4gSnVsIDE5OTUsIDIwOjE1OjU2KToKCjAwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDQ1IFNwLgowMWggKioqKioqKioqKioqKioqKioqKioqKioqICA0MCBTcC4KMDJoICoqKioqKioqKioqKioqKioqKioqKiogIDM3IFNwLgowM2ggKioqKioqKioqKioqKioqKiogIDI5IFNwLgowNGggKioqKioqKioqKioqKiogIDIzIFNwLgowNWggKioqKioqKioqICAxNiBTcC4KMDZoICoqKioqKiAgMTEgU3AuCjA3aCAqKioqKioqICAxMiBTcC4KMDhoICoqKioqKioqKioqKiAgMjAgU3AuCjA5aCAqKioqKioqKioqKioqKioqKioqKiAgMzMgU3AuCjEwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDUwIFNwLgoxMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNjcgU3AuCjEyaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MiBTcC4KMTNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3NCBTcC4KMTRoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODEgU3AuCjE1aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDg1IFNwLgoxNmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc5IFNwLgoxN2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzIgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MiBTcC4KMTloICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2NCBTcC4KMjBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDUyIFNwLgoyMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDU0IFNwLgoyMmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDcgU3AuCjIzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA0OCBTcC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVybnN0IGdlbWVpbnQgKEplcnJpY28sIDEwLiBKdWwgMTk5NSwgMjA6MjE6NDcpOgpTdWNoZSBNRy1lcmZhaHJlbmVuIFNwaWVsZXIgenVtIGdlbWVpbnNhbWVuIFp0LXN1Y2hlbi4KS2VyemxpY2ggbmV1LWVpbmdlbG9nZ3RlIHgtdGllcyB3ZXJkZW4gYmV2b3J6dWd0LgpCZWxvaG51bmc6IEtudWRkZWxuIG9obmUgRW5kZSwgYmlzIHp1ciBTZWxic3Rsb2VzY2h1bmcuCkVpbiBGcmV1bmRzY2hhZnRzYmFuZCwgc29iYWxkIGljaCAyMCAyMCAyMCAyMCBoYWJlLgoKCkNoaWZmcmU6IEpFUlJJQ08KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFcm5zdCBnZW1laW50IChBc21vZGlzLCAxMC4gSnVsIDE5OTUsIDIwOjMzOjMwKToKIyEgcm49SmVycmljbyBydD04MDU0MDA1MDcKRGllc2UgTmV3YmllcyB3ZXJkZW4gYXVjaCBpbW1lciBkcmVpc3RlciA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFcm5zdCBnZW1laW50IChKZXJyaWNvLCAxMC4gSnVsIDE5OTUsIDIxOjEwOjQ0KToKIyEgcm49QXNtb2RpcyBydD04MDU0MDEyMTAKRHJlaXN0ID8/IFdhcyBpc3QgZGFzID8KQXVzc2VyZGVtIG11c3MgbWFuIGphIHNlaGVuIHdvIG1hbiBibGVpYnQsIHdlbm4gc2Nob24gZGllIEFyZW5hIGdlc2NobG9zc2VuCndpcmQsIGJyYXVjaHQgbWFuIGhhbHQgZWluIHBhYXIgenRzIG1laHIsIHVtIGRpZSBoYWVydGVyZW4gTW9uc3RlciB6dQpwbGFldHRlbi4KV2llIHdhZXJzIG1pdCBlaW5lbSBOUEMgZGVyIG1pY2ggenUgbWVpbmVuIFp0cyBmdWVocnQgPwpEaWVzZSBnYW56ZSBydW1sYXVmZXJlaSBnZWh0IG1pciBsYW5nc2FtIGF1ZiBkZW4ga2VrcywgbWVpc3RlbnMgc2luZApkaWUgWnQtTGlzdGVuIG5pY2h0IGdhbnoga29ycmVrdCwgd2FzIGRpZSBnZW5hdWUgc3ludGF4IGFuZ2VodC4gU293YXMgaXN0CmRvY2ggd2lya2xpY2ggYWVyZ2VybGljaC4gOikKVWVicmlnZW5zLCBhcHJvcG9zIGRyZWlzdCwgaGF0IGplbWFuZCBlaW4gc2tyaXB0IGZ1ZXIgdGludGluKysgZ2VzY2hyaWViZW4sCndlbGNoZXMgZGllIGJpc2hlciBnZWZ1bmRlbmVuIFp0cyBhYmxhZXVmdCA/IFdhZXJlIGRvY2ggbWFsIHdhcyBzaW5udm9sbGVzIDspCgpBbHNvIHdpZWRlciBtYWwgZWluIEFuZ2Vib3QsIGVpbiBGcmV1bmRzY2hhZnRzYmFuZCBmdWVyIGVpbiBadC1zdWNoZSBza3JpcHQKOikKCm5hdHVlcmxpY2ggd2llZGVyIHZvbGwgZXJuc3QgZ2VtZWludCwgZWluaWdlIGdsYXViZW4gaWNoIHNwYXNzZSBoaWVyLCBhYmVyCmRlbSwgc28gbGFzc3QgZXVjaCB2ZXJzaWNoZXJuLCBpc3QgbmljaHQgc28uCgoKSmVycmljbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRXJuc3QgZ2VtZWludCAoQXNtb2RpcywgMTAuIEp1bCAxOTk1LCAyMTozMDo0NCk6CiMhIHJuPUplcnJpY28gcnQ9ODA1NDAzNDQ0CkhtbSwgd2FzIGhhdCBkaWUgQXJlbmEgbWl0IGRlbiBadHMgenUgdHVuID8/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRXJuc3QgZ2VtZWludCAoRW5neXd1Y2ssIDEwLiBKdWwgMTk5NSwgMjE6Mzc6NTUpOgojISBybj1Bc21vZGlzIHJ0PTgwNTQwNDY0NApBc21vLCBrZW5uc3QgRHUgZXR3YSBkZW4gWlQgaW4gZGVyIEFyZW5hIG5pY2h0Pz8/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEVybnN0IGdlbWVpbnQgKER1cmlhbiwgMTEuIEp1bCAxOTk1LCAxNTowMzo1MSk6CiMhIHJuPUVuZ3l3dWNrIHJ0PTgwNTQwNTA3NQpBZWgsIFNla3VuZGUsIGRlbiBrZW5uZSBpY2ggamEgbm9jaCBuaWNodG1hbCAuLi4ga2FubiBtaWNoIG1hbCBlaW5lcgphdWZrbGFlcmVuPz8KCi0gRHVyaWFuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VyIHdvbGx0ZSBuaWNodCBzY2hvbiBpbW1lciBtYWwuLi4gKEhhcmRpbCwgMTMuIEp1bCAxOTk1LCAxMToxMDo1Myk6CgpXZXIgd29sbHRlIG5pY2h0IHNjaG9uIGltbWVyIG1hbCAuLi4gZWluZW4gRHdpZ2h0IHVuZCBlaW5lbiBIYXJkaWwgYXVmIGZyZWllcgpXaWxkYmFobiBiZW9iYWNodGVuIGtvZW5uZW4gPyBVbmQgZWluZW4gRnJhbnggZGF6dT8KQW0gU2Ftc3RhZyBhYmVuZCBiaWV0ZXQgc2ljaCBmdWVyIGFsbGUgTXVlbnN0ZXJhbmVyIGRhenUgbWFsIHdpZWRlciBkaWUKTW9lZ2xpY2hrZWl0LCBkZW5uIHdpZSBhbGxlIEphaHJlIHdpZWRlciBpc3QgZWluIEVudHNjaGVpZHVuZ3NzcGllbCB6d2lzY2hlbgpkZW4gVW5pIE11ZW5zdGVyIFJvYWRydW5uZXJzIHVuZCBkZW4gVW5pIERvcnRtdW5kIERyYWdvbnMgbm90d2VuZGlnLCB1bSB6dQplbnRzY2hlaWRlbiwgd2VyIGRlbm4gbnVuIHp1ciBFbmRydW5kZSBkZXIgZ2VybWFuIFNvZnRiYWxsIENvbGxlZ2UgU2VyaWVzCmZhaHJlbiBkYXJmLiA6LSkKQWxzbywgU2Ftc3RhZyBhYmVuZCBhdWYgZGVtIFVuaS1TcG9ydHBsYXR6IE11ZW5zdGVyLCBFaW50cml0dCBmcmVpIDotKQoKKHVuZCBoaWVyLCBudXIgZnVlciBUcnlmYW4sIG5vY2ggZWluIEdPIERSQUdPTlMgR08hKQoKaS5BLgoKCUhhcmRpbCAoYXVzbmFobXN3ZWlzZSBkYW5uIG1hbCBvaG5lIFJvbGxzdHVobCkgZDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlciB3b2xsdGUgbmljaHQgc2Nob24gaW1tZXIgbWFsLi4uIChEd2lnaHQsIDEzLiBKdWwgMTk5NSwgMTM6MzI6MDIpOgojISBybj1IYXJkaWwgcnQ9ODA1NjI2NjUzCkhvbGxhIQoKT2IgaWNoIGRhc3MgZ3V0IGZpbmRlPyBXaWxsIG1pY2ggamEgbmljaHQgdm9yIGFsbGVuIGJsYW1pZXJlbi4uOikKCkR3aWdodCBpc3QgaW0gTW9tZW50IGV0d2FzICg/ISkgYXVzc2VyIEZvcm0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlLi4uIChIaWdobGFuZGVyLCAxMy4gSnVsIDE5OTUsIDE0OjU0OjM5KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL3wKICAgICAgL3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIHwKICAgICAvIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gIHwKICAgIC8gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgIHwKICAgLyAgIHxfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vICAgIHwKICB8ICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgLwogIHwgIC8gICAgICAgICAgICAgICAgICAgIFcgQSBOIFQgRSBEICAgICAgICAgICAgICAgICAgICAgICAgfCAgIC8KICB8IC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIC8KICB8LyAgICAgICBTY2hsYWZzdGF0dCBmdWVyIEZldGUgRnIvU28sIHNvIHdpZSdzIGF1c3NpZWh0ICAgIHwgL3wKICAvX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vIHwKICAgICB8IHwgLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8ICAtLS0KICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8CiAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAogICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwKICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8CiAgICAgLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLQoKICAgICAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN1Y2hlLi4uIChEd2lnaHQsIDEzLiBKdWwgMTk5NSwgMTU6MDE6NDUpOgojISBybj1IaWdobGFuZGVyIHJ0PTgwNTY0MDA3OQpPaCBnZWh0cyBzY2hvbiBsb3MgbWl0IGRlciBaaW1tZXJzdWNoZT8gOikKTmEgZ3V0OiBXbyBrYW5uIGljaCBiaXR0ZSwgYml0dGUgaW0gTm90ZmFsbCB1bnRlcmtvbW1lbj8KQmVpIGd1dGVtIFdldHRlciBzY2hsYWYgaWNoIGFtIFNlZSwgYWxzbyBrZWluZSBBbmdzdCwgaXN0IHdpcmtsaWNoIG51ciBmdWVyCmRlbiBGYWxsIGRlciBGYWVsbGUuLi4KClZpZWxlbiBEYW5rIGltIFZvcmF1cwoKICAgICAgICAgICAgRHdpZ2h0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTpLZXR0ZW5icmllZiBnZWdlbiBBdG9td2FmZmVudGVzdCAoS2V0b3MsIDEzLiBKdWwgMTk5NSwgMTU6NDg6MjApOgpJY2ggaGFiZSBkZW4ga2V0dGVuYnJpZWYgd2llZGVyIGF1cyBkZXIgUnVicmlrIGdlbG9lc2NodC4KV2VyIGluIGhhYmVuIG1vZWNodGUga2FubiBzaWNoIGFuIG1pY2ggd2VuZGVuLgoKRXMgZ2lidCBhdWNoIGVpbmUgV1dXLVNlaXRlOiBodHRwOi8vd3d3LmljZXBwLnMudS10b2t5by5hYy5qcAoKLSBLZXRvcyAtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6S2V0dGVuYnJpZWYgZ2VnZW4gQXRvbXdhZmZlbnRlc3QgKFlhbnRybywgMTMuIEp1bCAxOTk1LCAxNTo1MDo1Nyk6CiMhIHJuPUtldG9zIHJ0PTgwNTY0MzMwMAoKCmljaCBoYWIgZGllc2VuIGtldHRlbmJyaWVmIGF1Y2ggaGllciBpbiBtZWluZXIgbXVkbWFpbC4uIHdlciBpaG4gaGFiZW4gd2lsbCwKZGVyIHNvbGwgbWlyIHNlaW5lbiBlbWFpbGFkcmVzc2UgQVVTU0VSSEFMQiBkZXMgTXVkcyBtYWlsZW4gdW5kIGljaCBzY2hpY2tlIGVzCnJhdXMKCllhbnRybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTpLZXR0ZW5icmllZiBnZWdlbiBBdG9td2FmZmVudGVzdCAoTWF0ZWVzZSwgMTMuIEp1bCAxOTk1LCAxNTo1OTozMyk6CiMhIHJuPVlhbnRybyBydD04MDU2NDM0NTcKRGllIEluaXRpYXRvcmVuIGRlcyBLZXR0ZW5icmllZmVzIGJpdHRlbiBkYXJ1bSwgZGllc2VuIG5pY2h0IG1laHIKd2VpdGVyIHp1IHZlcmJyZWl0ZW46Ci0tLQogIEZpcnN0IG9mIGFsbCwgSSBoYXZlIHRvIGRlZXBseSBhcG9sb2dpemUgZXZlcnlvbmUgZm9yIG15IGhhdmluZwpzdGFydGVkIGEgY2hhaW4gbGV0dGVyLiBUaGFuayB5b3UgdmVyeSBtdWNoIGZvciB0aG9zZSBvZiB5b3Ugd2hvCmhhdmUgcG9pbnRlZCBvdXQgdGhlIHRyb3VibGVzb21lbmVzcyBhYm91dCB0aGUgY2hhaW4gbGV0dGVyLgpJIGhhdmUgZGVjaWRlZCB0byBzdG9wIGNvbGxlY3Rpbmcgc2lnbmF0dXJlcyBieSB1c2luZyBjaGFpbiBsZXR0ZXIsCihvZmNvdXJzZSBJIHdpbGwgY29sbGVjdCB0aGUgbmFtZXMgYWxyZWFkeSBzaWduZWQgb24gaXQpClsuLi5dCiAgSWYgeW91IGhhdmVuJ3Qgc2VudCBhIGNvcHkgb2YgaXQgdG8gYW55b25lIGFuZCBzdGlsbCBoYXZlIHRoZQpjb3B5IGluIHlvdXIgaGFuZCwgcGxlYXNlIHNlbmQgdGhlIGxpc3QgYmFjayB0byBtZS4gTXkgZS1tYWlsIGFkZHJlc3MgaXMKCmtlc2hpQHV0aWNlYWl4MS5pY2VwcC5zLnUtdG9reW8uYWMuanAKCkRvbid0IGZvcmdldCB0byBhZGQgeW91ciBuYW1lIG9uIHRoZSBsaXN0IGlmIHlvdSBkbyB0aGluawp0aGUgRnJlbmNoIGdvdmVybm1lbnQsIG9yIGFueSBvdGhlciBncm91cCBzaG91bGQgbm90IGV4ZWN1dGUKbnVjbGVhciB0ZXN0cy4KLS0tCiAtLSBNYXRlZXNlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnRlcm5ldCAtIG51ciBQb3JubyB1bmQgTmF6aXM/IChIaWdobGFuZGVyLCAxMy4gSnVsIDE5OTUsIDE2OjA2OjE3KToKV2VyIHNpY2ggZnVlciBzb2xjaGUgU2FjaGVuIGludGVyZXNzaWVydAooZXMgd2lyZCBqYSBpbW1lciBnZXJuZSBnZXNjaHJpZWVuLCBkYXMgSW50ZXJuZXQgd2FlcmUgdm9sbGVyIFBvcm5vKQosIGRlciBzb2xsdGUgc2ljaCBtYWwgaHR0cDovL3d3dy5ob3R3aXJlZC5jb20vc3BlY2lhbC9wb3Juc2NhcmUvCmFuc2VoZW4uIElzdCBlaW4gYmlzc2NoZW4gbGFuZ3NhbSwgYWJlciBpbnRlcmVzc2FudC4KICBIaWdobGFuZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZXJuZXQgLSBudXIgUG9ybm8gdW5kIE5hemlzPyAoUm9jaHVzLCAxMy4gSnVsIDE5OTUsIDE2OjE2OjIxKToKIyEgcm49SGlnaGxhbmRlciBydD04MDU2NDQzNzcKQXVzIGFrdHVlbGxlbSBBbmxhc3M6CkluIGRlLnNvYy5uZXR6d2VzZW4gZXJzY2hpZW4gaGV1dGUgZGllIE1lbGR1bmcsIGRhc3MKZGVyIENEQSAoQ29tbXVuaWNhdGlvbiBEZWNlbnkgQWN0KSB2b20gSG91c2UgYWJnZWxlaG50IHd1cmRlLgpadXIgWnV2ZXJsYWVzc2lna2VpdCBkaWVzZXIgQW5nYWJlIGthbm4gaWNoIGplZG9jaCBuaWNodHMgc2FnZW4gLSBtaWNoCnd1bmRlcnQgZXMsIGRhc3MgaW4gY29tcC5vcmcuZWZmLnRhbGsgbm9jaCBuaWNodHMgZGFydWViZXIgZ2VzYWd0IHd1cmRlLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZXJuZXQgLSBudXIgUG9ybm8gdW5kIE5hemlzPyAoSGlnaGxhbmRlciwgMTMuIEp1bCAxOTk1LCAxNjoxOTowMSk6CiMhIHJuPUhpZ2hsYW5kZXIgcnQ9ODA1NjQ0Mzc3CkhtLCBpY2ggc2VoZSwgZGFzIHBvc3Rpbmcgd2FyIGV0d2FzIHVua2xhci4KS2xhcnRleHQ6IEluIGRlciBUaW1lIHdhciBlaW4gQXJ0aWtlbCBpbSB1ZWJsaWNoZW4gU3RpbCB1ZWJlciBQb3JubyBpbQpJbnRlcm5ldCwgYmFzaWVyZW5kIGF1ZiBlaW5lciBTdHVkaWUgZWluZXMgYW1lcmlrLiBTdHVkaXMuCkRpZSBTZWl0ZSBpc3Qgc296dXNhZ2VuIGRlciBHZWdlbmFuZ3JpZmYgZGVzIE5ldHplcywKYWJlciBhdWYgcXVhbGlmaXppZXJ0ZSBXZWlzZSwgc292aWVsIGljaCBiaXNoZXIKZ2VzZWhlbiBoYWIuCiAgIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTpLZXR0ZW5icmllZiBnZWdlbiBBdG9td2FmZmVudGVzdCAoSGF0ZSwgMTMuIEp1bCAxOTk1LCAxNjoyODo1NCk6CiMhIHJuPVlhbnRybyBydD04MDU2NDM0NTcKRGllIFNhY2hlIG1pdCBkZW0gS2V0dGVuYnJpZWYgaXN0IGVoZXIgVmVyc2NobXV0enVuZyEKV2VyIHdpcmtsaWNoIGhlbGZlbiB3aWxsIHNvbGx0ZSBzaWNoIG1hbCBkaWUgR3JlZW5wZWFjZSBXV1cgU2VpdGUgYW5zZWhlbjoKaHR0cDovL3d3dy5ncmVlbnBlYWNlLm9yZy8KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlaGVydHJlZmYgYmVpIGRlciBIeWRyYSBhYiAyMy4zMCAoS2hpZGFyLCAxNS4gSnVsIDE5OTUsIDE2OjM3OjU2KToKU28sIGljaCBoYWIgbWFsIGdlbnVlZ2VuZCBNdW5pdGlvbiBmdWVyIGRpZSBIeWRyYSBnZXNhbW1lbHQuIERpZSBuZWNraWdlbgpzYWNoZW4gbGllZ2VuIGluIGRlciBLdWdlbCBpbiBtZWluZW0gSGF1cyAodm9uIGRlciBSZXR0dW5nc3N0YXRpb24gNXggdSwgMXgKbykuIERhbWl0IGF1Y2ggd2VubiBpY2ggbmljaHQgZGEgYmluIGVpbiBTZWhlcnRydXBwIGxvc3ppZWhlbiBrYW5uLCBoYWIgaWNoCmZvbGdlbmRlbiBQZXJzb25lbiBlcmxhdWJ0LCBtZWluZSBLdWdlbCBhdWZ6dXNjaGxpZXNzZW46IGFsbGUgU2VoZXIgPj0gTGV2ZWwKMjksIEFydHksIEJpYm8sIEJyaXQsIENyb2xsYSwgTHdheGFuYSwgUm9hZHJ1bm5lciwgWmVwaHlyLCBGeXQuIFplaWd0IG1hbCBkZXIKSHlkcmEsIHdvcyBsYW5nZ2VodCwgd2VubiBzaWUgYWIgMjMuMzAgd2llZGVyIGF1ZmtyZXV6dCEgKGJpbm5lbiBkZXIgbmFlY2hzdGVuCjEyIGgsIGFsc28gYmlzIDExLjMwIG1vcmdlbikuCktoaWRhciwgZGVyIG1laW50LCBkYXNzIG1hbiBnZWdlbiBkaWUgSHlkcmEgZXR3YXMgaGFlcnRlcmUgTWl0dGVsIGFscwpTY2h3ZXJ0ZXIgZWluc2V0emVuIHNvbGx0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTZWhlcnRyZWZmIGJlaSBkZXIgSHlkcmEgYWIgMjMuMzAgKENhcmFkaHJhcywgMTYuIEp1bCAxOTk1LCAxNTo0MTozNyk6CiMhIHJuPUtoaWRhciBydD04MDU4MTkwNzYKU2VpdGhlciBpc3Qgc2llIHNvd2llc28gc2Nob24gd2llZGVyIDIgbWFsIGdlc3RvcmJlbiwgd2VubiBtaWNoIG5pY2h0CmFsbGVzIHRhZXVzY2h0LiA6KSBFaW5tYWwgdm9uIEFzbW9kaW5hLCBoZXV0ZSB2b24gTm9zdHJhZGFtdXMuCgonTmF0dWVybGljaCcgYnJhdiBpbiBadXNhbW1lbmFyYmVpdCBtZWhyZXJlciBTZWhlciwgZGFtaXQgdW5zZXJlIE1hZ2dpZQptaXQgdW5zIHp1ZnJpZWRlbiBzaW5kLiA6LSkKQWNoIHVlYnJpZ2VuczoKQmVpbSBuYWVjaHN0ZW4gTWFsLCB3ZW5uIHdpciB3aWVkZXIgc28gdmllbGUgc2luZCwgd29sbGVuIHdpciBudXIgQmFlbGxlCnVuZCBGbGFtbWVua3VnZWxuIGJlbnV0emVuLCB1bSBkaWUgS29lcGZlIHdlZ3p1a3JpZWdlbiB1bmQgbmljaHQgdm9uCmFlaCBmdWVyIGlocmVuIEtvZXJwZXIgc2VsYnN0ISBEZW4gbnVyIG1pdCByZWluZW4gS2FyYXRla2EsIEJ1bW1lcmFuZwpiencgQWJlbnRldXJlci1NaXR0ZWxuLgoKICAgICAgdW5kIHRzY2h1ZXNzICAgICAgICAgIENhcmFkaHJhcyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLm1hbiBnb2VubnQgc2ljaCBqYSBzb25zdCBuaXghIChSdW1hdGEsIDE3LiBKdWwgMTk5NSwgMTA6NDI6MTcpOgpbVmVybGVndCB2b24gYWxsZ2VtZWluZXMsIFBhdWxlLCAxMy4gSnVsIDE5OTUsIDE3OjU1OjEzXToKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpIYWxsYWxpIGlociBEYWhlaW1nZWJsaWViZW5lbiwKCkljaCBtb2VjaHRlIG1pY2ggaGllciwgaGV1dGUgdW5kIGFuIGRpZXNlciBTdGVsbGUgZXJzdCBlaW5tYWwgdmVyYWJzY2hpZWRlbi4KTWljaCBoYXQgZGFzIGhhcnRlIExvcyBlaW5lcyBTb21tZXJ1cmxhdWJzIGdldHJvZmZlbi4KQXVzIGRpZXNlbSBHcnVuZGUgbXVzcyBpY2ggbWljaCBsZWlkZXIgZnVlciBkaWUgbmFlY2hzdGVuIDUgV29jaGVuIGF1cyBkZW0KTVVECnp1cnVlY2t6aWVoZW4uIExlaWRlciBsaWVzcyBlcyBzaWNoIG5pY2h0IGVpbnJpY2h0ZW4sIGluIEthbGlmb3JuaWVuL1VTQSBlaW4KV29obm1vYmlsIG1pdCBJbnRlcm5ldHp1Z2FuZyB6dSBidWNoZW4uIFNvIHdlcmRlIGljaCwgd29obCBvZGVyIHVlYmVsIGJpcwpNaXR0ZQpBdWd1c3QgbmljaHQgbWVociBoaWVyIGluIEVyc2NoZWludW5nIHRyZXRlbi4KCkljaCB3dWVuc2NoZSBFdWNoIG5vY2ggdmllbCBTcGFzcy4gbGFzc3QgRXVjaCBkaWUgU2VtZXN0ZXJmZXJpZW4gbmljaHQgenUKbGFuZyB3ZXJkZW4KdW5kIHZvciBhbGxlbiBEaW5nZW46IEhvaGx0IEV1Y2gga2VpbmVuIFNvbm5lbmJyYW5kISA6KQoKYmlzIGRlbm5lZGFubgoKQ2lhbwoKUGF1bGUKKE1vZWNodGVnZXJubWFnaWVyLCBTSU1TT04tRmFocmVyIHVuZCBTb25uZW5hbmJldGVyKQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnx0aGlzIG1hc3NhZ2UgaXMgc3BvbnNvcmVkIGJ5Ogp8ICAgICAgICAgICAgICAgICB8IF9fX18gIHwgICB8CnwgICAgICAgICAgICAgICAgIHwgICB8ICAgfCAgIHwKfCAgICAgICAgICAgICAgICAgfCAgIHwgICB8ICAgfAp8ICAgICAgICAgICAgICAgICB8X18gfCAgIHxfX198ICB1bmQgZGVtIEFEQUMuCnwgRWluZW4gZ3Jvc3NlcyBEYW5rZXNjaG9lbiBhdWNoIGRlciBMdWZ0aGFuc2EsIGRlbSBIb2xseWRheSBJbiB1bmQgQlVSR0VSCktJTkcKfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NobGFmc3RhdHQgZnVlciBBcmFueWEgKEFyYW55YSwgMTcuIEp1bCAxOTk1LCAxNDo0NzoyMyk6ClRqYSwgd2llIGVzIHNvIGF1c3NpZWh0LCBicmF1Y2ggaWNoIGF1Y2ggbm9jaCBzbyB6d2VpIFF1YWRyYXRtZXRlciwgdW0gbWVpLQpuZW4gS29lcnBlciBkYXJhdWYgenVyIE5hY2h0IG9kZXIgenVtIGZydWVoZW4gTW9yZ2VuIHp1IGJldHRlbi4gRWluZW4gU2NobGFmLQpzYWNrIHdlcmRlIGljaCBtaXRicmluZ2VuIHVuZCBpY2gga2FubiBhdWNoIGV2dGwuIGRyYXVzc2VuIHNjaGxhZmVuLCBudXIgYmVpClJlZ2VuIGlzdCBkYXMgc28gbmUgU2FjaGUuCkljaCBiaW4gYWIgU29ubnRhZyBuaWNodCBtZWhyIGFucyBJbnRlcm5ldCBhbmdlc2NobG9zc2VuLCBkZXNoYWxiOgpNYWlsIGJpcyBzcGFldGFldGVzdGVucyBGcmVpdGFnLCBUZWxlZm9ubnVtbWVyOiAwNzYxLzI3NjIwNSAoWmltbWVyIDUxNiB2ZXItCmxhbmdlbikgYmlzIHNvIFNvbm50YWdtaXR0YWcgb2RlciBlaW5mYWNoIHdhcnRlbiwgYmlzIGljaCBpbiBNUyBhdWZrcmV1emUgdW5kCm1pciBkYW5uIG1laW5lbiBTY2hsYWZwbGF0eiB6dXdlaXNlbi4KQXVmIGRpZSBzcHJpY2h3b2VydGxpY2hlIG11ZW5zdGVyYW5lciBGcmV1bmRsaWNoa2VpdCBob2ZmZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIE1HIEZUUCBTZXJ2ZXIgKEhhdGUsIDE5LiBKdWwgMTk5NSwgMTA6NDQ6MTgpOgpJY2ggaGFiZSBlaW4gYmlzY2hlbiBhdWYgZGVtIE1HIEZUUCBTZXJ2ZXIgYXVmZ2VyYWV1bXQuCkJlc29uZGVycyBkZW4gTWFnaWVybiBtb2VjaHRlIGljaCBhbnMgSGVyeiBsZWdlbiwgZGFzcyBzaWUgYml0dGUKbmljaHQgaXJnZW5kd28gaWhyIHpldWcgaGlubGVnZW4gdW5kIGF1Y2ggbmljaHQgZWluZmFjaCBzbyBtYWwgZWluCnBhYXIgRGlyZWN0b3JpZXMgZXJ6ZXVnZW4uIERhcyBtZWlzdGUgdm9uIGRlbSB3YXMgaWNoIGRhIGdlbG9lc2NodCBoYWJlCm11c3MgTklDSFQgdWViZXIgZGllc2UgRGlyZWN0b3J5IGxhdWZlbi4KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRyYWJiaSB6dSB2ZXJzY2hlbmtlbiAoQWduZXRoYSwgMTkuIEp1bCAxOTk1LCAxMzowNDozOCk6CkFsc28gaWNoIGhhYiBlaW5lbiBUcmFiYW50IGFienVnZWJlbi4KRXIgaGF0IHp3YXIga2VpbmVuIFRVRVYsIGFiZXIgbWFuIGthbm4gaWhuIHJlcGFyaWVyZW4sIHVuZCBrcmVpZ3QgZGFubiBUVUVWLgpEaWUgRXJzYXR6dGVpbGUgZ2lidHMgZ3JhdGlzIGRhenUuCkFuZGVyZSBNT2VnbGljaGtlaXQgaXN0IDMwMCBtYXJrIHp1IHphaGxlbiB1bmQgYWxsZXMgZWluZ2ViYXV0IHVuZCByZXBhcmllcnQKenUga3JpZWdlbiwgaW5jbCwgVFVFViB1bmQgQVNVIQoKRWluIHJhZGxhZ2VyIGlzdCBhdXN6dXdlY2hzZWxuLgoKQWNoIGphLiBEYXMgRGluZyBzdGVoIGJlaSBtZWluZW4gRWx0ZXJuIGluIEVpc2VuYmVyZyAoVGh1ZXJpbmdlbikuCgpGYWxscyBJbnRlcmVzc2UgZS1tYWlsIGFuOgptaWNoYWVsLmNsYXVzQHN0dWRlbnQudW5pLXR1ZWJpbmdlbi5kZQoKb2RlciB0ZWZsb246ICgwNzA3MSkgNDM2MjEgIC0gU2FzY2hhIHZlcmxhbmdlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2F0IHdlaXNzIGljaC4uLiAoS290emJyb2NrZW4sIDIwLiBKdWwgMTk5NSwgMTM6MjU6MjYpOgpzbywgd2VubnMgamVtYW5kZW4gaW50ZXJlc3NpZXJ0OgpiaW4gbmFlY2hzdGUgd29jaGUgaW0gdXJsYXViIChiZXJsaW4pCmFiIGRlbSBhZWgsIDMwIGFiZXIgbmF0dWVybGljaCB3aWVkZXIgYW0gc3RhcnQuCmJpcyBkZW5uZSAsIEtvdHppLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXNub2dnb2QgYnJhdWNodCB3YXMgenVtIFNjaGxhZmVuLiAoSXNub2dvb2QsIDIzLiBKdWwgMTk5NSwgMTc6MTg6MjEpOgpIYXQgaXJnZW5kamVtYW5kIGluIE11ZW5zdGVyIG5vY2ggZWluIFBsYWV0emNoZW4gZnVlciBtaWNoIHVuZCBtZWluZW4KU2NobGFmc2FjayB1ZWJlcj8gSWNoIHdhZXJlIGRlbS9kZXIgamVuaWdlbiBzZWhyIHZlcmJ1bmRlbi4KSXNubwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGxhdHogZnVlciBQZW5udHVldGUgKFp1ZXJpbGV1LCAyNC4gSnVsIDE5OTUsIDAxOjQxOjEzKToKU2FsaSB6YWVtZSwKTnVuLCBmdWVyIGRlbiBmYWxsIGRhcyBpY2gga29tbWVuIGthbm4gd2FzIGljaCBqYSBzZWhyIGhvZmZlLiBOdXIgenVyemVpdAp3ZWNoc2VsdCBtZWluIEFyYmVpdHNvcnQgdW5kIGljaCB3ZWlzcyBuaWNodCB3byB1bmQgd2FubiBpY2ggaW0gQXVndXN0CkFyYmVpdGVuIG11c3MuIEFsc28gbmVobWVuIHdpciBhbiBpY2gga29tbWUgKERhcyB0dSBpY2ggd2VuaWdzdGVucyA9OikgKSBBbHNvCmRhbm4gc3VjaCBpY2ggZnVlciBtZWluZSBQZW5udHVldGUgdW5kIG1pY2ggZWluIGtsZWluZXMgU2NobGFmcGxhdHpjaGVuIGJlaQpjb29sZW4gTGV1dGVuIGluIE11ZW5zdGVyIHVuZCB1bWdlYnVuZyA9OikuIE51biwgYWVtbSB3ZW5uIHdlciBub2NoIHdhcyB6dQpyYXVjaGVuIGhhdCB3ZXIgaWNoIGRhbm4gc29nYXIgbm9jaCByZXN0bG9zIGdsdWVja2xpY2ggYWJlciBpY2gga2FubiBhdWNoIG9obmUKbGViZW4uIEFjaCBub2Nod2FzIGljaCB3dWVyZGUgc2VsYnN0dmVyc3RhZW5kbGljaCBhdWNoIGVpbiBhdWNoIGV0d2FzIHphaGxlbgp3ZW5ucyBtZWluIFBvcnRvbWFuYWllIG5pY2h0IGdsZWljaCBzcHJlbmd0ID06KQoKQWxzbyBNYWlsIGhpZXIgb2RlcjogT3R0IEFsYWluCiAgICAgICAgICAgICAgICAgICAgIEV1bGVud2VnIDE5CiAgICAgICAgICAgICAgICAgICAgICBDaC04MDQ4IFp1ZXJpY2gKICAgICAgICAgICAgICAgICAgICAgIFRlbF9QOiAwNDEvMDEvNDMxODMwOQogICAgICAgICAgICAgICAgICAgICAgVGVsX0c6IDA1MS8wNTIvMzUyMDIxKDIyLDIzKQoKVHNjaHVlc3NpIFp1ZXJpbGV1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6LSggKENyZWF0aXZlLCAyNi4gSnVsIDE5OTUsIDIwOjQxOjI1KToKClNvLCBpY2ggbXVzcyBtYWwgd2FzIGFsbGVuIG1pdHRlaWxlbi4uLgpLYW5uIHNlaW4sIGRhc3MgaWNoIGluIGRlbiBuZXh0ZW4gcGFhciBXb2NoZW4gd2VuaWdlciBpbSBNRyBzZWluCndlcmRlLgpBYiBtb3JnZW4gd2VyZGUgaWNoIG5hZW1saWNoIHp1IGFyYmVpdGVuIGJlZ2lubmVuLCBkYSBtdXNzIGljaCBiYWxkIGF1ZnN0ZWhlbgp1bmQKaGFiIHNlbHRlbmVyIFplaXQsIGFiZW5kcyBpbnMgTVVEIHJlaW56dWt1Y2tlbi4uLgpBbSBXb2NoZW5lbmRlIHdlcmRlIGljaCBkYWZ1ZXIgbmFjaCB3aWUgdm9yIGFiIHVuZCB6dSBkYSBzZWluLgpXZWl0ZXJzIGdlaHQgZXMgbWlyIGltIE1vbWVudCBhbGxlcyBhbmRyZSBhbHMgZ3V0IC0gc28gd2llIGVzIGF1c3NpZWh0LCB3aXJkCmRlciBadXN0YW5kIG5vY2ggZWluZSBXZWlsZSBhbmRhdWVybi4KTnVuIGphLCBibG9zcyBhbHMgRXJrbGFlcnVuZywgdW5kIGZhbGxzIG1pY2ggKHdhcyBpY2ggaG9mZmUpIG1hbAp3ZXIgdmVybWlzc2VuIHNvbGx0ZSA6KApBbHNvLCAqd2luayogZXJzdG1hbAotQ3JlYS0sIGdlaHQgbmUgUnVuZGUgaGV1bGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBsYXR6IGZ1ZXIgUGVubnR1ZXRlIChadWVyaWxldSwgMjYuIEp1bCAxOTk1LCAyMzozNToxOCk6CiMhIHJuPVp1ZXJpbGV1IHJ0PTgwNjU0Mjg3MwpTYWxpLApBZW1tIGRpZSBHZXNjaGFlZnRzbnVtbWVyIGlzdCBuYXR1ZXJsaWNoIDA0MSAoc2Nod2VpeikgdW5kIGRhbm4KMDUyLzM1MjAyMS8yMi8yMyAuLiA9OikKClRqYSBkYXMgd2FycyBhdWNoIHNjaG9uIGN1Li4uWnVlcmlsZXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjIgcW0gZnVlciBuZW4gQWdlbnRlbiAoSmltZGlncml6LCAyNi4gSnVsIDE5OTUsIDIzOjQ3OjA3KToKClRhZyAhCkRpZSB2aWVsZW4gQW56ZWlnZW4gaGFiZW4gbWlyIG51biBkb2NoIFNvcmdlbiBnZW1hY2h0LgpTbyBzdWNodCBkZXIgRXgtQWdlbnQgdW5kIGVpbmdlcm9zdGV0ZSwgYXJ0aHJpdGlzY2hlIE1vZWNodGVnZXJuLQprYXJhdGVrYSBhdWNoIG5vY2ggZWluIFBsYWV0emNoZW4gZnVlciBzZWluIEJpd2FrLgpBbnNwcnVlY2hlIDJteDFtLCB0cm9ja2VuLCBrZWluZSBXYW56ZW4gOy0pCgpjdQpKYW1lcyBCb2xpdmFyIGRpR3JpegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW1icmlzTVVTSCAoQ2F0d2VhemxlLCAyNy4gSnVsIDE5OTUsIDE4OjQyOjM3KToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBDYWhpZWwsIDI2LiBKdWwgMTk5NSwgMDA6Mjc6NDJdOgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKIFx8LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx8LwotLSotLSAgICAgIEltYnJpcyBNVVNIICAgICAoc3VuMS5scnotbXVlbmNoZW4uZGUgNjI1MCkgICAgICAtLSotLQogL3xcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL3xcCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpJbWJyaXMgTVVTSCBpc3QgZWluZSBNdWx0aSBVc2VyIFVtZ2VidW5nIGZ1ZXIgUm9sbGVuc3BpZWxlciB1bmQKRmFudGFzeWZyZXVuZGUuIEVpbiBPcnQgYW4gZGVtIG1hbiBkaWUgdmVyc2NoaWVkZW5zdGVuIENoYXJha3RlcmUKdHJlZmZlbiBrYW5uLiBWb24gYWVzdGhldGlrbGllYmVuZGVuIHVuZCB3aXNzZW5zZHVyc3RpZ2VuIEltYnJpZXJuLApzdG9semVuIERyYWtlcm4sIGtyaWVnZXJpc2NoZW4gVHplbiwgZGFlbW9uaXNjaGVuIFBoYW5nIHVlYmVyCmdlc2NoYWVmdHN0dWVjaHRpZ2UgQmVyZW5uaSB1bmQgcmF1aGUgTm9yZGxhZW5kZXIgenUgcXVpcmxpZ2VuCkVsdGhvaS4gRWluIFBsYXR6IGFuIGRlbSBqZWRlciBldHdhcyBiZWl0cmFnZW4ga2FubiB1bmQgamVkZXIKd2lsbGtvbW1lbiBpc3QuCgpXaXIgaGFiZW4gZWluIFNwaWVsZXJ0cmVmZmVuIGplZGVuIERvbm5lcnN0YWcgdW0gMTgtMjAgVWhyIGZ1ZXIKamVkZXJtYW5uL2ZyYXUgb2IgTmV1bGluZyBvZGVyIFVud2lzc2VuZGVuLCBFaW5nZXdpZXNlbmUgb2RlcgpNVVNIIEd1cnVzIGplZGVyIGlzdCBoZXJ6bGljaHN0IGRhenUgZWluZ2VsYWRlbiAnemFobHJlaWNoJyB6dQplcnNjaGVpbmVuLgoKU29sbHRlc3QgRHUgaW50ZXJlc3NpZXJ0IHNlaW4sIHVuZCBnbGVpY2ggbWVociBpbmZvcm1hdGlvbmVuIHN1Y2hlbgpzbyBzY2hhdSBEb2NoIGdsZWljaCBtYWwgdm9yYmVpc2NoYXVlbiBvZGVyIGhvbCBEaXIgbmFlaGVyZSBJbmZvcwp6dSBJbWJyaXMgTVVTSCBwZXIgZnRwIG9kZXIgV1dXLgoKZnRwOiAgICAgICBmaW0uaW5mb3JtYXRpay51bmktbWFubmhlaW0uZGUgICAgICAvaW1icmlzCgpXV1c6ICAgICAgIGh0dHA6Ly93d3cucmJnLmluZm9ybWF0aWsudGgtZGFybXN0YWR0LmRlL35lcm5pZS9JbWJyaXMvCgpBbHNvIHdpciBmcmV1ZW4gdW5zIGRhcmF1ZiBEaWNoIGluIEltYnJpcyB6dSB0cmVmZmVuLgoKU2NoYXUgZG9jaCBlaW5mYWNoIG1hbCByZWluIHVuZCBsZXJuZSBldHdhcyBuZXVlcyBrZW5uZW4gIQoKSGllciBub2NobWFsIGRpZSBBZHJlc3NlOiAgIFsgIHN1bjEubHJ6LW11ZW5jaGVuLmRlIDYyNTAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgIDEyOS4xODcuMTAuMjAgNjI1MCBdCiAgICAgIENpYW8KICAgICAgICAgIENhaGllbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0YXRpc3Rpa2VuIChIYXRlLCAgMi4gQXVnIDE5OTUsIDA4OjUxOjIyKToKSWNoIGhhYmUgZGllIGFrdHVlbGxlbiBNYXhTcGllbGVyIFN0YXRpc3Rpa2VuIGF1ZiBkZXIgV1dXIFNlaXRlCnVudGVyZ2VicmFjaHQuCk1hbiBzaWVodCBkZXV0bGljaCBlaW4gQWJmbGF1ZW4gZHVyY2ggZGllIGdyb3NzZSBIaXR6ZSB1bmQgZGVuIEZlcmllbmFuZmFuZy4KV2VpdGVyaGluIHNpbmQgamV0enQsIGZhc3QgaW1tZXIgYWt0dWVsbCwgZGlyIER1cmNoc2Nobml0dHMgTnV0emVyemFobGVuCmRvcnQgenUgYmVndXRhY2h0ZW4uCgogTUcgV1dXIFNlaXRlIChodHRwOi8vbWcudW5pLW11ZW5zdGVyLmRlLykgLT4gU3RhdGlzdGlrZW4KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZ1ZWhyZXIgZ2VzdWNodCAoQWxpbmUsICA0LiBBdWcgMTk5NSwgMTQ6NTc6MDUpOgpIYWxsbyBMZXV0ZSwKCm5hY2hkZW0gaWNoIGpldHp0IGVpbiBwYWFyIG1hbCB2ZXJzdWNodCBoYWJlIGRpZSBTU1AgenUgZXJrdW5kZW4gdW5kIG1pcgp2b3IgQW5nc3QgZGllIEtuaWUgZ2V6aXR0ZXJ0IGhhYmVuLCBzdWNoZSBpY2ggYXVmIGRpZXNlbSBXZWdlCmVpbmVuIEZ1ZWhyZXIgZHVyY2ggZGllIFNTUCwgZGVtIGljaCBtaWNoIHZvbGwgYW52ZXJ0cmF1ZW4ga2Fubi4KV2VyIGhhdCBMdXN0IG1pciBkaWUgU1NwIGdlbmF1IHp1IHplaWdlbiB1bmQgenUgZXJrbGFlcmVuPwpXZXIgYmVzY2h1ZXR6dCBtaWNoIGRvcnQ/CgpBbGluZQoKUC5TLjpCZXphaGx1bmcgZ2lidHMgS0VJTkUhISEhCgpFcm5zdGdlbWVpbnRlIFp1c2NocmlmdGVuIGJpdHRlIHVudGVyIENoaWZmcmU6IEVtYW56ZSBhbiBkaWVzZSBaZWl0dW5nOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGdWVocmVyIGdlc3VjaHQgKFJ4dGVjaCwgIDQuIEF1ZyAxOTk1LCAxNToyMDo0OCk6CiMhIHJuPUFsaW5lIHJ0PTgwNzU0MTAyNQpub2Ugbm9lIG5vaWUKQWxzbyBtZWluIE9iZXJsaWVibGluZ3NzdGVyYmVvcnQgaGllciBzb2xsIGF1Y2ggYW5kZXJlbiBub2NoIHZpZWwgU3Bhc3MgdW5kCnZpZWxlIFRvZGVzc2VxdWVuemVuIHZlcnNjaGFmZmVuLiBLaWxsIERpY2ggc2VsYnN0IHNvbnN0IGtpbGx0IERpY2ggSGVsaXguCgpJbiBkaWVzZW0gU2lubmUKClJ4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnVlaHJlciBnZXN1Y2h0IChKYW5pY2UsICA0LiBBdWcgMTk5NSwgMjI6NTQ6MDEpOgojISBybj1BbGluZSBydD04MDc1NDEwMjUKSGkgQWxpbmUgOikKCldlbm4gRGlyIG1laW5lIHdlbmlna2VpdCByZWNodCBpc3QsIGZ1ZWhyIGljaCBEaWNoIGRhIGV0d2FzIHJ1bS4KVG9kZSBzaW5kIG5hdHVlcmxpY2ggZWluZ2VzY2hsb3NzZW4gOikKCkphbmljZSAtIGRpZSBTU1AtZXJmYWhyZW5zdGUgU3BpZWxlcmluIHVlYmVyaGF1cHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnVlaHJlciBnZXN1Y2h0IChDYXJhZGhyYXMsICA1LiBBdWcgMTk5NSwgMDE6MzA6NTcpOgojISBybj1KYW5pY2UgcnQ9ODA3NTY5NjQxCkljaCBnbGF1YmUga2F1bSwgamFuaWNlLCBkYXNzIGR1IGRpZSBTU3AtZXJmYWhyZW5kc3RlIFNwaWVsZXJpbgpiaXN0LiA6LSkgRGFzIGJpbGRlc3QgZHUgZGlyIG51ciBlaW4uCgogICAgICBGcnVlaGVyIHdhciBpY2ggamEgbWFsIFNTUC1Ub3VyaXN0aWNzLCBhdWNoIGpldHp0IGZ1ZWhyZSBpY2ggbm9jaAogICAgIGFiIHVuZCB6dS4gQWJlciBzZWx0ZW5lci4KCiAgICAgICAgICAgdHNjaG9lICAgICAgICBDYXJhZGhyYXMgZGVyIGV3aWdlIFByb3BoZXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEZ1ZWhyZXIgZ2VzdWNodCAoSGFyZGlsLCAgNS4gQXVnIDE5OTUsIDAzOjM2OjExKToKIyEgcm49Q2FyYWRocmFzIHJ0PTgwNzU3OTA1NwoKTmFqYSwgQ2FyYSosIHNpZSBtZWludCBzaWNoZXIgU3BpZWxlckluLiBNaXQgZ3Jvc3NlbSBpIHdpZSBpbiBBbEluZSBvZGVyClJ1ZElyYXR0ZXIuIE9kZXIgU2NocnVtcGZJLiA6LSkKQWIgZGFmdWVyLgoKLSBIYXJkaWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZ1ZWhyZXIgZ2VzdWNodCAoQ2FyYWRocmFzLCAgNS4gQXVnIDE5OTUsIDAzOjQ3OjIxKToKIyEgcm49SGFyZGlsIHJ0PTgwNzU4NjU3MQpEYXMgd2Vpc3MgaWNoLCBIYXJkaWwsIGRhc3Mgc2llIFNwaWVsZXJJbiBtZWludC4gQWJlciBnZWdlbiBaZXBoeXIKa29tbXQgSmFuaWNlIHZlcm11dGxpY2ggbmljaHQgYW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGdWVocmVyIGdlc3VjaHQgKExlY2h1Y2ssICA1LiBBdWcgMTk5NSwgMTQ6NDk6MDApOgojISBybj1DYXJhZGhyYXMgcnQ9ODA3NTg3MjQxCklociBzdHJlaXRldCBvaG5lIGRpZSB3YWhyZSBNRWlzdGVyaW4gd3VlcmQgaWNoIG1hbCBzYWdlbjogUnVkaQpBYmVyIGRpZSBrYW5uIGltIE1vbSBqYSBuaXggZGF6dSBzYWdlbiwgYWxzbyB0dSBpY2hzIDopCgpHdXlicnVzaCwgaXN0IGpldHp0IGF1Y2ggc2Nob24gdWViZXIgZWluIEphaHIgYWx0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGdWVocmVyIGdlc3VjaHQgKEphbmljZSwgIDUuIEF1ZyAxOTk1LCAyMDoyNzozNSk6CiMhIHJuPUNhcmFkaHJhcyBydD04MDc1ODcyNDEKQWxzbyBkYSBtdXNzIGljaCBtaWNoIG1hbCB6dSBhZXNzZXJuOgpIYXQgWmVwaCBkaWUgV2Fzc2VyZWJlbmUgbWFsIGFsbGVpbiBhdWZnZXJhZXVtdCA/IEljaCBzY2hvbiAqYW5nZWIqCkFiZXIgZGF2b24gbWFsIGFiZ2VzZWhlbiwgZGllIHBhYXIgd2VnZSB1bmQgbW9uc3RlciBpbiBkZXIgU1NQIGthbm4KZWlnZW50bGljaCBqZWRlciBqZWRlbSB6ZWlnZW4sIGRlciBlaW5pZ2VybWFzc2VuIFJlZ2VsbWFlc3NpZyBpbiBkZXIgU1NwCnJ1bWxhZXVmdC4gVW5kIGRhcyBaZXBoIHVuZCBSdWRpIGVyZmFocmVuZGVyIHNpbmQgYWxzIGljaCwgbmEgaWNoIHdlaXNzCm5pY2h0LgpJY2ggcGxhZWRpZXJlIGRhIG1laHIgYXVmIEdsZWljaHN0YW5kLCB3ZWlsIGljaCBrZW5uIGFsbGUgVGFua3N0ZWxsZW4sIGRpZQpiZWlkZW4gYXVjaCwgaWNoIGtlbm4gYWxsZXMgd2VnZSwgZGllIGJlaWRlbiBhdWNoLCBpY2gga2VubiBhbGxlIE1vbnN0ZXIsIGhhYgpkaWUgbWluZGVzdGVucyBlaW5tYWwgYW5nZXRlc3RldCwgdW5kIGRpZSBiZWlkZW4gc2ljaGVyIGF1Y2guIEhhYiBpY2ggd2FzCnZlcmdlc3Nlbj8gSmE/IERhbm4gbGFzc3QgZXMgbWljaCB3aXNzZW4gOikKCkphbmljZSAqYW5tYXNzZW5kKiBrZW5udCBkaWUgU1NQIGJlc3RpbW10IGdlbmF1c29ndXQgd2llIENhcmEgOikKClAuUy4gQml0dGUgdWViZXJsZXN0IG1laW5lIFR5cG9zIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGdWVocmVyIGdlc3VjaHQgKEF1Z3JhLCAgNS4gQXVnIDE5OTUsIDIwOjM2OjQyKToKIyEgcm49Q2FyYWRocmFzIHJ0PTgwNzU4NzI0MQpVbmQgUnVkaXJhdHRlciB3dWVyZGUgc2ljaCBkYXMgSSB2ZXJiaXR0ZW46KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhdGlzdGlrIChIYXRlLCAgNS4gQXVnIDE5OTUsIDIyOjQ5OjA3KToKRGFtaXQgZXMgYXVjaCBtYWwgd2llZGVyIHdhcyBpbiBkZXIgWmVpdHVuZyB6dSBsZXNlbiBnaWJ0OgpHZXJhZGUgZWJlbiBlemV1Z3Q6CjAwaCAqKioqKioqKioqKioqKioqKioqKioqKiogIDQwIFNwLgowMWggKioqKioqKioqKioqKioqKioqKiogIDM0IFNwLgowMmggKioqKioqKioqKioqKioqKiogIDI5IFNwLgowM2ggKioqKioqKioqKioqKiAgMjIgU3AuCjA0aCAqKioqKioqKioqICAxNyBTcC4KMDVoICoqKioqKiogIDEyIFNwLgowNmggKioqKiogICA5IFNwLgowN2ggKioqKiogICA5IFNwLgowOGggKioqKioqKioqICAxNSBTcC4KMDloICoqKioqKioqKioqKioqKiAgMjYgU3AuCjEwaCAqKioqKioqKioqKioqKioqKioqKioqKioqICA0MyBTcC4KMTFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDU3IFNwLgoxMmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDYzIFNwLgoxM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MCBTcC4KMTRoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3OSBTcC4KMTVoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDgyIFNwLgoxNmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4MSBTcC4KMTdoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3NCBTcC4KMThoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzAgU3AuCjE5aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNjQgU3AuCjIwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1NyBTcC4KMjFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTAgU3AuCjIyaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDMgU3AuCjIzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDQ1IFNwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhdGlzdGlrIGZ1ZXIgU2Ftc3RhZyAoSGF0ZSwgIDUuIEF1ZyAxOTk1LCAyMzowODoxMSk6CjAwaCAqKioqKioqKioqKioqKioqKioqKioqKioqICA0MiBTcC4KMDFoICoqKioqKioqKioqKioqKioqKioqKiogIDM2IFNwLgowMmggKioqKioqKioqKioqKioqKioqKiAgMzMgU3AuCjAzaCAqKioqKioqKioqKioqKioqICAyNiBTcC4KMDRoICoqKioqKioqKioqICAxOCBTcC4KMDVoICoqKioqKiogIDEyIFNwLgowNmggKioqKiogIDEwIFNwLgowN2ggKioqKiAgIDcgU3AuCjA4aCAqKiogICA2IFNwLgowOWggKioqKiAgIDcgU3AuCjEwaCAqKioqKiogIDExIFNwLgoxMWggKioqKioqKiogIDEzIFNwLgoxMmggKioqKioqKioqKiAgMTcgU3AuCjEzaCAqKioqKioqKioqKiogIDIwIFNwLgoxNGggKioqKioqKioqKioqKioqICAyNiBTcC4KMTVoICoqKioqKioqKioqKioqKioqKiAgMzAgU3AuCjE2aCAqKioqKioqKioqKioqKioqKioqKiAgMzMgU3AuCjE3aCAqKioqKioqKioqKioqKioqKioqKiAgMzQgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKiAgMzQgU3AuCjE5aCAqKioqKioqKioqKioqKioqKiogIDMxIFNwLgoyMGggKioqKioqKioqKioqKioqKioqICAzMCBTcC4KMjFoICoqKioqKioqKioqKioqKioqICAyOSBTcC4KMjJoICoqKioqKioqKioqKioqKioqICAyOSBTcC4KMjNoICoqKioqKioqKioqKioqKioqKioqICAzNCBTcC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcmhlcnNhZ2UgZnVlciBTb25udGFnOiAoSGF0ZSwgIDUuIEF1ZyAxOTk1LCAyMzoxMDo1Nyk6CjAwaCAqKioqKioqKioqKioqKioqKioqKioqICAzNiBTcC4KMDFoICoqKioqKioqKioqKioqKioqKiogIDMxIFNwLgowMmggKioqKioqKioqKioqKioqICAyNSBTcC4KMDNoICoqKioqKioqKioqICAxOCBTcC4KMDRoICoqKioqKiogIDEyIFNwLgowNWggKioqKiogICA5IFNwLgowNmggKioqICAgNiBTcC4KMDdoICoqKiAgIDYgU3AuCjA4aCAqKioqICAgNyBTcC4KMDloICoqKiogICA4IFNwLgoxMGggKioqKioqKiAgMTIgU3AuCjExaCAqKioqKioqKioqKiAgMTggU3AuCjEyaCAqKioqKioqKioqKioqICAyMyBTcC4KMTNoICoqKioqKioqKioqKioqKioqICAyOSBTcC4KMTRoICoqKioqKioqKioqKioqKioqKioqKiAgMzYgU3AuCjE1aCAqKioqKioqKioqKioqKioqKioqKioqICAzOCBTcC4KMTZoICoqKioqKioqKioqKioqKioqKioqKioqKiogIDQxIFNwLgoxN2ggKioqKioqKioqKioqKioqKioqKioqKioqICA0MSBTcC4KMThoICoqKioqKioqKioqKioqKioqKioqKiogIDM3IFNwLgoxOWggKioqKioqKioqKioqKioqKioqKiogIDMzIFNwLgoyMGggKioqKioqKioqKioqKioqKioqKiogIDM1IFNwLgoyMWggKioqKioqKioqKioqKioqKioqKioqKiAgMzggU3AuCjIyaCAqKioqKioqKioqKioqKioqKioqKioqKioqICA0MiBTcC4KMjNoICoqKioqKioqKioqKioqKioqKioqKioqKiogIDQxIFNwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZvcmhlcnNhZ2UgZnVlciBTb25udGFnOiAoR3VsZHVrYXQsICA2LiBBdWcgMTk5NSwgMTM6NTk6MzUpOgojISBybj1IYXRlIHJ0PTgwNzY1NzA1NwpOdW4gamEsIGRlaW5lIHZvcmhlcnNhZ2UgaGF0IGVpbmUgYWVobmxpY2hlIGZlaGxlcmJyZWl0ZSB3aWUgZGllCndldHRlcnZvcmhlcnNhZ2UhIDspCkdECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVm9yaGVyc2FnZSBmdWVyIFNvbm50YWc6IChIYXJkaWwsICA4LiBBdWcgMTk5NSwgMDA6NTY6MDQpOgojISBybj1IYXRlIHJ0PTgwNzY1NzA1NwpBZWhtIEhhdGUsIGthbm5zdCBEdSBkaWUgU3RhdGlzdGlrZW4gYXVjaCBub2NoIG1pdCBkZXIgWmVpdHZlcnNjaGllYnVuZyBmdWVyCkJld29obmVlciBkZXIgU3RhbmRhcmQgUGFjaWZpYyBUaW1lLVpvbmUgdW1zY2hyZWliZW4/IEJpbiB6dSBmYXVsLCBkYSBuZXVuClN0dW5kZW4gYWJ6dXppZWhlbiA6LSkKQWIgZGFtaXQgbmFjaCBTY2htYXJybi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogRnVlaHJlciBnZXN1Y2h0IChCb2luZywgIDguIEF1ZyAxOTk1LCAxMToyNzo1MSk6CiMhIHJuPUphbmljZSBydD04MDc2NDcyNTUKV2V0dGVuLCBkYXNzIGljaCBkaWUgU1NQIGFtIGJlc3RlbiBrZW5uZT8gOikKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRnVlaHJlciBnZXN1Y2h0IChDYXJhZGhyYXMsICA4LiBBdWcgMTk5NSwgMTI6MzM6MTYpOgojISBybj1Cb2luZyBydD04MDc4NzQwNzEKQm9pbmcsIER1IGJpc3Qga2VpbiBTcGllbGVyLCBkdSBiaXN0IG51ciBTcGllbGVyZ290dC4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBGdWVocmVyIGdlc3VjaHQgKEhhcmRpbCwgIDguIEF1ZyAxOTk1LCAxNzozODozNSk6CiMhIHJuPUNhcmFkaHJhcyBydD04MDc4Nzc5OTYKQXVzc2VyZGVtLCBCb2luZywgRHUgYmlzdCBrZWluZSBTcGllbGVySW4uLi4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2hva29sYWRlIChBbGluZSwgIDkuIEF1ZyAxOTk1LCAwOTo0NDoyNCk6CkhhbGxvIExldXRlLAoKaGllciBkZXIgV3Vuc2NoIGVpbmVyIG5ldHRlbiBEYW1lIHp1ciBQYXJ0eToKPiBbQWxsZ2VtZWluOkxhcmlzaWFdIEljaCBoYWIgYW0gTW9udGFnIEdlYnVydHN0YWcgLi4uIGtvZW5uZW4gd2lyIG5pY2h0IGRpZQpbQWxsZ2VtZWluOkxhcmlzaWFdIFBhcnR5IHp1IG1laW5lciBHZWJ1cnN0YWdzZmVpZXIgZXJrbGFlcmVuLCB1bmQgamVkZXIKW0FsbGdlbWVpbjpMYXJpc2lhXSBzY2hlbmt0IG1pciBlaW5lIFNjaG9rb2xhZGU/ICp0cmFldW0qCkFsc28gaWNoIGJyaW5nIGlociBhdWYgamVkZW4gRmFsbCBlaW5lIFRhZmVsIG1pdCEKCkFsaW5lIChob2ZmZW5kIGRhcyBhdWNoIGV0d2FzIHZvbiBkZXIgU2Nob2tvbGFkZSB2ZXJ0ZWlsdCB3aXJkISkgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEZ1ZWhyZXIgZ2VzdWNodCAoUGFyYWNlbHN1cywgMTAuIEF1ZyAxOTk1LCAxNDowMzoyOSk6CiMhIHJuPUJvaW5nIHJ0PTgwNzg3NDA3MQpIaSEKQWVobSwgQm9pbmcsIGFuZGVyZSBNYWdpZXIga29lbm5lbiBkZW4gUXVlbGx0ZXh0IGFiZXIgYXVjaCBsZXNlbiA6KQoKUGFyYWNlbHN1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogRnVlaHJlciBnZXN1Y2h0IChDYXJhZGhyYXMsIDEwLiBBdWcgMTk5NSwgMTQ6MTE6MTYpOgojISBybj1QYXJhY2Vsc3VzIHJ0PTgwODA1NjIwOQpLb2VubmVuLCBhYmVyIHR1biBzaWUgZXM/IEljaCB3aWxsIGxpZWJlciBuaWNodCB3aXNzZW4gd2lldmllbCBLQiBkdQpkYW5uIGR1cmNobGVzZW4gbXVlc3N0ZXN0LCBkYW1pdCBkdSB3ZWlzc3Qgd2FzIHVuZCB3aWUgc3RhcmsgZGllIE1vbnN0ZXIKc2luZCwgd28gZGllIEhlaWxzdGVsbGVuIGxpZWdlbiB1bmQgd2VsY2hlIE1vbnN0ZXIvRGluZ2UgZWluZW4KdmVyZ2lmdGVuLi4uIERhbWl0IGhhc3RlIGxhbmdlIGxhbmdlIHp1IHR1biwgUGFyYSA6KQpVbmQgZGFzIHR1dCBrZWluIE1hZ2llci4gKmdyaW5zKgoKICAgICAgICAgICAgIHRzY2hvZSAgICAgICAgICBDYXJhZGhyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IEZ1ZWhyZXIgZ2VzdWNodCAoQm9pbmcsIDEwLiBBdWcgMTk5NSwgMTQ6MTY6NTgpOgojISBybj1DYXJhZGhyYXMgcnQ9ODA4MDU2Njc2ClNvIHNjaGxpbW0gaXN0IGVzIGdhciBuaWNodCwgc2luZCBudXIga25hcHAgNTUwIGtiIC4uLiBkYSBnaWJ0IGVzCnNjaGxpbW1lcmVzLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogRnVlaHJlciBnZXN1Y2h0IChFbmd5d3VjaywgMTAuIEF1ZyAxOTk1LCAxNDoyMTo0Mik6CiMhIHJuPUJvaW5nIHJ0PTgwODA1NzAxOApaLkIuIGRlbiBaVCBpbiBaYXJkb3ogQXVzc2ljaHRzdHVybSB6dSBmaW5kZW4uLi4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJ1ZGlyYXR0ZXIgKFJ1ZGlyYXR0ZXIsIDExLiBBdWcgMTk5NSwgMTg6MTg6MDYpOgpTY2hvZW5lbiBEYW5rIGZ1ZXIgZGllIEJsdW1lbi4uLgpBbHNvLCBBdWdyYSBoYXQgcmVjaHQ6ClZvbiBTYWNoZW4gd2llICdSdWRJcmF0dGVyJyBrcmllZ2UgaWNoIGV4dHJlbWUgU3BvbnRhbmFrbmUgYW0gZ2FuemVuIEtvZXJwZXIsCmJpdHRlIHZlcnNjaG9udCBtaWNoLgoKVW5kIHdhcyBkaWUgU1NQIGFuZ2VodCwgaG0sIG5hamEsIGljaCBoYWIgamEgbWl0dGxlcndlaWxlIGVpbmUgTWVuZ2UKdmVycGFzc3QuLi4uCgpVbmQgZGFubiB3b2xsdGUgaWNoIG5vY2ggd2FzIGdhbnogYW5kZXJlcyBzYWdlbjoKVmllbGVuIERhbmsgYW4gYWxsZSBMZXV0ZSBoaWVyLCBkaWUgbWlyIGluIGlyZ2VuZGVpbmVyIEFydCAoQmVzdWNoZSwgUG9zdCwKVGVsZWZvbmFucnVmZSkgZGllIFplaXQgaW0gS3JhbmtlbmhhdXMgdmVya3Vlcnp0IGhhYmVuLiBJY2ggd2FyIGVjaHQgcG9zaXRpdgp1ZWJlcnJhc2NodCEKTGVpZGVyIGthbm4gaWNoIGhpZXIgbm9jaCBpbW1lciBuaWNodCB3aWVkZXIgdm9sbCBlaW5zdGVpZ2VuLCB3ZWlsIGljaCBkb2NoCm5vY2ggYXJnIGJlaGluZGVydCBiaW4gdW5kIHNvd2llc28gaW4gZWluIHBhYXIgVGFnZW4gd2llZGVyIGlucyBLcmFua2VuaGF1cwptdXNzLiBIYWJ0IEdlZHVsZCwgaW4gZWluZW0gTW9uYXQgb2RlciBzbyBoYWJlIGljaCdzIHdvaGwgZ2VzY2hhZmZ0LgpEYW5rZS4KUnVkaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTU9OVEFHIChIYXRlLCAxMy4gQXVnIDE5OTUsIDIwOjI4OjEzKToKMDBoICoqKioqKioqKioqKioqKioqKiogIDMxIFNwLgowMWggKioqKioqKioqKioqKiogIDI0IFNwLgowMmggKioqKioqKioqKioqICAyMCBTcC4KMDNoICoqKioqKioqKiAgMTUgU3AuCjA0aCAqKioqKiogIDExIFNwLgowNWggKioqKiAgIDcgU3AuCjA2aCAqKiogICA1IFNwLgowN2ggKioqKiAgIDcgU3AuCjA4aCAqKioqKioqKioqICAxNiBTcC4KMDloICoqKioqKioqKioqKioqKioqKiogIDMyIFNwLgoxMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDQ5IFNwLgoxMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2NSBTcC4KMTJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDcyIFNwLgoxM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc4IFNwLgoxNGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA5MCBTcC4KMTVoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA5MyBTcC4KMTZoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgOTYgU3AuCjE3aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgOTMgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDkwIFNwLgoxOWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODYgU3AuCjIwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4MiBTcC4KMjFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2OCBTcC4KMjJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1NCBTcC4KMjNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTAgU3AuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpESUVOU1RBRyAoSGF0ZSwgMTMuIEF1ZyAxOTk1LCAyMDoyODoxNSk6CjAwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDMgU3AuCjAxaCAqKioqKioqKioqKioqKioqKioqKiogIDM1IFNwLgowMmggKioqKioqKioqKioqKioqKiAgMjcgU3AuCjAzaCAqKioqKioqKioqKioqKiAgMjMgU3AuCjA0aCAqKioqKioqKioqKiAgMTggU3AuCjA1aCAqKioqKioqKiAgMTMgU3AuCjA2aCAqKioqKiAgIDkgU3AuCjA3aCAqKioqKiogIDEwIFNwLgowOGggKioqKioqKioqKiogIDE4IFNwLgowOWggKioqKioqKioqKioqKioqKioqICAzMCBTcC4KMTBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDUyIFNwLgoxMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzEgU3AuCjEyaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzggU3AuCjEzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDkwIFNwLgoxNGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDk5IFNwLgoxNWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAxMDIgU3AuCjE2aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAxMDMgU3AuCjE3aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4NyBTcC4KMThoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODYgU3AuCjE5aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3OCBTcC4KMjBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2NCBTcC4KMjFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1MyBTcC4KMjJoICoqKioqKioqKioqKioqKioqKioqKioqKiogIDQyIFNwLgoyM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqICA0NiBTcC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1JVFRXT0NIIChIYXRlLCAxMy4gQXVnIDE5OTUsIDIwOjI4OjE1KToKMDBoICoqKioqKioqKioqKioqKioqKioqKioqKiAgNDEgU3AuCjAxaCAqKioqKioqKioqKioqKioqKioqKiogIDM1IFNwLgowMmggKioqKioqKioqKioqKioqKioqICAzMCBTcC4KMDNoICoqKioqKioqKioqKioqKiAgMjYgU3AuCjA0aCAqKioqKioqKioqKioqICAyMyBTcC4KMDVoICoqKioqKioqKiAgMTUgU3AuCjA2aCAqKioqKioqICAxMiBTcC4KMDdoICoqKioqKiogIDEyIFNwLgowOGggKioqKioqKioqKiAgMTggU3AuCjA5aCAqKioqKioqKioqKioqKioqKioqICAzMyBTcC4KMTBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTEgU3AuCjExaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MiBTcC4KMTJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODAgU3AuCjEzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODQgU3AuCjE0aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgOTggU3AuCjE1aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIDEwMiBTcC4KMTZoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAxMDUgU3AuCjE3aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDk2IFNwLgoxOGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDg4IFNwLgoxOWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4MCBTcC4KMjBoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2OCBTcC4KMjFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1NSBTcC4KMjJoICoqKioqKioqKioqKioqKioqKioqKioqKiAgNDEgU3AuCjIzaCAqKioqKioqKioqKioqKioqKioqKioqKioqICA0MiBTcC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRPTk5FUlNUQUcgKEhhdGUsIDEzLiBBdWcgMTk5NSwgMjA6Mjg6MTcpOgowMGggKioqKioqKioqKioqKioqKioqKioqKioqICA0MCBTcC4KMDFoICoqKioqKioqKioqKioqKioqKioqKiAgMzUgU3AuCjAyaCAqKioqKioqKioqKioqKioqKiogIDMxIFNwLgowM2ggKioqKioqKioqKioqKiAgMjMgU3AuCjA0aCAqKioqKioqKioqICAxNyBTcC4KMDVoICoqKioqKiogIDExIFNwLgowNmggKioqKiAgIDcgU3AuCjA3aCAqKioqICAgNyBTcC4KMDhoICoqKioqKioqKiAgMTYgU3AuCjA5aCAqKioqKioqKioqKioqKioqKioqKiAgMzQgU3AuCjEwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTQgU3AuCjExaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzMgU3AuCjEyaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzkgU3AuCjEzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA4OCBTcC4KMTRoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgOTYgU3AuCjE1aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogMTA1IFNwLgoxNmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDk4IFNwLgoxN2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODcgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODMgU3AuCjE5aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc1IFNwLgoyMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDY4IFNwLgoyMWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDU5IFNwLgoyMmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1MCBTcC4KMjNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDUxIFNwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRlJFSVRBRyAoSGF0ZSwgMTMuIEF1ZyAxOTk1LCAyMDoyODoxNyk6CjAwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDQgU3AuCjAxaCAqKioqKioqKioqKioqKioqKioqKioqKiogIDQwIFNwLgowMmggKioqKioqKioqKioqKioqKioqKiogIDM0IFNwLgowM2ggKioqKioqKioqKioqKioqICAyNSBTcC4KMDRoICoqKioqKioqKioqICAxOSBTcC4KMDVoICoqKioqKioqICAxNCBTcC4KMDZoICoqKioqKiAgMTAgU3AuCjA3aCAqKioqKioqICAxMiBTcC4KMDhoICoqKioqKioqKioqKiAgMjAgU3AuCjA5aCAqKioqKioqKioqKioqKioqKioqKiogIDM1IFNwLgoxMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1MSBTcC4KMTFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDYyIFNwLgoxMmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDY5IFNwLgoxM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDg0IFNwLgoxNGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODcgU3AuCjE1aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgODQgU3AuCjE2aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDgwIFNwLgoxN2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzEgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MSBTcC4KMTloICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNjYgU3AuCjIwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNTkgU3AuCjIxaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDkgU3AuCjIyaCAqKioqKioqKioqKioqKioqKioqKioqKiAgMzkgU3AuCjIzaCAqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDMgU3AuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTQU1TVEFHIChIYXRlLCAxMy4gQXVnIDE5OTUsIDIwOjI4OjE3KToKMDBoICoqKioqKioqKioqKioqKioqKioqKioqKiAgNDAgU3AuCjAxaCAqKioqKioqKioqKioqKioqKioqKiogIDM1IFNwLgowMmggKioqKioqKioqKioqKioqKioqICAzMSBTcC4KMDNoICoqKioqKioqKioqKioqKiAgMjUgU3AuCjA0aCAqKioqKioqKioqICAxNyBTcC4KMDVoICoqKioqKiogIDEyIFNwLgowNmggKioqKiogICA5IFNwLgowN2ggKioqKiAgIDYgU3AuCjA4aCAqKiogICA2IFNwLgowOWggKioqKiAgIDcgU3AuCjEwaCAqKioqKiogIDExIFNwLgoxMWggKioqKioqKiAgMTMgU3AuCjEyaCAqKioqKioqKioqICAxNyBTcC4KMTNoICoqKioqKioqKioqKiAgMjAgU3AuCjE0aCAqKioqKioqKioqKioqKiogIDI1IFNwLgoxNWggKioqKioqKioqKioqKioqKioqICAzMCBTcC4KMTZoICoqKioqKioqKioqKioqKioqKiogIDMzIFNwLgoxN2ggKioqKioqKioqKioqKioqKioqKiogIDM0IFNwLgoxOGggKioqKioqKioqKioqKioqKioqKiogIDM0IFNwLgoxOWggKioqKioqKioqKioqKioqKioqKiAgMzEgU3AuCjIwaCAqKioqKioqKioqKioqKioqKiogIDMwIFNwLgoyMWggKioqKioqKioqKioqKioqKiogIDI4IFNwLgoyMmggKioqKioqKioqKioqKioqKioqICAzMCBTcC4KMjNoICoqKioqKioqKioqKioqKioqKiogIDMyIFNwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU09OTlRBRyAoSGF0ZSwgMTMuIEF1ZyAxOTk1LCAyMDoyODoxOSk6CjAwaCAqKioqKioqKioqKioqKioqKioqKiAgMzQgU3AuCjAxaCAqKioqKioqKioqKioqKioqKiogIDMwIFNwLgowMmggKioqKioqKioqKioqKiogIDIzIFNwLgowM2ggKioqKioqKioqKiAgMTcgU3AuCjA0aCAqKioqKioqICAxMyBTcC4KMDVoICoqKioqICAgOSBTcC4KMDZoICoqKiAgIDUgU3AuCjA3aCAqKiogICA1IFNwLgowOGggKioqICAgNSBTcC4KMDloICoqKiogICA3IFNwLgoxMGggKioqKioqKiAgMTIgU3AuCjExaCAqKioqKioqKioqICAxNiBTcC4KMTJoICoqKioqKioqKioqKiAgMjEgU3AuCjEzaCAqKioqKioqKioqKioqKiogIDI2IFNwLgoxNGggKioqKioqKioqKioqKioqKioqICAzMSBTcC4KMTVoICoqKioqKioqKioqKioqKioqKioqICAzNCBTcC4KMTZoICoqKioqKioqKioqKioqKioqKioqKioqKiAgNDAgU3AuCjE3aCAqKioqKioqKioqKioqKioqKioqKioqKiogIDQxIFNwLgoxOGggKioqKioqKioqKioqKioqKioqKioqKiogIDM5IFNwLgoxOWggKioqKioqKioqKioqKioqKioqKioqICAzNiBTcC4KMjBoICoqKioqKioqKioqKioqKioqKioqICAzNCBTcC4KMjFoICoqKioqKioqKioqKioqKioqKioqICAzNCBTcC4KMjJoICoqKioqKioqKioqKioqKioqKioqKioqICAzOSBTcC4KMjNoICoqKioqKioqKioqKioqKioqKioqKiogIDM3IFNwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS1VSWkUgTUlUVEVJTFVORyAoRGFuY2VyLCAxNC4gQXVnIDE5OTUsIDAyOjA2OjQ1KToKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgSGV1dGUgYW0gZnJ1ZWhlbiBNb3JnZW4ga29ubnRlbiB3aXIgdW5zIHp1IGVpbmVyIHwKfCB3ZWl0ZXJlbiBIYXRlJkRhbmNlci1Lb3Byb2R1a3Rpb24gZHVyY2hyaW5nZW4hIERhIHwKfCBlaW5pZ2Ugdm9uIEV1Y2ggc2ljaGVybGljaCBlaW5lbiBCZWRhcmYgZGFyYW4gaGEtIHwKfCBiZW4sIG1pdCBXZWd3ZWlzZXJuIGJ6dy4gU2NoaWxkZXJuIGFuZGVyZSBhdWYgYmUtIHwKfCBzdGltbXRlIE9ydGUgKHdpZSB6LkJzcC4gU2VoZXJoYWV1c2VyIGV0Yy4pICAgICAgIHwKfCBhdWZtZXJrc2FtIHp1IG1hY2hlbiwgaGFiZW4gd2lyIG5hY2ggaGFydGVuICAgICAgIHwKfCBWZXJoYW5kbHVuZ2VuIGVuZGxpY2ggZWluZSBwcmltYSBWZXJ3ZW5kdW5nc21vZS0gIHwKfCBnbGljaGtlaXQgZnVlciB1bnNlcmUgbGllYmUgV2FsZHJlZ2lvbiBnZWZ1bmRlbjogIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgV2lyIGhvbHplbiBzaWUgZWluZmFjaCBhYiB1bmQgYmF1ZW4gcHJha3Rpc2NoZSwgIHwKfCBzZWxic3RiZXNjaHJpZnRiYXJlIHVuZCBzZWxic3RzZXR6YmFyZSBXZWd3ZWlzZXIgIHwKfCB1bmQgU2NoaWxkZXIgYXVzIGRlbiBvaG5laGluIG51dHpsb3NlbiBCYWV1bWVuLiAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgSGF0ZSB3YXIgc28gZnJldW5kbGljaCBkaWUgUHJvZHVrdGlvbiBkZXIgV2VnLSAgIHwKfCB3ZWlzZXIgaW4gQW5ncmlmZiB6dSBuZWhtZW4sIGljaCBiZXNvcmdlIGRlbiBWZXItIHwKfCB0cmllYi4gQWIgc29mb3J0IGtvZW5udCBJaHIgYWxzbyBiZWltIFNhbmR0aWdlciAgIHwKfCBpbiBQb3J0IFZhaW4gZGllc2Ugd3VuZGVyYmFyZW4gdW5kIGhpbGZyZWljaGVuICAgIHwKfCBXZWdkZXV0ZXIgZXJ3ZXJiZW4sIGZyYWd0IGRlbiBUaWdlciBkb2NoIGVpbmZhY2ggIHwKfCBtYWwgZGFuYWNoLiBBY2ggamEuLi4gZGllIFdlZ3dlaXNlciB2ZXJzY2hpbW1lbG4gIHwKfCBuYXR1ZXJsaWNoIG1pdCBkZXIgWmVpdCAobWluZGVyd2VydGlnZXMgSG9seiBhdXMgIHwKfCBtaW5kZXJ3ZXJ0aWdlbiBCYWV1bWVuIDspICksIHNpbmQgYWxsZXJkaW5ncyAgICAgIHwKfCBjcmFzaHNpY2hlciEgKGhhYnQgSWhyIGV0d2FzIGFuZGVyZXMgZXJ3YXJ0ZXQ/ISkgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBJbSBOYW1lbiBkZXIgMi1NYWdlLVNhZWdld2Vya2UsICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBIYXRlJkRhbmNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEZ1ZWhyZXIgZ2VzdWNodCAoU2NocnVtcGZpLCAxNC4gQXVnIDE5OTUsIDA5OjU3OjU2KToKIyEgcm49Qm9pbmcgcnQ9ODA3ODc0MDcxCkdsYXViIGljaCBEaXIgbmljaHQhISA6LSkKU2NocnVtcGZpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBGdWVocmVyIGdlc3VjaHQgKFNjaHJ1bXBmaSwgMTQuIEF1ZyAxOTk1LCAxMDowMDoyMCk6CiMhIHJuPUNhcmFkaHJhcyBydD04MDgwNTY2NzYKVGFldXNjaCBEaWNoIGRhIG1hbCBuaWNodCBDYXJhISBJY2ggaGFiIG1pciBzY2hvbiBzbyBlaW5pZ2UgRmlsZXMgdm9uIEJvaW5nCmR1cmNoZ2VsZXNlbiB1bmQgZGllIFNTUCBoYWIgaWNoIHNpY2hlciBzY2hvbiBkdXJjaC4gOi0pClNjaHJ1bXBmaSBkaWUgYWx0ZSBTY2hudWVmZmxlcmluIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS1VSWk1JVFRFSUxVTkchIChEYW5jZXIsIDE1LiBBdWcgMTk5NSwgMDA6NDk6MTIpOgo+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPgo8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPAo+ICBLVVJaTUlUVEVJTFVORzogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPAo+ICAgRGEgU2FuZHRpZ2VyIGphIGltbWVyIHppZW1saWNoIGNsZXZlcmUgICAgPgo8ICBLZXJsY2hlbiBzaW5kLCBrYW5uIHNpY2ggZGVyIHZvbiBQb3J0IFZhaW4gPAo8ICBhYiBoZXV0ZSBJTkZPUk1BVElPTkVOIG1lcmtlbiwgZGllIElIUiwgICAgPAo+ICBkaWUgU3BpZWxlciBpaG0gZWludHJpY2h0ZXJuIGtvZW5udC4gV2VubiAgPgo8ICBlciBkYXJhdWZoaW4gbmFjaCBkaWVzZW0gU3RpY2h3b3J0IGdlZnJhZ3QgPAo+ICB3aXJkLCBnaWJ0IGVyIEVVRVJFIEFudHdvcnQgYXVzLiBFcyBsaWVndCAgPgo8ICBudW4gYW4gRXVjaCwgb2IgZGVyIFNhbmR0aWdlciBkZXIgJ3NjaGxhdS0gPAo+ICBzdGUnIE5QQyB2b20gTW9yZ2VuR3JhdWVuIHdpcmQhIEluZm9zIHp1ICAgPgo8ICBRdWVzdHMgKGtlaW5lIExvZXN1bmdzd2VnZSEpLCBCZXNjaHJlaWJ1bi0gPAo+ICBnZW4genUgRXVlcmVyIFBlcnNvbiwgRGF0ZW4gdm9uIE5QQ3MgdW5kICAgPgo8ICBCZXJpY2h0ZSB2b24gYmVrYW5udGVuIE9ydGVuLCBhbGxlcyBpc3QgICAgPAo+ICBkZW5rYmFyLiBOdXIgQmVsZWlkaWd1bmdlbiB1bmQgb2ZmZW5zaWNodC0gPgo+ICBsaWNoZSBMb2VzdW5nc3RpcHMgd2VyZGVuIGdlbG9lc2NodC4gICAgICAgPgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo+ICAgR2VodCBkb2NoIG1hbCB6dW0gU2FuZHRpZ2VyIHVuZCBmcmFndCBpaG4gPgo+ICBuYWNoIEluZm8gb2RlciBnbGVpY2ggbmFjaCBlaW5lbSBGb3JtdWxhciwgPgo+ICBtaXQgZGVtIElociBFdWVyZSBJbmZvcm1hdGlvbmVuIGluIGVpbmUgICAgPgo+ICBGb3JtIGJyaW5nZW4ga29lbm50LCBiZXZvciBkZXIgU2FuZHRpZ2VyICAgPgo+ICBzaWUgYXVzd2VuZGlnIGxlcm50LiAgICAgICAgICAgICAgICAgICAgICAgPgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo+ICBWaWVsIFNwYXNzISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo+ICBEYW5jZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgo+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPi0+LT4tPgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLVVJaRSBNSVRURUlMVU5HIChTaWx2YW5hLCAxNS4gQXVnIDE5OTUsIDA4OjQ5OjU3KToKIyEgcm49RGFuY2VyIHJ0PTgwODM1ODgwNQpUamEsIGljaCBtdXNzIEV1Y2ggYmVpZGUgbGVpZGVyIGVudHRhZXVzY2hlbi4gRGFzIEhvbHosIHdhcyBpaHIgZGEgc28KZmxlaXNzaWcgZmFlbGx0LCBzdGFtbXQgYXVzIGRlbSBHcmltbXN3YWxkIC0gdW5kIGRlciBnZWhvZXJ0IHp1ciBFQkVORSEKRWNodGUgV0FMRGJhZXVtZSBrb2VubnRldCBpaHIgU2FuZGthc3RlbnJvY2tlciB1bmQgUGZ1ZXR6ZW50cmV0ZXIgOykKbWl0IEV1cmVuIG11ZWRlbiBLbm9jaGVuIGRvY2ggbmljaHQgbWFsIGtyYXR6ZW4uCkFsc286IFNvIGxlaWQgZXMgbWlyIHR1dCAtIHNvYmFsZCBlcyBpbSBHcmltbXN3YWxkIHdpZWRlciBtYWwga2VpbmUgQmFldW1lCm1laHIgZ2lidCwgaXN0IFNjaGx1c3MgbWl0IGRlciBTY2hpbGRlcnByb2R1a3Rpb24gLSBlcyBzZWkgZGVubiwgaWhyIGZpbmRldApkZW4gV2VnIHp1bSBIZXhlbndhbGQuIERlciBpc3QgUG9sYXJyZWdpb24uLi4gOykKClNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS1VSWkUgTUlUVEVJTFVORyAoSGF0ZSwgMTUuIEF1ZyAxOTk1LCAwOToyNzo1Mik6CiMhIHJuPVNpbHZhbmEgcnQ9ODA4NDY5Mzk3CkZFSExBTlpFSUdFOgoKU2VpdCBnZXN0ZXJuIEFiZW5kIGdpYnQgZXMgZWluZSBORVVFIEdlbmVyYXRpb24gU2NoaWxkZXIsIGRpZSBsYWVuZ2VyIGxlYmVuCnVuZCB2aWVsIGxhbmdzYW1lciB2ZXJvdHRlbiEKRGllc2Ugc2luZCBhdXMgZGVtIGJlc3RlbiBIb2x6LCB3ZWxjaGVzIHdpciBpbSBXQUxEIGdlZnVuZGVuIGhhYmVuIGdlbWFjaHQuClJlZ2VsbWFlc3NpZyB3aXJkIGFiIGpldHp0IGFiZ2Vob2x6dCwgZGFtaXQgYXVjaCBpbW1lciBvcmRlbnRsaWNoIFNjaGlsZGVyCnZvcnJhZXRpZyBzaW5kLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEtVUlpFIE1JVFRFSUxVTkcgKFNpbHZhbmEsIDE1LiBBdWcgMTk5NSwgMTA6MzU6MDkpOgojISBybj1IYXRlIHJ0PTgwODQ3MTY3MgpEdSBoYXN0IGVzIG5vY2ggaW1tZXIgbmljaHQga2FwaWVydCwgSGF0ZS4gREFTIHdhciBqZXR6dCBkZXIgSGV4ZW53YWxkLgpFY2h0ZXMgV0FMRGhvbHogdmVycm90dGV0IG5pY2h0LiBBYmVyIHdlbm4gaWhyIHVuYmVkaW5ndCBlbmRsb3MgaGFsdGJhcmUKU2NoaWxkZXIgcHJvZHV6aWVyZW4gd29sbHQsIGtvZW5udGUgaWNoIGV0d2FzIGF1cyBkZXIgVWViZXJzY2h1c3Nwcm9kdWt0aW9uCnZvbiBUcm95IHp1ciBWZXJmdWVndW5nIHN0ZWxsZW4uIERhcyB3YWVyZSBkYW5uIGF1Y2ggbm9jaCBldHdhcyBXdWVzdGUsCmZhbGxzIGlociBFdXJlbiBTYW5ka2FzdGVuIG1hbCBtaXQgdmVybnVlbmZ0aWdlbSBTYW5kIGZ1ZWxsZW4gd29sbHQuLi4KClNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFydGlrZWwgQXVmcnVmISA6LSkgKERhbmNlciwgMTYuIEF1ZyAxOTk1LCAxNTowNzo0OCk6CgoKSGkhCgpFcyBoYXQgYW5mYWVuZ2xpY2ggZWluIHBhYXIgU2Nod2llcmlna2VpdGVuIG1pdCBkZXIKRm9ybWF0aWVydW5nIGRlciBJbmZvcyBpbSBTYW5kdGlnZXIgZ2VnZWJlbiwgZW50c2NodWxkaWd1bmcuCgpJY2ggYml0dGUgaGllcm1pdCBhbGxlLCBkaWUgbWFsIGVpbmlnZSBNaW51dGVuIEx1c3QgdW5kIFplaXQKaGFiZW4sIHp1bSBTYW5kdGlnZXIgbmFjaCBQb3J0IFZhaW4genUgZ2VoZW4sIGlobiBuYWNoIGVpbmVtCkZvcm11bGFyIHp1IGZyYWdlbiB1bmQgZGFzIG1hbCBhdXN6dWZ1ZWxsZW4uIFNjaHJlaWJ0IGRvY2ggbWFsCmlyZ2VuZHdhcyB1ZWJlciBFdWVyZSBGcmV1bmRlIG9kZXIgdWViZXIgYmVsaWViaWdlIFN0aWNod29ydGUsCm5hY2ggZGVuZW4gbWFuIGRlbiBTYW5kdGlnZXIgYW5zY2hsaWVzc2VuZCBmcmFnZW4ga2Fubi4KU3RpY2h3b3J0ZSBsb2VzY2hlbiBnZWh0IG1pdCAnZW50ZmVybmUgPGluZm9iZXplaWNobnVuZz4nLAprb3N0ZXQgYWxsZXJkaW5ncyBlaW5lIEtsZWluaWdrZWl0LiBVbSBFdWNoIGFsbGUgKFZPTiBTUElFTEVSTgpFSU5HRVRSQUdFTkVOKSBJbmZvcyBhbnNjaGF1ZW4genUga29lbm5lbiwgZGllIGRlciBUaWdlcgprZW5udCwgZ2VidCBlaW5mYWNoICd0aWdlcmluZm9zJyAoUGx1cmFsISBTaW5ndWxhciBpc3Qgd2llZGVyCndhcyBhbmRlcmVzKSBlaW4uIERhIHNpbmQgTklDSFQgZGllIEluZm9zIGVudGhhbHRlbiwgZGllIGRlcgpUaWdlciBzY2hvbiB2b24gbWlyIGF1ZiBkZW4gV2VnIGJla29tbWVuIGhhdC4KV2ljaHRpZzogRXMgc2luZCBhdWNoIEluZm9iZXplaWNobnVuZ2VuIG1vZWdsaWNoLCBkaWUgTklDSFQKYXVzIGVpbmVtIFdvcnQgYmVzdGVoZW4sIHdpZSB6dW0gQmVpc3BpZWwgJ1BvcnQgVmFpbicsCidIaWxiZXJ0cyBUdXJtJywgJ1Bmb3RlIHZvbiBEYW5jZXInIG9kZXIgd2FzIHdlaXNzIGljaCB3YXMuCkljaCBiaXR0ZSBFdWNoIGFsc28sIHJlZ2UgR2VicmF1Y2ggZGF2b24genUgbWFjaGVuLiBXZW5uIElocgphbGxlIG1pdGhlbGZ0LCBkYW5uIHdpcmQgZGVyIFNhbmR0aWdlciBlaW5lIHppZW1saWNoIGdyb3NzZQpIaWxmZSBmdWVyIE5ld2JpZXMgdW5kIGVpbmUgZ3V0ZSBNb2VnbGljaGtlaXQsIGVpbiB3ZW5pZyBtaXQKYW5kZXJlbiB1bmQgdWViZXIgYW5kZXJlIHp1IGZyb3R6ZWxuIDopCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXJ0aWtlbCBBdWZydWYhIDotKSAoSmVycmljbywgMTYuIEF1ZyAxOTk1LCAxODowNDoyNyk6CiMhIHJuPURhbmNlciBydD04MDg1Nzg0NjgKRHUgc29sbHRlc3QgbmljaHQgdmVyZ2Vzc2VuIHp1IGVyd2FlaG5lbiwgZGFzcyBtYW4gbWluZGVzdGVucyBMZXZlbCAxMCBzZWluCm11c3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVZWJlcm5hY2h0dW5nIGluIEtvZWxuIChBcmFueWEsIDIwLiBBdWcgMTk5NSwgMjI6MTg6NTQpOgpJY2ggbWFjaGUgaW0gQW5zY2hsdXNzIGFuIG1laW4gUHJha3Rpa3VtIGluIGRlciBMdWVuZWJ1cmdlciBIZWlkZSBlaW5lIFJhZC0KdG91ciB1bmQgYnJhdWNoZSBkYSBmdWVyIEFuZmFuZyBTZXB0ZW1iZXIgKHNvIHVtIGRlbiBmdWVuZnRlbikgbGVnZW5kYWVyZQp6d2VpIFF1YWRyYXRtZXRlciBpbiBLb2VsbiBvZGVyIFVtZ2VidW5nLiBXZW5uIGplbWFuZCB3YXMgaGF0OgplcnJlaWNoYmFyOiBXaW5zZW4vQWxsZXIgKFZvcndhaGwgd2Vpc3MgaWNoIG5pY2h0KSAxMzMxIG9kZXIgR2VkZW5rc3RhZXR0ZQpCZXJnZW4tQmVsc2VuIChkYSBoYWIgaWNoIGRpZSBOdW1tZXIga29tcGxldHQgbmljaHQgaW0gS29wZi4gTXVlc3N0IG1pY2gKKEdlb3JnIFNpZWdlbXVuZCkgdmVybGFuZ2VuLgpXYWVyIG5ldHQsIHdlbm4gaWNoIHdvIHVudGVya2FlbWUuCgpBcmFueWEgLSBicm9pbgpBcmFueWEgLSBicmluZ3QgZGFubiBhdWNoIGRpZSBLbGFtcGZlIG1pdAoKSGVlZWUhIE1lbGRldCBldWNoIHRyb3R6ZGVtISBJY2ggbGFzcyBzaWUgamEgYXVjaCBlaW5nZXBhY2t0ISBWZXJzcHJvY2hlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNlaGVyLnVybGF1YiAoQ3VjaHVsbGluLCAyMS4gQXVnIDE5OTUsIDExOjE0OjUxKToKCgpIaWdoIGloci4uLgoKSWNoIGJpbiBmdWVyIGRpZSBuYWVjaHN0ZW4gVGFnZSBuaWNodCBkYSAtIGZhbGxzIGFsc28gaXJnZW5kd2VsY2hlCkVycHJlc3Nlci0sIERyb2gtIG9kZXIgTGllYmVzYnJpZWZlIG5pY2h0IHBvc3R3ZW5kZW5kIGJlYW50d29ydGV0IHdlcmRlbiwKYmVkYW5rdCBldWNoIGJlaSBtZWluZW4gV2Vpc2hlaXRzemFlaG5lbi4KCkN1Y2guLSAoLi53aXJkIHNvIHNjaG5lbGwgbml4IHZvbiBDYXQqcyBXaGlza3kgcHJvYmllcmVuIGtvZW5uZW4pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHNlaGVyLnVybGF1YiAoVG9zcywgMjEuIEF1ZyAxOTk1LCAxMTo0OTo1MCk6CiMhIHJuPUN1Y2h1bGxpbiBydD04MDg5OTY0OTEKREFNTiEKCkRhIHNjaHJlaWIgaWNoIGpldHp0IGFsc28gYXVjaCBtZWluZSByZXBseSBmdWVyIHJ1YnJpayBXZWloZWl0c3phaG4uZ2V6b2dlbiAtCm5hamEsIGljaCBiaW4gc2Nob24gd2VpdGVyIGFscyBjdWNoLCBhYmVyIGhhYmUgdHJvdHpkZW0ga2VpbmVuIHNwYXNzIG1laHIgYW0KbGViZW4sIHVuZCBpY2ggaGFiIGpldHp0IG5lIHN0dW5kZSBwcm9iaWVydCwgbWl0IGVpbmVyIGhhbmQgenUgbXVkZGVuIHVuZCBkZXIKYW5kZXJlbiBkYXMgZWlzcGFjayBhbiBtZWluZSBtaXR0bGVyd2VpbGUgNTBjbSBkaWNrZSBiYWNrZSB6dSBoYWx0ZW4sIGFiYmEgZGF0Cm51dHp0IGphIGFsbGV0IG5pZXggIQpEZXNoYWxiIHNldHogaWNoIG1pY2ggamV0enQgYWIsIHVuZCB0cmFldW1lIHZvbiBkZW4gZ3V0ZW4gWmVpdGVuIGFtCldvY2hlbmVuZGUsIHdhciBlY2h0IHRvbGwgbWl0IGV1Y2ggYWxsZW4gISEhIQoKQmlzIGRpZSBUYWdlLCBhYiBNaXR0d29jaCBiaW4gaWNoIHNpY2hlciB3aWVkZXIgZml0LgoKUnluZQotIGJld2Vpc3QsIGRhc3MgZXMgZWluZSBNb2VnbGljaGtlaXQgZ2lidCwgQXJ0aWtlbCBtaXQgd2VuaWdlciBhbHMgNjAwIFplaWxlbgp6dSBzY2hyZWliZW4gLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRUlTIChSdWRpcmF0dGVyLCAyMS4gQXVnIDE5OTUsIDEyOjU2OjExKToKU28sIFBhcnR5IHVlYmVyc3RhbmRlbiB1bmQgZGVzaGFsYiBub2NoIG1hbDoKU2Nob2VuZW4gRGFuayBhbiBhbGxlLCBkaWUgZGllIEVpc3BhY2tzIGZ1ZXIgbWljaCBtaXRnZWJyYWNodCBoYWJlbi4gRVMgd2FyZW4Kc28gdmllbGUgZGEsIGRhc3MgZGllIFBhcnR5IHZvciBtaXIgc2NobGFwcGdlbWFjaHQgaGF0Li4uCkRhbmtlClJVREkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNoYWRvd3J1biEgKEhhciwgMjMuIEF1ZyAxOTk1LCAxNDoyNDoyMik6CkhhdCBoaWVyIG5pY2h0IGxldHp0ZW5zIGluIGRlciBSdWJyaWsgZWlpZ2UgU2hhZG93cnVuLUJ1ZWNoZXIgenUgdmVya2FmdWVuCmdlaGFidD8/Pwp3ZW5uIGphIGVpbmUga3VyemUgbXVkbWFpbCBhbiBIYXIsIGJpdHRlIQpUaGFueCwgaGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc2hhZG93cnVuISAoSGFyLCAyMy4gQXVnIDE5OTUsIDE0OjI1OjMxKToKIyEgcm49SGFyIHJ0PTgwOTE4MDY2Mgp1dXV1cHMsIGxhdXRlciB0eXBvcyEsIGljaCBtZWludGUgbmF0dWVybGljaCBvYiBkYSBlaW5lciBlaW5pZ2UgZGVyClNoYWRvd3J1bmJ1ZWNoZXIgaGF0Li4uIHNvbnN0IHdpZSBvYmVuIQoKSGFyICggbWl0IER1ZGVuIHVudGVyIGRlbSBBcm0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTaGFkb3dydW4uLi4gKFd1ciwgMjQuIEF1ZyAxOTk1LCAwNDo1MDo1OCk6CkFwcm9wb3MuLi5mYWxscyBoaWVyIHdlciBkZW4gR3JlbW9pciwgb3BzLCBzbyBvZGVyIGFlaG5saWNoIHdpcmQgZGVyCmdlc2NocmliZW4sIGhhdCwgaWNoIHd1ZXNzdGUgZGEgZWluZW4gQWJuZWhtZXIuIE1pY2ghCgpXdXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaWVsemV1ZyB6dSB2ZXJrYXVmZW4uIChCaW5nLCAyNC4gQXVnIDE5OTUsIDE0OjIwOjMwKToKQWIgc29mb3J0IGthbm4gbWFuIGluIG1laW5lciBXb2hudW5nIGltIEVsZmVuYmF1bSBTcGllbHNhY2hlbiBrYXVmZW4uIERpZXNlCnNpbmQgdGVpbCB6dSBiZW51dHplbiwgb2RlciB6dSB2ZXJzY2hlbmtlbi4gV2VyIG5ldWUgVm9yc2NobGFlZ2UgZnVlciBhbmRlcmUKU3BpZWxzYWNoZW4gaGF0LCBkZXIgbW9lZ2UgbWlyIGJpdHRlIG1haWxlbi4KCmRpZSBrbGVpbnN0ZSBCaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2hhZG93cnVuLi4uIChRdWlsbGlhbiwgMjYuIEF1ZyAxOTk1LCAwNDowNTowMCk6CiMhIHJuPVd1ciBydD04MDkyMzI2NTgKU2Fpa2FuIGhhdCBlaW5lbiAuLi4uIGFiZXIgb2IgRHUgZGVuIGJla29tbWVuIGthbm5zdD8gOi0pCgpRdWlsbGlhbiwgYXVjaCBTUi1GYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZWRlciBtYWwgT3J0IGdlc3VjaHQuLi4gKEtoaWRhciwgMjcuIEF1ZyAxOTk1LCAwODoxNToyOCk6Cktlbm50IGplbWFuZCBkaWVzZW4gT3J0PwpEdSBiZWZpbmRlc3QgRGljaCBpcmdlbmR3byBpbiBGcmFnZ2xlIFJvY2suCkRpZXNlIEhvZWhsZSBpc3QgZWluZSBkZXIgbWVya3d1ZXJkaWdzdGVuLCBkaWUgRHUgamUgZ2VzZWhlbiBoYXN0ISBTaWUKYmVzdGVodCBrb21wbGV0dCBhdXMgZmx1b3Jlc3ppZXJlbmRlbSBLcmlzdGFsbCwgZGVyIHN0YWVuZGlnIHNlaW5lIEZhcmJlCndlY2hzZWx0LiBJbiBkZXIgTHVmdCB0YW56ZW4gdW5lbmRsaWNoIHZpZWxlLCBldHdhIGtvcGZncm9zc2UgS3VnZWxuIHVtIERpY2gKaGVydW0uIERlciBCb2RlbiwgZGllIFdhZW5kZSB1bmQgZGllIERlY2tlIHNjaGVpbmVuIHN0YWVuZGlnIGlocmUgRm9ybSB6dQphZW5kZXJuLiBFaW4gbGFuZ2VyIFN0YWIgYmVmaW5kZXQgc2ljaCBtaXR0ZW4gaW0gUmF1bSwgZGFuZWJlbiBzaWVoc3QgRHUKbWVocmVyZSBvdmFsZSBHZWJpbGRlLCBkaWUgemVpdHdlaXNlIGdydWVubGljaCBhdWZibGl0emVuLiBEaXJla3Qgdm9yIERpcgpzdGVodCBlaW4gc2VsdHNhbWVyIEthc3RlbiwgZGVyIG1laHJlcmUgU2NobGl0emUgdW5kIGVpbmUgT2VmZm51bmcgYXVmd2Vpc3QuCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiB1bnRlbi4KQmVsb2hudW5nIG5hY2ggVmVyZWluYmFydW5nLCBTY2hhdHRlbnJ1ZXN0dW5nLCBLcmlzdGFsbGtyb25lLCBHZWxkIG9kZXIKYWVobmxpY2hlcy4KCkRpZXNlciBPcnQgaXN0IG1pciBhdXMgRnJhZ2dsZSBnYXIgbmljaHQgaW4gRXJpbm5lcnVuZy4KS2hpZGFyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpZWRlciBtYWwgT3J0IGdlc3VjaHQuLi4gKEtoaWRhciwgMjcuIEF1ZyAxOTk1LCAxODoyOToyMik6CiMhIHJuPUtoaWRhciBydD04MDk1MDQxMjgKRGVyIE9ydCB3YWVyZSBnZWZ1bmRlbi4uLgpNaXQgZGVtIERyYWNoZW4gYmVpbSBXaW5kbG9jaCBpbiBGcmFnZ2xlICdmbGllZ2UnZWluZ2ViZW4gdW5kIG1hbiBpc3QgZGEuCk51ciBoYWIgaWNoIGRpZSBTeW50YXggbm9jaCBuaWNodCByYXVzLi4uClZlcnNwcm9jaGVuZSBCZWxvaG51bmcgZnVlciBkaWUgU3ludGF4IHdpZSBvYmVuLgpWaWVsZW4gRGFuayBhbiBSdWRpcmF0dGVyLCBkaWUgZGVuIE9ydCBrYW5udGUuCgpLaGlkYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpORVVFUk9FRkZOVU5HISAoVGhyb2luLCAyOC4gQXVnIDE5OTUsIDExOjE5OjExKToKTmFjaCB2aWVsZW4gQmF1c3R1bmRlbiBpc3QgZXMgamV0enQgZW5kbGljaCBzb3dlaXQ6IERpZSBBbWJvc3MtQnJhdWVyZWkKaGF0IGVyb2VmZm5ldC4gRGllIFByb2R1a3Rpb25zcmFldW1lIHNpbmQgendhciBub2NoIG5pY2h0IGZ1ZXIgZGVuCkJlc3VjaGVydmVya2VociB6dWdhZW5nbGljaCwgZGVyIEhvZmJlcmVpY2ggdW5kICp0YXRhdGF0YXRhaCogZGVyCkJpZXJnYXJ0ZW4gc2luZCBqZWRvY2ggc2Nob24gYW5nZXNjaGxvc3NlbiB1bmQgd2FydGVuIGF1ZiB2aWVsZQpkdXJzdGlnZSBNdWRkZXIuIFNjaGF1dCBkb2NoIG1hbCByZWluISBBY2ggamE6IERpZSBCcmF1ZXJlaSBzdGVodApzdWVkd2VzdGxpY2ggdm9uIERyYWNoZW5ob3J0LgoKVGhyb2luCihhdWYgdmllbGUgVGVzdHRyaW5rZXIgd2FydGVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV2llZGVyIG1hbCBPcnQgZ2VzdWNodC4uLiAoQXNtb2RpcywgMjguIEF1ZyAxOTk1LCAxMjoyMjo1NSk6CiMhIHJuPUtoaWRhciBydD04MDk1NDA5NjIKaWNoIGRlbmtlLCBkdSBoYXN0IGRpZSBRdWVzdCA/PyBEaWUgU3ludGF4IGlzdCBzaWNoZXIgZGllIGdsZWljaGUKd2llIGRhIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXaWVkZXIgbWFsIE9ydCBnZXN1Y2h0Li4uIChaZXBoeXIsIDI4LiBBdWcgMTk5NSwgMTI6Mzg6MjkpOgojISBybj1Bc21vZGlzIHJ0PTgwOTYwNTM3NQpOdXIsIGRhc3MgbWFuIGRpZSBTeW50YXggZnVlciBkaWUgUXVlc3QgbmljaHQgdW5iZWRpbmd0cwpicmF1Y2h0Li4gZXMgZ2VodCBhdWNoIGFuZGVycyA6KQoKKmtudWRkZWxkdXJjaHdpZWltbWVyKiAgIFplcGgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhdHRsZVRlY2guLi4gKFllbmRpLCAyOC4gQXVnIDE5OTUsIDE0OjA1OjEwKToKCldvIGljaCBnZXJhZGUgYWxsIGRpZSBBcnRpa2VsIHVlYmVyIFNoYWRvd1J1biBnZXNlaGVuIGhhYmUuLi4KCldlaXNzIGplbWFuZCwgd28gaWNoIGVpbmVuIDUgTWV0ZXIgaG9oZW4gQmF0dGxlTWVjaCwgYmVnZWhiYXIsIG1pdApmdW5rdGlvbmllcmVuZGVyIEFLMjAgaW0gQXJtLCBkaWUgUGxhc3Rpa2dyYW5hdGVuIGJpcyB6dSAyMCBNZXRlciB3ZWl0CnZlcnNjaGllc3N0LCBiZWtvbW1lbiBrYW5uPyBEYXMgVGVpbCBzb2xsIGFuZ2VibGljaCBrb21wbGV0dCBiZW1hbHQgc2VpbiB1bmQKYXVzIGlyZ2VuZHdlbGNoZW4gVmVyYnVuZHNzdG9mZmVuIGhlcmdlc3RlbGx0IHNlaW4uLi4KCkZhbGxzIGplbWFuZCByZWluIHp1ZmFlbGxpZyBkaWUgQmV6dWdzcXVlbGxlIGtlbm50LCBzb2xsIGVyIEJlc2NoZWlkIHNhZ2VuLgoKVW5kIE5FSU4sIGljaCBiaW4ga2VpbiBCYWV0dGVsdGVja2VyLgoKICAgICAgIFlUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBFbmRlIGRlcyBzY2hvZW5lbiBNdWRkZW5zLi4uICpzbmlmZiogKE1vbm90b25pLCAyOS4gQXVnIDE5OTUsIDE0OjAzOjE1KToKSGkgTGV1dGNoZW4gIQoKQWxzbywgYW4gZGllamVuaWdlbiwgZGllIGVzIHdhcyBhbmdlaHQgb2RlciBlcyBpbnRlcmVzc2llcnQuLi4KCkljaCBoYWIgbWVpbiBTdHVkaXVtIGdlc2NobWlzc2VuIHVuZCBmYW5nIGpldHp0IG5lIEF1c2JpbGR1bmcgYmVpIGRlcgpQb3N0IGFuLi4uIChBSEhIICAhISEgTmljaHQgc2NobGFnZW4gISEhISEpCklzdCBrZWluIFNjaGVyeiwgZGllIGhhYmVuIG1pY2gga3VyemZyaXN0aWcgYW5nZW5vbW1lbiwgdW5kIGRpZSBBdXNiaWxkdW5ncy0KYmVkaW5ndW5nZW4gc2luZCBnYXIgbmljaHQgbWFsIHNjaGxlY2h0ICEKCkRhcyBoYXQgMiBzY2h3ZXJ3aWVnZW5kZSBLb25zZXF1ZW56ZW4gOgoxLiBJY2ggd2VyZGUgbGVpZGVyIG5pY2h0IG1laHIgc29vbyBoYWV1ZmlnIGltIE1VRCBzZWluIGtvZW5uZW4sIGFiZXIgTmFjaC0KbWl0dGFncyB3ZXJkIGljaCBkYXMgYmVzdGltbXQgbm9jaCBlaW5zY2hpZWJlbiBrb2VubmVuLi4uCgoyLiBJY2ggd2VyZGUgZHVyY2ggbWVpbmUgQXVzYmlsZHVuZyBiZWkgZGVyIFBvc3QgYmVzdGltbW10IG5vY2ggbGFuZ3NhbWVyCndlcmRlbiwgYWxzIGljaCBlaCBzY2hvbiBiaW4uLi4gQWxzbyBoYWJ0IE5hY2hzaWNodCBtaXQgbWlyICEhISA7LSkKClZpZWxlbiBEYW5rIGZ1ZXIgZGllIHN1cGVyIFplaXQgKGF1Y2ggd2VubiBpY2ggamV0enQga2VpbmVuIERpcGwuLUluZy4gdm9yCm1laW5lbSBOYW1lbiB0cmFnZW4ga2FubiAhIDstKSkgYW4gYWxsZSwgYWJlciBzcGV6aWVsbCBhbiA6CgpCaWJvLCBDeU1vbmssIERlU2FTVGEsIFNhaUtBTiwgTWFnaWNPbGxpLCBHdW1weSwgRGFpbW9udm9rLCBDZXJlYnVzLApSb21pbGkgKEZ1ZXIgZGllIFZpZWNoZXIgISEgOy0pKSB1c3cuIHVzdy4uLi4uCgpCaXMgZGllIFRhZ2UsIE1vbm90b25pICEgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLbmVpcGVuLSB1bmQgTGFkZW50ZXN0ZXIgZ2VzdWNodCAoQXJhbnlhLCAzMS4gQXVnIDE5OTUsIDE3OjE5OjEyKToKSWNoIGhhYiB2b24gSGF0ZSBkZW4gQXVmdHJhZyBnZWtyaWVndCwgZWluIG5ldWVzIE1HLUphaHJidWNoIHp1IGVyc3RlbGxlbi4KRGllIExhZWRlbiB1bmQgS25laXBlbiBzaW5kIHdvaGwgaW4gZGllc2VtIE1VRCB6aWVtbGljaCB3aWNodGlnIC0gZmluZGUgaWNoCnp1bWluZGVzdC4gRGVzaGFsYiBnZWhvZXJlbiBzaWUgbWVpbmVyIE1laW51bmcgbmFjaCBtaXQgaW5zIEphaHJidWNoLiBOdXIKa2FubiBpY2ggbmljaHQgYWxsZSBFdGFibGlzc2VtZW50cyBkaWVzZXIgQXJ0IGluIGRpZXNlciBzY2hvZW5lbiBXZWx0IGFsbGVpbgphdWZzdWNoZW4uIERlc2hhbGIgZGllIEJpdHRlIGFuIEV1Y2g6IEtlbm50IElociBlaW5lbiBuZXR0ZW4gTGFkZW4gb2RlciBlaW5lCmZyZXVuZGxpY2hlIEtuZWlwZSwgZGFubiBiZXNjaHJlaWJ0IHNpZSBtaXIgYml0dGUgdW5kIHNjaGlja3QgZGllc2VuIEFydGlrZWwKcGVyIE1VRG1haWwgYW4gbWljaC4gQml0dGUgbGFzc3QgZGllIEFydGlrZWwgZWluIHdlbmlnIGxlYmVuZGlnIHdlcmRlbiwgaW5kZW0KSWhyIGRpZXNlIE9ydGUgdGF0c2FlY2hsaWNoIGFucHJlaXN0IG9kZXIgdmVyZGFtbXQsIGplIG5hY2ggZGVtLgpXaWUgZGFzIG1pdCBuZXIgQmV6YWhsdW5nIGlzdCwgd2Vpc3MgaWNoIG5pY2h0LCBkYSBtdXNzIGljaCBtYWwgSGF0ZSBmcmFnZW4uCkJpcyBkZW5uZSAtIGZyZXUgbWljaCBhdWYgZGllIEFydGlrZWwuCgpBcmFueWEKICAgICAgbWl0IFByZXNzZWF1c3dlaXMgYW0gSHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmQgdW5nbGF1YmxpY2ggc2NobGVjaHRlIEdpdGFycmlzdGluIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWZXJsb2J1bmchIChOYWlyb2xmLCAgMS4gU2VwIDE5OTUsIDAyOjIzOjQwKToKSGFsbG8gTGV1dGUhCgpFbmRsaWNoLCBuYWNoIGxhbmdlciBsYW5nZXIgWmVpdCBrYW5uIGljaCBtZWluZSBWZXJsb2J1bmcgYmVrYW5udGdlYmVuOgpBbSBNaXR0d29jaCBkZW4gMzAuOC4xOTk1IHVtIDIwLjU3LjMxIFVociB3YXIgZXMgZW5kbGljaCBzb3dlaXQuLi4uCgogICAgICAgICAgICAgICAgICAgIFMgSSBOIEEgSCAgICAmICAgTiBBIEkgUiBPIEwgRgoKaGFiZW4gc2ljaCB2ZXJsb2J0ISBJY2ggbW9lY2h0ZSBtaWNoIGhpZXIgZ2xlaWNoIGF1Y2ggZGFmdWVyIGVudHNjaHVsZGlnZW4sCmRhcyB3aXIgdW5zZXJlIFZlcmxvYnVuZyBuaWNodCB2b3JoZXIgYW5nZWt1ZW5kaWd0IGhhYmVuLCBhYmVyIGVzIGhhdHRlIHNpY2gKa2VpbmUgWmVpdCBiaXMgZGFoaW4gZ2VmdW5kZW4uLi4gZGEgaWNoIHp1c2VociBtaXQgR2VsZHZlcmRpZW5lbiBiZXNjaGFlZnRpZ3QKd2FyKHVtIGRpZSBUZWxlZm9ucmVjaG51bmcgYmV6YWhsZW4genUga29lbm5lbiA6KSApCklociBrb2VubnQgZXVjaCBnYXJuaWNodCB2b3JzdGVsbGVuIHdpZSBnbHVlY2tsaWNoIGljaCB3YXIsIGVuZGxpY2ggZWluIEogQQp2b24gU2luYWggenUgaG9lcmVuLi4gYWJlciB3YXMgZXJ6YWVobGUgaWNoIGRhcy4uLiAoaW50ZXJlc3NpZXJ0IGphIGVoCmtlaW5lbi4uOigpCmFsc28gZGVubmUuLi4KCmV1ZXIncyAgICBLYWVwdCduIE5haXJvbGYgZGVyIGdsdWVja2xpY2ggdmVybG9idGUgSG9sbGFlbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtuZWlwZW4tIHVuZCBMYWRlbnRlc3RlciBnZXN1Y2h0IChBc21vZGlzLCAgMS4gU2VwIDE5OTUsIDA0OjI5OjI0KToKIyEgcm49QXJhbnlhIHJ0PTgwOTg4MjM1MgpTY2hvZW4gb2RlciBiaWxsaWcgPz8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLbmVpcGVuLSB1bmQgTGFkZW50ZXN0ZXIgZ2VzdWNodCAoQm9uZ28sICA1LiBTZXAgMTk5NSwgMDk6MTM6MDIpOgojISBybj1BcmFueWEgcnQ9ODA5ODgyMzUyCkFsYXJpbiBoYXR0ZSBtYWwgZWluZW4gS25laXBlbmZ1ZWhyZXIgZ2VzY2hyaWViZW4gaW4gZGVtIGJlc3RpbW10IGF1Y2ggbm9jaAplaW5lIGdhbnplIE1lbmdlIEtuZWlwZW4gdmVyemVpY2huZXQgc2luZC4gTWl0IEJlc2NocmVpYnVuZyB1bmQgUGZhZCBkZXIKamV3ZWlsaWdlbiBCYXIuIDotKSBEZXIgS25laXBlbmZ1ZWhyZXIgbGllZ3QgdW50ZQovcGxheWVycy9hbGFyaW4vb2JqL2Z1ZWhyZXIuYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFwaSBnZXN1Y2h0IChHdXlicnVzaCwgIDUuIFNlcCAxOTk1LCAxODozMzozMSk6CkhtLCBuYWNoZGVtIGljaCBzb29vb29vb3ZpZWwgRWNobyBhdWYgbWVpbmUgUGFwaS1TdWNoZSB3YWVocmVuZCBkZXIgRmV0ZQpnZWZ1bmRlbiBoYWJlLCBzY2hyZWliIGljaCBkb2NoIGhpZXIgbWFsIGVpbmUgU3VjaGFuemVpZ2U6CgpHZXN1Y2h0IHdpcmQ6CkZhZWhpZ2VyLCBnZWR1bGRpZ2VyLCBhdXNkYXVlcm5kZXIsIE1hZ2llciBvaG5lIE5lcnZlbiwgZGVyIGJhbGQgNTB0YWV0aWdlbgpTb2huZW1hbm4gYWRvcHRpZXJlbiBtb2VjaHRlLgoKVmVydHJhZyB3dWVyZGUgZ2VybiBhbSBHZWJ1cnRzdGFnIHVudGVyc2NocmllYmVuIDopCgpBbnR3b3J0ZW4gdW50ZXIgQ2hpZmZyZS4uLj8/KmtlZSBBaG51bmcqIGVpbmZhY2ggaGllciwgZGVuayBpY2ggOikKCkd1eWJydXNoLCBpc3QgZGVzIE1ldHplbG5zIG11ZWRlIHVuZCBoYXQga2VpbmUgWmVpdCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9sbGFlbmRlciBnZXN1Y2h0IChNeXN0aG9zLCAgNi4gU2VwIDE5OTUsIDAxOjQ4OjUwKToKU2VpdCBsYW5nZW0gaGFiZSBpY2ggZ2VkYWNodCwgZGVyIGVpbnppZ2UgSG9sbGFlbmRlciBpbiBNb3JnZW5ncmF1ZW4genUgc2Vpbi4KWnVmYWVsbGlnZXJ3ZWlzZSBoYWJlIGljaCBiZW1lcmt0IGRhcyBOYWlyb2xmIHNpY2ggdm9uIEdpZXNzZW4gYXVzIGVpbmxvZ2dzdC4KV2lyIGhhYmVuIHp1c2FtbWVuIGRhIGRydWViZXIgZ2VzcHJvY2hlbiB1bmQgZ2VkYWNodCBkYXMgd2lyCmhvY2hzdHdhaHJzY2hlaW5saWNoIG5pY2h0IGFsbGVpbmUgc2luZC4KCkFsc28ga29tbXN0IGR1IGF1cyBIb2xsYW5kLCBvZGVyIGtlbm5zdCBkdSB3ZWxjaGUgU3BpZWxlciBhdXMgSG9sbGFuZCBtZWxkCmRpY2ggZGFubiBiZWkgbWlyIG9kZXIgTmFpcm9sZiBiaXR0ZSAhISEKCllvdXJzIFRydWx5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVVNBLVVuaXMgKENlcmVidXMsICA2LiBTZXAgMTk5NSwgMTY6MDY6MTcpOgpNb2luIQoKSWNoIHBsYW5lIGRlcnplaXQgbWVpbmVuIEF1c2xhbmRzYXVmZW50aGFsdCBuYWVjaHN0ZXMgSmFociB1bmQgd29sbHRlIGZyYWdlbiwKb2IgamVtYW5kIHZvbiBFdWNoIHp1ZmFlbGxpZyAob2RlciBnZXBsYW50KSBlaW5lIGRlciBmb2xnZW5kZW4gVW5pcyBrZW5udCB1bmQKbWlyIGdnZnMuIHdhcyBkYXJ1ZWJlciBlcnphZWhsZW4ga2FubjoKCi0gQ2VudHJhbCBDb25uZWN0aWN1dCBTdGF0ZSBVbml2ZXJzaXR5CgpXZXN0IFZpcmdpbmlhIFVuaXZlcnNpdHkKCi0gV2VzdGVybiBJbGxpbm9pcyBVbml2ZXJzaXR5CgpVbml2ZXJzaXR5IG9mIEFyaXpvbmEKCkNlcmVidXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNudWdnbGUgKEFyYW55YSwgMTkuIFNlcCAxOTk1LCAxNzoyMzo0OSk6CltWZXJsZWd0IHZvbiBhbGxnZW1laW5lcywgQXJhbnlhLCAxOS4gU2VwIDE5OTUsIDE3OjIyOjExXToKQXJhbnlhCmZlbmRvcmYKRmVzdGxhbmQKCkJldHIuOiBWZXJ3ZW5kdW5nIGVpbmVzIFNwcnVjaGVzIGluIGRlciBPZWZmZW50bGljaGtlaXQKSGllcm1pdCB3aXJkIFNudWdnbGUgZGllIEVybGF1Ym5pcyBlcnRlaWx0LCBpbiBkZXIgT2VmZmVudGxpY2hrZWl0ICBkYXMgWmktCnRhdCAiTXVkZGVySW5uZW4gaGllciB1bmQgZHJhdXNzZW4gYW4gZGVuIEFwcGFyYXRlbiIgYXVjaCBpbiB2ZXItCmt1ZXJ6dGVyIEZvcm0gb2RlciBzaW5uZ2VtYWVzcyB6dSB2ZXJ3ZW5kZW4uCkVpbmUgUXVlbGxlbmFuZ2FiZSBpc3QgbmljaHQgdm9ubm9ldGVuCgpQb3J0IFZhaW4sIGRlbiAyMC4wOS45NQpBcmFueWEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbmZhZW5nZXItSGlsZmUgKERhdWVyZ2FzdCwgMjEuIFNlcCAxOTk1LCAwODo1NDowMyk6CkhpIEV2ZXJ5b25lIQoKTmFjaGRlbSBkaWUgbGV0enRlbiB0ZXN0YW1lbnRhcmlzY2hlbiBTdHJlaXRpZ2tlaXRlbgphdXMgZGVyIFdlbHQgZ2VzY2hhZmZ0IHd1cmRlbiwga2FubiBlaW5lIGtsZWluZSBBbmZhZW5nZXItU3RhcnRoaWxmZQpkZXIgT2VmZmVudGxpY2hrZWl0IHVlYmVyZ2ViZW4gd2VyZGVuOgoKTmV3YmllcywgZGllIG1pdHRlbGxvcyBpbnMgTUcgZ2VzY2hsZXVkZXJ0IHdlcmRlbiwKa29lbm5lbiBzaWNoIGV0d2FzIFN0YXJ0a2FwaXRhbCAoYXVjaCBBbmZhZW5nZXItQXVzcnVlc3R1bmcpCmF1cyBkZW0gVHJlc29yIGltIFNlaGVyaGF1cyB2b24gS3JpZ2kgKFJJUCkgZW50bmVobWVuIQoKRGllc2VyIFNlcnZpY2Uga2FubiBhbGxlcmRpbmdzIG51ciBiZWkgTWl0c3BpZWxlci1mcmV1bmRsaWNoZW0KVmVyaGFsdGVuIGFsbGVyIGF1ZnJlY2h0ZXJoYWx0ZW4gd2VyZGVuIQpXZXIgZWluZW4gQW5mYWVuZ2VyIGRvcnRoaW4gZnVlaHJ0IChRdWVzdD8gaGloaS4uLikgc29sbHRlIGRpZXNlbSBhdWNoCmtsYXJtYWNoZW4sIFdJRVZJRUwgbWFuIGV0d2EgYW0gQW5mYW5nIGJyYXVjaHQhCgpXZXIgYmVpbSBGdWVsbGVuIGRlcyBUcmVzb3JzIGhlbGZlbiBtb2VjaHRlLCBpc3QgbmF0dWVybGljaCBoZXJ6bGljaCBkYXp1CmVpbmdlbGFkZW4hIQoKRGF1ZXJnYXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGdWVocmVyIGdlc3VjaHQgLyBvZGVyIGJlc3NlciB3ZXIgaGF0IEx1c3QgbWl0enVrb21tZW4/IChBbGluZSwgMjEuIFNlcCAxOTk1LCAxMToxNzo0Mik6CkhhbGxvIExldXRlIQoKbmFjaGRlbSBpY2ggamV0enQgc2Nob24gZXR3YXMgZGllIFNTUCAobWl0IHVuZCBvaG5lIEZ1ZWhyZXIpIGtlbm5lbmdlbGVybnQKaGFiZSwgZ2ViZSBpY2ggaGllciBtYWwgd2llZGVyIGVpbmUgQW5mcmFnZSByYXVzLgoKTGV0enRlbnMgaGFiZSBpY2ggbWljaCBpbiBlaW5lbSBNb25vbGl0aGVuIHdpZWRlcmdlZnVuZGVuIGRlbiBpY2ggYWxzIFNwaWVsZXIKKGFscyBpY2ggaWhuIGVudGRlY2t0ZSkgbmljaHQgYmV0cmV0ZW4ga29ubnRlIHVuZCBkZXIgbWljaCBkZXN3ZWdlbgpuaWNodCB3ZWl0ZXIgaW50ZXJlc3NpZXJ0ZS4gSmV0enQgbW9lY2h0ZSBpY2ggaWhuIG1pciBnZW5hdWVyIGFuc2NoYXVlbiwKaGFiZSBhYmVyIHdlbmlnIEx1c3QgZG9ydCBhbGxlaW5lIGhlcnVtIHp1IGxhdWZlbiEKQWxzbyB3ZXIga29tbXQgbWl0PyBPZGVyIHdlciBpc3Qgc28gbmV0dCB1bmQgemVpZ3QgbWlyIHp1bWluZGVzdCBlaW5lbgpXZWcgbmFjaCBkcmF1c3Nlbj8KCkFsaW5lIChmaW5kZXQgZXMgbmV0dGVyIG5pY2h0IGFsbGVpbmUgenUgc3RlcmJlbikgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFua3VlbmRpZ3VuZyAoT20sIDIxLiBTZXAgMTk5NSwgMTM6NDE6MzQpOgpNZWluZSBEYW1lbiB1bmQgSGVycmVuIFNlaGVyLCB2ZXJlaHJ0ZSBLdW5kZW4hCgpNZWluZSBBcXVpcmllcnVuZ3NmYWNobGV1dGUgdW5kIEVpbmthZXVmZXIgaGFiZW4gZWluIGhvY2hpbnRlcmVzc2FudGVzCkdlcmFldCBlbnRkZWNrdCB1bmQga29ubnRlbiBzZWluZW0gU2Nob2VwZmVyIGVpbiBsdWtyYXRpdmVzIEFuZ2Vib3QgZnVlcgplaW5lIHJlZ2VsbWFlc3NpZ2UgTGllZmVydW5nIHVudGVyYnJlaXRlbi4gRGFzIHZlcnNldHp0IG1pY2ggaW4gZGllIExhZ2UKSWhuZW4sIG1laW5lIERhbWVuIHVuZCBIZXJyZW4sIGRpZXNlcyBHZXJhZXQgZnVlciBlaW5lbiBhbmdlbWVzc2VuZW4gUHJlaXMKYW56dWJpZXRlbi4KCktvbW1lbiBTaWUgdW5kIHN0YXVuZW4gU2llLCBTaWUgd2VyZGVuIGVzIG5pY2h0IGJlcmV1ZW4gZWluZSBzb2xjaGUKTWVpc3RlcmxlaXN0dW5nIGRlciBtb2Rlcm5lbiBUZWNobm9sb2dpZSB6dSBiZXNpdHplbi4KCkRpZXNlcyBHZXJhZXQgaXN0IGluIGRlciBMYWdlLCBkaWUgV2lya2xpY2hrZWl0IGF1ZiBQYXBpZXIgenUgYmFubmVuLCBlcwpwcm9kdXppZXJ0IG5hdHVyZ2V0cmV1ZSBBYmJpbGRlciB2b24gYWxsZW0gd2FzIGVzIGdpYnQuIFNpZSBmZXJ0aWdlbiBCaWxkZXIKdm9uIE9iamVrdGVuLCBQZXJzb25lbiB1bmQgUmFldW1lbiBpbiBuaWUgZGFnZXdlc2VuZXIgUXVhbGl0YWV0IG1pdCBkZXIKTGVpY2h0aWdrZWl0IGVpbmVzIGFuLWRlci1TY2hudXItemllaGVucyBhbi4KCkJlc3VjaGVuIFNpZSB1bnNlcmVuIExhZGVuIHVuZCBlcndlcmJlbiBTaWUgZWluZSBkaWVzZXIgS29zdGJhcmtlaXRlbiB6dQp1bnNlcmVuIGd1ZW5zdGlnZW4gS29uZGl0aW9uZW4uIFNpZSBmaW5kZW4gdW5zIGF1ZiBkZXIgSW5zZWwgU3ZvbHZhZXIsCnZlcmtlaHJzZ3VlbnN0aWcgdm9uIFBvcnQgVmFpbiBhdXMgbWl0IGRlbSBTY2hpZmYgb2RlciB2b24gbWVocmVyZW4gT3J0ZW4KTW9yZ2VuR3JhdWVucyBtaXQgUGVnYXN1cyB6dSBlcnJlaWNoZW4uCgpNaXQgZnJldW5kbGljaGVtIEtudWRkZWxuLAoKSWhyIExhZ2VydmVyd2FsdGVyIGRlcyBTZWhlcmxhZGVucwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFua3VlbmRpZ3VuZyAoT3JrdG9ldGVyLCAyMS4gU2VwIDE5OTUsIDE1OjUwOjU5KToKIyEgcm49T20gcnQ9ODExNjgzNjk0CklzdCBqYSBuZXR0LCBhYmVyIGRlciBTZWhlcmxhZGVuIGlzdCwgd2llIHNjaG9uIGRlciBOYW1lIHNhZ3QgbnVyIGZ1ZXIKU2VoZXIuLi4gICBlaW4gZW50c3ByZWNoZW5kZXIgSGlud2VpcywgZGVyIG5pY2h0LVNlaGVybiBkZW4gV2VnIGVyc3BhcnQgd2FlcmUKZ2FueiBuZXR0IGdld2VzZW4uLiA6KQpPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFuZmFlbmdlci1IaWxmZSAoQXNtb2RpcywgMjEuIFNlcCAxOTk1LCAyMjozMToyMik6CiMhIHJuPURhdWVyZ2FzdCBydD04MTE2NjY0NDMKV28gaXN0IGRlbm4gZGFzIFNlaGVyaGF1cyB2b24gS3JpZ2k/IEplZGVuIHp3ZWl0ZW4gVGFnIGVpbiBuZXVlcywgZGEga2FubgptYW4gc2ljaCB3aXJrbGljaCBuaWNodCBtZWhyIGFsbGUgbWVya2VuICEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFua3VlbmRpZ3VuZyAoT20sIDIyLiBTZXAgMTk5NSwgMDg6NDQ6MzgpOgojISBybj1Pcmt0b2V0ZXIgcnQ9ODExNjkxNDU5CkljaCBkYWNodGUsIGRhIGRlciBMYWdlcnZlcndhbHRlciBkZXMgU2VoZXJsYWRlbnMgdW50ZXJzY2hyaWViZW4gaGF0Cnd1ZXJkZSBkYXMgYXVzcmVpY2hlbi4uLiBOYWphLCBkYW5uIGlzdCBlcyBoYWx0IGhpZXJtaXQgZ2V0YW4gOikKCkJ5ZQpPbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBbmZhZW5nZXItSGlsZmUgKERhdWVyZ2FzdCwgMjIuIFNlcCAxOTk1LCAwOTowOToxOSk6CiMhIHJuPUFzbW9kaXMgcnQ9ODExNzE1NDgyCkhpIEFzbW9kaXMhCkFsc28gZGFzIEhhdXMgdm9uIEtyaWdpIHN0ZWh0IGRhIG51biBkb2NoIHNjaG9uIGVpbmlnZSBaZWl0IQpVbSBhYmVyIG5vY2htYWwgJ25lIEhpbGZlIHp1IGdlYmVuOgpXZXIgaW4gbGV0enRlciBaZWl0IG5ldS1nZXdvbHBlcnQgaGF0IHVuZCBkYXMgV2FzY2hiZWVyZW4tRmVsbCBicmF1Y2h0ZQoqc2NobmllZiosIGthbSB3b2hsIGRyYW4gdm9yYmVpIQpGdWVyIGFsbGUgYW5kZXJlbjogRGllIFdhbGRzZWl0ZSBkZXMgQmVybmhhcmRpbmVycyB6dSB1bnRlcnN1Y2hlbiwga29lbm50ZQpzaWNoIGxvaG5lbi4uLgoKQWNoIER1IFNjaGVpc3NlLi4uLi5USUlJSU1CRUVFRUVSCgpEYXVlcmdhc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRFUiBJUlJFIFdFTFRSQVVNUFJPTEVUIGlzdCBkYSEhISAoTnVkZWksIDIyLiBTZXAgMTk5NSwgMDk6NTY6MTcpOgpMaWViZSBMZXJzZXIgdW5kIElubmVuIGRlcyBERVIgSVJSRSBXRUxUUkFVTVBST0xFVCBvZGVyIHNvbGNoZSwgZGllIGVzCndlcmRlbiB3b2xsZW4hCgoKRVMgSVNUIFdJRURFUiBTT1dFSVQhISEhISEhIQoKRGllIGxhbmdlIER1cnN0c3RyZWNrZSBpc3QgdWViZXJ3dW5kZW4uIGRpZQoKQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQApAQEBAQEBAQCAgICBTRVBURU1CRVJBVVNHQUJFICAgICBAQEBAQEBAQEBAQEBACkBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAKCmlzdCBzb2ViZW4gZmVydGlnZ2VzdGVsbHQuIEFsbGUgbWVpbmUgQWJvbm5lbnRlbiBlcmhhbHRlbiBzaWUgdW1nZWhlbmQKYXVmIHBvc3RhbGlzY2hlbSBXZWdlLgpadXIgRXJrbGFlcnVuZyBmdWVyIGFsbGUsIGRpZSBtaWNoIGpldHp0IHdnLiBLb21tZXJ6aWFsaXNpZXJ1bmcgZmxhbWVuCndvbGxlbjoKRGVyIERFUiBJUlJFIFdFTFRSQVVNUFJPTEVUIChrb3JyZWt0ZSBCZXplaWNobnVuZyBpc3QgRGlXcCkgaXN0IGVpbmUKdW5rb21tZXJ6aWVsbGUgRmx1Z3NjaHJpZnQgenVyIEhlYnVuZyBkZXMgbGViZW5zZ2VmdWVobGVzIGFsbCBzb2xjaGVyClJvbGxlbnNwaWVsZXIgKFJTUGxlciksIGRpZSBnZXJuZSBtYWwgYmVpIGVpbmVyIE1laW51bmdzdmVyc2NoaWVkZW5oZWl0Cnp1ciBCcmVpdGF4dCBncmVpZmVuLiBXaXIgd29sbGVuIGRhcyBuaWNodCwgd2llIGVzIGluIHBvbGl0aXNjaCBrb3JyZWt0ZW4KUm9sbGVuc3BpZWxlbiB2b3Jrb21tdCwgdmVydGV1ZmVsbiwgc29uZGVybiBFUk1VVElHRU4hIEJMVVQgQkxVQkJFUiBaQUNLClVGRiBBRUNIWiEgRXMgbGViZSBEU0EhCkVzIGdlaHQgbmljaHRzIHVlYmVyIGVpbmlnZSBlcmhlaXRlcm5kZW4gWmVpbGVuIHp1IGRpZXNlbSBUaGVtYS4KWi5CLiBJbmhhbHQgZGVyIGRpZXNtb25hdGxpY2hlbiBBdXNnYWJlOgoKCisgR2VoYWx0dm9sbGUgS3Vyemdlc2NoaWNodGUgKEtHKSBkZXMgTW9uYXRzIC0gc2VociBwcm9ncmFtbWF0aXNjaAorIE5ldWUgQWJlbnRldWVyIHZvbiBTY2h1cmwsIEtlcHRuIGRlciBTcGFjZWJvdHRsLSBzZWhyIGVyZ3JlaWZlbmQKb2VzdGVycmVpY2hpc2NoCisgRWluIHdlaXRlcmVzIEthcGl0ZWwgYXVzIGRlbiBBdWZ6ZWljaG51bmdlbiBIeXJvbmltdXMgZGVzIFppdHRyaWdlbiwKZ2VuYW5udCBERVIgQ0hST05JU1QtIHNlaHIgZXJoZWl0ZXJuZAorIEdydW5kc2FldHpsaWNoZSBCZXRyYWNodHVuZ2VuIHp1bSBBbnJlZ2VuZGVuIEdlc3RhbHRlbiBlaW5lcgpSb2xsZW5zcGllbHJ1bmRlLSBzZWhyIGFwb2thbHlwdGlzY2gKCnUudi5tLgoKZXIgamV0enQgbm9jaCB3YXMgdWViZXIgQmV6dWdzYmVkaW5ndW5nZW4sIFZlcnNhbmRrb3N0ZW5iZWl0cmFnICh3ZWlsCmRpZSBLb3BpZSBiZXphaGxlIGljaCBzZWxic3QsIGZ1ZXIgYWxsZXMga2FubiBtYW4ga2VpbiBHZWxkIHZlcmxhbmdlbikKZXRjIHdpc3NlbiB3aWxsLCBkZXIgbWVsZGUgc2ljaCBwZXIgTXVkbWFpbCBvZGVyIGJlaQpoOTQ1MDAyN0BmYWxiYWxhLnd1LXdpZW4uYWMuYXQKCk51ZGVpLCBTY2hyaWZ0bGVpdHVuZyBEaVdwCgpQUzogRWluaWdlIGhhYmVuIHNjaG9uIGd1dGUgRXJmYWhydW5nIGdlbWFjaHQgZGFtaXQsIGZyYWd0IG1hbCBuYGJpc3NjaGVuCnJ1bS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBbmZhZW5nZXItSGlsZmUgKFdhcmdvbiwgMjIuIFNlcCAxOTk1LCAxMToyODowNCk6CiMhIHJuPUFzbW9kaXMgcnQ9ODExNzE1NDgyCkplZGVuIHp3ZWl0ZW4gVGFnIGVpbiBuZXVlcyBIYXVzPyBTZWl0IGRlciBVbXN0ZWxsdW5nIGRlciBaYWhsdW5nIHZvbiBHZWxkCmF1ZiBFcmZhaHJ1bmdzcHVua3RlIGhhdCBkaWUgQmF1d3V0IGlyZ2VuZHdpZSBuYWNoZ2VsYXNzZW4uLi4KICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFuZmFlbmdlci1IaWxmZSAoQXNtb2RpcywgMjIuIFNlcCAxOTk1LCAxNTo1ODoyNSk6CiMhIHJuPURhdWVyZ2FzdCBydD04MTE3NTM3NTkKTiBndXQsIGljaCB3ZXJkIGFiIHVuZCB6dSBtYWwgd2FzIHNwZW5kZW4sIGJpbiBhdWNoIG5pY2h0IGltbWVyIG1ldHplbHd1ZXRpZwo6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQW5mYWVuZ2VyLUhpbGZlIChVbG8sIDIyLiBTZXAgMTk5NSwgMTc6MTk6NTYpOgojISBybj1XYXJnb24gcnQ9ODExNzYyMDg0CkRhcyBkYXMgbWl0IGRlbiBFUCBpcmdlbmR3aWUgc2Nod2llcmlnZXIgaXN0LCBhbHMgbWl0IGRlbSBHZWxkLCBkYXMgaXN0IGphCmtsYXIsIGRlbm4gbWFuIGtvbm50ZSBqYSBlaW5lIGJlbGllYmlnZSBTdW1tZSBHZWxkIHByb2JsZW1sb3MgYXVmIGRlbgpNYXN0ZXJibG9jayB0cmFuc2ZlcmllcmVuLgpOb2NoIGpldHp0IGlzdCBlcyBtaXIgZWluIFJhZXRzZWwsIHdhcnVtIG1hbiBCYW5rendlaXRpZXMgYnJhdWNodCwgZXMgZ2lidCBqYQpub2NoIGltbWVyIGVpbmUgVkVSTFVTVExPU0UgbW9lZ2xpY2hrZWl0LCBkZW0gR2VsZCBkYXMgR2V3aWNodCB6dSBuZWhtZW4hClJlc3Rsb3MhCk1pdCBkZXIgRVAgTG9lc3VuZyBpc3NlcyBoYWx0IGVocmxpY2hlciB1bmQgdW5hdHRyYWt0aXZlciBnZXdvcmRlbiB1bmQKClVsby4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEFuZmFlbmdlci1IaWxmZSAoQW5ha2luLCAyMi4gU2VwIDE5OTUsIDE3OjIzOjQ4KToKIyEgcm49VWxvIHJ0PTgxMTc4MzE5NgpIaSwKCkRhIER1IG5pY2h0IHdlaXNzdCB3b3p1IG1hbiBCYW5rendlaXRpZXMgYnJhdWNodCwgc2FnIGljaCBEaXIgbWFsIHdhcnVtCmljaCBlaW4gKG9kZXIgendlaSA/IDotKSBCYW5rendlaXRpZXMgaGFiZS4gV2VubiBpY2ggbWl0dGVuIGltIEthZW1wZmVuCmJpbiByZW5uIHp1ciBLbmVpcGUgdW5kIG1ldHplbCBhdWYgZWlubWFsIGhhYiBpY2gga2VpbiBHZWxkIG1laHIsIGRhbm4KbmVobSBpY2ggZXMgdm9uIG5lbSBad2VpdGllLiBKYWphIG1hbiBrb2VubnRlIGphIFNhY2hlbiBlaW5zYW1tZWxuIHVuZAp2ZXJrYXVmZW4gZGllIGRhIHNvIHJ1bWxpZWdlbiwgYWJlciBtYW4gaGF0IG5pY2h0IGltbWVyIGRpZSBaZWl0CmRhenUsIGJlc29uZGVycyBkb3J0IHdvIGRpZSBNb25zdGVyIHNjaG5lbGwgcmVzZXR0ZW4uIERFU1dFR0VOIGhhYgppY2ggQmFua3p3ZWl0aWVzLgoKQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQW5mYWVuZ2VyLUhpbGZlIChPcmt0b2V0ZXIsIDIyLiBTZXAgMTk5NSwgMTc6Mjg6MDgpOgojISBybj1VbG8gcnQ9ODExNzgzMTk2CkRhZnVlciBsaWVndCBqZXR6dCB1ZWJlcmFsbCBNYXNzZW53ZWlzZSBNdWVsbCBydW0sIGRlciBzb25zdCB2b24KSGFldXNsZWJhdWVybiAiZW50c29yZ3QiIHd1cmRlLgpPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW1tZXIgbm9jaCBhdWYgZGVyIFN1Y2hlIG5hY2ggS25laXBlbmZ1ZWhyZXIgKEFyYW55YSwgMjMuIFNlcCAxOTk1LCAxNTo0Mjo1NSk6ClRqYSwgTGV1dGUsIHNvIHJhc2VuZCB2aWVsIGthbSBqYSBub2NoIG5pY2h0IGFuLCB2aWVsbWVociBnYW56IGltIEdlZ2VudHVtIQpCaXNoZXIgaXN0IG5vY2ggS0VJTiBlaW56aWdlciBCcmllZiBtaXQgZWluZW0gQXJ0aWtlbCBhbiEgSmF3b2hsISBTY2hhZW10CmV1Y2ghIEFsc28gaGllciBtZWluIHp3ZWl0ZXIgQXVmcnVmOiBNYWlsdCBtaXIgZWluZSBCZXNjaHJlaWJ1bmcgRXVyZXIgU3RhbW0tCmtuZWlwZSB1bmQgRXVyZXMgTGllYmxpbmdzbGFkZW5zLCBkYW1pdCBkaWVzZSBpbSBrb21tZW5kZW4gTUctSmFocmJ1Y2ggdmVyLQpvZWZmZW50bGljaHQgd2VyZGVuIGthbm4gLSBXYWhyc2NoZWlubGljaCBtaXQgRXVyZW0gTmFtZW4hIE5hLCB3YWVyIGRhcyBuaXg/CgpBcmFueWEKICAgICAgSm91cm5hbGlzdGluIGF1cyBMZWlkZW5zY2hhZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEFuZmFlbmdlci1IaWxmZSAoV2FyZ29uLCAyNS4gU2VwIDE5OTUsIDEwOjEwOjM4KToKIyEgcm49T3JrdG9ldGVyIHJ0PTgxMTc4MzY4OApIbW0sIGRpZSBtZWlzdGVuIGhhYmVuIGRvY2ggd29obCBkZW4gImhvbGUgYmFua3p3ZWl0aSBuYWNoCnp3ZXJnZW5zY2htaWVkO2thdWZlIDEwMDAgYWV4dGU7cmVubiBuYWNoIHp3ZXJnZW5sYWRlbjt2ZXJrYXVmZSAxMDAwCmFleHRlIi1UcmljayBiZW51dHp0Li4uCiAgV2FyZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBbmZhZW5nZXItSGlsZmUgKFJ4dGVjaCwgMjUuIFNlcCAxOTk1LCAxMDoxNjoyOCk6CiMhIHJuPVdhcmdvbiBydD04MTIwMjAyMzgKbmF0dWVybGljaCwgYWJlciBlcyB3YXIgZWNodCBzY2h3aWVyaWcsIGRlbiBiYW5rendlaXRpIGF1ZiBzdGFlcmtlIDcwIHp1CmtyaWVnZW4gLCBkYW1pdCBlciAxMDAwIGFleHRlIHRyYWdlbiBrb25udGUgOikKCnJ4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBbmZhZW5nZXItSGlsZmUgKE1vcmdvdGgsIDI1LiBTZXAgMTk5NSwgMTA6MTc6MTcpOgojISBybj1SeHRlY2ggcnQ9ODEyMDIwNTg4CmtlaW4gcHJvYmxlbSwgbWFjaCBkaXIgbmVuIG1hZ2llci1iYW5rendlaXRpZSwgZGVyIGthbm4gdW5saW1pdGllciB0cmFnZW4uLi4KKGlyb25pZSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEFuZmFlbmdlci1IaWxmZSAoVWxvLCAyNS4gU2VwIDE5OTUsIDE0OjA0OjA5KToKIyEgcm49TW9yZ290aCBydD04MTIwMjA2MzcKQWxzbywgd2VyIGthdWZ0IGRlbm4gc2Nob24gQWV4dGUsIHdlbm4gZ2xlaWNoIG5lYmVuYW4gZGVyIEouLiBhZWgsIGJlaW5haGUKaGFldHRlIGljaCBqZXR6dCBTcGllbGVyaGlsZmUgZ2VnZWJlbiA6KSAuLiBzb29vIHNjaG9lbmUgUi4uLiB2ZXJrYXVmdC4KVW5kIGRhIGJyYXVjaHQgbWFuIGRhbm4ga2VpbmVuIE1hZ2llcnp3ZWl0aWUsIGRlbm4gdm9tIEdld2ljaHQgaGVyIGlzdCBzbyBlaW4KUi4uLi4uIHdvaGwgZXR3YXMgbGVpY2h0ZXIgYWxzIGVpbmUgQXh0LgpEZXIgTnV0emVuIGhhdCBzaWNoIGV0d2FzIHJlbGF0aXZpZXJ0IG1pdCBkZXIgRWluZnVlaHJ1bmcgZGVyIG5ldWVuIExhZWRlbiwKYWJlciBlcyBiaWxkZXQgbm9jaCBpbW1lciBlaW5lIE1vZWdsaWNoa2VpdCBvaG5lIEJhbmt6d2VpdGllcyByZWJvb3RmZXN0IEdlbGQKYW56dWxlZ2VuLCBvZGVyIHRhZXVzY2hlIGljaCBtaWNoIGRhPwoKVWxvLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogQW5mYWVuZ2VyLUhpbGZlIChDdWNodWxsaW4sIDI1LiBTZXAgMTk5NSwgMTQ6Mjk6MzkpOgojISBybj1VbG8gcnQ9ODEyMDM0MjQ5CgpJbnp3aXNjaGVuIGhhYmVuIEFleHRlIHVuZCBSaW5nZSBpaHJlbiBSZWl6IHZlcmxvcmVuLiBTY2hsaWVzc2xpY2ggaXN0IGRlcgpIYWVuZGxlciBpbnp3aXNjaGVuIGRhenUgdWViZXJnZWdhbmdlbiwgbnVyIG5vY2ggZnVlciBkaWUgZXJzdGVuIHZpZXIgb2RlcgpmdWVuZiBSaW5nZSBkaWUgaW4gc2VpbmVuIEJlc3RhbmQga29tbWVuLCBkZW4gdm9sbGVuIFByZWlzIHp1IGJlemFobGVuIDopCgpDdWNoLi0gKHdpcmQgZHVyY2ggZGllIEVQLVJlZ2VsdW5nIHdvaGwgYXVmIGVpbmVuIEFuYmF1IHZlcnppY2h0ZW4gbXVlc3NlbikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBbmZhZW5nZXItSGlsZmUgKE9ya3RvZXRlciwgMjUuIFNlcCAxOTk1LCAxODoxNjoxOCk6CiMhIHJuPVdhcmdvbiBydD04MTIwMjAyMzgKU2VsYnN0IHdlbm4gZXMgZGllIExldXRlIHNvIGdlbWFjaHQgaGFiZW4sIHNvIG11ZXNzZW4gc2llIGRvY2ggdm9yaGVyIGVyc3RtYWwKZGVuIGdhbnplbiBNdWVsbCBpbSBNRyBlaW5nZXNhbW1lbHQgaGFiZW4gdW0gYW4gZGFzIEdlbGQgenUga29tbWVuLCBpY2ggc2VoZQpuaWNodCwgd28gZHUgbWVpbiBBcmd1bWVudCB3aWVkZXJsZWd0IGhhYmVuIHdpbGxzdCA/Ck9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBbmZhZW5nZXItSGlsZmUgKEphZiwgMjYuIFNlcCAxOTk1LCAxODoyODoxNSk6CiMhIHJuPVdhcmdvbiBydD04MTIwMjAyMzgKSWNoIG5pY2h0LgoKRnl0LiBadSBkdW1tIGRhenUgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJPREVMV0VMVE1FSVNUQUFBRUVFUiAhISEgKEplcnJpY28sIDI3LiBTZXAgMTk5NSwgMjM6Mjk6NDcpOgpsaWVzIGxpc3RlCkhpZXIgZm9sZ3QgZWluZSBMaXN0ZSBhbGxlciBHZXdpbm5lciBkZXMgcmFzZW5kZW4gUm9kZWxyZW5uZW5zOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi4uLi5laW4gcGFhciBBbWF0ZXVycmVubmVuIDopLi4uCi4uLi4uCi4uLi4uCnVuZCBkYW5uIGluIGRlciBQcm9maWxpZ2E6CkplcnJpY28gaGF0IGFtIDI3LiBTZXAgMTk5NSBCdWRkZWxmbGluayBiZXNpZWd0LgoKCkplcnJpY28gZmFlaHJ0IGF1Y2ggbWl0IERJUiBTY2hsaXR0ZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlYnJhdWNodGVyIFNjaGxpdHRlbiAoUnluZSwgMjguIFNlcCAxOTk1LCAxMzo1NToyNSk6CkxlaWNodGVyIEthbXBmc2NobGl0dGVuLCBFWiA5Lzk1LCB2aWVsZSBFeHRyYXMsIHdlbmlnIGdlZmFocmVuLCBvcHRpbWFsZQpBdXNydWVzdHVuZywgU2llZ2VyZmFocnpldWcsIGFuIHZlcnRyYXVlbnN2b2xsZSBIYWVuZGUgZ3VlbnN0aWcgYWJ6dWdlYmVuLApQcmVpcyBWQi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWJyYXVjaHRlciBTY2hsaXR0ZW4gKEFuYWtpbiwgMjguIFNlcCAxOTk1LCAxMzo1NjoyMik6CiMhIHJuPVJ5bmUgcnQ9ODEyMjkyOTI1CkhtbSBpc3QgZGFzIGRlciBTY2hsaXR0ZW4sIG1pdCBkZW0gRHUgZ2VmYWhyZW4gYmlzdCBhbHMgaWNoCmRpY2ggendlaW1hbCBiZXNpZWd0ZT8KCkFuYWtpbi4gR3JpbnNlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdlYnJhdWNodGVyIFNjaGxpdHRlbiAoVG9zcywgMjguIFNlcCAxOTk1LCAxNDowNzoxMik6CiMhIHJuPUFuYWtpbiBydD04MTIyOTI5ODIKbmVpbiwgZGFzIHdhciBkZXIsIG1pdCBkZW0gaWNoIDUgbWFsIGF1cyBkZXIgYmFobiBnZWZsb2dlbiBiaW4sIG9obmUgZGFzcwptaWNoIHVlYmVyaGF1cHQgZWluZXIgYmVoaW5kZXJ0ZS4uLiBhYmVyIHBzc3NzdCA7KSkKClJ6bmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUk9ERUxXRUxUTUVJU1RBQUFFRUVSICEhISAoQXNtb2RpcywgMjkuIFNlcCAxOTk1LCAwMToyNzo1MSk6CiMhIHJuPUplcnJpY28gcnQ9ODEyMjQwOTg3CndvaGx3ZWlzbGljaCB2ZXJzY2h3aWVnZW4sIGRhc3MgZHUgdm9ybWFscyAzeCBoaW50ZXJlaW5hbmRlcgpnZWdlbiBCdWRkZWxmbGluayB2ZXJsb3JlbiBoYXR0ZXN0IDopCgpIbW0sIGJpc2hlciBoYXQgbWljaCBhdWNoIGVyc3QgSXNzb21hZCBiZXNpZWd0IDopCgogICAgICAgICAgICBDaWFvLCBBc21vZGlzCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBST0RFTFdFTFRNRUlTVEFBQUVFRVIgISEhIChKZXJyaWNvLCAyOS4gU2VwIDE5OTUsIDAxOjMwOjAyKToKIyEgcm49QXNtb2RpcyBydD04MTIzMzQ0NzEKV2llIGdlc2FndCBpY2ggd29sbHRlIGlobiBuaWNodCBzb2ZvcnQgdmVyZ3JhdWxlbiwgaGFldHRlIGljaCBpaG4gc2Nob24Kdm9yaGVyIDMgbWFsIGJlc2llZ3QsIHd1ZXJkZSBlciBiZXN0aW1tdCBuaWUgd2llZGVyIG1pdCBtaXIgcm9kZWxuIGdlaGVuIDopCgpKZXJyaWNvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXIgc2Nob24gaW1tZXIgbWFsIHdpc3NlbiB3b2xsdGUgd2llIG1hbmNoZSAgKEZlZWNoZW4sIDI5LiBTZXAgMTk5NSwgMTE6MzA6MjApOgouLi5TcGllbGVyIGF1c3NlaGVuLiBLYW5uIHNpY2ggZWluIHBhYXIgbmV1ZSBCaWxkZXIgYW5zZWhlbi4gSGllciBkaWUKQWRyZXNzZTogaHR0cDovL2FyYWNobnVzLmNzbi50dS1jaGVtbml0ei5kZS9+cmVpdHovdHVlYmluZ2VuL2JpbGRlci5odG1sCkF1ZiBkZW4gQmlsZGVybiBzaW5kIEphciwgUmlrdXMsIEFsYm9pbiwgTG9jbywgQnJpdCwgRmVlY2hlbiAoYWxpCkF2YWxvbmEpW0FbQVtDW0NbQ2FlaG0gaWNoIG1laW5lIEphZi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSWNoIHZlcnN1Y2hzIGVpbiAydGVzIG1hbC4uLiAoU2VtaXJhLCAgMi4gT2t0IDE5OTUsIDE1OjUxOjU5KToKSGkgRXZlcnltdWRkaWUhCgpBbHNvIGRlbm4sIGFsbGVyIGd1dGVuIERpbmdlIHNpbmQgendlaSEgSWNoIGhlaXJhdGUgd2llZGVyIHVuZCBsYWRlIGFsbGUgZGllCmVpbiBiaXNzbCBmdWVyIGd1dGUgTGF1bmUgdW5kIFN0aW1tdW5nIHNvcmdlbiBtb2VnZW4gZ2FueiBnYW56IGhlcnpsaWNoIHp1Cm1laW5lciBIb2NoemVpdCBtaXQgQ3JlYXRpdmUgZWluLiBIZXV0IHNvIGV0d2EgZ2VnZW4gMjAgVWhyLi4uCgpOZW4gbmV0dGVuIFRyYXVtYWdpZXIgZGVyIHNpY2ggdHJhdXQgdW5zIHp1IHRyYXVlbiAob2RlciBzbykgc3VjaGVuIHdpciBhdWNoCm5vY2guLi4KCkFsc28gZGVubiwgZnVlaGx0IEV1Y2ggZ2VrbnVkZGVsdCB1bmQgYmlzIGhldXQgYWJlbmQhCgpDcmVhdGl2ZSdzIFNjaG11c2VtYXVzIFNlbWlyYSBoZWlyYXRldCBoZXV0ZSBpaHJlbiBTY2hudXJya2F0ZXIhCgoKUC5TLjogTmVpbiwgaWNoIHN1Y2hlIGtlaW5lbiBmdWVyIGVpbmVuIGRyaXR0ZW4gVmVyc3VjaC4gTnVtbWVyIGVpbnMgd2FyIG5lCkp1Z2VuZHN1ZW5kZSwgZGFzIGpldHp0IGRhcyBpc3QgTGllYmUgOikpKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJvdXRlIGdlc3VjaHQgOikgKENoaWNvbGEsICAyLiBPa3QgMTk5NSwgMTY6MzU6MDIpOgpIYWxsbyA6KQoKSWNoIHdpbGwgbWl0dGUgTm92ZW1iZXIgZnVlciAxIFdvY2hlIG5hY2ggRW5nbGFuZCAoIG5vcmRsaWNoIHZvbiBMb25kb24gKS4KTnVuIHN1Y2hlIGljaCBkaWUgZ3VlbnN0aWdzdGUgTW9lZ2xpY2hrZWl0IGRhaGluIHp1IGtvbW1lbiA6KSBGbHVnemVpdCBpc3QKemllaG1saWNoIHRldWVyIHVuZCB6dSBGdXNzIGJyYXVjaGUgaWNoIGphIGxhZW5nZXIgYWxzIGRpZSBXb2NoZSB1bSB1ZWJlcmhhdXB0Cmhpbnp1a29tbWVuIDopIEtlbm50IHNpY2ggamVtYW5kIHZvbiBldWNoIFJlaXNlbHVzdGlnZW4gYXVzID8gSWNoIGhvZXJ0ZSB2b24KZWluZXIgYmlsbGlnZW4gRmFlaHJlIEhhbWJ1cmctTG9uZG9uIC0ga2VubnQgZGllIGplbWFuZCA/PyAoIDwtIE5FSU4gbmljaHQKdW5zaWNodGJhcjopCgpEYW5rZSBzY2hvbiBpbSBWb3JhdXMgdW5kIE1haWxzIGJpdHRlIGFuIE1JQ0ggZGlyZWt0IDopCiAgICAgICAgICAgICAgICAgRXVyZSBDaGljb2xhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVYmVybmFjaHR1bmdzbW9lZ2xpY2hrZWl0IChOaXhpaG91LCAgMi4gT2t0IDE5OTUsIDE3OjA0OjUwKToKaGksCmlzdCBoaWVyIHp1ZmFlbGxpZyBqZW1hbmQgYXVzIGVzc2VuLCBkZXIgbWlyIGVpbmUgcHJlaXN3ZXJ0ZQp1ZWJlcm5hY2h0dW5nc21vZWdsaWNoa2VpdCBpbiBlc3NlbiB6dXIgemVpdCBkZXIgc3BpZWxlbWVzc2Ugc2FnZW4ga2Fubj8KaWNoIHdvbGx0ZSBmdWVyIDItMyB0YWdlIGRvcnRoaW4gdW5kIGJlbm9ldGlnZSBub2NoIGVpbmVuIHNjaGxhZnBsYXR6LgoKbml4aWhvdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVybWlzc3N0ISAoTnVkZWksICAzLiBPa3QgMTk5NSwgMTE6Mjk6MzgpOgpMaWViZSBNaXRtdWRkZXIhCgpJY2ggdmVybWlzc2Ugc2VpdCBnZXJhdW1lciBaZWl0IFB1bWEuIFp3YXIgaGFiIGljaCBpaG4gbmljaHQgdmVybG9yZW4sIGFiZXIKZXIgaXN0IHRyb3R6ZGVtIHVuYXVmZmluZGJhci4KV2VyIHdlaXNzIHdhcyB2b24gaWhtLCBoYXQgaWhuIHp1bGV0enQgZ2VzZWhlbiwgZ2VzcHJvY2hlbiwgdmVybm9tbWVuPwpCaXR0ZSB1bSBBdXNrdW5mdCBwZXIgTXVkTWFpbCBvZGVyIGZlcm5tdWVuZGxpY2gKCk51ZGVpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmVybWlzc3N0ISAoTGksICA0LiBPa3QgMTk5NSwgMDg6MjE6MDQpOgojISBybj1OdWRlaSBydD04MTI3MTYxNzgKSGFsbG8hClB1bWEgaXN0IGltIG1vbWVudCwgc28gdmllbCBpY2ggd2Vpc3MKenUgSGF1c2UsIGQuaC4gaW4gS2llbCB1bmQgZG9ydCBoYXQgZXIga2VpbmVuIGludGVybmV0enVnYW5nLgpXYW5uIGVyIHdpZWRlcmtvbW10PyBLZWluZSBBaG51bmcuCkxpCih2ZXJtaXNzdCBQdW1hIGF1Y2gpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmVybWlzc3N0ISAoSGFyZGlsLCAgNC4gT2t0IDE5OTUsIDA5OjQ5OjQ5KToKIyEgcm49TnVkZWkgcnQ9ODEyNzE2MTc4CgpQdW1hIHdhciBiaXMgenVtIDAyLjEwLiBpbiBLaWVsIG9obmUgTmV0enp1Z3JpZmYuCkpldHp0ICxtdWVzc3RlIGVyIGJhbGQgd2llZGVyIGhpZXIgYW56dXRyZWZmZW4gc2Vpbi4KCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXbyBpc3QgTWF6b2xpPyAoTWllemUsICA0LiBPa3QgMTk5NSwgMTE6MjE6NDYpOgpIYWxsb2VjaGVuIGxpZWJlIE1pdG11ZGRlciEKCmhhdCBqZW1hbmQgdm9uIEV1Y2ggbWFsIHdpZWRlciBNYXpvbGkgZ2VzZWhlbj8gKGJlc29uZGVycyBzaW5kIGRpZSBIYWxsZW5zZXIKYW5nZXNwcm9jaGVuKS4uLiBXZW5uIElociB3YXMgZ2Vob2VydCBoYWJ0LCBzY2hyZWlidCBuZSBNYWlsIG9kZXIgdGVpbHRzIG1pcgptaXQhCgoKTWllemUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVmVybWlzc3N0ISAoU251Z2dsZSwgIDkuIE9rdCAxOTk1LCAxMzozOTo0Myk6CiMhIHJuPUhhcmRpbCBydD04MTI3OTY1ODkKCkVyIHdhciB6dWxldHp0IHZvciBkZXIgRmV0ZSBlaW5nZWxvZ2d0LiBXZXIgd2Vpc3MsCndhcyBpaG0gZGEgcGFzc2llcnQgaXN0PyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFZlcm1pc3NzdCEgKEhhcmRpbCwgIDkuIE9rdCAxOTk1LCAxNjoxMzozOSk6CiMhIHJuPVNudWdnbGUgcnQ9ODEzMjQyMzgzCgpBbHNvIGljaCBoYWIgc2VpdCBkZXIgRmV0ZSBub2NoIHdhcyB2b24gaWhtIGdlaG9lcnQuCkJ6dyBlaW5lbiBCcmllZiB2b24gaWhtIGJla29tbWVuLiBTb2dhciBlaW5lbiBlY2h0ZW4sIHNvIGhhbmRzY2hyaWZ0bGljaC4KVW5kIHdlciBQdW1hcyBTYXVrbGF1ZSBrZW5udCwgZGVyIHdlaXNzLCB3YXMgZGFzIGJlZGV1dGV0LiA6KQoKQWxzbyBhbGxlcyBoYWxiIHNvIHdpbGQuIERlciB0YXVjaHQgYXVjaCB3aWVkZXIgYXVmLiBTcGFldGVzdGVucyBpbiAxMCBUYWdlbgphdWYgZGVyIE1lc3NlIGluIEVzc2VuLCBkZW5rZSBpY2guCgotSGFyZGlsLiBOTk4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnRmIChBbmFraW4sICA5LiBPa3QgMTk5NSwgMTY6MzQ6MjcpOgpIaSwKCmljaCBzdWNoZSBqZW1hbmRlbiBkZXIgbWlyIHNhZ3Qgd2llIGljaCBmb2xnZW5kZXMgaW4gdGYgcmVhbGlzaWVyZW4ga2FubjoKCmljaCB3aWxsIGRlbiBSdWVja2dhYmV3ZXJ0IHZvbiAvdGltZSBAIGluIG5lciBWYXJpYWJsZW4gc3BlaWNoZXJuLApkYXMgc29sbHRlIHNvIGF1c3NlaGVuIC9zZXQgej0vZXZhbCAvdGltZSBALi4ubmFqYQphYmVyIGVzIGdlaHQgaGFsdCBuaWNodCwgaGF0IGVpbmVyIG5lIElkZWUuIERhcyBzb2xsIGVpbiBUcmlnZ2VyCndlcmRlbiBiZWkgZGVtIGljaCBiZWltIGF1c2xvZ2dlbiBzZWhlIHdpZSBsYW5nZSBpY2ggZHJpbiB3YXIsIG5laW4Ka29udHJvbGxlCmljaCB3aWxsIGVzIG5pY2h0IHVlYmVyIGluZm8gb2RlciB1ZWJlciBtZWluIEFsdGVyIGxvZXNlbi4KClRoeC4gQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHRmIChGeXQsICA5LiBPa3QgMTk5NSwgMTk6MzI6NTkpOgojISBybj1BbmFraW4gcnQ9ODEzMjUyODY3CkhtLCBzcHJpY2h0IHByaW56aXBpZWxsIHdhcyBnZWdlbiAgIC9zZXQgej0kKC90aW1lIEApICA/CkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlY29uZC1oYW5kIFJlbm5hbWV1c2UgenUgdmVyYWV1c3Nlcm4gKFN1c2hpLCAxNi4gT2t0IDE5OTUsIDIxOjA5OjI3KToKV2VpbCBpY2ggZWluZSBLYXR6ZSBmdWVyIHVuYmVzdGltbXRlIFplaXQgaW4gUGZsZWdlIG5laG1lbiBtdXNzLCBpc3QgZXMgWmVpdCwKbWljaCB2b24gbWVpbmVuIFJlbm5hbWV1c2VuIFN0YWhsaGVsbSB1bmQgTW9zc2FkIHp1IHRyZW5uZW4uCldpZSBkaWUgTmFtZW4gZXJhaG5lbiBsYXNzZW4sIHNpbmQgc2llIHNjaHdhcnogdW5kIHNhbmRiZWlnZSwgNiBNb25hdGUgYWx0CnVuZCBzZWhyIHN1ZXNzLgpTaWUgd29obmVuIGluIHp3ZWkgVGVycmFyaWVuICgxMzB4NjAgdW5kIDcweDQwKSwgZGllIGVzIGdyYXRpcyBkYXp1Z2lidC4KSW50ZXJlc3NlbnRlbiBiaXR0ZSBNYWlsIGFuOgpTdXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNlY29uZC1oYW5kIFJlbm5hbWV1c2UgenUgdmVyYWV1c3Nlcm4gKENhcmFkaHJhcywgMTcuIE9rdCAxOTk1LCAxMjoyMjo0Nik6CiMhIHJuPVN1c2hpIHJ0PTgxMzg3NDE2NwpEdSBnb2VubnN0IGRlciBLYXR6ZSBhYmVyIGF1Y2gga2VpbiBGdXR0ZXIsIFN1c2hpLiA6KAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTZWNvbmQtaGFuZCBSZW5uYW1ldXNlIHp1IHZlcmFldXNzZXJuIChBcmFueWEsIDE3LiBPa3QgMTk5NSwgMTM6NTM6NDgpOgojISBybj1DYXJhZGhyYXMgcnQ9ODEzOTI4OTY2CkFlaGVtLCBmcmVzc2VuIEthdHplbiBkZW5uIGtlaW5lbiByb2hlbiBGaXNjaD8gRGllIHdpcmQgd29obCBzY2hvbiBuaWNodAp2ZXJodW5nZXJuLi4uCgpBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFNlY29uZC1oYW5kIFJlbm5hbWV1c2UgenUgdmVyYWV1c3Nlcm4gKFN1c2hpLCAxOC4gT2t0IDE5OTUsIDE5OjIxOjM1KToKIyEgcm49QXJhbnlhIHJ0PTgxMzkzNDQyOAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkFlaGhoaC4uLiBEYXMgd2lyZCBhYmVyIGVpZ2VuYXJ0aWcgYXVzc2VoZW4uCmRyaXNjaHQgYXVmIHNlaW5lbiBDb21wdXRlcioKYWphLi4uV2llIGF1Y2ggaW1tZXIsIGljaCBoYWJlIGVpbmUgQWJuZWhtZXJpbiBmdWVyIGRpZSBNQWV1c2UgZ2VmdW5kZW4uClZpZWxuIERhbmsgZnVlciBkaWUgaGlsZnJlaWNoZW4gVGlwcyB6dW0gVGhlYW0gS2F0emVuZnV0dGVyOl8pCioKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU2Vjb25kLWhhbmQgUmVubmFtZXVzZSB6dSB2ZXJhZXVzc2VybiAoQW5jYWxhZ29uLCAxOC4gT2t0IDE5OTUsIDE5OjIzOjM5KToKIyEgcm49U3VzaGkgcnQ9ODE0MDQwNDk1CldhcyB3YXIgZGVubiBkYXMgZ2VyYWRlLCBTdXNoaT8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFNlY29uZC1oYW5kIFJlbm5hbWV1c2UgenUgdmVyYWV1c3Nlcm4gKFRhc2hhLCAxOC4gT2t0IDE5OTUsIDE5OjI0OjE2KToKIyEgcm49QW5jYWxhZ29uIHJ0PTgxNDA0MDYxOQpJcyBkb2NoIGtsYXI6IEVpbmUgbmV1ZSBWZXJzaW9uIGRlcyBjbGVhci1zY3JlZW4uIDopKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU2Vjb25kLWhhbmQgUmVubmFtZXVzZSB6dSB2ZXJhZXVzc2VybiAoQ2FyYWRocmFzLCAxOC4gT2t0IDE5OTUsIDIwOjA5OjMzKToKIyEgcm49U3VzaGkgcnQ9ODE0MDQwNDk1Clp1bSBHbHVlY2sgZ2lidHMga2VpbiBhdXRvbWF0aXNjaGVzICdjb3B5IG1lc3NhZ2UnIGJlaSBkZXIgbXBhLgooYmVpIHJlcGx5KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGl2ZW11c2lrIChIaWdobGFuZGVyLCAxOS4gT2t0IDE5OTUsIDE0OjM5OjA2KToKSGkhCgpFcyBpc3QgbWFsIHdpZWRlciBzbyB3ZWl0LCBkYXNzIHNpY2ggbmV1Z2llcmlnZSBNdWRiZXdvaG5lciwgZGllIGluIGVpbmVyCmFuZGVyZW4gV2VsdCAoZGVyIG1pdCBkZXIgbWllc2VuIEhhbmRsdW5nLCBhYmVyIHRvbGxlbiBHcmFmaWspIGVpbm1hbAphbnNlaGVuIGtvZW5uZW4sIHdpZSBBbnRoZWEgdW5kIEhpZ2hsYW5kZXIgaWhyZSBJbnN0cnVtZW50ZSBiZWFyYmVpdGVuIGJ6dy4Kc2luZ2VuIC0gamEsIGlociBrb2VubnQgZWluZSBNZWVyanVuZ2ZyYXUgc2luZ2VuIGhvZXJlbiEKT2IgaWhyIGVzIGRhbmFjaCBub2NobWFsIHdvbGx0LCBpc3QgZXVlciBQcm9ibGVtLi4uCgpBdWNoIGRpZXNtYWwgZ2lidCBlcyB3aWVkZXIgZGllIEFudHdvcnQgYXVmIHNvIGRyYWVuZ2VuZGUgRnJhZ2VuIHdpZQogIC0gd2FzIGhhYmVuIEVuZ2xhZW5kZXJrbm9jaGVuIG1pdCBNdXNpayB6dSB0dW4/CiAgLSBzaW5nZW4gTWVlcmp1bmdmcmF1ZW4gd2lya2xpY2ggc28gc2Nob2VuPwogIC0gd2FzIGlzdCBub2NoIGdyb2Vzc2VyIGFscyBlaW5lIG5vcm1hbGUgT3ZlcnRvbj8KICAtIHdlciBoYXQgZGllc2UgQW56ZWlnZSBiaXMgaGllciBnZWxlc2VuPwoKV0VSPyAgICAgICAgICBQYWRkeSdzIFJldHVybgpXQVM/ICAgICAgICAgIFRyYWRpdGlvbmFsIElyaXNoIEZvbGsKV0FOTj8gICAgICAgICAyNy4xMC4xOTk1LCAyMDozMApXTz8gICAgICAgICAgIEtsYXVzZSBkZXMgQ1ZKTSwgRXJsYW5nZW4sIFN1ZWRsaWNoZSBTdGFkdG1hdWVyc3RyYXNzZSAyMQpXSUVWSUVMPyAgICAgIE11c2lrZXIgb2RlciBNYXJrPwpNVVNJS0VSPyAgICAgIDYKT0ssIFVORCBNQVJLPyBMYWVjaGVybGljaGUgRnVlbmYKSU5TVFJVTUVOVEU/ICBHaXRhcnJlLCBub2NoIGVpbmUgR2l0YXJyZSwgVGluIFdoaXN0bGUsIG5vY2ggZWluZSBUaW4gV2hpc3RsZSwKICAgICAgICAgICAgICBldmVudHVlbGwgYXVjaCBub2NoIG1hbCBlaW5lIFRpbiBXaGlzdGxlLCBGaWRkbGUsIEJhbmpvLCBFLUJhc3MsCiAgICAgICAgICAgICAgUXVlcmZsb2V0ZSwgQm9kaHJhbiwgbm9jaCBlaW5lIEJvZGhyYW4sIE11bmRoYXJtb25pa2EsIE92ZXJ0b24sCiAgICAgICAgICAgICAgT3ZlcmtpbGwgKG5hamEsIG5vY2ggZWluZSBPdmVydG9uIGhhbHQsIGFiZXIgd2FzIGZ1ZXIgZWluZSkKCldlciBkYSBrZWluZSBaZWl0IGhhdCwgaGF0IG5vY2ggYW4gZm9sZ2VuZGVuIFRlcm1pbmVuIEdlbGVnZW5oZWl0OgoxMi4xMS4gMTc6MTUgIE5ld2NvbWVyZmVzdGl2YWwgaW0gRS1XZXJrLCBFcmxhbmdlbiwgS2VsbGVyYnVlaG5lCiA5LjEyLiAyMDowMD8gTmFjaHRrYWVzdGxhLCBTdGVpbi4gR3V0ZSBCcm90emVpdCB1bmQgZ3V0ZXMgS25vYmxhdWNoYnJvdCA6PgoKRGEgd2lyZCdzIGFiZXIgdGV1cmVyIGFscyBpbiBkZXIgS2xhdXNlLgoKSGlnaGxhbmRlciByeW4gVGFoYXIgZnVlciBkaWUgUFItQWJ0ZWlsdW5nIHZvbiBQYWRkeSdzIFJldHVybgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktPTlRBS1RFIEZVRVIgSkVERUZSQVUhIChIb2JvLCAxOS4gT2t0IDE5OTUsIDE1OjU1OjQyKToKU2luZCBkaWUgc2Nod2VyZW4gQXVmZ2FiZW4gZGVzIFRhZ2VzIGVyZnVlbGx0IHVuZCBrZWluZXIgaXN0IGRhLCBtaXQKZGVtIGZyYXUgZGllIEZyZWl6ZWl0IHZlcmJyaW5nZW4ga2Fubj8KRWluc2FtPyBGcnVzdHJpZXJ0PgpEZXMgZWlnZW5lbiBNYW5uZXMgdWViZXJkcnVlc3NpZz8KCkljaCBiaWV0ZSBJaG5lbiBkZW4gcGZsZWdlbGVpY2h0ZW4gVHlwZW4gbWl0IEVyZmFocnVuZyB1bmQgRmVlbGluZy4KVmFyaWFibGUgZWluc2V0emJhciBmdWVyIEJldHQgdW5kIEhhdXNoYWx0LgoKVmVybWlldGUgZGVuIHVudGVyYmVzY2hhZWZ0aWd0ZW4gTWFnaWVyLCBkZXIgZWluZmFjaCBBTExFIFRyYWV1bWUKd2FociB3ZXJkZW4gbGFlc3N0LgpLdXJ6emVpdGlnIG9kZXIgYXVjaCBmdWVyIGxhZW5nZXJlIEVpbnNhZXR6ZS4KCkJlaSBJbnRlcmVzc2UgYml0dGUgbWFpbCBhbjogaG9ib0Btb3JnZW5ncmF1ZW4KCiAgIEdFQk9UIG5pY2h0IHZlcmdlc3NlbiEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp2b24gd2VnZW4gS09OVEFLVEUgKEhvYm8sIDE5LiBPa3QgMTk5NSwgMTU6NTc6MzYpOgoKUC5TLjogRGVyIE5hbWUgZGVzIE1hZ2llcnMgbGF1dGV0IE5JQ0hUIEJvaW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHZvbiB3ZWdlbiBLT05UQUtURSAoUmFmZmksIDE5LiBPa3QgMTk5NSwgMTk6MDA6NTMpOgojISBybj1Ib2JvIHJ0PTgxNDExNDY1NgoKV2llc28gaWNoIGJpbiBkb2NoIG5vY2ggZ2FybmljaHQgTWFnaWVyIQoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVOZCBub2NoIGVpbiBLb256ZXJ0Li4uLi4gKEhhciwgMTkuIE9rdCAxOTk1LCAyMDo1NDoxMSk6ClRqYSwgd28gd2lyIHNjaG9uIGJlaSBkZW4ga29uemVydGVuIHNpbmQuLi4uKGdyaW5zIFBhZGR5cyBSZXR1cm4pCldlciBpbiBmcmFua2Z1cnQgd29obnQgdW5kIGVzIGJpcyBHZWxsaGF1c2VuIGluIEp1cHMgQ2FzaW5vIChvZGVyIHNvCmFlaG5saWNoKSBzY2hhZmZ0LCBrYW5uIGFtIFNhLiwgZGVuIDQuIE5vdi4gMTk5NSBlaW4gUHVua2tvbnplcnQgbWl0IDMgQmFuZHMKZXJsZWJlbi4KVW50ZXIgYW5kZXJlbToKUHVibGljIFRveXMsClBpbHMgQW5nZWxzCk1hZCBDb3cgZGlzZWFzZS4uLgpVbmQgd2VyIGhhbHQgZ2VybmUgRm9sayBtYWcsIHdpciBuZWhtZW4gd29obCB3aWVkZXIgQWtrb3JkZW9uIHVuZCBGbG9ldGUgbWl0CnVuZCBzcGllbGVuIHNvIGVpbiBwYWFyIFBvZ3VlcyBTb25nczopCkFsc28gd2FlciBzY2hvbiB3ZW5uIG1hbiBuZW4gTXVkZGVyIHNpZWh0IDopCgpIYXIgKHB1bmtyb2NrZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9vZG9vLUxpc3RlIChGcmFnZ2xlLCAxOS4gT2t0IDE5OTUsIDIxOjEwOjM1KToKSWNoIGhhYiBkaWUgVm9vZG9vLVRvcC1MaXN0ZW4gZW5kbGljaCBtYWwgZ2V1cGRhdGVkLgpXZWl0ZXJlIFVwZGF0ZXMgd2VyZGVuIHZvcmVyc3QgaW4gdW5yZWdlbG1hZXNzaWdlbiBBYnN0YWVuZGVuIGZvbGdlbi4KR3J1c3MKRnJhZ2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtPTlRBS1RFIEZVRVIgSkVERUZSQVUhIChBbGluZSwgMjAuIE9rdCAxOTk1LCAwOTo1Mzo1MCk6CiMhIHJuPUhvYm8gcnQ9ODE0MTE0NTQyCkhhbGxvIEhvYm8sCgp3ZW5uIGR1IG1pdCBkZW0gdW50ZXJiZXNjaGFlZnRpZ2VuIE1hZ2llciB1bmQgZGFtaXQgYXVjaCBtaXQKRGVpbmVtIEFuZ2Vib3QgR3V5YnJ1c2ggbWVpbnN0LCBrYW5uIGljaCBkYXZvbiBudXIgYWJyYXRlbi4KCjEuIEhhYmUgaWNoIEd1eWJydXNoIHNjaG9uIHZvciBsYWVuZ2VyZXIgWmVpdCBhbiBSdWRpcmF0dGVyIGZ1ZXIKZWluZW4gTGljaHRoZWxtIHZlcmthdWZ0LiBBbHNvIGthbm5zdGUgaWhuIG51ciBTZWNvbmQtSGFuZCBhbmJpZXRlbgp1bmQgbXVzc3QgUnVkaSB1bSBFcmxhdWJuaXMgYml0dGVuLgoKMi4gSXN0IEd1eWJydXNoIGVpbiBDaGF1dmllIHVuZCBuaWNodCB1bnRlcmJlc2NoYWVmdGlndCwgc29uZGVybiBudXIKZWluZmFjaCBzdGlua2VuZmF1bCEKCkFsaW5lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS09OVEFLVEUgRlVFUiBKRURFRlJBVSEgKEdyaW1tYm9ybiwgMjAuIE9rdCAxOTk1LCAxMzoxNDozMCk6CiMhIHJuPUhvYm8gcnQ9ODE0MTE0NTQyCgpIbW0sICBuZXR0IHZvbiBEaXIuIEFiZXIgZGFzIG5hZWNoc3RlIG1hbCBmcmFnIG1pY2ggZG9jaCBiaXR0ZSB2b3JoZXIsIEhvYm8uClVuZCBkYXMgbWl0IEhhdXNoYWx0IGlzdCBuYXR1ZXJsaWNoIG51ciBlaW4gV2VyYmVnYWchCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QuIFVuYmVkaW5ndCBpbSBCZXR0IGVpbnNldHpiYXIuIEVORExJQ0ggbWFsCmF1c3NjaGxhZmVuLi4uKnNldWZ6KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHZvbiB3ZWdlbiBLT05UQUtURSAoU2NocnVtcGZpLCAyMi4gT2t0IDE5OTUsIDE3OjIxOjIyKToKIyEgcm49SG9ibyBydD04MTQxMTQ2NTYKSWNoIGhvZmZlIHdvaGwgYXVjaCBOSUNIVCBaYXJkb3ohIDstKQpTY2hydW1wZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS09OVEFLVEUgRlVFUiBKRURFRlJBVSEgKFNjaHJ1bXBmaSwgMjIuIE9rdCAxOTk1LCAxNzoyMzo0MCk6CiMhIHJuPUdyaW1tYm9ybiBydD04MTQxOTEyNzAKR2VrYXVmdCEgSWNoIGJpZXRlIDEwMCBNdWVuemVuIGZ1ZXIgR3JpbW1ib3JuLgpTY2hydW1wZmkKUC5TIEFiZXIgZGFzIG1pdCBkZW0gYXVzc2NobGFmZW4ga2FubnN0ZSBEaXIgYWJzY2htaW5rZW4hIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExpdmVtdXNpayAoTGksIDIzLiBPa3QgMTk5NSwgMDk6MDU6NDApOgojISBybj1IaWdobGFuZGVyIHJ0PTgxNDEwOTk0Ngp0amEgaWNoIHd1ZXJkZSBldWNoIGphIGdlcm5lIG1hbCB6dWhvZXJlbiwgYWJlciBleHRyYSBuYWNoIEVybGFuZ2VuPyBEYXMgc2l0Cm1pciBkYW5uIGRvY2ggenUgd2VpdC4KV2FydW0gc3BpbGV0IGlociBuaWNodCBtYWwgYXVmIGRlciBuYWVjaHN0ZW4gTVVELVBhcnR5PwoKSXN0IGV1cmUgQmFuZCB2aWVsZWljaHQgc2Nob24genUgdGV1ZXI/CgpMaSAobmV1Z2llcmlnKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29udGFrdCBmdWVyIEVWRVJZTVVERElFIChSb2VzdGksIDIzLiBPa3QgMTk5NSwgMTI6MzA6MzkpOgpCaWV0ZSBkdXJjaHNjaG5pdHRsaWNoZW4gU3BpZWxlciBtaXQgZHVyY2hzY2huaXR0bGljaGVuIFdlcnRlbiB1bmQgT2huZQpTY2huaXR0Y2hlbi4uLi4KV09aVT8/PwotICBadW0gTXVkZGVuLFJ1bWhhZW5nZW4gdW5kIGFsbGVzIHdhcyBTcGFzcyBtYWNodC4uLgpCaWxkIHdhZXJlIG5ldHQgYWJlciBuaWNodCBCZWRpbmd1bmcuCk5pY2h0IG51ciBlcm5zdGdlbWVpbnRlIHp1c2NocmlmdGVuIGFuIDoKUm9lc3RpIGRlciBuaWNodCBpbW1lciBhYmVyIGltbWVyIG9lZnRlciBhbGxlaW5lIE11ZGRlbiBtdXNzLi4uOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTGl2ZW11c2lrIChBbnRoZWEsIDIzLiBPa3QgMTk5NSwgMTQ6MzQ6NTMpOgojISBybj1MaSBydD04MTQ0MzU1NDAKSG0uLi4gRGFzIFByb2JsZW0gYnp3LiBkZW4gVm9yc2NobGFnIGhhdHRlbiB3aXIgc2Nob24gbGV0enRlcyBtYWwuIE1pdApmb2xnZW5kZW0gUmVzdWx0YXQ6ClNvIGFuIHNpY2ggaXN0IGRpZSBCYW5kIG5pY2h0IHp1IHRldWVyLi4uIERhcyBQcm9ibGVtIGlzdCBudXIsIGRhc3MgZGFubiBmdWVyCmRpZSByZXN0bGljaGVuIDQgQmFuZG1pdGdsaWVkZXIsIGRpZSBuaWNodCBzb3dpZXNvIGF1ZiBkZXIgUGFydHkgc2luZCAoc2luZCBqYQprZWluZSBNdWRkZXIpIGRhbm4gakZhaHJ0a29zdGVuJlVudGVyYnJpbmd1bmdza29zdGVuIGVudHN0ZWhlbiB3dWVyZGVuLi4uIHVuZApkYW5uIG11c3MgbWFuIGxhbmdzYW0gYW5mYW5nZW4sIHp1IHJlY2hlbmVuLgogQW50aGVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBMaXZlbXVzaWsgKFlhbnRybywgMjMuIE9rdCAxOTk1LCAxNTowOTozMSk6CiMhIHJuPUFudGhlYSBydD04MTQ0NTUyOTMKCkFudGhlYSwgZGFubiBNQUNIIGF1cyBkZW4gdmllciBMZXV0Y2hlbiBNdWRkZXIuLi4gaXN0IGVpZ2VudGxpY2ggZ2FyIG5pY2h0IHNvCnNjaHdlciA7LSkKCkxhc3Mgc2llIHNpY2ggbWFsIGVpbmxvZ2dlbiB1bmQgZGFubiBoYXN0ZSBzY2hvbiBmYXN0IGRpZSBnYW56ZSBNaWV0ZSA7KQoKICAgICAgIFlhbnRybzspKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IExpdmVtdXNpayAoWWVuZGksIDIzLiBPa3QgMTk5NSwgMTU6MTA6MzUpOgojISBybj1ZYW50cm8gcnQ9ODE0NDU3MzcxCgoKWWFudHJvLCBkYXMgd2FyIGRpZSBiZXN0ZSBJZGVlIGRlcyBoZXV0aWdlbiBUYWdlcy4KCllUWSwgaW1tZXIgbm9jaCBnYW56IHBlcnBsZXguCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTGl2ZW11c2lrIChBbnRoZWEsIDIzLiBPa3QgMTk5NSwgMTU6MjE6MjApOgojISBybj1ZZW5kaSBydD04MTQ0NTc0MzUKSG0uLi4gd2VubiBEdSBtaXIgdmVycmFldHN0LCB3aWUgbWFuIGVpbmUgR1JVTkRTQ0hVTFNUVURFTlRJTiB2b3IgJ25lbgpJbnRlcm5ldHJlY2huZXIga3JpZWd0Li4uOikKIEFudGhlYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTGl2ZW11c2lrIChTaGlub2JpLCAyMy4gT2t0IDE5OTUsIDE1OjM5OjEzKToKU2FnIElociBkb2NoIGVzIGdhZWIgZGEgYXVjaCBLb250YWt0YW56ZWlnZW4gdm9uIHNjaG5pZWtlbiBCV0wtIHVuZCBKdXJhLQpzdHVkZW50ZW4uCgogICBTaGlub2JpCgpQLlMuIFdhcyB3YWVyIG5lIFVuaSBvaG5lIFByaW1pbWFldXNjaGVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTGl2ZW11c2lrIChFdGFoLCAyMy4gT2t0IDE5OTUsIDE2OjM5OjE2KToKIyEgcm49QW50aGVhIHJ0PTgxNDQ1ODA4MApBbHNvIGljaCBoYWJlIGRhcyBzY2hvbiBnZXNjaGFmZnQgdW5kIEdyaW1tYm9ybiBmaW5nIGdsZWljaCBhbiB6dSBiYWdnZXJuLgoKRS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhbGxpSGFsbG8gKExQQykgKmdyaW5zKiAoQXJ0eSwgMjMuIE9rdCAxOTk1LCAxNzo0MTowMCk6CkFsc28gZGEgUnVicmlrIGFsbGdlbWVpbmVzIHNvIHp1Z2VtdWVsbHQgd2lyZCB1bmQgaWNoIG5pY2h0Cm1vZWNodGUsIGRhc3MgbWVpbiBBcnRpa2VsIGVpbmVtICd1ZWJlcmdlaGUgYWxsZ2VtZWluZXMnIHp1bQpPcGZlciBmYWVsbHQsIHNjaHJlaWIgaWNoIGlobiBub2NobWFsIGhpZXI6CgpIYWxsbyAhCgpJY2ggdmVyc3VjaGUgZ2VyYWRlIGVpbmUgVHJpbWVzdGVyYXJiZWl0IHVlYmVyIExQQyBiencuIE11ZHMgenUgYmVrb21tZW4KdW5kIG1vZWNodGUgYW4gZGllc2VyIFN0ZWxsZSBtYWwgZnJhZ2VuLCBvYiBqZW1hbmQgdm9uIEV1Y2ggbm9jaAppcmdlbmR3ZWxjaGUgRmlsZXMgdWViZXIgTXVkcywgRHJpdmVyLCBMUEMgdXN3LiBoYXQsIGRpZSBOSUNIVCBzY2hvbgppbiAvZG9jIGVudGhhbHRlbiBzaW5kLiBXZW5uIGlociBub2NoIHdlbGNoZSBoYWJ0LCB3YWVyZSBlcyBzZWhyIG5ldHQKdm9uIEV1Y2gsIHdlbm4gaWhyIGRpZSBtaXIgbWFpbGVuIGtvZW5udGV0IG9kZXIgYXVjaCBzb25zdHdpZSB6dWtvbW1lbgpsYXNzZW4ga29lbm50ZXQuCkdpYnRzIGRhenUgZWlnZW50bGljaCBhdWNoIEJ1ZWNoZXIgPwpEYSBpY2ggYmVpIGRlbiBWb3J0cmFlZ2VuIGFtIE1HLVRyZWZmZW4gbGVpZGVyIE5JQ0hUIGRhIHdhciwga29ubnRlIGljaAphdWNoIG5pY2h0cyBtaXRzY2hyZWliZW4sIHdhZXJlIGplbWFuZCBzbyBuZXR0IHVuZCBrb2VubnRlIG1pciBzZWluZQpTdGljaHB1bmt0ZSBrb3BpZXJlbiB1bmQgc2NoaWNrZW4gYnp3LiBtYWlsZW4gPwoKRGFua2UgZnVlciBFdXJlIE11ZWhlLCB3YWVyZSBuZXR0LCB3ZW5uIGlociBtaXIgaGVsZmVuIGtvZW5udGV0IHVuZApFdWNoIG1hbCBiZWkgbWlyIG1lbGRlbiB3dWVyZGV0LgoKY2lhbyBBUlRZCihiaW4gYXVjaCBpbSBHdWVsZGVuTGFuZCB6dSBlcnJlaWNoZW4gOy0pKQoKUFMuOiBNZWluZSBSTC1BZHJlc3NlIGdpYnRzIGF1ZiBBbmZyYWdlIDopCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBLT05UQUtURSBGVUVSIEpFREVGUkFVISAoU2NocnVtcGZpLCAyMy4gT2t0IDE5OTUsIDE4OjA0OjU2KToKIyEgcm49QXNtb2RpcyBydD04MTQ0MzQ2MjEKU3B1ZWxlbiwgYXVmcmFldW1lbiwga29jaGVuLCBidWVnZWxuIGVjdCBlY3QgOy0pClNjaHJ1bXBmaSBkaWUgU2tsYXZlbnRyZWliZXJpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTGl2ZW11c2lrIChBbmNhbGFnb24sIDIzLiBPa3QgMTk5NSwgMTg6MTY6NTcpOgojISBybj1TaGlub2JpIHJ0PTgxNDQ1OTE1MwpNb2luIFNoaW5vYmkhClNvbGwgaWNoICJQcmltaW1hZXVzY2hlbiIgZGlyIG1hbCB3YXMgaHVzdGVuLi4uLiE/IQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmNhbGFnb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWFyc3R1ZmVuZHJhY2hlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTaW1wc29ucy1Gb2xnZW4gZ2VzdWNodCEgKENlcmVidXMsIDIzLiBPa3QgMTk5NSwgMTg6MTg6MTcpOgpNYWhsemVpdCEKCldpZSBkZXIgQmV0cmVmZiBkaWVzZXMgVGV4dGVzIHNjaG9uIHVubWlzc3ZlcnN0YWVuZGxpY2gga2xhcm1hY2h0LCBzdWNoZSBpY2gKRm9sZ2VuIHZvbiBkZW4gIlNpbXBzb25zIiBhdWYgVmlkZW8uIFouWnQuIGxhdWZlbiBzaWUgYXVmIFBybzcsIGljaCB2ZXJzdWNoZQphdWNoLCBlaWZyaWcgdW5kIHJlZ2VsbWFlc3NpZyBhdWZ6dW5laG1lbiwgYWJlciB3Zy4gdXJsYXViLCBTb21tZXJ6ZWl0IHVuZAphbGxnZW1laW5lciBVbmZhZWhpZ2tlaXQgZmVobGVuIG1pciBkb2NoIGVpbmlnZSBGb2xnZW4uIFdlbm4gaXJnZW5kamVtYW5kIHZvbgpFdWNoIEZvbGdlbiBhdWYgVmlkZW8gaGF0IG9kZXIgamVtYW5kZW4ga2VubnQsIGRlciBzaWUgaGF0IG9kZXIgc2Nob24gaW1tZXIKbWFsIHNhZ2VuIHdvbGx0ZSwgZGFzcyBkaWUgU2ltcHNvbnMga2xhc3NlIHNpbmQsIG9kZXIgZXRjLnBwLiwgZGFubiBtZWxkZXQKRXVjaCBkb2NoIGJlaSBtaXIgLSBlbnR3ZWRlciBpbSBNRyBvZGVyIHVlYmVyCmphbi5zY2htaWR0QHN0dWQudW5pLWJhbWJlcmcuZGUKRGV0YWlscyB3ZXJkZW4gZGFubiBnZWtsYWVydC4uLgoKQ2VyZWJ1cwoKUC5TLiBOaW1tIGRpZSAxMC4wMDAgRG9sbGFyLCBCYXJ0LCB3aXIgd2FlcmVuIE1pbGxpb25hZXJlISEhIChIb21lciBTaW1wc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFnaWVyIGdlc3VjaHQgKFJhZmZpLCAyMy4gT2t0IDE5OTUsIDIxOjQ3OjUxKToKICAgIFJhZmZ6YWhuIE1HIFBsYW51bmdzIHVuZCBFbnR3aWNrbHVuZ3NnZXNlbGxzY2hhZnQgZ29ICgogICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNodAogICAgICAgICAgICAgICB6dW0gbmFlY2h0c3QgbW9lZ2xpY2hlbiBUZXJtaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgZWluZW4KCiAgICAgICAgICAgICAgICAgICAgICAgIERpcGwuIE1hZ2llcgoKICAgICAgICBGdWVyIGVpbiBFbnR3aWNrbHVuZ3Nwcm9qZWt0IGluIGJlc3RlciBMYWdlCgogICAgVm9yYXVzc2V0enVuZyBpc3QgZWluIGFiZ2Vicm9jaGVuZXMgU3R1ZGl1bSBkdXJjaAogICAgICAgICBFeG1hdHJpa3VsYXRpb24gd2cuIHVlYmVybWFlc3NpZ2VtIE11ZGRlbgogICAgICAgICAgICBvZGVyIGVpbmUgZ2xlaWNod2VydGlnZSBBdXNiaWxkdW5nCgogICAgIEJld2VyYnVuZ3N1bnRlcmxhZ2VuIGJpdHRlIGFuIFJhZmZ6YWhuIE1HIFBFRyBnb0gsCiAgICByYWZmaUBtZy51bmktbXVlbnN0ZXIuZGUgdW50ZXIgZ2xlaWNoZXIgQWRyZXNzZSBrYW5uCiAgICAgYXVjaCBlaW5lIEF1ZmdhYmVuYmVzY2hyZWlidW5nIG5hY2hnZWZyYWd0IHdlcmRlbi4KCihGcmF1ZW4gd2VyZGVuIGJlaSBnbGVpY2hlciBRdWFsaWZpa2F0aW9uIGF1Y2ggbmljaHQgYmV2b3J6dWd0LikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IExpdmVtdXNpayAoQmFyb24sIDI0LiBPa3QgMTk5NSwgMDg6MjI6MTMpOgojISBybj1BbmNhbGFnb24gcnQ9ODE0NDY4NjE3CkljaCBkYWNodGUgZHUgd2FlcnN0IFByaW1pLURyYWNoZT8KQmFyb24gLSB2ZXJ3dW5kZXJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBMaXZlbXVzaWsgKExpLCAyNC4gT2t0IDE5OTUsIDA4OjI1OjI1KToKIyEgcm49QW50aGVhIHJ0PTgxNDQ1NTI5MwpXYXIgbWlyIGtsYXIsIGRhcyBkYSBhdWNoIG5pY2h0bXVkZGVyIHNwaWVsZW4sIGR1IHNjaHJlaWJzdCwgZGFubiBtdXNzIG1hbgpsYW5nc2FtIGFuZmFuZ2VuIHp1IHJlY2hlbi4KRGFubiBtYWNoJ3MgZG9jaCBtYWwhIFdhcyBtdWVzc3RlbiB3aXIgZnVlciBkaWUgcmVzdGxpY2hlbiA0IGF1ZmJyaW5nZW4/CgpMaSAobmV1cmllcmlnKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogTGl2ZW11c2lrIChQYW1wZXJzLCAyNC4gT2t0IDE5OTUsIDEyOjM5OjU0KToKIyEgcm49QW5jYWxhZ29uIHJ0PTgxNDQ2ODYxNwpXdXNzdGUgZ2FyIG5pY2h0LCBkYXNzIGVzIHNvIGh1ZWJzY2hlIFByaW1hdGVuIGdpYnQsIEFuY2FsYSJsbyJnb24KR3JpbnNlbmQsIFBhbXBlcnMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlYnVydHN0YWchISEgKE51ZGVpLCAyNS4gT2t0IDE5OTUsIDA3OjI5OjIyKToKTGllYmUgTGVzZXIgdW5kIFJpbm5lbiwgS2FtZXJhZGVuIHVuZCBEaW5uZW4hCgpFcyBpc3Qgc293ZWl0OgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqKioqKioqKiAgRGVyIERFUiBJUlJFIFdFTFRSQVVNUFJPTEVUIGhhdCBHZWJ1cnRzdGFnISEKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKSmEsIGVzIGlzdCBrYXVtIHp1IGdsYXViZW4sIGFiZXIgc2VpdCBlaW5lbSBqYWhyIHZlcnd1ZXN0ZW4gd2lyIHNjaG9uIGRpZQpMYW5kc2NoYWZ0IG1pdCB1bnNlcmVuIGdlaGFsdHZvbGxlbiBLR3MgdW5kIHN0YXJrZW4gU3BydWVjaGVuIHp1bSBhbHRlcm5hdGl2ZW4KUlNQLiBVbSBkYXMgRXJlaWduaXMgZ2VidWVocmVuZCB6dSBmZWllcm4gZ2lidCBlcyBlaW5lCgogICAgICBKVUJFTC0gdW5kIEp1YmlsZWF1bXNudW1tZXIuCgpJbiBpaHIgc2luZCBlaW5pZ2UgZGVyIGJlc3RlbiBmcnVlaGVuIEdlc2NoaWNodGVuIGF1cyBkZXIgSG9jaGJsdWV0ZSBkZXMKRGlXcHMgZW50YWhsdGVuLCBkZXN3ZWdlbiBqZXR6dCB1bmJlZGluZ3QgZWluIEdsdWVja3d1bnNjaHRlbGVncmFtbSBhdWZnZWJlbgphbiBOdWRlaSBvZGVyIGg5NDUwMDI3QGZhbGJhbGEud3Utd2llbi5hYy5hdAp6dW0gQW5mb3JkZXJuLCBHcmF0aXNsZXNlbiBvZGVyIGVpbiBTaW5ndGVsZWdyYW1tIGFuCgpERVIgSVJSRSBXRUxUUkFVTVBST0xFVCBjL28gRi5TZWlkbApSb2RsZXJnYXNzZSA4LzE4CkEtMTE5MCBXaWVuCgpET3J0IGtvZW5udCBpaHIgYXVjaCBFdXJlIEFib3MgbWl0IEtvcGllcnVua29zdGVuYmVpdHJhZyBiZWdlbGljaGVuLCBpaHIKU2Nod2Fyei0gdW5kIEdyYXRpc2xlc2VyLCBpaHIgOikKCkFsc2RlciwgZGVyIERpV3AgaXN0CkRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCgoKTnVkZWksIFNjaGlmdGxlaXR1bmcgRGlXcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVWViZXJuYWNodHVuZ3Ntb2VnbGljaGtlaXQgaW4gT2ZmZW5iYWNoIGdlc3VjaHQgKFRhcmtpbiwgMjUuIE9rdCAxOTk1LCAxMTowNjo1OSk6CldlciBrYW5uIG1pciwgZmFsbHMgbm90d2VuZGlnIGVpbmUgMngxbSBncm9zc2VzIFN0dWVjayBUZXBwaWNoIHp1ciBWZXJmdWVndW5nCnN0ZWxsZW4/IFdhbm4/IEhldXRlIEFiZW5kICgyNS4xMC4pIFZpZWxsZWljaHQgaGFiZSBpY2ggamEgR2x1ZWNrIDopIENpYW8gICAgIApUYXJraW4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBMaXZlbXVzaWsgKEhhcmRpbCwgMjUuIE9rdCAxOTk1LCAxMTo1NTowNyk6CiMhIHJuPVBhbXBlcnMgcnQ9ODE0NTM0Nzk0CkhtbW0uIEljaCBtdXNzIEFudGhlYSBVTkQgUGFtcGVycyBSZWNodCBnZWJlbi4gOi0pClByaW1hdGVuIGJla29tbXQgbWFuIG5pY2h0IGFuIGVpbmVuIEludGVybmV0LVJlY2huZXIuClVuZCBodWVic2NoIHNpbmQgc2llIGF1Y2ggbmljaHQuIDotKQoKRXMgc2VpIGRlbm4sIG1hbiBzdGVodCBhdWYgMTUwIGNtIHVuZCBCYXVrbG9ldHpjaGVua2V0dGVuLgoKLUhhcmRpbC4gSGF0IGdhciBrZWluZSBWb3J1cnRlaWxlLiBOdXIgNTAwMCBQcmltYXRlbiB2b3IgZGVyIE5hc2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IExpdmVtdXNpayAoSGlnaGxhbmRlciwgMjUuIE9rdCAxOTk1LCAxMzo0NDo0NSk6CiMhIHJuPUxpIHJ0PTgxNDQzNTU0MApNYWwgaW0gRXJuc3QgLQpPaG5lIGpldHp0IHNpY2hlciBzZWluIHp1IGtvZW5uZW4sIGRhc3MgZGEgYWxsZSBaZWl0IGhhYmVuLAphYmVyIHdlbm4gamVkZXIgYmVyZWl0IHdhZXJlLCBhdWYgZGVyIFBhcnR5IG5hZWNoc3RlbgpPa3RvYmVyICpXaW5rIG1pdCBaYXVucGZhaGwqIHp1IGRlbSB2aWVsZW4gR2VsZCwgd2FzCklDSCBIQVNTRSBSVU1HRVJVRkUgOj4KZXIvc2llIHNvd2llc28gc2Nob24gYXVzZ2lidCwgbm9jaCBmdWVuZiBNYXJrIG9kZXIgc28gZHJhdWZ6dWxlZ2VuLCB3YWVyZQpkYXMgd2FocnNjaGVpbmxpY2ggbWFjaGJhciwgZGFzcyB3aXIgYW4gZWluZW0gQWJlbmQgc3BpZWxlbi4KV2FlciBkYW5uIGhhbHQgTXVlbnN0ZXJ1cmxhdWIgbWl0IEFyYmVpdCBmdWVyIGRpZSBhbmRlcmVuIHZpZXIuCiAgIEhpZ2hsYW5kZXIsIGRlciBoZXV0ZSBzY2hvbiB3aWVkZXIgUHJvYmUgaGF0IGZ1ZXIgdWViZXJtb3JnZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVZWJlcm5hY2h0dW5nc21vZWdsaWNoa2VpdCBpbiBPZmZlbmJhY2ggZ2VzdWNodCAoQXNtb2RpcywgMjUuIE9rdCAxOTk1LCAxNDozMjoyOCk6CiMhIHJuPVRhcmtpbiBydD04MTQ2MTU2MTkKaWNoIGdsYXViLCBpY2ggaGFiIG5vY2ggc293YXMgaW0ga2VsbGVyLCBzb2xsIGljaCBkaXIgZGVuIFRlcHBpY2ggbWl0IGRlcgpQb3N0IHNjaGlja2VuID8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkR1ZWxsIChSYWZmaSwgMjUuIE9rdCAxOTk1LCAxOTozNToyOCk6CiAgICAgICBEaWUgSGVycmVuCgogICAgICAgICAgIEtleQogICAgICAgICAgICAmCiAgICAgICAgICBSYWZmaQoKZ2ViZW4gYmVrYW5udCBkYXMgc2llIHNpY2gKCiAgICAgIGhldXRlIHVtIDE5aDQwCiAgICAgICBpbiBkZXIgQXJlbmEKCiAgICAgZHVlbGxpZXJlbiB3ZXJkZW4KCiAgWmV1Z2VuIHNpbmQgV2lsbGtvbW1lbgoKICAgIGdlei4gS2V5ICYgUmFmZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEdWVsbCAoUmFmZmksIDI1LiBPa3QgMTk5NSwgMjA6MDI6MTcpOgojISBybj1SYWZmaSBydD04MTQ2NDYxMjgKCkljaCBtb2NodGUgbWljaCBub2NobWFsIGZ1ZXIgZGVuIHNjaG9lbmVuIFRvZCBiZWkgS2V5IGJlZGFua2VuCi0gZGFzIHdhciB3aXJrbGljaCBlaW4gRXJsZWJuaXNzIC0gZGllIFNlcXVlbnogaGF0dGUgaWNoIG5vY2ggbmljaHQuCgpEYW5rZS4KCkdydXNzCkguClAuUy46IERhbmsgaXN0IGVybnN0Z2VtZWludCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhhbGxpSGFsbG8gKExQQykgKmdyaW5zKiAoUnluZSwgMjUuIE9rdCAxOTk1LCAyMDoyOTo0NSk6CiMhIHJuPUFydHkgcnQ9ODE0NDY2NDYwCkhpIQoKSWNoIG11c3MgZGllIEFuZnJhZ2Ugdm9uIEFydHkgbWFsIGhpZXIgaW4gZGVyIFplaXR1bmcgYmVhbnR3b3J0ZW4sIHdlaWwgZGllCk11ZHNlaXRlLCBkaWUgaWNoIGRhIGhhYmUsIHdpcmtsaWNoIGtsYXNzZSBWZXJ3ZWlzZSBlbnRoYWVsdCwgdW5kIHNpY2ggZnVlcgpqZWRlcm1hbm4sIGRlciBzaWNoIGZ1ZXIgZGllIE1hdGVyaWUgYWxsZ2VtZWluIGludGVyZXNzaWVydCwgbG9obmVuIGR1ZXJmdGU7CmVyc3RtYWwgZGllIFN0YXJ0c2VpdGU6IHd3dy55cG4uY29tL2dhbWVzL2ExMTYuaHRtbCAtIGVudGhhZWx0IG51ciB2ZXJ3ZWlzZSwKdm9uIGRlbmVuIGljaCBlaW5lbiB6dSBlaW5lciBhbmRlcmVuIFNlaXRlLCBkZW0gTXVkQXJjaGl2ZSwgZW1wZmVobGVuIG1vZWNodGUsCkFkcmVzc2U6d3d3LmNjcy5uZXUuZWR1L2hvbWUvbHBiL211ZGRleC5odG1sLgoKUnpuZS4KClAuUy4gYWVobSAtIGRpZXMgaXN0IG5hdHVlcmxpY2ggbnVyIGVpbmUgQW50d29ydCBhdWYgZGVuIHp3ZWl0ZW4gVGVpbCB2b24KQXJ0eXMgQW5mcmFnZSwgaSBrbm93LCBwcmltYWVyIHdvbGx0ZSBlciB3YXMgdWViZXIgTFBDLCBhYmVyIGRhIHZlcnN0ZWggaWNoIGphCm5peCB2b24sIFp3ZXJnZSB1bmQgc28sIGlociB3aXNzdCBzY2hvbi4uLi4gOykpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIYWxsaUhhbGxvIChMUEMpICpncmlucyogKE11cGZlbCwgMjUuIE9rdCAxOTk1LCAyMDo1NjowMik6CiMhIHJuPVJ5bmUgcnQ9ODE0NjQ5Mzg1CmZ1ZXIgTFBDIHVuZCBzby4uLi4gaWNoIHd1ZXJkZSBtYWwgaW4gd3d3Lmx5c2F0b3IubGl1LnNlIHNjaGF1ZW4KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBMaXZlbXVzaWsgKEtsaW5nZSwgMjYuIE9rdCAxOTk1LCAxMzoxMDo1NSk6CiMhIHJuPUFudGhlYSBydD04MTQ0NTgwODAKU28gd2llIG1hbiBhbGxlIEZyYXVlbiBkYWhpbiBrcmllZ3Qgd28gbWFuIHNpZSBoYWJlbiB3aWxsLjoKTWl0IHN0cmVpY2hlbG4sIFNjaGxhZWdlbiB1bmQgU3Vlc3NpZ2tlaXRlbi4KOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJlIExpdmVtdXNpayAoQW50aGVhLCAyMy4gT2t0IDE5OTUsIDE1OjIxOjIwKTogKFJvZXN0aSwgMjcuIE9rdCAxOTk1LCAxMToxNDo1Myk6Cj5IbS4uLiB3ZW5uIER1IG1pciB2ZXJyYWV0c3QsIHdpZSBtYW4gZWluZSBHUlVORFNDSFVMU1RVREVOVElOIHZvciAnbmVuCj5JbnRlcm5ldHJlY2huZXIga3JpZWd0Li4uOikKCkthbm4gamEgbmljaHQgc28gc2Nod2VyIHNlaW4uLi5XZW5uIGRhcyBtaXQgQWdyYXJ3aXNzZW5zY2hhZnRsZXJuIHVuZApNdXNpa3N0dWRlbnRpbm5lbiBhdWNoIGdlaHQuLi46KQoKUm9lc3RpIChIYXQgc2ljaCBnbGF1YiBpY2ggZ3JhZCBnZW91dGV0Li4uClAuUy46TmVpbiBpY2ggYmluIGtlaW5lIE11aXNpa3N0dWRlbnRpbi4uLkFiZXIgaWNoIGhhYiBlaW5lIGlucyBNdWQKZ2VicmFjaHQuLi46KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJjaGllLVF1ZXN0IChBY3JpbW9uLCAyOC4gT2t0IDE5OTUsIDEyOjQ4OjA1KToKSGV1dGUgZmFuZ2VuIHdpciBkaWUgQXJjaGllLVF1ZXN0IGFuLgpXZXIgbWl0bWFjaGVuIHdpbGwsIGlzdCBoZXJ6bGljaCBlaW5nZWxhZGVuLgpWb3JhdXNzZXR6dW5nZW46CjEuIExlY2h6ZW4gbmFjaCAxMzAgQVAKMi4gVmllbCBaZWl0IGFuIGRpZXNlbSBXb2NoZW5lbmRlICgyOC4gdW5kIDI5LikKCkxvcyBnZWh0cyBoZXV0ZSAoU2Ftc3RhZykgdW0gMTQgVWhyLiBUcmVmZnB1bmt0IHZvciBkZXIgRiZFCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiByZSBMaXZlbXVzaWsgKEFudGhlYSwgMjMuIE9rdCAxOTk1LCAxNToyMToyMCk6IChBc21vZGlzLCAzMC4gT2t0IDE5OTUsIDA4OjIwOjAyKToKIyEgcm49Um9lc3RpIHJ0PTgxNDc4ODg5MwpKYSwgaGllciBzcGllbHQgZGllIE11c2lrIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaXRmYWhyZ2VsZWdlbmhlaXQgZ2VzdWNodCAoVGFya2luLCAgMi4gTm92IDE5OTUsIDEwOjU3OjQ5KToKQXVjaCB3ZW5uIGVzIG5vY2ggc2VociBmcnVlaCBpc3Q6IFdlciBrYW5uIG1pciBkZW5ub2NoIGpldHp0IHNjaG9uIHNhZ2VuLApkYXNzIGVyL3NpZSBhbSAxMi4xLjk2IHZvbiBNYXJidXJnIG9kZXIgR2llc3NlbiBuYWNoIEtvZWxuIG9kZXIgbm9jaCBiZXNzZXIKTGV2ZXJrdXNlbiBmYWVocnQgdW5kIG1pY2ggbWl0bmVobWVuIGthbm4/IEVzIHdhZXJlIGVjaHQgc3VwZXIsIHdlbm4gZGFzCmtsYXBwZW4ga29lbm50ZQoKQ2lhbyAgICAgICBUYXJraW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggbWFsIFZlcmVpbi4uLiAoUnVkaXJhdHRlciwgMTMuIE5vdiAxOTk1LCAxNzowMzoxOSk6CkljaCBwcm90ZXN0aWVyZSBhdWYncyBTY2hhZXJmc3RlLCBkYXNzIGRlciBvbGxlIENhdCogZWluZmFjaCBtZWluZW4gQXJ0aWtlbAppbiBkaWUgUnVicmlrIGRpbmdlbnMuZGluZ2VucyB2ZXJsZWd0IGhhdCwgZGllIGphIGVoIGtlaW5lciBsaWVzdC4KRGVzaGFsYiBub2NoIG1hbDoKCldFUkRFVCBNSVRHTElFRCBJTSBWRVJFSU4hCkxlc3QgZGF6dSBkaWUgSW5mb3MgaW4gZGVyIGVudHNwcmVjaGVuZGVuIFJ1YnJpayBkaW5nZW5zLmRpbmdlbnMgb2RlciBhdWYgZGVyCldXVy1TZWl0ZSBkZXMgTUcuCgpSdWRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIG1hbCBWZXJlaW4uLi4gKEpvZiwgMTQuIE5vdiAxOTk1LCAxODoxMTowOCk6CltWZXJsZWd0IHZvbiBzY2htYXJybiwgSGFyZGlsLCAxNC4gTm92IDE5OTUsIDA3OjQzOjE4XToKW1ZlcmxlZ3Qgdm9uIGFuemVpZ2VuLCBSdWRpcmF0dGVyLCAxMy4gTm92IDE5OTUsIDE3OjAzOjE5XToKSWNoIHByb3Rlc3RpZXJlIGF1ZidzIFNjaGFlcmZzdGUsIGRhc3MgZGVyIG9sbGUgQ2F0KiBlaW5mYWNoIG1laW5lbiBBcnRpa2VsCmluIGRpZSBSdWJyaWsgZGluZ2Vucy5kaW5nZW5zIHZlcmxlZ3QgaGF0LCBkaWUgamEgZWgga2VpbmVyIGxpZXN0LgpEZXNoYWxiIG5vY2ggbWFsOgoKV0VSREVUIE1JVEdMSUVEIElNIFZFUkVJTiEKTGVzdCBkYXp1IGRpZSBJbmZvcyBpbiBkZXIgZW50c3ByZWNoZW5kZW4gUnVicmlrIGRpbmdlbnMuZGluZ2VucyBvZGVyIGF1ZiBkZXIKV1dXLVNlaXRlIGRlcyBNRy4KClJ1ZGkKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2ggbWFsIFZlcmVpbi4uLiAoTWFyaXRhLCAxNC4gTm92IDE5OTUsIDIwOjU0OjI3KToKIyEgcm49Sm9mIHJ0PTgxNjM2OTA2OApIaSwKCkljaCB3dWVyZGUgdmllbGxlaWNodCBnZXJuZSBkYXMgTUcgbWl0IG1laW5lciBNaXRnbGllZHNjaGFmdCB1bnRlcnN0dWV0emVuLAp3ZW5uIGljaCBadWdyaWZmIGF1ZnMgV1dXIGhhZXR0ZS4gRGFoZXIgbWVpbmUgQW5yZWd1bmc6CkRpZSBJbmZvcm1hdGlvbmVuIGF1cyBkZW0gV1dXIGtvZW5udGVuIGRvY2ggYXVjaCBpbiBkZXIgRkFRIGVyc2NoZWluZW4uCihNZWluZSBGQVEgaXN0IHNjaG9uIHVlYmVyIGVpbmVuIE1vbmF0IGFsdCwgd2VubiBkYXMgc2Nob24gZ2VzY2hlaGVuIGlzdCwKdmVyZ2Vzc3QgZXMpLiBTb2JhbGQgZGFzIGRlciBGYWxsIGlzdCwgc2NoaWNrIG1pciBtYWwgYml0dGUgd2VyCmVpbmUga3VyemUgTm90aXouCgpNZWluIHNpZWJ0ZXIgQmVpdHJhY2ggKEJlaW0gMTAuIGdlYiBpY2ggdmllbGxlaWNodCBlaW5lbiBhdXMpIDopCk1hcml0YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTdWNoZSAoTWFuZ28sIDIxLiBOb3YgMTk5NSwgMTU6NTM6MDEpOgojISBybj1SeW5lIHJ0PTgxNjk2NTExMQoKCgoKCiAgICAgICAgICAgICAgICBPS0kgZGFubiBiaWV0ZSBpY2ggZnVlciBuZW4gUmluZyBkZXIgR2VzY2hpY2tsaWNoa2VpdCArNAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAuMDAwIE11ZW56ZW4gaW4gQmFyLgoKCgpNYW5nbywgd2lsbCBzb24gRGluZyB1bmJlZGluZ3QgaGFiZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTdWNoZSAoSmVycmljbywgMjEuIE5vdiAxOTk1LCAxNzoyODoyNyk6CiMhIHJuPU1hbmdvIHJ0PTgxNjk2NTU4MQpBbHNvIHdlbm4gaWNoIGVpbmVuIGhhYmUsIHRhdXNjaGUgaWNoIGlobiBnZWdlbiBlaW5lbiBJbnQrMSBvZGVyIG1laHIuCgpKZXJyaWNvLCB3YXIgc2Nob24gbGFuZ2UgbmljaHQgbWVociBiZWltIEtsaXR6ZWxkaW5nZW5zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTdWNoZSAoQ3JlYXRpdmUsIDIxLiBOb3YgMTk5NSwgMTg6MTc6NDkpOgojISBybj1KZXJyaWNvIHJ0PTgxNjk3MTMwNwoKSG0uIFdpZSB3YWVyZSBlcyBtaXQgZWluZXIgUnVicmlrICdBdWt0aW9uJz8/IEdpYnQgamEgenVtaW5kZXN0IGF1Y2ggbmVuCidhdWN0aW9uJyAtIEthbmFsIGluIGRpdi4gYW5kcmVuIE1VRHMgOikKCi1DcmVhLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFN1Y2hlIChBY3JpbW9uLCAyMS4gTm92IDE5OTUsIDE4OjQ0OjU3KToKIyEgcm49TWFuZ28gcnQ9ODE2OTY1NTgxCgoKCgogICAgICAgICAgVW5kIGljaCBiaWV0ZSBmdWVyIGVpbmVuIFJpbmcgZGVyIEdlc2NoaWNrbGljaGtlaXQgKzQKCiAgICAgICAgICAgICAgICAgICAgIDYwLjAwMCBNdWVuemVuIGluIEJhci4KCgoKCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU3VjaGUgKFJvY2h1cywgMjEuIE5vdiAxOTk1LCAxOTowMToxOSk6CiMhIHJuPUFjcmltb24gcnQ9ODE2OTc1ODk3CgoKCiAgICAgICAgICBVbmQgaWNoIGJpZXRlIGZ1ZXIgZWluZW4gUmluZyBkZXIgR2VzY2hpY2tsaWNoa2VpdCArNQoKICAgICAgICAgICAgICAgICAgIFpXRUkgUmluZ2UgZGVyIEdlc2NoaWNrbGljaGtlaXQgKzQhCgoKOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBTdWNoZSAoRnl0LCAyMS4gTm92IDE5OTUsIDE5OjA1OjI0KToKIyEgcm49Um9jaHVzIHJ0PTgxNjk3Njg3OQpEYXMgd2FlcmUgZG9jaCBTcGllbGVyaGlsZmUgUm9jaHVzLCBkYW5uIHdpcnN0IER1IGJlc3RpbW10IGRlZ3JhZGllcnQgOikKOgpGeXQuCjoKUFM6IGFiIG5hY2ggU2NobWFycm4sIGRhcyBoYWIgaWNoIGViZW4gYWJiZXN0ZWxsdCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU3VjaGUgKEhhcmRpbCwgMjEuIE5vdiAxOTk1LCAxOTozNDo0Nik6CiMhIHJuPVJ5bmUgcnQ9ODE2OTc3OTQzCgoKClVuZCBpY2ggYmlldGUgZnVlciBlaW5lbiBSSW5nIGRlciBHZXNjaGlja2xpY2hrZWl0ICs0CgogICAgICAga2VpbmUgNzUwLjAwMCBNdWVuemVuIHdpZSBSeW5lLAoKc29uZGVybiBlaW5mYWNoIGVpbmVuIGxpZWJlbiBLbnVkZGxlci4gSXN0IGRhcyBuaWNodCBiZXNzZXI/CkFiZ2VzZWhlbiBkYXZvbiAtIHdlciBrYW5uIGRlbm4gdWViZXJoYXVwdCBvaG5lIEJhbmt6d2VpdGllcyA3NTAuMDAwIE11ZW56ZW4Kc2NobGVwcGVuIChvZGVyIHdhciBkYXMgZWluIFRpcHBmZWhsZXIsIFJ6bmUgPykKCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTdWNoZSAoUnluZSwgMjEuIE5vdiAxOTk1LCAxOTo0MjowNik6CiMhIHJuPUFjcmltb24gcnQ9ODE2OTc1ODk3CgoKCgogICAgICAgICAgVW5kIGljaCBiaWV0ZSBmdWVyIGVpbmVuIFJpbmcgZGVyIEdlc2NoaWNrbGljaGtlaXQgKzQKCgoKICAgICAgICAgICAgICAgICAgICA3NS4wMDAgbXVlbnplbiBpbiBCYXIuCgoKUnluZS4gRGFzIHdhciBuaWNodCBtZWluIGxldHp0ZXMgR2Vib3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBTdWNoZSAoSGFyZGlsLCAyMS4gTm92IDE5OTUsIDE5OjQyOjU0KToKIyEgcm49UnluZSBydD04MTY5NzkzMjYKCgoKdW5kIGljaCBiaWV0ZSwgZmFsbHMgVG9yZmR1ZW5nIGRhcyBoaWVyIGxpZXN0LCBhdWNoIHp1ciBOb3Qga2VpbmVuIEtudWRkbGVyCmFuLgoKRGFzIGlzdCBhdWNoIG5jaWh0IG1laW4gbGV0enRlcyBHZWJvdC4KCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBTdWNoZSAoSXNzb21hZCwgMjEuIE5vdiAxOTk1LCAxOTo1Mjo1Mik6CiMhIHJuPVJ5bmUgcnQ9ODE2OTc5MzI2Ck8uSy4sIGljaCBiaWV0ZSBmdWVyIGVpbmVuIFJpbmcgZGVyIEdlc2NoaWNrbGljaGtlaXQgKzQKCiAgICAgICAgICAgICAgODAuMDAwIE11ZW56ZW4gQ2FzaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogU3VjaGUgKEd1eWJydXNoLCAyMS4gTm92IDE5OTUsIDE5OjU1OjE1KToKIyEgcm49UnluZSBydD04MTY5ODAwNjAKV2VubiBpY2ggZHVlcmZ0ZSB3dWVyZCBpY2ggbWVpbmVuIFp3ZWl0aSB2ZXJtaWV0ZW4gdW5kIG1pY2ggYXVjaCBub2NoIDopCgpXZXIgYmlldGV0IHNjaGxlY2h0ZXJlcz8KCkd1eWJydXNoLCBoYXQgbml4IHp1IHR1bi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJpbmcgKFJ1ZGlyYXR0ZXIsIDIxLiBOb3YgMTk5NSwgMjA6MjU6MjIpOgpBZWgsIHVuZCBpY2ggYmlldGUgZnVlciBlaW5lbiBSaW5nIERpbmdlbnMgKzQKCgoKTUlDSAoKCk5hPyBJc3QgZGFzIGVpbiBBbmdlYm90PwpSdWRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcmluZyAoR3V5YnJ1c2gsIDIxLiBOb3YgMTk5NSwgMjA6MjY6MDcpOgojISBybj1SdWRpcmF0dGVyIHJ0PTgxNjk4MTkyMgoKTGVnc3RlIG5vY2ggd2FzIHdlcnR2b2xsZXMgZHJhdWY/Ckd1eQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiByaW5nIChIYXIsIDIxLiBOb3YgMTk5NSwgMjA6Mjk6MTgpOgojISBybj1HdXlicnVzaCBydD04MTY5ODE5NjcKSWNoIGZhZW5kZSBuZSBUb21hdGUgb2JlbmRyYXVmIGVybmFoZXJ1bmdzcGh5c2lvbG9naXNjaCB3ZXJ0dm9sbCA6KQoKSGFyIDopKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFN1Y2hlIChMd2F4YW5hLCAyMS4gTm92IDE5OTUsIDIwOjM1OjQ5KToKIyEgcm49UnluZSBydD04MTY5ODAwNjAKSG1tbSBkYW5uIG11c3MgaWNoIGRvY2ggZ2xhdHQgYXVjaCBtYWwgbWl0YmlldGVuOgoKSWNoIGJpZXRlIGFuLCBkaWVqZW5pZ2UgUGVyc29uIG5pY2h0IG1laHIgenUgdGFldHNjaGVsbiAqZ3JpbnMqCgpUc2NoYXUgTHdheAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJpbmcgKE1pbmRvbGx1aW4sIDIxLiBOb3YgMTk5NSwgMjE6MDk6MzUpOgojISBybj1SdWRpcmF0dGVyIHJ0PTgxNjk4MTkyMgpOYSBqYSwgaWNoIGhhZXR0ZSBsaWViZXIgbmVuIFJpbmcgKzQKCiAgICAgICpncmlucyBSdWRpKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJpbmcgKEZ5dCwgMjEuIE5vdiAxOTk1LCAyMTo0MDoxOCk6CiMhIHJuPVJ1ZGlyYXR0ZXIgcnQ9ODE2OTgxOTIyCk5vZSwgUnVkaSA6KQpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgKEtyZXRlaywgMjIuIE5vdiAxOTk1LCAwMjoyMDo0Mik6CiMhIHJuPU1hbmdvIHJ0PTgxNjk0NzYzMQoqKipsYWNoKioqCgpNZWhyIGlzdCBkYXp1IHdvaGwgYXVjaCBrYXVtIHp1IHNhZ2VuLi4uIDopKQoKS3JldGVrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBTdWNoZSAoS3JldGVrLCAyMi4gTm92IDE5OTUsIDAyOjIyOjQxKToKIyEgcm49R3V5YnJ1c2ggcnQ9ODE2OTgwMTE1CktvZW5udGVzdCBqYSBtaXIgYmVpbSBQcm9nZ2VuIGhlbGZlbi4uLiA6KSkKCktyZXRlawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJpbmcgKEtyZXRlaywgMjIuIE5vdiAxOTk1LCAwMjoyMzoyNyk6CiMhIHJuPVJ1ZGlyYXR0ZXIgcnQ9ODE2OTgxOTIyCioqKmdyb2VobCoqKgoKS3JldGVrCgooaGV1dGUgaW4gS3Vyei1Lb21tZW50YXItTGF1bmUhKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmluZyBkZXIgZXNjaGlja2xpY2hrZWl0ICszIChMdWcsIDIyLiBOb3YgMTk5NSwgMTg6MTc6MzYpOgpBbHNvIG1pciByZWljaHQgZWluIFJpbmcgZGVyIEdlc2NoaWNrbGljaGtlaXQgKzMuCkFuZ2Vib3RlIG5hZWNoc3RlIFdvY2hlIGFuIG1pY2guCkx1Zy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3aWVkZXIgMiBtXjIgKEFyYW55YSwgMjIuIE5vdiAxOTk1LCAxODo1Mzo0Myk6Ckpvb28sIHVuZCB3ZWlsIGljaCBldmVudHVlbGwgYXVjaCBuYWNoIEhhaWRlbGJlc2NoIHdpbGwgdW5kIG5pY2h0IHVudGVyIG5lcgpCcnVlY2tlIHNjaGxhZmVuIG1hZyAoc28gdmllbGUgZ2lidCdzIGRhIHdvaGwgYXVjaCBuaWNodCksIGhhZXR0ZSBpY2ggZ2VybgpnZXd1c3N0LCBvYiBpY2ggYmVpIGplbWFuZGVtIG5hZWNodGlnZW4ga2Fubi4KTWVpbiBRdWFydGFsc2Jlc3VmZiBpc3QgZGllc2VuIE1vbnRhZyB1ZWJlciBkaWUgQnVlaG5lIGdlZ2FuZ2VuLCBzbyBldHdhcwppc3Qgd29obCBuaWNodCB6dSBlcndhcnRlbi4uLiBBbnNvbnN0ZW4gYmluIGljaCB6aWVtbGljaCBwZmxlZ2VsZWljaHQuCkZydWVoZXIgaGFldHRlIGljaCBqYSBpbiBNYW5uaGVpbSBuYWVjaHRpZ2VuIGtvZW5uZW4sIGFiZXIgZGllIEJlemllaHVuZyBpc3QKbGV0enRlbnMga2FwdXR0Z2VnYW5nZW4uIFBlY2ggc293YXMuCgpNdWRtYWlsIGFuIG1pY2ggb2RlciBzdGlsbHNjaHdlaWdlbmQgZWluZW4gUGxhdHogcmVzZXJ2aWVyZW4KCkFyYW55YQpOTk4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjIgKFF1YXNpbW9kbywgMjIuIE5vdiAxOTk1LCAxODo1Njo0Nik6CllvcmsKClVlYmVyIFNpbHZlc3Rlciwgb2RlciBrdXJ6IGRhdm9yL2RhaGludGVyLCB3b2xsdGUgaWNoIG5hY2ggWW9yay4gRGEgZmFlaHJ0Cm5pY2h0IHp1ZmFlbGxpZyBqZW1hbmQgaGluLCBkZXIgZ2VzdGVpZ2VydGUgTHVzdCBlbXBmaW5kZXQgbWljaCBtaXQgenVuZWhtZW4/CgpRdWFzaW1vZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFN1Y2hlIChCYW1idWxrbywgMjMuIE5vdiAxOTk1LCAxMzoxOTo1MCk6CiMhIHJuPU1hbmdvIHJ0PTgxNjk2NTU4MQoKCiAgICAgT0tJIGRhbm4gYmlldGUgaWNoIGZ1ZXIgbmVuIFJpbmcgZGVyIEdlc2NoaWNrbGljaGtlaXQgKzQKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSBNdWVuemUgaW4gQmFyLgoKQmFtYnVsa28gKGlzdCBrZWluIFByZWlzdHJlaWJlcikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxBUlAgKFJvZXN0aSwgMjMuIE5vdiAxOTk1LCAxMzoyMDozOCk6ClN1Y2hlIExpdmVyb2xsZW5zcGllbG1vZWdsaWNoa2VpdCBhbiBTaWx2ZXN0ZXIuClVlYmVybmVobWUgYXVjaCBkcmVraWdzdGUgTlNDLVJvbGxlbiB1bmQgYXVjaCBTbCBvZGVyIGFlaG5saWNoZXMuCgpBdHdvcnRlbiBwZXIgbXVkbWFpbCBhbiByb2VzdGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFN1Y2hlIChIYWRyYSwgMjMuIE5vdiAxOTk1LCAyMjoyMDowNCk6CiMhIHJuPUJhbWJ1bGtvIHJ0PTgxNzEyOTE5MAoKYWxzbyBpY2ggd2Vpc3MgbmljaHQgd2FzIGlociBpbW1lciBtaXQgZGllc2VuIG1hdGVyaWVsbGVuIGRpbmdlbiBoYWJ0LiBpY2gKd3VlcmRlIGF1Y2ggZWluZW4gZ2VzY2hlbmt0IG5laG1lbi4gd2FydW0gaW1tZXIgZ2xlaWNoIGZ1ZXIgYWxsZXMgemFobGVuPwoKaGFkcmEgLSBnZWl6aWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFN1Y2hlIChNaW5kb2xsdWluLCAyMy4gTm92IDE5OTUsIDIyOjM4OjA3KToKIyEgcm49SGFkcmEgcnQ9ODE3MTYxNjA0CkljaCBhdWNoLiBVbmQgd3VlcmRlIGlobiBkYW5uIGRlciBIeWRyYSBzY2hlbmtlbi4KICAgICAgICAgICAgICAgKmtudWRkZWwgSHlkcmEgICBhZWggSGFkcmE/KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogMCAoWnVlcmlsZXUsIDIzLiBOb3YgMTk5NSwgMjM6NTM6MDUpOgojISBybj1UZXJyb3Jpc3QgcnQ9ODE2ODY4NTA1ClNhbGkgVGVycm9yaXN0LApIbW0gTWFnaWVyIHdlcmRlbiwgZGFubiBrYW5uc3QgZHUgZGVpbiBpbnZlbnRvcnkgImF1dG9sb2FkIiBtYWNoZW4uIE51ciBhbHMKTWFnaWVyIGJyYXVjaHN0IGR1IGRlaW4gaW52ZW50b3J5IHNvIHdpZSBlcyBqZXR6dCBpc3QgbmljaHQgbWVociA9OikKClRzY2h1ZXNzIHphZW1lIFp1ZXJpbGV1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb256ZXJ0IChTaWx2YW5hLCAyNC4gTm92IDE5OTUsIDA4OjEwOjMwKToKTmFjaGRlbSBlcyBpbiBkZXIgUnVicmlrIFRyZWZmZW4gc2Nob24gYW5nZWRldXRldCB3dXJkZSwgaGllciBlaW5tYWwKb2ZmaXppZWxsOgoKV2VyIHNjaG9uIGltbWVyIG1hbCBlaW5lIEdsZXRzY2hlcmZlZSBpbiBuYXR1cmEgdW5kIGF1ZiBkZXIgQnVlaG5lIHNlaGVuCih1bmQgaG9laHJlbikgd29sbHRlLCBoYXQgYW0gTWl0dHdvY2ggZGVuIDI5LjExLiBHZWxlZ2VuaGVpdCBkYXp1LiBFYmVuCmRhbm4gKHNvIGdlZ2VuIDIyLjAwIFVocikgc3BpZWxlbiBkaWUKICAgICdMaXR0bGUgRnVyeSBUaGluZ3MnCmF1ZiBkZW0gJ0hlYXZlbnMgRG9vcictS29uemVydCBpbSBCdW5rZXIgVWxtZW53YWxsLiBXZXIgYWxzbyBaZWl0IHVuZCBMdXN0CmhhdCwgaXN0IGdlZ2VuIGRlbiBsYWVjaGVybGljaGVuIEVpbnRyaXR0IHZvbiA1Li1ETSAoQWJlbmRrYXNzZSkgaGVyemxpY2gKd2lsbGtvbW1lbi4gRGEgd2lyIG5pY2h0IGRpZSBWZXJhbnN0YWx0ZXIgc2luZCwga29lbm5lbiB3aXIgbGVpZGVyIGFtClByZWlzIG5pY2h0cyBkcmVoZW4uLi4gQWNoLCBqYSAtIEVzIGJpZXRldCBzaWNoIG5hdHVlcmxpY2ggYW4sIHZvcmhlciBub2NoCmJlaSBTdGFtbXRpc2NoIGltIENhZmUgTWludCB2b3JiZWl6dXNjaGF1ZW4uCgpTaWx2YW5hCgpQUzogQWNoLCBqYSAtIE11c2lrcmljaHR1bmcuLi4uIEhtbW0uLi4gR2FyIG5pY2h0IHNvIGVpbmZhY2guIElyZ2VuZHdvCiAgICB6d2lzY2hlbiBIYXJkcm9jaywgQnJpdC1Qb3AgdW5kIFB1bmssIGRlbmtlIGljaC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFN1Y2hlIChBY3JpbW9uLCAyNC4gTm92IDE5OTUsIDExOjQwOjAxKToKIyEgcm49QmFtYnVsa28gcnQ9ODE3MTI5MTkwCgoKICAgICBJY2ggYmlldGUgZnVlciBlaW5lbiBSaW5nIGRlciBHZXNjaGlja2xpY2hrZWl0ICs0CgogICAgICAgICAgU292aWVsZSBNdWVuemVuIHdpZSBkdSBudXIgc2NobGVwcGVuIGthbm5zdAogICAgICAgICAgUExVUyA1MC4wMDAgTXVlbnplbiBpbiBCYXIhCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFN1Y2hlIChUb2V0ZXIsIDI0LiBOb3YgMTk5NSwgMTE6NTM6MjUpOgojISBybj1BY3JpbW9uIHJ0PTgxNzIwOTYwMQpEaWVzZXMgQW5nZWJvdCBzb2xsdGVzdCBEdSBhYmVyIGtlaW5lbSBNYWdpZXIgbWFjaGVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmV1bmRlIChHd3lud2FpdGVyLCAyOC4gTm92IDE5OTUsIDAwOjUzOjUwKToKCkxpZWJlIE1pdE11ZGRpZXMsCgpJY2ggZnJldWUgbWljaCwgZGllIFZlcmxvYnVuZyBtZWluZXIgRnJldW5kaW4gSW5lc2hhIG1pdCBtZWluZW0gRnJldW5kCklzbm9nb29kIGFuenV6ZWlnZW4uIERpZSBWZXJsb2J1bmdzZmVpZXIgZmFuZCBiZXJlaXRzIHN0YXR0IC0gYWJlciBpY2ggaG9mZmUsCmRpZSBiZWlkZW4gZGVua2VuIGRhcmFuLCBtaWNoIC11bmQgRXVjaCBhbGxlLSB6dXIgSG9jaHplaXQgZWluenVsYWRlbi4uLiAgOi0pKQoKR3d5bndhaXRlciwgTk5OIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29uemVydCAoSG9yc2NoZCwgMjguIE5vdiAxOTk1LCAyMzowODozMyk6CkhpaG8uCgpJY2ggaGFiIGF1Y2ggbWFsIGVpbmUgQW5rdWVuZGlndW5nIGZ1ZXIgYWxsZSBMaWViaGFiZXIgdm9uIFB1bmssIE1ldGFsLApIaXBIb3AgdW5kIEdydW5nZSAoc28gc3RlaHRzIGF1ZiBkZW0gUGxha2F0Li4uKSA6CgpBbSA4Li85LiBEZXplbWJlciBnaWJ0IGVzIGltIEFKWiBpbiBIb21idXJnL1NhYXIgZWluIFNvbGktRmVzdGl2YWwgZnVlcgplaW4gSlVaIGluIEtyb2F0aWVuLiBFcyBnaWJ0IGhhbHQgamVkZSBNZW5nZSBNdXNpay4gRGllIEJhbmRzIGhlaXNzZW4KKGZhbGxzIGlyZ2VuZGVpbmVtIHVlYmVyaGF1cHQgZWllciBkZXIgTmFtZW4gd2FzIHNhZ3QuLi4pIDoKQm9kZW5sb3NlIEZyZWNoaGVpdCwgTGF6YSBTb2RzLCBCZWxpc2hhIEJlYWNvbiwgVXNlZCBGb3IgTm90aGluZywgV2hvbGUsCkRpdmVyZ2VuY2UsIElubmVyIExvZ2ljLCBFeHBlcmllbmNlLCBIYWJha3VrLCBHaWFudCBPdmVyZG9zZSwgU2NoZWl0YW4sClJlZCBBaW0uCk5hamEuLi4gaWNoIHNlbGJlciBrZW5uZSBhdWNoIG51ciB3ZW5pZ2UgZGF2b246CkRhIHdhZXJlIGVyc3RtYWwgbWVpbmUgQmFuZCAoQmVsaXNoYSBCZWFjb24pLiBXaXIgbWFjaGVuIFB1bmstUm9jayBzbwppcmdlbmR3byB6d2lzY2hlbiBOT0ZYLCBQZW5ueXdpc2UsIHVuZCBLb25zb3J0ZW4gYW56dXNpZWRlbG4uIFdob2xlCmdlaGVuIGF1Y2ggaW4gZGllc2UgUmljaHR1bmcuIERhbm4gd2FlcmVuIGRhIG5vY2ggVXNlZCBmb3IgTm90aGluZywgZGllCndvaGwgZWhlciBhdWYgZGVyIE5ZLUhhcmRjb3JlIFNjaGllbmUgYW56dXNpZWRlbG4gc2luZCB1bmQgbGFzdCBidXQgbm90CmxlYXN0IEV4cGVyaWVuY2UsIGRpZSBkYXMgSGVhdnktTWV0YWxsZXItSGVyeiBob2VoZXIgc2NobGFnZW4gbGFzc2VuLgpEaWUgYW5kZXJlbiBCYW5kcyBrZW5uZSBpY2ggd2llIGdlc2FndCBsZWlkZXIgbmljaHQuLi4KCk5hamEuLi4gd2llIGdlc2FndCwgZGFzIGdhbnplIGZpbmRldCBzdGF0dCBhbTogOC4vOS4gRGV6ZW1iZXIgYWIgMTguMDAgVWhyCmltIEFKWiBIb21idXJnL1NhYXIgKGFtIEd1ZXRlcmJhaG5ob2YpLiBLb3N0ZW4gdHV0cyA2LC0gZnVlciBlaW5lbiBUYWcgdW5kCjEwLC0gZnVlciBiZWlkZSBUYWdlLgoKV2VyIGFsc28gc2Nob24gaW1lciBtYWwgbmVuIE1HLU1hZ2llciBQdW5rLXJvY2tlbiBzZWhlbiB3b2xsdGUsIG9kZXIKZWluZmFjaCBudXIgZGllIG8uZy4gTXVzaWtyaWNodHVuZ2VuIG1hZywgdW5kIHdlbSBkZXIgV2VnIG5pY2h0IHp1CndlaXQgaXN0LCBkZXIgbW9lZ2UgZWluZmFjaCBrb21tZW4uCgpJY2ggaG9mZmUgaWNoIHNlaCBldWNoLAoKSG9yc2NoZCAoUHVuay1Sb2NrZXIgOikpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS29uemVydCAoSGFyLCAyOS4gTm92IDE5OTUsIDA4OjE0OjUyKToKIyEgcm49SG9yc2NoZCBydD04MTc1OTY1MTMKTWlzdCB6dSB3ZWl0IHdlZyA6KCBkYXMgS29uemVydCEKQWJlciBtYWlsIG1pciBtYWwgRGVpbmUgUHJpdmF0bWFpbCwgZGFubiBrb2VubmVuIHdpciB2aWVsbGVpY2h0IG1hbApLb256ZXJ0LW1hZXNzaWcgd2FzIGNoZWNrZW4KCkhhciAoc2llaGUgVGl0ZWwpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaVdwIChOb3ZlbWJlcmF1c2dhYmUpIChOdWRlaSwgMjkuIE5vdiAxOTk1LCAxMzowODowNCk6CkxpZWVlZWVlYmUgR2VtZWluZGUhCkdlc2NoYWV0enRlIExlc2VyIHVuZCBSaW5uRW4hCgoKRXMgaXN0IHdpZWRlciBzb3dlaXQ6CgpEZXIgbmV1ZSBEaVdwIGlzdCBkYSEhIQoqKioqKioqKioqKioqKioqKioqKioqKioqKgoKREVSIElSUkUgV0VMVFJBVU1QUk9MRVQsIGRhcyBTcGl0emVuemluZSB6dW0gVGhlbWEgUlNQIHVuZCBGYW50YXN5IQoKTm92ZW1iZXJhdXNnYWJlIG5vY2ggZHJ1Y2tmcmlzY2gsIGRhc3MgZGllIEZhcmJlIHplcnJpbm50IChpZ2l0dCkuCgpNaXQgU3BpdHplbktHcyB1bmQgcGFja2VuZGVuIEluZm9zIHVlYmVyIGFsbGVzLCB3YXMgUm9sbGVuc3BpZWxlciBsaWViZXIKdmVyc2Nod2VpZ2VuIQoKSGV1dGUgbm9jaCBrb3N0ZW5sb3NlcyBQcm9iZWV4ZW1wbGFyIHNpY2hlcm4gLi4uCgouLi5kaWUgRm9sZ2VleGVtcGxhcmUgc2luZCBtYW5nZWxzIElua2Fzc29zeXN0ZW0gbmFlbWxpY2ggZ2VuYXVzbyBncmF0aXMsIGljaAptYXJrdHdpcnRzY2hhZnRsaWNoZXMgTmFja2VycGF0emwuLi4KCgpOdWRlaSwKU2NocmlmdGxlaXR1bmcgRGlXcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgVWViZXJuYWNodHVuZyBpbiBNdWVuc3RlciAoU2lxdWUsICA0LiBEZXogMTk5NSwgMTI6NTI6NDIpOgpJY2ggc3VjaGUgZnVlciBkYXMgV29jaGVuZW5kZSA5Li8xMC4gMTIuICgyLiBBZHZlbnQpIGVpbmUgVWViZXJuYWNodHVuZyBpbgpNdWVuc3Rlci4gV2VyIGthbm4gbWlyIGhlbGZlbj8KRXZlbnR1ZWxsIGthZW1lIGljaCBzY2hvbiBhbSA4LiAxMi4gKEZyZWl0YWcpIGFiZW5kcy4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lxdWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFN1Y2hlIChGcmFnZ2xlLCAgNS4gRGV6IDE5OTUsIDE3OjM1OjA2KToKIyEgcm49VG9ldGVyIHJ0PTgxNzIxMDQwNQpNZWluc3QgRHUgbmljaHQsIGlyZ2VuZHdhbm4gd2VyZGVuIGF1Y2ggZGllIFNwaWVsZXIgTUFYX0lOVCBlcnJlaWNoZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ld3Mgdm9uIGZyeWRlciAoTWlybywgIDYuIERleiAxOTk1LCAxMDo1ODozNSk6CkhpIElocnMsCm5hY2hkZW0gbWljaCBGcnlkZXIgenUgc2VpbmVtIFBNUFMgKHBlcnNvZW5saWNoZW4gTW9yZ2VuZ3JhdWVuClByaXZhdHNla3JldGFlcikgZXJuYW5udCBoYXQsIGhpZXIgZGllIG5ldWVzdGVuIG5ld3M6CkVzIGdlaHQgaWhtIGd1dCwgZXIgZ2VuaWVzc3QgZGllIExlaHJnYWVuZ2UuIFZvbSA5LjEuLTIuMi45NiBrb21tdCBlciB3aWVkZXIKbWFsIG5hY2ggTXVlbmNoZW4gdW5kIGdpYnQgZGFubiBQcml2YXRhdWRpZW56ZW4uIFZpZWxsZWljaHQga2FubiBqYSBqZW1hbmQgZWluClRyZWZmZW4gb3JnYW5pc2llcmVuIChLaWlpaWlpd2lpaWlpPz8/PykKU2VpbmUgbmV1ZSBBZHJlc3NlIGlzdCBzZWluZSBkaWVuc3RsaWNoZToKTWFyayBGcnlkZXIsIFdhcnR1bmdzc3RhZmZlbCwgRmx1Z2JlcmVpdHNjaGFmdCBCTVZnLCBQRiA5MCAyNSAwMC81MTYsIDUxMTQwCktvZWxuLgpBbnNvbnN0ZW4gYmVzdGUgR3J1ZXNzZSBhbiBhbGxlLApNaXJvIChpLkEuIHZvbiBNY0ZyeWRlciwgU3ZvbHZhZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQdW1hcyBuZXVlIFF1ZXN0Li4uIChDdWNodWxsaW4sICA3LiBEZXogMTk5NSwgMDQ6MzU6MTApOgoKClNvIG5ldHQgZGllIEJlc2NocmVpYnVuZ2VuIHVuZCBEZXRhaWxzIGluIGRlciBuZXVlbiBRdWVzdCBhdWNoIHNpbmQ6CgpJY2ggaGFsdGUgZGllc2UgUXVlc3QgYXVmZ3J1bmQgZWluZXMgQnVncyBub2NoIG5pY2h0IGZ1ZXIgc3BpZWxiYXIuCk1vZWdlbiBkaWUgd2FjaydyZW4gQWJlbnRldWVyIFB1bWFzIERlbWVudGkgYWJ3YXJ0ZW4sIGJpcyBzaWUgc2ljaAppbiBkaWVzZXMgZWluemlnYXJ0aWdlIFZlcmdudWVnZW4gc3R1ZXJ6ZW4uCgpCdWVjaGVyd3VybSwKQ3VjaHVsbGluLgoKUFM6IEFjaCBqYSwgc29ycnksIGRhc3MgbWlyIGRpZSBIZXR6ZXJkYWVtb25lbiBhdXNnZWJ1ZXh0IHNpbmQsIGFiZXIgaWNoCiAgICBiaW4gZWNodCBuaWNodCBpbiBkZXIgTGFnZSBnZXdlc2VuLCBzaWUga3VyeiB6dSBwbGFldHRlbiwgZGVubiBzaWUKICAgIHNpbmQgZWNodCBuaWNodCBvaG5lLiBIb2ZmZW5saWNoIHJpY2h0ZW4gc2llIGtlaW5lbiBhbGx6dWdyb3NzZW4KICAgIFNjaGFkZW4gYW4uLi4gOy0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHVtYXF1ZXN0IChMdWcsICA3LiBEZXogMTk5NSwgMDQ6Mzg6MTMpOgpBY2hqYSwgenUgZGVtIHdhcyBDdWh1bGxpbiBzYWd0OiByaWNodGV0IEV1Y2ggYXVmIGxhZW5nZXJlIFdhcnRlemVpdGVuIGVpbi4Ka2VpZSBBaG51bmcgd2llIGxhbmdlIGljaCBkYXJhdWYgZ2V3YXJ0ZXQgaGFiLCBlaW5lIEZsdWVzc2lna2VpdCBlaW5mdWVsbGVuIHp1CmtvZW5lLgoKTHVnCgpQLlMuOiBEaWUgSGV0emVyZGFlbW9uZW4gc2luZCBhbiBtaXIgYXVjaCB2b3JiZWkuIEdhbnogc2Nob2VuIGhlZnRpZyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU1RBUkdBVEUgKEN5bW9uaywgIDcuIERleiAxOTk1LCAxNDoxMjo1NSk6Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTUFHSUVSIEdFU1VDSFQhIE1BR0lFUiBHRVNVQ0hUISBNQUdJRVIgR0VTVUNIVCEgTUFHSUVSIEdFU1VDSFQhCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCkJJU1QgRFUgRUlOIFNDSUVOQ0UgRklDVElPTi0sIERBUksgRlVUVVJFLSBPREVSIENZQkVSUFVOSy0gRkFOID8KCiAgICAgICAgICAgICBFSU4gQkVHRUlTVEVSVEVSIFJPTEUtUExBWSBDUkFDSyA/Pz8/CgogICAgICBXT0xMVEVTVCBEVSBTQ0hPTiBJTU1FUiAnTUFMIEVJTkUgU1RPUlkgU0NIUkVJQkVOID8/Pz8KCiAgICAgICAgICAgIExFSURFU1QgRFUgQU4gUEhBTlRBU0lFVUVCRVJTQ0hVU1MgPz8/PwoKICAgICAgICBXT0xMVEVTVCBEVSBTQ0hPTiBJTU1FUiBORVVFIFdFTFRFTiBTQ0hBRkZFTiA/Pz8/CgoKCkZhbGxzIGVpbmVyIG9kZXIgc29nYXIgbWVocmVyZSBkZXIgb2JlbiBnZW5hbm50ZW4gUHVua3RlIHp1dHJlZmZlbiwKZGFubiBiaXN0IERVIHVuc2VyIE1hbm4gb2RlciBGcmF1LCAgZGVubiB3aXIgc3VjaGVuICBwaGFudGFzaWV2b2xsZQp1bmQgIHZvciBJZGVlbiAgc3BydWVoZW5kZSAgTWl0YXJiZWl0ZXIgenVtICBBdWZiYXUgZWluZXMgIGRldXRzY2gtCnNwcmFjaGlnZW4gIFNjaWVuY2UtRmljdGlvbiAgTXVkcy4gIERhcyBpc3QgIERlaW5lICBDaGFuY2UgIGJlaSBkZXIKUGxhbnVuZyB1bmQgRW50d2lja2x1bmcgIGVpbmVzIE11ZHMgdm9uIE51bGwgYXVmIG1pdCBkYWJlaSB6dSBzZWluLgoKRGllIGVpbnppZ2VuIFZvcnJhdXNzZXR6dW5nZW4sIGRpZSBEdSBtaXRicmluZ2VuIHNvbGx0ZXN0IHNpbmQ6CgogbyBNVUQgRXJmYWhydW5nIGFscyBTcGllbGVyIG9kZXIgdmllbCBSTCBSb2xsZW5zcGllbC0gRXJmYWhydW5nCgogICAgICAgICAgICBvICBWaWVsIFBoYW50YXNpZSB1bmQgdmllbGUgSWRlZW4KCiAgICAgICAgbyBBcmJlaXRzd2lsbGUsIER1cmNoaGFsdGV2ZXJtb2VnZW4gdW5kIFplaXQKCgpQcm9ncmFtbWllcmtlbm50bmlzc2UgIHNpbmQgIG5hdHVlcmxpY2ggIG51ZXR6bGljaCwgYWJlciBrZWluZQp1bmJlZGluZ3RlIFZvcmF1c3NldHp1bmcuIFZvcmVyc3Qgc2luZCB2b3IgYWxsZW0gSWRlZW4gZ2VmcmFndCEhIQoKU28sIHdlbm4gRHUgbmV1Z2llcmlnIGdld29yZGVuIGJpc3QsIGthbm5zdCBEdSBEaWNoIGFuIGVpbmUgZGVyCmZvbGdlbmRlbiBQZXJzb25lbiB3ZW5kZW46CgphcnRyYW1Ac3RhcmdhdGUKcGFrQHN0YXJnYXRlCmN5bW9ua0Btb3JnZW5ncmF1ZW4KCm9kZXIgbWFjaCBlaW5mYWNoICdtYWwgIndlciBzdGFyZ2F0ZSIgdW5kIGZhbGxzIGplbWFuZCBkYSBpc3QsCnF1YXRzY2ggaWhuL3NpZSBhbiEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1BR0lFUiBHRVNVQ0hUISBNQUdJRVIgR0VTVUNIVCEgTUFHSUVSIEdFU1VDSFQhIE1BR0lFUiBHRVNVQ0hUIQp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhdGVyIEx1aCAoRnl0LCAxMi4gRGV6IDE5OTUsIDAyOjEyOjMxKToKCkljaCBtb2VjaHRlIEV1Y2ggOikgZnVlciBEaWVuc3RhZywgMTggVWhyLCB6dSBXYXRlciBMdWggZWlubGFkZW4sCmRhbm4gZHVlcmZ0ZSBkYXMgTGFnIHdlZ3NlaW4gdW5kIG5vY2ggZ2VudWVnZW5kIExldXRlIGRhIHNlaW4gOikKCkZ5dC4KClBTOiBJY2ggaG9mZmUsIGRhcyB3YXIgamV0enQgaW0gU2lubmUgZGVzIEVyZmluZGVycyAoQm9pbmcgYW5zY2hpZWwpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2F0ZXIgTHVoIChNYW5nbywgMTIuIERleiAxOTk1LCAwMjoxOTo1Mik6CiMhIHJuPUZ5dCBydD04MTg3MzA3NTEKCgoKV2VubidzIGRpZSBaZWl0IGVybGF1YnQgYmluIGljaCBkYWJlaS4KCk1hbmdvLCBnYW56IHdpbGQgYXVmIGRlbiBXYXRlciBMdWguCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWl0c3BpZWxlciBmdWVyIEFyY2hpZSBnZXN1Y2h0IChJc25vZ29vZCwgMTMuIERleiAxOTk1LCAxNTozNzoxMyk6Ck5hY2ggMiB2ZXJnZWJsaWNoZW4gVmVyc3VjaGVuIGhhYmUgaWNoIG1pY2ggbWFsIHdpZWRlciBkYXp1IGR1cmNoZ2VydW5nZW4sCmFyY2hpZSB6dSB2ZXJzdWNoZW4uIFdlciBJbnRlcmVzc2UgZGFyYW4gaGF0LCBtaXR6dW1hY2hlbiBiaXR0ZSBiZWkgbWlyCm1lbGRlbi4KSWNoIHBlcnNvZW5saWNoIHd1ZXJkZSBlaW5lcyBkZXIgbmFlY2hzdGVuIFdvY2hlbmVuZGVuIGJldm9yenVnZW4sIGFiZXIgenVyCk5vdCBrb2VubnRlbiB3aXIgYWN1aCAzLTQgYWJlbnNlc3Npb25zIG1hY2hlbi4KCklzbm9nb29kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCAoSXNub2dvb2QsIDE0LiBEZXogMTk5NSwgMTg6Mjc6MjApOgpBdWZncnVuZCB1bnZvcmhlcmdlc2VoZW5lciBVbXN0YWVuZGUgbXVzc3RlbiBJbmVzaGEgdW5kIEljaCB1bnNlcmUgSG9jaHplaXQKZXR3YXMga3VyemZyaXN0aWcgYWJoYWx0ZW4uIEljaCBtb2VjaHRlIG1pY2ggYW4gZGllc2VyIFN0ZWxsZW4gYmVpIGFsbGVuCmJlZGFua2VuLCBkaWUgdHJvdHpkZW0gZ2Vrb21tZW4gc2luZCB1bmQgbWljaCBiZWkgYWxsZW4gYW5kZXJlbgplbnRzY2h1bGRpZ2VuLCBkaWUgdmllbGxlaWNodCBnZXJuZSBnZWtvbW1lbiB3YWVyZW4sIGFiZXIgbmljaHQga29ubnRlbi4KRWluZSBhbmdlbWVzc2VuZSBGZWllciB3ZXJkZW4gd2lyIG5hY2ggdW5zZXJlbiBGbGl0dGVyd29jaGVuIG5hY2hob2xlbi4KSXNub2dvb2QsIGF1Y2ggaW0gTmFtZW4gZGVyIGJlemF1YmVybmRzdGVuIEZyYXUgZGVzIE1vcmdlbmdyYXVlbnMsIEluZXNoYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFuemVpZ2UgKE9ldHRpLCAxNC4gRGV6IDE5OTUsIDE5OjI5OjA0KToKSGkgIQoKSGFlc3NsaWNoZXIga2xlaW5lciBFbGYgKG1hZ2llcikgc3VjaHQgaGFlc3NsaWNoZXMga2xlaW5lcyBXZXNlbgpmdWVyIGFsbGVzIHdhcyB6dSBad2VpdCBub2NoIHdlbmlnZXIgU3Bhc3MgbWFjaHQuCkVybnN0Z2VtZWludGUgWnVzY2hyaWZ0ZW4ga29lbm50IGlociBnZXRyb3N0IHdlZ3NjaG1laXNzZW4sIGRlcgpSZXN0IGdlaHQgYW4gbWljaC4KCk9ldHRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXdWVnZXJ0YW5uZW4gKElzbm9nb29kLCAxNC4gRGV6IDE5OTUsIDIyOjQwOjIzKToKSWNoIGJpZXRlIDYwMDAgZnVlciBqZWRlbiBTdGFtbS4KSXNubwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFua2UgISAoT2V0dGksIDE1LiBEZXogMTk5NSwgMTI6MDU6MDUpOgpZbyAhCgpJY2ggZGFua2UgQWNyaW1vbiBmdWVyIHNlaW5lIEFudHdvcnQgYXVmIG1laW5lIEFuemVpZ2UgdW5kCmRhcyBad2Vpc3R1bmVkaWdlIFVudGVyd2Fzc2VyaWRsZW4gaW4gQXRsYW50aXMuCgpadSB6d2VpdCB3YXIgZXMgZWNodCBOT0NIIGxhbmd3ZWlsaWdlci4gOy0pCgpHcnVzcwoKT2V0dGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlc3VjaHQgLyBHZWZ1bmRlbiAoUmFmZmksIDE1LiBEZXogMTk5NSwgMjM6MzY6NDIpOgoKVmVybWlzc3Qgd2lyZAoKRWluIE1lc3Nlci4KRWluZSBKYWdkYXJtYnJ1c3QuCkVpbmUgU2NoYXVmZWwuCjIgRmxhZXNjaGNoZW4gbWl0IHJlaW5lbSBBbGtvaG9sLgoyIFZvb2Rvb25hZGVsbi4KRWluIExpY2h0aGVsbS4KRWluZSByZWxhdGl2IG5ldWUgT3JraG9zZS4KRWluZSBQcmllc3RlcnJ1ZXN0dW5nLgpFaW4gUGFhciBzY2h3YXJ6ZSBTdGllZmVsLgpFaW4gUGFhciBzY2h3YXJ6ZSBIYW5kc2NodWhlLgpFaW5lIHNjaHdhcnplIEt1dHRlLgpFaW4gZHVua2xlcyBOZWNyb21hbnRlbnNjaHdlcnQuCkVpbmUgbWFnaXNjaGUgS3VnZWwuCkVpbiBTY2hsZWltYmV1dGVsLgpFaW4gRWlzYW11bGV0dC4KRWluIHNpbGJlcm5lcyBLcmV1ei4KNCBGcm9zY2hzY2hlbmtlbC4KRWluIFNjaGlsZGNoZW4uCjI2NjAgTXVlbnplbi4KCkFscyBtb2VnbGljaGVyIGRlcnplaXRpZ2VyIGJlc2l6dGVyIHdpcmQgZWluIFNvbGRhdCBkZXIgU3RhZHR3YWNoZSB2b24KTW9sdWtpbiB2ZXJtdXRldCwgZGVyIHNpY2ggdm9yIGRlciBTdGFkdHdhY2hlIHJ1bXRyZWlidC4gU29sbHRlbiBkaWUgU2FjaGVuCmF1ZmdlZnVuZGVuIHdlcmRlbiBzbyBiaW4gaWNoIHp1IGVpbmVyIEJyb3NzenVlZ2lnZW4gQmVsb2hudW5nIGVudHNjaGxvc3Nlbi4KCkdydXNzCkguCihOZWluLCBuaWNodCBudXIgZWluIEhhZW5kZWRydWNrIC0gZXMgd2lyZCBtaW5kZXN0ZW5zIGVpbiBmZXVjaHR3YXJtZXIgc2VpbikKCkFlaCAtIEJyb3NzenVlZ2lnZW4gaGVpc3N0IG50dWVybG9jaCBHcm9zc3p1ZWdpZ2VuCnVuZCBudHVlcmxvY2ggc29sbCBuYXR1ZXJsaWNoIGhlaXNzZW4KKHVuZCBiZXZvciBkYXMgamV0enQgbm9jaCBzY2hsaW1tZXIgbWl0IGRlbiBUeXBvcyB3aXJkIGhvZXJlIGljaCBsZWliZXIgYXVmKQoKR3J1c3MgKGVudGd1ZWx0aWcpCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmVrYW5udG1hY2h1bmcgKFp1ZXJpbGV1LCAxOC4gRGV6IDE5OTUsIDAzOjM0OjI3KToKIyEgcm49TWFyaXRhIHJ0PTgxOTE2NzM4MgpTYWxpLApEYSBncmF0dWxpZXIgaWNoIERvY2ggIkdyYXR1bGF0aW9uIiA9OikKTWFsIHNlaGVuIGljaCBzY2hhdSBvYiBpY2gga29tbWVuIGthbm4gdW5kIGV1Y2gsIHdpZSBsdWcgbWljaCBmcmFndGUgenUKdHJhdWVuLgpIbW0uLiBhY2ggamEsIGx1ZydzIHRldWZsaXNjaGVuIE11bmRnZXJ1Y2ggbXVzcyBhbmdlbmVobSBzZWluICpTY2hhdWRlciogPTopCkFjaCBmYWVsbHQgbWlyIG5peCBtZWhyIGRhenUgZWluIGRhcnVtLi4KClRzY2h1ZXNzIHVuZCB2aWVsIEdsdWVjayBpbiBldXJlbSB3ZWl0ZXIgTGViZW4gd3VlbnNjaHQuLgoKWnVlcmlsZXUgZGVyIHNjaHJlY2tsaWNoZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJla2FubnRtYWNodW5nIChCbG9vZHloYXJyeSwgMTguIERleiAxOTk1LCAwODowNDo0MSk6CiMhIHJuPU1hcml0YSBydD04MTkxNjczODIKSGVyemxpY2hlbiBHbHVlY2t3dW5zY2ggRXVjaCBiZWlkZW4hCk9iIGljaCB1bSAyMTowMCBkYWJlaSBzZWluIGthbm4gaXN0IG5vY2ggZXR3YXMgZnJhZ2xpY2gsIGFiZXIgdmllbGVpY2h0CmtvZW5uZW4gd2lyIGRpZSBGZWllciBiZWltIG5hZWNoc3RlbiBkb3J0bXVuZGVyIFRyZWZmZW4gbmFjaGhvbGVuPyA6KQpBdWYgamVkZW4gRmFsbCB3dWVuc2NoZSBpY2ggRXVjaCBhbGxlcyBHdXRlIGZ1ZXIgRXVlciB3ZWl0ZXJlcyBNVUQtTGViZW4uCgpCbG9vZHkgSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaWhuYWNodGVuLCBXYWhsZW4gdW5kIFdlbHRyYXVtcHJvbGV0IChERVIgSVJSRSkgKE51ZGVpLCAxOC4gRGV6IDE5OTUsIDA4OjI3OjUyKToKTGllYmUgTGVzZXIgdW5kIElubmVuLCBLYW1lcmFkZW4gdW5kIERpbm5lbiwgTXVkZGVyIHVuZCBSaW5uZW4hISEKCkVzIGlzdCB3aWVkZXIgZWlubWFsIHNvd2VpdCEKVW5iZWhlbGxpZ3Qgdm9uIGRlbiBVbmJpbGxlbiBkZXMgcG9saXRpc2NoZW4gR2VzY2hlaGVucywgdm9uIGRlbiBad2FlbmdlbiBkZXMKS2FsZW5kZXJzIHVuZCB2b20gU2NobmVlOgoKREVSIElSUkUgV0VMVFJBVU1QUk9MRVQgKFdlaWhuYWNodHNhdXNnYWJlKSBpc3QgREEKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCkdlaGFsdHZvbGxlbiBLdXJ6Z2VzY2hpY2h0ZW4sIG5lcnZlbmF1ZnJlaWJlbmQsIHNwYW5udW5nc2dlbGFkZW4sCmF0bW9zcGhhZXJpc2NoLCBnZXJhZGUgcmljaHRpZywgdW0gYW0gS2FtaW5mZXVlciBnZWxlc2VuIHp1IHdlcmRlbiwgd2FlaHJlbmQKZHJhdXNzZW4gZGVyIFN0dXJtIHRvYnQuCgpEaWUgUkwtWmVpdHNjaHJpZnQgd2lyZCBqZWRlbSB6dWZsYXR0ZXJuLCBkZXIgZGFyYW4gSW50ZXJlc3NlIGJla3VuZGV0LCBzaWUKa29zdGV0IG5hZW1saWNoIEdBUk5JWC4KV2FzIHVucyBnZW51ZWd0LCBpc3QgZWluIGtsZWluZXIgUG9ydG9iZWl0cmFnIChETSAxMCBmdWVyIDggQXVzZ2FiZW4gaXN0CmVpbmdlbnRsaWNoIGhlbW11bmdzbG9zLCBmYWVsbHQgc2Nob24gZmFzdCB1bnRlciBmYWhybGFlc3NpZ2UgS3J5ZGEpLgoKSW50ZXJlc3NhbnRlIChJbnRlcmVzc2llcnRlKSBNZWxkdW5nZW4gYml0dGUgYW4gZGllIFNjaHJpZnRsZWl0dW5nIQoKClBTLjogQW4gYWxsZSB0cmV1ZW4gQWJvbm5lbnRlbjogSWhyIHdpc3N0cyBlaCBzY2hvbjogU3ByZW5nZmFsbGVuIGFtCkJyaWVma2FzdGVuIGVudGZlcm5lbiEKCk51ZGVpLCBTY2hyaWZ0bGVpdHVuZyBEaVdwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJla2FubnRtYWNodW5nIChTaGFrZWRiZWVyLCAxOC4gRGV6IDE5OTUsIDA5OjU2OjUwKToKIyEgcm49Qmxvb2R5aGFycnkgcnQ9ODE5MjcwMjgxCkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIGF1Y2ggdm9uIG1pciEKCkJsb29keWhhcnJ5LCBpY2ggc3RpbW1lIERpciB6dSwgZGFzcyBNYXJpdGEgYXVmIGRlbSBuYWVjaHN0ZW4gRE8tU3RhbW10aXNjaApkaWUgMS4gUnVuZGUgenUgemFobGVuIGhhdCAqWldJTktFUiouIEljaCB3ZXJkZSBhbSBEaWVuc3RhZyBleHRyYSBmdWVyIGRlbgpBbmxhc3MgZGVyIEhvY2h6ZWl0IHBlciBNb2RlbSBpbnMgTUcga29tbWVuLiA7KQoKU2hha2VkYmVlciAtIHNjaG9uIGtyYWVmdGlnIFJlaXMgc2FtbWVsbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCZWthbm50bWFjaHVuZyAoSGFyZGlsLCAxOC4gRGV6IDE5OTUsIDE1OjEwOjM3KToKIyEgcm49U2hha2VkYmVlciBydD04MTkyNzcwMTAKCkhtbW0uIE1hcml0YSBuZSBnYW56ZSBSdW5kZSB6YWhsZW4gLSBkYXMgaXN0IGphIG9rZWUuIEFiZXIgd2VubiBlciBhdWNoCm1pdHRyaW5rZW4gbXVzcyAtIGRhbm4gd2lyZCBkYXMgbm9jaCBlaW4gc2VociBsdXN0aWdlciBBYmVuZC4gOi0pCgpOTk4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCZWthbm50bWFjaHVuZyAoTWFyaXRhLCAxOC4gRGV6IDE5OTUsIDIxOjQyOjA5KToKIyEgcm49SGFyZGlsIHJ0PTgxOTI5NTgzNwpIaSBIYXJkaWwsCgooa2ljaGVyKSBNZWludGVzdCBEdSBTaGFrZWRiZWVyPyBPZGVyIGtlbm5zdCBEdSBuaWNodCBkZW4ga2xlaW5lbiwgYWJlcgpmZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gZGVuIE1lbnNjaGVuPwoobGFjaCB0b3QpIDopIDopCgpNYXJpdGEsIG1hbCB3aWVkZXIgYXVmIFR5cG8tU3VjaGUKCi0tLS0tCkFjaGphLCB3YXMgZGllIEhvY2h6ZWl0IGJldHJpZmZ0OiBXaWUgTHVnIGluICJhbGxnZW1laW5lcyIgc2Nob24gYW5nZS0KZGV1dGV0IGhhdCwga2FubiBkaWUgSG9jaHplaXQgYW0gYW5nZWdlYmVuZW4gVGVybWluIG5pY2h0IHN0YXR0ZmluZGVuLgpXZXIgYWJlciBnbGF1YnQsIGRhc3MgTHVnIHdpZWRlciB6dSBoYWJlbiBpc3QsIGlzdCBnYW56IGRlcmJlIGF1ZiBkZW0KSG9sendlZyEgRGllIEhvY2h6ZWl0IG11c3N0ZSB2ZXJzY2hvYmVuIHdlcmRlbiwgd2VpbCBzaWUgYWxsZXJmcnVlaGVzdGVucwp1bSAyMiBVaHIgc3RhdHRmaW5kZW4ga29lbm50ZSAod2FocnNjaGVpbmxpY2ggbm9jaCBkZXV0bGljaCBzcGFldGVyKS4gRnVlcgplaW5lIFZpZXJ0ZWxzdHVuZGUtaGVpbWxpY2gtSG9jaHplaXQgaGFldHRlIGRhcyB6d2FyIGdlbGFuZ3Q7IGljaCBmdWVyY2h0ZQphYmVyLCBkYXNzIGVpbmlnZSBqdW5nZSBEYW1lbiBhbndlc2VuZCBzZWluIHdlcmRlbiwgZGllIHVuc2VyZSBIb2NoemVpdAp2ZXJoaW5kZXJuIHdvbGxlbiAoRGFzIGthbm4gaWNoIGd1dCB2ZXJzdGVoZW4sIGFiZXIgZXIgZ2Vob2VydCBNSVIhKS4KRGVzaGFsYiB3ZXJkZW4gd2lyIHVucyBlaW5lbiBUZXJtaW4gaW0gSmFudWFyIHN1Y2hlbiwgd28gd2lyIGRhbm4gbW9lZ2xpY2hzdApzY2hvbiB1bSAyMCBVaHIgbG9zbGVnZW4ga29lbm5lbi4KCldpciBrb2VubnRlbidzIHp3YXIgZWlnZW50bGljaCBhdWNoIGhlaW1saWNoIG1hY2hlbiwgYWJlciBzb29vb29vIHVuZXJ0cmFlZy0KbGljaCBzZWlkIElociBudW4gYXVjaCBuaWNodCwgZGFzcyB3aXIgRXVjaCB1bmJlZGluZ3QgYXVzc2NobGllc3NlbiBtdWVzcy0KdGVuLiA7KSBXaXIga3VlbmRpZ2VuIGRlbiBUZXJtaW4gcmVjaHR6ZWl0aWcgYW4uCgpIYWx0ZXQgZGllIE9ocmVuIHN0ZWlmISAgKHdhcyBzb25zdCkKTWFyaXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUHVtYXMgbmV1ZSBRdWVzdC4uLiAoU251Z2dsZSwgMTkuIERleiAxOTk1LCAwMTowNzozNik6CiMhIHJuPUN1Y2h1bGxpbiBydD04MTgzMDczMTAKSWNoIHdlaXNzIG5pY2h0IGdlbmF1LCB3aXZpZWxlIEJ1Z3MgaW56d2lzY2hlbiByYXVzIHNpbmQgdW5kIGF1Y2ggaWNoIG11c3N0ZQppbmRlciBCaWJsaW90aGVrIG5hY2ggTWFnaWVybiBzY2hyZWluIChzb2FnciBuYWNoIEVyemllcywgUHVtYSB3YXIgZ3J1ZW5kbGljaAo6LSkgKSwgYWJlciBpbSBncm9zc2VuIHVuZCBnYW56ZW4gaGFsdCBpY2ggZGllIFF1ZXN0IGVpZ2VudGxpY2ggZnVlciB6aWVtbGljaApzcGllbGJhci4KCihCaXMgYXVmIGRpZSBSZXNldHMgZGVyIFdlaW5mbGFzY2hlbiEhISAod2luayBQdW1hKSApCgoKWVQgU251Z2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVybG9idW5nc2hlaXJhdHNsaWVic2NoYWZ0c2FuemVpZ2UgISAoT2V0dGksIDE5LiBEZXogMTk5NSwgMTY6Mzg6MTIpOgpIYWkgIQoKSGllcm1pdCBnZWJlIGljaCBmZWllcmxpY2ggbWVpbmUgRWhlIG1pdCBHdXlicnVzaCBiZWthbm50ICEhIQoKRGVzd2VpdGVyZW4gbW9lY2h0ZSBpY2ggYXVmIG1laW5lIFZlcmxvYnVuZyBtaXQgVG9ldGVyIGhpbndlaXNlbiAhISEhISEKClVuZCBuaWNodCB6dSB2ZXJnZXNzZW4gbWVpbmUgIExpZWJoYWJlciB3aWUgei5CLiBLbG9uaywgTG9jdWx1cywgdW5kCmRpdmVyc2UgYW5kZXJlIE9uZSBMb2dpbiBTdGFuZHMuCgpHcnVzcwoKT2V0dGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJla2FubnRtYWNodW5nIChCbG9vZHloYXJyeSwgMjAuIERleiAxOTk1LCAwODo1MDo0OSk6CiMhIHJuPUhhcmRpbCBydD04MTkyOTU4MzcKVm9uIGVpbmVyIFJ1bmRlIHNjaG1laXNzZW4gaGF0dGUgaWNoIGVpZ2VuZGxpY2ggbmljaHRzIGdlc2FndCB1bmQgc2FnIGljaAphdWNoIG5pY2h0cywgc29uc3Qga29tbXQgbm9jaCBlaW5lciBhdWYgZGllIElkZWUgdW5kIGVyemFlaGx0IHdhcyB2b24KSG9jaHplaXRzZ2VzY2hlbmsgdW5kIHdhc3dlaXNzaWNod2Fzc29uc3Rub2Nob3dhcy4KQWJlciB2aWVsZWljaHQgZXJzY2hlaW50IGRpZSBCcmF1dCBqYSBpbiBXZWlzcyBiZWltIFRyZWZmZW4/IDopCgoqc2VuZiBvZmYqCkIuSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEJla2FubnRtYWNodW5nIChTaGFrZWRiZWVyLCAyMC4gRGV6IDE5OTUsIDA5OjQ4OjIxKToKIyEgcm49Qmxvb2R5aGFycnkgcnQ9ODE5NDQ1ODQ5CkRhcyB3YWVyZSBrbGFzc2UuIERhbm4ga29tbWUgaWNoIG1pdCBLcmF3YXR0ZS4KClNoYWtlZGJlZXIgbWFnIGVpZ2VudGxpY2gga2VpbmUgS3Jhd2F0dGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTUVUVyAoTGksIDIwLiBEZXogMTk5NSwgMTA6MjY6MzIpOgpIaSEKSWNoIHN1Y2hlIExldXRlLCBkaWUgZWJlbmZhbGxzIHdpZSBpY2ggZGVtIFNwaWVsIE1pZGRsZS1FYXJ0aDpUaGUgV2l6YXJkcwpmcm9lbmVuLgooSGF1cHRzYWVjaGxpY2ggenVtIEVyZmFocnVuZ3NhdXN0YXVzY2gsIFNjaHdhZXJtZW4sIGV0Yy4pCkxpIChnZXNwYW5udCBhdWYgQW50d29ydCkKUC5TLiBNYWdpYy1TcGllbGVyIHp3ZWNrbG9zIQogOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCZWthbm50bWFjaHVuZyAoSGFyZGlsLCAyMC4gRGV6IDE5OTUsIDExOjE0OjI0KToKIyEgcm49Qmxvb2R5aGFycnkgcnQ9ODE5NDQ1ODQ5CgpNYXJpdGEgaW4gV2Vpc3M/ClJ1ZmUgU2hjbmVlbWFubiBuYWNoIHdlZ2cgIQoodXV1cHMsIGRlbiB2ZXJzdGVodCBqZXR6dCB3aWVkZXIgbnVyIEdyaW1tYm9ybiwgc29ycnkpLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEJla2FubnRtYWNodW5nIChDcmVhdGl2ZSwgMjAuIERleiAxOTk1LCAxMjowMDo0OCk6CiMhIHJuPUhhcmRpbCBydD04MTk0NTQ0NjQKCmRhbm4gZXJrbGFlciBtYWwgOykKLUNyZWEtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJc2NoIGJpbiB2ZXJnZWJlbiEgKE1pcmFrYSwgMjAuIERleiAxOTk1LCAxNjo0Njo1Mik6CkpvLCBqZXR6dCBpc3QgZXMgenUgc3BhZXQuIFdpciBoYWJlbiBnZWhlaXJhdGV0OgoKKioqRmx1c3N3aW5kLCBkZXIgU2Nob2VubGluZyB1bmQgZGllIGhvbGRlIE1pcmFrYSBtaXQgZGVuIGVpc2JsYXVlbiBBdWdlbioqKgoKTGFzc3QgZGllIEhvY2h6ZWl0IGVpbiBaRUlDSEVOIGZ1ZXIgdW5zIGFsbGUgc2VpbiAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCAoUmlrdXMsIDIxLiBEZXogMTk5NSwgMDI6MTg6NTcpOgpTbywgbnVuIHNjaGVpbnQgZXMgamEgbGFuZ3NhbSBlcm5zdCB6dSB3ZXJkZW4gOikKU2VpdCB1bnNlcmVyIFZlcmxvYnVuZyBFbmRlIEp1bGkgaGF0dGVuIHdpciB2b3IsIGluIG5hZWNoc3RlciBaZWl0IGFuIGRpZQpIb2NoemVpdCB6dSBkZW5rZW4uLi4gQWJlciBpbW1lciBrYW0gaXJnZW5kd2FzIGRhendpc2NoZW4uCkdlc3Rlcm4gbnVuIGhhYmVuIHdpciB1bnMga3VyeiBkYXp1IGVudHNjaGxvc3Nlbiwgdm9uIERPIHp1IEZSIDAgVWhyIGRpZQpLYXBlbGxlIGF1Znp1c3VjaGVuLi4uCkFsc28sIGplZGVyIGRlciBMdXN0IGhhdCBpc3QgaGVyemxpY2ggZWluZ2VsYWRlbiwgZGllc2VtIGZlaWVybGljaGVuIEFrdApiZWl6dXdvaG5lbi4gOikKCkFjaHNvLi4uIHdpciA9PSBXYXR6IHVuZCBpY2ggOi0pCgpTbyBsb25nLCBFdWVyIFJpa3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaaW1tZXIgaW4gTXVlbnN0ZXIgZ2VzdWNodC4gKExvY3V0dXMsICA1LiBKYW4gMTk5NiwgMTM6MDc6MDApOgpIYWxsbyBNdWRkaWVzIQoKSWNoIHN1Y2hlIGZ1ZXIgZWluZSBCZWthbm50ZSB2b24gbWlyLCBkaWUgZGVtbmFlY2hzdCBpbiBNdWVuc3RlciBzdHVkaWVyZW4KbW9lY2h0ZSBlaW4gWmltbWVyIChldnRsLiBXRykuIFNvbGx0ZSBlaW5pZ2VybWFzc2VuIGVyc2Nod2luZ2xpY2ggc2Vpbi4KSWNoIGtlbm5lIG1pY2ggbWl0IGRlciBhbGxnZW1laW5lbiBXb2hudW5nc3NpdHVhdGlvbiBpbiBNdWVuc3RlciBuaWNodApzbyBkb2xsIGF1cy4gV2VubiBpaHIgd2lzc3QsIHdvIGRlbW5hZWNoc3Qgd2FzIGZyZWkgd2lyZCwgc2NocmVpYnQgZG9jaApiaXR0ZSBtYWwgbmUgTVVELU1haWwgYW4gbWljaC4KCkRhbmtlIHNjaG9ubWFsIGltIFZvcmF1cy4KCkxvY3V0dXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVuZCB3aWVkZXIgZWluZSBzcGllbHBhdXNlIChXaWxsb3csICA3LiBKYW4gMTk5NiwgMTk6MDM6NTUpOgoKSGFsbG8gbGllYmUgbWl0LW11ZGRlcmlubmVuIHVuZCBtdWRkZXIsCgp0amEsIGxlaWRlciB0cmlmZnQgbWljaCBqZXR6dCBhdWNoIGRlciB0ZXJtaW5zdHJlc3MuIHVuZCBkZXNoYWxiIHdlcmRlIGF1Y2gKaWNoIG1hbCBlaW5lIGt1cnplIHBhdXNlIG1pdCBkZW0gbXVkZGVuIGVpbmxlZ2VuLiBpY2ggd2VyZGUgZXJzdG1hbCBudXIgMzAKdGFnZSBhdXNzZXR6ZW4gdW5kIG1pciBkYW5uIHZpZWxsZWljaHQgbm9jaCBuZW4gbmFjaHNjaGxhZyBob2xlbi4gYXVmIGplZGVuCmZhbGwgd2VyZGUgaWNoIHdpZWRlcmtvbW1lbiA7KQpzb2xsdGUgaXJnZW5kd2FzIHdpY2h0aWdlcyBzZWluLCBkYW5uIGJpdHRlIG1haWwgYW4gemFwaG9kIChqYWphLCBkYXMgaXN0Cm1laW4gendlaXRpZSkgb2RlciBhbiB3aWxsZW5ib0ByenNlcnYyLmZoLWx1ZW5lYnVyZy5kZSwgaWNoIHdlcmRlIHdvaGwKbWFuY2htYWwgYWxzIHphcGhvZCByZWluc2NoYXVlbiwgYWJlciB3ZXJkZSBkaWUgemVpdGVuIGt1cnogaGFsdGVuLgppbiBkaWVzZW0gc2lubmUgd3VlbnNjaGUgaWNoIGFsbGVzIGd1dGUgdW5kIGJpcyBkZW1uYWVjaHN0IGRhbm4uLi4KCldlaWRjaGVuIFdpbGxvdyBpc3QgaW4gWmVpdGRydWNrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2hudW5nIGluIFR1ZSAoSG9ibywgIDkuIEphbiAxOTk2LCAxNzoxMzo1MSk6Ckh1aHUgaWhyIFR1ZWJpbmdlciwKSWNoIHN1Y2hlIGZ1ZXIgZWluZSBGcmV1bmRpbiB6dW0gU29tbWVyc2VtZXN0ZXIgOTYgZWluZSBXb2hudW5nIChtb2VnbGljaHN0Cmdyb3NzIHVuZCBtb2VnbGljaHN0IGJpbGxpZykgaW4gVHVlYmluZ2VuLiBXZW5uIGplbWFuZCB3YXMgd2Vpc3MsIHNvbGwgZXIgc2ljaApkb2NoIGJpdHRlIGJlaSBtaXIgbWVsZGVuIQoKVHNjaHVlc3NpCgpIb2JvClAuUy46IExhc3N0IG1pY2ggbmljaHQgaW0gU3RpY2ghCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2hudW5nIGluIFNhYXJicnVlY2tlbiAoQXp6dXJvLCAxMC4gSmFuIDE5OTYsIDAxOjIyOjA1KToKSGkgU2FhcmJydWVja2VyIG9kZXIgSW1tb2JpbGllbnNwZWt1bGFudGVuIGltIFJlc3QgZGVyIFdlbHQhCkljaCBzdWNoZSB6dW0gMS4zIGJ6dyAxLjQgMi00IFppbW1lcndvaG51bmcgaW4gU2FhcmJydWVja2VuLCBkaWUgMmVyIFdHCmdlZWlnbmV0IGlzdC4KSW50ZXJuZXRhbnNjaGx1c3Mgd2FlciB3dWVuc2NoZW5zd2VydCwgaXN0IGFiZXIga2VpbmUgQmVkaW5ndW5nLiA7KQpLb3N0ZW5wdW5rdCBiaXMgYy5hLiAxMDAwIHdhcm0uCldlcndhcyBoYXQgbWVsZGV0IHNpY2ggYml0dGUgYmVpIG1pciEgRGFua2UhCkF6enVybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVybG9idW5nIChTcHJpdGV3b21hbiwgMTAuIEphbiAxOTk2LCAxNDoxMjo1Nik6CldpciwgU3ByaXRlV29tYW4gdW5kIFBlcHNpTWFuCgpnZWJlbiB1bnNlcmUgVmVybG9idW5nIGJla2FubnQsIEhvY2h6ZWl0IHdpcmQgZm9sZ2VuLgoKV2lyIGhvZmZlbiBzbywgdW5zZXJlbiB1bmVoZWxpY2hlbiBLaW5kZXJuIChGYW50YWJveSB1bmQgQ29sYWdpcmwpCmVpbiByaWNodGlnZXMgWnVoYXVzZSB1bmQgSGVpbSBnZWJlbiB6dSBrb2VubmVuLgpXaXIgYml0dGVuIGRpZSBHb2V0dGVyIGFsbGVzIG5vdHdlbmdpZGUgZnVlcgplaW5lIEFkb3B0aW9uIHVuc2VyZXIgS2luZGVyIHZvcnp1YmVyZWl0ZW4uCgpTcHJpdGV3b21hbiB1bmQgUGVwc2ltYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWUgRGltZW5zaW9uZW4gLS0gV1dXIChIYXRlLCAxMS4gSmFuIDE5OTYsIDEzOjAzOjE5KToKSGFsbG8hCgpFcyBnaWJ0IGVpbmUgbmV1ZSBTZWl0ZSwgd2VsY2hlIGluIG5ldWUgRGltZW5zaW9uZW4gdm9yZHJpbmd0IQogLS0qKkRhcyBNb3JnZW5HcmF1ZW4gU3BpZWxlcmtvbXBlbmRpdW0gKiotLQoKICBodHRwOi8vc2FudGFuYS51bmktbXVlbnN0ZXIuZGUvfm11ZC9JbmZvcm1hdGlvbi9TcGllbGVyLwoKRGllc2UgU2VpdGUgaXN0IGhhdXB0c2FlY2hsaWNoIGZ1ZXIgQnJvd3NlciBtaXQgRlJBTUUgVW50ZXJzdHVldHp1bmcsIHdpZQpOZXRzY2FwZSAyLjBieCB1bmQgT21uaVdlYiAyLjBiLiBBYmVyIGF1Y2ggc29uc3Qga2FubiBtYW4gZGllIFNlaXRlIGFuc2VoZW4uClNjaGF1dCBoZXJlaW4hCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWUgRGltZW5zaW9uZW4gLS0gV1dXIChJY2V0LCAxMi4gSmFuIDE5OTYsIDAyOjMzOjA5KToKfiMhIHJuPUhhdGUgcnQ9ODIxMzYxNzk5Cn4jISB0aWQ9ODIxMzYxNzk5Ckh1aCwgc2NoYXV0IHNjaG9lbiBhdXMuIEFiZXIgZGEgc2luZCB3b2hsIG5vY2ggbiBwYWFyIEZlaGxlciBkcmluPyBCZWlzcGllbApJa2FydXMsIG9kZXIgYXVjaCBJbGtoYW4uIERhIHNpbmQgZGllIHRhYmVsbGVuIHp1IGdyb3NzIChvZGVyIGVyc2NoZWludCBkYXMKbnVyIGJlaSBtaXIgc28gLSBOZXRzY2FwZSAyLjBiZXRhNCkgKG9kZXIgaXN0IGRhcyBnYXIgYmVhYnNpY2h0aWd0PykKCi1JY2VUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5ldWUgRGltZW5zaW9uZW4gLS0gV1dXIChGeXQsIDEyLiBKYW4gMTk5NiwgMTA6NTk6MjgpOgp+IyEgcm49SWNldCBydD04MjE0MTAzODkKfiMhIHRpZD04MjEzNjE3OTkKRGllIExpc3RlIGlzIGdhbnogbmV0dCwgbnVyIHVudGVyIEx5bngga2FubiBtYW4gZ2FyIGtlaW5lCkZvcm1hdGllcnVuZyBlcmtlbm5lbi4uLiB6dW0gTGVzZW4gcmVpY2h0J3MgZnJlaWxpY2guLi4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1vcmdlbkdyYXVlbiBXZXJidW5nIDspIChIYXRlLCAxMi4gSmFuIDE5OTYsIDE0OjA0OjEzKToKSGFsbG8gTGV1dGUsCgpmYWxscyBpaHIgbWFsIHdpZWRlciBMdXN0IHVuZCBMYXVuZSBoYWJ0IGluIGVpbmVtIFplaXRzY2hyaWZ0ZW5sYWRlbgp6dSBzdG9lYmVybiwgc28gc3VjaHQgbWFsIG5hY2ggZGVtIElOVEVSTkVUIE1hZ2F6aW4gU3BlemlhbCAxLzk2LgpEb3J0IHdlcmRldCBpaHIgYXVmIGRlciBTZWl0ZSA5NiB1bnNlciBCaWxkIHZvbiBkZXIgV1dXIFNlaXRlIGZpbmRlbiA7KQpFaW5lIGhhbGJlIFNlaXRlIFdlcmJ1bmcgZnVlciBNRywgd2FzIHdpbGwgbWFuIG1laHIuCgpCaXMgZGFubiwKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOZXVlIERpbWVuc2lvbmVuIC0tIFdXVyAoSGF0ZSwgMTIuIEphbiAxOTk2LCAxNDowNjoxNSk6Cn4jISBybj1GeXQgcnQ9ODIxNDQwNzY4Cn4jISB0aWQ9ODIxMzYxNzk5CkFsc28gZm9sZ2VuZGVzOiBEYXMgUHJvYmxlbSBkZXIgVGFiZWxsZSBpc3QsIG1hbiBtdWVzc3RlIGRpZSBnYW56IHJlY2h0ZQpTcGFsdGUgYXVmIGVpbiBiZXN0aW1tdGVzIEZvcm1hdCA4MCBaZWljaGVuIHRyaW1tZW4gdW5kIGRhenUgd3Vlc3N0ZSBpY2gKbnVyIGVpbmVuIGhhcnRlbiBXZWcuIFp1IEx5bng6IERlciBrYW5uIGphIGF1Y2gga2VpbmUgVGFiZWxsZW4gdW5kIGZhZWxsdApkYW1pdCB6aWVtbGljaCBoaW50ZW4gcnVudGVyLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVlIERpbWVuc2lvbmVuIC0tIFdXVyAoQmFyb24sIDEyLiBKYW4gMTk5NiwgMTQ6MTE6MTkpOgp+IyEgcm49SGF0ZSBydD04MjEzNjE3OTkKfiMhIHRpZD04MjEzNjE3OTkKU2VociBzY2hvZW4sIHNlaHIgc2Nob2VuIQpBYmVyOiAxLiBTaW5kIGJlaSBtYW5jaGVuIFNwaWVsZXJuIGRpZSBleHRyYV9sb29rcyBkcmluIHVuZCBiZWkgZGVuIG1laXN0ZW4KbmljaHQgdW5kIDIuIHNpbmQgaW4gZGVyIExpc3RlICcKQWJlcjogMS4gU2luZCBiZWkgbWFuY2hlbiBTcGllbGVybiBkaWUgZXh0cmFfbG9va3MgZHJpbiB1bmQgYmVpIGRlbiBtZWlzdGVuCm5pY2h0IHVuZCAyLiBzaW5kIGluIGRlciBMaXN0ZSAnQScgdGF0c2FlY2hsaWNoIG5vY2ggMiBBZG9sZidzIHVuZCBlaW4KQWRvbGZoaXRsZXIuIEljaCBzY2hhZXR6ZSBkYXMgbWFjaHQga2VpbmVuIGd1dGVuIEVpbmRydWNrIHdlbm4gZGFzIGVpbmVyCmxpZXN0LgpCYXJvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1vcmdlbkdyYXVlbiBXZXJidW5nIDspIChDaGVhc3ksIDEyLiBKYW4gMTk5NiwgMTQ6MTY6MDIpOgp+IyEgcm49SGF0ZSBydD04MjE0NTE4NTMKfiMhIHRpZD04MjE0NTE4NTMKVW5kIHdlbm4gaWhyIHNjaG9uIFdlcmJ1bmcgYW5zY2hhdWVuIHdvbGx0OiBpY2ggaGFiIGRpZSBXV1ctU2VpdGUgdm9uCk1vcmdlbmdyYXVlbiBpbiBXZWIuZGUgYXVmICJDb29sIiBnZXNldHp0OiA8aHR0cDovL3dlYi5kZS9zcWwvY29vbD4KLUNoZWFzeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVlIERpbWVuc2lvbmVuIC0tIFdXVyAoSGF0ZSwgMTIuIEphbiAxOTk2LCAxNDoxNzoxMSk6Cn4jISBybj1CYXJvbiBydD04MjE0NTIyNzkKfiMhIHRpZD04MjEzNjE3OTkKVGphLCBhbHNvIHdlbm4gamVtYW5kIGtlaW5lIEJlc2NocmVpYnVuZyBoYXQsIGlzdCBkYXMgUGVjaC4gRXMgc3RlaHQgamVkZW0Ka29zdGVubG9zIGRpZSBNb2VnbGljaGtlaXQgc2ljaCBlaW5lIHp1IHNldHplbiAoYmVpbSBlcnN0ZW4gbWFsKS4KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5ldWUgRGltZW5zaW9uZW4gLS0gV1dXIChSeW5lLCAxMi4gSmFuIDE5OTYsIDE1OjU2OjU4KToKfiMhIHJuPUhhdGUgcnQ9ODIxNDUyNjMxCn4jISB0aWQ9ODIxMzYxNzk5CkRhcyBpc3QgZ2xhdWIgaWNoIG5pY2h0IGdhbnogcmljaHRpZywgSGF0ZS4gSWNoIGhhYiBkZW4gRWluZHJ1Y2ssIGRhc3MgbnVyCmRpZSBCZXNjaHJlaWJ1bmdlbiB2b24gTWFzdHJhZGVuYSBnZW5vbW1lbiB3ZXJkZW4sIG5pY2h0IGFiZXIgZGllIEV4dHJhbG9va3MsCmRpZSBzaWNoIGRpZSBTZWhlciBzZWxic3Qgc2V0emVuIGtvZW5uZW4uIEljaCBoYWIgamVkZW5mYWxscyBiZWkgcGFhciBMZXV0ZW4KZ2VzY2hhdXQsIGFiZXIgbmlyZ2VuZHMgZWluZSBCZXNjaHJlaWJ1bmcgZmluZGVuIGtvZW5uZW4sIG9id29obCBpY2ggd2Vpc3MsCmRhc3MgZGllIGVpbmUgaGFiZW4uCgpSeW5lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1vcmdlbkdyYXVlbiBXZXJidW5nIDspIChDaGVhc3ksIDEyLiBKYW4gMTk5NiwgMTY6MDk6MzQpOgp+IyEgcm49Q2hlYXN5IHJ0PTgyMTQ1MjU2Mgp+IyEgdGlkPTgyMTQ1MTg1MwpzbywgaGllciBub2NobWFsIGRlciBVUkwgZnVlciBhbGxlLCBkaWUgbmV3cyB1ZWJlciB3d3cgbGVzZW46IDxhCmhyZWY9Imh0dHA6Ly93ZWIuZGUvc3FsL2Nvb2wiPndlYi5kZTwvYT4KdG0gcGFzY2FsIGJpbiBiZXNjaGFlZnRpZ3QgbW9tCkZ1ZXIgYWxsZSBhbmRlcmVuOiBlaW5mYWNoIHdlYi5kZSBpbiBOZXRTY2FwZSBvYmVuIHRpcHBlbiwgdW5kIGRhbm4gcmV0dXJuIDopCi1DaGVhc3kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE5ldWUgRGltZW5zaW9uZW4gLS0gV1dXIChIYXRlLCAxMi4gSmFuIDE5OTYsIDE2OjEyOjQxKToKfiMhIHJuPVJ5bmUgcnQ9ODIxNDU4NjE4Cn4jISB0aWQ9ODIxMzYxNzk5CkVzIGdlaHQgamEgYXVjaCB1bSBkaWUgQmVzY2hyZWlidW5nZW4sIGRlbm4gZGllIGthbm4gc2ljaGUgSkVERVIgc2V0emVuLgpEaWUgZXh0cmEgbG9va3Mgc2luZCBmdWVyIGt1cnplIEdlZnVlaGxzZHVzZWxlaWVuLiBVbmQgbmljaHQgZnVlciBkaWUKQmVzY2hyZWlidW5nIGRlcyBDaGFyYWt0ZXJzIGdlZGFjaHQhCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOZXVlIERpbWVuc2lvbmVuIC0tIFdXVyAoR3JpbW1ib3JuLCAxMi4gSmFuIDE5OTYsIDE2OjE0OjUxKToKfiMhIHJuPUhhdGUgcnQ9ODIxNDU5NTYxCn4jISB0aWQ9ODIxMzYxNzk5CgpUamEsIHdlbm4gZGVtIHNvIGlzdCwgSGF0ZSwgc29sbHRlc3QgRHUgZGllIGRvayB6dW0gVGhlbWEgZXh0cmFsb29rIGFlbmRlcm4uCkRpZSBpc3QgbmFlbWxpY2ggenVtaW5kZXN0IHVuZGV1dGxpY2ggZm9ybXVsaWVydCBpbiBkZW0gUHVua3QuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKQWNoIGphLCB3byBEdSBkYW5uIGdlcmFkZSBkYWJlaSBiaXN0LCBiYXUgZG9jaCBnbGVpY2ggZWluZSBkb2sgenUKImJlc2NocmVpYnVuZyIgZWluLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaWVscGF1c2UgKE1haGF0bWEsIDE0LiBKYW4gMTk5NiwgMjA6Mjg6MzYpOgpIYWxsbywgYWxsZSB6dXNhbW1lbiwKCm5hY2hkZW0gZGllIEh5ZHJhIG51biBnZWZhbGxlbiBpc3QsIGthbm4gaWNoIGJlcnVoaWd0IGVpbmUgU3BpZWxwYXVzZQplaW5sZWdlbi4gRGllc2UgaGFiIGljaCBiaXR0ZXIgbm9ldGlnLCBkYSBpY2ggaW4gZGllc2VtIFNlbWVzdGVyIHJlbGF0aXYKd2VuaWcgZ2VtYWNodCBoYWJlIHVuZCBkaWUgUHJ1ZWZ1bmdlbiBpbW1lciBuYWVoZXIgcnVlY2tlbi4KSWNoIHdlcmRlIHNvIE1pdHRlIEZlYnJ1YXIgd2llZGVya29tbWVuLgpOYWNocmljaHRlbiBrb2VubmVuIGFuIFppbm8gZ2VzY2hpY2t0IHdlcmRlbiwgbWl0IGRlbSB3ZXJkIGljaCBpbW1lciBtYWwKWmVpdHVuZyBsZXNlbi4KQmlzIGRhbm4KCkh5ZHJhdG9ldGVyIE1haGF0bWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdFU1VDSFQhIChHcmltbWJvcm4sIDE1LiBKYW4gMTk5NiwgMTc6MzY6NTkpOgoKTmFqYSwga2FubiBuaWNodCBqZWRlciBtaXQgYWxsZW0gcmljaHRpZyB1bWdlaGVuLi4uCkxldHp0ZSBXb2NoZSB3YXIgaW4gZGVyIG5ld3Nncm91cCBkZS50YWxrLmpva2VzIGVpbiBwb3N0aW5nIG1pdCBkZW0gVGl0ZWw6CkJhc3RhcmQgT3BlcmF0b3IgMS80LiBJY2ggaGF0dGUgaWhuIGdlc2F2ZWQsIHVuZCBpcmdlbmR3aWUgZmluZGUgaWNoIGRhcyBmaWxlCm5pY2h0IG1laHIuIEtvZW5udGUgd2FzIG1pdCBlaW5lbSBybSAqIGFuIGRlciBmYWxzY2hlbiBTdGVsbGUgenUgdHVuIGhhYmVuLi4uCgpXZW5uIGFsc28gamVtYW5kIGRhcyBUZWlsIHp1ZmFlbGxpZyBoYXQsIHd1ZXJkZSBpY2ggbWljaCBzZWhyIGRhcnVlYmVyCmZyZXVlbi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTU9ERU0gKFJ1ZGlyYXR0ZXIsIDE1LiBKYW4gMTk5NiwgMjI6NTI6MTEpOgoKV2Vpc3MgdmllbGxlaWNodCBqZW1hbmQgaGllciwgd2llIG1hbiBiZWltIENyZWF0aXggTW9kZW0gZGllCldhaGx3aWVkZXJob2x1bmdzc3BlcnJlIGFic2NoYWx0ZW4ga2Fubj8gTmFjaCBlaW5lbSAnQnVzeScKbXVzcyBpY2ggc29uc3QgamVkZXNtYWwgMzAgU2VrdW5kZW4gd2FydGVuLCBiaXMgaWNoIG5ldQp3YWVobGVuIGthbm4gKGF1Y2ggZWluZSBhbmRlcmUgTnVtbWVyKSB1bmQgZGFzCm5lcnJycnJycnJycnJycnJycnJycnJ2dCBtaWNoLgoKTWFpbCBiaXR0ZSBhbgoKUnVkaXJhdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1PREVNIChUYXosIDE1LiBKYW4gMTk5NiwgMjM6MjE6MDIpOgp+IyEgcm49UnVkaXJhdHRlciBydD04MjE3NDI3MzEKfiMhIHRpZD04MjE3NDI3MzEKSGksCgphbiBtaWNoIGF1Y2ggbmUgTWFpbC4KCkFuYWtpbi4gSGF0IGF1Y2ggbmVuIENyZWF0aXguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR0VTVUNIVCEgKFRvbWFsYWssIDE1LiBKYW4gMTk5NiwgMjM6NDg6MzYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgyMTcyMzgxOQp+IyEgdGlkPTgyMTcyMzgxOQpIaSBHcmltbWJvcm4hCgpWb20gQmFzdGFyZCBPcGVyYXRvciBnaWJ0IGVzIHNvIHJ1bmQgMjAgRm9sZ2VuLCBpY2ggaGFiZSBzaWUgYWxsZSBhdWYgbWVpbmVyClBsYXR0ZSBsaWVnZW4uIFNpbmQgdW0gZGllIDgyIEtCLiBXZW5uIER1IHdpbGxzdCwga2FubiBpY2ggc2llIERpcgp6dW1haWxlbi4KClRvbWFsYWsgKEJhc3RhcmQgTXVkZGllIEZyb20gSGVsbCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNT0RFTSAoWnVlcmlsZXUsIDE2LiBKYW4gMTk5NiwgMDI6MzE6NTMpOgp+IyEgcm49UnVkaXJhdHRlciBydD04MjE3NDI3MzEKfiMhIHRpZD04MjE3NDI3MzEKU2FsaSBSdWRpcmF0dGVyLApBbHNvIGljaCBiZXNpdHplIHp3YXIgZWluIFVTUm9ib3RpY3MgTW9kZW0gdW5kIGtlaW4gQ3JlYXRpeCwgaWNoIGtlbm5lIGRpZXNlCk1hcmtlIG5pY2h0bWFsLiBBYmVyIGRpZXNlcyBQcm9ibGVtIG11c3N0IGR1IHdhcnNjaGVpbmxpY2gga2F1bSBpY2ggZGVpbmVtCk1vZGVtIGJlaGViZW4gc29uZGVybiBkYXMgaXN0IHNpY2hlciBlaW4gZWluc3RlbGx1bmdzcHJvYmxlbSBpbiBkZWluZW0KVGVybWluYWxwcm9ncmFtbSwgaWNoIHd1ZXJkIG1hbCAgaW4gZGFzICJTZXR1cCBvZGVyIE9wdGlvbnMtTWVudWUiIHZvbiBkZWluZW0KVGVybWluYWxwcm9ncmFtbSBnZWhlbiB1bmQgc2NoYXVlbiBvYiBtYW4gZGFzIGRvcnQgaXJnZW50d28gYWJzdGVsbGVuIGthbm4uCk5vcm1hbGVyd2Vpc2Ugc3RlbGx0IG1hbiBkYXMgZG9ydCBlaW4sIHdvIG9kZXIgd2llIGlzdCBQcm9ncmFtbWJlZGllbmd0LiBPZGVyCnNhZyBtYWwgd2FzIGZ1ZXIgZWluIHRlcm1pbmFscHJvZ3JhbW0gZHUgdmVyd2VuZGVzdCwgZXZ0bC4ga2VubnQgZXMgamEgamVtYW5kCmhpZXIsIGljaCB6LkIuIHZlcndlbmRlIFByb2NvbW0gcGx1cyBmdWVyIFdpbmRvb2YuID06KQoKRXZ0bC4ga29ubnQgaWNoIGhsZmVuIGljaCBob2ZmZSBlcy4uLiAgVHNjaHVlc3MgWnVlcmlsZXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTU9ERU0gKEppbWRpZ3JpeiwgMTYuIEphbiAxOTk2LCAxMTozODoyOSk6CkhhbGxvCgpoYWIgenVtIEdsdWVeSF5IXkheSF5IXkheSF5IIGFlaCBsZWlkZXIga2VpbiBDcmVhdGl4LCBlcmlubmVyIG1pY2gKYWJlciBkYXNzIGRhcyBUaGVtYSBuIHBhYXJtYWwgaW4gZGUuY29tcC5tb2RlbSBhdWZnZXRhdWNodCBpcy4Kd2VubnMgZGEgbmUgRmFxIGdpYnQgc3RlaHRzIGRhIHNpY2hlciBkcmluLiBJY2ggZ2xhdWIgZXMgd2FyIGlyZ2VuZGVpbgpTLXJlZ2lzdGVyLiBadXIgbm90IG1hbCBiZWltIEhhZW5kbGVyIG5hY2hmcmFnZW4uCldhcyBhdWNoIG1laXN0ZW5zIGhpbGZ0IGlzIG1vZGVtIGF1cyB1bmQgd2llZGVyIGVpbnNjaGFsdGVuLgoKY2lhbywKIEppbURpR3JpegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHRVNVQ0hUISAoWWVuZGksIDE2LiBKYW4gMTk5NiwgMTM6MDU6MDApOgp+IyEgcm49VG9tYWxhayBydD04MjE3NDYxMTYKfiMhIHRpZD04MjE3MjM4MTkKClBvc3RlIHNpZSBkb2NoIGVpbmZhY2ggaW4gZGllIE1QQSEgOikKCkF1LCBMb2NvLCBuZWluLCBBVVRTQ0ghIEVzIHdhciBkb2NoIG51ciBlaW4gV2l0eiEgTmVpbiwgTG9jbywgYml0dGUhCgooKnNldWZ6KiBPSywgYWxzbyBtYWlsIHNpZSBsaWViZXIuLi4pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNT0RFTSAoVGFzaGEsIDE2LiBKYW4gMTk5NiwgMTM6MjQ6NTIpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODIxNzU1OTEzCn4jISB0aWQ9ODIxNzQyNzMxCkhJIQoKTmVuZSwgWnVlcmksIG1pdCBkZW0gVGVybWluYWxwcm9nIGhhdCBkYXMgbml4IHp1IHR1bi4gRXMgZ2VodCB1bSBkaWUKYmVudXR6ZXJmcmV1bmRsaWNoZSBUZWxlY29tLW9ubHkgV2FlaGxzcGVycmUuIEJlaSBtZWluZW0gQ3JlYXRpeCBMQyAxNDQgVkYgaGFiCmljaCBzaWUgbWl0IGRlbSBpbml0LXN0cmluZyBhdCV0Y2IgYWJnZXNjaGFsdGV0LiBEaWVzZXIgU3RyaW5nIHNvbGx0ZSBiZWkKYWxsZW4gQ3JlYXRpeC1Nb2RlbXMgZnVuemVuLiBBYmVyIHZvcnNpY2h0OiBkYW5hY2ggZHVlcmZlbiBrZWluZSBhbmRlcmVuCmNvbmZpZy1zdHJpbmdzIG1laHIga29tbWVuLgoKVmllbCBTcGFzcyBiZWltIGRhdWVyd2FlaGxlbiwgVGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1PREVNIChHdW5kdXIsIDE2LiBKYW4gMTk5NiwgMTU6MjU6MDIpOgp+IyEgcm49VGFzaGEgcnQ9ODIxNzk1MDkyCn4jISB0aWQ9ODIxNzQyNzMxCkhtIGljaCBnbGF1YmUgYmVpIG1laW5lbSB3YXJzIGF0JWYxIHVuZCBkYW5hY2ggbXVzc3RlIGljaCBuaWUgd2llZGVyIHdhcwptYWNoZW4KR3J1c3MKR3VuZHVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCA7KSAoVHlyaW9uLCAxNi4gSmFuIDE5OTYsIDIwOjUxOjAwKToKSm9pLCBkZXIgZXJzdGUgQXJ0aWtlbCB1ZWJlcmhhdXB0IHVuZCBkYW5uIGdsZWljaCBzb3dhcyEgOykpKSkpCgpXaXIgZ2ViZW4gaGllcm1pdCBiZWthbm50OgoKRWluZSBrbGVpbmUgU2NoaWxka3JvZXRlIHVuZCBlaW4gZ3Jvc3NlciBEcmFjaGUgaGFiZW4gc2ljaCBudW4gZW5kbGljaAplbnRzY2hpZWRlbiwgaWhyZSBCZXppZWh1bmcgenUgImxlZ2FsaXNpZXJlbiIhIDspKSkgVW5zZXJlIEhvY2h6ZWl0IGZpbmRldAp2b3JhdXNzaWNodGxpY2ggc3RhdHQgYW0gRGllbnN0YWcsIDIzLjEuLCBnZWdlbiAyMCBVaHIgKHNvZmVybiBuaWNodHMKZGF6d2lzY2hlbmtvbW10KSA7KQoKV2VyIGF1Y2ggaW1tZXIgenUgZGllc2VyIFplaXQgaGllciBzZWluIHNvbGx0ZSwgaXN0IGhlcnpsaWNoIGVpbmdlbGFkZW4uIDopKSkKCkRhcyBnbHVlY2tsaWNoZSBQYWFyIE5lc2FqYSAmIFR5cmlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIFZlcmVpbiBicmF1Y2ggTWl0Z2xpZWRlciEgKEhhdGUsIDE3LiBKYW4gMTk5NiwgMTQ6MDY6MjEpOgpIYWxsbyBsaWViZSBNaXRzcGllbGVyaW5uZW4gdW5kIE1pdHNwaWVsZXIgdW5kIHdhcyBzb25zdCBub2NoIGtyZXVjaHQgdW5kCmZsZXVjaHQuCgpJY2ggbW9lY2h0ZSBFdWNoIG1hbCBlaW5lIEtsZWluZSBSZWNobnVuZyBhdWZtYWNoZW46CldpciBoYWJlbiBjYS4gMTE1MDAgQ2hhcmt0ZXJlIGltIE1VRCwgZGF2b24gc2luZCBjYS4gMzkwMCBha3RpdiAoYWxzbwppbm5lcmhhbGIgZGVyIGxldHp0ZW4gdmllciBXb2NoZW4gZWluZ2Vsb2dndCBnZXdlc2VuKSB1bmQgY2EgNzgwMCBpbmFrdGl2LgpNaXRnbGllZGVyIGltIFZlcmVpbiBzaW5kIGV0d2EgNjAuCgpKZXR6dCBoYWJlIGljaCBtYWwgZWluIGJpc3NjaGVuIGdlcmVjaG5ldCB1bmQga29tbWUgYXVmIDEuNSUgTWl0Z2xpZWRlciBiZWkKZGVuIGFrdGl2ZW4gU3BpZWxlcm4uCk1laW50IGlociBuaWNodCwgZGFzcyBlaW4gYmlzc2NoZW4gQmV0ZWlsaWd1bmcgYW4gZGVuIGxhdWZlbmRlbiBLb3N0ZW4gZGVzCk1VRHMgdW5kIHZvciBhbGxlbSBhbiBkZW0sIHdhcyB3aXIgbWl0IGRlbSBWZXJlaW4gZXJyZWljaGVuIGtvZW5uZW4sIGlzdAplcyBXZXJ0LCBNaXRnbGllZCB6dSB3ZXJkZW4/IEJlaSAyNERNIGltIEphaHIgaXN0IGRhcyBmdWVyIGplZGVuIG1hY2hiYXIuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChIYXJkaWwsIDE3LiBKYW4gMTk5NiwgMTQ6MDg6NDApOgp+IyEgcm49SGF0ZSBydD04MjE4ODM5ODEKfiMhIHRpZD04MjE4ODM5ODEKCkhtbW1tLiBIYXRlLCBtZWluc3l0IER1IG5pY2h0LCBkYXNzIHZvbiBkZW4gMzkwMCAiYWt0aXZlbiIgQ2hhcmFrdGVyZW4KbWluZGVzdGVucyA4MCUgWndlaXRpZXMsIERyaXR0aWVzIHVuZCB3YXN3ZWlzc2ljaHNvbnN0IHNpbmQ/IERhbm4gbGFlZ2UgZGllClF1b3RlIGRlciBDbHVibWl0Z2xpZWRlciBpbW1lcmhpbiBiZWkga25hcHAgMTAlIC0gZGFzIGlzdCB6d2FyIGltbWVyIG5vY2gKd2VuaWcsIGFiZXIga2xpbmd0IHJlYWxpc3Rpc2NoZXIuCgpKdXN0IG15IGJvdHRsZSBvZiBLZXRjaHVwLgoKLUhhcmRpbC4KTk5OLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgVmVyZWluIGJyYXVjaCBNaXRnbGllZGVyISAoQm9pbmcsIDE3LiBKYW4gMTk5NiwgMTQ6MjU6MDIpOgp+IyEgcm49SGFyZGlsIHJ0PTgyMTg4NDEyMAp+IyEgdGlkPTgyMTg4Mzk4MQo4MCUgaGFsdGUgaWNoIGRvY2ggZnVlciByZWljaGxpY2ggdWViZXJ0cmllYmVuIC4uLgpXaWUgYXVjaCBpbW1lciwgd2FzIEhhdGUgd29obCB2ZXJnYXNzIHp1IGVyd2FlaG5lbiBpc3QsIGRhc3MgbWFuIGdlbmF1ZXJlCkluZm9ybWF0aW9uZW4gdWViZXIgZGVuIFZlcmVpbiAoU2F0enVuZywgWmllbGUsIEFkcmVzc2VuKSBhdWYgdW5zZXJlcgpXV1cgU2VpdGUgdW50ZXIgZGVtIFB1bmt0ICdGb2VyZGVydmVyZWluIE1HJyBiZWtvbW1lbiBrYW5uLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVyIFZlcmVpbiBicmF1Y2ggTWl0Z2xpZWRlciEgKENoZWFzeSwgMTcuIEphbiAxOTk2LCAxNDoyNzo0OSk6Cn4jISBybj1IYXRlIHJ0PTgyMTg4Mzk4MQp+IyEgdGlkPTgyMTg4Mzk4MQpIYXRlLCBkdSBoYXN0IHJlY2h0LiBEdSBoYXN0IG51ciB2ZXJnZXNzZW4genUgc2FnZW4gd2llIG1hbiBNaXRnbGllZCB3aXJkIC4uLgotQ2hlYXMKUC5TOiBOaWNodCBudXIgaWNoIGJpbiB6dSBmYXVsIHVtIGRhcyBGb3JtdWxhciB6dSBzdWNoZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChCZW5kZWlnaWQsIDE3LiBKYW4gMTk5NiwgMTQ6Mjc6NTMpOgp+IyEgcm49Qm9pbmcgcnQ9ODIxODg1MTAyCn4jISB0aWQ9ODIxODgzOTgxCkljaCBkZW5rZSwgZXMgd2lzc2VuIGVpbmZhY2ggenUgd2VuaWdlIExldXRlIHZvbiBkZW0gVmVyZWluLgpXaWUgd2FlcnMsIHdlbm4gZGFzIGRlbiBBbmZhZW5nZXJuIGlyZ2VuZHdpZSBpbSBIYW5kYnVjaCBrdW5kZ2V0YW4gd3VlcmRlLApvZGVyIHdlbm4gd2lyIGRpZSBCcmFjaGUgZGVzIFN0YWR0aGF1c2VzIGluIFBvcnQgVmFpbiBtaXQgZWluIHBhYXIKV2VyYmVzY2hpbGRlcm4gdW5kIEluZm90YWZlbG4gdm9sbHN0b3BmZW4/IFp1ZGVtIGxpZWdlbiBBcnRpa2VsIHdpZSBkaWUgZHJlaQp2b3JoZXJnZWhlbmRlbiBpbiAiYW56ZWlnZW4iIHR3YXIgcmljaHRpZywgYWJlciBkb2NoIGlyZ2VuZHdpZSBhdWYgaGFsZGUuClVudGVyIGFsbGdlbWVpbiB3aXJkIHNvd2FzIGVoZXIgdm9uIGFsbGVuIGdlbGVzZW4uCgpCZW5kZWlnaWQsIG5hdHVlcmxpY2ggTWl0Z2xpZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChSdWRpcmF0dGVyLCAxNy4gSmFuIDE5OTYsIDE2OjExOjA0KToKfiMhIHJuPUJlbmRlaWdpZCBydD04MjE4ODUyNzMKfiMhIHRpZD04MjE4ODM5ODEKSWNoIGhhYiB2b3IgendlaSBNb25hdGVuIHNjaG9uIG1hbCB2ZXJzdWNodCwgZGllIExldXRlIGhpZXIgZHJhdWYgenUgc3Rvc3NlbiwKZGFzcyBlcyBkZW4gVmVyZWluIGdpYnQgdW5kIGRhcyB2aWVsbGVpY2h0IGFuZ2VicmFjaHQgaXN0LCBkYXNzIG1hbiBkaWUgMjQgRE0KZGEgaW52ZXN0aWVydCwgc2Nob24gYWxsZWluZSBmdWVyIGRpZSBWZXJzaWNoZXJ1bmcgZnVlciBkZW4gc2Nob2VuZW4KTUctUmVjaG5lciwgYWJlciBpY2ggZ2xhdWJlLCBkaWUgTGV1dGUgaGllciBzaW5kIGVpbmZhY2ggenUgc3R1bXBmLgpCbGVpYmVuIHdpciBoYWx0IGFsbGVpbiBpbSB2ZXJlaW4uClJ1ZGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChLZXRvcywgMTcuIEphbiAxOTk2LCAyMjoxOTozNCk6Cn4jISBybj1SdWRpcmF0dGVyIHJ0PTgyMTg5MTQ2NAp+IyEgdGlkPTgyMTg4Mzk4MQpIbW0sIHdlbm4gbWFuIFNlaGVyIG9kZXIgTWFnaWVyIHdpcmQuIEtvZW5udGUgbWFuIGRvY2ggbmUga2xlaW5lIFNwZW5kZW4tCmF1ZmZvcmRlcnVuZyBiZWtvbW1lbi4gU28gbmFjaCBkZW0gTW90dG8uIFdlbm4gRGlyIGRhcyBTcGllbGUgZ2VmYWxsZW4gaGF0CnVuZCBEdSBtb2VjaHRlc3QgZGFzIGRpZXNlcyBTcGllbCBub2NoIGxhbmdlIHdlaXRlciBsZWJ0IHVuZCBhbmRlcmUgaWhyZW4KU3Bhc3MgZGFyYW4gaGFiZW4sIGRhbm4gc3BlbmRlIG9kZXIgdHJpdHQgZGVtIEZvZXJkZXJ2ZXJpbiBlaW4uCgpNYWwgbmUgRnJhZ2UgYW4gZGVuIEZvZXJkZXJ2ZXJlaW4uIFdhcyBiZXRyYWdlbiBzbyBkaWUgbGF1ZmVuZW5kZW4gS29zdGVuCmRlcyBSZWNobmVycz8gU3Ryb20gdW5kIFdhc3NlciBpbmNsdXNpdmUuCgotIEtldG9zIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChNb3Jnb3RoLCAxOC4gSmFuIDE5OTYsIDA3OjE4OjQ0KToKfiMhIHJuPUtldG9zIHJ0PTgyMTkxMzU3NAp+IyEgdGlkPTgyMTg4Mzk4MQpzbywgamV0enQgbXVzcyBpY2ggYXVjaCBtYWwgd2FzIGRhenUgc2NocmVpYmVuCjEuIG1pciB3YXIgYmlzIHZvciBrdXJ6ZW0gbmljaHQgYmVrYW5udCwgZGFzcyBlcyBkaWVzZW4gJ3ZlcmVpbicgd2lya2xpY2gKZ2lidC4gaWNoIGRhY2h0ZSBpbW1lciwgZXIgd2FlcmUgbnVyIGt1cnogenVyIGJlc2NoYWZmdW5nIGRlcyByZWNobmVycwonZW50c3RhbmRlbicgdW5kIGhhZXR0ZSBzaWNoIGRhbmFjaCB3aWVkZXIgYXVmZ2Vsb2VzdC4KMi4gYWxzIGljaCBlcyBkYW5uIGR1cmNoIGVpbmVuIGFydGlrZWwgKGRlemVtYmVyIHdhcnMgZ2xhdWIgaWNoKSBlcmZhaHJlbgpoYWJlLCBoYXR0ZSBpY2ggZWluIG5ldWVzIHByb2JsZW0uIHdlciBnZW5hdSBpc3QgZGFmdWVyIHp1c3RhZW5kaWcuIGF1ZiBmcmFnZW4KYmVrYW0gaWNoIGtlaW5lIGtvbmtyZXRlIGFudHdvcnQsIHNvIGRhc3MgaWNoIG5hY2ggZWluZXIgd29jaGUgYXVjaCBrZWluZSBsdXN0Cm1laHIgaGF0dGUgYW5kYXVlcm5kIGRhbmFjaCB6dSBmcmFnZW4gOy0oKAozLiB3aWUgd2FlcnMgd2VubiBtYWwgaGllciBlaW4gYXJ0aWtlbCByZWlua29tbXQsIHdvIGRpZSAna29lcGZlJyBkZXMgdmVyZWlucwp2b3JnZXN0ZWxsdCB3ZXJkZW4uIGRpZXNlciBhcnRpa2VsIHNvbGx0ZSBkYW5uIGplZGVuIG1vbmF0IGF1dG9tYXRpc2NoCmdlcG9zdGV0IHdlcmRlbi4gYXVjaCBtaXQgYW5zY2hyaWZ0IHVzdy4KNC4gZ2Flc3RlIG9kZXIgJ2FuZmFlbmdlcicgc29sbHRlbiBlaW5lIG1lbGR1bmcgYmVrb21tZW4gJ3dlbm4gZGlyIGRpZXNlcwpzcGllbCBnZWZhZWxsdCwga2FubnN0IGR1IGRlbSB2ZXJlaW4gYmVpdHJldGVuLi4uLi53aWUsIHdhcywgd28sIHdhcnVtIHVzdy4uLicKc28sIGRhdHQgd2Fycy4uLi4KbW9yZ290aApqYSB2aXBlci4uaWNoIHNjaGljayBkaXIgZGllIG1haWwgbWl0IG1laW5lciBhZHJlc3NlLi4uLi47LSkpKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRGVyIFZlcmVpbiBicmF1Y2ggTWl0Z2xpZWRlciEgKE51ZGVpLCAxOC4gSmFuIDE5OTYsIDA3OjQ0OjAwKToKfiMhIHJuPU1vcmdvdGggcnQ9ODIxOTQ1OTI0Cn4jISB0aWQ9ODIxODgzOTgxClNwZXJydCBlaW5mYWNoIGRhcyBEaW5nIGZ1ZXIgTmljaHRtaXRnbGllZGVyIHVuZCBrdWVuZGlndCBkYXMgdm9yaGVyIGdyb3NzCnVuZCBicmVpdCBhbi4uLiBpY2ggbmVobWUgV2V0dGVuIGFuLCBkYXNzIGRpZSBNaXRnbGllZGVyemFobGVuIHN0ZWlnZW4gd2VyZGVuCi4uLgpmcmFndCBzaWNoIG51ciwgd2llIGhvY2ggLi4uIDspCgpOdWRlaSwgaW0gTmFtZW4gZGVyIEtvc3RlbnJlY2hudW5nc2FidGVpbHVuZyBkZXMgRGlXcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogRGVyIFZlcmVpbiBicmF1Y2ggTWl0Z2xpZWRlciEgKEJsb29keWhhcnJ5LCAxOC4gSmFuIDE5OTYsIDA3OjQ2OjMxKToKfiMhIHJuPU51ZGVpIHJ0PTgyMTk0NzQ0MAp+IyEgdGlkPTgyMTg4Mzk4MQpJbiBpcmdlbmRlaW5lciBGb3JtIG11c3MgbWFuIGlobmVuIHNpY2hlciBpbiBkZW4gQSoqKiogdHJldGVuLiBBYmVyCmhvZmZlbmRsaWNoIG5pY2h0IGF1ZiBlaW5lIHNvIGRyYXN0aXNjaGUgQXJ0LiA6LSkKClBpcmF0ZW5vcGEgQmxvb2R5IEhhcnJ5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBEZXIgVmVyZWluIGJyYXVjaCBNaXRnbGllZGVyISAoWWFudHJvLCAxOC4gSmFuIDE5OTYsIDEwOjMyOjA3KToKfiMhIHJuPU51ZGVpIHJ0PTgyMTk0NzQ0MAp+IyEgdGlkPTgyMTg4Mzk4MQoKS3JpZWdlbiBWZXJlaW5zbWl0Z2xpZWRlciBuaWNodCByYWJhdHRlIGJlaSBkZXIgVGVsZWtvbT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChCZW5kZWlnaWQsIDE4LiBKYW4gMTk5NiwgMTA6NDA6NDgpOgp+IyEgcm49WWFudHJvIHJ0PTgyMTk1NzUyNwp+IyEgdGlkPTgyMTg4Mzk4MQpEaWUgSWRlZSBtaXQgZGVyIGF1dG9tYXRpc2NoZW4gTWl0dGVpbHVuZyBiZWltIFNlaGVyIG9kZXIgTWFnaWVyd2VyZGVuIGxhZXNzdApzaWNoIGF1Y2ggZnVlciBTcGllbGVyIHJlYWxpc2llcmVuLi4uIGVpbmZhY2ggYmVpIGplZGVyIEVyaG9laHVuZyBkZXIgR2lsZGVuCnN0dWZlLCBvZGVyIGViZW4gYmVpIGRlbiB3aWNodGlnZW4gRXJob2VodW5nZW4gaW4gZGVyIEFiZW50ZXVyZXJnaWxkZSAoZGllIGphClZvcmF1c3NldHp1bmcgZnVlciBkaWUgQ2hhb3NnaWxkZSB6LkIuIHNpbmQpIGVpbmUgZW50c3ByZWNoZW5kZSBNaXR0ZWlsdW5nLgp1bnRlciB3aWNodGlnIHZlcnN0ZWggaWNoIGpldHp0IGxldmVsIDMgKG1hbiBzaXQgZWluIHdlaWxjaGVuIGRhYmVpIHVuZCBrZW5udApzY2hvbiB3YXMpIGRhbm4gbGV2ZWwgMTEgKG1hZ2lzY2hlciBQZmVpbCkgdW5kIGRlciBGZXVlcmJhbGwtbGV2ZWwpLiB3aWUgd2FlcgpkYXMgZGVubj8gWnVzYWV0emxpY2ggaGFsdGUgaWNoIG1laW5lIElkZWUgbWl0IGRlbSBBdXNiYXUgZGVzIFN0YWR0aGF1c2VzCmF1ZnJlY2h0LiBFdnRsIHNvbGx0ZSBpY2ggbWljaCBhbHMgRWJlbmVubWl0YXJiZWl0ZXIgYW5iaWV0ZW4gdW5kIGRhcwpwZXJzb2VubGljaCB1ZWJlcm5laG1lbj8gSG0gUm9jaHVzPwoKWidwYXIgU2VydnUsCiAgICAgICAgICBCZW5kZWlnaWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IERlciBWZXJlaW4gYnJhdWNoIE1pdGdsaWVkZXIhIChNYXJpdGEsIDE5LiBKYW4gMTk5NiwgMDk6MjQ6NTEpOgp+IyEgcm49UnVkaXJhdHRlciBydD04MjE4OTE0NjQKfiMhIHRpZD04MjE4ODM5ODEKCkhpLAoKMSkgRWJlbiBrdXJ6IHp1bSBUaGVtYSBWZXJlaW5zYmVpdHJhZyB1bmQgRWluenVnc2VybWFlY2h0aWd1bmcuIEVudGdlZ2VuCmFsbGVuIEdlcnVlY2h0ZW4gc2luZCBFaW56dWdzZXJtYWVjaHRpZ3VuZ2VuIGtlaW4gRnJlaWJyaWVmIHp1bQpLb250b2xlZXJyYWV1bWVuLiBBYmJ1Y2h1bmdlbiBhdWZncnVuZCB2b24gRWluenVnc2VybWFlY2h0aWd1bmdlbiBrb2VubmVuCmR1cmNoIGRlbiBiZWxhc3RldGVuIEtvbnRvaW5oYWJlciBpbm5lcmhhbGIgdm9uIDYgKHNlY2hzKSBXb2NoZW4gYmVpIGRlciBCYW5rCnN0b3JuaWVydCB3ZXJkZW4gKERhcyBnaWx0IG5lYmVuYmVpIGdlc2FndCBhdWNoIGZ1ZXIgRWluenVnc2VybWFlY2h0aWd1bmdlbgphbiBkaWUgVGVsZWtvbSkuIE1hbiBiZWhhZWx0IGFsc28gdHJvdHpkZW0gZGllIEtvbnRyb2xsZSB1ZWJlciBzZWluIEdlbGQuCgoyKSBJbiBkZW0gUmF1bSwgaW4gZGVtIGxhdXQgQm9pbmdzIEFua3VlbmRpZ3VuZyBkaWUgV2hvLWlzLXdoby1MaXN0ZSBkZXIKTWFnaWVyIGF1c2dlaGFlbmd0IHdpcmQsIHNvbGx0ZW4gYXVjaCBhbGxlIHdpc3NlbnN3ZXJ0ZW4gRGV0YWlscyB1ZWJlciBkZW4KVmVyZWluIChJbmhhbHQgd2llIGluIGRlbiBXZWItU2VpdGVuKSBsZXNiYXIgc2Vpbi4gV2VyIHdlZGVyIFdXVyBub2NoIEZUUAptYWNoZW4ga2FubiwgaGF0IGRhbm4gdHJvdHpkZW0gZGllIENoYW5jZSB6dW0gQmVpdHJpdHQuCgozKSBJY2ggaGFiZSBhdXNzZXJkZW0gbm9jaCBzbyBlaW5lIGtsZWluZSBuZXR0ZSBJZGVlIGF1ZiBMYWdlciwgd2llIGRpZQpNaXRnbGllZGVyemFobGVuIG5vY2htYWwgZWluZW4gZGV1dGxpY2hlbiBTY2h1YiBiZWtvbW1lbiBrb2VubnRlbi4uLiBMaWVzc2UKc2ljaCB2aWVsbGVpY2h0IGF1Y2ggaW0gZWJlbiBnZW5hbm50ZW4gUmF1bSByZWFsaXNpZXJlbi4gTmFlaGVyZXMgbWFpbGUgaWNoCmVpbmVtIEdvdHQgb2RlciBWb3JzdGFuZHNtaXRnbGllZCBhdWYgQW5mcmFnZS4KCk1hcml0YSwgbmljaHQgbWVociBsYW5nZSBOaWNodG1pdGdsaWVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBEZXIgVmVyZWluIGJyYXVjaCBNaXRnbGllZGVyISAoWWVuZGksIDE5LiBKYW4gMTk5NiwgMTI6MzY6MDApOgp+IyEgcm49TW9yZ290aCBydD04MjE5NDU5MjQKfiMhIHRpZD04MjE4ODM5ODEKCk1vcmdvdGgsIGVzIGhhbmRlbHQgc2ljaCBuaWNodCB1bSBlaW5lbiAndmVyZWluJywgc29uZGVybiB1bSBlaW5lbiByaWNodGlnZW4KZWluZ2V0cmFnZW5lbiBWZXJlaW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEZXIgVmVyZWluIGJyYXVjaCBNaXRnbGllZGVyISAoV2FyZ29uLCAxOS4gSmFuIDE5OTYsIDEyOjUxOjU2KToKfiMhIHJuPVJ1ZGlyYXR0ZXIgcnQ9ODIxODkxNDY0Cn4jISB0aWQ9ODIxODgzOTgxCk1hbiBrYW5uIHNpY2ggamV0enQgYXVjaCBtaXQgImhpbGZlIHZlcmVpbiIgdWViZXIgZGVyIFZlcmVpbiBpbmZvcm1pZXJlbi4KICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTU9ERU0gKEljZXQsIDIwLiBKYW4gMTk5NiwgMDQ6MjI6NTkpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODIxNzU1OTEzCn4jISB0aWQ9ODIxNzQyNzMxCk5laW4sIFp1ZXJpbGV1LCBkYXMgaGF0IG1pdCBkZW0gVGVybWluYWxwcm9ncmFtbSAod2VyIGJlbnV0enQgZGVubiBub2NoClRlcm1pbmFsc3Byb2dyYW1tZT8gKndhZWgqIDstKSB6dSB0dW4uCgpXZXIgc2VpbmUgV2FobHNwZXJyZSByYXVzaGFiZW4gd2lsbCwgbXVzcyBkZW0gTW9kZW0gZWluIHVuZG9rdW1lbnRpZXJ0ZXMKS29tbWFuZG8genVzZW5kZW4uIERpZXNlcyBpc3Qgdm9uIE1vZGVtIHp1IE1vZGVtIHVudGVyc2NoaWVkbGljaC4gTGFuZ2VyIFJlZGUKa3VyemVyIFNpbm46CiBFaW5lIE1haWwgYW4gICJ3YWhsc3BlcnJlQGtleS5ndW4uZGUiICBtaXQgZGVtIEJldHJlZmYgInNlbmQiIHVuZCBkZW0gVGV4dAoid2FobHNwZXJyZV9mYXEiIHNvbGx0ZSBlcyB0dW4uIE1hbiBiZWtvbW10IGVpbmUgTGlzdGUgbWl0IENvZGVzIGZ1ZXIgYWxsZQptb2VnbGljaGVuIE1vZGVtcyB6dWdlc2NoaWNrdC4KCi1JY2VUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR0VTVUNIVCEgKEljZXQsIDIwLiBKYW4gMTk5NiwgMDQ6NDA6NTMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgyMTcyMzgxOQp+IyEgdGlkPTgyMTcyMzgxOQpEZXIgTWFubiwgZGVyIGRpZSBTdG9yaWVzIGRlciBCYXN0YXJkIE9wZXJhdG9yIEZyb20gSGVsbC1TZXJpZSBnZXNjaHJpZWJlbgpoYXQgICgyMiBUZWlsZSwgd29iZWkgZGVyIE9wZXJhdG9yIGltIDE1LiBUZWlsIG9kZXIgc28gZXJzY2hvc3NlbiB3aXJkIHVuZCBlcgpkaWUgbHR6dGVuIHp3ZWlsIFRlaWxlLi4uLiB1cHM/IGRhcyBpc3QgamEgbiBzcG9pbGVyIDstKSApCk5hamEsIG9laG0sIGRlciBUeXAgaGVpc3N0IGF1ZiBhbGxlIEtuYWVsbGUgU2ltb24gdW5kIGhhdCBuZSBIb21lcGFnZToKCmh0dHA6Ly93d3cud2Fpa2F0by5hYy5uei9zaW1vbi9kZWZhdWx0Lmh0bWwKCi1JY2VUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVlIEdDLUVkaXRvcmVuIChCbG9vZHloYXJyeSwgMjAuIEphbiAxOTk2LCAyMjoyNTowNSk6CkhhbGxvIEdDLVNwaWVsZXIhCgpUaG9yc3RlbiBPdHRvQERPIG1laW50ZSBhbSAyMC4wMS45Ngp6dW0gVGhlbWEgIkdhbGFjdGljIENvbnF1ZXJvcjogR0MtT3JrIGlzdCBkYSI6Cgo+IEljaCBoYWJlIGdlcmFkZSBkaWUgbmV1ZW4gVmVyc2lvbmVuIHZvbSBadWctRWRpdG9yIGhpZXIgaW4gZGVuIEdydXBwZW4tCj4gUHJvZ3JhbW10YWlsIGRlLmFsdC5nYW1lcy5wYmVtIGhvY2hnZWxhZGVuLiBEaWUgQXJjaGl2bmFtZW4gc2luZAo+IEdDX09SS1NULlpJUCAoQXRhcmktVmVyc2lvbiwgMTgyMTY2IEJ5dGVzKSB1bmQgR0NfT1JLUEMuWklQCj4gKFdpbmRvd3MtVmVyc2lvbiwgMjcxMzc5IEJ5dGVzKS4gU29sbHRlIGVzIFByb2JsZW1lbiBnZWJlbiwgaW5iZXNvbmRlcmUgbWl0Cj4gZGVyIFBDLVZlcnNpb24sIGJpdHRlIG1lbGRlbi4gS2FubiBqZW1hbmQgZGllIEFyY2hpdmUgbm9jaCBhdWYgZWluZW0KPiBmdHAtU2VydmVyIGFibGVnZW4gKEhhcnJ5Pz8pCgoKU2luZCBudW4gYXVjaCBhdWYgZnRwOi8vbmV4dC5hcmItcGh5cy51bmktZG9ydG11bmQuZGUgYWJydWZiYXIuCgovcHViL2djL2F0YXJpOgotcnctci0tci0tICAxIHJvb3QgICAgICAxODIxNjYgSmFuIDIwIDA4OjM5IGdjX29ya3N0LnppcAoKL3B1Yi9nYy9pYm1wYzoKLXJ3LXItLXItLSAgMSByb290ICAgICAgMjcxMzc5IEphbiAyMCAwODoyNCBnY19vcmtwYy56aXAKCgpjaWFvLApIYXJyeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGVyIFZlcmVpbiBicmF1Y2ggTWl0Z2xpZWRlciEgKFJvZXN0aSwgMjUuIEphbiAxOTk2LCAxNDoxMDowOSk6Cn4jISBybj1CZW5kZWlnaWQgcnQ9ODIxODg1MjczCn4jISB0aWQ9ODIxODgzOTgxCm1hbm4uLi5kYSBzY2hhZW10IG1hbm4gc2ljaCBqYSByaWNodGlnIGRhcyBtYW4gbm9jaCBrZWluIG1pdGdsaWVkIGlzdC4uLi4KUm9lc3RpIG5pbW10IHNpY2ggZmVzdCB2b3IgbWl0Z2xpZWQgenUgd2VyZGVuLi4udmVyZ2lzc3QgZXMgYWJlciBpbW1lcgp3aWVkZXIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNvc28uLi4gKExhcmlzc2EsIDI1LiBKYW4gMTk5NiwgMTc6MDk6NTEpOgpbTWFnaWVyOkdyaW1tYm9ybl0gS2FubiBpY2ggd2FzIGRhZnVlcj8gV2VubiBpY2ggbWljaCBlaW5sb2dnZSBzdGVodCBkYTogRHUKW01hZ2llcjpHcmltbWJvcm5dIHNwdWVyc3QgZGllIExpZWJlIHZvbiBKb2YuCm9obmUgV29ydGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc29zby4uLiAoR3JpbW1ib3JuLCAyNS4gSmFuIDE5OTYsIDE3OjEyOjM1KToKfiMhIHJuPUxhcmlzc2EgcnQ9ODIyNTg2MTkxCn4jISB0aWQ9ODIyNTg2MTkxCgpOaWNodCBnZW51ZyBkYW1pdCwgZGFzcyBkZXIgR2FtZHJpdmVyIHVucyBhbGxlbiAiSm9mIiwgIkJvaW5nIiB1bmQgIlJ1bWF0YSIKdm9yZ2F1a2VsdCwgbmVpbiwgZXIgcmFmZnQgc2ljaCBzb2dhciB6dSBwZXJzb2VubGljaGVuIEdlbWVpbmhlaXRlbiBtaXIKZ2VnZW51ZWJlciBhdWYuClVuZCBkYSBzYWdlIG5vY2ggd2VyLCBkaWUga3VlbnN0bGljaGUgSW50ZWxsaWdlbnogc2VpIG5vY2ggbmNpaHQgd2VpdAplbnR3aWNrZWx0Li4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhhYmUgYXVjaCBXV1cgcGFnZXMgKEthaWcsIDI2LiBKYW4gMTk5NiwgMDY6MDU6MjMpOgpIaSwKCmljaCBoYWInIGF1Y2ggZWluZSB3ZWItc2l0ZSwgYWxsZXJkaW5ncyBEcmFjaGVuIGFscyBUaGVtYS4KCmh0dHA6Ly93ZWIubWl0LmVkdS9ncmllYmVuby93d3cva2l0ZXMuaHRtbAoKU2NoYXV0IEV1Y2ggZG9jaCBtYWwgZWluIHBhYXIgU2VpdGVuIGFuLgoKVmllbGxlaWNodCBzZXR6dCBkaWUgamEgYXVjaCBtYWwgZWluZXIgYXVmICJjb29sIiA7LSkKClZpZWxlIGdydWVzc2UKCkthaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTXVlc3RlcmxvZXN1bmdzcGFrZXQgaW0gVmVyc2FuZCAoVmVyc2FuZCwgIDEuIEZlYiAxOTk2LCAyMTo1OTowMik6CiAgICAgICAgS09NUExFVFRMT0VTVU5HRU4gZnVlciBNb3JnZW5ncmF1ZW4KCiAgIFN0ZWNrZW4gU2llIHZlcnp3ZWlmZWx0IGluIGVpbmVyIFF1ZXN0PwoKICAgSGlsZnQgSWhuZW4gbmllbWFuZCB1bmQgc2llIHdvbGxlbiB0cm90emRlbSBzY2huZWxsIFNlaGVyIHdlcmRlbj8KCgogICBEYW5uIGJlc3RlbGxlbiBzaWUgbnVuIGRhcyBzdXBlcmd1ZW5zdGlnZSBNdXN0ZXJsb2VzdW5nc3Bha2V0IHp1bQoKICAgUHJlaXMgdm9uIG51ciAzOSwtIERNIChpbmNsdXNpdmUgVmVyc2FuZGtvc3RlbikuCgogICBFcyBlbnRoYWVsdCBkaWUgS29tcGxldHRsb2VzdW5nZW4gZnVlciBhbGxlIFF1ZXN0cyB1bmQgd2lyZCBsYXVmZW5kCgogICB1bSBkaWUgbmV1ZW4gUXVlc3RzIGVyd2VpdGVydC4gQWxzIFp1Z2FiZSBnaWJ0IGVzIGVpbiBBMyBQb3N0ZXIgbWl0CgogICBkZW0gSGF1cHR3ZWdlbmV0eiB2b24gTW9yZ2VuZ3JhdWVuIHVuZCBkaWUgYWt0dWVsbGUgWlQtTGlzdGUuCgoKCiAgIExpZWZlcnVuZyBlcmZvbGd0IHByb21wdCB1bmQgYWJzb2x1dCBkaXNrcmV0IGF1ZiBkZW0gUG9zdHdlZy4KCgogICBVZWJlcndlaXNlbiBzaWUgamV0enQgRE0gMzksLSBhdWYgZGFzIEtvbnRvOiAzNjg5NDQsIEJMWjogNDAwNTAxNTAKCiAgIEdlYmVuIHNpZSBiaXR0ZSBhbHMgU3RpY2h3b3J0ICJLTCIgdW5kIGlocmUgcG9zdGFsaXNjaGUgQWRyZXNzZS4KCgpJaHIgS0wgVmVyc2FuZAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNdWVzdGVybG9lc3VuZ3NwYWtldCBpbSBWZXJzYW5kIChSb2VzdGksICAyLiBGZWIgMTk5NiwgMDk6Mzg6MzMpOgp+IyEgcm49VmVyc2FuZCBydD04MjMyMDgzNDIKfiMhIHRpZD04MjMyMDgzNDIKSWNoIHd1ZXJkIGVzIG1pciBqYSBmYXN0IExlaXN0ZW4uLi4uQWJlciBpY2ggd2lsbCBtaXIgZGVuIFNwYXNzIGFtIFF1ZXN0ZW4KbmljaHQgdmVybWllc2VuLgpBdXNzZXJkZW0gZmluZCBpY2hzIHdpdHppZ2VyIHdhZXJlbmQgZGVyIFF1ZXN0ZSBhbmRlcmUgU3BpZWxlciBuYWNoIGRlcgpMb2VzdW5nIHp1IGZyYWdlbi4KSmFhYWFhISBXZW5uIG1hbiBmcmFndCB1bmQgc2llIG5pY2h0IHp1IHNlaHIgbmVyZnQgZ2lidCBlcyBpbSBNRyB0YXRzYWVjaGxpY2gKZ2VudWcKTGV1dGUgZGllIGVpbmVtIGhlbGZlbi4gICBGUkVJV0lMTElHIHVuZCBvaG5lIGplZGVuIFp3YW5nLkVpbmZhY2ggc28hCk51ciBhdXMgU3Bhc3MgYW4gZGVyIEZyZXVkZSEKClJvZXN0aSBoYWV0dGUgYWJlciB0cm90emRlbSBpbnRlcnJlc3NlIGFuIGRlciBLYXJ0ZS4uLlNvIG5lIE1HLUthcnRlIHp1aGF1c2UKdWViZXJtIEJldHQgbWFjaHQgc2ljaCBiZXN0aW1tdCBiZXNzZXIgYWxzIGRpZSBLYXJpa2F0dXIgdm9uIFRyeWZhbiB1bmQKRmVsYWd1bmQuOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlciBmYWVocnQuLi4uIChGcmVkZXJpY2ssICAyLiBGZWIgMTk5NiwgMTI6NDE6MjUpOgpXZXIgZmFlaHJ0IHVtIGRlbiAxMS4gMi4gdm9tIGhvZWhlcmVuIE5vcmRlbiBEZXV0c2NobGFuZHMgbWl0IGVnYWwgd2VsY2hlbQpWZXJrZWhyc21pdHRlbCByaWNodHVuZyBXaWVuIHVuZCB3dWVyZCBhdWNoIG5pY2h0IGdlcm4gc28gZ2FueiBhbGxlaW4gZmFobj8KRGVyIG1lbGRlIHNpY2ggYmVpIG1pciB2aWEgZW1haWwgYW4gZnJlZEBjc2xhYi50dXdpZW4uYWMuYXQsIGRpZSBpY2ggZGFubgp3YWhyc2NoZWlubGljaCBhbSAxMC4gb2RlciAxMS4gRmVicnVhciBsZXNuIHdlcmQgOikgbGllYmUgR3J1ZXNzZSwKRnJlZGwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmRsaWNoLi4uIChOaWNodHMsICAyLiBGZWIgMTk5NiwgMjA6Mzk6MjkpOgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEljaCB3ZXJkZSBTZWhlci4gICAgICAgICAgICAgICAgICAgICAgICAgICsKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKCkh1aHUhClZvciBsYW5nZXIgbGFuZ2VyIFplaXQgLSBlcyBpc3QgdGF0c2FlY2hsaWNoIHVlYmVyIGVpbiBKYWhyIGhlciAtIGxvZ2d0ZQptZWluIEVyc3RpZSBtaWNoIGVpbi4gQXVzIGRlcnNlbGJlbiBMYXVuZSBoZXJhdXMsIGF1cyBkZXIgVmVyd2lycnVuZwplbnRzdGFuZCwgc28gbmViZW5iZWkgYmVtZXJrdCA6KS4uLiAgRXMgd2lyZCBsYW5nc2FtIFplaXQsIEthc3NlbnN0dXJ6Cnp1IG1hY2hlbi4KCipyYXR0ZXIqCktuYXBwIDQ1IE9ubGluZS1UYWdlLi4uICA0MCAwMDAgMDAwIEVyZmFocnVuZ3NwdW5rdGUsICAyMDI1IHZvbiAxODU1LzIxNjUKQWJlbnRldWVycHVua3RlbiAobWVociBnaW5nIG5pY2h0KSwgYWxsZSA4MCBaYXViZXJ0cmFlbmtlIGF1ZmdlbGVzZW4sCjEwMCUgS2FyYXRlLCBQbGF0eiAxOCBpbiBkZXIgVG9wbGlzdGUuCldlbm4gaWNoIGpldHp0IHN0ZXJiZW4gd3VlcmRlLCB3YWVyZW4gZGFzIDEzIDMzMyAzMzMgRVAgVmVybHVzdC4gQnJycnIuCipiaW5nKgoKQW5nZWZhbmdlbiBoYXQgZGFzIE5pY2h0LUVyaG9laGVuIGRhbWl0LCBkYXNzIGljaCBiaXMgTGV2ZWwgMTAgaGFldHRlCiJkdXJjaGVyaG9laGVuIiBrb2VubmVuLCB3ZWlsIGljaCB6d2lzY2hlbiBtZWluZW4gZXJzdGVuIFF1ZXN0cyBuaWNodCBpbgpkZXIgR2lsZGUgdm9yYmVpc2NoYXVlbiBrb25udGUuCkRhbm4gd2FyIGRhIGFiZXIgZGFzIEdlbWVja2VyIHZvbiB3ZWdlbiBTcGVsbHMgdW5kIEFiZW50ZXVyZXJnaWxkZSB1bmQKbWllcyB1bmQgc28uIEFsc28gaGFiIGljaCBOSUNIVCBlcmhvZWh0ICg9LT4gRXMgbXVzcyBhdWNoIG9obmUgRmV1ZXJiYWxsCmdlaGVuISEgKS4gRXIgaXN0IGF1Y2ggZXJzdCBpbiBkaWUgS2FyYXRlZ2lsZGUgZWluZ2V0cmV0ZW4sIGFscyBlciBzY2hvbgpsYWVuZ3N0IGhhZXR0ZSBlaW4gW1NdIGltIFdlciBoYWJlbiBrb2VubmVuLgoKV2FydW0gamV0enQgcGxvZXR6bGljaCBlcmhvZWhlbj8KYSkgSWNoIG11c3MgZGllIFN0ZWxsdW5nIGZ1ZXIgZGVuIEVyc3RpZSBuaWNodCBtZWhyIGhhbHRlbiAoQXVjaCB3ZW5uIGRhcwogICBqZXR6dCBmYXN0IGtlaW5lciB2ZXJzdGVodCkKYikgNi4gRGFuIGlzdCBiZXNzZXIgYWxzIDEuIERhbi4gV2lyZCBaZWl0LCBkYXNzIGVzIGRhIHZvcndhZXJ0cyBnZWh0LCBkZW5uCmMpIEljaCBrb2VubnRlIExldmVsIDI5IHNlaW4sIG1pdCBGbHVjaHRyaWNodHVuZyBsYWVzc3QgZXMgc2ljaCBnZXJhZGUgYmVpCiAgIGRlbiB0eXBpc2NoIE9zbmFicnVlY2tlciBMYWcgYmVzc2VyIGthZW1wZmVuLgpkKSBEaWUgUG9lYmVsZWllbiB2b24gd2VnZW4gU3BpZWxlcmxpc3RlIG5lcnZlbi4uLiB1bmQgaGFiZW4gaGFsdCBhdWNoIFJlY2h0LgogICBTb2xsZW4gZGllIFBvZWJsZXIgZG9jaCBNYXJzdSB6dW0gUXVlc3RlbiBicmluZ2VuIDotKSkKClNvd2VpdCBkYXMgUmVzdW1lIGFtIEVuZGUgZWluZXMgU3BpZWxlcmxlYmVucy4uLgoiIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFbmRsaWNoLi4uIChOaWNodHMsICAyLiBGZWIgMTk5NiwgMjA6NTQ6NTkpOgp+IyEgcm49TmljaHRzIHJ0PTgyMzI4OTk2OQp+IyEgdGlkPTgyMzI4OTk2OQpOYWNodHJhZzoKCmUpIEljaCBoYWJlIGVzIFNBVFQsIHN0YWVuZGlnIHZvbiBpcmdlbmR3ZWxjaGVuIEJldHRsZXJuIGFuZ2VncmFiYmVsdAogICB6dSB3ZXJkZW4gOy0pCgoiIiAtIGdyaW5zdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNdWVzdGVybG9lc3VuZ3NwYWtldCBpbSBWZXJzYW5kIChCbG9vZHloYXJyeSwgIDUuIEZlYiAxOTk2LCAwOTo1NzoxNik6Cn4jISBybj1WZXJzYW5kIHJ0PTgyMzIwODM0Mgp+IyEgdGlkPTgyMzIwODM0MgpEdSBzY2hyZWlic3Qgbml4IHZvbSBSdWVja2dhYmVyZWNodC4gSXN0IGRhcyB3aWUgdWVibGljaCAxNCBUYWdlIHVuZApnYXJhbnRpZXJ0IG9obmUgUmlzaWtvPwoKLi4uaWNoIGZyYWNoIGphIG51ciwgT3BpcGlyYXQgQmxvb2R5IEhhcnJ5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRW5kbGljaC4uLiAoVGFzaGEsICA1LiBGZWIgMTk5NiwgMjM6MTU6MTEpOgp+IyEgcm49TmljaHRzIHJ0PTgyMzI4OTk2OQp+IyEgdGlkPTgyMzI4OTk2OQpEYXMgd2ljaHRpZ3N0ZSBoYXN0ZSBtYWwgd2llZGVyIHZlcmdlc3NlbiEgV28gc3RlaWd0IGRpZSBQYXJ0eSB6dW0gQWJzY2hpZWQKdm9tIFNwaWVsZXJsZWJlbj8/PyBTb3dhcyBtdXNzIGRvY2ggYmVnb3NzZW4gd2VyZGVuIQoKc2ljaCBmdWVyIE5pY2h0cyBmcmV1ZW5kIHVuZCBnbGVpY2h6ZWl0aWcgbm9zdGFsZ2lzY2ggd2VyZGVuZCwgVGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGxlY2h0ZSBSZWxpZ2lvbiAoWmFyZG96LCAgOC4gRmViIDE5OTYsIDExOjU3OjQ5KToKQW0gMjYuMDIuOTYga29tbXQgZGllIG5ldWUgQmFkIFJlbGlnaW9uIENEICd0aGUgZ3JheSByYWNlJyBoZXJhdXMuIEljaApoYWIgc2llIG1pciBoZXV0ZSBtYWwgYW5nZWhvZXJ0LCBzaWUgaXN0IHdpcmtsaWNoIGd1dC4gQWxzbyBMZXV0ZSwga2F1ZnQKc2llIGV1Y2ggOikpKQoKQ2lhbyAgICAgIFphcmRveiBkZXIgV2VyYmVmYWNobWFubgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaGxlY2h0ZSBSZWxpZ2lvbiAoQXNtb2RpcywgIDguIEZlYiAxOTk2LCAxMzowODoyMyk6Cn4jISBybj1aYXJkb3ogcnQ9ODIzNzc3MDY5Cn4jISB0aWQ9ODIzNzc3MDY5CldpZXNvPyBrcmllZ3N0IGR1IFByb3plbnRlID8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTY2hsZWNodGUgUmVsaWdpb24gKFJlaW5lbGRlLCAgOC4gRmViIDE5OTYsIDEzOjMwOjI1KToKfiMhIHJuPVphcmRveiBydD04MjM3NzcwNjkKfiMhIHRpZD04MjM3NzcwNjkKaGF0IGRhcyBpcmdlbmR3YXMgZGFtaXQgenUgdHVuLCBvYiBtYW4gYW4gam9mIGdsYXVidD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2NobGVjaHRlIFJlbGlnaW9uIChIYXJkaWwsICA4LiBGZWIgMTk5NiwgMTM6Mzc6MzQpOgp+IyEgcm49UmVpbmVsZGUgcnQ9ODIzNzgyNjI1Cn4jISB0aWQ9ODIzNzc3MDY5CgpXZW5uIHdpciBnYXJkIGhpZXIgYW0gcHJvbW90ZW4gc2luZDoKClNlaXQgdm9yZ2VzdGVybiBnaWJ0cyAoenVtaW5kZXN0IGluIEFtZXJpa2EpIGRpZSBuZXVlIEVQIFNob2Vib3ggdm9uIGRlbgpCYXJlbmFrZWQgTGFkaWVzLiBbTmVpbiwgc2llIHNpbmQgbmljaHQgd2lya2xpY2ggbmFja3QsIHVuZCBhdWNoIGtlaW5lCkxhZGllcywgYWJiYWlzc29rZWVdCkF1c3NlciA0IGdlbmlhbGVuIFNvbmdzIGdpYnRzIGF1Y2ggbm9jaCBqZWRlIE1lbmdlIE11bHRpbWVkaWEtS3JhbSBhdWYgZGVyCkNEOiAyIFZpZGVvcywgZWluZW4gUHJldmlldyBkZXIgTGllZGVyLCBkaWUgYXVmIGRlciBhbSAwNi4wMy4gZXJzY2hlaW5lbmRlbiBDRAonQm9ybiBvbiBhIHBpcmF0ZSBzaGlwJyBkcmF1ZiBzZWluIHdlcmRlbiwgdW5kIHNvbnN0IG5vY2ggamVkZSBNZW5nZSBDaGFvcywKd2llIG1hbnMgamEgdm9uIGRlbiBCTkwga2VubnQuCkljaCBrYW5uIGRhcyBudXIgZW1wZmVobGVuLCB1bmQgZmFsbHMgZWluZXIgdm9uIEV1Y2ggdGF0c2FlY2hsaWNoIGltCkZGYWNoaGFuZGVsIGVzIHNjaGFmZnQsIGRpZSBFUCB6dSBiZWtvbW1lbiAtIGJpdHRlIHNhZ3QgbWlyIEJlc2NoZWlkLiBJbiBnYW56CkRvb2ZtdW5kIChudXIga25hcHAgNjAwLjAwMCBFaW5zYXNzZW4pIHVuZCBVbWdlYnVuZyBzY2hhZmZ0IGVzIGtlaW4KUGxhdHRlbmxhZGVuLCBkaWUgenUgYmVzb3JnZW4gOigoCgpCYXJlbmFrZWQgaW4gRG9ydG11bmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhcmRpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTY2hsZWNodGUgUmVsaWdpb24gKEtlcm1pdCwgIDkuIEZlYiAxOTk2LCAxNToxOTo0NSk6Cn4jISBybj1Bc21vZGlzIHJ0PTgyMzc4MTMwMwp+IyEgdGlkPTgyMzc3NzA2OQoKQWxzbyB3aXJrbGljaCBaYXJkb3ohIER1cyBvbGx0ZXN0IG5pY2h0IG51ciBkaWVzZSBlaW5lIEJhZCBSZWxpZ2lvbi1DRAplbXBmZWhsZW4gc29uZGVybiBlaW5mYWNoIGFsbGUhIEFuZ2VmYW5nZW4gYmVpICdBZ2FpbnN0IHRoZSBHcmFpbicgYmlzCnp1ciBuZXVlbiBlaW5mYWNoIEdFTklBTCEhIQpLZXJtaXQsIGtyaWVndCBrZWluZSBQcm96ZW50ZS4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTY2hsZWNodGUgUmVsaWdpb24gKFBhcmFjZWxzdXMsICA5LiBGZWIgMTk5NiwgMTY6MjA6MDQpOgp+IyEgcm49S2VybWl0IHJ0PTgyMzg3NTU4NQp+IyEgdGlkPTgyMzc3NzA2OQpIbW0sIEljaCBrZW5uZSBudXIgZGllICJTdHJhbmdlciB0aGFuIEZpY3Rpb24iLCBhYmVyIGRpZSBpc3QgZWluZmFjaCBudXIKR1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVApdOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTY2hsZWNodGUgUmVsaWdpb24gKEJhcm9uLCAgOS4gRmViIDE5OTYsIDE2OjUzOjE3KToKfiMhIHJuPUtlcm1pdCBydD04MjM4NzU1ODUKfiMhIHRpZD04MjM3NzcwNjkKSG0/IEFuZ2VmYW5nZW4gYmVpICdBZ2FpbnN0IHRoZSBncmFpbic/IERhIGdhYnMgbm9jaCBlaW4gcGFhciB2b3JoZXIgbWVpbmUKaWNoLiBaLkIuICdObyBDb250cm9sJy4gRGFzIGlzdCBtZWluZSBMaWVibGluZ3MtQ0Qgdm9uIEJSLgpCYXJvbiAtIG1hZyBhdWNoIEdyZWVuIERheQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU2NobGVjaHRlIFJlbGlnaW9uIChLZXJtaXQsICA5LiBGZWIgMTk5NiwgMTc6MTQ6MDQpOgp+IyEgcm49QmFyb24gcnQ9ODIzODgxMTk3Cn4jISB0aWQ9ODIzNzc3MDY5CkFuZ2VmYW5nZW4gYmVpICdBZ2FpbnN0IHRoZSBncmFpbic/IEhlaXNzdCBiZWkgbWlyIG51ciwgZGFzcyBEQVMKTUVJTkUgTGllYmxpbmdzLUxQIHZvbiBCLlIuIGlzdC4uLi4KQWxsZSBhbmRlcmVuIHNpbmQgYWxsZXJkaW5ncyBhdWNoIFNhdWd1dCEhIQpLZXJtaXQsIHZlcmJlc3NlcnQgc2ljaDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNZWluIFNhdmVmaWxlIChMZWZ0eSwgIDkuIEZlYiAxOTk2LCAxODozMzozOSk6CkhhbGxvIG1hbCwKCmljaCB3ZW5kZSBtaWNoIGpldHp0IG1hbCBpbiBkZXIgWmVpdHVuZyBhbiBhbGxlIE1hZ2llciwgZGEgaWNoIGVpbmUgQml0dGUKaGFiZS4gSXJnZW5kd2FubiBpc3QgaW4gbGV0enRlciBaZWl0IHdhcyBkYW5lYmVuZ2VnYW5nZW4gbWl0IG1laW5lbQpzYXZlZmlsZS4gYWxsZSBhdXRvbG9hZHMsIHNvZ2FyIGVoZXJpbmcgdW5kIGZyZXVuZHNjaGFmdHNiYW5kIHNpbmQgd2VnLgppY2ggYml0dGUgZXVjaCwgbWVpbiBzYXZlLWZpbGUgd2llZGVyaGVyenVzdGVsbGVuLCB3ZW5uIGRhcyBnZWh0LiBXZW5uCmVzIHdpcmtsaWNoIG5pZW1hbmRlbSBtb2VnbGljaCBpc3QsIHd1ZXJkZSBpY2ggZGllcyBkYW5uIGF1Y2ggZ2VybmUgd2lzc2VuLApkYSBpY2ggbWljaCBkYW5uIGRyYW4gbWFjaGVuIG11c3MsIGRpZSBnZWdlbnN0YWVuZGUgd2llZGVyIHp1IGJlc29yZ2VuCgpMZWZ0eQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU2NobGVjaHRlIFJlbGlnaW9uIChIb3JzY2hkLCAxMC4gRmViIDE5OTYsIDE4OjM3OjU3KToKfiMhIHJuPUtlcm1pdCBydD04MjM4ODI0NDQKfiMhIHRpZD04MjM3NzcwNjkKQWVtbS4uLgpLZW5udCBlaWdlbnRsaWNoIGplbWFuZCB2b24gZXVjaCBkaWUgJ0ludG8gdGhlIHVua25vd24nID8gSXN0IHRvdGFsCmFiZ2VkcmVodCBkYXMgVGVpbCwgbWl0IFN5bnRoZXNpemVybiB1bmQgc28sIGFiZXIgenRyb3R6ZGVtIGlyZ2VuZHdpZQpnb2lsIDopKQoKSG9yc2NoZCAoZmluZGV0IEJhZCBSZWxpZ2lvbiBlY2h0IGd1dCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFNjaGxlY2h0ZSBSZWxpZ2lvbiAoWnVlcmlsZXUsIDExLiBGZWIgMTk5NiwgMDE6MjA6NTcpOgp+IyEgcm49SG9yc2NoZCBydD04MjM5NzM4NzcKfiMhIHRpZD04MjM3NzcwNjkKU2FsaSB6YWVtZSwKSmEgc2Nob24gQmFkIFJlbGlnaW9uIGZpbmQgaWNoIGF1Y2ggY29vbCwgbnVyIGZ1ZXIgbWVpbmUgYW5zcHJ1ZWNoZSBldHdhcyB6dQpsYXNoLCBpY2ggc3RlaGUgaGFsdCBtZWhyIGF1ZiBkZWZ0aWdlcmUgU2FjaGVuIGFscyBCUiwgYWJlciB6d2lzY2hlbmR1cmNoCnJlaXplbiBtaWNoIGF1Y2ggInNhbmZ0ZXJlIiBrbGFlbmdlID06KQoKSWNoIHNhZyBudXIga2F1ZmVuICEga2F1ZmVuICEgPVApCgpUc2NodWVlZXMuLiAgIFp1ZXJpbGV1IChMaXZlIGkgdGhlIEhlbGwgISApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWdpYyAoV2ludGVyLCAxMi4gRmViIDE5OTYsIDE5OjU2OjEwKToKU3VjaGUgYWxsZSBhZHJlc3NlbiBydW5kIHVtIE1hZ2ljLgpNYWlscyBlaW5mYWNoIGFuIG1pY2guVmllbGVuIERhbms6KQoKV2ludGVyLi4uOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWdpYyAoRHVyaWFuLCAxMi4gRmViIDE5OTYsIDIwOjA5OjAyKToKfiMhIHJuPVdpbnRlciBydD04MjQxNTEzNzAKfiMhIHRpZD04MjQxNTEzNzAKaGFyZGlsQG1vcmdlbmdyYXVlbgoKOi0pCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbWl0cXVlc3RlciBnZXN1Y2h0IChTbnVnZ2xlLCAxMy4gRmViIDE5OTYsIDAxOjU3OjAwKToKVGphLCBzbyBsYW5nc2FtIHdpcmRzIGphIG1hbCB6ZWl0LCBkYXNzIGF1Y2ggaWNoIG1pY2ggaW4gZGVyIGYmZSBhdXNrZW5uZS4KRGEgZGllIGdlbGVnZW5oZWl0IChzZW1lc3RlcmZlcmllbikgZ2VyYWQgZ3VlbnN0aWcgaXN0LCBzdWNoZSBpY2ggbmFjaAp0YXRrcmFlZnRpZ2VuIG1pdHN0cmVpdGVybiBmdWVyIGRpZXNlcyB1bnRlcmZhbmdlbi4gYXVmIHd1bnNjaCBpc3QgYXVjaApnZW1laW5zYW1lcyBxdWVzdGVuIGhpZXIgaW4gYm9ubiBtb2VnbGljaC4gcmVjaG5lciB3ZXJkZW4gZ2VzdGVsbHQsIGVzc2VuIHVuZApnZXRyYWVua2Uga3JpZWdlbiB3aXIgYXVjaCBpcmdlbmR3aWUgaGVyLgoKQWNoIGphLiBkYSBpY2ggdWViZXJ6ZXVndGVyIHNlbGJzdHF1ZXN0ZXIgYmluLCBtb2VjaHRlIGljaCB3ZWRlciBrbHMKZHVyY2hzcGllbGVuLCBub2NoIG1pdCBuZW0gendlaXRpZSwgZGVzc2VuIHNwaWVsZXIgZGllIHF1ZXN0IGJlcmVpdHMga2VubnQuCndlciBzaWNoIHVudGVyIGRpZXNlbiB3aWRyaWdlbiB1bXN0YWVuZGVuIG5vY2ggbWl0IG1pciBpbiBkaWUga2F0YWtvbWJlbiBkZXIKZiZlIHRyYXV0LCBzY2hyZWliZSBtaXIgYml0dGUgbmUgbWFpbCwgYXVmIGRhc3Mgd2lyIG5lbiB0ZXJtaW4gdmVyZWluYmFyZW4Ka29lbm5lbi4KCmJpcyBiYWxkIHVuZCBncnVzcwpTbnVnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaaW1tZXIgZ2VzdWNodCEgKENhdHdlYXpsZSwgMTMuIEZlYiAxOTk2LCAxNDowMDoyOSk6ClVuZCB6d2FyIGluIEJpZWxlZmVsZC4KTmVpbiwgbmljaHQgZnVlciBtaWNoLCBzb25kZXJuIGZ1ZXIgbmUgRnJldW5kaW4uIERpZSBJc3QgTWVkaXppbmVyaW4gdW5kCm1hY2h0IGpldHp0IGVpbiBKYWhyIEFJUCBpbiBCaWVsZWZlbGQuIFNpZSBoYWV0dGUgZ2VybmUgWlpLQiB1bnRlcgo3MDAgRE0gd2FybS4gRmFsbHMgRHUgc293YXMgaGFzdCBvZGVyIGtlbm5zdCwgb2RlciB3ZWlzc3QsIHdvIG1hbiBzb24KWmltbWVyIGJla29tbXQsIG1lbGQgREljaCBiaXR0ZSBtYWwgYmVpIG1pci4gV2FlcmUgc2Nob2VuLCB3ZW5uIFppbW1lci0Kc3VjaGUgdWViZXJzIE1HIGtsYXBwZW4gd3VlcmRlIDopLgpZb3VycyB0cnVseSwKICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndlciBoYWV0dGUgZGFzIGdlZGFjaHQgLi4uIChNYW5nbywgMTUuIEZlYiAxOTk2LCAwNTozOTowMSk6CgoKTmV1bGljaCBiZWltIE5ldHpzdXJmZW4gYXVmIGRlciBTZWl0ZToKCmh0dHA6Ly93d3cuc29ueW11c2ljLmRlL0hvdGxpc3QvSG90bGlzdC5odG1sCgpQbGF0eiAzLiA6KQoKCk1hbmdvLCBlcnN0YXVudC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpsb2IgKENodXJraWUsIDE2LiBGZWIgMTk5NiwgMjE6Mzc6NTcpOgptZWluIG51biB3aXJrbGljaCBlcnN0ZXIgKHVuZCBnZXdvbGx0ZXIpIGFydGlrZWwuIGF1Y2ggd2VubiBpbiBsZXR6dGVyIHplaXQKdmllbCBhdWYgZGllIG1hZ3MgZ2VzY2hpbXBmdCB3dXJkZS4uLi5kYXMgbXVkIGlzdCB3dW5kZXJ2b2xsLiB1bmdsYXVibGljaApzY2hvZW5lIGlkZWVuIHVuZCBzZWhyIHNlaHIgc3Bhbm5lbmRlIHF1ZXN0ZSwgbW9uc3RlciB1c3cuIG1hY2hlbiBlaW5lbSBpbW1lcgp3aWVkZXIgc28gZWluIGtyaWJiZWxuIHVudGVyIGRlciBzY2hhZWRlbGRlY2tlIHVuZCBtYW5jaG1hbCBhdWNoIGRhcmF1Zi4gc28sCmRhcyB3b2xsdGUgaWNoIG1hbCBzbyBlaW5nZXdvcmZlbiBoYWJlbi4gZGFua2UgYW4gYWxsZSBtYWdpZXIodW5kIG5hdHVlcmxpY2gKYW4gYWxsIGRpZSBqb2ZzIHVzdy4pLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGxvYiAoTGFyaXNzYSwgMTkuIEZlYiAxOTk2LCAwOToxOTo1Nik6Cn4jISBybj1DaHVya2llIHJ0PTgyNDUwMzA3Nwp+IyEgdGlkPTgyNDUwMzA3NwpIZSEKCkVzIGdpYnQgbnVyIEVJTkVOIEpvZi4KCkxhcmlzc2EsIHdlaXNzIGRhcyBnZW5hdSEgOi0pCgpQUy46IERlbSBMb2Iga2FubiBpY2ggbWljaCBhYmVyIG51ciB2b2xsIGFuc2NobGllc3Nlbi46KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBsb2IgKEFzbW9kaXMsIDE5LiBGZWIgMTk5NiwgMTY6MjI6MTApOgp+IyEgcm49TGFyaXNzYSBydD04MjQ3MTc5OTYKfiMhIHRpZD04MjQ1MDMwNzcKSm9mIGdpYnRzIGRvY2ggZ2FyIG5pY2h0LCBkYXMgaXN0IGFsbGVzIGdlZmFrZWQhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBOYWNocmljaHRlbiAoSGF0ZSwgMjIuIEZlYiAxOTk2LCAxMzo0NDoyMSk6CkF1cyBnZWdlYmVuZW0gQW5sYXNzIHdlcmRlbiBkaWUgTmFjaHJpY2h0ZW4gamV0enQgbmljaHQgbWVociBqZWRlIFN0dW5kZQpnZXNlbmRldCwgc29uZGVybiBudXIgbm9jaCBhbGxlIHNlY2hzIFN0dW5kZW4gZWlubWFsLgpEaWUgWmVpdGVuIHNpbmQ6IDIgVWhyLCA4IFVociwgMTQgVWhyIHVuZCAyMCBVaHIKRGFiZWkgc2luZCBkaWUgYWt0dWVsbHN0ZW4gTWVsZHVuZ2VuIDE0IFVociB1bmQgMjAgVWhyIHp1IGVyd2FydGVuLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1mZyBnZXN1Y2h0IChTbnVnZ2xlLCAyMy4gRmViIDE5OTYsIDA5OjQ4OjM0KToKTWFsIHdpZWRlciBhbGxlcyByZWljaGxpY2gga3VyemZyaXN0aWcsIGFiZXIgaWNoIGthbm4gbmljaHQgc2VsYmVyIG1pdCBkZW0KQXV0byBrb21tZW4sIGJyYXVjaGUgZGFoZXIgYWxzbyBuZSBNaXRmYWhyZ2VsZWdlbmhlaXQgenVyIFBhYWR5LgoKRmFlaHJ0IGlyZ2VuZGplbWFuZCBlcnN0IGhldXQgc3BhZXQgb2RlciBnYXIgbW9yZ2VuIGhpbiB1bmQga29tbXQgaXJnZW5kd2llCmluIGRlciBOYWVoZSB2b24gQm9ubiB2b3JiZWk/IChIZXV0IHNwYWV0IGhlaXNzdCBzbyBnZWdlbiAxOCBvZGVyIDE5IFVociBhYgpCb25uKQoKSWNoIG11c3Mgbm9jaCBBcmJlaXRlbiB1bmQga2FubiBkYWhlciBsZWlkZXIgbmljaHQgdm9yaGVyIGhpZXIgd2VnLCBhYmVyCmZhbGxzIHNpY2ggamVtYW5kIGZpbmRldCwgYmluIGljaCBiaXMgMTYuMDAgVWhyIGVudHdlZGVyIGltIE1vcmdlbmdyYXVlbiBvZGVyCmFscyB1enI1MWFAd29yazEucmhyei51bmktYm9ubi5kZSB6dSBlcnJlaWNoZW4gKHRhbGsgb2RlciBtYWlsKS4KCldhZXIgc2Nob2VuLCB3ZW5zcyBub2NoIGtsYXBwdCwgYW5zb25zdGVuIHd1ZW5zY2ggaWNoIHZpZWwgU3Bhc3MgYXVmIGRlcgpGZXRlLgoKVHNjaGF1aQpTbnVnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGFtbXRpc2Noc2VpdGUgKEFsaW5lLCAyNy4gRmViIDE5OTYsIDE1OjA5OjIwKToKSGFsbG8gbGllYmUgU3RhbW10aXNjaGxlciwKCmRhIGljaCBkaWUgU3RhbW10aXNjaHNlaXRlIGltIFdXVyBnZXJuZSBtYWwgd2llZGVyIGFrdHVhbGlzaWVyZW4KbW9lY2h0ZSwgd2FlcmUgZXMgc2VociBuZXR0IHdlbm4gaWhyIG1pciBlaW4gcGFhciBJbmZvcm1hdGlvbmVuCnp1a29tbWVuIGxhc3NlbiBrb2VubnRldC4gQWxzbyBmYWxscyBFdWVyIFN0YW1tdGlzY2gvVHJlZmZlbgpuaWNodCBvZGVyIGZhbHNjaCBlcndhZWhudCB3aXJkL3dlcmRlbiwgZmFsbHMgZGllIGRvcnQgYXVmZ2VmdWVocnRlbgpTdGFtbXRpc2NoZSBuaWNodCBtZWhyIHN0YXR0ZmluZGVuLCBzZWlkIHNvIGxpZWIgdW5kIG1haWx0IGRhcyBhbgptZWluZSBsaWViZSAydGllIEthbWlsbGUuIDopClNjaG9lbmVuIERhbmsgc2Nob24gbWFsIGltIHZvcmF1cy4uLi4uCgpBbGluZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKPG9obmUgVGl0ZWw+IChNYXJpdGEsICAyLiBNYXIgMTk5NiwgMjE6NTM6MTIpOgpIaSwKZGllIExldXRlLCBkaWUgc2VpdCBlaW4gcGFhciBUYWdlbiBuaWNodCBtZWhyIGluIGVpbiBhbmRlcmVzIGRldXRzY2hlcyBNdWQKcmVpbmtvbW1lbjogc3RyZWljaGUgaXJpcywgc2V0emUgZ2F1c3MuCihJY2ggZHVyZnRlIGRvY2gsIE11cGZlbD8gQWxsZSBmcmFnZW4gZGFuYWNoLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9yZ2VuR3JhdWVuIFdXVyBTZWl0ZSAoSGF0ZSwgIDMuIE1hciAxOTk2LCAwMjowMDowNSk6CkRhIGljaCBnZXJhZGUgZGFiZWkgYmluLCBkb3J0IGVpbmlnZXMgVW16dXN0ZWxsZW4sIGthbm4gZXMgc2VpbiwgZGFzcyBzbwptYW5jaGVzIG5pY2h0IHNvIGdlaHQgd2llIGVzIHNvbGwuIEltIE1vbWVudCBiZXppZWh0IHNpY2ggZGFzIGhhdXB0LQpzYWVjaGxpY2ggYXVmIGRpZSBJbmZvcm1hdGl2ZXMgU2VpdGUuCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWx3ZXR0YmV3ZXJiOiBNZWluIExpZWJsaW5nc21vbnN0ZXIhIChIYXRlLCAgNC4gTWFyIDE5OTYsIDExOjQ3OjI5KToKSGFsbG8gTGV1dGUhCgpIaWVybWl0IHJ1ZmUgaWNoIGRlbiBNYWx3ZXR0YmV3ZXJiICJNZWluIExpZWJsaW5nc21vbnN0ZXIiIGF1cyEKSmVkZXIgZGVyIGF1Y2ggbnVyIG1pdCBlaW5lbSBTdGlmdCBvZGVyIFByb2dyYW1tIHVtZ2VoZW4ga2Fubiwgc29sbHRlIHNpY2gKc29ldHdhcyBzY2huYXBwZW4gdW5kIGxvc2xlZ2VuLgpFcyBkYXJmIHNpY2ggZWluIGJlbGllYmlnZXMgTW9uc3RlciBhdXMgTUcgYXVzZ2VzdWNodCB3ZXJkZW4gdW5kIGRhbm4gc29sbHRlCm1hbiBlcyB6ZWljaG5lbi9tYWxlbi4gRGFzIEVyZ2VibmlzIHNvbGx0ZSBkYW5uIGdlc3BlaWNoZXJ0L2dlc2Nhbm50IG9kZXIKd2llIGF1Y2ggaW1tZXIgaW4gZWxla3Ryb25pc2NoZSBGb3JtIGdlYnJhY2h0IHdlcmRlbiB1bmQgYXVmIGRlbSBNRwpGVFAgU2VydmVyIHVudGVyIC9HcmFmaWsvV2V0dGJld2VyYiBtaXQgZm9sZ2VuZGVyIE5hbWVuc3N0cmF0ZWdpZSBhYmdlbGVndAp3ZXJkZW46IERlciBOYW1lIHNvbGx0ZSBzbyBhdXNzZWhlbiA8c3BpZWxlcj4uPG1vbnN0ZXI+Ljx0eXBlPgpEaWUgPCB1bmQgPiBrb2VubnQgaWhyIGdlcm5lIHdlZ2xhc3NlbiEgV2ljaHRpZyBpc3QgbmF0dWVybGljaCwgZGFzcyBtYW4KZGVuIFR5cCBkZXIgR3JhZmlrIGVya2VubnQsIGFsc28gb2JzIGdpZiwgdGlmZiwganBnLCBjZHIgb2RlciB3YXMgYXVjaAppbW1lciBpc3QuCkRhcyBSZXN1bHRhdCBkZXMgZ2FuemVuIHdpcmQgZGFubiBtaXQgZGVyIFZlcm9lZmZlbnRsaWNodW5nIGRlcyBnYW56ZW4KYmVsb2hudCwgd29iZWkgaWNoIGVpbmVyc2VpdHMgYW4gZWluZSBXV1cgR2FsZXJpZSBkZW5rZSBhYmVyIGF1Y2ggYW4gZWluZQpnZWRydWNrdGUgRm9ybS4gWnVtIEFic2NobHVzcyB3ZXJkZW4gZGFubiBkaWUgMyBiZXN0ZW4gQmlsZGVyIHByYWVtaWVydCEKVW5kIGpldHp0IGtvbW10czoKICAgIEVpbiB2b24gbWlyIHByb2dyYW1taWVydGVzIFNwYXNzLU9iamVrdCwgYXV0b2xvYWQsIG5hY2ggZGVuIFd1ZW5zY2hlbgpkZXMKICAgIEdld2lubmVycyEgRGFzIGdhbnplIHdpcmQgc2ljaCBpbSBSYWhtZW4gZGVyIEJ1ZXJzdGUgYnp3IGRlciBCdXR0b25zCm9kZXIKICAgIEZhZWhuY2hlbiB2b24gQ2F0d2VhemxlIGhhbHRlbiAoRGllIEJ1ZXJzdGUgaXN0IHZvbiBtaXIsIGZyYWd0IEhhbm5pKS4KCkF1ZiB6dW0gTUFMRU4hCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGF0IGhpZXIgenVmYWVsbGlnIGplbWFuZCBWaXRhbWluIEI/IChSb25kYSwgIDQuIE1hciAxOTk2LCAxMjowMjozNik6CkhhbGxvLCBoZXV0JyBtYWwgZWluZSBldHdhcyB1bmdld29laG5saWNoZSBBbnplaWdlOgoKSGF0IHp1ZmFlbGxpZyBqZW1hbmQgQmV6aWVodW5nZW4genUgamVtYW5kZW0sIGRlciBqZW1hbmRlbiBrZW5udCwgZGVyCmV2ZW50dWVsbCBJbmZvcyBoYXQgdWViZXIuLi4uCiAgLi4uIGVpbiBQcmFrdGlrdW0gaW4gZWluZXIgRmlybWEsIGRpZSB3YXMgbWl0IEtvbnN0cnVrdGlvbiAoTWFzY2hpbmVuYmF1KQp6dSB0dW4gaGF0PwoKSWNoIHN1Y2hlIG5hZW1saWNoIHppZW1saWNoIGRyaW5nZW5kIG5hY2ggZWluZW0gUHJha3Rpa3Vtc3BsYXR6IGZ1ZXIgbWVpbgpNYXNjaGluZW5iYXUtU3R1ZGl1bS4uLiAoYnJhdWNoZSBub2NoIDE1IFdvY2hlbiBGYWNocHJha3Rpa3VtIC0gc3RvZWhuISkKV2FydW0gc29sbHRlIGRhcyBuaWNodCBhdWNoIGF1ZiBkaWVzZW0gV2VnZSBrbGFwcGVuPyAqZ3JpbnMqCkZ1ZXIgZ2VnbHVlY2t0ZSBWZXJtaXR0bHVuZyB2ZXJzdGVpZ2VyZSBpY2ggLi4uIGRlbmsgLi4uIG5lbiBCU1M/ICpuaWNodApzY2hsYWZnZW4uLi4gbmVpbi4uLi4uLi4uIFVGRiEqIG9jaCwgZGEgd2VyZCBpY2ggbmVuICJBcmJlaXRzdmVybWl0dGxlciJCdXR0b24Kb2RlciBzbyB3YXMgcHJvZ2dlbiwgbWFsIHNlaG4gOykKVmllbGVuIERhbmsgZXJzdG1hbC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvbmRhClBzOiBSZXBseXMgdmllbGxlaWNodCBkYW5uIGRvY2ggYmVzc2VyIHZpYSBNdWRNYWlsID07KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV1dXIFNlaXRlIChQYXJ0eXNlaXRlbj8pIChIYXRlLCAgNC4gTWFyIDE5OTYsIDEyOjE2OjE0KToKV2VyIGRpZSBTZWl0ZSBuaWNodCBtZWhyIGZpbmRldCwgZGllIGVyL3NpZSBzdWNodCwgc29sbHRlIGVzIG1hbCBnYW56CmVpbmZhY2ggdm9uIGRlciBNRyBIYXVwdHNlaXRlIGF1cyBwcm9iaWVyZW4hIEljaCBoYWJlIGRhIGVpbmlnZXMgdW1nZXN0ZWxsdCEKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFsd2V0dGJld2VyYjogTWVpbiBMaWVibGluZ3Ntb25zdGVyISAoSGF0ZSwgIDQuIE1hciAxOTk2LCAxMjoyNzozOCk6Cn4jISBybj1IYXRlIHJ0PTgyNTkzNjQ0OQp+IyEgdGlkPTgyNTkzNjQ0OQpBY2hqYSwgaWNoIHZlcmdhc3MgenUgZXJ3YWVobmVuOiBEZXIgRWluc2VuZGVzY2hsdXNzIGlzdCBkZXIgNC4gQXByaWwKSWhyIGhhYnQgYWxzbyBlaW5lbiBNT05BVCBaZWl0IQoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0cmVpayEhISAoTnVkZWksICA1LiBNYXIgMTk5NiwgMDc6NDA6NTcpOgpTVFJFSUsgKiBTVFJFSUsgKiBTVFJFSUsgKgoKRGllIFdpZW5lciBXaXJ0c2NoYWZ0c3VuaXZlcnNpdGFldCBiZWZpbmRldCBzaWNoIGJpcyBhdWYgd2VpdGVyZXMgaW0gU3RyZWlrCmdlZ2VuIGRpZSB1bmVydHJhZWdsaWNoZW4gU3Bhcm1hc3NuYWhtZW4gZGVyIFJpZWdpZXJ1bmcgaW0gVW5pdmVyc2l0YWV0cy0gdW5kCkF1c2JpbGR1bmdzYmVyZWljaC4KCk5hZWhlcmUgSW5mb3JtYXRpb25lbiB6dSBkZW4gR3J1ZW5kZW4sIGdlcGxhbnRlbiBNYXNzbmFobWVuIGV0Yy4gd3VlcmRlbiBoaWVyCnp1dmllbCBQbGF0eiB3ZWduZWhtZW4sIGRlc3dlZ2VuCgotPiBMZWl0c2VpdGUgZGVyIEhvY2hzY2h1ZWxlcnNjaGFmdCBkZXIgV1U6Cmh0dHA6Ly93d3cud3Utd2llbi5hYy5hdC9ha3R1ZWxsLmh0bWwKCkdydXNzCk51ZGVpLCBTY2hyaWZ0bGVpdHVuZyBEaVdwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgTWFnaWVybGlzdGUgKEhhdGUsICA1LiBNYXIgMTk5NiwgMTY6Mjc6NTApOgpNYWdpZXJsaXN0ZSB2b24gTW9yZ2VuR3JhdWVuIHZvbSBEaWUsICA1LiBNYXIgMTk5NiwgMTU6NDk6MTgKUkVHSU9OOiBXYWxkIFJFTTogQmVybmFyZCwgTWlrYSwgUGFyYWNlbHN1cywgU2lsdmFuYSAoMzAgTWFnaWVyKQogICAgICAgIEFzcmFoZWwsIEF0YW11ciwgQmVydHJhbSwgQmluZywgRmluZHVsYXMsIEZyZXVuZCwKICAgICAgICBHbnVsbGksIEd1bmR1ciwgSGVyYmFydW0sIEthc3NhbmRyYSwgTGV1c2VsLCBMb2NvLAogICAgICAgIExvY3V0dXMsIE1lcGhpc3RvLCBOZW1lc2lzLCBPbSwgUHJpbmNlLCBQdGVwcGljLAogICAgICAgIFF1YXNpbW9kbywgUm9uZGEsIFNvbmljLCBUb3JmZHVlbmcsIFRyb3ksIFZpcGVyLCBWcmFpLAogICAgICAgIFlhbnRybwoKUkVHSU9OOiBFYmVuZSBSRU06IEhhemVsLCBNaXJpbCwgUm9jaHVzICgxNiBNYWdpZXIpCiAgICAgICAgQmVydHJhbSwgQ2FkcmEsIENhbHVtLCBDeW1vbmssIEZyYWdnbGUsIEd1bSwKICAgICAgICBLb2JheWFzaGksIExpLCBNdXBmZWwsIFJvbWlsaSwgVHJveSwgVHJ5ZmFuLCBaYXJkb3oKClJFR0lPTjogUG9sYXIgUkVNOiBGcmV1bmQsIFNjaHJ1bXBmaSwgWmFyZG96ICgyMCBNYWdpZXIpCiAgICAgICAgQW5ndXMsIEJlbmRlaWdpZCwgRmVuY2h1cmNoLCBHaW5hbGlzYSwgS2FpZywgS2V0b3MsCiAgICAgICAgS3JldGVrLCBNdXBmZWwsIE9scHAsIFBpbGdyaW0sIFJ1bWF0YSwgUnh0ZWNoLAogICAgICAgIFNjaG5pY2ssIFNtaXJrLCBUcm95LCBWaXBlciwgWWFudHJvCgpSRUdJT046IEluc2VsbiBSRU06IEFudGhlYSwgSGF0ZSwgV2FyZ29uICgzMSBNYWdpZXIpCiAgICAgICAgQmxvb2R5aGFycnksIENyZWF0aXZlLCBDeW1vbmssIEVsYnl0ZSwgRWxvcmEsIEVsdm5paywKICAgICAgICBGbGVhbmNlLCBHbnVsbGksIEd1bGR1a2F0LCBIZXJiYXJ1bSwgSG9iYmVzLCBIb3JzY2hkLAogICAgICAgIEpvbmFzLCBLYWVuZ3VydWgsIExhbXVlcnRlLCBMb2NvLCBNZWxpbmRhLCBNb2hhbW1lZCwKICAgICAgICBNb3Jnb3RoLCBNdXJrZXMsIE5vYm9keSwgUm9jaHVzLCBSdWZ1cywgU2Fpa2FuLAogICAgICAgIFNoYWtlZGJlZXIsIFRocm9pbiwgVG9ldGVyLCBXaXp6YXJkCgpSRUdJT046IERzY2h1bmdlbCBSRU06IENocmlzLCBHdW0sIFJvbWlsaSAoMTYgTWFnaWVyKQogICAgICAgIEFsYXJpbiwgQW5ndXMsIEFyYW1pciwgQXJkYW5hLCBBenp1cm8sIEJlcnRyYW0sCiAgICAgICAgSG9yc2NoZCwgT3N0ZXJoYXNpLCBRdWlub2xpbiwgUmlrdXMsIFNjaG5hcmNoLCBTZXRob3MsCiAgICAgICAgVmlwZXIKClJFR0lPTjogR2ViaXJnZSBSRU06IEJvaW5nLCBLZXRvcyAoMjcgTWFnaWVyKQogICAgICAgIEFsYXJpbiwgQmFib29uLCBCYW1idWxrbywgQ2lmZXIsIEVhZ2xlLCBFZCwgRWxieXRlLAogICAgICAgIEVtcGVyb3IsIEdlb3JnLCBHb2x1bSwgSGFya29uLCBIaWdobGFuZGVyLCBIb2JvLAogICAgICAgIEthZW5ndXJ1aCwgS2Fzc2FuZHJhLCBLaXJrLCBMdW5hdGljLCBNeXN0aXgsIE9ldHRpLAogICAgICAgIFB0ZXBwaWMsIFB1bWEsIFNpbHZhbmEsIFNsYXNoZXIsIFN1bW1lciwgV290YW4KClJFR0lPTjogV3Vlc3RlIFJFTTogQmFuemFpLCBDYXR3ZWF6bGUsIERhbmNlciwgRHVyaWFuICgyMSBNYWdpZXIpCiAgICAgICAgQ2FyZWZyZWUsIERlbG9zLCBHZXJub3QsIEd1bmR1ciwgSGFra2lra3QsIEhhcnJ5LAogICAgICAgIEtlcm1ldCwgTGFyaXNzYSwgTXVhZGliLCBOYWlyb2xmLCBSYWlzdCwgUm9taWxpLAogICAgICAgIFNhZW5nZXIsIFNhbW8sIFN1c2hpLCBUYXNoYSwgVWxvCgpSRUdJT046IFVudGVyd2VsdCBSRU06IERlYXRoLCBTaXIsIFd1cnplbCAoMTIgTWFnaWVyKQogICAgICAgIENhZHJhLCBDaHJpcywgRmVsYWd1bmQsIE1vcmdvdGgsIE5lbWVzaXMsIFNhaWthbiwKICAgICAgICBTY2hydW1wZmksIFdvcmYsIFp1ZXJpbGV1CgpSRUdJT046IFNlaGVyIFJFTTogSGF0ZSwgS2lyayAoOCBNYWdpZXIpCiAgICAgICAgR3dlbmh3eWZhciwgSm9mLCBSYWlzdCwgVHJveSwgV2FyZ29uLCBXb2xsaQoKUkVHSU9OOiBGZXJud2VzdCBSRU06IExpLCBVbG8gKDkgTWFnaWVyKQogICAgICAgIEJhcm9uLCBEYW5jZXIsIFBhdWxlLCBQdW1hLCBSdWZ1cywgU2hpbm9iaSwgU2lsdmFuYQoKUkVHSU9OOiBWbGFuZCBSRU06IE1vcmdvdGgsIFNhaWthbiAoNiBNYWdpZXIpCiAgICAgICAgRWxieXRlLCBFbHZuaWssIEphc3BlciwgVGhyb2luCgpSRUdJT046IFNjaGF0dGVud2VsdCBSRU06IERhbmNlciAoMyBNYWdpZXIpCiAgICAgICAgVnJhaSwgWmFyZG96CgpSRUdJT046IEtlaW5lIFJlZ2lvbiBSRU06ICAoODAgTWFnaWVyKQogICAgICAgIEFsbGFoLCBBbXlsYWFyLCBBbmRhcmEsIEFyYWdvcm4sIEFyaWVuLCBBcm9tYm9sb3NjaCwKICAgICAgICBCYWxkdXIsIEJhbGluLCBCYXRtYW4sIEJlbGRpbiwgQm9kbywgQm9uZ28sIENoYW9zLAogICAgICAgIENoYXJvbiwgRGFmbmUsIERheCwgRGVlcHRob3VnaHQsIERyaXp6dCwgRHVzdHksCiAgICAgICAgRWZjaGVuLCBFbGZpZSwgRmFuZ29ybiwgRmFzYm8sIEZpZWJlciwgRnJlYWt5LAogICAgICAgIEdhbmRhbGYsIEdhcmlvbiwgR2F0c2J5LCBHZW5vbSwgR2lhY29tbywgR2x1Y2tzLAogICAgICAgIEdyaW1tYm9ybiwgR3J1bnosIEdydXVoLCBHdXlicnVzaCwgSGFucywgSHlwLCBJY2V0LAogICAgICAgIElyc2ksIEtlbGRvcm4sIEtsaW5nZSwgS2xvbmssIEx3YXhhbmEsIE1hY2JldGgsCiAgICAgICAgTWFyY3VzLCBNYXJxdWVlLCBNYXRlZXNlLCBNZW50YXIsIE1pcm8sIE1vbm90b25pLAogICAgICAgIE11ZHRpZ2VyLCBNeXJkaW4sIE9kbywgT2xpbSwgUGFtcGVycywgUGVwZWwsIFBoYXJhbywKICAgICAgICBQbGFwcGVybWF1bCwgUXVpbGxpYW4sIFJhaXN0bGluLCBSdWViY2hlbiwgU2FydW1hbiwKICAgICAgICBTaGlyYSwgU2x5Zm94LCBTbWF1ZywgU25vcmssIFNvY3JhdGUsIFN0ZWluaSwgVGVzbGEsCiAgICAgICAgVGhhbGxpb24sIFRoaW5nb2wsIFRob3JpbiwgVGlsaW9uLCBUcmVtb3IsIFRyZXN0LAogICAgICAgIFR3cngsIFZhc2NvLCBXaXR6LCBZdmFudGhhcywgWmFyYXRodXN0cmEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdXNpY2FsIChZZW5kaSwgIDYuIE1hciAxOTk2LCAxNjo1MToyNCk6CgoKSGFsbG8hCgpXZXIgdm9uIGV1Y2ggTHVzdCBoYXQsIG1hbCBlaW5lbiBld2lnZW4gV2Vpc2VuIHp1IHNlaGVuLCBkZXIgc2ljaCB3aWVkZXJtYWwKenVtIE5hcnJlbiBtYWNodCwgd2VpbCBlciBzaWNoIGhhdCBicmVpdHNjaGxhZ2VuIGxhc3NlbiwgYmVpIGVpbmVyClNjaHVsYXVmdWVocnVuZyBtaXR6dW1hY2hlbiwgZGVyIGtvZW5udGUgc2ljaCBoaWVyZnVlciBpbnRlcmVzc2llcmVuOgoKCkluIGRlciBTdGFkdGhhbGxlIEhpbHRydXAgZmluZGVuIGJpcyB6dW0gMjAuIE1hZXJ6IGVpbnNjaGxpZXNzbGljaCwKbWl0IEF1c3NuYWhtZSBkZXMgNy4sIGRlcyAxMS4gdW5kIGRlcyAxOC4gTWFlcnosIGpld2VpbHMgdW0gMTk6MzAgVWhyLApBdWZmdWVocnVuZ2VuIGRlcyBNdXNpY2FscwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxBIFJFVk9MVVRJT04gRlJBTkNBSVNFIgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dC4KCkljaCBrYW5uIGVzIGVtcGZlaGxlbiwgZXMgaGF0IGVpbmVuIHJlY2h0IGhvaGVuIE9ocnd1cm0tRmFrdG9yLi4uIDspClVuZCwgamEsIGltIFByb2dyYW1taGVmdCBzaW5kIGF1Y2ggVWViZXJzZXR6dW5nZW4gZGVyIFRleHRlIGVudGhhbHRlbi4KCkthcnRlbiBnaWJ0IGVzIGJlaSBkZXIgTVotVGlja2V0LUNvcm5lciBvZGVyIGRpcmVrdCBiZWltCkVtbWFudWVsLUthbnQtR3ltbmFzaXVtIGluIEhpbHRydXAuCgoKQWxzbywgZmFsbHMgaWhyIG1hbCBhYmVuZHMgaW4gTXVlbnN0ZXIgc2VpZCB1bmQgTGFuZ2V3ZWlsZSBoYWJ0Li4uCgpZVFkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpERVIgSVJSRSBXRUxUUkFVTVBST0xFVCAoTWFlcnphdXNnYWJlKSBpc3QgZGEgISEhIChOdWRlaSwgIDcuIE1hciAxOTk2LCAxMDoxOTo1Nik6CkxpZWJlIExlc2VyIHVuZCBSaW5uZW4sIHBvdGVudGllbGxlIEFib25uZW50ZW4gdW5kIElubmVuISEhCgpFcyBpc3Qgd2llZGVyIGVpbm1hbCBzb3dlaXQ6CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCkRlciBuZXVlIERFUiBJUlJFIFdFTFRSQVVNUFJPTEVUIChEaVdwKSBpc3QgZGEgISEhCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCldpZWRlciB2b2xsZXIgVWViZXJyYXNjaHVuZ2VuLCBkaWVzbWFsIG5lYmVuIGRlciBwcm9ncmFtbWF0aXNjaGVuCkt1cnpnZXNjaGljaHRlIGRlcyBNb25hdHMgOgoKRGllIEZvcnRzZXR6dW5nIHZvbiBCYWxkdWluIHZvbiBCYWxkYWNoaW4tIEVyem1hZ3VzIHVuZCBCZWhlcnJzY2hlciBkZXIKTWFnaWUhCkVpbiBuZXVlcyBLYXBpdGVsIGF1cyBkZW4gZ2VoZWltZW4gWnVzYXR6YmFlbmRlbiB6dSBkZXIgU3RhZHR4aHJvbmlrIHZvbgpWb2xnYXIgYXVzIGRlciBGZWRlciB2b24gSHlyb25pbXVzIGRlbSBaaXR0cmlnZW4sIGdlbmFubnQgREVSIENIUk9OSVNUCgpFaW5lIG5ldWUgRXBpc29kZSBhdXMgZGVtIGFiZW50ZXVlcmxpY2hlbiBMZWJlbiB2b24gS2VwdG4gU2NodXJsIHVuZCBzZWluZXIKU3BhY2Vib3R0bC1DcmV3IChPb29vZiBnZWh0cywgQm90dGxidWFtISkKClVuZCBsYXN0IG5vdCBsZWFzdCBhdXMgdW5zZXJlbSBTYW1tZWxiYW5kOiBnZWdlbnN0YWVuZGUsIGRpZSBkZXIgU3BpZWxsZWl0ZXIKc2VpbmVyIEdydXBwZSBsaWViZXIgZG9jaCBfbmljaHRfIGluIGRpZSBIYW5kIGdlYmVuIHNvbGx0ZTogRGllIFN6ZXB0ZXIgZGVyCkcnSHVpbWdpCgpEYXp1IGVpbmUgRnVlbGxlIGludGVyZXNzYW50ZXIgSWxsdXMsIGJlc3RlY2hlbmRlciBCbG9ja3NhZXR6ZSB1bmQKaGltbWVsc2NocmVpZW5kZW4gU2Nod2FjaHNpbm5zCgoKQW56dWZvcmRlcm4gYmVpIGRlciBTY2hyaWZ0bGVpdHVuZywgUHJvYmVleGVtcGxhciBrb3N0ZW5sb3MgKikKCgpOdWRlaSwgU2NocmlmdGxlaXR1bmcgRGlXcAoKCiopIGRpZSB3ZWl0ZXJlbiBBYm9leGVtcGxhcmUgc2luZCBhdWNoIGtvc3Rlbmxvcy4gTm9ldGlnIGlzdCBudXIgZWluCm1pbmltYWxlciBWZXJzYW5kdW5rb3N0ZW5iZWl0cmFnLCBkZW5uIFdJUiBIQUJFTiBFSU5FIEFVRkdBQkUgWlUgRVJGVUVMTEVOISEhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2xlaW5hbnplaWdlbiAoUmFmZmksICA3LiBNYXIgMTk5NiwgMTk6MjI6MTMpOgoKICAgICBTVUNIRQogICAgIC0tLS0tCgpCU1MgKGphIGdlbmF1LCBlaW5lcyB2b24gZGllc2VuIGFsdG1vZGlzY2hlbiBEaW5nZXJuKQpHb2JvcmluZwpHZWxiZSBSb2JlIChFcnNhdHp3ZWlzZSBTY2hhcnVlKQpTY2hsYW5nZW5oYXV0ClNpbGJlcm5lcyBLcmV1egpldGMuCgpCaWV0ZToKS2xlaW5nZWxkLgoKCkdydXNzCkguCgpQLlMuOiBiaXR0ZSBuaWNodCB1bmJlZGluZ3QgZGlyZWt0IHZvciBkZW0gbmFlY2hzdGVuIFJlYm9vdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLbGVpbmFuemVpZ2VuIChUZXJyb3Jpc3QsICA4LiBNYXIgMTk5NiwgMDk6Mzk6MjQpOgp+IyEgcm49UmFmZmkgcnQ9ODI2MjIyOTMzCn4jISB0aWQ9ODI2MjIyOTMzCgpXbyB3aXIgZ3JhZGUgZGFiZWkgc2luZCBzdWNoZSBpY2ggZWlnZW50bGljaCBkYXMgZ2xlaWNoZS4KWnUgYmlldGVuIGhhYmUgaWNoIGFiZXIgbmljaHRzIDopKQoKVGVycm9yaXN0IHN1Y2h0IFNwb25zb3IgZnVlciBzZWluZSBBbnNjaGxhZWdlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFzIE1HIExvZ28gKEhhdGUsICA4LiBNYXIgMTk5NiwgMTA6NTU6MzgpOgpIaSwKCndpZWRlciBtYWwgc29ldHdhcyB3aWUgZWluIGtsZWluZXIgV2V0dGJld2VyYiwgYWxsZXJkaW5ncyBkaWVzbWFsIG9obmUgUHJlaXMuCldpZSBpaHIgc2ljaGVyIHNjaG9uIG1pdGJla29tbWVuIGhhYnQsIGhhYmUgaWNoIGRpZSBXV1cgU2VpdGVuIGRlcyBNRyBldHdhcwp2ZXJhZW5kZXJ0LiBEYWJlaSBoYWJlIGljaCBtaXIgYXVjaCwgZGFuayBIaWxmZSB2b24gSGFubmkgdW5kIEF1Z3JhIGVpbgpMb2dvIHZvbiBNRyBlaW5mYWxsZW4gbGFzc2VuLiBEaWVzZXMga29lbm50IGlociBhYiBzb2ZvcnQgYXVmIGRlcgpTZWl0ZSBodHRwOi8vbWcudW5pLW11ZW5zdGVyLmRlL0luZm9ybWF0aW9uL0t1bHR1ci9sb2dvLmh0bWwKYmV0cmFjaHRlbi4gRG9ydCBmaW5kZW4gc2ljaCB6d2VpIEVudHd1ZXJmZS4KSWNoIHd1ZXJkZSBnZXJuZSBub2NoIG1laHIgenVyIEF1c3dhaGwgaGFiZW4sIGFsc28gd2VtIGVzIFNwYXNzIG1hY2h0LCBkZXIKc29sbHRlIHNpY2ggbWFsIHJhbnNldHplbiB1bmQgZXR3YXMgYXVzZGVua2VuLgpEaWUgS3JpdGVyaWVuLCBkaWUgZGFzIExvZ28gZXJmdWVsbGVuIG11c3Mgc3RlaGVuIGF1Y2ggYXVmIGRlciBTZWl0ZSEKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXV1cgU2VpdGVuL1RhYmVsbGVuIChIYXRlLCAgOS4gTWFyIDE5OTYsIDEwOjUxOjQxKToKSGksCgpmdWVyIGFsbGUgZGllLCB3ZWxjaGUgZWluZW4gTW9zYWljIFdXVyBicm93c2VyIGJlbnV0emVuLCBkZXIga2VpbmUgTGlua3MKaW4gVGFiZWxsZW4gZGFyc3RlbGx0LCBoYWJlIGljaCBhdWYgZGVuIFNlaXRlbiwgd28gVGFiZWxsZW4gc2luZCB1bnRlbgpkYXMgbWVudWUgbm9jaCBlaW5tYWwgZGFyZ2VzdGVsbHQuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gYWxsZSBzeXNhZG1pbnMgKEhhcmRpbCwgMTIuIE1hciAxOTk2LCAyMDowNjo1Mik6CgpBaG9pIQoKSXN0IGtlaW4gc29vbyBzY2hvZW5lciBBbmxhc3MuLi4KClNpY2hlcmxpY2gga2VubmVuIGVpbmlnZSB1bnRlciBFdWNoIGRpZSBNYWdhemluZSBOYXV0aWx1cyB1bmQgS2FydGVmYWt0LgpEZXJlbiBIZXJhdXNnZWJlciwgZWluIGdld2lzc2VyIEp1ZXJnZW4gUGlybmVyLCB2ZXJzY2hpY2t0IHNlaXQgbmV1ZXN0ZW0gYW4KYWxsZSwgZGVyZW4gZS1tYWlsLUFkcmVzc2VuIGVyIGhhdCwgdWVyYnMgTmV0eiBXZXJidW5nIGZ1ZXIgc2VpbmUgTWFnYXppbmUuClVuZCBNdWRkZXIgYWxzIEZhbnRhc3ktU1BpZWxlciBpc25kIGRhIHdvaGwgYXVjaCBaaWVsZ3J1cHBlLgpJY2ggaGFiIGluIHNlaW5lciBlcnN0ZW4gbWFpbCBhdWNoIFB1bWEgdWRuIExvY3V0dXMgaW4gZGVyIExpc3RlIGRlcgphbmdlbWFpbHRlbiBQZXJzb25lbiBnZWZ1bmRlbiAtIHVuZCBpY2ggYmluIG1pciB6aWVtbGljaCBzaWNoZXIsIGRhc3MgZGllCmRpZXNlIFdlcmJ1bmcgYXVjaCBuY2lodCBiZXN0ZWxsdCBoYWJlbi4KCkljaCBtb2VjaHRlIEV1Y2ggYml0dGVuLCBkaWUgU2l0ZSBuYXV0aWxAbWFnaWN2aWxsYWdlLmRlIHNvd2VpdCB3aWUgbW9lZ2xpY2gKYW4gZXVyZW4gTWFzY2hpbmVuIHp1IGJhbmlzaGVuLiBGYWxscyBiZWkgRXVjaCBCZXNjaHdlcmRlbiBhdWZ0YXVjaGVuIC0KYnVuZWRlbG4sIHdlaXRlcmxlaXRlbi4KSWNoIGZpbmRzIHNjaGFkZSwgd2VubiBMZXV0ZSBvaG5lIE5ldGlxdWV0dGUgc28gaGFudGllcmVuIGdlbGFzc2VuIHdlcmRlbi4KClZpZWxlIEdydWVzc2UsCgoJCUhhcmRpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFuIGFsbGUgc3lzYWRtaW5zIChHdWxkdWthdCwgMTIuIE1hciAxOTk2LCAyMDoxNDo0MSk6Cn4jISBybj1IYXJkaWwgcnQ9ODI2NjU3NjEyCn4jISB0aWQ9ODI2NjU3NjEyCm1taCwgdmllbGxlaWNodCBzY2hpY2t0IGplZGVyIG1hbCBzZWluZW4gbXVlbGwgZGFoaW4hIDspCmluIGZpbm5sYW5kIGdpYnRzIHNvbiBhbm9ubW91cyBtYWlsZXI6CmFub24ucGVuZXQuZmkKCmd1bGR1a2F0Cn5lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW4gYWxsZSBzeXNhZG1pbnMgKEd1bGR1a2F0LCAxMi4gTWFyIDE5OTYsIDIwOjE2OjA2KToKfiMhIHJuPUhhcmRpbCBydD04MjY2NTc2MTIKfiMhIHRpZD04MjY2NTc2MTIKd2Vpc3MgamVtYW5kLCB3aWUgZGVyIGFub25tb3VzIG1haWxlciBmdW5rdGlvbmllcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQW4gYWxsZSBzeXNhZG1pbnMgKFRvZSwgMTIuIE1hciAxOTk2LCAyMTowODo0Nyk6Cn4jISBybj1HdWxkdWthdCBydD04MjY2NTgwODEKfiMhIHRpZD04MjY2NTc2MTIKd2lyIGhpZXIgdmVyc2NoaWNrZW4gaW4gc29sY2hlbiBmYWVsbGVuIGRhcyBrb21tdW5pc3Rpc2NoZSBtYWluZmVzdC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQW4gYWxsZSBzeXNhZG1pbnMgKEphc3BlciwgMTIuIE1hciAxOTk2LCAyMToxMDo0Nyk6Cn4jISBybj1Ub2UgcnQ9ODI2NjYxMzI3Cn4jISB0aWQ9ODI2NjU3NjEyCkljaCBrYW5uIG1pY2ggZXJpbm5lcm4sIHNlaXRkZW0gdmVybWVpZGUgaWNoIGRpZSBSZWNobmVyIGFtIFJlY2hlbnplbnRydW0gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEFuIGFsbGUgc3lzYWRtaW5zIChUb2UsIDEyLiBNYXIgMTk5NiwgMjE6MTE6NDUpOgp+IyEgcm49SmFzcGVyIHJ0PTgyNjY2MTQ0Nwp+IyEgdGlkPTgyNjY1NzYxMgpkdSBtb2VjaHRlc3QgZWlucz8gLSBrZWluIHByb2IuLi4gOi0pKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEFuIGFsbGUgc3lzYWRtaW5zIChSYWZmaSwgMTIuIE1hciAxOTk2LCAyMjowMTo0NCk6Cn4jISBybj1Ub2UgcnQ9ODI2NjYxNTA1Cn4jISB0aWQ9ODI2NjU3NjEyCgpBbHNvIGljaCB3ZWlzIG5pY2h0IG9iIGVzIHNvIHNpbm52b2xsIGlzdCBzaWNoIGRhIGVpbnp1bWlzY2hlbi4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBbiBhbGxlIHN5c2FkbWlucyAoVG9lLCAxMi4gTWFyIDE5OTYsIDIyOjM3OjQwKToKfiMhIHJuPVJhZmZpIHJ0PTgyNjY2NDUwNAp+IyEgdGlkPTgyNjY1NzYxMgpzdGltbXQuLi4KaWNoIHZlcnNjaGlja2UgZGFzIG1hbmlmZXN0IGF1Y2ggbnVyLCB3ZW5uIGljaCBzbyBuZSBtYWlsIGVyaGFsdGUuLi4KdG9lCgp3YWZvZgpmCndhZm9uCi5TLiBoYXQgbWFsIHdlciB3d3cuYm9ubi5jaXR5bmV0LmRlIG1pdCBseW54IGdldGVzdGV0PyB2ZXJkaWVudCBhdWNoIEtNLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFuIGFsbGUgc3lzYWRtaW5zIChLcmV0ZWssIDE1LiBNYXIgMTk5NiwgMDI6Mjg6MDcpOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODI2NjU4MDgxCn4jISB0aWQ9ODI2NjU3NjEyCnNlbmQgbWFpbCB0bzogaGVscEBhbm9uLnBlbmV0LmZpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFuIGFsbGUgc3lzYWRtaW5zIChNYXJjdXMsIDE1LiBNYXIgMTk5NiwgMTM6Mzk6NTUpOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODI2NjU4MDgxCn4jISB0aWQ9ODI2NjU3NjEyCk1haWxib21iYXJkZW1lbnRzIHNpbmQgdWVicmlnZW5zIEtFSU5FIGd1dGUgQXJ0IGF1ZiBzb3dhcyB6dSByZWFnaWVybmUsIHdlaWwKbWFuIHNpY2ggZGFtaXQgbWl0IHNvbGNoZW4gbGV1dGVuIGF1ZiBlaW5lIHN0dWZlIHN0ZWxsdCAobWVpbmVyIG1laW51bmcgbmFjaCkKYmVzc2VyIGlzdCwgc2ljaCBiZWkgcm9vdEBkaWVzZW1ob3N0LCBwb3N0bWFzdGVyQGRpZXNlbWhvc3QsCnJvb3RAaW50ZXJuZXRwcm92aWRlciB6dSBiZXNjaHdlcmVuLgpkYXMgYnJpZ250IHNpY2hlcmxpY2ggbWVociwgYWxzIGRhcyBuZXR6IG5vY2ggbWVociB2b2xsenVtdWVsbGVuCgotTWFyY3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIZWlyYXQgISAoT2V0dGksIDI2LiBNYXIgMTk5NiwgMTU6NTc6NDkpOgpZbyAhCgpXaWUgbWlyIHNvIGViZW4genUgT2hyZW4ga2FtLCBzaW5kIFRlbGthIHVuZCBpY2ggc2VpdCBoZXV0ZQp2ZXJoZWlyYXRldC4KR2x1ZWNrd3Vuc2NoZSBhbiBtaWNoLCBCZWlsZWlkc2Jla3VuZHVuZ2VuIGFuIG1laW5lIEZyYXUgISEKCkRhbmtlICEhIQoKT2V0dGwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIElkZWUgOy0pIChMZWZ0eSwgMjYuIE1hciAxOTk2LCAxNzo0Mzo0Nik6Ckh1aHUsCgphbHNvIGljaCBzdWNoZSBuZW4gVGlwLCB3byBpY2ggZGllIHZpZXIgT3N0ZXJ0YWdlIChzaW5kcyB1ZWJlcmhhdXB0CnNvdmllbCA/KSByZWxhdGl2IGd1ZW5zdGlnIHZlcmJyaW5nZW4ga29lbm50ZS4gSWNoIHdpbGwgZGEgaGFsdCB3YXMKdW50ZXJuZWhtZSwgd2FocnNjaGVpbmxpY2ggenUgWndlaXQsIHVuZCBtaXIga29tbXQgZWluZmFjaCBrZWluZSBndXRlCklkZWUuIFdlciBkYSB3YXMgZ3V0ZXMgenUgYmlldGVuIGhhdCAuLi4gaWNoIHd1ZXJkZSBtaWNoIHVlYmVyIG5lIE1haWwKZnJldWVuIDopCgpjaWFvLCBMZWZ0eQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTdWNoZSBJZGVlIDstKSAoTGVmdHksIDI2LiBNYXIgMTk5NiwgMjA6MTQ6MTIpOgp+IyEgcm49TWFyaXRhIHJ0PTgyNzg2NjEyMgp+IyEgdGlkPTgyNzg1ODYyNgpIbSwgaGFiZSBpY2ggc2Nob24sIGFiZXIgZGFzLCB3YXMgaWNoIGd1dCBmaW5kZSwgbGFlc3N0IHNpY2ggaW4gZGVyIHplaXQKc2NobGVjaHQgYXVmIGRpZSBiZWluZSBzdGVsbGVuIC4uLiBhdXNzZXJkZW0gc3VjaGUgaWNoIGphIFRpcHMgdm9uIExldXRlbiB2b3IKT3J0LCBkaWUgbWlyIHdhcyBlbXBmZWhsZW4ga29lbm5lbiwgd2FzIG1hbiBuaWNodCBzbyBhbGxnZW1laW4ga2VubnQuCkxlZnR5IChzaWNoIGF1Y2ggc2VpbmUgZWlnZW5lbiBHZWRhbmtlbiBtYWNoZW4pIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU3VjaGUgSWRlZSA7LSkgKExlZnR5LCAyNi4gTWFyIDE5OTYsIDIwOjE5OjM4KToKfiMhIHJuPU1hcml0YSBydD04Mjc4Njc4MjUKfiMhIHRpZD04Mjc4NTg2MjYKCk5vZSwgaWNoIGJpbiBmbGV4aWJlbCAuLi4gaWNoIGtlbm5lIG1pY2ggamEgaW4gRGV1dHNjaGxhbmQgc293aWVzbyBrYXVtIGF1cwouLi4gdW5kIGluIEV1cm9wYSAqbGFjaCogLi4uIHVuZCBpbiBkZXIgZ3Jvc3NlbiB3ZWl0ZW4gV2VsdCBzY2hvbiBnYXIgbmljaHQuCgpFaW4gaXJnZW5kd2FubiBhbiBVbndpc3NlbmhlaXQgc3RlcmJlbmRlciBMZWZ0eQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU3VjaGUgSWRlZSA7LSkgKFp1ZXJpbGV1LCAyNy4gTWFyIDE5OTYsIDAyOjQ1OjQ5KToKfiMhIHJuPUxlZnR5IHJ0PTgyNzg2Nzk3OAp+IyEgdGlkPTgyNzg1ODYyNgpTYWxpIExlZnR5LAoKSm8gZGFubiBrb21tIGRvY2ggbmFjaCBadWVyaWNoIHVuZCB3aXIgc2F1ZmVuIHp1c2FtbWVuIGVpbnMsIG9kZXIgendlaSA9OikKCnRzY2h1ZXNzIFp1ZXJpbGV1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXR6IChKb2YsIDEyLiBBcHIgMTk5NiwgMTE6Mjk6MTgpOgoxMi4wNC46IERlciBadWdhbmcgenVtIEludGVybmV0IGF1c3NlcmhhbGIgZGVyIFdXVSBpc3Qgc2VpdCBnZXN0ZXJuCiAgICAgICAgTmFjaG1pdHRhZyB6ZWl0d2Vpc2UgZXJoZWJsaWNoIGdlc3RvZXJ0LiBEaWUgVXJzYWNoZSBpc3Qgbm9jaAogICAgICAgIG5pY2h0IGJla2FubnQsIGxpZWd0IGFiZXIgdmVybXV0bGljaCBpbSBXaU4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzdWNoZSBJbmZvcyAoU2VtaXJhLCAxMy4gQXByIDE5OTYsIDE5OjM0OjI1KToKVXJsYXV1dXV1dXV1dXV1YiEKCk5hamEgbm9jaCBuaWNodCwgYWJlciB3YXMgZWluIGZlaW5lciBVbGF1YiB3ZXJkZW4gc29sbCwgZGFzIHdpbGwgdm9yYmVyZWl0ZXQKc2Vpbi4gVW5kIGRydW0gaGllciBtZWluIEF1ZnJ1ZjoKCkFsbGUgbnVyIGVyZGVua2xpY2hlbiBJbmZvcywgZGllIGRyZWkgQ2FtcGVybiBpbiBkZXIgQnJldGFnbmUgdW5kIGltIEVsc2FzcwppcmdlbmR3aWUgbnVldHplbiBrb2VubmVuIHp1IG1pciAoa29jaEBoYXJ0cmVlLnBjLnVuaS1rb2Vsbi5kZSkuIERhYmVpIGlzdHMKdm9lbGxpZyBlZ2FsLCB3YXMgZnVlciBUaXBzIGRhIHJlaW5zY2huZWllbi4uLk9iIG51biBkaWUgYmVzdGUgUGl6emEgaW4gU2FuCm1hbG8gb2RlciBkZXIgd3VuZGVyc2Nob2Vuc3RlIENhbXBpbmdwbGF0eiBpbiBRdWltcGVyLCBvYiBkaWUKTmVnYXRpdmVyZmFocnVuZ2VuIGF1cyBCcmVzdCBvZGVyIHdhcyBFdWNoIGF1Y2ggaW1tZXIgZWluZmFlbGx0LiBCdWNodGlwcyB1bmQKYWxsZXMgYW5kZXJlIHNpbmQgd2lsbGtvbW1lbi4KCkljaCBsYXNzIG1pY2ggbWFsIHVlYmVycmFzY2hlbi4gRnVlciBhbGxlIGhpbGZyZWljaGVuIFRyaXR0ZSBnaWJ0cyBhdWNoIGVpbgprYWVydGNoZW4gYXVzbSBVcmxhdWIuLi5hYmVyIGVyc3QgZW5kZSBBdWd1c3QgLSBzbyBsYW5nIGlzdCBkYXMgbm9jaCBoaW4uCgpFaW4gbGllYmVyIEtudWRkZWxkYW5rIHZvcmFiIHZvbiBTIEUgTSBJIFIgQQpXdWFoLCB3YXMgc2luZCBkYSBUeXBvcyBkcmluLi4uYWJlciBpY2ggc2NocmVpYiBkYXMgamV0enQgbmljaHQgbm9jaG1hbCA6KVtICgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXNsYW5kdXJsdWIgKFJpa3VzLCAxNy4gQXByIDE5OTYsIDAxOjMxOjI5KToKSGksCgpXaXIgd29sbHRlbiBkaWVzZW4gU29tbWVyIChKdWxpKSBmdWVyIHJlaWNobGljaCAzIFdvY2hlbiBJc2xhbmR1cmxhdWIKbWFjaGVuLiBMZWlkZXIgc3ByYW5nZW4gMiB2b24gdW5zIDUgYXVzIGRpdmVyc2VuIEdydWVuZGVuIGFiLiBXaWUKd2lyIGplZG9jaCB1ZWJlcnNjaGxhZ3NtYWVzc2lnIGVybWl0dGVsdCBoYWJlbiwgc2luZCBkaWUgS29zdGVuIHBybyBQZXJzb24KYmVpIDUgTGV1dGVuIHJ1bmQgMzAwMCBETSwgenUgZHJpdHQgYWxzbyB6dSBleHBlbnNpdi4gV2lyIGhhYmVuIHZvciwgZG9ydAplaW4gQXV0byAoZ2VsYWVuZGVnYWVuZ2lnKSB6dSBtaWV0ZW4gdW5kIHp1IHplbHRlbi4gWmVsdGUgc2luZCBnZW51ZWdlbmQKdm9yaGFuZGVuLgpOdW4gbWVpbmUgRnJhZ2U6IFdlciBoYXQgTHVzdCwgbWl0IHVucyBtaXR6dWtvbW1lbj8gRWdhbCBvYiBEdSBhbGxlaW5lIGJpc3QKb2RlciBvYiBpaHIgMiBzZWlkLgpadSB1bnMsIHdpciBrb21tZW4gdm9uIGRlciBDaGVtbml0emVyIFVuaSB1bmQgc2luZCB6d2lzY2hlbiAyNSB1bmQgMjggSmFocmUKYWx0LgoKQmVpIEludGVyZXNzZSBvZGVyIHdlaXRlcmVuIEZyYWdlbiBiaXR0ZSBtYWlsIGFuIG1laW5lIEVtYWlsYWRyZXNzZS4KRGFzIGlzdDogcmVpdHpAZS10ZWNobmlrLnR1LWNoZW1uaXR6LmRlCgpCZXN0ZW4gRGFuaywgUmlrdXMKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2hudW5nIGdlc3VjaHQgISAoQXJvbWJvbG9zY2gsIDE4LiBBcHIgMTk5NiwgMTM6NDQ6MzApOgpJY2ggc3VjaGUgZWluZSBzY2hudWNrZWxpZ2UsIGZldWVyZmVzdGUgOy0pIFdvaG51bmcgaW4gVHVlYmluZ2VuLCBiaXMgbWF4Lgo2MDAgd2FybS4gRmFsbHMgaXJnZW5kamVtYW5kIGNvbm5leGlvbnMgaGFiZW4gc29sbHRlLCBiaXR0ZSBtYWlsIGFuIG1pY2ggOi0pLgoKQXJvbWJvbG9zY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRFUiBJUlJFIFdFTFRSQVVQUk9MRVQgKERpV3ApIGlzdCBkYSAhISEgKE51ZGVpLCAyMi4gQXByIDE5OTYsIDEwOjA1OjE5KToKTGllYmUgTGVzZXIgdW5kIFJpbm5lbiwgTXVkZGVyIHVuZCBEaW5uZW4hISEKCkVzIGlzdCB3aWVkZXIgZWlubWFsIHNvd2VpdCwga2VpbmUgbm9jaCBzbyB1bnNhZWdsaWNoZW4gU3RyZWl0aWdrZWl0ZW4gbWl0CmRlbSBTcGFycGFrZXQgaGFiZW4gdW5zIGRhdm9uIGFiaGFsdGVuIGtvZW5uZW46CgpERVIgSVJSRSBXRUxUUkFVTVBST0xFVCAoQXByaWxhdXNnYWJlKSBpc3QgZGEhISEKClJlY2h0emVpdGlnIHp1bSBnZWJ1cnRzdGFnIGRlcyBIZXJhdXNnZWJlcnMgd2FydGVuIHdpciBkaWVzbWFsIHdpZWRlciBtaXQKZWluZXIgRnVlbGxlIHZvbiBiYWhuYnJlY2hlbmRlbiBBcnRpa2VsIGF1ZjoKCkRpZSBBYmVudGV1ZXIgZGVzIGp1bmdlbiBCZW9ocnJpbmdlciBZcmIgYXVmIGRlciBLcmFldXRlcnN1Y2hlLi4uCgpFaW4gbmV1ZXMga2FwaXRlbCBtaXQgS2VwdG4gU2NodXJsIHVuZCBzZWluZW4gQm90dGxidWFtIHZvbiBkZXIgU3BhY2Vib3R0bC4uLgoKRGVyIHZpZXJ0ZSB1bmQgdm9ybGV0enRlIFRlaWwgZGVyIFBha2VuZGVuIFRldHJhbG9naWUgQmFsZHVpbiB2b24gYmFsZGFjaGluLApFcnptYWd1cyB1bmQgQmVoZXJyc2NoZXIgZGVyIE1hZ2llLi4uCgpFaW4gYmVtZXJrZW5zd2VydGVyIEVpbnRhcmcgaW4gZGllIGdlaGVpbWVuIFp1c2F0enByb3Rva29sbGUgZGVyClN0YWR0Y2hyb25pa2VuIHZvbiBWb2xnYXIsIHZvcmdlbm9tbWVuIHZvbiBIeXJvbmltdXMgZGVtIFppdHRyaWdlbiwgZ2VnYW5udApkZXIgQ0hST05JU1QuLi4KClNjaGxpZXNzbGljaCBlaW4gdW52ZXJ6aWNodGJhcmVyIEJlc3RhbmR0ZWlsIGplZ2xpY2hlcgpSb2xsZW5zcGllbGNoYXJha3RlcmlzaWVydW5nOiBkaWUgU2NodWhncm9lc3NlLi4uCgoKVmllbGVzIHdlaXRlcmUgbm9jaCBpbSBEaVdwIChBcHJpbCAnOTYpCgoKaGV1dGUgbm9jaGdyYXRpcyBQcm9iZWV4ZW1wbGFyIGFuZm9yZGVybiBiZWkKCk51ZGVpLCBTY2hyaWZ0bGVpdHVuZyBEaVdwCgpQUzogRnVlciBhbGxlIHdlaWV0cmVuIEF1c2dhYmVuIGZhbGxlbiBhdWNoIG51ciBQb3J0b2tvc3RlbiBhbiwgZC5oLiBlciBpc3QKc28gZ3V0IHdpZSBHUkFUSVMhISFcCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdvaG51bmcgZ2VzdWNodCAhIChHd3lud2FpdGVyLCAyMy4gQXByIDE5OTYsIDEyOjEzOjQ1KToKfiMhIHJuPUFyb21ib2xvc2NoIHJ0PTgyOTgyNzg3MAp+IyEgdGlkPTgyOTgyNzg3MAo1MzAsLSBhbGxlcyBpbmtsdXNpdmUgZnVlciBncm9zc2VzIFppbW1lciBpbiBXRz8gNjE2NzAgdW5kIG5hY2ggZGVtIFppbW1lcgpmcmFnZW4uLi4gR3J1c3MsIEd3eW4vV0dXCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VwZXJzb25kZXJhbmdlYm90ISAoSmFzcGVyLCAyNC4gQXByIDE5OTYsIDE0OjQ3OjM0KToKfiMhIHJuPVBoeWdvcyBydD04MzAzNDYwNzAKfiMhIHRpZD04MzAzNDYwNzAKZGFzIGlzdCBkb2NoIHdvaGwgZWluIHNjaGVyegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTUVUVyAoTGksIDI0LiBBcHIgMTk5NiwgMTU6MDc6MTUpOgpIaSEKSXJnZW5kamVtYW5kIGhpZXIsIGRlciBkYXMgU3BpZWwgTWlkZGxlLUVhcnRoOiBUaGUgV2l6YXJkcyBzYW1tZWx0PwpTdWNoZSBub2NoIGplbWFuZGVuIHp1bSBUYXVzY2hlbiB2b24gS2FydGVuIHVuZCBFcmZhaHJ1bmdlbi4KQWNoIGphLCBpY2ggbWVpbmUgZGllIExpbWl0ZWQgRWRpdGlvbi4uLgpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1FVFcgKFllbmRpLCAyOS4gQXByIDE5OTYsIDEyOjA4OjQ5KToKfiMhIHJuPUxpIHJ0PTgzMDM1MTIzNQp+IyEgdGlkPTgzMDM1MTIzNQoKSWNoIGtlbm5lIGVpbmVuIGluIE11ZW5zdGVyLCBkZXIgZGFzIE1FLVRDRyBzYW1tZWx0LgpVbmQgd2lyIGhhYmVuIG5vY2ggZWluIHBhYXIgRGlzcGxheXMgaW0gTGFnZXIsIGZhbGxzIER1IGtlaW5lIG1laHIga3JpZWdzdC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN1Y2hlIFRyYXZlbGxlciBNYXRlcmlhbCAoQ2F1bm8sIDI5LiBBcHIgMTk5NiwgMTI6MTQ6MzQpOgoKSWNoIHZlcnN1Y2hzIGhpZXIgbm9jaG1hbCwgZmFsbHMgc29jaGUvZmluZGUgbmljaHQgc28gdmllbGUgbGVzZW46CkljaCBzdWNoZSBNYXRlcmlhbCB6dW0gVHJhdmVsbGVyLVJvbGxlbnNwaWVsLiBEYSBkZXIgSGF1cHR2ZXJsYWcgcGxhZWl0ZSBpc3QsCmlzdCBkaWUgZ3Jvc3NlIEZyYWdlLCB3byBpY2ggbm9jaCBhZWx0ZXJlIEJ1ZWNoZXIgaGVyYmVrb21tZS4KV2VubiBqZW1hbmQgZWluZSBBZHJlc3NlIGtlbm50LCB3byBtYW4gZXZlbnR1ZWxsIG5vY2ggd2VsY2hlIGJla29tbWVuIGthbm4sCmJpdHRlIG1haWwgZXIvc2llIG1pciB6dSEKCgkJCQkJCUMuIE5vCgkJCQkJCWhpbGZlc3VjaGVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJvbGxlbnNwaWVsc2FjaGVuIHp1bSB3ZWd3ZXJmZW4uLi4gKFB1bWEsIDMwLiBBcHIgMTk5NiwgMTc6NTg6MjMpOgpIYWxsbyBMZXV0ZSwKClZpZWxsZWljaHQgaW50ZXJlc3NpZXJ0IGVzIGphIGRlbiBlaW5lbiBvZGVyIGFuZGVyZW4gaGllci4gSWNoIHppZWhlIG1hbAp3aWVkZXIgdW0sIHVuZCB3aWxsIGVpbmUgZ2FuemUgTWVuZ2UgUm9sbGVuc3BpZWwtR2VydWVtcGVsIGxvc3dlcmRlbi4KCkKBY2hlcjoKICBUYWxpc2xhbnRhLCBSZWdlbGJ1Y2ggKGVuZ2wuLCBTQykxCiAgUGFsbGFkaXVtIFJQRywgUmVnZWxidWNoIChlbmdsLiwgU0MpCiAgVGVlbmFnZSBNdXRhbnQgTmluamEgVHVydGxlcywgUmVnZWxidWNoIChlbmdsLiwgU0MpCiAgTGVnaW9ubmFpcmUgUlBHLCBSZWdlbGJ1Y2ggKGVuZ2wuLCBTQykxCiAgSmFtZXMgQm9uZCBCYXNpYyBHYW1lLCBSZWdlbGJ1Y2ggKGVuZ2wuLCBTQykKICAgIGRhenU6IFEtTWFudWFsLCBTdXBwbGVtZW50IChlbmdsLiwgU0MpCiAgUmlmdHMgUlBHLCBSZWdlbGJ1Y2ggKGVuZ2wuLCBTQykKICBDeXBlcnB1bmsgUlBHLCBSZWdlbGJ1Y2ggKGR0LiwgU0MpCiAgQUQmRCBNTTEgJjIsIERNRyAmIFBIICgxc3QgRWQuLCBkdC4sIEhDKQogIFBlbmRyYWdvbiAoZHQuLCBTQykKICBCYXR0ZVRlY2ggSGFyZHdhcmUtSGFuZGJ1Y2ggMzAyNSAoZHQuLCBTQykxCiAgQmF0dGxlVGVjaCAyMCBZZWFyIFVwZGF0ZSAoZW5nbC4sIFNDKQogIFRyYXZlbGxlciBJICYgSUkgKGR0LiwgU0MpMQoKU2hhZG93cnVuLU1hdGVyaWFsIChhbGxlcyAxc3QgRWQuLCBlbmdsLikKU291cmNlYm9va3M6CiAgU3ByYXdsIFNpdGVzLCBWaXJ0dWFsIFJlYWxpdGllcywgU2VhdHRsZSBTb3VyY2Vib29rLCBTaGFkb3dCZWF0CiAgU3RyZWV0IFNhbXVyYWkgQ2F0YWxvZywgVGhlIEdyaW1vaXJlCkFiZW50ZXVlcjoKICBIYXJsZXF1aW4sIFRoZSBVbml2ZXJzYWwgQnJvdGhlcmhvb2QsIFRvdGFsIEVjbGlwc2UKCkJveGVuOgogIE1FUlMgKGR0LikKICBBZnRlcm1hdGggUlBHIChlbmdsLikyCiAgVG9wIFNlY3JldCAoMm5kIEVkLiwgZW5nbC4pCiAgVGltZU1hc3RlciBSUEcgKGVuZ2wuKQogIFJvbGVtYXN0ZXIgKDFzdCBFZC4sIGVuZ2wpCiAgU3BhY2VtYXN0ZXIgKDFzdCBFZC4sIGVuZ2wpCiAgU3R1cm1icmluZ2VyIChkdC4pCiAgU3RhclRyZWsgUlBHIChlbmdsLikKICBTdGVybmVuZ2FyZGUgKGR0LikyCiAgREMtSGVyb2VzIChlbmdsLikKICBCdWNrIFJvZ2VycyBSUEcgKGVuZ2wuKQogIEp1c3RpY2UgSW5jLiAoZW5nbC4pMgogIFRPUkcgKGVuZ2wuKQogIE1FUlAgKDFzdCBFZC4sIGVuZ2wuLCAiZGllIHJvdGUgQm94IiAoZoFyIFNhbW1sZXIpKTIKCkJyZXR0c3BpZWxlOgogIExldmlhdGhhbiAoZW5nbC4pMgogIENlbnR1cmlvbiAoMm5kIEVkLiwgZW5nbC4pCiAgQmF0dGxlVGVjaCAmIENpdHlUZWNoICgxc3QgRWQuLCBkdC4pMgogIE1hZ2ljIFJlYWxtIChlbmdsLikKClRTUiBBRCZEIHVuZCBEJkQtTWF0ZXJpYWw6Ck1vZHVsZSwgRXJ3ZWl0ZXJ1bmdlbiAoYWxsZXMgMm5kIEVkLiwgZW5nbC4pLCBldGMuOgogIFNKQSAxLTQsIFNKUiAxKzIsIEZSQSAxLTMsIFQgMS00LCBXRyA3KzgsIEZSQzIsIFJFRjUKQm94ZW46CiAgUmF2ZW5sb2Z0LCBGb3Jnb3R0ZW4gUmVhbG1zICgxc3QgRWQuKSwgQ2l0eSBTeXN0ZW0sIFRoZSBIb3JkZSwKICBNYXp0aWNhLCBTcGVsbGphbW1lciAtIEFkdmVudHVyZXMgaW50byB0aGUgVW5rbm93biwgVGhlIExlZ2VuZAogIG9mIFNwZWxsamFtbWVyLCBUaGUgQ2l0eSBvZiBHcmV5aGF3aywgVGltZSBvZiB0aGUgRHJhZ29ucywKICBEYXduIG9mIHRoZSBFbXBlcm9ycywgVGhlIEhvbGxvdyBXb3JsZAoKCkFsbGVzLCB3YXMgaWNoIGRhZnVlciBtb2VjaHRlLCBzaW5kIGRpZSBQb3J0b2tvc3RlbiB1bmQgZWluZSBTcGVuZGUgZnVlcgptZWluZQpuYWVjaHN0ZSBHVy1CZXN0ZWxsdW5nLi4gOi0pCgpHcnVlc3NpbmdzLAoKUHVtYQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJY2ggaGFiIGlobiEhIDspIChBbGluZSwgMzAuIEFwciAxOTk2LCAxODozMTo1MCk6CgpvZGVyIGVyIG1pY2ggOigKCkFsaW5lIGRlbmt0IC4gbyBPIChXaWUgbWFuIGVzIG5pbW10LikKClRqYSB1bnNlcmUgc2Nob2VuZSBWZXJsb2J1bmdzemVpdCBoYXQgbnVuIGJhbGQgZWluIEVuZGUuIERhcyBiZWRldXRldDoKCkRpZSBFbWFuemUgdW5kIGRlciBEcmFjaGVucmVpdGVyIGhlaXJhdGVuISEhISEhIQoKRGllIFRyYXV1bmcgZmluZGV0LCBzbyBXYXJnb25zIEdvZXR0ZXIgd29sbGVuIGFtIDIuIE1haSB1bSAxNS4wMCBVaHIKYW0gQWx0YXIgYmVpIGRlbiBGZXVlcmdlaXN0ZXJuIGltIEx1cGluZW50YWwgc3RhdHQuIEVpbmdlbGFkZW4gc2luZAphbGxlIGRpZSBrb21tZW4uIDopCgpHbHVlY2t3dWVuc2NoZSB1bmQgQmVpbGVpZHNiZWt1bmR1bmdlbiBiaXR0ZSBhbiBXYXJnb24gOykKCkFsaW5lIChpbW1lciBub2NoIEVtYW56ZSEhISkKClAuUy46IERpZSBIb2NoemVpdCB3aXJkIG1pdCBkZXIgVHJhdXVuZ3N6ZXJlbW9uaWUgZGVyIEtsZXJpa2VyIGFiZ2VoYWx0ZW4hClAuUC5TOiBEaWUgS2xlcmlrZXItR2lsZGUgd2lyZCBkYW5uIHdhaHJzY2hlaW5saWNoIGF1Y2ggYmFsZCBhbmdlc2NobG9zc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9yYW5rdWVuZGlndW5nIChHcmltbWJvcm4sICA2LiBNYWkgMTk5NiwgMTM6MDA6NTEpOgoKSWNoIHdvbGx0ZSBzY2hvbm1hbCB2b3JtZXJrZW4sIGRhc3MgaWNoIGluIHJ1bmQgendlaSBXb2NoZW4gKHdlbm4gZ2V3aXNzZQpMZXV0ZSB3aWVkZXIgZGEgc2luZCkgZWluIGluIG1laW5lbSBCZXNpdHogYmVmaW5kbGljaGVzIE9iamVrdCBnZWdlbgpIb2VjaHN0Z2Vib3QgdmVyc3RlaWdlcm4gd2VyZGUuIFdlaXRlcmVzIHdpcmQgbm9jaCBuaWNodCB2ZXJyYXRlbiAoenVtaW5kZXN0Cm5pY2h0IHZvbiBtaXIsIGJldHRlbG4gendlY2tsb3MhKSwgYWJlciB1ZWJlcmxlZ3QgZXVjaCBzY2hvbm1hbCBhdHRyYWt0aXZlCkdlYm90ZS4gR2VsZCBpc3QgendlY2tsb3MgKHdlbmlnc3RlbnMgTUctTXVlbnplbiksIGRhdm9uIGhhYiBpY2ggc292aWVsIGljaAp3aWxsLi4uCgpHcmltbWJvcm4gZGVyIGdlaGVpbW5pc3ZvbGxlIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhbnpwYXJ0bmVyIGdlc3VjaHQgISAoTWV0YSwgIDcuIE1haSAxOTk2LCAxNTo1MTowMyk6CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKSGkgISA6LSkKIEljaCBzdWNoZSBlaW5lbiBUYW56cGFydG5lciBmdWVyIGVpbmVuIEYgVGFuemt1cnMgU3RhbmRhcnQgLwpHZXNlbGxzY2hhZnRzdGFuegp2b20gSG9jaHNjaHVsc3BvcnQgaW4gTXVlbnN0ZXIuCkRBcyBLdXJzbml2ZWF1IGlzdCBuaWVkcmlnICwgYWxsZSBHUnVuZHNjaHJpdHRlIHdlcmRlbiBlcnN0IHdpZWRlcmhvbHQgLApiZXZvcgp3YXMgbmV1ZXMgZGF6dSBrb21tdC4KRGVyIEt1cnMgaXN0IE1pdHR3b2NocyB2b24gMTguMzAgIC0gMTkuMzUgb2RlciAxOS40MCAtIDIwLjQ1ICAsIHdpciBoYWJlbiBkaWUKV2FobC4KRGVyIG5hZWNoc3RlIFRlcm1pbiBpc3Qgc2Nob24gTWl0dHdvY2ggZGVyIDguIE1haSBhbHNvIGRpZXNlIFdvY2hlIG5vY2guCk1haWwgZWluZmFjaCBhbiBrYXJvZm9lQG1hdGgudW5pLW11ZW5zdGVyLmRlCgpDaWFvIE1ldGEgOi0pCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZSBCdXR0b24gKFJhZmZpLCAgOS4gTWFpIDE5OTYsIDIwOjM1OjU4KToKClN1Y2hlIERyaW5nZW5kIGVpbmVuICBDYXQqIGZvciBzaGVyaWZmIC0gQnV0dG9uCgpCaW4gYmVyZWl0IGZ1ZXIgZWluZW4gT3JpZ2luYWxidXR0ZW4gMTAuMDAwIE11ZW56ZW4gYW4gZWluZW4gU3BpZWxlciB6dQp6YWhsZW4uCgpBbiBld2FpZ2VuIGFuZGVyZW4gV2FobGl0ZW1zIGRpZSBub2NoIHJ1bWZsaWVnZW4gYmluIGljaCBhdWNoIGludGVyZXNzaWVydC4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCAoQ3JvbGxhLCAxMS4gTWFpIDE5OTYsIDE3OjQ4OjU0KToKRW5kbGljaCBpc3QgZXMgc28gd2VpdDoKCkphbmljZSB1bmQgaWNoIGhlaXJhdGVuIQoKQWxsZSwgZGllIGludGVyZXNzaWVydCBzaW5kLCBzaW5kIGhlcnpsaWNoIGVpbmdlbGFkZW4sIGRlciBaZXJlbW9uaWUKYmVpenV3b2huZW4gYW0KCk1vbnRhZywgMTMuIE1haSB1bSAxOTowMCBpbiBTY2hydW1wZmlzIEdydWZ0IQoKQmVuZGVpZ2lkIHdpcmQgZGllIFRyYXV1bmcgYWJoYWx0ZW4uCgpDcm9sbGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoU2NocnVtcGZpLCAxMS4gTWFpIDE5OTYsIDE5OjI3OjMwKToKfiMhIHJuPUNyb2xsYSBydD04MzE4Mjk3MzQKfiMhIHRpZD04MzE4Mjk3MzQKRGEgd3VlbnNjaCBpY2ggRXVjaCBkb2NoIGdsYXR0IG1hbCBhbGxlcyBHdXRlISA6LSkKClNjaHJ1bXBmaSBiZXdpcmZ0IEphbmljZSB1bmQgQ3JvbGxhIG1pdCBCbHVtZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoR3V5YnJ1c2gsIDExLiBNYWkgMTk5NiwgMjM6MTM6MzApOgp+IyEgcm49Q3JvbGxhIHJ0PTgzMTgyOTczNAp+IyEgdGlkPTgzMTgyOTczNApIbSwgaWNoIHNlaCBkYSBudXIgZWluIFByb2JsZW0gOikKV2VyIHNldHp0IGV1Y2ggYXVmIGhldGVybz8gOykKCkd1eWJydXNoLCBrZW5udCBzb2xjaGUgUHJvYmxlbWUgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhvY2h6ZWl0IChBc21vZGlzLCAxMi4gTWFpIDE5OTYsIDAzOjIyOjA0KToKfiMhIHJuPUd1eWJydXNoIHJ0PTgzMTg0OTIxMAp+IyEgdGlkPTgzMTgyOTczNApNZWluIFByaWVzdGVyIGtvZW5udGUgc2llIHRyYXVlbiwgZGEgc3BpZWx0IGRhcyBHZXNjaGxlY2h0IGtlaW5lIFJvbGxlIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZXplcHRlIChaZXBoeXIsIDE1LiBNYWkgMTk5NiwgMTI6NTY6MTMpOgpIaSBJaHJzIQoKV2VubiBpcmdlbmRqZW1hbmQgTHVzdCBoYXQsIHNpY2ggYW4gZWluZW0gUmV6ZXB0LUtldHRlbmJyaWVmCnp1IGJldGVpbGlnZW4gKEJyaWVmIGFuIDYgUGVyc29uZW4sIDIgUGVyc29uZW4gYXVmIGRlciBSZXplcHQtClZlcnRlaWxlcmxpc3RlKSwgbW9lZ2UgZXIgbWlyIGRvY2ggYml0dGUgZWluZSBrdXJ6ZSBtYWlsIApzY2hpY2tlbiA6KQoKWmVwaHlyLCBzdWNodCBub2NoIEFkcmVzc2VuIGZ1ZXIgZGVuIEJyaWVmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIVE1MLUVkaXRvcmVuIChDaGljb2xhLCAxOS4gTWFpIDE5OTYsIDE3OjA5OjI2KToKSFVIVSA6KQpJY2ggbXVzcyBkZW1uYWVjaHN0IGVpbmVuIFZvcnRyYWcgdWViZXIgSFRNTC1FZGl0b3JlbiBoYWx0ZW4uIEthbm4gbWlyIGplbWFuZApkYXp1IGVpbiBwYWFyIEhpbndlaXNlLCBOZXdzIG9kZXIgUXVlbGxlbiBuZW5uZW4gPz8KRGFua2UgOykpKQpDaGljb2xhIGlzdCBuaWUgZmxlaXNzaWcgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIVE1MLUVkaXRvcmVuIChaYXJkb3osIDIwLiBNYWkgMTk5NiwgMTM6MTI6MzcpOgp+IyEgcm49Q2hpY29sYSBydD04MzI1MTg1NjYKfiMhIHRpZD04MzI1MTg1NjYKRnJhZyBlaW5mYWNoIERyLiBodG1sIFJ5bmUgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTdWNoZSBCdXR0b24gKEd3eW53YWl0ZXIsIDIwLiBNYWkgMTk5NiwgMjA6MjI6MjgpOgp+IyEgcm49UmFmZmkgcnQ9ODMxNjY2OTU4Cn4jISB0aWQ9ODMxNjY2OTU4CkhpLApOYWhjaGRlbSBkaWVzZSBEaW5nZSBqZXR6dCBhbHMgQ29sbGVjdG9yJ3MgSXRlbXMgZ2VzY2hhZXR6dCB3ZXJkZW4sIGdlYmUgaWNoCmJla2FubnQsIGRhc3MgaWNoIG5vY2ggZWluIENhdCogRmFlaG5jaGVuIGhhYmUgKHZvbiBkZW0gaWNoIG1pY2ggbnVyIHVuZ2Vybgp0cmVubmVuIHd1ZXJkZSkuIAogICBEYSBpY2gga2VpbmUgTXVlbnplbiBkYWZ1ZXIgYmV6YWhsdCBoYWJlLCBuZWhtZQppY2ggYXVjaCBhdWNoIGtlaW5lIG11ZW56ZW4gZGFmdWVyIGltIFRhdXNjaC4KQWxsZXJkaW5ncyB2aWVsbGVpY2h0IGVpbmVuIEstUmluZz8gTWFsIHNlaGVuaC4uLgpHcnVzcyAoQXJnaGwuIE1pc3QtRWRpdG9yIGljaCBzZWggbmljaHQgd2FzIGljaCBzY2hyZWliZSksIHRyb3R6IG9kZXIgd2VnZW4KdGYpCgpHd3luKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXIgS2FuYWwgISAoT2V0dGksIDIxLiBNYWkgMTk5NiwgMTI6MzU6MTkpOgpBbmFyY2hpZSAhCgpEZXIgbmV1ZSBLYW5hbCwgU2lubmxvcywgSGVtbXVuZ3Nsb3MsIEhpcm5sb3MsIFNjaGFtbG9zLCBIYWFybG9zLApKYWhyZXNsb3MsIFdvIGJsb3NzLCBpbiBkaWVzZW0gTXVkLCAtQW5hcmNoaWUrLCB1bmQgYXVjaCBEVSBiaXN0IGRhYmVpLgoKRHVtbWVzIEdlc2Nod2FldHosIExhbmd3ZWlsaWdlcyBHZWZhc2VsLCB3ZW5uIERpciBkYXMgd2FzIHNhZ3QuLi4Kc2VpIGRhYmVpLCBBbmFyY2hpZSwgbnVyIGVjaHQgbWl0IGRpZXNlbSBaZWljaGVuIChBKSwgdW5kIGluIGRpZXNlciAKVmVycGFja3VuZy4uLmVoaGhoCgpBaCBpaHIga29lbm50IG1pY2ggZG9jaCBhbGxlLi4uCgpPZXR0bAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmx1Z2JsYXR0IChaYXJkb3osIDIxLiBNYWkgMTk5NiwgMTM6NDA6NDEpOgoKRGllIGFudGllcnptYWdpZXJpc3Rpc2NoZW4gWmVsbGVuIHZlcmt1ZW5kZW46CgpEaWUgTWl0Z2xpZWRlcklubmVuIGRlciBhbnRpZXJ6bWFnaWVyaXN0aXNjaGVuIFplbGxlbiBzaW5kIHp1IGRlbSBTY2hsdXNzCmdla29tbWVuLCBkYXNzIGVzIFplaXQgd2lyZCwgbWl0IGRlbSB2ZXJzdGF1YnRlbiBTeXN0ZW0gc2NobHVzcyB6dSBtYWNoZW4KdW5kIGRpZSBtYWNodGdlaWxlbiBFcnptYWdpZXIgenUgZW50bWFjaHRlbi4gQXVzIGRpZXNlbSBHcnVuZGUgc29sbGVuIHNpY2gKYWxsZSBHZW5vc3Nlbi9HZW5vc3NpbmVuIGF1ZiBkZW0gQW5hcmNoaWUtS2FuYWwgdmVyc2FtbWVsbiB1bSBkaWUgbmFlY2hzdGVuCkFrdGlvbmVuIHp1IGJlcmF0c2NobGFnZW4uIFdlciBha3RpdiBtaXRtYWNoZW4gd2lsbCwga2FubiBzaWNoIGF1Y2ggYmVpbQpLb21tYW5kbyAnR2VyZWNodGlna2VpdCBmdWVyIE9ldHRpLCBsb2VzY2h0IENhdHdlYXpsZScgbWVsZGVuLgoKClJvdGVyIFN0ZXJuIFouCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmx1Z2JsYXR0IChMaG9zd2FsZCwgMjEuIE1haSAxOTk2LCAxNjowMjoyOCk6Cn4jISBybj1aYXJkb3ogcnQ9ODMyNjc4ODQxCn4jISB0aWQ9ODMyNjc4ODQxCgpBdSBqYSwgaWNoIGJpbiBkYWJlaSEKCkwuIEguIE9zd2FscwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFyaXggPz8gKEphc3BlciwgMjEuIE1haSAxOTk2LCAxODoyMTo1MCk6Cktlbm50IHNpY2ggamVtYW5kIG1pdCBQYXJpeCBhdXMgYnp3LiBtaXQgQ0RMID8/Pz8KCgpKYXNwZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRmx1Z2JsYXR0IChHYXN0MSwgMjIuIE1haSAxOTk2LCAwMDoxNjoxNSk6Cn4jISBybj1MaG9zd2FsZCBydD04MzI2ODczNDgKfiMhIHRpZD04MzI2Nzg4NDEKCkt1c2NoIERpY2ggR3VsZHUgLSBEdSBXb2xwaXNjaGFlbmRlciEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnRlcm5ldC1BZHJlc3NlbiAoSmFyaWVsLCAyMi4gTWFpIDE5OTYsIDE0OjI4OjA2KToKCkhpIQpJY2ggYmluIGF1ZiBkZXIgU3VjaGUgbmFjaCBJbnRlcm5ldGFkcmVzc2VuIHVuZCBIVE1MLVNlaXRlbiB6dSBkZW4gVGhlbWVuCk5ldXJvbmFsZSBOZXR6ZSB1bmQga3VlbnN0bGljaGUgSW50ZWxpZ2VueiBzb3dpZSBFeHBlcnRlbnN5c3RlbWUuCldlbm4gZWluZXIgdm9uIEV1Y2ggZGEgZWluZSBJbmZvIGhhdCwgc2NoaWNrdCBzaWUgbWlyIGRvY2ggYml0dGUgYWxzIG1haWwuCgoKSmFyaWVsIC0gZXdpZyBkYW5rYmFyIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZXJuZXQtQWRyZXNzZW4gKEphc3BlciwgMjIuIE1haSAxOTk2LCAxNDozNDowMik6Cn4jISBybj1KYXJpZWwgcnQ9ODMyNzY4MDg2Cn4jISB0aWQ9ODMyNzY4MDg2CnZlcnN1Y2hzIG1hbCBtaXQgbmV0c2VhcmNoLCBkYW5ubiBmaW5kZXN0IGR1IG1laHIgYWRyZXNzZW4genUgZGVuIHRoZW1lbiBhbHMKZHUgZGlyIGFuc2NoYXVlbiB3aWxsc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEludGVybmV0LUFkcmVzc2VuIChIaWdobGFuZGVyLCAyMi4gTWFpIDE5OTYsIDE0OjM3OjE2KToKfiMhIHJuPUphc3BlciBydD04MzI3Njg0NDIKfiMhIHRpZD04MzI3NjgwODYKR2VuYXUgOj4gICAgY2xpY2sgQ29tcHV0aW5nLCBjbGljayBDb21wdXRlciBTY2llbmNlIC12b2lsYS4KU2Nob24gZGVyIGVyc3RlIFB1bmt0IGhlaXNzdCBBcnRpZmljaWFsIEludGVsbGlnZW5jZS4KWnUgZGVuIGFuZGVyZW4gU2FjaGVuIHNvbGx0ZSBlcyBhdWNoIGtlaW4gUHJvYmxlbSBzZWluLCB3YXMgenUgZmluZGVuLgogICBTZW5mIHp1LAogICAgSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJbnRlcm5ldC1BZHJlc3NlbiAoR3JpbW1ib3JuLCAyMi4gTWFpIDE5OTYsIDE3OjEwOjE2KToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9ODMyNzY4NjM2Cn4jISB0aWQ9ODMyNzY4MDg2CgpNYWNoIERpciBhYmVyIEdlZGFua2VuLCB3YXMgZGFzIGVpZ2VudGxpY2ggSVNULCB3YXMgRHUgZGEgc3VjaHN0LiAKSWNoIG1laW5lLCBrdWVuc3RsaWNoZSBJbnRlbGxpZ2VueiBzY2hvZW4gdW5kIGd1dCwgaWNoIGJpbiBpbW1lciBub2NoIGF1ZiBkZXIKU3VjaGUgbmFjaCBuYXR1ZXJsaWNoZXIgSW50ZWxsaWdlbnogKGF1c3NlciBkZXIgbWVpbmVuLCBuYXR1ZXJsaWNoKS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdC4gR2ZydXN0ZXQsIHdlaWwgZGllc2VyIGt1ZW5zdGxpY2ggYmxvZWRlIEdEIG5pY2h0IHNvCndpbGwgd2llIGVyIG5hY2ggZGVyIG5hdHVlcmxpY2ggaW50ZWxsaWdlbnRlbiBNZWludW5nIGRlcyBWZXJmYXNzZXJzIHNvbGx0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEludGVybmV0LUFkcmVzc2VuIChLcmV0ZWssIDIzLiBNYWkgMTk5NiwgMTk6MTc6NDcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgzMjc3NzgxNgp+IyEgdGlkPTgzMjc2ODA4NgouLi4gV29iZWkgbmF0dWVybGljaCBub2NoIGRpZSBGcmFnZSB6dSBrbGFlcmVuIHdhZXJlLCBvYiBlaGVyIGRpZQpzdGFya2Ugb2RlciBkaWUgc2Nod2FjaGUgS0kgaW50ZXJlc3NhbnQgaXN0LCBkZW5uIGF1Y2ggaGllciBzaW5kIGRpZQpLb250cm92ZXJzZW4gbmljaHQgZ2VyYWRlIGdlcmluZy4uLgoKKipsYWJlcioqCgoKS3JldGVrCkRpZXNlciBBcnRpa2VsIHd1cmRlIG1hc2NoaW5lbGwgZXJzdGVsbHQuCkVyIGlzdCBvaG5lIFNpZWdlbCBvZGVyIFVudGVyc2NocmlmdCBndWVsdGlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUFJPR0dFUiBHRVNVQ0hUIChmdWVyIFRyaW5rZ2VsZCkgKEd3eW53YWl0ZXIsIDI0LiBNYWkgMTk5NiwgMTc6MjA6MTgpOgoKV2lyIChkZXIgZ2VtZWlubnVldHppZ2UgVmVyZWluIGRlciBGcmV1bmRlIE15cmFzIFZGTSBlVikKCiAgIFNVQ0hFTiBQUk9HUkFNTUlFUkVSIC0gSU4gR05VLUMgb2RlciBBTlNJLUMKCmZ1ZXIgZGFzIG5pY2h0a29tbWVyemllbGxlIEZhbnRhc3ktQnJpZWZzcGllbCAiV2VsdCBkZXIgV2FiZW4iIChXZFcpIGF1Zgp1bnNlcmVyIFdlbHQgTVlSQS4gVW5kIHdpciBiaWV0ZW4gZWluIGd1dGVzIFRhc2NoZW5nZWxkIGFscyBCZWxvaG51bmcuCiAgIEVyc3RlbGx0IHdlcmRlbiBzb2xsIGVpbiBBdXN3ZXJ0cHJvZ3JhbW0gaW4gQywgZGFzIGF1ZiBwcmFrdGlzY2ggYWxsZW4KUGxhdHRmb3JtZW4gbGF1ZmZhZWhpZyBzZWluIHNvbGwsIGRoIEFNSUdBLCBQQy1ET1MsIE1BQywgbW9lZ2xpY2hzdCBBdGFyaSwKZGFydW0gaW4gZWluZW0gc29mb3J0IHBvcnRpZXJiYXJlbiBDb2RlIGdlc2NocmllYmVuLiAoR2V0ZXN0ZXQgd2lyZCBhdWYKQTQwMDAgdW5kIDQ4Niwgc293aWUgdW50ZXIgU2hhcGVzaGlmdGVyIChNQUMpIHVuZCBTVEVtdWxhdG9yIChBdGFyaSkgYXVmCmVpbmVtIEE0MDAwLzE2TUIuCiAgIFZvcmhhbmRlbmUgTG9lc3VuZ3NhbnNhdHplIGZ1ZXIgZGllIEthcnRlbmRhcnN0ZWxsdW5nIChlcyBzaW5kCnVlYmVyZWluYW5kZXJsaWVnZW5kZSBIZXhmZWxkZXIgbWl0IGplIGVpZ2VuZXIgTnVtbWVyaWVydW5nKSB1bmQgZGllCkhlZXJlc3ZlcndhbHR1bmcgbGllZ2VuIGZ1ZXIgQW1pZ2EgdW5kIFBDIGluIEJhc2ljIHVuZCBDIHZvciwga29lbm5lbgpnZW51dHp0IHdlcmRlbiB1bmQgd2VyZGVuIGF1ZiBXdW5zY2ggenVyIFZlcmZ1ZWd1bmcgZ2VzdGVsbHQuCgpEYSBlcyBzaWNoIHVtIGVpbiBuaWNodGtvbW1lcnppZWxsZXMgU3BpZWwgaGFuZGVsdCwga29lbm5lbiB3aXIgbmljaHQgdmllbApHZWxkIGJpZXRlbi4gRnVlciBkaWUgbGF1ZmZhZWhpZ2UgR3J1bmR2ZXJzaW9uIGJpZXRlbiB3aXIgNTAwLC1ETSAoc2llIHNvbGwKYWxzIEZyZWV3YXJlIHZlcnRlaWx0IHdlcmRlbiksIGZ1ZXIgZGllIGxhdWZmYWVoaWdlIFZvbGx2ZXJzaW9uIGJpcyB6dQoyMDAwLC1ETS4gRGllIFZvbGx2ZXJzaW9uIHNvbGwgYWxzIFNoYXJld2FyZSBvLmFlLiB2ZXJ0cmllYmVuIHdlcmRlbjsKU2hhcmV3YXJlLUVpbm5haG1lbiwgZGllIHVlYmVyIGRpZSBCZWxvaG51bmcgaGluYXVzZ2VoZW4sIHNvbGxlbiB2b2xsIGRlbQpQcm9ncmFtbWllcmVyIHp1Z3V0ZSBrb21tZW4sIHNvIGRhc3MgZXMgc2ljaCBkb3BwZWx0IGxvaG5lbiBrYW5uLgoKV2VyIG1hbCBzY2hhdWVuIHdpbGwsIHdhcyBNWVJBIGVpZ2VudGxpY2ggaXN0LCBrYW5uIGltIFdXVyBuYWNoc2NoYXVlbjoKICBodHRwOi8vd3d3Lmhyei51bmktb2xkZW5idXJnLmRlOjgxL35yb3hvbi9teXJhLmh0bWwgb2RlciAvbXlyYS1mYXEuaHRtbAoKV2VyIEludGVyZXNzZSBoYXQsIHdlbmRlIHNpY2ggYW4gRW1haWw6IG15cmFAdW5pLXR1ZWJpbmdlbi5kZQogIFdvbGZnYW5nIEcuIFdldHRhY2gsIFBvc3RmYWNoIDI3NDcsIDcyMDE3IFR1ZWJpbmdlbiwgMDcwNzEtNjAwNjI5CiAgTmV0bWFpbDogMjoyNDYvMjAxMC4yQGZpZG9uZXQgLSA0Njo5NDk3LzYwMi4wQHZuZXQgLSA1MDA6NTU3LzEuMEBzaG9ydG5ldAoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVrdGlvbiAoR3JpbW1ib3JuLCAzMC4gTWFpIDE5OTYsIDE0OjM3OjQ5KToKClNvLCBuYWNoZGVtIGljaCBkYXMgaGllciB2b3IgRXdpZ2tlaXRlbiBhbmdla3VlbmRpZ3QgaGFiZSB1bmQgbmljaHRzIGRyYXVzIApnZXdvcmRlbiBpc3QgaGllciBhbHNvIGVuZGxpY2g6CgoiVW1zdGFlbmRlaGFsYmVyIGluIGd1dGUgSGFlbmRlIGFienVnZWJlbjogQXJpZW4sIE1hZ2llcmluIGRlciAyMS4gU3R1ZmUsIApzdHViZW5yZWluLiBBYmdhYmUgbnVyIGFscyBHYW56ZXMsIGtlaW4gVGVpbHZlcmthdWYuIEFyaWVuIGlzdCB6d2FyIHdlZGVyCnBmbGVnZWxlaWNodCBub2NoIHVlYmVybWFlc3NpZyB6dXZlcmxhZXNzaWcsIGRhZnVlciBhYmVyIGF1Y2gga2VpbmUgZ3V0ZQpLb2VjaGluLiBXZWl0ZXJlIFZvcnp1ZWdlIGhlcmF1c3p1ZmluZGVuIGJsZWlidCBkZW0gS2FldWZlciB1ZWJlcmxhc3Nlbi4KQW5nZWJvdGUgaW4gTXVlbnplbiBzaW5kIHp3ZWNrbG9zLCBLcmVhdGl2aXRhZXQgaXN0IGdlZnJhZ3QuCkZyYWdlbiB1bmQgQW5nZWJvdGUgYml0dGUgcGVyIG1haWwgYW4gR3JpbW1ib3JuLiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKUC5TLiBBY2ggamEsIHN0cmVpY2h0IGRhcyAiaW4gZ3V0ZSBIYWVuZGUiIGRhIG9iZW4sIHNvbnN0IHdlcmQgaWNoIHNpZSBqYSAKICAgICBuaWUgbG9zLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXVrdGlvbiAoRnl0LCAzMS4gTWFpIDE5OTYsIDIwOjAwOjM4KToKfiMhIHJuPUdyaW1tYm9ybiBydD04MzM0NTk4NjkKfiMhIHRpZD04MzM0NTk4NjkKCk5hY2ggZGVyIEFua3VlbmRpZ3VuZyBtdWVzc3Rlc3QgRFUgZG9jaCB3YXMKZHJhdWZsZWdlbiwgR3JpbW1ib3JuLCBvZGVyPwoKRnl0LCBVbnZlcnN0YWVuZG5pcyBoZXVjaGVsbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEF1a3Rpb24gKEdyaW1tYm9ybiwgIDMuIEp1biAxOTk2LCAxMjoxODoyMSk6Cn4jISBybj1GeXQgcnQ9ODMzNTY1NjM4Cn4jISB0aWQ9ODMzNDU5ODY5CgoqcmFldXNwZXIqIEFlaG0sIGRhcyB3dWVyZCBpY2ggZGFubiBhYmVyIG5pY2h0IGdlcmFkZSBlaW4gR2VzY2hhZWZ0IG5lbm5lbiwKd2FzLCBGeXQ/CkFjaCBqYSwgZGllIEF1a3Rpb24gbGFldWZ0IG5vY2ggbmUgV2VpbGUsIHNvIGJpcyBNaXR0ZSBKdW5pIGJlc3RpbW10LiBVbmQgZXMKaXN0IG5pY2h0IG5vZXRpZyBzZWxiZXIgUHJvZ3JhbW1pZXJiZXJlY2h0aWd0IHp1IHNlaW4sIGlyZ2VuZGVpbgpQcm9ncmFtbWllcmRlcHAgaGF0IHNpY2ggbm9jaCBpbW1lciBnZWZ1bmRlbiAodW5kIHdlbm4gaWNoIGVpbmUgZ3V0ZSBJZGVlCnNlbGJlciB1bXNldHplbiBtdWVzc3RlLi4uKS4KTmF0dWVybGljaCBmcmV1ZSBpY2ggbWljaCBhdWNoIHVlYmVyIHJsLUFuZ2Vib3RlLCBzbyB3b2xsdGUgaWNoIHNjaG9uIGltbWVyCm1hbCBpbiBlaW5lbSBIZWlzc2x1ZnRiYWxsb24gZmFocmVuLiA6LSkKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQXVrdGlvbiAoU251Z2dsZSwgIDMuIEp1biAxOTk2LCAyMToxMjo1OSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODMzNzk3MTAxCn4jISB0aWQ9ODMzNDU5ODY5CmFsc28sIHdlbm4gZGFzIG5lIGF1a3Rpb24gaXN0LCBtdXNzdCBkdSB6d2lzY2hlbmR1cmNoIGF1Y2ggbWFsIGRpZSBiaXNoZXJpZ2VuCkhvZWNoc3RnZWJvdGUgYmVrYW5udCBtYWNoZW4sIGRhbWl0IHdpciB3YXMgenVtIHVlYmVyYmlldGVuIGhhYmVuIDotKQoKU251Z2dsZSwga3JpZWd0IEFyaWVuIGRhbm4gdmllbGxlaWNodCBlbmRsaWNoIGRhenUsIGlocmUgZXJzdGUgUXVlc3QKZmVydGlnenVzdGVsbGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQXVrdGlvbiAoQmVuZGVpZ2lkLCAgMy4gSnVuIDE5OTYsIDIxOjM0OjUyKToKfiMhIHJuPVNudWdnbGUgcnQ9ODMzODI5MTc5Cn4jISB0aWQ9ODMzNDU5ODY5Ck5laW4sIGtlaW5lIFp3aXNjaGVuYW5nYWJlbiEgQXVrdGlvbmVuIG1pdCBCcmllZmdlYm90ZW4gc2luZCB1ZWJsaWNoLCB1bmQgZGEKd2lyZCBhdWNoIGVyc3QgYW0gVGFnIGRlciBBdWt0aW9uIG5hY2hnZXNlaGVuLgpaJ3BhciBTZXJ2dSwKICAgICAgICAgICBCZW5kZWlnaWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEF1a3Rpb24gKFNudWdnbGUsICAzLiBKdW4gMTk5NiwgMjE6MzU6NDIpOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTgzMzgzMDQ5Mgp+IyEgdGlkPTgzMzQ1OTg2OQpOYSBkYW5uIG1hY2h0IGVyIGFiZXIgbmVuIHNjaGxlY2h0ZXJlbiBQcmVpcywgd2VubiBtYW4gbmljaHQgd2Vpc3MsIHdhcyBtYW4gCnVlYmVyYmlldGVuIG11c3MgOi0pCgp0c2NoYXVpClNudWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhdCBqZW1hbmQgbWFsICduZSBMaXN0ZT8hIChWYWxhcmlhbiwgIDQuIEp1biAxOTk2LCAxODoyMTozNyk6CkljaCBzdWNoZSBuZSBMaXN0ZSBtaXQgZGVuIGFic29sdXRlbiB1bmQgcmVsYXRpdmVuIFN0YWVuZGVuIGJlaSBkZW4gRnBzLgoKYWxzbyB3YXMga29tbXQgbmFjaCAiZ2VuYXVlciB1bXNjaGF1ZW4iIHVuZCBzby4KCkRhcyB3YWVyZSBlY2h0IG5ldHQsCgpHcnVzcyBWYWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGF0IGplbWFuZCBtYWwgJ25lIExpc3RlPyEgKEd1eWJydXNoLCAgNC4gSnVuIDE5OTYsIDIwOjA1OjA5KToKfiMhIHJuPVZhbGFyaWFuIHJ0PTgzMzkwNTI5Nwp+IyEgdGlkPTgzMzkwNTI5NwpUaXBwIGVpbmZhY2ggbWFsOiBoaWxmZSBmb3JzY2hlcnB1bmt0ZQoKR3V5cmJ1c2gsIGtuYXBwIGJlaSBLYXNzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFkYmVyZ2VuIChSYXR6LCAgNS4gSnVuIDE5OTYsIDEzOjI5OjQzKToKSGFsbG8sCmljaCBlcmt1bmRpZ2UgbWljaCBoaWVybWl0IGltIEF1ZnRyYWcgZWluZXIgQmVrYW5udGVuIHZvbiBtaXIgLCB3ZWxjaGUKRnJlaXplaXRha3Rpdml0YWV0ZW4gbWFuIGltIFVta3JlaXMgdm9uIExhZGJlcmdlbiAobmFlaGUgRmx1Z2hhZmVuCk11ZW5zdGVyL09zbmFicnVlY2spIGR1cmNoZnVlaHJlbiBrYW5uLiBBbHNvICwgd2VubiBqZW1hbmQgYXVzIGRpZXNlciBHZWdlbmQKc3RhbW10ICwgZGFubiBtYWlsdCBtaXIgZWluZmFjaC4gCkVzIHNlaSBlcndhZWhudCwgZGFzIGVzIGF1cyBiZXJ1ZmxpY2hlbiBHcnVlbmRlbiBmdWVyIG1laW5lIEJla2FubnRlIG5pY2h0Cm1vZWdsaWNoIGlzdCBzaWNoIHdlaXRlciBhbHMgei5CLiAxNSBBdXRvbWludXRlbiB2b20gRmx1Z2hhZmVuIHp1IGVudGZlcm5lbi4KTWl0IGRlciBIb2ZmbnVuZyBhdWYgZWluaWdlIEFudHdvcnRlbgpldWVyIHJhdHpmYXR6IFJhdHoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEF1a3Rpb24gKEdyaW1tYm9ybiwgIDUuIEp1biAxOTk2LCAxNjowNDoyNyk6Cn4jISBybj1TbnVnZ2xlIHJ0PTgzMzgzMDU0Mgp+IyEgdGlkPTgzMzQ1OTg2OQoKSmEsIGljaCB3ZWlzcy4gRWluZSByaWNodGlnZSBBdWt0aW9uIGluZm9ybWllcnQgaW1tZXIgdWViZXIgZGFzIGFrdHVlbGxlCkhvZWNoc3RnZWJvdC4gRGFzIGhpZXIgaXN0IGVoZXIgZWluZSBBcnQgQXVzc2NocmVpYnVuZy4KVW5kIGRhcyBaaWVsIGlzdCBmb2xnZW5kZXM6IERhIGtlaW5lciBnZW5hdSB3ZWlzcyB3YXMgZGllIGFuZGVyZW4gYmlldGVuIGdlaGVuCnNpZSBlaGVyIGFucyBMaW1pdCBhbHMgd2VubiBkYXMgR2Vib3QgaXJnZW5kd28gc3RlaGVuIGJsZWlidC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LiBHaWVyaWcgdW5kIGdld2lubm9yaWVudGllcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBdWt0aW9uIChEYXVlcmdhc3QsICA1LiBKdW4gMTk5NiwgMTY6MjI6MDUpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgzMzk4MzQ2Nwp+IyEgdGlkPTgzMzQ1OTg2OQphZWhtLCBpY2gga2FwaWVyIG1hbCB3aWVkZXIgZ2FyIG5peCAuLi4KCldhcyBpc3QgZGVubiBudW4gZWlnZW50bGljaCBlaW4gJ0FyaWVuJyBvZGVyIHdpZSBkYXMgRGluZyBoZWlzc3QsIHVtIGRhcwplcyBkYSBnZWh0PyAKVW5kIHdvenUgaXN0IGVzIGd1dC4uLj8KCkRHIChzdWVsenQgYXVzbmFobXN3ZWlzZSBtYWwgbWl0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FudGVkOiBQcm9sb2cga29lbm5lbmRlcyBXZXNlbiAoSGlnaGxhbmRlciwgIDUuIEp1biAxOTk2LCAxNjoyNjoyNyk6CkhpIQpIYXQgbmljaHQgdm9yIGt1cnplbSB3ZXIgZ2VzYWd0LCBlciBrb2VubmUgUHJvbG9nPwpFaW5lIEZyZXVuZGluIG1laW5lciBGcmV1bmRpbiBoYXQgbmFlbWxpY2ggUHJvYmxlbWUgbWl0IFByb2xvZy4KTWl0IGVpbmVtIFByb2dyYW1tLCBnZW5hdWVyIGdlc2FndCA6PgpTb2xsdGUgbmljaHQgdmllbCB6dSB0dW4gc2VpbiwgYWJlciBlcyBoYWVuZ3QgaGFsdCBiZWkgaWhyLgpEYXJ1bSBiaXR0ZSBpY2ggZGVuIG9kZXIgZGllICh3YXIgZGFzIEZyZXVuZD8pLApzaWNoIG1hbCBiZWkgbWlyIHp1IG1lbGRlbi4gRXMga2FubiBuYXR1ZXJsaWNoCmF1Y2ggamVkZXIgYW5kZXJlLCBkZXIgZGllc2UgZXR3YXMgZXhvdGlzY2hlIDs+ClNwcmFjaGUga2Fubi4KCiAgICBIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlcmJ1bmcgISAoQmVlbHplYnViLCAgNi4gSnVuIDE5OTYsIDE5OjA2OjU4KToKSmEhIEVuZGxpY2ghISBTaWUgaXN0IGRhISEhIApEaWUgQ0QgYXVmIGRpZSBkaWUgV2VsdCBzbyBsYW5nZSBnZXdhcnRldCBoYXQgIQpJY2ggbWVpbmUgTklDSFQgZGllIG5ldWUgTWV0YWxsaWNhLCBkaWUgaXN0IHp3YXIgYXVjaCBuYWNoIDUgV2ludGVybiAKdWViZXJmYWVsbGlnLCBhYmVyIGRpZSBKdW5ncyBkcm9oZW4genUga29tbWVyemllbGwgenUgd2VyZGVuLCBkYSBicmF1Y2hlIGljaApuaWNodCBhdWNoIG5vY2ggZnVlciB3ZXJiZW4uCk5laW4sIGljaCByZWRlIHZvbiAoKlRyb21tZWx3aXJiZWwqKQoKV2FsdGFyaSAmIEF2YW50aSEKWWVhaCEgWWVhaCEgRGllISBEaWUhCihEZWF0aCBNZXRhbCBTeW1waG9ueSBJbiBEZWVwIEMpCgpXYXMgaXN0IGRhcyA/Pz8KTnVqYSwgZmFuZ2VuIHdpciB2b3JuZSBhbjoKRGllIGZpbm5pc2NoZSBLdWx0LUJhbmQgV2FsdGFyaSBtYWNodCBzY2hvbiBzZWl0IGVpbmVyIFplaXQgZWluZSBsdXN0aWdlCk1pc2NodW5nIGF1cyBEYW5jZWZsb29yLCBGdW5rLCBEZWF0aCBNZXRhbCB1bmQgZGl2ZXJzZW4gYW5kZXJlbiBFbGVtZW50ZW4uCk51biBoYXQgc2ljaCBTYWVuZ2VyIHVuZCBCYXNzaXN0IEthZXJ0c3kgSGF0YWtrYSAobHVzdGlnZXIgTmFtZSA6LSkpIGRhenUKZW50c2NoaWVkZW4sIGF1Y2ggbm9jaCBLbGFzc2lrIGluIFJlcGVydG9pcmUgenUgbmVobWVuLCB1bmQgaGF0IGVpbmUgClN5bXBob255IGdlc2NocmllYmVuLCBkaWUgenVzYW1tZW4gbWl0IGRlbSA2MC1Lb2VwZmlnZW4gT3JjaGVzdGVyIEF2YW50aSEKdW50ZXIgZGVyIExlaXR1bmcgdm9uIFJpa3UgTmllbWksIHNvd2llIGRlciBTb3ByYW5pc3RpbiBFZXZhLUthYXJpbmEgVmlsa2UKdW5kIFRvbWkgS29pdnVzYWFyaSB2b24gQW1vcnBoaXMgaW0gQXVndXN0IDE5OTUgaW4gSGVsc2lua2kgYXVmZ2VmdWVocnQKdW5kIGpldHp0IGVuZGxpY2ggYXVmIENEIGdlcHJlc3N0IHd1cmRlLgpXaWUgZGFzIGtsaW5ndCA/Pz8KTnVqYSwgc3RlbGwgZGlyIHZvciBkdSBob2Vyc3QgZWluZSBzdWVzc2UgS2xhc3Npay1NZWxvZGllIHVuZCB1cnBsb2V0emxpY2gKd2lyZCBkaXIgZGVyIEdyaW5kIHNjaGxlY2h0aGluIHZvciBkaWUgQmlybmUgZ2VrbmFsbHQuCldlbm4gZGFubiBhdWNoIG5vY2ggS2FlcnRzeSBhbmZhZW5ndCB6dXIgU3Rha2thdG8tQmVnbGVpdHVuZyBkZXMgT3JjaGVzdGVycwp6dSByYXBwZW4sIG9kZXIgYmVpbSBGaW5hbGUgVGVjaG5vLUJlYXQgYXVzIGRlbiBCb3hlbiBkcm9laG50LCBibGVpYnQKZWNodCBrZWluZSBIb3NlIHRyb2NrZW4uCkluaGFsdGxpY2ggaGFuZGVsdCBkYXMgZ2FuemUgdWVicmlnZW5zIHZvbSBDb21wdXRlciAoZGFyZ2VzdGVsbHQgZHVyY2ggVG9taXMKYm9lc2VuIEdlZ3J1bnplIHVuZCBLYWVydHlzIHVlYmxlbiBHZXNjaHJlaSksIGRlciBhbGxlcyB1bmQgamVkZW4gCmtvbnRyb2xsaWVydCwgc28gYXVjaCBKb2huIERvZSAoS2FlcnRzeSksIGRlciBkYXJ1bnRlciBsZWlkZXQgdW5kIG51ciB2b3IKc2ljaCBoaW52ZWdldGllcnQsIHNvd2llIGVpbmVtIEVuZ2VsIChFLi1LLiBWLiksIGRpZSBKb2huIGhpbGZ0LCBzaWNoIHZvbQpSZWNobmVyIGxvc3p1cmVpc3NlbiwgdW5kIEZyZXVkZSB6dSBlbXBmaW5kZW4uCk5hY2hkZW0gZGFubiBkZXIgUmVjaG5lciB6dWVyc3QgYWJzdHVlcnp0ICggVGhlIFN0cnVnZ2xlIGZvciBMaWZlIGFuIERlYXRoIG9mCiJLbm93bGVkZ2UiIC0gZGVyIGtyYWVua3N0ZSBTb25nIGRlciBQbGF0dGUpIHVuZCBkYW5uIHdpZWRlcmJlbGVidCB3aXJkLApnaWJ0cyBkYW5uIGVpbiBIYXBweSBFbmQsIGJlaSBkZW0gYWxsZSBnZW1laW5zYW0gZnJvZWhsaWNoIGR1cmNocyBJbnRlcm5ldApzdXJmZW4uCgpJbnNnZXNhbXQgYWxzbyBlaW5lIFBsYXR0ZSwgZGllIGplZGVyIGVpbmlnZXJtYXNzZW4ga3JhbmtlIE11c2lrbGllYmhhYmVyCmVpbmZhY2ggYmVzaXR6ZW4gbXVzcy4KClAuUy46IE5hY2ggMSBTdHVuZGUgTXVzaWsgZ2lidHMgdWVicmlnZW5zIG5vY2ggamVkZSBNZW5nZSBpbnRlcmFrdGl2ZXMKTWF0ZXJpYWwgZnVlciBtdWx0aW1lZGlhLXRhdWdsaWNoZSBDb21wdXRlciwgc28gbWl0IFZpZGVvLCBNdXNpaywgCkluZm9ybWF0aW9uZW4gdW5kIGRpdmVyc2VtIG1laHIuCklzIHp3YXIgbmljaCBkaWUgS3JvZW51bmcgZGVyIFByb2dyYW1taWVya3Vuc3QsIGFiZXIgZnVlciBncmF0aXMgbmUga2xhc3NlClNhY2hlIDopCgpEZXIgRGVpZmkgdmVybGFuZ3QgMTAwIE1hcmsgdm9uIFNwaW4tUmVjb3JkcyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlcmJ1bmcgISAoR3JpbW1ib3JuLCAgNy4gSnVuIDE5OTYsIDA5OjM2OjAzKToKfiMhIHJuPUJlZWx6ZWJ1YiBydD04MzQwODA4MTgKfiMhIHRpZD04MzQwODA4MTgKCkFsc28sIHR1dCBtaXIgbGVpZCwgYWJlciB3ZXIgZWluZSAiU3ltcGhvbnkiIHNjaHJlaWJ0IHVuZCBkZW5rdCwgZGEgZ2Vob2VyZQplaW5lIEhhbmRsdW5nIHp1IGthbm4gZG9jaCB3aXJrbGljaCBuaWNodCBlcm5zdCBnZW5vbW1lbiB3ZXJkZW4uIE5hY2ggZGVtLCB3YXMKRHUgc2NocmVpYnN0IGhhbmRlbHQgZXMgc2ljaCBlaGVyIHVtIGVpbmUgQXJ0IE9wZXIgKG9kZXIgIk11c2ljYWwiIGF1ZgpuZXVkZXV0c2NoKS4gQWJlciB3YXMgc29sbHMsIHNvIGxhbmdlIGRpZSBDRCBncmF0aXMgaXN0ICh3byBnaWJ0cyBkaWUKZWlnZW50bGljaCkgdW5kIGRlciBJbnRlcm5ldGFuc2NobHVzcyBpbmNsdXNpdmUgaXN0IChvZGVyIHNvbGx0ZSBpY2ggd2FzCmZhbHNjaCB2ZXJzdGFuZGVuIGhhYmVuPykga2FubiBtYW4gc2ljaCBkYXMgdmVybXV0bGljaCBtYWwgYW5ob2VyZW4uLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXZXJidW5nICEgKEJlZWx6ZWJ1YiwgIDcuIEp1biAxOTk2LCAxMDowNzoxNSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM0MTMyOTYzCn4jISB0aWQ9ODM0MDgwODE4Ck11c3N0IGphIGF1Y2ggbmljaHQgc28gZXJtc3QgbmVobWVuLCB0dSBpY2ggamEgYXVjaCBuaWNodCwgdW5kIHR1biBnbGF1YiBpY2gKbm9jaCBuaWNoIG1hbCBXYWx0YXJpIHNlbGJzdC4gSXMgYWJlciBsdXN0aWcuIDopCgpVbmQgYml0dGUgOiBtZXVjaGVsdCBiaXR0ZSBqZXR6dCBuaWNodCBhbGxlIGV1cmVuIENELVZlcmthZXVmZXIgd2VpbCBkZXIgZXVjaApuaWNodCBkaWUgQ0Qgc2NoZW5rdC4gR3JhdGlzIGRhenUgaXMgbGVkaWdsaWNoIGRhcyBNdWx0aW1lZGlhLUtyYW1zIDopIFNvbGx0ZQp6d2FyIGtsYXIgc2VpbiwgYWJlciB3ZXIgd2Vpc3MgOikKCkJlZWx6ZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVSSU5ORVJVTkcgKFJ1ZGlyYXR0ZXIsICA3LiBKdW4gMTk5NiwgMTI6MDU6MDgpOgpGb2xrcywKaGV1dGUgZmluZGV0IHVtIDIwIFVociBiZWkgU3VwZXJ3ZXR0ZXIgZGVyIEJvY2h1bWVyIFN0YW1tdGlzY2ggaW0gQ2xvY2hhcmQsCkJ1c2NoZXlwbGF0eiwgQm9jaHVtLVVuaWNlbnRlciwgc3RhdHQhISEhIFdlbm5tIHdpciBQbGF0eiBmaW5kZW4sIHNpdHplbiB3aXIKZHJhdXNzZW4gaW0gQmllcmdhcnRlbi4gV2VnYmVzY2hyZWlidW5nZW4gZmluZGV0IElociBpbiBkZXIgUnVicmlrIFRyZWZmZW4sCnNvd29obCBmdWVyIEJhaG5mYWhyZXIgdW5kIEZ1c3NnYWVuZ2VyIGFscyBhdWNoIGZ1ZXIgQXV0b2ZhaHJlci4gCkljaCBoYWIgc2Nob24gdm9uIGVpbiBwYWFyIFByb21pbmVudGVuIGdlaG9lcnQsIGRpZSBzaWNoIGFuZ2VrdWVuZGlndCBoYWJlbiwKYWxzbyB3aXJkJ3Mgc2ljaGVyIGx1c3RpZyEKQmlzIGRhbm4KUnVkaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV0FFSExFTiBHRUhFTiEgKEhhcmRpbCwgMTEuIEp1biAxOTk2LCAxMTo0MDowNSk6CgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgogICAgICAgICAgIFMgdCB1IGQgaSBlIHIgZSBuIGQgZSBuIC0gUCBhIHIgbCBhIG0gZSBuIHQgcyB3IGEgaCBsCgogICAgICAgICAgICAgICAgIGFuIGRlciBVbml2ZXJzaXRhZXQgRG9ydG11bmQgLi4uCgogICAgICAgICAgICAgdm9tIDEwLiAtIDEzLiBKdW5pIDE5OTYKCgpXYWVobHQgTXVkZGVyIGlucyBTdHVQYSEgV2FlaGx0IGRpZSBzY2hyYWVnZSBBbHRlcm5hdGl2ZSB6dSBkZW4gR3J1ZW5lbiwKUmVnZW5ib2dlbmdydWVuZW4sIExpYmVyYWx6aXRyb2VuZW5nZWxiZ3J1ZW5lbiwgcm9ldGxpY2gtZ3J1ZW4tZ2VzY2hlY2t0ZW4sCk5BVE8tb2xpdmdydWVuZW4sLi4uCgp3YWVobHQgU0NIV0VJTkUgSU0gSE9FUlNBQUwgISEhCgpaVSBSaXNpa2VuIHVuZCBOZWJlbndpcmt1bmdlbiBlaW5mYWNoIFdhaGx6ZWl0dW5nIGxlc2VuLiA7KQoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKLUhhcmRpbC4gVHV0IHdhcyBmdWVyIGRpZSBEZW1va3JhdGllIGFuIGRlciBVbmkuIDopKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhaHJyYWRmYWhyZXIgZ2VzdWNodCAoVmFuaXIsIDExLiBKdW4gMTk5NiwgMTE6NDc6NDgpOgpIYWxsbyAhCgpJY2ggbWFjaHMga3VyejogCgpXaWUgamVkZXIgd2Vpc3MsIGZpbmRldCB2b20gNS44LiAtIDExLjggaW4gQmVybGluIGRpZSBNRy1QYXJ0eSBzdGF0dC4KCk1laW4gUHJvYmxlbSBpc3QgZm9sZ2VuZGVzOiBJY2ggd29sbHRlIGluIGRpZXNlbSBTb21tZXIgZWluZSBSYWR0b3VyCm1hY2hlbiwgbGVpZGVyIGhhdCBzaWNoIGtlaW5lciBnZWZ1bmRlbiwgZGVyIHNvIGJla2xvcHB0IGlzdCB3aWUgaWNoLgpEZXNoYWxiIGhhYiBpY2ggZ2VkYWNodCAuIG8gTyAoVmFuaXIsIGFsdGVyIGp1bmdlLCB2aWVsbGVpY2h0IGdpYmJldHMKamEgaW0gTUcgZWluZW4sIGRlciBhdWNoIHNwaW5udCkuCgpOYWphLCB1bXMga3VyeiB6dSBtYWNoZW46IEljaCBzdWNoZSBqZW1hbmRlbiwgZGVyIG1pdCBtaXIgbmFjaCBCZXJsaW4gCnJhZGVsbiB3dWVyZGUuIAoKS3VyemluZm8gZGF6dTogLWdlcGxhbnRlIFN0cmVja2U6IGNhIDgwLTEwMGttL1RhZyAofjQtNWgvdGFnKQogICAgICAgICAgICAgICAtVW50ZXJrdW5mdDogWmVsdHBsYXR6IChaZWx0IGhhYiBpY2gpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZGVyIEp1Z2VuZGhlcmJlcmdlIChpY2ggYmluIGtuYXBwIGJlaSBrYXNzZSkKICAgICAgICAgICAgICAgLUtvY2hlciwgZXRjIGhhYiBpY2ggYXVjaAogICAgICAgICAgICAgICAtZGllIGdlbmF1ZSBSb3V0ZSB3YWVyIG5vY2ggZmVzdHp1bGVnZW4KICAgICAgICAgICAgICAgLUFiZmFocnQ6IHNvLCBkYXNzIG1hbiBwdWVua3RsaWNoIGF1ZiBkZXIgUGFydHkgaXN0CiAgICAgICAgICAgICAgIC1BYmZhaHJ0c29ydDogSWNoIHdvbGx0ZSBlaCBub2NoIGlucyBTYXVlcmxhbmQgdW5kIEdpZXNzZW4sCiAgICAgICAgICAgICAgICAgICAgICAgIGFsbGVzIGJpcyBEYXJtc3RhZHQgaXMgb2theSAoZGEgc29sbHRlIHdvaGwgamVtYW5kCiAgICAgICAgICAgICAgICAgICAgICAgIHdvaG5lbikKICAgICAgICAgICAgICAgLVJ1ZWNrZmFocnQ6IG5hY2ggZGVyIFBhcnR5LCBhbSBNb250YWcgPwoKCiAgIEVpbiBhdWYgQW50d29ydCBob2ZmZW5kZXIgVmFuaXIuCgpQLlMuOiBiaXR0ZSBtdWRtYWlsIGFuIG1pY2ggb2RlciBhbiB1ZHJ1ZWRpbkBjaGFyb24ucGh5c2lrLnVuaS1vc25hYnJ1ZWNrLmRlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIERpV3AgKEp1bmlhdXNnYWJlKSBpc3QgZGEhISEgKE51ZGVpLCAxMS4gSnVuIDE5OTYsIDEzOjI0OjAzKToKU29kZXJsZXIsIGxpZWJlIE1pdG11ZGRlciB1bnIgUmlubmVuIQpMZXNlciB1bmQgSW5uZW4hCkthbWVyYWRlbiB1bmQgRGlubmVuIQoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiogRGVyIERpV3AgKEp1bmlhdXNnYWJlKSBpc3QgREEhISEgKioqKioKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpqYWphLCBERVIgSVJSRSBXRUxUUkFVTVBST0xFVCwgZGFzIFNwaXR6ZW5aaW5lIGRlciBTT25kZXJrYWxzc2UgZnVlciBhbGxlcywKd2FzIFJvbGxlbnNwaWVsIGlzdCwgaXN0IFdJRURFUiBtaXQgZWluZXIgbmV1ZW4gQXVzZ2FiZSAoTnIuMTQgZnVlcgpTdGF0aXN0aWtlcikgZGEuCgpFaW5lIHd1bmRlcnNhbWUgTWlzY2h1bmcgYXVzIHVuYXBwZXRpdGxpY2hlbiBBcnRpa2VsbiB6dW0gVGhlbWVua3JlaXMgRmFudGFzeQp1bmQgUlNQIHdhcnRldCBhdWNoIGRpZSBnZW5laWd0ZSBMZXNlcnNjaGFmdCEKCnouQi4gZGVyIFNjaGx1c3MgZGVzIEJhbGR1aW4gdm9uIEJhbGRhY2hpbi1aeWtsdXMgYXVzIGRlciBGZWRlciB2b24gUm9lc3RpCgp6LkIuIGRlciBTY2hsdXNzIGRlciBCYWxkdWluIHZvbiBCYWxkYWNoaW4gR2VzY2hpY2h0ZSBhdXMgZGVyIEZlZGVyIGRlcwpiZXZvcnp1Z3RlbiBTY2hyaWZ0c3RlbGxlcnMgSHVnbyAiUGFydHkgV2lwZSBPdXQiIFNlbnNlCgp6LkIuIERlciBoYWFyc3RyYWV1YmVuZGUgR2VzY2hpY2h0ZSBkZXMgV3Vyc3RtZWlzdGVycyBXaWJnaWwgCgogRWluIHdlaXRlcmVzIEthcGl0ZWwgYXVzIGRlbiBSYXVvbWNocm9uaWtlbiBhdXMgZGVyIEZlZGVyIHZvbiBIeXJvbmltdXMgZGVtClppdHRyaWdlbiwgZ2VuYW5udCBERVIgQ0hST05JU1QKCkRhenUgZWluZSBhbHBoYWJldGhpc2NoZSBBdWZsaXN0dW5nIHZvbiBzY2htdXR6aWdlbiBTY2htYWVocyBpbSBSb2xsZW5zcGllbCwKZWluZSBuZXVlIEZvbGdlIG1pdCBTY2h1cmwgdW5kIHNlaW5lbiBCb3R0bGJ1YW0gKE5vcmRkdC46IEZsYWNobWFubi1KdW5ncykKdS52Lm0uCgoKCktvc3Rlbmxvc2VzIFByb2JlZXhlbXBsYXIgYW5mb3JkZXJuIQpBYm8gZ2VnZW4gUG9ydG9zcGVzZW4gKE9lcyA1MCBmdWVyIGZ1ZW5mICg1KSBBdXNnYWJlbiwgRE0gMTAgZnVlciA2IEF1c2dhYmVuCgpHcnVzcz1LdXNzCk51ZGVpLCBTY2hyaWZ0bGVpdHVuZyBEaVdwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmFocnJhZGZhaHJlciBnZXN1Y2h0IChKYXNwZXIsIDExLiBKdW4gMTk5NiwgMTg6MDk6MjUpOgp+IyEgcm49VmFuaXIgcnQ9ODM0NDg2NDY4Cn4jISB0aWQ9ODM0NDg2NDY4CmhtbW0gbnVyIDgwLTEwMCBrbS90YWcsIG5lIGRhcyBpc3QgbWlyIHp1IHdlbmlnIHVuZCBlaW4gc2Nobml0dCB2b24gMjAgenUKbGFuZ3NhbSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdBRUhMRU4gR0VIRU4hIChBc21vZGlzLCAxMS4gSnVuIDE5OTYsIDE4OjE2OjAyKToKfiMhIHJuPUhhcmRpbCBydD04MzQ0ODYwMDUKfiMhIHRpZD04MzQ0ODYwMDUKV2llIGhlaXNzdCBkZW4gZXVyZSBNdWRkZXItUGFydGVpID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsYWVydW5nISEhIChMd2F4YW5hLCAxMS4gSnVuIDE5OTYsIDE5OjI3OjM1KToKTmFpcm9sZiBkdSBibG9lZGVyIEtlcmwhIApKZXR6dCBoYWJlIGljaCBlbmRndWVsdGlnIGRpZSBTY2huYXV6ZSB2b2xsIHZvbiBEaXIhCkljaCBzY2hsYWdlIHZvciwgd2lyIHJlZ2VsbiBkYXMgamV0enQgZWluIGZ1ZXIgYWxsZSBtYWwhIApEYSBlcyB6dSB1bnNlcmVyIEFuZmFuZ3N6ZWl0IGRpZXNlIGtsZWluZW4gUGVsemJ1ZW5kZWwgbm9jaCBuaWNodCBnYWIsIHNjaGxhZ2UKaWNoIGFscyBuZXV0cmFsZW4gT3J0IGRpZSBad2VyZ2Vuc2llZGx1bmcgdm9yLiAoRmFsbHMgZHUgRmVpZ2xpbmcgRGljaCBkYSBoaW4KdHJhdXN0ISkKRGllIHdlaXRlcmVuIEVpbnplbGhlaXRlbiBrYW5uc3QgZHUgYmVzdGltbWVuLiAoR2VuYXVlbiBPcnQsIFVocnplaXQgdW5kCkRhdHVtLCBzb3dpZSBldnRsLiBXYWZmZW4uLi4pClRzY2hhdSBGZWlnbGluZy4gTHdheCEhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLbGFlcnVuZyEhISAoTmFpcm9sZiwgMTEuIEp1biAxOTk2LCAxOTozNToxMCk6Cn4jISBybj1Md2F4YW5hIHJ0PTgzNDUxNDA1NQp+IyEgdGlkPTgzNDUxNDA1NQpMd2F4YW5hIER1IGtsZWluZXMsIG1lbnNjaGxpY2hlcyBNaXN0c3R1ZWNrICEKSUNIIGhhYmUgdm9uIERJUiBkaWUgU2NobmF1emUgdm9sbCAhISEKT2IgUGVsemJ1ZW5kZWwgb2RlciBTdGlua2Z1ZXNzZSwgc2llIHNpbmQgbWlyIGVnYWwgdW5kIGRhaGVyIHdlcmRlIGljaCBzaWNoZXIKZGVuIFdlZyBpbiBkaWUgWndlcmdlbnN0YWR0IGZpbmRlbiB1bmQgZGllc2VuIEZhbGwgZnVlcnMgRXJzdGUga2xhZXJlbi4KSWNoIGRlbmtlIGFscyBGb3J0c2V0enVuZyBtZWluZXIgR2xvcnJlaWNoZW4gVHJhZGl0aW9uIGRhbWFscyBpbiBkZXIgQXJlbmEsIGluCmdvbGRlbmVuIFplaXRlbiBhbHMgU3BpZWxlciB3ZXJkZSBpY2ggZGVuIEp1d2VsaWVyIHdhZWhsZW4gYWxzIFNjaGF1cGxhdHoKdW5zZXJlcyBlcm5ldXRlbiBLcmFtcGZlcy4gClplaXQ6IDE5LjAwCkRhdHVtOiAxOC42LjE5OTYKTm9jaG1hbCBkZW4gT3J0LCBkZW5uIGlociBzZWlkIGFsbGUgQmxvbmQ6IEp1d2VsaWVyIGluIGRlciBad2VyZ2Vuc2llZGx1bmcuCldhZmZlbjpTY2hsYWdyaW5nZQoKZ2V0YW5rdCB3aXJkIG5pY2h0LCBkaWUgdHVlcmVuIGJsZWliZW4gb2ZmZW4gdW5kIGRpZSB2b3JzaWNodCBrb21tdCBhdWYgMCAhCgpOYWlyb2xmLCBzdGlua2VzYXVlciwgc2ljaCBhdWYgc2VpbmUgQWx0ZW4gVGFnZSBub2NoIG1pdCBsYWVzdGlnZW4sIGFsdGVuCkZlaW5kZW4gcnVtc2NobGFnZW4genUgbXVlc3NlbiAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtsYWVydW5nISEhIChBc21vZGlzLCAxMS4gSnVuIDE5OTYsIDE5OjM3OjI1KToKfiMhIHJuPU5haXJvbGYgcnQ9ODM0NTE0NTEwCn4jISB0aWQ9ODM0NTE0MDU1CldvcnVtIGdlaHRzIHVlYmVyaGF1cHQgPz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEtsYWVydW5nISEhIChMd2F4YW5hLCAxMS4gSnVuIDE5OTYsIDE5OjQ3OjQ2KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODM0NTE0NjQ1Cn4jISB0aWQ9ODM0NTE0MDU1CldpciBrbGFlcmVuIHVuc2VyZSBEaWZmZXJlbnplbiwgZGllIHNlaXQgKGZhc3QpIEFuYmVnaW5uIHVuc2VyZXIgR2VtZWluc2FtZW4KTVVELVplaXQgYmVzdGVoZW4uLi4KRGllIHNjaG9uIHZpZWwgenUgbGFuZ2UgYW5kYXVlcnQhISEgRGllc21hbCBrcmllZ2UgaWNoIGRlbiBLZXJsIQpUc2NoYXUgTHdheAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS2xhZXJ1bmchISEgKE5haXJvbGYsIDExLiBKdW4gMTk5NiwgMTk6NDk6MTEpOgp+IyEgcm49THdheGFuYSBydD04MzQ1MTUyNjYKfiMhIHRpZD04MzQ1MTQwNTUKc29sbCBpY2ggamV0enQgeml0dGVybiA/Pz8gUEFIIApNZW5zY2hlbndlaWJjaGVuIGljaCBzcHVja2UgYXVmIGRpY2ggaGVyYWIgOi0pCkNVIE5haXJvbGYuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvbW1lciwgTW9lcHNlLCBTb25uZW5zY2hlaW4uLi4uIChKYXNwZXIsIDExLiBKdW4gMTk5NiwgMjA6NDQ6MTQpOgpTdWNoZSB3aWxsaWdlcyBPcmttYWVkZWwsIHdlbGNoZXMgbWVpbmVuIFNvbm5lbmJyYW5kIHp3ZWNrcyBLdWVobHVuZwpsZWNrdC4KCkphc3Blciwgc2NobGFlZnQgaGV1dGUgdW50ZXIgZGVyIGxhdWZlbmRlbiBrYWx0ZW4gRHVzY2hlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU29tbWVyLCBNb2Vwc2UsIFNvbm5lbnNjaGVpbi4uLi4gKEhhciwgMTIuIEp1biAxOTk2LCAwOTo0MjozNik6Cn4jISBybj1KYXNwZXIgcnQ9ODM0NTE4NjU0Cn4jISB0aWQ9ODM0NTE4NjU0CklnaXR0aWdpdHRpZ2l0dCwgT3JrbWFlZGVsPwpNb2Vwc2UsIHdpZSBzZWhlbiBkZW5uIE9ya21vZXBzZSBhdXMgKHNjaGF1ZGVyKQoKSGFyIChzaWNoIGVrZWxuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU29tbWVyLCBNb2Vwc2UsIFNvbm5lbnNjaGVpbi4uLi4gKFJhZmZpLCAxMi4gSnVuIDE5OTYsIDEyOjA3OjA3KToKfiMhIHJuPUhhciBydD04MzQ1NjUzNTYKfiMhIHRpZD04MzQ1MTg2NTQKT3JrbW9lcHNlID8KClZpZWxlaWNodCBHUk9PT1NTIG1pdCBXYXJ6ZSA/CgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU29tbWVyLCBNb2Vwc2UsIFNvbm5lbnNjaGVpbi4uLi4gKEFuYXRvbCwgMTIuIEp1biAxOTk2LCAxNTowNjowMSk6Cn4jISBybj1SYWZmaSBydD04MzQ1NzQwMjcKfiMhIHRpZD04MzQ1MTg2NTQKCkFsc28gdm9uIFRyb2xsbW9lcHNlbiBoYWInIGljaCBqYSBzY2hvbiBnZWhvZXJ0Li4uIDstKQpXZXIgd2Vpc3MsIHdhcnVtIHNvbGwgZXMgbmljaHQgYXVjaCBPcmttb2Vwc2UgZ2ViZW4uLi4gOikKCkFuYXRvbCAoaGV1dGUgbWFsIHdpZWRlciBzbyB1bnNjaHVsZGlnIHdpZSBMYXJpc3NhIGltbWVyIHR1dCA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEtsYWVydW5nISEhIChMd2F4YW5hLCAxMi4gSnVuIDE5OTYsIDE1OjExOjQxKToKfiMhIHJuPU5haXJvbGYgcnQ9ODM0NTE1MzUxCn4jISB0aWQ9ODM0NTE0MDU1ClNvLCBkYXMgaXN0IGpldHp0IGVyc3QgbWFsIGRlciBsZXR6dGUgQXJ0aWtlbCB2b24gbWlyIHp1IGRpZXNlbSBUaGVtYToKCldlciBtZWludCwgZGFzcyB3aXIgaGllciBpcmdlbmR3ZWxjaGUgUkwtU3RyZWl0ZXJlaWVuIGluIGRlciBNUEEgYXVzdHJhZ2VuLApkZXIgc29sbCBtYWwgYml0dGUgTmFyaW9sZnMgZXJzdGVuIEFydGlrZWwgR0VOQVUgbGVzZW4uIChWb3IgYWxsZW0sIHdhcyBXYWhsCmRlcyBPcnRlcyB1bmQgZGVyIFdhZmZlbiBhbmdlaHQhKS4KQW5zb25zdGVuIGthbm4gaWNoIG51ciBzYWdlbjogSWNoIGtvbm50ZSBOYWkgbm9jaCBuaWUgbGVpZGVuLiBJbW1lcmhpbiBoYXQgZXIKbWljaCB6dSBTcGllbGVyemVpdGVuIGdla2lsbHQuIChWaWVsbGVpY2h0IHdlaWwgaWNoIDIgU2VrLiB2b3IgaWhtIFNlaGVyCnd1cmRlPz8/KS4KVHNjaGF1IEV1cmUgTHdheAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogS2xhZXJ1bmchISEgKEhhZHJhLCAxMi4gSnVuIDE5OTYsIDE3OjU3OjU5KToKfiMhIHJuPUx3YXhhbmEgcnQ9ODM0NTg1MTAxCn4jISB0aWQ9ODM0NTE0MDU1Cndlbm5zIHVtIHdhcyBnZWh0bSBnZWhvZXJ0cyBuaWNodCBpbiBkaWUgemVpdHVuZywgd2VubnMgdW0gbmljaHRzIGdlaHQsCmdlaG9lcnRzIGhvZWNoc3RlbnMgbmFjaCBzY2htYXJybgoKaGFkcmEgLSBhdWYgZGVyIHN1Y2hlIG5hY2ggcGZlbm5pZ2VuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBLbGFlcnVuZyEhISAoR3VsZHVrYXQsIDEzLiBKdW4gMTk5NiwgMTE6Mjk6MTcpOgp+IyEgcm49THdheGFuYSBydD04MzQ1ODUxMDEKfiMhIHRpZD04MzQ1MTQwNTUKCkR1IG11c3N0IGphIGVpbiBhcm1zZWVsaWdlciBzZWhlciBzZWluLCB3ZW5uIGR1IGRpY2ggdm9uIGVpbmVtIHNwaWVsZXIga2lsbGVuCmxhZXNzdCEhISA7KQoKR0QKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBLbGFlcnVuZyEhISAoWnVlcmlsZXUsIDEzLiBKdW4gMTk5NiwgMjM6MjI6MjgpOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODM0NjU4MTU3Cn4jISB0aWQ9ODM0NTE0MDU1ClNhbGksCkhhSGEuLiBndWxkdWthdCB3ZW5uIGljaCBkdSB3YWVyZSB3dWVyZCBpY2ggZGVuIHJ1ZXNzZWwgbmljaHQgc28gdm9sbCBuZWhtZW4uCmljaCBtYWcgbWljaCBkYSBhbiBlaW4gc3BpZWxlciBlcmlubmVybiBkZXIgZGljaCAoZGFtYWxzIHNlaGVyIGxldmVsIDIwKSBtaXQKbGV2ZWwgMTkKZ2VraWxsdCBoYXQgISEgQWJzdHJlaXRlbiB6d2Vja2xvcywgaWNoIHdhciBkYW1hbHMgZGllc2VyIHNwaWVsZXIgISEKCkFsc28ga2xvcGYgaGllciBuaWNodCBzb2xjaGUgc3BydWVjaGUuLi4uICAqZ3JpbnMqCgpUc2NodWVzcyB6dWVyaWxldQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogS2xhZXJ1bmchISEgKEd1bGR1a2F0LCAxNC4gSnVuIDE5OTYsIDA5OjQ3OjMxKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTgzNDcwMDk0OAp+IyEgdGlkPTgzNDUxNDA1NQoKTmEgYWxzbyBob2VyIG1hbCwgZGFzIGthbm5zdGUgZG9jaCBzbyBnYXIgbmljaHQgdmVyZ2xlaWNoZW4hCkdECjspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHQyAoQWNyaW1vbiwgIDIuIEp1bCAxOTk2LCAxNzoxMjoyNCk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04MzYyMTYyNDkKfiMhIHRpZD04MzU5NzM2NTcKCk5laW4gQmxvb2R5aGFycnkuCkJhc2U2NCBpc3QgTUlNRSB1bmQgaGF0IGdsdWVja2xpY2hlcndlaXNlIEdBUiBOSVggbWl0IFdpbmRvd3MgenUgdHVuLgpFcyBnaWJ0IHVudGVyIFVuaXggdmVybnVlbmZ0aWdlIE1pbWUtZmFlaGlnZSBNYWlscHJvZ3JhbW1lLCBkaWVzIHNpbmQ6CmVsbSB1bmQgcGluZS4KV29iZWkgZWxtIHVtIExhZW5nZW4gc2Nod2llcmlnZXIgYXVmIE1pbWUgenUga29uZmlndXJpZXJlbiBpc3QuCkF1Y2ggZnVlciBBbWlnYSBnaWJ0cyBtaW1lLWZhZWhpZ2UgTWFpbHByb2dyYW1tZTsKd28gaXN0IGFsc28gZGFzIFByb2JsZW0/CgpKZWRvY2ggaGF0IFJhZmZpIC0gd2llIGF1Y2ggSFogLSBlaW5lbiBzZWhyIHNlbHRzYW1lbiBGb250IGdld2FlaGx0OyBrYW5uc3QgRHUKYml0dGUgYXVmIElzbyB1bXN0ZWxsZW4sIFJhZmZpPyBEYW5rZS4KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogR0MgKFJhZmZpLCAgMi4gSnVsIDE5OTYsIDE4OjEwOjM1KToKfiMhIHJuPUFjcmltb24gcnQ9ODM2MzIwMzQ0Cn4jISB0aWQ9ODM1OTczNjU3CgpUamEsIGRlciBGb250IG1hZyBqYSBkZWluZXIgbWVpbnVuZyBuYWNoIHNlbHRzYW1tIHNlaW4sIGVzIGlzdCBudXIgbGVpZGVyIGRlcgpBdGFyaSAodW5kIHdpbmRvb2Y/KSBTdGFuZGFyZHplaWNoZW5zYXR6ICghKSAuLiBlaWdlbnRsaWNoIGRhY2h0ZSBpY2ggamEgaGllcgp3YWVyZSBBbWlnYSB1bmQgQXRhcmkgZ2xlaWNoIHVuZCBXaW5kb29mIGFid2VpY2hlbmQgLSBuYSBqYSwgc2VpIGVzIHdpZSBlcwpzb2xsLCB0YXRzYWNoZSBpc3QgZGFzIGljaCBkYXMgbmljaHQgYWVuZGVybiBrYW5uIC0gZGFzIFByb2dyYW1tIHdpcmZ0IGRpZQpkYXRlaWVuIHNvIGF1cyAtIGRhIGlzdCBrZWluZSBlaW5zdGVsbHVuZyBmdWVyIHZvcmhhbmRlbiAtIHR1dCBtaXIgcGVpbnNhbW0uCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHJ1Zi4uLiAoT2V0dGksICAzLiBKdWwgMTk5NiwgMTQ6NTc6MzEpOgpZbyAhCgpJY2ggdHJhdWVyZSB1bSBkaWUgQXRtb3NwaGFlcmUsIGRlbiBTcGllbHNwYXNzLCBkaWUgU3BpZWxnZXNjaHdpbmRpZ2tlaXQsCmRpZSBIaWxmc2JlcmVpdHNjaGFmdCwgZGllIFplaXQgaW4gZGVyIGVpbiB3ZWlibGljaGVyIFNwaWVsZXIgbm9jaAp1bmJlbGFlc3RpZ3QgYmxlaWJlbiBrb25udGUgKG5hIGphIHJlbGF0aXYgdW5iZWxhZXN0aWd0KS4uLgp1bSBlaW4gV2VydHVuZ3NzeXN0ZW0gZGFzIGRpZSBBbmdhYmVuIG5pY2h0IG1pdCBGZWhsZXJncmVuemUgbWFjaHRlLAplcyBwYXNzaWVydCBkYXMgd2FzIGFsbGVuIGdyb3NzZW4gTXVkcyBwYXNzaWVydCwgenUgdmllbGUgTWFnaWVyCihtZWlzc3RlbnMgbmFjaCBkZW4gZ3VzdG8gZGVyIGhvaGVuIEhlcnJlbiksIHVuZCBkYWhlcgpyZXN0cmlrdGl2ZXJlIFNwaWVscmVnZWxuIHVuZCBkZXIgbGFuZ3NhbWUgVmVyZmFsbC4uLgoKU2NoYWRlIE1HLi4uCgpDaWFvICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYWNocnVmLi4uIChFbmd5d3VjaywgIDMuIEp1bCAxOTk2LCAxNTowMDo0NCk6Cn4jISBybj1PZXR0aSBydD04MzYzOTg2NTEKfiMhIHRpZD04MzYzOTg2NTEKTmFqYSwgZGFtYWxzIGhhdHRlIGljaCBub2NoIHdlbmlnZSBRdWVzdCB1bmQgd2FyIG1pdCBkaWVzZW4gYmVzY2hhZWZ0aWd0LgpIZXV0enV0YWdlLCBqYS4uLiBkYSBoYXQgbWFuIChmYXN0KSBhbGxlIFF1ZXN0LiB1bmQgdW0gbmljaHQgZ2FueiB6dQp2ZXJzYXVlcm4sIG11c3MgbWFuIHNpY2ggc2Nob24gdW0gZGllIEJlbGFlc3RpZ3VuZyBkZXIgd2VpYmxpY2hlbiBTcGllbGVyCmt1ZW1tZXJuIDspCgogfnEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYWNocnVmLi4uIChHcmltbWJvcm4sICAzLiBKdWwgMTk5NiwgMTU6MDM6MzQpOgp+IyEgcm49T2V0dGkgcnQ9ODM2Mzk4NjUxCn4jISB0aWQ9ODM2Mzk4NjUxCgpIbW0sIHppZW1saWNoIGlua29uc2VxdWVudCwgZmluZGVzdCBEdSBuaWNodD8KRXJzdCBEaWNoIGVpbmxvZ2dlbiB1bmQgRGljaCBkYW5uIGRydWViZXIgYmVzY2h3ZXJlbiwgd2FzIHNpY2ggZGFyYXVmaGluIGFsbGVzCmdlYWVuZGVydCBoYXQsIGFsc28gbmVlLi4uIApBYmVyIGRlciBTcHJ1Y2ggIkZydWVoZXIgd2FyIGFsbGVzIGJlc3NlciIgaXN0IGVoIG5pY2h0IHNvIG9yaWdpbmVsbCwgdW5kCmVpbmVuIGtvbmtyZXRlbiBBbmxhc3MgZ2lidHMgaW0gTW9tZW50IGRvY2ggYXVjaCBuaWNodCwgZGEgRHUgbmljaHQgc28KZXh6ZXNzaXYgaGllciBiaXN0LCBhbHNvIGNoZWVyIHVwIQoKRGVubiBkaWUgV3VyemVsIGFsbGVuIFVlYmVscyBpc3QgdW5kIGJsZWlidCBEb24gT2V0dGkuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0IChKYW5pY2UsICAzLiBKdWwgMTk5NiwgMTY6MTc6MDIpOgoKSGllcm1pdCBnZWJlIGljaCBiZWthbm50LCBkYXMgd2lyLCBHcml6YWJlbGxhIHVuZCBpY2gsIHVucyBhbSAKNC4gSnVsaSAxOTk2IHVtIDE4OjMwIFVociBpbiBkZXIgS2FwZWxsZSBpbiBOaWViZWxoZWltLCBkYXMgCidKYSctIFdvcnQgZ2ViZW4gd29sbGVuICEhIElociBzZWl0IGFsbGUgcmVjaHQgaGVyemxpY2hzdCBlaW5nZWxhZGVuCgpzaWNoIHNjaG9uIHdhaG5zaW5uaWcgZnJldWVuZAogICAgICAgIEphbmljZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhvY2h6ZWl0IChHcmltbWJvcm4sICAzLiBKdWwgMTk5NiwgMTc6MDI6NDkpOgp+IyEgcm49SmFuaWNlIHJ0PTgzNjQwMzQyMgp+IyEgdGlkPTgzNjQwMzQyMgoKSWlpaWhoaCwgendlaSBGcmF1ZW4uIE8gdGVtcG9yYSwgbyBtb3JlcyEKSXN0IGRhcyBkaWUgZXJzdGUgaGFsYndlZ3MgZXJuc3RoYWZ0ZSBnbGVpY2hnZXNjaGxlY2h0bGljaGUgRWhlIGhpZXIgYnR3PwpXdXJkZSBqYSBhdWNoIFplaXQuLi4KCk1laW5lbiBHbHVlY2t3dW5zY2ggamVkZW5mYWxscyEKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdCAoVGFzaGEsICAzLiBKdWwgMTk5NiwgMTc6MDQ6MDEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgzNjQwNjE2OQp+IyEgdGlkPTgzNjQwMzQyMgoKQWVoLCBoYXN0IER1IEphbmljZSBpbiBsZXR6dGVyIFplaXQgbWFsIGdlZmluZ2VydD8KClRhc2hhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb2NoemVpdCAoR3JpbW1ib3JuLCAgMy4gSnVsIDE5OTYsIDE3OjA3OjIxKToKfiMhIHJuPVRhc2hhIHJ0PTgzNjQwNjI0MQp+IyEgdGlkPTgzNjQwMzQyMgoKTG9nbywgYWJlciB3YXIgZGFzIG5pY2h0IHNvIGVpbmUgZGVyIEZhZWxsZSB3byBlcnN0bWFsIFBfR0VOREVSIG1hbmlwdWxpZXJ0Cnd1cmRlPwoKQWJlciBhbnNvbnN0ZW4sIGljaCBoYWIgaGllciBnZW51ZyBrYXB1dHQgZ2VoZW4gc2VoZW4gdW0gbWljaCB1bSBkaWVzZQpIb2NoemVpdGVuIHNvIHdlaW5nIHdpZSBtb2VnbGljaCB6dSBrdWVtbWVybi4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1ZWJlcm5hY2h0dW5nIChIZWZlLCAgMy4gSnVsIDE5OTYsIDE3OjE4OjE1KToKSGkgSWhycyAhIQoKRXMgZ2VodCB1bSBmb2xnZW5kZXMgOgoKVm9tIDQuIGJpcyAxOC4gQXVndXN0IG1hY2hlbiB3aXIgKGQuaC4gZGVyIFNTQyBCYWQgV2FsZHNlZSwgdS5hLiBhdWNoCk5pbWJ1cyB1bmQgRGllZGVyLCBkaWUgYmVpZGVuIFNjaGx1Y2tzcGVjaHRlIDotKSAgKSBlaW4gU2VnZWxmbHVnbGFnZXIgaW4KS3JvbmFjaC4KTnVuIHd1ZXJkZSBpY2ggZXZ0bC4gZ2FueiBnZXJuZSBtaXQgZGVtIEZhaHJyYWQgaGluZmFocmVuOyBhbGxlcmRpbmdzIGlzdApkYXMgZnVlciBlaW5lbiBUYWcgenUgdmllbC4KCktvZW5udGUgbWlyIG51biBqZW1hbmQgdm9tIDIuIGF1ZiBkZW4gMy4gdW5kIHZvbSAxOS4gYXVmIGRlbiAyMC4gQXVndXN0CmltIFJhdW0gQWFsZW4gLyBOb2VyZGxpbmdlbiBlaW5lIFVlYmVybmFjaHR1bmdzbW9lZ2xpY2hrZWl0IGJpZXRlbiA/CgpEYXMgZ2FuemUgaXN0IG5vY2ggbmljaHQgc2ljaGVyLCBlcyBrYW5uIGF1Y2ggc2VpbiwgIGRhc3MgaWNoIG1pdCBkZW0KQXV0byBmYWhyZW4gbXVzczsgZWluZSBVZWJlcm5hY2h0dW5nc21vZWdsaWNoa2VpdCBpc3QgYWxsZXJkaW5ncwpWb3JyYXVzc2V0enVuZyBmdWVyIGRpZSBGYWhydCBtaXQgZGVtIFJhZC4KCgpNaXQgV2VpemVuZ3J1c3MsICAgIEhlZmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXQgKEFuYWtpbiwgIDMuIEp1bCAxOTk2LCAxOTowMTo0Myk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM2NDA2MTY5Cn4jISB0aWQ9ODM2NDAzNDIyCk5hamEgSmFuaWNlIER1IGJla29tbXN0IGRlbiBIYWxzIHdvaGwgbmllIHZvbGw/CkVyc3QgRHdpZ2h0LCBkYW5uIENyb2xsYSB1bmQgamV0enQgR3JpemEuLi53aWUgbGFuZ2UgaGFlbHQgZXMgZGllc2VzIG1hbD8KCkFuYWtpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmFjaHJ1Zi4uLiAoV3VyemVsLCAgMy4gSnVsIDE5OTYsIDE5OjAyOjA5KToKfiMhIHJuPUdyaW1tYm9ybiBydD04MzYzOTkwMTQKfiMhIHRpZD04MzYzOTg2NTEKPkRlbm4gZGllIFd1cnplbCBhbGxlbiBVZWJlbHMgaXN0IHVuZCBibGVpYnQgRG9uIE9ldHRpLgoKaHVjaC4uLiB3aWxsc3QgZHUgZGFtaXQgYmVoYXVwdGVuLCBpY2ggc2VpIG9ldHRpcyB6d2VpdGllPwoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9jaHplaXQgKEphcmllbCwgIDMuIEp1bCAxOTk2LCAxOTowNzo1NCk6Cn4jISBybj1KYW5pY2UgcnQ9ODM2NDAzNDIyCn4jISB0aWQ9ODM2NDAzNDIyCk1hbm4gb2ggbWFubiwgZGFzIGdlaHQgYmVpIGRpciBqYSBmaXggOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEhvY2h6ZWl0IChKYW5pY2UsICA0LiBKdWwgMTk5NiwgMDA6NTk6MDMpOgp+IyEgcm49QW5ha2luIHJ0PTgzNjQxMzMwMwp+IyEgdGlkPTgzNjQwMzQyMgp3ZXIgc2FndCBkZW5uLCBkYXMgZXMgbWl0IENyb2xsYSBhdXMgaXN0ID8gOi0pCgpKYW5pY2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9wZW4gQWlyIChadWVyaWxldSwgIDQuIEp1bCAxOTk2LCAwNDowMjozNCk6CkhhbGxvIExldXRlLApBbSAxMiAtIDE0IEp1bGkgaXN0IGVzIG1hbCB3aWVkZXIgc293ZWl0LCBkYXMgT3BlbiBBaXIgQmFkIFJhZ2F6IG9lZmZuZXQgc2VpbmUKUGZvcnRlbi4KRGFzIHJvbWFudGlzY2hlIGtsZWluZSBPcGVuIEFpciBpbiBkZXIgYWx0ZW4gQnVyZ3J1aW5lIHZvbiBiYWQgUmFnYXogZGFzIHVudGVyCmRlbSBuYW1lbiBRdWVsbHJvY2sgZ2VmdWVocnQgd2lyZCBpc3Qgc2ljaGVyIGF1Y2ggZnVlciBBdXNsYWVuZGVyIGVpbmVuIGJlc3VjaAp3ZXJ0LgpEZXIgcm9tYW50aXNjaGUgYXVzYmxpY2sgdWViZXIgZGllIFNjaHdlaXplciBBbHBlbiwgZGllIGd1dGUgTHVmdCB1bmQgZGllIGd1dGUKU3RpbW11bmcgd2lyZCBzaWNoZXIgYXVjaCBEaXIgZ2VmYWxsZW4uIEVzIGlzdCBlaW4gcmVhbHRpdiBrbGVpbmVzIE9wZW4gQWlyLApkYXMgaGVpc3N0IHNvIHVtIGRpZSAzMDAwIGxldXRlIGFiZXIgZGFmdWVyIGluIGVpbmVyIGlkeWxpc2NoZW4gTGFuZHNjaGFmdCBpbQpLYW50b24gR3JhdWJ1ZW5kZW4uIFVlYmVyaWdlbnMgd2VyZGUgaWNoIGRvcnQgaW0gU2ljaGVyaGVpdHNkaWVuc3QgYXJiZWl0ZW4KdW5kIGRvcnQgYW56dXRyZWZmZW4gc2Vpbi4gSWNoIHd1ZXJkIG1pY2ggZnJldWVuIGF1Y2ggamVtYW5kIGF1cyBkZW0KTW9yZ2VuZ3JhdWVuIGRvcnQgYW56dXRyZWZmZW4gdW5kIGljaCBnZWJlIGF1Y2ggZ2VybmUgd2VpdGVyZSBpbmZvcm1hdGlvbmVuCndlbm4gaW50cmVzc2UgZGEgaXN0LgpGdWVyIG1laW5lbiBnZXNjaG1hY2sgaXN0IGVzIGRhcyBzY2hvZW5uc3RlIE9wZW4gQWlyIGRlciBnYW56ZW4gU2Nod2Vpei4gRGllCk11c2lrIHNpbmQgbWVpc3RlbnMgbmV3Y29tbWVyIGJhbmRzIGF1cyBkZW0gSW4gdW5kIEF1c2xhbmQuIERpZQpNdXNpa3JpY2h0dW5nZW4gZ2VoZW4gdm9uIEJsdWVzLCBKYXp6LCBSb2NrLCBIYXJkcm9jayBiaXMgSGVhdnkgdW5kClRocmFzaC1NZXRhbC4gV2llIG9iZW4gc2Nob24gcGFhcm1hbCBnZXNhZ3QsIGZpbmRldCBlcyBpbiBlaW5lciBhbHRlbgpCdXJncnVpbmUgc3RhdHQgZGllIGF1ZiBlaW5lbSBrbGVpbmVuIEh1ZWdlbCBzdGVodCBpbiBtaXR0ZW4gdm9uIEJlcmdrZXR0ZW4KdW1nZWJlbi4gRXMga2FubiBkb3J0IGluIGRlciBOYWNodCByZWxhdGl2IGt1ZWhsIHdlcmRlbiwgZGFoZXIgc2luZCB3YXJtZQpLbGVpZGVyIHZvbiB2b3J0ZWlsLiBadXIgVWViZXJuYWNodHVuZyBlbXBmZWhsZSBpY2ggZWluIHNjaGxhZnNhY2sgdW5kIGVpbgpaZWx0IGRhcyBtYW4gYXVmIGRlbSBjYS4gMzBtIGVuZGZlcm50ZW4gWmVsdHBsYXR6IGhpbnN0ZWxsZW4ga2Fubi4KCkRJRSBCQU5EUzoKClBvc2ggUGVvcGxlCmNyZWF0aW9uCkZhaWx1cmVzCkxlbW9uYmFiaWVzCkNvbnRyYXN0IEZhbWlseSAoY29tcHJlc2VudGVkIGJ5IFRIRSBMSVRUTEUgQklHIE9ORSkKbm9haCBMLlQuQi4KSWthcnVzClIuIERlc2lkZXJpIFNob3cKRUFSCkRpZSBTY2hhbmRlClBhdWxvIE1lbmRvbmNhCkdpZ2kgTW90bwotCkNhdHRsZSBHcmlkClZvbGxnYXMKSG9lcyduJ09laHIKVGhlIFNtdWZmcwpIJ2VkCkJlZWxpbmcgU3RhZ3MKTGEgZ3JhbmRlCnNlbnNhdGlvbiBkZWwga2lra2VyaWtpClNtYXNoaW5nIFBvdGF0b2VzCmFydCAmIHdlaXNlCkxvdHVzCgoKRElFIFZFUktBVUZTU1RFTExFTiBJTSBJTi8gVU5EIEFVU0xBTkQ6CgpWb3J2ZXJrYXVmIFNjaHdlaXo6CkZpbGlhbGVuIGRlciBTdC4gR2FsbGlzY2hlbiBrYW50b25hbGJhbmsgQmFkIFJhZ2F6LCBXYWxlbnN0YWR0LCBNZWxzLCBTYXJnYW5zLApTdC4gR2FsbGVuLVplbnRydW0sIHdlZXNlbiwgVXpuYWNoLCBCdWNocywgQWx0c3RhZXR0ZW4sIFN0LiBNYXJncmV0aGVuCihpbmhhYmVyIGRlcyBKdWdlbmRrb250b3MgLUtCLWxpdmUtW0RbRFtEW0RbW0NbQ1tDW0NbQ1tDIGVyaGFsdGVuIGRlbgpGZXN0aXZhbHBhc3MgYmVpIGRlbiBhdWZnZWZ1ZWhydGVuIEthbnRvbmFsYmFuayBuaWVkZXJsYXNzdW5nZW4gc2ZyLiAxMC4tLQpndWVuc3RpZ2VyKTsgVmVya2VocnN2ZXJlaW4gQmFkIFJhZ2F6OyBUZWxlY29tLVNob3BzIGluIE1lbHMgKHBpem9scGFyayksCkNodXIsIFN0LiBNb3JpdHosIERhdm9zLCBCdWNoczsgTXVzaWMgT2ZmaWNlIExhbmRxdWFydDsgTXVzaWtoYXVzIEhlaXoKR2xhcnVzO211c2lnLUVnZ2FlIE5pZWRlcnVybmVuO011c2lraGF1cyBTY2huZWlkZXIgdXpuYWNoOyBldXJvPDI2OwoKT2VzdGVyZWljaDogTXVzaWtsYWRlbiBGZWxka2lyY2ggLSBpbGxwYXJrLCBCcmVnZW56IEJhaG5ob2ZzdHJhc3NlOwoKRGV1dHNjaGxhbmQ6IFNvdW5kY2lyY3VzIHJhdmVuc2J1cmdbRFtEW0RbRFtEW0RbRFtEW1JbQ1tDW0NbQ1tDW0NbQ1tDW0MKCk1hbiBlcmhhbHRldCBhYmVyIGF1Y2ggZ2VudWcgVGlja2V0cyBhbiBkZXIgS2Fzc2UgYW0gT3Blbi1BaXIsIFZvcnZlcmthdWYgaXN0Cm5pY2h0IHVuYmVkaW5ndCBub2V0aWcgYWJlciBldHdhcyBiaWxsaWdlci4gQWNoLCBhdWNoIHdlbm4gaWNoIGRvcnQgYXJiZWl0ZQprYW5uIGljaCBldWNoIEtFSU5FTiBmcmVpZW4gRWludHJpdHQgYmVzb3JnZW4uIExlaWRlciwgYWJlciBlcyBpc3QgbmljaHQKbW9lZ2xpY2ggaWNoIGhhYmUgc2Nob24gZ2VmcmFndCA9OikKCkFlbW0uLiBkaWUgUHJlaXNlLi4gamEgZGllIHdlaXNzIGljaCBuaWNodCBhdXN3ZW5kaWcgYWJlciBzaWUgc2luZCByZWFsdGl2Cmd1ZW5zdGlnLiBJY2ggZ2xhdWIgc28gdW0gZGllIDI1LTQwIHNmci4tLSwgaWNoIGthbm4gbWljaCBiZWkgSW50cmVzc2Ugbm9jaApnZW5hdWVyIGluZm9ybWllcmVuLiAKCkJlaSBGcmFnZW4gb2RlciBwcm9ibGVtZW46IE1HLU1haWwgYW4gbWljaCBvZGVyIGRpcmVrdCBlLU1haWwgYW46CkRlbHBoaW5AU3dpeC5jaAoKVHNjaHVlc3MgemFlbWUgISAgICAgICAgICAgICAgenVlcmlsZXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEhvY2h6ZWl0IChNb3Jnb3RoLCAgNC4gSnVsIDE5OTYsIDA2OjU5OjA0KToKfiMhIHJuPVRhc2hhIHJ0PTgzNjQwNjI0MQp+IyEgdGlkPTgzNjQwMzQyMgpkdSBhbHRlcyBmZXJrZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXQgKFlhbnRybywgIDQuIEp1bCAxOTk2LCAwNzo0ODozMSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM2NDA2MTY5Cn4jISB0aWQ9ODM2NDAzNDIyCgpOaWNodCBudXIsIGRhc3MgZXMgendlaSBGcmF1ZW4gc2luZCwgbmVpbiwgYW0gRnJ1ZWhlbiBNb3JnZW4gZGVzIDQuNy4gaXN0IGRpZQplaW5lIGRhdm9uIGF1Y2ggaW1tZXIgbm9jaCBhbmRlcnN3YWVydGlnIFZlcmhlaXJhdGV0IDotKQoKV3VuZGVyIHVlYmVyIFd1bmRlci4uLiB3ZXIgaGF0IGRlbm4gaGllciBkZW4gSXNsYW0gZWluZ2VmdWVocnQ/CgpZYW50cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXQgKE9ya3RvZXRlciwgIDQuIEp1bCAxOTk2LCAxMjowNDoxMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM2NDA2MTY5Cn4jISB0aWQ9ODM2NDAzNDIyCkhleSBHcmltKiBzY2hhdSBkb2NoIG1hbCBldHdhcyBnZW5hdWVyIGhpbi4uLiBKYWljZSBpc3QgZG9jaCBzY2hvbiBtaXQgZWluZXIKRnJhdSB2ZXJoZWlyYXRldC4gRGFzIHdpcmQgZGFubiBlaW5lIERyZWllcmVoZSAocmVpbiBGcmF1ZW4pIHdlcmRlbi4uCk9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzaW1vbiAoTGFyaXNzYSwgIDQuIEp1bCAxOTk2LCAxNTo0NzoyNik6CkhpIDopCgpLYW5uIHNpY2ggbm9jaCBqZW1hbmQgYW4gU2ltb24xIGVyaW5uZXJuPyBXaWUga29tbXQgbWFuIGFuIGRlbSBTdW1wZmxpbmcgCnZvcmJlaT8gCgpMYXJpIC0gYW0gdmVyendlaWZlbG4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEhvY2h6ZWl0IChDcm9sbGEsICA0LiBKdWwgMTk5NiwgMTc6MjA6NDQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgzNjQwNjQ0MQp+IyEgdGlkPTgzNjQwMzQyMgpOZWluLCBiZWkgSmFuaWNlcyB1bmQgbWVpbmVyIEhvY2h6ZWl0IGlzdCBuaWNodHMgbWFuaXB1bGllcnQgd29yZGVuLCBqZXR6dApmdW5rdGlvbmllcmVuIG51ciBWZXJsb2J1bmdlbiBub2NoIG5pY2h0IHp3aXNjaGVuIGdsZWljaGdlc2NobGVjaHRsaWNoZW4KUGFydG5lcklubmVuLiBJY2ggaG9mZmUsIGRhc3MgYXVjaCBkaWVzZXIgQnVnIGJhbGQgYXVzZ2ViYXV0IHdpcmQuCgpDcm9sbGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0IChBbmFraW4sICA0LiBKdWwgMTk5NiwgMTk6MDQ6MjgpOgpBbHNvLAoKZGFzIGthbm4gamEgbnUgbmljaHQgc2Vpbi4gSWNoIHdhcm5lIGVudHNjaGllZGVuIHZvciBkaWVzZW4gbmV1bW9kaXNjaGVuCkhvY2h6ZWl0c3plcmVtb25pZW4uIERhIHdpcmQgZGllIEdlbWVpbmRlIG5vY2ggbmljaHQgZWlubWFsIGdlZnJhZ3QsIG9iCmplbWFuZCBFaW53YWVuZGUgZ2VnZW4gZGllIEVoZSBoYXQuIERBUyBEQVJGIFNPIE5JQ0hUIFdFSVRFUkdFSEVOLgpNYWdpZXJ3aWxsa3VlciBiZWhlcnJzY2h0IGFsbGVzLiBOaXggbWVociBtaXQgUHJpZXN0ZXIgdW5kIEVpbnNwcnVjaC4KRGFzIEVuZGUgbmFodC4gU08gS0FOTiBFUyBOSUNIVCBXRUlURVJHRUhFTi4gCgpBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9jaHplaXQgKEJlbmRlaWdpZCwgIDQuIEp1bCAxOTk2LCAxOTozNToyMik6Cn4jISBybj1BbmFraW4gcnQ9ODM2NDk5ODY4Cn4jISB0aWQ9ODM2NDk5ODY4CkljaCBhbHMgenVzdGFlbmRpZ2VyIE1hZ2llciAoaW4gZGllc2VtIHNwZXppZWxsZW4gRmFsbCB3b2hsZ2VtZXJrdCEpIEhBQkUKYXVzZHJ1ZWNrbGljaCBnZWZyYWd0LCBvYiBqZW1hbmQgd2FzIGRhZ2VnZW4gaGFldHRlLiBIYXQgbmllbWFuZCwgYXVzc2VyCkNyb2xsYSAoaGFiIGljaCBnZWtsYWVydCkgdW5kIHNvIG5lbSBkb29mZW4gVGVzdGllIChpcnJlbGV2YW50IDopICkgQXVzc2VyZGVtCndhciBkYXMgZGllIEtsZXJpa2VyaG9jaHplaXRzemVyZW1vbmllLCBhbHNvIGZsYW1lcyBhbiBXYXJnb24uIERhcyBrb2VubmVuCmF1Y2ggbm9ybWFsZSBTcGllbGVyIG1hY2hlbiwgbmljaHQgbnVyIE1hZ2llciA6KQoKWidwYXIgU2VydnUsCiAgICAgICAgQmVuZGVpZ2lkLCBhbWVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdCAoQW5ha2luLCAgNC4gSnVsIDE5OTYsIDE5OjM4OjAyKToKfiMhIHJuPUJlbmRlaWdpZCBydD04MzY1MDE3MjIKfiMhIHRpZD04MzY0OTk4NjgKTmFqYSBhbHNvIGljaCBoYWIgZGF2b24gbml4IGdlaG9lcnQgdm9uIHdlZ2VuIEZyYWdlbiBvbiBqZW1hbmQgd2FzCmRhZ2VnZW4gaGF0LgoKQW5ha2luLgoKUC5TLjogVGVzdGllcyBzaW5kIG5pY2h0IGRvb2YuLi5pY2ggZGVuayBkYSBudXIgYW4gbWVpbmUgVmVybG9idGUuLi47KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdCAoQWNyaW1vbiwgIDQuIEp1bCAxOTk2LCAyMDowNDoxMyk6Cn4jISBybj1CZW5kZWlnaWQgcnQ9ODM2NTAxNzIyCn4jISB0aWQ9ODM2NDk5ODY4CkRhcyBzb2xsdGUgc2Nob24gZGVyIFByaWVzdGVyIGZyYWdlbiwgb2IgamVtYW5kIHdhcyBkYWdlZ2VuIGhhdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoTHVnLCAgNC4gSnVsIDE5OTYsIDIwOjA1OjA2KToKfiMhIHJuPUFuYWtpbiBydD04MzY0OTk4NjgKfiMhIHRpZD04MzY0OTk4NjgKTW9pbiwKCm9obmUgRWluc3BydWNoIG1hY2hlbiBIb2NoemVpdGVuIGRvY2gga2VpbmVuIFNwYXNzIG1laHIuCgpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEhvY2h6ZWl0IChZYW50cm8sICA0LiBKdWwgMTk5NiwgMjA6MDU6NTApOgp+IyEgcm49QWNyaW1vbiBydD04MzY1MDM0NTMKfiMhIHRpZD04MzY0OTk4NjgKQWNyaSwgd2VubiBCZW5kIGRhcyBtaXQgZGVyIEhvY2h6ZWl0IGRlciBrbGVyaWtlciBnZW1hY2h0IGhhdCwgZGFubiBJU1QgRVIKU0VMQkVSIGVpbiBQcmllc3Rlci4uLi4KCllhbnRyb3MgVGlwIGRlciBXb2NoZSBmdWVyIEFjcmk6IEVyc3QgZGVua2VuLCBkYW5uIHNjaHJlaWJlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSG9jaHplaXQgKE9ya3RvZXRlciwgIDQuIEp1bCAxOTk2LCAyMDowNjo0NCk6Cn4jISBybj1ZYW50cm8gcnQ9ODM2NTAzNTUwCn4jISB0aWQ9ODM2NDk5ODY4CndhcyBoaW5kZXJ0IGlobiAoZGVuIFByaWVzdGVyKSBkYW5uIGFsc28genUgZnJhZ2VuID8KT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEhvY2h6ZWl0IChZYW50cm8sICA0LiBKdWwgMTk5NiwgMjA6MDc6MzApOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTgzNjUwMzYwNAp+IyEgdGlkPTgzNjQ5OTg2OApoYXQgZXIgZG9jaC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdCAoUmFmZmksICA0LiBKdWwgMTk5NiwgMjA6MTA6NDEpOgp+IyEgcm49THVnIHJ0PTgzNjUwMzUwNgp+IyEgdGlkPTgzNjQ5OTg2OAoKSmF1LCBiaW4gYXVjaCBkYWZ1ZXIgZGFzIGJlaSBkZXIgS2xlcmlrZXJob2NoemVpdCBkZXIgRWluc3BydWNoIGVpbmdlYmF1dAp3aXJkIQpEYXMgaGF0IGVpbmZhY2ggdHJhZGl0aW9uIDopCgoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXQgKEFuYWtpbiwgIDUuIEp1bCAxOTk2LCAwODozMjowMSk6Cn4jISBybj1MdWcgcnQ9ODM2NTAzNTA2Cn4jISB0aWQ9ODM2NDk5ODY4ClNvIGpldHp0IG11ZXNzdGVuIG5vY2ggQ3JvbGxhIHVuZCBHcml6YWJlbGxhIGhlaXJhdGVuLgpEYW5uIGlzdCBqZWRlciBtaXQgamVkZW0gZGEgdmVyaGVpcmF0ZXQuCgpBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb2NoemVpdCAoV2FyZ29uLCAgNS4gSnVsIDE5OTYsIDEwOjI3OjQ4KToKfiMhIHJuPVJhZmZpIHJ0PTgzNjUwMzg0MQp+IyEgdGlkPTgzNjQ5OTg2OAogIEhpIQpEZXIgUHJpZXN0ZXIgKndpcmQqIGF1ZmdlZm9yZGVydCwgbmFjaCBFaW5zcHJ1ZWNoZW4genUgZnJhZ2VuLiBXZW5uIGVyIGRpZXNlbgpQdW5rdCBtaXQgZWluZW0gImtlaW5lIGVpbndhZW5kZSIgdWViZXJnZWh0LCBpc3QgZGFzIHNlaW5lIFNhY2hlLgpBYmdlc2VoZW4gdm9uIGRlciBPcnRzdW5hYmhhZW5naWdrZWl0IHNvbGx0ZSBkZXIgV2l0eiBkZXIgVHJhdXVuZ2VuIGR1cmNoIGRpZQpLbGVyaWtlciBlaWdlbnRsaWNoIGRhcmluIGxpZWdlbiwgZGFzcyBlcyBoYWx0IEtFSU4gZmVzdGVzIFNjaGVtYSBnaWJ0CihhYmdlc2VoZW4gdm9tIHdpcmtsaWNoIG5vdHdlbmRpZ3N0ZW4pLCBzb25kZXJuIGRhc3MgZGVyIFByaWVzdGVyIGRpZSBUcmF1dW5nCmZyZWkgZ2VzdGFsdGVuIGthbm4uCldlbm4gZGllc2UgZnJlaWUgR2VzdGFsdHVuZyBzaWNoIGFsbGVyZGluZ3MgYXVmIHJhdHotZmF0ei0wLzgvMTUtVHJhdXVuZ2VuCmJlc2NocmFlbmt0LCBzb2xsdGUgbWFuIGZ1ZXJzIG5hZWNoc3RlIE1hbCBuZW4gYW5kZXJlbiBQcmllc3RlciBpbiBFcndhZWd1bmcKemllaGVuIDspCiAgV2FyZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBIb2NoemVpdCAoU251Z2dsZSwgIDUuIEp1bCAxOTk2LCAxMjo0MjozOSk6Cn4jISBybj1XYXJnb24gcnQ9ODM2NTU1MjY4Cn4jISB0aWQ9ODM2NDk5ODY4CldhcyBoZWlzc3QgZGVubiBkYSBmdWVycyBuYWVjaHN0ZSBtYWw/CgpXaWUgb2Z0IHdvbGx0ZXN0IER1IGRlbm4gbm9jaCBoZWlyYXRlbj8KClNudWdnbGUgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBIb2NoemVpdCAoU2NocnVtcGZpLCAgNS4gSnVsIDE5OTYsIDE1OjA5OjI0KToKfiMhIHJuPUNyb2xsYSBydD04MzY0OTM2NDQKfiMhIHRpZD04MzY0MDM0MjIKRGFydW0gaGFiIGljaCBSaWt1cyBzY2hvbiBvZnQgZ2ViZXRlbi4gSWNoIG11c3N0ZSBtaWNoIGJlaSBtZWluZXIgVmVybG9idW5nCm1pdCBkZXIgbGllYmxpY2hlbiBCbG9vZGdvcmUgZXh0cmEgdW1vcGVyaWVyZW4gbGFzc2VuLiAKU2NocnVtcGZpIHNhZ3Q6IEhldGVybyBtYWNodCBhdWNoIG5pY2h0IGZyb2ghCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb2NoemVpdCAoU2NocnVtcGZpLCAgNS4gSnVsIDE5OTYsIDE1OjEwOjM3KToKfiMhIHJuPUFuYWtpbiBydD04MzY1MDE4ODIKfiMhIHRpZD04MzY0OTk4NjgKRGFzIHdpcmQgc2llIGFiZXIgZnJldWVuIDopClMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMYW5nLCBsYW5nIGlzdHMgaGVyLi4uIChMb2NvLCAgNi4gSnVsIDE5OTYsIDE0OjEzOjA5KToKTGFuZywgbGFuZyBpc3RzIGhlciAtIGRpZSBlcnN0ZSBvZmZpemllbGxlIE1HLVBhcnR5IGltIEphbnVhciAxOTk0LiAiTGVpZGVyCnNpbmQga2VpbmUgRm90b3MgdmVyZnVlZ2JhciIgc3RlaHQgaW0gV1dXIC4uLgpVbSBkaWVzZW4gWnVzdGFuZCB6dSBiZWVuZGVuLCBzdWNoZSBpY2ggamVtYW5kZW4sIGRlciBzaWNoIGJlcmVpdGVya2xhZXJlbgprb2VubnRlLCBtZWluZSBGb3RvcyB6dSBzY2FubmVuLiBFcyBzaW5kIHp3YXIgbnVyIGVpbiBwYWFyIFN0dWVjaywgdW5kIGF1Y2gKYXVzIGRpZXNlbiBtdXNzIGljaCBub2NoIHdlbGNoZSByYXVzbmVobWVuLCBhYmVyIGJlc3NlciBhbHMgbmljaHRzLiBEaWUKbGVnZW5kYWVyZSBWZXJzdGVpZ2VydW5nIHZvbiBCb2luZyBqZWRlbmZhbGxzIGlzdCBkYWJlaSA6KQoKQWxzbzogV2VyIGlzdCB0ZWNobmlzY2ggaW4gZGVyIExhZ2UgdW5kIGJlcmVpdCwgZWluaWdlIFBhcGllcmJpbGRlciB6dSBzY2FubmVuCnVuZCBpbiBkaWUgTUctU2VpdGUgZWluenViaW5kZW4/IEljaCB3dWVyZGUgc2llIChsZWlod2Vpc2UpIHBlciBQb3N0Cnp1c2NoaWNrZW4uCgpadXZlcmxhZXNzaWdlIEFuZ2Vib3RlIGJpdHRlIHBlciBNYWlsIGFuIG1pY2guCgotIExvY28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMYW5nLCBsYW5nIGlzdHMgaGVyLi4uIChNb3Jnb3RoLCAgNi4gSnVsIDE5OTYsIDE0OjE4OjMwKToKfiMhIHJuPUxvY28gcnQ9ODM2NjU1MTg5Cn4jISB0aWQ9ODM2NjU1MTg5Ckpvb28sIGdlbmF1IGRhcyBnbGVpY2hlIFByb2JsZW0gaGFiIGljaCBhdWNoLgpJY2ggaGFiIG5vY2ggRm90b3Mgdm9uIHVuc2VyZW0gKEJpZW5jaGVuJkljaCkgQXVzZmx1ZyB6dSBGcmVtZGVyIHVuZCBTaWJvcml0LgpTaW5kIHp3YXIga2VpbmUgUGFydHliaWxkZXIsIGtvZW5udGVuIGFiZXIgdW50ZXIgS3VsdHVyLCBLdWx0dXJlbGxlciBBdXN0YXVzY2gKaWhyZW4gUGxhdHogZmluZGVuLiBBbHNvIGF1Y2ggZnVlciBtaWNoIGdpbHQgZGllIEZyYWdlIG5hY2ggZWluZW0KU2Nhbm5lcitCZWRpZW5lci4KTW9yZ290aAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHNpbW9uIChadWVyaWxldSwgIDcuIEp1bCAxOTk2LCAxNjo1NTo0NCk6Cn4jISBybj1MYXJpc3NhIHJ0PTgzNjQ4ODA0Ngp+IyEgdGlkPTgzNjQ4ODA0NgpzYWxpLApOdW4gbWFuIGlzc3QgZGFzIGVyc3RlbWFsIHNlaW4gc3VtcGZnZXJpY2h0IHVuZCBiZWltIDIuIG1hbCBzY2h1ZXR0ZXQgbWFuIGVzCmlobiBlaW4gR2xhcyBkYXMgbWFuIGJlaW0gRHJ1aWRlLCAoZGFzIGhhdXMgbWl0IGRlciBMZWl0ZXIgZGF2b3IpIGZpbmRldC4KCnRzY2h1ZXNzIHVuZCB2aWVsIHNwYXNzLi4uICB6dWVyaWxldQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSm9iID8/PyAoTGFyaXNzYSwgIDguIEp1bCAxOTk2LCAyMToyMDozNyk6CkhpICwpCkp1bmdlIGF1ZnN0cmViZW5kZSBQaHlzaWtlcmluIHN1Y2h0IGJlemFobHRlIERvYy1BcmJlaXQgaW0gCnNjaG9lbmVuIFJ1aHJwb3R0IG9kZXIgTXVlbnN0ZXIgdW5kIFVtZ2VidW5nLgoKTGFyaSwgc2V1ZnplbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSm9iID8/PyAoSGFyZGlsLCAgOS4gSnVsIDE5OTYsIDEzOjU4OjI3KToKfiMhIHJuPUxhcmlzc2EgcnQ9ODM2ODUzNjM3Cn4jISB0aWQ9ODM2ODUzNjM3CgoiLi4uIGltIHNjaG9lbmVuIFJ1aHJwb3R0Li4uIiAKSG1tLiBTY2hvZW4gaXN0IGFtIFJ1aHJwb3R0IGphIGRvY2ggcmVjaHQgd2VuaWcuIER1IHdpbGxzdCBhbHNvIG1heGltYWwgbmFjaApIYXR0aW5nZW4gb2RlciBFc3Nlbi1XZXJkZW4/CgotSGFyZGlsLiBad2FuZ3MtUG90dGJld29obmVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBKb2IgPz8/IChQYW1wZXJzLCAgOS4gSnVsIDE5OTYsIDE0OjAwOjQ0KToKfiMhIHJuPUhhcmRpbCBydD04MzY5MTM1MDcKfiMhIHRpZD04MzY4NTM2MzcKCiIuLi4gaW0gc2Nob2VuZW4gUnVocnBvdHQuLi4iIApIbW0uIFNjaG9lbiBpc3QgYW0gUnVocnBvdHQgamEgZG9jaCByZWNodCB3ZW5pZy4KCkhhcmRpbCwgSGFyZGlsLCBIYXJkaWwuLi4gRHUgaGFzdCBqYSBlY2h0IGtlaW5lIEFobnVuZy4uLiBBYmVyIE1lZW56IGJsZWlidApNZWVueiwgd2llPwoKUnVocnBvdHQgaXN0IHRvdGFsIHNjaG9lbi4gU2VsYnN0IEJvdHRyb3AsIGF1Y2ggd2VubnMgbWlyIGtlaW5lciBnbGF1YmVuIHdpcmQuCgpQYW1wZXJzLiBFc3NlbmVyLiBEb3J0bXVuZGVyLiBSdWhyaS4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBKb2IgPz8/IChIYXJkaWwsICA5LiBKdWwgMTk5NiwgMTQ6MDg6MTEpOgp+IyEgcm49UGFtcGVycyBydD04MzY5MTM2NDQKfiMhIHRpZD04MzY4NTM2MzcKCkphdS4gTWVlbnogYmxlaWJ0IE1lZW56LCBzb2xhbmcgZHVyY2ggTWVlbnogbm9jaCBmbGllc3N0IGRlciBSaG9pLCBzb2xhbmdzCm5vY2ggZ2liIFdlY2ssIFdvcnNjaHQgdW4gV29pLgpBbGxlaW4gZGllIE1lZW56ZXIgQWx0c3RhZHQgaXN0IHNjaG9uIGFlbHRlciB1bmQgc2Nob2VuZXIgYWxzIGRlciBnYW56ZSBQb3R0Cnp1c2FtbWVuLgoKTnVuIGd1dCwgbWl0IGplbWFuZGVtLCBkZXIgYXVmIEdlbHNlbmtpcmNoZW5lciBCYXJvY2sgc3RlaHQsIGhhYiBpY2ggZXMgZWgKbmljaHQgbm9ldGl1ZywgbWljaCB1ZWJlciBLdWx0dXIgenUgdW50ZXJoYWx0ZW4uIDopCgotSGFyZGlsLiBTdWVkbGFlbmRlci4KCi0+IG1vdmUgKHRoaXNfYXJ0aWNsZSkgLT4gZC5mcmVtZGVuZnVlaHJlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSm9iID8/PyAoUGFtcGVycywgIDkuIEp1bCAxOTk2LCAxNDoxNjoxMyk6Cn4jISBybj1IYXJkaWwgcnQ9ODM2OTE0MDkxCn4jISB0aWQ9ODM2ODUzNjM3CkFsbGVpbiBkaWUgTWVlbnplciBBbHRzdGFkdCBpc3Qgc2Nob24gYWVsdGVyIHVuZCBzY2hvZW5lciBhbHMgZGVyIGdhbnplIFBvdHQKenVzYW1tZW4uCgpEaWUgV2VyZGVuZXIgQWJ0ZWlraXJjaGUgaXN0IGF1cyBkZW0gOC4gKGluIFdvcnRlbiBBY2h0ZW4pIEphaHJodW5kZXJ0Li4uClNvIGFsdCBpc3QgZGllIE1lZW56ZSBBbHRzdGFkdCBiZXN0aW1tdCBuaWNodC4uLiA6LSkKCi1IYXJkaWwuIFN1ZWRsYWVuZGVyLgpXaWVzbyBzdHVkaWVyc3RlIGRhbm4gaW4gRG9ydG11bmQ/IDstKSkpCgpQYW1wZXJzLiBGaW5kZXQgZGVuIFJ1aHJwb3R0IHNjaG9lbmVyLCBsZWJlbmRpZ2VyIHVuZCBpbnRlcmVzc2FudGVyIGFscyBkaWUKZ2FuemVuIGtsZWluZW4gS2FlZmZlciwgZGllIGVzIGluIERldXRzY2hsYW5kIG5vY2ggc28gZ2lidC4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBKb2IgPz8/IChMdWcsICA5LiBKdWwgMTk5NiwgMTk6MzM6MjMpOgp+IyEgcm49UGFtcGVycyBydD04MzY5MTQ1NzMKfiMhIHRpZD04MzY4NTM2MzcKTW9pbiBIYXJkaWwsCgo4LiBKaC4gaXN0IGphIHRvbGwsIGFiZXIgc2Nob25tYWwgd2FzIHZvbiBNb2d1bnRpYWN1bSBnZWhvZXJ0PyBXYXMgc2FndCBEaXIKZGFzPwoKU3VlZGxhZW5kZXIgZWlnZW50bGljaCBuaWUgdmVydGVpZGlnZW5kCgpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEpvYiA/Pz8gKFdvb2R5LCAxMC4gSnVsIDE5OTYsIDAzOjM3OjEzKToKfiMhIHJuPUx1ZyBydD04MzY5MzM2MDMKfiMhIHRpZD04MzY4NTM2MzcKCjguIEphaHJodW5kZXJ0PyBIYXQgaGllciBqZW1hbmQgOC4gSmFocmh1bmRlcnQgZ2VzYWd0PwoqYWJicmVjaCogICpsYWNoKiAgKnBydXN0KiAgKmphcHMqICA+OikKCndvb2R5Li0gOikKKG5vY2ggc3VlZGxpY2hlciBhbHMgU3VlZGxhZW5kZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEpvYiA/Pz8gKEd1bGR1a2F0LCAxMC4gSnVsIDE5OTYsIDE4OjEzOjIyKToKfiMhIHJuPUhhcmRpbCBydD04MzY5MTM1MDcKfiMhIHRpZD04MzY4NTM2MzcKClBhc3MgYmxvc3MgYXVmIGR1IHp1Z2VyZWlzdGVyLCBzb25zdCBzY2htZWlzc2VuIHdpciBkaWNoIHdpZWRlciByYXVzIGF1c3NlbQpwb3R0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFyYWxkIFNjaG1pZHQgU2hvdyAoR3JpbW1ib3JuLCAxMC4gSnVsIDE5OTYsIDIwOjI0OjAyKToKCk1vcmdlbiwgYW0gMTEuNy4gaGF0IGRpZSBIYXJhbHMgU2NobWlkdCBTaG93IGRhcyBUaGVtYSBJbnRlcm5ldCwgdS5hLiB3aXJkIGRhCmF1Y2ggaW0gRmVybnNlaGVuIGdlY2hhdHRldC4gV2lyZCB2aWVsbGVpY2h0IHNvZ2FyIGludGVyZXNzYW50LCBhbHNvIHNjaGF1dApkb2NoIHJ1aGlnIG1hbCByZWluLCB3ZW5uIGlociBTQVQxIGVtcGZhbmdlbiBrb2VubnQuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCwgdGhlIE9uZSBhbmQgT25seS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYXJhbGQgU2NobWlkdCBTaG93IChHdWxkdWthdCwgMTEuIEp1bCAxOTk2LCAwODoyMjoxMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM3MDIzMDQyCn4jISB0aWQ9ODM3MDIzMDQyCgpJY2ggZGFjaHRlLCBkZXIgU2VuZGVyIGhlaXNzdCBTY2hyb3R0IDEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGFyYWxkIFNjaG1pZHQgU2hvdyAoR3JpbW1ib3JuLCAxMS4gSnVsIDE5OTYsIDA4OjU0OjI0KToKfiMhIHJuPUd1bGR1a2F0IHJ0PTgzNzA2NjEzMAp+IyEgdGlkPTgzNzAyMzA0MgoKV3VuZGVydCBtaWNoIG5pY2h0LCBkYXNzIER1IGRhcyBkZW5rc3QuIEljaCBiaW4gYWxsZXJkaW5ncyBsZWljaHQgdmVyYmx1ZWZmdCwKZGFzcyBEdSBEZWluZSBJZ25vcmFueiB1bmQgRGVpbiBVbndpc3NlbiBzbyB1bmJla3VlbW1lcnQgenVyIFNjaGF1IHN0ZWxsc3QuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgTUZHIHZvbiBOVy1EIG5hY2ggQmVybGluIHp1ciBQYXJ0eSAoTHVnLCAxNy4gSnVsIDE5OTYsIDAzOjQ4OjE3KToKTW9pbiwKCmRhIGljaCBpbiBPbGRlbmJ1cmcgd2VpbGVuIHdlcmRlIHN1Y2hlIGljaCBlaW5lIE1GRyB6dXIgUGFydHkgbmFjaCBCZXJsaW4uCkVudHdlZGVyIEZyZWl0YWcgZ2VnZW4gQWJlbmQgb2RlciBTYW1zdGFnLiBPc25hYnJ1ZWNrIG9kZXIgQnJlbWVuIGtlaW4gUHJvYmxlbQphYmVyIGFiIE11ZW5zdGVyIG51ciBhbSBTYW1zdGFnLiBBbSBTb25udGFnIHp1cnVlY2sgbmFjaCBNdWVuc3RlciB3YWVyZSBvLmsuIQpCaXR0ZSBiYWxkIG1lbGRlbiwgZGVubiBhYiBTb25udGFnIGJpbiBpY2ggbmljaHQgbWVociBpbSBNVUQuCgpEYW5rZQpMdWcKClAuUy46IE5vY2ggaXJnZW5kd28gZWluIFplbHRwbGFldHpjaGVuIGZyZWk/IChEYW1pdCBpY2ggbWVpbnMgbmljaHQgc2NobGVwcGVuCm11c3M/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYWNodWViZXJta29wZiAoR3JpbW1ib3JuLCAxOS4gSnVsIDE5OTYsIDE3OjM4OjUwKToKClN1Y2hlIHNlbGJpZ2VzIGluIEJlcmxpbi4gQXVmZ3J1bmQgZWluZXIgZnVlciBtaWNoIGdsdWVja2xpY2hlbiAodW5kIGZ1ZXIKQmVybGluIHRyYWdpc2NoZW4pIEZ1ZWd1bmcgd2VyZGUgaWNoIGJlcmVpdHMgTWl0dGUgbmFlY2hzdGUgV29jaGUgaW4gQmVybGluCmVpbnRyZWZmZW4uIExlaWRlciBoYWJlIGljaCBrZWluZSBMdXN0LCBtZWluZW4gVmVyd2FuZHRlbiBhdWYgZGVuIFdlY2tlciB6dQpnZWhlbiwgd2VyIG1pY2gga2VubnQgd2lyZCBzaWNoIHZvcnN0ZWxsZW4ga29lbm5lbiwgZGFzcyBpY2ggbmljaHQgdW5iZWRpbmd0CnNjaGFyZiBkcmF1ZiBiaW4gbnVyIGJlaSBkZW5lbiB6dSBzZWluLi4uIDstKQpJY2ggdmVyc3ByZWNoZSwgaWNoIGJpbiByZWxhdGl2IHBmbGVnZWxlaWNodCB1bmQga2FubiBtaWNoIHNlbGJlcgpiZXNjaGFlZnRpZ2VuLCBpY2ggYnJhZXVjaHRlIGhhbHQgZWluIFBsYWV0emNoZW4genVtIHNjaGxhZmVuLCBkYSBqYSB1bnRlcgpzYWVtdGxpY2hlbiBCcnVlY2tlbiBnZWJhdXQgd2lyZC4uLgoKV2VyIGFsc28gaW4gb2RlciB1bSBCZXJsaW4gd29obnQgdW5kIHNjaG9uIGltbWVyIG1hbCBlaW5lbiBlY2h0ZW4gR3JpbW1ib3JuCmJlaGVyYmVyZ2VuIHdvbGx0ZSwgbWVsZGV0IGV1Y2ggZG9jaCBiaXR0ZSBiZWkgbWlyIGRpcmVrdCBvZGVyIG1haWx0IG1pciAoaGllcgpvZGVyIGdyaW1tYm9ybkBjb3JlZHVtcC5ycnoudW5pLWtvZWxuLmRlKS4KCk9wdGltaXN0aXNjaCwKICAgICAgICAgICAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pdGZhaHJlciBnZXN1Y2h0LiA6KSAoU3ltYmlvbnQsIDI1LiBKdWwgMTk5NiwgMjA6NTE6MjIpOgpIaWhvIQoKSWNoIHN1Y2hlIGplbWFuZCBkZXIgYW0gU2Ftc3RhZyBkZW4sIGFlaCA5LjguPyBvZGVyIHdhcnMgZGVyIDEwdGU/IGltIFp1ZwptaXQgbWlyIGZhZWhydC4gSWNoIGJpbiB6dSBkZXIgWmVpdCBpbiBNYXJidXJnL0dpZXNzZW4uIEljaCBoYXR0ZSBtaXIgCnZvcmdlbm9tbWVuIG1pdCBuZW0gV2UtdGlja2V0IHp1IGZhaHJlbi4uLiAqZ2FlaG4qIEFtIGJlc3RlbiBtb3JnZW5kcy4uLgpBbHNvIGZhbGxzIGplbWFuZCBhdXMgZGVtIFJhdW0gTXIvR2kgTHVzdCBoYXQgbWl0IGRlbSBadWcgenUgZmFocmVuLi4uLgpJY2ggYmluIHBlciBtdWQtbWFpbCBvZGVyIHNvIHN0YWVuZGlnIGVycmVpY2hiYXIuIDopIAoKTmF0dWVybGljaCB3YWVyZSBlcyBhdWNoIGNvb2wgamVtYW5kIHp1IGZpbmRlbiwgZGVyIG1pdCBkZW0gQXV0byBmYWVocnQuLi4KQWJlciBkYXMgaXN0IHdvaGwgVXRvcGllLiA7KQoKSWNoIGhvZmZlIHZpZWwgTWFpbCB6dSBiZWtvbW1lbi4gPTopCgotPlNZTUJJT05UPC0gaXN0IG5pY2h0IHNvIGJsb2VkIHVuZCBmYWVocnQgbWl0IGRlbSBSYWQuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTZW1pbmFyYXJiZWl0IChBenp1cm8sIDI2LiBKdWwgMTk5NiwgMjE6NDE6MjEpOgpJY2ggc2NocmVpYmUgenVyIFplaXQgYW4gbWVpbmVyIFNlbWluYXJhcmJlaXQgbWl0IGRlbSBUaXRlbDoKS3JpdGlzY2hlIEFuYWx5c2UgZGVyIEtvbnplcHRlIHZpcnR1ZWxsZXIgT3JnYW5pc2F0aW9uLgpGYWxscyBkYSBlaW5lciB2b24gRXVjaCBzY2hvbiBtYWwgd2FzIGRydWViZXIgZ2VzY2hyaWViZW4gaGF0LCBkcnVlYmVyCnByb21vdmllcnQuLi4uLi4uCkljaCB3YWVyIGZ1ZXIgamVkZW4gQnVjaHRpcCwgQXJ0aWtlbHRpcCwgU2VtaW5hcmFyYmVpdGVuLCBEaXBsb21hcmJlaXRlbi4uLi4KYWV1c3NlcnN0IGRhbmtiYXIuCgpBbHNvIHdlciB3YXMgZGFydWViZXIgaGF0IC0+IElNTUVSIEhFUiBEQU1JVCEhISEhCgpBenp1cm8sIGpldHp0IHNjaG9uIGRhbmtiYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0IHZvbiBMYWR5IFFpdGVzcyB1bmQgVGFuZ2FsdXIgRmV1ZXJ0YXR6ZSAoVGFuZ2FsdXIsIDI5LiBKdWwgMTk5NiwgMTY6Mjk6MTgpOgpRaXRlc3MgdW5kIFRhbmdhbHVyIGhhYmVuIHNpY2ggZ2V0cmF1dCwKCkphIGxpZWJlIExldXRlLCBudW4gaXNzZXMgcGFzc2llcnQuIEVuZGxpY2ggaGFiZW4gd2lyIGJlaWRlIHVucyBkYXp1CmVudHNjaGllZGVuIGdhbnogc3RpbGwgdW5kIGhlaW1saWNoIHp1IGhlaXJhdGVuLiBXaXIgZGFua2VuIGFsbGVuIGRpZQp0cm90emRlbSBkZW4gV2VnIHp1IHVuc2VyZXIgaG9jaHplaXQgZ2VmdW5kZW4gaGFiZW4gdW5kIGJpdHRlbiB2b24KYmVpbGVpZHNiZXpldWd1bmdlbiBhYnp1IHNlaGVuLi4uCgogICAgICAgICAgICAuLi51bmQgamV0enQgZ2VodHMgYWIgaW4gZGllIEZsaXR0ZXJ3b2NoZW4KCgogICAgICAgICAgICAgICAgICAgICBMYWR5IFFpdGVzcyAmIFRhbmdhbHVyIEZldWVydGF0emUKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYWhydCB6dXIgTUcgUGFydHkuIChQYW1wZXJzLCAyOS4gSnVsIDE5OTYsIDE3OjE5OjQ2KToKVGphLi4uCkF1ZmdydW5kIGVpbmVzIGtsZWluZW4gTWlzc2dlc2NoaWNrZXMgKFZvcnNpY2h0OiBUcmVwcGVuIHNpbmJkIGhlaW10dWVja2lzY2gKdW5kIGdlbWVpbikgCmJpbiBpY2ggbnVuIG1pdCBlaW5lciBCZWluc2NoaWVuZSB6d2Vja3MgSGVpbHVuZyBlaW5lcyBCYWVuZGVycmlzc2VzIGdlc2VnbmV0LgpLb25zZXF1ZW56OiByZW5uZW4gbGF1ZmVuIHNwcmluZ2VuIGlzIEVzc2ljaC4KTnUgaGF0IGRhcyBhYmVyIGF1Y2ggZGVuIE5hY2h0ZWlsLCBkYXNzIGljaCBlcyBudXIgbm9jaCBoYWxiIHNvIHRvbGwgaXN0LCB6dXIKUGFydHkgenUgdHJhbXBlbi4uLi4KU29sbHRlIHNpY2ggbm9jaCBlaW4gQmFybWhlcnppZ2VyIEF1dG9mYWhyZXIgZmluZGVuLCBkZXIgRnJlaXRhY2ggdWViZXJzClJ1aHJnZWJpZXQgbmFjaCBCRXJsaW4gZmFlaHJ0IHVuZCBlaW5lbiBrbGVpbmVuIEp1bmdtYWdpZXIgbWl0bmVobWVuIHd1ZXJkZSwKbW9lZ2Ugc2ljaCBzZWxiaWdlciBkb2NoIGJpdHRlIGJlaSBtaXIgbWVsZGVuLiA6LSkKClBhbXBlcnMuIExhbmdlIFJlZGUsIGt1cnplciBTaW5uLgosCmFyZ2wuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgTWFkZSEgKENhdHdlYXpsZSwgMzAuIEp1bCAxOTk2LCAxMjo1MjozNSk6CgpIaSEKCkljaCBzdWNoZSBEUklOR0VORCBkZW4gVGV4dCBkZXMgR2VkaWNodGVzICJEaWUgTWFkZSIgdm9uIEhlaW56IEVyaGFyZHQhCgpXZXJzIGhhdCAuLi5QTEVBU0UgbWFpbCBtZSEKCllvdXJzIHRydWx5LAogICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRE9NQUlOIEFuemVpZ2VuIGJlaW0gd2VyIChIYXRlLCAzMS4gSnVsIDE5OTYsIDEwOjA0OjUwKToKTW9tZW50YW4gZnVua3Rpb25pZXJlbiBrZWluZSBBbmdhYmVuLCBkYSBkZXIgTmFtZXNlcnZpY2UgKHJldmVyc2UgbG9va3VwKQpuaWNodCBmdW5rdGlvbmllcnQuCkVpbmZhY2ggd2FydGVuIGJpcyBkYXMgd2llZGVyIGdlaHQsIGJldm9yIG1pY2ggaGllciBub2NoIG1laHIgTGV1dGUKYW5tYWlsZW4sIGRhc3MgbmljaHQgbWVociBkYXN0ZWh0IFtBT0wgLi4uXSBvZGVyIHNvLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZPVE8gT3JpZ2luYXRvciBnZXN1Y2h0ISEhIChIYXRlLCAgMi4gQXVnIDE5OTYsIDA5OjQ2OjA5KToKSGksCgphdWYgZGVtIEZUUCBTZXJ2ZXIgaGFiZSBpY2ggaW4gaW5jb21pbmcgZWluIERpcmVjdG9yeSBtaXQgRm90b3MgZ2VmdW5kZW4uCkpldHp0IHd1ZXJkZSBpY2ggZ2VybiB3aXNzZW4gdm9uIHdlbSBkYXMgaXN0LgpOb3JtYWxlcndlaXNlIGlzdCBlcyBuaWNodCBzbyBnbHVlY2tsaWNoIGRpZSBGb3RvcyBzbyBlaW5mYWNoIG1hbApwdWJsaWMgaXJnZW5kd29oaW4genUgc3BpZWxlbi4gS2FubiBqYSBzZWluLCBkYXNzIGVpbmVyIHNlaW4gRm90byBuaWNodAp2ZXJvZWZmZW50bGljaHQgaGFiZW4gbW9lY2h0ZS4KTmV0dGUgUG9ydHJhaXRzIGplZGVuZmFsbHMuCkRlciBFaWduZXIgc29sbHRlIHNpY2ggYml0dGUgbWFsIGJlaSBtaXIgbWVsZGVuLCBkYW1pdCBpY2ggZGllIHJpY2h0aWcKZWluYmF1ZW4ga2Fubi4KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlemllaHVuZ3NraXN0ZSAoVGVsZXZpc2lvbiwgIDUuIEF1ZyAxOTk2LCAyMTo1Mjo0Nik6Ck1pdHR3b2NoLCA3LjguOTYgMjE6NDUgaW4gZGVyIEFSRAoKQmV6aWVodW5nc2tpc3RlIC0gRGVyIENvbXB1dGVyIHVuZCBzZWluIE1lbnNjaAoKQmluIGdlc3Bhbm50LCBvYiB3aXIgdW5zIHdpZWRlcmVya2VubmVuLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFtZSBnZXN1Y2h0IChHdWxkdWthdCwgIDcuIEF1ZyAxOTk2LCAxNDowNzoxOSk6CgpIaSwgaWNoIGJyYXVjaGUgZnVlciBtZWluIEJvb3QgZWluZW4gb3JpZ2luZWxlbiBOYW1lbiwgZG9jaCBmYWVsbHQgbWlyIAphdXNzZXIgR3VsIER1a2F0IHVuZCBNb3JuIG9kZXIgVGVyb2snTm9yIApuaXggYmVzc2VycyBlaW4uIAoKVm9yc2NobGFlZ2U/CgpHRAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hbWUgZ2VzdWNodCAoQ2F1bm8sICA3LiBBdWcgMTk5NiwgMTQ6MjQ6MjIpOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODM5NDE5NjM5Cn4jISB0aWQ9ODM5NDE5NjM5CkRhcyBoZWlzc3QgJ1RlcmVrIE5vcicuIG9kZXIgd2llIHdhZXJzIG1pdCBCb2snTm9yPwoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmFtZSBnZXN1Y2h0IChHdWxkdWthdCwgIDcuIEF1ZyAxOTk2LCAxNjoxNDowNyk6Cn4jISBybj1DYXVubyBydD04Mzk0MjA2NjIKfiMhIHRpZD04Mzk0MTk2MzkKCk51biwgZGEgYmluIGljaCBtaXIgbmljaHQgc2ljaGVyLCBpbiBkZXIgc3RhciB0cmVrIGVuY3ljbG9wZWRpYSBrb21tZW4gCmJlaWRlIHZvci4gdW5kIGF1Y2ggaW4gYW5kZXJlciBsaXRlcmF0dXIgZmluZGV0IG1hbiBkYXMgbWl0IG8gdW5kIGUKCnRyb3R6ZGVtIGlzdCBkZXIgbmFtZSBlaW5lciByYXVtc3RhdGlvbiBuaWNodCBnZXJhZGUgcGFzc2VuZCBmdWVyIGVpbgpzZWdlbGJvb3QsIG9kZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOYW1lIGdlc3VjaHQgKEJhYnMsICA3LiBBdWcgMTk5NiwgMjI6MTA6MzQpOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODM5NDI3MjQ3Cn4jISB0aWQ9ODM5NDE5NjM5CkFsc28sIG1laW5lIEZhdm9yaXRlbiB3YWVyZW4gIlVuc2lua2JhciBJSSIgb2RlciAiU2NoYXVtc2NoaWZmIEVudGVycHJpc2UiIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYW1lIGdlc3VjaHQgKENhcmFkaHJhcywgIDcuIEF1ZyAxOTk2LCAyMjoxMTozNCk6Cn4jISBybj1CYWJzIHJ0PTgzOTQ0ODYzNAp+IyEgdGlkPTgzOTQxOTYzOQpBbHNvICJOb2NoIHVlYmVyIFdhc3NlciIgd3VlcmRlIG1pciBkYSBhbHMgTmFtZSBiZXNzZXIgZ2VmYWxsZW4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOYW1lIGdlc3VjaHQgKEhvcnNjaGQsICA3LiBBdWcgMTk5NiwgMjM6NTM6MzEpOgp+IyEgcm49Q2FyYWRocmFzIHJ0PTgzOTQ0ODY5NAp+IyEgdGlkPTgzOTQxOTYzOQpBbHNvIGljaCBmYWVuZCAiVGl0YW5pYyIgcGFzc2VuZC4uLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IE5hbWUgZ2VzdWNodCAoQmFicywgIDguIEF1ZyAxOTk2LCAwNDoxMjoyNCk6Cn4jISBybj1Ib3JzY2hkIHJ0PTgzOTQ1NDgxMQp+IyEgdGlkPTgzOTQxOTYzOQpJc3QgYWJlciBzbyBhYmdlZ3JpZmZlbi4gVW5kIGh1bW9yYXJtLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTmFtZSBnZXN1Y2h0IChIYXIsICA4LiBBdWcgMTk5NiwgMDk6MTk6MTApOgp+IyEgcm49QmFicyBydD04Mzk0NzAzNDQKfiMhIHRpZD04Mzk0MTk2MzkKV2llIHdhZXJlIGVzIG1pdCBBbmRyZWEgRG9yaWE/CgpIYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IE5hbWUgZ2VzdWNodCAoR3VsZHVrYXQsICA4LiBBdWcgMTk5NiwgMTA6MDk6MDEpOgp+IyEgcm49SGFyIHJ0PTgzOTQ4ODc1MAp+IyEgdGlkPTgzOTQxOTYzOQptbWgsIGljaCBzdWNoIHdhcyByaWNodGlnIG9yaWdpbmVsbGVzLCBzY2hpY2t0IG1pciBkb2NoIG1hbCBhbGxlIHZvcnNjaGxhZWdlCnBlciBlLW1haWwsIGRlbiBoYXVwdGdld2lubmVyIGxhZGUgaWNoIGRhbm4gYXVjaCB6dXIgYm9vdHN0YXVmZSBlaW4hIDspCkdECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBOYW1lIGdlc3VjaHQgKExhcmllbCwgIDguIEF1ZyAxOTk2LCAxMDozNjoxMSk6Cn4jISBybj1HdWxkdWthdCBydD04Mzk0OTE3NDEKfiMhIHRpZD04Mzk0MTk2MzkKQWxzbywgR3VsRHVrYXQsIHdlbm4gZHUgamVtYW5kZW4gZmluZGVzdCwgZGVyIEZSRUlXSUxMSUcgenUgRElSIG5hY2ggQiBPIEMgSCBVCk0gKCEhISkKZmFlaHJ0LCBkYW5uIHNjaGVua2UgaWNoIGRpciBlaW4gS3JldXpmYWhydHNjaGlmZiAoRGllICdTYW50YSBMYXJpZWwnKS4uLgoKLSBMYXJpZWwgRmFsa2VuZmx1ZywgSW5xdWlzaXRvciB2b24gVGFyYW1pcwogIChEYXMgd2FyIG5pY2h0IGdhbnogc28gZXJuc3QgenUgbmVobWVuISkgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hbWUgZ2VzdWNodCAoQXNtb2RpcywgIDguIEF1ZyAxOTk2LCAxMjo0NjowMik6Cn4jISBybj1DYXVubyBydD04Mzk0MjA2NjIKfiMhIHRpZD04Mzk0MTk2MzkKCldpZSB3YWVycyBtaXQgQmFqb3IgPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogTmFtZSBnZXN1Y2h0IChIYXIsICA4LiBBdWcgMTk5NiwgMTM6MTg6NTApOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODM5NDkxNzQxCn4jISB0aWQ9ODM5NDE5NjM5CkhtbSwgZW1hbGkgaXN0IGxhbmd3ZWlsaWcsIGhpZXIgZWluIHBhYXIgZXJuc3RlcmUgVm9yc2NobGFlZ2U6CgoxLikgTWl0IGFrdHVlbGxlbSBCZXp1ZzoKR29ldHotR2Vvcmdlcy1Ub2QKMi4pIERhIGVpbiBTY2hpZmYgamEgd2FzIGZlbWluaW5lcyBpc3Q6Ci0gR2VzcGllbGluIGRlcyBXaW5kZXMgKCBvZGVyIGRlcyBHdWw/KQotIEZyZXVkZW5tYWVkY2hlbiBkZXIgTWVlcmUKLSBHcm9zc2JydWVzdGlnZSBQaXJhdGVuYnJhdXQKMy4pIFVtIGJlaSBkZW4gcGlyYXRlbiB6dSBibGVpYmVuIGZhZWxsdCBtaXIgbm9jaAoKR3VscyBLaWVsaG9sZXIgZWluCgpzbywgZGFzIHdhZXJlbiBlcnN0IG1hbCBlaW4gcGFhci4uLi4KCmhhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IE5hbWUgZ2VzdWNodCAoSmFzcGVyLCAgOC4gQXVnIDE5OTYsIDE1OjM4OjU4KToKfiMhIHJuPUhhciBydD04Mzk1MDMxMzAKfiMhIHRpZD04Mzk0MTk2MzkKd2llIHdhZXJlIGVzIG1pdCAnVGl0dGVubWF1cycgOikKb2J3b2hsIGRhcyBiZXN0ZSBiaXNoZXIgd29obCAnVW5zaW5rYmFyIElJJyB3YXIgOikKCkphc3BlciwgZXJyZWljaHQgbGFuZ3NhbSBkZW4gc2llZGVwdW5rdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmFtZSBnZXN1Y2h0IChRaXRlc3MsIDEzLiBBdWcgMTk5NiwgMTU6MDI6NTMpOgp+IyEgcm49QXNtb2RpcyBydD04Mzk1MDExNjIKfiMhIHRpZD04Mzk0MTk2MzkKCgpCQUpPUiAgQVVGIEVJTkVNIENBUkRBU1NJQU5JU0NIRU4gTVVFTExCRVVURUwtU0NIV0lNTVQtQVVGLURFTS1XQVNTRVIgID8/PwoKQkxBU1BIRU1JRSAhISEgCgpRSVRFU1MgLSBXVVRTQ0hOQVVCRU5ECgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmFtZSBnZXN1Y2h0IChDYXJhZGhyYXMsIDEzLiBBdWcgMTk5NiwgMTU6MTI6NDMpOgp+IyEgcm49UWl0ZXNzIHJ0PTgzOTk0MTM3Mwp+IyEgdGlkPTgzOTQxOTYzOQpDYXJhZGhyYXNzaXNjaGVuPyBXYXMgaXN0IG1pdCBtaXI/CgogICAgICAqZ3J1ZWJlbG5kKiAgICAgIGVpbiBrbGVpbmVzIEZyb3NjaCBuYW1lbnMgQ2FsYWRobGFzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJ1Y2h0aXRlbCBnZXN1Y2h0IChOaXJkYXZvLCAxNS4gQXVnIDE5OTYsIDE0OjQ3OjM5KToKfiMhIHJuPVJvY2h1cyBydD04NDAxMTMxNTgKfiMhIHRpZD04NDAxMTI0NjEKICBSb2JlcnQgQXNwcmluIG1pdCBzZWluZXIgTVlUSC1SZWloZSB1bmQgUGh1bGVzIENvbXBhbnkgc29sbHRlIG1hbgprZWluZXNmYWxscyB1bmVyd2FlaHQgbGFzc2VuIQogICAgTmlyZGF2bwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQnVjaHRpdGVsIGdlc3VjaHQgKENhdW5vLCAxNS4gQXVnIDE5OTYsIDE0OjQ4OjU1KToKfiMhIHJuPU5pcmRhdm8gcnQ9ODQwMTEzMjU5Cn4jISB0aWQ9ODQwMTEyNDYxCkljaCBlbXBmZWhsZSBhdXNzZXJkZW0gbm9jaCB2b24gUGhpbGlwIEsuIERpY2s6CgpFeWUgaW4gdGhlIFNreQpEbyBBbmRyb2lkcyBEcmVhbSBvZiBlbGVjdHJpYyBzaGVlcD8KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCdWNodGl0ZWwgZ2VzdWNodCAoQW5jYWxhZ29uLCAxNS4gQXVnIDE5OTYsIDE4OjQ5OjMyKToKfiMhIHJuPUNhdW5vIHJ0PTg0MDExMzMzNQp+IyEgdGlkPTg0MDExMjQ2MQpIYWxsbyBlcnN0bWFsIQpBdXNzZXJkZW0gc2VociBlbXBmZWhsZW5zd2VydDoKVGFkIFdpbGxpYW1zLCAgIFRoZSBEcmFnb25ib25lIENoYWlyICAob2RlciB3cWFyIGRhcyBqZXR6dCBudXIgZGVyIHRpdGVsayBkZXMKZXJzdGVuIEJhbmRlcz8pCldlbm4gbWFuIG1hbCB2b20gZ3JhdXNhbSBhYmdld3Vlcmd0ZW4gRW5kZSBhYnNpZWh0LCBlaW5lIGVyc3RrbGFzc2lnZSBUcmlsb2dpZQppbiB2aWVyIEJhZW5kZW46KSAuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCdWNodGl0ZWwgZ2VzdWNodCAoU2VtaXJhLCAxNS4gQXVnIDE5OTYsIDE4OjQ5OjU1KToKfiMhIHJuPUFuY2FsYWdvbiBydD04NDAxMjc3NzIKfiMhIHRpZD04NDAxMTI0NjEKamF3b2xsIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvaGUgQmVsb2hudW5nICEhISEhIChJbnNraXBwLCAxNi4gQXVnIDE5OTYsIDAwOjEzOjU1KToKCk1pdHRlaWx1bmcgZGVzIE9LQk8gYXVzIGRlbSBIYXVwdHF1YXJ0aWVyIGRlcyBTcGVjaWFsQ29ycHM6CgpXaWUgc2ljaCBoZXJhdXNzdGVsbHRlLCBoYXQgc2ljaCBlaW4gSG9jaHN0YXBsZXIgYXVmIGRlbSByZXByYWVzZW50YXRpdi0KcHJlc3RpZ2UgUkwtVHJlZmZlbiBkZXIgVmlydHVlbGxlbiBXZWx0IChNLilHLVB1bmt0IGVpbmdlc2NobGljaGVuCnVuZCBzaWNoIGZ1ZXIgZWluZW4gdW5zZXJlciB1bmZhZWheSF5IXkheSF5IXkhoZXJ2b3JyYWdlbmRlbiBBZ2VudGVuCmF1c2dlYmVuZW4uIFNlaW5lIEFic2ljaHQgd2FyIHVuc2VyZSBrb3JydXBeSF5IXkheSF5IXkh3aWNodGlnZSB1bmQKbWVuc2NoZW5mcmV1bmRsaWNoZSBPcmdhbmlzYXRpb24gaW4gZGVuIFNjaG11dHogenUgemllaGVuIGluZGVtIGVyIHNpY2gKbWl0IGFic2NoYXVtdHJhZWNodGlnZW0gR2VzaW5kZWwgdW5kIG5pZWRlcnRyYWVjaHRpZ2VuIEJvZXNld2ljaHRlbiBhYmdhYi4KRGFiZWkgaGFuZGVsdGUgZXMgc2ljaCBpbSBCZXNvbmRlcmVuIHVtIGRhcyAidmVyZHJlaHRlIE5pci1WYS0obmEpIiwKZGVuIGJlcnVlY2h0aWdlbiAiRHVua2xlbiIsIHNvd2llIGRlbSBTdXBlcmthc3BhciB1bmQgZGVyIFN1cGVyc2NoZWlzc2UuCldlaXRlcmhpbiB3dXJkZW4gbWVocmVyZSBTYWJvdGFnZWFrdGUgYmVnYW5nZW46IAogRGVyIHVlYmVyYWxsIGdlaGFzc15IXkheSF5Ic2NoYWV0enRlIEJvZWluZyAoc2ljISkgbXV0aWVydGUgbmFjaCBoZWltdHVlY2tlbQogZWluZmxvZXNzZW4gdm9uIGhhcnRlbiBEcm9nZW4gKFNjb3RjaCkgenVtIHJvdGVuIFRyb2xsLgoKIFp1c2FtbWVuIG1pdCBhbmRlcmVuIHVlYmxlbiBHZXNlbGxlbiAodS5hLiBlaW5lbSBob2hlbiBGdW5rdGlvbmFlciB1bnNlcmVyCiBFcnpmZWluZGUgZGVyIENhcmRhc3NpYW5lcikgd3VyZGVuIHNjaGxpZXNzbGljaCBoYXJtbG9zZSBTcGllbHRlaWxuZWhtZXIKIGFuIGRlciBBdXN1ZWJ1bmcgSWhyZXIgUGZsaWNodCBiZWhpbmRlcnQuCgogU2NobGllc3NsaWNoIHd1cmRlIGR1cmNoIHNvZ2VuYW5udGUgInd1bmRlciIgZGllIHJ1Y2hsb3NlbiBCb3RzY2hhZnRlbgogZGVzIHNjaGV1c3NsaWNoZW4gQW5kcmUgRHVjbG9zIHZlcmJyZWl0ZXQgYXVmIGRhc3Mgc2ljaCBkZXIga3JhbmtlIAogV2FobnNpbm4gZGllIEdlaXN0ZXIgZGVyIGxldHp0ZW4gbm9jaCB2ZXJibGVpYmVuZGVuIExldXRlLCBkaWUgc2ljaAogdWViZXIgc2lubnZvbGxlIFRoZW1lbiB3aWUgSHlkcmFob2VybmVyIHVudGVyaGFsdGVuLCBiZWZhZWxsdC4KCkRlbSBmZWluZGxpY2hlbiBBZ2VudGVuIGdlbGFuZyBkaWUgTWFza2VyYWRlIGJlc29uZGVzIGd1dCwgd2VpbCBlciAKZWJlbnNvIHdpZSB1bnNlciBNYW5uIGVpbmUgZ3Jvc3NlIFZvcmxpZWJlIGZ1ZXIgZ2Vpc3RpZ2UgR2V0cmFlbmtlIHplaWd0ZS4KCkF1cyBkaWVzZW4gR3J1ZW5kZW4gYmxlaWJ0IHVucyBudXIgZm9sZ2VuZGVyIEF1ZnJ1ZjoKCkZJTkRFVCBVTkQgVE9FVEVUIElITiAhCgpCZWxvaG51bmc6IExlYmVuZGlnIC0gMSBTdGFjaGVsc3BlY2tzY2h3ZWluc3RhY2hlbAogICAgICAgICAgIFRvdCAgICAgIC0gMTAwMDAwMDAwMDAwMDAwMDAwIENyZWRpdHMgZGVyIExpZ2EKCgpHZXouCiAgSW5za2lwcCwgT0tCTyAoT2JlcnN0ZXIgS29vcmRpYW50b3IgZnVlciBCb2VzZSBPcGVyYXRpb25lbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBhcnR5bW9uc3RlciBzdWNodCBPYmpla3RlIChLZXRvcywgMTYuIEF1ZyAxOTk2LCAwMDozMzozMCk6CkhhbGxvIFBhcnR5ZnJlYWtzIQpMYW5nZSBoYXQgZGFzIFBhcnR5bW9uc3RlciBrZWluZSBuZXVlbiBPYmpla3RlIGJla29tbWVuLiBFdWNoIGZhZWxsdCBiZXN0aW1tdAp3YXMgZWluCndhcyBpaHJ2ZXJtaXNzdCBvZGVyIHdhcyBtYW4gaWhuIG5vY2ggZ2ViZW4ga29lbm50ZS4KU2NocmVpYnQgZXMgbWlyCgotIEtldG9zIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQYXJ0eW1vbnN0ZXIgc3VjaHQgT2JqZWt0ZSAoSmFzcGVyLCAxNi4gQXVnIDE5OTYsIDAxOjM5OjU5KToKfiMhIHJuPUtldG9zIHJ0PTg0MDE0ODQxMAp+IyEgdGlkPTg0MDE0ODQxMApFaW4gZ29sZGVuZXMgS29uZG9tIGRlciBSZWdlbmVyYXRpb24KQml0YnVyZ2VyIHZvbSBGYXNzCkVpbiBwYWFyIE1hZWRlbHMsIGRpZSBkaWUgZ2FuemUgWmVpdCBncmluc2VuLCB1bmQgdWViZXIgZGVyZW4KU2F1Z2VycXVhbGl0YWV0ZW4gbWFuIHBoaWxvc29waGllcmVuIGthbm4uLi4gamFqYSBpY2ggaG9lciBqYSBzY2hvbiBhdWYgOikKCkhtbSBtaXIgZmFlbGx0IGJlc3RpbW10IG5vY2htZWhyIGVpbiwgYWJlciBkYXMgaXN0IG5peCBmdWVyIGRpZSBaZWl0dW5nIHNvbnN0CmdlaHQgZGFzIEVtYW56ZW5nZXpldGVyZSBpbiBldGlrZXR0ZSB3aWVkZXIgbG9zLgoKSmFzcGVyIGphcHN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQYXJ0eW1vbnN0ZXIgc3VjaHQgT2JqZWt0ZSAoQmFicywgMTYuIEF1ZyAxOTk2LCAwMjozMTozNSk6Cn4jISBybj1KYXNwZXIgcnQ9ODQwMTUyMzk5Cn4jISB0aWQ9ODQwMTQ4NDEwCk1hbiBtdXNzIGJlc3RpbW10IGtlaW5lIGVtYW56ZSBzZWluLCB1bSBkaWNoIGFic29sdXQgISIkJSYvIHp1IGZpbmRlbi4gOigoKAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGlwbG9tYXJiZWl0c3N0cmVzcyEgKEphcmllbCwgMTYuIEF1ZyAxOTk2LCAxMTo0NDoxMyk6CkhpSG8hCgpJY2ggc3VjaGUgZHJpbmdlbmQgQy0gb2RlciBDUFAtIFF1ZWxsdGV4dGUgdWViZXIgZGllIFNvdW5kYmxhc3Rlci0KcHJvZ3JhbW1pZXJ1bmcuIEFsc28gRGF0ZW4gbGVzZW4sIHNwZWljaGVyLCBhYnNwaWVsZW4gdS5zLncuCgpXZXIgZGEgQmVpc3BpZWxlIGlyZ2VuZHdvIHJ1bWxpZWdlbiBoYXQsIGJ6dyBzZWxic3QgcHJvZ3JhbW1pZXJ0IGhhdCwKbW9lZ2UgZGllc2VzIG1pciBkb2NoIGJpdHRlIGJpdHRlIGJpdHRlIG1haWxlbi4KRWJlbnNvIGJpbiBpY2ggYW4genVnZWhvZXJpZ2VyICdndXRlcicgRmFjaGxpdGVyYXR1ciBpbnRlcmVzc2llcnQuCgpBbHNvIHdlbm4gbWFpbCwgZGFubiBzdG9wc0BmaC10ZWxla29tLmRlCgogICAgICAgSmFyaWVsICh0b3RhbCBnZXN0cmVzc3QgdW5kIHVlYmVyZm9yZGVydCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFBhcnR5bW9uc3RlciBzdWNodCBPYmpla3RlIChSem5lLCAxNi4gQXVnIDE5OTYsIDE0OjQwOjU0KToKfiMhIHJuPUJhYnMgcnQ9ODQwMTU1NDk1Cn4jISB0aWQ9ODQwMTQ4NDEwCkpvIEphc3BlciwgQmFicyBoYXQgcmVjaHQ6CgppY2ggZmluZCBEaWNoIGF1Y2ggYWJzb2x1dCAhIiQlJi8gIC0gd2llIGthbm5zdCBEdSB2b3JzY2hsYWdlbiwgQml0YnVyZ2VyIHZvbQpGYXNzIGF1c3p1c2NoZW5rZW4gPyEgVHJpbmsgRGlyIG1hbCBlaW4gQmVja3MsIGRhbmFjaCBnZWh0IERpciBkYXMKRW1hbnplbmdlemV0ZXJlIGF1Y2ggbmljaHQgc28gYXVmIGRpZSBOZXJ2ZW4uCgpJbW1lcmhpbiBhdWNoIGVpbiBrbGVpbmVzIExvYjogRGllIElkZWUgbWl0IGRlbiBwYWFyIE1hZWRlbHMsIGRpZSBkaWUgZ2FuemUKWmVpdCBncmluc2VuLCB1bmQgdWViZXIgZGVyZW4gU2F1Z2VycXVhbGl0YWV0ZW4gbWFuIHBoaWxvc29waGllcmVuIGthbm4uLi4Ka29lbm50ZSBtaXIgX3ZpZWxsZWljaHRfIDstKSBnZWZhbGxlbi4uLgoKUnpuZSwga2VpbmUgRW1hbnplLCBhYmVyIG1pbGl0YW50ZXIgQmVja3MtRmFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFBhcnR5bW9uc3RlciBzdWNodCBPYmpla3RlIChRaXRlc3MsIDE2LiBBdWcgMTk5NiwgMTU6Mzg6MDkpOgp+IyEgcm49SmFzcGVyIHJ0PTg0MDE1MjM5OQp+IyEgdGlkPTg0MDE0ODQxMAoKZGEgZmFlbGx0IG1pciBudXIgbm9jaCBlaW5lcyBlaW4gOgoKKldVRVJHKgoKUWl0ZXNzIGlzdCBzcGVpdWViZWwgdW5kIHd1bmRlcnQgc2ljaCwgZGFzcyBzb2xjaGUgTWVuc2NoZW4gbGViZW4gZHVlcmZlbi4gCgpQLlMuOiAgOikgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogTmFtZSBnZXN1Y2h0IChXb29keSwgMTYuIEF1ZyAxOTk2LCAyMjo0MDoyNyk6Cn4jISBybj1HdWxkdWthdCBydD04Mzk0OTE3NDEKfiMhIHRpZD04Mzk0MTk2MzkKSG1tLCBkaWUgIk1TICcxODE2JyBCYXJjZWxvbmEiID8KCjopIHdvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCdWNodGl0ZWwgZ2VzdWNodCAoSGVsdmEsIDE2LiBBdWcgMTk5NiwgMjI6NTY6MjgpOgp+IyEgcm49VmFuaXIgcnQ9ODQwMTEyNDYxCn4jISB0aWQ9ODQwMTEyNDYxCk5lY3JvdmlsbGUgdmluIElhbiBNY0RvbmFsZCEhIQpJc3QgU0YsIGtlaW4gSG9ycm9yIHVuZCBkYXMgYmVzdGUgd2FzIGljaCBzZWl0IEphaHJlbiBnZWxlc2VuIGhhYmUuIElzdCBpbQpPcmlnaW5hbCBhdWNoIHNlaHIgYWJnZWZhaHJlbiB6dSBsZXNlbgpWaWVsIFNwYXNzIGhlbHZhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQnVjaHRpdGVsIGdlc3VjaHQgKFNpbHZhbmEsIDE4LiBBdWcgMTk5NiwgMDk6NDM6MzUpOgp+IyEgcm49VmFuaXIgcnQ9ODQwMTEyNDYxCn4jISB0aWQ9ODQwMTEyNDYxCkVpbmVuIGhhYiBpY2ggbm9jaC4uLgpEaWUgUmVpaGUgJ1doZWVsIG9mIHRpbWUnIHZvbiBSb2JlcnQgSm9yZGFuLiBIYXQgbWljaCA0IFdvY2hlbiB2b20gbXVkZGVuCmFiZ2VoYWx0ZW4uIEFiZXIgdm9yc2ljaHQ6IGRlcnplaXQgNyBCYWVuZGUgYSA3NTAtMTAwMCBTZWl0ZW4uIFNjaHdlcmUKS29zdCBhbHNvLiA7LSkKCiAgU2lsdmFuYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgTVVEICEgKEdyaW1tYm9ybiwgMTguIEF1ZyAxOTk2LCAxODo1NDowOSk6CltWZXJsZWd0IHZvbiBhbGxnZW1laW5lcywgVGFyYW50LCAxOC4gQXVnIDE5OTYsIDE2OjM5OjM2XToKU3VjaGUgTGV1dGUsIGRpZSBpbnRlcmVzc2llcnQgc2luZCwgZWluIG5ldWVzIE1VRCBhdWZ6dXR1biAhCgpNZWxkZXQgZXVjaCBiZWkKVGFyYW5UCgpCaXMgYmFsZAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lIGdlc3VjaHQgKExpLCAxOS4gQXVnIDE5OTYsIDA5OjUyOjU1KToKfiMhIHJuPUd1bGR1a2F0IHJ0PTgzOTQxOTYzOQp+IyEgdGlkPTgzOTQxOTYzOQpTdHVybXNjaHdpbmdlLCBTdHVybWtyYWVoZSwgQWxiYXRyb3MsIFN0b2x6IHZvbiAuLi4KYWJlciB2ZXJsYW5nIHZvbiBtaXIga2VpbmUgVHJla2tpZS1uYW1lbiA6LSkKTGkgKFN0YXItVHJlayBhbGxlcmdpc2NoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVzIE1VRCAhIChCYWJzLCAxOS4gQXVnIDE5OTYsIDIyOjU0OjEwKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NDAzODcyNDkKfiMhIHRpZD04NDAzODcyNDkKSG0uLi4gc2Nob24gd2llZGVyIGVpbnMhIDstKQpadW5hZWNoc3QgbWFsIHNvbGx0ZXN0IER1IGJlZGVua2VuLCBkYXNzIHNpY2ggZGllIE11ZHByb2dyYW1taWVyZXIgc2Nob24KaGV1dGUgYXVmIHdlc2VudGxpY2ggbWVociBQcm9qZWt0ZSB2ZXJ0ZWlsZW4sIGFscyBqZW1hbHMgZXJ3YWNoc2VuIHdlcmRlbgprb2VubmVuLlp3ZWl0ZW5zIGlzdCBlaW4gbmV1ZXMgUHJvamVrdCBudXIgZGFubiBzaW5udm9sbCwgd2VubiBlcyBlaW4gd2lya2xpY2gKZWlnZW5zdGFlbmRpZ2VzIEtvbnplcHQgaGF0LCBkYXMgZXMgdW52ZXJ3ZWNoc2VsYmFyIG1hY2h0LiBKZWRlbmZhbGxzIGlzdApub2NoIGVpbiB3ZWl0ZXJlcyBGYW50YXN5bXVkIG1pdCBkZW4gdWVibGljaGVuIEVsZmVuLCBad2VyZ2VuIHVuZCBNZW5zY2hlbgpzb3dpZSBkZW4gdWVibGljaGVuIFN0YW5kYXJkZ2lsZGVuLCBhbSBiZXN0ZW4gbm9jaCBlaW5lcywgYmVpIGRlbSBlaW5lbQpzY2hvbiBiZWltIEVpbmxvZ2dlbiBlaW4gbGlsYSBnZXR1cGZ0ZXIgQWxyYXVuIHZlcmt1ZW5kZXQsIGRhcyBQSyBoaWVyIHp3YXIKbW9lZ2xpY2ggYWJlciBzdHJlbmcgdmVyYm90ZW4gaXN0IFsgOy0pIF0KZ2VsaW5kZSBnZXNhZ3Qgc28gdWViZXJmbHVlc3NpZyB3aWUgZWluIEtyb3BmLgoKQW5zb25zdGVuLCBlcnphZWhsIGVyc3RtYWwsIHdhcyBkaXIgc28gdmVyc2Nod2VidC4uLgpFaW4gTXVkIGF1ZiBFbmdsaXNjaCwgRGV1dHNjaCBvZGVyIG5vY2h3YXMgZXhvdGlzY2hlcmVzID8gKEJlaSBTY2h3ZWl6ZXJuCndlaXNzIG1hbiBqYSBuaWUuLi4gOykKV2VsY2hlIGluaGFsdGxpY2hlbiBJZGVlbiBoYXN0IER1PwpBdWYgd2VsY2hlbiB0ZWNobmlzY2hlbiBHcnVuZGxhZ2VuIChUcmVpYmVyLCBldnRsLiBNVURsaWIpIHdpbGxzdCBkdSBhdWZiYXVlbj8KCktsZWluZXIgVGlwOiBEdSBlcnJlaWNoc3QgdmllbCBtZWhyIExldXRlLCB3ZW5uIGR1IHNvd2FzIGluIGRpZSBVU0VORVQgTkVXUyAKbmFjaCBkZS5hbHQubXVkIHBvc3Rlc3QuCgpHb29kIEx1Y2shCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXMgTVVEICEgKEZ5dCwgMjAuIEF1ZyAxOTk2LCAwMDoxMzoxMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQwMzg3MjQ5Cn4jISB0aWQ9ODQwMzg3MjQ5CgpPaCwgaWNoIGJpbiBkdXJjaGF1cyBpbnRlcmVzc2llcnQuLi4gYWxsZXJkaW5ncyBoYWIgaWNoIHNjaG9uIGVpbnMKZ2VmdW5kZW4uCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZSBnZXN1Y2h0IChSYWZmaSwgMjAuIEF1ZyAxOTk2LCAxMDo1MToxNSk6Cn4jISBybj1HdWxkdWthdCBydD04Mzk0MTk2MzkKfiMhIHRpZD04Mzk0MTk2MzkKCldpZSAgd2FlcnMgbWl0IEJlbGxhIEd1bCA/CgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGVsZWtvbSBBdXNrdW5mdCAoSGF0ZSwgMjAuIEF1ZyAxOTk2LCAxMjowNzoyOCk6CkhpLAoKZGllIFRlbGVrb20gZXJ3ZWl0ZXJ0IGRpZSBJbmZvcm1hdGlvbnNkaWVuc3RlIGRlcgpBdXNrdW5mdC4gQWIgZGVtbmFlY2hzdCBlcmZhZWhydCBtYW4gbmljaHQgbnVyIGRpZQpSdWZudW1tZXIsIHNvbmRlcm4gamVkZXIga2FubiBiZWkgZGVyIEF1c2t1bmZ0IE5hbWUsCkFkcmVzc2UsIFJ1Zm51bW1lciwgQmVydWYgdW5kIHdhcyBkaWUgVGVsZWtvbSBzb25zdApub2NoIHVlYmVyIGRlbiBUZWlsbmVobWVyIHdlaXN6IGVpbmhvbGVuLgoKRGllc2UgSW5mb3JtYXRpb25lbiBzb2xsZW4gYXVjaCBhdWYgQ0QtUk9NLCBULU9ubGluZQp1bmQgYW5kZXJlbiBlbGVrdHJvbmlzY2hlbiBWZXJ6ZWljaG5pc3NlbiBkZXIgCkRlVGVNZWRpZW4gZnVlciBqZWRlcm1hbiAoZ2VnZW4gQmV6YWhsdW5nKSB6dXIgClZlcmZ1ZWd1bmcgc3RlaGVuLgoKRGVuIERhdGVuc2NodXR6IHVtZ2VodCBkaWUgVGVsZWtvbSwgaW5kZW0gc2llIG1laW50CmtlaW4gV2lkZXJzcHJ1Y2ggZGVzIGVpbnplbG5lbiBpc3QgZWluZSBadXNhZ2UuCgpEZXIgVGVsZWZvbnJlY2hudW5nIHZvbiBBdWd1c3QgbGllZ3QgZWluIEZhbHRibGF0dApiZWksIHNpZWh0IGF1cyB3aWUgZWluZSBXZXJiZWJyb3NjaHVlcmUgZGVyIFBvc3QuCgpSZWxhdGl2IHVuYXVmZmFlbGxpZyBzdGVodCBkcmF1ZjoKICJCaXR0ZSBiZWFjaHRlbiBTaWUgZGllIEhpbndlaXNlIHp1bSBEYXRlbnNjaHV0eiIKSW4gZGVyIEJyb3NjaHVlcmUgYmVmaW5kZXQgc2ljaCBlaW5lIFBvc3RrYXJ0ZSwgbWl0CmRlciBtYW4gdm9uIHNlaW5lbSBXaWRlcnNwcnVjaHNyZWNodCBnZWJyYXVjaCBtYWNoZW4Ka2Fubi4KClNvbGx0ZXQgSWhyIGRpZSBCcm9zY2h1ZXJlIHNjaG9uIHdlZ2dld29yZmVuIGhhYmVuLAprb2VubnQgSWhyIGF1Y2ggbmFjaHRyYWVnbGljaCB3aWRlcnJ1ZmVuLgoKSGllciBkZXIgV29ydGxhdXQ6CgogICAgV2lkZXJzcHJ1Y2hzcmVjaHQKICAgID09PT09PT09PT09PT09PT09CgogICAgSWNoIG1vZWNodGUgbmljaHQsIGRhc3ogbWVpbmUgaW4gZGVuIFRlbGVrb21tdW5pa2F0aW9ucy0KICAgIHZlcnplaWNobmlzc2VuIChUZWxlZm9uYnVjaCB1c3cuKSB2ZXJvZWZmZW50bGljaHRlbiBEYXRlbiwKICAgIGRpZSB1ZWJlciBkaWUgUnVmbnVtbWVyIGhpbmF1c2dlaGVuLCBpbSBSYWhtZW4gZGVyIEtvbWZvcnQtCiAgICBhdXNrdW5mdCBhbHMgbmV1ZXIgdGVsZWZvbmlzY2hlciBJbmZvcm1hdGlvbnNkaWVuc3QgdmVyd2VuZGV0CiAgICB3ZXJkZW4uCgoKICAgIERhdHVtLCBVbnRlcnNjaHJpZnQKCgpBbHMgQWJzZW5kZXIgbXVlc3p0IElociBub2NoIEV1cmVuIE5hbWVuLCBBbnNjaHJpZnQgVU5EIApWb3J3YWhsIHVuZCBSdWZudW1tZXIgYW5nZWJlbi4KCkRhcyBnYW56ZSBzY2hpY2t0IElociBhbgogICAgIERldXRzY2hlIFRlbGVrb20gQUcKICAgICAyODE2MSBCcmVtZW4gMTAwCgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUZWxla29tIEF1c2t1bmZ0IChMaSwgMjAuIEF1ZyAxOTk2LCAxMjoxMjowNyk6Cn4jISBybj1IYXRlIHJ0PTg0MDUzNTY0OAp+IyEgdGlkPTg0MDUzNTY0OApBbHNvIGRpZSBWb3JnZWhlbnN3ZWlzZSBkZXIgVGVsZWtvbiBpc3QgamEgbmljaHQgZ2FueiBhc3RyZWluLCBhYmVyIGVpZ2VudGxpY2gKbnVldHp0IGRlciBXaWVkZXJzcHJ1Y2ggZ2FyIG5pY2h0cywgZGEgZXMgc2VpdCBlaW4gcGFhciBNb25hdGVuIGVpbmVuIG5pY2h0CnZvbiBkZXIgVGVsZWtvbSBsaXplbnNpZXJ0ZSBUZWxlZm9uLUNkIGdpYnQsIGF1ZiBkZXIgZGllIERhdGVuIHNjaG9uIGxhbmdlCmRyYXVmIHNpbmQuIGRpZSBUZWxla29uIHppZXQgYWxzbyBudXIgZGFzIG5hY2gsIHdhcyBzaWUgcGVyIFZlcmZ1ZWd1bmcgbmljaHQKdmVyaGluZGVybiBrb25udGU6IGRpZSBWZXJvZWZmZW50bGljaHVuZyBkZXIgYW5kZXJlbiBUZWxlZm9uLUNELi4uCihPZGVyIGlzdCBkaWVzZXNzZCB2aWVsbGVpY2h0IGRvY2ggenVydWVja2dlem9nZW4gd29ycmRlbiBzZWluPyBJY2ggaGFiIGRpZQpkb2NoIHNjaG9uIGdlc2VoZW4sIG9kZXIgd2FyIGRhc25vY2ggbmUgYW5kZXJlPykKTGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGVsZWtvbSBBdXNrdW5mdCAoQ2FyYWRocmFzLCAyMC4gQXVnIDE5OTYsIDEyOjIyOjI5KToKfiMhIHJuPUxpIHJ0PTg0MDUzNTkyNwp+IyEgdGlkPTg0MDUzNTY0OApELUluZm8gbWVpbnN0IER1LCBMaSwgbWl0IDM0IE1pbGxpb25lbiBBZHJlc3NlbiwgbmVpbiwgaXN0IG5vY2ggbmljaHQKenVydWVja2dlem9nZW4gd29yZGVuLCB3aXJkIGFiZXIgYmFsZCBnZW1hY2h0LgoKICAgICBGcm9zY2ggQ2FyYWRocmFzIC0gaGF0IHNpZSBlcnN0IGxldHp0ZSBXb2NoZSBnZWthdWZ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUZWxla29tIEF1c2t1bmZ0IChCZW5kZWlnaWQsIDIxLiBBdWcgMTk5NiwgMTE6MTk6MDcpOgp+IyEgcm49Q2FyYWRocmFzIHJ0PTg0MDUzNjU0OQp+IyEgdGlkPTg0MDUzNTY0OApBbHNvIGljaCBoYWIgamV0enQgZXJzdCBtZWluZW4gV2lkZXJzcHJ1Y2ggZWluZ2VyZWljaHQsIHVuZCBnbGVpY2ggYXVjaCBtZWluZQpOdW1tZXIgYXVzIGRlbSBUZWxlZm9uYnVjaCBzdHJlaWNoZW4gbGFzc2VuLiBEaWUgZnJldW5kbGljaGUgRGFtZSBkZXIgVGVsZWtvbSwKZGllIGRhcyBiZWFyYmVpdGV0ZSBzYWd0ZSwgZGFyYW4gd3VlcmRlbiBzaWNoIGF1Y2ggZGllIGtvbW1lcnppZWxsZW4gQW5iaWV0ZXIKd29obCBoYWx0ZW4uIEljaCBrYW5uIGRhZnVlciBuaWNodCBnYXJhbnRpZXJlbiwgYWJlciBpY2ggd2VyZGUgbWljaCB3b2hsIGJpcwp6dW0gR2VnZW5iZXdlaXMgbWFsIGRhcmF1ZiB2ZXJsYXNzZW4uCkRpZSBOdW1tZXIsIGJlaSBkZXIgaWhyIGRhcyBzZWxiZXIgdmVyYW5sYXNzZW4ga29lbm50LCBzdGVodCBhdWNoIGluIGRpZXNlcgpCZWlsYWdlIHp1ciBSZWNobnVuZy4KCloncGFyIFNlcnZ1LAogICAgICAgICAgICAgICAgQmVuZGVpZ2lkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBUZWxla29tIEF1c2t1bmZ0IChHcmltbWJvcm4sIDIxLiBBdWcgMTk5NiwgMTc6MDQ6NTMpOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTg0MDYxOTE0Nwp+IyEgdGlkPTg0MDUzNTY0OAoKWnUgZGVtIFRoZW1hIGVpZ2VudGxpY2ggbnVyIGVpbmUgRnJhZ2U6IFdhcnVtPwpJY2ggbWVpbmUsIGRpZSBUZWxla29tIGlzdCBkb29mIHVuZCBzdGlua3QgdW5kIGF1c3NlcmRlbSB1bnN5bXBhdGhpc2NoLCBhYmVyCndvenUgc29sbCBkYXMgZ3V0IHNlaW4/CgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgcmVndCB6dW0gRGVua2VuIGFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBUZWxla29tIEF1c2t1bmZ0IChDaGVhc3ksIDIxLiBBdWcgMTk5NiwgMjM6NDQ6MDQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0MDYzOTg5Mwp+IyEgdGlkPTg0MDUzNTY0OApEaWUgVGVsZWtvbSBmdWVocnQgZGVyemVpdCBudXIgZGllIHRlbGVmb25idWVjaGVyIHVuZCBkaWUgVGVsZWZvbmF1c2t1bmZ0IGFuCmRlbiBBdXNrdW5mc3RsZXZlbCBoZXJhbiwgYW4gZGVtIGRpZSBrb21lcnJ6aWVsbGVuIEFkcmVzc3ZlcmxhZ2Ugc2Nob24gbGFlbmdzCmFuZ2VsYW5ndCBzaW5kLiB3ZW5uIG1hbiBzaWNoIHZvbSBzdHJlaWNoZW4gZGVyIFRlbGVmb25udW1tZXIgd2VuaWdlciBXZXJidW5nCnZlcnNwcmljaHQ6IHZlcmdlc3N0IGVzLiBEaWUgYWRyZXNzYnVjaHZlcmxhZ2UgaGFiZW4gYmVyZWl0cyBhbGxlcyBlcmZhc3N0LgotY2hlYXN5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGVsZWtvbSBBdXNrdW5mdCAoSGF0ZSwgMjIuIEF1ZyAxOTk2LCAxNDoyNzoyMyk6Cn4jISBybj1IYXRlIHJ0PTg0MDUzNTY0OAp+IyEgdGlkPTg0MDUzNTY0OApFaW5lIEVyZ2Flbnp1bmc6CgpNYW4ga2FubiBhdWNoIGVpbmZhY2ggZGllIGltIEZhbHRibGF0dCBhbmdlZ2ViZW5lIE51bW1lciAwMTMwLTEyMDI0OQooenVtIE9ydHN0YXJpZikgYW5ydWZlbiB1bmQgbXVlbmRsaWNoIHdpZGVyc3ByZWNoZW4uIAoKRGFiZWkgc29sbHRlIG1hbiBiZWFjaHRlbiwgZGFzcyBlcyB6d2VpIHZlcnNjaGllZGVuZQpXaWRlcnNwcnVjaHNtb2VnbGljaGtlaXRlbiBnaWJ0OiAKKiBnZWdlbiBkaWUgVmVyd2VuZHVuZyBkZXIgRGF0ZW4gZnVlciBkaWUgS29tZm9ydGF1c2t1bmZ0IHVuZAoqIGdlZ2VuIGlocmUgVmVyd2VuZHVuZyBpbiBlbGVrdHJvbmlzY2hlbiBNZWRpZW4uCkRpZSBBbnR3b3J0cG9zdGthcnRlIGF1cyBkZW0gRmFsdGJsYXR0IGJlemllaHQgc2ljaCBudXIgYXVmIGVyc3RlcmVzLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGVsZWtvbSBBdXNrdW5mdCAoUmluZ29yLCAyMi4gQXVnIDE5OTYsIDE1OjA1OjAyKToKfiMhIHJuPUhhdGUgcnQ9ODQwNzE2ODQzCn4jISB0aWQ9ODQwNTM1NjQ4Ck51ciBkYW1pdCBzaWNoIGtlaW5lciBkdXJjaCBkaWUgS29zdGVuIGFic2NocmVja2VuIGxhZXNzdDoKMDEzMC1OdW1tZXJuIHNpbmQgaW1tZXIgKmtvc3RlbmxvcyogLSBhdWNoLCB3ZW5uIG1hbmNoZSBBbmJpZXRlcgpnZXJuZSB3YXMgdm9uIE9ydHN0YXJpZiBzY2hyZWliZW4gOy0pCgpSaW5nb3IgLSBnb2VubnQgZGVyIFRlbGVrb20ga2VpbmUgWnVzYXR6dmVyZGllbnN0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVGVsZWtvbSBBdXNrdW5mdCAoSmFyaWVsLCAyNC4gQXVnIDE5OTYsIDE1OjE0OjAzKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NDA2Mzk4OTMKfiMhIHRpZD04NDA1MzU2NDgKZnVlciBuIENhbGwgQmFjaz8gOy0pCgpKYXJpZWwgKGdyaW5zdCB3aXNzZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgUHJvZ3JhbW0gKENhdW5vLCAyNS4gQXVnIDE5OTYsIDE2OjU0OjE3KToKCkljaCBzdWNoZSBlaW4gUHJvZ3JhbW0sIG1pdCBkZW0gbWFuIEtyZXV6d29ydHJhZXRzZWwgZXJzdGVsbGVuIGthbm4uIEtlbm50CmplbWFuZCBzbyBldHdhcywgb2RlciBoYXQgZXMgc2Nob24gbWFsIGdlc2VoZW4sIG9kZXIgd2Vpc3MgdmllbGxlaWNodCwgd2llIG1hbgpkYXMgcHJvZ3JhbW1pZXJ0IHVuZCBrYW5uIG1pciBkYXMgc2FnZW4/IEZ1ZXIgVGlwcyB3YWVyZSBpY2ggZGFua2Jhci4KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWaXJ1cyBiZWkgVHJlaWJlciBmdWVyIFRvc2hpYmEtQ0QtUk9NUyAoRmlwcHMsIDI2LiBBdWcgMTk5NiwgMjM6NTU6MDApOgpWaWVsbGVpY2h0IGhpbGZ0cyBqYSBqZW1hbmRlbSB2b3IgVW5iaWxsIHp1IGJld2FocmVuOgpCZWkgdW5zIGltIEluc3RpdHV0IHNpbmQgdmVyc2V1Y2h0ZSAgT3JpZ2luYWwtRGlza2V0dGVuIG1pdCBUcmVpYmVyLVNvZnR3YXJlCmZ1ZXIKVG9zaGliYS1DRC1ST01TIGF1ZmdldGF1Y2h0LiAgRmFsbHMgc2ljaCBzaWNoIGplbWFuZCBzb25EIERpbmcgZWluYmF1ZW4gd2lsbCwKa2FubiBpY2ggbmFjaCBkZXIgZ2VuYXVlbiAgQmVzY2hyZWlidW5nIHNjaGF1ZW4uIERlciBWaXJ1cyB6ZXJsZWd0IGRlbiBnYW56ZW4KQm9vdHNla3RvciB1bmQgbm9jaCBlaW4gYmlzY2hlbiBtZWhyLgpGaXBwcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWaXJ1cyBiZWkgVHJlaWJlciBmdWVyIFRvc2hpYmEtQ0QtUk9NUyAoR3VsZHVrYXQsIDI3LiBBdWcgMTk5NiwgMDk6MDI6MjQpOgp+IyEgcm49RmlwcHMgcnQ9ODQxMDk2NTAwCn4jISB0aWQ9ODQxMDk2NTAwCnVwcywgaWNoIGhhYiBsZXR6dGUgd29jaGUgc29uIHRlaWwgZWluZ2ViYXV0CndlbGNoZXMgc2NhbnByb2dyYW1tIGVya2VubnQgaWhuIGRlbm4/CkdECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbiBhbGxlIEZyZXVuZGUgZGVzIERyYWNoZW5wYXBhcy4uLi4gKE5haXJvbGYsIDI4LiBBdWcgMTk5NiwgMjE6NDc6MTkpOgpIaWhvIExldXRlIC4uLi4KV2llIGljaCBoZXV0ZSBlcmZhaHJlbiBoYWJlIHdpbGwgVHlyaW9uLCBkZXIgRHJhY2hlbnBhcGEgbW9yZ2VuIGFiZW5kIChkLmguIGFtCkRvbm5lcnN0YWcgYWJlbmQpIGlucyBNRyBrb21tZW4gdW0gbWFsIHdpZWRlciBhbGxlIHNlaW5lIEZyZXVuZGUgenUKa251ZGRlbG4uLi4uLi4KTnVyIGZ1ZXIgZGllIGRpZXMgaW50ZXJlc3NpZXJ0IDotKSB1bmQgd2VyIHZvbiBzZWluZW4gRnJldW5kZW4gd2lsbCBrYW5uIGphCmRhbm4gZGEgc2VpbiAuLi4gZXIgc2FndGUgbnVyIG1vcmdlbiBhYmVuZCBtZWhyIHdlaXNzIGljaCBhdWNoIG5pY2h0IDotKQoKR3J1c3MgTmFpcm9sZiwgZGVyIHNlaW5lbiBBbnJ1ZmJlYW50d29ydGVyIGFiZ2Vob2VydCBoYXQgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpURiAoQW5hdG9sLCAyOS4gQXVnIDE5OTYsIDAwOjExOjA0KToKCkhpLApJY2ggYmVudXR6ZSBUaW55RnVndWUgMy41IGFscGhhIDIwIC0gdW5kIGhhYmUgYmVtZXJrdCwgZGFzcyBnZWxlZ2VudGxpY2ggZWluCkJlZmVobCAobmFjaCBlaW5lbSAvd2VnZXNjcmlwdCkgaW4gZGllIEhpbnRlcmdydW5kc2Vzc2lvbiBhYnJ1dHNjaHQuCklzdCBkYXMgYXVjaCBhbmRlcmVuIGF1ZmdlZmFsbGVuIG9kZXIgc2VoZSBpY2ggR2VzcGVuc3Rlcj8KCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBURiAoUmlrdXMsIDI5LiBBdWcgMTk5NiwgMDE6MDE6MjkpOgp+IyEgcm49QW5hdG9sIHJ0PTg0MTI3MDI2NAp+IyEgdGlkPTg0MTI3MDI2NApIaSwKamEsIGljaCBoYXR0ZSBtaXQgVmVyc2lvbiAyMCBhdWNoIGltbWVyIFByb2JzLCBtaXQgMTkgZ2VodCBhbGxlcwplaW53YW5kZnJlaS4uLgoKUmlrdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBURiAoQWNyaW1vbiwgMzAuIEF1ZyAxOTk2LCAxNzo1NDoxMyk6Cn4jISBybj1BbmF0b2wgcnQ9ODQxMjcwMjY0Cn4jISB0aWQ9ODQxMjcwMjY0Ck51biwgbWlyIGlzdCBkYXMgbm9jaCBuaWNodCBwYXNzaWVydCAuLi4gdmllbGxlaWNodCBoYWVsdHN0IGR1IGRpY2ggbmljaHQgZ2FuegphbiBkaWUgUmVnZWxuIHZvbiB0Zj8KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBURiAoQW5hdG9sLCAzMC4gQXVnIDE5OTYsIDE3OjU4OjQ2KToKfiMhIHJuPUFjcmltb24gcnQ9ODQxNDIwNDUzCn4jISB0aWQ9ODQxMjcwMjY0CgpURiBoYXQgUmVnZWxuPwpOYWphLCBpY2ggYmVrYW0gbm9jaCBuaWUgUG9zdCB2b24gbWVpbmVuIFp3ZWl0aWVzLCBrYW5uIHNlaW4uCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWhpbmRlcnRlbi1BbnBhc3N1bmcgKEdyaW1tYm9ybiwgIDIuIFNlcCAxOTk2LCAxNDozODozNCk6CgpJY2ggc3VjaCBMZXV0ZS9HcnVwcGVuL0luc3RpdHV0ZSwgZGllIHNpY2ggbWl0IEJlaGluZGVydGVuYW5wYXNzdW5nIHZvbgpDb21wdXRlcm4gKFNvZnQtIHVuZCBIYXJkd2FyZSkgYmVzY2hhZWZ0aWdlbi4gQW5nZWJsaWNoIHNvbGwgZXMgaW4gTXVlbnN0ZXIKei5CLiBzb3dhcyBnZWJlbi4gV2VyIGthbm4gbWlyIGRhIHdlaXRlcmhlbGZlbiwgZWluZSBlbWFpbC1BZHJlc3NlIG9kZXIgc28Kd2FlciBzY2hvbiBlaW5lIGdyb3NzZSBIaWxmZS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IE5hbWUgZ2VzdWNodCAoUmFmZmksICAzLiBTZXAgMTk5NiwgMDg6MTg6NTYpOgp+IyEgcm49SGFyZGlsIHJ0PTg0MDA3MjkzMQp+IyEgdGlkPTgzOTQxOTYzOQoKSWNoIGhhYnMgIQoKICAgICAgICBUSU5BCgpEYXMgaXN0IHNvIHdpZWRlcmxpY2ggZ2V3b2VobGljaCwgZGFzcyBlcyBzY2hvbiB3aWVkZXIgZ3V0IGlzdC4KKEF1c3NlcmRlbSBoYWIgaWNoIGdlc3Rlcm4gaW0gU2NoYXVmZW5zdGVyIGVpbmVzIE1vZGVsbGJhdWdlc2NoYWVmdHMgZWluCmZlcm5nZXN0ZXVlcnRlcyBSdWRlcmJvb3QgZ2VzZWhlbiwgdW5kIGRhcyBoaWVzIGdlbmF1c28gOikKCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp0ZXN0IChUb2V0ZXIsICAzLiBTZXAgMTk5NiwgMTI6NTE6MTMpOgpIaSwKd2llIGphIHdvaGwgc2Nob24gZWluaWdlIHdpc3Nlbiwgc2NocmVpYmVuIFphcmRveiwgQmVuIHVuZCBpY2ggc2VpdCBsYWVuZ2VyZW0gCmFuIGRlciBLYWVtcGZlcmdpbGRlLiBEYSB3aXIgaW4gZGllc2VyIGRlbiBBdWZzdGllZyBuaWNodCBhbGxlaW4gdm9uIGlyZ2VuZC0Kd2VsY2hlbiBiZXJlaXRzIHZvcmhhbmRlbmVuIFdlcnRlbiBhYmhhZW5naWcgbWFjaGVuIHdvbGxlbiwgaGFiZW4gd2lyIGVpbiAKcGFhciBNaW5pcXVlc3RzIHp1c2FtbWVuZ2VzdGVsbHQsIGRlcmVuIEJlc3RlaGVuIGZ1ZXIgZGFzIHdlaXRlcmUgRm9ydGtvbW1lbgppbiBkZXIgR2lsZGUgbm90d2VuZGlnIGlzdC4gQWxsZXJkaW5ncyBiZXNjaHJhZW5rZW4gc2ljaCBkaWVzZSBncm9lc3N0ZW50ZWlscwphdWYgZGllIHZvbiB1bnMga29udHJvbGxpZXJ0ZW4gR2ViaWV0ZSwgd2FzIGlyZ2VuZHdpZSBuaWNodCBzbyBzY2hvZW4gaXN0LiAKRGVzaGFsYiBtb2VjaHRlIGljaCBoaWVyIG5vY2ggZWlubWFsIGFsbGUgTWFnaWVyIHVuZCBTcGllbGVyIGJpdHRlbiwgdW5zIE1vZWctCmxpY2hrZWl0ZW4genUgbmVubmVuLCB3byBzaWNoIE1pbmlxdWVzdHMgaW5zdGFsbGllcmVuIGxhc3Nlbi4gV2VyIGFsc28gYmVyZWl0cwpiZXN0ZWhlbmRlIE1pbmlxdWVzdHMga2VubnQsIGRpZSBzaWNoIGZ1ZXIgZWluZSBLYWVtcGZlcm1pc3Npb24gKG11c3MgbmljaHQKaGFjayduIHNsYXkgc2VpbikgZWlnbmV0LCBvZGVyIGVpbmUgc29sY2hlIHNjaHJlaWJlbiB3aWxsLCBtb2VjaHRlIHNpY2ggZG9jaCAKYml0dGUgdm9sbGVyIFZlcnRyYXVlbiBhbiBlaW5lbiB2b24gdW5zIHdlbmRlbi4KICBUb2V0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCdWNodGl0ZWwgZ2VzdWNodCAoWWVuZGksICAzLiBTZXAgMTk5NiwgMTU6MjU6MzEpOgp+IyEgcm49VmFuaXIgcnQ9ODQwMTEyNDYxCn4jISB0aWQ9ODQwMTEyNDYxCgoKR3V0ZSBTRiZGYW50YXN5LCBobW1tPwoKRmFuZ2VuIHdpciBhbjogRmFzdCBhbGxlcyB2b24gU3RldmVuIEJydXN0LgooT0ssIHNlbGJzdCBzZWluZSBzY2hsZWNodGVuIEJ1ZWNoZXIgc2luZCBpbW1lciBub2NoIGJlc3NlciBhbHMgZGllIGd1dGVuCiB2b24gYW5kZXJlbiBBdXRob3JlbiwgYWxzbyBfYWxsZXNfIHZvbiBTdGV2ZW4gQnJ1c3QpCgpXYXMgaWNoIGViZW5mYWxscyBlbXBmZWhsZW4ga2FubjogSWFuIE0gQmFua3MuCkRlciBpc3QgYWJlciBlaW4gYnJpdGlzY2hlciBTQ2hyZWliZXJsaW5nLCBhbHNvIGthbm4gZXMgc2VpbiwgZGFzcyBtYW4gaW4gZGVuClVTQSBTY2h3aWVyaWdrZWl0ZW4gaGF0LCBhbiBzZWluZSBCdWVjaGVyIHJhbnp1a29tbWVuLiBCZXNvbmRlcnMgZ2VmYWxsZW4gaGF0Cm1pciBzZWluICJVc2Ugb2YgV2VhcG9ucyIuIFRvbGxlIENoYXJha3RlcmJlc2NocmVpYnVuZywgdm9lbGxpZyB1bmVyd2FydGV0ZQpXZW5kdW5nIGFtIFNjaGx1c3MuCgpBYnJhdGVuIG11c3MgaWNoIHZvbiAiQmF0dGxlZmllbGQgRWFydGgiIHZvbiBMLiBSb24gSHViYmFyZC4KSGlsZmUhIEljaCBoYWJlIHNlbHRlbiBlaW4gZGVyYXJ0IHNjaGxlY2h0ZXMgQnVjaCBnZWxlc2VuLiBEaWUgQ2hhcmFrdGVyZQpibGVpYmVuIGZsYWNoIHVuZCB1bmdsYXVid3VlcmRpZywgZGllIEdlc2NoaWNodGUgaXN0IGF1ZiB3ZWl0ZSBTdHJlY2tlbgp2b3JoZXJzZWhiYXIsIHVuZCBzZWluZSBBdXNmdWVydW5nZW4genVyIFhlbm9iaW9sb2dpZSwgVGVsZXBvcnRhdGlvbiwgUG9saXRpawp1bmQgT2Vrb25vbWllIHNpbmQgYXVjaCBmdWVyIExhaWVuIHdpZSBtaWNoIGFic29sdXQgaGFhcnN0cmFldWJlbmQuCkxFU1QgRVMgTklDSFQsIExFVVRFISBLZWluZSBTb3JnZTogRGllIE1lbnNjaGVuIGdld2lubmVuLCBKb25uaWUgR29vZGJveSBUeWxlcgppc3QgZGVyIEhlbGQsIGRpZSBFcmRlIGJsZWlidCB1bnNlciwgdW5kIHdlbm4gc2llIG5pY2h0IGdlc3RvcmJlbiBzaW5kLCBkYW5uCmxlYmVuIHNpZSBub2NoIGhldXRlLiBLZWluIEdydW5kLCBkYWZ1ZXIgR2VsZCBhdXN6dWdlYmVuLgoKUHVoLiBTb3ZpZWwgenUgIkJhdHRsZWZpZWxkIEVhcnRoIi4gVmllbGxlaWNodCBoYWV0dGUgSHViYmFyZCBiZWkgZGVyClZlcndhbHR1bmcgc2VpbmVzIFNjaWVudG9sb2d5LUltcGVyaXVtcyBibGVpYmVuIHNvbGxlbiwgc3RhdHQgc2ljaCBhdWYgc2VpbmUKU0YtV3VyemVsbiB6dSBiZXNpbm5lbi4uLgoKCkVnYWwsIHp1cnVlY2sgenUgX2d1dGVuXyBCdWVjaGVybjoKV2llIHdhZXJzIG1pdCBEQU4gU0lNTU9OUz8gSWNoIGhhYmUgdm9uIGlobSAiSHlwZXJpb24iIHVuZCAiVGhlIEZhbGwgb2YKSHlwZXJpb24iIGdlbGVzZW4sIHVuZCBiZWlkZSB3YXJlbiBhdGVtYmVyYXViZW5kLiBGYXN6aW5pZXJlbmRlIENoYXJha3RlcmUsCmxlYmVuZGlnZSB1bmQgZnVua3Rpb25pZXJlbmRlIFdlbHRlbiwgaW5zZ2VzYW10IGVpbiBzY2hsdWVzc2lnZXIgSGludGVyZ3J1bmQsCnZvciBkZW0gc2ljaCBlaW5lIHNwYW5uZW5kZSBHZXNjaGljaHRlIGVudHdpY2tlbHQuCkxlaWRlciBoYWJlIGljaCB2b24gaWhtIGJpcyBqZXR6dCBub2NoIG5pY2h0IG1laHIgZ2VsZXNlbiwgYWJlciBlciBoYXQgUHJlaXNlCmdld29ubmVuIGZ1ZXIgc2VpbmUgR2VzY2hpY2h0ZW4gYXVzIGRlbiBHZW5yZXMgU2NpZW5jZSBGaWN0aW9uICgiSHlwZXJpb24iKSwKSG9ycm9yICgiQ2FycmlvbiBDb21mb3J0IikgdW5kIEZhbnRhc3kgKCJTb25nIG9mIEthbGkiKS4gCkFVY2ggdWViZXIgc2VpbmUgSG9ycm9yZ2VzY2hpY2h0ZW5zYW1tbHVuZyAiUHJheWVycyBmb3IgdGhlIEJyb2tlbiBTdG9uZXMiCmhhYmUgaWNoIHNjaG9uIEd1dGVzIGdlaG9lcnQuCgoKV2VpdGVyOiBBZWggLS0gaGFiZSBpY2ggc2Nob24gU3RldmVuIEJydXN0IGVyd2FlaG50PyBBaCBqYS4gR3V0LgpEYW5uIHdhZXJlIGRhIG5vY2ggT1JTT04gU0NPVFQgQ0FSRCBtaXQgIkVuZGVyJ3MgR2FtZSIsICJTcGVha2VyIGZvciB0aGUgRGVhZCIKdW5kICJYZW5vY2lkZSIuIEJpcyBhdWYgZGFzIGxldHp0ZSBoYWJlIGljaCBkaWUgc2Nob24gZ2VsZXNlbi4gR3V0LiBMZXN0IHNpZS4KCgpIbW1tLi4uIE1pciBmYWVsbHQgZ2VyYWRlIGF1ZiwgZGFzcyBpY2ggaGllciBoYXVwdHNhZWNobGljaCBTRiBiZWhhbmRsZS4gV2FzCmdpYnRzIGRlbm4gbm9jaCBzbyBhbiBGYW50YXN5PyBNYWwgc2VoZW4uLi4gRGEgd2FlcmUgU3Rldi0gT0ssIE9LLCBzY2hvbiBndXQuCk5laG1lbiB3aXIgSmFubnkgV3VydHMuIERpZSBoYXQgZWluZSBnYW56ZSBSZWloZSBCdWVjaGVyIG1pdCBpcmdlbmRlaW5lbSBLZXJsCnp1c2FtbWVuIGdlc2NocmllYmVuOyBrZW5uZSBpY2ggbm9jaCBuaWNodCwgbWFsIHNlaGVuLiBXYXMgaWNoIHZvbiBpaHIgZ2VsZXNlbgpoYWJlLCB3YXIgIlRoZSBNYXN0ZXIgb2YgV2hpdGVzdG9ybSIuIFN0ZWxsZW53ZWlzZSBzY2hvZW5lIEdlc2NoaWNodGUsCmRpZSBDaGFyYWt0ZXJlIHNpbmQgZ2FueiBpbnRlcmVzc2FudCwgZW50d2lja2VsbiBzaWNoIGFiZXIgbmljaHQgZ3Jvc3Mgd2VpdGVyLgpNYW4ga2FubiBhYmVyIGF1cyBkZXIgU3RvcnkgamVkZSBNZW5nZSBzY2hvZW5lIElkZWVuIGZ1ZXIgUm9sbGVuc3BpZWxlIHppZWhlbi4KCgpBY2gsIGRhIGZhZWxsdCBtaXIgbm9jaCAiQSBOaWdodCBpbiB0aGUgTG9uZXNvbWUgT2N0b2JlciIgZWluIChpY2ggaG9mZmUsIGRlcgpUaXRlbCBpc3Qga29ycmVrdCksIGVpbmUgc3Bhc3NpZ2UgSG9ycm9yZ2VzY2hpY2h0ZSB2b24sIHdlbm4gaWNoIG1pY2ggbmljaHQKaXJyZSwgU2FtdWVsIERlbGFuZXkuIEljaCB3ZXJkIGpldHp0IG5pY2h0IG5hY2ggSGF1c2UgZmFocmVuLCB1bQpuYWNoenVzY2hhdWVuLgoKClNvLCBkYXMgd2FlcnMgZnVlciBkZW4gQXVnZW5ibGljay4gV2VubiBtaXIgbWVociBlaW5mYWVsbHQsIG1lbGRlIGljaCBtaWNoLgoKClllbmRpIGRlciBMZXNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQnVjaHRpdGVsIGdlc3VjaHQgKEFzbW9kaXMsICAzLiBTZXAgMTk5NiwgMTU6Mjc6MzgpOgp+IyEgcm49WWVuZGkgcnQ9ODQxNzU3MTMxCn4jISB0aWQ9ODQwMTEyNDYxCkh1YmJhcmQ/IGlzdCBkYXMgbmljaHQgZGVyIFNDSUVOVE9MT0dZLVR5cCA/PyB2b24gZGVtIGxlc2UgaWNoIGVoIG5peCAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCdWNodGl0ZWwgZ2VzdWNodCAoWWVuZGksICAzLiBTZXAgMTk5NiwgMTU6NDc6MDkpOgp+IyEgcm49QXNtb2RpcyBydD04NDE3NTcyNTgKfiMhIHRpZD04NDAxMTI0NjEKCldpZXNvIG5pY2h0PyBBbmdzdCwgaW5maXppZXJ0IHp1IHdlcmRlbj8KRGFzIGVpbnppZ2UgUHJvYmxlbSwgd2FzIGljaCBzZWhlLCBpc3QsIGRhc3MgZGllIG1laXN0ZW4gc2VpbmVyClNjaWVudG9sb2d5LXJlbGV2YW50ZW4gQnVlY2hlciBudXIgdWViZXIgZGVuIFZlcnNhbmQgenUga3JpZWdlbiBzaW5kIC0tIHVuZApkYW5uIGhhYmVuIHNpZSBkaWNoIG5hdHVlcmxpY2ggZ2xlaWNoIGFtIFdpY2tlbC4uLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCdWNodGl0ZWwgZ2VzdWNodCAoQ2FyYWRocmFzLCAgMy4gU2VwIDE5OTYsIDE2OjExOjU4KToKfiMhIHJuPVllbmRpIHJ0PTg0MTc1ODQyOQp+IyEgdGlkPTg0MDExMjQ2MQpTaWNoZXIsIHdpZXNvIHNvbGx0ZSBtYW4gZGEga2VpbmUgQW5nc3Qgdm9yIGhhYmVuPyBFcyBoYWJlbiBhdWNoIHNjaG9uCnNvIHZpZWxlIGdlc2FndCBkYXNzIGVzIGlobmVuIG5peCBtYWNoZW4gd3VlcmRlIC4uLiB1bmQgZGFubj8gVGphLAphYmhhZW5naWcgdm9uIGVpbmVyIFNla3RlIHd1cmRlbiB2aWVsZSB1bmZyZWl3aWxsaWcuIEJ6dy4gbmFjaGhlciAKaW4gaWhyZW4gR2VkYW5rZW4gd29obCBmcmVpd2lsbGlnLiBVbmQgc2VsYnN0IHdlbm4gbWFuIGtlaW5lIEFuZ3N0CmhhdCwgJ2luZml6aWVydCcgenUgd2VyZGVuLCBzbyBicmFlY2h0ZSBkZXIgS2F1ZiBkaWVzZXIgQnVlY2hlciBkb2NoIHdvaGwKZGVuIExldXRlbiB2b24gU2NpZW50b2xvZ3kgZWluaWdlcyBhbiBHZWxkIGVpbiwgd2FzIHNpZSBub2NoIG1hZWNodGlnZXIKbWFjaGVuIHd1ZXJkZS4gSWNoIGthdWZlIGRvY2ggbmljaHRzIGVpbiB2b24gZGVtIGljaCB3ZWlzcywgZGFzcyBlcyBlaW5lcgpTYWNoZSBoaWxmdCwgZGllIGdlbmF1IGRlbSBlbnRnZWdlbmdlc2V0enQgaXN0IHdhcyBtZWluZSBNZWludW5nIGlzdC4KR2VuYXVzbyB3aWUgaWNoIGF1Y2gga2VpbmUgTXVlbGxlck1pbGNoIGthdWZlLCBpY2ggdW50ZXJzdHVldHplIGtlaW5lClJlcHVibGlrYW5lciwgYXVjaCB3ZW5uIGVzIG51ciBpbmRpcmVrdCBpc3QuCgogICAgICBSb3Rob3JuIENhcmFkaHJhcyB1bmQgc2VpbmUgUHJpbnppcGllbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJ1Y2h0aXRlbCBnZXN1Y2h0IChIZWx2YSwgIDMuIFNlcCAxOTk2LCAxNjozNToxMSk6Cn4jISBybj1ZZW5kaSBydD04NDE3NTg0MjkKfiMhIHRpZD04NDAxMTI0NjEKV2VubiBzZWluZSBTY2llbnRvbG9neSBidWVjaGVyIG51ciBlaW4gWmVobnRlbCBzbyBzY2hsZWNodCBzaW5kIHdpZSBzZWluZSBTRgpidWVjaGVyLCBiZWxlaWRpZ2VuIHNpZSBhbGxlaW5lIGRlc3dlZ2VuIHNjaG9uIGRlbiBtZW5zY2hsaWNoZW4gVmVyc3RhbmQuIFZvbQpVbWdhbmcgbWl0IG1lbnNjaGxpY2hlciB3dWVyZGUgaW4gU2NpZW50b2xvZ3kgZ2FyIG5pY2h0IGVyc3QgenVyZWRlbi4KRXJuc3RlIEdydWVzc2UsIGhlbHZhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJ1Y2h0aXRlbCBnZXN1Y2h0IChTdGFobGRvcm4sICAzLiBTZXAgMTk5NiwgMTk6MjY6MjQpOgp+IyEgcm49WWVuZGkgcnQ9ODQxNzU3MTMxCn4jISB0aWQ9ODQwMTEyNDYxCkFoamEKQWxzbyAiRW5kZXIiIHZvbiBPcnNvbiBTb3R0IENhcmQgaXN0IGdlbmlhbC4gRGEgc3RpbW0gaWNoIHZvbGwgdW5kIGdhbnogenUhCldlbm4gaWNoIG1laW5lbiBTZW5mIGFuIEVtcGZlaGx1bmdlbiAoZGllIHdhaHJzY2hlaW5saWNoIGVoIGtlaW5lciBhdWZncmVpZnQpCmFiZ2ViZW4gZGFyZjoKCk1laW4gTGllYmxpbmdzYnVjaDogIlNjaGlzbWF0cml4IiB2b24gQnJ1Y2UgU3RlcmxpbmcuCiJBZW9uIiB2b24gR3JlZyBCZWFyCiJCbHV0bXVzaWsiIGF1Y2ggR3JlZyBCZWFyCgoKCi4uLmRhcyB3YXJzIHNjaG9uLiBTaW5kIG51ciBkcmVpIG1laW5lciBMaWVibGluZ3NidWVjaGVyLgoKU1RBSEwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCdWNodGl0ZWwgZ2VzdWNodCAoUmFmZmksICAzLiBTZXAgMTk5NiwgMjI6MzM6MDYpOgp+IyEgcm49WWVuZGkgcnQ9ODQxNzU4NDI5Cn4jISB0aWQ9ODQwMTEyNDYxCgpWb24gZGVtIGxlcyBpY2ggYXVjaCBuaXggKG1laHIpLiAtIERpZSBTRiB2b24gaWhtIGlzdCAod2FyKSB1bnRlciBhbGxlciBzYXUuClNlbGJzdCBTYXVtYWVzc2lnIHdhZXJlIGVpbmUgQmVsb2JpZ3VuZy4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCdWNodGl0ZWwgZ2VzdWNodCAoWWFudHJvLCAgNC4gU2VwIDE5OTYsIDA5OjA2OjA1KToKfiMhIHJuPVJhZmZpIHJ0PTg0MTc4Mjc4Ngp+IyEgdGlkPTg0MDExMjQ2MQpIbW0gYWxzbyBpY2ggd2Vpc3MgbmljaHQsIHdhcyBpaHIgZGEgYWxsZSByZWRldCwgYWJlciBlcyBnaWJ0IG51ciBlaW5lIGd1dGUgU0YKdW5kIGRhcyBpc3QgUGVycnkgUmhvZGFuIDotKSAqZ3JpbnMgQXNtb2RpcyBhbioKCiAgICAgICAgWWFudHJvLCBrb21tdCBhdWNoIGF1cyBzbyBlaW5lbSBCdWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQnVjaHRpdGVsIGdlc3VjaHQgKEFyZGFuYSwgIDQuIFNlcCAxOTk2LCAxNDo0NjoyNyk6Cn4jISBybj1TdGFobGRvcm4gcnQ9ODQxNzcxNTg0Cn4jISB0aWQ9ODQwMTEyNDYxCkhtbSwgQmx1dG11c2lrIGZhbmQgaWNoIGlyZ2VuZHdpZSBsYW5nd2VpbGlnIC0gbmFoZXp1IGdlbmlhbCBzaW5kIGRhZ2VnZW4KYWxsZXMgQnVlY2hlciBhdXMgZGVtIFNoYWRvd3J1biAtIFp5a2x1cy4gRGllIEJ1ZWNoZXIgYmFzaWVyZW4gYXVmCmdsZWljaG5hbWlnZW0gUm9sbGVuc3BpZWwuCkFsc28sIHdlciB3aXNzZW4gd2lsbCwgd2llIGRpZSBXZWx0IGltIEphaHJlIDIwNTMgYXVzc2llaHQgdW5kIHdhcyBhYmdlZHJlaHRlcwp1bmQgdW5rb252ZW50aW9uZWxsZXMgbGVzZW4gd2lsbCwgZnJhZ2UgZGVuIEJ1Y2hoYWVuZGxlciBzZWluZXMgVmVydHJhdWVucwpuYWNoCgogICAgICAgICAgICAgICAgICAgIFNIQURPV1JVTgoKSnVzdCBtZWluZSAxNDkwIFBmZW5uaWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNvdmllbCBrb3N0ZXQgenVtIEJlaXNwaWVsIEJhbmQgMjAgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdWNoIChHcmltbWJvcm4sICA0LiBTZXAgMTk5NiwgMjM6MjA6MzEpOgoKQWxzbywgaWNoIGVtcGZlaGxlICJHb29kIE9tZW5zIiB2b24gVGVycnkgUHJhdGNoZXR0LiBTZWluIG1pdCBBQlNUQU5EIGJlc3RlcwpCdWNoLiBXZXIgZGEgdm9uIEFuZmFuZyBiaXMgRW5kZSBsYWNoZW4ga2FubiwgZGVtIGlzdCBuaWNodCBtZWhyIHp1IGhlbGZlbiwKd2VyIGRhcnVlYmVyIG5pY2h0IGxhY2hlbiBrYW5uIGRlbSBpc3QgZXJzdCByZWNodCBuaWNodCBtZWhyIHp1IGhlbGZlbi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaGFzdCBEdSBrZWluZSBrYXVmIERpciBlaW5lIChUb2V0ZXIsICA1LiBTZXAgMTk5NiwgMTE6MDI6MzIpOgpIaSwKCmJld2VnZW5kZSBEaW5nZSBnZXNjaGVoZW4sIHVuZCBydWVocmVuIGRpZSBHZW11ZXRlci4gVW5kIGRhIGdpYnQgZXMgZGFubiBuYS0KdHVlcmxpY2ggdmllbGUsIHZpZWxlIHdpY2h0aWdlIE1laW51bmdlbi4gV2VyIG51biBkYXMgRGVmaXppdCBlaW5lciBzb2xjaGVuIAphbiBzaWNoIGZlc3RnZXN0ZWxsdCBoYXQsIGJlZGllbmUgc2ljaCBkb2NoIGVpbmZhY2ggYW4gZWluZXIgZGVyIGZvbGdlbmRlbiAKKHVtIGRpZSBNZWludW5nIHdpZWRlcnZlcndlbmRiYXIgenUgbWFjaGVuLCB3aXJkIGFscyBWYXJpYWJsZSBkZXIgb2JqZWN0LQpwb2ludGVyIHggZWluZ2VzZXR6dCk6CgpCZXN0Lk5yLiAxMjQ3Njg1MQpUeXA6IEtpbmRlcmdhcnRlbgpNZWludW5nOiAiT29vY2gsIGpldHp0IGhhYmVuIHNpZSB4IHJhdXNnZXNjaG1pc3NlbiwgZGFiZWkgd2FyIGRlciBkb2NoIGltbWVyIAogc29vb28gbGllYiB6dSBtaXIuIEljaCBnbGF1YmUsIGljaCBmaW5kZSBkYXMgamV0enQgdW5nZXJlY2h0LiBVbmQgdWViZXItCiBoYXVwdCwga2VpbmUgTWFjaHQgZGVuIEVyemtpbmRlcmdhZXJ0bmVybiEiCgpCZXN0Lk5yLiA0MTU5MTUxClR5cDogQmV0cm9mZmVuLVNjaHJlaW5lbWFrZXJuZApNZWludW5nOiAieCBoYXR0ZSBlcyBzaWNoZXJsaWNoIG5pY2h0IGxlaWNodCBpbSBMZWJlbi4gU3RhZW5kaWcgaGllbHQgbWFuIGlobQogc2lubmxvc2UgUmVnZWxuIHZvciwgdW0gaWhuIHp1IHNjaGlrYW5pZXJlbi4gRGFiZWkgd2FyIHZvbiBBbmZhbmcgYW4ga2xhciwgCiBkYXNzIGRpZXNlIFJlZ2VsbiBlaWdlbnMgZnVlciBpaG4gZXJmdW5kZW4gd2FyZW4sIHVtIGlobiB3ZWd6dWVrZWxuLiBXaXIgCiBzcHJlY2hlbiBqZXR6dCBtaXQgZWluZW0gQW5nZWhvZXJpZ2VuIGRlcyBPcGZlcnMgdW5kIHNlaGVuIGRhYmVpLCB3YXMgZnVlciAKIGVpbmUgdG90YWFsIGxpYmVyYWxlIExlYmVuc2VpbnN0ZWxsdW5nIHggZWlnZW50bGljaCBoYXQuLi4iCgpCZXN0Lk5yLiA0NTYyNDY4NgpUeXA6IEJldHJvZmZlbi1XZWx0dmVyYmVzc2VybmQKTWVpbnVuZzogIkluIGVpbmVyIFdlbHQsIGluIGRlciBlcyBtb2VnbGljaCBpc3QsIGFuZGVyZSB6dSBhZXJnZXJuLCBibGVpYnQgCiBhcm1lbiBUZXVmZWxuIHdpZSB4IG5pY2h0cyBhbmRlcmVzIHVlYnJpZywgYWxzIGFuZGVyZSB6dSBhZXJnZXJuLiBMYXNzdCB1bnMKIGFsc28gZWluZSBXZWx0IHNjaGFmZmVuLCBpbiBkZXIgZGFzIG5pY2h0IG1vZWdsaWNoIGlzdCwgdW5kIGFsbGVzIHdpcmQgZ3V0LiIKCkJlc3QuTnIuIDQ1NjI4NTYzClR5cDogTnVlY2h0ZXJuCk1laW51bmc6ICJ4IGhhdCBzaWNoIG1laHJmYWNoIHVlYmVyIHZvbiBpaG0gdW50ZXJzY2hyaWViZW5lIFJlZ2VsbiBoaW53ZWdnZS0KIHNldHp0IHVuZCBpc3QgaW5mb2xnZWRlc3NlbiBnZWt1ZW5kaWd0IHdvcmRlbi4gTm9ybWFsLiIKCldhcmVuIGRhcyBhbGxlPyBOZWluLCBlaW5lIGZlaGx0IG5vY2ggOikKCkJlc3QuTnIuIDAwMDAwMDAwClR5cDogUHJhZW5hdGFsLVBhcmFub2lkCk1laW51bmc6ICJTY2hlaXNzZSwgZGllIEFyc2NobG9lY2hlciBoYWJlbiB4IHJhdXNnZXNjaG1pc3Nlbi4gRGllc2UgV2ljaHMtCiBnZXNpY2h0ZXIuIEljaCBiaW4gZGFubiB3YWhyc2NoZWlubGljaCBkZXIgTmFlY2hzdGUuIFNjaG5lbGwgbm9jaCBkYXMgc2FnZW4sCiB3YXMgYWxsZSBkZW5rZW4sIGFiZXIga2VpbmVyIHNpY2ggenUgc2FnZW4gdHJhdXQuIFNjaGVpc3NlLiIKCkJlc3RlbGx1bmdlbiBiaXR0ZSBhbiBtaWNoLCBhYmVyIG5pY2h0IHZlcmdlc3NlbjogSmVkZXIgbnVyIGVpbmUgTWVpbnVuZwogIFRvZXRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ0lNLUxpdGVyYXR1ciBnZXN1Y2h0IChMZWZ0eSwgIDUuIFNlcCAxOTk2LCAyMzoxNzo0NSk6CkhpLAogCmljaCBzdWNoZSBpcmdlbmR3ZWxjaGUgTGl0ZXJhdHVyLCBXZWJzZWl0ZW4sIFJlZmVyYXRlIHdhcyB3ZWlzcyBpY2ggenVtClRoZW1hOgogCkNJTSAoQ29tcHV0ZXIgSW50ZWdyYXRlZCBNYW51ZmFjdHVyaW5nKQogCkthbm4gbWlyIGRhIGplbWFuZCBldHdhcyBuZW5uZW4gPyBJY2ggd2FlcmUgZGEgZWNodCBkYW5rYmFyIGZ1ZXIuCiAKSG0sIGFtIGJlc3RlbiBtYWlsdCBpaHIgbWlyIGRhcyB6dSwgZGEgd2lyZCBkaWUgWmVpdHVuZyBuZXQgc28gCnp1Z2VtdWVsbHQuIDstKQogCkNpYW8sIExlZnR5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEdXJjaHNjaG5pdHRzbnV0emVyemFobGVuIChIYXRlLCAgOC4gU2VwIDE5OTYsIDAwOjIwOjEyKToKKysrIFN0YXRpc3RpayB2b20gU2F0IFNlcCAgNyAyMzozNDo0NiBNRVQgRFNUIDE5OTYgKysrCjAwaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNDggU3AuCjAxaCAqKioqKioqKioqKioqKioqKioqKioqKiogIDQwIFNwLgowMmggKioqKioqKioqKioqKioqKioqKiogIDM0IFNwLgowM2ggKioqKioqKioqKioqKioqKiAgMjggU3AuCjA0aCAqKioqKioqKioqKioqICAyMiBTcC4KMDVoICoqKioqKioqKiogIDE3IFNwLgowNmggKioqKioqKiAgMTIgU3AuCjA3aCAqKioqKioqICAxMiBTcC4KMDhoICoqKioqKioqKiogIDE3IFNwLgowOWggKioqKioqKioqKioqKioqKiogIDI5IFNwLgoxMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqICA0NiBTcC4KMTFoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1OSBTcC4KMTJoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA2NCBTcC4KMTNoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3NCBTcC4KMTRoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDc3IFNwLgoxNWggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzcgU3AuCjE2aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3NyBTcC4KMTdoICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNzUgU3AuCjE4aCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA3MSBTcC4KMTloICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDY3IFNwLgoyMGggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgNjIgU3AuCjIxaCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDYxIFNwLgoyMmggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogIDU4IFNwLgoyM2ggKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICA1NiBTcC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRvbWFpbj8hPyAoU2hha2VkYmVlciwgMTAuIFNlcCAxOTk2LCAxMjo1MDowMCk6CkhpIQoKSGF0IGplbWFuZCB2b24gRXVjaCBBaG51bmcsIHdpZSBtYW4gYW4gZWluZSBEb21haW4ga29tbXQ/IEdpYnQgZXMgZGEgQW5iaWV0ZXIsCmRpZSBlcyBlcmxhdWJlbiBlaW5lbiBTZXJ2ZXIgYW56dXNjaGxpZXNzZW4/IFdpZSB0ZXVlciB3aXJkIHNvIGV0d2FzPwoKRnJhZ2VuIHVlYmVyIEZyYWdlbjogU2hha2VkYmVlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEb21haW4/IT8gKEZyZXVuZCwgMTAuIFNlcCAxOTk2LCAxMzo0ODoyNSk6Cn4jISBybj1TaGFrZWRiZWVyIHJ0PTg0MjM1MjYwMAp+IyEgdGlkPTg0MjM1MjYwMApIaSwKZWluZSBEb21haW4ga2FubnN0IER1IGJlYW50cmFnZW4uIERhZnVlciBnaWJ0IGVzIHZlcnNjaGllZGVuZSBTdGVsbGVuLgpKZSBuYWNoZGVtLCBvYiBlcyBlaW5lIC5kZSBvZGVyIGVpbmUgLmNvbSBzZWluIHNvbGwuCi5jb20ga2FubiBqZWRlciBzZWxic3QgYmVhbnRyYWdlbiwgLmRlIG11c3MgdWViZXIgZWluZW4gSVNQIGxhdWZlbi4KKElTUD1JbnRlcm5ldCBTZXJ2aWNlIFByb3ZpZGVyKQoKS29zdGVuOiAuY29tIDEwMCQgcHJvIEphaHIsIE1pbmltdW06IDIgamFocmUuCmRlOiBjYS4gMTAwLi0gRE0gKyBtb25hdGxpY2hlIFJvdXRpbmdnZWJ1ZWhyIGNhLiAzMC01MCBETS4gdm9tIElTUC4KCkJlaSBkZXIgR2VsZWdlbmhlaXQga29lbm50IGlociBldWNoIGphIG1hbCBtZWluZSBlLW1haWwtQWRyZXNzZSBhbnNlaGVuLiA7LSkKCkVpbiBGcmV1bmQgaHVlYnNjaGVyIERvbWFpbnMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRG9tYWluPyE/IChBY3JpbW9uLCAxMC4gU2VwIDE5OTYsIDEzOjQ4OjMxKToKfiMhIHJuPVNoYWtlZGJlZXIgcnQ9ODQyMzUyNjAwCn4jISB0aWQ9ODQyMzUyNjAwCkRlaW4gUHJvdmlkZXIgZ2lidCBEaXIgZWluZSBEb21haW4uCkR1IG11c3p0IGlobiBudXIgZGFuYWNoIGZyYWdlbiwgdW5kIGVzIGRhcmYgbmljaHQgc2Nob24gZWluZSBEb21haW4gbWl0IGRlbQp2b24gRGlyIGdld3VlbnNjaHRlbiBOYW1lbiByZXNlcnZpZXJ0IHNlaW4uCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndlZ2Jlc2NocmVpYnVuZyAoWWFudHJvLCAxMS4gU2VwIDE5OTYsIDEwOjMyOjQ2KToKCkljaCBoYWV0dGUgZGEgZWluZSBrbGVpbmUgQml0dGUuLiAKCldlciBtaXIgYmlzIGhldXRlLCBNaXR0d29jaCB1bSAxNCB1aHIgZGllIHNjaG5lbGxzdGUgdW5kIGJlc3RlIFdlZ2Jlc2NocmVpYnVuZwptaXQgZGVtIEF1dG8gdm9uIEtvZWxuIG5hY2ggSEQgbWFpbHQsIGRlciBrcmllZ3QgZWluZW4gZ2VnZW5zdGFuZCBzZWluZXMgaW52CnVuZCBzZWluZXIgV2FobCB2b24gbWlyIGF1dG9sb2FkIGdlc2V0enQhISEgCgpEYW5uIG1haWx0IG1hbCBzY2hvZW4gOikKCiAgICAgICAgICAgICAgIFlhbnRybywgc3VjaHQgZWluIGdvdG8gSEQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB3ZWdiZXNjaHJlaWJ1bmcgKENhcmFkaHJhcywgMTEuIFNlcCAxOTk2LCAxMjowODowMyk6Cn4jISBybj1ZYW50cm8gcnQ9ODQyNDMwNzY2Cn4jISB0aWQ9ODQyNDMwNzY2CkluIEtvZWxuIGF1ZiBkaWUgQXV0b2JhaG4sIGRhbm4gUmljaHR1bmcgU3VlZGVuIHVuZCBkaWUgQXVzZmFocnQKSEQgbmljaHQgdmVycGFzc2VuLCBzY2hvbiBiaXN0ZSBkYS4KCldvIGlzIGRhcyBQcm9ibGVtPyAgKjpeKSAgICAgICBDYXJhZGhyYXMgQmFyYXppbmJhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEb21haW4/IT8gKFByYSwgMTEuIFNlcCAxOTk2LCAxNTowMDowOSk6Cn4jISBybj1GcmV1bmQgcnQ9ODQyMzU2MTA1Cn4jISB0aWQ9ODQyMzUyNjAwCkhpIEZyZXVuZCwKCldhcyBpc3QgZGVubiBhbiBkZWluZXIgRS1NYWlsLUFkcmVzc2Ugc28gYmVzb25kZXJzPyAKZnJldW5kQG1vcmdlbmdyYXVlbiBpc3QgZG9jaCBnYW56IG5vcm1hbC4gVW5kIHdlc3Ricm9AdW5pLW11ZW5zdGVyLmRlIGlzdAphdWNoIG5pY2h0IG9yaWdpbmVsbC4gT2RlciBoYWInIGljaCBkYSB3YXMgdWViZXJzZWhlbj8KCgpQcmEuIE5hY2ggb3JpZ2luZWxsZW4gZG9tYWlucyBBdXNzY2hhdSBoYWx0ZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRG9tYWluPyE/IChIaWdobGFuZGVyLCAxMS4gU2VwIDE5OTYsIDE1OjAxOjA4KToKfiMhIHJuPVByYSBydD04NDI0NDY4MDkKfiMhIHRpZD04NDIzNTI2MDAKV2FzIEZyZXVuZCBtZWludCwgaXN0IHNlaW5lIG5ldWUsIGRpZSBlciB3b2hsIG5pY2h0CmRhIGhhdCwgd28gRHUgbmFjaHNpZWhzdC4gU2VpbmUgYWt0dWVsbGUKZW1haWw6IG1hcmt1c0B3ZXN0YnJvY2suY29tCiAgSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCSUxERVIgISEhISEhISEhISEhISEhISEgKE5haXJvbGYsIDExLiBTZXAgMTk5NiwgMTU6MDI6MjcpOgpIaWhvIExldXRlIC4uLi4gZXMgZ2lidCBuZW4gcGFhciBCaWxkZXIgenUgc2VoZW4uLi4uLi4udm9tIE1HIFNPTU1FUkNBTVAgJzk2Clp1IGZpbmRlbiB1bnRlciAKaHR0cDovL3d3dy51bmktZ2llc3Nlbi5kZS9+Z2YxMDAxL2JpbGRlci9NR0NhbXAuaHRtbAoKLS0tLS0+IFZJRUwgU1BBU1MgOi0pCgpBY2hqYSBkYXMgaXMgbmUgYnVudGUgTWlzY2h1bmcgdm9uIG5lbiBwYWFyIEdpZXNzZW5lcm4gLi4uIAouLi4uLiBlcyBmb2xnZW4gbWVociAuLi4uLgoKR3J1c3MgS2FlcHQnbiBOYWlyb2xmIGRlciBmbGllZ2VuZGUgSG9sbGFlbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRG9tYWluPyE/IChQcmEsIDExLiBTZXAgMTk5NiwgMTU6MDI6MzMpOgp+IyEgcm49SGlnaGxhbmRlciBydD04NDI0NDY4NjgKfiMhIHRpZD04NDIzNTI2MDAKQXVjaCBuaWNodCBzb29vIG9yaWdpbmVsbCA7LSkgICBVbmQgdWViZXJoYXVwdCwgd2llIHNvbGwgbWFuIGRhIGFscyBvcmRpbmFlcmUKciBXdXJzdHNlaGVyIGRyYXVmIGtvbW1lbj8gOi0pCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEb21haW4/IT8gKEhpZ2hsYW5kZXIsIDExLiBTZXAgMTk5NiwgMTU6MDU6MjYpOgp+IyEgcm49UHJhIHJ0PTg0MjQ0Njk1Mwp+IyEgdGlkPTg0MjM1MjYwMApWaWVsbGVpY2h0IG5pY2h0IG9yaWdpbmVsbC4gQWJlciBwcmFrdGlzY2guIFdlaWwgZXIgbnUgbWFsIE1hcmt1cyBXZXN0YnJvY2sKaGVpc3N0LgogIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRG9tYWluPyE/IChaYXJkb3osIDExLiBTZXAgMTk5NiwgMTU6MjY6NDQpOgp+IyEgcm49SGlnaGxhbmRlciBydD04NDI0NDY4NjgKfiMhIHRpZD04NDIzNTI2MDAKSWNoIHd1ZXJkZSBtYWwgc2FnZW4sIGRhcyB3YXIgZWluIEhpbGZlcnVmIHZvbiBGcmV1bmQsIHdlaWwgZXIgbmllIE1haWxzCmJla29tbXQuIFNvIHdvbGx0ZSBlciB1bmF1ZmZhZWxsaWcgc2VpbmUgRW1haWxhZHJlc3NlIGJla2FubnQgYmViZW4uIEFsc28Kc2NocmVpYnQgaWhtIGFsbGUgbWFsLgoKQ2lhbyBaYXJkb3oKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVudGVya3VuZnQgaW4gTlJXIHZvbiBTYW1zdGFnIGF1ZiBTb25udGFnIChVbG8sIDEyLiBTZXAgMTk5NiwgMTY6NTc6MjUpOgpIaSEKCldpZSBnZXNhZ3QgaWNoIHN1Y2hlIG5lIFVudGVya3VuZnQgdm9uIFNhbXN0YWcgYXVmIFNvbm50YWcgaW4gR2Vsc2Vua2lyY2hlbgpiencgVW1nZWJ1bmcuIFVtZ2VidW5nIGthbm4gaGllciBhdWNoIGV0d2FzIHdlaXRlciBnZWZhc3N0IHNlaW4sIHNvbGFuZ2UgZXMKbWl0IE9lUE5WIHp1IGVycmVpY2hlbiBpc3QgKDMwTWFhY2stVGlja2V0KS4gCgpFcm5zdGdlbWVpbnRlIEFuZ2Vib3RlIGJpdHRlIGFuIG1laW5lbiB0ZXN0aWUgcGFkZGxlciBwZXIgbXVkbWFpbC4KV28gbWVpbmUgbWFpbCBpbSBNb21lbnQgbGFuZGV0IGthbm4gaWNoIG5pY2h0IGJldXJ0ZWlsZW4gLi4gZGFoZXIgYml0dGUgYW4KUEFERExFUi4KClp1IG1laW5lciBQZXJzb246IGJpbiBwZmxlZ2VsZWljaHQsIGJyYXVjaGUgbnVyIDIgcW0gLi4uCgpVbG8uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQklMREVSICEhISEhISEhISEhISEhISEhIChHcmltbWJvcm4sIDEyLiBTZXAgMTk5NiwgMTc6NDQ6NDYpOgp+IyEgcm49TmFpcm9sZiBydD04NDI0NDY5NDcKfiMhIHRpZD04NDI0NDY5NDcKCktvZW5udGUgbWFuIHNpY2ggdmllbGxlaWNodCBlaW5pZ2VuLCBkaWUgUGFydHliaWxkZXIgYWxsZSB1bmQga29uc2VxdWVudCBhdWYKZGllIE1HLXd3dy1wYWdlIHp1IGxlZ2VuPyBpY2ggbWVpbmUsIGlociBzZWlkIGphIGFsbGVzIHRvbGxlIEhlY2h0ZSBtaXQKZWlnZW5lbiBob21hcGFnZXMsIGFiZXIgdWViZXJzaWNodGxpY2ggd2lyZCBkYXMgbmljaHQuCgpBbHNvLCBmYXNzdCBldWNoIGVpbiBIZXJ6IHVuZCBzY2hpZWJ0IGRpZSBEaW5nZXIgbmFjaCBNdWVuc3Rlci4gSXN0IGJlc3NlciBzby4KRWhybGljaC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVudGVya3VuZnQgaW4gTlJXIHZvbiBTYW1zdGFnIGF1ZiBTb25udGFnIChMb2NvLCAxMi4gU2VwIDE5OTYsIDE4OjAzOjIxKToKfiMhIHJuPVVsbyBydD04NDI1NDAyNDUKfiMhIHRpZD04NDI1NDAyNDUKQmV2b3IgRHUgaXJnZW5kZWluZW4gRmVobGVyIG1hY2hzdDoKLSBEYXMgV29jaGVuZW5kdGlja2V0IGtvc3RldCBzZWl0IEphbnVhciAzNSBEZXV0c2NoZSBNYWV1c2UsIG5pY2h0IG1laHIgMzAKLSBFcyBnaWx0IGltIGdlc2FtdGVuIFZSUiwgYWxzbyBhdWNoIGluIEdlbHNlbmtpcmNoZW4sIGF1Y2ggaW4gZGVuCnN0YWVkdGlzY2hlbiBWZXJrZWhyc21pdHRlbG4gKGFsc28gQnVzLCBTdHJhc3NlbmJhaG4sIFUtQmFobiksIG11c3N0IGFsc28gZGEKbmljaHRzIG1laHIgZGF6dXphaGxlbi4KV2VpdGVyZSBJbmZvcy9UaXBzIHdpZSBpbW1lciBiZWkgbWlyIHBlciBNYWlsIChCZWRpbmd1bmc6IEljaCB3aWxsIG5hY2hoZXIgZGllCmdlYnJhdWNodGUgRmFocmthcnRlIGhhYmVuIDopICksCgpIeXZlciBtYXRrYWEsCiAgICAgICAgICAgICAgICBMb2NvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEb21haW4/IT8gKEppbWRpZ3JpeiwgMTIuIFNlcCAxOTk2LCAxODowNToyOCk6Cn4jISBybj1aYXJkb3ogcnQ9ODQyNDQ4NDA0Cn4jISB0aWQ9ODQyMzUyNjAwCnVoIG9oIGRhYmVpIGtyaWVnIGljaCBhdWNoIHNvb29vb29vb29vIHNlbHRlbiBlbWFpbApkYSBydWYgaWNoIGRvY2ggYXVjaCBnbGVpY2ggbWFsIHVtIGhpbGZlOgoKQml0dGUgc2NocmVpYnQgZ2FueiBzY2huZWxsIGFsbGUgYW46CgpzcG94dGFAbmllbWFuZC5zY2hyZWlidC5taXIuZW1haWxzLmRlc2hhbGIubXVzcy5pY2guYXVjaC51bS5IaWxmZS5ydWZlbi53aWUuRnIKZXVuZC5udXIuZ3V0LmRhc3MuZGVyLmF1Zi5laW5lLnNvLnRvbGxlLmlkZWUuZ2Vrb21tZW4uaXN0LmFiZXIuamF3b2xsamEucGFnZXMuCmRlCgpkaUdyaXosIHZlcnJ1ZWNrdCwga3JhbmssIHNjaGxpbW1lcmVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBEb21haW4/IT8gKEdyaW1tYm9ybiwgMTIuIFNlcCAxOTk2LCAxODoxMTozOCk6Cn4jISBybj1KaW1kaWdyaXogcnQ9ODQyNTQ0MzI4Cn4jISB0aWQ9ODQyMzUyNjAwCgpCZWkgZGVyIGxhbmdlbiB1bmQga29tcGxpemllcnRlbiBBZHJlc3NlIGlzdCBlcyBrZWluIFd1bmRlciwgZGFzcyBEaXIga2VpbmVyCnNjaHJlaWJ0Li4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW50ZXJrdW5mdCBpbiBOUlcgdm9uIFNhbXN0YWcgYXVmIFNvbm50YWcgKFVsbywgMTIuIFNlcCAxOTk2LCAyMzozNToxMyk6Cn4jISBybj1Mb2NvIHJ0PTg0MjU0NDIwMQp+IyEgdGlkPTg0MjU0MDI0NQpKYSwgMzUgTWFyayAuLi4gbWVpbnRlIGljaCBqYSA6KSAgSXN0IGFiZXIgaW1tZXIgbm9jaCBiaWxsaWdlciBhbHMgd2VubiBpY2gKbWl0IChkcmFmc3QgbWljaCBrb3JyaWdpZXJlbiApIERNNTkgdW5kIEd1dGUtTmFjaHQtVGlja2V0IHVtIDE5Lnh4IFVociBuYWNoCld1ZXJ6YnVyZyBsb3NmYWhyZSAuLi4KSWNoIGJlendlaWZsZSBzdGFyaywgZGFzcyBpY2ggbWl0IDM1RE0tVGlja2V0IG5hY2ggMTgub28gVWhyIHZvbiBHZWxzZW5raXJjaGVuCm5vY2ggbmFjaCBXdWVyemJ1cmcga29tbWUgLi4uIDooCgpVbG8uIChob2ZmdCBub2NoIGltbWVyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogRG9tYWluPyE/IChSYWZmaSwgMTMuIFNlcCAxOTk2LCAxMDo0MzowNyk6Cn4jISBybj1KaW1kaWdyaXogcnQ9ODQyNTQ0MzI4Cn4jISB0aWQ9ODQyMzUyNjAwCmhtbSBzbyBuZSBkb21haW4sIHVuZCBkYW5uIHVudGVyIC5kZSA/IFdhcyBlcyBuaWNodCBhbGxlcyBnaWJ0IDopCgpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCSUxERVIgISEhISEhISEhISEhISEhISEgKE5haXJvbGYsIDE2LiBTZXAgMTk5NiwgMTQ6MzI6MjApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0MjU0MzA4Ngp+IyEgdGlkPTg0MjQ0Njk0NwpHcmltbWJvcm4gd296dSA/Cm5lbiBlaW5mYWNoZXIgbGluayB2b24gZGVuIE1HIHNlaXRlbiBhdWYgZGllIFBhZ2UgcmVpY2h0IGF1Y2ggb2RlciA/aWNoIG1hY2gKZGFmdWVyIGpldHp0IG5pY2h0IHNvIG5lbiBBdWZzdGFuZCB1bmQgc2NoaWViIGRhcyBaZXVnIG5hY2ggTXVlbnN0ZXIuLi4gKHNpbmQKbmljaHRtYWwgbWVpbmUgZWlnZW5lbiBCaWxkZXIgYXVmIG1laW5lciBIb21lcGFnZSA6LSkgKSBuZWUgc29ycnkgZGFzIGlzdCBkb2NoCndvaGwgYmxvZWRzaW5uIHVuZCB3ZW5uIEhhdGUgaGFsdCBrZWluZW4gbGluayBtYWNoZW4gd2lsbCwgZGFubiBrb2VubmVuIHNpY2gKZGllIExldXRlIGRpZSBzaWNoIGRpZSBiaWxkZXIgYW5zZWhlbiB3b2xsZW4gZW50d2VkZXIgYmVpIElITSBiZXNjaHdlcmVuLCBvZGVyCmFiZXIgc2ljaCBkaWUgTXVlaGUgbWFjaGVuIG1hbCBlaW5lIFplaWxlIHp1IHRpcHBlbiAuLi4KCk5haXJvbGYuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCSUxERVIgISEhISEhISEhISEhISEhISEgKEdyaW1tYm9ybiwgMTYuIFNlcCAxOTk2LCAxNzozMzozOCk6Cn4jISBybj1OYWlyb2xmIHJ0PTg0Mjg3NzE0MAp+IyEgdGlkPTg0MjQ0Njk0NwoKTWVpbmUgR3VldGUsIGljaCBiaW4gamEgc28gc3RvbHohIEljaCBrZW5uZSBlaW5lbiwgZGVyIG5lIGVpZ2VuZSBob21lcGFnZSBpbQpJbnRlcm5ldCBoYXQhIE5hLCBkYXMgbXVzcyBpY2ggbWlyIGRvY2ggbWFsIGFuc2VoZW4sIGFuIHNvd2FzIGthbm4gaWNoIGRvY2gKbmljaHQgdm9yYmVpbGF1ZmVuLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgaGFlbHQgZWlnZW5lIGhvbWVwYWdlcyBmdWVyIGRhcyB2aXJ0dWVsbGUgQWVxdWl2YWxlbnQKdm9uIEdvbGRrZXR0Y2hlbiB1bmQgRnVjaHNzY2h3YW56CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCSUxERVIgISEhISEhISEhISEhISEhISEgKE5haXJvbGYsIDE3LiBTZXAgMTk5NiwgMDI6NDA6NTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0Mjg4ODAxOAp+IyEgdGlkPTg0MjQ0Njk0Nwp0b2xsIGdyaW1tYm9ybiAuLi4uIGxhc3NlbiB3aXJzLi4uIGRhcyBpc3QgbWlyIHdpcmtsaWNoIFpVIGZsYWNoLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBEb21haW4/IT8gKFRvZSwgMTcuIFNlcCAxOTk2LCAwOTo1MTowOSk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTg0MjQ0NzEyNgp+IyEgdGlkPTg0MjM1MjYwMAouLi4gbmEgb2IgZGFzIHNvIG5lIHJpY2h0aWdlIGRvbWFpbiBpc3QuLi4gLSB6dW1pbmRlc3QgZnVlciBlLW1laGwgcmVpY2h0cy4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCSUxERVIgISEhISEhISEhISEhISEhISEgKFRvZSwgMTcuIFNlcCAxOTk2LCAwOTo1Mjo0Nyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQyNTQzMDg2Cn4jISB0aWQ9ODQyNDQ2OTQ3Ci4uLm9kZXIgYmF1dCBsaW5rcyBpbiBkaWUgbXVlbnN0ZXJzZWl0ZSBlaW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IERvbWFpbj8hPyAoVG9lLCAxNy4gU2VwIDE5OTYsIDA5OjU0OjAzKToKfiMhIHJuPVJhZmZpIHJ0PTg0MjYwNDE4Nwp+IyEgdGlkPTg0MjM1MjYwMApuYW1lc2VydmVyIHNpbmQgbXMudGxrLmNvbSB1bmQgc3BhY2UubmV0IC0gbml4IG1pdCAuZGUuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1haWxwcm9ibGVtIChEaG9qYWt0LCAxNy4gU2VwIDE5OTYsIDIxOjEyOjE4KToKSGF0IGVpbmVyIG5lIEFobnVuZywgd2llIG1hbiB2b20gaW50ZXItIGlucyBmaWRvbmV0IG5lIG1haWwgdmVyc2NoaWNrdD8KRWluIGhvZmZlbmRlciBLaGlkYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbWFpbHByb2JsZW0gKEhhZHJhLCAxNy4gU2VwIDE5OTYsIDIzOjAyOjAwKToKfiMhIHJuPURob2pha3QgcnQ9ODQyOTg3NTM4Cn4jISB0aWQ9ODQyOTg3NTM4Cm5hbWVAMjozLzQuNSB3aXJkIHp1IG5hbWVAcDUuZjQubjMuejIuZmlkby5zdWIuZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIGJlc29uZGVyZXMgV29jaGVuZW5kdGlja2V0IChMb2NvLCAyMS4gU2VwIDE5OTYsIDE4OjQwOjEwKToKQW4gYWxsZSBNdWVuc3RlcmFuZXIsIHZvbiBkZW5lbiBlcyBqYSBoaWVyIGVpbiBwYWFyIGdlYmVuIHNvbGx0ZS4uLgoKSWNoIHN1Y2hlIGZ1ZXIgbWVpbmUgRmFocmthcnRlbnNhbW1sdW5nIG5hY2ggZWluZXIgc3BlemllbGxlbiBGYWhya2FydGUsCmRpZSBlcyBudXIgaW4gTXVlbnN0ZXIgZ2lidC4gTGVpZGVyIHdlcmRlIGljaCB3b2hsIGluIGRlciBuYWVjaHN0ZW4gWmVpdApuaWNodCBkaWUgR2VsZWdlbmhlaXQgaGFiZW4sIHNpZSBtaXIgc2VsYmVyIHp1IGJlc29yZ2VuIHVuZCB6dSBiZW51dHplbiwKdW5kIGRlciAiTmV1cHJlaXMiIGlzdCBtaXIgZGFubiBkb2NoIG51ciBmdWVyIGRpZSBTYW1tbHVuZyBldHdhcyB0ZXVlci4KCkVzIGdlaHQgZGFiZWkgdW0gZWluIHZvbiBkZXIgVkcgTXVlbnN0ZXJsYW5kIChWR00pIGF1c2dlZ2ViZW5lcyBXb2NoZW5lbmQtCnRpY2tldC4gVW5kIHp3YXIgaW4gZXJzdGVyIExpbmllIGRpZWplbmlnZSBWZXJzaW9uLCBkaWUgYW4gVmVya2F1ZnNzdGVsbGVuCmRlciBWR00sIHouQi4gaW0gUGF2aWxsb24gdm9yIGRlbSBIYXVwdGJhaG5ob2YsIHZlcmthdWZ0IHdpcmQsIGFiZXIgKGFscwp6d2VpdGUgV2FobCkgYXVjaCBzb2xjaGUgYXVzIE11ZW5zdGVyYW5lciBTdGFkdC0gdW5kIFJlZ2lvbmFsYnVzc2VuLgoKV2VubiBhbHNvIGlyZ2VuZHdlciBhdXMgTXVlbnN0ZXIgaW4gZGVyIG5hZWNoc3RlbiBaZWl0IHNvd2llc28gZWlubWFsIGF1ZgpXb2NoZW5lbmR0aWNrZXQgbG9zZmFocmVuIHdpbGwgLSB3YWVyZSBlcyBtb2VnbGljaCwgZGFzIFRpY2tldCBuaWNodCBhbQpEQi1TY2hhbHRlciwgc29uZGVybiBiZWkgZGVyIFZHTSB6dSBrYXVmZW4sIGd1dCB6dSBiZWhhbmRlbG4gdW5kIG5hY2gKR2VicmF1Y2ggbWlyIHp1enVzY2hpY2tlbj8gRHVlcmZlbiBhdWNoIGdlcm5lIG1laHJlcmUgc2Vpbi4uLiAKRGFtaXQgZGFzIGdsZWljaCBrbGFyIGlzdDogRGFzIFRpY2tldCBrb3N0ZXQgYXVjaCBkb3J0IDM1LC0gRE0gdW5kIGdpbHQKZ2VuYXUgd2llIGplZGVzIHZvbiBkZXIgREIgdmVya2F1ZnRlIFNXVC4gTWFuIGthbm4gZXMgYXVjaCBpbSBWb3JhdXMKa2F1ZmVuLCBtdXNzIGFiZXIgYW5nZWJlbiwgZnVlciB3ZWxjaGVzIFdvY2hlbmVuZGUgZXMgZ2VsdGVuIHNvbGwuCgpJY2ggYmlldGUgZGFmdWVyIGVyc3RtYWwgZGFzIFBvcnRvLCB1bmQgZXZ0bCBub2NoIGVpbmUgenVzYWV0emxpY2hlCktsZWluaWdrZWl0IG5hY2ggQWJzcHJhY2hlLiBNZWluZSBBZHJlc3NlIGJla29tbXQgaWhyIHZvbiBtaXIuCgoKR3J1c3MsCiAgICAgICAgICBMb2NvCgoKUC5TLjogSWNoIHN1Y2hlIG5hdHVlcmxpY2ggYXVzc2VyZGVtIGltbWVyIG5hY2ggamVkZXIgYmVsaWViaWdlbiBBcnQgdm9uIAogICAgICBGYWhya2FydGVuLi4uIHdlciB3YXMgaGF0LCBiaXR0ZSBtZWxkZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpbmtld2lua2UgKExhcmlzc2EsIDIzLiBTZXAgMTk5NiwgMTM6MTM6MjIpOgpUc2NoYS4uLi4KCmRhIGljaCBhYiBkZW0gMS4xMCBpbiBkaWUgc2Nobm9lZGUgQXJiZWl0c3dlbHQgZWludHJldGUsCndpcmQgZGFzIHdvaGwgbml4IG1laHIgbWl0IGRlbSBNdWRkZW4uLi4KCkxpZWJlIEdydWVzc2UgdW5kIGVpbiBncm9zc2VyICJzbmlmZiIgYW4gbWVpbmUgRnJldW5kZSB1bmQgc29uc3RpZ2VuIApXZWdiZWdsZWl0ZXIgZHVyY2ggbWVpbiBNRy1EYXNlaW4uCgoKVHNjaGF1bGksIExhcmkgOikKClBTOiBMYXNzdCBtaXIgZGFzIE1HIGhlaWxlLCB1bmQgd2VyIG1pY2ggZHJpbmdlbmQgZXJyZWljaGVuIG1vZWNodGUKICAgIGthbm4gYmVpIEpvZiBtZWluZSBUZWxudW1tZXIgZXJmcmFnZW46KQoKQnllICpzZXVmeioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTdWNoZSBiZXNvbmRlcmVzIFdvY2hlbmVuZHRpY2tldCAoRWxyaWMsIDI0LiBTZXAgMTk5NiwgMTU6MjM6NDgpOgp+IyEgcm49TG9jbyBydD04NDMzMjQwMTAKfiMhIHRpZD04NDMzMjQwMTAKVGphLCBMb2NvLCBlaW4gcGFhciBXb2NoZW4gZWhlciB1bmQgRHUgaGFldHRlc3Qgdm9uIG1pdCBlaW4gcGFhciBGYWhya2FydGVuCmF1cyBDdWJhIGtyaWVnZW4ga29lbm5lbi4uLgoKdW5kIEFFUkdFUk4sIHVuZCBBRVJHRVJOLCB1bmQgQUVSR0VSTi4uLi4gOikKCk5peCBmdWVyIHVuZ3V0LCAKRWxyaWMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZmxhIChIYXIsIDI3LiBTZXAgMTk5NiwgMTA6MjQ6MjYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0Mzc1MDY5MQp+IyEgdGlkPTg0Mzc1MDY5MQpJY2ggc2NoYXUgbWFsIG5hY2gsIGthbm4gYWJlciBlaW4gcGFhciB0YWdlIGRhdWVybiwgd2VpbCBpY2ggc2VsdGVuIHp1IGhhdXNlCmJpbi4uLi4KCmhhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogVGV4dHNhdHpwcm9ncmFtbSAoV3VyemVsLCAxNC4gT2t0IDE5OTYsIDIyOjEyOjUzKToKfiMhIHJuPVJhZmZpIHJ0PTg0NTMxODAyNgp+IyEgdGlkPTg0NTIzMjAyOQpqbywgd2lud29yZCBpc3QgbWlzdC4uLiBkdW1tZXJ3ZWlzZSB2ZXJ3ZW5kZXQgZXMgamVkZXIgaWRpb3QgKHouYi4ga3VuZGVuKSwKc28gZGFzcyBtYW4gbmljaHQgZHJ1bWhlcnVtIGtvbW10LiB1bmQgemVpZ2UgbWlyIGRpZSBzZWtyZXRhZXJpbiwgZGllIHRleAprYW5uLi4uCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFRleHRzYXR6cHJvZ3JhbW0gKFJpbmdvciwgMTQuIE9rdCAxOTk2LCAyMjozNDozMSk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODQ1MzIzOTczCn4jISB0aWQ9ODQ1MjMyMDI5CkhpZXIgYW4gZGVyIFVuaSBrb2VubmVuIHJlY2h0IHZpZWxlIFNla3JldGFlcmlubmVuIExhVGVYLgpEYWZ1ZXIgZ2lidHMgaGllciBzb2dhciBleHRyYSBLdXJzZSwgZGllIGRhbm4gc29nYXIgdm9uIFN0dWRlbnRlbiBiZXN1Y2h0CndlcmRlbiAiZHVlcmZlbiIsIHdlbm4gbm9jaCBQbGFldHplIGZyZWkgc2luZC4gOi0pCgpSaW5nb3IgLSBzZW5mdCBhdWNoIG1hbCBydW0uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBUZXh0c2F0enByb2dyYW1tIChTdXNoaSwgMTUuIE9rdCAxOTk2LCAwMDo1MToyNCk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODQ1MzIzOTczCn4jISB0aWQ9ODQ1MjMyMDI5CmljaCBoYWJlIGhldXRlIHZvbiBldHdhcyBnYW56IGJlc29uZGVycyBuZXR0ZW0gZ2Vob2VydCwgZGVtIFYuIERhcyBEaW5nIGlzdApkYWZ1ZXIgdmVyYW50d29ydGxpY2gsIGRhc3MgaW4gQmVob2VyZGVuIGVpbmhlaXRsaWNoZSBTb2Z0d2FyZSBpbnN0YWxsaWVydAp3aXJkLgpXZXIgZWlubWFsIHNlaGVuIHdpbGwsIHdpZSBTdGV1ZXJnZWxkZXIgdmVyYnJhbm50IHdlcmRlbiwgbWFjaGUgZWluZW4gUnVuZGdhbmcKaW4gZGVyIEJ1bmRlc3RhZ3N2ZXJ3YWx0dW5nLiBFcyBpc3QgdW5nbGF1YmxpY2gsIF93YXNfIG1hbiBhbGxlcyBtaXQgV2lud29yZAptYWNoZW4ga2Fubi4uLiBFaWdlbnRsaWNoIHNvbGx0ZSBlaW4gbWFjcm8gImluc3RhbGxpZXJlIHZpcmVudmVyc2V1Y2h0ZQpTb2Z0d2FyZSIgYW4gQm9yZCBzZWluLiBTb2xpdGFlciBnZWhvZXJ0IGVpZ2VudGxpY2ggYXVjaCBpbiBkZW4gTGllZmVydW1mYW5nLgpNaWNoIHd1ZXJkZSBtYWwgaW50ZXJlc3NpZXJlbiwgd2FydW0gYXVmIGplZGVtIG9lZmZlbnRsaWNoZW4gUmVjaG5lciBkaWUKU3BpZWxlIGluc3RhbGxpZXJ0IHNzaW5kLCB1bmQgd2FydW0gZGllIEZvcm1hdHZvcmxhZ2VuIChfd2FzXyBmdWVyIERpbmdlcj8hPykKbmljaHQgc2NocmVpYmdlc2NodWV0enQgc2luZC4KTmFqYSwgZGFtaXQgc29sbHRlIGRlciBUaHJlYWQgdmllbGxlaWNodCBzdGVyYmVuLiBVZWJlciBNdWRNYWlsIG1pdApWb3JzY2hsYWVnZW4gZnVlciBlaW4gVGV4dHNhdHpwcm9ncmFtbSwgbWl0IGRlbSBtYW4gZWluIDQwMCBTZWl0ZW4gc3RhcmtlcwpCdWNoIHZlcmJyZWNoZW4ga2Fubiwgd2FlcmUgaWNoIGltbWVyIG5vY2ggamVkZXJ6ZWl0IGRhbmtiYXI6XykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFRleHRzYXR6cHJvZ3JhbW0gKEZ5dCwgMTUuIE9rdCAxOTk2LCAwMjoyMjoyMik6Cn4jISBybj1XdXJ6ZWwgcnQ9ODQ1MzIzOTczCn4jISB0aWQ9ODQ1MjMyMDI5ClNjaHJlaWIgRGVpbmVyIFNla3JldGFlcmluIHBhYXIgbmV0dGUgLnN0eS1GaWxlcywgdW5kIHNpZSBrYW5uIEZvcm1icmllZmUKYXVjaCBtaXQgTGFUZVggc2NocmVpYmVuLi4uCgpGeXQsIGhldXRlIHZlcnp3ZWlmZWx0IHZlcnN1Y2h0IGhhYmVuZCwgJ24gQy1Qcm9ncmFtbSB2b24gbmVyIEhQIGF1ZgonbiBEb3MvV2luZG9vZi1SZWNobmVyICppcmdlbmR3aWUqIHp1IHBvcnRpZXJlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2ludGVycGxhdHogZnVlcnMgU2VnZWxib290ID8gKEdyaW1tYm9ybiwgMTUuIE9rdCAxOTk2LCAwODo0OTo0Mik6CltWZXJsZWd0IHZvbiBhbGxnZW1laW5lcywgVG9yZmR1ZW5nLCAxMS4gT2t0IDE5OTYsIDIyOjE3OjEzXToKSWNoIHN1Y2ggbmFjaCBlaW5lbSBXaW50ZXJwbGF0eiBmdWVycyBTZWdlbGJvb3QuCnVuZCB6d2FyIGZ1ZXIgZWluIDYuMzAgbGFuZ2VzIC4uLgoKSXJnZW5kZWluZSBJZGVlID8KClRkCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogVGV4dHNhdHpwcm9ncmFtbSAoSGF0ZSwgMTUuIE9rdCAxOTk2LCAwOTowNzoyMSk6Cn4jISBybj1TdXNoaSBydD04NDUzMzM0ODQKfiMhIHRpZD04NDUyMzIwMjkKRXMgZ2lidCB1bnRlciBOZXh0c3RlcCBlaW4gVGV4dHN5c3RlbSwgd2FzIGV4dHJhIGZ1ZXIgRmlybWVuIGVudHdpY2tlbHQgd3VyZGUuCkRhYmVpIHNpbmQgZGllIEZvcm1hdHZvcmxhZ2VuIG5pY2h0IHZlcmFlbmRlcnRiYXIuIERhbWl0IHdpcmQgZGllIGNvcnBvcmF0ZQppZGVudGl0eSBnZXdhaHJ0LiBBdXNzZXJkZW0gc2luZCBkaWUgU3lzdGVtZSB1bnRlciBOUyBsZWljaHQgenUgYmVkaWVuZW4gdW5kCmJyaW5nZW4gaGVydm9ycmFnZW5kZSBRdWFsaXRhZXQuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IFRleHRzYXR6cHJvZ3JhbW0gKEhhdGUsIDE1LiBPa3QgMTk5NiwgMDk6MTI6MTQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0NTM2MzQwNAp+IyEgdGlkPTg0NTIzMjAyOQpGaXJtZW4sIGRpZSBrZWluZSBBbmdzdCBoYWJlbiB1bmQgc2ljaCBlaW5lIE1lbmdlIGFlcmdlciBlcnNwYXJlbiB3b2xsZW4uCk5TIHdpcmQgbWVpc3Qgdm9uIEZpcm1lbiB2ZXJrYXVmdCBkaWUgZGFubiBhdWNoIGRlIGVudHNwcmVjaGVuZGVuIFN0b2x6IApoYWJlbiwgZGFzIGFtIGxhdWZlbiB6dSBoYWx0ZW4gLT4gZ3V0ZXIgc3VwcG9ydC4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBUZXh0c2F0enByb2dyYW1tIChIYXIsIDE1LiBPa3QgMTk5NiwgMTA6NDA6NTIpOgp+IyEgcm49UmFmZmkgcnQ9ODQ1MzE4MDI2Cn4jISB0aWQ9ODQ1MjMyMDI5CkljaCBibGVpYmUgZGFiZWksIGRhc3MgaWNoIGxldHp0ZSBXb2NoZSBkYW1pdCBlaW5lbiA2MC1TZWl0ZW4gYmVyaWNodApnZXNjaHJpZWJlbiBoYWJlLCBkZXIgenUgMjUgJSBhdXMgVGV4dCwgZGVyIFJlc3Qgd2FyZW4gR3JhZmlrZW4gdW5kIFRhYmVsbGVuLApiZXN0YW5kLiBJY2ggaGFiZSBvaG5lIFByb2JsZW1lIG1pdCBJbmhhbHRzIHVuZCBBYmJpbGR1bmdzdmVyemVpY2huaXMKZ2VhcmJlaXRldCAtIHNvIWRhc3MgZGFzIGFsbGVzIGV2ZW50dWVsbCBuaWNodCBkZXIgV2Vpc2hlaXQgbGV0enRlciBTY2hsdXNzCmlzdCwgc2VoZSBpY2ggamEgZWluLCBudXIgd2FzIHdvbGx0IGlociBtYWNoZW4sIHdlbm4gaWhyIG1hbCBpbiBlaW5lciBGaXJtYQphcmJlaXRldCwgd28gaWhyIGVpbiBiZXN0aW1tdGVzIFByb2dyYW1tIGJldW50emVuIG11ZXNzdCwgd2VpbCBuYWVtbGljaCBrZWluCmFuZGVyZXMgZXJsYXVidCB3aXJkLCBhdWNoIG51ciBqYW1tZXJuIHVuZCBzY2hpbXBmZW4gOy0pCgpIYXIgKGFtdWVzaWVydCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFRleHRzYXR6cHJvZ3JhbW0gKFJhZmZpLCAxNS4gT2t0IDE5OTYsIDEwOjUxOjA5KToKfiMhIHJuPUhhciBydD04NDUzNjg4NTIKfiMhIHRpZD04NDUyMzIwMjkKCkR1IHdpcnN0IGxhY2hlbiwgYWJlciBkaWVuc3RsaWNoIG11c3MgaWNoIGF1Y2ggbWl0IFdvcmQgYXJiZWl0ZW4uIE1laW5lCkVya2VudG5pc3MgaXN0IG51ciBkYXMgZGFzIFByb2dyYW1tIGViZW4gbmljaHQgZnVlciBncm9lc3NlcmUKVmVyb2VmZmVudGxpY2h1bmdlbiB0YXVndCwgYnp3LiBudXIgZGFubiBicmF1Y2hiYXIgaXN0IHdlbm4gbWFuIHNpY2ggYW4gZGVuCk1pY3Jvc29mdHN0aWwgaGFlbHQgLSBTY2hhdSBEaXIgbWFsIE1TLUJ1ZWNoZXIgdW5kIEhhbmRidWVjaGVyIGFuIC0gV2VubiBEdQp3aWxsc3QgZGFzIERlaW4gQnVjaCBzbyBhdXNzY2hhdWVuIHNvbGwsIGRhbm4gbmltbSBXaW5Xb3JkIGhlci4gV2VubiBEVSBqZWRvY2gKYXVzIHdlbGNlaG0gR3J1bmQgYXVjaCBpbW1lciBlaW5lbiBhbmRlcmVuIFN0aWwgYmV2b3J6dWdzdCwgb2RlciB2ZXJ3ZW5kZW4KbXVzc3QsIGRhbm4gYmVyZWl0ZXQgRGlyIFdXIG5lIG1lbmdlIHNjaGxhZmxvc2VyIE5hZWNodGUuCgpNaWNoIGhhdHMgd2llIGdlc2FndCBtYWwgZGVuIEVyc2NoZWludW5nc3Rlcm1pbiBlaW5lcyBCdWNoZXMgZ2Vrb3N0ZXQuCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogVGV4dHNhdHpwcm9ncmFtbSAoRW5neXd1Y2ssIDE1LiBPa3QgMTk5NiwgMTE6MDk6NDQpOgp+IyEgcm49UmFmZmkgcnQ9ODQ1MzY5NDY5Cn4jISB0aWQ9ODQ1MjMyMDI5CkpldHp0IG11ZXNzdCBpaHIgbWlyIG1hbCBhdWYgZGllIFNwcnVlbmdlIGhlbGZlbi4gSWNoIGhhYiBtZWluZSBrb21wbGV0dGUKRGlwbG9tYXJiZWl0ICg4MCBTZWl0ZW4pIG1pdCBXb3JkIGdlbWFjaHQsIGluY2wgU2VpdGVubnVtbWVyaWVydW5nLApUYWJlbGxlbm51bW1lcmllcnVuZywgQWJiaWxkdW5nc251bWVyaWVydW5nLCBMaXRlcmF0dXJ2ZXJ6ZWljaG5pcywKYXV0b21hdGlzY2hlciBJbmhhbHRzdmVyemVpY2huaXNlcnN0ZWxsdW5nIHVzdyB1bmQgaWNoIGhhdHRlIGFic29sdXQgTlVMTApQcm9ibGVtZSBkYW1pdC4KSmV0enQgZXJrbGFlcnQgbWlyIGRvY2ggbWFsLCB3YXJ1bSBpY2ggenUgZG9vZiBiaW4sIGRpZSB1bnVlYmVyc2VoYmFyZW4gQnVncwp1bmQgTmFjaHRlaWxlIHZvbiBXb3JkIHp1IGVya2VubmVuLgoKRW5neSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IFRleHRzYXR6cHJvZ3JhbW0gKEdyaW1tYm9ybiwgMTUuIE9rdCAxOTk2LCAxMToxNzoyMCk6Cn4jISBybj1Fbmd5d3VjayBydD04NDUzNzA1ODQKfiMhIHRpZD04NDUyMzIwMjkKCk9jaCwgZGllIEVya2xhZXJ1bmcgaXN0IGVhc3kuIFdlbm4gd2FzIHZvbiBJZGlvdGVuIGZ1ZXIgSWRpb3RlbiBnZW1hY2h0IHdpcmQKd2lyZHMgYXVjaCB2b24gSWRpb3RlbiB2ZXJzdGFuZGVuLiBEZXIgc2NocmVja2xpY2ggdmllbCBpbnRlbGxpZ2VudGVyZSBUZWlsCmRlciBNZW5zY2hoZWl0IGxhY2h0IGRhcnVlYmVyLCBpc3QgaW50ZWxsZWt0dWVsbCB3ZWl0IHVlYmVybGVnZW4gdW5kIGhhdApQcm9ibGVtZS4gRGFzIGlzdCBkZXIgUHJlaXMgZnVlciBkaWUgaW50ZWxsZWt0dWVsbGUgVWViZXJsZWdlbmhlaXQuIApOZWJlbmJlaTogRGFzIFByb2dyYW1tIGlzdCBiZXNzZXIgYWxzIHNlaW5lIGFsbGVybWVpc3RlbiB1c2VyLiBXZW5uIG1hbgp0YXRzYWVjaGxpY2ggcmF1c2tyaWVndCwgd2llcyBnZWh0ICh1bmQgZGEgc2luZCBsZWlkZXIgb2Z0IHdlZGVyIG9ubGluZWhpbGZlCm5vY2ggSGFuZGJ1ZWNoZXIgYnJhdWNoYmFyKSwgZGFubiBnaWJ0IGVzIHppZW1saWNoIHdlbmlnLCB3YXMgbWFuIG1pdCBXVzYKbmljaHQgbWFjaGVuIGthbm4uIFVuYmVzdHJlaXRiYXIgaXN0LCBkYXNzIGVzIHNjaG9lbiB3YWVyZSwgd2VubiBtYW4gZWluaWdlcwpuaWNodCBudXIgbWFjaGVuLCBzb25kZXJuIGF1Y2ggZWluZmFjaCwgdWViZXJzaWNodGxpY2ggb2RlciBzY2hsaWNodCBudXIKbG9naXNjaCBtYWNoZW4ga29lbm50ZS4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgpNZXJrZTogS2VpbiBQcm9ncmFtbSBrYW5uIHNvIGR1bW0gc2VpbiB3aWUgZWluIHVzZXIhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZmxhIChHdWxkdWthdCwgMTUuIE9rdCAxOTk2LCAxMjo0NTozNyk6CltWZXJsZWd0IHZvbiBzY2htYXJybiwgR3VsZHVrYXQsIDE1LiBPa3QgMTk5NiwgMTI6NDM6NDJdOgpbVmVybGVndCB2b24gYW56ZWlnZW4sIEdyaW1tYm9ybiwgMjYuIFNlcCAxOTk2LCAxNzoxMTozMV06CltWZXJsZWd0IHZvbiBrdWx0dXIsIEN5bW9uaywgMjYuIFNlcCAxOTk2LCAxNjoyMTozMl06Cmtlbm50IHp1ZmFlbGxpZyBqZW1hbmQgZWluZW4gbWFpbG9yZGVyLXZlcnNhbmQsIGRlciBlaW5lCmF1c3dhaGwgZGVyIGFsdGVuIGZyb250IGxpbmUgYXNzZW1ibHkgc2NoZWliZW4gaW0gc29ydGltZW50IGhhdD8/CgpjeW1vbmsKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBUZXh0c2F0enByb2dyYW1tIChRdWFzaW1vZG8sIDE1LiBPa3QgMTk5NiwgMTQ6MDA6MTApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0NTM3MTA0MAp+IyEgdGlkPTg0NTIzMjAyOQpXZW5uIG1hbiBzaWNoIG1hbCBhbiBkYXMgcmVnZWxtYWVzc2lnZXMgQWJzdHVyemVuIHZvbiBXaW53b3JkIGdld29laG50IGhhdAooc29sbHRlIGFscyBNdWRkZXIgamEga2VpbiBQcm9ibGVtIHNlaW4uLi4pLCBkYW5uIGthbm4gbWFuIGRhbWl0IGF1Y2ggcHJpbWEKQXJiZWl0ZW4uIEljaCBoYWJlIGRhbWl0IHNjaG9uIFNrcmlwdGUgZ2VzY2hyaWViZW4gbWl0IHVlYmVyIDEwMCBTZWl0ZW4sIGRpZQp2b2xsIG1pdCBGb3JtZWxuIHVuZCBHcmFmaWtlbiB3YXJlbi4gQXVzc2VyIG1pdCBkZW4gU2V0emVuIHZvbiBQb3NpdGlvbnNyYWhtZW4KaW4gZGVyIE5hZWhlIGRlcyBTZWl0ZW5yYW5kZXMgaGF0dGUgaWNoIGtlaW5lIFByb2JsZW1lLgoKQWJlciB3ZXIgZWluIHdpcmtsaWNoIGd1dGVzIExheW91dC1Qcm9ncmFtbSB1bnRlciBXaW5kb3dzIHN1Y2h0LCBkZXIgc29sbHRlCm1hbCBpbiBQYWdlbWFrZXIgKHZvbiBBZG9iZSwgZ2xhdWJpKSByZWluc2NoYXVlbi4gRGEgbXVzcyBtYW4gc2ljaCBrZWluIFN0dWVjawphbiBpcmdlbmR3ZWxjaGUgU3RhbmRhcmRzIGhhbHRlbiB1bmQga2FubiBhbGxlcyB1bmQgamVkZXMgZnJlaSBhdWYgZGVtIEJsYXR0CnBvc2l0aW9uaWVyZW4uCgoxMiBQZmVubmlnIHZvbiBRdWFpbW9kbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IFRleHRzYXR6cHJvZ3JhbW0gKEhhcmRpbCwgMTUuIE9rdCAxOTk2LCAxNToxNDoxOSk6Cn4jISBybj1RdWFzaW1vZG8gcnQ9ODQ1MzgwODEwCn4jISB0aWQ9ODQ1MjMyMDI5CgpXaW5Xb3JkLiBBcmdsLiBEYW5uIGthbm4gaWNoIGphIHdpcmtsaWNoIG1laW5lIGFsdGUgbWVjaGFuaXNjaGUKU2NocmVpYm1hc2NoaW5lIHJhdXNob2xlbiB1bmQgZGFtaXQgdGlwcGVuLgpXYXMgaGFsdGV0IGlociBlaW5mYWNoIGRhdm9uLCBzY2huZWxsIHJlaWNoIHp1IHdlcmRlbiB3aWUgdGF1c2VuZCBaYXViZXJlciB1bmQKRWxmZW4sIHVuZCBkYW5uIG1pdCBzbyBuZXR0ZW4gU2FjaGVuIHdpZSBRdWFya0V4cHJlc3Mgb2RlciBGcmVlaGFuZCB6dQphcmJlaXRlbj8KSWNoIGRhcmYgYWIgdW5kIHp1IGZ1ZXIgZGllIEt1ZXN0ZW56YXViZXJlciBkaWNrZSBsYXlvdXRlbiwgdW5kIG1pdCBRdWFyayBnZWh0CmRhcyBkb2NoIHdpcmtsaWNoIHd1bmRlcnByaW1pZyAobmUgd2FyLCBMb2N1dHVzPykuCgotSGFyZGlsLgpUaGlzIGNvbXB1dGVyIGhhcyBhaXIgY29uZGl0aW9uaW5nLiBEbyBub3Qgb3BlbiB3aW5kb3dzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFzIFRlbGVrb21tdW5pa2F0aW9uc2dlc2V0eiAoSGF0ZSwgMTUuIE9rdCAxOTk2LCAxOTo0MjoxMik6CkF1c3p1ZyBhdXMgUGFyYWdyYXBoIDkwLCBUS0c6Cgotc2NobmlwcC0KKDEpIFdlciBnZXNjaGFlZnRzbWFlc3NpZyBUZWxla29tbXVuaWthdGlvbnNkaWVuc3RlIGFuYmlldGV0LCBpc3QgCiAgICB2ZXJwZmxpY2h0ZXQsIEt1bmRlbmRhdGVpZW4genUgZnVlaHJlbiwgaW4gZGllIHVudmVyenVlZ2xpY2ggZGllIAogICAgUnVmbnVtbWVybiB1bmQgUnVmbnVtbWVybmtvbnRpbmdlbnRlLCBkaWUgenVyIHdlaXRlcmVuIFZlcm1hcmt0dW5nIAogICAgb2RlciBzb25zdGlnZW4gTnV0enVuZyBhbiBhbmRlcmUgdmVyZ2ViZW4gd2VyZGVuLCBzb3dpZSBOYW1lIHVuZCAKICAgIEFuc2NocmlmdCBkZXIgSW5oYWJlciB2b24gUnVmbnVtbWVybiB1bmQgUnVmbnVtbWVybmtvbnRpbmdlbnRlbiAKICAgIGF1Znp1bmVobWVuIHNpbmQsIGF1Y2ggc293ZWl0IGRpZXNlIG5pY2h0IGluIG9lZmZlbnRsaWNoZSAKICAgIFZlcnplaWNobmlzc2UgZWluZ2V0cmFnZW4gc2luZC4gCgooMikgRGllIGFrdHVlbGxlbiBLdW5kZW5kYXRlaWVuIHNpbmQgdm9uIGRlbSBWZXJwZmxpY2h0ZXRlbiBuYWNoIEFic2F0eiAxIAogICAgdmVyZnVlZ2JhciB6dSBoYWx0ZW4sIHNvIGRhc3MgZGllIFJlZ3VsaWVydW5nc2JlaG9lcmRlIGVpbnplbG5lIERhdGVuIAogICAgb2RlciBEYXRlbnNhZXR6ZSBpbiBlaW5lbSB2b24gaWhyIHZvcmdlZ2ViZW5lbiBhdXRvbWF0aXNpZXJ0ZW4gCiAgICBWZXJmYWhyZW4gYWJydWZlbiBrYW5uLiBEZXIgVmVycGZsaWNodGV0ZSBoYXQgZHVyY2ggdGVjaG5pc2NoZSB1bmQgCiAgICBvcmdhbmlzYXRvcmlzY2hlIE1hc3NuYWhtZW4gc2ljaGVyenVzdGVsbGVuLCBkYXNzIGlobSBBYnJ1ZmUgbmljaHQgCiAgICB6dXIgS2VubnRuaXMgZ2VsYW5nZW4ga29lbm5lbi4gCi1zY2huaXBwLQoKTWFuIHNvbGxlIHNpY2ggQWJzYXR6ICgyKSBtYWwgZ2FueiBsYW5nc2FtIGF1ZiBkZXIgWnVuZ2UgemVyZ2VoZW4gbGFzc2VuLgpBYmhvZXJlbiBkdXJjaCBkaWUgQmVob2VyZGVuLCBvaG5lIGRhc3MgZXMgZGVyIEFuYmlldGVyIHNlbGJzdCBtaXRiZWtvbW1lbgpkYXJmLiBEYW1pdCBzaW5kIHdpciBkZXIgV2lsbGt1ZXIgZGVzIFN0YWF0ZXMgYXVzZ2VsaWVmZXJ0LCBkZW5uIGVyIGRhcmYKdWViZXJhbGwgbWl0aG9lcmVuLiBVbmQgZXJ6YWVobGUgbWlyIGtlaW5lciwgZGVyIFN0YWF0IHd1ZXJkZSBudXIgZGFzIGJlc3RlCmZ1ZXIgdW5zIHR1biwgZGFzIHNhZ2VuIHNvd2llc28gYWxsZS4KClNvd2FzIGthbm4gbGVpY2h0IGVpbiBGYWxsc3RyaWNrIGZ1ZXJzIE1VRCB3ZXJkZW4uCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBUZWxla29tbXVuaWthdGlvbnNnZXNldHogKEhhdGUsIDE1LiBPa3QgMTk5NiwgMTk6NDI6NTMpOgp+IyEgcm49SGF0ZSBydD04NDU0MDEzMzIKfiMhIHRpZD04NDU0MDEzMzIKWnVtIHNlbGJlciBuYWNobGVzZW46IApodHRwOi8vd3d3LmdvdmVybm1lbnQuZGUvaW5sYW5kL21pbmlzdGVyaWVuL3Bvc3QvdGtnZDAwLmh0bWwKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IFRleHRzYXR6cHJvZ3JhbW0gKFd1cnplbCwgMTUuIE9rdCAxOTk2LCAxOTo1MTo0Myk6Cn4jISBybj1Fbmd5d3VjayBydD04NDUzNzA1ODQKfiMhIHRpZD04NDUyMzIwMjkKZWluIHdlc2VudGxpY2hlciBuYWNodGVpbCB2b24gd2lud29yZCAoYXVzc2VyIGRhc3MgZXMgbGFuZ3NhbSBpc3QpIGxpZWd0IGluCmRlciBncm9lc3NlbmJlc2NocmFlbmt1bmcuIHdpciBoYWJlbiBpbSBtb21lbnQgZGFzIHByb2JsZW0sIGRhc3MgZWluIGt1bmRlCmRpZSBkb2t1bWVudGF0aW9uIHp1IGVpbmVtIHNvZnR3YXJlc3lzdGVtIGdlcm5lIGluIHdvcmQtZm9ybWF0IGhhYmVuIHdpbGwuCm51biBpc3QgZGllIGRva3UgbGVpZGVyIDE1MDAwIHNlaXRlbiBzdGFyay4uLiBhbHNvIG11c3MgbWFuIGRhcyB0ZWlsZW4sIGluCnZpZWxlIGtsZWluZSBlaW56ZWxmaWxlcy4gdW50ZXIgdGV4IHdhciBkYXMga2VpbiBwcm9ibGVtLCBlaW4gdWViZXJzZXR6dW5ncy0KbGF1ZiB1bmQgYWxsZXMgZmVydGlnLgoKYWJlciBkZXIga3VuZGUgaXN0IGtvZW5pZy4uLiAoc29sYW5nZSBlciBiZXphaGx0KQoKd3VyemVsIG1hZyBrZWluIHdvcmQgKGFiZXIgd29mdWVyIGdpYnQgZXMgc2VrcmV0YWVyaW5uZW4uLi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFzIFRlbGVrb21tdW5pa2F0aW9uc2dlc2V0eiAoUmFmZmksIDE1LiBPa3QgMTk5NiwgMjA6MDY6MzkpOgp+IyEgcm49SGF0ZSBydD04NDU0MDEzMzIKfiMhIHRpZD04NDU0MDEzMzIKCkRpZSBCZWdydWVuZHVuZyBkaWVzZXMgUGFyYWdyYXBoZW4gbGllZ3QgaW4gZGVtIEJlc3RyZWJlbiBhdWNoIHdlaXRlcmhpbgpaZW50cmFsZSBWZXJ6ZWljaG5pc3NlIChUZWxlcGhvbmJ1ZWNoZXIpIGFubGVnZW4genUga29lbm5lbiAtIERlciBXaXR6IGlzdAp3aXJrbGljaCB3aWUgdW5kIHdhcnVtIEFVQ0ggSElFUiB3aWVkZXIgZGllc2VyIFp1c2F0eiBtaXQgZGVtIG5pY2h0IHp1cgpLZW50bmlzcyBnZWxhbmdlbiByZWluZ2VydXRzY2h0IGlzdC4KCldpcmtsaWNoIEJyaXNhbnQgaXN0IGFiZXIgYmVpIFA5MCBkZXIgQWJzYXR6IDUgaW4gZGVtIGF1Y2ggYmV6aWVoZXIgZWluZXMKUnVmbnVtbWVybmtvbnRpbmdlbnRlcyB3aWVkZXIgZGF6dSB2ZXJwZmxpY2h0ZXQgd2VyZGVuIGtvZW5uZW4gZW50c3ByZWNoZW5kCkFic2F0eiAxLzIgenUgaGFuZGVsbiAtIFNwcmljaCB6LkIuIGVpbmUgVW5pIChvZGVyIGVpbiBCZXRyaWViIGV0Yy4pIHp1IGRpZXNlcgpEaWVuc3RsZWlzdHVuZyBpbSBCZXp1ZyBhdWYgaWhyZSBOZWJlbnN0ZWxsZW4tCmFubGFnZSB2ZXJwZmxpY2h0ZXQgd2VyZGVuIGthbm4uCgpBTHNvIGljaCBnbGF1YiBlaW5pZ2UgbW9jaHRlbiBnZXJuZSBQYXJhbm9pYSBlcnpldWdlbi4KCihBY2ggamEgZGVyIEFiaG9lcnBhcmFncmFwaCBpc3QgaW1tZXJub2NoIFA4OCAtIEVpbmVyIGRlciBrdWVyemVzdGVuIGltCkdlc2V0eiEpCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogVGV4dHNhdHpwcm9ncmFtbSAoQWNyaW1vbiwgMTUuIE9rdCAxOTk2LCAyMDoxMjo0Nyk6Cn4jISBybj1TdXNoaSBydD04NDUzMzM0ODQKfiMhIHRpZD04NDUyMzIwMjkKSWNoIGVtcGZlaGxlIExhVGVYLgpFcyBpc3QgcmVjaHQgZWluZmFjaCB6dSBsZXJuZW47IG1hbiBrYW5uIGVzIG1pdCBzZWluZW0gTGllYmxpbmdzZWRpdG9yIHRpcHBlbjsKZXMgaXN0IHNlaHIgbWFlY2h0aWc7IChkLmguIGF1Y2ggaWNoIHZlcndlbmRlIExhVGVYLCB3ZW5uIGljaCBUZXh0ZSBzY2hyZWliZSwKZGllIGlyZ2VuZHdhbm4gYXVmIFBhcGllciBrb21tZW4gc29sbGVuKS4KClp1IGVtcGZlaGxlbiBzaW5kIG5vY2ggeGR2aSAoenVtIEFuc2NoYXVlbikgdW5kIGVpbmUgTGFUZVgtUmVmZXJlbnouCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGFzIFRlbGVrb21tdW5pa2F0aW9uc2dlc2V0eiAoSGF0ZSwgMTUuIE9rdCAxOTk2LCAyMDoyNzowOSk6Cn4jISBybj1SYWZmaSBydD04NDU0MDI3OTkKfiMhIHRpZD04NDU0MDEzMzIKQWxzbyBpY2ggaGFiZSBnZXJhZGUgbm9jaCBlaW5tYWwgbmFjaGdlc2VoZW4gdW5kIGRhcyBUS0cgaXN0IHNlaXQKMS4gQXVndXN0IDE5OTYgaW4gS3JhZnQgdW5kIGRhbWl0IGFsbCBkaWUgVmVycGZsaWNodHVuZ2VuIGFuClRlbGVrb21tdW5pa2F0aW9uc2FuYmlldGVyLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGV4dHNhdHpwcm9ncmFtbSAoVG9lLCAxNS4gT2t0IDE5OTYsIDIwOjM3OjUxKToKfiMhIHJuPUNhdW5vIHJ0PTg0NTI4MzE4NQp+IyEgdGlkPTg0NTIzMjAyOQppY2ggc2V0emUgZGEgaW1tZXIgbm9jaCBhdWYgd29yZCA1LjAsIGRhbWl0IGhhdHRlIGljaCBiZWkgZHJlaSBkci4tYXJiZWl0ZW4KKHZvbiBmcmV1bmRlbikga2VpbmUgcHJvYnMgLSBpc3Qgc2NobmVsbCAoMjUwIHNlaXRlbiByZXBhZ2luaWVyZW4pLCB1bmQgbWl0CnBsYXR0ZW5jYWNoZSBub2NoIHNjaG5lbGxlci4gYXVzc2VyZGVtIGhhdHMgYWxsZXMgd2FzIG1hbiBzbyBicmF1Y2h0IC0gc29nYXIKc2VpdGVudm9yc2NoYXUuLi4KCnRvCmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZmxhIChTcGluZGVsLCAxNS4gT2t0IDE5OTYsIDIwOjQxOjIxKToKfiMhIHJuPVByYSBydD04NDQyNjkxNDQKfiMhIHRpZD04NDM3NTA2OTEKSWNoIGVyaW5uZXJlIG1pY2ggbm9jaCBndXQuIEtpcmsgdW5kIGljaCBrb21tbiB2b20gZmV1Y2h0ZnJvZWhsaWNoZW4KUGZpbmdzdHplbHRlbiBhdXMgSG9sbGFuZCB6dXJ1ZWNrIGFuIGRlciBHcmVuemUgdm9yYmVpLgpkZXV0c2NoZXIgR3JlbnpiZWFtdGU6ICdGdWVocmVuIHNpZSBldHdhcyBhdXM/JwpLaXJrOiAnSmEgVmxhLicKZGV1dHNjaGVyIEdyZW56YmVhbXRlOiAnU3RlaWdlbiBzaWUgZG9jaCBtYWwgYml0dGUgYXVzIScKICpncmlucyogSmFqYSwgZGFzIHdhcmVuIG5vY2ggWmVpdGVuLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFzIFRlbGVrb21tdW5pa2F0aW9uc2dlc2V0eiAoUGlsZ3JpbSwgMTUuIE9rdCAxOTk2LCAyMTo1OTo0OSk6Cn4jISBybj1IYXRlIHJ0PTg0NTQwMTMzMgp+IyEgdGlkPTg0NTQwMTMzMgpIbW1tLApzZWl0IHdhbm4gYmlldGVuIE1VRHMgZ2VzY2hhZWZ0c21hZXNzaWcgVGVsZWtvbXVuaWthdGlvbnNkaWVuc3RlIGFuIC4uLgpkaXRvIHVuaXMgPz8/CgpQaWxncmltCioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IFRleHRzYXR6cHJvZ3JhbW0gKEJhcm9uLCAxNi4gT2t0IDE5OTYsIDA4OjI0OjU5KToKfiMhIHJuPUVuZ3l3dWNrIHJ0PTg0NTM3MDU4NAp+IyEgdGlkPTg0NTIzMjAyOQpFdmVudHVlbGwgbGllZ3QgZXMgbmljaHQgX251cl8gYW4gZGVuICh0YXRzYWVjaGxpY2ggenVoYXVmIHZvcmhhbmRlbmVuKSBCdWdzCmluIFdXLCBzb25kZXJuIGF1Y2ggYW4gZGVyIFVuZmFlaGlna2VpdCBlaW5pZ2VyIFZvcnJlZG5lciBtaXQgZGVtIFByb2dyYW1tCnVtenVnZWhlbiA6KT8KQmFyb24gLSBzY2hyaWViIERpcGxvbSwgRG9rdG9yLSB1bmQgYWVobmxpY2hlIEFyYmVpdGVuIG1pdCBXVwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBUZXh0c2F0enByb2dyYW1tIChDYXVubywgMTYuIE9rdCAxOTk2LCAxMDo0NDozMCk6Cn4jISBybj1CYXJvbiBydD04NDU0NDcwOTkKfiMhIHRpZD04NDUyMzIwMjkKCih3YXMgaGFiIGljaCBoaWVyIHdpZWRlciBmdWVybiB0aHJlYWQgYXVzZ2Vsb2VzdCAuLi4pCk51ciB6dXIgS2xhcnN0ZWxsdW5nIC0gTWVpbiBEaXBsZW1tIGhhdCBleGFrdCAxMDAgU2VpdGVuLCBtaXQgSW5oYWx0cy0sClRhYmVsbGVuLSB1bmQgQWJiaWxkdW5nc3ZlcnplaWNobmlzIChLb25udCBqYSBuaXggZGFmdWVyLCBkYXNzIG1laW5lIEFyYmVpdCA0NgpTcGVrdHJlbiBtaXQgZGVuIDI0IGRhenVnZWhyZW5kZW4gVGFiZWxsZW4gZW50aGFlbHQuKQpBdXNzZXJkZW0gbm9jaCB1YmVyIDMgU2VpdGVuIENoZW0tQmlsZGVyIHVuZCBGb3JtZWxuIHVlYmVyIDIwLiBTcGFldGVzdGVucyBhbHMKZGllIGRyaW4gd2FyZW4sIGtvbm50ZSBtYW4gZGllIFNla3VuZGVuIHphZWhsZW4sIGRpZSB2ZXJnaW5nZW4gendpc2NoZW4gZGVtClRpcHBlbiB1bmQgZGVtIEVyc2NoZWluZW4gYXVmIGRlbSBTY2hpcm0uIEF1ZiBkaWUgU2VpdGVuYW5zaWNodCBrb25udGUgbWFuIGltCnZvbGxlbiBGaWxlIGV0d2EgZnVlbmYgYmlzIGZ1ZW5memVobiBtaW51dGVuIHdhcnRlbi4gKFVuZCBpY2ggaGFicyBhdWNoIG1hbAphdWYgZWluZW0gUDEyMCBhdXNwcm9iaWVydCEpIEJpcyBoaWVyaGluIGxpZWYgYWJlciBlaWdlbnRsaWNoIG5vY2ggYWxsZXMgTy5LLgpEYXMgc2NobGltbXN0ZSB3YXIgYWJlciBkYXMgYXVzZHJ1Y2tlbi4KWnVoYXVzZSBhdWYgbWVpbmVtIFRpbnRlbnBpc3NlciBicmF1Y2ggaWNoIGV0d2EgendlaSBTdHVuZGVuLCBkYXZvbiBkYXVlcnRzCmVpbmUgaGFsYmUgYWxsZWluLCBiaXMgV2lud29yZCBtaXQgZGVtIFJvZWRlbG4gYXVmIFBsYXR0ZSBmZXJ0aWcgaXN0LCB3b3p1IGRhcwpoYWIgaWNoIGltbWVyIG5vY2ggbmljaHQga2FwaWVydC4gRGFubiB3ZXJkZW4gc2FlbXRsaWNoZSBzZWl0ZW4gYW4gZGVuIHNwb29sZXIKZ2VzY2hpY2t0LCB1bmQgREFOTiBiZWdpbm50IGRlciBhdXNkcnVjay4KQmVpIGRlbSBWZXJzdWNoLCBpbiBkZXIgVW5pIGF1ZiBMYXNlciB6dSBkcnVja2VuLCBoYXRzIG1pY2h0IGRlbiBWZXJzdGFuZApnZWtvc3RldC4gRXJzdG1hbCBydWVja3QgV29yZCBkYXMgZ2FuemUgTGF5b3V0IHp1cmVjaHQsIHVuZCBrZWluZSBTZWl0ZSBzdGltbXQKbWVoci5EYW5uIHdhciBkZXIgU3BlaWNoZXIgenUga2xlaW4sIHVuZCBpY2ggYmVrYW0gbnVyIFRleHRlIHVuZCBUYWJlbGxlbgphdXNnZWRydWNrdCwgYWxsZSBHcmFmaWtlbiwgU3Bla3RyZW4gdW5kIEZvcm1lbG4gd2FyZW4gbGVlcmUgUmFlaG1jaGVuICh6dW0KRWlua2xlYmVuPykuCkhpbnp1IGtvbW10LCBkYXNzIGRhcyBXaW5kb3dzIGZvciBXdWVyZ2dyb3VwcyBoaWVyIGluc3RhYmlsZXIgaXN0IGFscyBtZWlucyB6dQpIYXVzZS4gRXJmb2xnIGRlciBsZXR6dGVuIGJlaWRlbiBXb2NoZW46IEljaCBoYWIgZGllIEFyYmVpdCB6dWhhdXMKYXVzZ2VkcnVja3QsIGluIGRlciBVbmkga29waWVydCB1bmQgYmluZGVuIGxhc3NlbiAtIHdpZSBpbiBhbHRlbiBaZWl0ZW4uCkZydWVoZXIgd2FyIGFsbGVzIGVpbmZhY2hlci4KCkMuIE5vLCBTdHJlc3NrYW5kaWRhdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBUZXh0c2F0enByb2dyYW1tIChSYWZmaSwgMTYuIE9rdCAxOTk2LCAxMDo1NjowNik6Cn4jISBybj1DYXVubyBydD04NDU0NTU0NzAKfiMhIHRpZD04NDUyMzIwMjkKCkljaCBrYW5uIGRlbSBCZXJpY2h0IHZvbiBDYXVubyBudXIgenVzdGltbWVuIC0gZ2VuYXUgZGFzIHdhcmVuIGF1Y2ggbWVpbmUKUHJvYmxlbWUgLSBpbnNiZXNvbmRlcmUgZGllIHZlcmh1bnp1bmcgZGVyIEZvcm1hdGU0IC0uIGVnYWwgd2llIG1hbiBzaWUKZkVTVExFR1Q7IHdPUkQgU0NIRVJUIFNJQ0ggTklDSFQgREFSVU0gT0IgTUFOIEVJTkUgc1BBTFRFTkJSRUlURSBJTiBNTSBPREVSCmZlc3RsZWd0IC0gV29yZCBzY2hlaHJ0IHNpY2ggbmljaHQgZGFydW0gd2FzIG1hbiBlaWdlbnRsaWNoIGVpbmUgMiBjbSBicmVpdGUKc3BhbHRlIGhhYmVuIHdvbGx0ZSwgdW5kIGRhcmluIGRhbm4gZWluZW4gQmVzdGltbXRlbiBzY2hyaWZ0dHlwIDooCgpHcnVtbWVsCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogVGV4dHNhdHpwcm9ncmFtbSAoUGFtcGVycywgMTYuIE9rdCAxOTk2LCAxMzoyNDo1OSk6Cn4jISBybj1SYWZmaSBydD04NDU0NTYxNjYKfiMhIHRpZD04NDUyMzIwMjkKTWFsIG5lIGdhbnogYW5kZXJlIEZyYWdlOgoKV2VyIHdpbGwgZGFzIGFsbGVzIGVpZ2VudGxpY2ggd2lzc2VuPwoKUGFtcGVycy4gV2lsbHMgbmljaHQgd2lzc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW56ZWlnZSAhIChSYW50YW5wbGFuLCAxNi4gT2t0IDE5OTYsIDEzOjU0OjE5KToKKioqKioqKioqKioqKioqKioqKioqKioqKipHcmVpZiB6dSAhKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKClNhdWR1bW1lciwgbGFuZ3dlaWxpZ2VyLCBoYWVzc2xpY2hlciBIdW5kLCBzdWNodCB3ZWlibGljaGVzIFBlbmRhbnQKbWl0IGxhbmdlciBMZWRlcmxlaW5lIHVuZCBlbnRzcHJlY2hlbmRlbSBPdXRmaXQsIGZ1ZXIgYWxsZXMKd2FzIHp1IHp3ZWl0IF9ub2NoXyBsYW5nd2VpbGlnZXIgaXN0LgoKTmFjaCBkZW0gVmVybHVzdCBtZWluZXMgSGVycmNoZW5zIGJpbiBpY2ggc29vb28gZWluc2FtICpzZXVmeioKCgoKVWViZXIgQmlsZHp1c2NocmlmdGVuIHdpcmQgaGVyemxpY2ggZ2VsYWNodCB1bmQga3JhZnRpZyBhYmdlbGFlc3RlcnQuCgpBbmdlYm90ZSB1bnRlciB3YXN3ZWlzc2ljaC4uLgoKUmFuKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFuemVpZ2UgISAoRW5neXd1Y2ssIDE2LiBPa3QgMTk5NiwgMTM6NTc6MzMpOgp+IyEgcm49UmFudGFucGxhbiBydD04NDU0NjY4NTkKfiMhIHRpZD04NDU0NjY4NTkKSG0sIG9iIGljaCBtZWluIEJpbGQgKGlzIFJlaXp3YWVzY2hlIG9rPykgamV0enQgdXVlbmNvZGV0IGluIGRpZSBaZWl0dW5nIHNldHplCm9kZXIgZG9jaCBsaWViZXIgbnVyIHBlciBNdWRtYWlsPwoKRW5neSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQW56ZWlnZSAhIChIYWRyYSwgMTYuIE9rdCAxOTk2LCAxMzo1ODo0Myk6Cn4jISBybj1Fbmd5d3VjayBydD04NDU0NjcwNTMKfiMhIHRpZD04NDU0NjY4NTkKbGVncyBhdWYgZGVuIHdlYnNlcnZlciwgd2lyIHdvbGxlbiBhbGxlIGxhY2hlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQW56ZWlnZSAhIChSYWZmaSwgMTYuIE9rdCAxOTk2LCAxNjo0NzowNSk6Cn4jISBybj1IYWRyYSBydD04NDU0NjcxMjMKfiMhIHRpZD04NDU0NjY4NTkKCkpvLCBoZXJkYW1pdCAhCgpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IFRleHRzYXR6cHJvZ3JhbW0gKENhdHdlYXpsZSwgMTYuIE9rdCAxOTk2LCAxODo0MDozNyk6Cn4jISBybj1CYXJvbiBydD04NDU0NDcwOTkKfiMhIHRpZD04NDUyMzIwMjkKCkljaCB3dWVyZCBzb2dhciBzYWdlbjoKCldXIGlzdCBhZWhubGljaCBlaWdlbiB3aWUgTmV0c2NhcGUgdW5kIHZlcmhhZWx0IHNpY2ggd2llIGVpbiAKR2FlbnNlYmx1ZW1jaGVuOiAKCkljaCBtYWcgRGljaCwgaWNoIG1hZyBEaWNoIG5pY2h0LCBpY2ggbWFnIERpY2gsIGljaCBtYWcgRGljaCBuaWNodCAuLi4uLgoKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IFRleHRzYXR6cHJvZ3JhbW0gKFN1c2hpLCAxNi4gT2t0IDE5OTYsIDE5OjM5OjQ2KToKfiMhIHJuPUNhdW5vIHJ0PTg0NTQ1NTQ3MAp+IyEgdGlkPTg0NTIzMjAyOQoxLiBXaXIgc29sbHRlbiBkaWUgRGlza3Vzc2lvbiBhdWYgRGlza3Vzc2lvbiB2ZXJsZWdlbi4KMi4gRGVpbmUgUHJvYmxlbWUgaGFiZSAyIExvZXN1bmdlbjogYSkgRG9rdSBsZXNlbiwgZGllIEZlaGxlciBnZWhlbiBiaXMgYXVmCmVpbmVuIGFsbGUgYXVmIERlaW4gZWlnZW5lcyBLb250bywgYikgV29yZFBlcmZlY3QgbmVobWVuLgpCZXNvbmRlcnMgZGllIERydWNrZXJwcm9ibGVtZSB1bmQgZGFzIFpldWcgbWl0IGRlbiBUYWJlbGxlbiBsYXNzZW4gc2ljaCBpbiBXUApiZXNzZXIgbG9lc2VuLgpEYXMgVW1mb3JtYXRpZXJlbiBsYWVzc3Qgc2ljaCBkYSBuYWVtbGljaCBhYnNjaGFsdGVuLCBkaWUgRHJ1Y2tlcnZlcndhbHR1bmcKdm9uIFdQIGlzdCBiZXNzZXIgdW5kIGRpZSBUYWJlbGxlbiBoYWJlbiBlaW5pZ2UgX2tvbmt1cnJlbnpsb3NfIGd1dGUKRnVua3Rpb25lbiAoSSAqZmx1Y2gqIG5hLCBlZ2FsLi4uCldlciB1ZWJyaWdlbnMgbm9jaCBhbiBkaWUgV3VuZGVycHJhY2h0IHZvbiBXb3JkIGdsYXVidCwgYmVrb21tdCB2b24gbWlyIGRlbgpUZXh0IGRlcyBCdWNoZXMgKHZvcmJpbGRsaWNoIG5hY2ggQnVjaCBmb3JtYXRpZXJ0IC0gX2ZsYXdsZXNzXykuIFNvbGx0ZSBlcwpqZW1hbmQgc2NoYWZmZW4sIGRhcyBEaW5nIGZlaGxlcmZyZWkgYXVzenVkcnVja2VuLCBiZWtvbW10IGVyIHZvbiBtaXIgZWluZQpGbGFzY2hlIE1vZXQgb2RlciBhbmRlcmVzIG5hY2ggV2FobC4gKEtvbnZlcnRpZXJlbiBpbiBXUCB1bmQgZW50ZmVybmVuIGRlcgpTdGV1ZXJ6ZWljaGVucmVzdGUgdm9uIFdvcmQgZ2lsdCBuaWNodCkuCgpadW0gVGhlbWEgVGV4dHZlcmFyYmVpdHVuZ2VuIGluIEZpcm1lbi4uLgpXYXMgaGF0IGVpbmUgVGV4dHZlcmFyYmVpdHVuZyBkYSB1ZWJlcmhhdXB0IHZlcmxvcmVuPyBVZWJlciBXb3JkUHJvIGxpZXNzZQpzaWNoIG5vY2ggcmVkZW4sIHdlaWwgZXMgZGllIEJlYXJiZWl0dW5nIGR1cmNoIDEwIFBlcnNvbmVuIG1pdCBlaW5lciBnb2xkaWdlbgpVZWJlcmFyYmVpdHVuZ3NmdW5rdGlvbiBlcmxhdWJ0OyBTdGFyV3JpdGVyIDMuMSBoYXQgYXVjaCBub2NoIGVpbmlnZXMgZnVlcgpzaWNoIGltIEJlcmVpY2ggTmV0endlcmssIGF1Y2ggd2VubiBlcyBhbGxlIFNjaHdhZWNoZW4gdm9uIFdvcmQgZ2VlcmJ0IGhhdAooSWNoIHNhZ2UgbnVyOiBTcGFsdGVuLi4uICphcmdsKikKQWJlciBhbnNvbnN0ZW4gaXN0IGRvY2ggbmljaHQgZWluenVzZWhlbiwgd2FydW0gamVtYW5kLCBkZXIgQ0kgd2lsbCwgc2VpbmVuCk1pdGFyYmVpdGVybiBfaXJnZW5kX2VpbmUgTW9lZ2xpY2hrZWl0IGdlYmVuIHNvbGx0ZSwgaW4gZGFzIExheW91dCBkZXIKRG9rdW1lbnRlIGVpbnp1Z3JlaWZlbi4gSW0gQlBBIGxhZXVmdCBISVQgdW5kIGFsbGVzIGlzdCBpbiBPcmRudW5nLCB3YWVocmVuZAppbiBkZW4gQWJ0ZWlsdW5nZW4sIGRpZSBkaWUgU2VnbnVuZ2VuIGRlciBXb3JkIFRlY2huaWsgZXJsaXR0ZW4gaGFiZW4gX25pY2h0c18KbWVociBnZWh0IC0gdm9uIGRlbiBLb3N0ZW4gZnVlciBkaWUgVW1zY2h1bHVuZywgbmV1ZSBIYXJkd2FyZSBldGMuIGVpbm1hbCBnYW56CmFiZ2VzZWhlbi4KClN1c2hpIC0gc2VuZmVuZC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IFRleHRzYXR6cHJvZ3JhbW0gKFRvZSwgMTcuIE9rdCAxOTk2LCAxNToxMDo1NCk6Cn4jISBybj1DYXVubyBydD04NDU0NTU0NzAKfiMhIHRpZD04NDUyMzIwMjkKaG9lcnQgc2ljaCBuYWNoIDhNQiByZWNobmVyIGFuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogVGV4dHNhdHpwcm9ncmFtbSAoQmFyb24sIDE4LiBPa3QgMTk5NiwgMDk6NDk6MDApOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg0NTQ4NDAzNwp+IyEgdGlkPTg0NTIzMjAyOQpNaWNoIG1hZyBlcyA6KSkhClVuZCBpY2ggbWFnIGVzIGF1Y2ggKmVycm9ldCouIFNjaGxpZXNzbGljaCBsZWJlIGljaCBkYXZvbiwgYW5kZXJlbiBMZXV0ZW4gZGVuClVtZ2FuZyBtaXQgT2ZmaWNlIFByb2dyYW1tZW4gYmVpenVicmluZ2VuLgpCYXJvbiAtIG91dGV0IHNpY2ggYWxzIEdlaGVpbWFnZW50IDAwR2F0ZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnRlcmFjdGl2ZSBGaWN0aW9uIChTbGlycGVyLCAyMS4gT2t0IDE5OTYsIDE1OjAzOjM5KToKRmFsbHMgaWhyIGF1Y2ggZGVuIGFsdGVuIEluZm9jb20tVGV4dGFkdmVudHVyZXMgbmFjaHRyYXVlcnQgb2RlciBhYmVyClF1ZXN0bGllYmhhYmVyIHNlaWQsIGRhbm4ga2FubiBpY2ggZXVjaCBkYXMgSW50ZXJhY3RpdmUgRmljdGlvbgpBcmNoaXZlIChpZi1hcmNoaXZlKSBlbXBmZWhsZW4sIGF1ZiBkYXMgaWNoIHZvciBlaW5pZ2VyIFplaXQgZ2VzdG9zc2VuCmJpbi4gRG9ydCBsaWVnZW4gemFobHJlaWNoZSAoZW5nbGlzY2hzcHJhY2hpZ2UpIFRleHRhZHZlbnR1cmVzLCBkaWUKdm9uIGRpdmVyc2VuIEluZm9jb20tTm9zdGFsZ2lrZXJuIG1pdCBkZW4gZWluc2NobGFlZ2lnZW4gIkFkdmVudHVyZS0KUHJvZ3JhbW1pZXJzcHJhY2hlbiIgKHdpZSB6Qi4gVEFEUyBvZGVyIEluZm9ybSwgZWluIFB1YmxpYyBEb21haW4KQ29tcGlsZXIgZnVlciBJbmZvY29tIEZvcm1hdCBGaWxlcykgcHJvZ3JhbW1pZXJ0IHd1cmRlbi4gRGllIFNwaWVsZQpzaW5kIEZyZWV3YXJlIHVuZCBwbGF0dGZvcm11bmFiaGFlbmdpZzsgZXMgZ2lidCBmdWVyIGFsbGUgU3lzdGVtZQpkaXZlcnNlIEludGVycHJldGVyLCBtaXQgZGVuZW4gbWFuIG5hdHVlcmxpY2ggbmljaHQgbnVyIGRpZSBuZXVlbgpBZHZlbnR1cmVzLCBzb25kZXJuIGF1Y2ggYWx0ZSBJbmZvY29tLVRpdGVsIHpCIHVudGVyIExpbnV4IHNwaWVsZW4Ka2Fubi4gCgpJY2ggYmluIHppZW1saWNoIGJlZ2Vpc3RlcnQgdm9uIGRlciBRdWFsaXRhZXQgbWFuY2hlciBkaWVzZXIgbmV1ZW4KQWR2ZW50dXJlcyAtLSBzaWUgc3RlaGVuIEluZm9jb20gS2xhc3Npa2VybiAod2llIFRyaW5pdHkgb2RlcgpIaXRjaGhpa2VycyBHdWlkZSkgaW4gbmljaHRzIG5hY2guIERpZSBQYXJzZXIgc2luZCBzZWhyIGludGVsbGlnZW50CnVuZCBkYXMgTml2ZWF1IGRlciBQdXp6bGVzIGdlaHQgd2VpdCB1ZWJlciBlaW4gbGluZWFyZXMgImZpbmRlIG9iamVrdDEKLSBnaWIgb2JqZWt0MSBhbiBucGMxIC0gZXJoYWx0ZSBvYmpla3QyIHVzdy4iIGhpbmF1cy4gSGVyYXVzcmFnZW5kZQpCZWlzcGllbGUgc2luZCBJTUhPIEN1cnNlcywgQSBDaGFuZ2UgSW4gVGhlIFdlYXRoZXIsIEppZ3NhdywKQ2hyaXN0bWluc3RlciB1bmQgV2luZGhhbGwgQ2hyb25pY2xlcy4KCkVzIGdpYnQgc2VpdCAxOTk1IGVpbmUgamFlaHJsaWNoZSBJbnRlcmFjdGl2ZSBGaWN0aW9uIENvbXBldGl0aW9uIHVuZAphbSBTYW1zdGFnIHd1cmRlbiBkaWUgZGllc2phZWhyaWdlbiBCZWl0cmFlZ2UgKDI3IEFkdmVudHVyZXMhKQp2ZXJvZWZmZW50bGljaHQsIGRpZSBudW4gdm9uIGRlciBBbGxnZW1laW5oZWl0IGJpcyB6dW0gMzAuMTEgYmV3ZXJ0ZXQKd2VyZGVuIGtvZW5uZW4uCgpEaWUgQWRyZXNzZSBkZXMgQXJjaGl2ZXMgaXN0OiBmdHAuZ21kLmRlCgpQZmFkZToKCiAgR2FtZXM6IC9pZi1hcmNoaXZlL2dhbWVzIHVuZCBkYW5uIGluIGRlbiBTdWJkaXJlY3RvcmllcyB3aWUgekIgaW5mb2NvbQoKICBJbnRlcnByZXRlciBmdWVyIEluZm9jb20gRm9ybWF0IEZpbGVzICgqLmRhdCAqLnozICouejUgKi56OCk6ICAKICAgIC9pZi1hcmNoaXZlL2luZm9jb20vaW50ZXJwcmV0ZXJzIChlbXBmZWhsZW5zd2VydDoganppcCkKCiAgSW50ZXJwcmV0ZXIgZnVlciBTcGllbGUsIGRpZSBtaXQgVEFEUyBlbnR3aWNrZWx0IHd1cmRlbiAoKi5nYW0pOgogICAgL2lmLWFyY2hpdmUvcHJvZ3JhbW1pbmcvdGFkcy8KCiAgU3BpZWxlIGRlciBDb21wZXRpdGlvbiA5NjogL2lmLWFyY2hpdmUvZ2FtZXMvY29tcGV0aXRpb245NgoKICBGQVEgIldlbGNoZXIgSW50ZXJwcmV0ZXIgZnVlciB3ZWxjaGVzIEZpbGVmb3JtYXQiIGZ1ZXIgRG9zZW5iZW51dHplcjogCiAgICAvaWYtYXJjaGl2ZS9pbmZvL3BsYXlnYW1lLkZBUQoKICBOZXdzZ3JvdXBzOgogICAgcmVjLmFydHMuaW50LWZpY3Rpb24gKGZ1ZXIgVGV4dCBBZHZlbnR1cmUgQXV0b3JlbikgdW5kCiAgICByZWMuZ2FtZXMuaW50LWZpY3Rpb24gKEhpbnRzIHVuZCBEaXNrdXNzaW9uZW4gdWViZXIgYWx0ZSB1bmQgbmV1ZQogICAgU3BpZWxlKS4KCkRpZSBhbHRlbiBJbmZvY29tLUdhbWVzIHdlcmRldCBpaHIgaW0gaWYtYXJjaGl2ZSBuYXR1ZXJsaWNoIG5pY2h0CmZpbmRlbiwgZGEgZGFzIENvcHlyaWdodCBpbW1lciBub2NoIGJlaSBBY3RpdmlzaW9uIGxpZWd0LCBhYmVyIGluIGRlbgpVU0EgaXN0IHZvciBlaW5pZ2VuIFdvY2hlbiBlaW5lIENEICJDbGFzc2ljIFRleHQgQWR2ZW50dXJlCk1hc3RlcnBpZWNlcyBPZiBJbmZvY29tIiBmdWVyICQyMCBlcnNjaGllbmVuLCBkaWUgZmFzdCBhbGxlIEluZm9jb20KU3BpZWxlIGVudGhhZWx0IC0tIGVzIGZlaGxlbiBudXIgU2hvZ3VuIHVuZCAobGVpZGVyKSBIaXRjaGhpa2VycyBHdWlkZQp0byB0aGUgR2FsYXh5LCBkYSBkaWUgUmVjaHRlIG1pdHRsZXJ3ZWlsZSB3aWVkZXIgYW4gZGllIGpld2VpbGlnZW4KQnVjaGF1dG9yZW4genVydWVja2dlZ2FuZ2VuIHNpbmQuCgpnZW51ZyBkZXIgV2VyYnVuZywKU2xpcnBlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVib290IChIYXRlLCAyMS4gT2t0IDE5OTYsIDE3OjI0OjA0KToKVGphLCBlcyBzY2hpZW4gd29obCwgZGFzcyBkZW0gR0QgbmljaHQgZ2VudWcgRmlsZWRlc2tyaXB0b3JlbiB6dXIgdmVyZnVlZ3VuZwpzdGFuZGVuLiBQcm8gc3BpZWxlciBtdXNzIG1hbiBlaW5lbiBGRCBlaW5wbGFuZW4gKyBkaXZlcnNlIGFuZGVyZSBEYXRlaS0Kb3BlcmF0aW9uZW4uIERlc3dlZ2VuIGdhYnMgZWluZW4gcmVib290LCBiZWkgZGVtIGljaCBkaWUgRWluc3RlbGx1bmcKZ2VhZW5kZXJ0IGhhYmUuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHVua3JvY2tlbmRlciBXdXJzdHNlaGVyIGF1ZiBkZXIgQnVlaG5lLi4uIChIYXIsIDIyLiBPa3QgMTk5NiwgMTI6MTY6MzgpOgpXZXIgTHVzdCBhdWYgUHVua3JvY2sgaGF0IGthbm4gYW0gU2Ftc3RhZywgZGVtIDI2LiBPa3RvYmVyIG1hbCBpbSBIYXVzIGRlcgpKdWdlbiwgUHJvc3BlcnN0cmFzc2UgNzAgaW4gQm90dHJvcCB2b3JiZWlzY2hhdWVuLiBEb3J0IGdpYnQgZXMgZWluIEtvbnplcnQKbWl0IEVMWVNJVU0sIFRFUlJFTU9UTyBQQVJUWSB1bmQgZGVuIFBJTFMgQU5HRUxTIHVuZCBiZWkgZWluZXIgdm9uIGRlbiBCYW5kcwp3ZXJkZSBpY2ggZGFubiBhdWNoIG1pdCBhdWYgZGVyIEJ1ZWhuZSBzdGVoZW4sIHdpZSBhdWNoIGFtIDI1LiBPa3RvYmVyIGF1ZiBkZXIKTXVzaWMtRmFjdG9yeSBpbiBLb2VsbiwgTWVzc2VoYWxsZS4gRG9ydCBzcGllbGVuIGRpZSBQaWxzIEFuZ2VscyBlaW4gTGl2ZS1EZW1vCmVpbi4KCldlciBhbHNvIEx1c3QgaGF0Li4uLgoKSGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMaW51eCAoR3JpbW1ib3JuLCAyOC4gT2t0IDE5OTYsIDE0OjUxOjQ4KToKCldpciBoYWJlbiBoaWVyIGZvbGdlbmRlcyBQcm9ibGVtOgpFaW4gTGludXhyZWNobmVyIHNvbGwgYW0gTmV0eiBoYWVuZ2VuLiBGdWVyIGVpbmVuIGJlc3RpbW10ZW4gdXNlciBzb2xsCk5ldHNjYXBlIGxhdWZlbiwgZXMgc29sbCBpaG0gZGFiZWkgdW5tb2VnbGljaCBnZW1hY2h0IHdlcmRlbiwgYXVmIFNlaXRlbgphdXNzZXJoYWxiIGRlcyBsb2thbGVuIFJlY2huZXJzIHp1enVncmVpZmVuLiBWb3IgYWxsZW0gZGFyZiBlciBrZWluZQpNb2VnbGljaGtlaXQgenVtIG1haWxlbiBoYWJlbi4KU293ZWl0IHdpciBkYXMgdWViZXJibGlja2VuIHdhZXJlIGRpZSBlbGVnYW50ZXN0ZSBNb2VnbGljaGtlaXQgZWluIGtvbXBsZXR0ZXMKU3BlcnJlbiBkZXMgTmV0emVzIGZ1ZXIgZGllc2VuIHVzZXIuIExlaWRlciBrYW5uIG1hbiBkZW4gUmVjaG5lciBuaWNodCB2b2VsbGlnCnZvbSBOZXR6IG5laG1lbiwgd2VpbCBlciBuYXR1ZXJsaWNoIHZvbiBhdXNzZW4gZ2V3YXJ0ZXQgd2VyZGVuIHNvbGwuIEVpbmUKRmlyZXdhbGwgaXN0IGF1cyBkaXZlcnNlbiBHcnVlbmRlbiBuaWNodCBzbyBnZXNjaGlja3QuIApIYXQgZGEgamVtYW5kIGVpbmUgSWRlZT8KVGlwcyB1bmQgVHJpY2tzIGJpdHRlIHBlciBtYWlsLCBpY2ggZGVua2UgbmljaHQsIGRhc3MgZGFzIGRpZSBNYXNzZQppbnRlcmVzc2llcnQuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZSBGYWhya2FydGUgKExvY28sIDI4LiBPa3QgMTk5NiwgMTU6MTU6MDIpOgpBbiBhbGxlIE11ZW5zdGVyYW5lciwgZGllIGdlbGVnZW50bGljaCBCYWhuIGZhaHJlbi4uLgoKbmFjaGRlbSBpY2ggdm9yIGVpbmlnZW4gV29jaGVuIGF1ZiBtZWluZSBlcnN0ZSBOb3RlIGtlaW5lIFJlYWt0aW9uIGJla29tbWVuCmhhYmUsIHZlcnN1Y2hlIGljaCBlcyBoaWVybWl0IGVpbiB6d2VpdGVzIE1hbC4KCkZ1ZXIgbWVpbmUgRmFocmthcnRlbnNhbW1sdW5nIHN1Y2hlIGljaCB1bnRlciBhbmRlcmVtIHNwZXppZWxsIG5hY2ggZWluZW0KYmVzb25kZXJlbiBXb2NoZW5lbmR0aWNrZXQsIGRhcyBpbiBudXIgTXVlbnN0ZXIgdmVya2F1ZnQgd2lyZC4gRXMgaGFuZGVsdApzaWNoIGRhYmVpIHRhcmlmbGljaCB1bSBlaW4gZ2FueiBub3JtYWxlcyBEQi1Xb2NoZW5lbmR0aWNrZXQgZnVlciAzNSwtIERNCnVuZCBnaWx0IGRlbWVudHNwcmVjaGVuZCBhdWNoIGdlbmF1c28sIHdpZSB3ZW5uIG1hbiBlcyBhbSBCYWhuc2NoYWx0ZXIKa2F1ZmVuIHd1ZXJkZS4gRXMgc2llaHQgbnVyIGFuZGVycyBhdXMgLSBuYWVtbGljaCBhZWhubGljaCB3aWUgTW9uYXRzLQpvZGVyIFdvY2hlbmthcnRlbiBkZXMgU3RhZHR2ZXJrZWhycy4KClZlcmthdWZ0IHdpcmQgZXMgei5CLiBhbSBWR00tUGF2aWxsb24gdm9yIGRlbSBIYXVwdGJhaG5ob2YsIGF1Y2ggZGF0aWVydAppbSBWb3J2ZXJrYXVmLgoKRGllIEJpdHRlIHdhZXJlIGFsc286IFdlbm4gaXJnZW5kamVtYW5kIGF1cyBNdWVuc3RlciBpbiBkZXIgbmFlY2hzdGVuClplaXQgZnVlciBlaW5lbiBBdXNmbHVnL0hlaW1mYWhydC8uLi4gZGFzIFNjaG9lbmVzLVdvY2hlbmVuZGUtVGlja2V0IGRlcgpEQiBudXR6ZW4gd2lsbCAtIGthdWYgZXMgYmVpbSBTdGFkdHZlcmtlaHIgdW5kIHNjaGljayBlcyBtaXIgYW5zY2hsaWVzc2VuZApuYWNoIEdlYnJhdWNoIHp1IChBZHJlc3NlIGF1ZiBBbmZyYWdlKS4gCkljaCBnYXJhbnRpZXJlIGZ1ZXIgUG9ydG9lcnN0YXR0dW5nLCB1bmQgc2V0emUgZ2VybmUgbm9jaCBlaW5lIGtsZWluZSAKQXVmbWVya3NhbWtlaXQgbmFjaCBBYnNwcmFjaGUgZGF6dS4gRXMgbWFjaHQgZ2FyIG5pY2h0cywgd2VubiBzaWNoIG1laHJlcmUKTGV1dGUgbWVsZGVuLCB1ZWJlcnNjaHVlc3NpZ2UgRXhlbXBsYXJlIGxhc3NlbiBzaWNoIGd1dCB2ZXJ0YXVzY2hlbi4KCkdydXNzIHZvbSBGYWhya2FydGVuLSwgRmFocnBsYW4tIHVuZCBUYXJpZmV4cGVydGVuLAoKLSBMb2NvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgRmFocmthcnRlIChMb2NvLCAyOC4gT2t0IDE5OTYsIDE1OjE4OjU4KToKfiMhIHJuPUxvY28gcnQ9ODQ2NTEyMTAyCn4jISB0aWQ9ODQ2NTEyMTAyCkFjaCBqYSwgZWluZSBhZWhubGljaGUgQW5mcmFnZSBnaWx0IHNpbm5nZW1hZXNzIGluc2Jlc29uZGVyZSBhdWNoIGZ1ZXIKTWl0c3BpZWxlciBhdXMgZGVuIGdlZ2VuZGVuIHVtIEVyZnVydCwgTnVlcm5iZXJnL0Z1ZXJ0aC9FcmxhbmdlbiwgS2Fzc2VsIHVuZApIYW1idXJnLiBBdXNzZXJkZW0sIHdlbm4gYXVjaCBuaWNodCBnYW56IHNvIGRyaW5nZW5kLCBub2NoIGluIGVpbiBwYWFyIGFuZGVyZW4KR2VnZW5kZW4sIG1lbGRldCBldWNoIGVpbmZhY2ggYmVpIG1pci4uLgoKLSBMb2NvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgRmFocmthcnRlIChRaXRlc3MsIDI4LiBPa3QgMTk5NiwgMTY6NTY6MjApOgp+IyEgcm49TG9jbyBydD04NDY1MTIxMDIKfiMhIHRpZD04NDY1MTIxMDIKCipraWNoZXIqIGljaCBnbGF1YmUgaWNoIGZhbmdlIG1hbCBlaW5lIHNhbW1sdW5nIHZvbiBiZW56aW4ta2Fzc2VuemV0dGVsbiBhbi4KdW5kIGRhbm4gbW9lY2h0ZSBpY2ggdm9uIGplZGVyIHRhbmtzdGVsbGUgaW4gZGV1dHNjaGxhbmQgZWluZW4gYm9uIGhhYmVuCmpld2VpbHMgdm9uIGplZGVtIGRvcnQgZXJoYWVsdGxpY2hlbiB0cmVpYnN0b2ZmZXMuCgpRSSAgIC0gZmFlaHJ0IGF1dG8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWJ1cnRzdGFnc2dlc2NoZW5rIChHcmltbWJvcm4sIDI4LiBPa3QgMTk5NiwgMTk6MzE6MTApOgoKTWVpbmUgTXV0dGVyIHdpcmQgZGVtYmFsZCA1MCBKYWhyZSwgdW5kIGljaCBiaW4gYXVmIGRlciB2ZXJ6d2VpZmVsdGVuIFN1Y2hlCm5hY2ggZWluZW0gc2Nob2VuZW4sIHBhc3NlbmRlbiBHZXNjaGVuay4gU29sbHRlIG5hdHVlcmxpY2ggbmljaHQgenUgdGV1ZXIgc2VpbgooYmluIGphIG5pY2h0IEtyb2VzdXMpIHNvbmRlcm4gdmllbG1laHIgZWluZSB6dWVuZGVuZGUgSWRlZSBzZWluLiBOdXIgYmluIGljaApkYSBkZWZpbml0aXYgenUgdW5rcmVhdGl2LiAKR3V0ZSBJZGVlbiAobmljaHQgIlRvcGZsYXBwZW4gaGFla2VsbiIpIGJpdHRlIHBlciBtYWlsIGFuIG1pY2guLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWJ1cnRzdGFnc2dlc2NoZW5rIChTdXNoaSwgMjguIE9rdCAxOTk2LCAxOTo1MTozOCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ2NTI3NDcwCn4jISB0aWQ9ODQ2NTI3NDcwCiJadWVuZGVuZCI/IFZpZWxsZWljaHQgZWluZSBGbGFzY2hlIG1pdCBlaW5lciBLZXJvc2luLURpZXNlbG9pbC1NaXNjaHVuZz8KClN1c2hpIC0genVlbmRlbG5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExpbnV4IChSb25kYSwgMjguIE9rdCAxOTk2LCAyMjoxMDoyNCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ2NTEwNzA4Cn4jISB0aWQ9ODQ2NTEwNzA4CklzdCBnYW56IGVpbmZhY2gsIHdpciBtYWNoZW4gZGFzcywgaW5kZW0gd2lyIFdpbjk1IGluc3RhbGxpZXJlbiwgZGFubiBrYW5uc3RlCmdhcmFudGllcnQgbmljaHQgbWVociBtYWlsZW4gLi4uCi0+IFNjaG1hcnJuLi4uCiAgICAgIFJvbmRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IExpbnV4IChTdXNoaSwgMjguIE9rdCAxOTk2LCAyMzoyNzoyOCk6Cn4jISBybj1Sb25kYSBydD04NDY1MzcwMjQKfiMhIHRpZD04NDY1MTA3MDgKRnVua3Rpb25lcnQgbmljaHQgcG9wcGVyIGluIHNvbGNoZW4gRmFlbGxlbj8gRGFzIG11ZXNzdGUgZWlnZW50bGljaCBnZWhlbi4uLgoKU3VzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWJ1cnRzdGFnc2dlc2NoZW5rIChHcnVtYmFydCwgMjkuIE9rdCAxOTk2LCAxMDowODoyMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ2NTI3NDcwCn4jISB0aWQ9ODQ2NTI3NDcwCk9iam9rZTogV2llIHdhZXIncyBkZW5uIG1pdCBlaW5lbSBCU1MgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdlYnVydHN0YWdzZ2VzY2hlbmsgKEphc3BlciwgMjkuIE9rdCAxOTk2LCAxMTo1NDoxMik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ2NTI3NDcwCn4jISB0aWQ9ODQ2NTI3NDcwCndpZSB3YWVycyBtaXQgZWluZW0gdmlicmF0b3IgbWl0IDUwIG5vcHBlbj8KCkphc3BlciBoZXV0ZSBsZWljaHQgYmV0YWV1YnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBmbGEgKEFyaWVuLCAzMC4gT2t0IDE5OTYsIDEzOjAxOjUwKToKfiMhIHJuPUd1bGR1a2F0IHJ0PTg0NTM3NjMzNwp+IyEgdGlkPTg0NTM3NjMzNwpTcGFldCBrb21tdCBkaWUgQW50d29ydCwgYWJlciBzaWUga29tbXQ6ClNjaGF1IG1hbCBiZWkgSW5mcmFSb3QgcmVpbjogaHR0cDovL3d3dy5pbmZyYXJvdC5kZQoKQSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR2VidXJ0c3RhZ3NnZXNjaGVuayAoUGFtcGVycywgMzAuIE9rdCAxOTk2LCAxMzo0NTowMik6Cn4jISBybj1TdXNoaSBydD04NDY1Mjg2OTgKfiMhIHRpZD04NDY1Mjc0NzAKCkhtLi4uIFdhcyBpc24gZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEtlcm9zaW4gdW5kIERpZXNlbG9lbD8KClBhbXBlcnMuIERlciBtZWludCwgZGFzcyBGbHVnemV1Z2UgbWl0IGhvY2hyZWluZW0gRGllc2VsIG5hbWVucyBLZXJvc2luCmZsaWVnZW4uLi4KIy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRPV04gPyAoSGF0ZSwgMjIuIE5vdiAxOTk2LCAxMjoyNzozMyk6CkhpLAoKYWxzbyB6dW0gZ2VuYXVlbiBQcm9ibGVtIChQbGF0dGVuY3Jhc2ggb2RlciBzbz8pIGthbm4gaWNoIGxlaWRlciBuaWNodHMgCnNhZ2VuLiAKClRvZXRlciBoYXQgamVkZW5mYWxscyBlaW5lIG5ldWUgVmVyc2lvbiB2b24gRnJlZUJTRCBpbnN0YWxsaWVydCwgZGEgZGllClBsYXR0ZSBtaXQgZGVtIGFsdGVuIEtyYW0gbmFoZXp1IGtvbXBsZXR0IGhpbiB3YXIuIERhZHVyY2gga2FtIGVzIHp1IGVpbmVyClZlcmFlbmRlcnVuZyBpbiBkZXIgY3J5cHQoKSBpbXBsZW1lbnRhdGlvbiwgd2VsY2hlIGZ1ZXIgZGllIFZlcnNjaGx1ZXNzZWx1bmcKZGVyIFBhc3N3b2VydGVyIG5vZXRpZyBpc3QuIERhcyBQcm9ibGVtIGlzdCBqZXR6dCBiZWhvYmVuLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJTRCBzdWNrcyAoVG9ldGVyLCAyMi4gTm92IDE5OTYsIDEyOjM3OjI5KToKSGksCmRhcyBnZW5hdWUgUHJvYmxlbSB3YXIsIGRhc3Mgc2ljaCBkYXMgQmV0cmllYnNzeXN0ZW0gbmljaHQgbnVyIHNlaW5lIGxvZ2lzY2hlClBhcnRpdGlvbiB6ZXJzY2hvc3NlbiBoYXR0ZSwgc29uZGVybiBkaWUgZ2VzYW10ZSBwaHlzaWthbGlzY2hlIChCU0QgaGF0IAplaWdlbmUgJ0xhYmVscycpLiBJbmZvbGdlZGVzc2VuIG11c3N0ZW4gd2lyIGtvbXBsZXR0IG5ldSBpbnN0YWxsaWVyZW4uIEVzCnNjaGVpbnQgYWJlciBrZWluIHBoeXNpa2FsaXNjaGVyIFBsYXR0ZW5zY2hhZGVuIHZvcnp1bGllZ2VuLCBqZWRlbmZhbGxzIGhhYmUKaWNoIGJlaW0gTmV1Zm9ybWF0aWVyZW4gbWl0IFBydWVmZW4sIGtlaW5lbiBnZWZ1bmRlbi4gT2J3b2hsIGRhcyBtdWQgbnVuCndpZWRlciBmdW5rdGlvbmllcnQsIGxpZWdlbiBub2NoIGFuZGVyZSBEZWZpeml0ZSB2b3IsIGRpZSBldmVudHVlbGwgbm9jaC0KZWlubWFsIHp1IGVpbmVtIHJlYm9vdCBkZXMgUmVjaG5lcnMgZnVlaHJlbiBrb2VubnRlbi4KICBUb2V0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluIHByb2JsZW0gKFJvY2h1cywgMjIuIE5vdiAxOTk2LCAxMjo0NjozMCk6CkRheiBSWiBoYXQgZnVlciBoZXV0ZSAxNDowMCBiYXN0ZWxhcmJlaXRlbiBhbSBOZXR6d2Vyawphbmdla3VlbmRpZ3QuIERhcyBNdWQga29lbm50ZSBhbHNvIGJhbGQgd2llZGVyIG5pY2h0CmVycmVpY2hiYXIgc2VpbiwgZGFubiBhYmVyIGhvZWNoc3RlbnMgZnVlciBlaW5pZ2UgU3R1bmRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRyaXZlciAoVG9ldGVyLCAyNy4gTm92IDE5OTYsIDE1OjU5OjE3KToKSGksCmluIC9vcGVuL1NvZnR3YXJlL0dhbWVEcml2ZXIvIGxpZWd0IGpldHp0IG1hbCB3aWVkZXIgZWluIExpbnV4LUJpbmFyeSBkZXMgCmFrdHVlbGxlbiBHYW1lZHJpdmVycy4KICBUb2V0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNyZWF0dXJlcyAoQmVlbHplYnViLCAgNC4gRGV6IDE5OTYsIDE5OjMxOjI1KToKTWFobHplaXQgIQpHaWJ0IGVzIGhpZXIgYXVzc2VyIG1pciBub2NoIHdlbGNoZSwgZGllIHN1ZWNodGlnIG5hY2ggZGVuIHB1dHppZ2VuIE5vcm5zIHNpbmQKPwpXZW5uIGphIG1haWx0IG1pY2ggbWFsIHp1bSBFcmZhaHJ1bmdzYXVzdGF1c2NoLgoKQmVlbHplKiAtIGtvbW10IHdlZ2VuIGRlbSBOYWNod3VjaHMga2F1bSBub2NoIHp1bSBtdWRkZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDcmVhdHVyZXMgKEd1bGR1a2F0LCAgNS4gRGV6IDE5OTYsIDEwOjI0OjE3KToKfiMhIHJuPUJlZWx6ZWJ1YiBydD04NDk3MjQyODUKfiMhIHRpZD04NDk3MjQyODUKZGllIGluc3RhbGxhdGlvbiBoYXQgbWVpbmUgZ3JhZmlrdHJlaWJlciB0b3RhbCB6ZXJzY2hvc3NlbiA6KApzYWcgaGkKYWJlciBzb25zdCBzaW5kIGRpZSBnYW56IG5pZWRsaWNoLCBoYWIgYWJlciBlcnN0IHp3ZWkgMjAgbW1pbnV0ZW4gYWx0ZSAuLi4uCm5vY2ggbmljaHQgd2VpdGVyIGdlc3BpZWx0LCByZWQgYWxlcnQgaGF0IGRpZSBpcmdlbmR3aWUgYXVzIGRlbSByZWNobmVyCmdlZHJhZW5ndCAuLi4uIDspCkdECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENyZWF0dXJlcyAoR3VsZHVrYXQsICA1LiBEZXogMTk5NiwgMTA6MjQ6NDcpOgp+IyEgcm49R3VsZHVrYXQgcnQ9ODQ5Nzc3ODU3Cn4jISB0aWQ9ODQ5NzI0Mjg1Ck9rLCBpY2ggZ2VzdGVoZSBlaW4sIGljaCBzb2xsdGUgZGllIHRyaWdnZXIgbWFsIGV0d2FzIHVlYmVyYXJiZWl0ZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0IChHcmltbWJvcm4sICA1LiBEZXogMTk5NiwgMTc6Mzg6NTEpOgpbVmVybGVndCB2b24gYWxsZ2VtZWluZXMsIExhYmVyLCAgNS4gRGV6IDE5OTYsIDE3OjI5OjEzXToKRWlubGFkdW5nIHp1ciBIb2NoemVpdCB2b24gQXVyb3JhIHVuZCBMYWJlcgoKQWxsZSBkaWUgTHVzdCBhdWYgZWluZSBIb2NoemVpdCBoYWJlbiwgc2luZCBhbSBNb250YWcgZGVuIDkuMTIuOTYgaGVyemxpY2gKZWluZ2VsYWRlbi4KClNpZSBmaW5kZXQgdW0gOS4wMCBVaHIgdm9ybWl0dGFncyBpbiBkZXIgVHJhdWthcGVsbGUgdm9uIE5pYmVsaGVpbSBzdGF0dC4KCkFuc2NobGllc3NlbmQgZmluZGV0IG5vY2ggZWluZSBrbGVpbmUgSG9jaHplaXRzZmVpZXIgc3RhdHQuCgpXaXIgZnJldWVuIHVucyBzY2hvbiBhdWYgZXVlciBrb21tZW4KCkRhcyBCcmF1dHBhYXIgQXVyb3JhIHVuZCBMYWJlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoR3JpbW1ib3JuLCAgNS4gRGV6IDE5OTYsIDE3OjQwOjMyKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NDk4MDM5MzEKfiMhIHRpZD04NDk4MDM5MzEKCkRhcyB3YXIgbnVuIGFiZXIgd2lya2xpY2ggdW5kIHdhaHJoYWZ0aWcgZWluZSBBbnplaWdlLgpLaW5uZXJzLCB3YXMgZGVua3QgaWhyIHdpZXNvIGVzIFVlYmVyc2NocmlmdGVuIGZ1ZXIgZGllIFJ1YnJpa2VuIGluIGRlciBtcGEKZ2lidD8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2VuJ3MgaW50ZXJlc3NpZXJ0IChUb2V0ZXIsICA5LiBEZXogMTk5NiwgMTk6MjA6MTIpOgpIaSwKZGEgbWlyIGF1ZmdlZmFsbGVuIGlzdCwgZGFzcyBpY2ggbWljaCBiZWltIExlc2VuIGRlciBaZWl0dW5nIGluIGxldHp0ZXIKWmVpdCBudXIgbm9jaCB1ZWJlciBkaWUgaW5oYWx0c2xvc2UgU2VsYnN0ZGFyc3RlbGx1bmcgZGVyIG1laXN0ZW4gQXV0b3JlbiAKYWVyZ2VyZSwgemllaGUgaWNoIGpldHp0IGRpZSBLb25zZXF1ZW56ZW4gdW5kIHplcnJlaXNzZSBtZWluZSBtcGEuIEljaCAKZGVua2UgbmljaHQsIGRhc3MgbWlyIGluIFB1bmt0byBrb25zdHJ1a3RpdmVuIEJlaXRyYWVnZW4gdmllbCBlbnRnZWh0LCAKZGllIHd1cmRlbiBuYWVtbGljaCBzZWl0IGVoIHVuZCBqZSBwZXIgbWFpbCBnZXNjaGlja3QuCiAgVG9ldGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogd2VuJ3MgaW50ZXJlc3NpZXJ0IChTdXNoaSwgIDkuIERleiAxOTk2LCAxOToyMTozNyk6Cn4jISBybj1Ub2V0ZXIgcnQ9ODUwMTU1NjEyCn4jISB0aWQ9ODUwMTU1NjEyClVuZCB3byBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIERlaW5lbSBBcnRpa2VsIHVuZCBkZXIgImluaGFsdHNsb3NlbgpTZWxic3RkYXJzdGVsbHVuZyBkZXIgbWVpc3RlbiBBdXRvcmVuIj8gS2xpbmd0IGltbnNobyByZWxhdGl2IGFlaG5saWNoLi4uCgpObyByZWFsIG9mZmVuY2UgaW50ZW5kZWQuCgpTdXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHdlbidzIGludGVyZXNzaWVydCAoQXNtb2RpcywgIDkuIERleiAxOTk2LCAyMDozMDo1Nyk6Cn4jISBybj1Ub2V0ZXIgcnQ9ODUwMTU1NjEyCn4jISB0aWQ9ODUwMTU1NjEyClNjaGFkZSwgZGFzcyBkdSBkaWVzZW4gQXJ0aWtlbCBqZXR6dCBuaWNodCBsZXNlbiBrYW5uc3QuCgpPYndvaGwsIC4uLiBzbyB3aWNodGlnIGlzdCBkZXIgYXVjaCBuaWNodC4KV29sbHRlIG51ciBtYWwgd2llZGVyIGV0d2FzIHNjaHJlaWJlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgRmVzdHBsYXR0ZS4uLiAoSGFyLCAxMC4gRGV6IDE5OTYsIDEwOjIwOjU0KToKTWFobHplaXQhCkljaCBoYWV0dGUgZ2VybmUgZWluZSAyLDEgR0IgSUJNLURvcnMtUGxhdHRlLCB1bmQgZGFzIG1vZWdsaWNoc3Qgc2NobmVsbC4gRGFzCnByb2JsZW0gaXN0IG51biwgZGFzcyBkaWUgbWVpc3RlbiBIYW5lZGxlciBhdWNoIGdlcm5lIGVpbiBwYWFyIFBsYXR0ZW4KaGFldHRlbiwgdW0gbWlyIGRpZXNlIHp1IHZlcmthdWZlbi4gV2VyIHdlaXNzIGFsc28sIHdvIGljaCBlaW5lIGhlcmJla29tbWU/CgpUaGFueCBpbiBhZHZhbmNlCgpIYXIuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHdlbidzIGludGVyZXNzaWVydCAoUHJhLCAxMC4gRGV6IDE5OTYsIDEyOjE4OjQwKToKfiMhIHJuPVRvZXRlciBydD04NTAxNTU2MTIKfiMhIHRpZD04NTAxNTU2MTIKTWljaCBpbnRlcmVzc2llcnQncyBuaWNodC4KClByYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB3ZW4ncyBpbnRlcmVzc2llcnQgKExvY28sIDEwLiBEZXogMTk5NiwgMTQ6MjA6MzYpOgp+IyEgcm49VG9ldGVyIHJ0PTg1MDE1NTYxMgp+IyEgdGlkPTg1MDE1NTYxMgpJY2ggZW1wZmVobGUgaW4gc29sY2hlbiBGYWVsbGVuICdoaWxmZSBtcGEnLiBFcyBnaWJ0IGRhIDIgbnVldHpsaWNoZSBCZWZlaGxlOgpiZXN0ZWxsZSA8cnVicmlrPiBhYgppZ25vcmllcmUgdGhyZWFkCgpTb3ZpZWwgYWxzIFRpcCBhbSBSYW5kZSwgZGEgamEgZGFzIExlc2VuIHZvbiBIaWxmc3NlaXRlbiBub2NoIG5pZSBNb2RlIHdhci4uLgoKLSBMb2NvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZWQgQWxlcnQgISAoWnVlcmlsZXUsIDExLiBEZXogMTk5NiwgMDA6NTY6NTYpOgpIaSwKTnVuIHdpZSBpY2ggc2VoZSBiaW4gaWNoIHdvaGwgbmljaHQgZGVyIGVpbnppZ2UgZGVyIFJlZCBBbGVydCAoQ29tbWFuZCAmCkNvbnF1ZXIgMikgaW0gUmVnYWwgc3RlaGVuIGdlc2VoZW4gaGF0LiBVbmQgc2ljaCBkYXMgVGVpbCBuYXR1ZXJsaWNoIHNvZm9ydApnZWthdWZ0IGhhdC4KTWljaCB3dWVyZGUgZXVyZSBlcmZhaHJ1bmdlbiBtaXQgZGllc2VtIG5ldWVuIFN1cGVyLVN0cmF0ZWdpZXNwaWVsIHd1bmRlcm4gdW5kCndpZSBpaHIgZXMgaW0gdmVyZ2xlaWNoIG1pdCBkZW0gZXJzdGVuIFRlaWwgYmV3ZXJ0ZXQuIApNaXIgZ2VmYWVsbHQgZXMgc2VociBndXQsIGF1Y2ggd2VubiB3ZW5pZ3N0ZW5zIGRpZSBkZXV0c2NoZSBWZXJzaW9uIGVpbmlnZQprbGVpbmUgRmVobGVyY2hlbiBhdWZ3ZWlzdC4gWi5iLiBzaW5kIGRpZSBFcm50ZWZhaHJ6ZXVnZSBudW4gbm9jaCBkb29mZXIgYWxzCmJlaW0gZXJzdGVuIFRlaWwsIHVuZCBkYXMgU3BpZWwgYXJ0ZXQgZGFoZXIgZXR3YXMgenVtCkJhYnlzaXR0ZW4tdWVidW5nc3Byb2dyYW1tIGF1cy4KTWljaCBzdG9lcnQgYXVjaCBldHdhcywgZGFzIGRpZSBBbGllcnRlbiB6dXIgZWluZXIgc2NobGVjaHRlcmVuCkJhc2lzdmVyZGVpdGlndW5nIGF1Y2ggbm9jaCBsZWljaHRlcmUgcGFuemVyIGRlciBTb3ZpZXR1bmlvbiB2b3J3ZWlzZW4uIEtsYXIKZGllIEdlc2NodWV0enR1ZXJtZSB1bmQgQnVua2VyJ3Mgc2luZCBndXQgZ2VwYW56ZXJ0IHVuZCBpbiBncm9zc2VuIE1lbmdlbgpzZWhyZ3V0IHp1IGdlYnJhdWNoZW4uIEFiZXIgYmVzb25kZXJzIGluIE11bHRpcGxheWVyLXNjaGxhY2h0ZW4gd2FlcmUgZGVyCmF1ZmJhdSBlaW5lciBndXRlbiBCYXNpc3ZlcnRlaWRpZ3VuZyBpbiBrdWVyemVyc3RlciBaZWl0IHByYWt0aXNjaGVyLgoKVWVicmlnZW5zLCB2ZXJzdWNodCBtYWwgaW4gZGVyIERhdGVpICJSZWRhbGVydC5pbmkiIGJlaW0gQWJzY2huaXR0CiJNdWx0aXBsYXllcidzIiAobWFuIG11c3Mgdm9yaGVyIG1hbCBlaW5lIE11bHRpcGxheWVyLVBhcnRpZSBnZXN0YXJ0ZXQgaGFiZW4KZGFzIGRpZXNlciBFaW50cmFnIGluIGRlciBEYXRlaSB2b3JoYW5kZW4gaXN0ISkgZ2VidCBpaHIgYmVpICJTSURFPTAiIGVpbgoiU0lERT03IiBlaW4uIE51biwgd2VubiBpaHIgZWluZSBNdWx0aXBsYXllciBzY2hsYWNodCBuZXUgc3RhcnRldCBzZWl0IGlociBhbHMKTGFuZCBkaWUgIlR1ZXJrZXkiLCBlcyBnaWVidCBub2NoICJTcGFuaWVuIiB1bmQgInZlcmJ1ZW5kZXRlIi4gV2FzIGRpZXMgZ2VuYXUKYmV3aXJrdCBhdWYgS3JhZnQsIFBhbnplcnVuZywga29zdGVuIHVuZCBnZXNjaHdpbmRpZ2tlaXQsIHdlaXNzIGljaCBsZWlkZXIKYXVjaCBuaWNodC4gSW50cmVzc2FudCB3YWVyZSB3ZW5uIGplbWFuZCBlaW5lbiBCZWZlaGwgd3Vlc3N0ZSB3byB3aWUgbWFuIGJlaW0KZXJzdGVuIFRlaWwsICJTSURFPTQiIGluIGRlciBDb25xdWVyLmluaSBlaW5nZWJlbiBrb25udGUgdW5kIG1hbiBrb2VubnRlIGJlaQpNdWx0aXBsYXllciBzY2hsYWNodGVuIGFsbGVzIGJhdWVuLiBBbHNvIEFsaWVydGVuIHVuZCBTb3ZpZXR1bmlvbiwgc29sY2hlCnNjaGxhY2h0ZW4gbWFjaHRlbiBuYWVtbGljaCBiZXNvbmRlcnMgU3Bhc3MuCgpBbHNvLCB0YXVzY2h0IG1pdCBtaXIgZXVyZSBFcmZhaHJ1bmdlbiBhdXMuLi4KCiAgICAgICAgICAgICAgICAgICAgICAgIFRzY2h1ZXNzIFp1ZXJpbGV1LCBkZXIgc2Nod2FyemUgRW5nZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZWQgQWxlcnQgISAoUm9jaHVzLCAxMS4gRGV6IDE5OTYsIDE1OjQyOjUyKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTg1MDI2MjIxNgp+IyEgdGlkPTg1MDI2MjIxNgpIbW0sIHdlcmRlIGljaCBnbGVpY2ggYW0gV29jaGVuZW5kZSBtYWwgdGVzdGVuLCBpY2gga29ubnRlIGVzCm5hZW1saWNoIGF1Y2ggbmljaHQgc3RlaGVubGFzc2VuIDopClVuZCBkYXNzIGRpZSBFcm50ZXIgbm9jaCBibG9lZGVyIHNlaW4gc29sbGVuIGFscyBiZWkgVGVpbCAxCm1vZWNodGUgaWNoIGRvY2ggZXJzdCBtYWwgbWl0IGVpZ2VuZW4gQXVnZW4gc2VoZW4sIGRlbm4gZGFzCmthbm4gaWNoIG1pciBudW4gd2lya2xpY2ggbmljaHQgdm9yc3RlbGxlbiB3aWUgZGFzIGdlaGVuIHNvbGwgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmVkIEFsZXJ0ICEgKEd1bGR1a2F0LCAxMS4gRGV6IDE5OTYsIDE1OjQ4OjEwKToKfiMhIHJuPVJvY2h1cyBydD04NTAzMTUzNzIKfiMhIHRpZD04NTAyNjIyMTYKCkRvY2gsIHNpZSBzaW5kIG5vY2ggYmxvZWRlciBnZXdvcmRlbiwgcm9jaHVzLiBCZWkgbWlyIGthbWVuIGVpbm1hbCB6d2VpCmhhcnZlc3RlciwgZWluZXIgdm9sbCBhdWYgZGVtIHdlZyB6dXIgcmFmZmluZXJpZSwgZGVyIGFuZGVyZSBsZWVyIGF1ZiBkZW0gd2VnCnp1bSBnb2xkLCBhdWYgdm9lbGxpZyBvZmZlbmVuIGdlbGFlbmRlIGF1ZmVpbmFuZGVyIHp1LCBhbHNvIHdpcmtsaWNoIGJlaWRlCnRvdGFsIHdhYWdlcmVjaHQgYXVmIGVpbmVyIGxpbmllIC4uLiB1bmQgd2FzIHBhc3NpZXJ0ZTogc2llIGJsaWViZW4gYmVpZGUga29wZgphbiBrb3BmIHN0ZWhlbi4gOigoCkdECi4tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBSZWQgQWxlcnQgISAoUm9jaHVzLCAxMS4gRGV6IDE5OTYsIDE1OjU0OjQ0KToKfiMhIHJuPUd1bGR1a2F0IHJ0PTg1MDMxNTY5MAp+IyEgdGlkPTg1MDI2MjIxNgpEYXMgaXN0IG1pciBiZWkgQ0MxIGFiZXIgYXVjaCBwYXNzaWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFJlZCBBbGVydCAhIChHdWxkdWthdCwgMTEuIERleiAxOTk2LCAxNzo1OTozOSk6Cn4jISBybj1Sb2NodXMgcnQ9ODUwMzE2MDg0Cn4jISB0aWQ9ODUwMjYyMjE2CkRhc3Mgc2llIGF1ZiBCcnVlY2tlbiBqZWRlciB3YXJ0ZXRlLCBkYXNzIGRlciBhbmRlcmUgbmFjaGdpYnQsIGRhcyB3YXIgbWlyCmJla2FubnQsIGFiZXIgZGFzcyBzaWUgZGFzIHNwaWVsY2hlbiBpbSBvZmZlbmVuIGZlbGQgdHJpZWJlbiwgZGFzIGhhdHRlIGljaApub2NoIG5pY2h0IGVybGVidC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFJlZCBBbGVydCAhIChadWVyaWxldSwgMTEuIERleiAxOTk2LCAyMzowNzozMik6Cn4jISBybj1HdWxkdWthdCBydD04NTAzMjM1NzkKfiMhIHRpZD04NTAyNjIyMTYKSGksCk5lIFJvY2h1cyBzaWUgc2luZCB3aXJrbGljaCBub2NoIGJsb2VkZXIuIERhcyB3YXMgR3VsZHVrYXQgc2FndCBzdGltbXQKdm9sa29tbWVuLCBpc3QgbWlyIGltIG9mZm5lbiBGZWxkIGF1Y2ggc2Nob24gb2VmdGVycyBQYXNzaWVydC4gSW0gQyZDMSBrYW5udGUKaWNoIGRhcyBudXIgdm9uIEJydWVja2VuIHVuZCBlbmdlIFBhZXNzZSBpbiBCZXJnZW4sIGFiZXIgbmljaHQgYXVmIGZyZWllbQpGZWxkLiBEYXp1IGVybnRlbiBzaWUgbmV1ZXJkaW5ncyBiZXNvbmRlcnMgZ2VybmUgaW4gd2VpdGVyIEZlcm5lLiBGcnVlaGVyCnN1Y2h0ZW4gc2llIEx1ZnRsaW5pZSBkYXMgbmFoZSBsaWVnZW5zdGUgRmVsZCwgaGV1dGUgZXJudGVuIHNpZSB3aWxkIGRyYXVmCmxvcywgZGEga29tbXQgZXMgdm9yIGRhcyBzaWUgbWVocmUgQmlsZHNjaGlybWUgd2VpdCB2b24gZGVyIEJhc2lzIGVpbiBrbGVpbmVzCkZlbGQgYWJlcm50ZW4sIHVuZCBlaW5lIEhhYXJlc2JyZWl0ZSBuZWJlbiBkZXIgQmFzaXMgbGllZ3QgZWluIHJpZXNzZW4gRmVsZAptaXQgRGlhbWFudGVuLgpCZWkgbWlyIGZ1aHIgZWluIEhhcnZlc3RlciBzb2dhciBpbiBkZW4gc2Nod2FyemVuIEJlcmVpY2ggcmljaHR1bmcgRmVpbmRiYXNpcywKbnVyIHdlaWwgbWVpbiBTcGlhbmFnZWZsdWd6ZXVnIGRvcnQgZXR3YXMgRXJ6IGF1ZmdlZGVja3QgaGF0LiBSdW5kIHVtIG1laW5lCmVpZ25lIEJhc2lzIGhhdCBlcyBhYmVyIHNlbGJlciByZWljaGxpY2ggZGF2b24uCk51biwgaW0gSGFuZGJ1Y2ggd2lyZCB6d2FyIGphIGpldHp0IGVyd2FlaG50IGRhcyBtYW4gYXVmIGRpZSBIYXJ2ZXN0ZXIKYXVmcGFzc2VuIG11c3MsIGFiZXIgZGFzIHNpZSBub2NoIGJsb2VkZXIgYWxzIGltIGVyc3RlbiBUZWlsIHNpbmQsIHN0ZWh0IGRhCm5pY2h0ID06KQoKVHNjaHVlc3MgWnVlcmlsZXUKClBzOiBudW4sIGRhIGdyb3NzZXMgaW50cmVzc2UgYW4gbmV1ZW4gS2FydGVuIGFuc2NoZWluZCBiZXN0ZWh0LCBrb3BpZXIgaWNoCmF1Y2ggbWVpbmUgendlaXRlIGlucyBEaXJla3RvcnkgL3BsYXllcnMvenVlcmlsZXUvUmVkQWxlcnQgaWNoIHd1ZW5zY2ggdmllbApzcGFzcyA9OikgdW5kIHRlaWx0IG1pciBldXJlIGVyZmFocnVuZ2VuIG1pdCAhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogUmVkIEFsZXJ0ICEgKE9ldHRpLCAxMS4gRGV6IDE5OTYsIDIzOjUzOjIzKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTg1MDM0MjA1Mgp+IyEgdGlkPTg1MDI2MjIxNgpIYWVoID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBUyBNRUdBU1BJRUwgSkVUWlQgQVVDSCBJTSBJTlRFUk5FVCAoR3JpbW1ib3JuLCAxMi4gRGV6IDE5OTYsIDEzOjQ0OjAwKToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBPb2VycHJ1cywgMTIuIERleiAxOTk2LCAxMzozMDo1NF06CkxldXRlLCBzY2hhdXQgZXVjaCBkb2NoIG1hbCBPT0VSUFJVUyBhbiA6aHR0cDovL3d3dy5oaXR6ZWwuY29tL29vZXJwcnVzCkVpbiBXSVJLTElDSCBndXRlcyBTUElFTCAhISEhISEhCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEQVMgTUVHQVNQSUVMIEpFVFpUIEFVQ0ggSU0gSU5URVJORVQgKEdyaW1tYm9ybiwgMTIuIERleiAxOTk2LCAxMzo0NDowNyk6Cn4jISBybj1Pb2VycHJ1cyBydD04NTAzOTM4NTQKfiMhIHRpZD04NTAzOTM4NTQKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBTdW5mbG93ZXIsIDEyLiBEZXogMTk5NiwgMTM6MzE6NTNdOgpMZXV0ZSBtYWNodCBtYWwgZWluIHRlbG5ldCBtdWQudW5pLW11ZW5zdGVyLmRlIApuaWNodCBudXIgZWluIGd1dGVzIFNwaWVsLCBTT05ERVJOIEVJTiBNRUdBR0VJTEVTIFNQSUVMIDopCgogICAgICAgICAgICAgICAgICAgIC0tPT09IGJsdWVtY2hlbiA9PT0tLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZ2d205NSAoU3VzaGksIDE1LiBEZXogMTk5NiwgMDc6MzU6MTYpOgpGdWVyIGFsbGUgV2luZG93cy1IYXNzZXIsIGRpZSBMaW51eCBiZW51dHplbjoKMi4wLjQzYSBnaWJ0IGVzIGluIGZ0cDovL21pdGFjMTEudWlhLmFjLmJlL3B1Yi4KU2llaHQgYXVzIHdpZSBXSU45NSwgYWJlciBzdHVlcnp0IG5pY2h0IGFiLi4uIEVyIGhhdCBqZXR6dCBzb2dhciBlaW4gIkxpbnV4OTUiCmF1ZiBkZXIgU3RhcnR0YXN0ZS4uLiAqa2ljaGVyKgoKU3VzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5FSU4gISAoT2V0dGksIDE1LiBEZXogMTk5NiwgMTY6NDk6MjEpOgpEaWVzIGlzdCBlaW4gb2ZmaXppZWxsZXIgQXVmcnVmICEhIQoKRGVyIFdvbHBpY2x1YiBEQVJGIG5pY2h0IHN0ZXJiZW4sIGdlaHQgYWxsZSB6dXIgbmFlY2hzdGVuIFZlcnNhbW1sdW5nIHVuZApzdGltbXQgZ2VnZW4gZGllIFNjaGxpZXNzdW5nIGRlcwpDbHVicywgc29uc3Qgd2lyZCBkaWUgRmdXIGFyYmVpdHNsb3MsIHVuZCBlaW4gRXJzYXR6IGlzdCBuaWNodCBpbiBTaWNodC4KCk9kZXIgc29sbHRlbiB3aXIgdW5zIGFsbGUgZ2VnZW4gZGVuIFpvbyB2b24gRHVyaWFuIHdlbmRlbiwgb2RlciBnbGVpY2gKZ2VnZW4gZGllIEVyem1hZ2llci4uLj8/PwoKQWJlciB0cm90eiBhbGxlbSwgZGllc2VyIENsdWIgaGF0IFRyYWRpdGlvbiB1bmQgbmVuIFpUIHVuZCBlaW5lIEFuc2NobGFnCmhpbnRlcgpTaWNoLCB1bmQgZWluZSB1YmVybmFobWUgZHVyY2ggYXVzZ2VmbGlwcHRlIFNlaGVyIHVuZCBNYWdpZXIuLi4KCipzZXVmeioKCkRlciBDbHViIGRhcmYgbmljaHQgc3RlcmJlbiwgenVlbmRldCBLZXJ6ZW4gYW4gYmlsZGV0IE1lbnNjaGVuLSBad2VyZ2VuLQpFbGZlbmtldHRlbiwgaG1tbSwgZGllIFp3ZXJnZSBhbSBiZXN0ZW4genVzYW1tZW5iaW5kZW4gdW5kIHVtIGRlbiBIYWxzCmhhZW5nZW4uLi47LSkpCgpPcmFnbmlzaWVydCBzcG9udGFuZSBEZW1vbnN0cmF0aW9uZW4sIHp1ZW5kZXQgZXVjaCBnZ2Zscy4gc2VsYmVyIGFuLCBibG9ja2llcnQKSGF1cHR2ZXJrZWhyc3dlZ2UsIHZlcnNlbmt0IFNjaGlmZmUsCnRvZXRldCBEaWRpIChhZWhoIGRhcyB3YXIgZmVobCBhbSBQbGF0emUsIGFiZXIgdHJvdHpkZW0gbmUgZ3V0ZSBJZGVlKS4KCkJveWtvdHRpZXJ0IGRpZSBIQWVuZGxlciB2ZXJrYXVmdCBhbGxlcyBhbiBtaWNoIHp1IHNwb3R0cHJlaXNlbiwgQVVGUlVIUgpHRVdBTFQgVU5EIFRFUlJPUi4uLgoKQWt0aW9uOiBXb2xwaSBkYXJmIG5pY2h0IHN0ZXJiZW4uLi4KCihBdXNzZXIgd2VubiBlciBtaXIgYW0gWmVoIG51Y2tlbHQgZGFzIFNjaGVpc3N2aWVoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5FSU4gISAoQm9ndXMsIDE2LiBEZXogMTk5NiwgMDk6NTU6MDQpOgp+IyEgcm49T2V0dGkgcnQ9ODUwNjY0OTYxCn4jISB0aWQ9ODUwNjY0OTYxCkRvY2ghCkxhc3N0IGRpZXNlbiB1bmdsdWVja3NlbGlnZW4gQ2x1YiBzdGVyYmVuLgpTY2hpY2t0IGFsbGUgRmFucG9zdCBhbiBCb2luZywgZGFtaXQgZXIgZGFzIER5bmFtaXQsIGFlaCBIb2VsbGVuZmV1ZXIgd2llZGVyCmZyZWlnaWJ0LCBkYW1pdCBkZXIgQ2x1YiBhdWNoIHJpY2h0aWcgc3RpbGVjaHQgaW4gZGllIEx1ZnQgZmxpZWd0IC0tIHdpZQpkYW1hbHMgYmVpIGRlbSBBdHRlbnRhdCEKQm9ndXMgLS0gaGF0IHNlaW5lbiBXb2xwZXJ0aW5nZXIgYW4gZGllIEh5ZHJhIHZlcmZ1ZXR0ZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBORUlOICEgKEJvaW5nLCAxNi4gRGV6IDE5OTYsIDE3OjMxOjQwKToKfiMhIHJuPUJvZ3VzIHJ0PTg1MDcyNjUwNAp+IyEgdGlkPTg1MDY2NDk2MQpIb2VsbGVuZmV1ZXIgZnJlaWdlYmVuPyBXYW5uIGhhYmUgaWNoIGRhcyBkZW5uIGdlc3BlcnJ0Pz4KT2RlciBoYWJlIGljaCB3YXMgZ2VhZW5kZXJ0IChhdXNzZXIgZGVtIE5hbWVuKT8KICBCb2luZwoKUFM6IE1hbiB3aXJkIGFsdCAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJQIEFhY2hlbiBJSUkgKEppbWRpZ3JpeiwgMTYuIERleiAxOTk2LCAxODoyNjowNSk6CkhvaSBNdWRkZXIsCgpBdWNoIHdlbm4gbWFuY2hlIGRlbmtlbiBpcmMgdW5kIGlyY2VyIGlzIGJsb2VkLCB1bmQKUmVsYXkgUGFydGllcyBzb3dpZXNvIGhpZXIgZWluIGtsZWluZXIgSGlud2Vpcy4KTGV0enRlcyBXRSB3YXIgZGllIFJQIEFhY2hlbiwgd2VyIHdpc3NlbiB3aWxsIHdhcyBhYmdpbmcKa2FubiBkaXZlcnNlIEJlcmljaHRlIGluIGRlLmNvbW0uY2hhdHN5c3RlbXMgbGVzZW4sIGV2dGwKbWFnIGphIGltIFNvbW1lciBkb2NoIHdlciBuYWNoIE11ZW5jaGVuIGtvbW1lbi4KCkdydWVzc2UsCiBKaW0gRGlHcml6IGFrYSBNci1TcG9ja0BJUkMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBmdndtOTUgKEZ5dCwgMTcuIERleiAxOTk2LCAwMDoyNjo1OCk6Cn4jISBybj1TdXNoaSBydD04NTA2MzE3MTYKfiMhIHRpZD04NTA2MzE3MTYKClc5NSBzdHVlcnp0IGRvY2ggYXVjaCBuaWNodCBhYi4gSWNoIGtlbm5lICduIHJlY2huZXIsIGRhIGxpZWd0IGRhcyBaZXVnCnNjaG9uIHNlaXQgTW9uYXRlbiBhdWYgaXJnZW5kbmVyIFBhcnRpdGlvbiBydW0gdW5kIG1hY2h0IGtlaW5lcmxlaSBTY2hhZGVuLi4uCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTkVJTiAhIChTYW5kaSwgMzAuIERleiAxOTk2LCAyMDoxMjozNyk6Cn4jISBybj1PZXR0aSBydD04NTA2NjQ5NjEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTA2NjQ5NjEKSWNoIHdvbGx0ZSBzY2hvbiBpbW1lciBtYWwgd2lzc2VuLCB3YXMgZGVyIFdPTFBFUlRJTkdFUiBGQU5DTFVCCnVlYmVyaGF1cHQgaXN0LiAKCk5hdHVlcmxpY2ggbW9lY2h0ZSBpY2ggZWluZSBhbnR3b3J0IGhhYmVuLgoKTUZHIFNBTkRJCgosCi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGZ2d205NSAoU2FuZGksIDMwLiBEZXogMTk5NiwgMjA6MTQ6MTYpOgp+IyEgcm49Rnl0IHJ0PTg1MDc3ODgxOCByZz1hbnplaWdlbgp+IyEgdGlkPTg1MDYzMTcxNgoKRGFzIFdJTjk1IG5pY2h0IGFic3R1ZXJ6dCBpc3Qga2xhciwgd2VubiBtYW4gZXMgbmljaHQgYW5zY2hhbHRldC4KCk1GRyBTYW5kaQoKLi4KLAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1Z3NidXJnZXIgUHVwcGVua2lzdGUgKFNhbmRpLCAzMC4gRGV6IDE5OTYsIDIwOjE2OjE1KToKfiMhIHJuPUphcmllbCBydD04NTE5MDY3MzEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTE5MDY3MzEKRXJzdGUgU3Ryb3BoZToKCkVpbmUgSW5zZWwgbWl0IHp3ZWkgYmVyZ2VuCnVuZCBkZW0gdGllZmVuIHdlaXRlbiBtZWVyCk1pdCB2aWVsIHR1bm5lbHMgdW5kIGdlbGVpc2VuCnVuZCBkZW4gZWlzZW5iYWhudmVya2VocgpudW4gd2llIG1hZyBkaWUgaW5zZWwgaGVpc3Nlbj8KcmluZ3NoZXJ1bSBpc3Qgc2Nob2VuZXIgc3RyYW5kCmplZGVyIHNvbGx0ZSBlaW5tYWwgcmVpc2VuCmluIGRhcyBzY2hvbmUgbHVtbWVybGFuZAoKc2FnZSAyLDMsIHVuZCA0IGthbm4gaWNoIG5pY2h0LgoKTUZHIFNhbmRpCgouLgosCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBmdndtOTUgKFN1c2hpLCAzMC4gRGV6IDE5OTYsIDIyOjM2OjUzKToKfiMhIHJuPVNhbmRpIHJ0PTg1MTk3MzI1NiByZz1hbnplaWdlbgp+IyEgdGlkPTg1MDYzMTcxNgpOVCA0LjAgcGxhZXR0ZXQgYWJlciBEZWluZSBQbGF0dGUsIHdlbm4gdWViZXIgMkdCIG1pdCBlaW5lciBQYXJ0aXRpb24gdW5kIGRhbm4KTlQgZ2Vsb2VzY2h0LiAKV2VubiBkYXMga2VpbiBGb3J0c2Nocml0dCBpc3QuCgpTdXNoaSAtIGZ1ZWhsdCwgd2llIGRpZSBQcm9kdWt0aXZpdGFldCBzdGVpZ3QuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXVnc2J1cmdlciBQdXBwZW5raXN0ZSAoTWV0aGVkcmFzLCAgMS4gSmFuIDE5OTcsIDA5OjM2OjIzKToKfiMhIHJuPVNhbmRpIHJ0PTg1MTk3MzM3NSByZz1hbnplaWdlbgp+IyEgdGlkPTg1MTkwNjczMQpOZWluLCB0dXQgbWlyIGxlaWQsIGRlbiBUZXh0IGhhYmUgaWNoIG5pcmdlbmRzLiBJY2ggaGF0dGUgaWhuIGF1Y2gKc2Nob24gbWFsIGhpZXIgZ2VzdWNodCBwZXIgQW56ZWlnZSBpbiBkZXIgTVBBLCBhYmVyIGtlaW5lciBrb25udGUgbWlyCmRhbWl0IGRpZW5lbi4KCiAgICAgICAgICAgICAgICBDYXJhZGhyYXMgLSBCZXJnIG9obmUgSW5zZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hcGdlbmVyYXRvcj8gKFNtdXJmLCAgMi4gSmFuIDE5OTcsIDAyOjEzOjU5KToKSWNoIGhhYmUgaGllciBlaW5lIERhdGVpIG1pdCBXZWdlbiwgekIgdm9uIFJhdW0gWCBnZWh0IGVzIG5hY2ggTm9yZGVuCnp1IFJhdW0gWSBldGMuCgpHaWIgZXMgaXJnZW5kd2FzLCBkYXMgZGFyYXVzIGVpbmUgZWluaWdlcm1hc3NlbiBhbnNlaGJhcmUgS2FydGUgZ2VuZXJpZXJ0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hcGdlbmVyYXRvcj8gKE1ldGhlZHJhcywgIDIuIEphbiAxOTk3LCAxODowNzo1OCk6Cn4jISBybj1TbXVyZiBydD04NTIxNjc2Mzkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKS2xhciwgd2VyZCBNYWdpZXIuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hcGdlbmVyYXRvcj8gKFNtdXJmLCAgMi4gSmFuIDE5OTcsIDIzOjIyOjA1KToKfiMhIHJuPU1ldGhlZHJhcyBydD04NTIyMjQ4Nzggcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKTmVlbmVlLCBpY2ggd2lsbCBtaXIga2VpbmUgZmVydGlnZW4gS2FydGVuIGFuZ3Vja2VuLiBJY2ggd2lsbCBhdXMgbWVpbmVyCkRhdGVpIChhdXMgZGVyIGljaCB2aWEgUHJvZ3JhbW0gZGVuIGt1ZXJ6ZXN0ZW4gV2VnIHZvbiBBIG5hY2ggQiBnZW5lcmllcmVuCmthbm4sIHp1bSBCZWlzcGllbCkgZWluZSBLYXJ0ZSBnZW5lcmllcmVuLCBkaWUgZWluaWdlcm1hc3NlbiB3YXMgYXVzc2FndCB1bmQKZGllIGljaCBtaXIgYW4gZGllIFdhbmQgbmFnZWxuIGthbm4uCgpJY2ggaGFiIGRhbWl0IHNjaG9uIHJ1bWdlc3BpZWx0LCBhYmVyIGRpZSBnYW56ZW4gT3J0ZSBhdXRvbWF0aXNjaCB6dSBwbGF6aWVyZW4KaXN0IGFsbGVzIGFuZGVyZSBhbHMgZWluZmFjaC4KCldlbm4gZXMgc293YXMgbmljaHQgc2Nob24gZ2lidCwga29lbm50ZW4gc2ljaCBkaWUgTGV1dGUsIGRpZSBzb3dhcyBhdWNoCmdlYnJhdWNoZW4ga29lbm5lbiB1bmQgZGllIG1pbmltYWwgQWhudW5nIGhhYmVuLCBtaXIgZWluZSBNYWlsIHNjaGlja2VuLi4/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWFwZ2VuZXJhdG9yPyAoUHJvbG9nLCAgMy4gSmFuIDE5OTcsIDA5OjIzOjAyKToKfiMhIHJuPVNtdXJmIHJ0PTg1MjI0MzcyNSByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQpXaWUgd2FlcnMgbWl0ICJQTEFUSU5FNjQiIHZvbiBEYXRhQmVja2VyIGZ1ZXIgQzY0LCB1bmQgZGFubiBBdXRvcGxhemllcmVuIHVuZApBdXRvcm91dGVuIDotKQoKUHJvbG9nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYXBnZW5lcmF0b3I/IChBY3JpbW9uLCAgNS4gSmFuIDE5OTcsIDE4OjM2OjM0KToKfiMhIHJuPVNtdXJmIHJ0PTg1MjI0MzcyNSByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQpEYXMgZnVua3Rpb25pZXJ0IG51ciBkYW5uIG9obmUgbmVubmVuc3dlcnRlIEtJLCB3ZW5uIGFsbGUgUmFldW1lIGdsZWljaCBncm9zegpzaW5kLCBnbGVpY2ggd2VpdCB2b25laW5hbmRlciBlbnRmZXJudCwgcXVhZHJhdGlzY2gsIHdlZGVyIGdlZHJlaHQgbm9jaAp2ZXJzY2hvYmVuLCBhbGxlIG51ciBpbiB6d2VpIERpbWVuc2lvbmVuIGFuZ2VvcmRuZXQsIHNwcmljaDogd2llIGRpZSBLYXJvcwplaW5lIEthcm9wYXBpZXJzIHNpbmQuCkFiZXIgc29sY2hlIEdlZ2VuZGVuIHNpbmQgbGFuZ3dlaWxpZy4KRHUgd2lyc3QgRGljaCBhbHNvIGRhcmF1ZiBlaW5zdGVsbGVuIG11ZXNzZW4sIGRhc3ogZHUgbWl0IHZlcm51ZW5mdGlnZW4KR2VnZW5kZW4gUHJvYmxlbWUgYmVrb21tZW4gd2lyc3QsIHdlaWwgZGllIFJhZXVtZSBzaWNoIHVlYmVybGFwcGVuIHd1ZXJkZW4Kb2RlciBlcyBBdXNnYWVuZ2UgaW4gKGF1ZiBkZW0gUGFwaWVyIHdlaXQgZW50ZmVybnRlKSBiZW5hY2hiYXJ0ZSBSYWV1bWUgZ2FlYmUuCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIgZmFlbmRlIGVzIGlkaW90aXNjaCwgd2VubiBkZXIgTWFya3RwbGF0eiB2b24gUG9ydApWYWluIGRpZXNlbGJlIERpbWVuc2lvbiBoYWV0dGUgd2llIGVpbiBXZWdzdHVlY2sgZHVyY2ggZGllIEViZW5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWFwZ2VuZXJhdG9yPyAoU211cmYsICA1LiBKYW4gMTk5NywgMTk6MzU6MTgpOgp+IyEgcm49QWNyaW1vbiBydD04NTI0ODU3OTQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKSWNoIHdlaXNzLCBkYXNzIHZlcm51ZW5mdGlnZSBnZWdlbmRlbiBuaWNodCBlaW5mYWNoIHNpbmQuCgpBbGxlcmRpbmdzIGlzdCBkYXMgUGxhemllcmVuIHZvbiBDaGlwcyBhdWYgZWluZXIgUGxhdGluZSB1bmQgZGFzIEF1dG9yb3V0ZW4Kdm9uIFdlZ2VuIHp3aXNjaGVuIGRpZXNlbiBhdWNoIHNlaXQgZWluaWdlbiBKYWhyZW4gU3RhbmQgZGVyIFRlY2huaWsuCkJyYXVjaHQgYXVjaCBrZWluZSBLSS4uLgpJY2ggd29sbHRlIGRhaGVyIGF1Y2ggZ2FyIG5pY2h0IGRpZSBSYWV1bWUgYWxsZSBzbyBncm9zcyB6ZWljaG5lbiwgZGFzcwpzaWUgc2ljaCBnZW5hdSBiZXJ1ZWhyZW4sIHNvbmRlcm4gZGllIFRlaWxlIHNvIGF1ZiBlaW5lciBLYXJ0ZSBwbGF6aWVyZW4sCmRhc3Mgc2llIHNpY2ggbmljaHQgdWViZXJsYXBwZW4gdW5kIGRhc3MgZGllIFZlcmJpbmR1bmdlbiB6d2lzY2hlbiBpaG5lbgptb2VnbGljaHN0IGtyZXV6dW5nc2ZyZWkgc2luZC4gV2llIGF1ZiBlaW5lciBQbGF0aW5lIGViZW4uCgpBdXMgZGVuIE1hcHMga2FubiBtYW4gZGllIExpc3RlIHZvbiBWZXJiaW5kdW5nZW4gdW5kIGRpZSBMYWdlIGRlcgoiQW5zY2hsdWVzc2UiIGdlbmVyaWVyZW4gdW5kIGVpbiBwYWFyIFJhZXVtZSBzdHJhdGVnaXNjaCBwbGF6aWVyZW4gYnp3Lgppbml0aWFsIGFub3JkbmVuLCBkZXIgUmVzdCBzb2xsdGUgZGVyIEF1dG9yb3V0ZXIgZXJsZWRpZ2VuLiBTbyB3aWUgYmVpCmVpbmVtIFBsYXRpbmVubGF5b3V0cHJvZ3JhbW0gaGFsdCBhdWNoLgoKTWFsIHNlaGVuIG9iIHNpY2ggZGFmdWVyIHdhcyBpbSBOZXR6IGZpbmRlbiBsYWVzc3QuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1hcGdlbmVyYXRvcj8gKFBhdHJ5biwgIDUuIEphbiAxOTk3LCAyMDo0Nzo0MSk6Cn4jISBybj1TbXVyZiBydD04NTIyNDM3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKZGFzIGlzdCBsZWlkZXIga2F1bSBtb2VnbGljaCwgaW5zYmVzb25kZXJlIGRlIG9mdCBpbmtvbnNpc3RlbnplbiBhdWZ0cmV0ZW4sCnJhZXVtZSBzaW5kIHVudGVyc2NoaWVkbGljaCBncm9zcywgdWViZXJzY2huZWlkZW4gc2ljaCB1LnMudy4KaWNoIGhhYiBuZW4gbWFwcGVyIGdlc2NocmllYmVuLCBkZXIgdm9uIGRlciBha3R1ZWxsZW4gcG9zaXRpb24gYXVzIGFsbGUKdW1nZWJlbmVuIHJhZXVtZSBhdWZtYWx0LCBlciB2ZXJzYWd0IGFsbGVyZGluZ3Mgd2VnZW4gb2JlbmdlbmFubnRlcgpwcm9ibGVtZSBudXIgYWxsenVvZnQKCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE1hcGdlbmVyYXRvcj8gKERhbmNlciwgIDYuIEphbiAxOTk3LCAwMTo0NjozOSk6Cn4jISBybj1QYXRyeW4gcnQ9ODUyNDkzNjYxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5ClBhdHJ5bi4uLgpkYXMgbGllZ3QgbGVpZGVyIGFuIERlaW5lbSBQcm9ncmFtbSA6LSkKTWVpbiBNYXBwZXIgZnVua3Rpb25pZXJ0IHd1bmRlcnZvbGwsIHdlaWwgZGllIGVudGd1ZWx0aWdlIEthcnRlIGluIG1laHJlcmVuClNjaHJpdHRlbiBnZW5lcmllcnQgd2lyZC4gRGllIEFsZ29yaXRobWVuIGRhenUKZ2lidCBlcyB1ZWJyaWdlbnMgaW4gamVkZW0gYnJhdWNoYmFyZW4gZm9ydGdlc2Nocml0dGVuZW4gQnVjaCB6dW0gVGhlbWEuIFVuZApiZXZvciBGcmFnZW4ga29tbWVuOgpkYXMgUHJvZ3JhbW0gbGFldWZ0IHVudGVyIFdpbjk1ICh1bmQgd2lyZCB2b24gbWlyIFNJQ0hFUiBuaWNodCBrb252ZXJ0aWVydAp3ZXJkZW4pIHVuZCBpc3QgaW0gTW9tZW50IG5vY2ggbmljaHQgenUgaGFiZW4sCndlaWwgaWNoIGdlcmFkZSBlaW5lbiBNRy1DbGllbnQgdW5kIGVpbiBFZGl0b3IvRlRQLVBsdWdpbiBmdWVyIE1hZ3MKZHJ1bWhlcnVtYmF1ZS4gR2VidCBtaXIgbm9jaCAKendlaSwgZHJlaSBKYWVocmNoZW4sIElociB3aXNzdCBqYS4uIG1laW5lIFByb2pla3RlIGJyYXVjaGVuIGltbWVyIFplaXQuIDstKQoKRGFuY2VyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTWFwZ2VuZXJhdG9yPyAoUGF0cnluLCAgNi4gSmFuIDE5OTcsIDAxOjUzOjQzKToKfiMhIHJuPURhbmNlciBydD04NTI1MTE1OTkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKZGEgZGllIGthcnRlIG51ciBuZSBhc2NpaS1ncmFmaWsgZXJ6ZXVndCwgZXJ1ZWJyaWd0ZSBzaWNoIGRlciBhdWZ3YW5kIDopCmljaCBoYWIgbGVpZGVyIGF1Y2ggZWluIHdlbmlnIGdyYXBoZW50aGVvcmllL29wdGltaWVydW5nIGdlaGFidCAoc2V1ZnopCnVuZCB3ZWlzcywgZGFzIGVzIG1vZWdsaWNoIGlzdCwgZGEgbm9jaCB3YXMgZHJhbiB6dSBtYWNoZW4KZGEgaWNoIGFiZXIgYmVyZWNodGlndGUgendlaWZlbCBoZWdlLCBkYXMgZGllc2VzIHRlaWwgbWFsIHp1Z2VsYXNzZW4gd2lyZCwKc3RlY2sgaWNoIGRhIGxpZWJlciBuaWNodCBub2NoIG1laHIgYXJiZWl0IHJlaW4gOykKCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IE1hcGdlbmVyYXRvcj8gKFd1cnplbCwgIDYuIEphbiAxOTk3LCAwMTo1NDo1NSk6Cn4jISBybj1QYXRyeW4gcnQ9ODUyNTEyMDIzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5CndpZXNvIGhhc3QgZHUgendlaWZlbD8gYWxzIG1hZ2llcnRvb2wgaXN0IGRhcyBkb2NoIG9rIDopCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IE1hcGdlbmVyYXRvcj8gKERhbmNlciwgIDYuIEphbiAxOTk3LCAwMjozNjowOSk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODUyNTEyMDk1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5Ci4uLmVzIGlzdCBzbyBnZWRhY2h0LCBkYXNzIGR1IGF1ZiBlaW5lbSBmZW5zdGVyLCBkYXMgZGllIGthcnRlIGJlaW5oYWx0ZXQgZGVuCnppZWxyYXVtIGFua2xpY2tzdCAoZGVuCkR1IGR1cmNoIHpvb21lbiwgZHJlaGVuLCBzdGljaHdvcnRzdWNoZSwgZXRjIGV0YyBhdXNmaW5kaWcgbWFjaGVuIGthbm5zdCkgdW5kCmRlaW4gY2hhcmFrdGVyIGRhbm4KaGluZmxpdHp0Li4uIGFsc28gbml4IG1pdCBhc2NpaSBvZGVyIHNjaG5pY2tzY2huYWNrLiA6KSBXYWVyZSBmdWVyIFNwaWVsZXIKendhciBudWV0emxpY2guLiBkYSBJaHIKYWJlciBzb2dhciB1bSBFdXJlIFdlZ2Vza3JpcHRzIGthZW1wZmVuIG11ZXNzdCwgYmV6d2VpZmVsZSBpY2gsIGRhc3MgZXMKenVsYWVzc2lnIHNlaW4gd2lyZC4KCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IE1hcGdlbmVyYXRvcj8gKFp1ZXJpbGV1LCAgNi4gSmFuIDE5OTcsIDA0OjA5OjU5KToKfiMhIHJuPURhbmNlciBydD04NTI1MTQ1Njkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKSGksCk51biwgaWNoIGZhZW5kIGVpbmUgQXV0b21hcHBpbmcgS2FydGUgd2llIGVzIHNpZSB6LmIuIGluIEFuY2llbnQgQW5ndWlzaCBnaWVidApzZWhyIHByYWt0aXNjaC4gV2VubiBtYW4gc28gZWluIFRlaWwgYmVpIHNpY2ggaGF0LCB3ZXJkZW4gZGFydWYgU3RyYXNzZW4sCkdlYmlyZ2UsIERvdW5nZW5zIHVuZCBhbmRlcmUgRGluZ2Ugd2llIEdpbGRlbiBvZGVyIFN0YWVkdGUgZWluZ2V6ZWljaG5ldCwgdW5kCkR1IHdpcnN0IGltbWVyIGluIGRlciBNaXR0ZSBkZXIgS2FydGUgZGFyZ2VzdGVsbHQuIE51bmphLCBzbyBwcmFrdGlzY2ggd2llIGRhcwpUZWlsIHdhZXJlLCBrYW5uIGljaCBtaXIgbmljaHQgdm9yc3RlbGxlbiBkYXMgc293YXMgaGllciBlaW5nZWJhdXQgd3VlcmRlLgpBbHNvIHRyYWV1bSBpY2ggbWFsIGV0d2FzIHdlaXRlciA9OikKClRzY2h1ZXNzLi4gICAgIFp1ZXJpbGV1LCBET00gb2YgU0FUQU5BUyAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBNYXBnZW5lcmF0b3I/IChTbXVyZiwgIDYuIEphbiAxOTk3LCAwOToxODo1Nik6Cn4jISBybj1adWVyaWxldSBydD04NTI1MjAxOTkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKRGFzIE1HIG11c3MgZGEgZG9jaCBnYXJuaXggdW50ZXJzdHVldHplbi4gS2FubiBhbGxlcyBkZXIgQ2xpZW50LgoKTWVpbmVyIE1laW51bmcgbmFjaCBzaW5kIFdlZ3NrcmlwdGUgKGEpIGhhcm1sb3MgdW5kIChiKSB6dW0gU3BpZWwgZWNodApudWV0emxpY2guIChXZW5uIHNpZSBkYXp1IGRhIHNpbmQsIHVtIHZvbiBBIG5hY2ggQiB6dSBrb21tZW4sIHVuZCBuaWNodCwKYWxsZSBYWCBaYXViZXJ0cmFlbmtlIGFienVrbGFwcGVybi4pIAoKVW5kIG9iIGljaCBtZWluZSBLYXJ0ZSBwZXIgSGFuZCBtYWxlIG9kZXIgc2llIHZvbiBlaW5lbSBQcm9ncmFtbSBiYXVlbiBsYXNzZSwKaGFsdGUgaWNoIGF1Y2ggZnVlciBrZWluZW4gZ3Jvc3NlbiBVbnRlcnNjaGllZCwgYXVzc2VyIGRhc3MgaWNoIG1pY2ggYmVpCmxldHp0ZXJlciBWZXJzaW9uIGF1ZiBkYXMgU3BpZWwga29uemVudHJpZXJlbiBrYW5uIHVuZCBuaWNodCBpbW1lciB6d2lzY2hlbgpCaWxkc2NoaXJtIHVuZCBQYXBpZXIgdW1zY2hhbHRlbiBtdXNzICh3byB3YXIgbm9jaCBnbGVpY2ggZGVyIEJsZWlzdGlmdD8KVW5kIGRlciBSYWRpZXJndW1taT8gVW5kIHdlbGNoZXIgZGllc2VyIE4gUmFldW1lIGhhdCBqZXR6dCBkZW4gV2Fzc2VyZmFsbD8/KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTWFwZ2VuZXJhdG9yPyAoUGF0cnluLCAgNi4gSmFuIDE5OTcsIDExOjIxOjE4KToKfiMhIHJuPVd1cnplbCBydD04NTI1MTIwOTUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKb2VoLi4uZnVlciBtYWdpZXIgc2NocmVpYiBpY2ggZG9jaCBuaXgsIGhvZWNoc3RlbnMgaW5kaXJla3QgYW4gZGVyIG11ZGxpYiwgdW5kCmRhcyBhdWNoIG5pY2h0IGhpZXIgOykKCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBNYXBnZW5lcmF0b3I/IChIYXRlLCAgNi4gSmFuIDE5OTcsIDEyOjM4OjE3KToKfiMhIHJuPVNtdXJmIHJ0PTg1MjUzODczNiByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQpOYWphLCBhYmVyIG5lIHpvb20gdW5kIGRyZWggdW5kIHNvbnN0d2FzLUthcnRlIGlzdCBsYW5nd2VpbGlnLiBEYSAKbWFsIGljaCBsaWViZXIgc2VsYmVyLgpVbmQgZWluZW4gTUFQIEdlbmVyYXRvciBnaWJ0cyBzY2hvbiBld2lnIGxhbmdlIDstKSBEZXIgZ2VuZXJpZXJ0IGVpbmUKZWluZmFjaGVzCkZvcm1hdCB1bmQgaWNoIGhhYmUgdm9uIGRlbSBuZSBLYXJ0ZSBiZWkgbWlyIGhhZW5nZW4uCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBdWdzYnVyZ2VyIFB1cHBlbmtpc3RlIChLcmV0ZWssICA2LiBKYW4gMTk5NywgMTI6NDU6MzYpOgp+IyEgcm49QXNtb2RpcyBydD04NTE5NjQ4MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTE5MDY3MzEKS2luZHNrb3BmIEtyZXRlSyBoYXQgZGllIENEIGF1Y2guCgoKICAgICAgIHwgLyAgfFwgIHwtLSAgLS0tICB8LS0gIHwgLwogICAgICAgfDwgICB8LyAgfC0gICAgfCAgIHwtICAgfDwKICAgICAgIHwgXCAgfFwgIHwtLSAgIHwgICB8LS0gIHwgXAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQXVnc2J1cmdlciBQdXBwZW5raXN0ZSAoQ2FyYWRocmFzLCAgNi4gSmFuIDE5OTcsIDEyOjUxOjE2KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODUyNTUxMTk0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUxOTA2NzMxCkRhbm4gc2NocmVpYiBlbmRsaWNoIGRlbiBUZXh0IGF1ZiwgWndlaXRpZSEKKnZlcmRvbm5lcioKCiAgICAgICAgIEhhY2hqZWgsIDJ0aWVzIHZvbiAydGllcyBzaW5kIGllIHNjaGxpbW1zdGVuLiAqc2V1ZnoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYXBnZW5lcmF0b3I/IChGeXQsICA3LiBKYW4gMTk5NywgMTg6MjY6MTEpOgp+IyEgcm49U211cmYgcnQ9ODUyMjQzNzI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5CkhtLCBlcyBnaWJ0IHNvd2FzLiBGcmFnIG1hbCBUYW50ZSBBbHRhIFZpc3RhIG5hY2ggJ3BsYW5hciBlbWJlZGRpbmcKb2YgZ3JhcGhzJywgZGEgZ2liYmV0IGhvY2h3aXNzZW5zY2hhZnRsaWNoZSBBYmhhbmRsdW5nZW4gZGF6dS4gV2VubgpEdSBkYW5uIG5vY2ggdmVybGFuZ3N0LCBkYXNzIGRlciBXZWcgbmFjaCBOb3JkZW4gZWluaWdlcm1hc3NlbiBzZW5rcmVjaHQKenUgZGVtIFdlZyBuYWNoIE9zdGVuIHN0ZWh0LCBoYXN0ZSBEZWluZW4gRHIuIHJlci4gbmF0LiBzbyBndXQgd2llCmluIGRlciBUYXNjaGUgOy0pCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogTWFwZ2VuZXJhdG9yPyAoTWFyaXRhLCAgOS4gSmFuIDE5OTcsIDAwOjM1OjAyKToKfiMhIHJuPUhhdGUgcnQ9ODUyNTUwNjk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5CkhvZXJ0IHNpY2ggaW50ZXJlc3NhbnQgYW4gOi0pCkVyemFlaGwgbWVociBIYXRlLCB3YXMgaXN0IGRhcyBmdWVyIGVpbiBQcm9ncmFtbSAoTFBDIG9kZXIgdW50ZXIKVW5peC9ET1MvV2luLy4uLikgV28gYmVrb21tdCBtYW4gZXMgYnp3LiB3ZW5uIGVzIFRlaWwgZGVyIE11ZGxpYiBpc3QsCmV4cG9ydGllcnQgaWhyIGVzLi4uIEZyYWdlbiB1ZWJlciBGcmFnZW4uIE9rLCBIYXRlLCBEdSBoYXN0IGRlbiBrbGVpbmVuIEZpbmdlcgpnZWdlYmVuLCBqZXR6dCB3b2xsZW4gd2lyIGRpZSBIYW5kIDotKQpNYXJpdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBNYXBnZW5lcmF0b3I/IChIYXRlLCAgOS4gSmFuIDE5OTcsIDEwOjM1OjExKToKfiMhIHJuPU1hcml0YSBydD04NTI3NjY1MDIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKQWxzbyBiaXNoZXIgZ2Vob2VydCBkYXMgenUgInJlc3RyaWN0ZWQgY29kZSIgOy0pCkRlciBNYXBwZXIgaXN0IGluIExQQywgZGEgbWFuIGRhIGFtIGJlc3RlbiBkaWUgTGFuZHNjaGFmdCBhYmdyYXNlbiBrYW5uLgpFciBlcnpldWd0IGVyc3RtYWwgd2FzIGludGVybmVzIHVuZCBzY2hyZWlidCBkYW5uIGVpbmUgQmVzY2hyZWlidW5nc2RhdGVpCmRpZSB3aXJkIGRhbm4gdm9uIGVpbmVtIHNpbXBsZW4gYXdrIHNjcmlwdCBpbiBQb3N0U2NyaXB0IHVtZ2VzZXR6dC4KRGEgZGVyIE1hcHBlciBhYmVyIG1hcHMgbWl0IGZpbGVuYW1lbiB1bmQgc2VociBnZW5hdSBlcnpldWd0IHdpcmQKZGVyIG5pY2h0IGFuIFNwaWVsZXIgZ2ViZW4sIGFiZXIgd2VyIGludGVyZXNzZSBoYXQgc2VpbiBlaWdlbmVzIE1VRAp6dSBtYXBwZW4ga2FubiBtaWNoIGphIGZyYWdlbi4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogTWFwZ2VuZXJhdG9yPyAoQWNyaW1vbiwgIDkuIEphbiAxOTk3LCAxNzo0ODoyNyk6Cn4jISBybj1IYXRlIHJ0PTg1MjgwMjUxMSByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQpXYWFhaCEgOi0oCkhlaXN6dCBkYXMsIGlociBNYWdpZXIgcHJvZ2d0IGpldHp0IG51ciBub2NoIGxhbmd3ZWlsaWdlIEthcm9tdXN0ZXItR2VnZW5kZW4/CgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVybGF1YnNnZXBsYW5lIChTZW1pcmEsICA5LiBKYW4gMTk5NywgMTk6MTM6MDApOgoKSGFsbG8sIG1laW5lIGxpZWJlbiBLbnVkZGVsb3BmZXIuLi4KCkljaCBwbGFuZSBtYWwgd2llZGVyIFVybGF1Yi4uLnVuZCBzdWNoZSBkcnVtIGFsbGVzIHdhcyBpY2ggYW4gSW5mb3MgYmVrb21tZW4Ka2FubiB6dW0gVGhlbWEgPklybGFuZDwuCgpEYXMgZ2FuemUgc3RlaWd0IGVyc3QgTWl0dGUgQXVndXN0LCBpc3QgYWxzbyBsZWlkZXIgbm9jaCBhcmcgd2VpdCB3ZWcsIGFiZXIKZGFzIGxhZXNzdCB3ZW5pZ3N0ZW5zIFplaXQgZnVlciBncnVlbmRsaWNoZXMgaGVydW1nZXBsYW5lLi4uCgpHZXBsYW50IGlzdCBlaW5lIFRvdXIgdm9uIGV0d2EgMyBXb2NoZW4gbWl0IEF1dG8sIFplbHQgdW5kIDMgTGV1dGVuCnNlbGJzdHZlcnNvcmdlbmRlcndlaXNlLiBXZXIgYWxzbyBUaXBzIHVuZCBUcmlja3MgZnVlciBtaWNoIGhhdCwgbWljaAphYnNjaHJlY2tlbiBvZGVyIHdhcm5lbiwgbmV1Z2llcmlnIG1hY2hlbiBvZGVyIGF1Y2ggZWluZmFjaCBudXIgbWVpbmVuCkJyaWVma2FzdGVuIG1pdCBtYWlscyB6dXNjaHVldHRlbiB3aWxsLi4ubWFpbCBhbiBtaWNoIDopCgpEYW5rc2Nob2VuIHVuZCAqa251ZGRlbHMqCgpTZW1pcmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE0OiBNYXBnZW5lcmF0b3I/IChEYW5jZXIsIDEwLiBKYW4gMTk5NywgMDA6NTc6MDYpOgp+IyEgcm49QWNyaW1vbiBydD04NTI4Mjg1MDcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKLi4ud2llIHNjaG5lbGwgendlaSBKYWhyZSB2ZXJnZWhlbiBrb2VubmVuLi4uCgpNaXQgZGVtIFdpbjk1LU1hcGdlbmVyYXRvciBoYXQgZXMgbnVuIGRvY2ggbmljaHQgc28gbGFuZ2UgZ2VkYXVlcnQsIHdpZSBpY2gKenVlcnN0IGdlZGFjaHQgaGFiZS4gRGVyIENsaWVudCAKZnVua3Rpb25pZXJ0IChhbiBzaWNoKSBzY2hvbiByZWNodCBndXQsIGRhcyBGVFAgZnVua3Rpb25pZXJ0LCBkYXMgVGVsbmV0IGlzdAphdWNoIG5vY2ggbmljaHQgYWJnZXNjaG1pZXJ0IHVuZCBuZXVlIFJhZXVtZSB3ZXJkZW4gd3VuZGVyc2Nob2VuIGluIGRpZQp2b3JoYW5kZW5lIEthcnRlIGVpbmdlZnVlZ3QsIHdlbGNoZSBkYXJhdWZoaW4gZ2dmLiBuZXUgYmVyZWNobmV0IHdpcmQuIERpZQpLYXJ0ZSBzZWxic3QgaXN0IChhdWNoIHdlbm5zIGZ1ZXIgRGljaCBsYW5nd2VpbGlnIHNlaW4gbWFnLCBIYXRlIDspICkgZHJlaC0KdW5kIHpvb21iYXIsIGVpbnplbG5lIFJlZ2lvbmVuIGtvZW5uZW4gZWluLSB1bmQgYXVzZ2VzY2hhbHRldCB3ZXJkZW4sIEdlYmFldWRlCihzb2Zlcm4gYWxzIHNvbGNoZSBkZWtsYXJpZXJ0KSBlYmVuZmFsbHMuIFp1Z3V0ZXJsZXR6dCBpc3QgZGFzIEdhbnplIGF1Y2ggbm9jaAphdXNkcnVja2JhciB6dW0gdWViZXJzIEJldHQgaGFlbmdlbi4KCkpldHp0IHp1bSBIYWtlbjogRGFzIGF1dG9tYXRpc2NoZSAnSGlubGF1ZmVuJyB3ZW5uIG1hbiBlaW5lbiBSYXVtIGRpcmVrdCBhdWYKZGVyIEthcnRlIGFua2xpY2t0LCBmdW5rdGlvbmllcnQgbm9jaCBuaWNodCBzbyBfZ2Fuel8gcGVyZmVrdDsgYmVpIG1laW5lbQpsZXR6dGVuIFRlc3RsYXVmIGdpbmcgZGllIFNhY2hlIHNvIGF1cywgZGFzcyBtZWluIFJ1biB2b20gV2V0dHBhbGFzdCB6dXIKRnJpZWRob2Zza25laXBlIGRhbWl0IGVuZGV0ZSwgZGFzcyBpY2ggZnJvbnRhbCBnZWdlbiBad2Fja2VsbWFubnMgRWluZ2FuZ3N0dWVyCmdla25hbGx0IGJpbi4gSWNoIHdldHRlLCBkYXNzIGRhcyBQcm9ibGVtIG1hbCB3aWVkZXIgaW4gZWluZXIgZGllc2VyClByb2dyYW1temVpbGVuIHN0ZWNrdCwgZGllIGljaCBhbHMgbGV0enRlIGRhZnVlciBpbiBCZXRyYWNodCB6aWVoZW4gd2VyZGUuCgpJY2ggaGFsdGUgRXVjaCBhdWYgZGVtIExhdWZlbmRlbiwgd2VyZGUgZGVuIENsaWVudCBpbSBBdWdlbmJsaWNrIG51ciBhbgppbnRlcmVzc2llcnRlIE1hZ2llciAoZGVzIE1vcmdlbkdyYXVlbnMpIGFiZ2ViZW4uIEVpbmVuIFZvcnRlaWwgbXVzcyBlcyBqYQpoYWJlbiwgZGFzcyBtYW4gZGFyYXVmIHZlcnppY2h0ZXQsIEhJRVIgbmljaHQgbWVociB6dSBzcGllbGVuLiA7KQoKRGFuY2VyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTU6IE1hcGdlbmVyYXRvcj8gKEhhdGUsIDEwLiBKYW4gMTk5NywgMTM6MzI6NTMpOgp+IyEgcm49RGFuY2VyIHJ0PTg1Mjg1NDIyNiByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQpUamEsIHdlbm4gRHUgamV0enQgcG9ydGFiZWwgcHJvZ3JhbW1pZXJ0IGhhZXR0ZXN0LCBrb2VubnRlbiBlcyBhdWNoIGFuZGVyZQphdXNwcm9iaWVyZW4uIEFiZXIgZGFzcyBtYW4gZGEgZXh0cmEgQmxpbmQtOTUgYnJhdWNoLi4uCgpIYXRlLCBzb2xsdGUgdmllbGxlaWNodCBhbHMgZ2FnIGVpbiBHZWdlbnByb2R1a3Qgc2NocmVpYmVuLCBkYXNzIHVlYmVyYWxsCmxhZXVmdCA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE1OiBNYXBnZW5lcmF0b3I/IChBY3JpbW9uLCAxMC4gSmFuIDE5OTcsIDE1OjQ0OjAwKToKfiMhIHJuPURhbmNlciBydD04NTI4NTQyMjYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKQXVmIGVpbmVyIEtydWVja2Ugdm9uIE1TPwoKU2NocmVpYnMgbGllYmVyIHN5c3RlbXVuYWJoYWVuZ2lnLCBkYW5uIGhhc3QgRHUgYmVzc2VyZSBDaGFuY2VuLgoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPdGhlbGxvc3BpZWwgKFJpa3VzLCAxMC4gSmFuIDE5OTcsIDIxOjUwOjQ1KToKSGkgTGV1dGUsCm5ldWVyZGluZ3MgaGFuZGVsdCBkZXIgTGFkZW5iZXNpdHplciBhdWYgU3ZvbHZhZXIgbWl0IGRpZXNlbSBlaW5tYWxpZ2VuClNwaWVsLCBsYXNzdCBlcyBFdWNoIG5pY2h0IGVudGdlaGVuISA6KQoKUmlrdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE2OiBNYXBnZW5lcmF0b3I/IChEYW5jZXIsIDEzLiBKYW4gMTk5NywgMTM6MDI6MDMpOgp+IyEgcm49SGF0ZSBydD04NTI4OTk1NzMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTIxNjc2MzkKSWNoIGhhYmUgbmljaHQgZ2VzYWd0LCBkYXNzIGVzIG5pY2h0IGxlaWNodCB6dSBwb3J0aWVyZW4gd2FlcmUsIGljaCBoYWJlIG51cgpnZXNhZ3QsIGRhc3MgSUNIIGRpZSBwYWFyIFplaWxlbiBLb252ZXJ0aWVydW5nIG5pY2h0IG1hY2hlbiB3ZXJkZS4gRnVlciBtaWNoCndhciBkYXMgZWluZSBrbGVpbmUgVWVidW5nIHp1ciBXaW5kb3dzLVNvY2tldHMtUHJvZ3JhbW1pZXJ1bmcsIHVuZCBtZWhyIG5pY2h0LAphbHNvIGludmVzdGllcmUgaWNoIGtlaW5lIFplaXQgaGluZWluLiBVbmQgZGEgaWNoIGdydW5kc2FldHp0bGljaCBrZWluZW4gQ29kZQpyYXVzcnVlY2tlLCB3aXJkIGVzIHdvaGwgYXVjaCBzb25zdCBuaWVtYW5kIGtvbnZlcnRpZXJlbi4KCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNrYXQgKENoaWNvbGEsIDEzLiBKYW4gMTk5NywgMTQ6NTc6NTApOgpIYWxsbyA6KQoKSWNoIGJpbiB6dSBmYXVsIG1pciBkaWUgRm9ybWVsbiBoZXJhdXN6dXN1Y2hlbi4KS2FubiBtaXIgbWFsIGplbWFuZCBhdXNyZWNobmVuLCB3aWV2ZWlsIHZlcnNjaGllZGVuZSBLYXJ0ZW52ZXJ0ZWlsdW5nZW4gZXMKYmVpbSBTa2F0IGdlYmVuIGthbm4gPyAoIHRoZW9yZXRpc2NoKSB1bmQgdmlldmllbCB2ZXJzY2hpZWRlbmUgU3BpZWx2ZXJsYXVlZmUKZXMgZ2lidCA/CkRhbmtlICAgICAgIENoaWNvbGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBza2F0IChDYXVubywgMTMuIEphbiAxOTk3LCAxNToyMTozNik6Cn4jISBybj1DaGljb2xhIHJ0PTg1MzE2Mzg3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg1MzE2Mzg3MApEYXMgbXVlc3N0ZW4gMzIhICh6d2VpdW5kZHJlaXNzaWcgRmFrdWx0YWV0KSBNb2VnbGljaGtlaXRlbiBzZWluLgpJY2ggd2Vpc3MgbnVyLCBkYXNzIDEwISBldHdhIGRyZWllaW5oYWxiIG1pbGxpb25lbiBLb21iaW5hdGlvbmVuIHp1bGFlc3N0LgpXYWhyc2NoZWlubGljaCBwbGF0enQgZGVyIENoaXAsIHdlbm4gbWFuIHNhZW10bGljaGUgU2thdHNwaWVsZSBkYW1pdAphdXNyZWNobmVuIHdpbGwuIERhIGtvbW1lbiBkYW5uIG5vY2ggZGllIDEwISBNb2VnbGljaGtlaXRlbiBkYXp1LCBpbiB3ZWxjaGVyClJlaWhlbmZvbGdlIG1hbiBhdXNzcGllbHQsIHVuZCBkaWUgMTIqMTEsIGRpZSBhbSBhbmZhbmcgYXVmIGRlbiBzdGFwZWwga29tbWVuLgpBbHNvOgoKMzIhICogMTAhICogMTIgKiAxMSAgPSAgMzIhICogMTIhCgpCaW4gbWFsIGdlc3Bhbm50LCB3ZXIgZGFzIHVlYmVycHJ1ZWZ0IHVuZCBhdXNyZWNobmV0IC4uLgoKQy4gTm8sIG9obmUgR2V3ZWhyLCBhZWggR2V3YWVociEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBza2F0IChNYWhhdG1hLCAxMy4gSmFuIDE5OTcsIDE1OjIyOjMyKToKfiMhIHJuPUNoaWNvbGEgcnQ9ODUzMTYzODcwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUzMTYzODcwCgpBbnphaGwgZGVyIFZlcnRlaWx1bmdlbjogMzIhLygxMCEqMTAhKjEwISoyISksIGRhcyBzaW5kIHNvZ2VuYW5udGUKUGVybXV0YXRpb25lbiBtaXQgV2llZGVyaG9sdW5nLCB3ZW5uIG1pY2ggZGFzIGhvaGUgQWx0ZXIgbmljaHQgdHJ1ZWd0LiBXZW5uCm1hbiBlcyBhdXNyZWNobmV0LCBrb21tdCBkYSAyLjc1MzI5NDQqMTBeMTUgcmF1cywgYWxzbyBnYW56IHNjaG9lbiB2aWVsLgoKTWFoYXRtYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBza2F0IChDYXVubywgMTMuIEphbiAxOTk3LCAxNToyMzowMSk6Cn4jISBybj1NYWhhdG1hIHJ0PTg1MzE2NTM1MiByZz1hbnplaWdlbgp+IyEgdGlkPTg1MzE2Mzg3MApkYXMgaGluZyBqZXR6dCBhYmVyIGZpeCAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc2thdCAoUmluZ29yLCAxMy4gSmFuIDE5OTcsIDE1OjI0OjI5KToKfiMhIHJuPUNhdW5vIHJ0PTg1MzE2NTI5NiByZz1hbnplaWdlbgp+IyEgdGlkPTg1MzE2Mzg3MApHYW56IHNvIGVpbmZhY2ggaXN0IGVzIG5pY2h0LiBTY2hsaWVzc2xpY2ggaXN0IGVzIHppZW1saWNoIGVnYWwsCmluIHdlbGNoZXIgUmVpaGVuZm9sZ2UgRHUgRGVpbmUgMTAgS2FydGVuIGJla29tbXN0LiBEaWUgVmVydGVpbHVuZwppc3QgZnVlciBkaWUgc3BpZWxlciBpbW1lciBub2NoIGRpZXNlbGJlLgoKQWJlciBhdXN3ZW5kaWcgd2Vpc3MgaWNoIGF1Y2ggbmljaHQgbWVociwgbWl0IHdlbGNoZW4gRm9ybWVsbiBkYXMgYXVzenVyZWNobmVuCndhciAuLi4KClJpbmdvciAtIG11c3N0ZSBpbiBkZXIgU2NodWxlIGF1Y2ggbWFsIGRpZSBXYWhyc2NoZWlubGljaGtlaXRlbiBmdWVyIHp3ZWkKQmF1ZXJuIGltIFN0b2NrIGF1c3JlY2huZW4gZXRjLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogc2thdCAoQ2F1bm8sIDEzLiBKYW4gMTk5NywgMTU6MjY6MzgpOgp+IyEgcm49UmluZ29yIHJ0PTg1MzE2NTQ2OSByZz1hbnplaWdlbgp+IyEgdGlkPTg1MzE2Mzg3MApEYW5uIGhlYmVuIHNpY2ggZGllIDEwISBhbGxlIHJhdXMuIEJsZWliZW4gbm9jaCBkaWUgMzIhKjEyKjExIHVlYnJpZy4KQWJlciBpY2ggYmVoYXVwdGUgbmljaHQsIGRhc3MgaWNocyByaWNodGlnIGhhYi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJFOiBTa2F0IChDaGljb2xhLCAxMy4gSmFuIDE5OTcsIDE1OjI3OjA1KToKR2VuYXUgUmluZ29yICEKCkVpbmZhY2ggbnVyIGRpZSBtb2VnbGljaGUgVmVydGVpbHVuZyBhdXN6dXJlY2huZW4gaXN0IGVpbmZhY2guIEFiZXIgZGFiZWkgbXVzcwpqYSBiZXJ1ZWNrc2ljaHRpZyB3ZXJkZW4sIGRhc3MgZGllIHJlaWhlbmZvbGdlIGltIHNrYXQgdW5kIGF1ZiBkZW4gamV3ZWlsaWdlbgozIGhhZW5kZW4gamEgYmVsaWViaWcgc2VpbiBrYW5uIHVuZCB0cm90emRlbSBkYXMgZ2FuemUgbnVyIGVpbm1hbCBnZXphZWhsdAp3aXJkIDopCgpWZXJzdWNodCBtYWwgd2VpdGVyIDspIERhbmtlIDo9CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBza2F0IChNYWhhdG1hLCAxMy4gSmFuIDE5OTcsIDE1OjI3OjI4KToKfiMhIHJuPUNhdW5vIHJ0PTg1MzE2NTU5OCByZz1hbnplaWdlbgp+IyEgdGlkPTg1MzE2Mzg3MApEYXMgd2lyZCBuaWNodCByZWljaGVuLCBkZW5uIGVzIG11ZXNzZW4gamEgc2ljaGVyIHp1bGFlc3NpZ2UgU3BpZWxlIHNlaW4sIGFsc28KZXMgbXVzcyBiZWRpZW50IHdlcmRlbiBldGMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBza2F0IChDYXVubywgMTMuIEphbiAxOTk3LCAxNToyODoxNSk6Cn4jISBybj1NYWhhdG1hIHJ0PTg1MzE2NTY0OCByZz1hbnplaWdlbgp+IyEgdGlkPTg1MzE2Mzg3MApEYXMgaGFiIGljaCBhYnNpY2h0bGljaCBlcnN0bWFsIHJhdXNnZWxhc3Nlbi4gVW0gZGFzIGV4YWt0IHp1IGJlc3RpbW1lbiwgbXVzcwpkZXIgQ29tcHV0ZXIgc3BpZWxlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IHNrYXQgKENhcmFkaHJhcywgMTMuIEphbiAxOTk3LCAxOTowMDoxMCk6Cn4jISBybj1DYXVubyBydD04NTMxNjU2OTUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTMxNjM4NzAKQWxzbyBmdWVyIGRpZSBBbnphaGwgZGVyIG1vZWdsaWNoZW4gU3BpZWxlIGF1ZiBkZW0gVGlzY2gKbXVzcyBpY2ggTWFoYXRtYSBSZWNodCBnZWJlbiwgZGFzIGlzdCBkaWUgcmljaHRpZ2UgTG9lc3VuZywgZGEKamEgZGllIEFuemFobCBkZXIgTW9lZ2xpY2hrZWl0ZW4sIGVpbmUgSGFuZCAoZGllIGVyc3RlbiAxMApLYXJ0ZW4pIHBlcm11dGllcnQgenUgYmVrb21tZW4sIDMyIHVlYmVyIDEwIGlzdCwgYWxzbwozMiEvKDEwISAqIDIyISksIGRhbWl0IGFsc28gMTAgS2FydGVuIGZlc3Qgc2luZCB1bmQgZnVlciBkaWUKbmFlY2hzdGUgSGFuZCBsb2dpc2NoZXJ3ZWlzZSBnaWx0OiAyMiEvKDEwISAqIDEyISksIGZ1ZXIgZGllCmRyaXR0ZSBibGVpYmVuIGRhbm4gbm9jaCBtaXQgZGVuIDIwIGZlc3RnZWxlZ3RlbiBLYXJ0ZW4KdWVicmlnOiAxMiEvKDEwISAqIDIhKSB1bmQgZnVlciBkZW4gU2thdDogMiEvMiEsIGFsc28gMS4KRGllIDIyISwgZGllIDEyISB1bmQgZGllIDIhIGt1ZXJ6ZW4gc2ljaCByYXVzLCBlcyBibGVpYnQgYWxzbwozMiEvKDEwISAqIDEwISAqIDEwISAqIDIoISkpLgoKRGllIEFuemFobCBkZXIgbW9lZ2xpY2hlbiBTcGllbHZlcmxhZXVmZSB3ZWlzcyBpY2ggYWJlciBhdWNoIG5pY2h0LApkZW5uIGJlZGllbmVuIHNvbGx0ZSBtYW4gc2Nob24uIDopKQoKICAgICAgICAgICAgQ2FyYWRocmFzIEJhcmF6aW5iYXIgUm90aG9ybiAtIFNrYXRzcGllbGVyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBza2F0IChGbG9yYSwgMTQuIEphbiAxOTk3LCAxMTozNToxMCk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9ODUzMTc4NDEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUzMTYzODcwCkFlaCwgbXVzcyBtYW4gYmVpbSBTa2F0IG5pY2h0IG5vY2ggdm9yaGVyIHJlaXplbj8gRGFzIGVyaG9laHQgZGFubiB3b2hsCmVpbmVyc2VpdHMgZGllIEFuemFobCBkZXIgTW9lZ2xpY2hrZWl0ZW4gKGR1cmNoIHZlcnNjaGllZGVuZSBNb2VnbGljaGtlaXRlbgpkZXMgUmVpemVucyksIHZlcnJpbmdlcnQgc2llIGFiZXIgZGFubiBhdWNoIHdpZWRlciwgZGEgbWFuIGplIG5hY2ggQXVzZ2FuZyBkZXMKUmVpemVucyBqYSB3b2hsIHZlcnNjaGllZGVuIGJlZGllbmVuIG11c3MsIG9kZXI/CgpGbG9yYSAoZGVyIHNvd29obCBTa2F0c3BpZWxlbiBhbHMgYXVjaCBLb21iaW5hdG9yaWsgaS5hLiB6dSBrb21wbGl6aWVydCBpc3QpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBza2F0IChDYXJhZGhyYXMsIDE0LiBKYW4gMTk5NywgMTM6MDI6MDgpOgp+IyEgcm49RmxvcmEgcnQ9ODUzMjM4MTEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUzMTYzODcwCkRpZSBBbnphaGwgZGVyIG1vZWdsaWNoZW4gVmVydGVpbHVuZ2VuIGRlciBCbGFldHRlciBoYWVuZ3QgbmljaHQgdm9tClJlaXplbiBhYiwgc29uZGVybiBudXIgdm9tIGF1c3RlaWxlbi4gOikgVW5kIGRhIGplZGVyIGltbWVyIDEwIEthcnRlbgppbiBkaWUgSGFuZCBrcmllZ3QgdW5kIGRlciBTa2F0IDIgS2FydGVuIGdyb3NzIGlzdCwgYmxlaWJ0cyBhbHNvIGRhYmVpLgoKICAgICAgICAgICAgQyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE3OiBNYXBnZW5lcmF0b3I/IChHcmltbWJvcm4sIDE0LiBKYW4gMTk5NywgMTc6NTg6MjIpOgp+IyEgcm49RGFuY2VyIHJ0PTg1MzE1NjkyMyByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQpIbW0sIGljaCBmaW5kZSBqYSBFSUdFTlRMSUNILCBkYXNzIGplZGVyIGVpbiBSZWNodCBhdWYgc2VpbmUgZWlnZW5lIE1laW51bmcKaGF0LiBBYmVyIHdlaWwgRGFuY2VyIHNvICJwcm9taW5lbnQiIGlzdCBtYWNoZSBpY2ggbWlyIGRvY2ggbWFsIGVpbiBwYWFyCkdlZGFua2VuOgoKRGFuY2VyIHNjaHJlaWJ0OiAiVW5kIGRhIGljaCBncnVuZHNhZXR6dGxpY2gga2VpbmVuIENvZGUgcmF1c3J1ZWNrZSwgd2lyZCBlcwp3b2hsIGF1Y2ggc29uc3QgbmllbWFuZCBrb252ZXJ0aWVyZW4uIiAKCkRhcyBpc3Qgc2VpbiBndXRlcyBSZWNodCwga2xhci4gQW5kZXJlcnNlaXRzOgpWb2xsZXIgTmFtZTogRGFuY2VyIC0gbm90IGFzIGJhZCBhcyB5b3UgbWlnaHQgdGhpbmshIChldmVuIHdvcnNlKQpBbHRlcjogMTA4ZCAxNzowNDoxOCwgICBNYWdpZXJsZXZlbDogNDUKCkRhbmNlciB2ZXJicmluZ3QgdmllbCBaZWl0IGluIGVpbmVtIFNwaWVsLCBkYXMgaGF1cHRzYWVjaGxpY2ggZGF2b24gbGVidCB1bmQKd2VpdGVyZW50d2lja2VsdCB3aXJkLCBkYXNzIGRlciBjb2RlIGZyZWkgaXN0IChhdWNoIHdlbm5zIGtlaW5lIEdQTCBpc3QpLiBXZW5uCmVyIGRhbm4gZXR3YXMgaW0gWnVzYW1tZW5oYW5nIGRhbWl0IHNjaHJlaWJ0IHVuZCBzYWd0LCBkYXZvbiBpc3QgZGVyIGNvZGUKZ2VuZXJlbGwgbmljaHQgZnJlaSwgZGFubiBmaW5kZSBpY2ggZGFzLi4uIGhtbS4uLiBzY2hhZGUuIEhhZXR0ZSBpY2gKdGF0c2FlY2hsaWNoIGthdW0gZXJ3YXJ0ZXQuCgpNb2VnbGljaGVyd2Vpc2Uga29lbm50ZXN0IER1IERpY2ggZGFyYXVmIGVpbmxhc3NlbiwgZGVuIGNvZGUgZWluZXIgIlBlcnNvbgpEZWluZXMgVmVydHJhdWVucyIgenUgZ2ViZW4sIGRlciBlcyBrb252ZXJ0aWVydD8gVmllbGxlaWNodCBsYWVzc3Qgc2ljaCBtaXQKZWluZW0gKG1vZWdsaWNoZXJ3ZWlzZSBmcmVpZW4pIGJpbmFyeSBhdWNoIHdhcyBhbmZhbmdlbi4KCkZhbGxzIHNvd2FzIHVlYmVyaGF1cHQgdm9uIEludGVyZXNzZSBzZWluIHNvbGx0ZS4gOy0pCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE4OiBNYXBnZW5lcmF0b3I/IChEYW5jZXIsIDE1LiBKYW4gMTk5NywgMDA6NDg6MzgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg1MzI2MTEwMiByZz1hbnplaWdlbgp+IyEgdGlkPTg1MjE2NzYzOQoKR3JpbW1ib3JuLAoKIGljaCBrYW5uIERlaW5lIFZlcnd1bmRlcnVuZyB2ZXJzdGVoZW4sIGFiZXIgaWNoIG11c3N0ZSBzY2htdW56ZWxuLCBhbHMgCmljaCBiZWdyaWZmLCBhbiB3ZWxjaGVyIFN0ZWxsZSBEdSBtaWNoIG1pc3N2ZXJzdGFuZGVuIGhhc3QuIEljaCBydWVja2UKZGVuIENvZGUgdm9uIG1laW5lbiBQcm9ncmFtbWVuIGdydW5kc2FldHpsaWNoIG5pY2h0IG1laHIgaGVyYXVzLCBuaWNodAp3ZWlsIGljaCBBbmdzdCB1bSBtZWluIGFjaCBzbyB3ZXJ0dm9sbGVzIEdlZGFua2VuZ3V0IGhhZXR0ZSwgb2RlciBkaWUKcGFhciBLcnVtZW4gbWVpbmVyIGF1cyBaZWl0Z3J1ZW5kZW4gd2luemlnZW4gUHJvZ3JhbW1pZXJlcmdlYm5pc3NlCm5pY2h0IHRlaWxlbiBrb2VubnRlLCBzb25kZXJuIHdlaWwgaWNoIGVzIGdld29obnQgYmluLCBkYXNzIG1laW4gClByb2dyYW1taWVyc3RpbCB2b24gdmllbGVuIGFscyB1bm9ydGhvZG94IGFuZ2VzZWhlbiB3aXJkLCB1bmQgaWNoIG1laW5lbgpDb2RlIGRlc2hhbGIgc3RhZW5kaWcgZXJrbGFlcmVuIHVuZCBlcmxhZXV0ZXJuIG11c3MuIERpZSBQcm9ncmFtbWUKZnVua3Rpb25pZXJlbiBlaW53YW5kZnJlaSwgYWJlciBqZW1hbmQsIGRlciBkZW4gZ2FuemVuIFRhZyB2b3IgZGVyCktpc3RlIHNpdHp0LCB3dWVyZGUgZGFzIEdhbnplIHdhaHJzY2hlaW5saWNoIGdydW5kc2FldHpsaWNoIGFuZGVycwphbmdlaGVuLiBMZWhyYnVjaG1hZXNzaWdlciwgdmllbGxlaWNodCBhdWNoIGVmZmVrdGl2ZXIsIGFiZXIgZGFzCmt1ZW1tZXJ0IG1pY2ggZWhybGljaCBnZXNhZ3QgbmljaHQsIHdlaWwgaWNoIGF1cyBIb2JieSBwcm9ncmFtbWllcmUsCnVuZCB6QnNwIEhhdGVzIFdpc3NlbiB1bmQgdmVyYmlzc2VuZSBKYWdkIG5hY2ggd29obGtsaW5nZW5kZW4gCkFsZ29yaXRobWVuIG5pY2h0IHRlaWxlIHVuZCBhdWNoIG5pY2h0IHRlaWxlbiB3aWxsLiAoU29ycnkgSGF0ZSwgRHUKYmlzdCBudXIgZWluIEJlaXNwaWVsLikgTWVpbmUgUHJvZ3JhbW1lIG1hY2hlbiBkYXMsIHdhcyBpY2ggdm9uIGlobmVuCmVyd2FydGUgdW5kIHZlcmVpbmZhY2hlbiBtaXIgVm9yZ2FlbmdlLiBJbiBkZW0gRmFsbCBtZWluZXMgQ2xpZW50cwpoYXQgZXMgbWljaCBlaW5mYWNoIGdlbmVydnQsIGRhdWVybmQgZnVlciBqZWRlIEFlbmRlcnVuZyBGVFAgYW53ZXJmZW4KenUgbXVlc3Nlbiwgb2RlciBUZWxuZXQsIHVtIGRpZSBBZW5kZXJ1bmcgdm9uIHp1IEhhdXNlIGltIE1HIHp1IHRlc3Rlbi4KQXVzc2VyZGVtIHdvbGx0ZSBpY2ggZXR3YXMgenVyIFZlcndhbHR1bmcgbWVpbmVyIGJlc3RlaGVuZGVuIEZpbGVzIHR1biwKZGEgZGFzICdEYW5jZXRvb2wnIG5hdHVlcmxpY2ggdm9lbGxpZyB1bnp1cmVpY2hlbmQgZGFmdWVyIGlzdCAoCndlbGNoZXMgdWVicmlnZW5zIGF1Y2ggZWluIEVyZ2VibmlzIHNvIGVpbmVyICdTcG9udGFucHJvZ3JhbW1pZXJ1bmcnCndhciB1bmQgbmF0dWVybGljaCBob2ZmbnVuZ3Nsb3Mgdm9uIGFsbGVuIHNvZ2VuYW5udGVuIExQQy1Qcm9maXMKdmVycmlzc2VuIHd1cmRlLCBvYndvaGwgc2llIHZpZWxlIGp1bmdlIE1hZ2llciBnZXJuIHVuZCBvZnQgYmVudXR6dApoYWJlbiwgd2FzIG1pciBlaW5pZ2UgTWFpbHMgYW4gbWljaCBiZXdlaXNlbikuIERlciBNYXBnZW5lcmF0b3IgdW5kCmRpZSB3ZWl0ZXJlbiBTcGllbGVyZWllbiBoYWJlIGljaCBhbHMgVWVidW5nIGZ1ZXIgbWljaCBpbnRlZ3JpZXJ0LAp3ZWlsIGVzIGdlcmFkZSBzbyBTcGFzcyBnZW1hY2h0IGhhdCwgdW5kIG5pY2h0LCB1bSBlaW4gdmVyc2FuZGZlcnRpZ2VzClByb2R1a3QgenUgZXJoYWx0ZW4uIFVtIHdpZWRlciB6dXJ1ZWNrIHp1bSBUaGVtYSB6dSBrb21tZW46IEljaCBoYWJlCmdhbnogZWhybGljaCBpbSBBdWdlbmJsaWNrIGVpbmZhY2ggbmljaHQgZGllIFplaXQsIG1pY2ggd2llZGVyIG1hbCBtaXQKamVtYW5kZW0genVzYW1tZW56dXNldHplbiwgZGFtaXQgZXIgbWVpbmVuIENvZGUgdmVyc3RlaHQsIGJ6dy4gYmVzc2VyCmdlc2FndCwgZGFtaXQgZXIgdmVyc3RlaHQsIHdhcyBpY2ggZGEgdWViZXJoYXVwdCBnZXRyaWViZW4gaGFiZS4gVW5kCmRhcyB3YXIgc2Nob24gZGVyIGdhbnplIEdydW5kLgoKU29sbHRlIERpY2ggYWxzbywgb2RlciBqZW1hbmRlbiBhbmRlcmVuLCBkaWUgS29uZnVzaW9uIG5pY2h0IHN0b2VyZW4sCmRhbm4ga2FubiBlciBuYXR1ZXJsaWNoIGRlbiBTb3VyY2UtQ29kZSBoYWJlbiwgYWJlciBlciBzb2xsdGUgZWluCndlbmlnIFplaXQgdW5kIGVpbmUgZ3V0ZSBhbmFseXRpc2NoZSBCZWdhYnVuZyBtaXRicmluZ2VuLiA6LSkgVW5kCndpZSBnZXNhZ3Q6IG1laW5lIFplaXQsIHp1IGhlbGZlbiBpc3QgYmVncmVuenQuCgpBbGxlIE1haWxzIHZvbiBJbnRlcmVzc2VudGVuLCBkaWUgaWNoIGJpcyBqZXR6dCB6dSBkZW0gUHJvZ3JhbW0KYmVrb21tZW4gaGFiZSwgYmV6b2dlbiBzaWNoIHNvd2llc28gYXVzZHJ1ZWNrbGljaCBhdWYgZGllIFdpbjk1LQpWZXJzaW9uLCBkLmguIGljaCB3ZWlzcyBuaWNodCBlaW5tYWwsIHdlciBzaWNoIGRhcyBUZWlsIHVlYmVyaGF1cHQKYXVmIGVpbmVtIGFuZGVyZW4gT1MgYW5zY2hhdWVuIHd1ZXJkZS4KCkpldHp0IHp1IGRlciB6d2FyIHZvcnNpY2h0aWdlbiBhYmVyIGRpcmVrdGVuIEF0dGFja2Ugdm9uIERpcjogZGllCm5laG1lIGljaCBwZXJzb2VubGljaC4gSWNoIGhhYmUgc2ljaGVyIHZpZWxlIFByb2pla3RlIGhpZXIgYmlzIGpldHp0CnVuYmVlbmRldCBnZWxhc3NlbiB1bmQgaWNoIGhhYmUgbWl0IFNpY2hlcmhlaXQgaGllciBuaWNodCBkaWUgCmdyb3NzYXJ0aWdlIEFyYmVpdCB2b24gekJzcCghKSBXYXJnb24sIEJvaW5nLCBIYXRlLCBTaWx2YW5hLCBaYXJkb3osCmV0Yy4gZ2VsZWlzdGV0LCBhYmVyIGF1Y2ggdm9uIG1pciBzdGVja3QgZWluZSBrbGVpbmUgRXdpZ2tlaXQgYW4gClByb2dyYW1taWVyYXJiZWl0IGluIGRpZXNlbSBTcGllbCwgdW5kIGljaCBiaW4gbWlyIHNpY2hlciwgbWlyIG5pY2h0CnZvcndlcmZlbiBsYXNzZW4genUgbXVlc3NlbiwgbmljaHQgbWVpbmVuIGtsZWluZW4gVGVpbCB6dXIgCldlaXRlcmVudHdpY2tsdW5nIGRpZXNlcyBTcGllbHMgYmVpZ2V0cmFnZW4genUgaGFiZW4uIEdhbnogc2ljaGVyLgoKLS0gRGFuY2VyCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xOTogTWFwZ2VuZXJhdG9yPyAoQXNtb2RpcywgMTUuIEphbiAxOTk3LCAwMTozNDoxMSk6Cn4jISBybj1EYW5jZXIgcnQ9ODUzMjg1NzE4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5CkFsc28gZGFzcyBkdSBrZWluZSBncm9zc2FydGlnZSBBUmJlaXQgZ2VsZWlzdGV0IGhhc3QsIHdpbGwgaWNoIGJlc3RyZWl0ZW4sCmRpZSBQeXJhbWlkZW4gc2luZCBkb2NoIHRvbGwsIGZpbmRlIGljaCBqZWRlbmZhbGxzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTk6IE1hcGdlbmVyYXRvcj8gKEdyaW1tYm9ybiwgMTYuIEphbiAxOTk3LCAxNDo1MDoyNik6Cn4jISBybj1EYW5jZXIgcnQ9ODUzMjg1NzE4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUyMTY3NjM5CkhtbSwgbWVpbiBsaWViZXIgU2FuZHRpZ2VyIQpXbyBoYWJlIGljaCBEaWNoIGFuZ2VncmlmZmVuPyBBbiBkZW0gUHVua3Qgd28gaWNoIGVudHRhZXVzY2h0IHdhciBkYXNzIER1IGRpZQpzb3VyY2UgbmljaHQgImZyZWkgenVnYWVuZ2xpY2giIHp1IG1hY2hlbiB3b2xsZW4gc2NoaWVuc3Q/IERlaW5lIEFyZ3VtZW50YXRpb24Ka2FubiBpY2ggdm9sbCB1bmQgZ2FueiBuYWNodm9sbHppZWhlbiwgd2VubiBtYW4gc2ljaCBBcmJlaXQgbWFjaHQgaXN0IGRhcwpsZXR6dGUgd2FzIG1hbiBob2VyZW4gd2lsbCBkYXMgR2Vub2VsZSB2b24gTGV1dGVuLCBkaWUgZGFzIGFsbGVzIGtyaXRpc2llcmVuCnVuZCB2aWVsIGJlc3NlciBnZW1hY2h0IGhhZXR0ZW4gKHdhcyBzaWUgYWJlciBlYmVuIGdlbmF1IG5pY2h0IGhhYmVuKS4gSWNoCmdlYmUgenUsIGljaCB3YXIgZ2VzY2hvY2t0LCB3ZWlsIGRhcywgd2FzIGljaCB2ZXJzdGFuZGVuIGhhdHRlIHNvIHVlYmVyaGF1cHQKbmljaHQgenUgZGVtIERhbmNlciBwYXNzdGUsIGRlbiBpY2ggc28ga2VubmUgdW5kIHNjaGFldHplLiBTb2xsdGVzdCBEdQp3b2FuZGVycyBlaW5lbiBBbmdyaWZmIGdlb3J0ZXQgaGFiZW4gaXN0IGVyIG5pY2h0IGJlYWJzaWNodGlndCBnZXdlc2VuLAplaHJsaWNoIG5pY2h0LgpJY2ggc2NobGFnZSBlaW5lbiBkaXNjbGFpbWVyIGZ1ZXIgRGVpbmVuIGNvZGUgdm9yOiAiVGhpcyBjb2RlIGNvbWVzIHdpdGgKYWJzb2x1dGVseSBubyB3YXJyYW50eSBvciBleHBsYW5hdGlvbnMhIiwgZGFzIHNvbGx0ZSBoZWxmZW4uIDotKQoKTmljaHRzIGZ1ZXIgdW5ndXQuIApGcmV1bmRzY2hhZnQ/CgpHcmltbWJvcm4gZGVyIEF0aGVpc3QsIG5pY2h0IHVuZXJsZWljaHRlcnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhaGxwcm9wYWdhbmRhIChNYWdpY29sbGksIDIxLiBKYW4gMTk5NywgMTA6NTU6NDgpOgoKCiAgICAgICBXRVJCVU5HIC0gV0VSQlVORyAtIFdFUkJVTkcgLSBXRVJCVU5HIC0gV0VSQlVORyAtIFdFUkJVTkcKCiAgICAgICAgQWNodHVuZyEgQWNodHVuZyEgQW0ga29tbWVuZGVuIEZyZWl0YWcsIGRlbiAyNC4gSmFudWFyLAogICAgICAgIGtvbW10IGltIEFSRCB1bSAyMC4xNSBVaHIgZWluIGt1bHR1cmVsbGVyIEJlaXRyYWcgenVyCiAgICAgICAgV2FobCB2b24gRGV1dHNjaGxhbmRzIHdpdHppZ3N0ZW0gVmlkZW9maWxtIGRlcyBKYWhyZXMuCiAgICAgICAgRmFsbHMgSWhyIHp1IGRpZXNlciBaZWl0IG5pY2h0cyBiZXNzZXJlcyB6dSB0dW4gaGFiZW4KICAgICAgICBzb2xsdGV0LCBhbHMgdm9yIGRlciBHbG90emUgenUgc2l0emVuLCBzbyBiZXRlaWxpZ3QKICAgICAgICBFdWNoIGRvY2ggYml0dGUgYWxsZSBhbiBkZXIgdGVsZWZvbmlzY2hlbiBXYWhsIGdlZ2VuCiAgICAgICAgRW5kZSBkZXIgU2VuZHVuZyB1bmQgd2FlaGx0IGRhcyB0b2xsZSBWaWRlbywgaW4gZGVtIGVpbgogICAgICAgIGtsZWluZXMgdG9sbHBhdHNjaGlnZXMgS2luZCBpbiBlaW5lbiBIYXNlbnN0YWxsIGhpbmVpbi0KICAgICAgICBmYWVsbHQuIE1laW5lIEVsdGVybiBrb2VubmVuIGRhbm4gbmFlbWxpY2ggZWluZSB0b2xsZQogICAgICAgIFJlaXNlIGdld2lubmVuLCB1bmQgaWNoIGhhYmUgZGFubiBpbiBkZXIgWmVpdCBtZWluZSBSdWhlLgogICAgICAgIEF1c3NlcmRlbSBoYWJ0IElociBkYW5uIGRpZSBlaW5tYWxpZ2UgR2VsZWdlbmhlaXQgenUKICAgICAgICBzZWhlbiwgd2llIG1laW5lIFNjaHdlc3RlciBzaWNoIG1pdCBlaW5lbSBhdXN3ZW5kaWcgZ2UtCiAgICAgICAgbGVybnRlbiBUZXh0IGltIEZhbGxlIGRlcyBTaWVnZXMgZnVlciBFdXJlIFN0aW1tZW4gYmUtCiAgICAgICAgZGFua3QuIElzdCBkb2NoIHRvbGwsIG9kZXI/IDstKQogICAgICAgIEFsc28sIGljaCB6YWVobGUgYXVmIEV1Y2ghIDotKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXouIE1hZ2ljCgogICAgICAgV0VSQlVORyAtIFdFUkJVTkcgLSBXRVJCVU5HIC0gV0VSQlVORyAtIFdFUkJVTkcgLSBXRVJCVU5HCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhaGxwcm9wYWdhbmRhIChBc21vZGlzLCAyMS4gSmFuIDE5OTcsIDE0OjIwOjE3KToKfiMhIHJuPU1hZ2ljb2xsaSBydD04NTM4NDA1NDggcmc9YW56ZWlnZW4KfiMhIHRpZD04NTM4NDA1NDgKXUFybWUgSGFzZW4hIFVuZCBzb3dhcyBzb2xsIG1hbiBub2NoIHVudGVyc3R1ZXR6ZW4gPwpEaWVzZSBGaWxtY2hlbiBzaW5kIGVoIGJsb2VkIGFsc28gaWNoIGthbm4gdWViZXIgZGFzIE1pc3NnZXNjaGljawphbmRlcmVyIExldXRlIG5pY2h0IGxhY2hlbiAobmFqYSwgaG9lY2hzdGVucywgd2VubiBtYW4gZXMgc28gZ3V0CndpZSBNci4gQmVhbiBtYWNodCA6KSAgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYWhscHJvcGFnYW5kYSAoQ2F1bm8sIDIxLiBKYW4gMTk5NywgMTQ6MjQ6MDEpOgp+IyEgcm49QXNtb2RpcyBydD04NTM4NTI4MTcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTM4NDA1NDgKTmEsIHdlbmlnc3RlbnMgaGFiZW4gc2llJ3MgbmljaHQgYW4gUlRMMiBCaXR0ZSBsYWVjaGVsbiB2ZXJob2VrZXJ0LiBXZW5uIGRhcwppbSBFcnN0ZW4gbGFldWZ0LCBrYW5uIG1hbiBkYXZvbiBhdXNnZWhlbiwgZGFzcyBlcyBoYXJtbG9zIGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhaGxwcm9wYWdhbmRhIChHcmltbWJvcm4sIDIxLiBKYW4gMTk5NywgMTQ6MzE6NDMpOgp+IyEgcm49Q2F1bm8gcnQ9ODUzODUzMDQxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODUzODQwNTQ4CldlaXNzIG5pY2h0IHdhcyBpaHIgaGFidC4gRGllc2UgRmlsbWNoZW4sIHdvIEVsdGVybiwgYW5zdGF0dCBkZW0gS2luZCB6dQpoZWxmZW4sIHNpY2ggZWhlciBTb3JnZW4gZGFydW0gbWFjaGVuLCBkYXNzIGRpZSBLYW1lcmEgbmljaHQgd2Fja2VsdCwgc2luZCBzbwptaXQgZGFzIGJlc3RlLCB3YXMgZGFzIEZlcm5zZWhlbiBhbiBTYXRpcmUgenUgYmlldGVuIGhhdC4gV2VubiBzaWNoIGplbWFuZCB6dW0KSGFuc3d1cnN0IG1hY2h0IHVtIG1pY2ggenUgdW50ZXJoYWx0ZW4gKG5laW4sIE1PLCBkYXMgZ2VodCBqZXR6dCBuaWNodCBnZWdlbgpEaWNoLCBEZWluZSBGYW1pbGllIG9kZXIgRGVpbmUgU2Nod2VzdGVyKSBpc3QgZGFzIHNlaW4gUHJvYmxlbSwgbmljaHQgbWVpbmVzLgpJY2ggaGFiIGRhIG5pY2h0cyBkYWdlZ2VuLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IGZpbmRldCwgU2NoYWRlbmZyZXVkZSBpc3QgZWluZSBkZXIgc2Nob2Vuc3RlbiBGcmV1ZGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2FobHByb3BhZ2FuZGEgKEFzbW9kaXMsIDIxLiBKYW4gMTk5NywgMTU6NDQ6MDQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg1Mzg1MzUwMyByZz1hbnplaWdlbgp+IyEgdGlkPTg1Mzg0MDU0OApIbW0sIGphLCB3ZW5uIHNpY2ggamVtYW5kIHp1bSBIYW5zd3VydCBtYWNodCwgZGFubiBoYWIgaWNoIGF1Y2ggbml4IApkYWdlZ2VuLCBhYmVyIHdhcyBrb2VubmVuIGRpZSBLaW5kZXIgZGFmdWVyID8KSWNoIGZpbmRlIHNvd2FzIGdlbWVpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV2FobHByb3BhZ2FuZGEgKEtyZXRlaywgMjMuIEphbiAxOTk3LCAxMTo0Njo0NCk6Cn4jISBybj1Bc21vZGlzIHJ0PTg1Mzg1MjgxNyByZz1hbnplaWdlbgp+IyEgdGlkPTg1Mzg0MDU0OApIbW1tLi4uIE1yLiBCZWFuLCBpc3QgamEgYXVjaCBzbyBlaW4gRmFsbCBmdWVyIHNpY2guLi4gRGFzIGludGVyZXNzYW50ZQphbSBQaGFlbm9tZW4gTXIuIEJlYW4gaXN0IGZ1ZXIgbWljaCwgZGFzcyBpY2ggbWVocmVyZSBCcml0ZW4ga2VubmUsIGRpZQpzbyByZWluIGJpbGR1bmdzbWFlc3NpZyBpbiBldHdhIGF1ZiBBYml0dXItTml2ZWF1IHNpbmQgKHNvd2VpdCBtYW4gZGFzIHZvbgpkaWVzZW0gSW5zZWx2b2xrIHVlYmVyaGF1cHQgYmVoYXVwdGVuIGthbm4pLCB1bmQgdm9uIGRlbmVuIGthbm4gdWViZXIKTXIuIEJlYW4gZWlnZW50bGljaCBuaWVtYW5kIHNvIHJlY2h0IGxhY2hlbiwgaXJnZW5kd2llIGZpbmRlbidzIGFsbGUgbWVocgpvZGVyIHdlbmlnZXIgcGVpbmxpY2guLi4gVW5kLCBtYWwgZ2FueiBlaHJsaWNoLCB3ZXIga2FubiBkZW5uIHVlYmVyIGVpbmVuCnNvZy4gIkdhZyIgdm9uIE1yLiBCZWFuIGltbWVyIG5vY2ggbGFjaGVuLCB3ZW5uIGVyL3NpZSBpaG4gc2ljaCB6dW0gZHJpdHRlbgpvZGVyIHZpZXJ0ZW4gTWFsIGFuc2NoYXV0PyAqR3V0ZSogQ29tZWR5IHNvbGx0ZSBkYXp1IGR1cmNoYXVzIGluIGRlciBMYWdlCnNlaW4uLi4KCkp1c3QgbXkgKHdpZXZpZWxlIHdhcmVuJ3Mgbm9jaG1hbD8pIGxldHRlcnMsCgoKICAgICAgIHwgLyAgfFwgIHwtLSAgLS0tICB8LS0gIHwgLwogICAgICAgfDwgICB8LyAgfC0gICAgfCAgIHwtICAgfDwKICAgICAgIHwgXCAgfFwgIHwtLSAgIHwgICB8LS0gIHwgXAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV2FobHByb3BhZ2FuZGEgKEVuZ3l3dWNrLCAyMy4gSmFuIDE5OTcsIDE4OjEwOjM1KToKfiMhIHJuPUtyZXRlayBydD04NTQwMTY0MDQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTM4NDA1NDgKVmllbGxlaWNodCBiaW4gaWNoIHBlcnZlcnMsIG9kZXIgbWVpbiBBYmkgaXN0IHp1IGd1dCBvZGVyIHp1IHNjaGxlY2h0LCBvZGVyCndhcyBhdWNoIGltbWVyLiBBYmVyIHVlYmVyIE1yLiBCZWFuIGthbm4gaWNoIGF1Y2ggYmVpbSA1LiBNYWwgbm9jaCBsYWNoZW4uCgpFbmd5KgoKUC5TLjogVW0gd2FzIGdlaHRzIGhpZXIgZWlnZW50bGljaD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlbWlyYSByYWV1bXQgYXVmIChTZW1pcmEsIDI1LiBKYW4gMTk5NywgMTg6MjM6MjUpOgouLi5vZGVyIGJlc3Nlcmdlc2FndCByZW5vdmllcnQgdW5kIHRhcGV6aWVydHouLi4KClVuZCB3aWUgZGFzIHNvIGlzdCwgbWFuIGZpbmRldCBuZSBNZW5nZSBTYWNoZW4sIGRpZSBtYW4gbmljaHQgbWVociB1bmJlZGluZ3QKYnJhdWNodC4uLmluIGRpZXNlbSBrb25rcmV0ZW4gRmFsbCBzaW5kIGRhcyBSZWxpa3RlIGF1cyBtZWluZXIKVm9yLU11ZC1KdWdlbmQtWmVpdCwgZGllIHZpZWxsZWljaHQgZGVyIGVpbiBvZGVyIGFuZGVyZSBUcmVra2llIGdlYnJhdWNoZW4Ka29lbm50OgoKMTcgU3RhciBUcmVjayBCdWVjaGVyIHp1IHZlcmdlYmVuISBUaXRlbCBnaWJ0cyBhdWYgQW5mcmFnZS4gSW50ZXJlc3NlbnRlbgpiaXR0ZSBtYWlsIGFuIG1pY2guLi4KCippbnRlcmdhbGFrdGlzY2hlIEtudWRkZWxzKiBTZW1pcmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk51ciBmdWVyIGRpZSwgZGllIGVzIGludGVyZXNzaWVydC4uLiAoQW5hdG9sLCAyNy4gSmFuIDE5OTcsIDE4OjAyOjA5KToKCiAqKiBFcnN0ZSBPc25hYnJ1ZWNrZXIgVW5pLUNvbiAqKgoKICAwMS4gYmlzIDAyLiBGZWJydWFyIC0gQmVnaW5uIFNhbXN0YWcgMTEgVWhyIHMudC4KCiAgJ2ltLUhlZ2VyLVRvci1XYWxsJy1HZWJhZXVkZSBkLiBVbmktT1MgYW0gSGVnZXItVG9yLVdhbGwgMTQKCkdlc3BpZWx0IHdpcmQgd29obCBhdXNzZXIgQUQmRCwgRFNBLCBTaGFkb3dydW4gZXRjIGF1Y2ggSnVudGEsIFNpZWRsZXIgdS5hZS4KCk9yZ2FuaXNhdG9yIGlzdCBkZXIgQVN0QSBkZXIgVW5pIE9zbmFicnVlY2ssIEVpbnRyaXR0IGZyZWkKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOdXIgZnVlciBkaWUsIGRpZSBlcyBpbnRlcmVzc2llcnQuLi4gKEhhcmRpbCwgMjcuIEphbiAxOTk3LCAxODoyMjozOSk6Cn4jISBybj1BbmF0b2wgcnQ9ODU0Mzg0NTI5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU0Mzg0NTI5CgoKICAqKiBNdWVuc3RlciBJbmRvb3IgU29mdGJhbGwgVG91cm5hbWVudCAqKgoKICAwMS4gYmlzIDAyLiBGZWJydWFyIC0gQmVnaW5uIFNhbXN0YWcgMTAgVWhyIHMudC4KCiAgTGVpY2h0YmF1aGFsbGUgZGVyIFVuaS1NdWVuc3RlciB1bmQgc29uc3Qgbm9jaCBuZSBIYWxsZQoKICBTcGllbGVuIHR1biBkaWUgVW5pTXVlbnN0ZXIgUm9hZHJ1bm5lcnMsIFVuaURvIERyYWdvbnMgdW5kIDYgd2VpdGVyZQp1bndpY2h0aWdlIFRlYW1zLiBXZXIgbWljaCBzY2hvbiBpbW1lciBtYWwgbmVuIEJhbGwgZmFsbGVubGFzc2VuIHNlaGVuIHdvbGx0ZW4Kb2RlciBUcnlmYW5zIGVoZW1hbGlnZXMgdGVhbSBhbmZldWVybiwgaXN0IGdlbmF1IHJpY2h0aWcuCkFiZW5kcyBpc3Qgd29obCBhdWNoIG5vY2ggUGFhZHkuCgpPcmdhbmlzYXRvciBpc3QgZGVyIEhvY2hzY2h1bHNwb3J0IG11ZW5zdGVyLCBkZW5rZSBpY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NobWFsIG4gYXVmcnVmIChTZW1pcmEsIDMxLiBKYW4gMTk5NywgMTg6MTI6MTYpOgoKSWNoIGhhZXR0cyBqYSBuaWNodCBnZWRhY2h0LCBhYmVyIGJpc2hlciBiaW4gaWNoIG1laW5lIEJ1ZWNoZXIgKHNpZWhlIEFydGlrZWwKMjgpIG5vY2ggbmljaHQgbG9zZ2V3b3JkZW4uIFdpcmtsaWNoIG5pZW1hbmQgc29uc3QsIGRlciBJbnRlcmVzc2UgaGF0PyAKCkFsc28gbm9jaG1hbCBBdWZydWY6IDE3IFN0YXIgVHJlayBCdWVjaGVyIHp1IHZlcmdlYmVuLiBXZWl0ZXJlIEluZm9zIGJlaSBtaXIgCgoqa251ZGRlbHMqIFNlbWlyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2ltcyBnZXN1Y2h0ISAoSGVsdmEsICAxLiBGZWIgMTk5NywgMTk6NDM6MTEpOgpJY2ggYnJhZXVjaHRlIFNpbXMgZnVlciBtZWluZW4gMzg2ZXIgKGphLCBzb3dhcyBnaWJ0cyBub2NoKS4gVW5kIHp3YXIgc29sbHRlbiAKc2llIDRNQiBwcm8gTW9kdWwgaGFiZW4sIHVuZCBkYXZvbiBicmFldWNodGUgaWNoIGRhbm4gNCBTdHVlY2suClVuZCBtb2VnbGljaHN0IHNvbGx0ZW4gc2llIG5pY2h0IGRpZSB3ZWx0IGtvc3RlbiwgaWNoIHdhZXJlIGFMU28gc2VociBlcmZyZXV0LAp3ZW5uIGljaCBzaWUgZ2VicmF1Y2h0IGJla29tbWVuIGtvZW50dGUuIFZpZWxsZWljaHQgc2NobGFjaHRldCBqYSBqZW1hbmQKZ2VyYWRlIHNlaW5lbiBDb21wdXRlciBhdXM/Ck1haWwgYml0dGUgbmljaHQgYW4gbWlvY2gsIGRhIGljaCBkZW5rZSwgZGFzcyBBbnR3b3J0ZW4gaGllcmF1cyBpbiBkZXIgbXBhCm5pZW1hbmRlbiBpbnRlcmVzc2llcmVuLgpFbnRzd2NodWxkaWd0IGJpdHRlIGRpZSBUaXBwZmVobGVyLCBhYmVyIGljaCBrYW5uIG5pY2h0IGtvcnJpZ2llcmVuIQpBbHNvLWhvZmZlbnRsaWNoIG1lbGRldCBzaWNoIGplbWFuZCEKSGVsdmEgLSB3aWxsIGlocmVtIGxpZWJlbiBhbHRlbiBSZWNobmVyIG5vY2ggZGFzIExlT2F1ZmVuIGJlaWJyaW5nZW4qKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWndlaXRlciBWZXJzdWNoLi4uIChPZXR0aSwgIDMuIEZlYiAxOTk3LCAxODozNTozNyk6ClN1Y2hlOiBSZWljaGUgRnJhdSwgYXVzc2VoZW4gdW5kIGFsdGVyIGVnYWwuLi4KCkJpZXRlOiBJbW1lciBub2NoIG5peC4uLi4KCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3R1ZGVudGlzY2hlIEhpbGZza3JhZnQgZ2VzdWNodCAoSGFra2lra3QsICA2LiBGZWIgMTk5NywgMTU6MzE6MTkpOgpIaSwKaWNoIGhhYiBkYSBlaW5lbiBKb2IgZnVlciBlaW5lbiBTdHVkZW50ZW4vU3R1ZGVudGluIG1pdCBndXRlbgpQcm9ncmFtbWllcmtlbm50bmlzc2VuLgpCaXMgZGVubmUsIEhha2tpa2t0CgoKCkltIFJhaG1lbiBlaW5lcyBGb3JzY2h1bmdzcHJvamVrdGVzICJTaW11bGF0aW9uIHZvbiAKU3RvZmZ0cmFuc3BvcnQgaW0gZ2VrbHVlZnRldGVuIFRvbnN0ZWluIiB3aXJkIGVpbmUgCnN0dWRlbnRpc2NoZSBIaWxmc2tyYWZ0IGZ1ZXIgMyBNb25hdGUgKEFyYmVpdHN6ZWl0OiA0MCBTdHVuZGVuL01vbmF0KSAKZnVlciBQcm9ncmFtbWllcmFyYmVpdGVuKEZvcnRyYW4gb2RlciBDKWdlc3VjaHQuIApFcyBiZXN0ZWh0IGRpZSBNb2VnbGljaGtlaXQgZGllc2UgQXJiZWl0ZW4gaW0gUmFobWVuIAplaW5lcyBQcmFrdGlrdW1zIGltIFJlZmVyYXQgR2VvdGhlcm1payBhbSAKTmllZGVyc2Flc2lzY2hlbiBMYW5kZXNhbXQgZnVlciBCb2RlbmZvcnNjaHVuZwotIEdlb3dpc3NlbnNjaGFmbGljaGUgR2VtZWluc2NoYWZ0c2F1ZmdhYmVuIC0KZHVyY2h6dWZ1ZWhyZW4uCktvbnRha3Q6IERyLiBHZW9yZyBLb3Nha293c2tpLCBOTGZCLUdHQQoJIFN0aWxsZXdlZyAyLCBELTMwNjU1IEhhbm5vdmVyIAogICAgICAgICBUZWwuOiAwNTExLzY0MzM1NDAKICAgICAgICAgZW1haWw6IGcua29zYWtvd3NraUBiZ3IuZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjMyTUIgU0lNTVMgKENhdHdlYXpsZSwgIDYuIEZlYiAxOTk3LCAyMTozMjo1OSk6CgpTYWx2ZSEKCkRlciBGb2VyZGVydmVyZWluIFByb2pla3QgTW9yZ2VuR3JhdWVuIGUuVi4gdmVyaG9la2VydCA0IGJyYW5kaGVpc3NlLApnZWJyYXVjaHRlIDMyIE1CIFBTLzIgU2ltbXMgbWl0IChldmVudHVlbGxlbiB1bnJlbGV2YW50ZW4pIDcwbnMuCgoKVmVya2F1ZnQgd2lyZCBtZWlzdGJpZXRlbmQgZ2VnZW4gc2NocmlmdGxpY2hlcyBHZWJvdC4KCkFlaCwgbmVpbiB2aWVsbGVpY2h0IGRvY2ggbmljaHQsIHNhZ2VuIHdpciAyMDAgRE0gcHJvIFN0dWVjay4gV2lyIGtvZW5uZW4Kc2llIGFiZXIgYXVjaCBnZXJuZSBhdWYgZGVyIE11ZC1wYXJ0eSB2ZXJzdGVpZ2Vybi4gRGVua3QgZHJhbiwgZXMgaXN0IGZ1ZXIgCmVpbmVuIGd1dGVuIFp3ZWNrIDopCgpZb3VycyB0cnVseSwKICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAzMk1CIFNJTU1TIChHcmltbWJvcm4sICA3LiBGZWIgMTk5NywgMDk6MTk6NTYpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg1NTI2MTE3OSByZz1hbnplaWdlbgp+IyEgdGlkPTg1NTI2MTE3OQpXaWUgd2FlcnMgbWl0IGVpbmVyIFZlcnN0ZWlnZXJ1bmcsIGZ1ZXIgZGllIGRpZWplbmlnZW4sIGRpZSBuaWNodCBkYSBzZWluCndlcmRlbiwgaW0gVm9yZmVsZCBlaW4gc2NocmlmdGxpY2hlcyBHZWJvdCBlaW5yZWljaGVuIGtvZW5uZW4/CgpJY2ggYmlldGUgaGllcm1pdCBzY2hvbm1hbCA0RE0uIEZ1ZXIgZGllIGdlc2FtdGUgTGllZmVydW5nLCBuYXR1ZXJsaWNoLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYWJlbCtJbnRlcm5ldCAoSXJpeCwgMTAuIEZlYiAxOTk3LCAxMjo1OTo1Mik6CkhpLAoKZnVlciBhbGxlIEludGVyc3NpZXJ0ZW4sIGRhcyBoYWIgaWNoIGdlcmFkZSBiZWtvbW1lbi4uLgoKQWNodHVuZyBhbiBhbGxlbiBJbnRlcmVzc2llcnRlbiB1bmQgR2x1ZWNrc3BpbHplIGRpZSBpbiBSdWhyLUdlYmlldAp3b2huZW4gISEhISE6CgpWZWJhQ29tIER1ZXNzZWxkb3JmIGhhdCBzY2hvbiBlaW5lbiBLYWJlbHByb2pla3QgaW4gUnVoci1HZWJpZXQKZ2VzdGFydGV0IHVuZCBzdWNodCBub2NoIEludGVyZXNzZW50ZW4genUgZWluZW0gc2VociBndWVuc3RpZ2VuIFByZWlzOgpETSAxMC8gbW9uYXRsaWNoLgpLb250YWt0OiBGcmF1IEFuZ2VsYSBTY2htaWR0LVBlbHR6ZXIsIFRlbC4gMDIxMS00NTcgOTg1OC4KCkFuYWtpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLYWJlbCtJbnRlcm5ldCAoWm9ycm8sIDEwLiBGZWIgMTk5NywgMTM6MjE6MTIpOgp+IyEgcm49SXJpeCBydD04NTU1NzU5OTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTU1NzU5OTIKSmEgaW4gR0UgZ2liYmV0IGRhcyBmdWVyIHVtc29uc3QgLi4uIG51ciBoYWJlbiBtZWluZSBFbHRlcm4gbGVpZGVyIGtlaW4gCkthYmVsIDooIC4uLiBuYWphIHNvbGFuZ2Ugc2UgZGllIFRlbGVwaG9ucmVjaG51bmcgYmV6YWhsZW4ga29lbm5lbiA6KT0KCkdydXNzIFoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEthYmVsK0ludGVybmV0IChHdWxkdWthdCwgMTAuIEZlYiAxOTk3LCAyMToxNzo0Myk6Cn4jISBybj1ab3JybyBydD04NTU1NzcyNzIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTU1NzU5OTIKd2lyIGhhYmVuIHp3YXIga2FiZWwsIHdvaG5lbiBhYmVyIGxlaWRlciAzIGtpbG9tZXRlciB6dSB3ZWl0IGF1c3NlcmhhbGIhIDooCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogMzJNQiBTSU1NUyAoRGFuY2VyLCAxMS4gRmViIDE5OTcsIDA2OjU3OjE5KToKfiMhIHJuPUNhdHdlYXpsZSBydD04NTUyNjExNzkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTUyNjExNzkKMjA1LiA6LSkKCkRhbmNlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMiBULVNoaXJ0cyBtZWlzdGJpZXRlbmQgenUgdmVya2F1ZmVuIChIYXRlLCAxMS4gRmViIDE5OTcsIDEyOjI1OjI5KToKSWNoIGhhYiBub2NoIDIgVC1TaGlydHMgaW4gR3JvZXNzZSBYTCBtaXQgZWluZXIgSGV4ZSB2b3JuIGRyYXVmCnp1IHZlcmthdWZlbi4gTWluZGVzdGdlYm90IGlzdCAyNSwtIERNCldlciBpbnRlcmVzc2UgaGF0LCBNYWlsIGFuIG1pY2guCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDIgVC1TaGlydHMgbWVpc3RiaWV0ZW5kIHp1IHZlcmthdWZlbiAoQXNtb2RpcywgMTEuIEZlYiAxOTk3LCAxOTo0NDozMSk6Cn4jISBybj1IYXRlIHJ0PTg1NTY2MDMyOSByZz1hbnplaWdlbgp+IyEgdGlkPTg1NTY2MDMyOQoxMDAgTWFsIGdldHJhZ2VuID8/CkRhbm4gZ2ViIGljaCBkaXIgNSBNYXJrIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLYWJlbCtJbnRlcm5ldCAoU2hha2VkYmVlciwgMTIuIEZlYiAxOTk3LCAxNTo0MTo1Nik6Cn4jISBybj1HdWxkdWthdCBydD04NTU2MDU4NjMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTU1NzU5OTIKR2lidHMgZGFzIGluIERvcnRtdW5kIGF1Y2g/IT8KClNoYWt5IC0gU0VIUiBpbnRlcmVzc2llcnQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZmUgMS4wIChUYXNoYSwgMTIuIEZlYiAxOTk3LCAyMzowNjoxNyk6CkhpIQoKSXJnZW5kd2llIGthbm4gaWNoIGRlbiBBcnRpa2VsIG1pdCBkZW0gVXBkYXRlIHZvbiBHaXJsZnJpZW5kIDEuMCBhdWYgV2lmZSAxLjAKbmltbWVyIGZpbmRlbi4gS29lbm50IG1pciBqZW1hbmQgc2FnZW4gd28gZGVyIGlzdCBvZGVyIGRhcyBUZWlsIGVpbmZhaGMgZ2xlaWNoCm1haWxlbj8gCgpLbnVkZGVscywgVGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEthYmVsK0ludGVybmV0IChSaW5nb3IsIDEyLiBGZWIgMTk5NywgMjM6NTI6MzEpOgp+IyEgcm49U2hha2VkYmVlciBydD04NTU3NTg1MTYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTU1NzU5OTIKTGF1dCBkZXIgV1dXLVNlaXRlIHZvbiBWZWJhQ29tIHdpcmQgZGFzIFBpbG90cHJvamVrdCBlcnN0bWFsIGluIERkb3JmIHVuZAouLi4gYWVoaCAuLi4gdW53aWNodGlnIDspIGdlc3RhcnRldCB1bmQgZGFubiBrb21tZW4gaXJnZW5kd2FubiBFc3NlbiB1bmQKRG9ydG11bmQgbmFjaC4gCgpBYmVyIHdlciBkYSBHZW5hdWVyZXMgd2Vpc3MsIGltbWVyIHJhdXMgbWl0IGRlciBTcHJhY2hlLiA6LSkKClJpbmdvci4gSGF0IGRhIGltbWVyIG5vY2ggbmljaHQgYW5nZXJ1ZmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW56ZWlnZSAoU2lkb2xpbiwgMTMuIEZlYiAxOTk3LCAxNDoyNzoyOSk6CkphIGFsc28gYWVoLi4uCkhtLiBBbHNvIGljaCBrYW5uIGRhcyBqYSBuaWNodCBzby4uLiBzbyBmcmVpIHZvbiBkZXIgTGViZXIgd2VnLi4uIGFiZXIgbmFqYS4uLgoKQWxzby4uLiBJY2ggYmluIGphIG51biBNdWRkZXIuLi4gdW5kIGFjaG5lZSBpc3QgbWlyIGRhcyBwZWlubGljaC4uLi4KYWxzbyBpY2gga2VubiBtaWNoIGlyZ2VuZHdpZSBzbyBnYXIgbmljaHQgc28gcmljaHRpZyBhdXMuLi4gCnNvIG1pdCBkZW4gRnJhdWVuIG1laW5lIGljaC4uLgoKYHEgCk1pc3QuLiB3aWVzbyBnZWh0IGRhcyBuaWNodC4uLiBobS4uLiAKbmFqYSB1bmQgZGEgaGFiIGljaCBtaXIgZ2VkYWNodC4uLiBhbHNvIAp3ZWlsIGRvY2ggZGVyIE9ldHRpIGhpZXIgc2Nob24gc28gbmUgdG9sbGUgYW56ZWlnZSBnZW1hY2h0IGhhdC4uLgptYWNoIGljaCBkYXMgYXVjaCBtYWwuLi4KCkFsc28gaWNoIGJpbiBTdHVkZW50IHVuZCBoYWIgQWJpIHVuZCBtZWluZSBIb2JiaWVzIHNpbmQ6Cktha3RlZW4gc2FtbWVsbi4KU2Nod2ltbWVuLgpMZXNlbi4KQnJpZWZtYXJrZW4uCkF1Y2ggbWFsIGFiZW5kcyB3ZWdnZWhlbiAoYWJlciBuaWNodCB6dSBsYW5nZSB3ZWlsIGljaCBtdXNzIGphIHN0dWRpZXJlbikKUG9ybm9oZWZeSF5IXkheSF5IXkheSF5IemVpdGdlc2NoaWNodGxpY2hlIE1hZ2F6aW5lCktvY2hlbi4KCldlbm4gRHUgbmUgRnJhdSBiaXN0IHVuZCBzdXBlcnRvbGwgYXVzc2llaHN0IHVuZCBkaWNrZSBUXkheSF5IXkheSF5IXkhlaW5lCnRvbGxlIFBlcnNvZW5saWNoa2VpdCBoYXN0LCBkYW5uIHJ1ZiBkb2NoIG1hbCBhbiBiZWkgbWlyLi4uCgpJY2ggYmluIGF1Y2ggZWNodCBnYW56IHRvbGwgaW50ZXJlc3NhbnQsIGVjaHQhCgphY2hqYSwuLi4gZGllIHRlbGVwaG9ubnVtbWVyOgowMTkwIDMzMiAzMzIuLi4KClRzY2h1ZXNzLAoKIERlaW4gTWFydGluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW56ZWlnZSAoQ2F1bm8sIDEzLiBGZWIgMTk5NywgMTU6Mjg6MTEpOgp+IyEgcm49U2lkb2xpbiBydD04NTU4NDA0NDkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTU4NDA0NDkKT2RlciBkZXI6CgowMTkwIC0gNjY2IDY2NgpGdWVyIGRlaW5lbiBGbGlydCBtaXQgZGVtIEFudGljaHJpc3Rlbi4KCkMuIE5vCgpnYW56IHRldWVyIHdlcmRlbiBkaWUgYWNodGVuIC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktudWRkZWxkcmFjaGVuc2Fpc29uIGluIE11ZW5jaGVuISEgOikgKEFuY2FsYWdvbiwgMTQuIEZlYiAxOTk3LCAxOTozNzowOSk6CktudWRkZWxzIQpJY2ggd29sbHQgbnVyIHNjaG5lbGwgbWFsIHdhcyBhbnplaWdlbiEgOikKVm9tIDEuIGJpcyA4LiBNYWVyeiBiaW4gaWNoIGF1ZiBWZXJ3YW5kc2NoYWZ0c2Jlc3VjaCBpbiBNdWVuY2hlbi4gTXVlbmNoZW5lcgpNdWRkZXIgZGllIGludGVyZXNzaWVydCBzaW5kIG1hbCBlaW5lbiBLbnVkZGVsZHJhY2hlbiBsaWZlIHp1IGVybGViZW4sIGtvZW5uZW4Kc2ljaCBqYSBtYWwgYmVpIG1pciBtZWxkZW4uIGRhbm4ga2Vvbm5lbiB3aXIgZWluZW4gS2xvZW4tLCBLbmVpcGVuLSB1dW5kCktudWRkZWx0cmVtaW4gYXVzbWFjaGVuLi4uLi4KTWFpbHMgYW4gQW5jYWxhZ29uIGhpZXIgaW0gTUcgb2RlciBhbiB0ZW5vckBocnoudW5pLWJpZWxlZmVsZC5kZQpLbnVkZGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5jYWxhZ29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhY28ga251ZGRlbGxlbnNpcyBtYWpvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV0FOVEVEISEhIChDYXR3ZWF6bGUsIDE0LiBGZWIgMTk5NywgMjA6MDI6MjMpOgogICAgICAgICAgICAgICAgIFdBTlRFRCEhISEKIAogCiAgICAgICAgICBIVU5EIG1pdCBQQUxNRSBnZXN1Y2h0IQogCiAKICBWZXJtaXN0IHdlcmRlbiBlaW4gSHVuZCwgb2RlciBlaW4gaHVuZGUtCiAgICBhZWhubGljaGVzIFRpZXIgKG1vZWdsaWNoZXJ3ZWlzZSBlaW4gCiAgIFdvbHBlcnRpbmdlcikuIFVudmVyYWVuZGVybGljaGVzIEtlbm4tCiAgIHplaWNoZW4gaXN0IGVpbiBncm9zc2UgUGFsbWUsIGRpZSBpaG0KIChob2ZmZW50bGljaCAqYXJnbCopIHF1ZXIgaW0gTWF1bCBzdGVja3QuCiAKIEJlaSBzYWNoZGllbmxpY2hlbiBIaW53ZWlzZW4genVyIEF1ZmZpbmR1bmcKIGRlcyBIdW5kZXMgdW5kIGluc2Jlc29uZGVyZSBkZXIgUGFsbWUgYml0dGUKICBlaW5lIEJlbmFjaHJpY2h0aWd1bmcgYW4gZGFzIFNoZXJpZmZidWVybwogICAgICAgICAgb2RlciBkaXJla3QgYW4gQ2F0d2VhemxlLiAKIAogICAgICBFcyB3aXJkIGVpbmUgQmVsb2hudW5nIGF1c2JlemFobHQuCiAKIFVuZCB3ZWhlLCBkaWUgUGFsbWUgaXN0IGlyZ2VuZHdpZSBrYXB1dHQhISEKIAogCiAgIENhdHdlYXpsZSwgU2hlcmlmZgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdBTlRFRCEhISAoRnl0LCAxNi4gRmViIDE5OTcsIDIzOjMwOjIzKToKfiMhIHJuPUNhdHdlYXpsZSBydD04NTU5NDY5NDMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTU5NDY5NDMKCkhtLCBBc21vZGlzJyBIdW5kIGxpZWYgbmV1bGljaCBtaXQgaXJnZW5kd3MgaG9lbHplcm5lbSBpbSBNYXVsIHJ1bS4uLgpFcyBrb2VubnRlIGFiZXIgYXVjaCBuZSBQb3N0a2FiaW5lIGdld2VzZW4gc2Vpbi4uLiBvZGVyIHN0YW5kIEFzbW9kaXMKaW4gbmVyIFBvc3RrYWJpbmUuLi4gKmdydWViZWwqCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptZWluIE11ZCAoR3JpbW1ib3JuLCAxNy4gRmViIDE5OTcsIDE1OjQ4OjM2KToKfiMhIG9uPVRpYmVyaXVtIG90PTg1NjA4Mzk3OSBvZz1hbGxnZW1laW5lcwpJY2ggaGFiZSBqZXR6dCBlaW4gZWlnZW5lbiBNdWQsIG5vY2ggaW4gZGVyIEZlcnRpZ3N0ZWxsdW5nLCBhYmVyIGZ1bmt0aW9ucy0KYmVyZWl0LiBJY2ggZnJldWUgbWljaCBqZXR6dCBhdWYgamVkZW4gQmVzdWNoLgoKMTkzLjE4MC4yNDcuMTk0IFBvcnQgNDcxMQoKTUZHIFRpYmVyaXVtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmFmaWtrYXJ0ZW5wcm9ibGVtIChEaG9qYWt0LCAxNy4gRmViIDE5OTcsIDIxOjM0OjI2KToKaGFyZHNvZnR3YXJlIGlzdCBsZWlkZXIgcmFuZHZvbGwsIGRhaGVyIGhpZXIuLi4KSWNoIG1vZWNodGUgaW4gbmVtIHBjIG5lIG1kYS1rYXJ0ZSB1bmQgbmUgdmdhLWthcnRlIGJldHJlaWJlbiwgdW5kIHp3YXIgc29sbAp1bnRlciBsaW51eCBmdWVyIGRpZSB0ZXh0a29uc29sZW4gZGllIG1kYS1rYXJ0ZSBiZW51dHp0IHdlcmRlbiwgdW5kIGZ1ZXIgZG9zCmRpZSB2Z2Eta2FydGUuIFdpZSBicmluZyBpY2ggZGFzIGRlbSBsaW51eCBiZWk/IHN0YW5kYXJkbWFlc3NpZyB3aXJkIGZ1ZXIKYWxsZW4ga3JhbSBkaWUgdmdhLWthcnRlIGJlbnV0enQgKHNldWZ6KS4KS2hpZGFyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IG1laW4gTXVkIChMdWcsIDE3LiBGZWIgMTk5NywgMjE6Mzk6NTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg1NjE5MDkxNiByZz1hbnplaWdlbgp+IyEgdGlkPTg1NjE5MDkxNgpBZWhlbSwKCkdyaW1tYm9ybiwgRHUga29lbm50ZXN0IGRhcyBnZXRyb3N0IG5hY2ggU2NobWFycmVuIHZlcmxlZ2VuIDspCgpHcnVzcwpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYW5rZnVydCBpY2gga29tbWUgKFRhbWFyYSwgMjUuIEZlYiAxOTk3LCAyMDo1Nzo0NCk6CkhpICBJaHIgRnJhbmZ1cnRlciBXdWVyc3RjaGVuIHVuZCBhZXBwZWx3b2ktVHJpbmtlciEKTmVpbiwgaWNoIG1vZWNodGUgZXMgbWlyIG5pY2h0IGdsZWljaCBtaXQgRXVjaCB2ZXJkZXJiZW4sIGltIEdlZ2VudGVpbDoKSWNoIGtvbW1lIHp1IEV1c2NoIG5vY2ggSGVzc2UhCkFsbGVyZGluZ3MgbmljaHQgZ2FueiBmcmVpd2lsbGlnLCBkZW5uIG1laW4gQXJiZWl0Z2ViZXIgKHNwcmljaApTY2htZXJ6ZW5zZ2VsZHVlYmVyd2Vpc2VyIGZ1ZXIgZWluZ2VidXNzdGUgRnJlaXplaXQpIHZlcnNldHp0IG1pY2ggYWIgQXByaWwKbmFjaCBGcmFua2Z1cnQuIApVbmQgd2llIHNpY2ggZGllIE11ZW5jaG5lciBiencuIEthcmxzcnVoZXIgc29mb3J0IGRlbmVrbiBrZW9ubmUsIHN0ZWxsdCBzaWNoCm1pciBuYXR1ZXJsaWNoIG1hbCB3aWVkZXIgZGllIGJyZW5uZW5kZSBGcmFnZTogCldpZSwgdW5kIHdvIHdlcmRlIGljaCB3ZWl0ZXIgZGVtIE1VRCBmcm9laG5lbiBrb2VubmVuIQoKVGlwcyAoei4gQi4gZmFsbHMgamVtYW5kIGVpbiB2b3JsZXN1bmdzdmVyemVpaG5pZHMgdm9uIGRlciBVbmkgRi9NIGhhdCB1bmQgbWlyCnNhZ2VuIGthbm4sIGJpcyB3YW5uIGljaCBtaWNoIGZ1ZXIgd2VsY2hlbiBTdHVlZGllbmdhbmcoYXVzc2VyIE1hdGhlLGRlbiBoYXR0ZQppY2ggc2Nob24pIGVpbnNjaHJlaWJlbiBrYW5uLCBvaG5lIGplbWFuZCBuZW4gU3R1ZWRpZW5wbGF0eiB3ZWd6dW5laG1lbiB1bmQKd29zIGRhbm4genVtIFJlY2hlbi0KemVudHJ1dW0gZ2VodCkKYml0dGUgcGVyIFBvc3QgYW4gbWljaCEKCndvIHNlaWQgSWhyIEZyYW5rZnVydGVyIE11ZGRlci4uLm9kZXIgc2VpZCBJaHIgYWxsZSBhbiBkZXIgQm9lcnNlPwoKdGFtYXJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnJhbmtmdXJ0IGljaCBrb21tZSAoQm9lYmJlbCwgMjUuIEZlYiAxOTk3LCAyMToyMzoyNik6Cn4jISBybj1UYW1hcmEgcnQ9ODU2OTAwNjY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU2OTAwNjY0CgpOZWUsIHdpciB0cmVmZmVuIHVucyBpbW1lciBhbSBGcmFua2Z1cnRlci1XdWVyc3RjaGVuLVN0YW5kIHVuZCBzYXVmZW4gCkFlcHBlbHdvaSBhdXNtIEdlcmlwcHRlLi4uIHVuZCB3ZW5uIEhlaW56IGRhIGlzdCwgZ2lidCBlciB1bnMgbWFuY2htYWwKd2FzIGF1cyBzZWluZW0gQmVtYmVsLi4uIDstKQoKRWluIEJvZWJiZWwuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFydGlrZWwgenUgTUcgdW5kIG9ubGluZSBjaGF0IChIYXRlLCAgMy4gTWFyIDE5OTcsIDA5OjU2OjQ5KToKaHR0cDovL3d3dy5iZXJsaW5lci1tb3JnZW5wb3N0LmRlL2JtL2JpdHNfYnl0ZXMvdXAyZGF0ZS9vbmxpbmUvY2hhdC5odG1sCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYXJ0eWJpbGRlciArIFdXVyAoSGF0ZSwgIDMuIE1hciAxOTk3LCAxMDo0MjoyMik6CkhpLAoKaGllciBkaWUgSGlud2Vpc2UgZnVlciBkaWUgQmlsZGVybWFjaGVyOgoKRXMgd2VyZGVuIGpwZyB1bmQgZ2lmIGJpbGRlciBha3plcHRpZXJ0LiBCaXR0ZSB6dSBkZXIgQmlsZGVyc2FtbWx1bmcgZWluZSAKRGF0ZWkgSU5GTyBhbmxlZ2VuLCB3ZWxjaGUgZGFzIGZvbGdlbmRlIEZvcm1hdCBoYWJlbiBzb2xsdGU6CgpkYXRlaW5hbWU8VEFCVUxBVE9SPkVya2xhZXJ1bmcgenVtIEJpbGQgYWxzIGVpbmUgTGFuZ2UgWmVpbGUhCgpBdWYgZGllc2UgQXJ0IHVuZCB3ZWlzZSBrYW5uIGljaCBsZWljaHQgZGVuIEluZGV4IGZ1ZXIgZGllIEJpbGRlciBlcnN0ZWxsZW4KdW5kIHdpciBlcnNwYXJlbiB1bnMgYWxsZSBlaW5lIE1lbmdlIEFyYmVpdC4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFcnN0dmVyb2VmZmVuZGxpY2h1bmcgKEdyaW1tYm9ybiwgIDMuIE1hciAxOTk3LCAxNDozODoyNCk6Cn4jISBvbj1BcmdvY2ggb3Q9ODU2OTM3MTIwIG9nPWFsbGdlbWVpbmVzCk5vY2ggbmllIGdlYnJhdWNodCwgbm9jaCBuaWUgdmVybWlzc3QsIG51biBpc3QgZXIgZGE6CgogbW0gICBtbSAgIGdnZ2cgICBtbSAgIG1tICAgY2NjYwogbSBtIG0gbSAgZyAgICBnICBtIG0gbSBtICBjICAgIGMKIG0gIG0gIG0gIGcgICAgICAgbSAgbSAgbSAgYwogbSAgbSAgbSAgZyBnZ2dnICBtICBtICBtICBjCiBtICAgICBtICBnICAgIGcgIG0gICAgIG0gIGMgICAgYwogbSAgICAgbSAgIGdnZ2cgICBtICAgICBtICAgY2NjYwoKCnp1IGZpbmRlbiB1bnRlcgoKICBmdHA6Ly9tdWQudW5pLW11ZW5zdGVyLmRlL2luY29taW5nL21nbWMKICBmdHA6Ly9tdWQudW5pLW11ZW5zdGVyLmRlL2luY29taW5nL21nbWMuMQoKCldvcnVtIGVzIGdlaHQ6CiAgCiAgRGllIG5hZWNoc3RlIEdlbmVyYXRpb24gTXVkLUNsaWVudHMgaXN0IG51biBlbmRsaWNoCiAgZGEuCiAgCiAgCldhcyBtYW4gZGF6dSBicmF1Y2h0OgoKICBFaWdlbmRsaWNoIG51ciBlaW5lIGJhc2ggdW5kIGVpbmVuIHdpc2guIEZ1ZXIgZGllIEFubGVpdHVuZwogIGF1Y2ggbm9jaCB0cm9mZiB1bmQgbW9yZS4KICBTb2xsdGUgYmVpIGVpbmVtIG5vcm1hbGVuIExpbnV4IGFsbGVzIGRhYmVpc2Vpbi4KICBGdWVyIGRpZSBMZXV0ZSwgZGllIGF1ZiB0ZiBzY2h3b2VyZW4sCiAgKCJlaW56aWdlIGVjaHRlIGNvbW1hbmQuY29tLVNrcmlwdC1rLi4uZSAsIHVuYmVkaW5ndCBhbnR1biIpCiAga2FubiBtYW4gYXVjaCB0ZiwgeHRlcm0gdW5kIGV4cGVjdGsgZGF6dSB2ZXJ3ZW5kZW4uCiAgCgpEZXIgSGFrZW46CgogIEFsbGVzIG5vY2ggQWxwaGEuIEVyc3QgendlaSBTcGllbGFiZW5kZSBFbnR3aWNrbHVuZyBkcmluLgoKClp1ciBCZXNhZW5mdGlndW5nIGRlciBHb2V0dGVyOgoKICBOZWluLCBkaWVzbWFsIGtlaW4gQ2xpZW50IG1pdCBkZW0gU2Nod2VycHVua3QgYXVmIFNjcmlwdGUuCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRhcyBwZ3AtWmVydGlmaWthdCBmdWVyIG1nbWMgaXN0CgotLS0tLUJFR0lOIFBHUCBNRVNTQUdFLS0tLS0KVmVyc2lvbjogMi42LjNpCgppUUVWQXdVQU14UE5yZHpxOG8va1ZYOWhBUUZseVFnQWpzcC9Kb2V2NVNuZWVZQkxjZEhYQUc3RTE3anlURFFrCmhTMXY0Q3IvT3RLYzUyMitKNGdHT2tYQStkRlAyUFVrTWJPczlISzF6aXo3N0t2RTQ2T1RCNWNCZFFScWJlOVAKMmMzV3hVa2tadEM0MTdGd0tRalBBKy9UdGJuQk8ydldwdzR1dXJ6M3ZiMU5Ibjk2TUpBNVl4aHJjRmk3TXB4VgpvY2NsdURFTFpzYkZhcXhTZXFmQVJoM3pUK2FOemhINkhFVU9qb2tIakwzN2pHZ0RiYytoNkR5NVZOREtkM0hFCjJ5VDlHRVdqdG84b1NtRjNUSFVCY2h5NGVLV1lHR1d3VUZKY2tUa3dBakwxTVBLaVlSV3c2VFFJU0s4bnpXOVIKWkhTZjBLbVlNeENHa2NBcSswUnVHNHdRV1hGRWR0OUpEZkVKeHY4S2pwWWlHa2xPaHpMV1JBPT0KPUt0bW4KLS0tLS1FTkQgUEdQIE1FU1NBR0UtLS0tLQoKVW5kIGZ1ZXIgbWdtYy4xCgotLS0tLUJFR0lOIFBHUCBNRVNTQUdFLS0tLS0KVmVyc2lvbjogMi42LjNpCgppUUVWQXdVQU14UEh6ZHpxOG8va1ZYOWhBUUhDdVFmL1lJOHU1QjZ4ck81MkRIZzJLaWg5QnBNczJ5TU01WFY0ClJ6Vi85YjVrYmJHd3FqTTU3eHlENXFrcGs1UStzeWJBVENjbDhiWWFpeDl3SC9ibFRoSjRnVDU2ellaNDdGOWEKTDdPTld4TDFmTHphODRTeVpycUZIVlc5NG1QbnU5Nlp3dWxHUHYxb05GRVNhdTVITG9iRjBPaEdnb3RwcC9hbwp5WHZpVEFnd3ZSWmJZbkJmWW8vQS83SW4yVG1JOFNGY2hvZ1VpNitCQVA1eVJnWjg2K3ZCNjhudng1S0VLL1A2CkpuS0pCRG1PQ25MMlIrT29iWmpSMGpRVzFlelUxVWZ6WVgwQU5hWTZHc3g3c2R1anZXbmlqbkhsMDVMUHpRdzAKZE1zUGo4RmVYZGt1dituaXRienFtdkFwSWdRUkl4N3BEblZxNVV0VDVianRxVGF1VWRRYmJ3PT0KPUF4WEMKLS0tLS1FTkQgUEdQIE1FU1NBR0UtLS0tLQoKRGVuIGtleSBnaWJ0IGVzIHVudGVyICJmaW5nZXIgZ2Vyb2xkLXBncEBwb2dvLm93bC5kZSIsIGplZGVuZmFsbHMKbWFuY2htYWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEZyYW5rZnVydCBpY2gga29tbWUgKEx1ZywgIDQuIE1hciAxOTk3LCAyMTowNDoyNCk6Cn4jISBybj1Cb2ViYmVsIHJ0PTg1NjkwMjIwNiByZz1hbnplaWdlbgp+IyEgdGlkPTg1NjkwMDY2NApNb2luLAoKYWxsZXMgZmFsc2NoLiBEaWUgRnJhbmtmdXJ0ZXIgc2luZCBuaWNodCBpbSBHYWxzLCBzb25kZXJuIG1hbiBmaW5kZXQgc2llIGltClp1Zy4KClNvb29vbyBzaWVoZGRhcyBhdXMKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGcmFua2Z1cnQgaWNoIGtvbW1lIChCb2ViYmVsLCAgNC4gTWFyIDE5OTcsIDIxOjQ3OjAyKToKfiMhIHJuPUx1ZyBydD04NTc1MDU4NjQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTY5MDA2NjQKCkhtbW0sIEx1ZywgZGllc21hbCBoYWJlbiB3aXIgRGljaCBhYmVyIG5pY2h0IGltIFp1ZyBnZXRyb2ZmZW4uLi4gOigKRXMga2FubiBhbGxlcmRpbmdzIGF1Y2ggZGFyYW4gbGllZ2VuLCBkYXNzIHdpciBtaXQgZGVtIEF1dG8gZ2VmYWhyZW4gc2luZC4uLgo7KQoKRWluIEJvZWJiZWwuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZyYW5rZnVydCBpY2gga29tbWUgKEx1ZywgIDYuIE1hciAxOTk3LCAwMjo1NzowMSk6Cn4jISBybj1Cb2ViYmVsIHJ0PTg1NzUwODQyMiByZz1hbnplaWdlbgp+IyEgdGlkPTg1NjkwMDY2NApBZWhlbSwKCm9kZXIgZGFyYW4sIGRhc3MgaWNoIGdhciBuaWNodCBrb21tZW4ga29ubnRlPwoKTHVnCgpQLlMuOiAtPiBTY2htYXJyZW4gb2RlciBDYXN0b3IuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwaG9uZXRpc2NoZXIgRm9udCAoR3JpbW1ib3JuLCAgNi4gTWFyIDE5OTcsIDEzOjMyOjA1KToKSWNoIHdlaXNzLCBkYXNzIGljaCBoaWVyIGphIHdlbmlnIENoYW5jZW4gaGFiZSwgZGllIFBoaWxvbG9nZW4gZHVlcmZ0ZW4gaGllcgppbiBkZXIgVW50ZXJ6YWhsIHNlaW4uLi4KSWNoIHN1Y2hlIGVpbmVuIHBob25ldGlzY2hlbiBGb250IGZ1ZXIgV2luZG93cywgZGVyIHBob25ldGlzY2hlCihTdGFuZGFyZC0pemVpY2hlbiBkYXJzdGVsbGVuIGthbm4sIHdpZSBiZWlzcGllbHN3ZWlzZSBlaW4gImUiIG1pdCBlaW5lbQp3YWFnZXJlY2h0ZW4gU3RyaWNoIGRydWViZXIsIHNvIGluIGRlciBBcnQuClRpcHMgaW4gZGVyIEFydCAia2FubiBtYW4gc2VsYmVyIGJhdWVuIiBzaW5kIG5pY2h0IHNvIGhpbGZyZWljaCwgZXMgX2dpYnRfCnNvd2FzLCBkaWUgRnJhZ2UgaXN0IG51ciB3byAob2RlciB2b24gd2VtKS4gV2FlcmUgd2lya2xpY2ggc2Nob2VuLCB3ZW5uIGplbWFuZApqZW1hbmRlbiBrZW5udCwgZGVyIGVpbmVuIEJydWRlciBoYXQsIGRlc3Nlbi4uLiBldGMuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBwaG9uZXRpc2NoZXIgRm9udCAoTHVnLCAgNi4gTWFyIDE5OTcsIDIzOjEwOjE0KToKfiMhIHJuPUdyaW1tYm9ybiBydD04NTc2NTE1MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTc2NTE1MjUKTW9pbiwKCnJ1ZiBpbSBTZW1pbmFyIGZ1ZXIgYWxsZ2VtZWluZSBTcHJhY2h3aXNzZW5zY2hhZnRlcm4sIFVuaSBNYXJidXJnLCBQcm9mLiBKb2IKYW4uIERlciBoYXQgc293YXMgOykKCkdydXNzCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHVua3JvY2suLi4gKEhhciwgIDcuIE1hciAxOTk3LCAxMTo1NTozMSk6Ck1haGx6ZWl0IQpEaWUgUGlscyBBbmdlbHMgdHJldGVuIGhldXRlIEFibmVkIGltIFJhaG1lbiBlaW5lcyBGdXNiYmFsYWJlbmRzIGF1Zi4gZ2VwbGFudGUKTGFlbmdlOiAyIHggNDUgbWluIHBsdXMgZ2VnZWJlbmZhbGxzIFZlcmxhZW5nZXJ1bmcuIERhcyBWb3JzcGllbCBiZXN0cmVpdGVuCmRpZSBsb2JzdGVycyBhYiAxOTozMCBpbSBEcm9laG5zY2h1cHBlbiBHbGFkYmVjay4KV2VyIGFsc28gbml4IGJlc3NlcmVzIHp1IHR1biBoYXQuLi4KCgpoYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldvaG51bmcgZnJlaSAoTGFyaXNzYSwgIDcuIE1hciAxOTk3LCAxOTowNDoyOSk6CgpIb2khCkF1cyBnZWdlYmVuZW0gQW5sYXNzLCB0ZWlsZSBpY2ggaGllcm1pdCBtaXQsCgpkYXNzIGljaCBtZWluZSBhbHRlIFdvaG51bmcgaW4gS29lbG4gbG9zd2VyZGVuIG1vY2h0ZSwgCmFsc28sIHdlciBpbnRlcmVzc2UgaGF0LCBvZGVyIGplbWFuZGVuIGtlbm50LCBvZGVyIGplbWFuZGVuIGtlbm50LCBkZXIKamVtYW5kZW4ga2VubnQsCgpEaWUgV29obnVuZyBpc3Qgc2VociBrbGVpbiwgY2EuIDI3IHFtLCBydWhpZywgaGVsbCwgNC4gT0csIDUzMCBXQVJNLApQYXJrZXR0Ym9kZW4sIG5ldSByZW5vdmllcnQsCgoKQmVpIGludGVyZXNzZSBtYWlsIGFuIG1pY2ggOikKCgpUaGFua3MgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBwaG9uZXRpc2NoZXIgRm9udCAoRmxvcmEsIDEwLiBNYXIgMTk5NywgMDk6MzM6MzMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg1NzY1MTUyNSByZz1hbnplaWdlbgp+IyEgdGlkPTg1NzY1MTUyNQoKSG1tLCBzb3dhcyBoYWIgaWNoIG1pciBtYWwgbWl0IGZ0cCBiZXNvcmd0LiBGcmFnIG1hbCBBcmNoaWUsIGRpZSBGb250cyBoaWVzc2VuCmdsYXViIGljaCBpcmdlbmR3YXMgbWl0IFNJTC1JUEEgb2RlciBzbyBhZWhubGljaCA/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTVVEUy9aZWl0c2NocmlmdCAoRmxpbngsIDEwLiBNYXIgMTk5NywgMTM6NDk6MTgpOgpXZW4ncyBpbnRlcmVzc2llcnQgOgoKSW4gZGVyIGFrdHVlbGxlbiBQQ1ByYXhpcy1TcGV6aWFsL09ubGluLVByYXhpcyBzdGVodCBlaW4gCkFydGlrZWwgdWViZXIgTXVkcyAodm9yIGFsbGVuIERpbmdlbiB1ZWJlciBkYXMgV3VuZGVybGFuZAphYmVyIGF1Y2ggdWViZXJzIE1HKS4gTmFjaHp1bGVzZW4gdm9uIFMuMTA3IGJpcyAxMTEuCgpGbGlueAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGluYmFsbCAoQXVncmEsIDEwLiBNYXIgMTk5NywgMTk6MTY6MDkpOgpJY2ggc3VjaCBuZW4gbmV0dGVuIFBpbmJhbGwsIGhhdCB3ZXIgbmUgQWRyZXNzZT8KQXVncmEuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGluYmFsbCAoQXVncmEsIDEwLiBNYXIgMTk5NywgMTk6MTc6NDMpOgpGdWVyIE1ldGhlZHJhcywgQ2FyYWxlaW46CkljaCBzdWNoIG5lbiBGbGlwcGVyOikKQXVncmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQaW5iYWxsIChBcnR5LCAxMC4gTWFyIDE5OTcsIDE5OjE4OjQ4KToKfiMhIHJuPUF1Z3JhIHJ0PTg1ODAxNzg2MyByZz1hbnplaWdlbgp+IyEgdGlkPTg1ODAxNzg2MwpIbSwgaWNoIGhhYmUgZWluZW4gbmV0dGVuIEZsaXBwZXIgenUgSGF1c2UgdW5kIGF1Y2ggZWluZSBBZHJlc3NlLi4uIDotKQoKT2ssIGFiIG5hY2ggc2NobWFycm4uLiA7KQoKIEFydHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUGluYmFsbCAoTWV0aGVkcmFzLCAxMC4gTWFyIDE5OTcsIDE5OjIwOjA0KToKfiMhIHJuPUFydHkgcnQ9ODU4MDE3OTI4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU4MDE3ODYzClBvZWghIE51ciB3ZWlsIGRhcyBiZWkgbWlyIGltIHZvcmxldHp0ZW4gSmFocnplaG50IHdhciwgZGFzcyBpY2ggc293YXMKZ2VzcGllbHQgaGFiZSwgYnJhdWNoc3RlIG1pY2ggbmljaHQgZ2xlaWNoIGhpZXIgYmxvc3N6dXN0ZWxsZW4uCipzY2htb29vb29vb29vb29vb29vbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCoKCiAgICAgICBCZXJnY2hlbiBNZXRoZWRyYXMgLSBzcGllbHQgQmlsbGlhcmQhIChSTCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQaW5iYWxsIChab3JybywgMTEuIE1hciAxOTk3LCAwOTo1ODowNCk6Cn4jISBybj1BdWdyYSBydD04NTgwMTc4NjMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTgwMTc4NjMKRGVuIEZsaXBwZXIgZ2lidCBlcyBiZWkgQWxkaSBpbiduZXIgVGh1bmZpc2NoLURvc2UuIDopPQoKR3J1c3MgWm9ycm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQaW5iYWxsIChQaWxncmltLCAxMS4gTWFyIDE5OTcsIDE1OjIzOjUwKToKfiMhIHJuPUF1Z3JhIHJ0PTg1ODAxNzg2MyByZz1hbnplaWdlbgp+IyEgdGlkPTg1ODAxNzg2MwpIbW1tLApuZW4gYmlzY2hlbCBnZW5hdWVyIGdlaHRzIG5pY2h0IC4uLgoKQWxzbywgaWNoIG5lbWUgbWFsIGFuLCBEdSBzdWNoc3QgbmVuICdyZWFsJyBGbGlwcGVyYXV0b21hdGVuIC4uLgpEYSBrZW5uIGljaCBudXIgZWluZSBBZHJlc3NlOiBIRUlLVSBBdXRvbWF0ZW4gaW4gKGdydWViZWw6IEJvY2h1bT8/PykKRGllIGdlbmF1ZSBBZHJlc3NlIG11c3MgaWNoIHp1aGF1c2UgbmFjaHNlaGVuIC4uLiBkYSBoYWIgaWNoIGRlcmVuIEthdGFsb2cKClBpbGdyaW0KCih3aWxsIGF1Y2ggKGJhbGQpIG5lbiBGbGlwcGVyIDstKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUGluYmFsbCAoUGlsZ3JpbSwgMTIuIE1hciAxOTk3LCAxNDoxMDoyNSk6Cn4jISBybj1QaWxncmltIHJ0PTg1ODA5MDIzMCByZz1hbnplaWdlbgp+IyEgdGlkPTg1ODAxNzg2MwpPLksuLAoKaGllciBhbHNvIGRpZSBBZHJlc3NlIGRlcyBCaWxsaWFyZC0sIEtpY2tlci0sIERhcnQtIHVuZApVbnRlcmhhbHR1bmdzYXV0b21hdGVudmVyc2VuZGVycyBIRUlLVS1BdXRvbWF0ZW4gKGhhdCBlYmVuZmFsbHMgbmUKVmVya2F1ZnNhdXNzdGVsbHVuZykuCgpIRUlLVSBBdXRvbWF0ZW4KSGVpbnogS3ViaW5pb2sKTG9ocmhlaWRlc3RyLiA1Ngo0NDg2NiBCb2NodW0tV2F0dGVuc2NoZWlkCgpUZWYuOiAwMjMyNy8zNzQxCiphZWguLi4gVEVMLikKRmF4LjogMDIzMjcvMzc0NQoKS2F0YW9sZyBnYWJzIGtvc3RlbmxvcyAuLi4gYWxsZXJkaW5ncyBzb2xsdGUgbWFuIGdlcmFkZSBmdWVyIEZsaXBwZXIgbWFsCnBlcnNvZW5saWNoIHZvcmJlaWZhaHJlbiwgZGEgaW0gS2F0YWxvZyAoc28gc3RlaHRzIGRhIHp1bWluZGVzdCkgbnVyIGVpbmUKQXVzd2FobCB2b24gR2VyYWV0ZW4gZGFyZ2VzdGVsbHQgc2luZCAuLi4gbmFqYSwgc29sbHRlIG1hbiBzb3dpZXNvICwtKQoKUGlsZ3JpbQood2Vpc3MgbmljaHQsIHdhcyBpaHIgU3BpZWxoYWxsZW5iZXNpdHplciBlbXBmaWVobHQsIGVyIGFiZXIgZW1wZmllbHQgYWxzCkNvbXB1dGVyLUVyc2F0ei1Ecm9nZShhZWggUGluYmFsbCkgOiBQcm8gUGluYmFsbCAtIFRoZSBXZWIgLi4uIGRhcyBiZXN0ZQooc3ByaWNoIHJlYWxpc3Rpc2NodGUpIFBpbmJhbGwtU3BpZWwgZnVlciBDb21wdXRlciwgZGFzIGljaCBrZW5uZSEpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSVRIQyAoQXN0YXIsIDEzLiBNYXIgMTk5NywgMTM6MTk6MTUpOgpTbywgbWFsIGVpbiBrbGVpbmVyIFZlcmFuc3RhbHR1bmdoaW53ZWlzcyB2b24gbWlyLCBmdWVyIGFsbGUgTW90b3JhZGZhbnMKKFRydWNrZXIgd2VyZGVuIHdpciBoaWVyIHdvaGwgd2VuaWdlciBoYWJlbi4uLik6CgogICAgICAgICAgICAgSW50ZXJuYXRpb25hbGVzIFRydWNrZXIgLSBIYXJsZXkgLSBDb3VudHJ5IC0gRmVzdGl2YWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMjcuMDYuOTcgLSAyOS4wNi45NykKICAgICAgICAgICAgICAgICAgICAgICAgIDcyMjAyIE5hZ29sZCAtIE1lc3NlZ2VsYWVuZGUKClZlcmFuc3RhbHRlcjogQXNwaGFsdC1Db3dib3kgS2xhdXMgQmVja2VyCiAgICAgICAgICAgICAgSGFybGV5LURhdmlkc29uLUNsdWIgTm9yZHNjaHdhcnp3YWxkCgpGcmVpdGFnIDI3LjA2LjoKICAxMSBVaHIgRmVzdGVyb2VmZm51bmcgbWl0IExpdmUtVWViZXJ0cmFndW5nIHZvbiBSYWRpbyBCQgogIENvdW50cnktTGFkeSBEYWdtYXIgLSBHZXdpbm5lcmluIEdvbGRlbmVyIFRydWNrIDE5OTYKICBJbiBkZW4gUGF1c2VuIFJhbmtlLU11c2ljCiAgQWIgMjAgVWhyIEZlc3R6ZWlsdCAiSy5PLiIgbGl2ZQoKU2Ftc3RhZyAyOC4wNi46CiAgSW0gRmVzdHplbHQgYWIgMTMgVWhyIENvdW50cnktTXVzaWMgbGl2ZSBtaXQgZGVyICJDb3VudHJ5LVN0cmluZyBCYW5kIgogIEVpbnRyZWZmZW4gZGVyIFRydWNrcyB1bmQgSGFybGV5cyBiaXMgZXR3YXMgMTUuMDAgVWhyCiAgQWIgMTkgVWhyIGltIFplbHQgQ291bnRyeS1NdXNpYyBtaXQgZGVuICJMb25lIFN0YXJzIiBhdXMgU2Nod2VpbmZ1cnQKClNvbm50YWcgMjkuMDYuOgogIEFiIDkgVWhyIEZydWVoc2Nob3BwZW4gbWl0IGRlbiAiQmVyZGFiZW5nZWwiIGF1cyBXYWxkZG9yZgogIEFiIDE1IFVociAiS25hcHAgZWluIEphaHIiIENvdW50cnktTXVzaWMgYXVzIFJhdmVuc2J1cmcKICBad2lzY2hlbmR1cmNoIFBva2FsdmVybGVpaHVuZyBmdWVyIFRydWNrcyB1bWQgSGFybGV5cyBkdXJjaCBlaW5lbiBTdGFyZ2FzdCEKICBFbmRlIGRlciBWZXJhbnN0YWx0dW5nIHVuZCBWZXJhYnNjaGllZHVuZyBkZXIgVHJ1Y2tzIHVuZCBIYXJsZXlzIGNhLiAyMSBVaHIKCkF1ZiBkZW0gRmVzdHBsYXR6IGFuIGFsbGVuIGRyZWkgVGFnZW46CiAgVmVya2F1ZnMtIHVuZCBJbWJpc3NzdGFlbmRlLCBCdWxsLVJpZGluZywgVHJ1Y2stU2hvdywgRVVST0JVTkdZLCBIdWVwZmJ1cmcsCiAgS2luZGVya2FydXNzZWxsLCBGZXJuZ2VzdGV1ZXJ0ZSBNaW5pLVRydWNrcywgUmVubnRvdXJlbi1XYWdlbiwgSW5kaWFuZXItLwogIENvdW50cnktVGFuenZvcmZ1ZWhydW5nZW4sIEJpa2VyLUFydGlrZWwsIFNob3d0cnVwcGUgRml0bmVzc3dvcmwgQmxlc3NpbmcsCiAgUG9saXplaS1JbmZvc3RhbmQsIEh1YnNjaHJhdWJlciBkZXIgUmV0dHVuZ3N3YWNodCwgZnVlciBTYW1tbGVyIHZvbiBNaW5pYS0KICB0dXJhdXRvcyBnaWJ0IGVzIGVpbiBUcnVja3NvbmRlcm1vZGVsbCB2b24gSGVycGEgMTo5NywgLi4uIHVuZCB3ZWl0ZXJlCiAgQXR0cmFrdGlvbmVuCgogIChBZW5kZXJ1bmdlbiB2b3JiZWhhbHRlbikKCkluZm8tSG90bGluZTogMCA3NCA1MiAvIDMwIDMwIHVuZCA4IDEzIDQxICAgCkVpbnRyaXR0OiBETSA1LC0gcHJvIFRhZyAvIEtpbmRlciBiaXMgMTAgSmFocmUgZnJlaQoKCkFzdGFyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBpbmJhbGwgKEhlZmUsIDEzLiBNYXIgMTk5NywgMTQ6MDU6MDApOgpIaSBBdWdyYSAhCgpCZWkgbWlyIGRhaGVpbSBpbiBCYWluZHQgZ2lidCdzIG5lIFNwaWVsYXV0b21hdGVuZmlybWEuClZpZWxsZWljaHQgbG9obnQgZXMgc2ljaCwgZGEgbWFsIG5hY2h6dWZyYWdlbjsgaWNoIGhhYiBkYSBhdWNoIHNjaG9uIG1hbCBuZW4KZ2VicmF1Y2h0ZW4gS2lja2VyIGZ1ZXIgJ25lIEp1Z2VuZGdydXBwZSBiZWtvbW1lbi4KRGllIEZpcm1hIGlzdCAiQXV0b21hdGVuIEtsaW5nIiBpbiA4ODI1NSBCYWluZHQuCgpHcnVzcyBIZWZlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSVRIQyAoS3JldGVrLCAxNC4gTWFyIDE5OTcsIDAzOjA1OjMyKToKfiMhIHJuPUFzdGFyIHJ0PTg1ODI1NTU1NSByZz1hbnplaWdlbgp+IyEgdGlkPTg1ODI1NTU1NQpOYSwgd2VubiBEdSBEaWNoIGRhIG51ciBtYWwgbmljaHQgdGFldXNjaHQhIDstKQoKRGVyIEVyenZhbXBpciBmYWVocnQgaW4gZGVuIFNlbWVzdGVyZmVyaWVuIG1pdCByZWdlbG1hZXNzaWdlciBTaWNoZXJoZWl0CkJydW1taXMgZHVyY2ggU3VlZGRldXRzY2hsYW5kIHNwYXppZXJlbi4uLgoKCiAgICAgICB8IC8gIHxcICB8LS0gIC0tLSAgfC0tICB8IC8KICAgICAgIHw8ICAgfC8gIHwtICAgIHwgICB8LSAgIHw8CiAgICAgICB8IFwgIHxcICB8LS0gICB8ICAgfC0tICB8IFwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZlbGFndW5kIFtkZV06IGhhZXR0ZXN0IGRhcyBqYSBhdWNoIG1hbCBpbiBkaWUgbXBhLi4uLiAoSmFzcGVyLCAxNC4gTWFyIDE5OTcsIDA2OjQ4OjU5KToKLi4ubmFqdXV1aHQsIGRhYWFodCBkaW5nZW5zIGhhdCBlaW5lIG5ldWUgYWRyZXNzZQoKIDEzMC4yMzEuMTYxLjE5OSAzMDAwCgpVZWJyaWdlbnMgQmF5ZXJuIHdpcmQgTWVpc3RlciB1bmQgaWNoIHNldHplIGRlbiBQYWNrdW5nIEx1Y2t5IFN0cmlrZXMgZGFyYXVmCjpQCgpKYXNwZXIgamFwc3Qgc28gZnJ1ZWggYW0gbW9yZ2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc3VjaGUgV0lOTkxTLkRMTCAoQ2F1bm8sIDE0LiBNYXIgMTk5NywgMTE6NTg6MzYpOgpJY2ggc3VjaGUgZWluZSBEYXRlaSBuYW1lbnMgV0lOTkxTLkRMTCBmdWVyIG1laW4gV2luZG93cy4KTWFuY2hlIFByb2dyYW1tZSB2b24gSmFwYW5pc2NoZW4gU2VydmVybiBzY2hlaW5lbiBudXIgZGFtaXQgenUgbGF1ZmVuIC4uLgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGZWxhZ3VuZCBbZGVdOiBoYWV0dGVzdCBkYXMgamEgYXVjaCBtYWwgaW4gZGllIG1wYS4uLi4gKEFuY2FsYWdvbiwgMTQuIE1hciAxOTk3LCAxNTowODowMik6Cn4jISBybj1KYXNwZXIgcnQ9ODU4MzE4NTM5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU4MzE4NTM5CktudWRkZWxzIHZvcndlZyEgOikKQWxzbywgd2VyIGdlZ2VuIEJpZWxlZmVsZCB2ZXJsaWVydCBzb2xsdGUgdWVicmVoYXVwdCBuaWNodCBNZWlzZXRyIHdlcmRlbgpEVUVSRkVOISEhIDopICBBdXNzZXJkZW0gcGFja2VuIHNpZXMgZWgnIG5pY2ghICpncmlucyoKS251ZGRlbHMgaGludGVuZHJhbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuY2FsYWdvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcmFjbyBrbnVkZGVsbGVuc2lzIG1ham9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmVsYWd1bmQgW2RlXTogaGFldHRlc3QgZGFzIGphIGF1Y2ggbWFsIGluIGRpZSBtcGEuLi4uIChBc21vZGlzLCAxNC4gTWFyIDE5OTcsIDE3OjU4OjE3KToKfiMhIHJuPUphc3BlciBydD04NTgzMTg1Mzkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTgzMTg1MzkKU28sIHdpZSBCYXllcm4gaW4gbGV0enRlciBaZWl0IHNwaWVsdCwgd2VyZGVuIHNpZSBob2VjaHN0ZW5zIFdhbGRtZWlzdGVyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYXJ0eWJpbGRlciAoSGF0ZSwgMTcuIE1hciAxOTk3LCAxMjozNToyNik6CkhpLAoKaWNoIGhhYmUgUGFydHliaWxkZXIgdm9tIFNvbW1lcmNhbXAgdm9uIGplbWFuZCB1bmJla2FubnRlbSB1bmQgdm9uCkdyaW1tYm9ybiBlbmRsaWNoIGVpbmdlYnVuZGVuLiBXZWl0ZXJoaW4gc2luZCBTZW1pcmFzIEJpbGRlciBpbSBXZWIgYXVmCmRlbiBQYXJ0eXNlaXRlbiBkZXIgS2FybHNydWhlciBQYXJ0eS4KCkFsc28gZXMgbG9obnQgc2ljaCBub2NobWFsIGF1ZiBkaWUgU29tbWVyY2FtcCBzZWl0ZW4genUgc2NoYXVlbi4KQWxsZXJkaW5ncyB3ZWlzcyBpY2ggbmljaHQgdm9uIHdlbSBkaWUgZWluZSBCaWxkZXJzYW1tbHVuZyBpc3QsIGRhIGtlaW5lcgpsZWkgaW5mb3MgZGF6dSBkYSB3YXJlbgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhdGNvbSBDL0MrKyAoVGhpbmdvbCwgMjEuIE1hciAxOTk3LCAwOToxMzo1Nyk6CmhhbGxvLAoKc3VjaGUgd2F0Y29tIGMvYysrIGNvbXBpbGVyIG1pdCBkb3MgZXh0ZW5kZXIgLi4uCgp0aGluZ29sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXIga2VubnQgcGFhciBwYXNzZW5kZSBXZWJzZWl0ZW4gYnp3IGthbm4gbWljaCBhdWYgYW5kZXJzIE1hdGVyaWFsIGhpbndlaXNlbiB6dSAuLi4gKEJvbWJhZGlsLCAyMy4gTWFyIDE5OTcsIDIwOjQ3OjU0KToKCkljaCBzdWNoZSBwYWFyIFdlYnNlaXRlbiwgTGl0ZXJhdHVydmVyd2Vpc2UsIEFucmVndW5nZW4genUgZGVyCmJhdWdlc2NoaWNodGxpY2hlbiBWZXJ3ZW5kdW5nIHZvbiBOYXR1cnN0ZWluLiBOYWphLCBFbnR3aWNrbHVuZywgU3RhdGlvbmVuLApoZXV0aWdlIE1vZWdsaWNoa2VpdGVuIHVzdy4KV2VubiBkYSBqZW1hbmQgZXR3YXMgenUga2VubnQsIGRhbm4gd2FlcmUgaWNoIGZ1ZXIgbmUgTWFpbCBzZWhyIGRhbmtiYXIuCgpCb21iYWRpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTXVkLkRFIGlzdCBqZXR6dCBSZWFsaXRhZXQhIChIYXRlLCAyNC4gTWFyIDE5OTcsIDIwOjUwOjMwKToKSGksCgphYiBzb2ZvcnQga2FubiBtYW4gTW9yZ2VuR3JhdWVuIHVudGVyIGRlciBBZHJlc3NlICJtZy5tdWQuZGUiIGFuc3ByZWNoZW4uCgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXRjb20gQy9DKysgKFJhZmZpLCAyNC4gTWFyIDE5OTcsIDIyOjEwOjE2KToKfiMhIHJuPVRoaW5nb2wgcnQ9ODU4OTMyMDM3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU4OTMyMDM3CkthdWZlbiA/IQpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQUwgKEhhcmRpbCwgMjUuIE1hciAxOTk3LCAxMTowMzo1MSk6CgpJY2ggd2Vpc3MgbmljaHQsIG9iIGRhcyBpbiAnYW56ZWlnZW4nIGdlaG9lcnQuLi4gYWJlciBzbyAnd2FzIGFlaG5saWNoZXMgaXN0CmVzIHNjaG9uLiA6LSkKCkFsc286IGluIGRlciBsZXR6dGVuIFplaXQga2FtIGltbWVyIHdpZWRlciBkYXMgR2VydWVjaHQgYXVmLCBkYXNzIGRhcwpBbmRlckxhbmQgc3RlcmJlbiB3dWVyZGUsIHdlaWwgR3VuZHVyIGJhbGQgc2VpbmVuIGFjY291bnQgbG9zIGlzdC4KRGFzIGlzdCBtYXhpbWFsIGhhbGJyaWNodGlnLiBIb2VjaHN0ZW5zIEd1bmR1ciBiZXRyZWZmZW5kLiA6LSkKCkRhcyBBbmRlckxhbmQgd2lyZCBkYW5uIGV2dGwgYXVmIGVpbmVuIG5ldWVuIFJlY2huZXIgdW16aWVoZW4sIGFiZXIgYXVmIGplZGVuCkZhbGwgd2VpdGVybGViZW4uCgpVbmQgd2VyIHNjaG9ubWFsIGt1cnogdm9yIGRlciBmZWllcmxpY2hlbiBFcm9lZmZudW5nIGFscyBWb2xsLU11ZApoaW5laW5zY2hudXBwZXJuIHdpbGwuLi4gaGllciBub2NobWFsIGRpZSBBZHJlc3NlOgoKMTMwLjgzLjExMi4xMjEgMzE0MTUKCk1hbiBzaWVodCBzaWNoLgoKaS5BLiBoYXJkaWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBTCAoR3VuZHVyLCAyNi4gTWFyIDE5OTcsIDEyOjM0OjM4KToKfiMhIHJuPUhhcmRpbCBydD04NTkyODQyMzEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTkyODQyMzEKRGllIEFkcmVzc2UgbGF1dGV0IG5pY2h0IHNvIHdpZSB2b24gSGFyZGlsIHZlcmt1ZW5kZXQgc29uZGVyCmFuZGVybGFuZC5pbWFnaW5hcnkuY29tCmFsbGVzIGJpc3NjaGVuIGltYWdpbmFlciBoYWx0IDotCkdydXNzCkd1bmR1cgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiBXIEUgUiBCIFUgTiBHICEgKFNjaHJ1bXBmaSwgMjcuIE1hciAxOTk3LCAxNzowMToyMyk6CkhpIQoKV2VubiBtYWwgamVtYW5kIGVpbiBlY2h0IG5ldHRlcyBQSy1NdWQgc3BpZWxlbiBtb2VjaHQsIGRhbm4gd3VlcmQgaWNoIHVuc2VyCkxpbnplciBIb2x5IE1pc3Npb24gZW1wZmVobGVuIDopCkFkcmVzc2U6IHdpbGRzYXUuaWR2LnVuaS1saW56LmFjLmF0IDIwMDEKRGEgZ2VodHMgc28gcmljaHRpZyBhYiBtaXQgUEsuIEd1dGUgZ2VnZW4gQm9lc2UsIHNwcmljaCBEYXJraWVzIGdlZ2VuCldoaXR0aWVzLgpHdXRlcyBGaWdodGluLVN5c3RlbS4gQWNoLCBrdWNrdCBlcyBFdWNoIGRvY2ggc2VsYnN0IG1hbCBhbi4gOikKV2lyIHNlaGVuIHVucyBob2ZmZW50bGljaCBpbSBIb2x5IE1pc3Npb24gOikKU2NocnVtcGZpIGFsaWFzIFhlbmEgdGhlIE9yYyBpbSBIb2x5IE1pc3Npb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogIFcgRSBSIEIgVSBOIEcgISAoQXNtb2RpcywgMjcuIE1hciAxOTk3LCAxOTowMTowMSk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODU5NDc4NDgzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5NDc4NDgzCgpOb2UsIGRhcyBPZXNpLUxBRyBpc3QgbmljaHQgenUgZW1wZmVobGVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogIFcgRSBSIEIgVSBOIEcgISAoTmFzaW0sIDI3LiBNYXIgMTk5NywgMjA6MDQ6NDMpOgp+IyEgcm49U2NocnVtcGZpIHJ0PTg1OTQ3ODQ4MyByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpUamEsIHNjaGFkZSwgYmVpbSAxN3RlbiBIb3AgYmxlaWJ0IG1laW4gdHJhY2Vyb3V0ZSBoYWVuZ2VuIC0gbmFjaGRlbSBlciBzY2hvbgpkdXJjaCBDSCB1bmQgRiBudXIgcmVjaHQgdHJhZWdlIGR1cmNoa2FtLiBXYW5uIGJla29tbXQgSWhyIEFUbGVyIG1hbCAnbmVuCmdlc2NoZWl0ZW4gQW5zY2hsdXNzPwoKR3J1c3MsIE5hc2ltCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6ICBXIEUgUiBCIFUgTiBHICEgKFd1cnplbCwgMjcuIE1hciAxOTk3LCAyMDowOTowMik6Cn4jISBybj1OYXNpbSBydD04NTk0ODk0ODMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk0Nzg0ODMKaG0sIGRlciAxOC4gaG9wIHdhZXJzIGdld2VzZW4uLi4gd2FycyBqZWRlbmZhbGwgYmVpIG1pci4gYXJzY2hsYW5nc2FtIHp3YXIsCmFiZXIgaW1tZXJoaW4gYW5nZWtvbW1lbi4gYWxsZXJkaW5ncyB1ZWJlciBjaCwgY2VybiwgcGFyaXMsIHZpZW5uYQpkYXMgbWl0IGRlciBvcmRlbnRsaWNoZW4gdmVyYmluZHVuZyBrYW5uIGljaCBudXIgdW50ZXJzdHJlaWNoZW4sIHp1bSBzcGllbGVuCnRhdWd0IHNvd2FzIHNvbnN0IG5pY2h0LgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogIFcgRSBSIEIgVSBOIEcgISAoQXNtb2RpcywgMjcuIE1hciAxOTk3LCAyMDoxMzowNCk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODU5NDc4NDgzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5NDc4NDgzCgp0cmFjZXJvdXRlIHRvIHdpbGRzYXUuaWR2LWVkdS51bmktbGluei5hYy5hdCAoMTQwLjc4LjQwLjI1KSwgMzAgaG9wcyBtYXgsIDQwCmJ5dGUgcGFja2V0cwogMSAgbWlubmV0b25rYS1lMy5yaHJrLnVuaS1rbC5kZSAoMTMxLjI0Ni45MC4yNTQpICAyIG1zICAyIG1zICAyIG1zCiAyICBVbmktS2Fpc2Vyc2xhdXRlcm4xLldpTi1JUC5ERk4uREUgKDE4OC4xLjUuMjEpICAyIG1zICAyIG1zICAyIG1zCiAzICBaUi1LYXJsc3J1aGUxLldpTi1JUC5ERk4uREUgKDE4OC4xLjUuMTcpICA2IG1zICA2IG1zICA2IG1zCiA0ICBaUi1TdHV0dGdhcnQxLldpTi1JUC5ERk4uREUgKDE4OC4xLjE0NC40MikgIDggbXMgIDcgbXMgIDcgbXMKIDUgIFpSLUtvZWxuMS5XaU4tSVAuREZOLkRFICgxODguMS4xNDQuMjkpICAxMyBtcyAgMTMgbXMgIDEzIG1zCiA2ICBpcGdhdGUxLldpTi1JUC5ERk4uREUgKDE4OC4xLjE0NC41NCkgIDIwIG1zICAxNCBtcyAgMTMgbXMKIDcgIERFLXMxLmRhbnRlLmJ0Lm5ldCAoMTk0LjcyLjI2LjY5KSAgMjAgbXMgIDQ4IG1zICAyOCBtcwogOCAgREUtZjAtMC5ldXJvY29yZS5idC5uZXQgKDE5NC43Mi4yNC4xOTMpICAyMSBtcyAgMjMgbXMgIDIxIG1zCiA5ICBDSC1zMS0wLmV1cm9jb3JlLmJ0Lm5ldCAoMTk0LjcyLjI0LjIwNikgIDU2IG1zICAxMDIgbXMgIDkwIG1zCjEwICBDSC1mMC5nbG9iYWwuYnQubmV0ICgxOTQuNzIuMjQuNjcpICA4MiBtcyAgODYgbXMgIDU2IG1zCjExICAqIGNlcm4tZWJzMS5lYm9uZS5uZXQgKDE5NC43Mi4yNi4xNDIpICA0NjUgbXMgIDM5MyBtcwoxMiAgUGFyaXMtRUJTMi5FYm9uZS5uZXQgKDE5Mi4xMjEuMTU2LjEyMikgIDUyNCBtcyAgNTk3IG1zICoKMTMgICogVmllbm5hLUVCUzEuRWJvbmUuTkVUICgxOTIuMTIxLjE1Ni4xOCkgIDQyOSBtcyAgNDM5IG1zCjE0ICBWaWVubmEtUkJTLkFDTy5ORVQgKDE5Mi4xMjEuMTU5LjE1NCkgIDQxOCBtcyAgNDkxIG1zICoKMTUgIExpbnouQUNPLm5ldCAoMTkzLjE3MS4yNS4xMCkgIDUwMCBtcyAqICA0MDcgbXMKMTYgICogSktVUlRMMDEuRURWWi5VbmktTGluei5BQy5BVCAoMTkzLjE3MS4yMi4xOCkgIDM3OCBtcyAgNDU5IG1zCjE3ICAqIEpLVVJUTDAyLkVEVlouVW5pLUxpbnouQUMuQVQgKDE0MC43OC4xLjIpICA0NjggbXMgIDU0MiBtcwoxOCAgd2lsZHNhdS5pZHYtZWR1LnVuaS1saW56LmFjLmF0ICgxNDAuNzguNDAuMjUpICA1NDUgbXMgIDU4OCBtcyAgNTUzIG1zCgoKSG1tLCBpY2ggZ2xhdWIsIGljaCBsYXNzIGRhcyBsaWViZXIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogIFcgRSBSIEIgVSBOIEcgISAoQWNyaW1vbiwgMjcuIE1hciAxOTk3LCAyMDoyMDoyNSk6Cn4jISBybj1Bc21vZGlzIHJ0PTg1OTQ4OTk4NCByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwoKNTg4IG1zPyBEYXMgaXN0IGRvY2ggZWluZSBnbGFlbnplbmRlIFZlcmJpbmR1bmchCgpXYXMga2FubiBtYW4gc2ljaCBtZWhyIHd1ZW5zY2hlbj8KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiAgVyBFIFIgQiBVIE4gRyAhIChXb29keSwgMjguIE1hciAxOTk3LCAwMjowNToxNCk6Cn4jISBybj1Bc21vZGlzIHJ0PTg1OTQ4OTk4NCByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpLb21pc2NoLCB3YXJ1bSBoYWJlbidzIHNvdmllbGUgT2VzaXMgdHJvdHpkZW0gaW0gTUcgenVtClNlaGVyc3RhdHVzIGdlYnJhY2h0Li4uICpncmlucyoKd29vZHkuLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogIFcgRSBSIEIgVSBOIEcgISAoR3JpbW1ib3JuLCAyOC4gTWFyIDE5OTcsIDAyOjEwOjE1KToKfiMhIHJuPVdvb2R5IHJ0PTg1OTUxMTExNCByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpBbGxlcyBCZXN0ZWNodW5nLCBCZXRydWcgdW5kIFVudGVyd2FuZGVydW5nLiBTbyB3aWUgYWIuLi4gYWVoLi4uLCAxOTIzPyBTbyBpbgpkZXIgS2FudGUgamVkZW5mYWxscy4gVW5kIGhpbnRlcmhlciBpc3RzIHdpZWRlciBrZWluZXIgZ2V3ZXNlbiwgaXN0IGphIGtsYXIuClVlYmVyaGF1cHQsIGRhcyBsZXR6dGUgbWFsLCBhbHMgd2lyIHVucyBuYWNoIHNvIGVpbmVtIE9lc2kgZ2VyaWNodGV0IGhhdHRlbgp3YXIgaGludGVyaGVyIGhhbGIgRXVyb3BhIGluIFNjaHV0dCB1bmQgQXNjaGUuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3Qga2VubnQgZGVuIFNpdHogZGVzIEJvZXNlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogIFcgRSBSIEIgVSBOIEcgISAoV29vZHksIDI4LiBNYXIgMTk5NywgMDI6MTQ6MTUpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg1OTUxMTQxNSByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpJY2ggYmluIG1pciBub2NoIG5pY2h0bWFsIHNpY2hlciwgb2IgbWFuIGRhIGpldHp0IHNhZ2VuIGthbm4sIGRhc3MKZGFzIEphaHJodW5kZXJ0IHN0aW1tdCwgYWJlci4uLiB3ZW5uIGVzIG5pY2h0IGRpZXNlciBlaW5lIE9lc2kKZ2V3ZXNlbiB3YWVyZSwgd2FlcnMgZWJlbiBlaW4gYW5kZXJlciBnZXdlc2VuLCBvYiBlciBqZXR6dCB2b24KLmF0IG9kZXIgLmRlIG9kZXIgc29uc3R3byBoZXJzdGFtbXRlLCBoYXR0ZSBtZWluZXIgTWVpbnVuZyBuYWNoCmtlaW5lcmxlaSBSZWxldmFueiBpbSBMYXVmIGRlciBHZXNjaGljaHRlLgoKd29vZHkuLQoodmVybXV0ZXQgZGVuIFNpdHogZGVzIEJvZXNlbiBhYmVyIGluIEtvZWxuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogIFcgRSBSIEIgVSBOIEcgISAoR3JpbW1ib3JuLCAyOC4gTWFyIDE5OTcsIDAyOjE3OjAzKToKfiMhIHJuPVdvb2R5IHJ0PTg1OTUxMTY1NSByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpUc3RzdHMsIGRpZSBBcmd1bWVudGF0aW9uICJtYWNoIGljaHMgbmljaHQgbWFjaHRzIGVpbiBhbmRlcmVyIiBsYXNzZSBpY2ggc2Nob24KbGFuZ2UgbmljaHQgbWVociBnZWx0ZW4sIGRhcyBpc3QgZWluIHNlaHIgYmlsbGlnZXIgQXVzd2VnLgpVbmQsIGJlaSBhbGxlciBLcml0aWssIEhpdGxlciB3YXIgZWluIGJlZ25hZGV0ZXIgcG9saXRpc2NoZXIgVmVyZnVlaHJlciBtaXQKZWluZW0gQ2hhcmlzbWEsIGRhcyBudXIgZ2FueiwgZ2FueiB3ZW5pZ2UgdWViZXJoYXVwdCBlcnJlaWNoZW4uIEFsc28gc28gbGVpY2h0CmlzdCBkYXMgbmljaHQsIGRhc3MgZGEgamVtYW5kIGFuZGVycyBoYWV0dGUga29tbWVuIGtvZW5uZW4uIFZpZWxsZWljaHQgbm9jaApHb2ViYmVscywgZWluZXIgZGVyIGJlc3RlbiBSZXRob3Jpa2VyIGRlciBNZW5zY2hoZWl0c2dlc2NoaWNodGUuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgaG9lcnQgc2Nob24gZGVuIEF1ZnNjaHJlaS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogIFcgRSBSIEIgVSBOIEcgISAoV29vZHksIDI4LiBNYXIgMTk5NywgMDI6MTk6MjApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg1OTUxMTgyMyByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwouLi51bmQgZGFzIHZlcmRhbmt0IGVyIG51ciBzZWluZW0gT2VzdGVycmVpY2hlcnR1bT8KCndvb2R5Li0gKGRhcm9iIGtvcGZzY2h1ZXR0ZWxuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6ICBXIEUgUiBCIFUgTiBHICEgKEdyaW1tYm9ybiwgMjguIE1hciAxOTk3LCAwMjoyMTo1OCk6Cn4jISBybj1Xb29keSBydD04NTk1MTE5NjAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk0Nzg0ODMKTm9lLCBkaWUgTmF0aW9uYWxpdGFldCBpc3QgZGVzd2VnZW4gd2ljaHRpZywgd2VpbCBqYSBiZWthbm50bGljaCBrZWluZQpEZXV0c2NoZW4gYW0gRHJpdHRlbiBSZWljaCBiZXRlaWxpZ3Qgd2FyZW4sIGRhcyBoYXQgbWFuIGphIGFuIGRlbiBnYW56ZW4KRXJ6YWVobHVuZ2VuIHZvbiBkZXIgWmVpdCBuYWNoIGRlbSBLcmllZyBnZXNlaGVuLiBEYSB3YXIgbmllbWFuZCBiZXRlaWxpZ3QuCk9LLCBkaWUgQmF5ZXJuIHZpZWxsZWljaHQgaGllciB1bmQgZGEsIGFiZXIgZGllIHphZWhsZW4gamEgbmljaHQgcmljaHRpZy4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCBlbXBmaWVobHQgaW4gTXVlbmNoZW4gZGllIEluc2NocmlmdGVuIGFuIGRlcgpUb3JkdXJjaGZhaHJ0IGRlcyBuZXVlbiBSYXRoYXVzZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuZ2Vib3QgKEFzbW9kaXMsIDI4LiBNYXIgMTk5NywgMDQ6MTA6MDkpOgoKIDMwIEh5ZHJhaG9lcm5lciBhYnp1Z2ViZW4sIG5vY2ggZ3V0IGVyaGFsdGVuLgoKKEZ1ZXIgTmljaHQtRWluZ2V3ZWlodGU6IERpZSBudWV0emVuIG5peCwgbWFuIGthbm4gYWJlcgogZGFtaXQgYW5nZWJlbiEpCgpXZXIgSW50ZXJlc3NlIGhhdCwgbWVsZGUgc2ljaCBiaXR0ZSBwZXIgbWFpbCB1bmQgdW50ZXJicmVpdGV0IG1pcgplaW4gQW5nZWJvdCwgd2FzIGVyIG1pciBkYWZ1ZXIgYWxzIEdlZ2VubGVpc3R1bmcgc2NoZW5rZW4gd2lsbCA6KQoKSWNoIHdlcmRlIGRhbm4gZGFzIG9yaWdpbmVsbHN0ZSBBbmdlYm90IGF1c3dhZWhsZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW5nZWJvdCAoRnl0LCAyOC4gTWFyIDE5OTcsIDEyOjQ5OjQ0KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODU5NTE4NjA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5NTE4NjA5CgpJY2ggd29sbHRlIGdlcmFkZSAzMSBIb2VybmVyIGRhZnVlciBiaWV0ZW4sIGRhbm4gaXN0IG1pciBhYmVyIGF1ZmdlZmFsbGVuLApkYXNzIGljaCBnYXIga2VpbmUgbWVociBoYWIuIERlc2hhbGIgaGllciBhdWNoIG5lIEFuemVpZ2VuOiBXZXIgbWlyCnZlcnJhdGVuIGthbm4sIHdvIG1laW5lIEh5ZHJhaG9lcm5lciBnZWJsaWViZW4gc2luZCwgZGFyZiBzaWNoIGFscwpHZWdlbmxlaXN0dW5nIHVlYmVybGVnZW4sIHdzcyBlciBtaXIgbm9jaCBzY2hlbmtlbiBrb2VubnRlLgoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogIFcgRSBSIEIgVSBOIEcgISAoTWV0aGVkcmFzLCAyOC4gTWFyIDE5OTcsIDE2OjI0OjI4KToKfiMhIHJuPUFjcmltb24gcnQ9ODU5NDkwNDI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5NDc4NDgzCkVlZWJlbiwgaGFldHRlIGljaCBhdWNoIGdlc2FndCBkYXNzIDU4OCBtcyByZWNodCBndXQgc2luZC4gCipncmlucyBBY3JpbW9uKgpKYWphLCBkaWUgWmVpdGVuIGJpcyB2b3IgMyBKYWhyZW4sIGFscyBQYXNzYXUgbm9jaCBkaWUgZ3V0ZSBhbHRlCjY0IEtCaXQtTGVpdHVuZyBoYXR0ZS4uLi4gc29sY2hlIFplaXRlbiwgZGllIGtvbW1lbiBuaWUgd2llZGVyLi4uCkRhIGtvbm50ZSBtYW4gc2ljaCBub2NoIHdhcyB6dSB0cmlua2VuIGhvbGVuIGdlaGVuLCB3ZW5uIG1hbiAyIG1hbApvIGVpbmdldGlwcHQgaGF0dGUuCgogICAgICAgICAgRGFzIGxldHp0ZSBCZXJnY2hlbiBNZXRoZWRyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6ICBXIEUgUiBCIFUgTiBHICEgKERob2pha3QsIDI4LiBNYXIgMTk5NywgMjM6MzU6MTApOgp+IyEgcm49TWV0aGVkcmFzIHJ0PTg1OTU2MjY2OCByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpVbmQgbWl0IHNvIG5lciBMZWl0dW5nIGtvbm50ZSBtYW4gbXVkZGVuPyE/CktoaWRhciwga29wZnNjaHVldHRlbG5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFuZ2Vib3QgKEdub21lLCAyOS4gTWFyIDE5OTcsIDAwOjQxOjQ2KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODU5NTE4NjA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5NTE4NjA5CgphbHNvIG5lZSBhc21vLAoKd2FzIHNvbGwgaWNoIGRlbm4gbWl0IGVpbmVtIEh5ZHJhaG9ybiBhbmZhbmdlbiwgd2VubiBlcyBrZWluZW4gcHJha3Rpc2NoZW4KTnV0endlcnQgaGF0PyBnZXNjaHdlaWdlIGRlbm4gbWl0IDMwPz8/IHVlYmVycyBiZXR0IGhhZW5nZW4/Cgp3ZW5uIG1hbiBkaWUgdGFudGUgc2Nob24gMzB4IGdla2lsbHQgaGFldHRlLCB3YWVyZSBkYXMgamEgd2FzIGFuZGVyZXMuLi4KCnNpY2ggd3VuZGVybmQsIGduT21lIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBbmdlYm90IChGZWxhZ3VuZCwgMzAuIE1hciAxOTk3LCAwMToxNjozNCk6Cn4jISBybj1Hbm9tZSBydD04NTk1OTI1MDYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk1MTg2MDkKQWIgamV0enQga2FubiBtYW4gbWl0IGRlbiBIb2VybmVybiB3b2hsIG5pbW1lciBhbmdlYmVuLCBrb2VubnRlbiBqYSBkaWUgdm9uCkFzbW8gc2VpbiA7KSAobmFqYSB2aWVsbGVpY2h0IG5vY2ggbWl0IG1laHIgYWxzIDMwIDspKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogIFcgRSBSIEIgVSBOIEcgISAoU2NocnVtcGZpLCAzMS4gTWFyIDE5OTcsIDE0OjA1OjQ2KToKfiMhIHJuPVdvb2R5IHJ0PTg1OTUxMTExNCByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwpOYWphLCBkYXMgTUcgaXN0IGphIGF1Y2gga2VpbiBQSy1NdWQsIGRhIGlzdCBkYXMgZGFubiBlY2h0IHNpbm5sb3MuIFNlaCBpY2gKZWluLCBzY2hhZGUgLi4uIDooClMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiAgVyBFIFIgQiBVIE4gRyAhIChGeXQsIDMxLiBNYXIgMTk5NywgMTk6NDc6MDQpOgp+IyEgcm49U2NocnVtcGZpIHJ0PTg1OTgwOTk0NiByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTQ3ODQ4MwoKS2VpbiBQSy1NdWQ/IFdhcnVtIGhhdCBtaXIgZGFzIG5vY2gga2VpbmVyIGdlc2FndD8gKmdydW1tZWwqCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp0ZWxuZXRwcm9ncmFtbSAoWWFudHJvLCAgMS4gQXByIDE5OTcsIDE2OjM4OjM0KToKCkhpLCAKaWNoIGJpbiBhdWYgZGVyIFN1Y2hlIG5hY2ggZWluZW0gR1VURU4gVGVsbmV0cHJvZ3JhbW0sIGRhcyB1bnRlciBXOTUgKGljaAp3ZWlzcywgZGFzIGlzdCBlaW4gV2lkZXJzcHJ1Y2gpIGxhZXVmdCAoaWNoIHdlaXNzLCBkYXNzICJsYXVmZW4iIGRhIHBhcmFkb3gKa2xpbmd0KSB1bmQgZGFzIChhKSBGYXJiZW4gdW50ZXJzdHVldHp0IHVuZCAoYikgdmllbGxlaWNodCBzb2dhciBzb3dhcyB3aWUKZWluZW4gRWRpdG9yIHVuZCBGVFAga2Fubi4uLiAKCkRhcyBnYW56ZSBuYXR1ZXJsaWNoIGlyZ2VuZHdvIEZyZWV3YXJlIHp1IHppZWhlbiB1bmQgd2VubnMgZ2VodCBuaWNodCBhbSBFbmRlCmRlciBXZWx0ZW4uLi4KCllhbnRybywgZGVyIGhpZXIgaW4gS29lbG4gZGVuIEZhY2hzY2hhZnRzcmVjaG5lciBhdWZwYWVwZWxuIHdpbGwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogdGVsbmV0cHJvZ3JhbW0gKEhhdGUsICAxLiBBcHIgMTk5NywgMTY6Mzk6MzYpOgp+IyEgcm49WWFudHJvIHJ0PTg1OTkwNTUxNCByZz1hbnplaWdlbgp+IyEgdGlkPTg1OTkwNTUxNApTZWl0IHdhbm4gaGF0IFRlbG5ldCB3YXMgbWl0IEVkaXRvciBvZGVyIEZUUCB6dSB0dW4/CkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHRlbG5ldHByb2dyYW1tIChZYW50cm8sICAxLiBBcHIgMTk5NywgMTY6NDE6NTIpOgp+IyEgcm49SGF0ZSBydD04NTk5MDU1NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk5MDU1MTQKCkFsc28gaWNoIGhhYiBqYSBuaWNodCBzb29vdmllbCBBaG51bmcsIGFiZXIgZGFzIHRlbG5ldCwgZGFzIGhpZXIgaW4gS29lbG4KdWViZXJhbGwgdW50ZXIgZG9zIGxhZXVmdCwga2FubiBhdWNoIGZ0cG4gdWViZXIgc2hvcnRjdXRzIHVuZCBzby4uLiAKCmljaCBoYWIgYXVjaCBnZWhvZXJ0LCBkYXNzIGVzIHNvd2FzIG1pdCBlZGl0b3IgZ2ViZW4gc29sbC4uLi4gbXVzcyBqYSBuaWNodApkaXJla3QgZW1hY3Mgc2VpbiA6KQoKWWFudHJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHRlbG5ldHByb2dyYW1tIChBY3JpbW9uLCAgMS4gQXByIDE5OTcsIDE2OjQzOjI4KToKfiMhIHJuPUhhdGUgcnQ9ODU5OTA1NTc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5OTA1NTE0Ck5pY2h0cywgYWJlciBkYSBhdWYgTmljaHQtQW1pZ2FzIG5pY2h0IGplZGVzIFByb2dyYW1tIHN0YW5kYXJkbWFlc3ppZyBlaW5lCkFSZXh4LVNjaG5pdHRzdGVsbGUgaGF0LCBtaXQgZGVyIG1hbiBzYWVtdGxpY2hlIFByb2dyYW1tZSBiZXF1ZW0ga29vcmRpbmllcmVuCnVuZCBhbnN0ZXVlcm4ga2FubiwgaXN0IGVzIGViZW4gZG9ydCBtYW5jaG1hbCBzaW5udm9sbCwgaW4gZWluIHRlbG5ldC1Qcm9ncmFtbQplaW5lbiBFZGl0b3IsIGVpbiBmdHAsIGVpbmVuIENvbXBpbGVyIHVuZCBlaW5lbiBNb2R1bGUtQWJzcGllbGVyIHp1CmludGVncmllcmVuLgoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiB0ZWxuZXRwcm9ncmFtbSAoR3JpbW1ib3JuLCAgMS4gQXByIDE5OTcsIDE2OjQ4OjMxKToKfiMhIHJuPUFjcmltb24gcnQ9ODU5OTA1ODA4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5OTA1NTE0Ck5laW4sIHdhcyBEdSBtZWluc3QgaXN0IE5ldHNjYXBlIChvZGVyIEllaEV4cGxvcmVyKSwgbWl0IGRlbSBtYW4gZGFubiBzb2dhcgp0ZWxlZm9uaWVyZW4ga2Fubi4KVW5kIGRhcyBVbmtyYXV0IGltIEdhcnRlbiBqYWV0ZXQgZGVyIGF1Y2gsIGFiIGRlciBuYWVjaHN0ZW4gVmVyc2lvbi4gSXN0IHNjaG9uCmltIEJldGF0ZXN0LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiB0ZWxuZXRwcm9ncmFtbSAoQXNtb2RpcywgIDEuIEFwciAxOTk3LCAxNjo0OToxOSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODU5OTA2MTExIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODU5OTA1NTE0Ckthbm4gZGVyIGF1Y2ggS2FmZmVla29jaGVuID8gbWlyIGJyZW5udCBpbW1lciBkYXMgV2Fzc2VyIGFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFuZ2Vib3QgKEFzbW9kaXMsICAxLiBBcHIgMTk5NywgMTc6NDQ6MDgpOgp+IyEgcm49QXNtb2RpcyBydD04NTk2ODI2MDIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk1MTg2MDkKCkRhbmsgZWluZXIgZ3Jvc3N6dWVnaWdlbiBTcGVuZGUgZGVyIEh5ZHJhIChuYWphLCBoYXQgbWVpbiBMZWJlbiBnZWtvc3RldCksCmthbm4gaWNoIG51biB2ZXJrdWVuZGVuLCBkYXNzIGljaCA2MyBIeWRyYWhvZXJuZXIgYWJ6dWdlYmVuIGhhYmUsIGdlZ2VuCmRhcyBpbnRlcmVzc2FudGVzdGUgR2Vib3QgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB0ZWxuZXRwcm9ncmFtbSAoSmFzcGVyLCAgMS4gQXByIDE5OTcsIDE3OjUxOjAyKToKfiMhIHJuPVlhbnRybyBydD04NTk5MDU1MTQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk5MDU1MTQKem11ZCE/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXN1Y2h0ICEhISEgKEthcm9sdXMsICAxLiBBcHIgMTk5NywgMTg6Mjc6NTYpOgoKSWNoIHN1Y2hlIGVpbmVuIE1hbm4uLi4KCkVyIHNvbGx0ZSBzdGFyayBnZWJhdXQgc2VpbiB1bmQgc3RldHMgZnVlciBtaWNoIGRhIHNlaW4uIERhcyBBbHRlciBzcGllbHQKa2VpbmUgUm9sbGUgdW5kIGF1Y2ggMiwzIG1tIHd1ZXJkZW4gbWljaCBuaWNodCBhYnNjaHJlY2tlbi4uLiBJY2ggbWFnIGtlaW5lCkdsZWl0Y3JlbWUgdW5kIEZyYXVlbiBhdWNoIG5pY2h0LgpJY2ggYmluIGFscyBTdGVybnplaWNoZW4gQm9jayB1bmQgZnVlciBhbGxlIERpbmdlIG9mZmVuLi4gYW0gbGllYnN0ZW4gaGFldHRlCmljaCBqYSBLZXksIGFiZXIgZGVyIGhhdCBqYSBBbmdzdCB1bSBzZWluZW4gUnVmLi4ubnVuamEgd2VyIGVzIG1pdCBtaXIKQXVmbmVobWVuIHdpbGwgZGVyIHNvbGwgbWlyIGJpdHRlIG1haWxlbi4uIG9kZXIgS2V5IGRlciBmcmV1dCBzaWNoIGF1Y2ggaW1tZXIKdWViZXIgTWFpbHMgISEhCgpLYXJvbHVzLCBzY2h3dWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFBQUFBUlJSR0dHTExMISEhIChLZXksICAxLiBBcHIgMTk5NywgMjE6NDI6MzMpOgpLYXJvbHVzIGRhcyBzb2xsdGUgZG9jaCB1bnRlciB1bnMgYmxlaWJlbiEKCkFsc28gc28gd2lyZCBkYXMgd29obCBuaXggOykpIE5lbmUgbmVuIGdlc2Nod2FldHppZ2VuIE1hbm4gbWFnIGljaCBuZXQgLi4uCkhtbSBhbmRlcmVyc2VpdHMgLi4uCktleSBuaWNodCBzY2h3dWwsIG5ldG1hbCBiaSAsIG9kZXI/PyA6KSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhPQ0haRUlUICEhISEgKEthcm9sdXMsICAxLiBBcHIgMTk5NywgMjE6NDQ6MDIpOgpIaWVybWl0IG1vZWNodGUgaWNoIGZlaWVybGljaCBiZWthbm50Z2ViZW4sIGRhcyBpY2gsIFBpZXJjZScgS2Fyb2x1cyAnQnJvc25hbgpkZW4gaGllciBtdWRkZW5kZW4gdW5kIHN0ZXJiZW5kZW4gendlaXRpIEtleScgU3RlcmJlLVNjaGx1ZXNzZWwtWndlaXRpCidNYXJidXJnZXIgQW0gTWl0dHdvY2ggQWJlbmQgdW0gMjIuNDUgVWhyIGluIGRlciBUcmF1a2FwZWxsZSB6dSBOaWViZWxoZWltCmVoZWxpY2hlbiB3ZXJkZS4uLi4uCgoKS2Fyb2x1cywgZGVyIHNpY2ggaW1tZXIgbm9jaCB1ZWJlciBkYXMgSkEgZnJldXQuCgpaaXRhdDogS2V5IHRlaWx0IERpciBtaXQ6IEpBQUFBQUFBQUFBQUFBQUFBQUFBQUEgIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5FSU4hIChLZXksICAxLiBBcHIgMTk5NywgMjE6NDc6MzUpOgpORUVFRUVFSUlJSU5OTk5OIGhhYiBpY2ggZ2VzYWd0IQpOaWUgdW4gbmltbWVyIQpXYXMgc29sbGVuIGRlbm4gbWVpbmUgd2VpYmxpY2hlbiBGYW5zIHZvbiBtaXIgZGVua2VuPyAqbGFjaCogVW5kIG1vcmdlbiBuZWUKZ2VodCBuZXQgLi4uIApJY2ggd2VpZ2VyZSBtaWNoIQpVbmQgd2VoZSBpY2ggYmluIGF1ZiBlaW5tYWwgdmVyaGVpcmF0ZXQgd2llIGRhbWFscyBtaXQgTm9yYSEgRGFubiBrb21tIGljaApuYWNoIEdpZXNzZW4gdW5kIHppZWhlIGRpciBLYXJvbHVzIG5pY2h0IG51ciBkaWUgT2hyZW4gbGFuZyEhISEKCktleSBzYWd0OiBORUlOIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogIFcgRSBSIEIgVSBOIEcgISAoU251Z2dsZSwgIDMuIEFwciAxOTk3LCAwOTo0NzoxNCk6Cn4jISBybj1Xb29keSBydD04NTk1MTExMTQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NTk0Nzg0ODMKQWxzbyB2b3JnZXN0ZXJuIGhhdCBkaWUgbGFuZ3NhbWUgTGVpdHVuZyBuYWNoIGF1IG5pY2h0IGRhcyBsYW5nc2FtZSBtZwphdWZnZXdvZ2VuLiBXaWxsIHNhZ2VuLCBpY2ggaGF0dGUgbWVpc3Qgc2NobmVsbGVyZSBBbnR3b3J0emVpdGVuIGF1cwpIb2x5TWlzc2lvbiBhbHMgYXVzIGRlbSBNb3JnZW5HcmF1ZW4uCgpTbnVnZ2xlCihoZXV0IGlzc2VzIGhpZXIgdWVicmlnZW5zIEtsYXNzZS4gQmxpdHpzY2huZWxsZSBSZWFrdGlvbmVuIGRlcyBtZy4gSXMgamEKd2llIHZvciAyIEphaHJlbiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1HLVZlcmVpbiAoSG9ibywgIDcuIEFwciAxOTk3LCAxNjoyOToyMyk6CkdlbGRHZWxkR2VsZEdlbGRHZWxkLi4uLiBicmF1Y2h0IGRlciBWZXJlaW4gaW1tZXI6CgogRGllIE1pdGdsaWVkc2NoYWZ0IGltIFZlcmVpbiBrb3N0ZXQgcHJvIEphaHIgMjQsLSBETS4gRGFzIGlzdApuaWNodCBiZXNvbmRlcnMgdmllbCwgdW5kIHZlcm11dGxpY2gga2FubiBlcyBzaWNoIGplZGVyIChhcm1lKQpTdHVkZW50IGxlaXN0ZW4uIEFsbGUgTm9jaC1OaWNodG1pdGdsaWVkZXIgc29sbHRlbiBzaWNoIGFsc28gCnVlYmVybGVnZW4sIG9iIHNpZSBuaWNodCBtaXQgaWhyZW0gQmVpdHJhZyBkZW4gUmVjaG5lciwKYXVmIGRlbSBkYXMgTW9yZ2VuR3JhdWVuIGxhdWVmdCwgYXVjaCBsYXVmZmFlaGlnIGhhbHRlbiB3b2xsZW4uCkltbWVyaGluIGhhYnQgSWhyIGVpbmlnZSghKSBTdHVuZGVuIFNwYXNzIGltIEphaHIgZHVyY2hzIE1HIHVuZCBmdWVyIAp6d2VpbWFsIGlucyBLaW5vIGdlaGVuIGdlYnQgSWhyIGdlbmF1c28gdmllbCBHZWxkIGF1cyEKCk1pdGdsaWVkc2FudHJhZWdlIHN0ZWhlbiB1bnRlcjoKICAgICAgICBmdHA6Ly9tdWQudW5pLW11ZW5zdGVyLmRlL1RleHRlL1ZlcmVpbi8KClNwZW5kZW4gc2luZCBuYXR1ZXJsaWNoIGF1Y2ggaW1tZXIgV2lsbGtvbW1lbiB1bmQgendhciBhbjoKCiAgU3RhZHRzcGFya2Fzc2UgTXVlbnN0ZXIKICBLdG8uTnIuOiAzNjg5NDQKICBCTFo6IDQwMDUwMTUwCiAgRW1wZmFlbmdlcjogQ2hyaXN0aWFuIFNjaGlsZCAgCgpTcGVuZGVuYmVzY2hlaW5pZ3VuZ2VuIGtvZW5uZW4gYmVpIEJlZGFyZiBhdXNnZXN0ZWxsdCB3ZXJkZW4sCmVpbmZhY2ggQ2F0d2VhemxlIGZyYWdlbiEKLS0tLU5hY2ggZGVyIFVlYmVyd2Vpc3VuZywgYml0dGUhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaXRmYWhyZ2VsZWdlbmhlaXQgKEZ5dCwgIDcuIEFwciAxOTk3LCAxODozNzo1NSk6CgpJY2ggc3VjaGUgZnVlciBrb21tZW5kZW4gU29ubnRhZyAoMTMuNCkgZWluZSBNaXRmYWhyZ2VsZWdlbmhlaXQgYXVzIGRlcgpFY2tlIE1hbm5oZWltIGluIFJpY2h0dW5nIENoZW1uaXR6LiBFaW5lIFRlaWxzdHJlY2tlIHd1ZXJkZSBlcyBhdWNoCnR1biwgc3RhdHQgTWFubmhlaW0ga2FubiBlcyBhdWNoICdpcmdlbmR3byBpbiBkZXIgTmFlaGUnIGxvc2dlaGVuLCB1bmQKcGFzc2VuIHR1dCBpbSBQcmluemlwIGFsbGVzLCB3YXMgc2ljaCBpcmdlbmR3aWUgaW4gUmljaHR1bmcgT3N0ZW4gYmV3ZWd0LgoKV2VubiBqZW1hbmQgZmFlaHJ0IG9kZXIgJ24gVGlwIChhdWYgJ01pdGZhaHJ6ZW50cmFsZScga29tbSBpY2ggc2VsYmVyIDstKSApCmhhdCwgYml0dGUgTXVkTWFpbCBhbiBtaWNoLCBtb2VnbGljaHN0IGJpcyBNaXR0d29jaCBhYmVuZCwgd2VyZCBhYmVyCnZlcnN1Y2hlbiwgc3BhZXRlciBub2NobWFsIHJlaW56dXNjaGF1ZW4uCgpGeXQuCgpQUzogTmF0dWVybGljaCBiZXRlaWxpZ2UgaWNoIG1pY2ggYW4gZGVuIEtvc3Rlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUEMtUHJvZ3JhbW0gZ2VzdWNodC4uLiAoQW5jYWxhZ29uLCAgOC4gQXByIDE5OTcsIDE3OjU1OjI4KToKS251ZGRlbHMgdm9yd2VnIQppY2ggc3VjaGUgZWluIHByb2dyYW1tLCBkYXMgbWlyIGRhcyBsZXJuZW4gdm9uIExpZWRlcm4gdW5kIG11c2lrc3RpZWNrZW1uCmVybGVpY2h0ZXJ0LiBTbyBuYWNoIGRlbSBtb3R0byBpY2ggZ2ViZSBkaWUgbm90ZW4gZWluIHVuZCBkZXIgQ29tcGkgc3BpZWx0Cm1pcnMgYW5zY2hsaWVzc2VuZCB2b3IuIHNvd2FzIGFlaG5saWNoZXMgaGF0dGUgaWNoIG1hbCBmdWVyIGRlbiBDNjQuIHNvZ2FyIG1pdApLbGF2aWVydGFzdGF0dXIgenVtIGF1Zi1kaWUtdGFzdGVuLWxlZ2VuLgpGcmFnZTogZ2lidHMgc293YXMgKG9kZXIgd2FzIGFlaG5saWNoZXMpIGZ1ZXJuIFBDIChtb2VnbGljaHN0IDM4NmVyKSB1bmQgd2llCmtvbW0gaWNoIGRyYW4/CkRhbmtlc2tudWRkbGVyIGltIHZvcmF1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5jYWxhZ29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhY28ga251ZGRlbGxlbnNpcyBtYWpvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2xhdmllciBsZXJuZW4gKENlcmVidXMsICA4LiBBcHIgMTk5NywgMjE6MTU6MDQpOgpJY2ggd2Vpc3MgbmljaHQsIG9iIER1IGF1Y2ggbmFjaCBzb3dhcyBzdWNoc3QsIGFiZXIgZXMgZ2lidCBlaW4gS2V5Ym9hcmQgenUKa2F1ZmVuLCBkYXNzIER1IGFuIGRlbiBQQyBhbnNjaGxpZXNzdCB1bmQgbWl0IG1pdGdlbGllZmVydGVyIFNvZnR3YXJlIGRhbm4KS2xhdmllciBzcGllbGVuIGxlcm5zdC4gRGFzIEtsYXZpZXIgKGtleWJvYXJkKSBpc3QgTUlESS1mYWVoaWcsIGFiZXIgbWFuCmJyYXVjaHQga2VpbmUgZWlnZW5lIFNvdW5ka2xhcnRlLiAKV2VubiBtaWNoIG5pY2h0IGFsbGVzIHRhZXVzY2h0LCBoZWlzc3QgZXMgIkFsbGVncm8iLCBpY2ggaGFiZSBlaW5lIEFkcmVzc2UgaW4KRGV1dHNjaGxhbmQgLSBhYmVyIGRhIGJpbiBpY2ggbGVpZGVyIGVyc3Qgd2llZGVyIGltIEp1bGkuLi4KRXMgd3VyZGUgYWxsZXJkaW5ncyBtYWwgaW4gZWluZXIgYWx0ZW4gUG93ZXJwbGF5IGJlc3Byb2NoZW4sIHNvIEFuZmFuZyBkZXIKOTBlci4uLgoKaG9mZmVudGxpY2ggaGFiZW4gZGllc2Ugd2lycmVuIEluZm9zIGVpbiB3ZW5pZyB3ZWl0ZXJnZWhvbGZlbi4uOi0pKQoKQ2VyZWJ1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGtsYXZpZXIgbGVybmVuIChGbG9yYSwgIDkuIEFwciAxOTk3LCAwOToxNDoyNyk6Cn4jISBybj1DZXJlYnVzIHJ0PTg2MDUyNjkwNCByZz1hbnplaWdlbgp+IyEgdGlkPTg2MDUyNjkwNAoKSWNoIGhhYiBzbyBlaW4gUHJvZ3JhbW07IGVzIGhlaXNzdCAiY2FwZWxsYSIgdW5kIGlzdCBpbiBlcnN0ZXIgTGluaWUgenVtCkRydWNrZW4gdm9uIE5vdGVuIGRhLCBhYmVyIGVzIGthbm4gZGllIGVpbmdlZ2ViZW5lbiBOb3RlbiBhdWNoIHNwaWVsZW4uIEF1Y2gKVGFzdGF0dXJlaW5nYWJlICJ3aWUgYW0gS2xhdmllciIgaXN0LCBnbGF1YmUgaWNoLCBtb2VnbGljaCAoaGFiIGljaCBhYmVyIG5vY2gKbmllIGJlbnV0enQpLiBEZXIgYWt1c3Rpc2NoZSBPdXRwdXQgaXN0IHp3YXIgZXR3YXMgbWFlc3NpZywgYWJlciBkYXMga2FubiBhdWNoCmRhcmFuIGxpZWdlbiwgZGFzcyBpY2gga2VpbmUgU291bmRrYXJ0ZSBoYWJlLiBEYWZ1ZXIgaXN0IGRhcyBEcnVja2JpbGQgbmFoZXp1CnByb2Zlc3Npb25lbGw7IGRhcyBQcm9ncmFtbSBrYW5uIGF1Y2ggZWluemVsbmUgU3RpbW1lbiBhdXMgZWluZXIgUGFydGl0dXIKaGVyYXVzbmVobWVuLCB0cmFuc3BvbmllcmVuIGV0Yy4sIGhhdCBhbHNvIG5lIE1lbmdlIHp1IGJpZXRlbi4gTGVpZGVyIG11c3MgbWFuCmRhZnVlciBhdWNoIHdhcyBiZXphaGxlbiwgYWxsZXJkaW5ncyBuaWNodCBiZXNvbmRlcnMgdmllbDsgd2VubiBpY2ggbWljaCBuaWNodAppcnJlLCBoYWIgaWNoIGRhbWFscyAoaXN0IHNjaG9uIGV0d2EgNSBKYWhyZSBoZXIpIHVuZ2VmYWVociA3NSBETSBkYWZ1ZXIKaGluZ2VsZWd0LiBEYW1hbHMgd2FycyBkaWUgVmVyc2lvbiAxLjAgdW5kIGxpZWYgbnVyIHVudGVyIERPUywgaGV1dGUgZ2lidHMgZGFzCmdhbnplIHdhaHJzY2hlaW5saWNoIHNjaG9uIGZ1ZXIgV2luOTUgb2RlciBzb24gU2Nocm90dC4KQWJlciB3ZW5ucyBEaXIgbnVyIHVtcyBEdWVkZWxuIHVuZCBuaWNodCB1bXMgTm90ZW5kcnVja2VuIGdlaHQsIGdpYnRzCndhaHJzY2hlaW5saWNoIGF1Y2ggd2FzIEJpbGxpZ2VyZXMuCgpGbG9yYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZUUCBmdWVyIFNwaWVsZXIgdW5kIE1hZ2llciBnZXNwZXJydC4gKEZ0cCwgMTQuIEFwciAxOTk3LCAyMDowMDo0NSk6CgpBdXMgZGVuIGluIFdhcmdvbnMgQXJ0aWtlbCBpbiBwb2xpemVpLmJla2FubnRtYWNodW5nZW4gZXJzaWNodGxpY2hlbiBHcnVlbmRlbgppc3QgZnRwIGZ1ZXIgU3BpZWxlciB1bmQgTWFnaWVyIHVudGVyIE1hZ2llcmxldmVsIDQ1IGJpcyBhdWYgd2VpdGVyZXMKZ2VzcGVycnQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZUUCBmdWVyIFNwaWVsZXIgdW5kIE1hZ2llciBnZXNwZXJydC4gKElyb25pZSwgMTQuIEFwciAxOTk3LCAyMDowMTo1OSk6Cn4jISBybj1GdHAgcnQ9ODYxMDQwODQ1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYxMDQwODQ1CgpBY2ggamEsICdpcm9uaWUgb2ZmJy4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYWNocnVmIChBc21vZGlzLCAxNS4gQXByIDE5OTcsIDE1OjAzOjA4KToKRGllIFNlaGVyc2NobWllZGUgS2Fpc2Vyc2xhdXRlcm4gdHJhdWVydCB1bSBkYXMgZWhlbWFsaWdlIE1pdGdsaWVkCgogICAgICAgICAgICAgIEIgRSBPIEIgQSBDIEggVCBFIFIKICAgICAgICAgKiBpcmdlbmR3YW5uIDE5OTUsICArIDE1LjQuMTk5NwoKIEVyIHdhciBqYWhyZWxhbmcgZWluIHRyZXVlciBNaXRhcmJlaXRlciwgYmV2b3IgZXIgMTk5NyB3ZWNoc2VsdGUKIHVuZCBNYWdpZXIgd3VyZGUuIFNlaW5lIFZlcmRpZW5zdGUgYmV6aWVoZW4gc2ljaCBoYXVwdHNhZWNobGljaCAKIGF1ZiBkaWUgVG9kZXNmb3JzY2h1bmcuIEVuZGUgMTk5NiBlcmhpZWx0IGVyIGRlbiBnb2xkZW5lbiBTYXJnIGFtCiBCYW5kIGZ1ZXIgZGVuIDMwMC4gVG9kLgoKIEpldHp0IHd1cmRlIGVyIHdlZ2VuIGVpbmVzIE1vcmRlcyBoaW5nZXJpY2h0ZXQsIHRyb3R6ZGVtIHdlcmRlbgogd2lyIGlobiBuaWUgdmVyZ2Vzc2VuICEhCiAKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUzogVkVTQS1TY3JvbGxyb3V0aW5lIChEaWVkZXIsIDE1LiBBcHIgMTk5NywgMTU6MzY6MTUpOgpIaSEKCkljaCBzdWNoZSBlaW5lIFNjcm9sbC1Sb3V0aW5lIGZ1ZXIgZGVuIFZFU0EtTW9kZSAkMTAxICg2NDB4NDgweDI1NiksIGFtIGJlc3RlbgppbiBUUCBvZGVyIFRDLi4uIDopCkZhbGxzIGplbWFuZCBzb3dhcyBoYXQgb2RlciBkYXMgZ2ViYWNrZW4ga3JpZWd0IHdhZXJlIGVzIG5ldHQgbWljaCBhbnp1ZnVua2VuLgoKR3J1c3MsCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFM6IFZFU0EtU2Nyb2xscm91dGluZSAoQmxvb2R5aGFycnksIDE1LiBBcHIgMTk5NywgMTY6MTY6MjApOgp+IyEgcm49RGllZGVyIHJ0PTg2MTExMTM3NSByZz1hbnplaWdlbgp+IyEgdGlkPTg2MTExMTM3NQpTY2hhdSBtYWwgaW4gZnRwOi8vc3JjLmRvYy5pYy5hYy51ay9jb21wdXRpbmcvc3lzdGVtcy9pYm1wYy9ib3JsYW5kIG5hY2guCgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY29sb3ItdGVybWluYWwgZnVlciB3aW45NSAoR3JpbW1ib3JuLCAxNS4gQXByIDE5OTcsIDE3OjE0OjM0KToKSWNoIGJpbiBhdWYgZGVyIFN1Y2hlIG5hY2ggZWluZW0gVGVybWluYWwtUHJvZ3JhbW0gKHRlbG5ldCBhbHNvKSwgZGFzcyBhdWNoCm1pdCBGYXJiZW4ga2xhciBrb21tdC4gQW5nZWJsaWNoIHNvbGwgZXMgdm9uIHptdWQgZWluZSBWZXJzaW9uIGRhZnVlciBnZWJlbi4KCkhhdCBkYSBqZW1hbmQgRXJmYWhydW5nZW4/IFRpcHM/IGZ0cC1zaXRlcz8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGNvbG9yLXRlcm1pbmFsIGZ1ZXIgd2luOTUgKEhhdGUsIDE1LiBBcHIgMTk5NywgMjM6MjI6NTkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2MTExNzI3NCByZz1hbnplaWdlbgp+IyEgdGlkPTg2MTExNzI3NApBbHNvLCBUZXJhIFRlcm0sIEVXQU4gdW5kIG5hdHVlcmxpY2ggbWVpbiBrbGVpbmVzIG5pZWRsaWNoZXMKVGVsbmV0IEFwcGxldCA7LSkKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogY29sb3ItdGVybWluYWwgZnVlciB3aW45NSAoUmlrdXMsIDE2LiBBcHIgMTk5NywgMDM6MjQ6MjkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2MTExNzI3NCByZz1hbnplaWdlbgp+IyEgdGlkPTg2MTExNzI3NApJY2ggZmluZGUgcHRlcm0sIG9kZXIgYXVjaCBwb3dlcnRlcm1pbmFsIGdlbmFubnQsIHNlaHIgZ3V0LiBJc3QgYXVmCnd3dy53aW5kb3dzOTUuY29tIGlyZ2VuZHdvIHVudGVyIDMyYml0LVNoYXJld2FyZSwgTmV0eiwgVGVybWluYWxwcm9ncmFtbWUgenUKZmluZGVuLgoKUmlrdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhtbW1tLi4uIChSYW50YW5wbGFuLCAxNi4gQXByIDE5OTcsIDE5OjI2OjU1KToKSHVodSAhCgpEYXMgd2lyZCBqZXR6dCBlaW5pZ2Ugc2ljaGVyIGVyZnJldWVuLCBpY2ggYmxlaWIgZGVtIExBZGVuIGhpZXIgYXVmCnVuYmVzdGltbXRlIFplaXQgbWFsIGZlcm4sCnNvIHdpZSBlcyBkZXJ6ZWl0IGxhZXVmdCwgaXMgZGFzIG5peCBmdWVyIG1pY2ggOy0pKQoKVHNjaG9lIApPZXR0bAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGhtbW1tLi4uIChTaWx2YW5hLCAxNi4gQXByIDE5OTcsIDE5OjM5OjI2KToKfiMhIHJuPVJhbnRhbnBsYW4gcnQ9ODYxMjExNjE1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYxMjExNjE1Ck9obmUgZ2VoYWVzc2lnIHNlaW4genUgd29sbGVuOiBEYXMgbmVubmUgaWNoIG5lIGd1dGUgTmFjaHJpY2h0LiA6KQoKICBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGhtbW1tLi4uIChKYXNwZXIsIDE2LiBBcHIgMTk5NywgMjM6Mjg6MzkpOgp+IyEgcm49U2lsdmFuYSBydD04NjEyMTIzNjYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjEyMTE2MTUKbmFqYSBpY2ggaGFsdGUgb2V0dGkgZnVlciBlaW5lIGJlcmVpY2hlcnVuZyBkZXMgbXVkcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogaG1tbW0uLi4gKFNpZG9saW4sIDE3LiBBcHIgMTk5NywgMTE6MzQ6MDEpOgp+IyEgcm49U2lsdmFuYSBydD04NjEyMTIzNjYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjEyMTE2MTUKRXJzdCB3ZW5uIGRlciBsZXR6dGUgT2V0dGkgZ2ViYW5pc2h0IGlzdCwKZGVyIGxldHp0ZSBHcmltbWJvcm4gaWdub3JpZXJ0IGlzdCwKZGVyIGxldHp0ZSBTaWRvbGluIFNwaWVscGF1c2UgLTEgaGF0CndlcmRldCBpaHIgRmVzdHN0ZWxsZW4sIGRhc3MgbWFuIHVlYmVyIE1hZ2llcnZlcnRyYWVnZSBuaWNodCBsYWNoZW4ga2Fubi4uLi4KOy0pCgpTaWRvbGluLiBIZXV0IG1hbCAoZmFzdCkgbGl0ZXJhcmlzY2guLi4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbSBNb250YWcgaW4gZGVyIEJpbGQgKElzc29tYWQsIDE4LiBBcHIgMTk5NywgMjE6NDU6NTApOgoKU2NobGFnemVpbGUgaW4gZGVyIEJpbGR6ZWl0dW5nIDo6CgpNdWRkZXIgdmVya2F1ZnQgTW9yZ2VuR3JhdWVuIGFuIEJpbGwgR2F0ZXMgLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFtIE1vbnRhZyBpbiBkZXIgQmlsZCAoSGF0ZSwgMTguIEFwciAxOTk3LCAyMTo0NzoyOCk6Cn4jISBybj1Jc3NvbWFkIHJ0PTg2MTM5Mjc1MCByZz1hbnplaWdlbgp+IyEgdGlkPTg2MTM5Mjc1MApBbSBuYWVjaHN0ZW4gVGFnOgoKU2NoYWRlbnNlcnNhdHprbGFnZSBnZWdlbiBNdWRkZXIgdW5kIEJpbGwgR2F0ZXMgdWViZXIgNTAwIE1yZC4gVVMkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwb3QuIFNpY2hlcmhlaXRzcHJvYmxlbSEgKEhhdGUsIDE4LiBBcHIgMTk5NywgMjM6MTI6NTYpOgpEdXJjaCBkZW4gaW4gQXJ0aWtlbCAzIGluIGRlciBSdWJyaWsgZXRpa2V0dGUgYW5nZWdlYmVuZW4gRGllYnN0YWhsCmJlc3RlaHQgZWluIHBvdGVudGllbGxlcyBTaWNoZXJoZWl0c3Byb2JsZW0hIAoKKioqKioqKioqIEpFREVSIFNPTExURSBTRUlOIFBBU1NXT1JUIEFFTkRFUk4hICoqKioqKioqKioqKioqKgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGhtbW1tLi4uIChLcmV0ZWssIDIxLiBBcHIgMTk5NywgMDI6MjY6MjIpOgp+IyEgcm49SmFzcGVyIHJ0PTg2MTIyNjExOSByZz1hbnplaWdlbgp+IyEgdGlkPTg2MTIxMTYxNQpbQWxsZ2VtZWluOktyZXRlSyBiZWRhdWVydCBkYXMgRGFoaW5zY2hlaWRlbiBzZWluZXMgZ3V0ZW4gQmVrYW5udGVuIE9ldHRpLl0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuc3RpZnR1bmcgenVtIFNrYW5kYWwhIChIYXJkaWwsIDIxLiBBcHIgMTk5NywgMDk6NDA6MjIpOgoKR2VzdWNodDogTWFnaWVyLCBkZXIgbWVpbiBwYXNzd2Qga2xhdXQsIG1pdCBtZWluZW0gQ2hhcmFrdGVyIHNhZW10bGljaApmZWhsZW5kZSBHaWxkZW5xdWVzdHMgc3BpZWx0LCBkYW5uIGRlbiBDaGFyYWt0ZXIgenVydWVja2dpYnQsIHNpY2ggYWJlcgplcndpc2NoZW4gbGFlc3N0IHVuZCBkYW1pdCBlaW5lIERpc2t1c3Npb24gbG9zdHJpdHQuCkltIExhdWZlIGRpZXNlciBEaXNrdXNzaW9uIHNvbGx0ZSBkYW5uIGZvbGdlbmRlcyBwYXNzaWVyZW46CigxKSBEZXIgTWFnaWVyIHdpcmQgZ2Vsb2VzY2h0CigyKSBNZWluIENoYXJha3RlciB3aXJkIGdlbG9lc2NodAooMykgYmVpZGUgTG9lc2NodW5nZW4gd2VyZGVuIHJ1ZWNrZ2FlbmdpZyBnZW1hY2h0Cig0KSBBdXMgUHJvdGVzdCBnZWdlbiBlaW5lbiBkZXIgUHVua3RlICgxKSBiaXMgKDMpIHdpcmQgZGFzIE1vcmdlbkdyYXVlbiBmdWVyCjcyIFN0dW5kZW4gdm9tIE5ldHogZ2Vub21tZW4KKDUpIEFjaHQgTWFnaWVyLCAzIFNwaWVsZXIgdW5kIDI0IFp3ZWl0aWVzIG1hY2hlbiBTb2xpZGFyaXRhZXRzc2VsYnN0bG9lc2NodW5nCgpCaWV0ZSBkYWZ1ZXI6IHVtYmVncmVuenQgU3Bhc3MgYmVpbSBaZWl0dW5nc2xlc2VuLCBuaWUgd2llZGVyICJOaXggTmV1ZXMgYXVmCjpkZXIgV2VsdCIKOgo6TnVyIGVybnN0Z2VtZWludGUgWnVzY2hyaWZ0ZW4gYml0dGUgdW50ZXIgQ29kZXdvcnQgQ2M6IEVyem1hZ2llci4KOgo6LUhhcmRpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGhtbW1tLi4uIChZZW5kaSwgMjIuIEFwciAxOTk3LCAxMzozNzoyMik6Cn4jISBybj1TaWRvbGluIHJ0PTg2MTI2OTY0MSByZz1hbnplaWdlbgp+IyEgdGlkPTg2MTIxMTYxNQoKSG1tbW0uLi4KRGEgZmluZGV0IHNpY2ggR3JpbW1ib3JuIGphIGF1ZiBlaW5tYWwgaW4gX2dhbnpfIGlsbHVzdHJlciBHZXNlbGxzY2hhZnQuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBobW1tbS4uLiAoWWVuZGksIDIyLiBBcHIgMTk5NywgMTM6NDk6NDgpOgp+IyEgcm49WWVuZGkgcnQ9ODYxNzA5MDQyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYxMjExNjE1CgpTaWRvbGluIHRlaWx0IERpciBtaXQ6IElzdCBkYXMgbWl0IGRlciBpbGx1c3RyZW4gZ2VzZWxsc2NoYWZ0IGd1dCBvZGVyClNpZG9saW4gdGVpbHQgRGlyIG1pdDogc2NobGVjaHQ/IDstKQoqIE1QQTogTmV1ZXIgQXJ0aWtlbCB2b24gSGFyZGlsIGluIFJ1YnJpayAiYWxsZ2VtZWluZXMiLgpEdSB0ZWlsc3QgU2lkb2xpbiBtaXQ6IEFlZWVlaC4uLiAqcmFldXNwZXIqIFdpZSB3YXIgbm9jaG1hbCBkaWUgRnJhZ2U/ClNpZG9saW4gaXN0IGdlcmFkZSBuaWNodCBkYTogd2VnClNpZG9saW4gdGVpbHQgRGlyIG1pdDogSXN0IGRhcyBtaXQgZGVyIGlsbHVzdHJlbiBnZXNlbGxzY2hhZnQgZ3V0IG9kZXIKU2lkb2xpbiB0ZWlsdCBEaXIgbWl0OiBzY2hsZWNodD8gOy0pCkR1IHRlaWxzdCBTaWRvbGluIG1pdDogQWVlZWVoLi4uICpyYWV1c3BlciogV2llIHdhciBub2NobWFsIGRpZSBGcmFnZT8KU2lkb2xpbiBpc3QgZ2VyYWRlIG5pY2h0IGRhOiB3ZWcKPiBTaWRvbGluIHRlaWx0IERpciBtaXQ6ICpncmlucyogbmVlaXNrbGFyLiA6LSkKCgoqZ3JpbnMqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRm9yd2FyZC1BbGlhcyAoR2FyZmllbGQsIDI3LiBBcHIgMTk5NywgMTI6NDY6MjApOgoKQW56ZWlnZToKCkljaCBzdWNoZSBrb3N0ZW5sb3NlIEZvcndhcmQtQWxpYXNlcyAoPykgaW0gV1dXIQoKQmlzaGVyIGtlbm5lIGljaCBVU0EuTmV0IHVuZCBwZXgubmV0IChQb255RXhwcmVzcyksIHdvYmVpClBvbnlFeHByZXNzIG5pY2h0IHVtc29uc3QgaXN0LgoKV2VyIGRhIHdlaXRlcmUga2VubnQsIGRlciBtYWlsZSBtaXIgYml0dGUuIFdlbm4gZGFzIG5vY2ggYW5kZXJlIGludGVyZXNzaWVydCwKd2VyZGUgaWNoIGF1cyBkZW0gRXJnZWJuaXMgZWluZSBMaXN0ZSB6dXNhbW1lbnN0ZWxsZW4gdW5kIHZlcm9lZmZlbnRsaWNoZW4uCgpFaW5lIEZvcndhcmQtQWxpYXMtQWRyZXNzZSBpc3QgcHJha3Rpc2NoLCB3ZW5uIG1hbiBzbyB3YXMga29tcGxpemllcnRlcwphbHMgQWRyZXNzZSBoYXQgd2llIGljaCAoQG5vdmVsbDEuZ3MuYmxhYmxhdW5kc293ZWl0ZXIpCgpBbHNvLCBnZW51ZyBnZWxhYmVydC4gQml0dGUgbWFpbHQgbWlyIEV1cmUgRXJmYWhydW5nZW4gdW5kIEtlbm50bmlzc2UKCkRhbmtlLCBHYXJmaWVsZAoqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRm9yd2FyZC1BbGlhcyAoU2hha2VkYmVlciwgMjcuIEFwciAxOTk3LCAxNDowNjoxMik6Cn4jISBybj1HYXJmaWVsZCBydD04NjIxMzc5ODAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjIxMzc5ODAKSGkhCgpodHRwOi8vd3d3Lm5ldGZvcndhcmQuY29tLwoKU2hha3kuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEZvcndhcmQtQWxpYXMgKEdhcmZpZWxkLCAyNy4gQXByIDE5OTcsIDIwOjUyOjU2KToKfiMhIHJuPVNoYWtlZGJlZXIgcnQ9ODYyMTQyNzcyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYyMTM3OTgwCmRhbmtlLgp3aXJkIGdldGVzdGV0LgoKOi0pCkdhcmZpZWxkCioqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEZvcndhcmQtQWxpYXMgKFF1YXNpbW9kbywgMjguIEFwciAxOTk3LCAxMzo0MToxMik6Cn4jISBybj1HYXJmaWVsZCBydD04NjIxNjcxNzYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjIxMzc5ODAKV2hvV2hlcmUgYml0ZXRlIHNvd2FzIGF1Y2ggYW4uCgpRdWFzaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpZXRlIENoaXBzIGZ1ZXIgUkFNIChDcm9sbGEsICAyLiBNYWkgMTk5NywgMDE6NDE6NDMpOgpIaSwKaWNoIHN1Y2hlIEFyYmVpdHNzcGVpY2hlciBmdWVyIG5lbiBhbHRlbiAzODZlciwgZ2VuYXUgZ2Vub21tZW4gMzAgcGluIFNJTU1TLgooR3JvZXNzZSBlZ2FsLCBhbGxlcyBhYiAyIE1CIGlzdCBiZXNzZXIgYWxzIGRhcyB3YXMgaWNoIGpldHp0IGhhYmUpCkljaCBrYW5uIGhpZXIgaW4gRW5nbGFuZCBsZWlkZXIga2VpbmVuIExhZGVuIG9kZXIgTWFpbG9yZGVyLUZpcm1hIGZpbmRlbiwgZGllCnNvd2FzIG5vY2ggZnVlaHJlbi4gQWxzbywgaGF0IGplbWFuZCBzb3dhcyBub2NoIGJlaSBzaWNoIHJ1bWxpZWdlbiB1bmQga29lbm50ZQpzaWNoIHp1IGVpbmVtIGd1ZW5zdGlnZW4gUHJlaXMgZGF2b24gdHJlbm5lbj8KV2VpbCBpY2ggbmljaHQgdmllbCBHZWxkIGhhYmUsIHNjaGxhZ2UgaWNoIHZvciwgZGFzcyBpY2ggbWljaCBtaXQgbmVyIFR1ZXRlCkNoaXBzIChXYWxrZXJzIG1pdCBFc3NpZyBvZGVyIG5hY2ggV2FobCkgcmV2YW5jaGllcmUgKG9rYXkgb2theSwgYmlzc2NoZW4gR2VsZApnaWJ0cyBhdWNoLCBpY2ggd2Vpc3MgYWJlciBuaWNodCwgd2lldmllbCBzb3dhcyBrb3N0ZXQsIGFsc28gbWFjaHQgbWlyIGVpbgpBbmdlYm90KS4KCkRhbmtlLApDcm9sbGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvbW1lcmNhbXAtU2hpcnRzIChIYXRlLCAgNi4gTWFpIDE5OTcsIDE3OjE0OjM2KToKSWNoIGhhYmUgaW4gL0dyYWZpay9UU2hpcnQgZWluZSBEYXRlaSBULVNoaXJ0LnppcCBhYmdlbGVndCwgd2VsY2hlIGRpZQpPcmlnaW5hbGUgZGVyIE1HIFNvbW1lcmNhbXAgVC1TaGlydHMgZW50aGFlbHQsIHNvd2llIGVpbmUgQW5sZWl0dW5nIHVtCmRhcmF1cyBlaW4gVC1TaGlydCB6dSBtYWNoZW4uIE9obmUgQWVuZGVydW5nZW4gYnJhdWNoIG1hbiBudXIgZWluZW4KRmFyYmRydWNrZXIgdW5kIG1pdCBDb3JlbERyYXcgNC4wLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRldXRzY2hlIFdlbGxlIE5hY2hyaWNodGVuIChIYXRlLCAgNy4gTWFpIDE5OTcsIDE0OjM4OjUyKToKSGksCgppY2ggaGFiZSBkaWUgTmFjaHJpY2h0ZW4gd2llZGVyIGZ1bmt0aW9uc2ZhZWhpZyBnZW1hY2h0LgpBYiBzb2ZvcnQgd2VyZGVuIDA5MDAsIDE4MDAgdW5kIDIxMDAgTmFjaHJpY2h0ZW4gYXVmIGRlciBFYmVuZQpOYWNocmljaHRlbiBnZXNlbmRldCB1bmQgaW4gZGVyIFJ1YnJpayBkd25ld3MgYWJnZWxlZ3QuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERldXRzY2hlIFdlbGxlIE5hY2hyaWNodGVuIChQYW1wZXJzLCAgNy4gTWFpIDE5OTcsIDE1OjIzOjUxKToKfiMhIHJuPUhhdGUgcnQ9ODYzMDA4NzMyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYzMDA4NzMyCkthbm5zdCBEdSBiZWkgZGVyIEdlbGVnZW5oZWl0IGRlbiBIZXJybiBEVyBpZ25vcmllcmJhciBtYWNoZW4/CgpPZGVyIGFic3RlbGxlbiwgZGFzcyBEVyBkYXMgZGF1ZXJuZCBhdWYgQWxsZ2VtZWluIGt1bmR0dXQ/CgoKClBhbXBlcnMuIEZhZW5kJyBkYXMgZWNodCBnYWpvbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFuemVpZ2VuIChTaWx2YW5hLCAgNy4gTWFpIDE5OTcsIDE5OjA3OjMxKToKSGkuCkljaCBicmF1Y2hlIGZ1ZXIgbWVpbmUgUm9sbGVuc3BpZWxncnVwcGUgZWluZSBmaW5zdGVyIGtsaW5nZW5kZQpQcm9waGV6ZWl1bmcsIHNvIG1pdCBXZWx0dW50ZXJnYW5nc3N0aW1tdW5nIHVuZCBzby4gSGF0IGplbWFuZAptYWwgc293YXMgZ2VzY2hyaWViZW4vZ2VsZXNlbiB1bmQgd2Vpc3Mgbm9jaCB3bz8gSWNoIHdhZXJlIGZ1ZXIgCkFucmVndW5nZW4gYmV6dWVnbGljaCBGb3JtdWxpZXJ1bmcgdW5kIEF1c2RydWNrIHNlaHIgZGFua2Jhci4KCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBhbnplaWdlbiAoU2NocnVtcGZpLCAgOC4gTWFpIDE5OTcsIDAxOjI2OjM3KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODYzMDI0ODUxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYzMDI0ODUxCkhtbSBrdWNrIG1hbCBiZWkgbWlyLCB2aWVsbGVpY2h0IGZpbmRlc3QgRHUgamEgd2FzIGJyYXVjaGJhcmVzLgovZC91bnRlcndlbHQvc2NyY2hydW1wZmkvcXVlc3QvICB1bmQgL2QvcG9sYXIvc2NocnVtcGZpL3BvbGFyaXMvcG9sYXJpcy50eHQKRHVlc3RlciBpcyBlcyBhdWYgamVkZW4gRmFsbC4gQW5zb25zdGVuIGthbm4gaWNoIEguUCBMb3ZlY3JhZnQgZW1mcGVobGVuLCBkZXIKc2NocmVpYnQgemllbWxpY2ggZHVlc3Rlci4KUy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTb21tZXJjYW1wLVNoaXJ0cyAoSGVsdmEsIDEyLiBNYWkgMTk5NywgMjE6MjY6NTEpOgp+IyEgcm49SGF0ZSBydD04NjI5MzE2NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjI5MzE2NzYKU29uc3QgbmljaHRzPwpIZXJsdmEgYmVudXR6dCBpbW1lciBub2NoIG5lbiBEZXNramV0IDUwMCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUG9wcGVuLFNhdWZlbiBpbSBTY2hsYW1tYmFkIChKYXNwZXIsIDEyLiBNYWkgMTk5NywgMjM6Mzc6MzMpOgpXZXIgaXN0IGRlbm4gYW0gRnJlaXRhZyxTYW1zdGFnIHVuZCBTb25udGFnIGJlaW0gUm9jayBhbSBSaW5nLCBldnRsLiBrb2VubnRlCm1hbiBkYSBtYWwgbmUgQnVlY2hzZSBCaWVyIHp1c2FtbWVuIHNhdWZlbiA6KSBpY2ggYmluIGRlcmplbmlnZSBkZXIKYmVzb2ZmZW4gaXN0IHVuZCBpbSBTY2hsYW1tIGtyaWVjaHQuCgoKSmFwc2VyLCBkZXIgU2NobGFtbWtyaWVjaGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYWNrZW4gT3BlbiBBaXIgKEJlZWx6ZWJ1YiwgMTIuIE1haSAxOTk3LCAyMzo0MjozNSk6CndvIEphc3BlciBzY2hvbiBtaXQgUm9jayBhbSBSaW5nIGFua29tbXQuLi4KCmhhdCB3ZXIgKGF1c3NlciBMdWcgdW5kIG1pcikgbm9jaCBMdXN0IGFtIDguKzkuIEF1Z3VzdCBpbiBXYWNrZW4gYXVmenV0YXVjaGVuCj8KR2Vib3RlbiB3ZXJkZW4gdW50ZXIgYW5kZXJlbSBSYWdlICsgT3JjaGVzdGVyLCBXYWx0YXJpLCBUaGVhdHJlIG9mIFRyYWdlZHksCldhbHRhcmksIApTdWJ3YXkgdG8gc2FsbHksIFNhbWFlbChnbGF1YiBpY2gpLCBDcmFkbGUgb2YgRmlsdGgsIERpbW11IEJvcmdpciwgU29kb20sCnUucy53LiAKV2FlciBkb2NoIG5lIGlkZWFsZSBHZWxlZ2VuaGVpdCBmdWVyIGVpbiBpbm9mZml6aWVsbGVzIE1HLVNvbW1lcmNhbXAgOikKCkJpcyBkZW5uZSwKICAgZGVyIEJlZWx6ZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBhbnplaWdlbiAoU3VzaGksIDEzLiBNYWkgMTk5NywgMDE6MTk6NDIpOgp+IyEgcm49U2lsdmFuYSBydD04NjMwMjQ4NTEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjMwMjQ4NTEKV2luZG93czk1IG5vdyBib290aW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBhbnplaWdlbiAoRGhvamFrdCwgMTMuIE1haSAxOTk3LCAwNDo0MDowMCk6Cn4jISBybj1TdXNoaSBydD04NjM0NzkxODIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjMwMjQ4NTEKU3BpZWxlbiBkaWUgZGEgZXR3YSBTaGFkb3dydW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTaWxiZXJMYW5kIChXb29keSwgMTQuIE1haSAxOTk3LCAwMTo0OTo1Nyk6Ci4uLmlzdCBIYXRlIHNlaSBEYW5rIG51biBhdWNoIGFscyAic2wubXVkLmRlIiBiencuICJzaWxiZXJsYW5kLm11ZC5kZSIKZXJyZWljaGJhciwgUG9ydCA0NzExLiBPZXNpbGFnIHNlaXQgZGVyIG5ldWVuIExlaXR1bmcgbWluaW1hbCwgQlRXIDspCgp3b29keS4tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGFuemVpZ2VuIChMaSwgMTQuIE1haSAxOTk3LCAxMjoxMzozMSk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODYzMDQ3NTk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODYzMDI0ODUxCkphLCBhYmVyIFByb3BoZXplaWh1bmdlbiBoYXQgZGVyIGF1Y2ggbmljaHQuLi4gSG1tLCBTaWx2YW5hLCBmYWxscyBkdSBidWVjaGVyCnZvbiBMb3ZlY3JhZnQgaGFiZW4gbW9lY2h0ZXN0LCBpY2ggaGFiIHNpZS4gQW5zb25zdGVuLi4uCkJhc3RlbCBkaWUgV2hlZWwgb2YgdGltZXMgUHJvcGhlemVpaHVuZ2VuIGRvY2ggdW0uLi4gCkxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2hhbHRwbGFuIGdlc3VjaHQgKER3aWdodCwgMTQuIE1haSAxOTk3LCAxMzoyMDo1Nik6CkhvbGxhCgpJY2ggc3VjaGUgZWluZW4gU2NoYWx0cGxhbiB2b246Ck1BUkMKRG91YmxlIENvbnZlcnNpb24KTW9kZWwgTnIuIE5SLTUyRjEKCklzdCBlaW4ga3VyendlbGxlbmVtcGZhZW5nZXIgb2RlciBzbyB3YXMuCldlciBuZSBJZGVlIGhhdCwgd29oZXIgaWNoIGRlbiBiZWtvbW1lbiBrYW5uLCBkaWUgRmlybWEga2VubnQsIG9kZXIgd29oZXIgaWNoCnNvbnN0IEVtcGZhZW5nZXJzY2hhbHRwbGFlbmUgYmVrb21tZS4uLgoKa2FubiBtaXIgamEgbWFsIEJlc2NoZWlkIGdlYmVuCkR3aWdodAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMTMgKEx1ZywgMTUuIE1haSAxOTk3LCAwMToxNjo1OCk6Cn4jISBybj1TdXNoaSBydD04NjM0NzkxODIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjMwMjQ4NTEKTW9pbiwKCmVpbmUgYXVzbmVobWVuZCBndXRlIElkZWUgdm9uIEJlZWx6ZSA7KQoKS3VyegpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhbnpwYXJ0bmVyIChSZW5hdHVzLCAxNi4gTWFpIDE5OTcsIDIxOjAyOjMwKToKSnVuZ2VyIGR5bmFtc2ljaGVyIEVsZiwKc3VjaHQgVAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCld1bmRlcmxhbmQgKEhvbGdlciwgMjAuIE1haSAxOTk3LCAxNTo1MTo0MSk6CkhpLiA6KQoKRnVlciBhbGxlLCBkaWUgYXVjaCBtYWwgaW4gYW5kZXJlbiBNdWRzIHNwaWVsZW4uIDspIERhcyBXdW5kZXJsYW5kIGlzdCBqZXR6dAphdWNoIHVudGVyIHRlbG5ldCB3bC5tdWQuZGUgNDcxMSBlcnJlaWNoYmFyLiBCaXMgZGFubi4gQnllIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXdW5kZXJsYW5kIChNYXJjdXMsIDIwLiBNYWkgMTk5NywgMTY6MjM6MjUpOgp+IyEgcm49SG9sZ2VyIHJ0PTg2NDEzNjMwMSByZz1hbnplaWdlbgp+IyEgdGlkPTg2NDEzNjMwMQpIaSEKCkZ1ZXIgYWxsZSwgZGllIGF1Y2ggbWFsIGluIGFuZGVyZW4sIGVuZ2xpc2Noc3ByYWNoaWdlbiwgTXVkcyBzcGllbGVuIC4uLiAKVEFQUE11ZCBpc3Qgc2Nob24gc2VpdCBtZWhyZXJlbiBXb2NoZW4gdW50ZXIgdGFwcC5tdWQuZGUgNjUxMCB6dSBlcnJlaWNoZW4uCgpNYXJjdXMKUFM6IEZpbmRldCBpaHIgZGllc2UgQXJ0IFdlcmJ1bmcgbmljaHQgYXVjaCBkb29mPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXdW5kZXJsYW5kIChGeXQsIDIwLiBNYWkgMTk5NywgMTY6MjQ6MjMpOgp+IyEgcm49TWFyY3VzIHJ0PTg2NDEzODIwNSByZz1hbnplaWdlbgp+IyEgdGlkPTg2NDEzNjMwMQpVbmQgd2FzIGhhdCBkYXMgbWl0IGVuZ2xpc2Noc3ByYWNoaWdlbiBNdWRzIHp1IHR1bj8KCkZ5dC4KClBTOiBDb3VsZCBub3QgcmVzaXN0LCBzb3JyeS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV3VuZGVybGFuZCAoSG9sZ2VyLCAyMC4gTWFpIDE5OTcsIDE4OjU0OjUwKToKfiMhIHJuPUhhdGUgcnQ9ODY0MTQ0OTQ0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCkhtLgoKV2VubiBpY2ggZ2V3dXNzdCBoYWV0dGUsIGRhc3MgZGllIG5lbm51bmcgZGVyIEFkcmVzc2Ugdm9tICpQaWVwKi1NdWQgc28gdmllbApXZWxsZW4gc2NobGFlZ3QsIG9id29obCBkaWUgTmVubnVuZyBkZXMgKlR1dCotTXVkIHNjaG9uIGVpbiBwYWFyIFRhZ2Ugdm9yaGVyCmFuc2NoZWluZW5kIG5pZW1hbmQgZ2VzdG9lcnQgaGF0LCB1aGFldHQgaWNoIGRhcyBuaWNodCBpbiBkaWUgemVpdHVuZwpnZXNjaHJpZWJlbi4gQWJlciBpY2ggYmVkYW5rZSBtaWNoIGJlaSBhbGwgZGVuZW4sIGRpZSBhdWYgbWVpbmVuIEFydGlrZWwKZ2VhbnR3b3J0ZXQgaGFiZW4gdW5kIHNvbWl0IGRhcyBXb3J0ICpQaWVwKiBzbyBvZnQgaW4gZGVyIG1wYSBoYWJlbiBlcnNjaGVpbmVuCmxhc3Nlbi4gOC0pICprbnVkZGVsKgoKSG9sZ2VyIC0gaG9mZnQsIGpldHp0IG5pY2h0IGRpZSBCZXppZWh1bmdlbiB6d2lzY2hlbiAqUGllcCosICpUdXQqIHVuZCAqVHJvZXQqCnZlcnNjaGxlY2h0ZXJ0IHp1IGhhYmVuLi4uCgpQUzogV2VuIGVzIGludGVyZXNzaWVydCwgd2FydW0gaWNoIGRlbiBBcnRpa2VsIGluIGRpZSBtcGEgZ2VzY2hyaWViZW4gaGFiZSwKZGVyIHNjaHJlaWJ0IG1pciBiZXNzZXIgbWFsIG5lIG1haWwuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFd1bmRlcmxhbmQgKEdyaW1tYm9ybiwgMjAuIE1haSAxOTk3LCAxODo1ODo1OCk6Cn4jISBybj1IYXRlIHJ0PTg2NDE0NDk0NCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NDEzNjMwMQpIYWxsbyBMZXV0ZSEgRGFzIE1HIGlzdCBqZXR6dCBhdWNoIHVudGVyIG1nLm11ZC5kZSB6dSBlcnJlaWNoZW4hIFdpciBzZWhlbgp1bnMhISEKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKVW5kIHRzY2h1ZXNzLCBNb3JnZW5HcmF1ZW4uLi4KClAuUy4gYSkgaXN0IGRhcyBuZSBTYXVlcmVpLCBkaWVzZW4gQXJ0aWtlbCBlaW5mYWNoIGdlbG9lc2NodCB6dSBoYWJlbi4gRGFmdWVyCmdpYnRzIGRpZSBNb2VnbGljaGtlaXQsIGlobiBuYWNoIHNjaG1hcnJuIHp1IHZlcnNjaGllYmVuIHdlbm5zIGVpbmVtIG5pY2h0CnBhc3N0LiBiKSBoYWIgaWNoIGVpbmVuIGhpbnJlaWNoZW5kIGdyb3NzZW4gc2Nyb2xsYmFjayB1bmQgZWluZSBoYWxid2VncyBndXRlCk1vZWdsaWNoa2VpdCBkZXMgYyZwLCBhbHNvIHdlbm4gd2lyIGRhcyBTcGllbGNoZW4gImljaCBrYW5uIHNjaG5lbGxlciBsb2VzY2hlbgphbHMgRHUgbmV1IHNjaHJlaWJlbiBrYW5uc3QiIHNwaWVsZW4gd29sbGVuOiBnbyBhaGVhZC4gKmdydW1tZWwqIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogV3VuZGVybGFuZCAoRnl0LCAyMC4gTWFpIDE5OTcsIDE5OjAyOjEzKToKfiMhIHJuPUhvbGdlciBydD04NjQxNDcyOTAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjQxMzYzMDEKCk5hamEsIHNvbGFuZ2UgRHUgbmljaHQgZGFoZXJrb21tc3QsIHVuZCBiZWhhdXB0ZXN0LCAqVHJvZXQqIHNlaSBiZXNzZXIKYWxzIGRlciBSZXN0ICh3YXMgemllbWxpY2hlciBVbnNpbm4gaXN0LCBkYSBvZmZlbmJhciAqSWVla3MqIGRhcyBiZXN0ZSBpc3QpLAprYW5uc3QgRHUgKlBpZXAqIHNjaG9uIGFiIHVuZCB6dSBlcndhZWhuZW4gOy0pCgpGeXQuCgpQUzogV2llc28gaGllciBtYW5jaG1hbCBBcnRpa2VsICdkdXJjaGdlaGVuJyB1bmQgYW5kZXJlLCBpbSBQcmluemlwCmdsZWljaGxhdXRlbmRlLCBnZWZsYW1lZCAodD8pIHdlcmRlbiwgaXN0IG1pciBhdWNoIG5vY2ggbmljaHQga2xhci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogV3VuZGVybGFuZCAoQWNyaW1vbiwgMjAuIE1haSAxOTk3LCAxOToxMDo1Nik6Cn4jISBybj1GeXQgcnQ9ODY0MTQ3NzMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCkRhIG11c3ogaWNoIGRvY2ggaGVmdGlnIHdpZGVyc3ByZWNoZW4hCipGbG9vcCogaXN0IG1pdCBBYnN0YW5kIGRhcyBiZXN0ZSBNdWQsIGtlaW5lc3dlZ3MgKkllZWtzKi4KSW4gKlR1dXQqIGthbm4gbWFuIGRhcyBzZWhyIGd1dCB1ZWJlcnBydWVmZW4sIHVuZCBqZWRlciBhdXMgKkZsb29wKiB3aXJkIERpcgpkYXMgYmVzdGFldGlnZW4ga29lbm5lbi4KTnVyIHdhcyBoYXQgZGFzIG1pciAqVHJvZXQqIHp1IHR1bj8gOi0pCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV3VuZGVybGFuZCAoQ2F0d2VhemxlLCAyMC4gTWFpIDE5OTcsIDE5OjU3OjQ4KToKfiMhIG9uPUNhdHdlYXpsZSBvdD04NjQxNTEwMjYgb2c9c2NobWFycm4KfiMhIG9uPUFzbW9kaXMgb3Q9ODY0MTM5MDY2IG9nPWFuemVpZ2VuCn4jISBybj1NYXJjdXMgcnQ9ODY0MTM4MjA1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCkZ1ZXIgYWxsZSwgZGllIGVzIG5vY2ggbmljaHQgd2lzc2VuOiBEYXMgUEstTXVkIGlzdCBqZXR6dCBhdWNoCnVudGVyIHBrLm11ZC5kZSA0NzExIGVycmVpY2hiYXIuCgpQLlMuOiBXZW5uIHNjaG9uIFdlcmJ1bmcsIGRhbm4gd2lyIGF1Y2ggOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZpbmFsRnJvbnRpZXIgKFF1aWxsaWFuLCAyMC4gTWFpIDE5OTcsIDIxOjM0OjE5KToKT2NoIGRhIHdpbGwgaWNoIGF1Y2ggbmljaHQgbmFjaHN0ZWhlbiA6KQoKV2VyIG1hbCBzdGF0dCBkZW0gemVobnRlbiBGYW50YXN5TXVkIHp1ciBBYndlY2hzbHVuZyBtYWwgZXR3YXMgZ3V0ZSBTRiBzcGllbGVuCm1vZWNodGUgLi4uIEZpbmFsRnJvbnRpZXIgaXN0IGViZW5mYWxscyBzY2hvbiBzZWl0IFdvY2hlbiB1bnRlciBmZi5tdWQuZGUgNzYwMAp6dSBlcnJlaWNoZW4gOikKClF1aWxsaWFuQEZpbmFsRnJvbnRpZXIgKGRlbSBlcnN0ZW4gTXVkIERldXRzY2hsYW5kcyA6KSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFd1bmRlcmxhbmQgKEFzbW9kaXMsIDIwLiBNYWkgMTk5NywgMjI6NTc6NDMpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg2NDE1MTA2OCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NDEzNjMwMQpIaWVyIGRhcmYgd29obCBqZWRlciBXdXJzdG1hZ2llciBBcnRpa2VsIHZlcmxlZ2VuIDopCgpOYWphLCBtaXIgc29sbCBlcyByZWNodCBzZWluLgoKUC5TOiBXZW5uICpUdXV0KiBzYWd0LCBkYXMgKkZpZXAqIGJlc3NlciBhbHMgKkJyenpsKiBpc3QsIGRhbm4gZ2VodAogICAgIGlucyAqUGxvcHAqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXdW5kZXJsYW5kIChaYXJkb3osIDIxLiBNYWkgMTk5NywgMTA6NDU6MTYpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg2NDE1MTA2OCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NDEzNjMwMQpJY2gga2VubiBhdWNoIGVpbiBzZWhyIGd1dGUgTXVkLCBpbiBkZW0gaWNoIHp1ciBaZWl0IHNwaWVsZS4gQWJlciBpY2ggdmVycmF0ZQpkaWUgQWRyZXNzZSBuaWNodCwgZGFtaXQgZXMgbmljaHQgdm9uIElkaW90ZW4gdWViZXJzY2h3ZW1tdCB3aXJkLgoKCkNpYW8gWmFyZG96CiwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXdW5kZXJsYW5kIChaZW50cml0LCAyMS4gTWFpIDE5OTcsIDEwOjQ2OjU5KToKfiMhIHJuPVphcmRveiBydD04NjQyMDQzMTYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjQxMzYzMDEKRGllIGFuZGVyZW4gV2VyYmVhbnplaWdlbiB3dXJkZW4gd29obCBpbiBkZXIgSG9mZm51bmcgZ2Vwb3N0ZXQsIGRhc3MgZGllCklkaW90ZW4gdm9uIGhpZXIgYWJ3YW5kZXJuLiA6KQogIFplbnRyaXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFd1bmRlcmxhbmQgKEphc3BlciwgMjEuIE1haSAxOTk3LCAxMDo1NzozMyk6Cn4jISBybj1aYXJkb3ogcnQ9ODY0MjA0MzE2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCmRpZSBmcmFnZSBpc3QsIG9iIHdpciBpZGlvdGVuIGRhcyBsYWdtdWQgJ3dpbGRzYXUuaWR2LnVuaS1saW56LmFjLmF0IDIwMDEnCmRlbSBjaGF0bXVkICdtZy5tdWQuZGUnIHZvcnppZWhlbj8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFd1bmRlcmxhbmQgKEFuYWt5biwgMjEuIE1haSAxOTk3LCAxMDo1OTo0OCk6Cn4jISBybj1KYXNwZXIgcnQ9ODY0MjA1MDUzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCkRvZXMgbGFnZ3QgbmltbWVyIG1laHIsIGRhIGdpYnQgZXMgd29obCBuZSBuZXVlIExlaXR1bmcuCgpBLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV3VuZGVybGFuZCAoUGF0cnluLCAyMS4gTWFpIDE5OTcsIDExOjE1OjE3KToKfiMhIHJuPVphcmRveiBydD04NjQyMDQzMTYgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjQxMzYzMDEKbmEgbWluZGVzdGVucyBlaW5lciBzcGllbHQgZG9ydCBqYSBzY2hvbiwgZGEgbWFjaGVuIDEwMCBtYW5uIG1laHIgYXVjaApuaWNodCBzY2hsaW1tZXIuLi4KCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaHdlaW5rcmFtIChCbG9vZHloYXJyeSwgMjEuIE1haSAxOTk3LCAxNDoyMzoyNyk6CkVpZ2VuZGxpY2ggd29sbHRlIGljaCBTY2h3ZWlua3JhbSwgZXh0cmEgZnVlciBQYW1wZXJzIHNjaHJlaWJlbi4gQWJlci4uLgoKQWJlciB3YXMgYW5kZXJlcyBpbnRlcmVzc2FudGVzICg/KQoKSGV1dGUgYWIgMTc6MDAgVWhyIGhhZWx0IENoYXB1aXNhdCBBdXRvZ3JhbW1zdHVuZGUgaW4gQ2FzdHJvcC1SYXV4ZWwsCkhlcm5lcnN0cmFzc2UsIEF1dG8gQUNSQSwgYWIuCgoKV2FzIGRhcyBudW4gbWl0IFNjaHdlaW5rcmFtIHp1IHR1biBoYXQ/ICAoc2NodWx0ZXJ6dWNrKQoKYmgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFd1bmRlcmxhbmQgKEZ5dCwgMjEuIE1haSAxOTk3LCAxNDo1Mjo0MSk6Cn4jISBybj1aZW50cml0IHJ0PTg2NDIwNDQxOSByZz1hbnplaWdlbgp+IyEgdGlkPTg2NDEzNjMwMQpEYW5uIHJhdGUgbWFsLCB3YXJ1bSBzaWNoIG5pY2h0IGFsbGUgTXVkcyBhbiBkaWVzZXIgQWt0aW9uIGJldGVpbGlndApoYWJlbiA7LSkKCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFd1bmRlcmxhbmQgKFNjaHJ1bXBmaSwgMjIuIE1haSAxOTk3LCAwMjozNjowOCk6Cn4jISBybj1aYXJkb3ogcnQ9ODY0MjA0MzE2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCiphcHBsYXVkaWVyKiA7LSkKUyBvZGVyIFg/IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBXdW5kZXJsYW5kIChCYWJzLCAyMi4gTWFpIDE5OTcsIDA4OjMwOjEwKToKfiMhIHJuPUZ5dCBydD04NjQyMTkxNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjQxMzYzMDEKV2VpbCBtYW5jaGUgTVVEcyBzbyBndXQgc2luZCwgZGFzcyBzaWUgZWluIFNwaWVsZXJwdWJsaWt1bSB3aWUgaW0gTUcgbmljaHQKYW56ZWloZW4gd29sbGVuID8gO18pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXdW5kZXJsYW5kIChTbnVnZ2xlLCAyMi4gTWFpIDE5OTcsIDExOjQyOjI5KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODY0MTYxODYzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0MTM2MzAxCkh1Y2gsIGdpYnRzIGRhIGV0d2EgbmUgbmV1ZSBEb21haW4/IFdhZXIgbWlyIG9obmUgZGllIHZpZWxlbiBBcnRpa2VsIGhpZXIKZ2xhdHQgZW50Z2FuZ2VuIAosCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbGRlYmFyYW4gKE1hbWJyZXMsIDIyLiBNYWkgMTk5NywgMjE6MTI6MjEpOgpBbGRlYmFyYW4gaXN0IGZ1ZXIgZWluaWdlIFRhZ2Ugb2ZmbGluZS4gRGllIE1pY3JvdGVjIEdtYkgsCmRpZSB1bnMgZnJldW5kbGljaGVyd2Vpc2UgZGVuIFJlY2huZXIgenVyIFZlcmZ1ZWd1bmcgc3RlbGx0LAp6aWVodCBpbiBlaW4gYW5kZXJlcyBHZWJhZXVkZSwgdW5kIGRhIGRhdWVydAplcyBuYXR1ZXJsaWNoIGVpbiBwYWFyIFRhZ2UsIGJpcyBhbGxlcyBhYmdlYmF1dCB1bmQgd2llZGVyCmF1ZmdlYmF1dCB1bmQgYW5nZXNjaGxvc3NlbiBpc3QuCkljaCBob2ZmZSBhYmVyLCBkYXNzIGRlciBSZWNobmVyIG1vZWdsaWNoc3QgYmFsZCB3aWVkZXIgYW0gTmV0eiBpc3QKdW5kIGRhbm4gYWxsZXMgd2llIGJpc2hlciBsYWV1ZnQuIEJpcyBkYWhpbiBiaXR0ZSBpY2ggdW0gVmVyc3RhZW5kbmlzLgoKV2UgYXBvbG9naXplIGZvciB0aGUgaW5jb252ZW5pZW5jZS4KCk1hbWJyZXNAQWxkZWJhcmFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpoaXAgKEFuYWt5biwgMjQuIE1haSAxOTk3LCAwOTozNjowMik6CkZhaGVydCBqZW1hbmQgQW5mYW5nIEF1Z3VzdCB6dXIgSElQJzk3IG5hY2ggQWxtZXJlPwoKQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxkZWJhcmFuIChNYW1icmVzLCAyNS4gTWFpIDE5OTcsIDE1OjIzOjMxKToKQWxkZWJhcmFuIGlzdCB3aWVkZXIgZGEgdW5kIGxhZXVmdCBqZXR6dCB1bnRlciAxOTQuMTYyLjIwNi4xMSMyMDAwLgooaW1tZXIgb2NoIG11ZC50YXAuZGUgMjAwMCkuCkFsdGUgdW5kIG5ldWUgU3BpZWxlciBzaW5kIHdpbGxrb21tZW47IEFkbWlucyBhbmRlcmVyIE11ZHMgd2VyZGVuIGdlYmV0ZW4sCmRpZSBuZXVlIElQLUFkcmVzc2UgaW4gaWhyZSBJTkVURC1Db25maWd1cmF0aW9uc2RhdGVpZW4genUgdWViZXJuZWhtZW4uCkRhbmtlLAoKICAgICBNYW1icmVzQEFsZGViYXJhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2FtcGluZ3BsYXR6IGJlaSBCZXJsaW4gKFBhbXBlcnMsIDI3LiBNYWkgMTk5NywgMTQ6MTg6MTIpOgpGcmFnZSBhbiBhbGxlIEJlcmxpbmVyOgoKSGF0IGVpbmVyIHZvbiBFdWNoIHp1ZmFlbGxpZyBBZHJlc3NlLCBUZWxlcGhvbm51bWVyIGVpbmVzIENhbXBpbmdwbGF0emVzIGluCkJlcmxpbm5hZWhlLCBkZW4gbWFuIHp1ciBMb3ZlcGFyYWRlIGF1ZnN1Y2hlbiBrYW5uPwpOb3RmYWxscyBhdWNoIGRlciBpbiBLYWdlbC9LaWVzc2VlLi4uIDotKQoKUGFtcGVycy4gV2lsbCBUZWNobm8gaG9lcm4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2FtcGluZ3BsYXR6IGJlaSBCZXJsaW4gKEJsb29keWhhcnJ5LCAyNy4gTWFpIDE5OTcsIDE1OjM3OjU2KToKfiMhIHJuPVBhbXBlcnMgcnQ9ODY0NzM1NDkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY0NzM1NDkyCgogICAtPiBBREFDIENhbXBpbmdmdWVocmVyLgoKYmgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkludGVybmV0IFJlbGF5IENoYXQgKEhhdGUsICA1LiBKdW4gMTk5NywgMTY6MDg6MTcpOgpIaSwgCgpmdWVyIGRpZSBLcmFua2VuLCBkaWUgYXVjaCBpbSBNVUQgbmljaHQgYXVmIElSQyB2ZXJ6aWNodGVuIHdvbGxlbiA6LSk9CgotaXJjKwoKRGFzIHdpcmQgYXVmIGRlbiBJUkMgQ2hhbm5lbCAjTUcgZ2Vyb3V0ZXQuCgpIYXRlLgpQLlMuIHBsb2V0emxpY2hlIGF1c2ZhZWxsZSBrb2VubmVuIHBhc3NpZXJlbi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pdGZhaHJnZWxlZ2VuaGVpdCAoRnl0LCAgNS4gSnVuIDE5OTcsIDE5OjAzOjQxKToKCkljaCBzdWNoZSAqb2RlciogYmlldGUgZWluZSBNaXRmYWhyZ2VsZWdlbmhlaXQgZnVlciBmb2xnZW5kZSBTdHJlY2tlbjoKMTYuIG9kZXIgMTcuIHZvbiBDaGVtbml0eiBFcmZ1cnQsIEtpcmNoaGVpbWVyIERyZWllY2ssIFBhZGVyYm9ybiBuYWNoCkJpZWxlZmVsZCwKMTguIG9kZXIgMTkuNi4gdm9uIEJpZWxlZmVsZCBpcmdlbmR3aWUgbmFjaCBNYW5uaGVpbSAoUnVocnBvdHQsIEtvZWxuLi4uPykKMjAuIG9kZXIgMjEuNi4gdm9uIE1hbm5oZWltIGVudHdlZGVyIEZyYW5rZnVydCwgR2llc3NlbiwgRXJmdXJ0LCBDaGVtbml0egpvZGVyIE1hbm5oZWltLCBOdWVybmJlcmcsIEhvZiwgQ2hlbW5pdHouCgpEaWUgQWJzaWNodCBpcyB3b2hsIGtsYXI6IEljaCB3b2huIGluIENoZW1uaXR6LCB3aWxsIGFtIDE3LiBpbiBCSSB1bmQgYW0KMTkgaW4gTUEgc2VpbiB1bmQgZGVyIFNwYXNzIHNvbGx0ZSBtb2VnbGljaHN0IGJpbGxpZyB3ZXJkZW4uIEF1dG8gaXMgenVyCk5vdCB2b3JoYW5kZW4sIGFiZXIgYWxsZWluZSBsb2hudCBzaWNoIGRhcyBuaWNodCBzbyByaWNodGlnIDstKQoKRnl0LgoKUFM6IEJpbiBOaWNodHJhdWNoZXIgdW5kIHJlbGF0aXYgc3R1YmVucmVpbiA7LS0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZXJuZXQgUmVsYXkgQ2hhdCAoSmltZGlncml6LCAgNS4gSnVuIDE5OTcsIDE5OjExOjEzKToKfiMhIHJuPUhhdGUgcnQ9ODY1NTE5Njk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY1NTE5Njk3ClN1cGVyIEhhdGUsCgpkYXJhdWYgaGFiIGljaCBlY2h0IHNjaG9uIGdld2FydGV0IQoKTWVyY2ksCiBKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEludGVybmV0IFJlbGF5IENoYXQgKFR1bml4Z3V0LCAgNi4gSnVuIDE5OTcsIDA4OjMyOjM0KToKfiMhIHJuPUppbWRpZ3JpeiBydD04NjU1MzA2NzMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjU1MTk2OTcKU2NobGllc3NlIG1pY2ggZGVtIGFuIQoKU2F1YmVyZSBBcmJlaXQsIEhhdGUhIDpvKSkpIEFmZmVuc2NoYXJmIQoKVE5HIC0gc3RhdW5lbmQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEludGVybmV0IFJlbGF5IENoYXQgKEhhdGUsICA2LiBKdW4gMTk5NywgMTE6MzI6MTMpOgp+IyEgcm49VHVuaXhndXQgcnQ9ODY1NTc4NzU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY1NTE5Njk3CktsZWluZSBBZW5kZXJ1bmcgOi0pCkRlciBNRyBjaGFubmVsIGhhdCBkZW4gZ2xlaWNoZW4gTmFtZW4gd2llIGltIElSQzogI01HCkRhIHNpY2ggZGFzIG5pY2h0IGVpbmZhY2ggZWluc3RlbGxlbiBsYWVzc3QgaXN0IGVpbmUgQWJrdWVyenVuZyBub3R3ZW5kaWc6CmViZW5lIG1nPSNtZwpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR28gQmFuZyBNdWVuY2hlbiA6KSAoUm9uZGEsICA2LiBKdW4gMTk5NywgMTI6MzI6MDgpOgpIdWh1Li4uCmljaCBoYWIgbmVuIGtsaXR6ZWtsZWluZXMgUHJvYmxlbS4uLiBvZWhtLCBpY2ggaGFiIG1hbCB3aWVkZXIgaW0gV1dXCmdlc3BpZWx0Li4uLiAoamF1LCBpY2ggbWFjaCBkYSBhdWNoIGFuZGVyZXMgYWxzIE1HLi4uKS4uLiBudW4gamEsIG51biBtdXNzCmljaHMgYXVzYmFkZW4uLi4KSWNoIGhhYiBuZSBCYWNrc3RhZ2UtS2FydGUgZnVlciBkaWUgQmFuZCAiQmUiIGJla29tbWVuLi4uIHVuZCBudW4gbXVzcyBpY2ggYW0KMjIuNi4gbmFjaCBNdWVuY2hlbiB6dW0gS29uemVydC4uLgpVbXMga3VyeiB6dSBtYWNoZW46IGZhZWhydCB6dWZhZWxsaWcgamVtYW5kIHZvbiBFdWNoIGRhIGhpbiAtIG9kZXIgbXVzcyBpY2ggZGEKTXV0dGVyc2VlbGVuYWxsZWluIHJ1bXRhcHBlcm4/CkdpYnRzIGluIE11ZW5jaGVuIGF1Y2ggTXVkZGVyLCBiZWkgZGVuZW4gaWNoIGV2ZW50dWVsbCB2b24gU2Ftc3RhZyBhdWYgU29ubnRhZwp1bnRlcmtvbW1lbiBrb2VubnRlICh2aWVsbGVpY2h0IG1pdCBlaW4vendlaSBCaWVyY2hlbiBhbSBTYW1zdGFnID8pCkltbWVyIHVlYmVyIE5hY2hyaWNodGVuIGZyb2gsCiAgICAgICAgICAgICAgICAgICAgIFJvbmRhClBzOiBCaXR0ZSBBbnR3b3J0IHZpYSAoTXVkKS1NYWlsIGFuIG1pY2gsIGtvbW1lIHp1ciBaZWl0IHp1IHNlbHRlbiBkaXJla3QgaW5zCk11ZCwga2FubiBudXIgZGllIE1haWxzIGxlc2VuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb256ZXJ0Li4uIChIYXIsICA2LiBKdW4gMTk5NywgMTI6NTM6NDIpOgpVTnRlciBkZW0gTW90dG8gTXVkZGVyIGtvZW5uZW4gYXVjaCBhbmRlcnMgbWFjaGUgaWNoIGhldXRlIEFiZW5kIG1hbCB3aWVkZXIKZWluIGJpc3NlcmwgTXVzaWsuIEljaGRuZWtlIG1hbCwgTGV1dGUgLCBkaWUgZXR3YXMgaGFlcnRlcmUgbXVzaWsgbW9lZ2VuCmtvZW5udGUgZGFzIGludGVyZXNzaWVyZW46ClB1bmtyb2NrLU5hY2h0IGltIFN0YXItQ2x1YiBPYmVyaGF1c2VuIG1pdApVcHJpZ2h0IENpdGl6ZW5zClNvIFdoYXQ/IQpQaWxzIEFuZ2VscywgYWIgMjA6MDAgVWhyCgpIYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRvYydzIChMYXJpc3NhLCAgNi4gSnVuIDE5OTcsIDE3OjM4OjMwKToKSG9pLAoKd2Vpc3MgamVtYW5kIGVpbmVuIFNjaHVobGFkZW4gaW4gTlJXIHdvIGVzIERyIE1hcnRlbnMgaW4gZ2VzY2hlaXRlcgpBdXN3YWhsIGdpYnQ/IEJpdHRlIE1haWwgYW4gbWljaCwgRGFua2UhCgpMYXJpc3NhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYWNrZW4gKEJlZWx6ZWJ1YiwgIDkuIEp1biAxOTk3LCAxODoxMzo1OCk6CkhhYiBkYXMgendhciB2b3IgbmljaHQgYWxsenUgbGFuZ2VyIFplaXQgc2Nob24gbWFsIGdlc2NocmllYmVuIGFiZXIgaGllcgp3aXJkIGphIHNjaG5lbGxlciBnZWxvZXNjaHQgYWxzIG1hbiBsZXNlbiBrYW5uIDopCgpXZXIgaGF0IEx1c3Qgdm9tIDcuLTEwIEF1Z3VzdCBpbiBXYWNrZW4genUgQ2FtcGVuLiBEYSBpcyBuYWVtbGljaCBlaW4Kc3VwZXJ0b2xsZXMgRmVzdGl2YWwuIEF1ZnRyZXRlbiB3ZXJkZW46ClJBR0UgKyBMSU5HVUEgTU9SVElTIE9SQ0hFU1RSQSAoTWV0YWwgbWVldHMKICAgICAgICAgICAgQ2xhc3NpYyAtIGVpbnppZ2VzIEtvbnplcnQgaW4gRGV1dHNjaGxhbmQgISkKICAgIFNPRE9NLCBVLkQuTy4gKGV4LUFDQ0VQVCksIFNBTUFFTCwgQ1JBRExFIE9GCiAgICAgICAgICBGSUxUSCxXQUxUQVJJLCBBTU9SUEhJUywgVU1CUkEgRVQKICAgICAgICAgICAgICAgICAgICAgICAgIElNQUdPLFRIRVJJT04sCiAgICBHUkFWRSBESUdHRVIsU0FWSU9VUiBNQUNISU5FLFRIRUFUUkUgT0YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUkFHRURZLCAKICAgICAgSU4gRkxBTUVTLFZJUkdJTiBTVEVFTEUsTU9SR0FOQSBMRUZBWSwgCiAgIERJU1NFQ1RJT04sU1VCV0FZIFRPIFNBTExZLERJU01FTUJFUiwgQklSVEgKICAgICAgICBDT05UUk9MICgiR0FNTUFSQVkiKSxESU1NVSBCT1JHSVIKICAgICAgICAgICAgICAgICAgICBUT1RFTk1PTkQsIFNDQU5ORVIgCgogICAgICAgICAgICAgc3BlY2lhbCBndWVzdDogVEFOSyAoVUspICYgT1ZFUktJTEwKICAgICAgICAgICAgICAgdmVyeSBzcGVjaWFsIGd1ZXN0OiBST0NLIEJJVENIIChVSykgCiAgICAgICAgICAgICAgICBbUE9STiBNRVRBTCBFWFRSRU1FIFNIT1ddCiAgICAgICAgICAgICAgICAgICAgICJUaGUgUXVlZW5zIE9mIFBvcm5yb2NrIgogICAgICAgICAgICAgICAgICAgICAgIHNvd2llIDEwIHdlaXRlcmUgQmFuZHMgCgogICAgICAgICAgICBBZnRlcnNob3ctUGFydHkgIk9ua2VsIFRvbSIgQW5nZWxyaXBwZXIKICAgICBMT1ZFIEdVTiAoQkVTVCBLSVNTIENPVkVSIE9GIFRIRSBXT1JMRCAhISEpIAoKaGFiIGRhcyBhdXNtIE5ldHogcmF1c2dlaG9sdCwgc2llaHQgZGVzaGFsYiBzY2hlaXNzZSBhdXMgOikKCkJlZWx6ZSoKClAuUy4gRGFzIEZlc3RpdmFsIGFuc2ljaCBpc3QgYW0gOC4rOS4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaG8gPyAoUmFudGFucGxhbiwgMTAuIEp1biAxOTk3LCAwMzoxMjo0MSk6CgpIdWh1ICEhIQoKSmUgbGFlbmdlciBpY2ggenVzZWhlLCBkZXN0byBtZWhyIGtvbW1lIGljaCB6dSBkZXIgQW5zaWNodC4uLgoKRWluZXIgdm9uIHVucyBiZWlkZW4gaXN0IEtyYW5rLCBkaWUgV2VsdCBvZGVyIGljaC4uLgoKQmlzaGVyIGRhY2h0ZSBpY2ggaW1tZXI6IEluIGR1YmlvIHBybyByZW8uLi4sYWJlciBlcyBpc3Qgd29obCBkb2NoIGRpZSBXZWx0Li4KCldlciBBbmRlcmVyIE1laW51bmcgaXN0LCBtdXNzIG51ciBkZW4gRmVybnNlaGVyIGFuc2NoYWx0ZW4uLi4KCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdobyA/IChHcmltbWJvcm4sIDEwLiBKdW4gMTk5NywgMDk6MTg6MjgpOgp+IyEgcm49UmFudGFucGxhbiBydD04NjU5MDUxNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjU5MDUxNjEKU2FnZW4gd2lyOiBEYXMgZWluZSBzY2hsaWVzc3QgamEgZGFzIGFuZGVyZSBuaWNodCBhdXMuIAoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2hvID8gKFNjaGxpcHMsIDEwLiBKdW4gMTk5NywgMTE6MjI6MDIpOgp+IyEgcm49UmFudGFucGxhbiBydD04NjU5MDUxNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjU5MDUxNjEKSWNoIGhhYiBGZXJuc2VoZXIgc2VpbiBlaW4gcGFhciBKYWhyZW4gYWJiZXN0ZWxsdCAuLi4KClNjaGxpcHMsIGRlciBNdWVsbG1hbm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaG8gPyAoU29jcmF0ZSwgMTAuIEp1biAxOTk3LCAxNDoyNTo0Mik6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTg2NTkwNTE2MSByZz1hbnplaWdlbgp+IyEgdGlkPTg2NTkwNTE2MQpPZGVyIGlucyBNdWQgc2NoYXVlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0dVBhIFdhaGwgKFBhbXBlcnMsIDExLiBKdW4gMTk5NywgMTQ6MDA6MTApOgpNdWRkZXIgaW5zIERvcnRtdW5kZXIgU3R1UGEhCgpHZWh0IHdhZWhsZW4hIFNjaGxlcHB0IEV1cmUgS3VtcGVsIG1pdCEgOi0pCgpXYWVobHQgenVtIEJlaXNwaWVsOgoKUGFtcGVycyAoYWxpYXMgSGVubmluZyBLYW50bmVyKTogU2Nod2VpbmUgaW0gSG9lcnNhYWwsIExpc3RlbnBsYXR6IDgKCm9kZXIKYXVjaCBIYXJkaWwgKGFsaWFzIEhhbm5vIEdpcmtlKTogU2Nod2VpbmUgaW0gSG9lcnNhYWwsIExpc3RlbnBsYXR6IDExCgpXYWhsZW4gc2luZCBub2NoIGJpcyBEb25uZXJzdGFnLApEb25uZXJzdGFnIGFiZW5kIGlzdCBXYWhscGFydHkgdm9yIGRlbSBNYXRoZWJhdSAobWl0IEdyaWxsd3VlcnN0Y2hlbiB1bmQgQmllcgp6dW0gU2VsYnN0a29zdGVucHJlaXMpIDotKQoKCgpQYW1wZXJzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN0dVBhIFdhaGwgKEFuYWt5biwgMTEuIEp1biAxOTk3LCAxNDoyMDowNCk6Cn4jISBybj1QYW1wZXJzIHJ0PTg2NjAzMDQxMCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjAzMDQxMApBcmdoLCB3YXJ1bSBpc3QgRG9ydG11bmQgc28gd2VpdCB3ZWcuCgpBbmFraW4uIEluIFBhcnR5bGF1bmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDb3VjaCB6dSB2ZXJzY2hlbmtlbiAoQ2F1bm8sIDEyLiBKdW4gMTk5NywgMTE6MzU6MDQpOgpFaW5lIHp3ZWlzaXR6aWdlIENvdWNoLCBzY2h3YXJ6IG1pdCBnZW9tZXRyaXNjaGVuIEZhcmJ0dXBmZXJuIHVuZCBldHdhcwpCZW51dHp1bmdzc3B1cmVuLCBhdXNrbGFwcGJhciB6dSBlaW5lciBMaWVnZW1hdHRlLCB3YXJ0ZXQgYmVpIG1pciBhdWYgZWluZW4KbmV1ZW4gQmVzaXR6ZXIuCldlciBzbyBlaW5lIEx1ZW1tZWxjb3VjaCBicmF1Y2hlbiBrYW5uLCBtZWxkZSBzaWNoIGJlaSBtaXIuIFdhZXJlIHp1IHNjaGFkZSwKZGFzIERJbmcgd2VnenV3ZXJmZW4uCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRlJFRTogTWFnaWMgQ3ViZSBEZWx1eGUgdjEuMCAoVGhpbmdvbCwgMTIuIEp1biAxOTk3LCAxNDo0Nzo1MCk6CkhpaG8sIAoKZ3VnZ3QgZG9jaCBtYWwgd2FzIGljaCBmdWVyIGVpbiBrbGVpbmVzIEdhbWUgZ2ViYXN0ZWx0IGhhYmUuIEVzIGlzdCBlaW5lIDNELQpnZXJlbmRlcnRlLCBhbmltaWVydGUgU2ltdWxhdGlvbiBkZXMgUnViaWsncyBDdWJlIGZ1ZXIgTVMtRE9TLCBNUyBXaW5kb3dzIHVuZApXaW5kb3dzIDk1LgoKRXMga2FubjoKLSBtaXNjaGVuLCB6dXJ1ZWNrc2V0emVuLAotIEN1YmUgRWRpdG9yCi0gQ3ViZSBTb2x2ZXIKLSBQbGF5IE9wdGlvbnMKLSB1bmQgdmllbGVzIG1laHIgd2llIFNvdW5kJk11c2ljIHVzdy4KClNjaGF1dCBkb2NoIGRpZSBzdXBlcmNvb2xlbiBTY3JlZW5zaG90cyBhbmQgYmVpOgpodHRwOi8vd3d3LnN3aXguY2gvY2xhbi9tZXRlL2N1YmUuaHRtCgpjdSBUaGluZ29sLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZSRUU6IE1hZ2ljIEN1YmUgRGVsdXhlIHYxLjAgKEJhYm9vbiwgMTIuIEp1biAxOTk3LCAxNDo1MDoxMCk6Cn4jISBybj1UaGluZ29sIHJ0PTg2NjExOTY3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjExOTY3MApWaWVsbGVpY2h0IGthbm4gbWlyIGplbWFuZCBzYWdlbiwgd2FydW0gbWljaCBkaWVzZXIgQXJ0aWtlbCBzbyBwZW5ldHJhbnQgYW4KdXNlbmV0LVNwYW0gZXJpbm5lcnQ/CgpCYWJvb24gKGlycml0aWVydCAod2llIHVlYmVsaWNoKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRlJFRTogTWFnaWMgQ3ViZSBEZWx1eGUgdjEuMCAoR3JpbW1ib3JuLCAxMi4gSnVuIDE5OTcsIDE0OjU4OjMyKToKfiMhIHJuPUJhYm9vbiBydD04NjYxMTk4MTAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjYxMTk2NzAKTmVydiBuaWNodCwgc293YXMgaXN0IGluIGFuemVpZ2VuIGR1cmNoYXVzIGFtIHJpY2h0aWdlbiBQbGF0ei4gWnVtaW5kZXN0LCB3ZW5uCmVycyBzZWxiZXIgZ2VtYWNodCBoYXQgdW5kIGRhbWl0IGtlaW5lIE1pbGxpb25lbiBzY2hlZmZlbG4gd2lsbC4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGUkVFOiBNYWdpYyBDdWJlIERlbHV4ZSB2MS4wIChCYWJvb24sIDEyLiBKdW4gMTk5NywgMTU6MDU6MDYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NjEyMDMxMiByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjExOTY3MApOYSB1bmQ/IEljaCBoYWIgamEgYXVjaCBnYXIgbmljaHQgaW4gRnJhZ2UgZ2VzdGVsbHQsIGRhcyBlciBpbiBkZXIgcmljaHRpZ2VuClJ1YnJpayBzdGVodCwgc2NobGllc3NsaWNoIGhhc3QgZHUgaWhuIG5pY2h0IHZlcmxlZ3QuIEFiZXIgZXIgZXJpbm5lcnQgbWljaAp0cm90emRlbSBhcmcgYW4gIioqKipFQVJOIE1PTkVZIEZBU1QhISEhISoqKioiIHVuZCAiISEhISEhISFGUkVFCkZVQ0tQSUNTISEhISEhISEiLUFydGlrZWwsIG1pdCBkZW5lbiBzdGFlbmRpZyBhbGxlIGhhbGJ3ZWdzIHZlcmJyZWl0ZXRlbgp1c2VuZXQtR3J1cHBlbiBnZWZsdXRldCB3ZXJkZW4uCgpCYWJvb24oKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRlJFRTogTWFnaWMgQ3ViZSBEZWx1eGUgdjEuMCAoSGlnaGxhbmRlciwgMTIuIEp1biAxOTk3LCAxNToxMTowMCk6Cn4jISBybj1CYWJvb24gcnQ9ODY2MTIwNzA2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY2MTE5NjcwCkhtLi4uICAgIEtrcy8uKk1PTkVZLipeTWFweSAgIChiZXpvZ2VuIGF1ZiBubikKTml4IG1laHIgQXJ0aWtlbCBtaXQgTU9ORVkgaW0gVGl0ZWwuIE5pZSBtZWhyIDo+ClVuZCB3ZW5uIGVpbmVyIG5pY2h0a29tbWVyemllbGxlIFdlcmJ1bmcgZnVlciBlaW4gRWlnZW5wcm9kdWt0IGhpZXIgbWFjaHQsCmRhbm4gaXN0IGVyIGhpZXIgbnVuIG1hbCBpbiBkZXIgcmljaHRpZ2VuIFJ1YnJpayAtIEFuemVpZ2VuIGhhbHQuCiAgIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRlJFRTogTWFnaWMgQ3ViZSBEZWx1eGUgdjEuMCAoUmFudGFucGxhbiwgMTIuIEp1biAxOTk3LCAxNjo1NjozNyk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTg2NjEyMTA2MCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjExOTY3MApGUkVFRlVDS1BJQ1MgV09XT1dPV09XT1dPV09XT1dPV09XTyA/Pz8/Pz8/Pz8/CgpPZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZSRUVGVUNLUElDUyAoRW5neXd1Y2ssIDEyLiBKdW4gMTk5NywgMTg6NDk6MTIpOgpXZXIgc2ljaCBlbmRsaWNoIG1hbCB3YXMgZ3V0ZXMgdHVuIHdpbGw6CgpodHRwOi8vd3d3LnVuaS1rb2Vsbi5kZS9+YWNwMzcvb3dubWlkaWQuaHRtbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZSRUVGVUNLUElDUyAoQW5hdG9sLCAxMi4gSnVuIDE5OTcsIDE4OjUwOjI1KToKfiMhIHJuPUVuZ3l3dWNrIHJ0PTg2NjEzNDE1MiByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjEzNDE1MgpEYXMgWmV1ZyBpc3QgdWVicmlnZW5zIE5JQ0hUIGRvcHBlbHQgZ2VwYWNrdCwgZGFzIGhvZXJ0IHNpY2ggbmFjaCBkZW0gCkVudHBhY2tlbiB3aXJrbGljaCBzbyBrb21pc2NoIGFuLi4uCgpBbmF0b2wgOy0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZSRUVGVUNLUElDUyAoUmFmZmksIDEzLiBKdW4gMTk5NywgMTQ6MTE6MDMpOgp+IyEgcm49RW5neXd1Y2sgcnQ9ODY2MTM0MTUyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY2MTM0MTUyCkVuZ3l3dWNrIER1IFNjaHdlaW5pZ2wgOikKCkdyaW5zCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3R1UGEgV2FobCAoQXNtb2RpcywgMTMuIEp1biAxOTk3LCAyMjoyNDoyOCk6Cn4jISBybj1QYW1wZXJzIHJ0PTg2NjAzMDQxMCByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjAzMDQxMApTY2h3ZWluZSBpbSBIb2Vyc2FhbCA/IG5vZSwgcmVpY2h0IHNjaG9uLCB3ZW5uIGRpZSBQcm9mZXNzb3JlbgpkaWUgZ2FuemUgVGFmZWwgdm9sbHNhdWVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRlJFRUZVQ0tQSUNTIChBc21vZGlzLCAxMy4gSnVuIDE5OTcsIDIyOjMxOjMyKToKfiMhIHJuPUVuZ3l3dWNrIHJ0PTg2NjEzNDE1MiByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjEzNDE1MgpOb2UsIGRhbm4gbGllYmVyOgoKaHR0cDovL3d3dy5nYXNhbnN0YWx0LmRlLwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbXVkQG1nLm11ZC5kZSAoSGF0ZSwgMTUuIEp1biAxOTk3LCAyMToyMToxNik6CkhpLAoKaWNoIGhhYmUgZGFzIG1haWwtZmlsdGVyaW5nIGF1ZiBkaWUgYWRyZXNzZSBtdWRAbWcubXVkLmRlIHdpZWRlciAKaGVyZ2VyaWNodGV0LiBkLmguIG1haWxzIGFuIGRpZXNlIEFkcmVzc2Ugd2VyZGVuIGFuIEFkbWlucyB3ZWl0ZXJnZWxlaXRldCwKYXVzc2VyIGRpZSBlbnRoYWx0ZW4gZm9sZ2VuZGVuIFRleHQgaW4gZGVyIFN1YmplY3Q6IFplaWxlOgoKICAgIndobyIgb2RlciAid2VyIiAgIC0gYW50d29ydGV0IG1pdCBlaW5lciBha3R1ZWxsZW4gTGlzdGUgZGVyIFNwaWVsZXIKICAgImZhcSIgICAgICAgICAgICAgIC0gc2VuZGV0IGVpbmVtIGRpZSBha3R1ZWxsZSBGQVEgenUKICAgImhpbGZlIiBvZGVyICJoZWxwIiAtIHNjaGlja3QgbmUga2xlaW5lIGFuZmFlbmdlcmhpbGZlCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQgKFNseWZveCwgMTYuIEp1biAxOTk3LCAxNjoxODo0NSk6CldpciwgYWxzbyBGbGF2aWEgdW5kIFNseWZveCwgaGFiZW4gYmVzY2hsb3NzZW4sIGFtCgogICBEb25uZXJzdGFnIGRlbiAxOS42LjE5OTcsIHVtIDE4LjAwIFVocgoKenUgaGVpcmF0ZW4sIHVuZCB6d2FyIGluIE5pYmVsaGVpbS4gCgpFcyBzaW5kIGFsbGUgRnJldW5kZSBkYXp1IGhlcnpsaWNoIGVpbmdlbGFkZW4sIHdpciBob2ZmZW4sCmRlciBUZXJtaW4gaXN0IGplZGVtIGluIE9yZG51bmcsIHVuZCBob2ZmZW4sIGRhc3MgYWxsZSwgCmRpZSBzaWNoIGRpZSBGZWllciBuaWNodCBlbnRnZWhlbiBsYXNzZW4gd29sbGVuLCBhdWNoIGtvbW1lbiAKa29lbm5lbi4gCiAKCkJpcyBkYW5uCgogICBTbHlmb3ggdW5kIEZsYXZpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhvY2h6ZWl0IChTb2NyYXRlLCAxNi4gSnVuIDE5OTcsIDE4OjIwOjEwKToKfiMhIHJuPVNseWZveCBydD04NjY0NzA3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjY0NzA3MjUKSG0sIGljaCBiaW4ga2VpbiBGcmV1bmQsIGJla29tbWUgaWNoIHRyb3R6ZGVtIEZyZWliaWVyPwpTb2NyYXRlLCBnaWVyaWcgd2llIGltbWVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdWVobGUgZ2VzdWNodCAoTGksIDE3LiBKdW4gMTk5NywgMDg6MzQ6NTcpOgpIaSEKSWNoIHN1Y2hlIFBsYWVuZSB1bmQvb2RlciBHcnVuZHJpc3NlIGVpbmVyIE11ZWhsZS4gS2VpbmUgd2luZG11ZWhsZSwgc29uZGVybgpNdWVobGVuLCB3aWUgc2llIGVzIGluIEQgZnJ1ZWhlciBtYXNzaWcgZ2VnZWJlbiBoYXQ6IEFtIGJhY2gsIGRlciBlaW4gTXVlaGxyYWQKYW50cmVpYnQsIGRhcyB3aWVkZXJ1bSBkZW4gTWFobHN0ZWluLgpiaW4gdWViZXIgYWxsZSBoaW53ZWlzZSBkYW5rYmFyLApMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE11ZWhsZSBnZXN1Y2h0IChZYW50cm8sIDE3LiBKdW4gMTk5NywgMDk6Mzk6NTQpOgp+IyEgcm49TGkgcnQ9ODY2NTI5Mjk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY2NTI5Mjk3CgpIbW0gTGkgOi0pCgpCZWltIEJlcmdwZmFkIGJlaSBLZXRvcycgQmVyZ2RvcmYgaXN0IGVpbiBCYWNoIG1pdCBlaW5lciBNdWVobGUuLi4gZGllIHNvbGx0ZQpzb2dhciBkYSBzdGVoZW4sIHdlbm4gbmljaHQgbWFsIHdpZWRlciBlaW5lciBtaXQgZWluZXIgRmFja2VsIHJ1bWdlZm9yc2NodApoYXQuCgpZYW50cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5lZWQgeW91ciBoZWxwIChBbGJvaW4sIDE4LiBKdW4gMTk5NywgMTI6MDM6NTEpOgpJY2ggc2NocmVpYmUgZ3JhZCBhbiBlaW5lciBIYXVzYXJiZWl0LCBpbiBkZXIgUmljaHR1bmcgTWF0cml4LUNvbW1tcHV0YXRpb25zCnVuZCBzdWNoZSBkcmluZ2VuZCBlaW5lbiBHVVRFTiBBbGdvcml0aG11cywgZGVyIGVpbmUgTWF0cml4IGF1ZgpJcnJlZHV6aWJpbGl0YWV0IHVlYmVycHJ1ZWZ0LiBJY2ggc2VsYmVyIGtlbm5lIG51ciB6d2VpIE1ldGhvZGVuLCBkaWUgbWlyIGVpbgp3ZW5pZyB6dSBhdWZ3ZW5kaWcgc2luZDoKMS4gTWFuIHBvdGVuemllcnQgZGllIE1hdHJpeCAoYmlzIHp1ciBaYWhsIGlocmVyIERpbWVuc2lvbikgdW5kIHVlYmVycHJ1ZWZ0LApvYiBqZWRlciBFaW50cmFnIGluIGVpbmVyIGRlciBQb3RlbnplbiBtYWwgcG9zaXRpdiBpc3QKCjIuIE1hbiBiaWxkZXQgZGVuIEdyYXBoIGRlciBNYXRyaXggdW5kIHVlYmVycHJ1ZWZ0LCBvYiBkaWVzZXIgc3RyZW5nIHZlcmJ1bmRlbgppc3QsIHVuZCBtdXNzIGF6dSBhYmVyIGF1Y2ggbm9jaCB1ZWJlcnBydWVmZW4sIGRhc3MgZGllIE1hdHJpeCBuaWNodCBzaW5ndWxhZXIKaXN0LgoKVmllbGxlaWNodCB3ZWlzcyBhdWNoIGplbWFuZCwgb2IgZXMgbmUgTWF0bGFiLVJvdXRpbmUgZGF6dSBnaWJ0PyAKRnVlciBqZWRlbiBkZXIgbWlyIHdlaXRlcmhlbGZlbiBrYW5uLCBnZWJlIGljaCBhdWYgZGVyIFBhcnR5IGluIE11ZW5zdGVyIGVpbmVuCmF1cy4KQWNoIGphIHVuZCBFdXJlIFZvcnNjaGxhZWdlLCBMb2VzdW5nZW4gZXRjLiBiaXR0ZSBhbiAKZmhlaW5yaWNAbWF0aGVtYXRpay50dS1jaGVtbml0ei5kZQooaWNoIGhhYmUgaGllciBhYmVyIGF1Y2ggZWluZW4gTmFjaHNlbmRlYXVmdHJhZykKCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWF0aGUgKERpZWRlciwgMTguIEp1biAxOTk3LCAxMjowOToxMyk6CkhhbGxvIQoKRmllbCBtaXIgZ3JhZCBiZWltIGxldHp0ZW4gQXJ0aWtlbCBlaW4uLi4KCkhhdCBzY2hvbm1hbCBqZW1hbmQgd2FzIHVudGVyIE1hcGxlIHp1bSBUaGVtYSBQb2x5bm9tZSBnZW1hY2h0PwpKYSwgaWNoIHdlaXNzLCBkYXMgaXMgbml4IGJlc29uZGVyZXMgKFBvbHlub21kaXZpc2lvbiwgTnVsbHN0ZWxsZW4gZXRjKSwKYWJlciBpY2ggbXVzcyBkYSBuYWVjaHN0ZSBXb2NoZSB3YXMgYWJnZWJlbiB1bmQgYmluIHNvIGltIFN0cmVzcyBkYXNzIGljaAp1ZWJlciBqZWRlIEhpbGZlIGRhbmtiYXIgd2FlcmUuLi4KClRoeC4KCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVEYgZnVlciBXaW5kb3dzISAoVGFzaGEsIDE4LiBKdW4gMTk5NywgMjM6MzE6MTEpOgpIaWhvIQoKS2F1bSB6dSBnbGF1YmVuIHVuZCBkb2NoIHdhaHI6IElyZ2VuZGplbWFuZCBoYXQgc2ljaCBkZXIgYXJtZW4gV2luZG93cy1Vc2VyCmVyYmFybXQgdW5kIFRpbnlmdWd1ZSwgZGVuIGVpbnppZyB3YWhyZW4gTVVELUNsaWVudCBmdWVyIFdpbjk1L05UIHVtZ2VzZXR6dC4KWnUgZmluZGVuIGlzdCBlciBhdWYgZnRwLmNjLmNjLmNhLnVzL3B1Yi9NdWRzL1RpbnlGVUdVRS90Zi0zNGExNl9XaW4zMi56aXAKCk1hbiBtdXNzIGVpbiBiaXNzZXJsIHJ1bWJhc3RlbG4sIGRhbWl0IGRpZSBNYWNyb3Mgc293b2hsIG1pdCBVbml4IGFsc28gYXVjaAptaXQgRE9TLVBGYWRuYW1lbiBsYXVmZW4sIGFiZXIgZGFzIHN0ZWxsdCBrZWluIHVudWViZXJ3aW5kbGljaGVzIEhpbmRlcm5pcwpkYXIuCgpWaWVsIFNwYXNzIGRhbWl0IHd1ZW5zY2h0IFRhc2hhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVEYgZnVlciBXaW5kb3dzISAoU2hhcmlhLCAxOC4gSnVuIDE5OTcsIDIzOjM1OjIyKToKfiMhIHJuPVRhc2hhIHJ0PTg2NjY2OTQ3MSByZz1hbnplaWdlbgp+IyEgdGlkPTg2NjY2OTQ3MQoKKmp1YmVsKiAKdW5kIGVzIGxhZXVmdCBzb2dhciBiaXNoZXIgOi0pKSkgdW5kIHdlbm4gZXMgUHJvYmxlbWUgZ2lidDogZXMgbGllZ3Qgc2ljaGVyCm51ciBhbSBXaW5kb29mIDotKSkpCgpTaGFyaWEsIGVuZGxpY2ggbWl0IHRmIHVudGVyIHdpbmRvb2YgdW5kIGZlcm5zZWhlbiBpbSBhbmRlcmVuIEZlbnN0ZXIgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCYXNzbWFubi9mcmF1IGdlc3VjaHQgKEhhciwgMTkuIEp1biAxOTk3LCAxNzo1NjoyMik6CldlaWwgaWNoIGltbWVyIHdlbmlnZXIgemVpdCBoYWJlLCBkaWUgNCBTYWl0ZW4gbWVpbmVzIEJhc3NlcyB6dSBzdHJhcGF6aWVyZW4sCnN1Y2hlIGljaCBlaW5lbiBFcnNhdHpzcGllbGVyIGRlciBvaG5lIGxhbmdlIFBhdXNlIEJvY2sgaGF0LCBpbiBlaW5lcgpQdW5rLVJvY2stS2FwZWxsZSBhIGJpc3NlcmwgQmFzcyB6dSBzcGllbGVuLiBNYW5uIC8gRnJhdSBlZ2FsLCB3aXIgZHVsZGVuCnNjaG9uIGVpbmUgR2l0YXJyaXN0aW4sIG1vZWdsaWNoc3QgYXVzIGRlciBVbWdlYnVuZyB2b24gQk90dHJvcCB1bmQgdW5iZWRpbmd0CmVpbmlnZXMgYW4gTGl2ZS1FcmZhaHJ1bmcgdW5kIG1pdCBrb21wbGV0dGVuIEVxdWlwbWVudC4gR2lncywgUHJvYmVyYXVtIGV0Yy4Kc2luZCB2b3JoYW5kZW4uCgoKSGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQc3ljaG9zemlhbGUtQmVyYXR1bmdzc3RlbGxlIGVyb2VmZm5ldCAoRHJmcmV1ZCwgMjcuIEp1biAxOTk3LCAwOTo1Njo0Nik6CkhhbGxvIG1laW5lIGxpZWJlbiB6dWt1ZW5mdGlnZW4gUGF0aWVudGVuICEKV2llIG1pciBtZWluIGxhbmdqYWVocmlnZXIgUGF0aWVudCBTaXIgT3JrdG9ldGVyIG1pdHRlaWx0ZSwgd3VyZGUgc2Nob24gd2llZGVyCnR3YXMgZ2V0YW4sIGRhcyBBbHRzZWhlcm4gaW4gZGVyIFNlZWxlIHdlaCB0dXQuCkF1cyBkaWVzZW0gR3J1bmRlIGhhYmUgaWNoIG1pY2ggZGF6dSBkdXJjaGdlcnVuZ2VuLCBlaW5lbiBwc3ljaG9zb3VpYWxlbgpOb3RkaWVzdCBlaW56dXJpY2h0ZW4gdW0gQWJ3YW5kZXJ1bmdlbiB1bmQgc2VsYnN0bG9lc2NodW5nZW4gc28gd2llIGFuZGVyZQpWZXJ6d2VpZmx1Z3N0YXRlbiB6dSB2ZXJoaW5kZXJuLgpXaWUgRXJmbG9ncmVpY2ggbWVpbmUgQXJiZWl0IGF1ZiBkZW0gR2ViaWV0IGlzdCwga2FubiBtYW4gYW0gb2JpZ2VuCkJlaXNwaWVscGF0ZW50ZW4gZXJrZW5uZW4uCktvbW1lbiBTaWUsIG1lbGRlbiBzaWUgc2ljaCB6dSBIYXVmLgoKRHJGcmV1ZCBiZWhhbmRlbHQgbnVyIGF1c3NpY2h0c2xvc2UgRmFlbGxlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2ViLUdld2lubnNwaWVsIChJcmFzLCAyNy4gSnVuIDE5OTcsIDE3OjEzOjAwKToKSGkgQWxsZSwKQWxzIGp1bmdlciBXZWJtYXZlbiBkZXIgRHJhY2hlbnNjaG1pZWRlIG1vZWNodGUgaWNoIGdlcm5lIG5vY2ggZGVuIEdld2lubgp1bnNlcmVzIEp1bmktR2V3aW5uc3BpZWxzIChXZXJ0IDEwMCwtRE0pIGxvc3dlcmRlbiwgZGggdmVybG9zZW4uIE1laHIKdGVpbG5laG1lciB3YWVyZW4gZGEgd3VlbnNjaGVuc3dlcnQuLi4KICAgRXMgaXN0IGVpbmUgZ2FueiBlaW5mYWNoZSBGcmFnZSB6dW0gVGhlbWEgUGhhbnRhc3Rpc2NoZSBDb21pY3MgLSBsZWljaHQgenUKZmluZGVuIHVudGVyIGh0dHA6Ly93d3cuZHJhY2hlbnNjaG1pZWRlLmRlCgpBbnNvbnN0ZW4gd2llIGdlc2FndCAtIGljaCBtYWNoZSBkYXMgbm9jaCBuaWNodCBsYW5nZSB1bmQgYmluIGF1Y2ggdWViZXIKa3JpdGlzY2hlcyBGZWVkYmFjayB6dSBkZW4gU2VpdGVuIHNlaHIgZGFua2Jhci4KTWFpbHRvOndldHRhY2hAZHJhY2hlbnNjaG1pZWRlLmRlCgpEYW5rZSB1bmQgZ3J1c3MsCklyYXMvV0dXCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUHN5Y2hvc3ppYWxlLUJlcmF0dW5nc3N0ZWxsZSBlcm9lZmZuZXQgKEx1ZywgMjcuIEp1biAxOTk3LCAyMjo1NDo1NSk6Cn4jISBybj1EcmZyZXVkIHJ0PTg2NzM5ODIwNiByZz1hbnplaWdlbgp+IyEgdGlkPTg2NzM5ODIwNgpTZWhyIGdlZWhydGVyIEhlcnIgRHIuIEZyZXVkIQoKSW4gc29sY2hlbiBGYWVsbGVuIGVtcGZpZWhsdCBQcm9mLkRyLmRoYy4gTHVnOiBTZWxic3Rsb2VzY2h1bmcuIEVpbmUgZ2VzdW5kZQpNZXRob2RlLCBkaWUgc2VsYnN0IEh1bW9yIGFidG9ldGV0LiAKCkFubWFzc2VuZGx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlYi1HZXdpbm5zcGllbCAoQmFib29uLCAzMC4gSnVuIDE5OTcsIDE3OjIyOjQzKToKfiMhIHJuPUlyYXMgcnQ9ODY3NDI0MzgwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY3NDI0MzgwCiBEcmFjaGVuc2NobWllZGU/IEljaCBkYWNodGUsIGRpZSBWaWVjaGVyIHNjaGx1ZXBmZW4gYXVzIEVpZXJuPwoKQmFib29uKCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNyYXNoIChIYXRlLCAgMS4gSnVsIDE5OTcsIDE1OjQ4OjM2KToKCkhpLAoKYWxzbyB3YXJ1bSBkZXIgY3Jhc2ggd2FyIGlzdCBtaXIgbm9jaCB1bmtsYXIsIGFiZXIgd2FydW0gZGFzIE1VRCBuaWNodCB3aWVkZXIKaG9jaGZ1aHIgd2Vpc3MgaWNoIDotKSBBbiBsZXR6dGVyZW0gd2FyIGljaCBzY2h1bGQgdW5kIGljaCBoYWJzIGtvcnJpZ2VydC4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplbmRlIGVpbmVyIG11dHRlcnNjaGFmdCAoTW9yZWxsYSwgIDEuIEp1bCAxOTk3LCAyMTozNjoyOSk6ClNseXJlbGxhIHVuZCBNb3Jmb3ggc2luZCBuaWNodCBtZWhyIG1laW5lIEtpbmRlci4KClNpZSBzaW5kIGpldHp0IG51ciBub2NoIFp3ZWl0aWVzIHZvbiBTbHlmb3ggLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBlbmRlIGVpbmVyIG11dHRlcnNjaGFmdCAoQXNtb2RpcywgIDEuIEp1bCAxOTk3LCAyMTozODowNik6Cn4jISBybj1Nb3JlbGxhIHJ0PTg2Nzc4NTc4OSByZz1hbnplaWdlbgp+IyEgdGlkPTg2Nzc4NTc4OQpGbGF2aWEgc29sbHRlIHNpZSBzY2huZWxsc3RlbnMgYWRvcHRpZXJlbiwgZGFtaXQgc2llIHdpZWRlciBlaW4KcmljaHRpZ2VzIEhlaW0gYmVrb21tZW4gLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2hudW5nc3N1Y2hlIChKYWZlbCwgIDIuIEp1bCAxOTk3LCAxNDoyNDoyMyk6CkhhYmUgZWluIGtsZWluZXMgUHJvYmxlbToKSWNoIGZhbmdlIGluIEJvbm4gYW0gMTQuMDcgaW4gZWluZXIgRmlybWEgbWl0IG1laW5lciBEaXBsb21hcmJlaXQgYW4sIGhhYmUKYWJlciBub2NoIGtlaW5lIFdvaG51bmcuCldlbm4gaXJnZW5kamVtYW5kIHdhcyBrbGVpbmVzIGluIEJvbm4sIEtvZWxuIG9kZXIgVW1nZWJ1bmcgenUgdmVyZ2ViZW4gaGF0LApvZGVyIGRhcnVlYmVyIEJlc2NoZWlkIHdlaXNzLCBtaXIgYml0dGUgc2FnZW4uCkRhbmtlIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBlbmRlIGVpbmVyIG11dHRlcnNjaGFmdCAoRmxhdmlhLCAgMi4gSnVsIDE5OTcsIDE3OjE1OjU3KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODY3Nzg1ODg2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODY3Nzg1Nzg5CkhtLCBTbHlyZWxsYSBzZWhlIGljaCBqYSBlaCBzY2hvbiBhbHMgbWVpbmUgUGZsZWdldG9jaHRlciBhbi4gOikKZmxhdgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUlAgTXVlbmNoZW4gSUkgNC43LTYuNyAoSmltZGlncml6LCAgMi4gSnVsIDE5OTcsIDIxOjE2OjExKToKSG9pLAoKa29tbWVuZGVzIFdvY2hlbmVuZGUgZmluZGV0IGRpZSBSZWxheSBQYXJ0eSBNdWVuY2hlbiBJSSBzdGF0dC4KSW5mb3MgYmVpIGh0dHA6Ly9ycC5tdWMuZGUvIGJ6dyBodHRwOi8vcnAubGVvLm9yZy8KCklzIHp3YXIgc2Nob24gYSBiaXNzZXJsIGtuYXBwLCBhYmVyIEFubWVsZGVzY2hsdXNzCmdpYnRzIG5lZC4KClZpZWxsZWljaHQgc2luZCBkaWUgVm9ydXJ0ZWlsZSBnZWdlbnVlYmVyIFJQcyAKdW5kIGlyY2VybiBuaWNodCBtZWhyIHNvIHZlcmJyZWl0ZXQgdW5kIGVzIGtvbW10CmV2dGwgZG9jaCB3ZXIuCgpDaWFvLAogSmltIERpR3JpeiwgYWthIE1yLVNwb2NrQElSQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIEViZW5lbiAtIElSQyAoSGF0ZSwgIDMuIEp1bCAxOTk3LCAxNzoyODoxOCk6CkhpLAoKYWIgc29mb3J0IHNpbmQgYmVpIGRlbiBDaGFubmVsbmFtZW4gYXVjaCBzb25kZXJ6ZWljaGVuIHdpZSA8PiQlJiNAIHp1Z2VsYXNzZW4uCkRhcyBoZWlzc3QgLTxtYXN0ZXI+KyBmdW5rdGlvbmllcnQhIEF1c3NlciBkZW0gIyBoYXQga2VpbiBaZWljaGVuIGVpbmUKYmVzb25kZXJlIEVpZ2Vuc2NoYWZ0LiBEYXMgIyBaZWljaGVuIGFscyBBbmZhbmcgZWluZXMgTmFtZW5zIGxvZ2d0IHNpY2ggYXV0LQptYXRpc2NoIGluIGRlbiBnbGVpY2huYW1pZ2VuIElSQyBDaGFubmVsIGVpbiBvZGVyIGVyemV1Z3QgZGllc2UgbmV1LiBTb2JhbGQKYWxsZSB2b20gY2hhbm5lbCBpbSBNRyBydW50ZXIgc2luZCB2ZXJzY2h3aW5kZXQgYXVjaCBkYXMgTUcgdm9tIGVudHNwcmVjaGVuZGVuCklSQyBjaGFubmVsLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEaWUgRWJlbmVuIC0gSVJDIChUdW5peGd1dCwgIDQuIEp1bCAxOTk3LCAxMDoyMDozNik6Cn4jISBybj1IYXRlIHJ0PTg2Nzk0MzY5OCByZz1hbnplaWdlbgp+IyEgdGlkPTg2Nzk0MzY5OApVRkZGRiEhISBTYXViZXJlIEFyYmVpdCwgSGF0ZS4uLiA6bykKClR1Tml4R3V0IC0gd2lsbCBibG9zcyB3ZWRkYSBzY2hsZWltZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcmtlaHJzZGVsaWt0ZSAoTGVmdHksICA5LiBKdWwgMTk5NywgMTY6MDU6MzApOgpIaSwKCmtlbm50IHNpY2ggamVtYW5kIG1pdCBvYmlnZW4gVGhlbWEgYXVzID8gRXMgZ2VodCBtaXIgZHJ1bSBkYXMgaWNoIGdlaG9lcnQgaGFiZQplcyBnaWJ0IGVpbiBHZXJpY2h0c3VydGVpbCwgd28gZHJpbiBzdGVodCwgZGFzIEJlaWZhaHJlciBiZWkgQmxpdHpmb3Rvcwp1bmtlbm50bGljaCBnZW1hY2h0IHNlaW4gbXVlc3Nlbi4gSWNoIHN1Y2hlIG51biBnZW5hdSwgd2FzIGluIGRlbSBVcnRlaWwKZHJpbnN0ZWh0IHVuZCB3aWUgZXMgZGVubiBnZW5hdSBiZXplaWNobmV0IGlzdCwgYWxzbyB3ZWxjaGUgTnVtbWVyIG9kZXIgd2FzIGVzCmRhIGdpYnQgZGFzIFVydGVpbCBoYXQuCldlbm4gc2ljaCBkYSBqZW1hbmQgYXVza2VubnQgb2RlciBtaXIgc29uc3R3aWUgd2VpdGVyaGVsZmVuIGtvZW5udGUsIGljaCB3YWVyZQpmdWVyIGVpbmUgTWFpbCBkYW5rYmFyLgoKQ2lhbywgTGVmdHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRiL3d3dyAoQW5ha3luLCAxMi4gSnVsIDE5OTcsIDIxOjQ4OjAzKToKSGksCgpoYXQgZWluZXIgaXJnZW5kd28gTWF0ZXJpYWwgenUgRGF0ZW5iYW5rZW4vV1dXIEFuYmluZHVuZywKaW5zYmVzb25kZXJlIHdpcnRzY2hhZnRsaWNoZSBCZXRyYWNodHVuZ2VuPwpVcmwsIGZ0cC1zaXRlLCBvZGVyIGZheG51bW1lci4uLmljaCBuZWhtIGFsbGVzIDopCgp0aHggQW5ha2luLgoKUC5TLjogZWluZSBJU0JOIHR1dCBlcyBhdWNoIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDRC1Sb20tTGF1ZndlcmsgdW5kIFNvdW5ka2FydGUgZ2VzdWNodCAoVmFuaXIsIDE3LiBKdWwgMTk5NywgMTI6MjI6MjEpOgoKU3VjaGUgQ0QtUm9tLUxhdWZ3ZXJrICB1bmQgU291bmRrYXJ0ZS4KCkljaCBtb2VjaHRlIGVpbmVuIGFsdGVuIDQ4NiB6dW0gTXVsdGltZWRpYS1QYyBhdWZydWVzdGVuLiBEZXNoYWxiIHN1Y2hlIGljaAplaW4gYWx0ZXMgQ0QtUm9tLUxhdWZ3ZXJrICgyIG9kZXIgNCBmYWNoKSwgZGFzIG5vY2ggbWl0IGVpZ2VuZXIgS2FydGUKZnVua3Rpb25pZXJ0ICh6LkIuIE1pdHN1bWkgMDAxRCkuIEVpbiBBdGFwaSBrb21tdCBuaWNodCBpbiBGcmFnZSwgZGEgaWNoCnNjaG9uIDIgUGxhdHRlbiBhbSBDb250cm9sbGVyIGhhZW5nZW4gaGFiIHVuZCBzb21pdCBuaXggZnJlaSBpc3QuIFdlciBhbHNvCm5vY2ggc29uIGFsdGVzIERpbmcgcnVtbGllZ2VuIGhhdCB1bmQgZXMgbWlyIHZlcm1hY2hlbiB3aWxsICh6dSBlaW5lbSBhbi0KZ2VtZXNzZW5lbiBQcmVpcyBuYXR1ZXJsaWNoKSwgc29sbHRlIGVzIHp1ciBNdWQtUGFydHkgbWl0YnJpbmdlbi4gTWFpbApicmluZ3Qgbml4LCBkYSBpY2ggZGllIG5hZWNoc3RlbiA2IFdvY2hlbiBuaWNodCBkYSBzZWluIHdlcmRlLgoKQmlzIHp1ciBQYXJ0eSwKICAgICAgICAgICAgICAgIFZhbmlyLgoKUC5TLjogU3VjaGUgYXVjaCBub2NoIG5lIFNvdW5ka2FydGUgKDggb2RlciAxNmJpdCwgSVNBKSB6dSBhZWhubGljaGVuCiAgICAgICAgS29uZGl0aW9uZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENELVJvbS1MYXVmd2VyayB1bmQgU291bmRrYXJ0ZSBnZXN1Y2h0IChDYXVubywgMTcuIEp1bCAxOTk3LCAxMzo1NjozNyk6Cn4jISBybj1WYW5pciBydD04NjkxMzQ5NDEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NjkxMzQ5NDEKRXMgZ2lidCBhdWNoIENELVJPTXMsIGRpZSB1ZWJlciBlaW5lbiBJREUtUG9ydCBhbSBTb3VuZGJsYXN0ZXIgbGF1ZmVuIChzb3dlaXQKdm9yaGFuZGVuKSBadW0gQmVpc3BpZWwgZ2FiIGVzIHZvbiBDcmVhdGl2ZUxhYnMgZWluZSBLb21iaW5hdGlvbiAyeCBDRC1ST00gbWl0ClNCMTYuIERhbm4gYnJhdWNodCBkYXMgRHJpdmUgZG9jaCBrZWluZSBleHRyYSBLYXJ0ZS4KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENELVJvbS1MYXVmd2VyayB1bmQgU291bmRrYXJ0ZSBnZXN1Y2h0IChIaWdobGFuZGVyLCAxNy4gSnVsIDE5OTcsIDE0OjA1OjU5KToKfiMhIHJuPUNhdW5vIHJ0PTg2OTE0MDU5NyByZz1hbnplaWdlbgp+IyEgdGlkPTg2OTEzNDk0MQpEaWUgTWl0c3VtaXMsIHp1bWluZGVzdCBkaWUgYWVsdGVyZW4sIGdlaGVuIGF1Y2ggYW4gZGVyIFNCLiBBYmVyIGRpZQpkYXp1Z2Vob2VyaWdlIEthcnRlIGhhdCBkZW4gVm9ydGVpbCBkZXMgcm90d2Vpc3NlbiBBbmxhZ2VuYW5zY2hsdXNzZXMuIDo+CiAgIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUzogTWl0ZmFocmdlbGVnZW5oZWl0IG5hY2ggTVMuIChCYWJvb24sIDIxLiBKdWwgMTk5NywgMDg6MTU6MTcpOgoKRGEgaWNoIG5pY2h0IGdlbnVnIEdlbGQgaGFiIHVtIGVzIGRlciBkZXV0c2NoZW4gQmFobiBlaW5mYWNoIHNvIGluIGRlbiBSYWNoZW4KenUgc3RvcGZlbiBzdWNoZSBpY2ggbm9jaCBlaW5lIE1pdGZhaHJnZWxlZ2VuaGVpdCB6dXIgUGFydHkgKHVuZCBhdWNoIHdpZWRlcgp6dXJ1ZWNrIDotKSkuIFdlciB3YXMgaGF0IGJpdHRlIG5lIE1haWwgc2NoaWNrZW4sIGRhIGljaCBkaWUgbmFlY2hzdGVuIDE0IFRhZ2UKbmljaHQgaW0gTVVEIGJpbiB1bmQgc28gdmllbGxlaWNodCBuZW4gQXJ0aWtlbCBpbiBkZXIgWmVpdHVuZyB2ZXJwYXNzZS4KCk1GRywgQmFib29uKCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClM6IENELVJPTSBmdWVyIEFtaWdhLiAoQmFib29uLCAyMS4gSnVsIDE5OTcsIDA4OjI4OjQ5KToKVW0gbWVpbmVtIGFsdGVuIEFtaWdhIG1hbCB3YXMgZ3V0ZXMgenUgdHVuLCB3dWVyZCBpY2ggbWlyIGdlcm5lIGVpbiBDRC1ST00KenVsZWdlbi4gRGVzaGFsYiBzdWNoZSBpY2ggZWluZW4gQ0QtUm9tIFVwZ3JhZGUgS2l0IGZ1ZXIgZGVuCkFsZmFwb3dlci1GZXN0cGxhdHRlbmNvbnRyb2xsZXIgc293aWUgZWluIDItZmFjaCBDRC1ST00gb2RlciBzby4gV2VyIHdhcyBoYXQKYml0dGUgTWFpbCBhbiBtaWNoIChTdGljaHdvcnQ6IFByZWlzdm9yc3RlbGx1bmcpLiBBYmVyIG5pY2h0IHVuZ2VkdWxkaWcKd2VyZGVuLCB3ZW5uIGljaCBuaWNodCBkaXJla3QgYW50d29ydGUsIHdlaWwgaWNoIGRpZSBuYWVjaHN0ZW4gMTQgVGFnZSBuaWNodApkYSBiaW4uIERlciBBdXN0YXVzY2ggR2VsZCA8LT4gV2FyZSBrYW5uIGF1ZiBkZXIgUGFydHkgZXJmb2xnZW4sIHdlbm4KZ2V3dWVuc2NodC4KCkJhYm9vbiAoc3VjaHQgbm9jaCBuZW4gRnVjaHNzY2h3YW56IGZ1ZXIgc2VpbmVuIE1vbml0b3IpCgpwLnM6IEVzIGRyZWh0IHNpY2ggbmF0dWVybGljaCB1bSBlaW5lbiBBbWlnYSA1MDAuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RlbGxlIGFscyBXZWItQWRtaW4gKEtpcmssIDI4LiBKdWwgMTk5NywgMTY6NTg6MzIpOgpodHRwOi8vcnAtb25saW5lLmRlL2Fkcy9ycC1vbmxpbmUvam9pbi10aGUtdGVhbS5zaHRtbAoKR3J1ZXNzZQoKS2lya0BNRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN0ZWxsZSBhbHMgV2ViLUFkbWluIChKaW1kaWdyaXosIDI5LiBKdWwgMTk5NywgMTk6NTQ6MjIpOgp+IyEgcm49S2lyayBydD04NzAxMDE5MTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzAxMDE5MTIKQXJnaCwKCndhcyBiaXR0ZSBoYXQgZWluZSBSUCBtaXQgZGllc2VtIFpldWcgenUgdHVuID8/CgpyYWV0emVsbmQsCiBKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2hsYWZwbGF0eiBpbiBGcmFua2Z1cnQgenVyIElBQSBnZXN1Y2h0IChTbnVnZ2xlLCAzMS4gSnVsIDE5OTcsIDEwOjU0OjU1KToKSGkgSWhycywKCm5pY2h0IGljaCwgYWJlciBlaW5lIGd1dGUgRnJldW5kaW4gaGF0IGVpbmVuIEpvYiBhdWYgZGVyIElBQSB1bmQgc3VjaHQgZnVlcgpkaWUgWmVpdCAoaWNoIGdsYXViZSA5Li0yMS4gU2VwdGVtYmVyKSBlaW5lbiAob2RlciBtZWhyZXJlKSBMZXV0ZSwgZGllIGlocgpmdWVyIGVpbiBwYWFyIFRhZ2UgZWluIFBsYWV0emNoZW4genVyIFZlcmZ1ZWd1bmcgc3RlbGxlbiBrb2VubmVuLCBhbiBkZW0gc2llCnNpY2ggZWlucm9sbGVuIGthbm4uCgpGYWxscyBqZW1hbmQgMiBRdWFkcmF0bWV0ZXIgZW50YmVocmVuIGthbm4sIGJpdHRlIG1haWwgYW4gbWljaAoKR3J1c3MKU251Z2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW90b3JqYWNodCB6dSB2ZXJrYXVmZW4gISAoSmFuaXR6ZSwgMzEuIEp1bCAxOTk3LCAxMTo0Nzo1OSk6CkRhcyBpc3Qga2VpbiBXaXR6OgpFaW4gYmVrYW5udGVyIHZvbiBtaXIgd2lsbCBzZWluZSBNb3RvcmphY2h0IHZlcmthdWZlbi4gRGFzIFRlaWwgaXN0IAoxMCw2MCBtIGxhbmcgdW5kIDMsMTVtIGJyZWl0IHVudCBpc3Qgdm9uIDE5OTUuIFdlbm4gRHUgc2Nob24gaW1tZXJtYWwKc293YXMgaGFiZW4gd29sbHRlc3QsIHVuZCBldHdhIDY4ayBETSB1ZWJlciBoYXN0LCBkYW5uIG1lbGQgRGljaCBiZWkKbWlyIHBlciBtdWRtYWlsICEKCkphbmljZQoKUC5TLiB3ZWl0ZXJlIERhdGVuIHp1IGRlbSBLYWhuIGdpYnMgYXVmIEFuZnJhZ2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpbGRlciBkZXIgUGFydHkgVklJLi4uIChBbmF0b2wsICA0LiBBdWcgMTk5NywgMTc6MzI6NDApOgpIaSwgZGFzIEJlc3RlIG1laW5lciBCaWxkZXIgZGVyIGxldHp0ZW4gUGFydHkgaXN0IG51biBhdWNoIHVlYmVycyBtZy13d3cgenUgCmVycmVpY2hlbi4gRXMgdHV0IG1pciBzZWhyIGxlaWQsIGRhc3MgZGllIEJpbGRlciBzbyBrbGVpbiB1bmQgdW5zY2hhcmYgCmVpbmdlc2Nhbm50IHNpbmQuLi4gYWJlciBpY2ggZ2Vsb2JlIEJlc3NlcnVuZy4KCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhtcGYgRElFQkUgKFNoYXJpYSwgIDguIEF1ZyAxOTk3LCAwOTowMToyNSk6CkRlcmplbmlnZSwgZGVyIHNpY2ggcmVpY2hsaWNoIGFuIG1laW5lciBUcnVoZSBiZWRpZW50IGhhdCwgbmFjaGRlbSBtZWluIE1vZGVtCmFiZ2VzY2htaWVydCBpc3QgdW5kIGljaCBzaWUgc29taXQgbmljaHQgc2NobGllc3NlbiBrb25udGUgc2VpIGJpdHRlIHNvIGZhaXIKdW5kIGxlZ2UgZGllIHNhY2hlbiB3aWVkZXIgenVydWVjayBpbnMgSGF1cy4uLi4uLgpEYW5rZSAKClNoYXJpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGhtcGYgRElFQkUgKFNoYXJpYSwgIDguIEF1ZyAxOTk3LCAwOToxNDo0MCk6Cn4jISBybj1TaGFyaWEgcnQ9ODcxMDIzNjg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcxMDIzNjg1Ci4uLi4uIG5vY2h3YXM6CgpFcyB3YXJlbjogUm9iaW5zIEJvZ2VuIG1pdCBLb2VjaGVyIHVuZCAxMSBQZmVpbGVuCiAgICAgICAgICAgVmFtcGlycGFuemVyICAgICAgICAgCiAgICAgICAgICBWYW1waXJzY2h3ZXJ0CiAgICAgICAgICBTY2hhdHRlbmF4dAouLi4uLnVuZCBtZWhyIHNvdmllbCBpY2ggd2Vpc3MuLiBkZXIgUmVzdCBpcyBhYmVyIHVud2ljaHRpZwoKU2hhcmlhIHd1ZXJkZSBzaWNoIGZyZXVlbiBlcyB3aWVkZXJ6dWJla29tbWVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1vdG9yamFjaHQgenUgdmVya2F1ZmVuICEgKFRvZSwgMTkuIEF1ZyAxOTk3LCAyMToxODowNCk6Cn4jISBybj1KYW5pdHplIHJ0PTg3MDM0MjQ3OSByZz1hbnplaWdlbgp+IyEgdGlkPTg3MDM0MjQ3OQptb2puLApuYWphIHZlcmthdWZlbiBuaWNodCwgYWJlciBtaXRmYWhyZXIgZ2VzdWNodCBmdWVyIEN1eGhhZmVuLUxhbnphcm90ZSwgT2t0b2JlcgpkaWVzZW4gSmFocmVzLi4uIERhcyBpc3QgYXVjaCBrZWluIFdpdHouIEluZm9zIHVudGVyIHplaGVAdW5pLWJvbm4uZGUKYmlzIGRlbm5lIC0gdG9lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1vdG9yamFjaHQgenUgdmVya2F1ZmVuICEgKFRvZSwgMTkuIEF1ZyAxOTk3LCAyMToxOToxMik6Cn4jISBybj1Ub2UgcnQ9ODcyMDE4Mjg0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcwMzQyNDc5Cm5hY2h0cmFnOgppc3Qgb2huZSBzZWdlbCwgZGFmdWVyIGFiZXIgMjQsNiBtIGxhbmcuLi4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNb3RvcmphY2h0IHp1IHZlcmthdWZlbiAhIChIb2JvLCAyMC4gQXVnIDE5OTcsIDA4OjA4OjUwKToKfiMhIHJuPVRvZSBydD04NzIwMTgzNTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzAzNDI0NzkKVW5kIHdpZSBrb21tdCBtYW4genVydWVjayB2b24gTGFuemFyb3RlPyA7KQoKSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSG9jaHplaXQgdm9uIEthbm5peCB1bmQgSGFuZ292ZXIgKE9ya3RvZXRlciwgMjEuIEF1ZyAxOTk3LCAxOTo0MTozOSk6Cn4jISBybj1BbmFraW4gcnQ9ODcyMTcxMzY5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyMTcxMDg2CkhtbSBkdSBoYXN0IGJpcyB6dW0gMi4gbW9yZSBkdXJjaGdlaGFsdGVuLCBpY2ggaGFiZSBiZWltIGVyc3RlbiA0JSBnZXNlaGVuIHVuZApxIGdlZHJ1ZWNrdC4uLgpPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhbmtyZWljaCAoUmlrdXMsIDIyLiBBdWcgMTk5NywgMDA6MjE6NDQpOgpIaSwKaWNoIHNwaWVsZSBtaXQgZGVtIGdlZGFua2VuLCBNaXR0ZSBTZXB0LiBmdWVyIHJ1bmQgMiBXb2NoZW4gbmFjaApGcmFua3JlaWNoIHp1IGZhaHJlbiAoUEtXK0NhbXBlbikuIERhIGljaCBrZWluZSBMdXN0IGhhYmUsIGFsbGVpbmUKenUgZmFocmVuIHVuZCBkaWVzZXMgSmFociBsZWlkZXIgYXVjaCBOSUVNQU5EIG1laW5lciBzb25zdGlnZW4KUmVpc2VnZW5vc3NlbiBaZWl0IGhhdCwgd29sbHRlIGljaCBtYWwgcnVtZnJhZ2VuLCBvYiBuaWNodCB2aWVsbGVpY2h0CmVpbmUocikgTHVzdCBoYWV0dGUsIG1pdHp1a29tbWVuLi4uCgpSaWt1cwoKUFM6IGJpdHRlIHBlciBtYWlsIGFudHdvcnRlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSG9jaHplaXQgdm9uIEthbm5peCB1bmQgSGFuZ292ZXIgKFRlZGR5LCAyMi4gQXVnIDE5OTcsIDA5OjM3OjU2KToKfiMhIHJuPUFuYWtpbiBydD04NzIxNzEzNjkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzIxNzEwODYKS2xhciBoYWIgaWNoIGRhcyBkdXJjaGdlbGVzZW4sIHVucm9tYW50aXNjaGVyIEtsb3R6IGR1LiA7KApUZWRkeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3JhZmlra2FydGUgKExpLCAyMi4gQXVnIDE5OTcsIDEwOjEzOjMyKToKS2F1ZnQgc2ljaCBqZW1hbmQgaW0gbW9tZW50IGVpbmUgbmV1ZSBHcmFmaWtrYXJ0ZSwgdW5kIHdlaXNzIG5pY2h0LCB3b2hpbiBtaXQKZGVyIGFsdGVuPwpPZGVyIGhhdCBub2NoIGplbWFuZCBlaW5lIHJ1bWxpZWdlbj8KSWNoIHN1Y2hlIGVpbmUgR3JhZmlra2FydGUgZHVyY2hzY2huaXR0bGljaGVyIFF1YWxpdGFldHNrbGFzc2UuIEljaCBoYWJlIG5vY2gKZWluZSBBVEkgTWFjaCAzMiB1bmQgc3VjaGUgZWluZSBldHdhcyBiZXNzZXJlLi4uCkFuZ2JvdGUgcGVyIE1VRC1tYWlsIG9kZXIgYW4gOiBvbWFobEBocnoudW5pLWJpZWxlZmVsZC5kZQpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdCB2b24gS2Fubml4IHVuZCBIYW5nb3ZlciAoTWFuZ28sIDI1LiBBdWcgMTk5NywgMTI6Mjc6NDcpOgp+IyEgcm49UmFmZmkgcnQ9ODcyMTcxNTM5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyMTcxMDg2CiAgICAgICAgICAgICAgICBGUlVFSEVSICEhIQoKTWFuZ28sIGF1Y2ggc2Nob24gbWFuY2ggYW5kZXJlIEhvY2h6ZWl0IGVybGVidCBoYWJlbmQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFiZW4gU2llIGltbWVyIHp1d2VuaWcgdXB0aW1lPyBXaXIgaGVsZmVuISAoSGlnaGxhbmRlciwgMjUuIEF1ZyAxOTk3LCAxMzowNjo1NSk6Ck9kZXIgYXVjaDogRGFzIE1HIGNyYXNoZWQgenUgb2Z0PyBXaXJkIHp1IG9mdCBnZWJvb3RldD8KPFpJVEFUPgpUQVBQTXVkfHx3L2hpZ2hsYW5kZXI+IHVwdGltZQpUaGUgY2xvY2sgc2hvd3MgNTAgZGF5cyAxMiBob3VycyAyOCBtaW51dGVzIGFuZCA1NSBzZWNvbmRzLgo8L1pJVEFUPgpXaXIgaGVsZmVuIElobmVuIQp0ZWxuZXQ6Ly90YXBwLm11ZC5kZTo2NTEwCmh0dHA6Ly90YXBwLm11ZC5kZTo4MDgwCgogIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSG9jaHplaXQgdm9uIEthbm5peCB1bmQgSGFuZ292ZXIgKEhhbmdvdmVyLCAyNS4gQXVnIDE5OTcsIDE0OjU0OjA0KToKfiMhIHJuPU1hbmdvIHJ0PTg3MjUwNDg2NyByZz1hbnplaWdlbgp+IyEgdGlkPTg3MjE3MTA4NgpNb2luIQoKTGV1dGUsIHNvIHdpZSBsYW1lbnRpZXJ0IGZyYWcgaWNoIG1pY2ggbGFuZ3NhbSBvYiBpY2ggbWljaCBzY2hlaWRlbiBsYXNzZW4gCnNvbGwgOy0pCgpIYW5nb3ZlcgotPnNjaG1hcnJuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2hudW5nIGdlc3VjaHQgKEdyYWxrb3IsIDI3LiBBdWcgMTk5NywgMTE6MjE6NDYpOgpIaSBJaHJzLgpOZSBGcmV1bmRpbiB2b24gbWlyIHN1Y2h0IGluIEtvZWxuIHVuZCBVbWdlYnVuZyBuZSBXb2hudW5nIG9kZXJuIFppbW1lciBpbiBuZXIKV0csIHNvIHNjaG5lbGwgd2llIG1vZWdsaWNoLCBkYSBzaWUgbmVuIEpvYiBpbiBLb2VsbiBiZWtvbW1lbiBoYXQuCkFiIHdhbm4gd2Vpc3MgaWNoIGxlaWRlciBuaWNodCA6KAoKQW5nZWJvdGUgYml0dGUgcGVyIE1VRC1NYWlsIGFuIG1pY2ggKEdyYWxrb3JAQW5kZXJMYW5kKQoKVHNjaHVlc3NpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGFiZW4gU2llIGltbWVyIHp1d2VuaWcgdXB0aW1lPyBXaXIgaGVsZmVuISAoUmFmZmksIDI3LiBBdWcgMTk5NywgMTI6NDM6MTkpOgp+IyEgcm49SGlnaGxhbmRlciBydD04NzI1MDcyMTUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI1MDcyMTUKSGFlbmd0IGlobmVuIGRpZSBVcHRpbWUtRGlzayB6dW0gSGFscyByYXVzPwoKRGFubiBoYWJlbiB3aXIgZGllIExvZXN1bmc6Cgo+IC14IHVwCls8TWFzdGVSPjpSYWZmaV0gdXAKWzxNYXN0ZVI+OjxNYXN0ZVI+XSBEYXMgTVVEIGxhZXVmdCBqZXR6dCAwIFRhZ2UsIDAgU3R1bmRlbiwgMTIgTWludXRlbiB1bmQgNwpDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIEhvc3QuCiMKCj4gdGVsbmV0IHBrLm11ZC5kZSA0NzExIDwKICAgID4gRGllIExvZXN1bmcgPAoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN1Y2hlLi4uIChUdW5peGd1dCwgMjguIEF1ZyAxOTk3LCAxNjoxNjoxOSk6Ci4uLiBqZW1hbmRlbiwgZGVyIEx1c3QgaGF0LCBtaXQgbWlyIGF1ZiBlaW4gS29uemVydCBlaW5lciBIZWF2eS1NZXRhbC1CYW5kCm5hbWVucyAiVGVzdGFtZW50IiBnZWhlbiBtYWcuIElzIGluIEhIIGFtIDI1LiA5LgpLb2VubnRlIGZ1ZXIgZmVybmFuZ2VyZWlzdGUgYXVjaCBlaW5lIFNjaGxhZmdlbGVnZW5oZWl0IHp1ciB2ZXJmdWVndW5nCnN0ZWxsZW4uLi4KRGllIEJhbmQgaXMgZWNodCBrbGFzc2UuLi4KClR1Tml4R3V0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc3VjaGUuLi4gKE1vcmdvdGgsIDI5LiBBdWcgMTk5NywgMDc6Mzg6MTQpOgp+IyEgcm49VHVuaXhndXQgcnQ9ODcyNzc3Nzc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5CkhtbS4gTmEgbWFsIHNlaGVuLiBEYSB3ZXJkIGljaCB3YWhyc2NoZWlubGljaCBVcmxhdWIgaGFiZW4uLi4uSWNoIHVlYmVybGVnIG1pcgpkYXMgdW5kIG1lbGQgbWljaCBkYW5uLiAKTW9yZ290aAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVpbGVpZCAhIChSYW50YW5wbGFuLCAyOS4gQXVnIDE5OTcsIDEyOjIwOjUwKToKCllvICEKCk5hY2ggaW50ZW5zaW52ZW0gU3R1ZGl1bSBkZXIgVGFsay1TaG93ICJLZXJuZXIiICggKHYpZXJicm9jaGVuIHZvbiBTYXQxKSwKZ2ViZSBpY2ggaGllcm1pdCBkZW4gZW5kZ3VlbHRpZ2VuIFRvZCBqZWdsaWNoZXIgU3ByYWNoa3VsdHVyIGJla2FubnQgIQoKWnUgZGllc2VtIFNjaGx1c3MgdmVyYW5sYXNzdGVuIG1pY2ggZm9sZ2VuZGUgendlaSBTYWV0emUgZWluZXIgVGVpbG5laG1lcmluIAphdXMgZGVtIFB1Ymxpa3VtOgoKYS4pIFNleCBpc3QgZWluIEhvcm1vbiwgZGVyIGJlZnJpZWRpZ3Qgd2VyZGVuIG11c3MuLi4KYi4pIFBvbGVuIHNpbmQgZGllIGJlc3RlbiBMaWViaGFiZXIsIHdlaWwgZGllIHNvIGdlZnVlaGxzYW0gc2luZC4uLgoKT2UqIGhhdCBnZWxlcm50IHNpbXVsdGFuIHp1IGxhY2hlbiB1bmQgenUgd2VpbmVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzdW4gc3BhcmMgMiAoUmF0eiwgMjkuIEF1ZyAxOTk3LCAyMToxMDoyNCk6ClN1biBzcGFyYyAyIHp1IHZlcmthdWZlbi4gSW50ZXJlc3NlbnRlbiBiaXR0ZSBiZWkgbWlyIG1lbGRlbiwgaWNoIHdlcmRlIGRhbm4KZGllIFRlbGVmb25udW1tZXIgdm9uIG1laW5lbSBLb2xsZWdlbiB3ZWl0ZXIgZ2ViZW4uIEFiZ2Vob2x0IHdlcmRlbiBtdXNzIGRhcwpHZXJ0IGluIER1ZXNzZWxkb3JmLiAKR3J1c3MgUmF0egoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHN1Y2hlLi4uIChLcmV0ZWssICAxLiBTZXAgMTk5NywgMTk6NTY6MjMpOgp+IyEgcm49VHVuaXhndXQgcnQ9ODcyNzc3Nzc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5ClNlaXQgd2FubiBtdXNzIG1hbiBmdWVyIFRlc3RhbWVudCBkZW5uIFdlcmJ1bmcgbWFjaGVuPyEgU29sbHRlIGRvY2gKamVkZXIgVGhyYXNoLUFuaGFlbmdlciBrZW5uZW4sIHVuZCBmdWVyIGFsbGUgYW5kZXJlbiBpc3QncyBlaCB6dQpoZWZ0aWchIDotKQoKS3JldGVLCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHN1Y2hlLi4uIChUdW5peGd1dCwgIDIuIFNlcCAxOTk3LCAwOTowNjoyOSk6Cn4jISBybj1LcmV0ZWsgcnQ9ODczMTM2NTgzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5CkR1IHNpZWhzdCwgZXMgbWVsZGV0IHNpY2gga2VpbmUgU2Nod2Vpbi4uLiBBdXNzZXJkZW0gaGF0IGRhcyBsZXR6dGUgQWxidW0gbWl0ClRyYXNoIG5ldCBtZWhyIHZpZWwgenUgdHVuIC0gdW5kIGljaCByZWNobmUgbmljaHQgZGFtaXQsIGRhc3Mgc2llIFNvbmdzIGF1cwpkZW4gZ3V0ZW4gYWx0ZW4gWmVpdGVuIHNwaWVsZW4uLi4KClR1Tml4R3V0CgpCVFc6IFdlciBkZXJlbiBUcmFzaCBmdWVyIHp1IGhlZnRpZyBoYWVsdCwgc29sbCBsaWViZXIgTkVUIGFudHdvcnRlbi4uLiBJY2gKdmVybXV0ZSBtYWwsIGRpZSBuZXVlbiBTb25ncyB3dWVyZGVuIGVoZXIgYWxzIG5vY2ggaGVmdGlnZXIgZW1wZnVuZGVuCndlcmRlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogc3VjaGUuLi4gKENhcmFkaHJhcywgIDIuIFNlcCAxOTk3LCAxMjozNTowMCk6Cn4jISBybj1UdW5peGd1dCBydD04NzMxODM5ODkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI3Nzc3NzkKV2VubiBtaXIgbWFsIGplbWFuZCBlcmtsYWVydCwgd2FzIFRyYXNoIGlzdCE/IDotKQpFc3NlbiBrYW5uIG1hbnMgbmljaHQsIHNvdmllbCB3ZWlzcyBpY2guCgogIEJlcmdjaGVuIENhcmFkaHJhcyAtIGhhdCBzY2hvbm1hbCBzb2dhciBkYXMgV29ydCAnVGVjaG5vJyBnZWhvZXJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBzdWNoZS4uLiAoR25vbWUsICAyLiBTZXAgMTk5NywgMTI6NDU6MTMpOgp+IyEgcm49Q2FyYWRocmFzIHJ0PTg3MzE5NjUwMCByZz1hbnplaWdlbgp+IyEgdGlkPTg3Mjc3Nzc3OQprbGFyLi4uCmVpbmZhY2ggdm9tIGVuZ2wuIGlucyBkZXV0c2NoZSB1ZWJlcnNldHplbi4uLiA7LSkKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBzdWNoZS4uLiAoUmFmZmksICAyLiBTZXAgMTk5NywgMTI6NTE6MjUpOgp+IyEgcm49R25vbWUgcnQ9ODczMTk3MTEzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5CkFsc28gc293YXMgd2llIHRha2UgdGhhdCA/Ck9kZXIgZGllIEtlbGx5cyA/CgpHcnVlYmVsbmQKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IHN1Y2hlLi4uIChDYXJhZGhyYXMsICAyLiBTZXAgMTk5NywgMTM6MDI6MzcpOgp+IyEgcm49UmFmZmkgcnQ9ODczMTk3NDg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5ClVlYmVyc2V0emVuIGthbm4gaWNoIGF1Y2guIDotKSBBYmVyIG9iIGRhcyBFcmdlYm5pcyBhdWNoIHNvCnNjaGV1c3NsaWNoIGZ1ZXIgbWVpbmUga2FuZGllcnRlbiBadWNrZXJvZWhyY2hlbiBrbGluZ3Qgd2llIGRpZQpTZW1hbnRpayBkZXMgdWViZXJzZXR6dGVuIFdvcnRlcz8gRGFzIGlzdCBoaWVyIGRpZSBGcmFnZS4gOi0pCgogQmVyZ2NoZW4gQ2FyYWRocmFzIC0gaGF0IHNpY2ggZ3JhZCBldHdhcyB2b24gUmFudGFuZGluZ2VucyBkcnVlYmVyCiAgICAgICAgICAgICAgICAgICAgICBhdWZrbGFlcmVuIGxhc3NlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogc3VjaGUuLi4gKEdyYWxrb3IsICAyLiBTZXAgMTk5NywgMTM6NTU6MjEpOgp+IyEgcm49UmFmZmkgcnQ9ODczMTk3NDg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5CmluIGV0d2EsIGJlaWRlcyBoYWV0dGUgTklFTUFMUyBuYWNoIChEKSBnZWxhbmdlbiBkdWVyZmVuIC4uLgpHcmFsa29yLCBzZWluIEdJQiBERVIgS0VMTFkgRkFNSUxZIEtFSU5FIENIQU5DRS1ULVNoaXJ0IHRyYWdlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHN1Y2hlLi4uIChUdW5peGd1dCwgIDIuIFNlcCAxOTk3LCAxMzo1OToyNSk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9ODczMTk2NTAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5Ckxhc3NlcyBlaW5mYWNoICduZSBNdXNpay1SaWNodHVuZyBzZWluLi4uCkFiYSwgZGEgZGllIFplaXRlbiB2b3JiZWkgc2luZCwgaXNzZXMgZG9jaCB2b2VsbGljaCBXVVJTQ0hUIQoKV3Vyc2NodHNlaGEgVHVOaXhHdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHN1Y2hlLi4uIChSYWZmaSwgIDIuIFNlcCAxOTk3LCAxNDowMToxNSk6Cn4jISBybj1UdW5peGd1dCBydD04NzMyMDE1NjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI3Nzc3NzkKQmxvcyB3ZWlsIERVIGluendpc2NoZW4genUgYWx0IGRhZnVlciBiaXN0ID8KCkdyaW5zCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBzdWNoZS4uLiAoVHVuaXhndXQsICAyLiBTZXAgMTk5NywgMTQ6MDI6MTQpOgp+IyEgcm49UmFmZmkgcnQ9ODczMjAxNjc1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5ClNvPz8/IEJpbiBpY2ggZGFzPwoKVHVOaXhHdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IHN1Y2hlLi4uIChSYWZmaSwgIDIuIFNlcCAxOTk3LCAxNDowMzozOSk6Cn4jISBybj1UdW5peGd1dCBydD04NzMyMDE3MzQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI3Nzc3NzkKVmVybXV0ZSBpY2ggbWFsLCBkYSBkdSBzbyB3ZWhtdWV0aWcgdm9uIGRlciBndXRlbiBhbHRlbiBaZWl0IHJlZGVzdCA6KQoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IHN1Y2hlLi4uIChUdW5peGd1dCwgIDIuIFNlcCAxOTk3LCAxNDowNjoxMyk6Cn4jISBybj1SYWZmaSBydD04NzMyMDE4MTkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI3Nzc3NzkKSG1tbW0uLi4gRGllIGhhJ20gc2ljaCB6d2FyIHVtIDE4MCBHcmFkLi4uIC0gbmFqYSA5MC4uLiBnZWRyZWh0LCBhYmVyIGRpZQpNdXNpaywgZGllIHNpZSBqZXR6dCBtYWNoZW4sIGlzIGF1Y2gga2xhc3NlIC0gc29uc3Qgd3VlcmRlIGljaCBuZXQgaW4ncwpLb256ZXJ0IHRhcGVybi4uLgphYmVyIHdhaHJzY2hlaW5saWNoIGhhZXR0ZSBpY2ggZnJ1ZWhlciBtZWhyIExldXRlIHVlYmVycmVkZW4ga29lbm5lbi4uLgoKVHVOaXhHdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpc2VuYmFobiEgKEhhcmRpbCwgIDMuIFNlcCAxOTk3LCAxNDowMzozMik6CgpEdSB3b2xsdGVzdCBzY2hvbiBpbW1lciBtYWwgTG9rb21vdGl2ZnVlaHJlciB3ZXJkZW4/CkZ1ZXIgRGljaCBpc3QgMTgzMCBtZWhyIGFscyBudXIgZWluZSBOYWNocmljaHRlbnNlbmR1bmcgZWluZXMgUHJpdmF0c2VuZGVycz8KRGVpbmUgQXVnZW4gYmVnaW5uZW4genUgbGV1Y2h0ZW4sIHdlbm4gRHUgQiZPLCBQUlIsIE5ZTkggb2RlciBFUklFIGhvZXJzdD8KCkRhbm4gaXN0IGRhcyBmb2xnZW5kZSBzaWNoZXJsaWNoIGF1Y2ggZXR3YXMgZnVlciBEaWNoOgoKRGllIGVyc3RlbiBCYXJvcGVyIEVpc2VuYmFobnRhZ2Ugdm9tIDA4LiBiaXMgMTQuIFNlcHRlbWJlciAxOTk3CjcgVGFnZSBsYW5nIEVpc2VuYmFobmZhaHJlbjogMTgzMCwgMTg3MCwgMTg1NiwgMTgzNSwgTHVtbWVybGFuZCB1LnYubS4KTmF0dWVybGljaCBrb21tZW4gYXVjaCBhbmRlcmUgU3BpZWxlIGF1ZiBkZW4gVGlzY2gsIGFiZXIgZWluIGdld2lzc2VyClNjaHdlcnB1bmt0IGxpZWd0IHNjaG9uIGF1ZiBFaXNlbmJhaG5zcGllbGVuLgoKV2VubiBEdSBtZWhyIEluZm9zIGJyYXVjaHN0IG9kZXIgRGljaCBqZXR6dCBzY2hvbiBkaWUgU3VjaHQgZ2VwYWNrdCBoYXQgLSBtYWlsCmFuIEhhcmRpbEBtZyBvZGVyIGFuIEhhcmRpbEBBbmRlcmxhbmQKCk1hbiBzaWVodCBzaWNoIQoKLUhhcmRpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaXNlbmJhaG4hIChQYW1wZXJzLCAgNC4gU2VwIDE5OTcsIDAwOjMzOjE2KToKfiMhIHJuPUhhcmRpbCBydD04NzMyODgyMTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzMyODgyMTIKVW5kIGRhcyBiZXN0ZSBkYXJhbjoKSWhyIGhhYnQgR2V3aW5uY2hhbmNlbiwgd2VpbCBpY2ggbGVpZGVyIG5pY2h0IGRhIGJpbi4gOigKClBhbXBlcnMuIFNjaG5pZWZ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU1VDSEUgWklNTUVSIElOIEhEISEgKEdhcmZpZWxkLCAgNC4gU2VwIDE5OTcsIDEwOjUyOjI3KToKCkhpIQpJY2ggc3VjaGUgZnVlciBPa3RvYmVyIDk3IGJpcyBldHdhIEZlYnJ1YXIgOTggZWluClppbW1lciBpbiBIZWlkZWxiZXJnISEKV2VyIHZvbiBFdWNoIGlyZ2VuZHdhcyBnZWhvZXJ0IGhhdCBvZGVyIG5vY2ggaXJnZW5kd2FzIGhvZXJ0LApkZW0gd2FlcmUgaWNoIHN1cGVyZGFua2JhciBmdWVyIGVpbmUgTmFjaHJpY2h0ISEKQW0gYmVzdGVuIGFuOiBMaW5uYmlnZm9vdC5jb20KCkluIGRpZSBaZWl0dW5nIHNjaHJlaWJlbiBnZWh0IGF1Y2guClZpZWxlbiBEYW5rISEKCkdydWVzc2Ugdm9uCkdhcmZpZWxkCioqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtvcnJla3R1ciBkZXIgYWRyZXNzZSAoR2FyZmllbGQsICA0LiBTZXAgMTk5NywgMTQ6MTI6MjQpOgoKSGkuCkFsc28gZGFzIG1pdCBkZXIgQWRyZXNzZSBoYXQgamEgbmljaHQgc28gaGluZ2VoYXVlbi4KTWVpbmUgQWRyZXNzZSBpc3QgbmF0dWVybGljaDoKTWVpbmUgQWRyZXNzZSBpc3QgbmF0dWVybGljaDoKTGlubkBiaWdmb290LmNvbQoKRnVlciBhbGxlLCBkaWUgc28gbmV0dCBzZWluIG1vZWNodGVuLgoKRGFua2UhCgoKS29taXNjaCwgZGllc2VzIFptdWQuLi4uICpncnVlYmVsKgoKQ1UsCkdhcmZpZWxkCgoqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXJtc2F0ZHQgdW5kIFVtZ2VidW5nIChGeXQsICA1LiBTZXAgMTk5NywgMTc6NTY6MjEpOgoKTWljaCB3aXJkJ3MgbmFlY2hzdGVuIE1pL0RvL0ZyICgxMC4tMTIuOSkgbmFjaCBEYXJtc3RhZHQgdmVyc2NoYWxnZW4uLi4KRWhlciB1bmZyZWl3aWxsaWcsIGFiZXIgbWFuIGthbm4gamEgYXVzIGRlciBOb3QgZWluZSBUdWdlbmQgbWFjaGVuOgpIYXQgamVtYW5kICduZSBBaG51bmcsIG9iIHp1IGRlciBaZWl0IGlyZ2VuZHdhcyBpbnRlcmVzc2FudGVzIGxvcyBpc3Q/ClN0YW1tdGlzY2gsIEtvbnplcnQsIC4uLiA/CgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERhcm1zYXRkdCB1bmQgVW1nZWJ1bmcgKEhhcmRpbCwgIDYuIFNlcCAxOTk3LCAxMjoyMzo0NCk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODczNDc5Njc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODczNDc0OTgxCgpEYXJtc3RhZHQgaGF0IGVpbmVzIGRlciBiZXN0ZW4gVGhlYXRlciBpbiBkZXIgUmVnaW9uLiBXZW5uIER1IGFsc28gZWluIHdlbmlnCkt1bHR1ciBzY2hudXBwZXJuIHdpbGxzdCwgaXN0IGRhcyBzaWNoZXJsaWNoIGtlaW5lIHNjaGxlY2h0ZSBBbHRlcm5hdGl2ZS4KCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaXQgR3J1c3Mgdm9uIFJvbmRhOiAoS2V5LCAgOC4gU2VwIDE5OTcsIDIyOjExOjU0KToKIAoxLiBhdXRvbWF0aXNjaGUgTWl0dGVpbHVuZyBhbiBhbGxlIE1pdGdsaWVkZXIgZGVzIFdvbHBlcnQuLi4KTW9yZ2VuZ3JhdWVucyEKRGFzIChzaWMhKSBLZXkgYWxzIEF1dG9yIGdlbmFubnQgd2lyZCwgaXN0IHRvdGFsIGFic2ljaHRsaWNoIC0gaWNoIGhhYgpoaWVyIGtlaW4gVGVsbmV0Li4uCiAKSGksCmljaCBzdWNoZSBEaWNoISBEdSBoYXN0IGRvY2ggc2ljaGVyIGVpbmUgZWlnZW5lIFdXVy1TZWl0ZSAobW9lZ2xpY2hzdAptaXQgZWluIHBhYXIgSW5mb3MgenVtIE1vcmdlbmdyYXVlbikuCkRhZnVlciBiaWV0ZSBpY2ggRGlyIGVpbmVuIExpbmsgYXVmIG1laW5lciBNRy1TZWl0ZSBhbiA7KQogCkVpZ2VudGxpY2ggd2FlcmUgZXMgSU1ITyBhbSBzY2hvZW5zdGVuLCB3ZW5uIG1hbiBzaWNoIGdlbmF1IHdpZSBkaWUKRW1haWwtIGF1Y2ggZGllIFdXVy1BZHJlc3NlIHNldHplbiBrb2VubnRlIC0gYWJlciBzbyBsYW5nZSBkYXMgbmljaHQKZ2VodCwgdmVyc3VjaCBpY2ggaGFsdCBtYWwsIGVpbiBwYWFyIEFkcmVzc2VuIHp1IHNhbW1lbG4gKHNvIHVtIGRpZSAzNQpoYWIgaWNoIGphIHNjaG9uIGdlZnVuZGVuLCBhYmVyIGRhcyB3ZXJkZW4gZG9jaCBuaWNodCBhbGxlIHNlaW4/KS4KIApBbHNvIHdlciBtYWc6IHNjaGF1dCBtYWwgZWluZmFjaCBhdWYKaHR0cDovL21lbWJlcnMudHJpcG9kLmNvbS9+aGVkZGVyaWNoL21nLmh0bWwgdm9yYmVpIHVuZCBoaW50ZXJsYXNzdCBFdXJlClVybCAtIG9kZXIgc2NoaWNrdCBtaXIgZWluZSBNdWQtTWFpbC4KVHNjaHVlc3MgYmlzIGhvZmZlbnRsaWNoIGJhbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb25kYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1pdCBHcnVzcyB2b24gUm9uZGE6IChTaGFyaWEsICA5LiBTZXAgMTk5NywgMDk6Mzc6MTUpOgp+IyEgcm49S2V5IHJ0PTg3Mzc0OTUxNCByZz1hbnplaWdlbgp+IyEgdGlkPTg3Mzc0OTUxNAoqc3RhdW4qCkljaCBkYWNodGUgaW1tZXIgZGFzcyBLZXkgbWVpbiBad2VpdGkgaXN0LCBhYmVyIGRhc3MgZXIgUm9uZGFzIFp3ZWl0aSBpcyB3YXIKbWlyIHZvbGxrb21tZW4gbmV1IDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTXVzaWsgKFRyZWthbiwgIDkuIFNlcCAxOTk3LCAxODoxMDo0Nik6CkhhbG9lbGUuCkljaCBzdWNoZSBkYXMgQ0QtQm9vayB6dXIgYWt0dWVsbGVuIFNrdW5rIEFuYW5zaWUgQ0QKQWxzbywgd2llIGRpZSBsaWVkZXIgaGVpc3NlbiB1bmQgZGFzIHpldWcuCkRpZSB0ZXh0ZSBhYmVyIG5pY2h0IC4uIApXZW5uIHNpZSBlaW5lciBoYXQsIHdhZXJlIHNjaG9lbiwgd2VubiBlci9zaWUgZGllIHplaWxlbiBtYWwgZml4IGFidGlwcHQgOykKVHJla2FuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTXVzaWsgKENhdHdlYXpsZSwgIDkuIFNlcCAxOTk3LCAyMDowODoxMSk6Cn4jISBybj1UcmVrYW4gcnQ9ODczODIxNDQ2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODczODIxNDQ2CgpodHRwOi8vdWJsLmNvbS9hcnRpc3RzLzAwNDkwMi5odG1sCgpVbnRlciBodHRwOi8vdWJsLmNvbS91YmwvdWJsLnNodG1sIGZpbmRldCBtYW4gaW4gZGVyIFJlZ2VsIGFsbGVzIHdhcyBtYW4Kc28gZ2VicmF1Y2hlbiBrYW5uLi4uLgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBzdWNoZS4uLiAoRGFudGUsIDEwLiBTZXAgMTk5NywgMTI6MzM6MTYpOgp+IyEgcm49UmFmZmkgcnQ9ODczMjAxNjc1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5CklycnR1bS4uLgpUcmFzaCBrYW5uIG1hbiBlc3Nlbi4uLm5pZSB3YXMgdm9uIFdoaXRlIFRyYXNoIENvb2tpbmcgZ2Vob2VydC4uLgpTZWhyIGJlbGllYnQgaW4gZGVuIGhpbnRlcndhZWxkbGVyaXNjaGVuIEVja2VuIGRlciBBbWlTdWVkc3RhYXRlbi4uLgpBbGlnYXRvcnNjaHdhbnogZ2VmdWVsbHQgbWl0IFJhdHRlbnBhc3RldGUsIGRhenUgRXJkbnVzc2J1dHRlcihGZXR0Z2VoYWx0CjEwMyUpCk1haGt6CmFlaCBNYWhsemVpdC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKNDcgKERhbnRlLCAxMC4gU2VwIDE5OTcsIDEyOjM1OjUwKToKfiMhIHJuPURhbnRlIHJ0PTg3Mzg4NzU5NiByZz1hbnplaWdlbgp+IyEgdGlkPTg3Mjc3Nzc3OQpBZWgsIGRlciBCZXp1ZyBpcyBuYXR1ZXJsaWNoIG5pY2h0IGdhbnoga29ycmVrdC4uLgplaW5mYWNoIDYgYWJ6YWVobGVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBzdWNoZS4uLiAoUmFmZmksIDEwLiBTZXAgMTk5NywgMTg6MzM6MzEpOgp+IyEgcm49RGFudGUgcnQ9ODczODg3NTk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODcyNzc3Nzc5CktsaW5ndCBndXQgLi4uIGthbm5zdCBkdSBlaW4gUmVzdGF1cmFudCBlbXBmZWhsZW4gPwoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIFdvaG51bmcgKExpcXVpLCAxMC4gU2VwIDE5OTcsIDE5OjM3OjIwKToKSGksCmljaCBzdWNoZSBlaW5lIDItMyBaaW1tZXIgV29obnVuZyBpbiBLb2VsbiwgNDUtNjBxbSwgV0ctZ2VlaWduZXQgdW5kIGJpcwoxMDAwLC0gRE0uIEZhbGxzIGlyZ2VuZHdlciB3YXMgaW4gZGVyIFJpY2h0dW5nIHdlaXNzLCBiaXR0ZSBiZWkgbWlyIG1lbGRlbiwKYW5kcmVoQHQtb25saW5lLmRlLgpMaXF1aQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9yZ2VuR3JhdWVuLVJlbW90ZS1GaW5nZXIgKFhlcmEsIDEwLiBTZXAgMTk5NywgMjM6MTg6MjApOgpXaXIgLSBEYW5jZXIgdW5kIGljaCAtIGhhYmVuIGhldWUgZWluIGtsZWluZXMgUHJvZ3JhbW0gZnVlciBXaW5kb3dzIDk1Cmdlc2NocmllYmVuLCBkYXMgZXMgZXJtb2VnbGljaHQsIFNwaWVsZXIgaW0gTUcgenUgZmluZ2Vybiwgb2huZSBzaWNoIGVpbmxvZ2dlbgp6dSBtdWVzc2VuLiBEYXMgYWxsZWluZSB3YWVyZSBqYSBuaWNodCBmdWVyY2h0ZXJsaWNoIGF1ZnJlZ2VuZCwgYWJlciBkYXMKUHJvZ3JhbW0ga2FubiBzaW1wbGUgYmF0Y2hmaWxlcyBlaW5sZXNlbiwgdW0gSW5mb3MgdWViZSBlaW5lIEhvcmRlIHZvbgpTcGllbGVybiBhdWYgZWlubWFsIGFienVmcmFnZW4uCgpEaWUgRnJhZ2UsIG9iIHNpY2ggZWluIGVpbmxvZ2dlbiBsb2hudCAoZnVlciBkaWUgdW50ZXIgdW5zLCBkaWUgaGllciBsaWViZXIKbWl0IGlocmVuIEZyZXVuZGVuIGNoYXR0ZW4gOykgKSwgYmVhbnR3b3J0ZXQgc2ljaCBzbyBtaXQgZWluZW0gS2xpY2suIElocgprb2VubnQgenVtIEJlaXNwaWVsIEV1cmUgZXJ3YXJ0ZS1MaXN0ZSBvZGVyIEV1cmUgRnJldW5kZSBlaW5mYWNoIGluIGVpbgpiYXRjaGZpbGUgc3RvcGZlbiB1bmQgbXVlc3N0IEV1Y2ggbmljaHQgZXJzdCBlaW5sb2dnZW4sIHVtIGRhbm4gZG9jaAplbnR0YWV1c2NodCBmZXN0enVzdGVsbGVuLCBkYXNzIG5pZW1hbmQgZGEgaXN0Li4uKGF1c3NlciBkaWUgTmVydmVuc2FlZ2VuIDopCikuCgpFaW5pZ2UgYmF0Y2hmaWxlcyAoRXJ6bWFnaWVyLCBSZWdpb25zbWFnaWVyLCBldGMuLikgaGFiZW4gd2lyIGdsZWljaApkYXp1Z2VwYWNrdC4gRnVlciBkaWUgRXJ6aXMgc2llaHQgZGFzIFN1Y2hlcmdlYm5pcyB6dW0gQmVpc3BpZWwgc28gYXVzOgoKTXVsdGlwbGUgZmluZ2VyIHJlc3VsdDoKMS4gQm9pbmcgaXMgbm90IGxvZ2dlZCBpbi4gU2VlbiBsYXN0IHRpbWU6ICBNaXQsIDEwLiBTZXAgMTk5NywgMTE6NTU6MzAKKDExOjE0OjUzKQoyLiBIYXRlIGlzIG5vdCBsb2dnZWQgaW4uIFNlZW4gbGFzdCB0aW1lOiAgTWl0LCAxMC4gU2VwIDE5OTcsIDIxOjUxOjE5CigwMToxOTowNikKMy4gSGlnaGxhbmRlciBpcyBub3QgbG9nZ2VkIGluLiBTZWVuIGxhc3QgdGltZTogIE1pdCwgMTAuIFNlcCAxOTk3LCAxNTo0Mzo1MgooMDc6MjY6MzMpCjQuIEpvZiBpcyBub3QgbG9nZ2VkIGluLiBTZWVuIGxhc3QgdGltZTogIERpZSwgOS4gU2VwIDE5OTcsIDE5OjE3OjQxICgxZAowMzo1Mjo0NikKNS4gS2lyayBpcyBub3QgbG9nZ2VkIGluLiBTZWVuIGxhc3QgdGltZTogIE1pdCwgMTAuIFNlcCAxOTk3LCAxNToxODoyOQooMDc6NTI6MDApCjYuIFBhcmFjZWxzdXMgaXMgbm90IGxvZ2dlZCBpbi4gU2VlbiBsYXN0IHRpbWU6ICBNaXQsIDEwLiBTZXAgMTk5NywgMjI6NDM6MDkKKDAwOjI3OjIwKQo3LiBSb2NodXMgaXMgbm90IGxvZ2dlZCBpbi4gU2VlbiBsYXN0IHRpbWU6ICBNaXQsIDEwLiBTZXAgMTk5NywgMjI6MTY6MjEKKDAwOjU0OjEwKQo4LiBSdW1hdGEgaXMgbm90IGxvZ2dlZCBpbi4gU2VlbiBsYXN0IHRpbWU6ICBNaXQsIDEwLiBTZXAgMTk5NywgMTA6MTg6MTQKKDEyOjUyOjE5KQo5LiBTaWx2YW5hIGlzIG5vdCBsb2dnZWQgaW4uIFNlZW4gbGFzdCB0aW1lOiAgTWl0LCAxMC4gU2VwIDE5OTcsIDE4OjM0OjU5CigwNDozNTozNCkKMTAuIFdhcmdvbiBpcyBub3QgbG9nZ2VkIGluLiBTZWVuIGxhc3QgdGltZTogIE1pdCwgMTAuIFNlcCAxOTk3LCAxMTo0NTowNgooMTE6MjU6MjkpCjExLiBZYW50cm8gaXMgbm90IGxvZ2dlZCBpbi4gU2VlbiBsYXN0IHRpbWU6ICBNaXQsIDEwLiBTZXAgMTk5NywgMTc6MTY6MTIKKDA1OjU0OjI1KQoxMi4gWmFyZG96IGlzIG5vdCBsb2dnZWQgaW4uIFNlZW4gbGFzdCB0aW1lOiAgTWl0LCAxMC4gU2VwIDE5OTcsIDE3OjQ1OjU1CigwNToyNDo0NCkKCgpEYXMgR2FuemUgbmF0dWVybGljaCBvaG5lIGRpZSBuZXJ2aWdlbiBaZWlsZW51bWJydWVjaGUuIEFsc28gbWFsIHdpZWRlciBrZWluCkVyem1hZ2llciBkYS4gSWRsZS1aZWl0ZW4gd2VyZGVuIGJlaSBlaW5nZWxvZ2d0ZW4gU3BpZWxlcm4gdWVicmlnZW5zIGF1Y2gKZ2xlaWNoIG1pdCBhbmdlZ2ViZW4uCgpEYXMgR2FuemUgbGllZ3QgZ2V6aXBwdCBpbiAvb3Blbi9pbmNvbWluZy4uLiBiaXMgZXMgaXJnZW5kd2VyIHZlcnNjaGllYnQuCgpWaWVsIFNwYXNzLi4uIElkZWVuIHVuZCBBbnJlZ3VuZ2VuIGJpdHRlIGFuIERhbmNlciA7LSkKClhlcmEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTW9yZ2VuR3JhdWVuLVJlbW90ZS1GaW5nZXIgKEJvZWJiZWwsIDEwLiBTZXAgMTk5NywgMjM6MjE6MzgpOgp+IyEgcm49WGVyYSBydD04NzM5MjYzMDAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzM5MjYzMDAKCkhpIQoKSG1tbS4uLiBlaW4gJ2ZpbmdlciBAbWcubXVkLmRlJyBpc3QgdmllbGxlaWNodCBuaWNodCBnYW56IHNvIHNjaG9uLCBhYmVyCmRhcyBmdW5rdGlvbmllcnQgYXVjaC4gOikKCkVpbiBCb2ViYmVsLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1vcmdlbkdyYXVlbi1SZW1vdGUtRmluZ2VyIChCbG9vZHloYXJyeSwgMTEuIFNlcCAxOTk3LCAwMDoxOTo0OSk6Cn4jISBybj1Cb2ViYmVsIHJ0PTg3MzkyNjQ5OCByZz1hbnplaWdlbgp+IyEgdGlkPTg3MzkyNjMwMApVbmQgd2VubiBtYW4gbnVyIHdpc3NlbiBtb2VjaHRlLCB3ZWxjaGUgRXJ6aWVzIG1hbiB6dXIgVmVyZnVlZ3VuZyBoYXQsIHR1dHMKCmZpbmdlciBAbWcubXVkLmRlIHxncmVwICJeXFtFXF0iCgpzaWNoZXIgYXVjaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1vcmdlbkdyYXVlbi1SZW1vdGUtRmluZ2VyIChEYW5jZXIsIDExLiBTZXAgMTk5NywgMDE6MjM6NTQpOgp+IyEgcm49Qmxvb2R5aGFycnkgcnQ9ODczOTI5OTg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODczOTI2MzAwCk5hIGRhbm4gYmVudXR6IGRhcyBQcm9ncmFtbSBoYWx0IG5pY2h0LiA6KSBFaW5pZ2UgYW5kZXJlIGJlbnV0emVuIGVzIHNjaG9uIHVuZApmcmV1ZW4gc2ljaCBkcnVlYmVyLiBNdXNzIGhpZXIgZWlnZW50bGljaCB1ZWJlciBhbGxlcyBnZWtsdWdzY2hlaXNzZXJ0IHdlcmRlbj8KQXVmIFdpbjk1IGlzdCBmaW5nZXJuIHZvbiBtZWhyZXJlbiBMZXV0ZW4gZ2xlaWNoemVpdGlnIGVpbiB3ZW5pZyBuZXJ2aWcgdW5kCmdyZXBwZW4gbm9jaCBuZXJ2aWdlci4gVHJhZ3RzIG1pdCBGYXNzdW5nLCBkYXNzIG5pY2h0IGFsbGUgc28gZ2VuaWFsZSBncmVwcGVyCnNpbmQgd2llIGloci4KCkRhbmNlciAtIGdlbmVydnQgdW5kIGdlbGFuZ3dlaWx0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTW9yZ2VuR3JhdWVuLVJlbW90ZS1GaW5nZXIgKEJsb29keWhhcnJ5LCAxMS4gU2VwIDE5OTcsIDAxOjM3OjI4KToKfiMhIHJuPURhbmNlciBydD04NzM5MzM4MzQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzM5MjYzMDAKS2x1Z3NjaGVpc3NlcmVpIHNvbGx0ZSBlcyBuaWNodCB3ZXJkZW4uIEFiZXIgd2Fyc2NoZWlubGljaCBuZXJ2dCBlcyBEaWNoLApkYXNzIGRpZXNlciBIaW53ZWlzcyBmdWVyIFdpbjk1IEJlbnV0emVyIGFic29sdXQgdW5icmF1Y2hiYXIgaXN0PwpJIGNoIGtlbm5lIGRpZSBXaW45NS1Qcm9ibGVtZSB6dW0gR2x1ZWNrIG51ciBhbnNhdHp3ZWlzZS4gVHJvdHpkZW0ga2VubmUgaWNoCmVpbmlnZSwgZGllIHdvaGwgc2VociBnbHVlY2tsaWNoIG1pdCBXaW45NSBzaW5kPyAKCmJoIC0ga2VubnQgZGllc2UgcHJvYmxlbWUgbmljaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTdWNoZSBXb2hudW5nIChZYW50cm8sIDExLiBTZXAgMTk5NywgMDk6MTQ6MjIpOgp+IyEgcm49TGlxdWkgcnQ9ODczOTEzMDQwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODczOTEzMDQwCk9obmUgc2VociBwZXJzb2VubGljaCB3ZXJkZW4genUgd29sbGVuLCBMaXF1aSwgYWJlciBEZWluIEFydGlrZWwgZ2Vob2VydAplaWdlbnRsaWNoIG5hY2ggV2l0emUgb2RlciBTY2htYXJybiEhISAyLTMgWmltbWVyIGZ1ZXIgMTAwMERNIElOIEtvZWxuPwpWaWVsbGVpY2h0IEJFSSBLb2VsbiA6KQoKWWFudHJvLCBhdWNoIGF1ZiBXb2h1bmdzc3VjaGUsIGFiZXIgZGVyIGF1Y2ggd2Vpc3MsIGRhcyBNaWV0c3BpZWdlbCBuaXggbWl0ClJlYWxpdGFldCB6dSB0dW4gaGF0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTdWNoZSBXb2hudW5nIChFc2N1YmFyLCAxMS4gU2VwIDE5OTcsIDEzOjMwOjQ2KToKfiMhIHJuPVlhbnRybyBydD04NzM5NjIwNjIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzM5MTMwNDAKSGkgWWFudHJvLAoKaG1tLCBhbHNvIHdlbm4gbWFuIGJlaSBFdWNoIGZ1ZXIgMTAwMCBETSBuaXgga3JpZWd0IGthbm4gaWNoIGJsb3NzIGVtcGZlaGxlbgpuYWNoIE51ZXJuYmVyZyB6dSB6aWVoZW4sIGhpZXIga3JpZWdzdGUgd3VuZGVyc2Nob2VuZSBXb2hudW5nZW4gZnVlciAxMC0xMgpETS9xbSwgYWxzbyBzcHJpY2ggZnVlciBuZSAyLTMgWmltbWVyIDcwcW0gV29obnVuZyA3MDAtODAwIERNIGthbHQuCk5lYmVua29zdGVuLCBIZWl6dW5nIHVuZCBTdHJvbSBuYXR1ZXJsaWNoIGV4dHJhIC4uLgoKRWlzYmFlciBFc2N1YmFyLCBmcmV1dCBzaWNoIGF1ZiBuZXVlIE11ZGRlciBpbiBOdWVybmJlcmcgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFN1Y2hlIFdvaG51bmcgKFd1cnplbCwgMTEuIFNlcCAxOTk3LCAyMDoyMDo1Nyk6Cn4jISBybj1Fc2N1YmFyIHJ0PTg3Mzk3NzQ0NiByZz1hbnplaWdlbgp+IyEgdGlkPTg3MzkxMzA0MApkYWZ1ZXIgbW9lY2h0ZSBpY2ggaW4gbnVlcm5iZXJnIGF1Y2ggbmljaHQgdG90IHVlYmVybSB6YXVuIGhhZW5nZW4uLi4Ka29lbG4ga29lbm50ZSBpY2ggbWlyIHNjaG9uIGRldXRsaWNoIGVoZXIgdm9yc3RlbGxlbiwgZGFzIGlzdCB3ZW5pZ3N0ZW5zIG5lCm9yZGVudGxpY2hlIHN0YWR0IDopCgp3dXJ6ZWwKCnAucy4gZGllIG1pZXRwcmVpc2Ugc2luZCBpbW1lciBkYSBuaWVkcmlnLCB3byBrZWluIGFhcyBoaW53aWxsLiBkYSB3byBlcyBzaWNoCmd1dCBsZWJlbiBsYWVzc3QsIGlzc2VzIGhhbHQgc2F1dGV1ZXIgKHNjaG9uIG1hbCB3YXMgdm9uIG1hcmt0d2lydHNjaGFmdApnZWhvZXJ0PykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcnNpb24gMiAoRGFuY2VyLCAxMi4gU2VwIDE5OTcsIDAwOjEyOjMyKToKSGksCgplcnN0bWFsIHZpZWxlbiBEYW5rIGZ1ZXIgZGllIHZpZWxlbiBBbnJlZ3VuZ2VuIChhZWgsIHVuZCBkaWUgZWluZSBCdWdtZWxkdW5nKS4KOi0pIEljaCBoYWJlIGhldXRlIGVpbmUgZmFzdCBrb21wbGV0dCBuZXVlIFZlcnNpb24gdm9tIE1HLVJlbW90ZS1GaW5nZXIKZ2VzY2hyaWViZW4uIEVpbmUgZ2FuemUgRWNrZSBrb21mb3J0YWJsZXIsIHNjaG5lbGxlciwga2xlaW5lciwgaHVlYnNjaGVyLCB1bmQKYmxhYmxhLiBadSBmaW5kZW4gaW4gL29wZW4vaW5jb21pbmcvbWdfcmZpbmdlcl92MDIuemlwLCBzY2hhdXQgZXMgRXVjaCBoYWx0CmVpbmZhY2ggbWFsIGFuLCB3ZW5uIElociBzb3dhcyBicmF1Y2hlbiBrb2VubnQuCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkY2UgKENhdHdlYXpsZSwgMTIuIFNlcCAxOTk3LCAxMjozMjoyMik6Ck1vaW4hCktlbm50IHNpY2ggamVtYW5kIG1pdCBkY2UvZGZzIGF1cz8gCkljaCBoYWIgZGEgbmVuIHBhYXIgU2ljaGVyaGVpdHN0ZWNobmlzY2hlIEZyYWdlbiwgd2VubiBiZWthbm50LCBkYW5uCmRvY2ggYml0dGUgbWFsIGJlaSBtaXIgbWVsZGVuLgpUSFgKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTdWNoZSBXb2hudW5nIChSYWZmaSwgMTIuIFNlcCAxOTk3LCAxMjo1Nzo0MSk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODc0MDAyMDU3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODczOTEzMDQwCldhcnVtIHp1bSAuLi4uLiB3b2xsZW4gYWxsZSBudXIgbmFjaCBNdWVuY2hlbiA/CkljaCBoYWV0dCBuaXggZ2VnZW4gZ3VlbnN0aWdlciBQcmVpc2UuCgpHcnVzcwpILgooQXJiZWl0ZXQgUkwgZmFzdCBudXIgZnVlciBkaWUgYmFuayB1bSBzaWNoIHNlaW4gU2VoZXJoYWV1c2NoZW4gbGVpc3RlbiB6dQprbG9lbm5lbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFN1Y2hlIFdvaG51bmcgKEdlbmVzeXMsIDEyLiBTZXAgMTk5NywgMTU6NDA6NDcpOgp+IyEgcm49V3VyemVsIHJ0PTg3NDAwMjA1NyByZz1hbnplaWdlbgp+IyEgdGlkPTg3MzkxMzA0MApEYXMgTGViZW4gaW4gZGVyIFN0YWR0IGlzdCB0ZXVlciAtIGRhaGVyIGRpZSBVZWJlbCAoQ2ljZXJvKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU3VjaGUgV29obnVuZyAoSGFkcmEsIDE0LiBTZXAgMTk5NywgMTQ6Mjc6MzMpOgp+IyEgcm49V3VyemVsIHJ0PTg3NDAwMjA1NyByZz1hbnplaWdlbgp+IyEgdGlkPTg3MzkxMzA0MAptYXJrdHdpcnRzY2hhZnQ/IGJlaSB1bnMgaGVpc3QgZGFzIG1hcmt0c2NoYWVua2UuCgpoYWRyYSAtIGVpbnplaWxpZyBoaWNrc2VuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU3VjaGUgV29obnVuZyAoTHlzZXJnLCAxNS4gU2VwIDE5OTcsIDIyOjAyOjIxKToKfiMhIHJuPUVzY3ViYXIgcnQ9ODczOTc3NDQ2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODczOTEzMDQwCkljayBzYWNoIG51YSBCZXJsaW4sIHdhPyBJbSBGcmllZGVsaGFpbiBrcmlzdGUgb29jaCB3YXQgZnVlciduIEFjaHRlciBwcm8KUXVhZHJhdG1ldGEuIFdlbm56ZSBudWVzY2h0IGRhamVqZW4gaGFzdCwgS29obG4gaW4nbiB2aWVydGVuIFN0b2NrIHp1CnNjaGxlcHBlbiwgbmF0dWVybGljaC4KCkp1dXQsIHdhPwpMeXNlcmcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTdWNoZSBXb2hudW5nIChLcmV0ZWssIDE2LiBTZXAgMTk5NywgMTg6MDc6MTEpOgp+IyEgcm49THlzZXJnIHJ0PTg3NDM1Mzc0MSByZz1hbnplaWdlbgp+IyEgdGlkPTg3MzkxMzA0MApTaWNoZXIsIGFiZXIgZGEgd2lsbCBoYWx0IGtlaW4gQXJzY2ggaGluIDstKQoKCksuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTdWNoZSBXb2hudW5nIChGeXQsIDE3LiBTZXAgMTk5NywgMDk6Mzk6MjgpOgp+IyEgcm49THlzZXJnIHJ0PTg3NDM1Mzc0MSByZz1hbnplaWdlbgp+IyEgdGlkPTg3MzkxMzA0MAoKRHUgaGFzdCBkYW5uIG5hdHVlcmxpY2ggZGFzIFByb2JsZW0sIGRhc3MgRHUgRGljaCBtaXQgZGVuIEVpbmdlYm9yZW5lbgpkYSBrYXVtIHVudGVyaGFsdGVuIGthbm5zdC4KCldhcyBiZWkgZ2VuYXVlcmVyIFVlYmVybGVndW5nIGZyZWlsaWNoIGVpbiBWb3J0ZWlsIGlzdCA7LS0tKQoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogc3VjaGUuLi4gKEdyaW1tYm9ybiwgMjEuIFNlcCAxOTk3LCAxNzozMTo0MSk6Cn4jISBybj1Hbm9tZSBydD04NzMxOTcxMTMgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI3Nzc3NzkKUGFzc3QgamEgaGVydm9ycmFnZW5kLCBkZXIgdGhyZWFkLi4uCkVpbmUgRnJldW5kaW4gdm9uIG1pciBzdWNodCBpbiBCZXJsaW4gd2FzIHp1bSBXb2huZW4sIGRhIHNpZSBkb3J0CndlaXRlcnN0dWRpZXJlbiBtb2VjaHRlLiBTbyB3aWUgaWNoIGRhcyB2ZXJzdGFuZGVuIGhhYmUgc2luZCBHcm9lc3NlIHVuZCBQcmVpcwplcnN0bWFsIGVnYWwgKGlubmVyaGFsYiBub3JtYWxlciBHcmVuemVuIGFsc28pLCB1bmQgd2VubnMgaW4gZGVyIE5hZWhlIGRlcgpNdXNpa2hvY2hzY2h1bGUgKHdvIGF1Y2ggaW1tZXIgZGllIGlzdCkgd2FlcmUgd2FlcmUgZGFzIGVpbiBWb3J0ZWlsLiAKV2VubiBqZW1hbmQgYWxzbyBtYWwgd2FzIHNpZWh0LCBkZW5rdCBkcmFuLCBkYXNzIGVzIHppZW1saWNoIHNjaHdlciBzZWluIGthbm4sCnNvd2FzIHF1ZXIgZHVyY2ggZGllIFJlcHVibGlrIHp1IG9yZ2FuaXNpZXJlbi4gQXVzc2VyZGVtIGhhYiBpY2ggZGFtaXQKYW5nZWdlYmVuLCB3YXMgdWViZXJzIG11ZCBzbyBhbGxlcyBtb2VnbGljaCBzZWluIGthbm4uLi4gOy0pCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCkFjaCBzbywgYW5nZWJsaWNoIGlzdCBzaWUgYXVjaCBhbiAic296aWFsZW4gS29udGFrdGVuIiBpbnRlcmVzc2llcnQgKG5pY2h0CmZ1ZXJzIEJldHQsIHNpZSBoYXQgbmVuIEZyZXVuZCwgc29uZGVybiBhbiBqZW1hbmRlbSwgZGVyIGlociB2aWVsbGVpY2h0IGVpbgpiaXNjaGVuIEJlcmxpbiB6ZWlndCkuIEFsc28sIHdlbm4gc2ljaCBqZW1hbmQgenVtIEZyZW1kZW5mdWVocmVyIGJlcnVmZW4KZnVlaGx0IGthbm4gZXIgc2ljaCBqYSBhdWNoIG1lbGRlbi4KVW5kIGpldHp0IG5vY2ggZGFzIHdpY2h0aWdzdGU6IERhcyBNYWVkZWwgaGVpc3N0IFN1c2FubmUgdW5kIGhhdCBkaWUgQWRyZXNzZQp1enM1Y2hAaWJtLnJocnoudW5pLWJvbm4uZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IHN1Y2hlLi4uIChBc21vZGlzLCAyMi4gU2VwIDE5OTcsIDIxOjE1OjAxKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NzQ4NTU5MDEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzI3Nzc3NzkKSXN0IGRhcyBTdXNhbm5lIHZvbiBkZXIgU29ubmVuaW5zZWwgPz8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhvbWVwYWdlLWNvdW50ZXIgKExvbGxpLCAyNS4gU2VwIDE5OTcsIDE2OjUyOjE5KToKSGkgTGV1dGUhIAp2aWVsbGVpY2h0IGlzdCBqYSBlaW5lciB1bnRlciBldWNoIGRlciBtaXIgbWFsIGhlbGZlbiBrYW5uLi4uCmljaCBtb2VjaHRlIGdlcm5lIGluIG1laW5lIGhvbWVwYWdlIGVpbmVuIHphZWhsZXIgZWluYmF1ZW4gdW5kIHdlaXNzIGFic29sdXQKbmljaHQgd2llIQp3ZXIgd2FzIHdlaXNzIGJpdHRlIGJpdHRlIGRhenUgd2FzIHNjaHJlaWJlbiA6LSkKCkxvbGxpICAgICAgICAodmVyendlaWZlbHQgbm9jaCBtaXQgZGVyIGJsb2VkZW4gcGFnZSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdhZXN0ZSAoR3JpbW1ib3JuLCAyNS4gU2VwIDE5OTcsIDE5OjM1OjI3KToKQXVzIGFrdHVlbGxlbSBBbmxhc3Mgd29sbHRlIGljaCBub2NobWFsIGFuIG1laW5lbiBld2lnIHp1cnVlY2tsaWVnZW5kZW4KRW50c2NobHVzcyBlcmlubmVybiwgQXJ0aWtlbCB2b24gR2Flc3RlbiB1bmdlYWNodGV0IGRlcyBJbmhhbHRzIGVpZ2VubWFlY2h0aWcKenUgbG9lc2NoZW4uCldlciB3YXMgenUgc2FnZW4gaGF0IHNvbGxzIHdlbmlnc3RlbnMgbWl0IGVpbmVtIENoYXJha3RlciBtYWNoZW4sIHVuZCB3ZW5ucwpudXIgZWluIFp3ZWl0aWUgaXN0Li4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBrb3JyZWt0dXIgZGVyIGFkcmVzc2UgKEFuYXRvbCwgMjUuIFNlcCAxOTk3LCAxOTo0MjowMSk6Cn4jISBybj1HYXJmaWVsZCBydD04NzMzNzUxNDQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzMzNzUxNDQKQXVmIEJpdHRlIGVpbmVzIEJla2FubnRlbiB2b24gbWlyLCBkZXIgaGllciBrZWluZW4gQ2hhcmFrdGVyIGhhdCB1bmQKc2ljaCBudXIgZ2VsZWdlbnRsaWNoIGFscyBHYXN0IGVpbmxvZ2d0OiBHZXN1Y2h0IHdpcmQgZWluIEFydGlrZWwsIGRlciB2b3IKZWluaWdlciBaZWl0LCBhbHMgamVtYW5kIEtvbXBsZXR0bG9lc3VuZ2VuIGF1ZiBlaW5lciBXZWJzZWl0ZSBhbmJvdCwgaW4gZGVyCk1QQSBnZXBvc3RldCB3dXJkZS4gSWNoIGthbm4gbWljaCBsZWlkZXIgbnVyIG5vY2ggYW4gZWluZW4gU2F0eiBlcmlubmVybiwKZGVyIGRpZSBhbGxnZW1laW5lIE1hY2h0bG9zaWdrZWl0IGF1c2RydWVja2VuIHNvbGx0ZTogIktpbGwgdGhlIHBsYXllci4gSQpkb24ndCBtZWFuICdLaWxsIHRoZSBjaGFyYWN0ZXInLiIgTGVpZGVyIG5pY2h0IGdhbnogd29ydGdldHJldSwgc29ycnkuCgpGYWxscyBqZW1hbmQgd2Vpc3MsIHdvaGVyIGRpZXNlciBTYXR6IHN0YW1tdCBvZGVyIGRhcyBpbiBlaW5lbSBhbHRlbiAKQmFja3VwIG5vY2ggaGF0LCBtb2VnZSBlciBzaWNoIGJpdHRlIGJlaSBtaXIgb2RlciBoaWVyIGluIGRlciBNUEEgbWVsZGVuLgpEYW5rZS4KCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBob21lcGFnZS1jb3VudGVyIChZZW5kaSwgIDEuIE9rdCAxOTk3LCAxMzoxOTowMyk6Cn4jISBybj1Mb2xsaSBydD04NzUxOTkxMzkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzUxOTkxMzkKClZlcmdpc3MgZGFzIG1pdCBkZW0gWmFlaGxlci4gWnVtaW5kZXN0IHNvbGx0ZSBkYXMgRGluZyBuaWNodCBhdWYgZGVyIFNlaXRlCmFuZ2V6ZWlndCB3ZXJkZW4sIGRhbWl0IHNpY2ggbmljaHQgZGF1ZXJuZCBkaWUgU2VpdGUgYWVuZGVydCB1bmQgbmV1IGdlbGFkZW4Kd2VyZGVuIG11c3MuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm90ZSAhIChSYW50YW5wbGFuLCAgMi4gT2t0IDE5OTcsIDEzOjI0OjA2KToKClNpbmQgU2llIGF1Y2ggc2Nob24gdm9uIGhvcm1vbmdlc3RhdXRlbiBIYWNrZXIgYmVsYWVzdGlndCB3b3JkZW4gPwoKSGF0IGRlciBmcmV1bmRsaWNoZSwgbmV0dGUsIGhvZWNoc3R3YWhyc2NoZWlubGljaCBwaWNrbGlnZSB1bmQgYmFlcnRpZ2UgTXVkZGVyCnZvbiBuZWJlbmFuIGlobmVuIHVuZXJ3dWVuc2NodGUgQW50cmFlZ2UgZ2VtYWNodCA/CgpTaW5kIHNpZSBhdXMgZGVtIEhpbnRlcmhhbHQgdm9uIGVpbmVtIHNvb28gd2l0emlnZW4gU3BpZWxlciBQa2VkIHdvcmRlbiA/CgpKYSA/CgpEYXMgbXVzcyBuaWNodCBzZWluLCBtaXQgUmFudGFucGxhbiBhbHMgZGVwdXR5IGJpZXRlbiB3aXIgZWluZSBsaWZldGltZQpraWNrLWFzcyBnYXJhbnRpZSwgZG9jaCBkYXMgaXN0IG5pY2h0IGFsbGVzLCBkYXp1IGdpYnQgZXMgbm9jaCBkYXMKc3VwZXJzdGFya3RlClNhdWd2bGllc3dpc2Nod2VndHVjaCwgZGFzIG5pY2h0IDEwMCBuaWNodCAyMDAgbmljaHQgMzAwIG5laW4gNDAwIG1sIFdhc3NlcgphdWZzYXVndCwgZ2VuYXUgc28gdmllbCB3aWUgZWluIGR1cmNoc2Nobml0dGxpY2hlciBIdW5kCnBpc3N0LCB3ZW5uIGVyIG5pY2h0IHJlZ2VsbWFlc3NpZyBhdXMgZGVyIFBvc3QgZ2VsYXNzZW4gd2lyZC4KClVORCBudXIgZnVlciBiZWdyZW56dGUgWmVpdCBnaWJ0IGVzIGRhenUgdW5zZXIgdmllcnRlaWxpZ2VzIFN0ZWFrbWVzc2Vyc2V0IG1pdApkZXIgc3BlemllbGwgZ2VzY2hhZXJmdGVuIFN0aWNoIHVuZCBXZWctIEtsaW5nZQpzbyBzY2hhcmYsIGRhc3MgRG9sbHkgQnVzdGVycyBkYW5lYmVuIGF1c3NpZWh0IHdpZSBlaW5lCk11ZWxsdmVyYnJlbm51bmdzYW5sYWdlLgoKSW1lbXIgbm9jaHQgbmljaHQgZ2VudWcgPz8/CgpOYSBndXQsIGRhbm4gZ2lidCBlcyBkYXp1IG5vY2ggZGllIEdlbnVndHV1bmcsIGRhc3MgODAlIGRlciBFcnptYWdpZXIgc2ljaAp0aWVyaXNjaCBkcnVlYmVyIGFlcmdlcm4gd3VlcmRlbi4uLgoKV2FzIHNpZSBkYXp1IHR1biBtdWVzc2VuLi4uU2NoaWNrZW4gc2llIEtFSU4gR2VsZCwgc2llIGJyYXVjaGVuIGtlaW5lCktyZWRpdGthcnRlIE5FSU4gV2FlaGxlbiBTaWUgUmFudGFucGxhbiBmb3IgRGVwdXR5ICEhIQoKUmFudGFucGxhbiwgdW5kIGRhcyBFbGVuZCBmYWVuZ3QgZXJzdCByaWNodGlnIGFuLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnJldHQgdm9ybSBLb3BmIChTaWx2YW5hLCAxNi4gT2t0IDE5OTcsIDA3OjM5OjI5KToKSWNoIGhhYiBkZXJ6ZWl0IG9mZmVuYmFyIGVpbmUgbWl0dGVsc2Nod2VyZSBIb2x6aGFuZGx1bmcgdm9ybSBLb3BmLgpKZWRlbmZhbGxzIHNjaGxhZyBpY2ggbWljaCBtaXQgZWluZW0gcGh5c2lrYWxpc2NoZW4gUHJvYmxlbSBydW0gdW5kCmtyaWVncyBuaWNodCBnZWxvZXN0LiBWaWVsbGVpY2h0IGthbm4gbWlyIGphIGplbWFuZCAgaGVsZmVuLiA6KQoKQWxzbzogR2VnZWJlbiBzZWkgZWluIEtvbmRlbnNhdG9yIHVuZCBlaW4gV2lkZXJzdGFuZCwgaW4gUmVpaGUgZ2VzY2hhbHRldC4KRGVyIEtvbmRlbnNhdG9yIGhhdCBlaW5lIExhZHVuZywgc28gZGFzcyBkaWUgU3Bhbm51bmcgYW4gZGVuIEtvbmRlbnNhdG9yLQpBbnNjaGx1ZXNzZW4gVWMgYmV0cmFlZ3QgKGVyIHd1ZXJkZSBzaWNoIGFsc28gZW50bGFkZW4sIHdlbm4gbWFuIGlobiBrdXJ6LQpzY2hsb2Vzc2UpLiBOdW4gbGVndCBtYW4gYW4gZGllIEVuZGVuIGRlciBTY2hhbHR1bmcgKGFsc28gYW4gZWluZW0gCktvbmRlbnNhdG9yZW5kZSB1bmQgYW4gZWluZW0gV2lkZXJzdGFuZHNlbmRlKSBlaW5lIFNwYW5udW5nIGFuIC0gdW5kIHp3YXIgCnNvLCBkYXNzIGRpZSBFbnRsYWR1bmcgZGVzIEtvbmRlbnNhdG9ycyBOT0NIIFNDSE5FTExFUiBlcmZvbGdlbiBtdWVzc3RlLgpOdW4gZGFzIFByb2JsZW06IFdpZSBsYW5nZSBkYXVlcnQgZXMsIGJpcyBkZXIgS29uZGVuc2F0b3IgZWluZW4gYmVzdGltbXRlbgpTcGFubnVuZ3N3ZXJ0IGVycmVpY2h0IGhhdD8KU29sbHRlIGVpZ2VudGxpY2ggZ2FueiBlaW5mYWNoIHNlaW4sIG51ciAtIHdpZSBnZXNhZ3QgLSAgaWNoIGtvbW0gbmljaHQgZHJhdWYuCgogIFNpbHZhbmErCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQnJldHQgdm9ybSBLb3BmIChHbm9tZSwgMTYuIE9rdCAxOTk3LCAxMDowMTo1MSk6Cn4jISBybj1TaWx2YW5hIHJ0PTg3Njk4MDM2OSByZz1hbnplaWdlbgp+IyEgdGlkPTg3Njk4MDM2OQpkYSBkaWVzZXMgcHJvYmxlbSBlaW4gZS10ZWNobmlzY2hlcyBpc3QsIGR1ZXJmdGVuIGRpZSBmb3JtZWxuLCBkaWUgZHUKZGF6dSBicmF1Y2hzdCBpbiBqZWRlciBiZXNzZXJlbiBmb3JtZWxzYW1tbHVuZyBzdGVoZW4uCnNvIGF1cyBkZW0gc3RlZ3JlaWYgd3VlcmRlIGljaCBzYWdlbiwgZGFzcyAtIHdlbm4gVWdlcyA+PSBVYyAtIGVyIHNpY2ggZ2FyCm5pY2h0IGVudGxhZWR0LCBzb25kZXJuIHdlaXRlciBhdWZsYWVkdCB1bmQgbmFjaCA1IFRhdSB2b2xsIGF1ZmdlbGFkZW4gaXN0LiBFcwpzZWkgZGVubiwgZXMgaXN0IGVpbiBXZWNoc2Vsc3Ryb21rcmVpcywgc28gZGFzcyBkYXJhdXMgZWluIFRpZWZwYXNzIChvZGVyCndhciBlcyBlaW4gSG9jaHBhc3M/IHNvIGdlbmF1IHdlaXNzIGljaHMgbmV0IG1laHIpIGVudHN0ZWh0LiBEYW5uIGlzdCBkYXMKZ2FuemUgdm9uIGRlciBXZWNoc2Vsc3Ryb21mcmVxdWVueiBhYmhhZW5naWcgdW5kIHNvIHdlaXRlci4uLiB3aWUgZ2VzYWd0OgotPiBmb3JtZWxzYW1tbHVuZyA6KQoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQnJldHQgdm9ybSBLb3BmIChDYXR3ZWF6bGUsIDE2LiBPa3QgMTk5NywgMTA6MjQ6MTcpOgp+IyEgcm49R25vbWUgcnQ9ODc2OTg4OTExIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc2OTgwMzY5CkRhcyBzb2xsdGUgZXhwb25lbnRpZWxsIGZhbGxlbiwgYWxzbyBlXihBKnQpLCB3b2JlaSBBIG5lIEtvbnN0YW50ZSBpc3QuCldlbm4gaWNoIG1pY2ggcmVjaHQgZW50c2lubmUgc3RlaGVuIGRhIGlyZ2VuZHdpZSBkaWUgS2FwYXppdGFldCB1bmQgZGVyCldpZWRlcnN0YW5kIGRyaW4sIGljaCBnbGF1YiBBPTEvKFIqQyksIGJpbiBhYmVyIG5pY2h0IHNpY2hlci4KTWVpbiBUaXAgYWxzbzogVSh0KT1VKDApICogZV4odC8oUipDKSkKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQnJldHQgdm9ybSBLb3BmIChHbm9tZSwgMTYuIE9rdCAxOTk3LCAxMDo0MDo0NSk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9ODc2OTkwMjU3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc2OTgwMzY5Cm1hZ3N0IHJlY2h0IGhhYmVuLi4uIDopCgpnbk9tZSBoYXQgbmljaHQgYWxsZSBmb3JtZWxuIGltIGtvcHBlIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFtZW4gZ2VzdWNodCEgKEZyZXVuZCwgMjAuIE9rdCAxOTk3LCAwMDoxOTozNyk6CkhhbGxvIGtyZWF0aXZlIE11ZGRlciEKCkljaCBiZWtvbW1lIChpbiBSTCBuYXR1ZXJsaWNoIDotKSB6d2VpIGtsZWluZSBLYWV0emNoZW4uIEVpbmVuIEthdGVyIHVuZCBlaW5lCkthdHplLiBOdW4ga29lbm50IGlociBFdWNoIHZvcnN0ZWxsZW4sIHdpZSBzY2h3aWVyaWcgZGllIE5hbWVuc3dhaGwgaXN0LiBJY2gKc3VjaGUgbmF0dWVybGljaCBlaW4gbW9lZ2xpY2hzdCBwYXNzZW5kZXMgUEFFUkNIRU4uCgpCaXNoZXIga2FtZW4gd2lyIGF1ZjogQm9ubmllIHVuZCBDbHlkZS4gQWJlciBkaWUgaGF0dGVuIGphIGtlaW4gc2Nob2VuZXMKRW5kZS4uLgoKRGFtaXQgZXMgYXVjaCBlaW5lbiBBbnJlaXogZ2lidCwga3VyeiBuYWNoenVkZW5rZW46IERlcmplbmJpZ2UsIGRlciBkZW4KR2V3aW5uZXJ2b3JzY2hsYWcgbWFjaHQsIGJla29tbXQgYXVjaCBlaW4gUGhvdG8gaW4gUG9zdGVyZ3JvZXNzZSAoZmFsbHMgZXIKbWFnISA6LSkgenVnZXNjaGlja3QuCgpFaW4gRnJldW5kIC0gZGVyIGdlaXN0aWdlbiBFbGl0ZSB1bmQgZGVtIGVsaXRhZXJlbiBFcmZpbmR1bmdzZ2Vpc3QgdmVydHJhdWVuZC4KOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZ2VzdWNodCEgKFJpa3VzLCAyMC4gT2t0IDE5OTcsIDAwOjI5OjUyKToKfiMhIHJuPUZyZXVuZCBydD04NzcyOTk1Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKSGkgRnJldW5kLAptZWluIFZvcnNjaGxhZyB3YWVyZSBUQU1BIHVuZCBHT1RDSEkgb2RlciBoYWx0IEdvdGNoYSwga2xpbmd0IGJlc3NlciBiZWltCkVpbmZhbmdlbiA6KQoKUmlrdXMsIHNlbGJlciBzY2hvbiBpbW1lciBLYXR6ZW4gZ2VoYWJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiAoQXJrLCAyMC4gT2t0IDE5OTcsIDA5OjU2OjA3KToKSG0sIHdpZSB3YWVyZSBlcyBtaXQgQ2FzdG9yIHVuZCBQb2xsdXggKG5pY2h0IHp1IHZlcndlY2hzZWxuIG1pdCAKQ2FzdHJvcC1SYXV4ZWwpLgoKV2l0emlzY2ggZmluZCBpY2ggbm9jaCAoaXMgYWJlciBhbnNpY2h0c3NhY2hlKQpIYWVuc2VsIHVuZCBHcmV0ZWwgOi0pCgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiBnZXN1Y2h0ISAoSmFzcGVyLCAyMC4gT2t0IDE5OTcsIDEwOjA3OjI4KToKfiMhIHJuPUZyZXVuZCBydD04NzcyOTk1Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKa2F0emVuIHNpbmQgc3RpbmtlbmRlLCBla2xpZ2UgdGllcmUuIHNjaGFmZiBkaXIgbGllYmVyIHp3ZWkga251ZGRlbGlnZQpodW5kZSBhbi4KCgoKSmFzcGVyIHphaGx0IGZ1ZXIgamVkZSB0b3RlIEthdHplIDUgbWFyayA7UAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hbWVuIGdlc3VjaHQhIChIYXJkaWwsIDIwLiBPa3QgMTk5NywgMTE6NTQ6NTYpOgp+IyEgcm49SmFzcGVyIHJ0PTg3NzMzNDg0OCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwoKV2llIHdhZXJlIGVzIG1pdCBXYW5uZSB1bmQgRWlja2VsPyA6LSkKRGEgaXN0IGVzIG5hdHVlcmxpY2ggc2Nod2VyLCBmZXN0enVzdGVsbGVuLCB3ZWxjaGVzIGRpZUthdHplIHVuZCB3ZWxjaGVzIGRlcgpLYXRlciBpc3QuCk9kZXIgd2llIHdhZXJlIGVzIG1pdCBKb2YgdW5kIExhcmlzc2EgPwpPZGVyIG1pdCBTb25ueSB1bmQgQ2hlciA/CgotPiBhYiBuYWNoIC9zY2htYXJybi9rYXR6ZW4KCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZ2VzdWNodCEgKFFpdGVzcywgMjAuIE9rdCAxOTk3LCAxMTo1NTo1NCk6Cn4jISBybj1GcmV1bmQgcnQ9ODc3Mjk5NTc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Cgp3YXMgaGFlbHRzdCBkdSB2b24gZXJuaWUgdW5kIGJlcnQgPwoKUUkqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hbWVuIGdlc3VjaHQhIChKYXNwZXIsIDIwLiBPa3QgMTk5NywgMTE6NTU6NTgpOgp+IyEgcm49SGFyZGlsIHJ0PTg3NzM0MTI5NiByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3Nwp3aWUgd2FlcnMgbWl0IG5vcmRrb3JlZ2EgdW5kIHN1ZWRrb3JlZ2EKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiBnZXN1Y2h0ISAoUWl0ZXNzLCAyMC4gT2t0IDE5OTcsIDExOjU2OjQ5KToKfiMhIHJuPUZyZXVuZCBydD04NzcyOTk1Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKb2RlciBwaWxsZSB1bmQgcGFsbGUKClFJKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmFtZW4gZ2VzdWNodCEgKEphc3BlciwgMjAuIE9rdCAxOTk3LCAxMTo1Nzo1MCk6Cn4jISBybj1RaXRlc3MgcnQ9ODc3MzQxNDA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Cm9kZXIgaG90eiB1bmQgcG90egoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmFtZW4gZ2VzdWNodCEgKFFpdGVzcywgMjAuIE9rdCAxOTk3LCAxMTo1ODoyMik6Cn4jISBybj1KYXNwZXIgcnQ9ODc3MzQxNDcwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CnNwcmljaCA6IEhvdHonbidQbG90egoKUUkqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmFtZW4gZ2VzdWNodCEgKEhhdGUsIDIwLiBPa3QgMTk5NywgMTE6NTk6MTQpOgp+IyEgcm49UWl0ZXNzIHJ0PTg3NzM0MTUwMiByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwpBbHNvIHdhcnVtIHNvIGtvbXBsaXppZXJ0Li4uCgogICAgIkljaCIgdW5kICJEdSIgOi0pCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmFtZW4gZ2VzdWNodCEgKEhpZ2hsYW5kZXIsIDIwLiBPa3QgMTk5NywgMTI6Mjg6MjIpOgp+IyEgcm49SmFzcGVyIHJ0PTg3NzM0MTM1OCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwpXaWUgd2FlcmUgZXMgbWl0IENvcmVnYSB1bmQgVGEoYmJ8cClzPyA6PgogIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiBnZXN1Y2h0ISAoTWFuZ28sIDIwLiBPa3QgMTk5NywgMTM6MTY6MjkpOgp+IyEgcm49SmFzcGVyIHJ0PTg3NzMzNDg0OCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3Nwp3aWUgd2FlciBtaXQgb25rZWwgZGl0dG1leWVyIHVuZCB2YWxlbnNpbmE/CgpzY2hvbiBnZWhvZXJ0IHVuZCB1bmQgZ2VsYWNodC4KCk1hbmdvLCBkYXMgaXN0IGFsbGVzIG51ciBnZWtsYXV0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiBnZXN1Y2h0ISAoU2VtaXJhLCAyMC4gT2t0IDE5OTcsIDE4OjEyOjI3KToKfiMhIHJuPUZyZXVuZCBydD04NzcyOTk1Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKd2llIHdhZXJzIG1pdAoKbWlleiB1bmQgbWF1egoKcGF0IHVuZCBwYXR0YWNob24KCnBpbmcgdW5kIHBvbmcKCmdhcmZpZWxkIHVuZCBuZXJtYWwKClNlbWlyYSAqcGxhcHBlcm5kKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hbWVuIGdlc3VjaHQhIChFbmd5d3VjaywgMjAuIE9rdCAxOTk3LCAxODoxNzowNSk6Cn4jISBybj1GcmV1bmQgcnQ9ODc3Mjk5NTc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Ck5hLCBkYSBzY2hhdSBEaWNoIGRvY2ggbnVyIG1hbCBpbSBNdWQgdW0uIFdpZSB3YWVycyB6LkIuIG1pdCBFbmd5d3VjayB1bmQKU2VtaXJhPyBBbHRlcm5hdGl2IEJvaW5nIHVuZCBIb2JvLCBKb2YgdW5kIExhcmlzc2Egd2FyZW4gc2Nob24gYWxzIFZvcnNjaGxhZywKSGF0ZSB1bmQgQXVncmEsIGV0Yy4gZXRjLiBldGMuLi4gV2VubiBEdSBuYWNoIGRlbSBTY2hlbWEgd2VpdGVybWFjaHN0LCBoYXN0IER1CmJhbGQgMTI0MzEgdW5kIG1laHIgVm9yc2NobGFlZ2UsIGRhIHNvbGx0ZSBkb2NoIHdhcyBwYXNzZW5kZXMgZHJ1bnRlciBzZWluLgoKRW5neSoKClAuUy46IEVpbmVzIHVuc2VyZXIgTWVlcnNjaHdlaW5jaGVuIGhlaXNzdCB1ZWJyaWdlbnMgR251bGxpIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZ2VzdWNodCEgKEFzbW9kaXMsIDIwLiBPa3QgMTk5NywgMjA6MzM6NTcpOgp+IyEgcm49RnJldW5kIHJ0PTg3NzI5OTU3NyByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwpDYWVzYXIgdW5kIEtsZW9wYXRyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiBnZXN1Y2h0ISAoU2lsdmFuYSwgMjAuIE9rdCAxOTk3LCAyMDozNDo1MCk6Cn4jISBybj1Fbmd5d3VjayBydD04NzczNjQyMjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKY2FsdmluICYgaG9iYmVzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmFtZW4gZ2VzdWNodCEgKEFuYWtpbiwgMjAuIE9rdCAxOTk3LCAyMjoxMzoyMyk6Cn4jISBybj1TaWx2YW5hIHJ0PTg3NzM3MjQ5MCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwoKS2luZyAmIEtvbmcgPwoKQW5ha2luLiBIYXQgendlaSBSZWNobmVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmFtZW4gZ2VzdWNodCEgKE9ya3RvZXRlciwgMjAuIE9rdCAxOTk3LCAyMzoxMzowNyk6Cn4jISBybj1BbmFraW4gcnQ9ODc3Mzc4NDAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Ck1vcmdlbiB1bmQgR3JhdWVuIGR1ZXJmdGVuIGR1ZSBiZWlkZW4gZWluemlnZW4gaW4gRnJhZ2Uga29tbWVuZGVuIE5hbWVuIHNlaW4uCgpPcmtULgoKKnNjaG1hcnJuIG9mZioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiAoQmxvb2R5aGFycnksIDIxLiBPa3QgMTk5NywgMDA6NDg6NDgpOgp+IyEgcm49QXJrIHJ0PTg3NzMzNDE2NyByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzMzNDE2NwpGdWVyIENhc3Ryb3AgdW5kIFJhdXhlbCB3YWVyZSBpY2ggYXVjaCBuaWNodC4KSWNoIG1vZWNodGUgbmljaHQsIGRhc3MgS2F0emVuIHNvIGhlaXNzZW4sIHdpZSBkaWUgU3RhZHQgaW4gZGVyIGljaCB3b2huZSEKCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hbWVuIChIYXJkaWwsIDIxLiBPa3QgMTk5NywgMTA6MzE6MzEpOgp+IyEgcm49Qmxvb2R5aGFycnkgcnQ9ODc3Mzg3NzI4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3MzM0MTY3CgpBbHNvIEJsb29keWhhcnJ5LCBhbHMgQ2FzdHJvcGVyIGhhZXR0ZXN0IER1IGRhbm4gYWJlciBzY2hyZWliZW4gbXVlc3NlbgoKImljaCBtb2VjaHRlIG5pY2h0LCBkYXNzIEthdHplbiBzbyBoZWlzc2VuIHR1ZW4sIHdpZSBkaWUgU3RhZHQgYXVzIGRlciB3byBpY2gKaGVya29tbWUsIHdvbGwuIgoKSGV1dGUgZ25hZWRpZzoKCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZ2VzdWNodCEgKFllbmRpLCAyMS4gT2t0IDE5OTcsIDExOjE4OjM5KToKfiMhIHJuPUZyZXVuZCBydD04NzcyOTk1Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKCk5hamEsIGtsYXNzaXNjaGVyIE5hbWUgZnVlciBlaW4gUGFlcmNoZW4gaXN0IG5hdHVlcmxpY2ggIlJvbWVvICYgSnVsaWEiLi4uCkFsdGVybmF0aXYgYXVjaCBhbHMgIlJvbWVhICYgSnVsaXVzIi4KT2RlciB3aWUgd2FlcnMgbWl0ICJEaSAmIERvZGkiPwpPZGVyLCBmdWVyIGRpZSBwcm9ncmFtbWllcmVuZGVuIEthZXNlZnJldW5kZSB1bnRlciB1bnMsICJBdmEgJiBFZGFtIj8KIkZyZXVkICYgTGVpZCI/ICBPZGVyLCBqZSBuYWNoIEZhcmJlLCAiU29ubmUgJiBNb25kIiBvZGVyICJTb25ueSAmIE1vbmkiPwoiU2llZ2ZyaWVkICYgS3JpZW1oaWxkIj8gIk1lcnJ5ICYgR29sZGlsb2NrcyI/IAoKClllbmRpCiAgICAgICAgZnJhZ3QgbWFsIGhlcnVtLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmFtZW4gZ2VzdWNodCEgKEFuYXRvbCwgMjEuIE9rdCAxOTk3LCAxMTozMzo1MSk6Cn4jISBybj1TZW1pcmEgcnQ9ODc3MzYzOTQ3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CkljaCBoYWV0dGUgbm9jaCAgQmxhY2tqYWNrIHVuZCBab2JlbCAgYW56dWJpZXRlbi4uLgoKVHJ1ZSBGb29sLApBbmF0b2wgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOYW1lbiBnZXN1Y2h0ISAoWWFudHJvLCAyMS4gT2t0IDE5OTcsIDEyOjA5OjU4KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODc3MzcyNDkwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CkZyZXVuZCB1bmQgRmVpbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiBnZXN1Y2h0ISAoU251Z2dsZSwgMjEuIE9rdCAxOTk3LCAxMjoyOToxNCk6Cn4jISBybj1GcmV1bmQgcnQ9ODc3Mjk5NTc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CkhtbW0sIHdpZSB3YWVycyBtaXQKClJvYmluc29uIHVuZCBGcmVpdGFnCkFscGhhIHVuZCBPbWVnYQpNYXggdW5kIE1vcml0eiAobmFqYSwgaXN0IHZpZWxsZWljaHQgYXVjaCBlaW4gc2NobGVjaHRlcyBPbWVuKQpSb211bHVzIHVuZCBSZW11cyAob2J3b2hsIGRhcyBiZWlkZXMgSnVuZ3Mgd2FyZW4pCkRyIEpla3lsbCB1bmQgTXIgSGlkZSAoYXVjaCBKdW5ncyB1bmQgbm9jaCBkYXp1IGVpbiB1bmQgZGVyc2VsYmUsIGRlbm5vY2gKaGF0IGVzIG5lbiBnZXdpc3NlbiBSZWl6IDotKQpCcmFja2VuIHVuZCBSZWJla2thIChhdWNoIHdlbm5zIGtlaW5lIE1hdWx3dWVyZmUgc2luZCkKUm9iaW4gdW5kIE1hcmlhbgpQZXRlciBQYW4gdW5kIC4uLiAob2ggd2VoLCAqZ3J1ZWJlbCogd2llIGhpZXNzIGRpZSBGZWUgZG9jaCBnbGVpY2g/IC0gaWNoCmdsYXViIGljaCBnZWggaW5zIFJlbnRuZXJoZWltKQpQdWVua3RjaGVuIHVuZCBBbnRvbgoKR2VudWcgZnVlciBoZXV0LCBpY2ggZ2VoIGpldHp0IGVzc2VuIDotKQpTbnVnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZ2VzdWNodCEgKEJhbGlvbiwgMjEuIE9rdCAxOTk3LCAxMjozMDoxMSk6Cn4jISBybj1GcmV1bmQgcnQ9ODc3Mjk5NTc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CldpZSBXYWVycyBtaXQgUm9tZW8gdW5kIEp1bGlhLiAoSGF0dGVuIGFsbGVyZGluZ3MgYXVjaCBrZWluIGd1dGVzIEVuZGUpCk9kZXIgbWl0IEhlaW5vIHVuZCBIYW5uZWxvcmUuIChXdWVyZGUgaWNoIHBlcnNvZWxuaWNoIHZvbiBhYnJhdGVuKQpEYW5uIGdhZWJlIGVzIGRhIG5vY2ggZGllIEdyaWVjaGlzY2hlbiBHb2V0dGVyIFpldXMgdW5kIEhlcmEgKG9id29obCBIZXJhCnppZW1saWNoIG1pZXMgaXN0KQoKQXVmIGJlc3NlcmUgVm9yc2NobGFlZ2UgaG9mZmVuZCBCYWxpb24gLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiBnZXN1Y2h0ISAoR25vbWUsIDIxLiBPa3QgMTk5NywgMTM6Mjc6MDIpOgp+IyEgcm49QmFsaW9uIHJ0PTg3NzQyOTgxMSByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwphbHNvOgoKa2xhc3Npc2NoOiB3dXJkZW4gc2Nob24gdmllbGUgZ2VuYW5udC4uLiAKCnRyaWNrcmVpY2g6IGthcnRlciBrYXJsbyB1bmQgbWlja3k/IChvYiBkaWUgc2ljaCBkYW5uIGF1Y2ggc28gamVnZW4gdW5kCiAgICAgICAgICAgIGhhc3NlbiB3ZXJkZW4/ICpncmlucyopCiAgICAgICAgICAgIGZpeCB1bmQgZm94eT8gKG5pY2ggc28gZG9sbGUsIG9kZXI/KQogICAgICAgICAgICBkb25hbGQgdW5kIGRhaXN5PyAoc2Nob24gYmVzc2VyLi4uKQoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hbWVuIGdlc3VjaHQhIChBbGJvaW4sIDIxLiBPa3QgMTk5NywgMTc6MDM6MzQpOgp+IyEgcm49R25vbWUgcnQ9ODc3NDMzMjIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CmljaCB3YWVyZSBmdWVyIApTb2tyYXRlcyB1bmQgWGFudGhpcHBlCgpBbGJvaW4gaGF0IHdpZWRlciBtYWwgbnVlciBCbG9lZHNpbm4gaW0gS29wcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiBnZXN1Y2h0ISAoQXNtb2RpcywgMjEuIE9rdCAxOTk3LCAxNzo0OTo1NSk6Cn4jISBybj1TbnVnZ2xlIHJ0PTg3NzQyOTc1NCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwpEaWUgRmVlIGhlaXNzdCBHbG9lY2tjaGVuIQoKIEFzbW9kaXMgKGhhdCAnSG9vaycgZ2VzZWhlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hbWVuIGdlc3VjaHQhIChKYW5pdHplLCAyMS4gT2t0IDE5OTcsIDIwOjE4OjUzKToKfiMhIHJuPUFzbW9kaXMgcnQ9ODc3NDQ4OTk1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Cm1pciBnZWZhZWhsdCBHbm9tZSdzIFZvcnNjaGxhZyBnYW56IGd1dCwgaWNoIGZpbmQsIGRpZSBiZWlkZW4gc29sbHRlbgpEb25hbGQgdW5kIERhaXN5IGhlaXNzZW4uCgpKYW5pY2UgaGF0IGhldXQgbmUgcm9tYW50aXNjaGUgQWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmFtZW4gZ2VzdWNodCEgKFF1ZW5naXN0dSwgMjEuIE9rdCAxOTk3LCAyMDoyMDowNSk6Cn4jISBybj1Bc21vZGlzIHJ0PTg3NzQ0ODk5NSByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwouLi4gdW5kIGltIGVuZ2xpc2NoZW4gT3JpZ2luYWwgaGVpc3N0IHNpZSAiVGlua2VyYmVsbCIuCk1laW4gTmFtZW5zdGlwIGZ1ZXIgZGllIEthdHplbjoKIktudWRkZWwiIHVuZCAiRWlzYmFlciIuCgpHcnVzcywgUXVlbmcqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOYW1lbiBnZXN1Y2h0ISAoQXZhbG9uLCAyMS4gT2t0IDE5OTcsIDIxOjU2OjUyKToKfiMhIHJuPUFuYXRvbCBydD04Nzc0MjY0MzEgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKRHUgbWVpbnN0IGJlc3RpbW10IDE3IHVuZCA0LgoKbGcsIGF2YS4tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYW1lbiBnZXN1Y2h0ISAoS2FydG9mZmVsLCAyMS4gT2t0IDE5OTcsIDIyOjQ5OjU3KToKfiMhIHJuPUF2YWxvbiBydD04Nzc0NjM4MTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKSG1tLCB3aWUgd2FlcidzIG1pdCBUb21hcyBPJ01hbGxleSB1bmQgRHVjaGVzc2U/CkJlcm5oYXJkIHVuZCBCaWFuY2EgKHdhcmVuIHp3YXIgTWFldXNlLCBhYmVyIGVnYWwpCkZyZWQgdW5kIFdpbG1hCkJhcm5leSB1bmQgQmV0dHkKUGViYmxlcyB1bmQgQmFtYmFtClN1c2kgdW5kIFN0cm9sY2gKCkthcnRvZmZlbCAtIGZhZWxsdCBuaXggbWVociBlaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hbWVuIGdlc3VjaHQhIChFaXNpLCAyMi4gT2t0IDE5OTcsIDAwOjEwOjIzKToKfiMhIHJuPUdub21lIHJ0PTg3NzQzMzIyMiByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwpobSwgd2llIHdhZXJzIG1pdAoKSGVsbXV0IHVuZCBUaGVvLCBNYXR0aGFldXMgdW5kIE1laWVyIG9kZXIgc28/CgpFaXNpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYW1lbiBnZXN1Y2h0ISAoTW9yZ290aCwgMjIuIE9rdCAxOTk3LCAwNzoxODoxOSk6Cn4jISBybj1RdWVuZ2lzdHUgcnQ9ODc3NDU4MDA1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CldpZSB3YWVycyBkZW5uIG1pdCAnS2FldCcgdW5kICdXaWVzZWwnID8Kb2RlciAnQmlsbCcgdW5kICdHYXRlcycKTSo/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOYW1lbiBnZXN1Y2h0ISAoQW5jYWxhZ29uLCAyMi4gT2t0IDE5OTcsIDA5OjA1OjA5KToKfiMhIHJuPUthcnRvZmZlbCBydD04Nzc0NjY5OTcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKS251ZGRlbHMhCkhtbSwgd2FzIGZhZWxsdCBtaXIgZGVubiBhbGxlcyBzbyBlaW4uLi4uCgpHaW5nZXIgdW5kIEZyZWQKUG9yZ3kgdW5kIEJlc3MKUGFtcGVsIHVuZCBNdXNlCkFuY2FsYWdvbiB1bmQgU2VtaXJhIChhYmVyIG51ciB3ZW5ucyByaWNodGlnZSBLbnVkZGVsa2F0emVuIHNpbmQgOikKR2FiZWwgdW5kIGxvZWZmZWwgKC0+IFNjaG1hcnJuIDopCgpobW0sIHJlaWNodCBlcnN0bWFsLi4uLi4uLmljaCB3ZXJkIGltIGxhdWZlIGRlcyBUYWdlcyBub2NoIGVpbiBwYWFyIGlkZWVuCnNhbW1lbG4uLi4KCkJpcyBkZW1uYWV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuY2FsYWdvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTmFtZW4gZ2VzdWNodCEgKEdsb2luc29uLCAyMi4gT2t0IDE5OTcsIDA5OjEyOjQwKToKfiMhIHJuPUFuY2FsYWdvbiBydD04Nzc1MDM5MDkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKTnVkZWwgJiBEdWRlbCA/CkRpZGVsICYgTW9lcHMgPwpOdWZmZWwgdW5kIEdudXJtc2VsID8KCk51ciB1bSBtYWwgZXR3YXMgRmFyYmUgcmVpbnp1YnJpbmdlbiA6KSBEZXIgSWdlbCwgZGVuIGljaCBnZXN0ZXJuCnRlbXBvcmFlciBhdWZnZW5vbW1lbiBoYWJlLCBoYXQgZGVuIGxldHp0ZW4gTmFtZW4gYWJnZWZhc3N0LiBEYW5uCndpcmQgZXIgZnVlciBlaW4gS2F0ZXJjaGVuIGxvY2tlciBhdXNyZWljaGVuIDstKQoKR2xvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRyaW5nZW5kIGdlc3VjaHQhISEhIChBbmNhbGFnb24sIDIyLiBPa3QgMTk5NywgMDk6Mjg6MTQpOgpLbnVkZGVscyEKR2lidHMgaGllciB6dWZhZXdsbGlnIGplbWFuZGVuLCBkZXIgRG8gb2RlciBGUiB2b3JtaXR0YWdzIHp1ciBTcGllbCA5NyBmYWVocnQKdW5kIGFuIEJpZWxlZmVsZCB2b3JiZWlrb21tdD8KSWNoIHd1ZXJkIG5hZW1saWNoIGdlciBtYWwgd2VpZGVyIGRhIHJlaW5zY2hhdWVuLCBuYWNoZGVtcyBsZXR6dGVzIEphaHIgbmljaHQKZ2VrbGFwcHRyIGhhdC4uLi4uLi4KVW5kIFp1ZyBpc3QgbWlyIFp1IHRldWVyLiBBdXNzZXJkZW0gaXN0J3MgYWxsZWluZSBsYW5nd2VpbGlnLi4uLiA6KQpXZXIgd2FzIHdlaXNzLCBtYWlsIG1pY2ggYml0dGUuLi4uLgoKU2VpbmUgbWFpbGJveCBiZWxhdWVybmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuY2FsYWdvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2F0emVuIChMYXJpc3NhLCAyMi4gT2t0IDE5OTcsIDA5OjMzOjQ2KToKRlJFVU5EJ3MgS2F0emVuIGhhYmVuIG51biBzY2hvbiBlaW5lbiBOYW1lbiwgc2llCmhlaXNzZW4gUnVzdHkgdW5kIERpYW5hIChEYXMgaXN0IG51biBiZXN0aW1tdCBmYWxzY2ggZ2VzY2hyaWViZW4sIHNvcnJ5KQpKZWRlbmZhbGxzIGRpZSB6d2VpIGF1cyBkZW0gU3RhcmxpZ2h0IEV4cHJlc3Mgc2FndCBGcmV1bmQuCgpMYXJpLCBSdXN0eXMgUGF0ZW5mcmF1Y2hlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEthdHplbiAoV2FyZ29uLCAyMi4gT2t0IDE5OTcsIDExOjE0OjE2KToKfiMhIHJuPUxhcmlzc2EgcnQ9ODc3NTA1NjI2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3NTA1NjI2CkFiZXIgc28gd2llIEZyZXVuZHMgSGFlbmRlIGF1c3NhaGVuLCB3YWVyZW4gJ0phY2snIHVuZCAnUmlwcGVyJyBwYXNzZW5kZXIgOikKICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hbWVuIChCbG9vZHloYXJyeSwgMjIuIE9rdCAxOTk3LCAxMjoxODo0MCk6Cn4jISBybj1IYXJkaWwgcnQ9ODc3NDIyNjkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3MzM0MTY3CkphIGphLiBJcmdlbmR3byBkcmFuIG1lcmt0IG1hbiBoYWx0IHNjaG9uLCBkYXNzIGljaCBrZWluIGdlYnVlcnRpZ2VyIFJ1aHJpCmJpbi4gQWJlciBpY2ggc3RyZW5nIG1pciBtYWwgYW4sIHdvbGw/CgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTmFtZW4gZ2VzdWNodCEgKEJsb29keWhhcnJ5LCAyMi4gT2t0IDE5OTcsIDEyOjIzOjI5KToKfiMhIHJuPU1vcmdvdGggcnQ9ODc3NDk3NDk5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Ck9kZXIgJ1BsdWcnIHVuZCAnUGxheScuCldhaGx3ZWlzZSBhdWNoICdQbHVnJyB1bmQgJ1ByYXknLgoKYmgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2F0emVuIChSb2NodXMsIDIyLiBPa3QgMTk5NywgMTY6MDg6MDcpOgp+IyEgcm49V2FyZ29uIHJ0PTg3NzUxMTY1NiByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzUwNTYyNgpEaWUgc2FoZW4gZWhlciBzbyBhdXMgYWxzIHdhZXJlbgonRnJlZGR5JyB1bmQgJ0tydWVnZXInIGFtIFdlcmtlIGdld2VzZW4gOi0pCgogIFJvY2h1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS2F0emVuIChSYWZmaSwgMjIuIE9rdCAxOTk3LCAyMDoxNjozMik6Cn4jISBybj1Sb2NodXMgcnQ9ODc3NTI5Mjg3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3NTA1NjI2CgpLYXR6IHVuZCBNYXVzID8KCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2F0emVuIChGcmV1bmQsIDI0LiBPa3QgMTk5NywgMTc6NDQ6NDYpOgp+IyEgcm49TGFyaXNzYSBydD04Nzc1MDU2MjYgcmc9YW56ZWlnZW4KfiMhIHRpZD04Nzc1MDU2MjYKClZpZWxlbiBEYW5rIGZ1ZXIgZGllIHJlZ2UgVGVpbG5haG1lLiA6LSkKCkljaCBtdXNzIGFiZXIgbGVpZGVyIGdlc3RlaGVuLCBkYXNzIHNvIGVpbmUgTmFtZW5zd2FobCB2aWVsIHNjaHdpZXJpZ2VyCmlzdCwgYWxzIGljaCBlcyBtaXIgdm9yZ2VzdGVsbHQgaGFiZS4gVW5kIGRpZSBTY2h3aWVyaWdrZWl0IHN0ZWlndApwcm9wb3J0aW9uYWwgbWl0IGRlciBBbnphaGwgZGVyIExldXRlLCBkaWUgbWFuIHVtIGlocmUgTWVpbnVuZyBmcmFndC46LS8KCkd1dCwgZGllIFNhY2hlIGlzdCBhdXNnZXN0YW5kZW4gKHdpZSBMYXJpc3NhIHNjaG9uIHNjaHJpZWIpIHVuZCBkaWUgYmVpZGVuCmhlaXNzZW4gUnVzdHkgdW5kIERpbmVyLiAoRGllIGp1bmdlIERhbXBmbG9rIHVuZCBkZXIgU3BlaXNld2FnZW4gYXVzIGRlbQpNdXNpY2FsIFN0YXJsaWdodCBFeHByZXNzLikgVGphLCBkYSBpY2ggYWJlciBkZW4gS2F0emVuZmFucyB1bnRlciBFdWNoCmtlaW5lIHNvIGdyb3NzZSBFbnR0YWV1c2NodW5nIGJlcmVpdGVuIG1vZWNodGUsIGJla29tbXQgamVkZXIgKmVjaHRlKgpLYXR6ZW5mYW4gZWluIFBvc3RlciB6dWdlc2NoaWNrdC4gQml0dGUgc2NocmVpYnQgbWlyIG5vY2ggbWFsIGVpbmUKa3VyemUgTWFpbCwgbWl0IFJMLUFkcmVzc2UuIFVuZCB3aXJrbGljaCBudXIsIHdlbm4gaWhyIGRhcyBUZWlsCm5hY2hoZXIgbmljaHQgbnVyIHVudGVycyBCZXR0IGxlZ3QsIGRhZnVlciBpc3QgZXMgc29uc3QgenUgdGV1ZXIuIDotKQoKRWluIGt1bHR1cmVsbCBhbmdlaGF1Y2h0ZXIgS2F0emVuRlJFVU5ELCBkZXIgc2Nob24gMTAgbWFsIGluIFN0YXJsaWdodCB3YXIuCgpQLlMuOiBCb2luZywgZGVyICJibG9lZGUiIFRocmVhdCBpc3QgamV0enQgenUgRW5kZS47LSkpKSkpClAuUy4yOiBJY2ggZmFuZCBkZW4gVGhyZWF0IG5pY2h0IHNjaGxlY2h0LCB3ZW5uIG1hbiBkaWUgQXJ0aWtlbGFuemFobAp1bmQgZGllIEVudGdsZWlzdW5nZW4gdmVyZ2xlaWNodC4gQmVpIGFuZGVyZW4gVGhlbWVuIHNpZWh0IGVzIG1pdCBkZW0KVG9uZmFsbCB1bmQgZGVtIFJlc3Bla3Qgdm9yIGFuZGVyZW4gTWVpbnVuZ2VuIGRldXRsaWNoIHNjaGxlY2h0ZXIgYXVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLYXR6ZW4gKEd1bGR1a2F0LCAyNy4gT2t0IDE5OTcsIDEyOjU4OjM0KToKfiMhIHJuPUZyZXVuZCBydD04Nzc3MDc4ODYgcmc9YW56ZWlnZW4KfiMhIHRpZD04Nzc1MDU2MjYKeGRvIHphcCBrYXR6ZTsgemFwIGthdGVyOyBpc3MgbGVpY2hlOyBzYWcgYmVpbGVpZApEaWVzZW4gdGhyZWFkIGhhdHRlbiB3aXIgdm9yIHp3ZWkgamFocmVuIHNjaG9uIG1hbCwgaWNoIGhhYiBhdWNoIG5hbWVuIGZ1ZXIKZWluIHJlY2huZXJwYWFlcmNoZW4gZ2VzdWNodC4gYmVpIHVucyBoYXQgc2ljaCBkYW5uIGVybmllIHVuZCBiZXJ0CmR1cmNoZ2VzZXR6dCwgd2FzIGRlbiB2b3J0ZWlsIGhhdHRlLCBkYXNzIGRpZSBQQ3MgaW0gbmV0endlcmsgZGFubiBhdWNoIGFsbGUKdW1iZW5hbm50IHd1cmRlbjoga2VybWl0LCBvc2NhciwgZ3JvYmksIGZyYWdnbGUsIGRvb3plciwgYmlibyBldGMuCmdkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZ2VzdWNodCEgKEppbWRpZ3JpeiwgMjguIE9rdCAxOTk3LCAwNDowMzo1MCk6Cn4jISBybj1GcmV1bmQgcnQ9ODc3Mjk5NTc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Ck1vaW4sCgpIYXJvbGQgJiBNYXVkZSB3YWVyIG5pY2h0IG9yaWdpbmllbGwgZ2VudWcsCmRlc2hhbGIgbWVpbiBWb3JzY2hsYWc6CiAgRmluc3RlciBTaW5pc3RlciAmIEZpbnN0ZXIgRGV4dGVyIAoKKGVpbiBGbGVwaSBmdWVyIGRlbiBkZXIgd2Vpc3Mgd29oZXIgZGFzIGtvbW10KQoKQ2lhbywKIEppbSBEaUdyaXoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmFtZW4gZ2VzdWNodCEgKFNpbHZhbmEsIDI4LiBPa3QgMTk5NywgMDg6MTc6NTQpOgp+IyEgcm49SmltZGlncml6IHJ0PTg3ODAwNzgzMCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzI5OTU3NwpJY2ggbWFnIG1pY2ggdGFldXNjaGVuLCBhYmVyIGluIGRlbiBDaHJvbmlrZW4gZGVzIHNjaHdhcnplbiBNb25kZXMgZ2lidHMgCmRpZSBhdWNoIC0gbnVyIHdhZXJlbiBkYXMgZGFubiBiZWlkZSBLZXJscyAtIGFlaCAtIG9kZXIgc28gYWVobmxpY2guIFdlaXNzCm1hbiBiZWkgZGVuIEt1dHRlbnRyYWVnZXJuIGphIG5pY2h0IHNvb28gZ2VuYXUuCiAgU2lsdmFuYSAtPiBTY2htYXJybgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiBnZXN1Y2h0ISAoTW9yZ290aCwgMjguIE9rdCAxOTk3LCAwODoyNTo1Nyk6Cn4jISBybj1KaW1kaWdyaXogcnQ9ODc4MDA3ODMwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3Cldhc3RlbGFuZCAhISEKRGFzIGdyb2Vzc3RlIEVuZHplaXRnYW1lIEVWRVIgISEhIQpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmFtZW4gZ2VzdWNodCEgKFJhZmZpLCAyOC4gT2t0IDE5OTcsIDE0OjE0OjI5KToKfiMhIHJuPU1vcmdvdGggcnQ9ODc4MDIzNTU3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CgpEYW5uIGthdWYgRGlyIHNjaGxldW5pZ3N0IEZhbGxvdXQgKFdhc3RlbGFuZCBJSSkuCk51bGwgQWVuZGVydW5nZW4gYW0gc3BpZWxwcmluemlwLCBudXIgWmVpdGdlbWFlc3NlIFRlY2huaWsgKFNjaG9lbmVyZSBHcmFmaWspLgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmFtZW4gZ2VzdWNodCEgKE1vcmdvdGgsIDI4LiBPa3QgMTk5NywgMTQ6MzQ6MjMpOgp+IyEgcm49UmFmZmkgcnQ9ODc4MDQ0NDY5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3Mjk5NTc3CldpZSB3byB3YXMgPz8/ICoqZ2VpZmVyKiogKipzYWJiZXIqKiAKV2VsY2hlciBIZXJzdGVsbGVyLCB3ZWxjaGVzIFN5c3RlbSwgd2llIHRldWVyPwpIQUJFTiBXSUxMICEhISEhISEhCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptaWRsaWZlIGNyaXNpcyAoU2VtaXJhLCAyOC4gT2t0IDE5OTcsIDE4OjQwOjE1KToKaWNoIHdlcmRlIGFsdC4uLi4KCmljaCB3ZXJkZSBqYSBzb29vb29vIGFsdC4uLgoKdW5kIHdhcyBkYXMgc2NobGltbXN0ZSBpc3QsIGRhcyBnYW56ZSBhdWNoIG5vY2ggaW4gcmwgOygKCkRhIGhhYiBpY2ggYmVzY2hsb3NzZW4sIGRhc3MgbmljaHQgbnVyIGljaCBsZWlkZW4gc29sbCwgc29uZGVybiBhdWNoIG1laW4KYnJpZWZ0cmFlZ2VyLi4uYWxzbywgd2VyIHNjaG9uIGltbWVyIG1hbCB1bnNpbm5pZ2UgUG9zdGthcnRlbiBzY2hyZWliZW4Kd29sbHRlLCBkYXMgaXN0IGRpZSBHZWxlZ2VuaGVpdC4uLgoKQWRyZXNzZSBmdWVyIEJlaWxlaWRzcG9zdCBhdWYgQW5mcmFnZS4KClNlbWlyYSAtIGdyYXVlIEtudWRkZWxtYXVzIGltIGZhc3QgUmVudGVuYWx0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBtaWRsaWZlIGNyaXNpcyAoV3VyemVsLCAyOC4gT2t0IDE5OTcsIDE5OjMyOjQ0KToKfiMhIHJuPVNlbWlyYSBydD04NzgwNjA0MTUgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzgwNjA0MTUKd2VubiBkdSBzY2hvbiBmYXN0IGltIHJlbnRlbmFsdGVyIGJpc3QsIHdhcnVtIG11c3MgaWNoIGRhbm4gaW1tZXJub2NoIGplZGVuCnRhZyBhdWYgZGllIGFyYmVpdD8KZGllc2UganVnZW5kIHZvbiBoZXV0ZSwgYWxsZXMgamFtbWVybGFwcGVuIDopCgp3dXJ6ZWwgc2NodWV0dGVsdCBiZWRhZWNodGlnIGRlbiBrb3BmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IG1pZGxpZmUgY3Jpc2lzIChSYWZmaSwgMjguIE9rdCAxOTk3LCAxOTozMzo1MCk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODc4MDYzNTY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc4MDYwNDE1CldlaWxzIHNvbm5zdCB6dXdlbmlnIGdlbGQgZ2lidCB1bSB2b24genVoYXVzIGF1cyB6dSBtdWRkZW4gPwoKR3J1c3MKSC4KKEF1Y2ggYmVpbmFoZXJlbnRuZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBtaWRsaWZlIGNyaXNpcyAoV3VyemVsLCAyOC4gT2t0IDE5OTcsIDE5OjM3OjU3KToKfiMhIHJuPVJhZmZpIHJ0PTg3ODA2MzYzMCByZz1hbnplaWdlbgp+IyEgdGlkPTg3ODA2MDQxNQpzdGltbXQsIHJlbnRlIHdhZXIgenUgd2VuaWcsIGJlaSBkZW4gcHJlaXNlbiB2b24gZGVyIHRlbGVrb20uLi4KYWxzbyB3ZWl0ZXJtYWxvY2hlbiAqc2V1ZnoqICpzY2hsdWNoeiogKndpZWxhbmdlbm9jaCogKmF1ZmhvZXJlbndvbGxlbioKCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS2F0emVuIChaYXBob2IsIDI5LiBPa3QgMTk5NywgMTg6NTE6NDYpOgp+IyEgcm49UmFmZmkgcnQ9ODc3NTQ0MTkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3NTA1NjI2CkljaCB3dWVyZCBkaWUgbmljaHQgdW5iZWRpbmd0IGRpYW5hIG5lbm5lbi4KbWFubiB3ZWlzcyBqYSBuaWUuLi4uCm9id29obCBrYXR6ZW4gc2ljaCBqYSBuaWNodCB2b2xsdHJ1bmtlbiB2b3IgbmVuIGJydWVja2VucGZlaWxlciBzZXR6ZW4gbGFzc2VuLgoKWmFwaG9iIHdpcmQgaW0gbmFlY2hzdGVtIGxlYmVuIGVpbmUgS2F0emUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiBnZXN1Y2h0IChIYXNpbSwgIDIuIE5vdiAxOTk3LCAxNjowMzo0MSk6CldpZSB3YWVycyBtaXQgMTcgdW5kIDQ/Pz8KT2RlciBnYW56IGVpbmZhY2ggOiBNYXUgdW5kIE1hdS4uLi4gTW9ubyB1bmQgUG9sKGwpeS4uLi5vZGVyIHNvCkhhc2ltCkljaCB3ZWlzcywgJ24gYmlzc2NoZW4gc3BhZXQuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbmRlcmxhbmQgKExlZnR5LCAgMy4gTm92IDE5OTcsIDIwOjQ2OjA2KToKSGksCgphdXMgZ2VnZWJlbmVuIEFubGFzcyBtb2VjaHRlIGljaCBudXIgc2FnZW4sIGRhc3MgTWFnaWVyLCBkaWUgd29obCB2b3Iga3VyemVtCmltIEFuZGVybGFuZCBnZWxvZXNjaHQgd3VyZGVuLCB3aWVkZXIgTWFnaWVyIHNpbmQuCgpXYXJ1bSB1bmQgd2VzaGFsYiB1bmQgc28ga2VpbmUgQWhudW5nLCBpcyBlaW5mYWNoIHNvLgoKTGVmdHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVudGVya3VuZnQgZ2VzdWNodCAoQXRveiwgIDUuIE5vdiAxOTk3LCAxMDoxNDo0Nyk6CkhpaG8gSWhycyBpbiB1bmQgdW0gQm9ubi4KCkFuZmFuZyBBcHJpbCBuYWVjaHN0ZW4gSmFocmVzIHN1Y2hlIGljaCBtaXQgZWluIHBhYXIgRnJldW5kZW4gZWluZSBVbnRlcmt1bmZ0CmZ1ZXIgMiBvZGVyIGRyZWkgTmFlY2h0ZSBpbiB1bmQgdW0gQm9ubi4gRGFzIEdhbnplIHNvbGx0ZSBtb2VnbGljaHN0IGJpbGxpZwpzZWluLCBhbHNvIGVpbmUga2xlaW5lIFBlbnNpb24gb2RlciBpcmdlbmRzbyBldHdhcyB1bmQgaW4gZWluZW0gdmVybnVlbmZ0aWdlbgpBYnN0YW5kIHp1bSBNYXJpdGltIEhvdGVsIGxpZWdlbi4gKE9kZXIgZWluZSBndXRlIE5haHZlcmtlaHJzYW5iaW5kdW5nIGhhYmVuKQpXZW5uIElociBzbyBldHdhcyB3aXNzdCwgd2FlcmUgZWluZSBNYWlsIGFuIG1pY2ggZ2FueiBuZXR0LiBEYW5rZQoKVHNjaGF1IEF0b3oKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbnRlcmt1bmZ0IGdlc3VjaHQgKFByYSwgIDUuIE5vdiAxOTk3LCAxNjozOTozMCk6Cn4jISBybj1BdG96IHJ0PTg3ODcyMTI4NyByZz1hbnplaWdlbgp+IyEgdGlkPTg3ODcyMTI4NwpWb24gZGVtIE1hcml0aW0tSG90ZWwgd3VlcmRlIGljaCBhdWNoIGltbWVyIGVpbmVuIHZlcm51ZW5mdGlnZW4gQWJzdGFuZCAKaGFsdGVuLi4uCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLYXR6ZW4gKFZhbmlyLCAgNi4gTm92IDE5OTcsIDAyOjIxOjM2KToKfiMhIHJuPUd1bGR1a2F0IHJ0PTg3Nzk1MzUxNCByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzUwNTYyNgpaVSBkZW0gbGV0enRlbiBBcnRpa2VsIGZhZWxsdCBtaXIgZm9sZ2VuZGVzIGVpbjogaWNoIGtlbm5lIGphIGZhc3QgYWxsZQpTZXNhbXN0cmFzc2VuLWZpZ3VyZW4sIGFiZXIgZGEgaXMgaW1tZXIgc29uIGtsZWluZXMgTWFlZGNoZW4sIHZvbiBkZW0gaWNoIGRlbgpOYW1lbiBuaWNodCB3ZWlzcywgd2Vpc3MgZGVuIGplbWFuZCB2b24gZXVjaCwgYml0dGUgbWl0IG1haWwgYW4gbWljaCwKZGFua2UsIFZhbmlyCgpQLlMuOiBGdWVyIGFsbGUgbm9jaG1hbDoKYmxhdWVzIE1vbnN0ZXI6IEdyb2JpICh3YWhsd2Vpc2UgU3VwZXJncm9iaSkKYmxhdWVzIE1vbnN0ZXIsIGFiZXIgZ3JvZXNzZXIgYWxzIEdyb2JpOiBMdWxhdHNjaApibGF1ZXMgTW9uc3QgbWl0IE5hc2U6IEtydWVtZWxtb25zdGVyCnJvdGVzIE1vbnN0ZXI6IEVsbW8KZ3Jvc3NlciBnZWxiZXIgVm9nZWxsOiBCaUJvCmdydW5lciBGcm9zY2g6IEtlcm1pdApncnVlbmVzIE1vbnN0ZXIgKGluIE11ZWxsdG9uZSk6IE9za2FyIChpbiBkZXIgZHQuIEZhc3N1bmcgbWl0IGRlbiBlY2h0ZW4gVHlwZW4Kbm9jaCBtaXQgbmFjaG5hbWVuIFJ1bXBlbCkKClAuUy5TLjogaWNoIGhvZmZlIGljaCBoYWIga2VpbmVuIHZlcmdlc3NlbgpQLlMuUy5TLjogZW50c2NodWxkaWd0IGRpZSBkb29mZSBmYXNzdW5nIGRlcyBhcnRpa2VscywgYWJlciBpbSBtb20gaGFiIGljaCBudXIKbmVuIGJpbGxpZ2VzIHRlbG5ldCAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEthdHplbiAoUXVhc2ltb2RvLCAgNi4gTm92IDE5OTcsIDExOjMxOjQ1KToKfiMhIHJuPVZhbmlyIHJ0PTg3ODc3OTI5NiByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzUwNTYyNgpEdSBtZWluc3QgRHUga2VubnN0IGFsbGU/IEFiZXIgRHUga2VubnN0IHZpZWxsZWljaHQgbmljaHQgZGVyZW4gd2FocmVzCkdlc2ljaHQ6CgpodHRwOi8vd3d3LmZyYWN0YWxjb3cuY29tL2JlcnQvYmVydC5odG0KClF1YXNpbW9kbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogS2F0emVuIChCYWxpb24sICA2LiBOb3YgMTk5NywgMTk6MDA6MzgpOgp+IyEgcm49UXVhc2ltb2RvIHJ0PTg3ODgxMjMwNSByZz1hbnplaWdlbgp+IyEgdGlkPTg3NzUwNTYyNgpEaWUgU2VpdGUgaXN0IFNVUEVSQ09PTCAhISEgV28gZ2lidHMgbWVociBpbiBkZXIgUmljaHR1bmcgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS2F0emVuIChRdWVuZ2lzdHUsICA2LiBOb3YgMTk5NywgMjM6MzI6NTQpOgp+IyEgcm49VmFuaXIgcnQ9ODc4Nzc5Mjk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc3NTA1NjI2CkljaCBnbGF1YmUsIGRhcyBNYWVkY2hlbiwgZGFzIER1IG1laW5zdCwgaGVpc3N0IExpc2EuCihPaG5lIEdld2FlaHIpIEdydXNzLCBRdWVuZyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEthdHplbiAoUXVhc2ltb2RvLCAgOS4gTm92IDE5OTcsIDE2OjQ3OjE2KToKfiMhIHJuPUJhbGlvbiBydD04Nzg4MzkyMzggcmc9YW56ZWlnZW4KfiMhIHRpZD04Nzc1MDU2MjYKRGVuIGJlc3RlbiBXaXR6IHVlYmVyaGF1cHQgZ2lidCBlcyBoaWVyOgoKCmh0dHA6Ly93d3cucGFya3ZlcmJvdC5vcmcvaW5kZXhfLmh0bQoKVW50ZXIgTWVnYVBlcmxzIG5hY2hzY2hhdWVuLi4uIDotKSkpKSkKCgpRdWFzaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hbWVuIGdlc3VjaHQhIChKaW1kaWdyaXosICA5LiBOb3YgMTk5NywgMTc6NTk6MjQpOgp+IyEgcm49TW9yZ290aCBydD04NzgwMjM1NTcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzcyOTk1NzcKR2V3b25uZW4sCgpNb3Jnb3RoIGtyaWVndCBkYXMgRmxlcGkgKGJlaSBHZWxlZ2VuaGVpdCkKCkpkRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWl6byBGNTYtTnV0emVyIGdlc3VjaHQgKFJpbmdvciwgMTAuIE5vdiAxOTk3LCAyMDo1OToxNCk6CkhhbGxvIQoKSWNoIGhhYiBtb21lbnRhbiBlaW4ga2xlaW5lcmVzIFByb2JsZW0gbWl0IGVpbmVtIEVpem8gRjU2LCBtZWluZW0KQ29tcHV0ZXJoYWVuZGxlciB1bmQgRWl6byBEZXV0c2NobGFuZC4gR3JvYiBnZWh0IGVzIGRhcnVtLCBkYXNzIGRlciBFaXpvCmFuc2NoZWluZW5kIG51ciBtaXQgZ2FueiBhdXNnZXdhZWhsdGVuIEdyYWZpa2thcnRlbiB0YWRlbGxvcyBsYWV1ZnQuCgpEYWhlciBlaW5tYWwgZWluZSBrbGVpbmUgVW1mcmFnZTogd2VyIHZvbiBFdWNoIGJlbnV0enQgZGVuIEVpem8gRjU2PyBNaXQKd2VsY2hlciBHcmFmaWtrYXJ0ZT8gVW5kIHZvciBhbGxlbTogZ2lidHMgUHJvYmxlbWUgKFNjaGF0dGVuKSBvZGVyIGVpbgp0YWRlbGxvc2VzIEJpbGQ/CgpWb3IgYWxsZW0gTnV0emVyIGRlciBNYXRyb3ggTWlsbGVuaXVtL015c3RpcXVlIGtvZW5udGVuIG1pciBkYSB3ZWl0ZXJoZWxmZW4sCmFiZXIgYXVjaCBhbGxlIGFuZGVyZW4gR3JhZmlra2FydGVuLgoKQW50d29ydGVuIGFtIGJlc3RlbiBwZXIgTWFpbCwgWndlaXplaWxlciByZWljaGVuIDstKQoKUmluZ29yLiBIYWV0dGUgZ2FueiBnZXJuZSBiZXNzZXJlIEFyZ3VtZW50ZSBzZWluZW0gSGFlbmRsZXIgZ2VnZW51ZWJlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaXpvIEY1Ni1OdXR6ZXIgZ2VzdWNodCAoV3VyemVsLCAxMC4gTm92IDE5OTcsIDIxOjAyOjQ5KToKfiMhIHJuPVJpbmdvciBydD04NzkxOTE5NTQgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkxOTE5NTQKZ2VuZXJlbGwgaGFiZSBpY2ggYmlzaGVyIGltbWVyIHByb2JsZW1lIG1pdCBlaXpvLW1vbml0b3JlbiBnZWhhYnQgKGluIGRlcgpmaXJtYSBoYWJlbiBzaWUga2VpbmUgYW5kZXJlbiksIGRlcnplaXQgbWl0IGVpbmVtIEY3NyAob2RlciBzbyBhZWhubGljaCwgMjEKem9sbCkuIGJpbGQgc2NobGVjaHQsIGZhcmJrb25zdGFueiBtaXNlcmFiZWwuLi4gamVkZW5mYWxscyBtaXQgYXRpLWthcnRlbiwKbWF0cm94IHdlaXNzIGljaCBuaWNodC4gbWVpbiBwZXJzb2VubGljaGVzIGZheml0OiB2b2VsbGlnIHVlYmVydGV1ZXJ0LGtvbW10Cm1pciBwcml2YXQgbmljaHQgaW5zIGhhdXMuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRWl6byBGNTYtTnV0emVyIGdlc3VjaHQgKFlhcmVuLCAxMS4gTm92IDE5OTcsIDEwOjU3OjUxKToKfiMhIHJuPVd1cnplbCBydD04NzkxOTIxNjkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkxOTE5NTQKSWNoIGJpbiAoYWJlciBkYXMgd2Vpc3N0IER1IGphLCBSaW5nb3IgOykpIHN0b2x6ZXIgQmVzaXR6ZXIgZWluZXMgRjU2IHVuZApoYXR0ZSBlcnN0IGVpbmUgQVRJIFdpblR1cmJvIDJNQiB1bmQgamV0enQgZWluZSBNYXRyb3ggTWlsbGVuaXVtIEkgNE1CLiBOaWNodApudXIsIGRhc3MgaWNoIGtlaW5lIFByb2JsZW1lIG1pdCBkZW0gQmlsZCBoYWJlLCBpY2ggaGFiZSBub2NoIG5pZSBlaW4gc28Kc2NoYXJmZXMgQmlsZCBnZXNlaGVuLiBVbmQgZWluIEZyZXVuZCB2b24gbWlyIGhhdCBhdWNoIGVpbmVuIEY1NiwgZGVuIGVyIGFuCmVpbmVuIE1hdHJveCBNeXN0aXF1ZSA0TUIgYmV0cmVpYnQgdW5kIGlzdCBhdWNoIG1laHIgYWxzIHp1ZnJpZWRlbi4gSWNoIGRlbmtlLApkYXNzIGVpbiBNb25pdG9yLCBkZXIgbnVyIDE2MDAsLSBrb3N0ZXQgdW5kIGVpbmUgYmVzc2VyZXMgQmlsZCBsaWVmZXJ0IGFscwp6LkIuIGhvY2h3ZXJ0aWdlIFNHSS1Nb25pdG9yZSwgd2llIHNpZSBtaXQgZGVyIE8yIGF1c2dlbGllZmVydCB3ZXJkZW4gbmljaHQKYWxzIHVlYmVydGV1ZXJ0IGJlemVpY2huZXQgd2VyZGVuIGthbm4uIEFsbGVyZGluZ3MgaGF0IGF1Y2ggZGllIGMndCBiZXJpY2h0ZXQsCmRhc3MgZXMgbGVpY2h0ZSBTY2h3YW5rdW5nZW4gYmVpIGRlciBRdWFsaXRhZXQgZ2lidCwgZXMgc2NoZWludCBhbHNvCk1vbnRhZ3NnZXJhZXRlIHp1IGdlYmVuLiBBYmVyIG5lbm4gbWlyIG1hbCBlaW5lIEFsdGVybmF0aXZlIGluIGRlbQpQcmVpc3NlZ21lbnQsIFd1cnplbCEKCllhcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRWl6byBGNTYtTnV0emVyIGdlc3VjaHQgKERlbnRpLCAxMS4gTm92IDE5OTcsIDExOjAzOjQzKToKfiMhIHJuPVlhcmVuIHJ0PTg3OTI0MjI3MSByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTE5MTk1NAoKRGllID4+aG9jaHdlcnRpZ2UgU0dJLU1vbml0b3JlLCB3aWUgc2llIG1pdCBkZXIgTzI8PCBzaW5kIG5vcm1hbGVyd2Vpc2UKbmljaHRzIHdlaXRlciBhbHMgc3Rpbmtub3JtYWxlIFNvbnktTW9uaXRvcmUgOykpCgpEZW50aSBzY2htYXJydCBhdWNoIG1hbC4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFaXpvIEY1Ni1OdXR6ZXIgZ2VzdWNodCAoRnJldW5kLCAxMS4gTm92IDE5OTcsIDExOjU1OjU5KToKfiMhIHJuPVlhcmVuIHJ0PTg3OTI0MjI3MSByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTE5MTk1NApJY2ggYmluIHp3YXIgbmljaHQgV3VyemVsLCBhYmVyIEFMdGVybmF0aXZlbjoKMS4gTWlybyAxNzgwIFRFLCBUcmluaXRyb24gUm9laHJlIChTb255KTogMTM4MC4tIERNLgoyLiBJaXlhbWEgSWRlayBNRjg2MTdULCB+MTMwMC4tIERNLgoKRnJldW5kLCBpbSBDb21wdXRlci1FaW56ZWxoYW5kZWwgdGFldGlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRWl6byBGNTYtTnV0emVyIGdlc3VjaHQgKFd1cnplbCwgMTEuIE5vdiAxOTk3LCAxNDoyNzo1OCk6Cn4jISBybj1GcmV1bmQgcnQ9ODc5MjQ1NzU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MTkxOTU0Cmd1dCwgenUgc3BhZXQgZ2V3ZXNlbiA6KQphYmVyIGVpbiBoaW53ZWlzIG5vY2g6IHdlbm4gZHUgc2Nob24gYyd0IHppdGllcnN0LCBzb2xsdGVzdCBkdSBzaWUgdmllbGxlaWNodAphdWNoIGxlc2VuLiBkYSBzdGVoZW4gYWx0ZXJuYXRpdmVuIGRyaW4sIHouYi4gaWl5YW1hIChtdC05MDE3dCBoYXQgYmVzc2VyCmFiZ2VzY2huaXR0ZW4gdW5kIGtvc3RldCBtaXQgZXR3YSAxMzUwLC0gYXVjaCBuaWNodCB2aWVsIG1laHIsIGZyZXVuZCkuCmRlbiBoYWIgaWNoIG1pciBhbmdlc2VoZW4gdW5kIGJpbiBzbyB3ZWl0LCBkYXNzIGljaCBkYSB3b2hsIHp1c2NobGFnZW4Kd2VyZGUuIGVpem8ga29tbXQgbWlyIG5pY2h0IGlucyBoYXVzLCBhdWNoIHdlbm4gc2llIG5vY2ggc28gZ3V0ZSBrcml0aWtlbgpiZWtvbW1lbi4gbWFuIHNvbGx0ZSBzaWNoIG1vbml0b3JlIGltbWVyIHNlbGJzdCBhbnNlaGVuLCBkYXMgZWlnZW5lIGF1Z2UKZW50c2NoZWlkZXQuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEVpem8gRjU2LU51dHplciBnZXN1Y2h0IChBdmFsb24sIDEyLiBOb3YgMTk5NywgMDE6Mjg6MzIpOgp+IyEgcm49V3VyemVsIHJ0PTg3OTI1NDg3OCByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTE5MTk1NApXaXIgaGFiZW4gdS5hLiBuZW4gRWl6byBUNTYzaSAoMTciKSBoaWVyLiBFeHRyZW0gc2NoYXJmZXMgQmlsZCwKemVybyBQcm9icywgZGFtYWxzIHN0YXJrIHVlYmVydGV1ZXJ0LCBhYmVyIGltIENBRCBidXNpbmVzcwptdXNzIG1hbiBzaWNoIGRhcyBoYWx0IGxlaXN0ZW4gOikuIERpZSBuZXVlcmVuIFBoaWxpcHMgc2luZAphdWNoIHJlY2h0IGd1dCwgaW0gR2VnZW5zYXR6IHp1IGRlbiBhbHRlbiBNb2RlbGxlbi4gRGllIE5va2lhCigxNyIsIGRlciAyMSIgaGllciBpcyBvLmsuIDopKSBoYWJlbiBtaWNoIGVpZ3RsLiBlaGVyIGVudHRhZXVzY2h0LAppbSBHZWdlbnNhdHogenUgZGVuIElCTSBTY2hpcm1lbi4KCnNlbmYgaS5BLiBvZmYsCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFOS0xBR0UgISEhIChSYW50YW5wbGFuLCAxMi4gTm92IDE5OTcsIDEyOjI0OjMxKToKCllvICEKClZlcmRlcmIsIFZlcmZhbGwsIEZhZXVsbmlzLCBKYW1tZXIgdW5kIEVsZW5kLCBzb2ViZW4gaGF0IG1pciBBbGJvaW4gdmVycmF0ZW4sCmRhc3MgT2V0dGkgbWVpbiBFcnN0aWUgaXN0LgoKRGFzIGlzdCBNSVNTQlJBVUNIIHVuZCBTcGllbGVyaGlsZmUgdW5kIElMTEVHQUwgISEhCgoKVmVyd2FybnQgQWxib2luICEhIQoKT2UqCiwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBTktMQUdFICEhISAoR3JpbW1ib3JuLCAxMi4gTm92IDE5OTcsIDEyOjI5OjUyKToKfiMhIHJuPVJhbnRhbnBsYW4gcnQ9ODc5MzMzODcxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzMzODcxCkFsYm9pbiBoYXQgZ2Vsb2dlbi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbXVzaWsgKENsYXltb3JlLCAxMi4gTm92IDE5OTcsIDE1OjUwOjA1KToKaGFsbG9vIGNpaCBoYWIgbWFsIG5lIGZyYWdlIHVlYmVyIG11c2lrCndlciBrZW5udCBkZW4gaW50ZXJwcmV0ZW4gZGVyIHplaWxlbjoKaSBhbSBwaWxvdCBlcnJvcgppIGFtIGZhdGFsIGRpc3RyZXNzCmkgYW0gdGhlIHJhbmRvbSBjcm9tb3NvbQppIGFtIGNvbXBsZXRlIGFuZCB0b3RhbCBjYW90CmkgYW0gZmVhciEKCmljaCB3YWVyZSBldWNoIHNlaHIgdmVyYnVuZGVuIG1pciBuZSBhbnR3b3J0IHp1IHNjaGlja2VuCmRhbmtlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYnJ1ZGVyaGVycnogKEJlbmRlaWdpZCwgMTIuIE5vdiAxOTk3LCAxNjo1OToxMyk6Cn4jISBvbj1UcmFuY2VmZWFyIG90PTg3OTM1MDMyOSBvZz1hbGxnZW1laW5lcwp+IyEgcm49RGlveG9pZCBydD04NzkyODI1MzIgcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD04NzkyODI1MzIKVmVyc3VjaHMgbWFsIGluIGRlciBQb3N0IDotKQoKdGYKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVsYW1zY2hlIEZ1bmt0aW9uIChTaWx2YW5hLCAxMi4gTm92IDE5OTcsIDIyOjUzOjUwKToKSGkuCk1pciB3dXJkZSBkaWUgc29nZW5hbm50ZSBVbGFtc2NoZSBGdW5rdGlvbiBzbyBkZWZpbmllcnQ6CgogIHVsYW0obikgOj0gMSwgd2VubiBuPT0xLAogICAgICAgICAgICAgdWxhbShuLzIpLCB3ZW5uIGdlcmFkZSwKICAgICAgICAgICAgIHVsYW0oM24rMSkgc29uc3QuCgp0YWV1c2NoZSBpY2ggbWljaCwgb2RlciBpc3QgZGFzIG5lIGV0d2FzIHVtc3RhZW5kbGljaGUgVmVyc2lvbiB2b24KICB1bGFtKG4pID0gMSA/IE9kZXIgaXN0IGRhIGRpZSBGdW5rdGlvbiBldnRsIGZhbHNjaCBkZWZpbmllcnQ/CkFjaCBqYSwgc29sbCBuZSBGdW5rdGlvbiB2b24gTiAtPiBOIHNlaW4uIDopCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNpbXBzb25zIChNb3JuLCAxMy4gTm92IDE5OTcsIDAwOjI2OjI5KToKSGksIGhhdCBqZW1hbmQgbGV0enRlbiBzb25udGFnIGRpZSBTaW1wc29ucyBmb2xnZSAiQmFydCBhZnRlciBkYXJrIC8gZGVyICoKYW11ZXNpZXJiZXRyaWViIiBhdWZnZW5vbW1lbiAoYmFydCBpbSBib3JkZWxsKSB1bmQga2FubiBzaWUgendlY2tzIGtvcGllCmVpbm1hbCBhdXNsZWloZW4gb2RlciBrb3BpZXJlbj8KCkd1bER1a2F0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVWxhbXNjaGUgRnVua3Rpb24gKEFsZXRlLCAxMy4gTm92IDE5OTcsIDA4OjUwOjM3KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODc5MzcxNjMwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzcxNjMwClRqYSwgU2lsdmFuYSwgd2VubiBEdSB0YXRzYWVjaGxpY2ggZWluZW4gQmV3ZWlzIGRhZnVlciBoYXN0LCBkYXNzIHVsYW0Ka29uc3RhbnQgPSAxIGlzdCwgZGFubiBrYW5uc3QgRHUgd2FocnNjaGVpbmxpY2ggZWluZW4gUnVmIGFucyBtYXRoZW1hdGlzY2hlClNlbWluYXIgamVkZXIgVW5pIGRpZXNlciBXZWx0IGhhYmVuLgpBbiBkZW0gUHJvYmxlbSBoYWJlbiBzaWNoIG5hZW1saWNoIHNjaG9uIE15cmlhZGVuIHZvbiBMZXV0ZW4gZGllIFphZWhuZQphdXNnZWJpc3NlbiwgYmV3aWVzZW4gKG9kZXIgd2lkZXJsZWd0KSBpc3QgZGllIFZlcm11dHVuZyBhYmVyIG5vY2ggbmljaHQuCgpBbGV0ZSAod2FyIHZvciBlaW4gcGFhciBKYWhyZW4gYXVjaCBzY2hvbiBtYWwgdWxhbWlzaWVydCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVWxhbXNjaGUgRnVua3Rpb24gKEdyaW1tYm9ybiwgMTMuIE5vdiAxOTk3LCAxMTowNjoxMCk6Cn4jISBybj1BbGV0ZSBydD04Nzk0MDc0Mzcgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkzNzE2MzAKSWNoIGhhYnMgd2lkZXJsZWd0LiBEYWZ1ZXIgcmVpY2h0IGVpbiBCZWlzcGllbDoKdWxhbShuKT0oM24rMSkgd2VubiBuIHVuZ2VyYWRlIHVuZCB1bmdsZWljaCAxLgpBbHNvOgp1bGFtKDUpPTE2ICgzeDUrMSksIGFsc28gaXN0IHVsYW0gbmljaHQga29udGludWllcmxpY2ggMS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEuZS5kLgoKSW1tZXIgd2llZGVyIGVyc3RhdW5saWNoLCB3aWUgZGFlbWxpY2ggTWF0aGVtYXRpa2VyIHNlaW4ga29lbm5lbi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbGFtc2NoZSBGdW5rdGlvbiAoUGF0cnluLCAxMy4gTm92IDE5OTcsIDExOjI5OjI3KToKfiMhIHJuPUdyaW1tYm9ybiBydD04Nzk0MTU1NzAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkzNzE2MzAKZ2VtZWludCB3YXIgd2FocnNjaGVpbmxpY2ggZGVyIGdyZW56d2VydCBkaWVzZXIgZm9sZ2UsIGRhc3MgaGVpc3N0LCB3ZW5uCm1hbiBkaWUgYWJiaWxkdW5nIE4tPk4gaXRlcmF0aXYgd2llZGVyaG9sdCwgYWxzbyBlaW5lIGZvbGdlIEFuOiBBbi0xfC0+QW4uCmljaCBrZW5uZSBkaWUgZGllc2UgZnVua3Rpb25tIHp3YXIgbmljaHQsIGFiZXIgZGllIHZlcm11dHVuZyBsaWVndCBuYWhlLApkYXNzIGRpZSBmb2xnZSBnZWdlbiAxIGxhZXVmdCwgZGVuIHZlcnN1Y2ggZWluZXMgYmV3ZWlzZXMgdmVya25laWYgaWNoIG1pcgpuYWNoIGRlciBsZXR6dGVuIGFubWVya3VuZyA7KQoKLS0tLS0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVWxhbXNjaGUgRnVua3Rpb24gKFNjaG9rbywgMTMuIE5vdiAxOTk3LCAxMjowNTo1NSk6Cn4jISBybj1QYXRyeW4gcnQ9ODc5NDE2OTY3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzcxNjMwCkplcHAsIHNvIHdpZSBpY2ggZGFzIGdlbGVybnQgaGFiLCBnZWh0cyB1bSBkaWUgUmVrdXJzaW9uLCBkaWUgaW4gZGVtIERpbmcKc3RlY2t0LiBEYWR1cmNoIHdpcmQgYXVjaCBkZXIgYW5nZXNwcm9jaGVuZSBCZXdlaXMgc28gdmVydHJhY2t0Li4uCgpTY2hva28gKFJla3Vyc2lvbmVuLCBFeGt1cnNpb25lbiB1bmQgc29uc3RpZ2UgVXJzaW9uZW4gaGFzc2VuZCA6IikpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbGFtc2NoZSBGdW5rdGlvbiAoV2FyZ29uLCAxMy4gTm92IDE5OTcsIDEyOjE3OjIzKToKfiMhIHJuPUdyaW1tYm9ybiBydD04Nzk0MTU1NzAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkzNzE2MzAKRGVtbmFjaCBiaXN0IER1IE1hdGhlbWF0aWtlcj8gSmVkZW5mYWxscyBoYXN0IER1IGRpZSBWb3JhdXNzZXR6dW5nIGZhbHNjaAp6aXRpZXJ0IDopCiAgV2FyZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBVbGFtc2NoZSBGdW5rdGlvbiAoUmFudGFucGxhbiwgMTMuIE5vdiAxOTk3LCAxMjoyMDo1MCk6Cn4jISBybj1XYXJnb24gcnQ9ODc5NDE5ODQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzcxNjMwCkhhdCBkYXMgRGluZyBuZW4gcHJha3Rpc2NoZW4gTnV0emVuLCBvZGVyIGhhdCBkYXNzIG51ciBpcmdlbmRqZW1hbmQKZXJmdW5kZW4gdW0gTGV1dGUgenUgbmVydmVuID8KCkFuc29uc3RlbiBpc3QgZWluZXMgS2xhciwgdWxhbSgyXm4pPTEsIGRhcyBzaW5kIHNjaG9uIG1hbCBuZSBNZW5nZSA7KQoKT2UqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBVbGFtc2NoZSBGdW5rdGlvbiAoUmFudGFucGxhbiwgMTMuIE5vdiAxOTk3LCAxMjoyMjowMik6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTg3OTQyMDA1MCByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTM3MTYzMAoKVW5kIGZ1ZXIgZGllIE1hdGhlbWF0aWtlciAoT2JlcnNwaWVzc2VyIGFsbGVyIFdpc3NlbnNjaGFmdGVuKQoKTmUgTUVuZ2Ugc2luZCBpbiBkaWVzZW0gRmFsbCwgYWJ6YWVobGJhciB1bmVuZGxpY2ggdmllbGUuCgpPZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFVsYW1zY2hlIEZ1bmt0aW9uIChHcmltbWJvcm4sIDEzLiBOb3YgMTk5NywgMTI6MjM6NTEpOgp+IyEgcm49UmFudGFucGxhbiBydD04Nzk0MjAwNTAgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkzNzE2MzAKRGFzIGlzdCBzb2dhciBkaWUgSGFlbGZ0ZS4gRnVlciBkcmVpLCB2aWUgdW5nZXJhZGUgWmFobGVuIGthbm4gaWNoIGRhcyBhdWNoCmF1c3Byb2JpZXJlbiwgZC5oLiBmdWVyIG1laHIgYWxzIGRpZSBIYWVsZnRlIGRlciBaYWhsZW4gZ2lsdCBkYXMuIFdlbm4gaWNoCmFsc28gc2FnZSwgZXMgaXN0IHVlYmVyYWxsIDEgYmluIGljaCBhdWYgZGVyIHNpY2hlcmVyZW4gU2VpdGUgdW5kIG5laG1lCmplZGVyemVpdCA1MDo1MC1XZXR0ZW4gZGFyYXVmIGFuLgoKR3JpbW1ib3JuIGRlciBNYXRoZW1hdGlrZXIgdW5kIFNwaWVsZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFVsYW1zY2hlIEZ1bmt0aW9uIChCcnVtbWVsLCAxMy4gTm92IDE5OTcsIDEyOjI2OjAwKToKfiMhIHJuPVJhbnRhbnBsYW4gcnQ9ODc5NDIwMDUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzcxNjMwCklzdCBHcmltbWJvcm4gV2lydHNjaGFmdHN3aXNzZW5zY2hhZnRsZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBVbGFtc2NoZSBGdW5rdGlvbiAoUmFudGFucGxhbiwgMTMuIE5vdiAxOTk3LCAxMjozMDo1OSk6Cn4jISBybj1CcnVtbWVsIHJ0PTg3OTQyMDM2MCByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTM3MTYzMAoKRGllIEZyYWdlIGlzdCBkb2NoIGVpbmZhY2ggbnVyLCByYXVzY2h0IGRpZXNlIHRvdGFsIHVlYmVyZmx1ZXNzaWdlIFJla3Vyc2lvbgppcmdlbmR3YW5uIGF1ZiBuZSBQb3Rlbnogdm9uIFp3ZWkgb2RlciBnaWJ0IGVzIGVpbmUgWmFobCBmdWVyIGRpZSBkYXMgbmljaHQKcGFzc2llcnQsIHVuZCBzY2hvbiByYXVzY2hlbiB3aXIgaW4gZGllIFphaGxlbnRoZW9yaWUuLi5XYXMgaXN0IGVpZ2VudGxpY2ggCnVuZW5kbGljaCB1bmQgd2VubiBqYSB3aWUgZ3Jvc3MgaXN0IGRpZSwgdW5kIGdpYnQgZXMgbm9jaCBlaW5lIGdyb2Vzc2VyZSBaYWhsCgpVbmQgZGllIHdpY2h0aWdzdGUgRnJhZ2UsIHdlbiBpbnRlcmVzc2llcnQgZGFzID8gCgpPZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFVsYW1zY2hlIEZ1bmt0aW9uIChGeXQsIDEzLiBOb3YgMTk5NywgMTI6Mzg6MTYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3OTQxNTU3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTM3MTYzMAoKSW0gQXJ0aWtlbCBzdGFuZCAgdWxhbShuKSA9IHVsYW0oM24rMSkgZnVlciB1bmdlcmFkZSAhPSAxIHVuZCBuaWNodAouICAgICAgICAgICAgICAgICB1bGFtKG4pID0gKDNuKzEpLgoKV2VyIGxlc2VuIGthbm4sIGhhdCBhdWNoIGluIGRlciBNYXRoZW1hdGlrIFZvcnRlaWxlIDstKQoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVWxhbXNjaGUgRnVua3Rpb24gKFd1cnplbCwgMTMuIE5vdiAxOTk3LCAxMzo1NTozOCk6Cn4jISBybj1GeXQgcnQ9ODc5NDIxMDk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzcxNjMwCnBoeXNpa2VyIHp1IHNlaW4sIGhhdCBkb2NoIHZvcnRlaWxlLi4uCmluIGFsbGVuIGluIGZyYWdlIGtvbW1lbmRlbiB3ZXJ0ZW4gdm9tIHVsYW0sIGRpZSBtaWNoIGludGVyZXNzaWVyZW4ga29lbm50ZW4sCmthbm4gaWNoIG1pciBkYXMgYXVzcmVjaG5lbiB1bmQga29tbWUgYXVmIDEuIGRpZSBhbmRlcmVuIHdlcnRlLCBkaWUgbWljaCBuaWNodAppbnRlcmVzc2llcmVuLCBpbnRlcmVzc2llcmVuIG1pY2ggZWJlbiBuaWNodC4gZGFmdWVyIG11c3MgbWFuIHdvaGwgc2Nob24gCm1hdGhlbWF0aWtlciBzZWluLCBvZGVyIHNvbnN0d2llIHdlbHRmcmVtZCA6KQoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVWxhbXNjaGUgRnVua3Rpb24gKFJvY2h1cywgMTMuIE5vdiAxOTk3LCAxNToxNToxMSk6Cn4jISBybj1TaWx2YW5hIHJ0PTg3OTM3MTYzMCByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTM3MTYzMApXZW5uIGljaCBkYXMgcmljaHRpZyBzZWhlLCBoYXQgZGllc2UgRnVua3Rpb24gZnVlciBqZWRlcyBuLCBmdWVyCmRhcyBzaWUgZGVmaW5pZXJ0IGlzdCwgZGVuIFdlcnQgMS4KRGllIHNjaHdpZXJpZ2UgRnJhZ2UgaXN0IG51ciwgaXN0IHNpZSBkdXJjaCBkaWVzZSBWb3JzY2hyaWZ0ZW4KdG90YWwgZGVmaW5pZXJ0IChhbHNvIGZ1ZXIgYWxsZSBuKSBvZGVyIG51ciBwYXJ0aWVsbD8KRXMgaXN0IG5hZW1saWNoIChzb2xhbmdlIG5pY2h0IGRhcyBHZWdlbnRlaWwgYmV3aWVzZW4gd3VyZGUpIHRoZW9yZXRpc2NoCm1vZWdsaWNoLCBkYXNzIG1hbiBmdWVyIGJlc3RpbW10ZSBuIG5pZW1hbHMgYW5zIEVuZGUgZGVyIFJla3Vyc2lvbiBrb21tdC4KKEhhLCB0aGVvcmV0aXNjaGUgSW5mb3JtYXRpayBnZWhvZXJ0IHp1IGhhYmVuIGhhdCBET0NIIGVpbmVuIFNpbm4gOi0pCgogIFJvY2h1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWl6by1tb25pcyAoUGVydGluYXhlLCAxMy4gTm92IDE5OTcsIDE2OjM0OjA3KToKRGVyIEYgNTYgaXN0IHVuc2VyIFN0YW5kYXJkLU1vbml0b3IgZnVlciBnZWhvYmVuZXJlIEFuc3BydWVjaGUsIHdpciBoYWJlbgplaW5pZ2UgZGF2b24gbGF1ZmVuLCB0ZWlsZSBhbiAwOC8xNSBDb21wYXEgb25ib2FyZCBncmFwaGlrLCB0ZWlscyBtaXQgYW5kZXJlbgpLYXJ0ZW4uIE5pZSBQcm9ibGVtZS4gSGFiIHNlbGJlciBlaW5lbiBtaXQgbmVyIE1hY2ggNjQgYW0gQXJiZWl0c3BsYXR6LCB3ZW5uCmVyIG1hbCByaWNodGlnIGVpbmdlc3RlbGx0IGlzdCBlaW4gZ3V0ZXMgR2VyYWV0LiBVbnRlciBXaW45NSBtZ2xpY2hlcndlaXNlIGVpbgpBbnBhc3N1bmdzcHJvYmxlbS4KR3J1ZXNzZSBQZXJ0aQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxkZWJhcmFuIGRvd24gOiggKE1hbWJyZXMsIDEzLiBOb3YgMTk5NywgMjI6NTc6NDYpOgpBbGRlYmFyYW4gaXN0IG1vbWVudGFuIGRvd24uIEljaCB3ZWlzcyBhdWNoIG5pY2h0IHdpZXNvLAphYmVyIGljaCB3ZXJkZSB2ZXJzdWNoZW4sIGVzIGhlcmF1c3p1ZmluZGVuLgpJY2ggaG9mZmUgZXMgaXN0IG5pY2h0cyBlcm5zdGVzLiBXZW5uIGRvY2ggLQp3ZWlzcyBqZW1hbmQgZWluZW4gUmVjaG5lciBmdWVyIHVucywgb2RlciAnbmUKTGVpdHVuZyBtaXQgSW50ZXJuZXQgZHJpbiAoZGVuIFJlY2huZXIgYnJpbmdlbiB3aXIgbm9jaCBhdWYpPwoKTWFtYnJlcyAoPSBNYW1icmVzQEFsZGViYXJhbiwgZW1haWw6IG1hbWJyZXNAbWFpbC5ibGlueC5kZSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFVsYW1zY2hlIEZ1bmt0aW9uIChKaW1kaWdyaXosIDE1LiBOb3YgMTk5NywgMDE6MDQ6MjcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3OTQxNTU3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg3OTM3MTYzMApNb2luIEdyaW1tYm9ybiwKCkR1IG1hY2hzdCBlcyBEaXIgenUgZWluZmFjaDogdWxhbSg1KSBpc3QgX25pY2h0XyAzeDUrMSwKIHNvbmRlcm4gdWxhbSgzeDUrMSkgYWxzbyB1bGFtKDE2KSA9IHVsYW0oOCkgPSB1bGFtKDQpID0gdWxhbSgyKSA9IHVsYW0oMSkgPQoxCgpEZWluIEJlaXNwaWVsIGlzdCBhbHNvIGdlcmFkZSBrZWluZSBXaWRlcmxlZ3VuZyA6KQoKQ2lhbwogSmRHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBVbGFtc2NoZSBGdW5rdGlvbiAoSGFkcmEsIDE2LiBOb3YgMTk5NywgMDM6MDQ6MDIpOgp+IyEgcm49UmFudGFucGxhbiBydD04Nzk0MjA2NTkgcmc9YW56ZWlnZW4KfiMhIHRpZD04NzkzNzE2MzAKZGFzIGRpbmcgcmF1c2NodCBhdWYgYWxsZSBmYWVsbGUgaXJnZW5kd2FubiBpbiBlaW5lbgp0b28tZGVlcC1yZWN1cnNpb24tZXJyb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IFVsYW1zY2hlIEZ1bmt0aW9uIChNb3JnYXIsIDE3LiBOb3YgMTk5NywgMTQ6MjM6MTcpOgp+IyEgcm49SGFkcmEgcnQ9ODc5NjQ1ODQyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODc5MzcxNjMwCkRhcyBEaW5nIHNjaHJlaWJ0IG1hbiBqYSBhdWNoIG5pY2h0IG1pdCBuZXIgUmVrdXJzaW9uLi4uCgpNb3JnYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGlmZnN0b3VyIEJpc2theWEgLSBMYW56YXJvdGUgIChCb2luZywgMjQuIE5vdiAxOTk3LCAxMzo1Mjo1MSk6Cn4jISBvbj1Ub2Ugb3Q9ODgwMjE0MjIzIG9nPWFsbGdlbWVpbmVzCkJlc2F0enVuZyBnZXN1Y2h0CmFiIHNvZm9ydCAtIGFiIEVuZGUgTm92ZW1iZXIKZ2Vib3RlbiB3aXJkIGVpbiBTdGFobHNjaGlmZiAoMjQgTWV0ZXIsIDU0IFRvbm5lbikKQWJmYWhydHNvcnQ6IGlyZ2VuZHdvIGFuIGRlciBmcmFuei4gS3N0ZSAoendpc2NoZW4gQnJlc3QgdW5kIFNwYW5pZW4pClppZWxvcnQ6IExhbnphcm90ZQpSb3V0ZToga3Vlc3Rlbm5haCB1ZWJlciBTcGFuaWVuLCBQb3J0dWdhbCwgU3BhbmllbiwgR2licmFsdGFyLCBNYXJva2tvLApMYW56YXJvdGUKSW5mb3MgdW50ZXIgMDIyOC0yMjAwMjQgb2RlciAwMTcxLTIxMzQzMjEgKFN0ZXBoYW4gWmVoZSkKZ2Vib3RlbiB3aXJkIGZyZWllIEtvc3QgdW5kIFVudGVya3VuZnQKZkRhcyBCb290IGJlc2l0enQgUmFkYXIsIEVjaG9sb3QsIEZ1bmssIEdQUyBzb3dpZSBkaWUgdWVibGljaGVuClJldHR1bmdzbWl0dGVsLgpCZXNhdHp1bmdzc3RhZXJrZTogNC02IFBlcnNvbmVuCgpiaXMgZGVubmUsIHRvZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaGlmZnN0b3VyIEJpc2theWEgLSBMYW56YXJvdGUgIChCb2luZywgMjQuIE5vdiAxOTk3LCAxMzo1Mjo1Myk6Cn4jISBvbj1Ub2Ugb3Q9ODgwMjE0OTk4IG9nPWFsbGdlbWVpbmVzCn4jISBybj1Ub2UgcnQ9ODgwMjE0MjIzIHJnPWFsbGdlbWVpbmVzCn4jISB0aWQ9ODgwMjE0MjIzCmdydW1tZWwuLi4KSWNoIHZlcmdhc3MsIGRhcyBkYXMgVGVpbCBlaW4gcmVpbmVzIE1vdG9yYm9vdCBpc3QsIG9obmUgU2VnZWwuCk1vdG9yaXNpZXJ1bmc6IDIgeCA1MDBQUyBEaWVzZWxtYXNjaGluZW4KRGFzIFNjaGlmZiBnZWhvZXJ0IG1laW5lbSBCcnVkZXIsIGRlbSBldHdhcyBkaWUgQmVzYXR6dW5nIHdlZ2VuIGJlcnVmbGljaGVyCkdydWVuZGUgYWJnZXNwcnVuZ2VuIGlzdC4uLgoKdG9lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGaXNobWFuIHBpY2t1cCAtIEhhZW5kbGVyIGdlc3VjaHQgKEhpZ2hsYW5kZXIsIDI1LiBOb3YgMTk5NywgMTA6NDY6MjIpOgpJY2ggc3VjaGUgZWluZW4gSGFlbmRsZXIsIGRlciBGaXNobWFuLXBpY2t1cHMgaGF0LiBEaWUgU2hhZG93LXBpY2t1cHMKa2FubiBtYW4gbmFlbWxpY2ggbmljaHQgbWl0IGVpbmVyIEtpbm5zdHVldHplbmhhbHRlcnVuZyBmZXN0bWFjaGVuLApzb25kZXJuIG11c3Mgc2llIGZlc3RrbGViZW4uIFVuZCBkYXMgd2lsbCBpY2ggbWVpbmVyIEdlaWdlIG5pY2h0IGFudHVuLgogICAgSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmlzaG1hbiBwaWNrdXAgLSBIYWVuZGxlciBnZXN1Y2h0IChIaWdobGFuZGVyLCAyNS4gTm92IDE5OTcsIDEwOjQ3OjMwKToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9ODgwNDUxMTgyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODgwNDUxMTgyCkFlaCwgaWNoIHdlaXNzLCBhdWYgc2ljaCBzZWxiZXIgYW50d29ydGVuIGlzdCBkb29mLCBhYmVyIGljaCB3b2xsdGUKbm9jaCBlaW4gUFMgbmFjaGxlZ2VuOiBOZWluLCBpY2ggd2lsbCBrZWluZSB2b2x1bWUgY29udHJvbCBkYWJlaSwKZGllIGdhZWIncyBhdWNoIHZvbiBTaGFkb3cgbWl0IGRlciBIYWx0ZXJ1bmcuCiAgIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmlsbGlnZSBJcmxhbmRmbHVlZ2U/IChMdWcsIDI2LiBOb3YgMTk5NywgMDE6NTM6MTMpOgoKTW9pbiwKCmpldHp0IGRhIGljaCBhbHQgdW5kIGdyYXUgYmluLCBzaW5kIEZsdWVnZSBuYWNoIElybGFuZCBpcmdlbmR3aWUgYWxsZSB0ZXVlci4KV2VubiBlaW5lciB3YXMgZ3VlbnN0aWdlcyB3ZWlzcywgYml0dGUgTWFpbCBhbiBtaWNoLgoKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCT05OIEhFVVRFIGFuIDI3LjExLjE5OTcgKFlhbnRybywgMjcuIE5vdiAxOTk3LCAwNjozNToxMCk6CkhpLCAKaWNoIGhvZmZlLCBkYXNzIHNpY2ggaGV1dGUgYWxsZXMsIHdhcyBpcmdlbmR3aWUgc3R1ZGVudGlzY2hlIEJlaW5lIGhhdCwgaW4KUmljaHR1bmcgQm9ubiBiZXdlZ3QsIHVtIFBhcGEgUnVlZGdlcnMgYXVmIGRpZSBGdWVzc2UgenUgdHJldGVuISEhISBEZW1vYmVnaW5uCmlzdCAxMjAwLiBJbmZvcyBhbiBhbGxlcyBIb2Noc2NodWxlbi4gR0lWRSBJVCBSRVZPTFVUSU9OISEhCgpZYW50cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCT05OIEhFVVRFIGFuIDI3LjExLjE5OTcgKEdyaW1tYm9ybiwgMjcuIE5vdiAxOTk3LCAxMDo0Njo0Myk6Cn4jISBybj1ZYW50cm8gcnQ9ODgwNjA4OTEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODgwNjA4OTEwClN0dWRlbnRlbiBzaW5kIGRvb2YgdW5kIHN0aW5rZW4uCkljaCB3ZWlzcyB3b3ZvbiBpY2ggcmVkZSwgaWNoIHNpdHplIGhldXRlIG5hZW1saWNoIGluIGRlciBCZW51dHplcmJlcmF0dW5nIGRlcwpLb2VsbmVyIFJlY2hlbnplbnRydW1zLCBkYSBrb21tZW4gaW1tZXIgd2llZGVyIFN0dWRlbnRlbiBhbi4gQXVzc2VyZGVtIGthbm4KaWNoIGRlc3dlZ2VuIG5pY2h0IG5hY2ggQm9ubi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IGhvZmZ0IGF1ZiBlaW5lbiBydWhpZ2VuIFRhZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCT05OIEhFVVRFIGFuIDI3LjExLjE5OTcgKEhhcmRpbCwgMjcuIE5vdiAxOTk3LCAxMTowMDo1Nyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODgwNjI0MDAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODgwNjA4OTEwCgpUamEsIEdyaW1tYm9ybiwKZGFzIGlzdCBkb2NoIG1hbCBlaW4gd2lya2xpY2hlciBad2llc3BhbHQuCk1pciBnZWh0cyBnZW5hdXNvLiBOdXIgU3RyZWlrYnJlY2hlciBoZXV0ZSwgdW5kIGRpZSBoYWJlbiBiZXNvbmRlcnMgdmllbGUKZHVtbWUgRnJhZ2VuLCB3ZWlsIHNpZSBzb25zdCBuaWNodCBhbiBkaWUgUmVjaG5lciBrb2VubmVuIC0gZGllIHNpbmQgc29uc3QKZGF1ZXJiZXNldHp0IHZvbiBkZW4gamV0enQgZ2VyYWRlIGRlbW9uc3RyaWVyZW5kZW4gSnVuZ3MgdWRuIE1hZWRlbHMuCldpcmQgYWxzbyBuaXggbWl0IHJ1aGlnZW0gVGFnLgo6LSkKCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLcnlwdG9ncmFwaGllIChHcmltbWJvcm4sIDI3LiBOb3YgMTk5NywgMTc6MjI6NDkpOgpXZWlzcyBqZW1hbmQgZWluZSBtZWhyIG9kZXIgd2VuaWdlciB2ZXJzdGFlbmRsaWNoZSBFaW5mdWVocnVuZyBpbgpLcnlwdG9ncmFwaGllPyBBbHNvIGVpbmUsIGRpZSBuaWNodCBlaW4gTWF0aGVoYXVwdHN0dWRpdW0gdm9ycmF1c3NldHp0LCBhYmVyCmF1Y2ggbmljaHQgYmVpIGVpbmZhY2hlbiBCdWNoc3RhYmVudmVyc2NoaWVidW5nZW4gc3RlaGVuIGJsZWlidC4gU293YXMgbXVzcyBlcwpkb2NoIGdlYmVuLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLcnlwdG9ncmFwaGllIChSb2NodXMsIDI3LiBOb3YgMTk5NywgMTc6Mzg6MjgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg4MDY0Nzc2OSByZz1hbnplaWdlbgp+IyEgdGlkPTg4MDY0Nzc2OQpTY2huZWllciwgQnJ1Y2U6CiAgQXBwbGllZCBDcnlwdG9ncmFwaHk6IFByb3RvY29scywgQWxnb3JpdGhtcyBhbmQgU291cmNlIENvZGUgaW4gQwogICgybmQgRWRpdGlvbikKICBKb2huIFdpbGV5ICYgU29ucwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLcnlwdG9ncmFwaGllIChBbGJvaW4sIDI3LiBOb3YgMTk5NywgMTg6NDI6MTYpOgp+IyEgcm49Um9jaHVzIHJ0PTg4MDY0ODcwOCByZz1hbnplaWdlbgp+IyEgdGlkPTg4MDY0Nzc2OQpCZXV0ZWxzcGFjaGVyIGF1cyBkZW0gdmlld2VnLXZlcmxhZyBpc3QgYXVjaCBndXQKZGVyIFRpdGVsIGlzdCBpcmdlbmR3YXMgbWl0IEtyeXB0b2dyYXBoaWUgbmF0dWVybGljaC4KCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS3J5cHRvZ3JhcGhpZSAoUm9jaHVzLCAyNy4gTm92IDE5OTcsIDE4OjU3OjEyKToKfiMhIHJuPUFsYm9pbiBydD04ODA2NTI1MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODA2NDc3NjkKRXMgZ2lidCB2b24gQmV1dGVsc3BhY2hlciAyIEJ1ZWNoZXIgdWViZXIgS3J5cHRvbG9naWUsCmRpZSBpbSBWaWV3ZWctVmVybGFnIGVyc2NoaWVuZW4gc2luZDoKCkJldXRlbHNwYWNoZXIsIEFsYnJlY2h0OgoxKSBLcnlwdG9sb2dpZQogIEVpbmUgRWluZnVlaHJ1bmcgaW4gZGllIFdpc3NlbnNjaGFmdCB2b20gVmVyc2NobHVlc3NlbG4sCiAgVmVyYmVyZ2VuIHVuZCBWZXJoZWltbGljaGVuCjIpIE1vZGVybmUgVmVyZmFocmVuIGRlciBLcnlwdG9ncmFwaGllCiAgVm9uIFJTQSB6dSBaZXJvLUtub3dsZWRnZQpJY2ggaGFiZSBkaWUgYmVpZGVuIG5pY2h0IGdlbGVzZW4sIGthbm4gZGF6dSBhbHNvIG5pY2h0IHZpZWwgc2FnZW4gOikKVm9uIGRlciBCZXNjaHJlaWJ1bmcgaGVyIGlzdCAoMSkgZWhlciBmdWVyIE5pY2h0bWF0aGVtYXRpa2VyIGFscyAoMikuCgpFaW4gYW5kZXJlcyBndXRlcyBCdWNoLCBkYXNzIGFiZXIgbWF0aGVtYXRpc2NoZSBHcnVuZGtlbm50bmlzc2UgZHJpbmdlbmQKdm9yYXVzc2V0enQsIGlzdDoKQmF1ZXIsIEZyaWVkcmljaCBMLjoKICBFbnR6aWZmZXJ0ZSBHZWhlaW1uaXNzZQogIE1ldGhvZGVuIHVuZCBNYXhpbWVuIGRlciBLcnlwdG9sb2dpZQogIFNwcmluZ2VyIFZlcmxhZwpEYXMgZ2VodCwgdm9yIGFsbGVtIGJlaSBkZW4ga2xhc3Npc2NoZW4gVmVyZmFocmVuLCBtZWhyIGluIGRpZSBUaWVmZSwKYmVoYW5kZWx0IGFiZXIgbnVyIHdlbmlnZSBtb2Rlcm5lIFZlcmZhaHJlbiB1bmQga2F1bSBQcm90b2tvbGxlLAp3YXMgZWluZSBkZXIgZ3Jvc3NlbiBTdGFlcmtlbiB2b24gQXBwbGllZCBDcnlwdG9ncmFwaGllIGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjIwMSB3YXIgenV2aWVsLi4uIChEYW5jZXIsIDI3LiBOb3YgMTk5NywgMTk6NDc6NDUpOgpIaSwKZGllIHp1IHZlcndhbHRlbmRlbiBEYXRlbiB3dXJkZW4gbmFjaCAyMDAgZmVobGVyZnJlaWVuLCBhdXRvbWF0aXNpZXJ0ZW4KU3BpZWx0YWdlbiBpbSBXZXR0cGFsYXN0IGVpbmZhY2ggenUgdmllbC4gRGllIFdlcnRlIHd1cmRlbiBkZXNoYWxiIHZvbiBtaXIKcmVzZXR0ZXQuIFdpciBmYW5nZW4gd2llZGVyIG1pdCBTcGllbHRhZyAxIGFuLiBFcyBkYXJmIGdld2V0dGV0IHdlcmRlbi4gOikKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAyMDEgd2FyIHp1dmllbC4uLiAoQW5hdG9sLCAyNy4gTm92IDE5OTcsIDE5OjQ4OjMzKToKfiMhIHJuPURhbmNlciBydD04ODA2NTY0NjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODA2NTY0NjUKTWFjaCBtYWwgZWluZW4gS2Fzc2Vuc3R1cnogLSByb3RlIG9kZXIgc2Nod2FyemUgWmFobGVuPyA6KQoKQW5hdG9sLCBuZXVnaWVyaWcKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBLcnlwdG9ncmFwaGllIChSb2NodXMsIDI3LiBOb3YgMTk5NywgMjE6Mzg6MzQpOgp+IyEgcm49Um9jaHVzIHJ0PTg4MDY1MzQzMiByZz1hbnplaWdlbgp+IyEgdGlkPTg4MDY0Nzc2OQoKSWNoIHd1cmRlIGdlYmV0ZW4sIGRpZSBQcmVpc2UgZnVlciBkaWUgQnVlY2hlciB6dSBuZW5uZW46ClNjaG5laWVyOiBBcHBsaWVkIENyeXB0b2dyYXBoeSAgICAgICAgICAgICAgICAgICAgICAgRE0gMTE1LDAwCkJhdWVyOiBFbnR6aWZmZXJ0ZSBHZWhlaW1uaXNzZSAgICAgICAgICAgICAgICAgICAgICAgRE0gNTgsMDAKQmV1dGVsc3BhY2hlcjogS3J5cHRvbG9naWUgICAgICAgICAgICAgICAgICAgICAgICAgICBETSAgMzQsMDAKQmV1dGVsc3BhY2hlcjogTW9kZXJuZSBWZXJmYWhyZW4gZGVyIEtyeXB0b2dyYXBoaWUgICBETSAgMzksODAKRGllIFByZWlzZSBzaW5kIHVuZ2VmYWVociBtaXQgZGVyIERpY2tlIGRlciBCdWVjaGVyIHZlcmdsZWljaGJhciA6LSkKKFByZWlzZSBiZWkgVGVsZWJ1Y2ggLSBBQkMgQnVlY2hlcmRpZW5zdCkKClBTOgpBcHBsaWVkIENyeXB0b2dyYXBoeSBpc3QgYXVjaCBhdWYgRGV1dHNjaCBlcnNjaGllbmVuLCBhbGxlcmRpbmdzCmdsYXViZSBpY2gsIGRhc3MgbnVyIGRpZSAxc3QgRWRpdGlvbiB1ZWJlcnNldHp0IGlzdC4KRGllIDJuZCBFZGl0aW9uIGlzdCBzdGFyayBlcndlaXRlcnQgd29yZGVuLgooSW5mb3MgdW50ZXIgaHR0cDovL3d3dy5jb3VudGVycGFuZS5jb20vYXBwbGllZC5odG1sIC0gZGllIFVudGVyc2NoaWVkZQogc2luZCBpbSBJbmhhbHRzdmVyemVpY2huaXMgaGVydm9yZ2Vob2JlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAyMDEgd2FyIHp1dmllbC4uLiAoQW5ha2luLCAyOC4gTm92IDE5OTcsIDA4OjQ1OjIxKToKfiMhIHJuPURhbmNlciBydD04ODA2NTY0NjUgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODA2NTY0NjUKT2NoaC4uLi5qZXR6dCBzZWggaWNoIGphIG5pY2h0IG1laHIgd2lldmllbGUgTXVlbnplbgppY2ggZ2V3b25uZW4gaGFiZS4uLi4KCkFuYWtpbi4gSGF0IG9mdCBnZXdldHRldC4KClAuUy46IFJvdGUgb2RlciBzY2h3YXJ6ZSBaYWhsZW4gd3VlcmRlIG1pY2ggYXVjaCBpbnRlcmVzc2llcmVuLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiAyMDEgd2FyIHp1dmllbC4uLiAoRGFuY2VyLCAyOC4gTm92IDE5OTcsIDEwOjA2OjE5KToKfiMhIHJuPUFuYWtpbiBydD04ODA3MDMxMjEgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODA2NTY0NjUKUm90ZSB1bmQgc2Nod2FyemUgWmFobGVuIGludGVyZXNzaWVyZW4gRXVjaD8gTmEgZGFubiBsb3MuLi4gOikKCk8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCnwgICAgICAgICAgICAgICAgICAgIERBUyBCVUNIIERFUiBaRUlURU4gICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIERpZSBHZXNhbXRkYXRlbiBkZXMgV2V0dHBhbGFzdGVzOiAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgIEFiZ2VzY2hsb3NzZW5lIFdldHRrYW1wZnRhZ2U6ICAgICAgICAgICAgICAgICAgICAgMjAwICB8CnwgIFN1bW1lIGRlciBhYmdlc2NobG9zc2VuZW4gV2V0dGVuOiAgICAgICAgICAgICAgICAxMzQxICB8CnwgIFN1bW1lIGRlciBFaW5zYWV0emU6ICAgICAgICAgICAgICAgICAgICAgICAgIDE4NTEyNDc2ICB8CnwgIFN1bW1lIGRlciBHZXdpbm5lOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1NzI1Njk2ICB8CnwgIER1cmNoc2Nobml0dGxpY2hlIEVpbnphaGx1bmcgcHJvIFNwaWVsZXI6ICAgICAgIDE1MjU2ICB8CnwgIER1cmNoc2Nobml0dGxpY2hlciBHZXdpbm4gcHJvIFNwaWVsZXI6ICAgICAgICAgIDExMTMxICB8Ck8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCk8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCnwgICAgICAgICAgREFTIEJVQ0ggREVSIFJFS09SREUgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRGllIHZlcnplaWNobmV0ZW4gUmVrb3JkZTogICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSG9lY2hzdGdld2lubjogICAgICAgICAgICAgIDIyMjAwMDAgICB8CnwgSG9lY2hzdGdld2lubiB2b246ICAgICAgICAgICBBbmFraW4gICB8Ck8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1PCgpNaXQgYW5kZXJlbiBXb3J0ZW4uLi4gYWxzIFNhbmR0aWdlciBrYW5uIG1hbiBnYW56IGd1dCBkYXZvbiBsZWJlbi4gOykKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktpc3MgdW5kIFJlbmF0dXMgdmVybWFlaGxlbiBzaWNoICEhISAoR3JpbW1ib3JuLCAxMS4gRGV6IDE5OTcsIDExOjA5OjA1KToKfiMhIG9uPVJlbmF0dXMgb3Q9ODgxNzAwMzA4IG9nPWFsbGdlbWVpbmVzCktpc3MgdW5kIGljaCwgUmVuYXR1cywgd29sbGVuIGJla2FubnRnZWJlbgpkYXMgd2lyIGRlbW5hZWNoc3QgaGVpcmF0ZW4gd2VyZGVuLgoKV2FubiB3aXIgZ2VuYXUgaGVpcmF0ZW4gd2lyZCBub2NoIGJla2FubnRnZWdlYmVuLAplaW5nZWxhZGVuIHNpbmQgYWxsZSBkaWUgdW5zIGtlbm5lbi4KClBTOiBXaXIgYnJhdWNoZW4gZGFubiBhdWNoIG5vY2ggZWluZW4gTWFnaWVyIGZ1ZXIgZGllIFRyYXV1bmcgIQoKR3J1c3MKICAgICAgUmVuYXR1cyAmIEtpc3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRyYXV1bmcgdm9uIEtpc3MgdW5kIFJlbmF0dXMgKEdyaW1tYm9ybiwgMTYuIERleiAxOTk3LCAxMDozNzoyMCk6Cn4jISBvbj1SZW5hdHVzIG90PTg4MjIyMTY4MCBvZz1hbGxnZW1laW5lcwpLaXNzIHVuZCBpY2ggaGFiZW4gdW5zIGVuZGxpY2ggZnVlciBlaW4gRGF0dW0gZW50c2NoaWVkZW4sCmRpZSBUcmF1dW5nIHdpcmQgYW0gMTcuMTIuOTcgdW0gMjEgVWhyCmluIGRlciBLYXBlbGxlIHZvbiBOaWViZWxoZWltIHN0YXR0ZmluZGVuLgoKRWluZ2VsYWRlbiBzaW5kIGFsbCB1bnNlcmUgRnJldW5kZSB1bmQgQmVrYW5udGVuLAp1bmQgd2VyIGtvbW1lbiB3aWxsLgoKR3J1c3MKICAgICBLaXNzICYgUmVuYXR1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU1VDSEUgQVJUSUtFTCEgKEFuYXRvbCwgMTguIERleiAxOTk3LCAwMjozNTowNSk6CldlZ2VuIHBsb2V0emxpY2ggd2llZGVyIGF1ZmtvbW1lbmRlciBBa3R1YWxpdGFldCBzdWNoZSBpY2ggZWluZW4KYWx0ZW4gQXJ0aWtlbCBkZXIgTVBBLCB3ZXIgaWhuIG5vY2ggaGF0LCBtb2VnZSBpaG4gbWlyIGJpdHRlIG1haWxlbiEKCkRhdGllcnQgZXR3YTogICBTZXB0ZW1iZXIgJzk2ClZlcmZhc3NlcjogICAgICBUb2V0ZXIKVGl0ZWwgZXR3YTogICAgIEhhc3QgRHUga2VpbmUsIGthdWYnIERpciBlaW5lIQoKTWVyY2ksCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTVUNIRSBBUlRJS0VMISAoQW5hdG9sLCAxOC4gRGV6IDE5OTcsIDE0OjA5OjI2KToKfiMhIHJuPUFuYXRvbCBydD04ODI0MDg5MDUgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODI0MDg5MDUKSWNoIGhhYmUgYmVyZWl0cyAyIE1haWxzIGRlcyBBcnRpa2VscyBiZWtvbW1lbiwKdmllbGVuIERhbmsgZnVlciBkaWUgc2NobmVsbGUgSGlsZmUhIDopCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYXJld2VsbC4uLi4gKFlhbnRybywgMjIuIERleiAxOTk3LCAxMjoyNDowMSk6CgpIYWxsbyBtZWluZSBMaWViZW4uCgpXaWUgdmllbGxlaWNodCBlaW5pZ2UgaGllciBzY2hvbiBnZW1lcmt0IGhhYmVuLCBiaW4gaWNoIHNlaXQgaGV1dGUga2VpbgpFcnptYWdpZXIgbWVoci4gRGVyIEdydW5kIGhpZXJpbiBsaWVndCBpbiB3b2hsIG5pY2h0IHp1IHVlYmVyd2luZGVuZW4KRGlmZmVyZW56ZW4gendpc2NoZW4gbWlyIHVuZCBkZXIgb2JlcnN0ZW4gRnVlaHJ1bmdzZWJlbmUgZGVzIE11ZHMuIERpZQpnZW5hdWUgQmVncnVlbmR1bmcgbWVpbmVyIERlZ3JhZGllcnVuZyB3aWxsIGljaCBoaWVyIG5pY2h0IGVya2xhZXJlbiwgZGVubgppY2ggZGVua2UsIGRhc3MgZGFzIGRpZSBQZmxpY2h0IGRlcmVyIGlzdCwgZGllIGVzIHZvbGx6b2dlbiBoYWJlbi4gQWJlciBkZW4KR3J1bmQgZnVlciBtZWluZW4gd2VpdGVyZW4gQWJnYW5nIGthbm4gaWNoIG9mZmVubGVnZW46CgpFcyBzY2hlaW50IG1pciBoaWVyIGltIE1HIG1pdCBzZWluZW4gdmllbCB6dSBmZXN0Z2VmYWhyZW5lbiB1bmQgdW5mbGV4aWJsZW4KU3RydWt0dXIgbmljaHQgbWVociBtb2VnbGljaCwgbWVpbmUgQXJiZWl0IHNvIHp1IG1hY2hlbiwgd2llIGljaCBkYXMgZGVua2UuClp1bSBlaW5lbiBzaW5kIGRhcyB0ZWlsd2Vpc2Ugb2ZmZW4gYXVzZ2V0cmFnZW5lIEFmZmluaXRhZXRlbiBlaW5pZ2VyIGFuZGVyZXIKRU1zIG1pciBnZWdlbnVlYmVyLCB6dW0gYW5kZXJlbiBkZW5rZSBpY2gsIGRhc3MgaGllciBpbSBNRyBkaWUgZmFsc2NoZW4KUHJpb3JpdGFldGVuIGdlc2V0enQgd2VyZGVuLCB3ZW5uIGVzIGRhcnVtIGdlaHQsIGRhcyBNdWQgdm9yYW4genUgYnJpbmdlbi4gCgpFcyBlcnNjaGVpbnQgbmljaHQgbWVociBkYXMgV2ljaHRpZ3N0ZSB6dSBzZWluLCB3YXMgbWFuIGtyZWF0aXYgYW4gZWluZW0gTXVkIApiZXdlZ3Qgb2RlciB3aWUgbWFuIHNlaW5lIElkZWVuIGVpbmJyaW5ndCwgc29uZGVybiBkZXIgd2ljaHRpZ3N0ZSBQdW5rdApzY2hlaW50IGhpZXIgZGllIERpcGxvbWF0aWUgenUgc2Vpbi4gRGllc2UgUHJpb3JpdGFldCBsaWVndCBtaXIgbmljaHQsIHdpZQppaHIgd29obCBhbGxlIHdpc3N0IHVuZCBkYSBpY2ggenUgZWhybGljaCBiaW4genUgdmVyc3ByZWNoZW4sIGRhc3MgaWNoIG1pY2gKZGllc2VtIFN5c3RlbSBhbnBhc3NlbiBrYW5uLCBiZWthbSBpY2ggZWluZW4gYXVmIGRlbiBEZWNrZWwuIAoKRnVlciBtaWNoIHN0ZWh0IHVuZCBzdGFuZCBkYXMgTXVkIGltbWVyIGFuIGVyc3RlciBTdGVsbGUsIGRlciBTcGllbHNwYXNzLApkaWUgS3JlYXRpdml0YWV0LCBkYXMgV2VpdGVya29tbWVuIGRlcyBTeXN0ZW1zLiBNaXIgZ2VodCBlcyBuaWNodCB1bSBkaWUKU3RhYmlsaXNpZXJ1bmcgZGVzIHN0YXR1cyBxdW8sIGRlbm4gZGFzIGlzdCBkZXIgVG9kIGRlcyBNR3MuIFVuZCB3ZW5uIGljaAptZWluZSBNZWludW5nIGVpbm1hbCBsYXV0IHNhZ2UsIGRhbm4gdHUgaWNoIGRhcywgd2llIGljaCBlcyBpbW1lciBoaWVyCmdlbWFjaHQgaGFiZSwgbmFlbWxpY2ggc2VociBlbW90aW9uZWxsLCB3YXMgZGFyYW4gbGllZ3QsIGRhc3MgZGFzIE1HIG1pcgpuaWNodCBnbGVpY2hndWVsdGlnIGlzdC4gQW5kZXJlIGxlZ2VuIGFiZXIgZGVuIGhvZWhzdGVuIFdlcnQgYXVmIGVpbmUKS29tcGF0aWJpbGl0YWV0IHp3aXNjaGVuIE1hZ2llcmxldmVsIHVuZCBVbWdhbmdzdG9uLiBEaWVzZSBpc3QgYmVpIG1pcgpzaWNoZXIgbmljaHQgZ2VnZWJlbi4gV2VubiBlcyBhYmVyIG1laW4gVG9uIGlzdCwgZGVyIGhpZXIgc3RvZXJ0IHVuZCBkZXIKYW5nZWJsaWNoIGRhcyBTcGllbCB1bmQgZGllIFN0aW1tdW5nIGthcHV0dCBtYWNodCwgZGFubiBoYXQgZGFzIE1FSU5FUgpNZWludW5nIG5hY2ggbmljaHRzIG1pciBtZWluZW0gTGV2ZWwgenUgdHVuLiBFcyBrYW5uIG5pY2h0IHNlaW4sIGRhc3MgZXMKZWdhbCBpc3QsIHdlbm4gaWNoIGhpZXIgU2Nocm90dCB1bmQgQmVsZWlkaWd1bmdlbiBpbiBkaWUgWmVpdHVuZyBzZXR6ZSwgTlVSLAp3ZWlsIGljaCBrZWluIEVNIG1laHIgYmluLiBXZW5uIG1laW4gVG9uIHN0b2VydCwgZGFubiBhdWNoLCB3ZW5uIGljaCBlaW4KU3BpZWxlciB3YWVyZS4gCgpEYSBpY2ggYmVpIG1laW5lciBMaWViZSB6dW0gTUcgaW1tZXIgbWVpbmUgZWlnZW5lIFBlcnNvbiB6dXJ1ZWNrZ2VzdGVsbHQKaGFiZSwgd2VyZGUgaWNoIGRhcyBhdWNoIGpldHp0IHR1bi4gSWNoIGRlbmtlLCBkYXNzIGRpZSBWZXJnaWZ0dW5nIGRlcgpBdGhtb3NwaGFlcmUgenUgd2VpdCBmb3J0Z2VzY2hyaXR0ZW4gaXN0LCBhbHMgZGFzIGVzIG5vY2ggZWluZSBrcmVhdGl2ZQpadWt1bmZ0IGZ1ZXIgbWljaCBnZWJlbiBrb2VubnRlLiBEYWZ1ZXIgaXN0IGF1Y2ggZGFzIFZlcnRyYXVlbiBhdWYgYmVpZGVuClNlaXRlbiB6dSB6ZXJzdG9lcnQuIEFsc28gZ2VoZSBpY2guCgpJY2ggd2Vpc3MsIGRhc3MgaWNoIGhpZXIgaW1tZXIgZWluZSB1bXN0cml0dGVuZSBQZXJzb24gd2FyLCBhYmVyIGRhcyBoYWIgaWNoCmF1Y2ggc28gZ2V3b2xsdC4gV2VubiBpY2ggZXR3YXMgaGFzc2UsIGRhc3MgaXN0IGRhcyBHbGVpY2hndWVsdGlna2VpdC4gTWFuCmthbm4gbWljaCBsaWViZW4gb2RlciBoYXNzZW4sIGRhcyBpc3QgbWlyIGFsbGVzIFJlY2h0LCBhYmVyIGJpdHRlIGltbWVyCm9mZmVuIHVuZCBtaXQgZWhybGljaGVuIEVtb3Rpb25lbiAoQXVmIGRpZXNlciBCYXNpcyBrYW5uIG1hbiBzb2dhciBtaXQKQW5hdG9sIGtsYXJrb21tZW4gOikgKS4gSWNoIHdlaXNzIG5pY2h0LCB3aWUgZGllIFp1a3VuZnQgYXVzc2VoZW4gd2lyZCwgYWJlcgppY2ggaG9mZmUsIGRhc3MgbmljaHQgYWxsZXMgc3RhZ25pZXJ0IHVuZCBpY2ggaG9mZmUsIGRhc3MgaWhyIG1pY2ggbmljaHQKZ2FueiB2ZXJnZXNzdC4gSWNoIGhhYiBuaWNodCB2aWVsIGhpZXIgZ2VtYWNodCwgYWJlciBpY2ggaGFiIGFsbGVzIHZlcnN1Y2h0LAp3YXMgaW4gbWVpbmVyIE1hY2h0IHN0YW5kLCB1bSB3YXMgenUgYmV3ZWdlbi4KCldlbm4gaWhyIG1hbCBuZW4ga2xlaW5lbiBTa293ZSB0cmVmZnQsIGRhbm4ga251ZGRlbHQgaWhuIGxpZWIgdm9uIG1pci4uLiBlcwpzaW5kIGRpZSBzdWVzc2VzdGVuIGtsZWluZW4gV2ljaHRlLCBkaWUgaWNoIGtlbm5lLiBXZW5uIEV1Y2ggbWFsIG5pY2h0IG5hY2gKTWV0emVsbiBpc3Qgc29uZGVybiBuYWNoIEJlcmllc2VsdW5nLCBOYWNoZGVua2VuLCBQaGlsb3NvcGhpZXJlbiwgZGFubiBnZWh0CmlucyBIYXVzIGRlciBGYXJiZW4gdW5kIGxlc3QsIHdhcyBNSUNIIGltbWVyIHp1IGlubmVyc3QgYmV3ZWd0IGhhdC4gTGVzdAp6d2lzY2hlbiBkZW4gWmVpbGVuIHVuZCBpaHIgd2VyZGV0IGVya2VubmVuLCB3ZXIgWWFudHJvIGlzdC4gV2VubiBpaHIgYmVpbQpPcmFrZWwgc2VpZCB1bmQgaWhyIGV1cmUgU3BydWVjaGUgYWJob2x0IGZ1ZXIgZGllIFpUcywgZGFubiBzZWlkIGdld2lzcywKZGFzcyBpY2ggaW4gZGVuIFplaWxlbiBkZXIgUmVpbWUgaW1tZXIgbWl0IGdhbnplbiBIZXJ6ZW0gYmVpIEV1Y2ggYmluLgoKRWluIGxldHp0ZXIgR3J1c3MgZ2VodCBhbiBkaWUgMi0zIExldXRlLCBkaWUgbWljaCBXSVJLTElDSCBrZW5uZW4sIGRpZQpuaWNodHMgYXVmIEdlc2NoaWNodGVuIHVuZCBHZXJ1ZWNodGUgZ2ViZW4gc29uZGVybiB2aWVsIEFyYmVpdCB1bmQgU3RyZXNzCnVuZCBhdWNoIEVtb3Rpb25lbiBkYXJpbiBpbnZlc3RpZXJ0ZW4sIG1pY2gga2VubmVuenVsZXJuZW4uIFZpZWxlIGhhdHRlbgpuaWNodCBkZW4gTXV0IG9kZXIgZGVuIFdpbGxlbi4gRGFua2UgYW4gRGFuY2VyIHVuZCBGZW5jaHVyY2ggZGFmdWVyLCBkYXNzCmlociBtZWluIExlYmVuIGdlcmV0dGV0IGhhYnQuIERhbmtlIGFuIGRpZSAxMiwgZGllIG1pY2ggZnVlciBlaW5lbiBFTSBkZXMKVmVydHJhdWVucyBnZWhhbHRlbiBoYWJlbi4gRGFua2UgYW4gQm9pbmcgZnVlciBkaWUgQ2hhbmNlLiBEYW5rZSBhbiBKb2YsCmZ1ZXIgZGllc2VzIHd1bmRlcmJhcmUgU3BpZWwuIERhbmtlIGFuIGRlbiBNZW5zY2hlbiwgZGVuIGljaCB1ZWJlciBhbGxlcwpMaWViZTogU2lsdmFuYS4gRnVlciB1bnZlcmdlc3NlbmUgU3R1bmRlbiB1bmQgU2VrdW5kZW4uIEZ1ZXIgYWxsIGRpZSBMaWViZQp1bmQgZGFmdWVyLCBkYXNzIER1IG1pciB6dW1pbmRlc3QgaW4gUkwgd2VpdGVyIHplaWdlbiB3aXJzdCwgd2FzIGVjaHRlCkZyZXVuZHNjaGFmdCBpc3QuCgpMZWJ0IHdvaGwgdW5kIGVpbiBiZXNpbm5saWNoZXMgV2VpaG5hY2h0c2Zlc3QuCgpZYW50cm8sIGRlbSBpaHIgQUxMRSBuaWUgZ2xlaWNoZ3VlbHRpZyB3YXJkLgoKUC5TLjogRGEga2VpbmVyIGRpZSBPcmdhbmlzYXRpb24gdWViZXJuZWhtZW4gd2lsbCwgZmFlbGx0IGRlciBTdGFtbXRpc2NoIGluCktvZWxuIGF1cyB1bmQgaWNoIHdlcmQgd29obCBhbSAyLjEuMTk5OCBhYiAxODAwIHVociBhbGxlaW5lIGltIEJvcnNhbGlubyAKc2l0emVuIHVuZCBtZWluZW4gS3VtbWVyIGVydHJhZW5rZW4uLi4gd2FzIHNvbGxzLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1hbCB3YXMgenVyIENvcHlyaWdodGVudHdpY2tsdW5nIChEaG9qYWt0LCAyMy4gRGV6IDE5OTcsIDIwOjQ1OjIyKToKRWlnZW50bGljaCB3aWxsIGljaCBibG9zcyBtYWwgYXVmIDIgU2VpdGVuIGhpbndlaXNlbiwgZGllIG1pciBzbyB1ZWJlcm4gd2VnCmdlbGF1ZmVuIHNpbmQsIHVuZCB6d2FyOgpodHRwOi8vd3d3LmhvdHdpcmVkLmNvbS93aXJlZC93aGl0ZXBhcGVyLmh0bWwKYXVzIGRlciBzZWl0ZQpodHRwOi8vd3d3LnB1YmxpYy1kb21haW4ub3JnLwpTb3dlaXQgd2VnIGlzdCBBbWVyaWthIGphIG5pY2gsIHVuZCB6dW1pbmRlc3QgbWl0IG5lbSBoYWxiZW4gQXVnZSBzb2xsdGUgbWFuCnNvbGNoZSBFbnR3aWNrbHVuZ2VuIHNjaG9uIHZlcmZvbGdlbi4KS2hpZGFyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2xlaW5lIEJla2FubnRtYWNodW5nIChIYW5nb3ZlciwgMjUuIERleiAxOTk3LCAxODozMjozNCk6Ck1vaW4hCgpIaWVybWl0IG1vZWNodGUgaWNoIGFsbHNlaXRzIGt1bmR0dW4sIGRhc3MgaWNoIG5pY2h0IGxhZW5nZXIgbWl0IEthbm5peAp2ZXJoZWlyYXRldCBiaW4uCgotSGFuZ292ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGYXJld2VsbC4uLi4gKFFpdGVzcywgMjguIERleiAxOTk3LCAxNTo1Njo1NSk6Cn4jISBybj1ZYW50cm8gcnQ9ODgyNzg5ODQxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODgyNzg5ODQxCnNlaXMgZHJ1bS4gZWdhbCwgb2Igd2FzIG9yZ2FuaXNpZXJ0IHdpcmQgb2RlciBuaWNodDoKUWl0ZXNzIGlzdCBhdWYgamVkZW4gZmFsbCBhdWNoIGFtIDIuMS4gZXR3YSBhYiAxOCB1aHIgaW0gYm9yc2FsaW5vIHVuZCBwcm9zdGV0CnlhbnRybyB6dS4KClFJKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRmFyZXdlbGwuLi4uIChNb3Jnb3RoLCAyOS4gRGV6IDE5OTcsIDA3OjMzOjA3KToKfiMhIHJuPVFpdGVzcyBydD04ODMzMjEwMTUgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODI3ODk4NDEKSXMgendhciBlaW4gRnJlaXRhZyB1bmQgYWxsZXMgd2lyZCBTY2h3aW5ldm9sbCBzZWluIChBMSksIGFiZXIgaWNoIHByb2JpZXJzCnRyb3R6ZGVtIChldnRsLiBzb2dhciBtaXQgQmllbmNoZW4pCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGYXJld2VsbC4uLi4gKEJhYm9vbiwgMjkuIERleiAxOTk3LCAxMDozODozNSk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg4MzM3NzE4NyByZz1hbnplaWdlbgp+IyEgdGlkPTg4Mjc4OTg0MQpJY2ggd2VyZCB3b2hsIGF1Y2gga29tbWVuLiBIYXQgaXJnZW5kd2VyIHdhcyBkYWdlZ2VuLCB3ZW5uIGljaCBhdWNoIG1laW5lbgpQaG90b2FwcGFyYXQgbWl0YnJpbmdlPyA6LSkKCkJhYm9vbigpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBGYXJld2VsbC4uLi4gKFd1cnplbCwgMjkuIERleiAxOTk3LCAxMzowOTozMSk6Cn4jISBybj1CYWJvb24gcnQ9ODgzMzg4MzE1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODgyNzg5ODQxCm5pY2h0LCBzb2xhbmdlIGR1IG1pY2ggZGFtaXQgdmVyc2Nob25zdCA6KQoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdXNpa2RhdGVuYmFuayAoR3VsZHVrYXQsIDMwLiBEZXogMTk5NywgMjA6NTI6NDApOgpJY2ggc3VjaGUgaW0gV1dXIG5lIE11c2lrZGF0ZW4gYmFuaywgaW4gZGVyIG1hbiBlaW4gTGllZCwgdm9uIGRlbSBtYW4gbnVyIGRlbgpUaXRlbCBvZGVyIGVpbiB0ZWlsIGRlcyB0ZXh0ZXMga2VubnQgc3VjaGVuIGthbm4gKG1pdCBzYWVuZ2VyLCBhdWYgd2VsY2hlciBjZApkYXMgZHJhdWYgaXN0IGV0YykKZ2lidHMgc28gd2FzPwpHRAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRmFyZXdlbGwuLi4uIChHcmltbWJvcm4sIDMwLiBEZXogMTk5NywgMjM6NTE6MTQpOgp+IyEgcm49V3VyemVsIHJ0PTg4MzM5NzM3MSByZz1hbnplaWdlbgp+IyEgdGlkPTg4Mjc4OTg0MQpOdXIga3VyejogSW0gQm9yc2FsaW5vIGlzdCBhYiBldHdhIDE5IFVociBmdWVyIDMwIExldXRlIGJlc3RlbGx0LgpEYXMgaXN0IGV0d2EgZGFzIGZ1ZW5mZmFjaGUgZGVyIEFubWVsZHVuZ2VuLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNdXNpa2RhdGVuYmFuayAoSmltZGlncml6LCAzMS4gRGV6IDE5OTcsIDAwOjIxOjU2KToKfiMhIHJuPUd1bGR1a2F0IHJ0PTg4MzUxMTU2MCByZz1hbnplaWdlbgp+IyEgdGlkPTg4MzUxMTU2MApIYWksCgpWaWVsbGVpY2h0IGhhc3QgZHUgamEgR2x1ZWNrIGltIExFTyBNdXNpay1BcmNoaXY6CiBodHRwOi8vd3d3Lmxlby5vcmcvYXJjaGl2L211c2ljLwoKRGllIFN1Y2hlIGlzdCBub2NoIG5pY2h0IDEwMCUgc28gd2llIGR1IApEaXIgZGFzIHZvcnN0ZWxsc3QgYWJlciB3aXIgYXJiZWl0ZW4gZGFyYW4uCgpDaWFvLAogSmltIERpR1JpegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogRmFyZXdlbGwuLi4uIChXdXJ6ZWwsIDMxLiBEZXogMTk5NywgMDA6NDc6MzgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg4MzUyMjI3NCByZz1hbnplaWdlbgp+IyEgdGlkPTg4Mjc4OTg0MQpkYXMgaXN0IGd1dCBzbywgaWNoIGJyaW5nIG1laW4gendlaXRpIG1pdCA6KQoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWYgZWluIE5ldWVzLi4uIChHcmltbWJvcm4sICAxLiBKYW4gMTk5OCwgMDI6MDQ6NDQpOgpBTHNvLCBlaW4gZnJvaGVzLCBnbHVlY2tsaWNoZXMgdW5kIGVyZm9sZ3JlaWNoZXMgKHdhcyBhdWNoIGltbWVyIG1hbiBkYXJ1bnRlcgp2ZXJzdGVoZW4gbWFnKSBKYWhyIDE5OTggZXVjaCBhbGxlbi4KVW5kIGdsYXVidCBibG9zcyBuaWNodCwgZGFzcyBpY2ggZGFzIGdhbnplIEphaHIgaGluZHVyY2ggc28gbmV0dGUgQXJ0aWtlbApzY2hyZWliZW4gd2VyZGUuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY2QncyAoVHJla2FuLCAgMS4gSmFuIDE5OTgsIDE2OjA4OjUwKToKa2VubnQgamVtYW5kIGVpbiBMaW51eC1Qcm9ncmFtbSx3b21pdCBtYW4gQ0QtSHVlbGxlbiBlcnN0ZWxsZW4vZHJ1ZWNrZW4ga2Fubj8KQW0gYmVzdGVuIHdhcyBtaXQgR1BMIG9kZXIgc28gOykKVHJla2FuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdXNpY1RlWCAoTWllemUsICAxLiBKYW4gMTk5OCwgMTk6NTA6MDcpOgpIaSBNdWRkaWVzLAoKa2VubnQgamVtYW5kIGVpbmUgZGV1dHNjaGUgRG9rdSBmdWVyIE11c2ljVGVYPyBJY2ggaGFiIGVpbmUgYXVmIGVuZ2xpc2NoLCBhYmVyCmRhIGhhcGVydHMgbWl0IGRlciBTcHJhY2hlLgoKR3J1c3MgTWllemUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTVUNIRSBBUlRJS0VMISAoU3VzaGksICAyLiBKYW4gMTk5OCwgMTQ6MzE6MTQpOgp+IyEgcm49QW5hdG9sIHJ0PTg4MjQwODkwNSByZz1hbnplaWdlbgp+IyEgdGlkPTg4MjQwODkwNQpBdWYgSldaJ3MgU2VpdGUgaXN0IGVpbiBMYVRlWCBzdHlsZS4KClN1c2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTXVzaWNUZVggKFByYSwgIDIuIEphbiAxOTk4LCAyMDoyMjozMyk6Cn4jISBybj1NaWV6ZSBydD04ODM2ODA2MDcgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODM2ODA2MDcKSGVsbXV0IEtvcGthOiBMYVRlWCBCYW5kIDIuIEVyZyJhbnp1bmdlbiAtLSBtaXQgZWluZXIgRWluZiJ1aHJ1bmcgaW4gTUVUQUZPTlQuCkFkZGlzb24gV2VzbGV5LCBCb25uLCBQYXJpcywgUmVhZGluZywgMTk5NS4gcHAgMTQzLS0xODIuCgpWaWVsIFNwYXNzLiBJc3QgaCJvbGxpc2NoIHVtc3QiYW5kbGljaC4KClByYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClppbW1lciBnZXN1Y2h0IChDYXR3ZWF6bGUsICA0LiBKYW4gMTk5OCwgMjI6NDg6MTApOgpNb2luIQpNb2luIQpJY2ggc3VjaGUgZWluIFppbW1lciBmdWVyIG1laW5lbiBXRy1OYWNoYmFybiBpbiBCZXJsaW4gdm9tCjEuMy4tMTUuMDUuIG1vZWdsaWNoc3QgemVudHJhbCA8NjAwRE0vTW9uYXQuCldhZXIgc2Nob2VuLCB3ZW5uIGplbWFuZCB3YXMgcGFzc2VuZGVzIHdlaXNzIDotKQpCaXR0ZSBwZXIgbWFpbCBhbiBtaWNoLgpNZXJjaSEKTWVyY2khCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZhcmV3ZWxsLi4uLiAoVHVuaXhndXQsICA1LiBKYW4gMTk5OCwgMTI6MTI6NDUpOgp+IyEgcm49WWFudHJvIHJ0PTg4Mjc4OTg0MSByZz1hbnplaWdlbgp+IyEgdGlkPTg4Mjc4OTg0MQpJY2ggd2lsbCBtaWNoIG1hbCBPVVRFTjoKCigqU0NITklJSUVFRUVGKikKCidzIEthcmF0ZS1ad2VyY2hsZS4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpcm50b2QgISAoUmFudGFucGxhbiwgIDUuIEphbiAxOTk4LCAxMjo0MDoxNSk6CgpIaWVybWl0IGdlYmUgaWNoIG1laW5lbiBzb2ZvcnRpZ2VuIHVud2lkZXJydWZsaWNoZW4gSGlybnRvZCBiZWthbm50LCBkZXIKc2ljaCBzcG9udGFuIG5hY2ggbGVzZW4gZGVyIE1QQSBlaW5zdGVsbHRlLCBkYW5rIGRlciBpbnRlbGVrdHVlbGwKc3RpbXVsaWVyZW5kZW4KVGhlbWVuOiBGaWNrZW4sIFNwZXJtYSwgS29uZG9tZSAoYmVudXR6dCksIEtvbmRvbWUgKHVuYmVudXR6dCksIEVyem1hZ2llcgooYmVudXR6dCksIEVyem1hZ2llciAodW5iZW51dHp0KSwgRXJ6bWFnaWVyIChiZXNjaG11dHp0KSwgRXJ6bWFnaWVyCih1bmJlc2NobXV0enQpLApFcnptYWdpZXIgKGVoZW1hbmxpZ2UpLCBFcnptYWdpZXIgKHp1a3VlbmZ0aWdlKSwgRXJ6bWFnaWVyIGxnZW1laW5lbiksCkVyem1hZ2llciAoaW0gc3BlemllbGxlbiksIEVyem1hZ2llciAoRXJ6bWFnaWVyKSwgRXJ6bWFnaWVyIChkaWUgZ3V0ZW4pLApFcnptYWdpZXIgKGRpZSBib2VzZW4pLCBCZXRyaWVic3N5c3RlbWUgKGJlbnV0enQpLCBCZXRyaWVic3N5c3RlbWUKKGF1c2dlbHV0c2NodCksIEJldHJpZWJzc3lzdGVtZSAoZGllIGd1dGVuKSwgQmV0cmllYnNzeXN0ZW1lIChkaWUgc2NobGVjaHRlbiksCmRhcyBDaHJpc3RlbnR1bSAoYmVudXR6dCksIGRhcyBDaHJpc3RlbnR1bSAodW5iZWZsZWNrdCksIGRhcyBDaHJzaXRlbnR1bSAob2huZQpLcmV1enp1ZWdlKSwgZGFzIENocnNpdGVudHVtIChtaXQgS3JldXp6dWVnZW4pLCBkaWUgSW5xdWlzaXRpb24gKE5PQk9EWQpFWFBFQ1RTIFRIRSBTUEFOSVNIIElOUVVJU0lUSU9OKSwgUm9iZXJ0byBCbGFuY28gKGFBZWggPyksIHVuZCB2aWVsZW0gdmllbGVtCm1laHIuLi4KCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhpcm50b2QgISAoRmV1ZXJ3ZWhyLCAgNS4gSmFuIDE5OTgsIDEzOjA5OjA0KToKfiMhIHJuPVJhbnRhbnBsYW4gcnQ9ODg0MDAwNDE1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg0MDAwNDE1CldvdyEgR3JhdHMhCgpJY2ggd3Vzc3RlIGRvY2gsIGRhc3MgZGllIE1QQSB6dSB3YXMgZ3V0IGlzdCEhCgogICAgIEZldWVyd2VociAoZnJhZ3Qgc2ljaCwgb2IgT2V0dGkgamV0enQgYW5kZXJzIGF1c3NpZWh0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIaXJudG9kICEgKFNpbHZhbmEsICA1LiBKYW4gMTk5OCwgMTg6NDg6MjEpOgp+IyEgcm49RmV1ZXJ3ZWhyIHJ0PTg4NDAwMjE0NCByZz1hbnplaWdlbgp+IyEgdGlkPTg4NDAwMDQxNQpJY2ggd29sbHRlIGF1Y2ggZ3JhZCBmcmFnZW4sIG9iIGRhIG5vY2ggd2FzIGFic3RlcmJlbiBrb25udGUuLi4gOy0pCkFiZXIgc2Nob2VuZW4gRGFuayBmdWVyIGRpZSB0cmVmZmVuZGUgWnVzYW1tZW5mYXNzdW5nLCBSYW50YW50dGkuIERhcwplcnNwYXJ0IG1pciBkb2NoIGdsZWljaCBuZSBTdHVuZGUgWmVpdHVuZ2xlc2VuLiA6KQoKICBTaWx2YW5hIC4gbyBPICh1ZWJlcmdlaGUgYWxsZXMpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIaXJudG9kICEgKFd1cnplbCwgIDUuIEphbiAxOTk4LCAxODo1Mjo0Nyk6Cn4jISBybj1TaWx2YW5hIHJ0PTg4NDAyMjUwMSByZz1hbnplaWdlbgp+IyEgdGlkPTg4NDAwMDQxNQpiYWgsIHVlYmVyZ2VoZSBhbGxlcy4uLiBkdSBiaXN0IGRvY2ggdmllbCB6dSBuZXVnaWVyaWcgKmxlY2h6KiA6KQoKd3VyemVsIChhdWNoIG1hbCBuIGVpbnplaWxlciBzY2hyZWliZW4gd29sbGVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUb3AgVGVuIGRlciBBbGlhc3NjaHJlaWJlciAoSGF0ZSwgIDcuIEphbiAxOTk4LCAxNjo1NTo0Nyk6CkhpZXIgc2luZCBkaWUgQnl0ZXMgZGllIGlociBzbyBpbiBFdXJlbiBBbGlhc2VuIHZlcmJyYXRldDoKCmFuYXRvbC5vIDQxNzIxCmFuY2FsYWdvbi5vIDMyMTYwCnNtZXJ0Lm8gMzEzMTYKY2FyYWRocmFzLm8gMzEyMzIKYmliby5vIDMwNTc1CnJ5bmUubyAyODc3Ngp0b2xnYW4ubyAyNzU4Mwppc2lsZHVyLm8gMjczNjAKcGFyYWNlbHN1cy5vIDI2NTg2CmdvbGVtLm8gMjU1MTIKClRqYSwgZnVlaGx0IEV1Y2ggYW5nZXNwcm9jaGVuIHVuZCBsb2VzY2h0LCBzb25zdCBtYWNoIGljaHMgOy0pCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRvcCBUZW4gZGVyIEFsaWFzc2NocmVpYmVyIChTaGFyaWEsICA3LiBKYW4gMTk5OCwgMTg6MzA6NTEpOgp+IyEgcm49SGF0ZSBydD04ODQxODg1NDcgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODQxODg1NDcKYWVobQp3YXMgaXMgZGVubiBhbiA0MWsgc29vIG1hc3NpZyA/PyBhbHNvIGljaCBmaW5kZSBtYW4gc29sbHRlIGpldHp0IG1hbCBzYWdlbiA1MGsKaXMgbWF4IHVuZCB3ZXIgZHJ1ZWJlciBpc3QgS0FOTiBoYWx0IG5pY2ggbWVociBhbGlzIG1hY2hlbiAuLiBhYmVyIGRydW50ZXIgPwpuZWVlIGhvZXJ0IGRvY2ggYXVmIHNvbyBrbGVpbiBpcyBkaWUgcGxhdHRlIHdvaGwgbmljaCBvZGVyID8gOi0pKSkpKQoKU2hhcmlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVG9wIFRlbiBkZXIgQWxpYXNzY2hyZWliZXIgKEFuY2FsYWdvbiwgIDguIEphbiAxOTk4LCAwODo1OToxOSk6Cn4jISBybj1IYXRlIHJ0PTg4NDE4ODU0NyByZz1hbnplaWdlbgp+IyEgdGlkPTg4NDE4ODU0NwpVbmQgd2FzIG1hY2ggaWNoIGRhbm1uIG1pdCBtZWluZW4gdmllbGVuIEtudWRkbGVybj8KTmFqYSwgZWluIHBhYXIgbXVzcyBpY2ggZWggdWViZXJhcmJlaXRlbi4uLi4uLi4uCkFiZXIgZXMga29tbWVuIGJlc3RpbW10IG5ldWUgbmFjaC4uLi4KCktudWRkZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5jYWxhZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRvcCBUZW4gZGVyIEFsaWFzc2NocmVpYmVyIChUdW5peGd1dCwgIDguIEphbiAxOTk4LCAwOTowMToxMCk6Cn4jISBybj1BbmNhbGFnb24gcnQ9ODg0MjQ2MzU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg0MTg4NTQ3CldlciBEaXIgREFTIHZlcmJpZXRlbiB3aWxsLCBEcmFlY2hlbGNoZW4sIGRlciAuLi4gKCpkcm9oKikgO28pCgoncyBLYXJhdGUtWndlcmNobGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRvcCBUZW4gZGVyIEFsaWFzc2NocmVpYmVyIChaYXJuaXlhLCAgOC4gSmFuIDE5OTgsIDA5OjA4OjA1KToKfiMhIHJuPVR1bml4Z3V0IHJ0PTg4NDI0NjQ3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg4NDE4ODU0NwpEZWZpbmllciBEZWluZSBrbnVkZGxlciBhbHMgYWR2ZXJiZW4uLi4gZGFubiBtdWVsbGVuIHNpZSBlaW5lIGFuZGVyZSBTdGVsbGUKZGVyIFBMYXR0ZSB2b2xsLCBkaWUgSGF0ZSBuaWNodCBzbyBzY2huZWxsIGZpbmRldCA6KQoKWmFybml5YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVG9wIFRlbiBkZXIgQWxpYXNzY2hyZWliZXIgKFJ6bmUsICA4LiBKYW4gMTk5OCwgMTk6MTY6MDgpOgp+IyEgcm49WmFybml5YSBydD04ODQyNDY4ODUgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODQxODg1NDcKTmljaHRtYWwgaW4gZGVyIFRvcC1MaXN0ZSBiaW4gaWNoIG1laHIgdm9ybmUuLi4KClZlcmRhbW10IGFiZXIgYXVjaC4KCkFsbGVyZGluZ3Mga29lbm50ZSBlcyBoaWVyIGxlaWNodGVyIHNlaW4sIG5vY2htYWwgZ2FueiBuYWNoIHZvcm5lIHp1IGtvbW1lbgo7LSkKClJ5bmUsIGJpcyBhdWYgd2VpdGVyZXMgbnVyIFplaXVuZ3NsZXNlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRvcCBUZW4gZGVyIEFsaWFzc2NocmVpYmVyIChDYXJhZGhyYXMsICA5LiBKYW4gMTk5OCwgMTE6NTg6NDQpOgp+IyEgcm49SGF0ZSBydD04ODQxODg1NDcgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODQxODg1NDcKSHVjaCwgZG9jaCBub2NoIGFuIHZpZXJ0ZXIgU3RlbGxlLCBvYndvaGwgaWNoIHNlaXQgMiBKYWhyZW4gaGllciBuaXgKbWVociBtYWNoZT8gU293YXMuIDopIFNpbmQgZG9jaCBudXIgODAwIEFsaWFzLCBIYXRlLCBhbHNvIGRhcyBicmF1Y2h0Cm1hbiBoaWVyIHNjaG9uLiBTZWkgZnJvaCwgZGFzcyBtZWluZSBLbnVkZGVsYWxpYXMgZXRjLiBhbGxlIGF1ZiB0Zgp2ZXJsYWdlcnQgc2luZCwgc29uc3Qgd2FlcmVucyB2aWVsIG1laHIuCgogICAgICAgICBGcm9zY2ggQ2FyYWRocmFzIC0gZmluZGV0IEhhdGUga29taXNjaCA6LSkgbWFuY2htYWwgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUb3AgVGVuIGRlciBBbGlhc3NjaHJlaWJlciAoU2lsdmFuYSwgIDkuIEphbiAxOTk4LCAxOTozNTowMyk6Cn4jISBybj1IYXRlIHJ0PTg4NDE4ODU0NyByZz1hbnplaWdlbgp+IyEgdGlkPTg4NDE4ODU0NwpIbSwgaXJnZW5kd2llIHd1bmRlcnQgZXMgbWljaCwgZGFzcyBpY2ggZGFiZWkgbmljaHQgYXVmdGF1Y2hlLi4uCk9mZmVuYmFyIGhhYiBpY2ggenUgSGF1c2UgZW50c2NoaWVkZW4gbWVociBBbGlzIGFscyBpbSBNRy4uLgoKICBTaWx2YW5hICh2ZXJ3dW5kZXJ0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVpcmF0IChLYXJvbCwgMTIuIEphbiAxOTk4LCAxOTo1NzozMSk6CkVpbmUga2xlaW5lIEJla2FubnRtYWNodW5nOgpBbSBNb250YWcsIGRlbSAxMi4wMS4xOTk3IGhhYmVuIHNpY2ggdm9uIG1pciBEYXJ5bCB1bmQgU3JhYmkgdHJhdWVuIGxhc3NlbiEKSWNoIHd1ZW5zY2hlIGV1Y2ggYmVpZGVuIGFsbGVzIGd1dGUgdW5kIExlbWJvbGRgcyBTZWdlbiEKS2Fyb2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVG9wIFRlbiBkZXIgQWxpYXNzY2hyZWliZXIgKFNrbGF2ZSwgMTMuIEphbiAxOTk4LCAxMDozNDoyMyk6Cn4jISBybj1BbmNhbGFnb24gcnQ9ODg0MjQ2MzU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg0MTg4NTQ3ClNvd2FzIGthbm4gbWFuIGRvY2ggYWxsZXMgYXVjaCBwZXIgVEYgbWFjaGVuLCBkYW5uIG11ZWxsdApkaWUgR2VzY2hpY2h0ZSB3ZW5pZ3N0ZW5zIGRpZSBlaWdlbmUgUGxhdHRlIChiencuIFF1b3RhKSB2b2xsLi4uCgoKS3JldGVrCmkuVi4gU2tsYXZlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYXRoZW1hdGlrIChHcmltbWJvcm4sIDE4LiBKYW4gMTk5OCwgMjM6MzE6MDYpOgpJY2ggc3VjaGUgZWluZW4gZ2VzY2hsb3NzZW5lbiBBdXNkcnVjayBmdWVyIChhK2IrYylebi4gTWVpbmUgc3BhZXJsaWNoZW4KKE5hdHVyd2lzc2Vuc2NoYWZ0bGVyLSlGb3JtZWxzYW1tbHVuZ2VuIGhhYmVuIGRhcyBuaWNodCBoZXJnZWdlYmVuLiBTb3dhcyBtdXNzCmVzIGRvY2ggZ2ViZW4uLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWF0aGVtYXRpayA/IChQYWx0dW0sIDE5LiBKYW4gMTk5OCwgMTU6MzM6NDUpOgpLbGFyIGdpYnRzIGRhcyAuLi4gKGErYitjKV5uID0gc3VtKDEvKEshKmwhKm0hKWFeaypiXmwqY15tKSBEaWUgU3VtbWUgbGFldWZ0CnVlYmVyIGFsbGUgaW5kaXplcyBrLGwsbSBtaXQgaytsK20gPSBuIC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYXRoZW1hdGlrID8gKEZ5dCwgMTkuIEphbiAxOTk4LCAxOToyNDozNik6Cn4jISBybj1QYWx0dW0gcnQ9ODg1MjIwNDI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg1MjIwNDI1CklyZ2VuZHdpZSB2ZXJtaXNzdCBtZWluIFNpbm4gZnVlciBBZXN0aGV0aWsgZGEgbm9jaCBlaW4gbiEgaW0gWmFlaGxlci4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWsgIChQYWx0dW0sIDIxLiBKYW4gMTk5OCwgMTQ6MzA6NDcpOgpobSBzdGltbXQgOi0oCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpudXIgbWFsIHNvLi4uLiAoQW5jYWxhZ29uLCAyNy4gSmFuIDE5OTgsIDE1OjUyOjQ1KToKS251ZGVscyEKRmFsbHMgZXMgaXJnZW5kZWluZW4gaW50ZXJlc3NpZXJ0OiBpY2ggdmVybGVnZSB6dW0gMS4yLjk4IGRhcyBEb21pemlsIG1laW5lcwpSTC1DaGFyYWt0ZXJzISBOZXVlIEFuc2NocmlmdCBpc3QgZGFubjoKCk1hdGhpYXMgQmV0Z2UKQWxicmVjaHRzdHIuIDIxCjMzNjAyIEJpZWxlZmVsZAoKV2VuJ3MgaW50ZXJlc3NpZXJ0LCBkZXIgZGFyZiBzaWNoIGRhcyBqZXR6dCBub3RpZXJlbiB1bmQgd2VyIG1pciAnbmUgS2FydGUKc2NoaWNrZW4gd2lsbCwgZGFyZiBzZWxic3R2ZXJzdGFlbmRsaWNoIGF1Y2ggZGllc2VzIHR1bi4uLi4uLiBpY2ggd2VyZCcgYXVjaApnYW56IGJlc3RpbW10IGFudHdvcnRlbi4uLi4KVHNjaHVlc3NpZWtudWRkZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmNhbGFnb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhY28ga251ZGRlbGxlbnNpcyBtYWpvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVEYtS2xhbW90dGVuIChSaW5nb3IsIDI3LiBKYW4gMTk5OCwgMjE6MTY6MTIpOgpIdWh1IQoKSWNoIGhhYmUgZWluIHBhYXIgbWVpbmVyIFRGLVNhY2hlbiBpbnMgTmV0eiBnZWhhZW5ndC4gSmUgbmFjaCBGZWVkYmFjayB3aXJkIGVzCnZpZWxsZWljaHQgbm9jaCBlaW4gYmlzc2VybCBtZWhyLgoKRGllIEFkcmVzc2UgbGF1dGV0OgoKICAgICAgICAgaHR0cDovL3d3dy5jaGVtaWUudW5pLWRvcnRtdW5kLmRlL3BlcnNvbnMvbGljaHRpL3RmLmh0bWwKClZpZWwgU3Bhc3MgZGFtaXQsCgpSaW5nb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClphdWJlcnplaXQgKExpLCAyOC4gSmFuIDE5OTgsIDExOjMxOjI2KToKSGkhCmljaCBzdWNoZSBlaW5lbiBBcnRpa2VsIGF1cyBkZXIgWmVpdHNjaHJpZnQgWmF1YmVyemVpdC4gVW5kIHp3YXIgc29sbCBlcyBpbgpBdXNnYWJlIDI5IGVpbmVuIEFydGlrZWwgdWViZXIgZWluZSBTcHVrbXVlaGxlIGdlYmVuLiBIYXQgZGllIGplbWFuZD8gCk9kZXIga2VubnQgamVtYW5kIGRlbiBBcnRpa2VsLCBpY2ggbXVzcyBudXIgd2lzc2VuLCB1bSB3YXMgZXMgZGEgZ2VodC4KTGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaYXViZXJ6ZWl0IChTaWx2YW5hLCAyOS4gSmFuIDE5OTgsIDAwOjQzOjMwKToKfiMhIHJuPUxpIHJ0PTg4NTk4MzQ4NiByZz1hbnplaWdlbgp+IyEgdGlkPTg4NTk4MzQ4NgpXYWghIEljaCBzZWggc2Nob24sIGljaCBtdXNzIFZhcml1cyBkcmluZ2VuZCBpbiBQZXJkbyBWaW0gc2NodWxlbi4uLgoKICBTaWx2YW5hIChha2EgVmFyaXVzIEAgQXJzTWFnaWNhKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTS5JLlMuVC4gKEhhcmRpbCwgMzAuIEphbiAxOTk4LCAxMTowNzoxMik6CgpGdWVyIGFsbCBkaWVqZW5pZ2VuLCBkaWUgYW0gV29jaGVuZW5kZSBnZXJhZGUgaW4gTXVlbnN0ZXIgc2luZCAoenVtIEJsZWlzdGlmdAp1bnphZWhsaWdlIFN0YW1tdGlzY2hiZXN1Y2hlcik6CgpJbiBkZXIgTGVpY2h0YmF1aGFsbGUgKEFlcGZlbHN0YWVkdHN0cmFzc2UsIG5hZWhlIEhvcnN0bWFyZXIgTGFuZHdlZykgZmluZGV0CmdlcmFkIGp1c3QgYW0gV29jaGVuZW5kZSBtYWwgd2llZGVyIGRhcwpNdWVuc3RlciBJbmRvb3IgU29mdGJhbGwgVG91cm5hbWVudApzdGF0dC4gTGV0enRlcyBKYWhyIGtvbm50ZSBtYW4gZG9ydCBSem5lIHVuZCBtaWNoIGJld3VuZGVybiwgb2IgUnpuZSBkaWVzZXMKamFociBhdWNoIHdpZWRlciBkYWJlaSBpc3QsIHdlaXNzIGljaCBuYXR1ZXJsaWNoIG5pY2h0LgoKV2VyIGFsc28gc2Nob24gaW1lbXIgbWFsIHNlaGVuIHdvbGx0ZSwgd2llIFNvZnRiYWxsIGluIGRlciBIYWxsZSBmdW5rdGlvbmllcnQsCnNvbGx0ZSBlaW5mYWNoIG1hbCB2b3JiZWlzY2hhdWVuLiA6LSkKCi1IYXJkaWwKKEdvIERyYWdvbnMgZ28hKQojNDUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0ZWxsZW4gYW5nZWJvdGVuISAoR3d5bndhaXRlciwgMzEuIEphbiAxOTk4LCAxODowNjoyNSk6CkhpIEFsbGUsCkljaCwgR3d5biwgc3VjaGUgZnVlciBlaW5lIHNlaHIgYXVmc3RyZWJlbmRlIEdtYkggaS5HLiBub2NoIFBoYW50YXN0ZW4genVyClZlcnN0YWVya3VuZyB1bnNlcmVzIFRlYW1zLgpTcHJhY2hsaWNoZSBGYWVoaWdsa2VpdGVuIChEL0UvRi9TL0kgdS5hLikgd2VyZGVuIGViZW5zbyBlcnd1ZW5zY2h0IHdpZQpLZW5udG5pc3NlIGluIEphdmFzY3JpcHQsIFBlcmwsIENvbXB1dGVybGluZ3Vpc3RpayAoUHJvbG9nISkgb2RlciBDb250cm9sbGluZwooaW5rbC4gQmV0ci4gUmVjaG51bmdzd2VzZW4pLgpOaWNodCBqZWRlciBtdXNzIGFsbGVzIGtvZW5uZW4sIGFiZXIgamUgdmllbHNlaXRpZ2VyIGRpZSBCZXdlcmJlcklubmVuIHNpbmQsCnVtc28gYmVzc2VyLgpOb3R3ZW5kaWcgaXN0IGRlciBXdW5zY2gsIHNpY2ggc3RhZW5kaWcgd2VpdGVyIHp1IHF1YWxpZml6aWVyZW4gdW5kClZlcmFudHdvcnR1bmcgZnVlciBkaWUgZWlnZW5lIEFyYmVpdCB1bmQvb2RlciBlaW56ZWxuZSBQcm9qZWt0ZSB6dQp1ZWJlcm5laG1lbi4KQmV6YWhsdCB3aXJkIHp1IEFuZmFuZyBlaW4gZ2VyaW5nZXIgTG9obiAoSGlXaS1TdGFuZGFyZCksIGFiZXIgbWl0dGVsZnJpc3RpZwppc3QgbWVociwgbGFuZ2ZyaXN0aWcgYXVjaCB2aWVsIG1laHIgZHJpbi4KCldpciAoUGVsaUNvcm4pIHNpbmQgZWluZSBHbWJIIG1pdCBtZWhyZXJlbiBHZXNlbGxzY2hhZnRlcm4gdW5kIGRyZWkKVGR0aWdrZWl0ZXNiZXJlaWNoZW4gKFVlYmVyc2V0enVuZ2VuLCB2LmEuIFNvZnR3YXJlIC8gV2ViZGVzaWduLCB2LmEuCnZlcmthdWZzb3JpZW50aWVydCwgekIgSW50ZXJzaG9wL1Nob3BtYWtlci8gSW5ub3ZhdGl2ZSBTcGllbGUsIHpCIFBCZU0uKQpGaW5hbnppZXJ1bmcgZHVyY2ggRWlnZW5rYXBpdGFsL0VSUCwgVkMgYW5nZXN0cmVidC4gU2l0eiBUdWViaW5nZW4sIHdpcmQgYWJlcgpuaWNodCBkZXIgZWluemlnZSBibGVpYmVuLiBCZWZyZXVuZGV0ZSBGaXJtZW4gYmVmaW5kZW4gc2ljaCBpbiBSaGVpbi1SdWhyIHVuZAppbSBlbmdsaXNjaHNwcmFjaGlnZW4gQXVzbGFuZC4KCkdlZWlnbmV0ZSBCZXdlcmJ1bmdlbiBiaXR0ZSBhbiBwZWxpY29ybkBpbmFtZS5jb20gb2RlciBhbiBQZWxpQ29ybiwgUGYuMjc0NywKNzIwMTcgVHVlYmluZ2VuLgoKUmVnYXJkcywgR3d5bioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTdGVsbGVuIGFuZ2Vib3RlbiEgKFd1cnplbCwgMzEuIEphbiAxOTk4LCAxODoxNToyMyk6Cn4jISBybj1Hd3lud2FpdGVyIHJ0PTg4NjI2NjM4NSByZz1hbnplaWdlbgp+IyEgdGlkPTg4NjI2NjM4NQpobSwgd2VubiBkYXMgc28gbG9zIGdlaHQuLi4Kc3RlbGxlbiBiaWV0ZW4gd2lyIGF1Y2ggYW4sIGFsbGVyZGluZ3MgZGV1dGxpY2ggYmVzc2VyIGJlemFobHQgOikKd2VyIGVpbiBtZWhyIG9kZXIgd2VuaWdlciB0ZWNobmlzY2ggb3JpZW50aWVydGVzIHN0dWRpdW0gYWJnZXNjaGxvc3NlbiBoYXQgdW5kCnNpY2ggbmljaHQgc2NoZXV0LCBpbiBlaW5lciBncm9lc3NlcmVuIGZpcm1hIHp1IGFyYmVpdGVuLCBrYW5uIG1pY2ggamEgbWFsCmFuc3ByZWNoZW4uIGFjaCBqYSwgbWFuIHNvbGx0ZSBzY2hvbiB3aXNzZW4gd2FzIGVpbiBjb21wdXRlciBpc3QsIGFiZXIgZGFzCmRlbmtlIGljaCBrYW5uIG1hbiBpbSBtdWQgdm9yYXVzc2V0emVuIDopIHVuZCB2aWVsbGVpY2h0IGF1Y2ggc2Nob24gbWFsIHdhcwpwcm9ncmFtbWllcnQgaGFiZW4uIGRhcyBoZWlzc3QgbmljaHQsIGRhc3Mgd2lyIG51ciBwcm9ncmFtbWllcmVyIHN1Y2hlbiwgYWJlcgppbiBlaW5lciBmaXJtYSwgZGllIHNvZnR3YXJlIHByb2R1emllcnQsIHNvbGx0ZSBtYW4gd2VuaWdzdGVucyB3aXNzZW4gd2FzIApkYXMgaXN0IDopCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU3RlbGxlbiBhbmdlYm90ZW4hIChHd3lud2FpdGVyLCAzMS4gSmFuIDE5OTgsIDE4OjI1OjA4KToKfiMhIHJuPVd1cnplbCBydD04ODYyNjY5MjMgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODYyNjYzODUKKnJhZXVzcGVyKiBOdXIgenVyIEtsYXJzdGVsbHVuZzogV2VyIG1laHIgbWl0YnJpbmd0ICh6QiBlaW4gYWJnZXNjaGxvc3NlbmVzClN0dWRpdW0gQldML1ZXTC9XSW5mL0luZiBvZGVyIGVpbmUgYWJnZXNjaGxvc3NlbmUgVWViZXJzZXR6ZXJJbm5lbmF1c2JpbGR1bmcsCmlzdCB1bnMgbmF0dWVybGljaCBhdWNoIG1laHIgd2VydC4gCldpciBob2VyZW4gdW5zIGF1Y2ggZ2VybmUgRXVyZSBHZWhhbHRzdm9yc3RlbGx1bmdlbiBhbi4gQWJlciB3aXIgbmVobWVuIGF1Y2gKU3R1ZGllcmVuZGUsIGF1Y2ggR2Vpc3Rlc3dpc3NlbnNjaGFmdGxlciBnZXJuZSwgc29mZXJuIHNpZSBTcHJhY2hlbgpiZWhlcnJzY2hlbiBrb2VubmVuLgoKVW5kIGRhcyBHYW56ZSBnaWx0IHNvd29obCB6dXIgRnJlaWVuIE1pdGFyYmVpdCB3aWUgYXVjaCB6dXIgRmVzdGFuc3RlbGx1bmcuCgpHcnVzcyxHd3luIChkZXIgZ2VyYWRlIG1pdCBXdXJ6ZWwgdWViZXIgZGVuIGxlZXJlbiBTdGVsbGVubWFya3QgZGlza3V0aWVydApoYXQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTdGVsbGVuIGFuZ2Vib3RlbiEgKEhvYm8sICAyLiBGZWIgMTk5OCwgMDg6MTY6MzApOgp+IyEgcm49SG9ibyBydD04ODY0MDM2OTYgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODYyNjYzODUKSG1tLCB3byB3aXIgYmVpbSBUaGVtYSBzaW5kOgpJY2ggU1VDSEUgZnVlciBlaW5lIERyLiBNYXNjaGJhdSBlaW5lIFN0ZWxsZSBpbiBUdWViaW5nZW4gdW5kIFVtZ2VidW5nLgpBYmVyIGljaCBnbGF1YiwgU29mdHdhcmUgZW50d2lja2VsbiB3aWxsIHNpZSBuaWNodCwgR3d5bndhaXRlciA7KQoKQWxsYSBndXQgLSBzY2hhZmZlIG1lciB3YXMhCiAgICAgSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU3RlbGxlbiBhbmdlYm90ZW4hIChUdW5peGd1dCwgIDIuIEZlYiAxOTk4LCAwODozNjowNCk6Cn4jISBybj1Ib2JvIHJ0PTg4NjQwMzc5MCByZz1hbnplaWdlbgp+IyEgdGlkPTg4NjI2NjM4NQpCVFc6IFN1Y2hlIEpvYiBpbSBSYXVtIEhhbGxlL1NhYWxlIC0gTWVyc2VidXJnLCBkaWUgR2VnZW5kLgoKJ3MgS2FyYXRlLVp3ZXJjaGxlLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFN0ZWxsZW4gYW5nZWJvdGVuISAoUmFmZmksICA5LiBGZWIgMTk5OCwgMTc6MjE6MDcpOgp+IyEgcm49V3VyemVsIHJ0PTg4NjI2NjkyMyByZz1hbnplaWdlbgp+IyEgdGlkPTg4NjI2NjM4NQpWZXJnaXNzIG5pY2h0IGRpZSwgZGllIGF1Y2ggZ2VybmUgbWFsIHdpZWRlciB3YXMgb2huZSBaZW50cmFsZWlua2F1ZiBvZGVyCmFuZGVyZSBCcmVtc2VuIG1hY2hlbiBtb2VjaHRlbiAuLi4gc28gZWluIGtsZWluZXIgbGFkZW4ga2FubiBhdWNoIHZpZWwgU3Bhc3MKbWFjaGVuIC4uLiB1bmQgU3Bhc3MgbGFlc3N0IHNpY2ggYXVjaCBpbiBHZWxkIGF1c2RydWVja2VuLgoKR3J1c3MKSC4KKEhhYiBub2NoIGxlaWRsaWNoIFNwYXNzLCBhYmVyIGRlbiBlcnNldHplIGljaCB6Llp0IGR1cmNoIEdlaGFsdGVzZXJob2VodW5nZW4KOigKClAuUC5TLjogR3d5bjogdW5kIHdpZSB3aXJkIFByYXhpc2VyZmFocnVuZyBiZXdlcnRldCA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCB2b24gVGFtZWxpIHVuZCBEYXJrd2luZyAoRGFya3dpbmcsIDExLiBGZWIgMTk5OCwgMTg6MTE6MzApOgpIdWh1IDopCgpOYWNoZGVtIHdpciBudW4gNCBNb25hdGUgZ2x1ZWNrbGljaCB2ZXJsb2J0IHNpbmQsIGhhYmVuIHdpciBiZXNjaGxvc3NlbiBhbQpGcmVpdGFnIGVuZGxpY2ggRXJuc3QgenUgbWFjaGVuIHVuZCB6dSBoZWlyYXRlbiA6LSkpCgpVbmQgaWhyIGFsbGUgc2VpZCBnYW56IGhlcnpsaWNoIGVpbmdlbGFkZW4gZGFiZWl6dXNlaW4gdW5kIGFuc2NobGllc3NlbmQgc28KcmljaHRpZyBtaXQgdW5zIHp1IGZlaWVybiAhCgpHZWhlaXJhdGV0IHdpcmQgYW0gMTMuMi4gdW0gMjM6NTkgaW4gZGVyIFRyYXVrYXBlbGxlIGluIE5pYmVsaGVpbSwgZWluZQpXZWdiZXNjaHJlaWJ1bmcgZ2lidCdzIGF1ZiBBbmZyYWdlIG5hdHVlcmxpY2ggYXVjaCA6KQoKICAgICAgICAgICAgICAgICAgVmllbGUgR3J1ZXNzZSwKICAgICAgICAgICAgICAgICAgICAgICAgVGFtZWxpICYgRGFya3dpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClF1ZWxsZW4genUgTUFDLUJyaWRnaW5nIChGZXVlcndlaHIsIDExLiBGZWIgMTk5OCwgMjI6MjE6MTIpOgpIaWhvIEludGVybmV0LUZhbmF0aWtlcgoKRGllIFNlbWluYXJzYWlzb24gd2lyZCBlaW5nZWxldXRldC4gSWNoIHN1Y2hlIEluZm9ybWF0aW9uZW4genUgTUFDLUJyaWRnZXMsCmFsc28gVmVyYmluZHVuZ2VuIHp3aXNjaGVuIEV0aGVybmV0LUxBTidzLiBXZXIgYW5kZXJlIExpdGVyYXR1ciBhbHMKSUVFRS1TdGFuZGFyZHMga2VubnQsIHNjaHJlaWJlIG1pciBiaXR0ZSBiaXR0ZSBlaW5lIE1haWwuCgogICBGZXVlcndlaHIuCgpQUy4gRXMgaXN0IHNwYW5uZW5kZXIsIHNpY2ggdm9yIGVpbmUgV2FzY2htYXNjaGluZSB6dSBzZXR6ZW4gYWxzIGVpbmVuIAogICAgSUVFRSBTdGFuZGFyZCB6dSBsZXNlbiAuLi4gOi0oCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOT1RFQk9PSyB6dSB2ZXJrYXVmZW4hIChJZXlhc3UsIDEyLiBGZWIgMTk5OCwgMTE6NTM6MjEpOgoKSGFsbG8hCkljaCBoYWIgbWlyIHZvciBlaW4gcGFhciBUYWdlbiBlaW4gTm90ZWJvb2sgZ2VrYXVmdDoKTGlicmV0dG8gNTAgQ1QKCkpldHp0IGhhdCBhYmVyIG1laW4gR2VsZGdlYmVyIGVpbmVuIFJ1ZWNremllaGVyIGdlbWFjaHQsIHVuZCAKdW50ZXIgZGllc2VuIFVtc3RhZW5kZW4ga2FubiBpY2ggbWlyIGRhcyBEaW5nIG5pY2h0IGxlaXN0ZW4uCkRlc2hhbGIgbXVzcyBpY2ggZXMgc2Nod2VyZW4gSGVyemVucyB3aWVkZXIgdmVya2F1ZmVuLgoKSGllciBtZWluIEFuZ2Vib3Q6CgpMaWJyZXR0byA1MCBDVCwgCkFibWVzc3VuZ2VuOiAyMTAgeCAxMTUgeCAzNCBtbSwgODUwIGchIQoKSW50ZWwgUGVudGltIDc1IE1IegpQbGF0dGUgODEwIE1CLCBleHRlcm5lcyBGbG9wcHkgZGFiZWkKSW5mcmFyb3QtU2Nobml0dHN0ZWxsZSwgc2VyaWVsbGVyIHVuZCBwYXJhbGxlbGVyIFBvcnQsCihTKVZHQS1Nb25pdG9yLUFuc2NobHVzcywgUENNQ0lBLVNjaG5pdHRzdGVsbGUsIFBTMiAuLi4KMTZiaXQgU291bmRCbGFzdGVyIFByby1rb21wYXRpYmxlIFNvdW5ka2FydGUsIFN0ZXJlby1TcGVha2VyICYgTWlrcm8KTGl0aGl1bS1Jb25lbi1Ba2t1IQoxNiBNQiBSQU0sIGVyd2VpdGVyYmFyIGJpcyAzMiBNQgoKZnVlciBsYWVjaGVybGljaGUgMi4wMDAsLSBETSEKCk1laHIgSW5mb3MgZGFydWViZXI6Cmh0dHA6Ly93d3cuYmVzdHdlYi5kZS9zY3JpcHRzL0JXLVBDLVNob3AvMDIwMjA1MC5pZGMKCldpbmRvd3M5NSBpc3QgZHJhdWYsIGljaCBoYWIgZGFzIERpbmcgc28gZ3V0IHdpZSBub2NoIG5pY2h0CmJlbnV0enQgKGhhYnMgamEgYXVjaCBlcnN0IGFtIE1vbnRhZyBnZWthdWZ0KS4KCkludGVyZXNzaWVydD8KTWFpbCBhbiBJZXlhc3UhCgpHcnVlc3NlLApJZXlhc3UKKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXRzZ2xvY2tlbiAoTW9ycmlzb24sIDI1LiBGZWIgMTk5OCwgMTM6MDQ6NDkpOgpIaWVybWl0IGdlYmUgaWNoIGRpZSBIb2NoemVpdCBtaXQgTWlrYWdlIGJla2FubnQuIEVzIGhhZXR0ZSBlaW5lIHNlaHIgc2Nob2VuZQpaZXJlbW9uaWUgd2VyZGVuIGtvZW5uZW4sIHdlbm4gbmljaHQgSGFyZGlsIChzb3JyeSBIZXJkYWwgKSBkaWUgRmVpZXIgbWl0CnZlcnN1Y2h0ZW4gUHJpZXN0ZXJraWxscyB1bmQgZHVtbWUgU3BydWVjamhlIGdlc3RvZXJ0IGhhZXR0ZS4gVmllbGxlaWNodApzb2xsdGVuIGRpZSBNYWdzIG1hbCBkYXJ1ZWJlciBuYWNoZGVua2VuLCBkZW4gWnV0cml0dCB6dSBUcmF1dW5nZW4gbnVyCmF1c2dld2FlaGx0ZW4gRnJldW5kZW4genVnYWVuZ2xpY2ggenUgbWFjaGVuLCBpc3QgUkwgc2NobGllc3NsaWNoIGF1Y2ggc28uCkRhbm4gZW50ZmFsbGVuIHNvbGNoZSBkdW1tZW4gU2NoZXJ6ZS4uLiAuIFdpciBkYW5rZW4gYWxsZW4gR3JhdHVsYW50ZW4uLi4gLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhvY2h6ZWl0c2dsb2NrZW4gKEhpZ2hsYW5kZXIsIDI1LiBGZWIgMTk5OCwgMTM6MTA6MDApOgp+IyEgcm49TW9ycmlzb24gcnQ9ODg4NDA4Mjg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg4NDA4Mjg5CkVudHNjaHVsZGlnZSwgd2VubiBpY2ggZGFzIGFuZGVycyBzZWhlIC0gYWJlciB3ZXIgb2RlciB3YXMgaGluZGVydApnZWdlYmVuZW5mYWxscyBlaW5lbiBBdHRlbnRhZXRlciwgaW4gZGllIEtpcmNoZSB6dSBnZWhlbiB1bmQgZGVuClBmYXJyZXIgenUgZXJzY2hpZXNzZW4/IE5pY2h0cyB1bmQgbmllbWFuZCwgdm9uIGRlbSBpY2ggd3Vlc3N0ZS4KTmljaHQgZGFzcyBpY2ggbmljaHQgdmVyc3RlaGUsIGRhc3MgRHUgenUgZGVuZW4gZ2Vob2Vyc3QsIGRpZSBkYXMKbmljaHQgYXVzc3RlaGVuIGtvZW5uZW4uIEFsbGVyZGluZ3MgaXN0IGVpbmUgdW5nZXN0b2VydGUgSG9jaHplaXQKZXJmYWhydW5nc2dlbWFlc3MgaW0gTUcgZWhlciByYXIgOj4KICAgIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdHNnbG9ja2VuIChEZWVwYmx1ZSwgMjYuIEZlYiAxOTk4LCAxNTo1ODozOCk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTg4ODQwODYwMCByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODQwODI4OQpBdXNzZXJkZW0gd2FzIHNvbGx0ZSBkYXMgIldlciBldHdhcyBkYWdlZ2VuIGhhdCBzb2xsZSBqZXR6dCBzcHJlY2hlbiBvZGVyIGZ1ZXIKaW1tZXIgc2Nod2VpZ2VuIiwgd2VubiBqZWRlciB1bndpbGxpZ2UgYXVzZ2VzY2hsb3NzZW4gd2VyZGVuIGthbm4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9jaHplaXRzZ2xvY2tlbiAoR3JpbW1ib3JuLCAyNi4gRmViIDE5OTgsIDE2OjQyOjI5KToKfiMhIHJuPU1vcnJpc29uIHJ0PTg4ODQwODI4OSByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODQwODI4OQpJY2ggd2Vpc3MgbmljaHQsIHZvbiB3ZWxjaGVyIFJlbGlnaW9uIER1IGJlaSBkZW4gVHJhdXVuZ2VuIHNwcmljaHN0LiBBYmVyIHJsCmhhdCBncnVuZHNhZXR6bGljaCBqZWRlciBkaWUgTW9lZ2xpY2hrZWl0LCBlaW5lbiBjaHJpc3RsaWNoZW4gR290dGVzZGllbnN0IHp1CmJlc3VjaGVuLCBhdWNoIHdlbm4gZGEgenVmYWVsbGlnIGdldHJhdXQgd2lyZC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdHNnbG9ja2VuIChBY3JpbW9uLCAyNi4gRmViIDE5OTgsIDE3OjEzOjMwKToKfiMhIHJuPUdyaW1tYm9ybiBydD04ODg1MDc3NDkgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODg0MDgyODkKSW0gTUcgbW9lZ2VuIG1hbmNoZSBsaWViZXIgdW5nZXN0b2VydGUgSG9jaHplaXRlbiwgdmllbGUgYWJlciBmaW5kZW4gbWVocgpTcGFzeiBhbiBnZXN0b2VydGVuIEhvY2h6ZWl0ZW4uCk1laW5lIEVtcGZlaGx1bmc6IEVpbmZhY2ggdm9yaGVyIGJla2FubnRnZWJlbiwgd2VsY2hlIEFydCBIb2NoemVpdCBkdQp3dWVuc2Noc3QuIERhbm4gaXN0IGRpZSBXYWhyc2NoZWlubGljaGtlaXQgaG9laGVyLCBhdWNoIGVpbmUgc29sY2hlIEhvY2h6ZWl0Cnp1IGJla29tbWVuIQoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb2NoemVpdHNnbG9ja2VuIChEZWVwYmx1ZSwgMjYuIEZlYiAxOTk4LCAxNzoyNzoxNCk6Cn4jISBybj1BY3JpbW9uIHJ0PTg4ODUwOTYxMCByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODQwODI4OQpNYW4ga29lbm50ZSBqYSBhdWNoIDIgSG9jaHplaXRzb3J0ZSBmZXN0bGVnZW4sIHVuZCBqZWRlciBnZWh0IGplIG5hY2ggZ2VmYWxsZW4KYW4gZWluZW4gZGVyIG9ydGUuCgpCZWkgZWluZW0gZ2VodHMgcnVuZCwgbm90ZmFsbHMgbWl0IGVybGF1YnRlbiBQS3MgYW4gYW53ZXNlbmRlbiBrbGVyaWtlcm4sIGJlaQpkZW0gYW5kZXJlbiBpc3NlcyB3YXMgZnVlciBkaWUgcnVoaWdlbiBnZW11ZXRlci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSG9jaHplaXRzZ2xvY2tlbiAoSmltZGlncml6LCAyNi4gRmViIDE5OTgsIDE4OjEyOjI1KToKfiMhIHJuPUFjcmltb24gcnQ9ODg4NTA5NjEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg4NDA4Mjg5CkhhaSwKCgpFaGVtLCBpY2ggd3VlcmRlIGVoZXIgc2FnZW4sIGRhbm4gYmVrb21tdCBtYW4gZ2VuYXUgZGllCkhvY2h6ZWl0LCBkaWUgbWFuIHNpY2ggbmNpaHQgZ2V3dWVuc2NodCBoYXQuIDstKQoKTWVpbiBUaXAsIHdlcnMgcnVoaWcgaGFiZW4gd2lsbCBzb2xsLCBiZWkgZWluZW0gS2xlcmlrZXIKaW0gU2VoZXJoYXVzIHNpY2ggdHJhdWVuIGxhc3Nlbi4KCkNpYW8sCiBKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcmFkaXRpb24/IChNb3JyaXNvbiwgMjYuIEZlYiAxOTk4LCAxOTowMTo1MCk6CkVzIHR1dCBtaXIgbGVpZCwgd2VubiBkYXMgU3RvZXJlbiBlaW5lciBIb2NoemVpdCBpbSBNb3JnZW5ncmF1ZW4gYWxzIFRyYWRpdGlvbgpiZXplaWNobmV0IHdpcmQuIEVzIGhlYnQgc2ljaCBlaWdlbnRsaWNoIHZvbiBkZW4gc29uc3RpZ2VuIEVyZWlnbmlzc2VuIGhpZXIgYWIKdW5kIGRhIHNvbGx0ZSBlcyB3aXJrbGljaCBtb2VnbGljaCBzZWluLCBlaW5lIHVuZ2VzdG9lcnRlIFRyYXV1bmcgdm9sbHppZWhlbgp6dSBrb2VubmVuLiBNZWhyIHdpbGwgaWNoIG5pY2h0IG1laHIgenUgZGVtIFRoZW1hIHNhZ2VuLi4uIC4gSWNoIGVtcGZlaGxlIGRlbQpuYWVjaHN0ZW4gUGFhciwgaW0gT3JrbGFnZXIgenUgaGVpcmF0ZW4sIGRhIGtvZW5uZW4gZXJoaXR6dGUgR2Flc3RlIHdhZWhyZW5kCmRlciBaZXJlbW9uaWUgZWluIHBhYXIgT3JrcyBtZXR6ZWxuICpncmlucyogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVHJhZGl0aW9uPyAoR3JpbW1ib3JuLCAyNi4gRmViIDE5OTgsIDE5OjA2OjExKToKfiMhIHJuPU1vcnJpc29uIHJ0PTg4ODUxNjExMCByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODUxNjExMApIaWVyICJiZXplaWNobmV0IiBuaWVtYW5kIHdhcywgZGFzIGlzdCBlaW5lIFRhdHNhY2hlLiBNaXR0bGVyd2VpbGUgaGF0cyBqYQpUaXBzIGdlbnVnIGdlaGFnZWx0LCB3aWUgRHUgenUgZWluZXIgdW5nZXN0b2VydGVuIFRyYXV1bmcga29tbWVuIGthbm5zdC4gCklzdCBzY2hvbiBrbGFyLCBtYW4gbXVzcyBkYXMgYWt6ZXB0aWVyZW4sIGRhc3MgbmljaHQgamVkZXIgbW9lY2h0ZSwgZGFzcyBkaWUKR2Flc3RlIGJlaSBkZXIgZWlnZW5lbiBUcmF1dW5nIFNwYXNzIGhhYmVuIHVuZCBhdWYgZGllc2UgV2Vpc2UgcXVhc2kgZGFzCkJyYXV0cGFhciBlaHJlbi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHJhZGl0aW9uIChTcmFiaSwgMjcuIEZlYiAxOTk4LCAxMToxNzowMik6CkFsc28sIGRhIGRhcyBUaGVtYSBIb2NoemVpdCB2b24gTW9ycmlzb24gdW5kIE1pa2FnZSBpbW1lciBub2NoIG5pY2h0IGJlZW5kZXQKaXN0LCBoYWVuZ2UgaWNoIG1pY2ggYXVjaCBub2NoIG1hbCBtaXQgcmVpbi4gRmFrdCB3YXIsIGRhIGRlciBTcGllbGVyIGltbWVyCndpZWRlciBkZW4gUHJpZXN0ZXIgYW5nZWdyaWZmZW4gaGF0LCBvYndvaGwgWndpbGxpbmcgbWVocm1hbHMgRnJpZWRlbgpnZXN0aWZ0ZXQgaGF0LiBWaWVsbGVpY2h0IGtvZW5udGUgbWFuIGRpZSBCcmF1dGxldXRlIGluIFp1a3VuZnQgbWFsIGZyYWdlbiwgb2IKc2llIGVpbmUgZ2VzdG9lcnRlIEhvY2h6ZWl0IG9kZXIgZWluZSBydWhpZ2UgSG9jaHplaXQgaGFiZW4gd29sbGVuLiBCZWkgZWluZXIKZ2VzdG9lcnRlbiBIb2NoemVpdCBzY2hsYWdlIGljaCBkYW5uIE5pYmVsaGVpbSB2b3IgdW5kIGJlaSBlaW5lciBydWhpZ2VuCkhvY2h6ZWl0IHNjaGxhZ2UgaWNoIGRpZSBUcmF1dW5nIGR1cmNoIGVpbmVuIEtsZXJpa2VyIHZvci4KClNyYWJpLCBkZXIgaW1tZXIgbm9jaCBkaWUgR2VzY2hpY2h0ZSBuaWNodCB2ZXJzdGVodAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRyYWRpdGlvbiAoRmVsYWd1bmQsIDI3LiBGZWIgMTk5OCwgMTI6Mzk6MzYpOgp+IyEgcm49U3JhYmkgcnQ9ODg4NTc0NjIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg4NTc0NjIyClZpZWxsZWljaHQgc29sbHRlIGJlc2FndGVyIFp3aWxsaW5nIHNpY2ggbm9jaG1hbCBkZW4gTWFnaWVydmVydHJhZyBnZW5hdWVyCmR1cmNobGVzZW4uIEVpbmUgSG9jaHplaXQgaXN0IFRlaWwgZGVzIFNwaWVsZXMsIERhcyBBbmdyZWlmZW4gZGVzIFByaWVzdGVycwppc3Qgc3BpZWx0ZWNobmlzY2ggdm9yZ2VzZWhlbiwgRnJpZWRlbiBzdGlmdGVuIGFsc28gZWluZSB1bmVyd3VlbnNjaHRlCmhhbmRsdW5nIGltIFNpbm5lIGRlcyBNYWdpZXJ2ZXJ0cmFnZXMuIDspCgpGZWxhLi4uUmVnZWxyZWl0ZXIgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhNIElJIChaYXJkb3osIDI4LiBGZWIgMTk5OCwgMTQ6MDc6NTMpOgpJY2ggd29sbHRlIG1hbCB3aWVkZXIgSG9sbHkgTWlzc2lvbiBJSSBhbHMgZWluIHppZW1saWNoIGd1dGVzIE11ZCBlbXBmZWhsZW4sCmRhcyBlaW4gc2VociBpbnRlcmVzc2FudGVzIEtvbnplcHQgYmVzaXR6dCwgZ3V0IGR1cmNoZGFjaHQgaXN0IHVuZCBqZWRlIE1lbmdlClNwYXNzIG1hY2h0LiBKZWRlbmZhbGxzIHNwaWVsZSBpY2ggZG9ydCBsaWViZXIgYWxzIGluIE1HLWFlaG5saWNoZW4gTXVkcy4KRXMgaXN0IGVuZ2xpc2Noc3ByYWNoaWcsIHdhcyB2aWVsbGVpY2h0IGVpbmlnZSBhYnNjaHJlY2tlbiB3aXJkLCB1bmQgZXMKZ2lidCBwbGF5ZXJraWxsaW5nLCBkaWVzIGFsbGVyZGluZ3MgaW5zb2Zlcm4gZWluZ2VzY2hyYWVua3QsIGFscyBtYW4gbnVyClNwaWVsZXIgZGVyICJhbmRlcmVuIFNlaXRlIiAoRGFya2llcywgV2hpdHRpZXMpIHRvZXRlbiBkYXJmLiAKClp1IGZpbmRlbiBpc3QgZXMgdW50ZXI6CiAgICAgIGF0b21tdWVsbC5vZWgudW5pLWxpbnouYWMuYXQgMjAwMQoKSWNoIGJpbiBhdWNoIGdlcmFkZSBkYWJlaSBlaW5lIGtsZWluZSBFaW5mdWVocnVuZyB6dSBzY2hyZWliZW4sIGRpZSBpY2gKSW50ZXJlc3NpZXJ0ZW4gbWFpbGVuIGthbm4sIGRhIGRvcnQgRUlOSUdFUyB2b2VsbGlnIGFuZGVycyBpc3QsIGFscyBtYW4KZXMgdm9tIE1HIGdld29obnQgaXN0LiBFcyBpc3QgamVkZW5mYWxscyBzZWl0IGNhLiAxIEphaHIgbWVpbiBhYnNvbHV0ZXMKTGllYmxpbmdzbXVkLgoKQ2lhbyBaYXJkb3osIGJ6dy4gWmRyb3p6IHRoZSBkcm93LWVsdmVuIFNoYWRvd21hZ2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIChMYXJpc3NhLCAgMi4gTWFyIDE5OTgsIDA4OjU1OjM2KToKClN1Y2hlIE1vdG9ycmFkIG9kZXIgUm9sbGVyLAoKbmljaHQgenUgJ2dyb3NzJyhrbGVpbmVyIEJNVykKbmljaHQgenUgJ3NjaHdlcicoa2xlaW5lciA2MDBjY20pCm5pY2h0IHp1IHRldWVyIChrbGVpbmVyIDQgVERNKQoKTGFyaSwgQW5yZWd1bmdlbiwgVGlwcywgSGlud2Vpc2UgYml0dGUgcGVyIG1haWwgYW4gbWljaCwgdGhhbmtzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9jaHplaXRzZ2xvY2tlbiAoRnl0LCAgMi4gTWFyIDE5OTgsIDE1OjA4OjI5KToKfiMhIHJuPU1vcnJpc29uIHJ0PTg4ODQwODI4OSByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODQwODI4OQoKRWluZSBIb2NoemVpdCBvaG5lIFByaWVzdGVya2lsbCBpc3Qga2VpbmUgSG9jaHplaXQuICdTZWhyIHNjaG9lbmUKWmVyZW1vbmllJy4uLiBsYWNoaGFmdC4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXRzZ2xvY2tlbiAoRnl0LCAgMi4gTWFyIDE5OTgsIDE1OjA5OjM2KToKfiMhIHJuPUdyaW1tYm9ybiBydD04ODg1MDc3NDkgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODg0MDgyODkKCkdlbmF1LiBBdXNzZXJkZW0gaGF0IG1hbiBqZWRlcnplaXQgcHJpbnppcGllbGwgZGllIE1vZWdsaWNoa2VpdCwgZGVuClByaWVzdGVyIHVtenVoYXVlbi4gJ24gYmlzc2VsIFJlYWxpdGFldHNuYWVoZSBzb2xsdGUgc2Nob24gZGFiZWkgc2Vpbi4uLgoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN1Y2hlIChKaW1kaWdyaXosICAyLiBNYXIgMTk5OCwgMTY6NDI6NDgpOgp+IyEgcm49TGFyaXNzYSBydD04ODg4MjUzMzYgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODg4MjUzMzYKSG9pLAoKbmV1IG11c3MgZXMgd29obCBuaWNodCBzZWluLCBvZGVyID8KCkljaCBlbXBmZWhsZSBtYWwgaW4gZGllc2VyIFByZWlza2xhc3NlLUthdGVnb3JpZQpZYW1haGEgWFQ1MDAgKHdlbm5zIG5lIEVuZHVybyBzZWluIGRhcmYpLCBvZGVyCiBkaWUgIFNSNTAwIChnbGVpY2hlciBNb3Rvciwga2xhc3Npc2NoKQoKVm9uIHNvZnRjaG9wcGVybiBhIGxhIFZpcmFnbyB3dWVyZGUgaWNoIG1hbCAKYWJyYXRlbiwgaXN0IGFiZXIgcGVyc29lbmxpY2hlcyBWb3J1cnRlaWwuCgpOZWluLCBpY2gga3JpZWcga2VpbmVuIFlhbWFoYSBSYWJhdHQsIGFiZXIgSG9uZGEKd2lyZCB6dSB0ZXVlciBzZWluLCB1bmQgU3V6dWtpIG5hamEsIGhhdCBoYWx0IGRlbgpydWYgc2NobGVjaHRlciBWZXJhcmJlaXR1bmcgZGVzd2VnZW4gc2luZCBTdXNpcyAKYXVjaCBzbyBiaWxsaWcuCgpDaWFvLAogSmltIERpR3JpeiAoTUcgTGVNYW5zIElJSSA4NTApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDNjQgTXVzaWsgKFJvY2h1cywgIDIuIE1hciAxOTk4LCAxNzoxMDozOCk6Clp1IFplaXRlbiBkZXMgNjRlcidzIGdhYiBlcyBlaW5pZ2UgTGV1dGUgKHdpZSBSb2IgSHViYmFyZCB1bmQgTWFydGluIEdhbHdheSksCmRpZSB6aWVtbGljaCBlcmZvbGdyZWljaCB2ZXJzdWNodCBoYWJlbiwgZGllIHRlY2huaXNjaGVuIEJlc2NocmFlbmt1bmdlbgpkZXMgU0lEcyAobnVyIDMgU3RpbW1lbiB1c3cuKSBkdXJjaCBlaW5mYWxsc3JlaWNoZSBLb21wb3NpdGlvbmVuCmF1c3p1Z2xlaWNoZW4uCkRpZSBNdXNpayBkaWUgc28gZW50c3RhbmRlbiBpc3QgaGF0IHNvIGVpbmlnZSBGYW5zIGdlZnVuZGVuICh1LmEuIG1pY2ggOi0pCnVuZCBkYWhlciBoYXQgc2ljaCBqZXR6dCBqZW1hbmQgZGllIE11ZWhlIGdlbWFjaHQsIGVpbmlnZSBkaWVzZXIgU3R1ZWNrZQptYWwgbWl0IGV0d2FzIG1vZGVybmVyZW0gRXF1aXBtZW50IGVpbnp1c3BpZWxlbiB1bmQgZGFiZWkga2xhbmdsaWNoCmV0d2FzIGF1Znp1YmVzc2Vybi4gSGVyYXVzZ2Vrb21tZW4gZGFiZWkgaXN0IGVpbmUgQ0QsIEluZm9ybWF0aW9uZW4gZGF6dToKICAgaHR0cDovL3d3dy5jNjRhdWRpby5jb20vCihJbiBEZXV0c2NobGFuZCBrYW5uIG1hbiBkaWUgYW0gYmVzdGVuIHVlYmVyIFN5bnNvbmlxIGJlc3RlbGxlbi4pCgpJY2ggaGFiZSBtaXIgZGllIGluendpc2NoZW4gYW5nZWhvZXJ0IHVuZCBmaW5kZSBzaWUgemllbWxpY2ggZ2VsdW5nZW4sCmluc2Jlc29uZGVyZSAiTW9udHkgb24gdGhlIFJ1biIgaG9lcnQgc2ljaCBqZXR6dCBmYW50YXN0aXNjaCBhbiwgYWJlcgpkYXMgZ2lsdCBhdWNoIGZ1ZXIgU3R1ZWNrZSBiZWkgZGVuZW4gaWNoIHp1bmFlY2hzdCByZWNodCBza2VwdGlzY2ggd2FyLApzZWkgZXMgd2VnZW4gZGVyIHRlY2huaXNjaGVuIFNjaHdpZXJpZ2tlaXQgKCJTYW54aW9uIiwgIkNyYXp5IENvbWV0cyIpCm9kZXIgd2VnZW4gZGVyIExhbmdhdG1pZ2tlaXQgKCJQYXJhbGxheCIgaXN0IHNpY2hlciBuaWNodCBqZWRlcm1hbnMgR2VzY2htYWNrKQoKICBSb2NodXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDNjQgTXVzaWsgKFN0aW5nLCAgMi4gTWFyIDE5OTgsIDE5OjM1OjU4KToKfiMhIHJuPVJvY2h1cyBydD04ODg4NTUwMzggcmc9YW56ZWlnZW4KfiMhIHRpZD04ODg4NTUwMzgKR2VpbGVyIFRpcCEgRGFua2UgOikpCgoKU3RpbmcsIGRlciBiYWxkIGVpbmUgbmV1ZSBDRCBoYWJlbiB3aXJkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdHNnbG9ja2VuIChMdWcsICAzLiBNYXIgMTk5OCwgMDE6NTI6MDQpOgp+IyEgcm49Rnl0IHJ0PTg4ODg0NzcwOSByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODQwODI4OQpOYSBkZW5uLAoKCmJpbiBpY2ggamEgYmVydWhpZ3QgRnl0LiB3YXIgamEgYWxsZXMgaW4gQnV0dGVyIGRhbm4gOykKCkZpZEtHCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTdWNoZSAoU251Z2dsZSwgIDMuIE1hciAxOTk4LCAxNDoxNjozMyk6Cn4jISBybj1KaW1kaWdyaXogcnQ9ODg4ODUzMzY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg4ODI1MzM2CkhtbSwgCgp3YXMgaGFzdCBEdSBnZWdlbiBTb2Z0Y2hvcHBlciwgSmltPwpJY2ggZmFocmUgenVyIFplaXQgbmUgU1I1MDAgdW5kIHdpbGwgaW4gYWJzZWhiYXJlciBaZWl0IGF1ZiB3YXMgZ3JvZXNzZXJlcwp1bXN0ZWlnZW4sIERhIGhhdHRlIGljaCBhbiBuZXIgSG9uZGEgU2hhZG93IG9kZXIgYWVobmxpY2hlbSBHZXJhZXQgdWViZXJsZWd0LgpHaWJ0cyBwcmFrdGlzY2hlIEdydWVuZGUgZnVlciBEZWluZSBBYmxlaG51bmcgb2RlciBpc3NlcyBudXIgcGVyc29lbmxpY2hlClZvcmxpZWJlPwoKUFMgRGllIFNSNTAwIHdhZXJlIGRhbm4genUgdmVya2F1ZmVuLiA6LSkKCkdydXNzClNudWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdHNnbG9ja2VuIChRaXRlc3MsICAzLiBNYXIgMTk5OCwgMTQ6NTc6MjcpOgp+IyEgcm49TW9ycmlzb24gcnQ9ODg4NDA4Mjg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg4NDA4Mjg5CkVpbmUgSG9jaHplaXQgb2huZSBQcmllc3RlcmtpbGwgPyBXbyBnaWJ0J3MgZGVubiBzb3dhcyA/IElzdCBqYSB3aWUgZWluIEJTUwpvaG5lIEdyaWZmLi4uCgpRSSoqIGRlbmt0IG1pdCB3b2hsaWdlbiBTY2hhdWVybiBhbiBpaHJlIE1FR0EtSE9DSFpFSVRTLVBBUlRZIHp1cnVlY2suIHVuZApsZWNrdCBzaWNoIGltbWVyIG5vY2ggZGllIExpcHBlbiBuYWNoIGRpZXNlbSB2b3J6dWVnbGljaGVuIFByaWVzdGVyLU1haGwuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIb2NoemVpdHNnbG9ja2VuIChNYXJjdXMsICAzLiBNYXIgMTk5OCwgMTU6MDQ6MDkpOgp+IyEgcm49UWl0ZXNzIHJ0PTg4ODkzMzQ0NyByZz1hbnplaWdlbgp+IyEgdGlkPTg4ODQwODI4OQpBbHNvIGJlaSBtZWluZXIgSG9jaHplaXQgaW0gVEFQUCB3dXJkZSBkZXIgUHJpZXN0ZXIgbmljaHQgZ2VraWxsdC4KSXN0IGF1Y2ggYmVzc2VyIHNvLCBzb25zdCB3dWVyZGUgZGVyIGd1dGUgSGlnaGxhbmRlciBoaWVyIG5pY2h0IG1laHIgc2NocmVpYmVuCmtvZW5uZW4gOykKCkNpYW8sIE1hcmN1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSG9jaHplaXRzZ2xvY2tlbiAoSGlnaGxhbmRlciwgIDMuIE1hciAxOTk4LCAyMDo1NDoxMCk6Cn4jISBybj1NYXJjdXMgcnQ9ODg4OTMzODQ5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODg4NDA4Mjg5CkRpZSB3YXIgamEgYXVjaCBuaWNodCBpbiBUQVBQLCBzb25kZXJuIGF1ZiBlaW5lciBUQVBQLUZldGUKZWluIFN0dWVjayBzdWVkbGljaCB2b24gTXVlbmNoZW4gOj4KVW5kIHRoZW9yZXRpc2NoIHN0YW5kIGVpbmVtIFByaWVzdGVybW9yZCBuaWNodHMgaW0gV2VnICpzY2hsdWNrKgogICBIclQgIChub2NoIGFtIExlYmVuIC0ga2VpbiBQcmllc3Rlcm1vcmQgYW4gZGVtIEFiZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSG9jaHplaXRzZ2xvY2tlbiAoSGFyZGlsLCAgOS4gTWFyIDE5OTgsIDExOjA4OjUwKToKfiMhIHJuPUZ5dCBydD04ODg4NDc3NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD04ODg0MDgyODkKCkljaCB3ZWlzcyBuY2lodCwgd2FzIGlociBhbGxlIGhhYnQuCkljaCBoYWIgdmVyc3VjaHQsIGRpZSBIb2NoemVpdCB6dSBzdG9lcmVuLgpEYXMgaGFiZW4gYXVmZ2VyZWd0ZSBNb2VjaHRlZ2VybnNlaGVyIDotKSB1bmQgV3Vyc3RtYWdpZXIgdmVyc3VjaHQsIHp1CnZlcmhpbmRlcm4uCkFsc28gaGFiZSBpY2ggZGVuIFByaWVzdGVyIHp1bSBCdWdnZW4gZ2VicmFjaHQuIFdpZSBkYXMgZ2VodCwgd2Vpc3MgamEKZWlnZW50bGljaCBmYXN0IGplZGVyLiBVbmQgZGFubiBkYXMgR2VzaWNodCBkZXMgV3Vyc3RtYWdpZXJzIHp1IHNlaGVuLCBhbHMgZGVyClByaWVzdGVyIGJ1Z2d0ZSB1bmQgbmNpaHQgZGFtaXQgYXVmaG9lcmVud29sbHRlLCB3cWFyIGRvY2ggenUgc2Nob2VuLgoKLUhhcmRpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlbWluYXJ2b3J0cmFnIGluIEtvZWxuIChHcmltbWJvcm4sIDIzLiBNYXIgMTk5OCwgMjM6MjA6NTApOgpBbSAyNC4zLjk4LCAxMDoxNSBVaHIgaGFlbHQgTWFyY3VzKEBUQVBQTXVkKSBlaW5lbiBrbGVpbmVuIFNlbWluYXJ2b3J0cmFnCnVlYmVyIGlyZ2VuZHdhcyBtaXQgQy1Qcm9ncmFtbWllcnVuZyBpbiBkZXIgUGh5c2lrYWxpc2NoZW4gQ2hlbWllIGluIEtvZWxuLCBpbQpTZW1pbmFycmF1bSBpbSBLZWxsZXIgKFJhdW0gMTQ2IGdsYXViZSBpY2gpLiBHYWVzdGUgc2luZCB3aWxsa29tbWVuISA6LSkKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNlbWluYXJ2b3J0cmFnIGluIEtvZWxuIChZZW5kaSwgMjQuIE1hciAxOTk4LCAxNDoxNDozMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODkwNjkxNjUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkwNjkxNjUwCktvbm50ZXN0IER1IGRhcyBldHdhcyBmcnVlaGVyIHBvc3Rlbj8gMTEgU3R1bmRlbiB2b3IgQmVnaW5uIGRlcyBWb3J0cmFncyBpc3QKdmllbGxlaWNodCBkb2NoIGVpbiBiaXNzY2hlbiBrbmFwcC4uLiBiZXNvbmRlcnMsIHdlbm4gbWFuIG5vY2ggc2NobGFmZW4KbW9lY2h0ZS4KCllUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2VtaW5hcnZvcnRyYWcgaW4gS29lbG4gKEdyaW1tYm9ybiwgMjcuIE1hciAxOTk4LCAxNDozNToxMSk6Cn4jISBybj1ZZW5kaSBydD04OTA3NDUyNzMgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTA2OTE2NTAKTmVpbiwgZGFzIHdhciBzY2hvbiBtaXQgQWJzaWNodCwgTWFyY3VzIHdvbGx0ZSBuaWNodCwgZGFzcyBzbyB2aWVsZSBMZXV0ZQprb21tZW4uIEF1c3NlcmRlbSB3YXJzIFJhdW0gMTQ3LiBBYmVyIGRlciBWb3J0cmFnIHdhciB3aXJrbGljaCBndXQsIGF1Y2ggd2VubgplciBlaW5lIFZpZXJ0ZWxzdHVuZGUgc3BhZXRlciBhbmdlZmFuZ2VuIGhhdCBhbHMgZ2VwbGFudCwgd2VpbCBpY2ggYSkgbmljaHQKZmFlaGlnIGJpbiBNYXJjdXMgenV6dWhvZXJlbiB1bmQgYikgbmljaHQgZXJ3YXJ0ZXQgaGFldHRlLCBkYXNzIEZvbGllbmRydWNrIHNvCmxhbmdlIGRhdWVydC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmFmaWtlcihpbikgZ2VzdWNodCEgKFNoYWtlZGJlZXIsIDMwLiBNYXIgMTk5OCwgMjE6NTE6MzYpOgp+IyEgb249U2hha2VkYmVlciBvdD04OTEyODczOTggb2c9cGFydHkKSGFsbG8hCgpJY2ggc3VjaGUgZnVlciBlaW4gbmV0dGVzIFNvZnR3YXJlcHJvamVrdCAoRWNodHplaXRzdHJhdGVnaWVzcGllbCkgZHJpbmdlbmQKbWluZGVzdGVucyBlaW5lKG4pIENvbXB1dGVyZ3JhZmlrZXIoaW4pLiBXZXIgSW50ZXJlc3NlIGhhdCwgc29sbHRlIG1pciBlaW5lCk1haWwgc2NocmVpYmVuLiBEYW5uIGdpYnQgZXMgd2VpdGVyZSBJbmZvcy4KClNoYWtlZGJlZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChCb2ViYmVsLCAzMC4gTWFyIDE5OTgsIDIxOjU3OjEwKToKfiMhIHJuPVNoYWtlZGJlZXIgcnQ9ODkxMjg3NDk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2CgpBZWhlbS4uLiBmcmFnIGRvY2ggbWFsIFN0ZWZmaXMgRnJldW5kLi4uIDstKQoKRWluIEJvZWJiZWwuLi4gKHJhZXVzcGVybmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQb3N0bGVpdHphaGxlbiAoR3JpbW1ib3JuLCAzMC4gTWFyIDE5OTgsIDIyOjAyOjEzKToKRm9sZ2VuZGVzIFByb2JsZW06IEljaCBoYWJlIGVpbmUgRGF0ZWkgKERhdGVuYmFuayksIHdvIEFkcmVzc2VuIGRyaW4gc2luZC4gTWl0ClBvc3RsZWl0emFobGVuLiBKZXR6dCBoYWJlIGljaCBlaW5lIHdlaXRlcmUgRGF0ZWksIGF1Y2ggbWl0IFBvc3RsZWl0emFobGVuLAp1bmQgaWNoIHdpbGwgZWluZSBadW9yZG51bmcsIGRhc3MgamVkZSBBZHJlc3NlIGF1cyBkZXIgendlaXRlbiBEYXRlaSBkZXIKQWRyZXNzZSBpbiBkZXIgZXJzdGVuIERhdGVpIHp1Z2VvcmRuZXQgaXN0LCB6dSBkZXIgZGllIGdyb2Vzc3RlIGdlb2dyYXBoaXNjaGUKTmFlaGUgYmVzdGVodC4gRGllIGhhdCBiZWthbm50bGljaCBuaWNodCBzbyB2aWVsIG1pdCBkZXIgUExaIHp1IHR1bi4gSWNoIGJpbgptaXIgemllbWxpY2ggc2ljaGVyLCBkYXNzIHNvbGNoZSBTYWNoZW4gZXhpc3RpZXJlbiwgaW1tZXJoaW4ga29tbXQgc293YXMKZGF1ZXJuZCB2b3IgKGVpbmUgVmVyc2ljaGVydW5nIG1hY2h0IGVpbmUgZ3Jvc3NlIFdlcmJlYWt0aW9uIHVuZCB0ZWlsdCBkaWUKYW50d29ydGVuZGVuIExldXRlIGRlbSBWZXJ0cmV0ZXIgenUsIGRlciBhbSBuYWVjaHN0ZW4gaXN0IGV0Yy4pLiBIYXQgamVtYW5kCmVpbmUgQWhudW5nIHdpZSBiencuIHdvIG1hbiBzb3dhcyBrcmllZ2VuIGthbm4/IE5vdGZhbGxzIGF1Y2ggZ2VnZW4gR2VsZCwgaXN0CmphIG5pY2h0IGZ1ZXIgbWljaC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUG9zdGxlaXR6YWhsZW4gKFByYSwgMzEuIE1hciAxOTk4LCAxNTo1MDoyNyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODkxMjg4MTMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg4MTMzCnNvbGx0ZSBqZWRlcyBiZXNzZXJlIEdJUyBlcmxlZGlnZW4sIGRhc3MgaXJnZW5kd2FzIG1pdCBBZHJlc3NlbiBpbiAKRGV1dHNjaGxhbmQgbWFjaHQuCgpGcmFnIG1hbCBiZWkgTHV0dW0gJiBUYXBwZXJ0IG5hY2ggKGlzdCBqYSBuaWNodCB6dSB3ZWl0IHZvbiBLb2VsbikKCmh0dHA6Ly93d3cubHV0dW10YXBwZXJ0LmRlCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChBY3JpbW9uLCAgMS4gQXByIDE5OTgsIDIwOjAzOjAyKToKfiMhIHJuPVNoYWtlZGJlZXIgcnQ9ODkxMjg3NDk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2Cj4gSWNoIHN1Y2hlIGZ1ZXIgZWluIG5ldHRlcyBTb2Z0d2FyZXByb2pla3QgKEVjaHR6ZWl0c3RyYXRlZ2llc3BpZWwpIC4uLgouICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eIF5eXl5eXl5eXgouICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHwgICAgICAgfApTdHJhdGVnaWUgaW4gRWNodHplaXQ/IElzdCBkYXMgbmljaHQgZWluIFdpZGVyc3BydWNoPwpEYW5uIHdpcmRzIGphIGVpbiBHZXNjaGlja2xpY2hrZWl0c3NwaWVsIG1pdCBIZXR6ZmFrdG9yLCBkYXMgaXN0IGRvY2gga2VpbgpnZW11ZXRsaWNoZXMgU3RyYXRlZ2llc3BpZWwgOi0oCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIgbWFnIGxpZWJlciBnZW11ZXRsaWNoZSBTcGllbGUgbWl0IERlbmthbmZvcmRlcnVuZ2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKEdyaW1tYm9ybiwgIDEuIEFwciAxOTk4LCAyMjowMzowMyk6Cn4jISBybj1BY3JpbW9uIHJ0PTg5MTQ1Mzc4MiByZz1hbnplaWdlbgp+IyEgdGlkPTg5MTI4NzQ5NgpKZWRlcyBlcm5zdGhhZnRlIFNjaGFjaHNwaWVsIGhhdCBlaW4gWmVpdGxpbWl0LiBTdHJhdGVnaWVzcGllbGUgbWl0ClplaXRiZWdyZW56dW5nICh1bmQgd2FzIGlzdCAiRWNodHplaXQiIHNjaG9uIGFuZGVyZXM/IEVpbiBTcGllbCwgaW4gZGVtIG1hbgppbm5lcmhhbGIgdm9uIDYgSmFocmVuIGRlbiAyLiBXZWx0a3JpZWcgbmFjaHNwaWVsdD8pIHNpbmQgZWhlciBkaWUgUmVnZWwuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChMdWcsICAyLiBBcHIgMTk5OCwgMDM6MDc6NTApOgp+IyEgcm49QWNyaW1vbiBydD04OTE0NTM3ODIgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTEyODc0OTYKClRqYSBBY3JpbW9uLAoKUmVjaHQgaGFzdCBEdSEgRWNodHplaXQgaGF0IG5peCBtaXQgdGFrdGlzY2hlbSBLb2VubmVuIHp1IHR1bi4KCkZpZEtHCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKFp1ZXJpbGV1LCAgMi4gQXByIDE5OTgsIDEyOjQ0OjQ5KToKfiMhIHJuPUFjcmltb24gcnQ9ODkxNDUzNzgyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2CkhpLApTb3JyeSBBY3JpbW9uIGFiZXIgd2llIGF1Y2ggZGllc2VyIGFydGlrZWwgYmV3ZWlzIGJpc3QgZHUgYW5zY2hlaW5kIG5pY2h0IGF1ZgpkZW0gbGF1ZmVuZGVuLiAKRWNodHplaXRzdHJhdGVnaWUgaXN0IHdvaGwgZGVyIG5ldWUgVHJlbmQgdW5kIGljaCBkZW5rZSBkYXMgZHUgaW4gZWluZW0KRWNodHplaXRzdHJhdGVnaWVzcGllbCBnZW5hdXNvIHN0cmF0ZWdpc2NoIHZvcmdlaGVuIGthbm5zdCB3aWUgaW4gZWluZW0KcnVuZGVuYmFzaWVydGVtIFNwaWVsLiBXZW5uIGVzIGVpbmUgYXVzZ2VrbHVlZ2VsdGUgS0kgaGFzdCBkdSBhdWNoIGdlbnVnIFplaXQKdW0gZGljaCBhdWYga29tbWVuZGUgRXJlaWduaXNzZSB2b3J6dWJlcmVpdGVuLiBVbmQgZGFkdXJjaCBkYXMgZXMgZWNodHplaXQgaXN0Cm1hY2h0IGVzIGphIGdlcmFkZSBkZXIgUmVpeiBhdXMgZGFzIGluIGplZGVyIFNla3VuZGUgenVyIGFuZGVyZW4gdGVvcmV0aXNjaAp3YXMgcGFzc2llcmVuIGtvZW5udGUuIEljdmggd3VlcmQgbWlyIG1hbCBlaW4gUkVEIEFMRVJUIG9kZXIgZWluIFRvdGFsCkFubmloaWxhdGlvbiByZWluemllaGVuIHVuZCBkdSB1ZWJlcmxlZ3N0IGRpciBlcyBub2NobWFsIGV0d2FzIGdlZ2VuCmVjaHR6ZWl0c3RyYWdpZSB6dSBzYWdlbi4gQWxzbyBpY2ggemllaGUgbWlyIGpldHp0IGRhbm4gYmFsZCBtYWwgbmUgcnVuZGUKQkFUVExFIFpPTkUgcmVpbiwgZGFzIHNlaHR6dCBkZW0gRWNodHplaXRzdHJhdGVnaWUgbm9jaCBlaW5zIGRyYXVmLCBkYSBlcyBpbgpkZXIgSWNoIHBlcnNwZWt0aXZlIHNwaWVsdCB1bmQgZWluIE1pc2NodW5nIGF1cyBFY2h0emVpdHN0cmF0ZWdpZSB1bmQgQWN0aW9uCkdhbWUgaXN0LgoKVHNjaGF1IEFsYWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKFd1ciwgIDIuIEFwciAxOTk4LCAyMjoyNjo0Myk6Cn4jISBybj1adWVyaWxldSBydD04OTE1MTM4ODkgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTEyODc0OTYKRGllIFN0cmF0ZWdpZSBpbiBFY2h0emVpdCB1bnRlcnNjaGVpZGV0IHNpY2ggamEgd29obCBnYW56IGVyaGVibGljaCB2b24gZGVyCmJlaSBSdW5kZW5iYXNpZXJ0ZW4gU3BpZWxlbiwgWnVlcmlsZXUsIHZvcnJhdXNnZXNldHp0IG1hbiBuZW5udCBkaWVzZXMKQWN0aW9ubGFzdGlnZSBHZW5yZSBTdHJhdGVnaWUsIHdhcyBsZWlkZXIgZGVyIEZhbGwgaXN0LiBOdXIgd2VpbCBkb3J0IGRlcgpLb3BmLCB3aWUgYmVpIHNvdmllbGVuIGFuZGVyZW4gU3BpZWxlbiBuaWNodCBrb21wbGV0dCBhdXNnZXNjaGFsdGV0IHdpcmQsIG5lbm4Kc2llcyBnbGVpY2ggU3RyYXRlZ2llLi4uCgpXdXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEdyYWZpa2VyKGluKSBnZXN1Y2h0ISAoWnVlcmlsZXUsICAzLiBBcHIgMTk5OCwgMDA6MTc6NDIpOgp+IyEgcm49V3VyIHJ0PTg5MTU0ODgwMyByZz1hbnplaWdlbgp+IyEgdGlkPTg5MTI4NzQ5NgpIaSwKQWxzbyBzY2hhdWVuIHdpciB6LkIuIG1hbCBSZWRBbGVydCwgZGVyIEZlaW5kIGhhdCBlaW5lIGd1dCBtaXQgVGVzbGFzCmdlc2NodWV0enRlIEJhc2lzLiBVbmQgYXVjaCBnZW9yYXBoaXNjaCBsaWVndCBkaWUgQmFzaXMgZ3V0IGluIEJlcmdlbgplaW5nZWJldHRldC4gU28gbXVzcyBpY2ggZG9jaCBtaXQgbWVpbmVuIEVpbmhlaXRlbiBlaW5lbiBXZWcgaW4gZGllc2UKZmVpbmRsaWNoZSBCYXNpcyB6dSBmaW5kZW4sIG9obmUgZGFiZWkgdmllbCBFaW5oZWl0ZW4genUgdmVybGllcmVuLiBCencuIGRlcgpSZWl6IGJlZ2lubnQgZG9jaCBkZW5uIGRhIHdvIHJ1bmRlbmJhc2llcnRlIFNwaWVsZSBhdWZob2VyZW4uIEluIGVpbmVtClJ1bmRlbmJhc2llcnRlbSBTcGllbCwga2FubiBtYW4gdWViZXJzY2h1bmdlbiB1bmQgaGludGVyaGFsdGUgZGVzIEZlaW5kZXMgdmllbApmcnVlaGVyIGFic2NoYWV0emVuIHVuZCBnZWdlbm1hc3NuYWhtZW4gZWlubGVpdGVuLiBCZWkgZWluZW0KRWNodHplaXRzdHJ0ZWdpZXNwaWVsIG11c3MgaWNoIG1pciBnZWZhc3N0IHNlaW4gZGFzIGVpbiBzb2xjaGVyIEhpbnRlcmhhbHQKamVkZXJ6ZWl0IGVpbnRyZWZmZW4ga2Fubi4gRGFzIGlzdCBkb2NoIGRhcyBpbnRyZXNzYW50ZSwgZGFzIGljaCBtZWluZSBUcnVwcGVuCmF1ZiBkZXIgS2FydGUgc3RldXJlLCBtZWluZSBFcm50ZW1hc2NoaW5lbiBmb2VyZGVybiBFcnogdW5kIGJyaW5nZW4gZXMgenUgZGVuCnNpbG9zLCB1bmQgaXJnZW50d28gYXVmIGRlciBLYXJ0ZSB0dXQgZGFzIGVpbiBHZWduZXIgZWJlbmZhbGxzIHp1ciBzZWxiZW4KWmVpdC4gWmVpZ2UgbWlyIGVpbiBydW5kZW5iYXNpZXJ0ZXMgR2FtZSwgd28gaWNoIGVpbmVyIEFuemFobCBFaW5oZWl0ZW4gZWluZW4KZ2VuYXVlbiBQbGFuIGVpbmdlYmVuIGthbm4gd2llIGVyIG5hdmlnaWVyZW4gc29sbCB1bmQgd28gZXIgZGVuIEdlZ25lcgphbmdyZWlmZW4gc29sbC4gZ2VzY2h1ZXR6dCB3aXJkIGVyIGdsZWljaHplaXRpZyB2b24gZWluZW0gU2Nod2Fkcm9uClN0YWV0aC1KYWVnZXIgdW5kIEJvbWJlci4gRGllc2UgZ3JlaWZlbiBzZWxic3RhZW5kaWcgamVkZXMgWmllbCBhbiBkYXMgZGllc2VtCktvbnZvaSBuYWVoZXJ0LiBHbGVpY2h6ZWl0aWcgYmVmZWhsZSBlaW5lbSB6d2VpdGVuIEtvbnZvaSB2b24gZGVyIHZvcmRlcnNlaXRlCmFuenVncmVpZmVuIHdvIGljaCBkYW5uIGF1Y2ggc2VsYmVyIEhhbmQgYW5sZWdlLiBEZXIgQ29tcHV0ZXIgc3RldWVydApzZWxic3RhZW5kaWcgbmFjaCBkZW4gdm9uIG1pciBlaW5nZWJlbmVuIEJlZmVobGVuIGRpZSB6d2VpdGUgYW5ncmlmZnN3ZWxsZS4KRGFzIHdhciBqZXR6dCBlaW4gQmVpc3BpZWwgYXVzICJUb3RhbCBBbm5paGlsYXRpb24iLgpJY2ggZGVua2UgamVkZXMgZ2VuZXJlIG9iIHJ1bmRlbmJhc2llcnQgb2RlciBFY2h0emVpdCBoYXQgc2VpbmUgcmVpemUgdW5kIG1hbgprYW5uIGJlaWRlbSBzdHJhdGVnaXNjaGUgRWxlbWVudGUgbmljaHQgYWJzdHJlaXRlbi4KClRzY2hhdSBBbGFpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChCYXJhaywgIDMuIEFwciAxOTk4LCAwNzo0MToyOCk6Cn4jISBybj1XdXIgcnQ9ODkxNTQ4ODAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2CkljaCBkZW5rZSBhdWNoIG5pY2h0LCBkYXNzIGJlaSBkZW4gYmlzaGVyaWdlbiBFY2h0emVpdHN0cmF0LiBTcGllbGVuIGRlcgpDb21wdXRlciB3aXJrbGljaCBpbnRlbGxlbnQgc3BpZWx0LCBhYmVyIHNwaWVsdCBtYW4gZGllc2UgU3BpZWxlIGdlZ2VuCk1lbnNjaGVuLCBzbyBpc3QgU3RyYXRlZ2llIHdpY2h0aWcuIERhcyBEZW5rZW4gaXN0IHNpY2hlciBuaWNodCBzbyBrb21wbGV4IHdpZQpiZWltIFNjaGFjaCwgbXVzcyBqZWRvY2ggYXVjaCB2aWVsIHNjaG5lbGxlciBnZXNjaGVoZW4uIEludGVsbGVueiB3aXJkCnVlYnJpZ2VucyBhdWNoIGF1ZiBaZWl0IGdlbWVzc2VuLi4uCkJhcmFrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKEFsYW4sICAzLiBBcHIgMTk5OCwgMTI6MDE6MDcpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODkxNTEzODg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2CkhpIFp1ZXJpbGV1LAp3aWUgRGVpbiBBcnRpa2VsIGJld2Vpc3QsIGJpcyBEdSBhYmVyIGF1Y2ggbmljaHQgc28gZ2FueiBhdWYgZGVtIGxhdWZlbmRlbiA6LSkKRWNodHplaXRzdHJhdGVnaWUgaXN0IG5pY2h0IGRlciBuZXVlc3RlIFRyZW5kLCBzb25kZXJuIG1pdHRsZXJ3ZWlsZSBzY2hvbgpzZWl0IHp3ZWkgSmFocmVuIGluIGFsbGVyIE11bmRlLi4uIHVuZCBkYXZvbiBhYmdlc2VoZW4gaW56d2lzY2hlbiBkZXJhcnQKYXVzZ2VsdXRzY2h0LCBkYXNzIER1IG1pY2ggaW56d2lzY2hlbiAoaWNoIGhhYiBSZWQgQWxlcnQgdW5kIFdDIElJCmF1ZiBiZWlkZW4gU2VpdGVuIGlua2x1c2l2ZSBTY2VuZXJ5IGR1cmNoZ2VzcGllbHQuLi4pIGRhbWl0IGphZ2VuIGthbm5zdC4KVW5kIGlyZ2VuZHdpZSBzY2hlaW50IGVzIG5pY2h0IG51ciBtaXIgc28genUgZ2VoZW4gLSB6dW1pbmRlc3QgYmVrb21tdCBtYW4KZGllc2VuIEVpbmRydWNrLCB3ZW5uIG1hbiBzaWNoIGRpZSBlaW5zY2hsYWVnaWdlbiBTcGllbGV6ZWl0c2NocmlmdGVuCmR1cmNobGllc3QuCgogLSBBbGFuLiBGYW50YXN5IEdlbmVyYWwgcnVsZXMhIDotKSAtCgpQLlMuIERhc3MgaWNoIHRyb3R6IGRlciBOYW1lbnNhZWhubGljaGtlaXQgbml4IG1pdCBBbGFpbi9adWVyaWxldSB6dSB0dW4gaGFiZSwKICAgICBpc3QgZG9jaCBob2ZmZW50bGljaCBrbGFyPyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEdyYWZpa2VyKGluKSBnZXN1Y2h0ISAoSGlnaGxhbmRlciwgIDMuIEFwciAxOTk4LCAxMjozMDo1Mik6Cn4jISBybj1BbGFuIHJ0PTg5MTU5NzY2NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5MTI4NzQ5Ngoqc2V1ZnoqIEZHIGlzdCBsZWlkZXIgaW1tZXIgbm9jaCBzY2h3ZWluZXRldWVyLiBBYmVyIGljaCB3b2xsdGUgZGFzIGVyc3RlCmRlciA1U3RhciBzZXJpZXMgYWxzIEJlaXNwaWVsIGFuYnJpbmdlbiAtIFBhbnplciBHZW5lcmFsLiBPSywgZXMgc3BpZWx0CnNpY2ggbmF0dWVybGljaCBuaWNodCBnbGVpY2h6ZWl0aWcgYWIsIGFiZXI6CkZlaW5kbGljaGUgU3RlbGx1bmcgbWl0IEFydGlsbGVyaWUgKGRpZSBhbmdyZW56ZW5kZSBFaW5oZWl0ZW4gdmVydGVpZGlndCksCkZsYWsgdW5kIEJ1bmtlbi4gQXJ0aWxsZXJpZSBncmVpZnQgbWFuIG5vcm1hbGVyd2Vpc2UgbWl0IEJvbWJlcm4gYW4gLSBhYmVyCmRhenUgc29sbHRlIGVyc3QgZGllIEZsYWsgd2VnLiBBbHNvIHdlbm4gbW9lZ2xpY2ggbWl0IGVpZ2VuZXIgQXJpIGRpZSBGbGFrCmJlaGFya2VuLCBkYW5uIG1pdCBGbGFlY2hlbmJvbWJhcmRlbWVudCBkaWUgRmxhayB1bnRlcmRydWVja2VuIHVuZCBtaXQKbm9ybWFsZW4gQm9tYmVybiBhdXNyb3R0ZW4uIERhYmVpIGFscyBTY2h1dHogZ2VnZW4gZmVpbmRsaWNoZSBKYWVnZXIgZWlnZW5lCkphZWdlciBuZWJlbiBkaWUgQm9tYmVyIHN0ZWxsZW4gLSBkaWUgdmVydGVpZGlnZW4gZGllIGJlaSBlaW5lbSBKYWVnZXItCmFuZ3JpZmYuIFdlbm4gZGllIEZsYWsgYXVzZ2VmYWxsZW4gaXN0IChkYXMgQXVzcm90dGVuIGthbm4gbWFuIHNpY2ggYXVjaApzcGFyZW4sIHdlbm4gc2llIHZvbiBkZW4gRmxhZWNoZW5ib21iZXJuIG51ciBnZW51ZyB1bnRlcmRydWVja3Qgd2lyZCkKZGllIEFyaSBtaXQgQm9tYmVybiBiZWhhcmtlbi4gRGFubiBlcnN0IG1pdCBQaW9uaWVyZW4gZGllIEJ1bmtlciBhbmdyZWlmZW4sCmRhbWl0IHNpZSBuaWNodCB2b24gZGVyIEFyaSBkZXppbWllcnQgd2VyZGVuLCBiZXZvciBzaWUgenVtIFp1ZyBrb21tZW4uClBpb3MgZGVzd2VnZW4sIHdlaWwgZGllIGRlbiBFaW5nZWdyYWJlbi1TdGF0dXMgZGVzIEJ1bmtlcnMgaWdub3JpZXJlbi4KTmEgZ3V0LCBuZWhtZW4gd2lyIEhlYXZ5IEluZiwgZWluZ2VncmFiZW4gc3RhdHQgZGVyIEJ1bmtlciwgZGllIHNpbmQgYmVzc2VyLgpBbHNvIHNhZyBuaWNodCwgZGFzcyBtYW4gc2ljaCBydW5kZW5iYXNpZXJ0IG5pY2h0IHVlYmVybGVnZW4gbXVzcywgd2FzCm1hbiBpbiB3ZWxjaGVyIFJlaWhlbmZvbGdlIHR1dCA6PgogICAgSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKEFsYW4sICAzLiBBcHIgMTk5OCwgMTI6NTQ6NTYpOgp+IyEgcm49SGlnaGxhbmRlciBydD04OTE1OTk0NTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTEyODc0OTYKSGkgSHJULAoxLiBGRyBpc3QgbmljaHQgbWVociBzY2h3ZWluZXRldWVyIC0gZGFzIGdpYnRzIG5ldWVyZGluZ3MgaW4gZWluZXIgQnVkZ2V0LQogICBFZGl0aW9uIGZ1ZXIgMzAsLSBETS4gVm9tIEdld2ljaHQgZGVyIFBhY2t1bmcgaGVyIHp1IHNjaGxpZXNzZW4gc2luZCBkYQogICBzb2dhciBhbGxlIEFubGVpdHVuZ2VuIGRyaW4gZW50aGFsdGVuCjIuIEhhYmUgbmljaHQgaWNoIGdlc2FndCwgZGFzcyBtYW4gcnVuZGVuYmFzaWVydCBuaWNodCB1ZWJlcmxlZ2VuIG11c3MsIHdhcwogICB1bmQgd28gdW5kIHdhcyBhdWNoIGltbWVyLi4uIGRhcyB3YXIgQWxhSW4gYWthIFp1ZXJpbGV1IDotKQogLSBBbGFuLCB3aWxsIG5pY2h0IG1pdCBBbGFpbiB2ZXJ3ZWNoc2VsdCB3ZXJkZW4gLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChIaWdobGFuZGVyLCAgMy4gQXByIDE5OTgsIDEyOjU3OjUxKToKfiMhIHJuPUFsYW4gcnQ9ODkxNjAwODk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2CkVudHNjaHVsZGlnZSwgZGFzIGthbSB3b2hsIG5pY2h0IHJhdXMsIGljaCBoYXR0ZSBkYXMgc2Nob24gbWl0YmVrb21tZW4KbWl0IERpciAhPSBadWVyaS4gSWNoIGhhYiBudXIgYXVmIDIgcG9zdGluZ3MgYXVmIGVpbm1hbCBnZWFudHdvcnRldCB1bmQKZGVuIFVudGVyc2NoaWVkIG5pY2h0IHJpY2h0aWcgcmF1c2dlYnJhY2h0LgogICAgSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcmVpcyBmdWVyIEZhaHJyYWR0ZWlsZS4uLiAoSGFyLCAgNS4gQXByIDE5OTgsIDEyOjUzOjUzKToKTWFobHppZXQsCmthbm4gbWlyIGVpbmVyIHNhZ2VuIHdpZSB0ZXVlciBlaW4gX1BBQVJfIEFsaXZpby1TY2hhbHQvQnJlbXNoZWJlbCBpbmtsdXNpdmUKWnVlZ2UgaXN0PwpBdWYgZGllIE1hcmsgZ2VuYXUgcmVpY2h0IDstKQoKSGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUHJlaXMgZnVlciBGYWhycmFkdGVpbGUuLi4gKEZsaW54LCAgNS4gQXByIDE5OTgsIDE0OjExOjEyKToKfiMhIHJuPUhhciBydD04OTE3NzM2MzMgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTE3NzM2MzMKCjc0LC0tCgooYWJlciBpY2ggcmF0ZSBEaXIgenUgU1RYLS9SQyA6bykgKQoKRmxpbnguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKE9iZXJtb3R6LCAgNy4gQXByIDE5OTgsIDA5OjE1OjM5KToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9ODkxNjAxMDcxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkxMjg3NDk2Ck9rYXksIGlzdCBHZXNjaG1hY2tzc2FjaGUuIEljaCBoYWJlIEMmQyBnZXJuZSBnZXNwaWVsdCwgYWJlciBtaXQgQyZDMiBuaWNodApnZWthdWZ0LiBBbnNvbnN0ZW4gd2FyIGVzIGJlaSBDJkMgaW1tZXIgbnVyIGVpbmUgU3RyYXRlZ2llOiBiYXVlIHNvIHZpZWxlCkVpbmhlaXRlbiwgd2llIERVIGthbm5zdCB1bmQgbWFjaGUgZGFubiBlaW5lbiB1bHRpbWF0aXZlbiBTY2hsYWcuCkdlZ2ViZW5lbmZhbGxzIGRlbiBTYW1tbGVyIHZvbSBHZWduZXIgaW1tZXIgd2llZGVyIGF1c3NjaGFsdGVuLgpJY2ggYmV2b3J6dWdlIGltbWVyIG5vY2ggUnVuZGVuYmFzaWVyZGVuZGUgU3BpZWxlIChCYXR0bGUgSXNsZSB1bmQgbmF0dWVybGljaAo1LVN0YXItU2VyaWUpLiBEYSBrb21tdCBlYmVuIGRvY2ggZXR3YXMgbWVociBTdHJhdGVnaWUgenVtIEVpbnNhdHouCkFiZXIgZXMgc29sbCBqZWRlciBkYXMgU3BpZWxlbiwgd2FzIGVyIG1hZy4KCk9NCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTZW5pb3Jlbm5hY2htaXR0YWcgKEJvdHRvbSwgIDguIEFwciAxOTk4LCAxMDowMjo0Mik6CgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogIEUgSSBOIEwgQSBEIFUgTiBHICB6dW0gIFMgRSBOIEkgTyBSIEUgTiBOIEEgQyBIIE0gSSBUIFQgQSBHICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiogIERpZSBLbGVyaWtlcmdpbGRlIGxhZWQgYWxsZSBVZWJyaWdnZWJsaWViZW5lbiB6dSB1bnNlcmVtICAgICAqCiogIHdvZWNoZW50bGljaCBzdGF0dGZpbmRlbmRlbiBTZW5pb3Jlbm5hY2htaXR0YWcgZWluLiBGdWVyICAgICAqCiogIGd1dGUgTGF1bmUgc29yZ3Qgd2llIGltbWVyIHVuc2VyIGJld2FlaHJ0ZXIgQ29uZmVyZW5jaWVyICAgICAqCiogIEFya3NoYXQsIHVudGVyc3R1ZXR6dCB2b24gc2VpbmVyIGNoYXJtYW50ZW4gQXNzaXN0ZW50aW4gICAgICAqCiogIE1pbmRyYS4gIEJlaSBLYWZmZWUgdW5kIEt1Y2hlbiBiaWV0ZXQgc2ljaCBHZWxlZ2VuaGVpdCBpbiAgICAqCiogIGdlc2VsbGlnZXIgUnVuZGUgdWViZXIgZGllIEdlYnJlY2hlbiBkZXMgQWx0ZXJzIHp1IGtsYWdlbi4gICAqCiogIFNvbGx0ZSBzaWNoIGplbWFuZCBhbiBlaW5lbSB6dSBncm9zc2VuIFN0dWVjayBFcmRiZWVydG9ydGUgICAqCiogIHZlcnNjaGx1Y2tlbiwgc3RlaHQgdW5zZXIgZ2VzY2h1bHRlcyBQZXJzb25hbCBtaXQgZGVtIFNwZWxsICAqCiogICJrdXJpZXJlIDxTcGllbGVyPiIgenVyIFZlcmZ1ZWd1bmcuIFdpciB3ZWlzZW4gZGFyYXVmIGhpbiwgICAqCiogIGRhc3MgYmVpIGRpZXNlciBHZWxlZ2VuaGVpdCBzZWxic3R2ZXJzdGFlbmRsaWNoIGRlbiBKdW5nLSAgICAqCiogIGtsZXJpa2VybiBkaWUgTW9lZ2xpY2hrZWl0IGVpbmdlcmFldW10IHdpcmQsIHNpY2ggdW50ZXIgICAgICAqCiogIGZhY2htYWVubmlzY2hlciBBdWZzaWNodCB6dSB1ZWJlbi4gRnVlciBkaWUgSnVuZ2dlYmxpZWJlbmVuICAqCiogIGJpZXRlbiB3aXIgZGVuIFNlbmlvcmVudGFueiBhbiwgbXVzaWthbGlzY2ggYmVnbGVpdGV0IHZvbiAgICAqCiogIGRlciBCaWdiYW5kIGRlciBUcnZlcy4gRGFiZWkgc2luZCBzY2hvbiBzbyBtYW5jaGUgemFydGUgICAgICAqICAgICAgICAgICAgIAoqICBCYW5kZSBnZWtudWVwZnQgd29yZGVuLiBFbnRmbGllaGVuIGF1Y2ggU2llIGRlciBFaW5zYW1rZWl0ICAgKgoqICBkZXMgQWx0ZXJzIHVuZCBnZW5pZXNzZW4gZGllIGtvZXN0bGljaGVuIEt1Y2hlbiB1bmQgVG9ydGVuICAgKgoqICBkZXIgS29uZGl0b3JlaSBQZWx6ZnVzcyB1bmQgbnV0emVuIGRpZSBHZWxlZ2VuaGVpdCBub2NoICAgICAgKgoqICBlaW5tYWwgc28gcmljaHRpZyBkYXMgVGFuemJlaW4genUgc2Nod2luZ2VuLiAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICBPcnQ6ICBTdGFtbXRlbXBlbCBkZXIgS2xlcmlrZXJnaWxkZSBhbSBBcnNjaCBkZXIgV2VsdCAgICAgICAgKgoqICBaZWl0OiBqZWRlbiBNaXR0d29jaCBhYiAxNS4wMCBVaHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFVRlJVRjogcmV0dGV0IGRlLmFsdC5tdWQhIChCYWJzLCAgOC4gQXByIDE5OTgsIDIwOjIzOjE0KToKQmVrYW5udGxpY2ggZ2lidCBlcyBpbiBkZW4gVVNFTkVUIE5ld3MgZGllIHd1bmRlcnNjaG9lbmUgTmV3c2dyb3VwIGRlLmFsdC5tdWQKClNjaG9uIHZpZWxlIHZvZWxsaWcgcGxhbmxvc2UgTm9ybWFsc3RlcmJsaWNoZSBoYWJlbiB1ZWJlciBkaWVzZSBHcnVwcGUgCmVyc3RtYWxzIGRlbiBXZWcgaW5zIE11ZCBnZWZ1bmRlbiwgdmllbGUgd2ljaHRpZ2UgQmVrYW5udG1hY2h1bmdlbiB1bmQKYXVjaCBzbyBtYW5jaGUgaGl0emlnIGdlZnVlaHJ0ZSBEZWJhdHRlIGhhdCBkaWVzZSBOZXdzZ3JvdXAgZ2VzZWhlbi4uLgoqc2Nod2VsZyogCgpKZXR6dCBzb2xsIGRpZXNlIEtvbW11bmlrYXRpb25zcGxhdHRmb3JtIHVudGVyIHZvZWxsaWcgZmFkZW5zY2hlaW5pZ2VuClZvcndhZW5kZW4gKGFuZ2VibGljaCBzaW5kIG51ciBndXQgMTAwIHBvc3RpbmdzIGluIGRlbiBsZXR6ZW4gendlaSBNb25hdGVuCm5pY2h0IGdlbnVnLi4uKSBnZWxvZXNjaHQgd2VyZGVuLiA6LSgoCgpBYmVyIG5vY2ggaXN0IG5pY2h0IGFsbGVzIHp1IEVuZGUhIFplaWd0LCBkYXNzIGRlciBHZWlzdCBkZXMgSW50ZXJuZXRzCm5vY2ggbmljaHQgZ2FueiBhdXNnZXN0b3JiZW4gaXN0ISBCZXRlaWxpZ3QgRXVjaCBhbiBkZXIgQWJzdGltbXVuZywgdW5kCnBvc3RldCB6dWhhdWYgZ2VnZW4gZGllIExvZXNjaHVuZyBpbiBkaWUgTmV3c2dyb3VwIGRlLmFsdC5hZG1pbiAhCgpCYWJzLCBkaWUgRmFja2VsIGRlciBGcmVpaGVpdCAoRGFtYWdlIHR5cGU6IGlkZWVsZXIgc2NoYWRlbikgenVlY2tlbmQuCgooSHVwc2wsIG5hdHVlcmxpY2ggImlkZWVsbGVyIFNjaGFkZW4iIG5pY2h0IFJhZWdkc3JlaXBmYWVsbGVyLi4uIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChadWVyaWxldSwgIDkuIEFwciAxOTk4LCAwMjowMzozOSk6Cn4jISBybj1BbGFuIHJ0PTg5MTU5NzY2NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5MTI4NzQ5NgpIaSwKSWNoIGJpbiBuaWNodCBhdWYgZGVtIFRyZW5kPyBJY2ggaGFiZSBDJkMxLCBSZWQgQWxlcnQsIEFnZXMgb2YgRW1waXJlcywgVG90YWwKQW5uaWhpbGF0aW9uLCBEYXJrIFJlaWduIGVpZ2VudGxpY2ggYWxsZXMgZmVydGlnIGdlc3BpZWx0LiBOZXUgaW0gVHJlbmQgc2luZApFY2h0emVpdHN0cmF0ZWdpZXNwaWVsZSBtaXQgQWN0aW9uIG1peCwgYWxzbyBhdXMgZGVyICJpY2giIHBlcnNwZWt0aXZlLCBhYmVyCmltIHByaW56aXB0IHR1dCBtYW4gZGFzIHNlbGJlLCBudXIgaXN0IG1hbiBpbiBkZXIgU2NobGFjaHQgbWl0dGVuIGRyaW5uLiBEYXMKbmV1ZSBCYXR0bGVab25lIGRhcyB6dSBkaWVzZW0gR2VuZXJlIGdlaG9lcnQsIGJpbiBpY2ggZ2VyYWRlIGFtIHRvdCBzdWVjaHRlbG4sCmJlc29uZGVycyBpbSB3ZWIgZ2VnZW4gYW5kZXJlIGF1cyBhbGxlciB3ZWx0LgoKVHNjaGF1IEFsYWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBHcmFmaWtlcihpbikgZ2VzdWNodCEgKFNoYW5uYXJhLCAgOS4gQXByIDE5OTgsIDA4OjMxOjQyKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTg5MjA4MDIxOSByZz1hbnplaWdlbgp+IyEgdGlkPTg5MTI4NzQ5NgpXYXJ1bSBtdXNzIG1hbiBlaWdlbnRsaWNoIGltbWVyIGltICJUcmVuZCIgbGllZ2VuPwoKSU1ITyBzaW5kIGRpZSBzb2dlbmFubnRlbiAiRWNodHplaXQic3RyYXRlZ2llc3BpZWxlIHZpZWwgenUgaGVrdGlzY2ggdW5kCmxhc3NlbiBlaW5lbiBrYXVtIFplaXQgenUgdmVybnVlbmZ0aWdlbiBOYWNoZGVua2VuIHVuZCBkYXp1IGtvbW10IG5vY2gsIGRhc3MKZGVyIFNwaWVsYWJsYXVmIHNlbGJlciB1bm5vZXRpZyBzaW1wbGlmaXppZXJ0IHdlcmRlbiBtdXNzLCBvZGVyIGVpbiBUZWlsIGRlcgplaWdlbmVuIEFyYmVpdCBtdXNzIHZvbiBDb21wdXRlciB1ZWJlcm5vbW1lbiB3ZXJkZW4uCgpFaW4gQmVpc3BpZWwgaXN0IFBheCBJbXBlcmlhIDIsIGRhc3MgbGVpZGVyIGluIEVjaHR6ZWl0IGFibGFldWZ0Li4uCgpTaGFubmFyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFVRlJVRjogcmV0dGV0IGRlLmFsdC5tdWQhIChQcmEsICA5LiBBcHIgMTk5OCwgMTY6Mjc6NTApOgp+IyEgcm49QmFicyBydD04OTIwNTk3OTQgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTIwNTk3OTQKQmluIGljaCB6dSBibG9lZCwgb2RlciB3aWU/CgpJY2ggaGFiZSB3ZWRlciBpbiBkZS5hbHQubXVkIG5vY2ggaW4gZGUuYWx0LmFkbWluIGVpbmUgRGlza3Vzc2lvbiB6dXIKQWJzY2hhZmZ1bmcgdm9uIGRlLmFsdC5tdWQsIGdlc2Nod2VpZ2UgZGVubiBlaW5lbiBSZkQgb2RlciBnYXIgZWluIENmVgpnZWZ1bmRlbi4gSW4gZGUuYWRtaW4ubmV3cy5hbm5vdW5jZSBhdWNoIG5pY2h0LiAKCk1hY2hzdCBEdSBQZmVyZGUgc2NoZXUsIG9kZXIgYmluIGljaCBibGluZD8KClByYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQVVGUlVGOiByZXR0ZXQgZGUuYWx0Lm11ZCEgKEJhYnMsICA5LiBBcHIgMTk5OCwgMTY6NTc6MjEpOgp+IyEgcm49UHJhIHJ0PTg5MjEzMjA3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjA1OTc5NApXZWRlciBiaXN0IER1IGJsaW5kLCBub2NoIG1hY2ggY2loIGRpZSBQZmVyZGUgc2NoZXUuIApEZXIgVGhyZWFkIHZlcmJpcmd0IHNpY2ggaW4gZGUuYWx0Lm11ZCB1bnRlciBkZW0gVGl0ZWwKVm9yc2NobGFnOiByZW1ncm91cCBkZS5hbHQuem90dHkuYW5zd2VycywKVm9yc2NobGFnIHJtZ3JvdXAgZGUuYWx0Lm11Ywp1bmQgenUgcm1ncm91cCBkYW0KClBvc3RpbmdzIHVudGVyIGFuZGVyZW0gdm9uIE1hcmN1cyB1bmQgbWlyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogR3JhZmlrZXIoaW4pIGdlc3VjaHQhIChadWVyaWxldSwgMTIuIEFwciAxOTk4LCAwNjozNzozNyk6Cn4jISBybj1TaGFubmFyYSBydD04OTIxMDM1MDIgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTEyODc0OTYKSGksCkhhdCBkb2NoIGVpbiBnZXdpc3NlbiBSZWl6IHdlbm4gZGllIENvbXB1dGVyIEtJIHNvIGhvY2ggaXN0IGRhcyBlciBtaXIgYXJiZWl0CmFibmVobWVuIGthbm4uIERhenUgZmlvbmQgaWNoIGVjaHR6ZWl0c3RyYXRlZ2llIGdhcm5pY2h0IHNvIGhla3Rpc2NoLCBuYWphCmtsYXIgbWFuIGhhdCB3ZW5pZ2VyIFplaXQgdW0genUgdWViZXJsZWdlbiBhYmVyIGRhcyBtYWNodCBkb2NoIGdlcmFkZSBkZXIgUmVpegphdXMuIEVzIGdpYnQgd29obCBrZWluIE5ldHp3ZXJrc3BpZWwgZGFzIGltIE5ldHp3ZXJrIHNvIHZpZWwgZnVuIG1hY2h0IHdpZQpFY2h0ZXplaXRzdHJhdGVnaWUgd2VubiBlaW5pZ2UgenVzYW1tZW4gc3BpZWxlbi4gSWNoIGhhYmUgbWFsIHp1IDggaG9jaCBSZWQKQWxlcnQgZ2VzcGllbHQsIGRhIGdpbmcgd2FzIGFiIHdlbm4sIGRpZSBQYW56ZXJhcm1lZW4gdm9uIDggU3BpZWxlciBpbiBkZXIKTWl0dGUgYXVmZWluYW5kZXIgdHJlZmZlbi4gRGllIFRvdGFsZSBTY2hsYWNodCA9OikKClRzY2hhdSBBbGFpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWlUgVkVSS0FVRkVOICEhISAtLS0+IFdFUlRWT0xMIDwtLS0gKFNoYXJpYSwgMTQuIEFwciAxOTk4LCAxNTo1MDoxMSk6CgpUamFoYSBmdWVyIGFsbGUgRmFucyB2b24gc2Nob2VuZW4gU3RhZWR0ZW46IAoKSWNoIHZlcmthdWZlIGRpZSB1bHRpbWF0aXZlLCBzdXBlcnNjaG9lbmUsIGZhc3QgdW5nZWJyYXVjaHRlIEZhbGstS2FydGUgdm9uCmRlciBTdGFkdCBhdXMgZGVyIGRpZSB1bnNwb250YW5zdGVuIExldXRlIGtvbW1lbjoKCgogICAgICAgICAgICBHIEUgTCBTIEUgTiBLIEkgUiBDIEggRSBOICAgICAgISEhISEhCgoKV2VyIGFsc28gYW0gbWVpc3RlbiBiaWV0ZXQgYmVrb21tdCBzaWUgOi0pKSkKTWluZGVzdGdlYm90OiAxIG1hbCBmdWVyIFplcGh5ciBrb2NoZW4gOi0pCgpTaGFyaWEKCgoKUC5TLjogU2Nob2VuZSBHcnVlc3NlIGFuIFByaW56IFJhc2NhbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFpVIFZFUktBVUZFTiAhISEgLS0tPiBXRVJUVk9MTCA8LS0tIChNb3Jnb3RoLCAxNC4gQXByIDE5OTgsIDE1OjUxOjE5KToKfiMhIHJuPVNoYXJpYSBydD04OTI1NjE4MTEgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTI1NjE4MTEKT0suIEljaCBiaWV0ZSA6CjEgbWFsIFplcGh5ciBrb2NoZW4hIQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaVSBWRVJLQVVGRU4gISEhIC0tLT4gV0VSVFZPTEwgPC0tLSAoVGVkZHksIDE0LiBBcHIgMTk5OCwgMTY6MDE6NTcpOgp+IyEgcm49U2hhcmlhIHJ0PTg5MjU2MTgxMSByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjU2MTgxMQpIYWJlbiB3aWxsLCBrb2NoZW4ga2VpbiBQcm9ibGVtLCBqZWRlcnplaXQgOy0pClVlYmVyIG1laW5lIGlzdCBuYWVtbGljaCBLYWZmZWUgZHJ1ZWJlcmdlZmxvc3Nlbi4KCgpUZWRkeSwgZmluZGV0IFJhc2NhbCBnYXJuaWNodCBTTyB1bnNwb250YW4sIG1hbiBtdXNzIGlobSBudXIgWmVpdCBsYXNzZW4uIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBaVSBWRVJLQVVGRU4gISEhIC0tLT4gV0VSVFZPTEwgPC0tLSAoTW9yZ290aCwgMTQuIEFwciAxOTk4LCAxNjowMjo1Nik6Cn4jISBybj1UZWRkeSBydD04OTI1NjI1MTcgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTI1NjE4MTEKU3ByaWNoIGlobiBtYWwgYXVmIHZMYW5kIGFuLiBEYSBmYWxsZW4gaWhtIFNQT05UQU4gMTAwMCBHZW1laW5oZWl0ZW4gZWluLCBkaWUKaWhtIHdpZGVyZmFocmVuIHNpbmQuCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNRkcgLT4gV2llbiAoWWVuZGksIDE0LiBBcHIgMTk5OCwgMTY6MjM6MjcpOgpTdWNoZSBNRkcgTVMgKG9kZXIgd28gYXVjaCBpbW1lcikgLT4gV2llbgpBbmt1bmZ0IG1vZWdsaWNoc3QgRnJlaXRhZywgMTcuIEFwcmlsLCBvZGVyIFNhbXN0YWcsIDE4LkFwcmlsLCB2b3JtaXR0YWdzICghKQoKWVRZCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogWlUgVkVSS0FVRkVOICEhISAtLS0+IFdFUlRWT0xMIDwtLS0gKFNjaG9rbywgMTQuIEFwciAxOTk4LCAxNjoyMzo0NCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg5MjU2MjU3NiByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjU2MTgxMQpOZWUgZnJhZyBpaG4gbmFjaCBJTU1FTkhPRiEgJzspCgpTY2hva28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaVSBWRVJLQVVGRU4gISEhIC0tLT4gV0VSVFZPTEwgPC0tLSAoR3d5bndhaXRlciwgMTQuIEFwciAxOTk4LCAxNzo1Mjo0Nik6Cn4jISBybj1TaGFyaWEgcnQ9ODkyNTYxODExIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkyNTYxODExCkRhICBqYSBkYXMgSG9lY2hzdGdlYm90IGVudHNjaGVpZGV0OgoKQmlldGUgMngga29jaGVuICsgIDF4IE5hY2h0aXNjaAoKZ3J1c3MsIEd3eW4qIChkZXIgZWluZSBzZWhyIHNwb250YW5lIExhcnBlcmluIGluICBHLiBrZW5udCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaVSBWRVJLQVVGRU4gISEhIC0tLT4gV0VSVFZPTEwgPC0tLSAoWm9ycm8sIDE0LiBBcHIgMTk5OCwgMjI6NDI6MjgpOgp+IyEgcm49U2hhcmlhIHJ0PTg5MjU2MTgxMSByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjU2MTgxMQpJY2ggbWFjaCB6d2FyIGtlaW4gSG9lY2hzdGFuZ2Vib3QgYWJlciBiaWV0ZSBlaW5lbiByZWl6dm9sbGVuIFRhdXNjaCBhbiA6CgpuYWVtbGljaCBkZW4gRmFsay1wbGFuIGVpbmVzIHVuYmVkZXV0ZW5kZW4gVm9yb3J0IHZvbiBMdWVkZW5zY2hlaWR0ICEKCiAgICAgICAgICAgICBEb3J0bXVuZCAKCkdydXNzIFpvcnJvICh3dWVyZGUgbm9jaCBlaW5lbiB2b24gV2FubmUtRWlrZWwgZHJhdWZsZWdlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkpBQUFBQSEhISEhISAoR3JpbW1ib3JuLCAxNS4gQXByIDE5OTgsIDIzOjA3OjE3KToKfiMhIG9uPUtleSBvdD04OTI2MzgwMjggb2c9YWxsZ2VtZWluZXMKRXMgaXN0IHNvd2VpdCA7KQoqanViZWwqCkVzIHdpcmQgZ2VzY2hlaGVuIC4uLiBnZW5hdSAuLi4gamEgLi4uICpodWVwZioKQWxzbyBrb21tdCBhbGxlIG1hbCB2b3JiZWkgOikKCkFjaGphIC4uLiBhZWggLi4gdW0gd2FzIGdlaHRzIGVpZ2VudGxpY2g/IC4pCgpOYWphIC4uLiBsYW5nZSBHZXNjaGljaHRlIGt1cnogZ2VmYXNzdCAuLi4KQW0gRnJlaXRhZyBkZW4gMTYuNC4xOTk4IHdlcmRlbiBOZXNhamEgdW5kIG1laW5ld2VuaWdrZWl0IGluIGRlbiBoZWlsbGlnZW4KU3RhbmQgZGVyIEVoZSBlaW50cmV0ZW4gOikKRGllc2UgRmVzdCBkZXIgRnJldWRlIGZpbmRldCBpbiBkZXIgZ3V0ZW4gYWx0ZW4gS2FwZWxsZSAod28gYXVjaCBzb25zdCA/Pz8pCnVuZCB1bSAxNzozMCBzdGF0dCA6KQpJY2ggaG9mZiBkb2NoIGVzIHdlcmRlbiBlaW4gcGFhciBkYSBlcnNjaGVpbmVuIDspCkVpbmdlbGFkZW4gc2luZCBhbGxlLCBzdGVyYmVuIHR1biBtZWhyIDspIApBY2hqYSAuLi4gU2lsdmFuYSAuLi4gdHJhZyBkaWUgS2FwZWxsZSBtYWwgYml0dGUgZWluIGFscyBway16b25lID0sKQoKS2V5IGZyZXV0IHNpY2ggdGllcmlzY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKQUFBQUEhISEhISEgKEdyaW1tYm9ybiwgMTUuIEFwciAxOTk4LCAyMzowNzoxOSk6Cn4jISBvbj1TaWx2YW5hIG90PTg5MjYzODE0MiBvZz1hbGxnZW1laW5lcwp+IyEgcm49S2V5IHJ0PTg5MjYzODAyOCByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTg5MjYzODAyOApQSy1ab25lPyBXaWVzbz8gTWlyIGlzdCBkYXMgZWdhbCwgd2lldmllbGUgaWNoIHphcHBlLi4uIElDSCBrYW5uIApQX0tJTExTIHByb2JsZW1sb3MgaGludGVyaGVyIHdpZWRlciBhdWYgMCBzZXR6ZW4gdW5kIGRpZSBFaW50cmFlZ2UKaW0gTG9nIGxvZXNjaGVuLi4uIDopCgogIFNpbHZhbmEgIC0gZ3JpbnN0IGJvZXMgLSBuaWNodCBhcnRpZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEpBQUFBQSEhISEhISAoR3JpbW1ib3JuLCAxNS4gQXByIDE5OTgsIDIzOjA3OjIxKToKfiMhIG9uPVJpbmdvciBvdD04OTI2Mzk4MjUgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPUtleSBydD04OTI2MzgwMjggcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD04OTI2MzgwMjgKV2FzIGRlbm4gbnVuIC0gRnJlaXRhZyBvZGVyIDE2LjQuMTk5OD8KClJpbmdvci4gV2lsbCBzaWNoIGRhcyBuaWNodCBlbnRnZWhlbiBsYXNzZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSkFBQUFBISEhISEhIChHcmltbWJvcm4sIDE1LiBBcHIgMTk5OCwgMjM6MDc6MjIpOgp+IyEgb249SmFzcGVyIG90PTg5MjY0MjkzNSBvZz1hbGxnZW1laW5lcwp+IyEgcm49S2V5IHJ0PTg5MjYzODAyOCByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTg5MjYzODAyOApoZWlyYXRldCBoYWx0IGF1ZiBkZW0gc2NobGFjaHRmZWxkIDopIGRhbm4gc2V0eiBpY2ggZGEgYXVjaCBpcmdlbmR3byBuZW4KYWx0YXIgaGluLCBmYWxscyBlcyBkYSBub2NoIGtlaW5lbiBnaWJ0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEpBQUFBQSEhISEhISAoR3JpbW1ib3JuLCAxNS4gQXByIDE5OTgsIDIzOjA3OjIzKToKfiMhIG9uPUtleSBvdD04OTI2NDY5MzUgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPVJpbmdvciBydD04OTI2Mzk4MjUgcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD04OTI2MzgwMjgKQXJncyEgU29ycnkKQmluIHdvaGwgenUgYXVmZ2VyZWd0IC4uLiBGcmVpdGFnIGRlciAxNy40LjE5OTggbmF0dWVybGljaCA7KQoKS2V5IHN1Y2h0IG5lbiBGcmFjayAsKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEpBQUFBQSEhISEhISAoR3JpbW1ib3JuLCAxNS4gQXByIDE5OTgsIDIzOjA3OjI0KToKfiMhIG9uPVlhcmVuIG90PTg5MjY0NzEyNCBvZz1hbGxnZW1laW5lcwp+IyEgcm49S2V5IHJ0PTg5MjYzODAyOCByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTg5MjYzODAyOApXaWVzbyBQSy1ab25lPyBHaWJiZXQgRUstU3R1cHNlIGZ1ZXIgZGFzIEJyYXV0cGFhcj8gOi0pCgpZYXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFpVIFZFUktBVUZFTiAhISEgLS0tPiBXRVJUVk9MTCA8LS0tIChUZWRkeSwgMTYuIEFwciAxOTk4LCAwMDozMzo1Mik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg5MjU2MjU3NiByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjU2MTgxMQpVTSBtYWwga2xhcnp1c3RlbGxlbiwgd2FzIGljaCB1bnRlciBlaW5tYWwga29jaGVuIHZlcnN0ZWhlLCBoaWVyIGRlcgoobW9lZ2xpY2hlKSBTcGVpc2VwbGFuOgoKRXNzZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRyYWVua2UKClZvcnNwZWlzZToKCkNyZW1lIENoYW1waWdub24gICAgICAgICAgICAgICAgICAgIFNla3QgbWl0IE8tU2FmdAoKCkhhdXB0Z2FuZzoKClB1dGVuc2Nobml0emVsLCB1ZWJlcmJhY2tlbiAgICAgICAgICA5MydlciBLZXJuZXIgU3BhZXRsZXNlCm1pdCBQZmlyc2ljaCBnYXJuaWVydAoKTWFpcywgaW4gQnV0dGVyIGdlc2Nod2Vua3QKU3BhcmdlbCBtaXQgU2F1Y2UgSG9sbGFuZGFpc2UKCk9mZW5rYXJ0b2ZmZWwgbWl0IEtyYWV1dGVycXVhcmsKCgpOYWNoc3BlaXNlOgoKQ3JlcGVzLCBnZWZ1ZWxsdCBtaXQgVmFuaWxsaWVlaXMgICAgICBSaGVpbmtuaWUgQ3JlbWUgCgoKClNlbGJzdHZlcnN0YWVuZGxpY2ggc2luZCBhdWNoIGRpZSBTdGlmdGVyaW4gZGVzIFByZWlzZXMgdW5kIGplbmUgZW5vcm0KdW5zcG9udGFuZSBQZXJzb24gZWluZ2VsYWRlbiwgc29mZXJuIGVyIG1pciBuZSBFLU1haWwgc2NocmVpYnQuICpncmlucyBSYXNjYWwKYW4qCgpUZWRkeSwgd2FydGV0IGF1ZiBkYXMgbmFlY2hzdGhvZWhlcmUgR2Vib3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFpVIFZFUktBVUZFTiAhISEgLS0tPiBXRVJUVk9MTCA8LS0tIChTaGFyaWEsIDE2LiBBcHIgMTk5OCwgMDA6NDI6MDIpOgp+IyEgcm49VGVkZHkgcnQ9ODkyNjc5NjMyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkyNTYxODExCgoqamF1Y2h6KiBqYXUgZGFzIGlzIG5hdHVlcmxpY2ggbWFsIG5lbiBBbmdlYm90IC4uIHdhciBpY2ggZGFzID8gOi0pKSkgCgoqc2FiYmVyKiBpY2ggZ2xhdWIgZGVyIFByZWlzIGdlaHQgYW4gRGljaCAhISA6LSkpKQoKU2hhcmlhIHNjaGxlY2t0IHNpY2ggZGVuIE11bmQgLi4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFpVIFZFUktBVUZFTiAhISEgLS0tPiBXRVJUVk9MTCA8LS0tIChUZWRkeSwgMTYuIEFwciAxOTk4LCAwMDo0MzowMSk6Cn4jISBybj1TaGFyaWEgcnQ9ODkyNjgwMTIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkyNTYxODExCkFjaCBzbywgZGFzIEFsdGVybmF0aXZtZW51ZToKCk51ZGVsbiBtaXQgS2V0Y2h1cCB1bmQgSGFuc2FwaWx6CgpUZWRkeSwgaGV1dGUgbWFsIGZsZXhpYmVsIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBaVSBWRVJLQVVGRU4gISEhIC0tLT4gV0VSVFZPTEwgPC0tLSAoU2hhcmlhLCAxNi4gQXByIDE5OTgsIDAwOjQzOjU1KToKfiMhIHJuPVRlZGR5IHJ0PTg5MjY4MDE4MSByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjU2MTgxMQpOZWVlIG5lZWUgbmVlZSBkYXMgZXJzdGUgTWVudWUgZ2VmaWVsIG1pciBiZXNzZXIgOi0pKQoKYWV1c3NlcnN0IHVuZmxleGliZWwgOi0pIFNoYXJpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogWlUgVkVSS0FVRkVOICEhISAtLS0+IFdFUlRWT0xMIDwtLS0gKFRlZGR5LCAxNi4gQXByIDE5OTgsIDAwOjQ2OjAxKToKfiMhIHJuPVNoYXJpYSBydD04OTI2ODAyMzUgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTI1NjE4MTEKT0ssIGRhbm4gd2FlcmUgZGFzIGdla2xhZXJ0LCBtdWVzc2VuIHdpciBudXIgbm9jaCBlaW5lbiBUZXJtaW4gZmluZGVuLApVZWJlcm5hY2h0dW5nc21vZWdsaWNoa2VpdGVuIHNpbmQgdm9yaGFuZGVuLgoKVGVkZHksIGxhZXNzdCBqYSBtaXQgc2ljaCBoYW5kZWxuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBKQUFBQUEhISEhISEgKEx1ZywgMTcuIEFwciAxOTk4LCAwMTo0MTo1NCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODkyNjc0NDQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkyNjM4MDI4CkhtcGYsCgoKd2lya2xpY2ggYmxvZWRlIFVocnplaXQgOigKR3JhdHMgZGFubgpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEpBQUFBQSEhISEhISAoVGVkZHksIDE3LiBBcHIgMTk5OCwgMTk6NTk6MzQpOgp+IyEgcm49THVnIHJ0PTg5Mjc3MDExNCByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjYzODAyOApkaXRvCgpUZWRkeSwgZ3JhdHN0IGF1Y2ggbWFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbiBhbGxlIFNlaGVyISAoR3JpbW1ib3JuLCAxOC4gQXByIDE5OTgsIDE4OjM3OjU3KToKSGV1dGUgdW0gMjA6MTUga29tbXQgaW4gZGVyIEFSRCBkaWUgU2VuZHVuZyAiTXVzaWthbnRlbnN0YWRsIiBtaXQgZGVuCkVkZWxzZWhlcm4hIEVpbiBhYnNvbHV0ZXMgTXVzcyBmdWVyIGFsbGUgU2VoZXIsIGRpZSBrZWluZSBCYW5nZSBkYXZvciBoYWJlbgptYWwgZGVuIFNwaWVnZWwgdm9yZ2VoYWx0ZW4genUgYmVrb21tZW4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbiBhbGxlIFNlaGVyISAoSGFuZ292ZXIsIDE4LiBBcHIgMTk5OCwgMjI6MTc6MzApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg5MjkxNzQ3NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5MjkxNzQ3NwpIYWIgaWNoIEdsdWVjaywgZGFzcyBlcyBrZWluZSBXdXJzdHNlaGVyIHNpbmQuCgotSGFuZ292ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBXYW5kZXJuIGlzdCBkZXIgTXVkZGVyIEx1c3QuLi4gKE1pZXplLCAyMC4gQXByIDE5OTgsIDEzOjIxOjU3KToKCkhpIE11ZGRpZXMsCgp3ZXIgaGF0IGRlbm4gTHVzdCBhbSBXRSB2b20gMzAuMDQuIGJpcyAzLjUuIGltIEhhcnogenUgd2FuZGVybj8gRXMgc2luZCBub2NoIDMKUGxhZXR6ZSBmcmVpLiBBbHNvIHdlciBMdXN0IGhhdCwgTWFpbCBhbiBtaWNoLgoKTWllemUgLSB3aWxsIGRlbiBXaW50ZXJzcGVjayBiZXNpZWdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pdGZhaHJnZWxlZ2VuaGVpdCBuYWNoIEVuZ2xhbmQgZ2VzdWNodCAoQWxib2luLCAyMS4gQXByIDE5OTgsIDEzOjE1OjQwKToKd2llIGRlciB0aXRlbCBzY2hvbiBzYWd0LCB3aWxsIGljaCBuYWNoIEVuZ2xhbmQ6CkFiZmFocnRzdGFnOiAxNS41LgpSdWVja2ZhaHJ0c3RhZzogMjYuNS4KCkFscyBaaWVsb3J0IHdhZXJlIGFtIGJlc3RlbiBZb3JrLCB3dWVyZGUgbWljaCBhYmVyIGF1Y2ggbWl0IExvbmRvbiBvZGVyCkJpcm1pbmdoYW0gYmVnbnVlZ2VuLiBCZWkgQWVuZGVydW5nZW4gaGluc2ljaHRsaWNoIGRlcyBEYXR1bXMgb2RlciBkZXMgT3J0ZXMKbGllc3NlIGljaCBuYXR1ZXJsaWNoIG1pdCBtaXIgcmVkZW4uCkFjaGphIHdlciBzb25zdCBub2NoIGVpbiBUaXAgd2Vpc3Mgd2llIGljaCBiaWxsaWcgZGFoaW4ga29tbWUgKGFsbGUgZ3VlbnN0aWdlbgpGbHVndGFyaWZlIHNpbmQgYXVzZ2VidWljaHQuIHVuZCB2b24gSGFtYnVyZyBmYWhlcnQgdW0gZGllIFplaXQga2VpbmUgRmFlaHJlCjooKCgpIGthbm4gZXMgbWlyIGdlcm5lIG1pdHRlaWxlbi4KCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1pdGZhaHJnZWxlZ2VuaGVpdCBuYWNoIEVuZ2xhbmQgZ2VzdWNodCAoUHJhLCAyMS4gQXByIDE5OTgsIDE0OjIwOjU5KToKfiMhIHJuPUFsYm9pbiBydD04OTMxNTczNDAgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTMxNTczNDAKdm9uIHdvIHdpbGxzdCBkdSBkZW5uIGZhaHJlbj8KCnNjaG9uIG1hbCBFdXJvc3Rhci1CaWxsaWd0YXJpZmUgZ2VjaGVja3Q/IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1pdGZhaHJnZWxlZ2VuaGVpdCBuYWNoIEVuZ2xhbmQgZ2VzdWNodCAoQmFtYnVsa28sIDIxLiBBcHIgMTk5OCwgMTY6MTg6MjApOgp+IyEgcm49QWxib2luIHJ0PTg5MzE1NzM0MCByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzE1NzM0MApBbHNvIGVpbiBGbHVkIER1ZXNzZWxkb3JmLU1hbmNoZXN0ZXIga29zdGV0IG1pdCBCcml0LiBBaXJ3YXlzIGNhLiAzMzAgRE0uCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNaXRmYWhyZ2VsZWdlbmhlaXQgbmFjaCBFbmdsYW5kIGdlc3VjaHQgKEJhbWJ1bGtvLCAyMS4gQXByIDE5OTgsIDE2OjE5OjMwKToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTg5MzE2ODMwMCByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzE1NzM0MApTb2xsIG5hdHVlcmxpY2ggRmx1ZyB1bmQgbmljaHQgRmx1ZCBoZWlzc2VuLgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1pdGZhaHJnZWxlZ2VuaGVpdCBuYWNoIEVuZ2xhbmQgZ2VzdWNodCAoUHJhLCAyMS4gQXByIDE5OTgsIDE2OjI0OjI5KToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTg5MzE2ODM3MCByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzE1NzM0MApmdWVyIFN0dWRlbnRlbiBnaWJ0cyBkYXMgYXVjaCBzY2hvbiBtYWwgZnVlciBjYS4gMjUwLi0gKGFiIEQgb2RlciBLL0JuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWl0ZmFocmdlbGVnZW5oZWl0IG5hY2ggRW5nbGFuZCBnZXN1Y2h0IChBbGJvaW4sIDIxLiBBcHIgMTk5OCwgMTg6MzQ6MTYpOgp+IyEgcm49UHJhIHJ0PTg5MzE2ODY2OSByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzE1NzM0MAphbHNvIHp1ZXJzdCwgaWNoIGhhYmUgd2lya2xpY2ggYWxsZXMgZHVyY2hmb3JzdGV0OiBhbiBGbHVlZ2VuIGdpYnRzIG5pY2h0cwpiZXNzZXJlcyBtZWhyIAphbHMgTG9uZG9uIHVlYmVyIDQwMERNLiBXYWhyc2NoZWlubGljaCB3ZWlsIGljaCBld2FzIHp1IHNwYWV0IGthbSwgZGVubiB2b3IgMTQKVGFnZW4gaGF0dGUgS0xNIG5vY2ggbmVuIFNwZXppYWx0YXJpZiBzbyBkYXNzIExvbmRvbiAyMTkgTWFlcmtlciBrb3N0ZXRlLi4uCkZ1ZXIgUHJhOiBJY2ggd3VlcmRlIGdlcm5lIHZvbiBMZWlwemlnL0RyZXNkZW4vQmVybGluIGxvc2xlZ2VuLCBudXIgZmFlaHJ0IHZvbgpFdXJvbGluZXMgbmljaHQgdm9uIGRlciBFYXN0c2lkZS4gVU5kIGJlaSBFdXJvc3RhciB3dXJkZSBpY2ggYXVjaCBub2NoIG5pY2h0CmZ1ZW5kaWcuCgpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxhYnlyaW50aGdlbmVyYXRvciAoU2lsdmFuYSwgMjIuIEFwciAxOTk4LCAxNjoxMToxMik6CkhpLgpIYXQgamVtYW5kIHp1ZmFlbGxpZyBlaW5lIFJvdXRpbmUsIG1pdCBkZW0gMkQtTGFieXJpbnRoZSAobnVyIG1pdApkZW4gYWNodCBHcnVuZHJpY2h0dW5nZW4pIGJlaSBmZXN0ZXIgUmF1bXphaGwgYXV0b21hdGlzY2ggZ2VuZXJpZXJ0CndlcmRlbiBrb2VubmVuPyBGYWxscyBqYSwgYml0dGUgaWNoIHVtIEVpbnNpY2h0LiBMaW5rcyBtaXQKSW5mb3Mgd2VyZGVuIGF1Y2ggZ2VybmUgZ2Vub21tZW4uCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMYWJ5cmludGhnZW5lcmF0b3IgKE9iZXJtb3R6LCAyMi4gQXByIDE5OTgsIDE2OjEzOjEyKToKfiMhIHJuPVNpbHZhbmEgcnQ9ODkzMjU0MjcyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkzMjU0MjcyCklnaXQsIGRhcyBrbGluZ3QgamEgbmFjaCBlaW5lciBnZW1laW5lbiBRdWVzdAoKRHVmZnkgc2llaHQgc2ljaCBzY2hvbiBpbSBMYWIgdmVybGF1ZmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKYXZhLUV4cGVyaW1lbnRlIChTaWx2YW5hLCAyMi4gQXByIDE5OTgsIDE2OjEzOjI0KToKVW5kIG5vY2ggd2FzOgoKSWNoIHN1Y2hlIExpbmtzLCBiZWkgZGVuZW4gaW50ZXJha3RpdmUgRXhwZXJpbWVudGUgZHVyY2hnZWZ1ZWhydAp3ZXJkZW4ga29lbm5lbiwgdW5kIHp3YXIgYmV2b3J6dWd0IFBoeXNpaywgYWJlciBhdWNoIGFuZGVyZSBOYXR1cndpc3Nlbi0Kc2NoYWZ0ZW4uIEFsc28gYmVpc3BpZWxzd2Vpc2UgSmF2YUFwcGxldHRzLCBkaWUgV3VyZmt1cnZlbiBuYWNoCkJlbnV0emVyYW5nYWJlbiBiZXJlY2huZW4gdW5kIHBsb3R0ZW4gdW5kIHNvd2FzLiBGYWxscyBqZW1hbmQgd2FzCndlaXNzLCBiaXR0ZSBtYWlsIGFuIG1pY2guCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMYWJ5cmludGhnZW5lcmF0b3IgKFJvY2h1cywgMjIuIEFwciAxOTk4LCAxNjozNTozNSk6Cn4jISBybj1TaWx2YW5hIHJ0PTg5MzI1NDI3MiByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzI1NDI3MgpEZXIgQWxnb3JpdGhtdXMgaXN0IHNlaHIgZWluZmFjaDoKRmFuZ2UgYmVpbSBFaW5nYW5nc3JhdW0gYW4KICBGYWxscyBlcyBOYWNoYmFycmFldW1lIGdpYnQsIGRpZSBub2NoIGtlaW5lbiBBdXNnYW5nIGhhYmVuLCB3YWVobGUKICAgIGVpbmVuIHp1ZmFlbGxpZyBhdXMsIGVyc2NoYWZmZSBlaW5lbiBEdXJjaGdhbmcgenUgZGllc2VtLCBzcGVpY2hlcmUKICAgIGRpZXNlbiBSYXVtIGF1ZiBlaW5lbSBTdGFjayB1bmQgZnVlaHJlIGRlbiBBbGdvcml0aG11cyBhbiBkZW0KICAgIGF1c2dld2FlaGx0ZW4gUmF1bSBmb3J0CiAgc29uc3Qgc2NobWVpc3Mgc29sYW5nZSBSYWV1bWUgdm9tIFN0YWNrLCB3aWUgZGllc2Uga2VpbmUgTmFjaGJhcnJhZXVtZQogICAgb2huZSBBdXNnYWVuZ2UgaGFiZW4gdW5kIGZ1ZWhyZSBkZW4gQWxnb3JpdGhtdXMgYW5zY2hsaWVzc2VuZCBhbQogICAgb2JlcnN0ZW4gUmF1bSB2b20gU3RhY2sgZm9ydC4KVW5kIGRhcyBzb2xhbmdlLCBiaXMgYWxsZSBSYWV1bWUgQXVzZ2FlbmdlIGhhYmVuLgooTWFuIHN0YXJ0ZXQgbmF0dWVybGljaCBkYW1pdCwgZGFzcyBkaWUgUmFldW1lIGFuZmFuZ3Mgbm9jaCBhbGxlIFdhZW5kZSBoYWJlbikKRGVyIEFsZ29yaXRobXVzIGlzdCBzZWhyIHByYWt0aXNjaCAtIGF1ZiBqZWRlIEFuemFobCB2b24gbW9lZ2xpY2hlbgpSaWNodHVuZ2VuIGFud2VuZGJhciB1bmQgYmVpIGJlbGllYmlnIGdlZm9ybXRlbiBMYWJ5cmludGhlbiwKd2llIG1hbiBhbiBWcmFpJ3MgU2NobmVlbGFiIHNpZWh0IChpY2ggaGFiZSBkZW4gRmVobGVyIGdlbWFjaHQKaWhtIGRhcyB6dSBlcmtsYWVyZW4uLi4gOikKCiAgUm9jaHVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpsb25kb24gdW5kIHNvLi4gKFp1ZXJpbGV1LCAyMy4gQXByIDE5OTgsIDA3OjAyOjQ1KToKSGksCkZhaHJlIGRvY2ggbWl0IGRlbSBadWcgdm9uIEZyYW5rcmVpY2ggYXVzLCBkZXIgZmFlaHJ0IGRpcmVrdCBuYWNoIEVuZ2xhbmQuCk5hamEgb2IgZGVyIGJpbGxpZ2VyIGlzdCB3ZWlzcyBpY2ggbmljaHQuIFVuZCB2b24gRGV1dHNjaGxhbmQgYXVzIHNvd2lzby4gQWJlcgpkYXMga2FubiBtYW4gamEgYWJrbGFlcmVuLiBIbW0sIG1pdGtvbW1lbiB3dWVyZCBpY2ggamEgZ2VybmUgYWJlciBsZWlzdGVuIGthbm4KaWNoIGVzIG1pciBuaWNodC4gTWVpbiBUcmF1bSBpc3QgU2NvdGxhbmQsIGFiZXIgYXVmcyBMYW5kIG9kZXIgaXJsYW5kLgpKZWRlbmZhbGxzIHNvIHN0YWVkdGVidW1tZWwgbWFjaHQgbWljaCB3ZW5pZ2VyIGFuLCBhdXNzZXIgZGllIHN0YWR0IGhlaXNzdApBbXN0ZXJkYW0gaGVoZSA9OikKClRzY2hhdSBBbGFpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGxvbmRvbiB1bmQgc28uLiAoUmlrdXMsIDIzLiBBcHIgMTk5OCwgMDg6NTM6NTIpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODkzMzA3NzY1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkzMzA3NzY1CkhpLAp2ZXJzdWNoIGVzIGRvY2ggcGVyIEFuaGFsdGVyLCBzb2xsdGUga2VpbiBQcm9ibGVtIHNlaW4sIGluIGRpZXNlIApSaWNodHVuZyBtaXRnZW5vbW1lbiB6dSB3ZXJkZW4uCgpSaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExhYnlyaW50aGdlbmVyYXRvciAoV2FyZ29uLCAyMy4gQXByIDE5OTgsIDEwOjI2OjA5KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODkzMjU0MjcyIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkzMjU0MjcyCkZhbGxzIHZpZXIgUmljaHR1bmdlbiBhdXNyZWljaGVuOiB+d2FyZ29uL29iai9tYXplZ2VuLmMKICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBWIChSYW50YW5wbGFuLCAyNC4gQXByIDE5OTgsIDEzOjE1OjU3KToKSGkgIQoKICAgICAgICAgICAgICAgU2Nob24gd2llZGVyIGFsbGVpbmUgYW0gUXVlc3Rlbi4uLgogICAgICAgICAgICAgICBTY2hvbiB3aWVkZXIga251ZGRlbHN0IER1IERlaW5lbiB3ZWlibGljaGVuL21hbm5saWNoZW4gWndlaXRpCiEKICAgICAgICAgICAgICAgU2Nob24gd2llZGVyIHVtc29uc3QgZWluZW0gTmV3YmllIG5lbiBMaWNodHBhbnplciBiZXNvcmd0Li4uCiAgICAgICAgICAgICAgIFNjaG9uIHdpZWRlciBHZWxkIHZlcnNjaGVua3QgdW5kIGVyL3NpZSBoYXQgRGljaCBlaW5mYWNoIG1pdApuZW0vbmVyCiAgICAgICAgICAgICAgIGFuZGVyZW4gU2l0emVubGFzc2VuLgogICAgICAgICAgICAgICBTY2hvbiB3aWVkZXIgYWxsZWluZSBnZXN0b3JiZW4uCiAgICAgICAgICAgICAgIEtlaW5lKHIpIGRpZS9kZXIgRGljaCBmcmV1ZGlnIGJlZ3J1ZXNzdCwgd2VubiBEdSBkYXMgTXVkCmJldHJpdHRzdC4KCiAgICAgICAgICAgICAgIEFiZXIgSEFMVCAhISEhCgogICAgICAgICAgICAgICBFcyBnaWJ0IGRvY2ggUFYtUkFOVAogICAgICAgICAgICAgICAoTkVJTiBuaWNodCBQb3J0IFZhaW4sIFBBUlRORVJWRVJNSVRUTFVORywgRFUgSElSTkkpCiAgICAgICAgICAgICAgIFNjaHJlaWJ0IG1pciBEZWluZW4gV3Vuc2NoIHVuZCB3aXIgc3VjaGVuIGVpbmVuIFBhcnRuZXIgRGVpbmVyCldhaGwuCiAgICAgICAgICAgICAgIE1vZGVybnN0ZSBDb21wdXRlciAoaHVlc3RlbCksIHZlcmdsZWljaGVuIGRhcyBQYXJ0bmVycHJvZmlsLAp1bmQgZmluZGVuCiAgICAgICAgICAgICAgIGFjdWggRGVpbmUobikgVHJhdW1tYW5uIChmcmF1KS4KICAgICAgICAgICAgICAgU2NocmVpYiBtaXIgaGV1dGUgbm9jaCwgYmVpIGVyZm9sZ3JlaWNoZXIgVmVybWl0dGx1bmcgbnVyCiAgICAgICAgICAgICAgIDIwMDAgTXVlbnplbiBnZWJ1ZWhyLi4uCgogICAgICAgICAgICAgICBCaXR0ZSBiZWFudHdvcnRlIEZvbGdlbmRlIEZyYWdlbiAoV2FocmhlaXRzZ2VtYWVzcywgb2RlciBhdWNoCm5pY2h0LCBmYWxscwogICAgICAgICAgICAgICBlcyBkaWUgQ2hhbmNlbiBlcmhvZWh0Li4uKQoKICAgICAgICAgICAgICAgYS4pIFJhc3NlCiAgICAgICAgICAgICAgIGIuKSBTdHVmZQogICAgICAgICAgICAgICBjLikgU3RhdHMgKEludGVsbGlnZW56LCBLcmFmdCwgQXVzZGF1ZXIsIEdlc2NoaWNrbGljaGtlaXQpCiAgICAgICAgICAgICAgIGQuKSBHZXNjaGxlY2h0CiAgICAgICAgICAgICAgIGUuKSBHZXN1Y2h0ZXMgR2VzY2hsZWNodAogICAgICAgICAgICAgICBmLikgSG9iYmllcwogICAgICAgICAgICAgICBnLikgV29scGllZmFuIChqYS9uZWluL2VnYWwpCiAgICAgICAgICAgICAgIGguKSBTb25kZXJ3dWVuc2NoZSAoRGllIHVlYmxpY2hlbiBTYXVlcmVpZW4gaGFsdC4uLikKCiAgICAgICAgICAgICAgIFNjaHJlaWIgdW50ZXIgQ2hpZmZyZSBSYW50YW5wbGFuIGluIGplZGVyIGJlc3NlcmVuClBvc3RzdGF0aW9uLi4uCgogICAgICAgICAgICAgICBEdSBzdWNoc3QsIGljaCBmaW5kZSAuLi4KICAgICAgICAgICAgICAgSW4gdW5zZXJlciBiaXNoZXJpZ2VuIEdlc2NoYWVmdHNiaWxhbnogc2luZCBrZWluZSBNaXNzZXJmb2xnZQp6dQogICAgICAgICAgICAgICB2ZXJ6ZWljaG5lbi4uLgogICAgICAgICAgICAgICBTY2hyZWliZSBqZXR6dCwgYmV2b3IgZWluKGUpIGFuZGVyZShyKSBtYWwgd2llZGVyIHNjaG5lbGxlcgp3YXIuCgogICAgICAgICAgICAgICBQVi1SQU5UIChXaXIgc3VjaGVuLCBzaWUgZmx1Y2hlbikuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUFYgKEx1ZywgMjYuIEFwciAxOTk4LCAwNTozMDo0Mik6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTg5MzQxNjU1NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzQxNjU1NwoKQWVoIFJhbnRhbj8KClBSVVVVVVVVVVVVVVNUISA7KQoKRmlkS0cKbHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZSAoRGVlcGJsdWUsIDI2LiBBcHIgMTk5OCwgMTA6NTQ6MDgpOgpFaW5zYW1lciBtdWRkZW5kZXIgU2NoYWNoY29tcHV0ZXIgc3VjaHQgZGllIFRhc3RhdHVyIGZ1ZXJzIGxlYmVuIHVuZCB6dW0KTWFldXNlIHpldWdlbiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGxhZm1vZWdsaWNoa2VpdCBpbiBTdHV0dGdhcnQgZ2VzdWNodCAoU2lsdmEsIDI3LiBBcHIgMTk5OCwgMjE6NTM6MDMpOgpoaSwgaWNoIGJyYXVjaGUgZXh0cmVtIGt1cnpmcmlzdGlnIGVpbmVuIFNjaGxhZnBsYXR6IGluIFN0dXR0Z2FydCBmdWVyIApkaWUgWmVpdCB6d2lzY2hlbiBkZW0gMy41LiB1bmQgMTcuNS4gLgpBaGphLCBpY2ggYnJhdWNoIGRlbiBuaWNodCBhbGxlaW5lLCBzb25kZXJuIGZ1ZXIgMi0zIExldXRlIHVuZCBtaWNoLgpEYXMga29tbXQgZGFoZXIsIGRhc3MgdW5zIChlYmVuZmFsbHMga3VyemZyaXN0aWcpIGVpbmUgV2VpdGVyYmlsZHVuZwppbiBTYWNoZW4gZGlnaXRhbGVyIFZpZGVvc2Nobml0dCBhbmdlYm90ZW4gd3VyZGUsIHVuZCB3aXIgZml4IGVpbmUgYy1iYXNlLQpwcm9qZWt0Z3J1cHBlIGF1cyBkZW0gYm9kZW4gZ2VzdGFtcGZ0IGhhYmVuLgplZ2FsLiAKYWxzbzogd2VubiBqZW1hbmQgd2FzIHdlaXNzLCB3byBtYW4gZ3VlbnN0aWcgd29obmVuIGthbm4gaW4gU3R1dHRnYXJ0LAptb2VnZSBlci9zaWUgbWlyIGJpdHRlIHNjaHJlaWJlbi4gQW0gbGllYnN0ZW4gd2FlcmUgdW5zIGVpbmUgTWl0d29obi1TYWNoZSwKYWxzbyBlaW4gUmF1bSwgZGVyIGZ1ZXIgMiBXb2NoZW4genUgZWluZXIgTGFnZXJzdGFldHRlIHVtZnVua3Rpb25pZXJ0IHdpcmQuCkRpZSBMZXV0ZSBzaW5kIGFsbGVzYW10IHZlcnRyYWVnbGljaCwgc28gU2NpRmkgTXVsdGltZWRpYS1NZW5zY2hlbiBlYmVuLgpXb2hudCBqZW1hbmQgaW4gU3R1dHRnYXJ0IHVuZCBtYWcgbWFsIGViZW4gZWluIHBhYXIgbmV0dGVuIEJlcmxpbmVybgpPYmRhY2ggZ2V3YWVocmVuPyBPZGVyIGhhdCBlaW5zY2hsYWVnaWdlIFRpcHMgd2llIG5ldHRlIFBlbnNpb25lbj8KYW50d29ydGV0IGJpdHRlIHNjaG5lbGwgd2VnZW4gdGVybWluZHJ1Y2suCmJ5ZQogICBzaWx2YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUlAgRXJsYW5nZW4gSUkgKFhYSUkuIElSQyB1bmQgQml0bmV0IFJlbGF5IFBhcnR5KSAoSmltZGlncml6LCAyOC4gQXByIDE5OTgsIDA5OjA3OjA5KToKTW9pbiwKCnZpZWxsZWljaHQgaW50ZXJlc3NpZXJ0cyBqYSBkb2NoIHdlbjoKClZvbiAyNC4tMjYuNy4gZmluZGV0IGluIEVybGFuZ2VuIGRpZSAyMi4gUmVsYXkgUGFydHkgc3RhdHQuCkluZm9zIHVuZCBBbm1lbGR1bmc6CiAgaHR0cDovL3d3dy5yZWxheS1wYXJ0eS5vcmcvCgpjdSB0aGVyZSwKICBKaW0gRGlHcml6IChha2EgTXItU3BvY2tASVJDbmV0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGxvbmRvbiB1bmQgc28uLiAoRnl0LCAyOC4gQXByIDE5OTgsIDE2OjM1OjI5KToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTg5MzMwNzc2NSByZz1hbnplaWdlbgp+IyEgdGlkPTg5MzMwNzc2NQoKWW9yayBpc3QgYWxsZW1hbCBndXQgZnVlciBuZW4gU3RhZHRidW1tZWwgKnNjaHdlbGcqLi4uCgpFZ2FsOiBFcyBnYWIgbWFsIGluIERyZXNkZW4gaXJnZW5kICduZW4gUmVpc2VsYWRlbiBuYW1lbnMgJ1JhaW5ib3d0b3VycycKb2RlciAnUmVnZW5ib2dlbicgd2FzIGF1Y2ggaW1tZXIsIHppZW1sY2loIHNlbHRzYW1lIEdlc2NoaWNodGUsIGRpZSBzYXNzZW4KaW0gRm95ZXIgdm9uIHNvIG5lbSBkaWNrZW4gSG90ZWwuIFVuZCBkaWUgaGFiZW4gZHJlaSBUYWdlIExvbmRvbiBmdWVyIDk5IERNCmdlbWFjaHQuIEluIExvbmRvbiBrYW5uc3QgRHUgZGFubiAndmVyc2Nod2luZGVuJy4gUnVlY2tyZWlzZSBzb2xsdGUgbWl0CkV1cm9saW5lcyg/KSBhdWNoIGtlaW4gUHJvYmxlbSBzZWluLCBkaWUgc2luZCB6d2FyIG1laXN0IGF1c2dlYnVjaHQsIGhhYmVuCmRhbm4gYWJlciBhdWNoIG9mdCBub2NoIFBsYWV0emUgZnJlaS4gRGFzIHNhZ2VuIHNpZSBuYXR1ZXJsaWNoIGVyc3QgZHJlaQpNaW51dGVuIHZvcm0gTG9zZmFocmVuLiBVbmQgc2VpbmVyemVpdCBzaW5kIGRpZSB1ZWJlciBBbXN0ZXJkYW0gbmFjaCBCZXJsaW4KZ2VmYWhyZW4uIE9id29obDogSW4gQmVsZ2llbiBhYnNwcmluZ2VuIHVuZCBtaXQgZGVtIGRpY2tlbiBEYXVtZW4gZGllCkE0IGxhbmcgdHV0J3MgYXVjaCwgaXN0IGJpbGxpZ2VyIHVuZCBzY2huZWxsZXIgdW5kIGltIE1haSBzb2xsdGUgZXMKZWlnZW50bGljaCBuaWNodCBzdHJvZW1lbmQgcmVnbmVuLi4uCgpUamEuLi4gdW5kIEQnZG9yZi1NYW5jaGVzdGVyIGhhYiBpY2ggYXVjaCBub2NoIG5pY2h0IHZvbGwgZ2VzZWhlbiA7LSkKRGFzIFByb2JsZW0gaXN0IGRhbm4gbmF0dWVybGljaCwgbmFjaCBEJ2RvcmYgenUga29tbWVuLCBkYXMgaXN0IGRhbm4KbWVpc3QgZ2VuYXVzbyB0ZXVlciB1bmQgbGFlbmdlciBhbHMgZGVyIFJlc3QuLi4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbG9uZG9uIHVuZCBzby4uIChDYWx1bSwgMjkuIEFwciAxOTk4LCAwODo0ODo0MSk6Cn4jISBybj1GeXQgcnQ9ODkzNzc0MTI5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODkzMzA3NzY1Ckdlc3Rlcm4gaW4gbmVyIEJyb3NjaHVlcmUgZGVyIERCIGdlc2VoZW46IEVzIGdpYnQgbmV1ZXJkaW5ncyAoPykgYXVjaApTcGV6aWFsLUFuZ2Vib3RlIHZvbiBLb2VsbiBuYWNoIExvbmRvbiBwZXIgRXVyb3N0YXIgLSBoaW4gdW5kCnp1cnVlY2sga29zdGV0IDE5OSwtIERNICh6d2lzY2hlbiBLb2VsbiB1bmQgQnJ1ZXNzZWwgaW0gRUMpIGJ6dy4KMjA5LC0gRE0gKG1pdCBUaGFseXMpLiBXaWUgbGFuZ2UgbWFuIHVudGVyd2VncyBpc3QsIGthbm4gaWNoCm5pY2h0IHNhZ2VuLCBhYmVyIGF1ZiBqZWRlbiBGYWxsIGlzdCBkZXIgRXVyb3N0YXIgdm9uIEJydWVzc2VsCmF1cyBpbiBrbmFwcCAyIFN0dW5kZW4gaW4gTG9uZG9uIFdhdGVybG9vLgogLSBDYWx1bSAtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBsb25kb24gdW5kIHNvLi4gKEFsYm9pbiwgMjkuIEFwciAxOTk4LCAxMjozNTo0MSk6Cn4jISBybj1DYWx1bSBydD04OTM4MzI1MjEgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTMzMDc3NjUKZnVlciBkaWUuIGRpZSBlcyBpbnRlcmVzc2llcnQ6CkljaCBoYWJlIG5hY2ggU3R1bmRlbiBld2lnZW4gUmVjaGVyY2hpZXJlbnMgbm9jaCBlaW4gRmx1ZyBuYWNoIE5ld2Nhc3RsZSBmdWVyCjM4MERNICtTdGV1ZXJuIGJla29tbWVuLCBzaWNoZXIgbmljaHQgZGllIGJpbGxpZ3N0ZSBWYXJpYW50ZSwgYWJlciBuZQpwcmVpc2d1ZW5zdGlnZSwgZGEgRmx1ZWdlIG5hY2ggTmV3Y2FzdGxlIGluIGRlciBSZWdlbCB1ZWJlciA1MDAga29zdGVuLgpUcmFtcGVuIHVuZCBtaXQgbmVtIERhbXBlciBpc3Qgc2ljaGVyIG5pY2h0IHNjaGxlY2h0LCBhYmVyIHplaXRyYXViZW5kIC0gaWNoCnZlcnJlaXNlIGluIGRlciBWb3JsZXN1bmdzemVpdCA7KQpEYW5uIG5vY2ggZWluIGRyaW5nZW5kZXIgVGlwLCBmdWVyIGFsbGUgZGllIG1hbCB1ZWJlcnMgSW50ZXJuZXQgd2FzIGthdWZlbgpvZGVyIGJ1Y2hlbiB3b2xsZW4uIEJlaSBkaWVzZW0gVm9yZ2FuZywgYXVjaCB3ZW5uIGRpZSBTZWl0ZSBub2NoIHNvIGxhaG0KZ2VsYWRlbiB3aXJkLCBuaWUgZWluIFJlbG9hZCBkcnVlY2tlbiwgc29uc3QgYmVrb21tdCBtYW4gZGllIHJlY2hudW5nCndvbW9lZ2xpY2ggZG9wcGVsdCwgd2llIGVzIG1pciBwYXNzaWVydCBpc3QhIEtsYXIgd2FycyBkYWVtbGljaCB2b24gbWlyLCBhYmVyCmRpZSBUdWdlbmQgR2VkdWxkIGhhdCBhdWNoIG5pY2h0IGplZGVyLiBJY2ggd2FyIGplZGVuZmFsbHMgZnJvaCBkYXNzIGljaCBlaW5lCkJ1Y2h1bmcgbm9jaCBrb3N0ZW5sb3Mgc3Rvcm5pZXJlbiBrb25udGUsIG9id29obCBkZXIgUmVpc2V2ZXJhbnN0YWx0ZXIgZGFzClJlY2h0IGdlaGFidCBoYWV0dGUgbWlyIGRhZnVlciBLb2hsZSBhYnp1a25vZXBmZW4uCgpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGxvbmRvbiB1bmQgc28uLiAoUHJhLCAyOS4gQXByIDE5OTgsIDEyOjQxOjA4KToKfiMhIHJuPUFsYm9pbiBydD04OTM4NDYxNDEgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTMzMDc3NjUKbmEsIGljaCBkZW5rZSBtYWwsIGRhc3MgZGVyIFJlaXNldmVyYW5zdGFsdGVyIGRhIHNjaGxlY2h0ZSBLYXJ0ZW4gZ2VoYWJ0CmhhZXR0ZS4gU2NobGllc3NsaWNoIGthbm4gbWFuIHVlYmVycyBJbnRlcm5ldCBpbW1lciBub2NoIGtlaW5lCnJlY2h0c2d1ZWx0aWdlIFVudGVyc2NocmlmdCBsZWlzdGVuLi4uCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaWxseWJveSAoSGFyZGlsLCAyOS4gQXByIDE5OTgsIDEzOjUyOjUxKToKZ2VyYWRlIGdlZnVuZGVuOgoKLS0tLS0tLS0tLS0tKHNuaXAgaGVyZSktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkhhYnQgSWhyIHNjaG9uIHdpbjk4IGluc3RhbGxpZXJ0PyBOZWluPz8/PyBEYW5uIGtvZW5udCBJaHIgenVlcnN0IGVpbgp2aWRlbyBhbnNlaGVuISBXaW5kb3dzOTggaW5zdGFsbGd1aWRlIQoKZnRwOi8vZmhkbzMuZHZ6LmZoLWRvcnRtdW5kLmRlL3B1Yi93aW45OC1pbnN0LWd1aWRlLm1wZwoKYWxsZXJkaW5ncyBsZWlkZXIgbnVyIGF1ZiBlaW5lbSB3aW45NS1yZWNobmVyIG1pdCBkZW0gYWN0aXZlLXNoaXQgdm9uIE1TLgoKCi0tLS0tLS0tLS0tLShzbmlwIGhlcmUpLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJY2ggaGFicyBtaXIgbm9jaCBuY2lodCBhbmdlc2NoYXV0LCBhYmVyIHdlbm4gZGFzIG1hbCBqZW1hbmQgbWFjaGVuIHdpbGwsCnNvbGx0ZSBlciBHcmltbWJvcm4gJ25lIE1haWwgc2NoaWNrZW4sIG9iIGVyIGRpZXNlbiBBcnRpa2VsIG5hY2ggJ2h1bW9yJwp2ZXJsZWdlbiBzb2xsdGUuIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJpbGx5Ym95IChHdW5kdXIsIDI5LiBBcHIgMTk5OCwgMTM6NTk6MDYpOgp+IyEgcm49SGFyZGlsIHJ0PTg5Mzg1MDc3MSByZz1hbnplaWdlbgp+IyEgdGlkPTg5Mzg1MDc3MQpJY2ggd3VlcmRlIHNhZ2VuIGRpZXMgYW56dXNlaGVuIGlzdCBlaW4gTXVzcyB1bSBkZW0gdHJpc3RlbiBCdWVyb2FsbHRhZyBlaW4KZ3JpbnNlbiBhYnp1Z2V3aW5uZW4sIHdlbm4gbmljaHQgZ2FyIGVpbiBwcnVzdGVuZGVzIExhY2hlbi4KWnVtaW5kZXN0IGJlaSBtaXIgaGllciBoYXQgZXMgZGFzc2VsYmUgZ2VyYWRlIGZhYnJpemllcnQuIChhcmdsIHdhcyBlaW5lCnNlbHRzYW1lIERldXRzY2gpCkcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJpbGx5Ym95IChHcmltbWJvcm4sIDI5LiBBcHIgMTk5OCwgMTQ6MDA6NDkpOgp+IyEgcm49R3VuZHVyIHJ0PTg5Mzg1MTE0NiByZz1hbnplaWdlbgp+IyEgdGlkPTg5Mzg1MDc3MQpFcmxvZXN0IG1pY2ggYXJtZW4gVW53aXNzZW5kZW46IEhhbmRlbHQgZXMgc2ljaCBkYSB1bSBkaWUgYWx0ZSBLbGFtb3R0ZSwgd2llCk1yLiBHYXRlcyBwZXJzb2VubGljaCBkYXMgd2luOTggYmVpIGRlciBEZW1vIGluIENoaWthZ28gYWJnZXJhdWNodCBpc3Q/CgpWaWVsbGVpY2h0IGJpbiBpY2ggenUgZGFlbWxpY2gsIGFiZXIgaWNoIHNlaGUgZGEgZGVuIGdhZyBuaWNodC4gSWNoIG1laW5lLApsdXN0aWcgc2luZCBudXIgc2FjaGVuLCBkaWUgdW5lcndhcnRldCBzaW5kLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcnNpY2h0LCBXZXJidW5nISAoUmluZ29yLCAgMS4gTWFpIDE5OTgsIDAwOjA3OjE3KToKSGlobyEKCkF1ZiBtZWluZXIgUGxhdHRlIHNpbmQgbmV1bGljaCBlaW4gcGFhciBCaXRzIHVtZ2VmYWxsZW4uIFVuZCBpcmdlbmR3aWUgc2NoZWludApkYWJlaSB3YXMgTnVldHpsaWNoZXMgZnVlciBURiBlbnRzdGFuZGVuIHp1IHNlaW4uIAoKTmFqYSwgc2NoYXV0IGhhbHQgc2VsYnN0IGF1ZjoKCiAgICAgICAgICBodHRwOi8vd3d3LmNoZW1pZS51bmktZG9ydG11bmQuZGUvcGVyc29ucy9saWNodGkvdGYuaHRtbAoKVmllbCBTcGFzcyBkYW1pdCwKClJpbmdvcgoKUC5TOgpCdWdzLCBLcml0aWssIEFucmVndW5nZW4sIExvYig/KSwgVmVyYmVzc2VydW5nc3ZvcnNjaGxhZWdlIGV0Yy4gd2VyZGVuIGdlcm5lCmVudGdlZ2VuZ2Vub21tZW4uIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSm9iIGluIE9lc3RlcnJlaWNoIChCZWkgV2llbikgKEhhdGUsICA3LiBNYWkgMTk5OCwgMTY6MjQ6MjUpOgpIaSwKCndlciBlbnR3ZWRlciBtYWwgbmUgV2VpbGUgaW4gT2VzaWxhbmQgYXJiZWl0ZW4gd2lsbCBvZGVyIHZvbiBkYSBrb21tdAp1aW5kIEMrKyBFcmZhaHJ1bmcgaGF0LCBkZXIga2FubiBzaWNoIGhpZXIgbWFsIEJld2VyYmVuOgoKaHR0cDovL3d3dy5lc3MuY28uYXQvZG9jcy9qb2JzLmh0bWwKCkRhcyBpc3QgZWluZSBrbGVpbmUgRmlybWEgbWl0IGZhbWlsaWFlcmVyIEF0bW9zcGhhZXJlLgoKRWluZmFjaCBtYWwgYW5mcmFnZW4uCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFsYmxlaXRlcnBoeXNpa2VyIChSaWt1cywgIDguIE1haSAxOTk4LCAxMjoxMzozNCk6CkhpLAp3ZXIgb2JpZ2VzIGlzdCwgZ3V0IGF1ZiBzZWluZW0gR2ViaWV0IGlzdCwgbmF0dWVybGljaCBtaXQgZGVtIFN0dWRpdW0Kc2Nob24gZmVydGlnIGlzdCB1bmQgaW4gRHJlc2RlbiBlaW5lbiBKb2IgaGFiZW4gbW9lY2h0ZSwga2FubiBzaWNoIGdlcm5lCm1hbCBiZWkgbWlyIG1lbGRlbiEKClJpa3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGFsYmxlaXRlcnBoeXNpa2VyIChLZXksICA4LiBNYWkgMTk5OCwgMTg6NDg6MzApOgp+IyEgcm49UmlrdXMgcnQ9ODk0NjIyNDE0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk0NjIyNDE0CkhtbSB3YXMgaXN0IGRhcyBmdWVybiBKb2I/CgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVOSVggdW5kL29kZXIgTlQgQWRtaW5pc3RyYXRvcmVuIGdlc3VjaHQgKEFjZWcsICA5LiBNYWkgMTk5OCwgMTI6Mzk6MzApOgpXZXIgRXJmYWhydW5nIG1pdCBVTklYIHVuZC9vZGVyIE5UIGhhdCB1bmQgZWluZW4gSm9iIGFscyBBZG1pbiBzdWNodCwKc29sbHRlIG1hbCBiZWkgaHR0cDovL3d3dy5yaXNpbmctc3lzdGVtcy5kZS8gcmVpbnNjaGF1ZW4uCgpBQ0VHClAuUy46IFplcnRpZmlrYXRlIHNpbmQgZ2VybiBnZXNlaGVuLiBFcyBnZWh0IHVtIEVpbnNhZXR6ZSBpbiBwcm9mZXNzaW9uZWxsZXIKVW1nZWJ1bmcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVU5JWCB1bmQvb2RlciBOVCBBZG1pbmlzdHJhdG9yZW4gZ2VzdWNodCAoR3JpbW1ib3JuLCAgOS4gTWFpIDE5OTgsIDE1OjA5OjQwKToKfiMhIHJuPUFjZWcgcnQ9ODk0NzEwMzcwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk0NzEwMzcwCkNvb2wsIGRpZSBtYWNoZW4ga2VpbmUgT3J0c2FuZ2FiZS4gQW5zY2hlaW5lbmQgZ2VodHMgdW0gQWRtaW5pc3RyYXRpb24KYXVzc2NobGllc3NsaWNoIHVlYmVycyBOZXR6LiBQZWNoIGZ1ZXIgZGllIE5ULUxldXRlLi4uClphaGxlbiBkaWUgZGFubiBhdWNoIG1laW5lIFRlbGVmb252ZXJiaW5kdW5nPwoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFVOSVggdW5kL29kZXIgTlQgQWRtaW5pc3RyYXRvcmVuIGdlc3VjaHQgKEdyaW1tYm9ybiwgIDkuIE1haSAxOTk4LCAxNToyNToxMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODk0NzE5MzgwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk0NzEwMzcwCipwcnVzdCogSWNoIGhhYiBtYWwgd2VpdGVyIGF1ZiBkZXJlbiBTZWl0ZW4gcnVtZ2VzY2hhdXQuIERpZSBiaWV0ZW4gZWluZW4KYWJzdHVyenNpY2hlcmVuIE5ldHp3ZXJrIFNlcnZlciB1bnRlciBXaW45NSBhbi4gRW50d2VkZXIgZGFzIHNpbmQgWmF1YmVyZXIKb2RlciBMdWVnbmVyLiBBbGxlcmRpbmdzIG5laG1lbiBkaWUgZGFmdWVyIGF1Y2ggNmtETSBvaG5lIGRpZSBIYXJkd2FyZS4gTmFqYSwKd2VyIGRyYXVmIHJlaW5mYWVsbHQuLi4gV2FzIGRhIGFuZ2Vwcmllc2VuIHdpcmQga2FubiBidHcgTGludXggYXVjaC4gRnVlcgp1bnRlciAxMDBETS4gVW5kIHdlbm4gaWNoIGZ1ZXIgZWluZSBJbnN0YWxsYXRpb24gYXVjaCBudXIgZGllIEhhZWxmdGUgZGVzClVudGVyc2NoaWVkZXMgYmVrb21tZW4gd3VlcmRlIHdhZXJlIGljaCB6aWVtbGljaCBndXQgYmV6YWhsdCAoaG1tLCBtYWwKcmVjaG5lbi4gUHJvYmxlbWUgZ2lidHMgaW1tZXIsIGRhcyBpc3QgZWluZSB1bWZhbmdyZWljaGUgU2VydmVyaW5zdGFsbGF0aW9uLApyZWNobmVuIHdpciBhbHNvIDIwIFN0dW5kZW4uIEZ1ZXIgMjk1MERNLiBEZW4gSm9iIHd1ZXJkZSBpY2ggc29mb3J0IG5laG1lbikuCk9iIGRpZSBtaWNoIHdvaGwgenUgZWluZW0gU3R1bmRlbmxvaG4gdm9uIDE1MERNIGVpbnN0ZWxsZW4/CgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJhc2NhbCAoVGVkZHksICA5LiBNYWkgMTk5OCwgMjE6NDM6MTYpOgpIaWVybWl0IHdpcmQgb2VmZmVudGxpY2gga3VuZGdldGFuLCBkYXMgUmFzY2FsIGVub3JtIHNwb250YW4gdW5kIGZsZXhpYmVsIHNlaW4Ka2Fubi4KRXIgaGF0IGVzIGluIHdlbmlnZXIgYWxzIDI0IFN0dW5kZW4gZ2VzY2hhZmZ0LCBlaW5lbiBTdGFtbXRpc2NoIGVpbnp1cGxhbmVuCnVuZCB0YXRzYWVjaGxpY2ggYXVjaCBoaW56dWtvbW1lbi4KClRlZGR5ClNDTlIgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSYXNjYWwgKEFuYXRvbCwgIDkuIE1haSAxOTk4LCAyMzowMToyNyk6Cn4jISBybj1UZWRkeSBydD04OTQ3NDI5OTYgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTQ3NDI5OTYKRHUgaGFzdCBkYW1pdCBwcmVzdXBwb3NpdGlvbmFsIHZlcm1pdHRlbHQsIGRhc3MgZGVyIGd1dGUgUmFzY2FsIHNjaG9uIAp2aWVsIHNlaW5lciBHZXNjaG1laWRpZ2tlaXQgZWluZ2VidWVzc3QgaGF0IC0gd2VubiBlciBudXIgbm9jaCBmbGV4aWJlbAp1bmQgImVub3JtIHNwb250YW4iIGlzdC4uLiBrYW5uIGVyIGVpZ2VudGxpY2ggc2Nob24ga29jaGVuPyA7KQoKQW5hdG9sLCBob2VydCBHcmFzIGxhZXV0ZW4gdW5kIGlyZ2VuZHdvd2FzIHdhY2hzZW4gOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJhc2NhbCAoVGVkZHksICA5LiBNYWkgMTk5OCwgMjM6MDI6MzEpOgp+IyEgcm49QW5hdG9sIHJ0PTg5NDc0NzY4NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5NDc0Mjk5NgpJY2ggdmVyc3VjaGUgZWlnZW50bGljaCBudXIsIGlobSBiZWkgc2VpbmVtIHZlcnp3ZWlmZWx0ZW4gQ29tZWJhY2sgenUgaGVsZmVuLgpJbiBzZWluZW0gZm9ydGdlc2Nocml0dGVuZW4gTXVkLUFsdGVyIGhhdCBtYW5zIG5pY2h0bWVociBzbyBsZWljaHQuIDstKQoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFJhc2NhbCAoU2hhcmlhLCAgOS4gTWFpIDE5OTgsIDIzOjAzOjA5KToKfiMhIHJuPVRlZGR5IHJ0PTg5NDc0Nzc1MSByZz1hbnplaWdlbgp+IyEgdGlkPTg5NDc0Mjk5NgphY2hqYSA6LSkgZGEgd2FyIGRvY2ggbm9jaCB3YXMgbWl0IGtvY2hlbiBvZGVyID8/PwoqZ3JpbnMgVGVkZHkqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBSYXNjYWwgKEFuYXRvbCwgIDkuIE1haSAxOTk4LCAyMzowMzoyNSk6Cn4jISBybj1UZWRkeSBydD04OTQ3NDc3NTEgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTQ3NDI5OTYKKmFyZ2gqIERhc3MgZGFyYXVmIGRhcyBvYmxpZ2F0b3Jpc2NoZSAoc2ljISkgIkp1bmdzcHVuZCEiIGZvbGdlbiBtdXNzLCAKaXN0IERpciBkb2NoIGhvZmZlbnRsaWNoIGtsYXIuLi4KCkp1bmdzcHVuZCEKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFJhc2NhbCAoVGVkZHksICA5LiBNYWkgMTk5OCwgMjM6MDM6NDEpOgp+IyEgcm49U2hhcmlhIHJ0PTg5NDc0Nzc4OSByZz1hbnplaWdlbgp+IyEgdGlkPTg5NDc0Mjk5NgpKZXBwLCBpc3QgYXVjaCBub2NoIGltbWVyIGFrdHVlbGwsIHdpciBtdWVzc3RlbiBudXIgbWFsIG5lbiBUZXJtaW4gYWJzcHJlY2hlbi4KClRlZGR5IHN0ZWh0IGRhenUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBSYXNjYWwgKFRlZGR5LCAgOS4gTWFpIDE5OTgsIDIzOjA0OjE5KToKfiMhIHJuPUFuYXRvbCBydD04OTQ3NDc4MDUgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTQ3NDI5OTYKTWVpbnN0IGR1IGpldHp0IGlobiBvZGVyIG1pY2g/CkZhbGxzIG1pY2gsIERBTktFISEhIDstKQpUZWRkeSwgaGF0IGRhcyBzY2hvbiBsYW5nZSBuaWNodG1laHIgZ2Vob2VydAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUmFzY2FsIChLZXksIDExLiBNYWkgMTk5OCwgMDg6MzM6MDgpOgp+IyEgcm49VGVkZHkgcnQ9ODk0NzQ3NzUxIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk0NzQyOTk2CkhtbSBpY2ggd3VlcmRlIHZvcnNjaGxhZ2VuIHdpciBzY2huaXR6ZW4gaWhtIG5lbiBHZWhzdG9jayA6KQpEYW5uIGhhdCBlciBub2NoIGV0d2FzIGhhbHQgOykKCktleQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc3VjaGUgV29obnVuZyBpbiBNdWVuY2hlbiAoUGFwaWVydGlnZXIsIDEzLiBNYWkgMTk5OCwgMDg6Mzc6MzMpOgoKSGlobywKCkRhIGljaCBpbiBlaW4gcGFhciBXb2NoZW4gdm9tIE5vcmQtIHp1bSBTdWVkbGljaHQgbXV0aWVyZW4gd2VyZGUsIHN1Y2hlIGljaCBhYgoxLjcuIGVpbmUgV29obnVuZyBpbiBvZGVyIGluIGRlciBOYWVoZSAoPSBTLUJhaG4tQmVyZWljaCkgdm9uIE11ZW5jaGVuLgpTaWUgc29sbHRlIG5hY2ggTW9lZ2xpY2hrZWl0IGhlbGwgdW5kIHJ1aGlnIHNlaW4sIDMgMS8yIC0gNCBaaW1tZXIgaGFiZW4sIGFiCjg1IG1eMiBncm9zcyBzZWluLCBtaXQgQmFsa29uL1RlcmFzc2UvR2FydGVuIHVuZCBrYWx0IG5pY2h0IG1laHIgYWxzIDE2MDAKa29zdGVuLiBWb3J6dWdzd2Vpc2UgaW4gZGVyIE9zdGhhZWxmdGUgdm9uIE11ZW5jaGVuLCBkYW5uIGhhYiBpY2hzIG5pY2h0IHNvCndlaXQgenVyIEFyYmVpdC4KCktlbm50IHZpZWxsZWljaHQgamVtYW5kIGplbWFuZGVuLCBkZXIgc293YXMgdmVybWlldGVuIHdpbGw/CgpHcnVzcywgUGRQLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHN1Y2hlIFdvaG51bmcgaW4gTXVlbmNoZW4gKFByYSwgMTMuIE1haSAxOTk4LCAxMDozOTo0OCk6Cn4jISBybj1QYXBpZXJ0aWdlciBydD04OTUwNDE0NTMgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTUwNDE0NTMKW0JlaWxlaWQ6UHJhIHRyb2VzdGV0IFBhcGllcnRpZ2VyLl0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcmFwYW1pbGh5ZHJvY2hsb3JpZCAoQ2F0d2VhemxlLCAxMy4gTWFpIDE5OTgsIDEwOjQ1OjU5KToKR3VnZ3VnIQoKR2lidCBlcyBlaW5lbiBDaGVtaWtlciwgQmlvbG9nZW4sIFBoYXJtYXpldXRlbiBvZGVyIHNvbnN0IHdlbiwgZGVyIG1pciBzYWdlbgprYW5uLCB3YXMgVmVyYXBhbWlsaHlkcm9jaGxvcmlkIGZ1ZXJuIFN0b2ZmIGlzdD8KClRoYW54LAogICAgWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmVyYXBhbWlsaHlkcm9jaGxvcmlkIChQcmEsIDEzLiBNYWkgMTk5OCwgMTA6NTM6NTIpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg5NTA0OTE1OSByZz1hbnplaWdlbgp+IyEgdGlkPTg5NTA0OTE1OQpCaW4gd2VkZXIgQ2hlbWlrZXIsIEJpb2xvZ2Ugbm9jaCBQaGFybWFkaW5nc2RhLgoKVmVyYXBhbWlsaHlkcm9jaGxvcmlkIHdpcmQgYWxzIE1lZGlrYW1lbnQgZ2VnZW4gSGVyemFyeXRobWllbiBnZWJyYXVjaHQuCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFZlcmFwYW1pbGh5ZHJvY2hsb3JpZCAoU2hhcmlhLCAxMy4gTWFpIDE5OTgsIDExOjQ1OjQzKToKfiMhIHJuPVByYSBydD04OTUwNDk2MzIgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTUwNDkxNTkKCipuaWNrIFByYSoKClNoYXJpYTsgQmlvbG9naW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFZlcmFwYW1pbGh5ZHJvY2hsb3JpZCAoU2lsdmFuYSwgMTMuIE1haSAxOTk4LCAxMjoyNjowOCk6Cn4jISBybj1TaGFyaWEgcnQ9ODk1MDUyNzQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1MDQ5MTU5CkFuZGVycyBmb3JtdWxpZXJ0OiBXZW5uIG1hbnMgbmljaHQgYXVzZHJ1ZWNrbGljaCB2ZXJzY2hyaWViZW4gYmVrb21tdCwKc29sbHRlIG1hbiBkcmluZ2VuZCBkaWUgRmluZ2VyIHZvbiBsYXNzZW4uIAoKU2lsdmFuYSAtIGJyYWJiZWx0IHdhcyB2b24gJ01pdCBIZXJ6ZW4gc3BpZWx0IG1hbiBuaWNodC4uLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFZlcmFwYW1pbGh5ZHJvY2hsb3JpZCAoQ2F0d2VhemxlLCAxMy4gTWFpIDE5OTgsIDEzOjEwOjUxKToKfiMhIHJuPVNpbHZhbmEgcnQ9ODk1MDU1MTY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1MDQ5MTU5CkhtLCBzb2xsdGUgaWNoIGRpZSBQcm9iZW4gd29obCBkb2NoIGJlc3NlciBtaXQgSGFuZHNjaHVoZW4gcHJhZXBhcmllcmVuIDotKQpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc3VjaGUgV29obnVuZyBpbiBNdWVuY2hlbiAoUGFwaWVydGlnZXIsIDEzLiBNYWkgMTk5OCwgMTc6NDI6NTkpOgp+IyEgcm49UHJhIHJ0PTg5NTA0ODc4OCByZz1hbnplaWdlbgp+IyEgdGlkPTg5NTA0MTQ1Mwo+IFtCZWlsZWlkOlByYSB0cm9lc3RldCBQYXBpZXJ0aWdlci5dCgpbR3J1ZWJlbGdydWViZWw6UGFwaWVydGlnZXIgZnJhZ3Qgc2ljaCwgd2FydW0uXQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZlcmFwYW1pbGh5ZHJvY2hsb3JpZCAoQXNtb2RpcywgMTMuIE1haSAxOTk4LCAxODo1MDoxOCk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9ODk1MDQ5MTU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1MDQ5MTU5CldhaHJzY2hlaW5saWNoIGRhcyBaZXVnLCBkYXMgVmVyYSBhbSBNaXR0YWcgYWJzb25kZXJ0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBzdWNoZSBXb2hudW5nIGluIE11ZW5jaGVuIChQcmEsIDEzLiBNYWkgMTk5OCwgMTk6MTg6MTMpOgp+IyEgcm49UGFwaWVydGlnZXIgcnQ9ODk1MDc0MTc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1MDQxNDUzCltCZWlsZWlkOlByYV0gV2VnZW4gZGVyIHp3YW5nc3dlaXNlbiBNdXRhdGlvbiB2b20gTm9yZGxpY2h0IHp1bSBCYXllcm4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNpZWRsZXItVHVybmllciAoQXVyaWFuLCAxNi4gTWFpIDE5OTgsIDE3OjI1OjU2KToKCiAgICAgICAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAgICAgICAgICAgICAgICAqIERpZSBTaWVkbGVyIHZvbiBDYXRhbiAqCiAgICAgICAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR1cm5pZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4KICAgICAgICAgICAgICAgICBCaWVsZWZlbGQgKFByZWlzZSBpbSBXZXJ0IHZvbiB1ZWJlciAxNTAwLC0pIAoKICBBbm1lbGR1bmc6ICAgICAgICAgICAgICAgICAgICBXYW5uOiAgICAgICAgICAgICAgICAgICAgIFdvOgogIEFuU3BpZWxCYXIgICAgICAgICAgICAgICAgICAgIFNvIDI4LjYuMTk5OCAgICAgICAgICAgICAgVGlubmVmZgogIFNpZWNoZW5tYXJzY2hzdHIuIDQgICAgICAgICAgIEJlZ2lubiAxNC4zMCBVaHIgICAgICAgICAgU3RhcGVuaG9yc3RzdHIuIDkzIAoKICAzMzYxNSBCaWVsZWZlbGQgICAgICAgICAgICAgICBTdGFydGdlbGQgMTQsLSAgICAgICAgICAgIDMzNjE1IEJpZWxlZmVsZAogIFRlbDogMDUyMSA1MjEyNTQxCiAgQW5tZWxkZXNjaGx1c3M6IDE2LjYuOTgKICAKaGF2ZSBmdW4gYW5kIGx1Y2sgIAoKICAgYXVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVTklYIHVuZC9vZGVyIE5UIEFkbWluaXN0cmF0b3JlbiBnZXN1Y2h0IChQcm9sb2csIDE3LiBNYWkgMTk5OCwgMTI6MjI6MjApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg5NDcyMDMxMCByZz1hbnplaWdlbgp+IyEgdGlkPTg5NDcxMDM3MAppY2ggZ2xhdWIgZHUgaGFzdCBkYSB3YXMgZmFsc2NoZXMgZ2VsZXNlbiAuLi4gZGVyIGxhZXVmdCBtaXQgbGludXgsIGFscyBjbGllbnQKc2luZCB3aW5kb3dzOTUga2lzdGVuIHp1Z2VsYXNzZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVU5JWCB1bmQvb2RlciBOVCBBZG1pbmlzdHJhdG9yZW4gZ2VzdWNodCAoR3JpbW1ib3JuLCAxOC4gTWFpIDE5OTgsIDAxOjU3OjEyKToKfiMhIHJuPVByb2xvZyBydD04OTU0MDA1NDAgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTQ3MTAzNzAKTmVpbm5laW4sIGljaCBoYWIgZGFzIHNjaG9uIHJpY2h0aWcgZ2VsZXNlbi4KRGllIGhhYmVuIGRhcyBudXIgZmFsc2NoIGdlc2NocmllYmVuLiBTaWUgX21laW5lbl8gZGFzIHdhcyBEdSBzYWdzdCwgZGFzIHdpcmQKYWJlciBlcnN0IGVpbiBwYWFyIGxpbmtzIHdlaXRlciBhbmdlZGV1dGV0LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2llZGxlci1UdXJuaWVyIChZZW5kaSwgMTguIE1haSAxOTk4LCAxMzozNzo1NSk6Cn4jISBybj1BdXJpYW4gcnQ9ODk1MzMyMzU2IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1MzMyMzU2CldlbGNoZXIgVHVybmllcm1vZHVzLCB3ZWxjaGUgRXJ3ZWl0ZXJ1bmdlbiwgd2VsY2hlIFNvbmRlcnJlZ2Vsbj8KClllbmRpIG1pdCBFaW56ZWlsZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpRRSBJSSBnZXN1Y2h0IChUYW5nYWx1ciwgMTguIE1haSAxOTk4LCAxNzoyMjowOSk6CkhpIExldXRlLAoKc3VjaGUgZWluIEJpbGQgdm9uIFFFIElJKFF1ZWVuIEVsaXphYmV0aCBJSSkgdW5kIHp3YXIgbmljaHQgdm9tIFNjaGlmZiwKc29uZGVybiB2b24gZGVyIFBlcnNvbi4gRGllIFNjaHdpZXJpZ2tlaXQgZGFiZWkgaXN0IGVzIHNvbGx0ZSBrZWluIEZvdG8gCnNvbmRlcm4gZWluZSBaZWljaG51bmcgKENvbWljLCBDYXJ0b29uLCBLYXJpa2F0dXIgc2Vpbikgd2VyIHdlaXNzIHdvIGVzCnNvIGV0d2FzIGdpYnQsIGJpdHRlIGJlaSBtaXIgbWVsZGVuLgoKICAgICAgICAgIApUYW5nYWx1ciBGZXVlcnRhdHoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBRRSBJSSBnZXN1Y2h0IChNYXJpdGEsIDE5LiBNYWkgMTk5OCwgMjE6NTA6MzEpOgp+IyEgcm49VGFuZ2FsdXIgcnQ9ODk1NTA0OTI5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1NTA0OTI5CihJY2ggYmluIGdyYWQgZXdpZyB3ZWl0IHZvbSBuYWVjaHN0ZW4gUG9zdGFtdCBlbnRmZXJudCwgYWxzbyBsZWlkZXIgWmVpdHVuZykKRXMgZ2lidCBkb2NoIGRpZSBTcGl0dGluZyBJbWFnZSBQdXBwZSB2b24gIlFFMiIuIFZpZWxsZWljaHQgYnJpbmd0IGVzIHdhcywKZ2V6aWVsdCBuYWNoIGVpbmVtIEZvdG8gZGF2b24genUgc3VjaGVuOyBtaXQgQmlsZGJlYXJiZWl0dW5nIHNvbGx0ZSBtYW4gZGEgZGllCkthbnRlbiByYXVza3JpZWdlbiBrb2VubmVuLiBOdXIgZmFsbHMgYWxsZXMgbml4IGhpbGZ0LgooU29iYWxkIFRhbmdhIGRpZXMgZ2VsZXNlbiBoYXQsIGJpdHRlIGxvZXNjaGVuKSBNYXJpdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2llZGxlci1UdXJuaWVyIChBdXJpYW4sIDIwLiBNYWkgMTk5OCwgMTg6MTA6MjIpOgp+IyEgcm49WWVuZGkgcnQ9ODk1NDkxNDc1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1MzMyMzU2CmhtbSwKZXMgd2VyZGVuIDMgcnVuZGVuIGdlc3BpZWx0LgoxLiBydW5kZSBtaXQgYWxsZW4uIHNpZWRsZXJncnVuZHNwaWVsIChldnRsIHp1IDUtNiBsZXV0ZW4pCjIuIHJ1bmRlIG1pdCBkZW4gc3BpZWxlcm4gLCBkaWUgd2VpdGVya29tbWVuIGVpbm1hbCBzaWVkbGVyIHNlZWZhaHJlciAKICAgKGV2dGwgYXVjaCBoaWVyIDUtNiBzcGllbGVyKQozLiBydW5kZSA6IGZpbmFscnVuZGU6IGlzdCBub2NoIG5pY2h0IGdhbnogcmF1cyBhYmVyIHZpZWxsZWljdGggc3RhZWR0ZSB1bmQgCiAgICAgICAgICByaXR0ZXIsIG9kZXIgbnVyIHNlZWZhaHJlcgpzbyBndXQgd2llIGtlaW5lIHNvbmRlcnJlZ2Vsbi4KYXVzc2VyIGRhcyBkYXMgc3BpZWxicmV0dCB3YWhyc2NoZWlubGljaCB2b3JnZWdlYmVuIHdpcmQgdW5kIGRpZQpzaXR6cmVpaGVuZm9sZ2UKYXVzZ2Vsb3N0IHdpcmQgKGFsc28gZGVyIHN0YXJ0c3BpZWxlciB1c3cuLi4pCgoKYXVyaWFuLCBoZXV0ZSBudXIgZmx1ZWNodGlnIGFudHdvcnRlbmQKCnBzOiBmdWVyIGFsbGUgZGllIGF1cyBkZW0gdHVybmllciBhdXNzY2hlaWRlbiBpc3QgYWJlciBkaWUgbW9lZ2xpY2hrZWl0CiAgICBnZWdlYmVuIGF1Y2ggd2VpdGVyIHNpY2ggbWl0IGFuZGVyZW4gc3BpZWxlbiBlaW5lbiBzY2hvZW5lbiAKICAgIHBpZWxlbmFjaG1pdHRhZyB6dSBtYWNoZW4KICAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFFFIElJIGdlc3VjaHQgKFNpbHZhbmEsIDIwLiBNYWkgMTk5OCwgMTg6MTk6NTIpOgp+IyEgcm49VGFuZ2FsdXIgcnQ9ODk1NTA0OTI5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk1NTA0OTI5CkRhIHNvbGx0ZSBlcyBkb2NoIHdvaGwgamVkZSBlbmdsaXNjaGUgQnJpZWZtYXJrZSAobmFjaCBpaHJlcgpLcm9lbnVuZyBuYXR1ZXJsaWNoKSB0dW4uIFNpZSBpc3Qgc2NobGllc3NsaWNoIGF1ZiBmYXN0IGplZGVyIGRyYXVmLi4uCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUUUgSUkgZ2VzdWNodCAoQmFtYnVsa28sIDIxLiBNYWkgMTk5OCwgMTI6NTA6MjQpOgp+IyEgcm49U2lsdmFuYSBydD04OTU2ODExOTIgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTU1MDQ5MjkKRGEgZ2lidCBlcyBudXIgZGFzIFByb2JsZW0sIGRhc3MgbWFuIHp1ciBaZWl0IHZpZWwgbWVociBEaWFuYS1CcmllZm1hcmtlbgpiZWtvbW10Li4uLi4uCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBRRSBJSSBnZXN1Y2h0IChUYW5nYWx1ciwgMjUuIE1haSAxOTk4LCAxNDo0NjoxMSk6Cn4jISBybj1TaWx2YW5hIHJ0PTg5NTY4MTE5MiByZz1hbnplaWdlbgp+IyEgdGlkPTg5NTUwNDkyOQpobW1tIGRhY2h0ZSBlaGVyIG1laHIgYW4gd2FzIENvbWljIG1hZXNzaWdlcwpvZGVyIG5vY2ggYmVzc2VyIGVpbmUgS2FycmlrYXR1ciAodW5kIHNvd2FzIGhhbSBkaWUgZGEgYXVmIGlocmVuCkJyaWVmbWFya2VuIG5pY2h0IGRyYXVmKS4gVHJvdHpkZW0gZGFua2UgZnVlciBkZW4gVGlwCgpUYW5nYWx1cgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGU6IEluZm9ybWF0aW9uZW4genUgQnVyZ2VuIChKdWdlbmQpLUhlcmJlcmdlbiAoSGF0ZSwgIDYuIEp1biAxOTk4LCAxMToyNjoyNSk6CkhpLAoKSWNoIGhvZmZlIGRhc3MgaWhyIGFsbGUgYXVjaCBtYWwgaW4gZGVyIFdlbHRnZXNjaGljaHRlIHVtaGVyZmFocnQgb2RlcgpldmVudHVlbGwgZXVyZSBuYWVoZXJlIFVtZ2VidW5nIGd1dCBrZW5udC4KCkljaCBzdWNoZSBuYWNoIEJ1cmdlbiB1bmQgb2RlciBIZXJiZXJnZW4gZGllIGVpbmUgZWluaWdlcm1hc3NlbiBuZXR0ZSBVbS0KZ2VidW5nIHVuZCBBdG1vc3BoYWVyZSBoYWJlbi4gS3JpdGVyaWVuIHNpbmQsIGRhc3MgbWFuIGVudHdlZGVyIGRpZSBnYW56ZQpIZXJiZXJnZS9CdXJnIG9kZXIgZWluZW4gZ3Jvc3NlbiBUZWlsIGRhdm9uICsgWmVsdHBsYXR6IHJlc2VydmllcmVuIGtvZW5uZW4KbXVzcy4gRmFzc3VuZ3N2ZXJtb2VnZW4gY2EuIDIwMCsgTGV1dGUuIFNjaG9lbiB3YWVyZSBlcywgd2VubiBkYXMgZ2FuemUKRGV1dHNjaGxhbmR6ZW50cmFsIGdlbGVnZW4gd2FlcmUuCgpXZXIgbWlyIGRhenUgaW5mb3MgZ2ViZW4ga2FubiwgYml0dGUgbWFpbCBhbiBsZW9AbXVkLmRlIG9kZXIgaGllciBhbiBoYXRlLgpFcyBnZWh0IGpldHp0IG5pY2h0IGRpcmVrdCBkYXJ1bSBzb2ZvcnQgZG9ydCBoaW56dXdvbGxlbiwgc29uZGVybiBkYXMgZ2FuemUKaXN0IGluIFBsYW51bmcgZnVlciAyMDAwLgoKRGFua2UsCgogICAgICBIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN1Y2hlOiBJbmZvcm1hdGlvbmVuIHp1IEJ1cmdlbiAoSnVnZW5kKS1IZXJiZXJnZW4gKFllbmRpLCAgOC4gSnVuIDE5OTgsIDE1OjA1OjE3KToKfiMhIHJuPUhhdGUgcnQ9ODk3MTI1MTg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk3MTI1MTg1CgpIYXRlIG9yZ2FuaXNpZXJ0IGVpbiBMQVJQPyAgICpzdGF1bioKCllUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU3VjaGU6IEluZm9ybWF0aW9uZW4genUgQnVyZ2VuIChKdWdlbmQpLUhlcmJlcmdlbiAoSGF0ZSwgIDguIEp1biAxOTk4LCAxNTozMTo0OSk6Cn4jISBybj1ZZW5kaSBydD04OTczMTExMTcgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTcxMjUxODUKRWluIFdBUz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFN1Y2hlOiBJbmZvcm1hdGlvbmVuIHp1IEJ1cmdlbiAoSnVnZW5kKS1IZXJiZXJnZW4gKE1hcmN1cywgIDguIEp1biAxOTk4LCAxNTo0NDozMCk6Cn4jISBybj1IYXRlIHJ0PTg5NzMxMjcwOSByZz1hbnplaWdlbgp+IyEgdGlkPTg5NzEyNTE4NQpMaWZlIEFjdGlvbiBSb2xlIFBsYXkuLi4gRGllIG1hY2hlbiBzb3dhcyBvZWZ0ZXIgbWl0IEJ1cmdlbiB1c3cuCgpDaWFvLCBNYXJjdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvZWhyc3BpZWxlIChMYXJpc3NhLCAxNS4gSnVuIDE5OTgsIDEyOjUwOjI3KToKCkFob2khCgpJY2ggaGFiIG1hbCBnZWhvZXJ0IGltIFdlYiBrb2VubmUgbWFuIG1hc3NpZyBIb2Vyc3BpZWxlCnJ1bnRlcmxhZGVuLiBXZWlzcyBqZW1hbmQgd28/CgpEQU5LRSEKTGFyaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2VocnNwaWVsZSAoR3JpbW1ib3JuLCAxNi4gSnVuIDE5OTgsIDAxOjI1OjEwKToKfiMhIHJuPUxhcmlzc2EgcnQ9ODk3OTA3ODI3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk3OTA3ODI3CnRlbG5ldCBtZy5tdWQuZGUKQWxsZXMgd2FzIER1IGJyYXVjaHN0IGlzdCBzbyBlaW5lIFNvZnR3YXJlIGRpZSBEaXIgZGllIEJpbGRzY2hpcm1hdXNnYWJlCnZvcmxpZXN0LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhvZWhyc3BpZWxlIChLZXksIDE2LiBKdW4gMTk5OCwgMTA6MzA6MDEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg5Nzk1MzExMCByZz1hbnplaWdlbgp+IyEgdGlkPTg5NzkwNzgyNwpHcmltbWkgaWNoIGdsYXViIG5pY2h0IGRhcyBzaWUgVGFnZWluIFRhZ2F1cyBuZSBTb2FwIE9wZXJhIGhvZXJlbiB3aWxsICwpCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9laHJzcGllbGUgKEF6enVybywgMTYuIEp1biAxOTk4LCAxMToxMzoyNCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODk3OTUzMTEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk3OTA3ODI3CkhpIEdyaW1tYm9ybiEKSGkgR3JpbW1ib3JuIQpXbyBnaWJ0cyBTb2Z0d2FyZSwgZGllIG1pciBtZWluIE1HIHZvcmxpZXN0Pz8/CkRhcyB3cmUgZ2VuYXUgZGFzIHdhcyBpY2ggYnJhZXVjaHRlISEhCkRhcyB3cmUgZ2VuYXUgZGFzIHdhcyBpY2ggYnJhZXVjaHRlISEhCkF6enVybywgenUgZmF1bCB6dW0gbGVzZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb2VocnNwaWVsZSAoQXp6dXJvLCAxNi4gSnVuIDE5OTgsIDExOjEzOjU0KToKfiMhIHJuPUF6enVybyBydD04OTc5ODg0MDQgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTc5MDc4MjcKVW5kIHp1IGR1bW0genVtIHRpcHBlbiAoYnp3LiBabXVkIGJlbnV0emVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSG9laHJzcGllbGUgKFNjaG9rbywgMTYuIEp1biAxOTk4LCAxMTo0OToyNik6Cn4jISBybj1Benp1cm8gcnQ9ODk3OTg4NDM0IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk3OTA3ODI3Ck9vb2NoLCBvZGVyIHp1IGR1bW0genVtIG11ZCBiZW51dHp0ZW4gOikKClNjaG9rbyAodmVyd2Vpc3QgYXVmIH5yIHVuZCB+aCkgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxhc3QtTWludXRlIChMYXJpc3NhLCAxNy4gSnVuIDE5OTgsIDA4OjUzOjExKToKSGFsbG8hCgpXZXIgbWljaCBrZW5udCwgd2Vpc3MgZGFzcyBpY2ggZWluIFN1cGVyLUZlaWdsaW5nIGJpbiwgdW5kIHNvIApiaW4gaWNoIGRlbm4gdHJvdHogaG9oZW4gQWx0ZXJzICpodWVzdGVsKiBiaXNoZXIgbmllIG1pdAplaW5lbSBMYXN0LU1pbnV0ZS1WZXJhbnN0YWx0ZXIgaW4gUmljaHR1bmcgVXJsYXViIGdlZHVlc3QuCgpXZXIgaXN0IHNvIG5ldHQgdW5kIGthbm4gbWlyIGVpbiBiaXNzY2hlbiBiZWkgZGVyIEVudHNjaGVpZHVuZyBoZWxmZW4sCmRhbWl0IG1laW4gU3Vlc3NlciB1bmQgaWNoIHNwb250YW4gZWluIGJpc3NjaGVuIFNvbm5lIHNlaGVuCmtvZW5uZW4/CkJlaSB3ZWxjaGVtIFZlcmFuc3RhbHRlciBoYWJ0IElociBndXRlIEVyZmFocnVuZ2VuIGdlbWFjaHQ/CldhcyBnaWJ0IGVzIHNvIGdhbnogYWxsZ2VtZWluIHp1IGJlYWNodGVuPwpXbyBzaW5kIFN0b2xwZXJmYWxsZW4gaW0gS2xlaW5nZWRydWNrdGVuPwoKREFOS0UhISEKCkxhcmksIHNvbm5lbmh1bmdyaWcuCgpQUy4gQml0dGUgcGVyIG1haWwsIHVuZCBpY2ggc3VjaGUgYXVjaCBpbW1lcm5vY2ggSG9lcnNwaWVsZSBpbSBXZWIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMYXN0LU1pbnV0ZSAoQXVncmEsIDE3LiBKdW4gMTk5OCwgMDg6NTU6MzQpOgp+IyEgcm49TGFyaXNzYSBydD04OTgwNjYzOTEgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTgwNjYzOTEKQWxzbyBkYXMgbWl0IGRlbiBIb2Vyc3BpZWxlbiBpbnRlcmVzc2llcnQgbWljaCBhdWNoIHNlaHIsIHZpZWxsZWljaHQga29lbm50ZQptYW4gbWljaCBhdWNoIHZvbiBkZW4gdGlwcyBiZW5hY2hyaWNodGlnZW4/CgpQUzogU2Nob2VuZW4gVXJsYXViIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMYW5nIGxlYmUgZGllIFRlbGVrb21tIChIYWxid29sZiwgMjEuIEp1biAxOTk4LCAwMTo1OTozMyk6CkRpZSBUZWxla29tIGxlYmUgaG9jaCEhCgplcnJ5IFBpIEhhbGJ3b2xmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphbCAoQW5ha2luLCAyNC4gSnVuIDE5OTgsIDExOjQ0OjM2KToKSGksCgpEYXMgQUwgaXN0IHdlZywgdW5zZXJlIEZ1bmtzdHJlY2tlIGhhdCBzaWNoIHZlcmFic2NoaWVkZXQuIEtlaW4KRHVyY2hrb21tZW4gbWVociwgd2lyIGhhYmVuIG5lbiBWZXJ0cmFnIGF1ZiA3MmguIE5hamEgbWFsIHNlaGVuCndpciBsYW5nZSBlcyBkYXVlcnQuCgpBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaXRrb21tZXIgZ2VzdWNodCEgKFR1bml4Z3V0LCAyOS4gSnVuIDE5OTgsIDEwOjE1OjIwKToKSGkhCkljaCBzdWNoZSBqbWQuLCBkZXIgQm9jayBoYXQsIG1pdCBTaGFoaSB1bmQgbWlyIGF1ZiBkYXMgWmlsbG8tRmVzdGl2YWwgYW0KMTUuLzE2LjguIGluIEhpbGRlc2hlaW0genUga29tbWVuLgpTcGllbGVuIHdlcmRlbiBkb3J0OgogIC0gUmFtbXN0ZWluCiAgLSBUaGUgQ3VyZQogIC0gVGhlcmFweT8KICAtIEF0cm9jaXR5CiAgLSBHcmVlbmRheQogIC0gTGFjcmltb3NhCiAgLSBHdWFubyBBcGVzCiAgLSBEYXMgSWNoCiAgLSBSaWNodGhvZmVuCk5hamEsIGRhcyB3YXJlbiBkaWVqZW5pZ2VuLCBkaWUgaWNoIGZ1ZXIgd2ljaHRpZyBoaWVsdCwgd2VyIG5vY2ggZGFiZWkgaXN0LApzdGVodCB1bnRlciAiaHR0cDovL3d3dy5zY29ycGlvY29uY2VydHMuY29tL3ppbGxvL2luZGV4Lmh0bSIuClRpY2tldCBrb3N0ZXQgNzksLSwgYnp3LiA4NCwtIG1pdCBDYW1waW5nLVBsYXR6LgoKJ3MgS2FyYXRlLVp3ZXJjaGxlLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWl0a29tbWVyIGdlc3VjaHQhIChDZWxlc3RlLCAyOS4gSnVuIDE5OTgsIDEwOjU0OjEwKToKfiMhIHJuPVR1bml4Z3V0IHJ0PTg5OTEwODEyMCByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTEwODEyMApEdSBoYXN0IFRhbnp3dXQgKCEhISEhISEhKSB2ZXJnZXNzZW4sIGRpZSB1ZWJlcnRyZWZmZW4gYWxsZXMgYW5kZXJlICEKCkNlbGVzdGUgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWl0a29tbWVyIGdlc3VjaHQhIChTdG9wZGVuYnVzLCAyOS4gSnVuIDE5OTgsIDIzOjIzOjAzKToKfiMhIHJuPUNlbGVzdGUgcnQ9ODk5MTEwNDUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5MTA4MTIwCmljaCB1ZWJlcmxlZ3MgbWlyIG1hLCBhYmEgZGFubiBtdWVzc3QgaWhyIG1pY2ggYXVjaCBpbiBCLiBhYmhvbGVuIGtvbW1lbiA6KQoKSmFuaWNlIGt1ZmZ0IFR1bml4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNaXRrb21tZXIgZ2VzdWNodCEgKFN0b3BkZW5idXMsIDI5LiBKdW4gMTk5OCwgMjM6MjU6NTgpOgp+IyEgcm49U3RvcGRlbmJ1cyBydD04OTkxNTUzODMgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTkxMDgxMjAKaG9zc2EgISEhIFRoZWF0cmUgb2YgVHJhZ2VkeSBzaW5kIGRhYmVpID8/Pz8gSWNoZSBrb21tIGF1Y2ggISEhIQoKTHVnID8ga29tbXN0ZSBhdWNoID8KCkphbmljZSBtYWNodCBuZW4gcmVwbHkgYXVmIHNpY2ggc2VsYnN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2h0dW5nOiBJTUJSSVMtTVVTaCAtIFdJRURFUkJFTEVCVU5HISAgISEhIChJcmFzLCAzMC4gSnVuIDE5OTgsIDAzOjE2OjM4KToKSGkgQWxsZSEKCk5hY2ggbGFuZ2VyIHRyYXVyaWdlciBaZWl0IGRlciBBYndlc2VuaGVpdCBpc3QgZGFzIGVyc3RlIHVuZCBlaW56aWdlIGRldXRzY2hlCk1VU2ggKE11bHRpIFVzZXIgU2hhcmVkIEhhbGx1Y2luYXRpb24pIC4uLmRhcyBsZWdlbmRhZXJlICg/KSBJTUJSSVMtTVVTaAp3aWVkZXIgb25saW5lLgpFaW4gTVVTSCB1bnRlcnNjaGVpZGV0IHNpY2ggaW4gZWluaWdlbiBQdW5rdGVuIHZvbiBlaW5lbSBNVUQ6IGtlaW5lIFF1ZXN0cwpsb2VzZW4gYmV2b3IgbWFuIG1pdGdlc3RhbHRlbiBrYW5uIC0gamVkZXIga2FubiBzb2ZvcnQgbWl0Z2VzdGFsdGVuIHVuZCBuZXVlClJhZXVtZSAob2RlciBlaW4gZWlnZW5lcyBIYXVzKSBhbmJhdWVuLiAuLi5JbWJyaXMgaGF0IGVpbmUgZm9ydGxhdWZlbmRlCkdlc2NoaWNodGUsIG5pY2h0IGRpZSBzdGFlbmRpZ2VuIFJlc2V0cyBiZXJlaXRzIGdlbG9lc3RlciBRdWVzdHMgKGRpZQpuYXR1ZXJsaWNoIGlocmUgZWlnZW5lbiBWb3J0ZWlsZSBoYWJlbikuCkltYnJpcyBpc3QgZWluZSB2aXJ0dWVsbGUgV2VsdCBmdWVyIGVoZXIgZXJuc3RoYWZ0ZXMgUm9sbGVuc3BpZWwsIHdhcyB3ZW5pZ2VyCiJTcGFzcyIgYWJlciBkYXJ1bSBuaWNodCB3ZW5pZ2VyICJGcmV1ZGUiIGJlZGV1dGV0LiBEZXIgQ29tcHV0ZXIgYmlldGV0IG1laHIKZGllIEt1bGlzc2UsIHZvciBkZXIgc2ljaCBkYXMgR2VzY2hlaGVuLCB6d2lzY2hlbiBkZW4gU3BpZWxlcm4sIGFic3BpZWx0LgpJbWJyaXMgaXN0IGVpbmUgRmFudGFzeS1XZWx0LCBkaWUgbmljaHQgd2llIGFsbGUgYW5kZXJlbiBpc3QuIEVpbmUgZWlnZW5lIFdlbHQKbWl0IGVpbmVtIGVpZ2VuZW4gU3plbmFyaW86IGh0dHA6Ly9pbWJyaXMuaG9tZS5wYWdlcy5kZSAgLSB1bmQgbWl0IGVpbmVtIElSCihJbiBkZXIgUm9sbGUpIFRvciBpbiBlaW5lIHdlaXRlcmUgV2VsdDogenVtIHViZXIgZnVlbmZ6ZWhuIEphaHJlIGFsdGVuClByb2pla3QgTVlSQSwgZGFzIGltIFJhaG1lbiBkaWVzZXMgTVVTSCB2aXJ0dWVsbCBhdXNnZWJhdXQgd2lyZC4gCkF1Y2ggTVlSQSBpdCBlaW5lIGVpZ2VuZSBXZWx0LCBhbiBkZXIgZGVyemVpdCBldHdhIDIwMCBMZXV0ZSBiZXRlaWxpZ3Qgc2luZC4KTWVociB6dSBNeXJhIHVudGVyIGh0dHA6Ly93d3cudG9sa2llbi5kZS9teXJhLwoKU2NoYXV0IGRvY2ggZWluZmFjaCBtYWwgdm9yYmVpOiBEaWUgTG9naW4tQWRyZXNzZSBmaW5kZXQgSWhyIHVudGVyCmh0dHA6Ly9pbWJyaXMuaG9tZS5wYWdlcy5kZSAtIHVuZCBsYXNzdCBFdWNoIG5pY2h0IGFic2NocmVja2VuLCB3ZW5uIElocgplcnN0bWFsIGFsbGVpbmUgZG9ydCBzZWlkIChJbWJyaXMgd2FyIGltbWVyaGluIHVlYmVyIGVpbiBKYWhyIG9mZmxpbmUhKQouLi5zb25kZXJuIGVya3VuZGV0IGRpZSBXZWx0IG1pdCBhbGwgaWhyZW4gRGV0YWlscy4gSW1icmlzIGlzdCBuaWNodCBiZXNzZXIKYWxzIGVpbiBNVUQgLSBhYmVyIGFscyBNVVNIIGV0d2FzIGFuZGVyZXMuCgpFdWVyIElyYXMgQE1HLCBATkYsIEBNeXJhIHVuZCBASW1icmlzIChoaWVyIGF1Y2ggYWxzIEd3eW4qIGJla2FubnQpCkVtYWlsOiBpcmFzQHRvbGtpZW4uZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBY2h0dW5nOiBJTUJSSVMtTVVTaCAtIFdJRURFUkJFTEVCVU5HISAgISEhIChJcmFzLCAzMC4gSnVuIDE5OTgsIDAzOjI5OjM2KToKfiMhIHJuPUlyYXMgcnQ9ODk5MTY5Mzk4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5MTY5Mzk4Ck5vY2htYWwgSGkgQWxsZSwKCktsZWluZXIgTmFjaHRyYWcgdW5kIEtvcnJla3R1cjoKCkltYnJpcy1NVVNIIFdXVzogaHR0cDovL3d3dy5scnouZGUvfmltYnJpcwpJbWJyaXMtTG9naW46IHRlbG5ldCBzdW4xLmxyei1tdWVuY2hlbi5kZSA2MjUwCgpVbmQgTXlyYSBXV1cgaXN0IHp1c2FldHpsaWNoOiBodHRwOi8vbXlyYS5ob21lLnBhZ2VzLmRlCgpTY2hhdXQgZWluZmFjaCBtYWwgcmVpbiwgamE/CgpFdWVyIElyYXMvR3d5bioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNaXRrb21tZXIgZ2VzdWNodCEgKEFuYWtpbiwgMzAuIEp1biAxOTk4LCAwODo0OTozNSk6Cn4jISBybj1UdW5peGd1dCBydD04OTkxMDgxMjAgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTkxMDgxMjAKCkRhIGtvbW10IGFiZXIgZXZ0LiBub2NoIG5lIFZlcnNhbmRnZWJ1ZWhyIGRyYXVmLgoKQW5ha2luLiBIYXQgc2Nob24gS2FydGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2Fja2VuICc5OCAgKEJlZWx6ZWJ1YiwgMzAuIEp1biAxOTk4LCAxNDozOTo1Nik6ClppbGxvIGlzIGRvY2ggZG9vZiwgV2Fja2VuIGlzIHZpZWwgYmVzc2VyICEKQW0gNy51bmQgOC4gQXVndXN0ICg/LCBpcyBqZWRlbmZhbGxzIGFtIEZyZWl0YWcgdW5kIFNhbXN0YWcsIFplbHRlbiBhYgpNaXR0d29jaCkgZmluZGV0IGF1Y2ggZGllc2VzIEphaHIgd2llZGVyIERBUyBNZXRhbC1GZXN0aXZhbCBzY2hsZWNodGhpbiBzdGF0dC4KVWViZXIgNjAgQmFuZHMgYXVmIDQgKnN0b2VobiogQnVlaG5lbiAhISEgRGFydW50ZXIgU2F2YXRhZ2UsIEJsaW5kIEd1YXJkaWFuLApKQk8sIERvcm8sIEljZWQgRWFydGgsIERpbW11IEJvcmdpciwgU2VudGVuY2VkLCBIYWdnYXJkLCBDaGlsZHJlbiBvZiBCb2RvbSwKU2t5Y2xhZCwgVm9pdm9kLCBUb20gQW5nZWxyaXBwZXIgKFByb3N0ICEpLCBldGMgZXRjLgpLYXJ0ZSBoYWIgaWNoIGZ1ZXIgNzkgTWFyayBiZWtvbW1lbgpIYXQgYXVzc2VyIEx1ZyB1bmQgbWlyIG5vY2ggamVtYW5kIEx1c3QgKE1vcmdvdGg/PykgTWl0IG1laHJlcmVuIHdpcmRzCmx1c3RpZ2VyLgpCZWVsemVidWIgXTotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhY2tlbiAnOTggIChBbmFraW4sIDMwLiBKdW4gMTk5OCwgMTU6NDA6MzMpOgp+IyEgcm49QmVlbHplYnViIHJ0PTg5OTIxMDM5NiByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTIxMDM5NgoKTmFqYSB3ZW5uIG1hbiBtZWhyIGF1ZiBNZXRhbCBzdGVodCBpc3QgZXMgc2ljaGVyIGRpZSBiZXNzZXJlIFdhaGwuCgpBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSYWV0c2VsLWdlbmVyYXRvcmVuIChBdXJpYW4sICAxLiBKdWwgMTk5OCwgMTA6MTM6MDcpOgpoaSwKZnVlciBlaW5lICJSYWV0c2VsZWNrZSIgaW4gZWluZXIga2xlaW5lbiB6ZWl0c2NocmlmdCBzdWNoZSBpY2ggbm9jaCAKaW5mb3JtYXRpb25lbiEKCmthbm4gbWlyIGlyZ2VuZHdlciBpbmZvcyB1ZWJlciBmb2xnZW5kZSB0aGVtZW4gZ2ViZW4KCi0ga3JldXp3b3J0cmFldHNlbCAtIGdlbmVyYXRvcgotIGxvZ2ljcmFldHNlbCAtIGdlbmVyYXRvciAgIChkaWUgcmFldHNlbCBpbiBkZW4gUE0taGVmdGVuKQotIHJlY2hlbnJhZXRzZWwgLSBnZW5hcmF0b3IgIChyYWV0c2VsIGluIGRlciBnZWZhZW5nbmlzc2luc2VscXVlc3QpCi0gc29uc3RpZ2UgcmFldHNlbAoKenUgYWxsIGRlbSBpbnRlcmVzc2llcnQgbWljaAogLSB3byBnaWJ0IGVzIGVudHNwcmVjaGVuZGUgY29tcHV0ZXJwcm9ncmFtbWUvYnVlY2hlcj8gCiAtIHdpZSBndXQgc2luZCBkaWVzZSBwcm9ncmFtbWUvYnVlY2hlcj8KCnVuZCBzb25zdCBhbGxlIGluZm9zIGRpZSBlcyBzbyBnaWJ0Li4uCih3ZWxjaGUgcHJpbnppcGVsbGVuIG1ldGhvbmRlbiBnaWJ0IGVzIGZ1ZXIgZGllIHJhZXRzZWwtZXJzdGVsbHVuZz8pCgoKYXVyaWFuLCBuYWNoIGluZm9zIHd1ZWhsZW5kCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSYWV0c2VsLWdlbmVyYXRvcmVuIChadWVyaWxldSwgIDIuIEp1bCAxOTk4LCAwNToyNjo1NCk6Cn4jISBybj1BdXJpYW4gcnQ9ODk5MjgwNzg3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5MjgwNzg3CkhpIGFsbCwKQW0gMTctMjAganVsaSBmaW5kZXQgaW4gQmFkIFJhZ2F6IGltIEthbnRvbiBTdC4gR2FsbGVuIChTY2h3ZWl6KSBkYXMgT3BlbiBBaXIKQmFkIFJhZ2F6IChRdWVsbHJvY2spIHN0YXR0LiBXZWxjaGUgQmFuZHMgZGFzIGtvbW1lbiB3ZWlzcyBpY2ggbGVpZGVyIG5vY2gKbmljaHQuIEljaCBoYWJlIGJpcyBqZXR6dCBuaWNodCB3aWUgdWVibGljaCBiZXNjaGVpZCBiZWtvbW1lbi4gSWNoIGFyYmVpdGUKZG9ydCBvYmVuIGFscyBIZWxmZXIgdW5kIHdlcmRlIGFsc28gYXVmIGplZGVuZmFsbCBQcmFlc2VueiBzZWluLiBEYXp1IGlzdCBlcwplaW4ga2xlaW5lcyBzdGltbXVuZ3N2b2xsZXMgT3BlbkFpciBpbiBtaXR0ZW4gZWluZXIgcHJhZWNodGlnZW4gQmVyZ2xhbmRzY2hhZnQKaW4gZWluZXIga2xlaW5lbiBCdXJncnVpbmUgKE1vcmdlbmdyYXVlbiBmbGFpciA9OikuIE5hamEgZGllIGJhbmRzIHNpbmQKZ2VtaXNjaHQgdm9uIGtsZWluZXJlbiBpbnNpZGVyIHVuZCBuZXdjb21tZXIgQmFuZHMgYXVzIGRldXRzY2hsYW5kLCBpbnRhbGllbiwKb2VzdGVyZWljaCB1bmQgZGVyIFNjaHdlaXouIERpZSBNdXNpayBnZWh0IHZvbiBCbHVlcyB1ZWJlciBKYXp6LCBiaXMgUm9jaywKaGFyZCBSb2NrLCBtdW5kYXJ0LVJvY2sgdW5kIHp1bSB0ZWlsIHNvZ2FyIHRocmFNZXRhbC4gQWxzbyBlcyBoYXQgcHJha3Rpc2NoCmplZGVzIEphaHIgZnVlciBqZWRlbiB3YXMgZGFiZWkuIFR3ZWlsd2Vpc2Ugd2VyZGVuIHNvZ2FyIG5ldWVyZSBLaW5vZmlsZSBpbgplaW5lbSBmcmVpbHVmdCBLaW5vbGVpbndhbmQgZ2VicmFjaHQuIERpZXNlcyBqYWhyIGZpbmRldCBlcyB6dW0gMjB4IHN0YXR0IHVuZAppc3QgZGFoZXIgYXVjaCBldHdhcyBnYW56IGJlc29uZGVyZXMuIAoKVHNjaGF1IEFsYWluCgpwczogaWNoIHNvbGx0ZSBpbiBkZW4gbmFlY2hzdGVuIHRhZ2VuIGJlc2NoZWlkIGtyaWVnZW4gZGFuIGthbm4gaWNoIGF1Y2ggZGllCkJhbmRzIGR1cmNoZ2ViZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmFldHNlbC1nZW5lcmF0b3JlbiAoUHJhLCAgMi4gSnVsIDE5OTgsIDEyOjM5OjM3KToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTg5OTM1MDAxNCByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTI4MDc4Nwp1bmQgd2FzIGhhdCBkYXMgbWl0IFJhZXRzZWwtR2VuZXJhdG9yZW4genUgdHVuPwoKUHJhLiBNdXNzdGUgZWluZmFjaCBzZWluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSYWV0c2VsLWdlbmVyYXRvcmVuIChadWVyaWxldSwgIDMuIEp1bCAxOTk4LCAwNDoyNzo1NSk6Cn4jISBybj1adWVyaWxldSBydD04OTkzNTAwMTQgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTkyODA3ODcKSGkgQWxsLApSZWluZSBnZXdvaG5oZWl0c2FjaGUsIGljaCBtYWNoIGF1ZiBBcnRpa2VsIG1laHIgInJlcGx5IiBhbHMgZWlnbmUgc2NocmVpYmVuLgpOdW4ga2FubiBtYWwgcGFzc2llcmVuLCBpY2ggd2FlciBhdWNoIG5pZSBhdWYgZGllIElkZWUga29tbWVuIHdlZ2VuIGRlbSBlaW4KImdlc2NoaXNzIiB6dSBtYWNoZW4uIEFsc28gaGllciB3aWUgdmVyc3Byb2NoZW4gbmFjaHRyYWVnbGljaCBkaWUgQmFuZHM6CgpIYWJpYiBLb2l0ZSBhbmQgQmFtYWRhIChNYWxpKQpNYWRvbm5hIEhpcCBIb3AgTWFzc2FrZXIgKEQpCkNvcmUgKENIKQpNYXJxdWUgKEEpClNwaWNlIChEKQpNaWNoZWwgQmVzc29uIChGKQpNaWNyb2JhbmQgKEkpCkdsZW4gb2YgR3VpbmVzcyAoQ0gpCkZsdWVnenVlZyAoQ0gpCk91dHNpZGUgKENIKQpXaWxkIFB1bXBraW5zIEF0IE1pZG5pZ2h0IChBVVMpClNoaXZlciAoQ0gpCgpEYXMgYWxsZXMgdW5kIGdlbmF1ZXJlcyB1ZWJlciBkYXMgT3BlbiBBaXIgZXJmYWVocnQgaWhyIGF1Y2ggYXVmIGRlciBQYWdlOgpodHRwOi8vd3d3LmhvYXgubmV0L3F1ZWxscm9jawoKVHNjaGF1IEFsYWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBSYWV0c2VsLWdlbmVyYXRvcmVuIChQcmEsICAzLiBKdWwgMTk5OCwgMTE6MzA6MDcpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODk5NDMyODc1IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5MjgwNzg3Ck1vaW4gWnVlcmksCgppY2ggbWFjaCcga2VpbiBHZXNjaGlzcywgaWNoIGRlbmtlIG51ciBhbiBEaWNoIGRhYmVpIDstKSAgCihuZWluLCBlaWdlbnRsaWNoIGFuIG1pY2gpOgoKTGV1dGUsIGRpZSBuaXggdWViZXIgUmFldHNlbGdlbmVyYXRvcmVuIHdpc3NlbiB3b2xsZW4sIG1hY2hlbiBuYWNoIGRlbQplcnN0ZW4gQXJ0aWtlbCBzY2hvbiBmYXN0IGF1dG9tYXRpc2NoIGVpbiAndXQnICh1ZWJlcmdlaGUgdGhyZWFkKSB1bmQKa3JpZWdlbiBkZWluZSBzY2hvZW5lIEFua3VlbmRpZ3VuZyBuaWNodCBtaXQuIExldXRlIGRpZSB3YXMgdWViZXIKUmFldHNlbGdlbmVyYXRvcmVuIHdpc3NlbiB3b2xsZW4gYWJlciBuaXggdWViZXIgaXJnZW5kd2VsY2hlIEZlc3RpdmFscwppbiBkZXIgU2Nod3l6IGtvZW5uZW4gamV0enQga2VpbiAndXQnIHRpcHBlbiwgd2VpbCBqYSBub2NoIHdhcyB1ZWJlciAKUmFldHNlbGdlbmVyYXRvcmVuIGtvbW1lbiBrb2VubnRlLi4uCgouLi4gYWxsZXMgZWluZSBTYWNoZSBkZXMgU3RpbHMgKHdvYW5kZXJzIGhlaXNzdCBkYXMgTmV0aXF1ZXR0ZSkuCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2x6c3BpZWxlIHdhbnRlZCAoQWxib2luLCAgMy4gSnVsIDE5OTgsIDE2OjE5OjA5KToKTW9pbiBhbGxlcnNlaXRzLApGdWVyIGVpbiBHZWJ1cnRzdGFnc2dlc2NoZW5rIHN1Y2hlIGljaCBEZW5rc3BpZWxlIGF1cyBIb2x6LiBEYSBpY2ggYWJlcgpjcmVhdGl2IHNlaW4gbW9lY2h0ZSB1bmQgZGllIGthdWVmbGljaCBlcndlcmJiYXJlbiBTcGVsZSBvZnQgbmUgTWVuZ2UgS29obGUKS29zdGVuIHN1Y2hlIGljaCBCYXN0ZWxwbGFlbmUgZnVlciBzb2xjaGUgSG9senNwaWVsZSB3aWU6CkRlciBjaGluZXNpc2NoZSBLbm90ZW4sIGRlciBTb21hLVd1ZXJmZWwsIFN0ZWluYmVjay1XdWVyZmVsLCAzRC1UaWMtdGFjLXRvZQp1c3cuCldlciB3ZWlzcyB3byBlcyBzb3dhcyBnaWJ0LiBCaW4gZnVlciBqZWRlbiBIaW53ZWlzIGRhbmtiYXIhCgpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2x6c3BpZWxlIHdhbnRlZCAoTW9yZ2FyLCAgNi4gSnVsIDE5OTgsIDEyOjExOjI1KToKfiMhIHJuPUFsYm9pbiBydD04OTk0NzU1NDkgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTk0NzU1NDkKSG0sIGljaCBoYWIgZWluIEJ1Y2ggdWViZXIgc28gWmV1Z3MuLi4KCk1vcmdhciAobWFsIHdpZWRlciBlaW56ZWlsaWcpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXIgKGFsdGVyKSBHaWxkZW4tQmFsYW5jZS1FTSAoU2lsdmFuYSwgIDcuIEp1bCAxOTk4LCAyMDoyNzoxNyk6Cn4jISBybj1Cb2luZyBydD04OTk4MzQ5Nzggcmc9YmVrYW5udG1hY2h1bmdlbgp+IyEgdGlkPTg5OTgzNDk3OApJY2ggc3VjaGUgdWVicmlnZW5zIG5vY2ggZWluIHBhYXIgZ3V0ZSB1bmQgdm9yIGFsbGVtIHp1dmVybGFlc3NpZ2UKQm9keWd1YXJkcyBmdWVyIGRpZSBuYWVjaHN0ZSBQYXJ0eS4uLgoKICBTaWx2YW5hIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVlciAoYWx0ZXIpIEdpbGRlbi1CYWxhbmNlLUVNIChUZWRkeSwgIDcuIEp1bCAxOTk4LCAyMDoyNzo0Nyk6Cn4jISBybj1TaWx2YW5hIHJ0PTg5OTgzNjAzNyByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTgzNDk3OApBbHNvIGRpcmVrdCBCb2R5Z3VhcmQgd2Vpc3MgaWNoIGphIG5pY2h0LCBhYmVyIHdlbm4gZHUgZGljaCBoaW50ZXIgbWlyCnZlcnN0ZWNrc3QgZmluZGV0IGRpY2ggZWggbmllbWFuZCBtZWhyLgoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1ZXIgKGFsdGVyKSBHaWxkZW4tQmFsYW5jZS1FTSAoUGF0cnluLCAgNy4gSnVsIDE5OTgsIDIwOjI4OjA3KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODk5ODM2MDM3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5ODM0OTc4CmljaCBiaW4gZ2VybiBiZXJlaXQuLi5hYmVyIG5hdHVlcmxpY2ggc3RlaWd0IG1laW5lIHp1dmVybGFlc3NpZ2tlaXQKaW1tZW5zLCB3ZW5uLi4ubmEgZHUgd2Vpc3N0IHNjaG9uIDopCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOZXVlciAoYWx0ZXIpIEdpbGRlbi1CYWxhbmNlLUVNIChTaGFyaWEsICA4LiBKdWwgMTk5OCwgMDE6MTg6MjcpOgp+IyEgcm49UGF0cnluIHJ0PTg5OTgzNjA4NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTgzNDk3OApCb2R5Z3VhcmQgS2V5IHVuZCBCb2R5Z3VhcmQgQW5hdG9sID86LSkgCgp3b2JlaSBkYSBpc3NlcyBtaXQgZGVyIHp1dmVybGFlc3NpZ2tlaXQgLi4uOi0pIG5hamEgaWNoIHd1ZW5zY2ggZGlyIFZJRUwKR0xVRUNLIGJlaW0gUkwtU1VSVklWQUwtVFJBSU5JTkcgOi0pCgpTaGFyaWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE5ldWVyIChhbHRlcikgR2lsZGVuLUJhbGFuY2UtRU0gKEFuYXRvbCwgIDguIEp1bCAxOTk4LCAwMTo1MToxOCk6Cn4jISBybj1TaGFyaWEgcnQ9ODk5ODUzNTA3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5ODM0OTc4ClR1dCBtaXIgd2lya2xpY2ggbGVpZCwgU2hhcmlhIC0gS2V5IG1hZyB6d2FyIGluIGRlciBUYXQgRnJlaXJhdW0gaGFiZW4sIAp1bSB3aWVkZXIgYmVydWZzdGFldGlnIHdlcmRlbiB6dSBrb2VubmVuLi4uIGFiZXIgaWNoIGhhYmUgZG9jaCBiZXJlaXRzCmVpbmVuIEF1ZnRyYWdnZWJlci4uLiBVbmQgaWNoIGJpbiBuaWNodCB1ZWJlcnRyYWdiYXIuCgpUdXJ0bGVndWFyZCBBbmF0b2wgOm8pCgpQUzogSWNoIGZpbmRlLCBkYXNzIFJ5bmUgdW5kIFRvZXRlciBpbiBCaWVsZWZlbGQgcmljaHRpZyBndXRlIEJvZHlndWFyZHMKICAgIHdhcmVuLiBXb2JlaS4uLiBhbHNvIFRvZXRlciB3YXIgY29vbGVyIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1ZXIgKGFsdGVyKSBHaWxkZW4tQmFsYW5jZS1FTSAoS2V5LCAgOC4gSnVsIDE5OTgsIDA5OjU2OjU3KToKfiMhIHJuPVBhdHJ5biBydD04OTk4MzYwODcgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTk4MzQ5NzgKRHUgZ2Vob2Vyc3QgenUgZGVuIGdlZmFlaHJkZXN0ZW4gUGVyc29uZW4gUGF0cnluIDspCkRpY2ggYWxzIEJvZHlndWFyZCBpc3Qgd29obCBudXIgbmUgVmVyZ3JvZXNzZXJ1bmcgZGVzIFppZWxzIDspCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE5ldWVyIChhbHRlcikgR2lsZGVuLUJhbGFuY2UtRU0gKEtleSwgIDguIEp1bCAxOTk4LCAwOTo1NzoyNyk6Cn4jISBybj1TaGFyaWEgcnQ9ODk5ODUzNTA3IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5ODM0OTc4ClBhaCEKV2lyIHNpbmQgZmVzdCBlaW5nZXN0ZWxsdCAuLi4gdW5kIGRhcyBpc3QgbmVuIFZvbGx0aW1lLUpvYiAuLi4gZ2xhdWIgbWlyIDspCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE5ldWVyIChhbHRlcikgR2lsZGVuLUJhbGFuY2UtRU0gKFNpbHZhbmEsICA4LiBKdWwgMTk5OCwgMTg6NTg6MjApOgp+IyEgcm49S2V5IHJ0PTg5OTg4NDY0NyByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTgzNDk3OApBZWhtLCB3YWVyZSBqZW1hbmQgYmVyZWl0LCBtaXIgYmlzIHp1ciBTb21tZXJwYXJ0eSBuZW4gcGFhciBVZWJ1bmdzc3R1bmRlbgptaXQgbmVtIFF1YXJ0ZXJzdGFmZiB6dSBnZWJlbj8gV2VubiBzaWNoIGtlaW4gQm9keWd1YXJkIGZpbmRldC4uLgoKICBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOZXVlciAoYWx0ZXIpIEdpbGRlbi1CYWxhbmNlLUVNIChHcmltbWJvcm4sICA5LiBKdWwgMTk5OCwgMTk6NTY6NDkpOgp+IyEgcm49S2V5IHJ0PTg5OTg4NDYxNyByZz1hbnplaWdlbgp+IyEgdGlkPTg5OTgzNDk3OApEdSBoYXN0IGRhcyBuaWNodCB2ZXJzdGFuZGVuLgpXZW5uIGljaCBtaXQgZGVtIFN0ZWluIGluIGRlciBIYW5kIGRhc3RlaGUsIGVpZ2VudGxpY2ggU2lsdmFuYSB0cmVmZmVuIHdpbGwsCnVuZCBQYXRyeW4gYmlldGV0IHNpY2ggYXVmIGVpbm1hbCBpbiBkZXIgTmFlaGUgYW4gLSBhbHNvLCBpY2ggZGVua2UsIGluIGRlbQpNb21lbnQgaXN0IGRhbm4gU2lsdmFuYSB6aWVtbGljaCBhdXNzZXIgR2VmYWhyLiA7LSkKCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTmV1ZXIgKGFsdGVyKSBHaWxkZW4tQmFsYW5jZS1FTSAoQW5hdG9sLCAgOS4gSnVsIDE5OTgsIDIwOjA0OjE4KToKfiMhIHJuPUdyaW1tYm9ybiBydD05MDAwMDcwMDkgcmc9YW56ZWlnZW4KfiMhIHRpZD04OTk4MzQ5NzgKTWVpbnN0IER1PyBTZWl0IHdhbm4ga2FubnN0IER1IG1pdCBTdGVpbmVuIHVtZ2VoZW4/CgpTaWNoIC0gZWdhbCBhdWYgd2VuIEdyaW1taSB6aWVsdCAtIGluIERlY2t1bmcgYmVnZWJlbmQsCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE5ldWVyIChhbHRlcikgR2lsZGVuLUJhbGFuY2UtRU0gKEtleSwgMTAuIEp1bCAxOTk4LCAxNTowOTo0OSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTAwMDA3MDA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5ODM0OTc4CkhtbSBkYW5uIHNvbGx0ZW4gd2lyIFBhZHJlaWMgYXVjaCBub2NoIGF1ZnN0ZWxsZW4gLi4uIGRhbm4gaGF0IFNpbHZhbmEgZWluZQoxMDAlaWdlIHBhc3NpdmUgQWJ3ZWhyICwpCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE1pdGtvbW1lciBnZXN1Y2h0ISAoTHVnLCAxMS4gSnVsIDE5OTgsIDAzOjUxOjUyKToKfiMhIHJuPVN0b3BkZW5idXMgcnQ9ODk5MTU1NTU4IHJnPWFuemVpZ2VuCn4jISB0aWQ9ODk5MTA4MTIwCiBOb2UsCgppY2ggYmluIGluIFdhY2tlbiBhbSBXRSBkYXZvciAoaXN0IGVoIGJlc3NlcikuCgpKYW5pY2Ugd2llZGVyaGllcnNlaGVud29sbGVuZApMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoU2x5Zm94LCAyOC4gSnVsIDE5OTgsIDAxOjIyOjUzKToKSWNoIGhhYmUgbWl0IG1laW5lciBIZXJjdWxlcyBTdGluZ3JheSAxMjggM0QgZGFzIFByb2JsZW0sIGRhc3MgZGllIG1laW5lCmJldm9yenVndGUgQXVmbG9lc3VuZyB2b24gMTE1Mng4NjQgdW5kIDE2IE1pby4gRmFyYmVuIG5pY2h0IHVudGVyc3R1ZXR6dC4KV2lsbCBpY2ggMTYgTWlvLiBGYXJiZW4sIGRhbm4gbXVzcyBpY2ggZGllIG5hZWNoc3RlIGtsZWluZXJlIG9kZXIgbmFlY2hzdApncm9lc3NlcmUgQXVmbG9lc3VuZyBiZW51dHplbi4KVm9uIEhlcmN1bGVzLmNvbSBoYWIgaWNoIGVyZmFocmVuLCBkYXNzIG1laW4gYmV2b3J6dWd0ZXIgTW9kdXMgd2VkZXIgdm9tClRyZWliZXIgbm9jaCB2b20gQmlvcyB1bnRlcnN0dWV0enQgd2lyZCwgYWxzbyBpY2gga2VpbmUgQ2hhbmNlIGhhYmUuCkFsc28gYmxlaWJ0IG1pciBudXIgZGllIE1vZWdsaWNoa2VpdCwgZGllc2UgZ2VnZW4gZWluZSBhbmRlcmUgenUgdGF1c2NoZW4uClNpZSBoYXQgOCBNQiwgbGFldWZ0IHNvbnN0IGVpbndhbmRmcmVpLCBudXIgMTE1Mng4NjR4MjQgQml0IHVudGVyc3R1ZXR6dCBzaWUKaGFsdCBuaWNodCwgdW5kIGljaCB3aWxsIGViZW4ga2VpbmUgYW5kZXJlIEF1ZmxvZXN1bmcuCldlciBhdWYgZGllIEF1ZmxvZXN1bmcgdmVyemljaHRlbiBrYW5uLCBlaW5lIEthcnRlIHZvbiBhZWhubGljaGVyIFF1YWxpdGFldApoYXQsIGRpZSAxMTUyeDg2NHgyNCB1bnRlcnN0dWV0enQsIGthbm4gZ2VybmUgbWl0IG1pciB0YXVzY2hlbi4KVmllbGxlaWNodCBoYXQgZGVyamVuaWdlIChiencuIGRpZWplbmlnZSkgbWl0IHNlaW5lciBLYXJ0ZSBQcm9ibGVtZSwgZGllCmljaCBiZWkgbWVpbmVtIG5pY2h0IGhhYmUuIERhIGtvZW5udGUgbWFuIGF1c3Byb2JpZXJlbiwgb2IgZWluIFRhdXNjaApzaWNoIGxvaG5lbiB3dWVyZGUuCgpJY2ggaG9mZmUsIGVzIG1lbGRldCBzaWNoIHdlci4KCiAgIGhlcnpsaWNoc3QKCiAgIFNseWZveAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoUGFrZSwgMjguIEp1bCAxOTk4LCAwNjoyMDoxOCk6Cn4jISBybj1TbHlmb3ggcnQ9OTAxNTgxNzczIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTAxNTgxNzczCkhtbSwgaXN0IGVzIGRlbm4gZWluIHNvIGdyb3NzZXIgVW50ZXJzY2hpZWQgdm9uIDE2Yml0IHp1IDI0Yml0LCBiencuIHZvbiAyNGJpdApBbnNvbnN0ZW4ga2FubiBpY2ggRGlyIG5vY2ggZGVuIFRpcCBnZWJlbiwgZGlyIGRpZSBuZXVlbiBuZXVlbiAxLjMzZXIgVHJlaWJlcgp6dSBob2xlbiB1bmQgZGFzIEJ1aWxkIDEzIEJpb3MgenUgbGFkZW4uLi4KRGFzIGR1ZXJmdGUgendhciBEZWluIEZhcmJwcm9ibGVtIG5pY2h0IGxvZXNlbiwgYWJlciB2aWVsZSBhbmRlcmUgQnVncy4gQWNoCmphLCBzY2huZWxsZXIgd2lyZHMgYXVjaCA6KQoKUGFrZQp6dSAzMmJpdD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN1Y2hlIEthbWVyYSAoTGFyaXNzYSwgMjkuIEp1bCAxOTk4LCAyMToyNTowMik6CgpTdWNoZSBTcGllZ2VscmVmbGV4LUthbWVyYSwgYW0gbGllYnN0ZW4gTWlub2x0YSAoRGlza3Vzc2lvbmVuIGJpdHRlCm5hY2ggTXVlbGwsIGRhcyBsZXMgaWNoIG5pY2h0KSBtaXQgbW9lZ2xpY2hzdCB2aWVsZW4gT2JqZWt0aXZlbiB6dW0KbW9lZ2xpY2hzdCBndWVuc3RpZ2VuIFByZWlzLgpBY2hqYSwgbWl0IEF1dG9mb2t1cyB1bmQgc29uZW5tIFNjaHdlaW5za3JhbS4KCkxhcmkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc3VjaGUgS2FtZXJhIChHbG9pbnNvbiwgMjkuIEp1bCAxOTk4LCAyMjo1NToxOCk6Cn4jISBybj1MYXJpc3NhIHJ0PTkwMTc0MDMwMiByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTc0MDMwMgo1MDBpIEVpbnN0ZWlnZXJtb2RlbGwgZnVlciA1MDAgRWllciB1ZWJlcmFsbCB6dSBoYWJlbi4gRnVlciBkaWUgT2JqZWt0aXZlCmdlaHN0IGFtIGJlc3RlbiB6dSBFUCBvZGVyIGVpbmVtIGFuZGVyZW4gU2Vjb25kLUhhbmQuIEd1dGUgU2NodWVzc2UgOy0pCgpHbG9pbgoKUFM6IERpZSBLYW1lcmEgc29sbHRlc3QgRHUgZGVyIFZlcnNjaGx1c3N6ZWl0ZW4gd2VnZW4gYmVzc2VyIHdlbmlnIGdlYnJhdWNodAogICAgb2RlciBlYmVuIG5ldSBlcnN0ZWhlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKEFjcmltb24sIDMxLiBKdWwgMTk5OCwgMTc6MjE6NDkpOgp+IyEgcm49U2x5Zm94IHJ0PTkwMTU4MTc3MyByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpIbW0uIFVudGVyIEFtaWdhT1Mga2FubiBpY2ggZGllIEJpbGRzY2hpcm13ZXJ0ZSBzdHVmZW5sb3MgZWluc3RlbGxlbi4KVm9uIEthcnRlbiwgZGllIG51ciBlaW5pZ2Ugc3BlemllbGxlIEF1ZmxvZXN1bmdlbiwgRnJlcXVlbnplbiBvZGVyIEZhcmJ0aWVmZW4KdW50ZXJzdHVldHplbiwgd3VlcmRlIGljaCBwcmluemlwaWVsbCBkaWUgRmluZ2VyIGxhc3Nlbi4KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKFp1ZXJpbGV1LCAgNy4gQXVnIDE5OTgsIDAwOjE2OjQwKToKfiMhIHJuPUFjcmltb24gcnQ9OTAxODk4NTA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTAxNTgxNzczCkhpLApqdW5nZSBqdW5nZSBzb3JyeSBhYmVyIEFtaWdhIChpY2ggYmluIHNlbG5lciBub2NoIGVpbiBGYW4pIGluIGVocmVuIGFiZXIKdmVyZ2lzcyBtYWwgZGFzIFRlaWwuIERpZSBLaXN0ZSBpc3QgdXV1cmFrdCB1bmQgYXVzZ2VzdG9yYmVuIChqYWphLi4gZXIgbGVidAp1bmQgZXIgc29sbCB3aWVkZXIga29tbWVuKSBhYmVyIGRhcyBzYWdlbiBzaWUgaW4gZ2V3aXNzZW4gUmVsaWdpb25lbiBhdWNoIHZvbgpKZXN1cyBoYWhhLiBBZWhtbS4uIGFiZXIgZWluZSAzZGZ4IEthcnRlIGlzdCB3b2hsIGVpbiBVbnRlcnNjaGllZCBhbHMgZWluZW4KQW1pZ2EuIFdhcyBkdSBoZXV0ZSBhbiBHcmFmaWsgRlggYXVzIHNvbGNoZW4gS2FydGVuIHJhdXNob2xsc3QgaXN0IEdlbmlhbC4KV2VubiBkdSBtaXIgYXVmIGRlaW5lbSBBbWlnYU9TIChEaWUgZGlzc2t1c3Npb24gaXN0IGVoIGxhZWNoZXJsaWNoIHVuZCBldHdhIHNvCmFsdCB3aWUgZXMgUEMgdW5kIEFtaWdhIFVTZXIgZ2lidCkgbWFsIGVpbiBHYW1lIHplaWdzdCBtaXQgZ3JhZmlrZW4gd2llIHouYi4KVW5yZWFsIG9kZXIgQmF0dGxlWm9uZSBkYW5uIHJlZGVuIHdpciB3aWVkZXIgZGFydWViZXIuIEFiZXIgYmVpIEFtaWdhIGtyaWVnc3QKZHUgZGFzIGhvZWNoc3RlbnMgYWxzIFN0YW5kYmlsZCBoaW4gdW5kIHdlbm4gdWViZXJoYXVwdC4gQWNyaW1vbiwgdmVyc3RlaGVuCndpciB1bnMgbmljaHQgZmFsc2NoLCBkZXIgQW1pZ2EgaXN0IGVpbmUgc3VwZXIgTWFzY2hpbmUgdW5kIGVyIGhhdCBpbiBkZW4KdmVyZ2FuZ2VuIEphaHJlbiB2aWVsIGdlbGVpc3RldC4gVW5kIFdpbmRvb2Y5OCBrb21tdCBoZXV0ZSBzZWxic3Qgbm9jaCBuaWNodAphbiBkYXMgQmV0cmllYnN5c3RlbSB2b24gQW1pZ2EgYW4uIEFiZXIgd2lyIHNvbGx0ZW4gU2FjaGxpY2ggYmxlaWJlbi4gRGVyCkFtaWdhIGlzdCBoZXV0ZSBpbiBzYWNoZW4gR3JhZmlrIHZvbSBNYXJrdCBhYmdlbG9lc3Qgd29yZGVuLCBzb2dhciBOaW50ZW5kbzY0CnVuZCBhbmRlcmUgU3BpZWxrb25zb2xlbiBrYW5uc3QgZHUgd2VpdCBpbiBkaWUgRWNrZSBzY2htZWlzc2VuLiBVbmQgZGllc2VzCkphaHIgd2lyZCBlcyBub2NoIGtyYXNzZXIsIGluendpc2NoZW56ZWl0IGdpYnQgei5CLiBEaWFtb25kIFN1cGVyIE1vbnN0ZXIgMi4KYWxzbyAyIHZvb2RvbzIgM2RmeCBrYXJ0ZW4gbWl0IGplIDEyTUIgUmFtLiBEYSBnZWh0IGRhbm4gd2FzIGFiIGFuIEdyYWZpayB1bmQKZGEgbW9lY2h0IGljaCBkYW5uIGRlaW4gQW1pZ2Egc2VoZW4sIGRlciBzZWh0IGRhbmViZW4gZGVyIGRhcyBzZWxiZSBhbgpsZWlzdHVuZyBlcmJyaW5ndC4KClNvLCBqZXR6dCBoYWJlbiB3aXIgZWluIHBhYXIgTGV1dGVuIGtyYWVmdGlnIGF1ZiBkaWUgRnVlc3NlIGdldHJldHRlbiwgZXMgdHV0Cm1pciBhdWNoIGxlaWQgd2VubiBzaWNoIGlyZ2VudHdlbGNoZSBSZWxpZ2lvZXNlIG9iIHZvbiBkZXIgS2lyY2hlIG9kZXIgdm9uIGRlcgpBbWlnYSBSZWxpZ2lvbiAoamFqYSBzYWd0IG1pciBuaXgsIGZ1ZXIgZ2V3aXNzZSBMZXV0ZSBpc3QgZXMgZWluZSBSZWxpZ2lvbikKYXVmIGRpZSBGdWVzc2UgZ2V0cmV0dGVuIHNlaWpuIHNvbGx0ZS4KClRzY2h1ZXNzLi4gQWxhaW4KCnBzOiBJbSBkZXplbWJlciBrb21tdCBDJkMgMyAoamFqYSBhY3JpbW9uIHdpciB3aXNzZW4gZXMsIGR1IHNwaWVsc3QgbGllYmVyClNjaGFjaCkgdW5kIGRhcyBhdWNoIGluIDNkZnggPTopIEhtbS4uIGZ1ZXIgQW1pZ2Egc29sbCB3YXJzY2hlaW5saWNoIG5pY2h0CmVyc2NoZWluZW4uIEdhYnMgUmVkQWxlcnQgZWlnZW50bGljaCBmdWVyIEFtaWdhID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoUGF0cnluLCAgNy4gQXVnIDE5OTgsIDAwOjI2OjIzKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTkwMjQ0MTgwMCByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3Mwp3aWUgaWNoIHp1bSBhbWlnYSBzdGVoZSwgaGFiIGljaCBqYSBzY2hvbiBtZWhybWFscyBrbGFyZ2VzdGVsbHQ6IGF1Y2gKZnVlciBtaWNoIGlzdCBkYXMgdGVpbCB0b3QgdW5kIGRhcyBrb21tdCBncm9lc3N0ZW50ZWlscyBkYWhlciwgd2VpbAplcyB6dW0gZWluZW4gamFocmVsYW5nIGthdW0gd2VpdGVyZW50d2lja2VsdCB3dXJkZSB1bmQgenVtIGFuZGVyZW4sCndlaWwgZXMgZGVuIHN0YXR1cyBlaW5lcyBiaWxsaWdlbiBjb21wdXRlcnMgc2Nob24gdm9yIGphaHJlbiB2ZXJzcGllbHQKaGF0LiBnZXJhZGUgaW50ZXJlc3NhbnRlcyB6dWJlaG9lciB3aWUgZ3V0ZSBncmFmaWtrYXJ0ZW4gb2RlciBhZWhubGljaGVzCndhcmVuIGRhcmF1ZiBnZWdlbnVlYmVyIGRlciBQQy1pbmR1c3RyaWUgbGFlY2hlcmxpY2ggdWViZXJ0ZXVlcnQuCmluIGVpbmVyIGJlemllaHVuZyBqZWRvY2ggbXVzcyBpY2ggZGFzIHRlaWwgdmVydGVpZGlnZW46CiBkaWUgZWluZ2ViYXV0ZSBncmFmaWsga2FubiBtYW4gaGV1dCBrYXVtIG5vY2ggYWxzIHplaXRnZW1hZXNzIGJldHJhY2h0ZW4sCmRhcyBiaXRtYXAtb3JpZW50aWVydGUgc3lzdGVtIGhhdCBtYW4gaGV1dCB0ZWNobmlzY2ggZWluZmFjaCBuaWNodCBzbyBpbQpncmlmZiwgZXMgaXN0IHRlY2huaXNjaCB6dSBrb21wbGl6aWVydCwgc3RlbGx0IHp1IGhvaGUgYW5mb3JkZXJ1bmdlbiBhbgpkaWUgaGFyZHdhcmUuIG5pY2h0c2Rlc3RvdHJvdHoga2FubiBlcyBmdWVyIHNjb2xsaW5nIG9kZXIgZmFyYnZlcnNjaGllYnVuZ2VuCndhaG5zaW5uaWcgc2NobmVsbCBzZWluIChtaXQgZGVtIHNjcm9sbGVuIGVpbmVzIGFtaWdhcyBtaXR6dWtvbW1lbiwKYmVyZWl0ZXQgc2VsYnN0IGhvY2hnZXp1ZWNodGV0ZW4gcGMncyBzY2h3aWVyaWdrZWl0ZW4pLiBkYWZ1ZXIgd2FyIGRpZQozZC1yZWFsdGltZS1zY2hpZW5lIG5pZSB3YXMgZnVlciBkYXMgdGVpbCwgd2VpbCB2aWVsIHp1IHZpZWwgcnVuZ2VyZWNobmV0Cnd1cmRlLCB3ZWxjaGVyIGZhcmJ3ZXJ0IHdpZSBpbiBiaXRwbGFuZXMgZWluc29ydGllcnQgd2lyZC4KYXVmIGRlaW5lIGthcnRlbiBmdWVyIHBjIGJlem9nZW46IHNvd2FzIGdhYnMgZnVlciBhbWlnYSBuaWUsIGtvZW5udGUgbWFuCmFiZXIgc2ljaGVybGljaCBnZW5hdXNvIHp1Z2FlbmdsaWNoIG1hY2hlbi4gZXMgZ2FiIGplZG9jaCBhbmRlcmUga2FydGVuIApmdWVyIGRlbiBhbWlnYSwgZGllIGRlaW5lIHNwYXItcGMtdmVyc2lvbmVuIHppZW1saWNoIGFsdCBhdXNzZWhlbiBsYXNzZW4uCmVpbmUgdHJhbnNwdXRlci1ncmFmaWtrYXJ0ZSB6QiBoYXR0ZSBiaXMgenUgMTI4IHJpc2MtcHJvemVzc29yZW4gZGllIHNpY2ggbnVyCnVtIHNvbGNoZSBkYXJzdGVsbHVuZ2VuIGt1ZW1tZXJuLiBkYXNzIGVzIGRhZnVlciBrZWluZSBzcGllbGUgZ2FiLi4ubnVuIGphLApkYXMgdGVpbCBrb3N0ZXRlIDUwMDAgbWFyayAqZ3JpbnMqIHVuZCB3YXIgd2FzIGZ1ZXIgZGVuIHByb2ZpbWFya3QuCmRlciBwcmVpcyBtYWNodCBhbHNvIGRpZSBtdXNpaywgc2NobGllc3NsaWNoIGtvbW10IGF1Y2ggbmUgc2lsaWNvbiBncmFwaGljcwpnZWdlbnVlYmVyIG5vbSBwYyB2b3IgbGFjaGVuIG5pY2h0IGluIGRlbiBzY2hsYWYgOikKCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoWWFyZW4sICA3LiBBdWcgMTk5OCwgMTY6MjY6MTkpOgp+IyEgcm49UGF0cnluIHJ0PTkwMjQ0MjM4MyByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpTR0k/ICp3YWVseiogV2VubiB3aXIgdm9uIGVpbmVyIE9ueXggbWl0IDIgR3JhZmlrLVBpcGVsaW5lcyByZWRlbiwgZGFubgp2aWVsbGVpY2h0LCBhYmVyIGVpbmUgTzIvUjEwSy8yNTBNSHogbWFjaHQgYW4gR3JhZmlrbGVpc3R1bmcgZ2VyYWRlIG1hbCAzODBLClBvbHlnb25lIHVuZCAzM00gVGV4ZWwuIERhcyBtYWNodCBqYSBzY2hvbiBuZSBWb29Eb28gMSEgVW5kIHdlbm4gTlZpZGlhIGRlbgpUTlQgYXVjaCBudXIgYW5uYWVoZXJuZCBzbyBoaW5iZWtvbW10LCB3aWUgdmVyc3Byb2NoZW4sIGRhbm4ga2FubiB2aWVsbGVpY2h0CnNjaG9uIG5lIE9ueXogZWlucGFja2VuOiAyNTBNIFRleGVsL3MsIDhNIFBvbHlnb25lL3MgdW5kIG5lbgpHZW9tZXRyaWVwcm96ZXNzb3IgbWl0IDEwIEdGTE9QUy4gRGFzIGdhbnplIG1pdCBBdWZsb2VzdW5nZW4gYmlzIDE2MDB4MTIwMCBiZWkKODVIei4gS2F1ZiBEaXIgamEga2VpbmUgU0dJIC4uLgoKWWFyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKFp1ZXJpbGV1LCAgNy4gQXVnIDE5OTgsIDE3OjMyOjE3KToKfiMhIHJuPVBhdHJ5biBydD05MDI0NDIzODMgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKaGksCkphIFBhdHJ5biBpY2ggd2Vpc3MsIGR1IG11c3N0IHdpc3NlbiBpY2ggYmluIG1pdCBjNjQgdW5kIEFtaWdhIGdyb3NzIGdld29yZGVuLAphbHNvIHNvIGV0d2FzIHdpZSBlaW4gYWx0ZXIgSGFzZS4gTmFqYSBtZWluIGFsdGVyIEE1MDAsIEEyMDAwIHVuZCBBNDAwMCBtdXNzdGUKaWNoIGhhbHQgZGFubiBtYWwgdmVya2F1ZmVuIGFscyBkaWUgemVpdCByZWlmIGRhenUgd3VyZGUuIEVzIGdpYnQgWmVpdGVuIChiZWltCjEwMHggd2luZG93cyBDcmFzaCkgd28gaWNoIGFtIGxpZWJzdGVuIEJpbCBHYXRlcyAobmFqYSBkZW4gZWlnZW50bGljaCBpbW1lcikKYXVmIGRlbiBNb25kIHNjaGllc3NlbiB3b2xsdGUgdW5kIGRlbiBhbHRlbiBBbWlnYSB3aWVkZXIgaGVydm9ya3JhbW1lbgptb2VjaHRlLiBOdXIgZ2VoZSBpY2ggaGFsdCBtaXQgZGVyIFplaXQsIGljaCBiaW4gZWluIEdhbWVyIHVuZCBoYWJlIHNjaG9uCmltbWVyIGdlcm5lIGdlc3BpZWx0IHVuZCBkYSBicmF1Y2h0IG1hbiBoZXV0ZSBlaW5mYWNoIGVpbmVuIFBDIHVudGVyIGRlciBIYXViZQptaXQgZWluZXIgYW5zdGFlbmRpZ2VuIDNkZnggS2FydGUuIEljaCBnbGF1YiwgQ29tb2RvcmUgaGFldHogbWVociBtYWNoZW4KbXVlc3NlbiwgdmllbCBtZWhyIGltIGFtaWdhIHdhciBkYXMgcG90ZW50aWFsIHZvcmhhbmRlbiBhYmVyIG1hbiBoYXQgZXMgbmljaHQKYXVzZ2VzY2hvZXBmdC4gVW5kIGRlciBBbWlnYSB3YXIgdW5kIGlzdCBlaW5mYWNoIHp1IHRldWVyLiBBYmVyIHNvcnJ5LCBmdWVyCmhldXRpZ2Ugc3RhZW5kYXJ0cyBpbiBzYWNoZW4gR3JhZmlrIGthbm4gZGVyIEFtaWdhIGVpbmVyIDNkZnggS2FydGUgbmljaHQgbWVocgptaXRoYWx0ZW4uIFVuZCBvYiBkaWUgUmlzayBLYXJ0ZSA1MDAwIGdla29zdGV0IGhhZXQgb2RlciBzbyBzcGllbHQgZ2FybmljaHQgc28KbmUgcm9sbGUgd2VpbG1hbiBrYW5uIGltbWVyIGV0d2FzIG5vY2ggYmVzc2VyZXMgaW4gc2VpbiBSZWNobmVyIHNjaHJhdWJlbi4gSWNoCm1laW5lIGVpbmUgM2RmeCBWb29kb28yIEthcnRlIGtyaWVnc3QgZHUgaGV1dGUgZnVlciBrbmFwcCA0NTAgLTUwMCBzZnIuLSBpY2gKbWVpbmUgZnVlciBzbyB3ZW5pZyBHZWxkIGxlaXN0ZW4gZGllc2UgS2FydGVuIGVyc3RhdW5kbGljaGVzIHVuZCBkYSBrYW5uIG1pcgp3ZWlzcyBpY2ggd2VyIHdhcyBhbmRlcmVzIHZvcmphbW1lcm4uCgpUc2NoYXUgQWxhaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoUGF0cnluLCAgOS4gQXVnIDE5OTgsIDIyOjMyOjI5KToKfiMhIHJuPVlhcmVuIHJ0PTkwMjQ5OTk3OSByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3Mwp3ZW5uIGR1IGpldHp0IGVybnN0aGFmdCBpYm0tcGMncyBtaXQgdXAtdG8tZGF0ZSBzZ2ktc3lzdGVtZW4gYXVmIGVpbmUgc3R1ZmUKc3RlbGxzdCBtYWNoc3QgZHUgZGljaCBub2NoIGxhZWNoZXJsaWNoZXIgYWxzIGRpZSwgd2VsY2hlIGhldXRlIG5vY2ggZGVuCmM2NCBmdWVyIGRhcyBtYXNzIGFsbGVyIGRpbmdlIGhhbHRlbi4uLndvYmVpLCBkZXIgYzY0IGhhdCB3ZW5pZ3N0ZW5zIG5vY2gKY2hhcmFrdGVyLgoKLS0tLS0tCnBhdHJ5biwgbWFnIGRpZXNlIGRpc2t1c2lvbiBuaWNodCB3ZWl0ZXJmdWVocmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdHVudHMgdW5kIGlocmUgRm9sZ2VuLi4uIChSb25kYSwgMTAuIEF1ZyAxOTk4LCAxMjoyNjozOSk6CkhpLApuYWNoZW0gaGllciBkaWUgaGVpc3Nlc3RlbiBHZXJ1ZWNodGUga3Vyc2llcmVuOiBOZWluLCBpY2ggaGFiZSBrZWluZW4gVW5mYWxsCm1pdCBtZWluZW0gTWluaSBnZWhhYnQsIGF1Y2gga2VpbiBBYnN0dXJ6IG1pdCBkZW0gR2xlaXRzY2hpcm0sIGtlaW5lCkJydWNobGFuZHVuZyBtaXQgZGVtIEJlc2VuIDopCkljaCBoYWIgZWluZmFjaCB2ZXJzdWNodCwgaW5saW5lLXNrYXRlcyB6dSBmYWhyZW4sIG5lbiBiaXNzY2hlbiBhdWYgbmUgd2luemlnZQpSYW1wZSAtIHVuZCB6YWNrLCBrb21wbGl6aWVydGVyIEFybWJydWNoLCAxNyBUYWdlIEtyYW5rZW5oYXVzLi4uCk51biBiaW4gaWNoIHdpZWRlciBpbiBGcmVpaGVpdCwgYWJlciBiaXMgaWNoIHdpZWRlciBhcmJlaXRlICh1bmQgZGFtaXQKaGFldWZpZ2VyIGFucyBJbnRlcm5ldCBrb21tZSkgZGF1ZXJ0cyB3b2hsIG5vY2ggbWluZGVzdGVucyB6d2VpIFdvY2hlbiwKdmllbGxlaWNodCBsYWVuZ2VyLCBtaXQgbGlua3MgdGlwcHQgc2ljaHMgc28gc2NoLi4uClZpZWxlbiBEYW5rIGZ1ZXIgZGllIEFucnVmZSBpbSBLcmFua2VuaGF1cywgaWNoIGhhYiBtaWNoIHJpZXNpZyBnZWZyZXV0IQpTbywgYmlzIGRpZSBUYWdlLApSb25kYSAqbGlua3NoYWVuZGlnLCBhbmdlbWF0c2NodC4uLioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoWWFyZW4sIDEwLiBBdWcgMTk5OCwgMTY6NTI6MzYpOgp+IyEgcm49UGF0cnluIHJ0PTkwMjY5NDc0OSByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpEYXMgemVpZ3QgbnVyLCBkYXNzIER1IG5vY2ggbmllIHZvciBuZXIgbGFobWVuIE9jdGFuZSBnZXNlc3NlbiBoYXN0LCBQYXRyeW4KLi4uIGljaCByZWRlIGphIG5pY2h0IHZvbiBuZXIgT255eDIgbWl0IFJlYWxpdHkgTW9uc3RlciAtIGRpZSBrYW5uIG1hbgp1ZWJyaWdlbnMgYXVjaCBuaWNodCBiZXphaGxlbi4gQWJlciB3ZW5uIG1hbiBtYWwgdm9uIGRlbQpTdXBlci1IaWdoLUVuZC1CZXJlaWNoIGFic2llaHQ6IGRpZSBXb3Jrc3RhdGlvbnMgdm9uIFNHSSBzaW5kIG1hc3Nsb3MKdWViZXJ0ZXVlcnQgdW5kIGRlcmVuIEdhcmZpa2ZhZWhpZ2tlaXRlbiBiZWVpbmRydWNrZW4gdmllbGxlaWNodCBnZXJhZGUgbWFsCmVpbmVuIEFtaWdhLVVzZXIuIFdpciBoYWJlbiBoaWVyIGVpbmUgT2N0YW5lIHN0ZWhlbiB1bmQgZnVlciBkaWUgMzUuMDAwLC0gZGllCmRpZSBnZWtvc3RldCBoYXQgaXN0IGRhcyBsYWVjaGVybGljaCwgd2FzIGRpZSBsZWlzdGV0LiAKCllhcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWRpb3MhIChUb3JmLCAxMC4gQXVnIDE5OTgsIDE3OjAzOjU1KToKQWRpb3MgTW9yZ2VuZ3JhdWVuIQoKQWRpb3MhKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoVGF6LCAxMS4gQXVnIDE5OTgsIDA5OjAzOjMwKToKfiMhIHJuPVlhcmVuIHJ0PTkwMjc2MDc1NiByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwoKSG1tIGljaCB3ZWlzcyBuaWNodCBnZW5hdSwgYWJlciBuZSBPY3RhbmUgZnVlciAzNS4wMDAgaXN0IGRvY2gKYXVjaCBlaGVyIGRhcyBFaW5zdGllZ3Ntb2RlbGwgZnVlciBuZSBPY3RhbmUuIApJY2gga2FubiBtaWNoIGFuIG5lbiBUZXN0IGluIGRlciBpWCBlcmlubmVybiwgZGEgd2FyIGRpZSBPY3RhbmUKc2Nob24gc2VociBndXQsIGFiZXIgbmF0dWVybGljaCBoYXQgZGllIG5vY2ggZXR3YXMgbWVocgpnZWtvc3RldC4gQW55d2F5LCBFaW5zdGllZ3NncmFmaWt3b3Jrc3RhdGlvbnMgd2lyZCBlcwp2b24gU0dJIG5pY2h0IG1laHIgZ2ViZW4gKG5hamEgYXVzc2VyIGV2dC4gZGVtIFZQQykuCgpBbmFraW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoWnVlcmlsZXUsIDEzLiBBdWcgMTk5OCwgMDE6NTg6NTEpOgp+IyEgcm49VGF6IHJ0PTkwMjgxOTAxMCByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpIaSwKaGV5IEp1bmdzLCBpY2ggbWVpbmUgd2lyIHJlZGVuIGhpZXIgdm9uIDNEZnggS2FydGVuIHVuZCBkaWUgZWluemlnZSBhdXNyZWRlCmRlciBBbWlnYSB1c2VyIHNpbmQgR3JhZmlra2FydGVuIGRpZSAzNScwMDAgZnJhbmtlbiBrb3N0ZW4gPyBpY2ggbWVpbmUsIGFlaG1tCndlciBrYXVmdCBzaWNoIHNvIGVpbiBkaW5nLiBhbHNvIGljaCBtZWluZSBnZWdlbiBvYmVuIGlzdCBrZWluZSBncmVuemUgZ2VzZXR6dAp1bmQgZGEgZ2lidHMgc2ljaGVyYSB1Y2ggYmVzc3JlcmVzIGFscyAzZGZ4LiBBYmVyIGFscyBhdXNyZWRlIG1pdCBzbyBlaW5lbQpkaW5nIHp1IHJ1bXp1cGxhaHJlbiB3YXMgbWFuIGVpbmJhdWVuIGtvZW5udGUsIGlzdCBkYW5uIHNjaG9uIGV0d2FzCmxhZWNoZXJsaWNoLCBvZGVyID8gS2xhciBrYW5uc3QgZHUgZGVpbiBBbWlnYSBUdXJibyBmcmlzaWVyZW4gdW5kIHNvbGNoZQpHcmFmaWsgY2hpcHMgZWluYmF1ZW4sIGFiZXIgZGFzIGhhdCBqZWRlbiBzaW5uIGFuIHJlYWxpdGFldCB2ZXJsb2hyZW4uIEZ1ZXIKZGFzIEdlbGQga2F1ZmUgaWNoIDEwIEhpZ2gtRW5kIFBDJ3MuCn4KCmN1IEFsYWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKEhvb2QsIDEzLiBBdWcgMTk5OCwgMDM6MzQ6MzkpOgp+IyEgcm49WnVlcmlsZXUgcnQ9OTAyOTY2MzMxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTAxNTgxNzczCndlciBnZWJyYXVjaHRlIGhpZXIgaXJnZW5kd2VsY2hlIGF1c3JlZGVuPyBpY2ggc3RlbGx0ZSBrbGFyLCBkYXNzCmRlciBhbWlnYSBrZWluZSBjaGFuY2UgbWVociBoYXQgdW5kIGljaCBhdWNoIGdhciBrZWluIGJlenVnIG1laHIgenUKZGVtIHN5c3RlbSBoYWJlLgpkYXMgbWl0IGRlciB0ZXVyZW4ga2FydGUgZXJ3YWVobnRlIGljaCBudXIgYXVmIGRlaW5lIGJlbWVya3VuZyBkZXIKYW5nZWJsaWNoZW4gbmljaHRtYWNoYmFya2VpdCBoaW46CiBhdWYgZGVtIGFtaWdhIGJla29tbXN0ZSBzb3dhcyBob2VjaHN0ZW5zIGFscyBzdGFuZGJpbGQgaGluLApsYXV0ZXQgZGFzIHppdGF0LCB3ZWxjaGVzIHNjaGxpY2h0d2VnIGZhbHNjaCBpc3QuIHRlY2huaXNjaCB3YXJlbiBzb2xjaGUKa2FydGVuIHNjaG9uIHZvciA4IGphaHJlbiBhdWYgZGVuIG1hcmt0LCBudXIgaGFsdCB3YXIgZGFzIGZ1ZXIgZGVuCnByb2ZpbWFya3QgdW5kIG5pY2ggZnVlciBpcmdlbmR3ZWxjaGUgZGFkZGVsdXNlciwgZGllIHNpY2ggd2FzIGF1ZgppaHJlIHN1cGVybWFya3QtM2QtcGMta2FydGVuIGVpbmJpbGRlbi4KCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKFJhbnRhbnBsYW4sIDEzLiBBdWcgMTk5OCwgMDc6NDI6MjIpOgp+IyEgcm49SG9vZCBydD05MDI5NzIwNzkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKQWhvaSAhCgpEaWUgRGlza3Vzc2lvbiBpc3QgemllbWxpY2ggc2lubmxvcyB1bmQgbmViZW5iZWkgYXVjaCBkZXBsYXppZXJ0Li4uCgpJcmdlbmRqZW1hbmQgbW9lY2h0ZSBlaW5lIEdyYWZpa2thcnRlIHRhdXNjaGVuIHVuZCBpcmdlbmRqZW1hbmQgCmFuZGVyZXMgc2NoYWZmdCBlcyB0YXRzYWVjaGxpZWNoIG1hbCB3aWVkZXIgZWluZSAKd2lya2xpY2ggc3Bhbm5lbmRlLCBuZXVlIHVuZCBpbmZvcm1hdGl2ZSAiTWVpbi1SZWNobmVyLWlzdC1iZXNzZXItYWxzLURlaW5lciItCkRpc2t1c3Npb24gdm9tIFphdW4genUgYnJlY2hlbi4gKCJicmVjaGVuIiBkYXJmIGhpZXIgcnVoaWcgbWVocmRldXRpZyBnZWxlc2VuCnd3ZXJkZW4pCgpJbSBFbmRlZmZla3QgZ2VodCBlcyBiZWkgZGVuIEthcnRlbiBkb2NoIGVoaCBudXIgZGFydW0gd2llIHNjaG5lbGwgdW5kCndpZSByZWFsaXN0aXNjaCBkYXMgQmx1dCBzcHJpdHosIHdlbm4gaWNoIG1laW5lbSBHZWduZXIgZWluIHBhYXIKU2FsdmVuIGF1cyBkZXIgUHVtcC1HdW4gdmVycGFzc2UsIG9kZXIuLi4/CgpPZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoSmVob3ZhLCAxMy4gQXVnIDE5OTgsIDE5OjA1OjIxKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTkwMjk2NjMzMSByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpnZW5hdXNvIGxhZWNoZXJsaWNoIGlzdCBhYmVyIGF1Y2ggZGVpbiB2ZXJnbGVpY2ggZWluZXMgMTAgamFocmUgYWx0ZW4gYW1pZ2FzCm1pdCBkZWluZW0gaGlnaC1lbmQtcGMgLSBkYXMgemVpZ3QgZG9jaCBudXIsIGRhc3MgZHUgdm9yIDEwIGphaHJlbiBtYWwgd2FzIHZvbQphbWlnYSBnZWhvZXJ0IGhhc3QgdW5kIG51biBnbGF1YnN0LCBkYXMgZGFzIGltbWVyIG5vY2ggc28gaXN0LiBpbiBlaW5lbSBzdGltbWUKaWNoIGRpciB6dSwgenVtIHNwaWVsZW4gaXN0IGRlciBwYyBiZXNzZXIgZ2VlaWduZXQsIGFiZXIgd2VyIGJyYXVjaHQgc2Nob24Kc3BpZWxlIDopCgpieWUsIGoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKFNvbmdva3UsIDE3LiBBdWcgMTk5OCwgMDk6MTQ6MTYpOgp+IyEgcm49UGF0cnluIHJ0PTkwMjQ0MjM4MyByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpEaWUgdHJhbnNwdXRlciBLYXJ0ZSBmdWVyIGRlbiBBbWlnYSBoYXQgaW4gZGVyIEdydW5kYXVzc3RhdHR1bmcgNTAwMCBnZWtvc3RldAoobWl0IDIgQ2hpcHMpIGplZGVyIENoaXAgaGF0IGtuYXBwIDgwMC4tIGdla29zdGV0IChDaGlwcHJlaXMgPSBBRkFJSykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBhbmRlcmVzL0RTQSAoTGksIDE3LiBBdWcgMTk5OCwgMTA6NDE6NTApOgpIaSEKaGllciBtYWwgZWluZSBnYW56IGFuZGVyZSBBbnplaWdlOgpJY2ggc3VjaGUgamVtYW5kZW4sIGRlciBkYXMgUmVnZWxidWNoIGRlciAiU2Nod2VydG1laXN0ZXIiIHZvbiBEU0EgaGF0IHVuZCBtaXIKZGllIFJlZ2VsbiB1ZWJlciBkaWUgUnVuZW5tYWdpZSBrb3BpZXJlbiBrYW5uLiBJY2ggbW9lY2h0ZSBkaWUgdS5VLiB1bWJhdWVuCnVuZCBmdWVyIGV0d2FzIEFuZGVyZXMgdmVyd2VuZGVuLgpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhcyBhbmRlcmVzL0RTQSAoU29uZ29rdSwgMTcuIEF1ZyAxOTk4LCAxMDo0OTo0OCk6Cn4jISBybj1MaSBydD05MDMzNDMzMTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDMzNDMzMTAKRGFzIERpbmcgaXN0IGphIHNjaG9uIG5lIGFuZGlxdWlkYWV0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgYW5kZXJlcy9EU0EgKExpLCAxNy4gQXVnIDE5OTgsIDEwOjU0OjEwKToKfiMhIHJuPVNvbmdva3UgcnQ9OTAzMzQzNzg4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTAzMzQzMzEwCkdlbmF1LCBkZXN3ZWdlbiBzdWNoZSBpY2ggZXMgamEgOi0pCkFiZXIgdmllbGVuIERhbmssIGljaCBoYWJlIHNjaG9uIGVpbiBwYWFyIEFuZ2Vib3RlLi4gKHNjaGVpbnQgZG9jaCBtZWhyCkRTYS1TcGllbGVyIHp1IGdlYmVuLCBhbHMgbWFuIGltbWVyIGdsYXVidC4uLikKTGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBhbmRlcmVzL0RTQSAoU29uZ29rdSwgMTcuIEF1ZyAxOTk4LCAxMTowOTozMyk6Cn4jISBybj1MaSBydD05MDMzNDQwNTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDMzNDMzMTAKaWNoIGVyaW5uZXJlIG1pY2ggbm9jaCBkYXJhbiwgZGFzcyBpY2ggZXMga2F1ZmVuIHdvbGx0ZSBhYmVyIGljaCBoYWJlIGRhbWFscwpnZXJhZGUgZGllIGdydW5kIHVuZCBkaWUgbWFnaWVib3ggZ2VrYXVmdCB1bmQgd2FyIHBsZWl0ZSAgOigKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKFp1ZXJpbGV1LCAyMS4gQXVnIDE5OTgsIDAyOjI5OjUyKToKfiMhIHJuPUplaG92YSBydD05MDMwMjc5MjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKSGksCk5hIGljaCBoYXR0ZSBpbW1lcmhpbiBqYWhyZWxhbmcgZWluIEEyMDAwL0E0MDAwIHVuZCBpY2ggcGxhdHppZXJlIGhpZXIgbnVyCm1laW5lIE1laW51bmcuIEljaCB2ZXJsYW5nIHZvbiBEaXIgYXVjaCBuaWNodCBkYXMgZHUgZGVyIHNlbGJlbiBBbnNpY2h0IGJpc3QuCkVzIGdpYnQgYXVjaCBBZHZlbnR1cmVzIG9obmUgQmx1dCBiZXJlaXRzIG1pdCAzZGZ4LiBVbmQgenUgSG9vZDogTWlyIGlzdCBrbGFyCmRhcyBlcyBpbSBQcm9maSBiZXJlaWNoIHNvbGNoZSBTYWNoZW4gc2Nob24gbGFlbmdlciBnaWJ0LiBBYmVyIG5pY2h0IGplZGVyCmtvbnRlIGRhbWFscyBzaWNoIHNvIGVpbiBEaW5nIGFuc2NoYWZmZW4gb2RlciBnZWhvZXJ0ZSB6dXIgc3RhbmRhcnQgYmVudXR6dW5nCmplZGVzIEFtaWdhIFVzZXJzLiBIZXV0ZSBrb2VubmVuIHNvbGNoZSBLYXJ0ZW4gYWJlciBkZXIgYnJlaXRlbiAKT2VmZmVudGxpY2hrZWl0IGRpZW5lbiB1bmQgc2luZCB6dSB2ZXJudWVmdGlnZW4gUHJlaXNlbiB6dSBiZWtvbW1lbiAoZXMgZHVlcmZ0CnJ1aGlnIG5vY2ggZXR3YXMgYmlsbGlnZXIgd2VyZGVuKS4gTnVuIHVuZCB3ZW5uIGR1IGR1IGF1ZiBHcmFmaXNjaCBndXQKZ2VtYWNodGUgR2FtZXMgbmljaHQgc3RlaHN0LCBtdXNzIGRhcyB3b2hsIG5pY2h0IGhlaXNzZW4gZGFzIGRlaW4gR2VzY2htYWNrCmZ1ZXIgamVkZXJtYW5uIGRpZSBtZXNzbGF0ZSBzZXR6ZW4gbXVzcy4gSWNoIGthbm4gbmljaHQgbnVyIG9ubGluZSBpbgppcmdlbnR3ZWxjaGVuIE11ZHMgaGFlbmdlbiwgc29uZGVybiBtb2VjaHQgbWljaCBhdWNoIGFuIEdyYWZpc2NoIHNwZWt1bGFlcgpnZW1hY2h0ZW4gR2FtZXMgZXJnb2V0emVuLiBPYiBkYXMgbnVuIGVpbiBBZHZlbnR1cmUsIGVpbiAzZCBTaG9vdGVyIG9kZXIgZWluCmNvb2xlIFNpbXVsYXRpb24gaXN0LgoKCldpciB1cnRlaWxlbiBoaWVyIHp1IG9mdCBhdXMgZGVyIHBlcnNvZWhubGljaGVuIE1laW51bmcgaGVyYXVzIHVuZCB2ZXJnZXNzZW4KZGFzIGVzIGFuZGVyZSBMZXV0ZSBnaWJ0IG1pdCBhbmRlcmVuIEJlZHVlcmZuaXNzZS4KClRzY2hhdSBBbGFpbgoKcHM6IGhtbS4uIHNvcnJ5IGZ1ZXIgZGllIHR5cG9zIHVuZCB2ZXJsZWd0IGRpZSBtYWlscyBkb2NoIGlucyBoYXJkL3NvZnR3YXJlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogVGF1c2NoZSBIZXJjdWxlcyBTdGluZ3JheSAxMjggM0QgZ2VnZW4gYW5kZXJlIDNELUthcnRlIChCdWJiYSwgMjQuIEF1ZyAxOTk4LCAxNDo1MTo0Mik6Cn4jISBybj1adWVyaWxldSBydD05MDM2NTkzOTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKCldlciBrZW5udCBzaWNoIG1pdCBTcHJhY2hlcmtlbm51bmdzc29mdHdhcmUgYXVzPyAKWnVyaWxldSBicmVubnQgZGFyYXVmLCBlaW5lIEVtcGZlaGx1bmcgenUgYmVrb21tZW4hIFdpciBzb2xsdGVuIGlobSBkYW5uIGFsbGUKZ3V0IHp1cmVkZW4sIGRhbWl0IGVyIGF1Y2ggYXVzZ2llYmlnIEdlYnJhdWNoIHZvbiBpaHIgbWFjaHQhCgpLb25yYWQgRHVkZW4gLSBkZXIgc2ljaCBpbSBHcmFiZSB1bWRyZWh0IQoKUFM6IEJlaSBhbGxlbSBSZXNwZWt0IHZvciBEZWluZXIgQmVnZWlzdGVydW5nIGFtIFRoZW1hIC0gYnJlbXNlIERlaW5lbgpFbnRodXNpYXNtdXMgdW5kIGJyaW5nIGRvY2ggZGllIGdld29ubmVuZSBFbmVyZ2llIGluIGVpbmVuIERldXRzY2hrdXJzIGVpbi4KRXMgbG9obnQgc2ljaCBiZXN0aW1tdCEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogVGF1c2NoZSBIZXJjdWxlcyBTdGluZ3JheSAxMjggM0QgZ2VnZW4gYW5kZXJlIDNELUthcnRlIChadWVyaWxldSwgMjYuIEF1ZyAxOTk4LCAwMDo1NDoxNik6Cn4jISBybj1CdWJiYSBydD05MDM5NjMxMDIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKSGFsbG8sCkVzIGhlaXNzdCAiWnVlcmlsZXUiIG5pY2h0ICJadXJpbGV1IiBkYXMga29tbXQgdm9uICJadWVyaWNoIi4gVW5kIGpldHp0IHNwaXR6dApkZWluZSBPaHJlbiBCdWJiYSwgaWNoIHdhciBzY2hvbiBkYSBhbHMgZHUgdm9uIE11ZHMga2VpbmUgYWhudW5nIGhhdGVzdCB1bmQKYXVjaCBuaWNodCB3dXNzdGVzdCB3YXMgIk1vcmdlbmdyYXVlbiIgaXN0LiBJY2ggYmluIHp3YXIga2VpbmVtIGVpbmUKcmVjaGVuc2NoYWZ0IHNjaHVsZGlnLCB1bmQgc2Nob24gZ2FybmljaHQgZWluZW0gZGFoZXJnZWxhdWZlbmVtIG5ld2JpZSwgZWluCm5pY2h0cy4gRXMgbW9lZ2Ugc2VpbiBkYXMgZHUgaW4gc2NocmlmdGRldXRzY2ggd2VuaWdlciBmZWhsZXIgYWxzIGljaCBtYWNoc3QuCkRhcyBpc3Qgc2Nob2VuIG1hZyBpY2ggZGlyIGF1Y2ggZ29laG5uZW4uICBJY2ggbXVzcyBiZWkgbWlyIG51ciB2b24gYW5kZXJlbgp2b3JhdXNldHp1bmdlbiBhdXNnZWhlbiwgaWNoIGJpbiBTY2h3ZWl6ZXIgbWVpbmUgTXV0dGVyc3ByYWNoZSBpc3QgZWluZSBhbmRlcmUKYWxzIGRpZSB3aWUgaWNoIHNjaHJlaWJlLiBEYXp1IGJpbiBpY2ggbGVnYXN0ZW5pa2VyLCBtZWluZSBGZWhsZXIgaGFiZW4gc2ljaApzZWl0IG1laW5lciBzY2h1bHplaXQgc3RhcmsgcmVkdXppZXJ0IHVuZCBlcyBnZWh0IGF1Y2ggaW1tZXIgYmVzc2VyLiBMZWlkZXIKZ2lidCBlcyBzbyBhcm9nYW50ZSAoU29ycnkpIEFyc2NobG9lY2hlciB3aWUgZGljaCBkaWUgYWxsZXMgYmVzc2VyIHdpc3Nlbgp3b2xsZW4gYWxzIGFuZGVyZSwgdW5kIGRlbmtlbiBzaWUgbXVlc3NlbiB1ZWJlciBGZWhsZXIgdm9uIGFuZGVyZW4gbGFlc3Rlcm4KdW5kIHNpY2ggYXVmc3BpZWxlbi4gSWNoIGthbm4gbWVpbmUgQXJ0aWtlbCBhdWNoIGluIHNjaHdlaXplcmRldXRzY2gKc2NocmVpYmVuLCB3YWVyIGRvY2ggbmUgaWRlZSBzbyBtYWNoIGljaCBiZXN0aW1tdCBrZWluZW4gRmVobGVyIG1laHIuIFByb2JsZW0Kd2FlciB3b2hsIG51ciBkYXMgbWljaCBkYW5uIGF1Y2gga2VpbmVyIG1laHIgdmVyc3RlaGVuIHd1ZXJkZS4gVW5kIG5vY2ggd2FzLApkYXMgTWF1bCBsYXNzIGljaCBtaXIgbmljaHQgdmVyYmlldGVuLCBpY2ggc2FnZSB3YXMgaWNoIHdpbGwgdW5kIHdlbm4gZXMgZGFyaW4KU2NocmVpYmZlaGxlciBoYXQgaXN0IG1pciBkYXMgc2NoZWlzc2VnYWwuIFVuZCB3ZW5uIGRpY2ggZGFzIHN0b2VydCwga2FubnN0IGR1CmRpZSBNYWlsIGF1Y2ggdWViZXJnZWhlbiwgdHUgZGlyIGtlaW4gendhbmcgYW4uIEFiZXIgdW50ZXJsYXNzIGVzIGluIFp1a3VuZnQKbWl0IGRlaW5lbiBwc3lkbyBzY2hlaXNzIGJlbGVocnVuZ2VuLiBEZW5uIHNvbGNoZSBNZW5zY2hlbiB3aWUgRGljaCBCdWJiYQprb3R6ZW4gbWljaCBhbiwgdW5kIGljaCB2ZXJicmluZyBtZWluZSBrb3N0YmFyZSBaZWl0IG5pY2h0IGluIGVpbmVtIE11ZCB1bSBtaXIKc29sY2hlIGJlbGVocnVuZ2VuIHZvbiBMZXV0ZW4gd2llIGRpciBhbnp1aG9lcmVuLgoKY3UgQWxhaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKEFuYXRvbCwgMjYuIEF1ZyAxOTk4LCAwMTowNTozNCk6Cn4jISBybj1adWVyaWxldSBydD05MDQwODU2NTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKSWNoIGJpdHRlIGRhcnVtLCBlcyB6dSB1bnRlcmxhc3NlbiwgQnViYmEgaW4gZGllIFJlaWhlbiBkZXIgc29nZW5hbm50ZW4KImFycm9nYW50ZW4gQXJzY2hsb2VjaGVyIiBhdWZ6dW5laG1lbiB6dSB2ZXJzdWNoZW4uIERpZSBLcml0ZXJpZW4gZnVlciAKZGllc2VuIEtyZWlzIGF1c2dld2FlaGx0ZXIgUGVyc29lbmxpY2hrZWl0ZW4gZXJmdWVsbGVuIG51ciBXZW5pZ2UuCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogVGF1c2NoZSBIZXJjdWxlcyBTdGluZ3JheSAxMjggM0QgZ2VnZW4gYW5kZXJlIDNELUthcnRlIChCdWJiYSwgMjcuIEF1ZyAxOTk4LCAxMzozNToyMik6Cn4jISBybj1adWVyaWxldSBydD05MDQwODU2NTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKCkhpIFp1ZXJpbGF1LAoKZXMgc3RvZXJ0IG1pY2ggZ2FueiB1bmQgZ2FyIG5pY2h0IC0gZXMgYW11ZXNpZXJ0IG1pY2ggZWluZmFjaCBrb2VuaWdsaWNoIQoKUFM6IEljaCBhcmJlaXRlIGRyYW4sIEFuYXRvbCEgOy0pClZpZWxsZWljaHQgZXJsZWJlbiB3aXIgZGFubiBqYSBtYWwgdW5zZXJlbiBadWVyaWxhdSBpbiBIb2VjaHN0Zm9ybS4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKFJhZmZpLCAyNy4gQXVnIDE5OTgsIDE3OjM5OjIzKToKfiMhIHJuPVp1ZXJpbGV1IHJ0PTkwNDA4NTY1NiByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpPZWguLi4gZGFzIHdhZXIgZG9jaCB3YXMgLSBEYXMgZXdpZ2UgSG9jaGRldXRzY2ggZ2VodCBlaW5lbSBlaCBhdWYgZGVuIE5lcnYuCkF1c3NlcmRlbSBrYW5uIGRhcyBqYSBlaCBrZWluZXIgYWxzbyBnbGVpY2ggc28gc2Nod2VpYmVuIHdpZSBlcyBzaWNoIGdlaG9lcnQuCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTM6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoQXNtb2RpcywgMjguIEF1ZyAxOTk4LCAyMDoyOTozNCk6Cn4jISBybj1adWVyaWxldSBydD05MDQwODU2NTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKT2NoLCBzY2hyZWliIHJ1aGlnIGluIHJvbWFuaXNjaCwgZGFzIHZlcnN0ZWhlIGljaCBpbnp3aXNjaGVuIGF1Y2ggOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgprb256ZXJ0IGluIGFhY2hlbiAoU3BpcmlsbCwgMjkuIEF1ZyAxOTk4LCAxMjo0MTozNyk6CkhhbGxvIExldXRlISEKV2VyIHp1ZmFlbGxpZyBhbSBTb25udGFnLCAzMC44LiBpbiBBYWNoZW4gaXN0LCBoYXQgZGllIGVpbm1hbGlnZSBHZWxlZ2VuaGVpdCwKQm9nYWJ1bmRhLCBNZW5hY2UgdW5kIG1pY2ggc2luZ2VuIHp1IGhvZXJlbiEhClVuc2VyIENob3IgR2xpc3NhbmRvIHNpbmd0IGFtIHVtIDIwLjAwIFVociBpbiBkZXIgQWRhbGJlcnRraXJjaGUsIGRhcyBpc3QgYW0KS2Fpc2VycGxhdHogKHp3aWVsaWNodGlnZXMsIGFiZXIgYmVrYW5udGVzIEVja2NoZW4gdm9uIEFhY2hlbi4uLikuIEVpbnRyaXR0CmZyZWkhClZvbSBCYWhuaG9mIGNhLiAxMC0xNSBtaW4sIGVpbmFjaCBuYWNoIHJlY2h0cyB6dXIgV2lsaGVtc3RyLiwgZGFubiBpbW1lcgpiZXJnYWIgYmlzIHp1bSBLYWlzZXJwbGF0ei4gRGllIEtpcmNoZSBpc3QgbmljaHQgenUgdWViZXJzZWhlbi4KTmV1ZSBDaG9yLU1pdGdsaWVkZXIgc2luZCBhdWNoIGdlcm4gZ2VzZWhlbi4gVW5zZXIgUmVwZXJ0b2lyZSBpc3QgYnVudApnZW5pc2NodDoKV2VsdGxpY2hlcyB1bmQgR2Vpc3RsaWNoZXMsIFBvcCwgR29zcGVsLCBhbHRlIE11c2lrLSB3YXMgZGFzIFNhZW5nZXItSGVyegpiZWdlaHJ0ISEKCkJpcyBkYW5uIQoKU3BpcmlsbCwgc2Nob24gbWFsIFRvbmxlaXRlcm4gdWViZW5kLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoTHVnLCAzMC4gQXVnIDE5OTgsIDA0OjE1OjU1KToKfiMhIHJuPUFuYXRvbCBydD05MDQwODYzMzQgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKWnVlcmksCgpBbmF0b2wgaGF0IFJlY2h0LiBXZW5uIGhpZXIgZWluZXIgYXJyb2dhbnQgaXN0IGRhbm4gaWNoLiBCdWJiYSBpc3QgYmxvc3MgZWluCmFybWVyIElkaW90LCBhbHNvIGJpdHRlIG5peCBkdXJjaGVpbmFuZGVyIGJyaW5nZW4uCgpGaWRLRwpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE1OiBUYXVzY2hlIEhlcmN1bGVzIFN0aW5ncmF5IDEyOCAzRCBnZWdlbiBhbmRlcmUgM0QtS2FydGUgKEJ1YmJhLCAgMS4gU2VwIDE5OTgsIDEyOjE3OjQ0KToKfiMhIHJuPUx1ZyBydD05MDQ0NDMzNTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDE1ODE3NzMKCklzdCBMdWcgZXR3YSBlaW4gaGVpbWxpY2hlciBLbGVyaWtlcj8gRXMgd2Vpc3QgZWluaWdlcyBkYXJhdWYgaGluLi4uCgpSaWVzZW5ibGFzZW4ga2xlYmVmcmVpCkJ1YmJhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IFRhdXNjaGUgSGVyY3VsZXMgU3RpbmdyYXkgMTI4IDNEIGdlZ2VuIGFuZGVyZSAzRC1LYXJ0ZSAoTHVnLCAgMi4gU2VwIDE5OTgsIDAyOjU2OjEwKToKfiMhIHJuPUJ1YmJhIHJ0PTkwNDY0NTA2NCByZz1hbnplaWdlbgp+IyEgdGlkPTkwMTU4MTc3MwpIaWVyIGRpZSBBbnR3b3J0OgoKTmVpbiBTY2h3dWNodGVsLgoKRmlkS0cKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZWxlZm9udGVycm9yIGJlaSBCaWVuY2hlbiA7LSkgKE1vcmdvdGgsICAyLiBTZXAgMTk5OCwgMDk6MjU6MDApOgpTaWUgaGF0IG5hZW1saWNoIGhldXRlIGdlYnVydHN0YWcuIFdlciBzaWUgYW5ydWZlbiB3aWxsLCBzb2xsdGUgbWljaCBiaXMgMTUwMGgKa29udGFrdGVuIDstKQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcm5zdHJlaWsgaW4gS29lbG4gKFphcm5peWEsIDE1LiBTZXAgMTk5OCwgMTE6MzQ6MDApOgpBbSBEbywgZGVuIDE3LjkuIHdpcmQgZXMgaGllciB3b2hsIGtlaW5lIEtvZWxuZXIgZ2ViZW4gdW5kIGF1Y2gga2VpbmUgS29lbG5lcgp6dSBlcnJlaWNoZW4gc2Vpbi4uLiBEYXMgUmVjaGVuemVudHJ1bSB0cml0dCBkYW5uIG5hZW1saWNoIGluIFdhcm5zdHJlaWsuLi4gCgpuYWVoZXJlIEluZm9zIHVlYmVyIGh0dHA6Ly93d3cudW5pLWtvZWxuLmRlL1JSWksvCgpTY2hvbiBzY2hvZW4sIHdlbm4gZGllIGdyb2Vzc3RlIFVuaSBOUldzIGVpbmZhY2ggbWFsIHNvIGtvbXBsZXR0IHZvbSBOZXR6IGdlaHQKOikKClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXJuc3RyZWlrIGluIEtvZWxuIChXYXJnb24sIDE1LiBTZXAgMTk5OCwgMTE6NTk6MDMpOgp+IyEgcm49WmFybml5YSBydD05MDU4NTIwNDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDU4NTIwNDAKV29sbGVuIGRpZSBkYW1pdCBnZWdlbiBkaWUgTGVpc3R1bmdlbiBkZXMgRkMgcHJvdGVzdGllcmVuPyA6KQogIFdhcmdvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhcm5zdHJlaWsgaW4gS29lbG4gKEtleSwgMTUuIFNlcCAxOTk4LCAxMjo0MzoxNCk6Cn4jISBybj1aYXJuaXlhIHJ0PTkwNTg1MjA0MCByZz1hbnplaWdlbgp+IyEgdGlkPTkwNTg1MjA0MApKZXR6dCBzYWcgbmV0IG51ciBkaWUgU3R1ZGllcyBzdHJlaWtlbiB3aWVkZXIsIGRhbm4gYmVrb21tIGljaCBuYWVtbGljaCBuZW4KQW5mYWxsIQoKS2V5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcm5zdHJlaWsgaW4gS29lbG4gKFphcm5peWEsIDE1LiBTZXAgMTk5OCwgMTg6MTE6NDMpOgp+IyEgcm49S2V5IHJ0PTkwNTg1NjE5NCByZz1hbnplaWdlbgp+IyEgdGlkPTkwNTg1MjA0MAoKTmVpbm5laW4uLi4gbml4IFN0dWRpZXMuLiBkZXIgQ2hlZmZlIHBlcnNvZW5saWNoIGhhdCBkYXMgb3JnYW5pc2llcnQgOikgRXIgaGF0CmRhcmF1ZmhpbiBoZXV0ZSBlaW4gRGlzemlwbGluYXJ2ZXJmYWhyZW4gYW5nZWRyb2h0IGJla29tbWVuIHVuZCBzZWluZSBBbnR3b3J0CndhciBlY2h0IHphcm5peWlhbmlzY2g6ICJJaHIga29lbm50IG1pY2ggbWFsISIKClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV2FybnN0cmVpayBpbiBLb2VsbiAoRGFyaWEsIDE2LiBTZXAgMTk5OCwgMTc6MTk6MTIpOgp+IyEgcm49S2V5IHJ0PTkwNTg1NjE5NCByZz1hbnplaWdlbgp+IyEgdGlkPTkwNTg1MjA0MApIYWIgZ2VzdHJlaWt0IGltIERlemVtYmVyLgpJY2ggZmFuZHMgd2ljaHRpZy4KRGFyaWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcm5zdHJlaWsgaW4gS29lbG4gKEplc2tvLCAxNy4gU2VwIDE5OTgsIDAwOjMxOjU5KToKfiMhIHJuPURhcmlhIHJ0PTkwNTk1OTE1MiByZz1hbnplaWdlbgp+IyEgdGlkPTkwNTg1MjA0MApQZWFjZSEKCk1lIDIuCgpKZXNrbywgdmVyc3RlaHQgRGFyaWEgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcm5zdHJlaWsgaW4gS29lbG4gKEtleSwgMTguIFNlcCAxOTk4LCAxNjo1MzoxMCk6Cn4jISBybj1EYXJpYSBydD05MDU5NTkxNTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDU4NTIwNDAKSGFzc2UgZGllIFNjaGVpc3NlLgpGaW5kIGljaCB3aWNodGlnLgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdhcm5zdHJlaWsgaW4gS29lbG4gKEx1ZywgMTguIFNlcCAxOTk4LCAyMjo0OTozNCk6Cn4jISBybj1LZXkgcnQ9OTA2MTMwMzkwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTA1ODUyMDQwCgpPZWggS2V5LAoKd2FzIGZhc2Vsbj8KCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJvbW90aW9uc3N0ZWxsZW4uLi4gKEhhciwgMjMuIFNlcCAxOTk4LCAxMDo0MzozMSk6Ck1vcmdlbiEKRnVlciBqdW5nZSBhdWZzdHJlYmVuZGUgV2lzc2Vuc2NoYWZ0bGVyIGdpYnQgZXMgaW4gbWVpbmVyIFVtZ2VidW5nIG5vY2ggZWluCnBhYXIgUHJvbW90aW9uc3N0ZWxsZW4genUgYmVzZXR6dGVuLiBWb3J6dWdzd2Vpc2UgZnVlciBDaGVtaWtlciAoa2VpbmUKU3ludGhlc2VuL0Jpb2NoZW1pZSkgYnp3LiBWZXJmYWhyZW5zdGVjaG5pa2VyLiBXZW5uIGRhcyBoaWVyIGFsc28gZWluZXIgbGllc3QsCm9kZXIgamVtYW5kIGplbWFuZGVuIGtlbm50OiBNYWlsIGFuIG1pY2guCgpIYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcm5zdHJlaWsgaW4gS29lbG4gKFNvbmdva3UsIDI3LiBTZXAgMTk5OCwgMjA6MTQ6MjkpOgp+IyEgcm49RGFyaWEgcnQ9OTA1OTU5MTUyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTA1ODUyMDQwCkFiZXIgZ2VicmFjaHQgaGF0IGRlciBTdGVpayBuaXggOigKYWJlciBsdXN0aWcgd2FycyBzY2hvbiwgYWxzIHdpciBoaWVyIGluIE11ZW5jaGVuIGRlbiBXYWdlbiB2b24gZGVyIFBvbGVudGUgYWxzCnBvZGVzdCBuYWhtZW4gOikpCi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXYXJuc3RyZWlrIGluIEtvZWxuIChLZXksIDI4LiBTZXAgMTk5OCwgMTY6MTI6MzkpOgp+IyEgcm49U29uZ29rdSBydD05MDY5MjAwNjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDU4NTIwNDAKT2NoIGljaCBmYW5kcyBlaGVyIGx1c3RpZzoKLSBkYXMgZWluIHBhYXIgZGVyIHN0cmVpa2VuZGVuIGRhcyBTZW1zZXN0ZXIgd2llZGVyaG9sZW4gZHVyZnRlbiwgCi0gZGFzIGljaCBkaWUgRGVwcGVuIHVtIDIwOjAwIGF1c20gQ29tcGlyYXVtIHdlcmZlbiBkdXJmdGUsCi0gZGFzIHNpY2ggc2VpdCBkZW0gZWluaWdlcyBnZWFlbmRlcnQgaGF0IGZ1ZXIgdW5zZXJlIG1haWxlbmRlbiBTdHVkZW50ZW4gLi4uCjo5CgpLZXksIGZpbmRldCBTdHJlaWsgZ3V0IHdlbm4gZXIgbm9ldGlnIGlzdCB1bmQgcmljaHRpZyBkdXJjaGdlZnVlaHJ0IHdpcmQsIGFiZXIKa2VpbiBzb2xjaCBsYWVjaGVybGljaGVzIFNjaGF1c3BpZWwgdm9uIFNwcnVlY2hla2xvcGZlcm4uCgpQLlMuOiBJY2gga2FubiBoaWVyIG51ciB2b24gTWFyYnVyZyByZWRlbiBkYSBpY2ggc29uc3QgbmV0IHNvdmllbCBtaXRiZWtvbW1lbgpoYWJlIC4uLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnVsbHkgZ2VzdWNodCAoSGFyLCAyOS4gU2VwIDE5OTgsIDE0OjE1OjIyKToKR3V0ZW4gQWJlbmQgYWxsZXJzZWl0cywKaWNoIGJpbiB1YWYgZGVyIFN1Y2h6ZSBuYWNoIGVpbmVtIEJ1bGx5L1RyYW5zcG9ydGVyLCBLYXN0ZW53YWdlbiB1bSBlaW4gQmV0dApuZWJzdCBNYXRyYXR6ZSB2b24gRmZtIG5hY2ggQm8genUgdHJhbnNwb3J0aWVyZW4uIFdvIGlzdCBkYXMgYmVzb25kZXJzIGJpbGxpZz8KCmhhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJ1bGx5IGdlc3VjaHQgKEdyaW1tYm9ybiwgIDIuIE9rdCAxOTk4LCAxMDoxOToxNyk6Cn4jISBybj1IYXIgcnQ9OTA3MDcxMzIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTA3MDcxMzIyCkluIEJlcmxpbiBnaWJ0cyBkaWVzZW4gQXV0b3ZlcmxlaWhlciBtaXQgZGVyIFJvYmJlICh3ZWlzcyBuaWNodCB3aWUgZGVyIGdlbmF1CmhlaXNzdCkuIFNvd2VpdCBpY2ggZGFzIG1hbCB2ZXJmb2xndCBoYWJlIHNjaGllbiBkZXIgZGVyIGJpbGxpZ3N0ZSBpbiBnYW56IC5kZQp6dSBzZWluLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJ1bGx5IGdlc3VjaHQgKFNpbHZhLCAgMi4gT2t0IDE5OTgsIDE3OjUwOjAwKToKfiMhIHJuPUdyaW1tYm9ybiBydD05MDczMTYzNTcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MDcwNzEzMjIKZGVyIG1pdCBkZXIgcm9iYmUgaGVpc3N0IHJvYmJlbiAmIHdpZW50amVzLgpoYXQsIHVtIGFscyBkZXIgYmlsbGlnc3RlIHp1IHNjaGVpbmVuLCBub2NoIG5lIGFsdGUgKCEpIGt1dHNjaGUsIGRpZSBmdWVyCjUuLURNIC8gaCB2ZXJtaWV0ZXQgd2lyZC4gZGllIGlzdCBhYmVyIGltbWVyIHdlZywgd2VubiBkdSBuaWNodCBtaW5kLiA0IHdvY2hlbgp2b3JoZXIgYmVzdGVsbHN0LiBJTUhPIGdpYnRzIGd1ZW5zdGlnZXJlIGFuYmlldGVyLCBlaW5mYWNoIG1hbCBydW1ydWZlbi4KYnllCiAgIHNpbHZhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpET0tPLVR1cm5pZXIgaW4gQmllbGVmZWxkIChOaXhpaG91LCAgMy4gTm92IDE5OTgsIDEzOjI5OjU5KToKaGksIGZ1ZXIgYWxsZSBkaWUgZXMgaW50ZXJlc3NpZXJ0OiAKCkFtOiA4LjExLjk4CgpEQVMgRVJTVEUgQklFTEVGRUxERVIgRE9QUEVMS09QRi1TQ0hOVVBQRVJUVVJOSUVSICEhCgpCZWdpbm4gMTMuMzAgVWhyCk9ydDogVGFuenNjaHVsZSBXZWlzc2VuYmVyZwogICAgIEJyZWl0ZSBTdHIuIDQ3CiAgICAgMzM2MDIgQmllbGVmZWxkCgpEYXMgU3RhcnRnZWxkIHZvbiA4LC0gKGJlaSBWb3Jhbm1lbGR1bmcpIGJ6dy4gMTIsLSBUYWdlc2thc3NlIHdpcmQgdW50ZXIgCmRlbiBUdXJuaWVyc2llZ2VybiBhdXNnZXNjaHVldHRldC4KCkVzIHdpcmQgbmFjaCBkZW4gVHVybmllcnJlZ2VsbiBkZXMgVmVyYmFuZGVzIGdlc3BpZWx0LCBtaXQgZm9sZ2VuZGVuIApEbmRlcnVuZ2VuOiBFaW5lIFJ1bmRlIGJlc3RlaHQgYXVzIDIwIFNwaWVsZW4uCiAgICAgICAgICAgIEVpbmUgUnVuZGUgZGFyZiBtYXhpbWFsIDEyMCBtaW4uIGRhdWVybi4KClByZWlzZTogZGllIEFubWVsZGVnZWJ1ZWhyZW4gd2VyZGVuIGF1ZiBkaWUgUGxhZXR6ZSAxLTMgYXVzZ2VzY2h1ZXR0ZXQuCnp1c2FldHpsaWNoIHdlcmRlbiBHdXRzY2hlaW5lIGZ1ZXIgZWluZSBUb3J0ZSAoNTAsLSkgdW5kIGZ1ZXIgVGFuemt1cnNlIAooZWlubWFsIDIwMCwtIHVuZCBlaW5tYWwgMTAwLC0pIHZlcmxvc3QuCgoKQW5tZWxkdW5nZW4gZnVlciBiZWlkZSBWZXJhbnN0YWx0dW5nZW4gbGF1ZmVuIHVlYmVyIGRpZQogICAgICAgQW5TcGllbEJhcgogICAgICAgU2llY2hlbm1hcnNjaHN0ci40CiAgICAgICAzMzYxNSBCaWVsZWZlbGQKICAgICAgIFRlbC4vRmF4LjogMDUyMSA1IDIxIDI1IDQxCiAKCgpOaXhpaG91CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUeXJpb24gISEhISAoTmFpcm9sZiwgMTAuIE5vdiAxOTk4LCAyMjoxMDoxMCk6CgpIaWhvIHp1c2FtbWVuIQoKVHlyaW9uLCBkZXIgYWx0ZSBEcmFjaGUsIGhhdCBtaWNoIGxldHplbnMgbWFsIGFuZ2VydWZlbiB1bmQgbWljaCBnZWJldGVuIG1hbAphbGxlIGhpZXIgaW0gTXVkIGdhbnogZG9sbCB6dSBncnVlc3NlbiAhISEgKGRpZXMgaGFiZSBpY2ggaGllcm1pdCBnZXRhbikgLi4uCmVyIGhhdCBsZWlkZXIgenVyIHplaXQga2VpbmVuIEludGVybmV0enVnYW5nIHVuZCBlcyBzaWVodCBsZWlkZXIgYXVjaG5pY2h0IHNvCmF1cyBhbHNvYiBlciBzbyBiYWxkIGVpbmVuIG5ldWVuIGJla29tbWVuIGtvZW5udGUuLi4gKFByb3ZpZGVyIGlzIG5pY2ggd2VnZW4KR2VsZG1hbmdlbCkgLi4uIGRhaGVyIGhpZXIgYXVjaCBkZXIgQXVmcnVmIGFuIEJlcmxpbmVyIFNUdWRpcyBvIC5hZS46IHdlciBlaW5lCkludGVybmV0enVnYW5nc21vZWdsaWNoa2VpdCBoYXQgb2RlciBhZWhubGljaGVzIHVtIGhhbHQgaXJnZW5kd2llIGhpZXIgaW5zIE11ZAp6dSBrb21tZW4gZnVlciBUeXJpb24sIGRlciBtb2VnZSBzaWNoIGRvY2ggbWFsIGJpdHRlIHZlcnRyYXVlbnN2b2xsIGFuIG1pY2gKd2VuZGVuIC4uIGljaCB3ZXJkZSBlcyBpaG0gZGFubiB3ZWl0ZXJnZWJlbiA6LSkKCgpFciB2ZXJtaXNzdCBldWNoIGFsbGUgc2NocmVja2xpY2ggdW5kIHdpbGwgYmFsZCB3aWVkZXIgaGllciBzZWluIC4uIGVyIGthbm4gaW0KbW9tIG51ciBNUEEgbGVzZW4gdWViZXJzIFdXVyBhYmVyIGFsbGUgc2FjaGVuIHdpZSB0ZWxuZXQgZXRjIHNpbmQgdm9uIGRhIGF1cwp3byBlciBkYXMgbWFjaGVuIGthbm4gZ2VzcGVycnQgOi0pIGFsc28gd2lyZCBlciBkaWVzZW4gQXJ0aWtlbCB3b2hsIGF1Y2ggbWFsCmxlc2VuIC4uIGFiZXIgZGFzIHdhcnMgZGFubiBzY2hvbiAuLi46LSkpCgoKYWxzbyBhdWYgYXVmIHp1ciBBa3Rpb246IFJFVFRFVCBERU4gQUxURU4gRFJBQ0hFTiAhISEhIQoKTXVkZGVyIGZ1ZXIgVHlyaW9uIDotKQoKCgpHcnVzcyBOYWlyb2xmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVHlyaW9uICEhISEgKFRpbGx5LCAxMS4gTm92IDE5OTgsIDAxOjE4OjM0KToKfiMhIHJuPU5haXJvbGYgcnQ9OTEwNzM1ODEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTEwNzM1ODEwCk5hIGVuZGxpY2ggZWluIExlYmVuc3plaWNoZW4gdm9uIGRlbSBSZW50bmVyLCBpY2ggZmluZyBzY2hvbiBhbiBtaXIgU29yZ2VuIHp1Cm1hY2hlbiB1bmQgbmViZW5iZWkgdmVyc3RhdWJ0IGRlciBSb2xsc3R1aGwgZGVuIGljaCBleHRyYSBmdWVyIGlobgp6dXJ1ZWNrZ2VsZWd0IGhhYmUgaW0gUmVnYWwuIDopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIFRpbGx5IC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKEF6enVybywgMjIuIE5vdiAxOTk4LCAyMDo0NTozMik6CkJpc3QgRHUgZWluZSB3ZWlibGljaGUgU3BpZWxlcmluIG1pdCBkZW4gTWluZGVzdHN0YXRzIDE0LTE0LTE0LTE0IHVuZCBzaWVoc3QKRHUgZGFzIE1vcmdlbkdyYXVlbiBuaWNodCBhbHMgZGllIHJlYWxlIFdlbHQgYW4/CkJpc3QgRHUgV29scGllbGllYiB1bmQgc2VobnN0IERpY2ggbmFjaCBlaW5lbSBtYWVjaHRpZ2VuIE1hZ2llciBhbiBEZWluZXIKU2VpdGU/CkRhbm4gbWVsZGUgRGljaCBiZWkgZGVyIFBhcnRuZXJ2ZXJtaXR0bHVuZyBBenp1cm8gR21iSCAtIFBvcnRWYWluClBvc3RmYWNoOkF6enVyby4KV2lyIGhhYmVuIGVjaHRlIEVyem1hZ2llciBpbSBBbmdlYm90LCBkaWUgc2ljaCBuYWNoIGVpbiB3ZW5pZyBad2Vpc2Fta2VpdApzZWhuZW4uCgpNaXQgZnJldW5kbGljaGVuIEdydWVzc2VuCkF6enVybywgZGVyIFNla3JldGFlciBkZXMgU2VrcmV0YWVycyBkZXIgR29ldHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKEZsdXNzd2luZCwgMjMuIE5vdiAxOTk4LCAxMjozODowOSk6Cn4jISBybj1Benp1cm8gcnQ9OTExNzY3NTMyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTExNzY3NTMyCkphIGljaCBiaW4gd2VpYmxpY2gsIGNhIDEsNzUgZ3Jvc3MsIG5ldHQsIGd1dGF1c3NlaGVuZCwgV29scGllbGllYiwgdW5kIGhhYgpuYXR1ZXJsaWNoIDIwLTIwLTIwLTIwIHN0YXRzIHBsdXMgQm9uaS4KSWNoIG1hZyBXb2xwaWVzIHVuZCBhbmRlcmUgS251ZGRlbHRpZXJlIHVlYmVyIGFsbGVzIHVuZCBiZWh1ZXRlIHVuZCBiZXNjaHVldHplCnNpZS4KCkljaCBtb2VjaHRlIGJpdHRlIGVpbmVuIHNlaHIgc3RhcmtlbiBFcnptYWdpZXIgb2RlciBzb2dhciBHb3R0IGFuIG1laW5lcgpTZWl0ZXVtIG1laW4gcmVzdGxpY2hlcyB0cmlzdGVzIExlYmVuIGluIEdlYm9yZ2VuaGVpdCB6dSB2ZXJicmluZ2VuLgoKCkZsdXNzd2luZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChIb2JvLCAyMy4gTm92IDE5OTgsIDE1OjIwOjI5KToKfiMhIHJuPUZsdXNzd2luZCBydD05MTE4MjQ2ODkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTE3Njc1MzIKSG1tLCBtaXQgZGVuIEdvZXR0ZXJuIGR1ZXJmdGVzdCBEdSBkYSBzbyBlaW4gUHJvYmxlbSBoYWJlbi4uLgpJQ0ggamVkZW5mYWxscyBnZWIgbWVpbmVuIEJvaW5nIG5pY2h0IGFiIQoKICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChBenp1cm8sIDIzLiBOb3YgMTk5OCwgMTU6MjY6MTQpOgp+IyEgcm49SG9ibyBydD05MTE4MzQ0Mjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTE3Njc1MzIKaG1tISEhClNlaHIgZ2VlaHJ0ZSBGcmF1IEhvYm8sCgpWaWVsbGVpY2h0IGhhZXR0ZW4gU2llIGludGVyZXNzZSBJaHJlbiB2ZXJzdGF1YnRlbiwgZGllIGdhbnplIFplaXQgbnVyCmlkZWxuZGVuICJHb2V0dGVyLSJHYXR0ZW4gZ2VnZW4gZWluZW4gdW52ZXJicmF1Y2h0ZW4sIGd1dGF1c3NlaGVuZGVuLApkeW5hbWlzY2hlbiwganVuZ2VuIEVyem1hZ2llciBhdXMgdW5zZXJlciBLYXJ0ZWkgenUgdGF1c2NoZW4uCkluIGRpZXNlbSBGYWxsZSBrb2VubnRlIHVuc2VyZSBBZ2VudHVyIGF1Y2ggZGVtIEhlaXJhdHN3dW5zY2ggdm9uIEZyYWV1bGVpbgpGbHVzc3dpbmQgbmFjaGtvbW1lbi4KSWhuZW4gYmVpZGVuIHdhZXJlIGdlaG9sZmVuLgpIYWx0ZW4gU2llIG5pY2h0IGZlc3QgYW4gYWx0ZW4sIHZlcmtvbW1lbmVuIFRyYWRpdGlvbmVuIHNvbmRlcm4gc2FnZW4gU2llIEpBCnp1ciBadWt1bmZ0LgoKQXp6dXJvIC0gQmxpbmQgRGF0ZSAtIFBhcnRuZXJ2ZXJtaXR0bHVuZ3NhZ2VudHVyCgpQLlMuOiBXaXIgaGFiZW4gaW1tZXIgbm9jaCBrbmFja2lnZSBFcnptYWdpZXIgaW0gUHJvZ3JhbW0uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChBbmF0b2wsIDIzLiBOb3YgMTk5OCwgMTU6Mjc6MjMpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMTgzNDc3NCByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpXZW5uIGljaCBqZXR6dCBzYWdlbiB3dWVyZGUsIGRhc3MgaXJnZW5kd28gaW4gRGVpbmVtIEFydGlrZWwgZWluICJuIgp6dXZpZWwgaXN0LCB3YWVyIGRhcyBkYW5uIGJlbGVpZGlnZW5kPyA7bykKCkFuYXRvbCwgZHVja3Qgc2ljaCA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKEhvYm8sIDIzLiBOb3YgMTk5OCwgMTU6NTM6MjcpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMTgzNDc3NCByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpTZWhyIGdlZWhydGVyIEhlcnIgQXp6dXJvLAoKTWVpbiBNYW5uIGlzdCBiaXR0ZXNjaG9lbiBuaWNodCBhbmdlc3RhdWJ0ISBJY2ggZ2VoJyBleHRyYSBqZWRlIFdvY2hlIG1pdCBkZW0KRmV1ZGVsIChkZW0gU3RhdWJ3ZWRlbCkgdWViZXIgaWhuIGRydWViZXIgdW5kIHd1c2NoZWwgc2VpbmUgSGFhcmUgYXVzLgpOZWJlbmJlaSBpZGxldCBlciBiZWkgbWlyIGF1Y2ggbmljaHQuCgpBdXNzZXJkZW0gYmluIGljaCBuYXR1ZXJsaWNoIHZpZWwgenUgbWFjaHRnZWlsLiB1bSBtaWNoIG1pdCB3ZW5pZ2VyIHp1ZnJpZWRlbgp6dSBnZWJlbiBhbHMgaWNoIG51biBzY2hvbiBoYWJlLiBVbmQgZWluZSBFcnotVG9jaHRlciByZWljaHQgbWlyIGF1Y2gsIGRhCmJyYXVjaCcgaWNoIG5pY2h0IG5vY2ggZWluZW4gRXJ6LU1hbm4sIGRlciB3b21vZWdsaWNoIGF1ZiBkaWUgRmFlaGlna2VpdGVuCm1laW5lciBUb2NodGVyIG5laWRpc2NoIGlzdCB1bmQgc2llIHdvbW9lZ2xpY2ggYWxzIFN0aWVmdG9jaHRlciBiZWhhbmRlbHQuCgpOZWluLCBpY2ggYmxlaWJlIGJlaSBtZWluZW0gZ29ldHRsaWNoZW4gR2F0dGVuIQoKICAgIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKFNvbmdva3UsIDIzLiBOb3YgMTk5OCwgMTY6NTI6MzcpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMTgzNDc3NCByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpIYWJ0IGlociBhdWNoIGVpbmlnZSBrbmFja2lnZSBFcnptYWdpZXJpbm5lbj8/ClNheW9uYXJhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogQmxpbmQgRGF0ZSBtaXQgZWluZW0gRXJ6bWFnaWVyISAoQXp6dXJvLCAyMy4gTm92IDE5OTgsIDE3OjI1OjM4KToKfiMhIHJuPVNvbmdva3UgcnQ9OTExODM5OTU3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTExNzY3NTMyCk5vY2ggbmljaHQgaW0gUHJvZ3JhbW0uCkFiZXIgZ2VnZW4gZWluZSBHZWJociB2b24gMTAuMDAwIE11ZW56ZW4ga2FubiBpY2ggU2llIGdlcm5lIGluIHVuc2VyZQpXYXJ0ZWthcnRlaSBhdWZuZWhtZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChTb25nb2t1LCAyMy4gTm92IDE5OTgsIDE3OjI3OjM5KToKfiMhIHJuPUF6enVybyBydD05MTE4NDE5Mzggcmc9YW56ZWlnZW4KfiMhIHRpZD05MTE3Njc1MzIKSXN0IGphIHJlbGF0aXYgcHJlaXN3ZXJ0Lgp1bmQgd2llIGlzdCBkaWUgRXJmb2xnc2NoYW5jZT8KVW5kIHdpZSBob2NoIHdhZXJlIGRpZSBnZWJ1ZWhyIGZ1ZXIgZWluZSBub3JtYWxlIE1hZ2llcmVpbiBvZGVyIFNlaGVyaW4/ClNheW9uYXJhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogQmxpbmQgRGF0ZSBtaXQgZWluZW0gRXJ6bWFnaWVyISAoTm92YXN0b3JtLCAyMy4gTm92IDE5OTgsIDE3OjI3OjQwKToKfiMhIHJuPUF6enVybyBydD05MTE4NDE5Mzggcmc9YW56ZWlnZW4KfiMhIHRpZD05MTE3Njc1MzIKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAgICAgICBTY2hlY2sgdWViZXIgMjAuMDAwIE11ZW56ZW4uCgogICAgICAgIERpZXNlIFN1bW1lIGlzdCBhbHMgcmVpbmUgU3BlbmRlIHp1IGJldHJhY2h0ZW4sIHdlbGNoZSBkb2NoCiAgICAgICAgYml0dGUgZnVlciBkaWVzZSBuZXVlIE9wdGlvbiBhdWZ6dXdlbmRlbiBpc3QuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqCgogICAgTm92YSwgYW5vbnltCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChBbmF0b2wsIDIzLiBOb3YgMTk5OCwgMTc6Mjg6MTcpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMTg0MTkzOCByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpBbHNvIGVpbiBub3JtYWxlcyBBbGlhcyB0dXQgZXMgYXVjaCwgQXp6dXJvOiBhbGkgb3BmZXIgPSBrd2VyIHdlaWJsaWNoIHVuZAplbGYgdW5kIG5pY2h0IGdpbGRlIGtsZXJ1cyB1bmQgc2VoZXIgdW5kIG5pY2h0IHp3ZWl0aWUgdW5kIGxlZGlnCgpOYWphLCBmdWVyICJ1bmQgbGVkaWciIG11ZXNzdGUgUm9jaHVzIG1hbCByYW4gOykKCkFuYXRvbCA6bykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyb3RlbiByb3NlbiAoWm9ycm8sIDIzLiBOb3YgMTk5OCwgMTk6MDY6MzcpOgprbwpUYWNoIGF1Y2ggIQoKSWNoIGJpbiBtYWwgd2llZGVyIGF1ZiBkZXIgc3VjaGUgbmFjaCBLb256ZXJ0LUthcnRlbiAhCgpIYXQgamVtYW5kIDItNCBLYXJ0ZW4gZnVlciBlaW4gVG90ZW4gSG9zZW4gV2VpaG5hY2h0c2tvbnplcnQgKDIwLjEyLgpvYmVyaGF1c2VuIG9kZXIgMjYuMTIuIGR1ZXNzZWxkb3JmKSBhYnp1Z2ViZW4gPyAKV2VubiBqYSBkYW5uIGJpdHRlIGJlaSBtaXIgbWVsZGVuIDopKSkKClpvcnJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcm90ZW4gcm9zZW4gKFJhbnRhbnBsYW4sIDI0LiBOb3YgMTk5OCwgMTA6MzQ6MDcpOgp+IyEgcm49Wm9ycm8gcnQ9OTExODQ3OTk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTExODQ3OTk3CldpZSBBenp1cm8uLi5JY2ggaGFiIGRvY2ggc2Nob24gc2VpdCBKYWhyZW4gZWluZSBlcmZvbGdsb3NlClBhcnRuZXJ2ZXJtaXR0bHVuZy4uLgpQLlYuIGluIFAuVi4gbWl0IEcuVi4gb2RlciBzby4uLi4KCldlaGUgRHUgdmVybWl0dGVsc3QgamVtYW5kZW4sIGRhbm4gaXN0IERFaW5lIFF1b3RlIGJlc3NlciBhbHMgbWVpbmUgIS4uLgoKT2UqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSUEctR3J1cHBlIGltIEZyYW5rZnVydGVyIFJhdW0gKEx5cmEsIDI0LiBOb3YgMTk5OCwgMTI6MzY6MTEpOgpBYiBuYWVjaHN0ZW0gSmFociB3ZXJkZSBpY2ggaW4gZGVuIEZyYW5mdXJ0ZXIgUmF1bSB1ZWJlcnNpZWRlbG4gKG5hY2ggUm9kZ2F1KS4KSWNoIG1vZWNodGUgZGFubiBhdWNoIG1hbCBlaW5pZ2UgbmV0dGUgQWJlbmRlIGJlaSBlaW5lbSBzY2hvZW5lbiBSUEcKdmVyYnJpbmdlbiB1bmQgc3VjaGUgZGFoZXIgZWluZSBHcnVwcGUsIGRpZSBkb3J0IGlzdC4gR2VmYWxsZW4ga29lbm50ZSBtaXIgRFNBCm9kZXIgQUQmRC4gQWJlciBkYSBpY2ggYXVmIGRlbSBHZWJpZXQgbmV1IGJpbiwga2FubiBlcyBuYXR1ZXJsaWNoIGF1Y2ggZWluCmFuZGVyZXMgU3lzdGVtIHNlaW4uCldlbm4gSWhyIGRvcnQgZWluZSBzb2xjaGUgR3J1cHBlIGtlbm50LCBzY2hpY2t0IGVpbmZhY2ggZWluZSBrbGVpbmUgTWFpbCBoaWVyCmlucyBNVUQgKGlzdCBtb20gbWVpbmUgZWluemlnZSBFLU1haWwtQWRyZXNzZSkuCgpMeXJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHJvdGVuIHJvc2VuIChSb2NodXMsIDI0LiBOb3YgMTk5OCwgMTU6NDQ6NTkpOgp+IyEgcm49UmFudGFucGxhbiBydD05MTE5MDM2NDcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTE4NDc5OTcKRHUgaGFzdCBub2NoIExhcmlzc2EgUmFuc2VpZXIgdmVyZ2Vzc2VuLgpEaWUgd29obCBlcmZvbGdsb3Nlc3RlIFBhcnRuZXJ2ZXJtaXR0bGVyaW4gYWxsZXIgWmVpdGVuLi4uLiBsZWJ0IG5vY2ggOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcm90ZW4gcm9zZW4gKEF6enVybywgMjQuIE5vdiAxOTk4LCAxODo1Nzo0MSk6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTkxMTkwMzY0NyByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTg0Nzk5NwpNdXNzdCBEaWNoIGhhbHQgd2llIGljaCBhdWYgZGllIFZlcm1pdHRsdW5nIHZvbiBQcm9taXMgdmVybGVnZW4gOy0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lsc29uIChOb25uZSwgMjUuIE5vdiAxOTk4LCAxMDoxNToxMik6ClRhY2gsLAoKSWNoIHN1Y2hlIGRpZSBTY2hyb2VkaW5nZXJzIEthdHplIFRyaWxvZ2llIHZvbiBSb2JlcnQgQW50b24gV0lsc29uLiBMZWlkZXIgaXN0CmRpZSBBdWZsYWdlIHZlcmdyaWZmZW4gdW5kIGtlaW5lIG5ldWUgaW4gU2ljaHQuIEhhdCBkaWUgSmVtYW5kIHVuZCBsZWlodCBzaWUKbWlyLCBvZGVyIHdlaXNzIGVpbmVyIG5lbiBndXRlbiBTZWNvbmQtSGFuZC1CdWNobGFkZW4sIHdvIG1hbiBkaWUga3JpZWdlbgprb2VubnRlPyBBYmVyIGJpdHRlIGF1Y2ggRGV1dHNjaCwgZGVyIG1hbiBpc3QgbWlyIHp1IFVtZ2FuZ3NzcHJhY2hsaWNoLCB1bSBkZW4KZ2VtdWV0bGljaCBpbSBCZXR0IGF1ZiBlbmdsaXNjaCB6dSBsZXNlbi4KCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKEFzbW9kaXMsIDI1LiBOb3YgMTk5OCwgMTg6NDg6NDIpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMTc2NzUzMiByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpTb2xsIGljaCBBc21vZGluYSBoaW5zY2hpY2tlbj8gRGllIGJyYXVjaHQgbm9jaCBuZW4gTWFubiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKEFzbW9kaXMsIDI1LiBOb3YgMTk5OCwgMTg6NTE6MzEpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMTg0MTkzOCByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpJc3QgU2lsdmFuYSBuaWNodCBmcmVpZ2V3b3JkZW4gPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogQmxpbmQgRGF0ZSBtaXQgZWluZW0gRXJ6bWFnaWVyISAoWmFybml5YSwgMjYuIE5vdiAxOTk4LCAwOToyNTozOSk6Cn4jISBybj1Bc21vZGlzIHJ0PTkxMjAxOTg5MSByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpuZWluCisrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChLZXksIDI2LiBOb3YgMTk5OCwgMTM6MDA6MTApOgp+IyEgcm49WmFybml5YSBydD05MTIwNzIzMzkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTE3Njc1MzIKRG9jaCAuLi4KTWVpbmUgRmFrZS1NYW1taSBpc3QgZnJlaS4gVW5kIGhhdCBkYXMgYXVjaCB6dSBibGVpYmVuISBEZXIgUGFwcGkgbXVzcyBlcnN0Cm5vY2ggZ2Vib3JlbiB3ZXJkZW4gbWl0IGRlbSBpY2ggdW5kIG1laW5lIEJydWVkZXIgdW5kIFNjaHdlc3Rlcm4gZWludmVyc3RhbmRlbgpzaW5kIDspCgpLZXkgZ3JpbnN0IG1hbCBhbGxlIHNlaW5lIFZlcndhbmR0ZW4gYW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlc3RhdXJpZXJ1bmcgdm9uIFlhbnRybyAoUnVtYXRhLCAyNy4gTm92IDE5OTgsIDEyOjEzOjQyKToKSGFsbG8gTGV1dGUsIGhhbGxvIFlhbnRybyEKIApVbSBkZW4gRGlza3Vzc2lvbmVuIHVlYmVyIGVpbmUgUmVzdGF1cmllcnVuZyBlaW4gRW5kZSB6dSBzZXR6ZW4sIGhhYmUKaWNoIHVudGVyIGRlbiBFcnptYWdpZXJuIGVpbmUgQWJzdGltbXVuZyBnZXN0YXJ0ZXQsIGJlaSBkZXIgc2ljaCBqZWRlcgpFTSBmdWVyLCBnZWdlbiBvZGVyIG5ldXRyYWwgZ2VnZW51ZWJlciBlaW5lciBSZXN0YXVyaWVydW5nIGVpbm9yZG5lbgprb25udGUuIEFiZ2FiZXNjaGx1c3MgZnVlciBkaWUgU3RpbW1lbiB3YXIgZGVyIDI3LjExIDEyOjAwIHVuZCBkYXMKRXJnZWJuaXMgaXN0IGVpbmUgdWViZXJ3YWVsdGlnZW5kZSBNZWhyaGVpdCBnZWdlbiBZYW50cm8uCiAKRGEgZWluaWdlIEVNcyBuaWNodCB3b2xsZW4sIGRhc3MgWWFudHJvIHdlaXNzLCB3aWUgc2llIGFiZ2VzdGltbXQgaGFiZW4sCmdlYmUgaWNoIGtlaW5lIEF1c3phZWhsdW5nc2VyZ2Vibmlzc2UgYmVrYW5udCwgd2VyIGFuIG1laW5lbiBXb3J0ZW4gendlaWZlbHQsCmthbm4gc2ljaCBkYXMgRXJnZWJuaXMgamVkb2NoIHZvbiBhbmRlcmVuIEVNcyBiZXN0YWV0aWdlbiBsYXNzZW4uCiAKUnVtYXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChaYXJuaXlhLCAyNy4gTm92IDE5OTgsIDEyOjE4OjU2KToKfiMhIHJuPVJ1bWF0YSBydD05MTIxNjg4MjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTIxNjg4MjIKaG1tIHdhcyBpc3QgZWluZSB1ZWJlcndhZWx0aWdlbmRlIE1laHJoZWl0PyBBbHNvIHdpZSBpc3QgZGFzIEVyZ2VibmlzPwoKWmFybml5YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZXN0YXVyaWVydW5nIHZvbiBZYW50cm8gKFJ1bWF0YSwgMjcuIE5vdiAxOTk4LCAxMjo1MjoyNSk6Cn4jISBybj1aYXJuaXlhIHJ0PTkxMjE2OTEzNiByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgpFaW5lIHVlYmVyd2FlbHRpZ2VuZGUgTWVocmhlaXQgYmVkZXV0ZXQ6IE1laHIgYWxzIHp3ZWkgZHJpdHRlbCBzaW5kCmV4cHJlc3NpcyB2ZXJiaXMgZ2VnZW4gRGljaC4KClJ1bWF0YQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFJlc3RhdXJpZXJ1bmcgdm9uIFlhbnRybyAoUHJhLCAyNy4gTm92IDE5OTgsIDEyOjU4OjUzKToKfiMhIHJuPVJ1bWF0YSBydD05MTIxNzExNDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTIxNjg4MjIKdW5kIHdpZSBob2NoIHdhciBkaWUgV2FobGJldGVpbGlndW5nPwoKUHJhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChLZXksIDI3LiBOb3YgMTk5OCwgMTY6NDE6NDkpOgp+IyEgcm49UnVtYXRhIHJ0PTkxMjE3MTE0NSByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgpXYXMgaGVpc3N0IGRlbm4gZXhwcmVzc2lzIHZlcmJpcz8gLikKCktleQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlc3RhdXJpZXJ1bmcgdm9uIFlhbnRybyAoQWNyaW1vbiwgMjcuIE5vdiAxOTk4LCAxODoyOTo0OSk6Cn4jISBybj1SdW1hdGEgcnQ9OTEyMTY4ODIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTEyMTY4ODIyCkR1IHdlaXN6dCBkb2NoIHdvaGwgc2VsYmVyLCBkYXN6IERlbW9rcmF0aWUga2VpbmVybGVpIGZhY2hsaWNoZSBLb21wZXRlbnoKYmVzaXR6ZW4ga2Fubi4KU2llIHNwaWVnZWx0IGhvZWNoc3RlbnMgZGllIChnZXRyaW1tdGUpIE1laW51bmcgZGVyIExldXRlIHdpZGVyLCBhYmVyIGRhc3oKZXR3YXMgU2lubnZvbGxlcyBkYWJlaSBoZXJhdXNrb21tdCwga2FubiBtYW4gbmljaHQgZXJ3YXJ0ZW4uCkljaCBzcHJlY2hlIGhpZXIgbmljaHQgZnVlciBZYW50cm8sIHNvbmRlcm4gZ2VnZW4gZGllc2UgQXJ0IGRlcgpFbnRzY2hlaWR1bmdzZmluZHVuZy4KU293YXMgc29sbCBqZW1hbmQgZW50c2NoZWlkZW4sIGRlciBzb3dvaGwgZGllIEtvbXBldGVueiBkYXp1IGhhdCBhbHMgYXVjaApuZXV0cmFsIHVuZCBkaXN0YW56aWVydCBlbnRzY2hlaWRlbiBrYW5uLgpXZXIgZGFzIGlzdD8gLSBLZWluZSBBaG51bmcsIGFiZXIgQWJzdGltbWFrdGlvbmVuIChnbGVpY2ggd2VsY2hlbgpGYWVsc2NodW5nc2dyYWRlcykgaGFiZW4gZGEgbmljaHRzIHp1IHN1Y2hlbi4KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKEF6enVybywgMjcuIE5vdiAxOTk4LCAxODo1NjoxNSk6Cn4jISBybj1Benp1cm8gcnQ9OTEyMTkyODc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTExNzY3NTMyCkRpZSBQYXJ0bmVyYWdlbnR1ciBBenp1cm8gR21iSCBnaWJ0IGJla2FubnQ6CldpciB2ZXJtZWxkZW4gZWluZSBmcm9oZSBOYWNocmljaHQhCkF1ZmdydW5kIHVuc2VyZXIgQmVtdWVodW5nZW4gaXN0IGVzIGdlbHVuZ2VuLCBlaW5lIEVoZSB6dSBzdGlmdGVuLgpEYXMgd3VuZGVyc2Nob2VuZSBNYWdpZXJsZWhyaW5nd3VzZWwgS2Fubml4IHVuZCBkZXIKS2lyY2hlbmFuZ2VzdGVsbHRlIFF1YXNpbW9kbyBhdXMgZGVtIGZlcm5lbiBGcmFua3JlaWNoIGdhYmVuIHNpY2ggaGV1dGUgaWhyCkphLVdvcnQuCkRpZSBBZ2VudHVyIGdyYXR1bGllcnQgZGVtIGp1bmdlbiBQYWFyLgpYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKV29sbGVuIGF1Y2ggU2llIGdsdWVja2xpY2ggd2VyZGVuPwpXaXIgaGFiZW4gaW1tZXJub2NoIGtudWZmaWdlIEVyem1hZ2llciBpbSBQcm9ncmFtbS4KQmVzY2hyZWliZW4gU2llIGlocmUgQmV3ZXJidW5nIHp1bSBCbGluZCBEYXRlIGFuOgpBenp1cm8gLSBQYXJ0bmVydmVybWl0dGx1bmdzIEdtYkguClhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKUC5TLjogWndlaXRpZXMga2VpbmUgQ2hhbmNlClhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBCbGluZCBEYXRlIG1pdCBlaW5lbSBFcnptYWdpZXIhIChBenp1cm8sIDI3LiBOb3YgMTk5OCwgMTk6MDA6NTUpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMjE5Mjg3NiByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpBY2hqYSwgd2FzIGljaCB2ZXJnZXNzZW4gaGFiZToKRGllIEF6enVybyBwYXJ0bmVydmVybWl0dGx1bmdzYWdlbnR1ciBpc3QgaGllcm1pdCBkaWUgZXJzdGUgdW5kIGVpbnppZ2UgaW4KTW9yZ2VuR3JhdWVuLCBkaWUgZWluZSBFaGUgZ2VzdGlmdGV0IGhhdC4KCkVhdCBteSBkdXN0LCBSYW50YW5wbGFuISEhIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogQmxpbmQgRGF0ZSBtaXQgZWluZW0gRXJ6bWFnaWVyISAoWWVuZGksIDI3LiBOb3YgMTk5OCwgMjA6MTM6NTcpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMjE5Mjk3NSByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpEYSBmcmFnZSBpY2ggbWljaCBkb2NoLCB3byBpaHIgZGllIFF1YXNpbW9kby1Lb3BpZSBoZXJnZWtyaWVndCBoYWJ0OgoKUXVhc2ltb2RvIGlzdCBuaWNodCBhbndlc2VuZC4KWnVsZXR6dCBlaW5nZWxvZ2d0IHZvbjogU2Nod2VkZW4KWnVsZXR6dCBhdXNnZWxvZ2d0OiBNb24sIDI1LiBNYWkgMTk5OCwgMDE6MDg6MjAgKDE4NmQgMTk6MDI6MzUpClZvbGxlciBOYW1lOiBTcGllbGVyaGlsZmUgUXVhc2ltb2RvIHdhciBJbXBlcmZla3Rpb25pc3QKUmFzc2U6IFBpcmF0LCAgR2lsZGU6IFphdWJlcmVyLCAgR2VzY2hsZWNodDogbWFlbm5saWNoCk1hZ2llcmxldmVsOiAyNSAoVm9sbG1hZ2llcikKRGF0dW0gZGVzIGVyc3RlbiBMb2dpbjogdm9yIGRlbSAxMC4gTm92IDE5OTUKUXVhc2ltb2RvIGlzdCBUZXN0c3BpZWxlciAoR3JpbW1ib3JuKS4KUmVnaW9uc21pdGFyYmVpdGVyIHZvbjogV2FsZC4KCgpIaWVyIHN0ZWh0czogUXVhc2kgd2FyIHNlaXQgTWFpIG5pY2h0IG1laHIgZHJpbiB1bmQgaXN0IGtlaW4KX0tpcmNoZW5hZ2VzdGVsbHRlcl8sIHNvbmRlcm4gWmF1YmVyZXIhIFdlciBhbHNvIGhhdCBkYSBnZWhlaXJhdGV0PwpFcyBzY2hlaW50LCBhbHMgaGFiZSBSYW50YW5wbGFuIG5vY2gga2VpbmUgcmljaHRpZ2UgS29ua3VycmVuei4KCllUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChSaWt1cywgMjcuIE5vdiAxOTk4LCAyMDo1ODoyOCk6Cn4jISBybj1BY3JpbW9uIHJ0PTkxMjE5MTM4OSByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgpEdXJjaCBkaWUgQmx1bWUgZ2VzcHJvY2hlbiBzcHJpY2hzdCBEdSB1bnMgZGllIG5vZXRpZ2UgS29tcGV0ZW56IGFiLApkb2NoIHdlciBzb2xsIHNpZSBoYWJlbiwgd2VubiBuaWNodCB3aXI/IFp1bSBlaW5lbiBrZW5uZW4gd2lyIHNvCmd1dCB3aWUgYWxsZSBadXNhbW1lbmhhZW5nZSwgZGllIHp1IGRlbSBUaGVtYSBmdWVocnRlbiB1bmQgc2luZCBhdWNoCnNvbnN0IGtlaW5lIGtsZWluZW4gS2luZGVyIG1laHIsIGFyYmVpdGVuIFJMIGluIG1laHIgb2RlciB3ZW5pZ2VyCmxlaXRlbmRlbiBQb3NpdGlvbmVuLCBiZXRyZXVlbiBEaXBsb21hcmJlaXRlbiB1bmQgSGl3aXMsIGhhYmVuIGVpZ2VuZQpGaXJtZW4gZXRjIHBwLgpHZXRyaW1tdGUgTWVpbnVuZyBvZGVyIG5ldXRyYWw/IEluIGRpZXNlbSBGYWxsIHd1cmRlIGRpZSBNZWludW5nIGR1cmNoCllhbnRyb3MgVmVyaGFsdGVuIGJlZWluZmx1c3N0LCBzZWluZSBBcnRpa2VsLCBzZWluZSBtYWlscywgc2VpbmUKImF1c3dpZWdsZXJpc2NoZW4iIEFrdGl2aXRhZXRlbiB6d2lzY2hlbiB1bnMuIERpZSBBYnN0aW1tdW5nIHdhcgplaW4gWnVnZXN0YWVuZG5pcyBSdW1hdGFzLCB3ZWxjaGUgdW5zZXJlIE1laW51bmcgd2lkZXJzcGllZ2VsdC4gV2llc28Ka29tbXN0IER1IGF1ZiBkaWUgSWRlZSwgZGFzcyBBYnN0aW1tdW5nZW4gaGllciBuaWNodHMgenUgc3VjaGVuIGhhZXR0ZW4/CgpSaWt1cyBmcmFndCBzaWNoIG5hY2ggZGVyIG5hZWNoc3RlbiBBYnN0aW1tdW5nLi4uCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZXN0YXVyaWVydW5nIHZvbiBZYW50cm8gKEJpZXJjaGVuLCAyOC4gTm92IDE5OTgsIDAwOjQ1OjMzKToKfiMhIHJuPVJ1bWF0YSBydD05MTIxNjg4MjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTIxNjg4MjIKaGlobywKaWNoIGthbm4gbWljaCBnbHVlY2tsaWNoIHNjaGFldHplbiwgbmllbWFscyBwcm9ibGVtZSBtaXQgeWFudHJvIGdlaGFidAp6dSBoYWJlbiwgZWhlciBkYXMgZ2VnZW50ZWlsIGRhdm9uIHdhciBkYW1hbHMgZGVyIGZhbGwuCndhcyBtaXIgbnVuIGxldXRlIGVyemFlaGxlbiwgc2VpZW4gZXMgZXJ6bWFnaWVyLCBnb2V0dGVyIG9kZXIgYW5kZXJlLAprYW5uIGljaCBnbGF1YmVuLCBvZGVyIGVzIGFiZXIgYXVjaCBzZWluIGxhc3Nlbi4gd2VubiBtaXIgamVtYW5kCmVyemFlaGx0LCBlcyBnYWIgZ3J1ZW5kZSB1bmQgaGludGVyZ3J1ZW5kZSwgZGFubiBtb2VjaHRlIGljaCBkaWUKb2VmZmVudGxpY2ggZXJsYWV1dGVydCBzZWhlbi4gc29sbHRlbiBkaWVzZSBiZWdydWVuZHVuZ2VuIG51cgpkYXJhdWYgYmVydWhlbiwgZGFzcyBlaW4gbWFnaWVyLCBleC1tYWdpZXIgb2RlciBzcGllbGVyLCBvZGVyIHdlcgphdWNoIGltbWVyLCBudXIgZWluZSBncm9zc2Uga2xhcHBlIGhhdHRlLCBuZXJ2aWcgaW4gZGVyIG1wYSB3YXIgb2RlcgpmbGFtZS1tYWlscyBnZXNjaHJpZWJlbiBoYXQsIGRhbm4gZXJ3YXJ0ZSBpY2gsIGRhc3MgaGllciBpbSBtZwpiYWxkIGVpbmUgd2VsbGUgdm9uIGxvZXNjaHVuZ2VuIGVpbnNldHp0LgpkaWVzZXIgYXJ0aWtlbCBpc3QgdWVicmlnZW5zIE5JQ0hUIG5hY2ggZWluZW0gZ2VzcHJhZWNoIG1pdAp6YXJuaXlhIGVudHN0YW5kZW4sIHNvbmRlcm4gZGllcyBpc3QgTUVJTkUgbWVpbnVuZyBkYXp1LgoKIC0gQmllcmNoZW4gKHd1ZXJkZSBzb2ZvcnQgc3BvbnNvciB3ZXJkZW4sIHdlbm4gemFybml5YSBzZWhlciB3YWVyZSkgLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IEJsaW5kIERhdGUgbWl0IGVpbmVtIEVyem1hZ2llciEgKFJhbnRhbnBsYW4sIDI4LiBOb3YgMTk5OCwgMTE6MjU6MzIpOgp+IyEgcm49QXp6dXJvIHJ0PTkxMjE5MzI1NSByZz1hbnplaWdlbgp+IyEgdGlkPTkxMTc2NzUzMgpWZXJkYW1tdCBBenp1cnJvLCB3byBiZWtvbW1zdCBEdSBkaWUgTUFlZGVscyBoZXIsIGJpc2hlciBoYXR0ZSBpY2ggbnVyIAptYWVubmxpY2hlIEFuZnJhZ2VuLCBvZGVyIGVzIGxpZWd0IGRhcmFuLCBkYXNzIGljaCBkaWUgTUFlZGVscyBsaWViZXIgZnVlcgptaWNoIGJlaGFsdGUgOy0pKSkKCgpPZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZXN0YXVyaWVydW5nIHZvbiBZYW50cm8gKFphcm5peWEsIDI4LiBOb3YgMTk5OCwgMTU6MzM6NTkpOgp+IyEgcm49UnVtYXRhIHJ0PTkxMjE2ODgyMiByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgpIbW0uLi4KCmxhbmdlIGlzdCBlcyBoZXIsIGRhc3MgaWNoIG1hbCBzbyBsYW5nZSBtaXQgZWluZW0gUmVwbHkgZ2V3YXJ0ZXQgaGFiZSB3aWUKZGllc21hbCwgYWJlciBpY2ggZGVua2UsIGRhc3MgaWNoIGpldHp0IHVlYmVyIGRpZSBuYWVjaHN0ZW4gRnJhZ2VuIGdydWVuZGxpY2gKbmFjaGdlZGFjaHQgaGFiZS4uLgoKIkRhIGVpbmlnZSBFTXMgbmljaHQgd29sbGVuLCBkYXNzIFlhbnRybyB3ZWlzcy4uLiIgZXRjZXRjLiAKCldhcyBzb2xsIGljaCBkYXZvbiBoYWx0ZW4/IEhhYmVuIGRpZSBFTXMgQW5nc3Qgdm9yIG1pcj8gSGFiIGljaCBzY2hvbiBtYWwKamVtYW5kZW4gaW4gUkwgZ2Vkcm9odCBvZGVyIHNvPyBJY2ggZmluZHMga29taXNjaCwgZGFzcyB3b2hsIGplZGVyIGRhcwpFcmdlYm5pcyBlcmZhaHJlbiBkYXJmLCBhYmVyIGF1c2dlcmVjaG5ldCBJQ0ggYWxzIEJldHJvZmZlbmVyIG5pY2h0LiBNaWNoCnd1bmRlcnQsIGRhc3MgZXMgZWluZSBBYnN0aW1tdW5nIHVudGVyIGRlbiBob2hlbiwgd2Vpc2VuIHVuZCwgd2llIFJpa3VzCmdlc2NocmllYmVuIGhhdCwgZXJ3YWNoc2VuZW4gdW5kIGtvbXBldGVudGVuIEVNcyBnZWdlYmVuIGhhdCwgYWJlciBlaW5pZ2UKZGllc2VyIEVNcyBuaWNodCBpbiBkZXIgTGFnZSBzaW5kIChvZGVyIGdld2lsbHQgc2luZCksIHp1IGlocmVyIFN0aW1tZSB6dQpzdGVoZW4uIFNlbHRlbiwgd2lya2xpY2ggc2VsdGVuLCBkaWVzZXMgVmVyaGFsdGVuIGRhIG9iZW4uCgpaYXJuaXlhL1lhbnRyby4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChLcmV0ZWssIDI4LiBOb3YgMTk5OCwgMTk6MTQ6MjMpOgp+IyEgcm49UnVtYXRhIHJ0PTkxMjE2ODgyMiByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgpIZXksIHlvIQoKQWxzbywgaWNoIHdhciBqZXR6dCBzY2hvbiBsYW5nZSBuaWNodCBtZWhyIGRhLCB1bmQgaGFiZSBkZXN3ZWdlbiB3b2hsIGF1Y2gKbmljaHQgc28gZ2FueiBtaXRiZWtvbW1lbiwgd2FzIGdlbmF1IGpldHp0IGhpZXIgcGFzc2llcnQgaXN0LgpBYmVyIGVpbiBiaXNzY2hlbiBzZW5mZW4gbW9lY2h0ZSBpY2gsIHF1YXNpIGFscyAiQXVzc2Vuc3RlaGVuZGVyIiwgZGFubgpkb2NoIG5vY2guClp1ZXJzdCBtYWwgenUgWWFudHJvOiBXZW5uIHdpciBoaWVyIHVlYmVyIGRlbiBnbGVpY2hlbiBZYW50cm8gcmVkZW4sCmRhbm4gaGFiZSBpY2ggaWhuIG5pY2h0IGFscyBQb2VibGVyIG9kZXIgUXVlcnVsYW50IGluIEVyaW5uZXJ1bmcsIHNvbmRlcm4KaW0gR2VnZW50ZWlsIGFscyBlaW5lbiBkZXIgd2VuaWdlbiAoISkgZXR3YXMgaG9laGVyZW4gTWFnaWVyIGhpZXIsIGRpZQpuaWNodCBkZW4gRWluZHJ1Y2sgZXJ3ZWNrZW4sIEJlYW10ZSBhdWYgTGViZW5zemVpdCBtaXQgZWluZXIgZGllc2VtIFN0YXR1cwplbnRzcHJlY2hlbmRlbiBUb2xlcmFueiB1bmQgQXVmZ2VzY2hsb3NzZW5oZWl0IHp1IHNlaW4uIE1hbCBpbSBFcm5zdCwKaWhyIGRhIG9iZW4sIGdpYnQgRXVjaCBkaWUgbmljaHQgZ2VyYWRlIGdlcmluZ2UgQWJ3YW5kZXJ1bmcgdm9uIExldXRlbiwKZGllIGRhcyBNRyB0ZWlsd2Vpc2Ugdm9uIGdhbnogZnJ1ZWhlciBoZXIgbWl0IGdlcHJhZWd0ICh1bmQgYmVlaW5mbHVzc3QhKQpoYWJlbiAtIFJNcywgRU1zLCBob2hlIFNlaGVyIHVzdy4uLiAtIG5pY2h0IGVpbgp3ZW5pZyB6dSBkZW5rZW4/ClB1bmt0IHp3ZWk6IEljaCBrYW5uIG1pY2ggbm9jaCBhbiBsYW5nZSBEaXNrdXNzaW9uZW4gaGllciBpbiBkZXIgTVBBIAplcmlubmVybiwgaW4gZGVuZW4gYXVzZnVlaHJsaWNoc3QgZGFydWViZXIgZGViYXR0aWVydCB3dXJkZSwgd2FydW0gZGFzIE1HCmViZW4gX2tlaW5lXyBEZW1va3JhdGllIGlzdCwgdW5kIHdhcnVtIGVzIGdlbmF1IGF1cyBkaWVzZW0gR3J1bmQgZWJlbgpfa2VpbmVfIEFic3RpbW11bmdlbi9Wb2xrc2VudHNjaGVpZGUvYmxhYmx1YmIgaGllciBnaWJ0LiBIYXQgc2ljaCBpbiBkZXIKUmljaHR1bmcgd2FzIHZlcmFlbmRlcnQsIHdhZWhyZW5kIGljaCBhbiBtZWluZW0gRXhhbWVuIGJhc3RlbHRlPwpBY2ggamEsIHVuZCBub2NoIGVpbiBrbGVpbmVyICJTZWl0ZW5oaWViIiBhbmQgZGllIEF1c3NhZ2UsIGRpZSBMZXV0ZSwgZGllCmhpZXIgZGFzIFNhZ2VuIGhhYmVuLCB3YWVyZW4gYXV0b21hdGlzY2ggdG90YWwgcXVhbGlmaXppZXJ0LCB3ZWlsIHNpZQpTZW1pbmFyZSBoYWx0ZW4sIERpcGxvbWFyYmVpdGVuIGJldHJldWVuIHVzdy46CkljaCBoYWIgYXVjaCAnbmVuIExlaHJhdWZ0cmFnLCBiZXRyZXVlIGFsc28gYXVjaCBBYnNjaGx1c3NhcmJlaXRlbiwgbGVpdGUKU2VtaW5hcmUgdW5kIHNvLCBhYmVyIGljaCBnbGF1YmUgbmljaHQsIGRhc3MgZGllIGJsb3NzZSBUYXRzYWNoZSwgZGFzcyBpY2gKamV0enQgbWVpbiBTdHVkaXVtIGFiZ2VzY2hsb3NzZW4gaGFiZSB1bmQgZGVzd2VnZW4gZWluZW4gSm9iIGFuIGRlciBVbmkgaGFiZSwKbWVpbmUgRW50c2NoZWlkdW5ncy1Lb21wZXRlbnogamV0enQgc28gZ3J1bmRsZWdlbmQgdmVyYWVuZGVydCBoYXQuLi4KClNvLCBkYXMgd2FyJ3MsIGRlbmtlIGljaC4KCktyZXRlSwogICAgICAgICAgCiAgICAgICAgICBrcmV0ZWtAYW50aXNvY2lhbC5jb20KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlc3RhdXJpZXJ1bmcgdm9uIFlhbnRybyAoS2V5LCAyOC4gTm92IDE5OTgsIDIwOjM1OjE0KToKfiMhIHJuPUJpZXJjaGVuIHJ0PTkxMjIxMzkzMyByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgpOYSBwcmltYSAuLi4gaW4gYWxsZXIgb2VmZmVudGxpY2hrZWl0IHNvbGxlbiBzaWNoIGRpZSBNYWdzIGpldHp0CnJlY2h0ZmVydGlnZW4/ClNvcnJ5IEJpZXJjaGVuLCBhYmVyIHZpZWxsZWljaHQgc29sbHRlc3QgRFUgd2VubiBlcyBEaWNoIHNvIGludGVyZXNzaWVydCBlaW5lbgpFcnppZSBmcmFnZW4sIHZpZWxsZWljaHQgYmVrb21tc3RlIGRhbm4gQW50d29ydCAuLi4KQWJlciBzb3dhcyBpbiBkZXIgT2VmZmVudGxpY2hrZWl0IGJyZWl0dHJldGVuIGlzdCBhYnNvbHV0ZXIgU2Nod2FjaHNpbm4uCgpVbmQgd2VubiBEdSBQcm9ibGVtZSBkYW1pdCBoYXN0IGRhcyBMZXV0ZSBhdXMgR3J1ZW5kZW4gZGllIERpY2ggdmllbGxlaWNodApuaWNodHMgYW5nZWhlbiBuaWNodCBtZWhyIEVyem1hZ2llciB3ZXJkZW4ga29lbm5lbiBnZWggaW5zIFJlZ2VuYm9nZW4gLi4uCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChLZXksIDI4LiBOb3YgMTk5OCwgMjA6MzY6NDYpOgp+IyEgcm49WmFybml5YSBydD05MTIyNjcyMzkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTIxNjg4MjIKT2NoIFlhbnRybyAuLi4gbWl0IGRlLCBBcnRpa2VsIHplaWdzdGUgZG9jaCBudXIgd2llZGVyIGRldXRsaWNoIHdhcnVtIERpciBkaWUKTGV1dGUgc293YXMgbmljaHQgc2FnZW4gLi4uIAoKS2V5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBSZXN0YXVyaWVydW5nIHZvbiBZYW50cm8gKExpbGxlYnJvciwgMjguIE5vdiAxOTk4LCAyMzo1MDozMyk6Cn4jISBybj1LZXkgcnQ9OTEyMjg1MzE0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTEyMTY4ODIyCkFlaG0gS2V5LCBzb3dlaXQgaWNoIHdlaXNzLCB3YXIgZWluZXIgZGVyIEdydWVuZGUgZnVlciBZYW50cm9zIEFiZ2FuZyBhdXMgZGVtCk1HIGRpZSBlbGxlbmxhbmdlLCB1bnNjaG9lbmUgdW5kIHZvZWxsaWcgdW5hbmdlYnJhY2h0ZSBEaXNrdXNzaW9uIHVtIGVpbmVuCmdlc2NobWFja2xvc2VuIFp0LiBVbmQgZGEgcGFzc3QgYXVjaCB3aWVkZXIgZGFzIFNwcmljaHdvcnQgJ1dpZSBpY2ggaW4gZGVuCldhbGQgcnVmZSwgc28gc2NoYWxsdCBlcyBoZXJhdXMnLiBVbmQgbmF0dWVybGljaCB3ZWlzcyBpY2ggYXVjaCwgZGFzcyBlcwptdWVzc2lnIGlzdCwgamV0enQgenUgZnJhZ2VuLCB3ZXIgaGF0IGRlbm4gYW5nZWZhbmdlbi4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbGxlYnJvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChaYXJuaXlhLCAyOC4gTm92IDE5OTgsIDIzOjUzOjM3KToKfiMhIHJuPUxpbGxlYnJvciBydD05MTIyOTcwMzMgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTIxNjg4MjIKSG1tIGZhbHNjaC4uLiBkZXIgWnQgaGF0dGUgbml4IGRhbWl0IHp1IHR1bi4uLiBkYXMgd2FyIHNjaG9uIGRhbmFjaC4KClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFJlc3RhdXJpZXJ1bmcgdm9uIFlhbnRybyAoS2V5LCAyOS4gTm92IDE5OTgsIDEyOjUyOjQzKToKfiMhIHJuPUxpbGxlYnJvciBydD05MTIyOTcwMzMgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTIxNjg4MjIKKmdyaW5zKiBJY2ggaGFiIGRhIGFuZ2VmYW5nZW4gOikKTmFqYSBvZGVyIGhhYiB6dW1pbmRlc3QgYW0gbGF1dGVzdGVuIGdlc2NocmllbiA7KQoKS2V5IGlzdCBnZXN0YWVuZGlnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBSZXN0YXVyaWVydW5nIHZvbiBZYW50cm8gKFBhdHJ5biwgMjkuIE5vdiAxOTk4LCAyMTowNTo1Nik6Cn4jISBybj1MaWxsZWJyb3IgcnQ9OTEyMjk3MDMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTEyMTY4ODIyCmFsc28gZGllIGRhbWFsaWdlIHp0LWRpc2t1c2lvbiBoYXR0ZSBnYW56IGJlc3RpbW10IG5pY2h0cyBtaXQgeWFudHJvJ3MKYWJnYW5nIHp1IHR1bi4uLmRhcyB3YWVyZSBzb2dhciBmdWVyIHNlaW5lIHZlcmhhZWx0bmlzc2UgenUgYWxiZXJuIGdld2VzZW4uCmF1Y2ggd2VubiBpY2ggZGVuIGF1c2xvZXNlbmRlbiBhcnRpa2VsIHp1IGRpZXNlciBpbiBkaWUgYWxsZ2VtZWluaGVpdApnZXRyYWdlbmVuIGRpc2t1c2lvbiBuaWNodCBndXRoZWlzc2VuIGthbm4sIG1vZWNodGUgaWNoIG51biBkb2NoIGRpZQpnZWxlZ2VuaGVpdCBudXR6ZW4sIGF1Y2ggb2ZmaXppZWxsIGVpbmUgbWVpbnVuZyBkYXp1IGhhYmVuIHp1IGtvZW5uZW46CiBpY2ggZmluZGUgZXMgZXJzdG1hbCBndXQsIGRhc3MgZXMgbnVuIGVpbmUgYWJzdGltbXVuZyB6dSBkZW0gdGhlbWEgZ2FiLgp2b3JoZXIgaGF0dGUgbWFuIHdpcmtsaWNoIGRlbiBlaW5kcnVjaywgZGFzcyBzaWNoIG51ciBydW1hdGEga3JhZnQgc2VpbmVyCndhc3NlcnN1cHBlIGF1ZiBzdHVyIHN0ZWxsdGUgdW5kIHZlcm51ZW5mdGlnZSBhbmZyYWdlbiB2b24geWFudHJvCmRhbmsgcGVyc29lbmxpY2hlciBhYm5laWd1bmdlbiBwcmluemlwaWVsbCBhYndpZWdlbHRlLiBkYXJhbiBoYXQgc2ljaCB6d2FyCndvaGwgbmljaHQgdmllbCBnZWFlbmRlcnQsIGFiZXIgenVtaW5kZXN0IGlzdCBkaWUgZW50c2NoZWlkdW5nIG51biBpbiBlaW5lcgpncnVwcGUgZGVtb2tyYXRpc2NoIGdlZmFlbGx0IHdvcmRlbiwgZGllIGljaCBpbiBkaWVzZW0gZmFsbCBmdWVyIHp1c3RhZW5kaWcKaGFsdGUuCiAgamVkZXIga2FubiBqYSBudW4gZWluZSBtZWludW5nIGRhenUgaGFiZW4sIG9iIGRhcyBlcmdlYm5pcyBkZXIgYWJzdGltbXVuZwphdXMgc2VpbmVyIHNpY2h0IGZhaXIgb2RlciB1bmZhaXIgd2FyLCBhYmVyIGRpZSBkaXNrdXNpb24gaW4gZWluZSByaWNodHVuZwp6dSBkcnVlY2tlbiwgb2IgbnVuIGRlbW9rcmF0aWUgb2RlciBzdHJlbmdlIGhpZXJhcmNoaWUsIGtvbXBldGVueiBvZGVyIGViZW4KbmljaHQgdS5zLncuIGlzdCBkYWJlaSB3ZW5pZyBoaWxmcmVpY2guCiAgaWNoIGthbm4gZGFzIGVyZ2VibmlzIHp1bWluZGVzdCBuaWNodCBzbyBnYW56IHZlcnN0ZWhlbjogc2ljaGVybGljaCB3YXIKeWFudHJvcyBwb2x0ZXJoYWZ0ZXMgdmVyaGFsdGVuIHdlbmlnIGhpbGZyZWljaCBpbiBzZWluZXIgZGFtYWxpZyBmcmlzY2gKZXJ3b3JiZW5lbiBwb3NpdGlvbiB1bmQgZGllIGZvbGdlbmRlIGRlZ3JhZGllcnVuZyBkdXJjaGF1cyB2ZXJzdGFlbmRsaWNoLAphYmVyIGFuc29uc3RlbiBoYXQgZXIgc2ljaCBuaWUgZXR3YXMgenVzY2h1bGRlIGtvbW1lbiBsYXNzZW4uIHNlaW5lCmxvZXNjaHVuZyB3dXJkZSB3b2hsIGVpbmRldXRpZyBkdXJjaCBkZW4gYWxsZ2VtZWluIGJla2FubnRlbiBiZWZlaGwKJ3NlbGJzdGxvZXNjaHVuZycgaGVyYmVpZ2VmdWVocnQgdW5kIHp3YXIgbmljaHQgdW50ZXIgendhbmcuCnNvbGFuZ2UgZWluZSByZXN0YXVyaWVydW5nIG5hY2ggZWluZXIgc2VsYnN0bG9lc2NodW5nIGJlaSBtYWdpZXJuIHF1YXNpIGFscwpzZWxic3R2ZXJzdGFlbmRsaWNoIGdpbHQsIGthbm4gaWNoIGRpZSBhdXNuYWhtZXJlZ2VsdW5nIGZ1ZXIgeWFudHJvIGhpZXJiZWkKbmljaHQgYWt6ZXB0aWVyZW46IGdlcmFkZSBhdWNoIHdlaWwgZXIgc2ljaGVybGljaCBtZWhyIGZ1ZXIgZGFzIG11ZCBnZXRhbgpoYXQsIGFscyBtYW5jaCBlaW5lciwgZGVyIHVlYmVyIHNlaW5lbiBrb3BmIG1pdGVudHNjaGllZGVuIGhhdC4gYW5kZXJlbgpsZXV0ZW4gd3VyZGUgc2Nob24gd2VpdGF1cyBtZWhyIHZlcnppZWhlbiwgYWxzIG51ciBlaW4gZ3Jvc3NlcyBtdW5kd2Vyay4uLgoKLS0tLS0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZXN0YXVyaWVydW5nIHZvbiBZYW50cm8gKFllbmRpLCAgMS4gRGV6IDE5OTgsIDE1OjQwOjQ4KToKfiMhIHJuPVphcm5peWEgcnQ9OTEyMjY3MjM5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTEyMTY4ODIyCldlbm4gaWNoIGRhcyByaWNodGlnIHZlcnN0YW5kZW4gaGFiZSwgZHVyZnRlc3QgRHUgZGFzIEVyZ2VibmlzIGdlbmF1IHdpZSBhbGxlCmFuZGVyZW4gU3BpZWxlciBlcmZhaHJlbiAtLSBudXIgZmFlbGx0IHdvaGwgZGVyIEF1c2ZhbGwgZGVyIGVpbnplbG5lbiBTdGltbWVuCnVudGVyIGRhcyBXYWhsZ2VoZWltbmlzLi4uCgpZCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUmVzdGF1cmllcnVuZyB2b24gWWFudHJvIChaYXJuaXlhLCAgMS4gRGV6IDE5OTgsIDE2OjQwOjI4KToKfiMhIHJuPVllbmRpIHJ0PTkxMjUyNjg0OCByZz1hbnplaWdlbgp+IyEgdGlkPTkxMjE2ODgyMgppY2ggZGVua2UsIGRhc3MgZGllIERpc2t1c3Npb24gYWJnZXNjaGxvc3NlbiBpc3QuLi4uLiBmdWVyIG1pY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpjbHVzdGVyIChBbmFraW4sICAzLiBEZXogMTk5OCwgMTQ6MzY6MDcpOgpIaSwKCmZhaGVydCBpcmdlbmRqZW1hbmQgenVtIExpbnV4Y2x1c3RlciBuZXh0ZXMgV0UgbmFjaCBQYWRlcmJvcm4/Ck9rLCBpY2ggd2VyZGUgYmVpIGRlciBQcmFlc2VudGF0aW9ucyBkZXIgJ2NhY3R1cycgc29mdHdhcmUgZGFiZWkgc2Vpbi4KQWJlciBpY2gga2VubiBoaWVyIGphIGVoIGtlaW5lbiBtZWhyLgoKQW5ha2luIHNhZ3Q6IDQgSmFocmUgc2luZCBnZW51Zy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpbGZlIGdlc3VjaHQhIChMeXJhLCAxOC4gRGV6IDE5OTgsIDA5OjUzOjI3KToKSGlobyBMZXV0ZSwKCkljaCBoYWJlIGRhIG1hbCBlaW5lIGtsZWluZXMgUHJvYmxlbWNoZW4uIEljaCBicmF1Y2hlIGZ1ZXIgZWluZSBuZXR0ZQpXZWlobmFjaHRza2FydGUgbWFsICJGcm9oZSBXZWlobmFjaHRlbiEiIGluIG1vZWdsaWNoc3QgdmllbGVuIFNwcmFjaGVuLiBCaXNoZXIKaGFiZSBpY2ggZXMgbnVyIGluIGVuZ2xpc2NoLCBmcmFuem9lc2lzY2ggdW5kIGluIHBvcnR1Z2lzaXNjaC4gRmFsbHMgSWhyIGRlbgpTYXR6IGluIGVpbmVyIGFuZGVyZW4gU3ByYWNoZSBrZW5udDogQml0dGUgZWluZSBrbGVpbmUgTWFpbCAoX3Zvcl8gV2VpaG5hY2h0ZW4KOykpIGFuIG1pY2guCkljaCBkYW5rZSBzY2hvbiBqZXR6dCBtYWwgYWxsZW4sIGRpZSBtaXIgaGVsZmVuLgoKTHlyYSBpc3Qga2VpbiBGcmVtZHNwcmFjaGVuLVNwZXppCgpQUzogQWVobSwgYXVmIGRldXRzY2ggaGFiZSBpY2ggZXMgYXVjaCBzY2hvbiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhpbGZlIGdlc3VjaHQhIChRaXRlc3MsIDE4LiBEZXogMTk5OCwgMTQ6NDE6MTcpOgp+IyEgcm49THlyYSBydD05MTM5NzQ4MDcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTM5NzQ4MDcKa2FubnN0IGR1IGhhYmVuLi4uClFJKioKUC5TLjogZGllc2VzIGlzdCBlaW5lIGRyb2h1bmc7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhpbGZlIGdlc3VjaHQhIChaaWxsdXMsIDE4LiBEZXogMTk5OCwgMTg6NDk6NTEpOgp+IyEgcm49THlyYSBydD05MTM5NzQ4MDcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTM5NzQ4MDcKU2NoYXUgbWFsIGh0dHA6Ly93d3cucWVzbi5tZXEuZ291di5xYy5jYS9zc24vc2FudGEvYXJicmUuaHRtIGFuLgoKemlsbHVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV0IgYm9hcmlzY2ggKEFjcmltb24sIDE4LiBEZXogMTk5OCwgMjI6MjA6MDIpOgpXZXIgd2FyIGRhcyBub2NobWFsLCBkZXIgZWluZSBXb3JrYmVuY2ggbWl0IGJheXJpc2NoZW4gTWVsZHVuZ2VuIHdvbGx0ZT8KQml0dGUgbm9jaG1hbCBtZWxkZW4uCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGlsZmUgZ2VzdWNodCEgKEx5cmEsIDIyLiBEZXogMTk5OCwgMDk6NDY6NDIpOgp+IyEgcm49WmlsbHVzIHJ0PTkxNDAwNjk5MSByZz1hbnplaWdlbgp+IyEgdGlkPTkxMzk3NDgwNwpOb2NobWFsIGVpbiBncm9zc2VzIERhbmtlZmVpbiBhbiBhbGxlLCBkaWUgbWlyIGdlaG9sZmVuIGhhYmVuIQpEZW5uZW4gKHVuZCBhdWNoIGFsbGVuIGFuZGVyZW4gbmF0dWVybGljaCk6IEVpbmUgZnJvaGUsIGZyaWVkbGljaGUgV2VpaG5hY2h0CnVuZCBlaW4gZ2x1ZWNrbGljaGVzIHVuZCBlcmZvbGdyZWljaGVzIDE5OTkhCgpMeXJhIGhhdCBoaWVyIGRldXRzY2ggZ2V3YWVobHQsIGRhbWl0IGVzIGF1Y2ggYWxsZSB2ZXJzdGVoZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBhcnRuZXJ2ZXJtaXR0bHVuZ3MgR21iSCBBenp1cm8gKEF6enVybywgMjIuIERleiAxOTk4LCAxMTozODoxNSk6CkVzIHR1dCB1bnMgYXVmIGRlciBlaW5lbiBTZWl0ZSBMZWlkLCBhdWYgZGVyIGFuZGVyZW4gU2VpdGUgc2luZCB3aXIKdWViZXJnbHVlY2tsaWNoLCBJaG5lbiBtaXR0ZWlsZW4genUgbXVlc3NlbiwgZGFzIGRlciB3b2hsaGFiZW5kZSBFcnptYWdpZXIKbmljaHQgbWVociBhdWYgdW5zZXJlciBIZWlyYXRzbGlzdGUgc3RlaHQuCgpBYmVyIGRlbm5vY2ggaGFiZW4gd2lyIG5vY2gga25hY2tpZ2UgU3BpZWxlciB1bmQgTWFnaWVyIGltIEFuZ2Vib3QgKHdlaWJsaWNoIC8Kd2llIG1hZW5ubGljaCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyb2hlIFdlaWhuYWNodGVuIChRdWVuZ2lzdHUsIDIzLiBEZXogMTk5OCwgMTU6Mzk6MTkpOgogICAgICAgICAgICAgRnJvaGUgV2VpaG5hY2h0ZW4gdW5kIGVpbiBzY2hvZW5lcyBuZXVlcyBKYWhyICEKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fL1xfXwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwvXHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiggKSYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCApIiIiIiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiYmJiggKSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmJiggKSIiIiImCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiIiImJiYmJiggKSYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmJiIiIiIiIiImJiggKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKSYmJiYmJiYmJiYiIiIiIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiYmJiggKSIiIiIiJiYmKCApJgogICAgICAgICAgICAgICAgICAgICAgICAgICAoICkmJiIiIiIiIiYmKCApJiYmJiYmJiYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiIiIiIiKCApJiYmJiYmKCApJiYmJiggKSYKICAgICAgICAgICAgICAgICAgICAgICAgICAoICkmJiYiIiIiIiIiIiImJiYmJiYmKCApJiYKICAgICAgICAgICAgICAgICAgICAgICAgJiYmJiYoICkmJiYmJiYmJiIiIiIiIiImJiYmJiggKQogICAgICAgICAgICAgICAgICAgL1xfX18vXCAmKCApJiYmJiYmJiYoICkmJiYmJiYmIiIiJiYmJiYmCiAgICAgICAgICAgICAgICAgICB8IG8gbyB8ICkmJiYmJiggKSYmJiYiIiIiIiJfX19cfC9fX18mJiYmJiYKICAgICAgICAgICAgICAgICAgX19cX15fL19fICBfX19cfC9fX18gJiYmJiYgfCAgIHx8fCAgIHwmIiImJiYKICAgICAgICAgICAgICAgICAoX18vICAgXF9fKXwgICB8fHwgICB8ICAgX19cfC9fX3x8fCAgX3xfX19cfC9fX19fXwogICAgICAgICAgICAgICAgICBffCAgLiAgfF8gfF9fX3x8fF9fX3wgIHxfX3x8fF9ffHx8X3wgICAgIHx8fCAgICAgfAogICAgICAgICAgICAgICAgIChfX1xfX18vX18pICAgICAgICAgICAgICAgICAgICAgICAgIHxfX19fX3x8fF9fX19ffAoKICAgd3VlbnNjaHQgRXVjaCBhbGxlbiBRdWVuZ2lzdHUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbGxzIGplbWFuZCBub2NoIGVpbmVuIEJhdW0gYnJhdWNodC4uLiAoUXVlbmdpc3R1LCAyMy4gRGV6IDE5OTgsIDE1OjQ0OjIyKToKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4hLCAgICAgICAgICAgIC4hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH4gNiB+ICAgICAgICAgIH4gNiB+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gICAgJyBpIGAgIC4tXi0uICAgJyBpIGAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8ufCxfICAgfCB8ICAvIC4tLiBcICAgfCB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3xgICAgLnxffC58ICgtYCApIHwgLnxffC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIFwgX19fKV8oX3xfX2AtJ19ffF9fKV8oX19fX19fCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvYCxvXClfX19fX19fX19fX19fX19fX19fX19fX29fKAogICAgICAgICAgICAgICAgICAgICAgICAgICAvXyogfl9cW19fX11fX19bX19fXV9fX1tfX19bX1tcYC0uCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gbyAuJ1xbX11fX19bX19fXV9fX1tfX19dX1tfX18pYC0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgL18sficgKl9cX10gICAgICAgICAgICAgICAgIFtfWyggICgKICAgICAgICAgICAgICAgICAgICAgICAgICAvYC4gKiAgKlxfXSAgICAgICAgICAgICAgICAgW19fX1wgX1wKICAgICAgICAgICAgICAgICAgICAgICAgIC8gICBgfi4gbyBcXSAgICAgIDsoICggOyAgICAgW19bX11gLScKICAgICAgICAgICAgICAgICAgICAgICAgL18gKiAgICBgfixfXCAgICAoKCApKCA7KDsgICAgW19fX10KICAgICAgICAgICAgICAgICAgICAgICAgLyAgIG8gICogIH4nXCAgIC9cIC9cIC9cIC9cICAgW19bX10KICAgICAgICAgICAgICAgICAgICAgICAvICogICAgLn5+JyAgb1wgIHx8X3x8X3x8X3x8ICAgW19fX10KICAgICAgICAgICAgICAgICAgICAgIC9fLC5+fidgICAgICogIF9cX3x8X3x8X3x8X3x8X19fW19bX11fCiAgICAgICAgICAgICAgICAgICAgICAvYH4uLiAgbyAgICAgICAgXDo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlwKICAgICAgICAgICAgICAgICAgICAgLyAqICAgYCd+Li4gICAqICAgXDo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlwKICAgICAgICAgICAgICAgICAgICAvXyAgICAgbyAgICBgYH5+LiwsX1w9PT09PT09PT1cXy89PT09PT09PT0nCiAgICAgICAgICAgICAgICAgICAgLyAgKiAgICAgICogICAgIC4ufidcICAgICAgICAgX3xfIC4tXy0tLgogICAgICAgICAgICAgICAgICAgLyogICAgbyAgIF8uLn5+YCcqICAgb1wgICAgICAgICAgICggKF8pICApCiAgICAgICAgICAgICAgICAgICBgLS5fXy5+J2AnICAgKiAgIF9fXy4tJyAgICAgICAgICAgIGAtLS0tJwogICAgICAgICAgICAgICAgICAgICAgICAgIjotLS0tLS0tOiIKICAgICAgICAgICAgICAgICAgICAgIGhqdyAgXF9fX19fLwoKCkJlc2lubmxpY2hlIEZlaWVydGFnZSB3dWVuc2NodAogICBRdWVuZyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGYWxscyBqZW1hbmQgbm9jaCBlaW5lbiBCYXVtIGJyYXVjaHQuLi4gKFBob2JvcywgMjMuIERleiAxOTk4LCAxNTo0NTo1MSk6Cn4jISBybj1RdWVuZ2lzdHUgcnQ9OTE0NDI3ODYyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE0NDI3ODYyCm1lIHRvbzoKCgogICAgICAgICAgICAgICAgICAgICAgICogICAgICAgIC4gICAgICAgICAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gfCAuICAgICAgICAgICAgICAgICAgICAgICAgICoKICAgICAgICAqICAgICAgLiAgICAgICAgICAgICAgIFx8LyAgICAgICAgICAgICAgICAgICAuCiAgICAgICAgICAgICAgICAgICAgICAgLiAgICAgLS0+KjwtLSAgICAgICAgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL3xcCiAgICAgICAgICAgICAgLiAgICAgICAgICAgICAgICcgfCAnICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIC4KICAgICAgICAgICogICAgICAgICAgICAgICAuICAgICB8ICAgICAgICAgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcKICAgICAgICAgICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgIF8gICAgICAgICAgICAgIC46LgogICAgIC4gICAgICAgICAgICAgKCB8IC4tLiAgICAgX19fICAgIC4nX2AuICAgICBXV1cgICAgXHcvICAgIFxWLwogICAgICAgICAgICAgICAgICAgICB8LyhfKVwgIC4nLi0uYC4gIGAoXyknICAgICAoXykgICAgKF8pICAgIChfKQogICAgICAgICAgICAgICAgICAgICB8Ly8gXFwgIGAvKF8pXCcgIC8vIFxcICAgIF8vIHwgICBfLyB8ICAgXy8gfAogICAgICAgICBfICAgICAgIF8gICBcL3wgfC8gIC8vKV8oXFwgIFx8IHwvICAlJV9fL3wgJCRfXy98ICYmX18vfAogICAgICBfLShfKS0gIF8tKF8pLSB8IHwgfCAgLyhvX19fKSlcICB8IHwgICAgICB8IHwgICAgfCB8ICAgIHwgfAogICAgYChfX18pICBgKF9fXykgICB8IHwgfCAgYCAvICAgXCcgICB8IHwgICAgICB8IHwgICAgfCB8ICAgIHwgfAogICAgIC8vIFxcICAgLy8gXFwgICB8IHxffCAgIC9fX19fX1wgICB8X3wgICAgICB8X3wgICAgfF98ICAgIHxffAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZWxlZm9uZ2VidWVocmVuIChNZXNpcmlpLCAgNi4gSmFuIDE5OTksIDAzOjU4OjE3KToKSGFsbG8gSWhycywKCm1pY2ggd3VlcmRlIG1hbCBpbnRlcmVzc2llcmVuLCB3aWV2aWVsIGRpZSBUZWxla29tIHBybyBNb25hdCBhbiBkZW4KTUctTXVkZGVybiB2ZXJkaWVudC4gRmFsbHMgZXMgRXVjaCBhdWNoIGludGVyZXNzaWVydCwgZGFubiBtYWlsdCBkb2NoCmVpbmZhY2ggbWFsIEV1cmUgVGVsZWZvbmtvc3RlbiBhbiBUZWxlZm9uLiBBbSBiZXN0ZW4gbWl0IGRlbSBCZXRyYWcgCmltIFN1YmplY3QsIGRhbm4gbXVzcyBpY2ggZGllIE1haWxzIG5pY2h0IG9lZmZuZW4sIHNvbmRlcm4ga2FubiBzaWUgCmdsZWljaCB3aWVkZXIgbG9lc2NoZW4uIEFsbGUgQW5nYWJlbiB3ZXJkZW4gc3RyZW5nIHZlcnRyYXVsaWNoIGJlaGFuZGVsdC4KCk1lc2lyaWkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCAoTW9yZ290aCwgMTIuIEphbiAxOTk5LCAwMDozNToxNik6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTE2MDk2ODYwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MDk2ODYwClBhaCwgSUhSIHVuZCBoZWlyYXRlbi4gRXJzdG1hbCBzaW5kIHdpciBkcmFuLiBEYSBpaHIgYWJlciBkdW1tZXJ3ZWlzZSBmYXVsZXMKU3R1ZGVudGVucGFjayBzZWlkLCBoYWJ0IGlociBuYXR1ZXJsaWNoIHVtIGRpZXNlIFVocnplaXQgbml4IHZvciB1bmQga29lbm50LAprdXJ6IG5hY2ggZGVtIEZydWVoc3R1ZWNrIGhlaXJhdGVuLiAqKmdydW1tZWwqKgpBdXNzZXJkZW0gaXN0IGRlciBPcnQgamEgd29obCBhYnNvbHV0IHVucGFzc2VuZC4gV2VyIGhlaXJhdGV0IHNjaG9uIGFtIEFyKioqCmRlciBXZWx0Pz8gQWJlciBudW4gZ2VudWcgSG9jaHplaXRzZ3J1ZXNzZSBhbiBFdWNoLCBudW4gd2lyZHMgd2lya2xpY2gKU3Bhbm5lbmQuCgpOT0NIIEVJTkUgSE9DSFpFSVQgISEhISEhISEhCgpIaWJiZWxpZyAmIE1vcmdvdGggd2VyZGVuIGRlbiAodW4paGVpbGlnZW4gQnVuZCBkZXIgRWhlIGVpbmdlaGVuLCBtaXQgYWxsZW4KS29uc2VxdWVuemVuLCBkaWUgZGllc2UgVHJhdXVuZyBoYWJlbiBrYW5uLgoKRGVyIEtsZXJpa2VyIHVuc2VyZXIgd2FobCBpc3QgRGlyaW9uLCBkZXIgZGllIEVocmUgaGF0IHVucyB6dSB2ZXJtYWVobGVuLgoKQXVjaCBEVSBiaXN0IGhlcmxpY2ggZWluZ2VsYWRlbiwgYWxzbyBzY2h3aW5nIGRlbiBkaWNrZW4gaGludGVybiBob2NoIHVuZAprb21tLiBXb2hpbj8/PwoKRnVlciBTZWhlcjoKdGVsIDE5LCBubywgNiBuLCA0IG8sIG4sIDUgbywgcywgb2VmZm5lIHR1ZXIsIHVudGVuLCBsaWNodD8sIHVudCBvc3R3YW5kLCBvLCAyCnNvLCBsaWNoIHRvdD8sIG8gISEKRnVlciBuaWNodC1TZWhlcjoKT3JrZ2FsZWVyZSwgbywgMiBuLCA0IG8gLi4uIHVzdy4uLgoKRmFsbHMgaWhyIGlyZ2VuZHdlbGNoZSBQb2NrZW4gb2RlciBCbGFzZW4gYXVzIEV1cmVyIGhhdXQgYmVtZXJrdCwgZGFzIGlzdCBkZXIKWm9tYmlldmlydXMuIFZlcnN1Y2h0IGVzIGVpbmZhY2ggbmFjaCBkZW0gYmV0ZW4gbm9jaG1hbC4gOy0pKQpKZXR6dCB3aWxsc3QgRHUgYXVjaCBub2NoIHdpc3NlbiB3YW5uPyBOYSBndXQuCkRvbm5lcnN0YWcsIGRlbiAxNC4gSmFuIDE5OTkgdW0gMjIzMGguCgpBbHNvLCB3aXIgc2VoZW4gdW5zLiBEaWUgUGFydHkgZGEgd2lyZCBzaWNoZXIgZ2VpbC4gRGFuYWNoIGlzdApIb2NoemVpdHNtZXR6ZWxuIGFuZ2VzYWd0LiBWaWVsbGVpY2h0IGlzdCBqYSBub2NoIGRlciBlaW5lIG9kZXIgYW5kZXJlClNBVEFOLUtpbGwgZHJpbi4KCk1vcmdvdGgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXQgKERlZXBibHVlLCAxMi4gSmFuIDE5OTksIDAwOjQ3OjMyKToKfiMhIHJuPU1vcmdvdGggcnQ9OTE2MTAxMzE2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MDk2ODYwCmRlciBoaW53ZWlzIG1pdCBkZW0gWm9tYmlldmlydXMgaXN0IE1hZ2llcmhpbGZlIDopKSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb2NoemVpdCAoTW9yZ290aCwgMTIuIEphbiAxOTk5LCAwMDo0OTozMyk6Cn4jISBybj1EZWVwYmx1ZSBydD05MTYxMDIwNTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYwOTY4NjAKV2VubiBpY2ggRGlyIGVpbmVuIGdlYmUsIGlzdCBkYXMgZGFubiBhdWNoIFNwaWVsZXJoaWxmZT8gSWNoIHd1ZXJkcyBqYSB6dQpnZXJuZSBtYWwgdGVzdGVuLgpXaWUgd2FyIGRhcyBub2NoPwpIQUxUIERJRSBTQ0hOQVVaRSwgRFUgTkVSVlNUCgpKYSwgc28gaW4gZXR3YS4KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhvY2h6ZWl0IChLZXksIDEyLiBKYW4gMTk5OSwgMDc6NTE6MTEpOgp+IyEgcm49TW9yZ290aCBydD05MTYxMDEzMTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYwOTY4NjAKSE1QRiEKSWhyIGhhYnQgZG9jaCBrZWluZSBBaG51bmcgdm9tIGFuc3RhZW5kaWdlbiBoZWlyYXRlbiEKSmFqYSBkYXMgd2FyZW4gbm9jaCBaZWl0ZW4gYWxzIG1hbiBkZW4gUHJpZXN0ZXIgMTAgbWFsIGdlbWV0emVsdCBoYXQgYmV2b3IKdWViZXJoYXVwdCBkaWUgSG9jaHplaXQgYW5maW5nLCBTcGllbGVyIGR1cmNoIEdpZnQgZGVyIE1hZ2llciBzdGFyYmVuLCBQa3MKaGFnZWx0ZSB1c2UgdXNlCgpOYWphIHZvcmJlaSBkaWUgWmVpdAoKS2V5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXSUNIVElHICEhISEhISEhISAoWmFybml5YSwgMTIuIEphbiAxOTk5LCAxMTozNDo1Nik6CkhpLCAKCmVpZ2VudGxpY2ggdmVyc2NoaWNrIGljaCBzb25zdCBrZWluZSBBdWZydWZlLCBhYmVyIGRhcyBtdXNzIG51IHNlaW4uLi4gQklUVEUKbGVpdGV0IGVzIGF1Y2ggYW4gYWxsZSB3ZWl0ZXIsIGRpZSBpaHIgc28ga2VubnQgdW5kIGRpZSBuaWNodCBtdWRkZW4uLi4gdW5kCnBvc3RldCBlcyBhdWNoIGluIGFuZGVyZW4gTXVkcy4uIGVzIGlzdCB3aXJrbGljaCBhcmcgZHJpbmdlbmQ6Cgo+PiBTdWJqZWN0OiBCaXR0ZSB3ZWl0ZXJzZW5kZW4hIEIgSSBUIFQgRSEhISEKPj4KPj4gQUNIVFVORyBBTiBBTExFISBTRU5ERVQgRElFU0UgTkFDSFJJQ0hUIEFOIEFMTEU7IERJRSBJSFIgS0VOTlQKPj4KPj4gR2VzdWNodCB3aXJkOiBFaW4gS25vY2hlbm1hcmtzcGVuZGVyIG1pdCBkZXIgQmx1dGdydXBwZSBCCj4+IHBvc2l0aXYsIGRlcgo+PiBzbyBzZWxic3Rsb3MgaXN0ICwgZGFzcyBlciBkaWUgUmlzaWtlbiBlaW5lciBUcmFuc3BsYW50YXRpb24gYXVmCj4+IHNpY2gKPj4gbmltbXQuCj4+IFdlciBlaW4gTGViZW4gcmV0dGVuIG1jaHRlLCBkZXIgbWFpbGUgbWlyIGJpdHRlLgoKPj4gamJpYXN0QG9uLWx1ZWJlY2suZGUKCj4+IFdlaXRlcmUgSW5mb3JtYXRpb25lbiB3fHJkZSBtYW4gZGFubiB2b24gZGVuIEVsdGVybiBkZXMKPj4gYmV0cm9mZmVuZW4KPj4gTWRjaGVucyBlcmhhbHRlbi4KPj4gREFOS0UhISEhIQoKTWFyYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdJQ0hUSUcgISEhISEhISEhIChNYWhhdG11LCAxMi4gSmFuIDE5OTksIDExOjQzOjQ5KToKfiMhIHJuPVphcm5peWEgcnQ9OTE2MTQwODk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CkVoZXIgdmVyZGFtbXQgdW53aWNodGlnLCBkYWZ1ZXIgZ2lidCBlcyBEUksgdW5kIFNwZW5kZXJyZWdpc3Rlci4gU28gZWluCkhJTEZFSElMRkUtTXVlbGwgZ2VodCBtaXIgYXVmIGRlbiBTYWNrLgoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXSUNIVElHICEhISEhISEhISAoTW9yZ290aCwgMTIuIEphbiAxOTk5LCAxMTo0NDoyNCk6Cn4jISBybj1NYWhhdG11IHJ0PTkxNjE0MTQyOSByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjE0MDg5NgpMb2VzY2ggRGljaCBkb2NoLCB3ZW5ucyBEaXIgbmljaHQgcGFzc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXSUNIVElHICEhISEhISEhISAoTWFoYXRtdSwgMTIuIEphbiAxOTk5LCAxMTo0NDo1Mik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTkxNjE0MTQ2NCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjE0MDg5NgpQb2VoLiBLcmllY2ggZG9jaCBpbnMgWmVsdCwgd2VubiBpY2ggRGlyIG5pY2h0IHBhc3MuCgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdJQ0hUSUcgISEhISEhISEhIChaYXJuaXlhLCAxMi4gSmFuIDE5OTksIDExOjQ1OjQwKToKfiMhIHJuPU1haGF0bXUgcnQ9OTE2MTQxNDI5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CmltbWVyIHdpZWRlciBuZXR0LCB3aWUgc2ljaCBoaWVyIEFzb3ppYWxlIGZlaW4gZmlsdGVybiBsYXNzZW4uLi4gd2VubnMgRGlyCm5pY2h0IHBhc3N0LCBkYW5uIGhhbHQgZG9jaCBlaW5mYWNoIGRlbiBSYW5kLCBNYWhhdG11LiBEYXMgU3BlbmRlcnJlZ2lzdGVyIGlzdAp6d2FyIG5ldHQsIGFiZXIgbWFsIGVocmxpY2guLi4gc3RlaHN0IERVIGRhIGRyaW4/CgpNYXJjCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXSUNIVElHICEhISEhISEhISAoTWFoYXRtdSwgMTIuIEphbiAxOTk5LCAxMTo0NjowNik6Cn4jISBybj1aYXJuaXlhIHJ0PTkxNjE0MTU0MCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjE0MDg5NgpKYS4gVW5kIER1PyAqZyoKLT4gU0NITUFSUk4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdJQ0hUSUcgISEhISEhISEhIChaYXJuaXlhLCAxMi4gSmFuIDE5OTksIDExOjQ2OjU4KToKfiMhIHJuPU1haGF0bXUgcnQ9OTE2MTQxNTY2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CmljaCBzdGVoIGF1Y2ggZHJpbiwgYWJlciBpY2ggYmluIHNpY2hlciwgZGFzcyBlcyB1ZWJlciA5MCUgYWxsZXMgTXVkZGVyIG5pY2h0CnR1bi4gVW5kIGRhcyBzb2xsdGUgYW5kZXJzIHdlcmRlbi4gOikKCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdJQ0hUSUcgISEhISEhISEhIChHcmltbWJvcm4sIDEyLiBKYW4gMTk5OSwgMTE6NDc6MjQpOgp+IyEgcm49WmFybml5YSBydD05MTYxNDE1NDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKRGllIEtyaXRlcmllbiBkYWZ1ZXIgd2FzIHNwYW0gaXN0IHNpbmQgcmVpbiBmb3JtYWxlciwgbmljaHQgaW5oYWx0bGljaGVyCk5hdHVyLiBVbmQgaWNoIGRlbmtlLCBkYXMgaGF0IGF1Y2ggc2VpbmVuIFNpbm4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFdJQ0hUSUcgISEhISEhISEhIChNYWhhdG11LCAxMi4gSmFuIDE5OTksIDExOjQ4OjIxKToKfiMhIHJuPVphcm5peWEgcnQ9OTE2MTQxNjE4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2Ck5hamEsIHdlbmlnc3RlbnMgaGFiZW4gd2lyIG1hbCB3aWVkZXIgZWluZW4gVGhyZWFkLCBpbiBkZW0gaWNoIG1pdHNjaHJlaWJlIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV0lDSFRJRyAhISEhISEhISEgKEtlbGx5YnVuZHksIDEyLiBKYW4gMTk5OSwgMTQ6MDE6MDEpOgp+IyEgcm49TWFoYXRtdSBydD05MTYxNDE0OTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKV2Vpc3N0IER1IGF1ZiB3aWV2aWVsZSBMZXV0ZSBtaXQgZGVyIHBhc3NlbmRlbiBCbHV0Z3J1cHBlIGVpbiB0YXVnbGljaGVyCktub2NoZW5tYXJrc3BlbmRlciBrb21tdD8gRGEgbnVldHplbiBCbHV0YmFua2VuIHVuZCBEUksgbWVpc3Qgd2VuaWcuIEFsc28gc2VpCm1hbCBnYW56IGxlaXNlLgoKQmxvZV5IbmRpZSwgaW4gUkwgc2VsYmVyIEJsdXQtIHVuZCBLbm9jaGVubWFya3NwZW5kZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV0lDSFRJRyAhISEhISEhISEgKEhhdGUsIDEyLiBKYW4gMTk5OSwgMTU6MjE6MTUpOgp+IyEgcm49WmFybml5YSBydD05MTYxNDA4OTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKRGllc2VyIFRvbGxlIEVtYWlsIE11ZWxsIGdlaHQgc2Nob24gZWluZSBnYW56ZSBXZWlsZSBkdXJjaHMgTmV0ei4gSW56d2lzY2hlbgpzY2hvbiBzbyBsYW5nZSwgZGFzcyBlcyBzY2hvbiBtYWthYmVyIHdpcmQuIFd1cmRlIGRlciBQZXJzb24gbmljaHQKZ2Vob2xmZW4sIGRhbm4gaXN0IHNpZSBpbnp3aXNjaGVuIHdvaGwgYW4gZGVuIEZvbGdlbiBnZXN0b3JiZW4gdW5kIHNvbnN0CmlzdCBlcyBlaW5mYWNoIG51ciBNdWVsbC4gU1BBTSB3aWUgdmllbGVzIGFuZGVyZS4KCktlaW4gV3VuZGVyLCBkYXNzIGltbWVyIGRpZXNlbGJlbiBhdWYgc293YXMgcmVpbmZhbGxlbi4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBXSUNIVElHICEhISEhISEhISAoUWl0ZXNzLCAxMi4gSmFuIDE5OTksIDIxOjI5OjE5KToKfiMhIHJuPVphcm5peWEgcnQ9OTE2MTQxNjE4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CkhlaiwgZGFzIHBhc3N0IHp1IG1laW5lbSBWb3JzYXR6IGZ1ZXIgZGllc2VzIEphaHIuIEljaCBoYXR0ZSBtaXIgbmFlbWxpY2gKdm9yZ2Vub21tZW4gZW5kbGljaCBlbmRsaWNoIEJsdXRzcGVuZGVyIHp1IHdlcmRlbiwgdW5kIG1pciBhdXNzZXJkZW0gZWluZW4KT3JnYW5zcGVuZGVyYXVzd2VpcyB6dSBiZXNvcmdlbi4KTGVpZGVyIChvaCBTY2hhbmRlKSBpc3QgZXMgbm9jaCBiZWltIGd1dGVuIFZvcnNhdHogZ2VibGllYmVuLiBJY2ggaG9mZmUsIGRhc3MKaWNoIGltIEZlYnJ1YXIgZGF6dSBrb21tZW4gd2VyZGUuCgpRSSoqIGlzdCBhYmVyIHRyb3R6ZGVtIG5pY2h0IEJsdXRncnVwcGUgQi4KClAuUy46IEFsc28gaWNoIGZpbmRlIGRpZXNlIEF1ZnJ1ZmUgenVtIFNwZW5kZW4gVUVCRVJIQVVQVCBOSUNIVCBkb29mLgpTY2hsaWVzc2xpY2ggYmVzdGVodCBkYWR1cmNoIGVpbmUgaG9laGVyZSBDaGFuY2UsIGVpbmVuIHBhc3NlbmRlbiBTcGVuZGVyIHp1CmZpbmRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFdJQ0hUSUcgISEhISEhISEhIChLZWxseWJ1bmR5LCAxMy4gSmFuIDE5OTksIDEwOjQ2OjAwKToKfiMhIHJuPVFpdGVzcyBydD05MTYxNzY1NTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKSG1tbSBPcmdhbnNwZW5kZXIgYmluIGljaCBub2NoIG5pY2h0Li4ud2VpbDogZGllIEF1c3dlaXNlLCBkaWUgaWNoIGJpcyBqZXR6dApnZXNlaGVuIGhhYiBzaW5kIG1pciB6dSB1bnBlcnNvZW5saWNoLi4uaWNoIHd1ZXJkZSBtaWNoIGJlaSBMYXJzIHVtZHJlaGVuLAp3ZW5uIF9hdXNnZXJlY2huZXRfIGVpbiBBbGtpIG1laW5lIExlYmVyIGJla29tbXQsIGRlciBzaWNoIHNlaW5lCnJ1bnRlcmdlc29mZmVuIGhhdAoKQmxvZV5IbmRpZSBnaWJ0IGlocmVuIFNlbmYgZGF6dQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogV0lDSFRJRyAhISEhISEhISEgKEFsaW5lLCAxMy4gSmFuIDE5OTksIDEyOjA3OjAyKToKfiMhIHJuPUtlbGx5YnVuZHkgcnQ9OTE2MjI0MzYwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CgpLYW5uc3QgamEgYXVmIGRlbSBBdXN3ZWlzIHZlcm1lcmtlbiA6CiJCaXR0ZSBtZWluZSBMZWJlciBudXIgaW4gZWluZW4gc3RyZW5nZ2xhZXViaWdlbiBNb2hhbWVkYW5lciBpbXBsYW50aWVyZW4iCgpBbGluZSBmcmFndCBzaWNoIGdlcmFkZSB3aWUgbWFuIGVpbmVuIFNwZW5kZXJhdXN3ZWlzIHBlcnNvZW5saWNoZXIgbWFjaGVuCmthbm4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBXSUNIVElHICEhISEhISEhISAoS2VsbHlidW5keSwgMTMuIEphbiAxOTk5LCAxMjoyODo1Mik6Cn4jISBybj1BbGluZSBydD05MTYyMjkyMjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKaG1tbSB2aWVsbGVpY2h0IGVoZXI6ICAnT3JnYW5lIG51ciBhbiBuaWNodHRyaW5rZW5kZSBuaWNodHJhdWNoZW5kZSB1c3cKbWlsaXRhbnRlIEF0aGVpc3RlbiBhYnp1Z2ViZW4nLCBiZWkgZGVuZW4gbWFuIHNpY2ggc293aWVzbyBmcmFndCwgd296dSBkaWUKbm9jaCB3ZWl0ZXJsZWJlbiB3b2xsZW4gLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBXSUNIVElHICEhISEhISEhISAoS2V5LCAxMy4gSmFuIDE5OTksIDEyOjMyOjM3KToKfiMhIHJuPUtlbGx5YnVuZHkgcnQ9OTE2MjMwNTMyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2ClZpZWxsZWljaHQgd2lyc3RlIGVzIG5ldCBnbGF1YmVuLCBhYmVyIGVzIGdpYnQgdGF0c2FlY2hsaWNoIE1lbnNjaGVuIGRpZQp0cmlua2VuLCByYXVjaGVuLCB1bmQgQXRoZWlzdGVuIHNpbmQgdW5kIHRyb3R6ZGVtIGdsdWVja2xpY2ggbGViZW4uCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBXSUNIVElHICEhISEhISEhISAoS2VsbHlidW5keSwgMTMuIEphbiAxOTk5LCAxMjozNzoxNik6Cn4jISBybj1LZXkgcnQ9OTE2MjMwNzU3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2Ckthbm4gaWNoIGJlc3RhZXRpZ2VuLCBoZWhlIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBXSUNIVElHICEhISEhISEhISAoQXNtb2RpcywgMTMuIEphbiAxOTk5LCAxOTowMToxNik6Cn4jISBybj1aYXJuaXlhIHJ0PTkxNjE0MTYxOCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjE0MDg5NgpLbm9jaGVubWFyayBzcGVuZGVuIGlzdCBhYmVyIG1pdCBSaXNpa2VuIGJlaSBkZXIgT3BlcmF0aW9uIHZlcmJ1bmRlbi4KRnVlciBlaW5lbiB3aWxkZnJlbWRlbiBNZW5zY2hlbiBzZXR6ZW4gc2ljaGVyIG5pY2h0IHZpZWxlIExldXRlCmlociBMZWJlbiBhdWYgZGFzIFNwaWVsIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogV0lDSFRJRyAhISEhISEhISEgKERlbnRpLCAxMy4gSmFuIDE5OTksIDIyOjA3OjM5KToKfiMhIHJuPUFzbW9kaXMgcnQ9OTE2MjU0MDc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CgpOaWNodCBudXIgZGFzcywgd2VubiBpY2ggc2VoZSwgZGFzcyBpY2ggc2Nob24gdmllciBXb2NoZW4gbWVpbmVuIApCZXJ1ZiBuaWNodCBhdXN1ZWJlbiBkYXJmLCB3ZW5uIGljaCBudXIgQmx1dCBzcGVuZGUsIHdpZXZpZWwgc2NobGltbWVyCmlzdCBkYXNzIGRhbm4gbmFjaCBzbyBlaW5lbSBFaW5ncmlmZj8KCkRlbnRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBXSUNIVElHICEhISEhISEhISAoQW5hdG9sLCAxMy4gSmFuIDE5OTksIDIyOjI4OjM5KToKfiMhIHJuPURlbnRpIHJ0PTkxNjI2NTI1OSByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjE0MDg5NgpXb2JlaSBtYW4gZGF6dSBzYWdlbiBtdXNzLCBkYXNzIHZvbiBEZWluZXIgRWluc2F0emZhZWhpZ2tlaXQgbWVociBhbHMgbnVyCmVpbiBNZW5zY2hlbmxlYmVuIGFiaGFlbmd0IC0gdm9sbGUgRml0bmVzcyBpc3QgaW4gREVNIEJlcnVmIHdvaGwgZWluZmFjaApHcnVuZHZvcmF1c3NldHp1bmcuCgpBbmF0b2wgLSBoYXR0ZSBzY2hvbiBpbW1lciBlaW5lbiBIYWxidG90Ymx1dGRydWNrIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogV0lDSFRJRyAhISEhISEhISEgKEtlbGx5YnVuZHksIDE0LiBKYW4gMTk5OSwgMDE6Mjk6MjApOgp+IyEgcm49RGVudGkgcnQ9OTE2MjY1MjU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CkRhdWVyc3BlbmRlciBhbHMgQmVydWY/IHdvPz8/PyAqbGVjaHoqCgpCbG9lXkhuZGllCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBXSUNIVElHICEhISEhISEhISAoWWVuZGksIDE0LiBKYW4gMTk5OSwgMTE6MzA6MzcpOgp+IyEgcm49RGVudGkgcnQ9OTE2MjY1MjU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MTQwODk2CldhcyBtYWNoc3QnbiBEdSBiZXJ1ZmxpY2g/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogV0lDSFRJRyAhISEhISEhISEgKEtleSwgMTQuIEphbiAxOTk5LCAxMjoyNzo1Myk6Cn4jISBybj1ZZW5kaSBydD05MTYzMTM0Mzcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKRHVyY2ggZGllIEx1ZnQgc2Nod2lycmVuIDspCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IFdJQ0hUSUcgISEhISEhISEhIChZZW5kaSwgMTQuIEphbiAxOTk5LCAxMjozMToxNik6Cn4jISBybj1ZZW5kaSBydD05MTYzMTM0Mzcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYxNDA4OTYKV2llIHNjaG9lbiwgZWluZSBGZWUhICAoLT5zY2htYXJybikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMCBXSUNIVElHICEhISEhISEhISAoR3JvbywgMTUuIEphbiAxOTk5LCAwNDoxMjo1Nik6CkFsbHNvIGljaCBoYWIgc2Nob24gdm9yIGRlbXRyaXR0IEJsdXQgZ2VzcGVuZGV0LgpBbGxlcmRpbmdzIGJlaW0gUm90ZW4gIndpciBtYWNoZW4gWmFzdGVyIGJpcyB3aXIgUGxhdHplbiIgS3JldXouLgpXZXJkIHdvaGwgZGFlbW5hZWNoc3QgS29obGUgaW4gZGVyIFVuaSBFc3NlbiB2ZXJsYW5nZW4gKmdyaW5zIGRyZWNraWcqClVuZCBkaWUgNjAgRE0gaW1tZXIgZmxlaXNpZyBhdWYgZGVuIEtvcHAgaGF1ZW4gLApEYW5uIG5vY2ggU2FtbWVuc29zcGVuZGUgKHdlbm4gbm9jaCB3YXMgcmF1c2tvbW10KSBmdWVyIDMwMCwtIERNICAuLgpOYWphLCBkYXJmIG1hbiBudXIgYWxsZSAzIE1vbmF0ZSBtYWNoZW4sIGFiZXIgR290dCBzZWlzIGdlZGFuZ3QsIGVzIGdpYnQgamEgMgpJbnN0aXR1dGUgCkhtLCBrYW5uIG1hbiBzaWNoIGZhc3Qgc2VpbiBTdHVkaXVtIG1pdCBmaW5hbnppZXJlbiwgYWJlciB3ZW5uIGRhbm4gaXJnZW5kd2FubgphbGxlIEtpbmRlciBpbiBkZWluZXIgU3RhZHQgdW5kIHVtZ2VidW5iIGlyZ2VuZHdpZSBhdXNzZWhlbiB1bmQgc2luZCB3aWUKbWFuKG4pIFNlbGJzdCA/Pz8KQWNoLi4uCkthY2sgZHJhdWYKR3JvbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IDAgKEtlbGx5YnVuZHksIDE1LiBKYW4gMTk5OSwgMTA6MTU6MTcpOgp+IyEgcm49R3JvbyBydD05MTYzNzM1NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKNjA/IGhlaGUgaWNoIGJla29tbWUgMTAwIC4uLiA6KQoKQmxvZV5IbmRpZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IDAgKE1haGF0bXUsIDE1LiBKYW4gMTk5OSwgMTI6MjY6MDQpOgp+IyEgcm49S2VsbHlidW5keSBydD05MTYzOTUzMTcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKQXVjaCAnbmUgQXJ0IHZvbiBQcm9zdGl0dXRpb24uClVuZCBuYXR1ZXJsaWNoIGltbWVyIHZvcm0gU3RhVGkgc3BlbmRlbiBnZWhlbiwgd2VpbCBkYW5uIGVpbiBCaWVyIHJlaWNodD8KCk1haGF0bXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiAwIChLZWxseWJ1bmR5LCAxNS4gSmFuIDE5OTksIDEzOjMwOjMxKToKfiMhIHJuPU1haGF0bXUgcnQ9OTE2NDAzMTY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2CkhhdCBuaXggbWl0IFByb3N0aXR1dGlvbiB6dSB0dW4sIGljaCBoYWJzIG1hbCBhbmdlZmFuZ2VuIHdlaWwgaWNoIHp1IGRlciB6ZWl0CnNlaHIga25hcHAgd2FyLCBkZXN3ZWdlbiBzYWcgaWNoIGRvY2ggbmljaHQ6ICJhZXRzY2ggaWNoIGJyYXVjaCBFdXJlIEtvaGxlCm5pY2h0IG1laHIsIGhvbHQgRXVjaCBFdWVyIEJsdXQgd29hbmRlcnMhIgpXZW5uIER1IG1laW5lIEJsdXRncnVwcGVuZmFrdG9yZW4gaGFldHRlc3QsIHNvbGx0ZXN0IER1IGZyb2ggc2VpbiwgZGFzcyBpY2gKbWljaCBwcm9zdGl0dWlyZSwgd2VpbCBlcyBtZWluZXMgd2lzc2VucyBpbSBTVyBudXIgbm9jaCAzIG9kZXIgNCBzcGVuZGVyIGdpYnQsCmRpZSBkaWUgc2VsYmUgR3J1cHBlIGhhYmVuLgoKQXVzc2VyZGVtIGJpbiBpY2ggaW1tZXIgdWViZXIgbWVpbiBCbHV0YmlsZCBpbmZvcm1pZXJ0LCBzb3ZpZWwgenVtIFRoZW1hCkdlc3VuZGhlaXRzdm9yc29yZ2UuCgpXdW5kZXJ0IG1pY2gsIGRhc3MgRHUgZGFzIFdvcnQgUHJvc3RpdHV0aW9uIHVlYmVyaGF1cHQgYnVjaHN0YWJpZXJlbiBrYW5uc3QuCgpEdW1wZmJhY2tlLCBlY2h0IHZlcmFlcmdlcnQgdWViZXIgc292aWVsIER1bW1sYWJlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IDAgKE5vdmFzdG9ybSwgMTUuIEphbiAxOTk5LCAxMzozNjowMCk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTkxNjQwNzAzMSByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3Ngoqc2NobmllZiogSW1tZXIgd2llZGVyIGVudHRhZXVzY2hlbmQsIHdpZSBkdXJjaHMgTXVkIHNvcmdzYW0gYXVmZ2ViYXV0ZSAKQmlsZGVyIHZvbiBQZXJzb25lbiBkZXMgc3ViamVrdGl2IHNlaHIgd2VpdGVyYmlsZGVuZGVuIFNwYWV0bmFjaG1pdHRhZ3MtCnByb2dyYW1tIHZlcnplcnJ0IG9kZXIgZ2FyIHplcnN0b2VydCB3ZXJkZW4uClVuZCBkYW5uIG5vY2ggYXVmIGVpbmUgc28gbmllZGVydHJhZWNodGlnZSBBcnQgdW5kIFdlaXNlIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IDAgKEtyZXRlaywgMTUuIEphbiAxOTk5LCAyMTowODo0Nyk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTkxNjQwNzAzMSByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3NgpMYXNzIG1pY2ggcmF0ZW46IEFCIG5lZ2F0aXYsIFJoZXN1c2Zvcm1lbCBjY2RkZWU/CkRhbWl0IGlzIG1hbiBpbiBkZXIgVGF0IGVpbiBTRUhSIGJlZ2VocnRlciBTcGVuZGVyISBIYWIgaWNoIGF1Y2guLi4gKipncmlucyoqCiAgICAgICAgICAKICAgICAgICAgIGtyZXRla0BhbnRpc29jaWFsLmNvbQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiAwIChBc21vZGlzLCAxNS4gSmFuIDE5OTksIDIyOjQ2OjQxKToKfiMhIHJuPUdyb28gcnQ9OTE2MzczNTc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2CkhtbSwgZnVlciBuZSBOaWVyZSBrcmllZ3N0ZSBhdWNoIG5vY2ggMjAwMDAgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogMCAoUWl0ZXNzLCAxNi4gSmFuIDE5OTksIDE0OjM1OjQyKToKfiMhIHJuPU5vdmFzdG9ybSBydD05MTY0MDczNjAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKd2VzaGFsYiA/IHdhcyBpc3QgZGVubiB6ZXJzdG9lcnQ/IGVnYWwgd28gZHUgc3BlbmRlc3QsIGRlaW4gYmx1dCB3aXJkCndpdGVydmVya2F1ZnQuIHVuZCB3aWVzbyBzb2xsdGUgbWFuIGRlbm4gZGEgenUgZGVuIDUwIG1hcmsgbmVpbiBzYWdlbiA/IApndXQsIG1hbiBrb2VubnRlIG1pdCB3b3J0a2xhdWJlcmVpIGFuZmFuZ2VuIHVuZCBzYWdlbiwgZGFzcyBlcyBkYW5uIGtlaW5lCnNwZW5kZSBtZWhyIHNlaS4gbmEgdW5kID8gZGFubiB2ZXJrYXVmdCBtYW4gc2VpbiBibHV0IGhhbHQgcHJlaXN3ZXJ0IGZ1ZXIKZWluZW4gZ3V0ZW4gendlY2suCm1hbCBuZWJlbmJlaSBnZXNhZ3QsIHdlbm4gbWFuIGFsbGVyZGluZ3MgYmltIFJLIHNwZW5kZXQgdW5kIG51ciBrYWZmZWUgdW5kCmt1Y2hlbiBkYWZ1ZXIgYmVrb21tdCwgaGF0IG1hbiBhbGxlcmRpbmdzIGF1Y2ggZGVuIHZvcnRlaWwsIGRhc3MgZGFzIFJLIHp1cgpzdGVsbGUgaXN0LCB3ZW5uIG1hbiBzZWxiZXIgd2VsY2hlcyBicmF1Y2h0LiBkYXMga2FubiBpbSBlcm5zdGZhbGwgd29obCBnYW56CnNjaG9lbiBwcmFrdGlzY2ggc2Vpbi4KYWJlciBuaWNodHNkZXN0b3Ryb3R6LCB3ZW5uIGljaCBtYWwgNTAgdGFja2VuIGJyYXVjaCwgaGFldHRlIGljaCBrZWluZSBza3J1cGVsCmRhZnVlciBuIGxpdGVyIGJsdXQgaGVyenVnZWJlbi4KClFJKiogLSB2b24gd2VnZW4gUHJvc3RpdHV0aW9uLiBQZmZ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IDAgKEFuYXRvbCwgMTYuIEphbiAxOTk5LCAxOTo0MToyNCk6Cn4jISBybj1RaXRlc3MgcnQ9OTE2NDk3MzQyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2CkFtIGJlc3RlbiBzdWNoIERpciBlaW5lbiBBcnp0LCBkZXIgRGlyIE1lZGlrYW1lbnRlIHZlcnNjaHJlaWJ0LCBkaWUKc2ljaCBudXIgbGFuZ3NhbSB3aWVkZXIgYWJiYXVlbiAtIGRhbm4gREFSRlNUIER1IGdhciBuaWNodCBzcGVuZGVuIHVuZAptdXNzdCB1ZWJlciBkaWUgZWlnZW50bGljaCBuaWNodCB2b3JoYW5kZW5lIFByb2JsZW1hdGlrIGF1Y2ggZWlnZW50bGljaApuaWNodCBuYWNoZGVua2VuLgoKQW5hdG9sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IDAgKEtlbGx5YnVuZHksIDE2LiBKYW4gMTk5OSwgMjA6MzA6MzApOgp+IyEgcm49UWl0ZXNzIHJ0PTkxNjQ5NzM0MiByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3NgpBdXNzZXJkZW0gd2Vpc3MgbWFuIG5pZSB3YW4gbWFuIHNlbGJlciBtYWwgZGEgbGllZ3QsIHVuZCBkaWUgSGVycnNjaGFmdGVuLCBkaWUKaGllciAnUHJvc3RpdHV0aW9uJyBzY2hyZWllbiwgZGVuZW4gd3VlbnNjaGUgaWNoLCBkYXMgZGVyZW4gQmx1dGdydXBwZSBkYW5uCmxlaWRlciBuaWNodCB6dXIgU3RlbGxlIGlzdCwgd2VpbCBkaWUgTnV0dGVuIHp1IHppY2tpZyB3YXJlbiB6dW0gU3BlbmRlbi4KCklociBoYWJ0IFByb2JsZW1lIC4uLgoKS29wZnNjaHVldHRlbG5kOiBEdW1wZmJhY2tlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgVW50ZXJnYW5nIChHcm9vLCAxNy4gSmFuIDE5OTksIDAwOjIxOjUyKToKdG9ldGUgU2NobGVpY2hlciAgIEkgUyBUICAgSiBFIFQgWiBUICAgRCBBICEhIQpEdSBzYWdzdDogTUVSTElOIE1FUkxJTgo+IG1lcmxpbgpPawo+ICAgRHUgZ3JlaWZzdCBNZXJsaW4gbWl0IGJsb3NzZW4gSGFlbmRlbiBhbi4KTWVybGluIHNjaGltcGZ0OiBMYXNzIGRhcyEhIQpNZXJsaW4gZ2lidCBEaXIgZWluZSBzY2hhbGxlbmRlIE9ocmZlaWdlLgpSaWt1cyBzYWd0OiBncmF0cwoKUmlrdXMgdGFldHNjaGVsdCBTY2hsZWljaGVyIGRlbiBLb3BmLgpzID4gSEVZIEhFWSBIRVkgSE8gIQpEdSBzYWdzdDogSEVZIEhFWSBIRVkgSE8gIQo+IFNjaGxlaWNoZXIgYmVkYW5rdCBzaWNoIGJlaSBSaWt1cy4KRGVyIFdpbmQgd2VodCB3ZWl0ZXIuCiAgICAgICAKCgpPaCBzY2hlaXNzZSwgZGFzIHdhcnMgZGFubiB3b2hsLi4uCkhhdCBtaWNoIGdlZnJldXQgbWl0IGV1Y2ggYWxsZW4gaGllciwgYWJlciBkYXMgTXVkIGlzIG51biB6dW0gc2NoZWl0ZXJuIC4uCmFjaCB3YXMgc29sbHMgOikKR3JvbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IDAgKFlhcmVuLCAxNy4gSmFuIDE5OTksIDIwOjE3OjMxKToKfiMhIHJuPUFzbW9kaXMgcnQ9OTE2NDQwNDAxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2CmhhdCBoaWVyIG5vY2ggamVtYW5kIG5lbiBsZWJlci1zcGVuZGVhdXN3ZWlzPyA6LSkKCllhcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTM6IDAgKEdyaW1tYm9ybiwgMTcuIEphbiAxOTk5LCAyMDozOTo1Nik6Cn4jISBybj1ZYXJlbiBydD05MTY2MDQyNTEgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKRGFua2UsIGlzdCBuZXR0IHZvbiBEaXIsIGFiZXIgaWNoIGJpbiBtaXQgZGVyIExlYmVyLCBkaWUgaWNoIHZvbiBtZWluZW0KTWV0emdlciBrcmllZ2UsIHZvZWxsaWcgenVmcmllZGVuLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgKGh1bmdyaWcpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogMCAoUGF0cnluLCAxNy4gSmFuIDE5OTksIDIwOjQwOjE0KToKfiMhIHJuPUtyZXRlayBydD05MTY0MzQ1Mjcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKaWNoIGRhY2h0ZSwgZGFzIGhhdCBudXIgZWluZXIgdW50ZXIgaHVuZGVydHRhdXNlbmRlbi4gaWNoIGhhYiBkaWUgc2VsYmUKYmx1dGdydXBwZSB1bmQgZGFtaXQgc2luZCB3aXIgc2Nob24gZHJlaS4uLmlzdCBkYXMgbWFuY2htYWwgZGVyCm1nLXp1ZmFsbHNnZW5lcmF0b3I/IDopCgotLS0tLS0KcGF0cnluLCBkZXIgYmVpIGJsdXR0ZXN0cyBhdWZwYXNzZW4gbXVzcywgbmljaCBhbmdla2V0dGV0IHp1IHdlcmRlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IDAgKE9ya3RvZXRlciwgMTguIEphbiAxOTk5LCAxMToyMjowNCk6Cn4jISBybj1RaXRlc3MgcnQ9OTE2NDk3MzQyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2Ck5lbiBnYW56ZW4gTGl0ZXIgPyBPaG9oLi4uIAoKT3JrVCBzcGVuZGV0IGltbWVyIG51ciBuZW4gaGFsYmVuIHVuZCBmaW5kZXQgYXVjaCwgZGFzIG1hbiBmdWVyIGRpZSBaZWl0IHVuZApkZW4gQXVmd2FuZCBhdWNoIGJlaSBlaW5lciAiU3BlbmRlIiBlbnRzY2hhZWRpZ3Qgd2VyZGVuIGRhcmYuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNjogMCAoQm90dG9tLCAxOC4gSmFuIDE5OTksIDIwOjEyOjEzKToKfiMhIHJuPVBhdHJ5biBydD05MTY2MDU2MTQgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKCmRlbW5hY2ggbXVlc3N0ZW4gd2lyIGltIE1HID40MDAgSyBNdWRkZXIgemFlaGxlbiBkdWVyZmVuIC0gd2lyIHNpbmQgbmFlaG1saWNoCnp1IHZpZXJ0ISAqYWV0c2NoKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IDAgKEtyZXRlaywgMTguIEphbiAxOTk5LCAyMjoxMTo0NSk6Cn4jISBybj1QYXRyeW4gcnQ9OTE2NjA1NjE0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2Ck5vZSwgc29vb29vIHNjaGxpbW0gaXN0IGRhcyBudW4gYXVjaCB3aWVkZXIgbmljaHQuIFNvd2VpdCBpY2ggd2Vpc3MsCmdlaG9lcmVuIGV0d2EgMyUgZGF6dS4KICAgICAgICAgIAogICAgICAgICAga3JldGVrQGFudGlzb2NpYWwuY29tCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmx1dGdydXBwZS4uLi4gKEhhc2ltLCAxOS4gSmFuIDE5OTksIDEwOjU2OjM3KToKSWNoIGhhYiBkYXMgamV0enQgc28gbmljaHQgZ2FueiBtaXRnZWtyaWVndC4uLi4gaGFidCBpaHIgamV0enQgYWxsZSBBQiArIG9kZXIKLSAuLi4gaWNoIGhhYiBuYWVtbGljaCBBQiArLi4uIGRhbm4gd2FlcmVuIHdpciA1IG9kZXIgd2llIG9kZXIgd2FzLi4uID8/PyAKSGFzaW0gKnZlcndpcnJ0Kn5oCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IDAgKEppbWRpZ3JpeiwgMTkuIEphbiAxOTk5LCAxMzoxMToxMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTE2NjA1NTk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2Cgoqd3VlcmcqIExlYmVyLCB3ZXIgd2lsbCBkZW5uIHNvd2FzIGVzc2VuICUtUAoKSmRHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNzogMCAoTWFoYXRtdSwgMTkuIEphbiAxOTk5LCAxNjo0NToyNik6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTkxNjUxODYzMCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3NgpQcm9zdGl0dXRpb24gaW0gU2lubmU6IEtvZXJwZXIgdmVya2F1ZmVuCkdlZ2VuIGRhcyBTcGVuZGVuIGlzdCBkYW1pdCBuaWNodHMgZ2VzYWd0LiBBdWNoIG5pY2h0cyBnZWdlbiBlaW5lIEF1ZndhbmRzLQplbnRzY2hhZWRpZ3VuZyAoYmVpbSBEUksgaGFsdCBudXIgJ24gSGFwcGVuIE1hbXBmKS4gQWJlciBnZWdlbjogQWgsIGhpZXIKa3JpZWcgaWNoIDEwMCBHbG9ja2VuLCBkYSBudXIgNTAuICpzcGVuZCogKnNwZW5kKgpHZW5hdSBkZXNoYWxiIHNwZW5kIGljaCBsaWViZXIgYmVpbSBEUksuIFNvbnN0IG11ZXNzZW4gZGllIGZ1ZXIgKG1laW5lKQp0ZXVyZSBLbmV0ZSBibG9zcyBCbHV0IGFua2F1ZmVuIC4uLgoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTg6IDAgKE9tLCAxOS4gSmFuIDE5OTksIDE4OjU4OjMwKToKfiMhIHJuPU1haGF0bXUgcnQ9OTE2NzY0MzI2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2CkRhcyBEUksgaXN0IHNvJ24gIiQlLUhhdWZlbiwgZGllIG1hY2hlbiBkb2NoIGF1Y2ggbnVyIEdlbGQgZGFtaXQsCnVuZCBuaWNoIHp1IGtuYXBwLiBEYSBoYWV0dCBpY2gga2VpbmUgU2tydXBlbCwgZnVlciBtZWluIEJsdXQKYXVjaCB3YXMgenUgdmVybGFuZ2VuLgoKT20KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE5OiAwIChZZW5kaSwgMTkuIEphbiAxOTk5LCAxOTo1MTo0NCk6Cn4jISBybj1PbSBydD05MTY3NzIzMTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKCkdhYidzIG5pY2h0IHZvciBlaW4gcGFhciBKYWhyZW4gZWluIFNrYW5kYWVsY2hlbiwgYWxzIGRhcyBEUksgZnVlciBlaW5pZ2UKQmx1dGdydXBwZW4gbmljaHRzIG1laHIgbGllZmVybiBrb25udGUsIHdlaWwgZXMgdm9uIGRlciBTb3J0ZSB6dXZpZWwgaW5zCkF1c2xhbmQgdmVydGlja3QgaGF0dGUsIGZ1ZXIgdGV1ZXIgR2VsZD8KCllUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE5OiAwIChHcmltbWJvcm4sIDE5LiBKYW4gMTk5OSwgMjI6MTI6MzcpOgp+IyEgcm49T20gcnQ9OTE2NzcyMzEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2CkR1IHZlcndlY2hzZWxzdCBEUksgYWxsZ2VtZWluIG1pdCBkZW0ga29ycnVwdGVuIEhhdWZlbiBpbiBCYXllcm4gKHVuZCBkYSBtZWluZQppY2ggYXVzbmFobXN3ZWlzZSBuaWNodCBkaWUgQ1NVLiBEb24ndCBldmVuIGdldCBtZSBzdGFydGVkLi4uKS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdC4gTWVpbiBCbHV0IGdlaG9lcnQgbWlyIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IDAgKFlhcmVuLCAyMC4gSmFuIDE5OTksIDAwOjI2OjI2KToKfiMhIHJuPUdyaW1tYm9ybiBydD05MTY2MDU1OTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKKnNjaGF1ZGVyKiBkYXMgZXJpbm5lcnQgbWljaCBpcmdlbmR3aWUgYW4gImRhcyBzY2h3ZWlnZW4gZGVyIGxhZW1tZXIiIC4uLgoKWWFyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMDogMCAoT20sIDIwLiBKYW4gMTk5OSwgMDg6NDA6MTQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTkxNjc4Mzk1NyByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3NgpOZWUsIGljaCBtZWluIGRhcyBEUksgaW4gTlJXLiBFaW4gZ3V0ZXIgRnJldW5kIHZvbiBtaXIgaGF0IGRhIDE4IE1vbmF0ZQpaaXZpbGRpZW5zdCBnZW1hY2h0LCBkZXIga2FubiBTYWNoZW4gZXJ6YWVobGVuLCBkbyBsZWdzdCBkaSBuaWVkZXIuCgpPbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjA6IDAgKFNvbmdva3UsIDIwLiBKYW4gMTk5OSwgMTA6MzE6MDYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTkxNjc4Mzk1NyByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3NgpEdSBtZWluc3QgZGFzIEJSSyBvZGVyPwpEYXMgaGF0dGUgZGllc2VzIGFlaGhoIGxldHp0ZXMgSmFociBhdWNoIHdpZWRlciBzbyBlaW4gU2thbmRhZWxjaGVuLgooc2F1aGF1ZmVuISEhKQpTYXlvbmFyYSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIxOiAwIChMZWZ0eSwgMjAuIEphbiAxOTk5LCAxMDozMzozNik6Cn4jISBybj1PbSBydD05MTY4MjE2MTQgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTYzNzM1NzYKRGVtIGthbm4gaWNoIG1pY2ggYW5zY2hsaWVzc2VuLiBJY2ggc2FnZSBudXI6CkRpY2ggUmV0dGV0IEtlaW5lcgoKTGVmdHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCbHV0Z3J1cHBlLi4uLiAoQmVlbHplYnViLCAyMC4gSmFuIDE5OTksIDExOjEyOjU2KToKfiMhIHJuPUhhc2ltIHJ0PTkxNjc0MzM5NyByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjc0MzM5NwpOZWUuIHdpciBoYW0gQUIgLSAobmVnYXRpdikuIER1IGhpbmdlZ2VuIGJpc3QgZ2V3b2VobmxpY2ggXTotKQoKQmVlbHplCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJsdXRncnVwcGUuLi4uIChLZXksIDIwLiBKYW4gMTk5OSwgMTE6Mjk6MDApOgp+IyEgcm49QmVlbHplYnViIHJ0PTkxNjgzMDc3NiByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjc0MzM5NwpJY2ggaGFiIEFSIC4uLiBBbHBoYSBSb21lbyA6KQoKSGFidCBpaHJzIGJhbGQ/IC4pCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE4OiAwIChLZWxseWJ1bmR5LCAyMC4gSmFuIDE5OTksIDExOjMxOjA3KToKfiMhIHJuPU1haGF0bXUgcnQ9OTE2NzY0MzI2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2MzczNTc2Ck1vcmFsaXNjaGUgQmVkZW5rZW4/ICpsb2wqIApEaWUgQmx1dHNwZW5kZXJlaSBpc3QgZnVlciBkaWUgT3JnYW5pc2F0aW9uZW4gZWluIGVjaHRlcyBHZXNjaGFlZnQsIHp1bWFsIGVpbmUKQmx1dGtvbnNlcnZlIG1pdCBjYSA0MDAsLSBETSB3ZWl0ZXJ2ZXJrYXVmdCB3aXJkLiBEYXMgRFJLIGlzdCBpbiBkZXIgSGluc2ljaHQKZ2VyYWRlenUgdW52ZXJzY2hhZW10IG1vcHNpZy4gV2llc28gc29sbCBpY2ggZGFubiBuaWNodCBhdWNoIG1laW5lbiBUZWlsIGRhdm9uCm1pdG5laG1lbj8KCkR1bXBmYmFja2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIxOiAwIChLZWxseWJ1bmR5LCAyMC4gSmFuIDE5OTksIDExOjM0OjQ0KToKfiMhIHJuPU9tIHJ0PTkxNjgyMTYxNCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjM3MzU3NgpEZXN3ZWdlbiBiaW4gaWNoIGphIGF1Y2ggbmljaHQgYmVpbSBEUksgc3BlbmRlbiwgc29uZGVybiBiZWkgZGVyClRyYW5zZnVzaW9uc3plbnRyYWxlIGRlciBNYWluemVyIFVuaWtsaW5pay4gRGllIG5laG1lbiBsYWVuZ3N0IG5pY2h0IGFsbGVzIHZvbgpqZWRlbSB4YmVsaWViaWdlbiB1bmQgc3RlaGVuIGluIGRlbSBSdWYgc2VociBzYXViZXIgdW5kIGdld2lzc2VuaGFmdCB6dQphcmJlaXRlbi4gV2VubiBtaXIgamVtYW5kIG5vY2ggbWVociBiaWV0ZW4gd3VlcmRlLCB3dWVyZGUgaWNoIGRlc2hhbGIgdHJvdHpkZW0KbmljaHQgd2VjaHNlbG4uCgpEdW1wZmJhY2tlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJsdXRncnVwcGUuLi4uIChLZWxseWJ1bmR5LCAyMC4gSmFuIDE5OTksIDExOjM4OjEwKToKfiMhIHJuPUJlZWx6ZWJ1YiBydD05MTY4MzA3NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKQXVjaCBkaWVzZXMgc29sbHRlIGdlcmFkZSBmdWVyIExldXRlIG1pdCBzZWx0ZW5lbiBCbHV0Z3J1cHBlbiBlaW4gQXJndW1lbnQKc2VpbiwgenUgc3BlbmRlbi4gRGVubiBQYXRpZW50ZW4gbWl0IGVpbmVyIHNlbHRlbmVuIEJsdXRncnVwcGUgd2VyZGVuIGF1Y2gKX3N0YXRpc3Rpc2NoXyBnZXNlaGVuIHNlbHRlbmVyIGVpbmdlbGllZmVydC4gQWJlciBlYmVuc28gdmllbCBzY2h3aWVyaWdlciBpc3QKZXMgX3N0YXRpc3Rpc2NoXyBnZXNlaGVuLCBkYW5uIGVpbmVuIFNwZW5kZXIgYmVpenV6ZXJyZW4sIHdlbm4gZGllIEJsdXRncnVwcGUKbmljaHQgdm9ycmFldGlnIGlzdC4gU3RhdGlzdGlrZW4gaGFiZW4gbmFlbWxpY2ggZWluIFByb2JsZW06IGVpbmUgZ2VyaW5nZQpzdGF0aXN0aXNjaGUgV2FocnNjaGVpbmxpY2hrZWl0IGhlaXNzdCBiZWkgc29sY2hlbiBzYWNoZW4gRGUgRmFjdG86ClVlYmVybGViZW5zY2hhbmNlIGZhc3QgTnVsbC4KCkR1bXBmYmFja2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJsdXRncnVwcGUuLi4uIChNdXJrZXMsIDIwLiBKYW4gMTk5OSwgMTQ6MTI6MTgpOgp+IyEgcm49S2VsbHlidW5keSBydD05MTY4MzIyOTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKQWxzbyB2b24gZGVyIEthbGt1bGF0aW9uZW4gZGVyIEtyYW5rZW5oYWV1c2VyIGlzdCBlcyBndWVuc3RpZ2VyIGRhcyBCbHV0CmRpcmVrdCB2b24gZGVuIFNwZW5kZXJuIHp1IGthdWZlbiBhbHMgZXMgdWViZXIgZGFzIERSSyB6dSBiZXppZWhlbi4gU28gZ2VzZWhlbgpwcm9maXRpZXJ0IFNwZW5kZXIvaW4gdW5kIEtsaW5pay4gRmluZCBpY2ggT0suCk11cmtlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS25vY2hlbm1hcmsgaXMgZGEgKENhbGltZXJhLCAyMC4gSmFuIDE5OTksIDE3OjE0OjIwKToKQWxzbyBpY2ggZ2xhdWIgZXMgcmVpY2h0IG1pdCBkZXIgRGlza3Vzc2lvbiA6LSkKClp1IGVpbmVtIG5pY2h0IG1laHIga29udHJvbGxpZXJiYXJlbiBLZXR0ZW5icmllZiBlbnR3aWNrZWx0IHNpY2ggZWluCmVybnN0Z2VtZWludGVyIEF1ZnJ1ZiwgZGVyIGVpbmVuIEtub2NoZW5tYXJrLVNwZW5kZXIgYml0dGV0LCBzaWNoIHp1IG1lbGRlbi4KIkdlc3VjaHQgd2lyZDogRWluIEtub2NoZW5tYXJrc3BlbmRlciBtaXQgZGVyIEJsdXRncnVwcGUgQiBwb3NpdGl2LCBkZXIgc28Kc2VsYnN0bG9zIGlzdCwgZGFzcyBlciBkaWUgUmlzaWtlbiBlaW5lciBUcmFuc3BsYW50YXRpb24gYXVmIHNpY2ggbmltbXQsIgpoaWUgZXMgaW4gZGVyIE1haWwsIGRpZSBlaW4gTWl0Z2xpZWQgZGVzICJPZmZlbmVuIE5ldHogZS5WLiIgaW4gTGJlY2sgbWl0IGRlcgpCaXR0ZSB1bSBXZWl0ZXJsZWl0dW5nIHZlcnNjaGlja3RlLiBCZXJlaXRzIGFtIDYuIEphbnVhciB3dXJkZSBhbGxlcmRpbmdzIGVpbgpTcGVuZGVyIGdlZnVuZGVuLCB1bmQgZGllIEluaXRpYXRvcmluIGRlciBBa3Rpb24gaG9mZnQsCiJkYSBlcyBNZWxhbmllIGJhbGQgd2llZGVyIGd1dCBnZWhlbiB3aXJkIi4gIERlciBMYmVja2VyIFZlcmVpbiB3cmUgaW5kZXNzZW4KZnJvaCwgd2VubiBlciBkaWUgU2FjaGUgd2llZGVyIGF1cyBkZXIgV2VsdCBzY2hhZmZlbiBrbm50ZSwgdHJlZmZlbiBkb2NoCm1pdHRsZXJ3ZWlsZSBldHdhIDMwMCBNYWlscyB0Z2xpY2ggZWluLiBVc2VyYmV0cmV1ZXIgTWFuZnJlZCBSb3NlbmJhdW06CiJVbnNlciBoaWxmc2JlcmVpdGVzIE1pdGdsaWVkIGhhdCBkaWUgV2lya3VuZyB1bmQgTWdsaWNoa2VpdGVuIGRlcyBOZXR6ZXMKdmxsaWcgdW50ZXJzY2h0enQiLgoKUXVlbGxlOiBDSElQIG9ubGluZSwgMTkuMDEuOTkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS25vY2hlbm1hcmsgaXMgZGEgKENhbGltZXJhLCAyMC4gSmFuIDE5OTksIDE3OjE1OjMzKToKfiMhIHJuPUNhbGltZXJhIHJ0PTkxNjg1MjQ2MCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjg1MjQ2MApTb25kZXJ6ZWljaGVuIHNpbmQgc2ljaCB6dSBkZW5rZW4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCbHV0Z3J1cHBlLi4uLiAoTWFoYXRtdSwgMjAuIEphbiAxOTk5LCAxODo1MDowNik6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTkxNjgzMjI5MCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjc0MzM5NwpMdC4gZWluZW0gQmVrYW5udGVuIHdpcmQgendhciBoZXV0enV0YWdlIGthdW0gQmx1dGdydXBwZW51bmlkZW50aXNjaAphbiBEZWluZW4gQXJtIGdlaGFlbmd0LCBhYmVyIGltIGFsbGVyZ3JvZXNzdGVuIE5vdGZhbGwga29lbm50ZSBpY2ggRGlyCmdlcm4gZWluIGJpc3NjaGVuIE51bGwgbmVnYXRpdiBpbiBkZW4gQXJtIHBpc3Nlbiwgb2huZSBkYXMgRHUgdG90CnVtZmFlbGxzdC4KTGV0enRlbmRsaWNoIGFlbmRlcnQgZGFzIHdpZXdhc3dvIG5pY2h0cyBhbiBkZXIgYmVyZWNodGlndGVuIEJlLQp6ZWljaG51bmcgUHJvc3RpdHVpZXJ0ZXIuIElzdCBlaW5lIFNhY2hlLCBMZWlzdHVuZyB6dSB2ZXJrYXVmZW4sCm5lbm50IHNpY2ggYXVjaCBKb2IsIG9kZXIgZGVuIEtvZXJwZXIgc2VsYnN0LgoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQmx1dGdydXBwZS4uLi4gKEtlbGx5YnVuZHksIDIwLiBKYW4gMTk5OSwgMjM6MDk6NTIpOgp+IyEgcm49TWFoYXRtdSBydD05MTY4NTgyMDYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKRGFubiBzY2hsZXBwIGhhbHQgZWluZW4gU2NocmllYiBtaXQgRGlyIHJ1bSwgZGFzcyBEdSBpbSBGYWxsZSBlaW5lcyBGYWxsZXMKa2VpbiBTcGVuZGVyYmx1dCBtb2VjaHRlc3QsIHdlaWwgRHUgZXMgbW9yYWxpc2NoIG5pY2h0IHZlcmFudHdvcnRlbiBrYW5uc3QsCidQcm9zdGl0dXRpb24nIHp1IHVudGVyc3R1ZXR6ZW4uLi5uZWluPyBEdSBtb2VjaHRlc3QgZG9jaCBsaWViZXIgd2VpdGVybGViZW4/CgpEYW5uIHNlaSBsaWViZXIgc3RpbGwKCi0tLT4gc2NobWFycm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1vYmlsY29tIChUZWRkeSwgMjEuIEphbiAxOTk5LCAwMTowMjo1OSk6CkRhbGxzIGVzIHdlbiBpbnRlcmVzc2llcnQsIGljaCBoYWIgZ3JhZCBtYWwgZGllIE1vYmlsY29tIG1pdCBpaHJlbQpQYXVzY2hhbGFuZ2Vib3QgYW5nZXRlc3RldC4KSGllciBtZWluZSBFcmdlYm5pc3NlOgpQaW5nemVpdCAxMDAwIG1zClBhY2tldGxvc3M6IDgsMyUKCnRyYWNlcm91dGU6CnRyYWNlcm91dGUgdG8gMjEyLjgxLjEzNi4yMTEgKDIxMi44MS4xMzYuMjExKSwgMzAgaG9wcyBtYXgsIDQwIGJ5dGUgcGFja2V0cwogMSAgamVmZmVyc29uLnByaW1hLmRlICgxNDEuMzkuMjMyLjEzKSAgMTAzLjIyNyBtcyAgOTkuMzI3IG1zICA5OS43ODMgbXMKIDIgIGRmbi1wcmltYS1ndy5ydWhyZ2ViaWV0LmluZGl2aWR1YWwubmV0ICgxNDEuMzkuMjMyLjE0KSAgMTA5LjUzMSBtcwoxMDkuNTA1IG1zICA5OS44NTcgbXMKIDMgIFVuaS1Eb3J0bXVuZDEuV2lOLUlQLkRGTi5ERSAoMTg4LjEuNi4xODkpICAxMDkuNTY1IG1zICAxNDcuNjY4IG1zCjExMS4xNjEgbXMKIDQgIFpSLUtvZWxuMS5XaU4tSVAuREZOLkRFICgxODguMS4xNjAuMjEpICAxMDkuNjg2IG1zICAxMjkuNTQ1IG1zICAxMjkuODAzCm1zCiA1ICBaUi1IYW5ub3ZlcjEuV2lOLUlQLkRGTi5ERSAoMTg4LjEuMTQ0LjI1KSAgMTA5LjU2MyBtcyAgMTI5LjE5NSBtcwoxMTkuODc3IG1zCiA2ICBJUi1QZXJyeW1hbjEuV2lOLUlQLkRGTi5ERSAoMTg4LjEuMTQ0LjEzOCkgIDIxOS4zODggbXMgIDIxNy45OTQgbXMKMjE5LjcxMyBtcwogNyAgYm9yZGVyY29yZTMtaHNzaTAtMC0wLldhc2hpbmd0b24uY3cubmV0ICgxNjYuNDguNDEuMjQ5KSAgMjE5LjUxNSBtcwoyMjIuNDc3IG1zICAyMTkuNjcwIG1zCiA4ICBocy1jb3JlNi1sb29wYmFjay5XZXN0T3JhbmdlLmN3Lm5ldCAoMTY2LjQ5LjY3LjY1KSAgNTA5LjU4NSBtcyAgMjA5LjU1N21zCjIyOS41MzIgbXMKIDkgIHRlbGVnbG9iZS1pbnRlcm5hdGlvbmFsLldlc3RPcmFuZ2UuY3cubmV0ICgxNjYuNDkuNjcuNzApICAyMzkuNjM1IG1zCjM3OS4zOTEgbXMgIDIwOS43NjYgbXMKMTAgIFRlbGVnbG9iZS5uZXQgKDIwNy40NS4yMTYuMjE4KSAgMzA5LjYwMiBtcyAgMjk5LjUwOSBtcyAgMzg5LjcwNSBtcwoxMSAgRjEtMC0wLmZmbTItYy5hdG0tYmIuZGUgKDYyLjEwNC4xOTYuMTI5KSAgNDQ5LjY0MCBtcyAgNDM5LjYwNCBtcyAgMzk5LjY2MAptcwoxMiAgTDAua2xuMi1jLmF0bS1iYi5kZSAoMjEyLjgxLjE5MS42KSAgMTEwOS41OTIgbXMgIDEwODkuNDMwIG1zICAxMDk5LjY5NyBtcwoxMyAgTDAuZHRtMi1jLmF0bS1iYi5kZSAoMjEyLjgxLjE5MS4xNCkgIDExMzkuNDU5IG1zICAxMTQ5LjU3OSBtcyAgMTEyOS43MDEgbXMKMTQgIGR0bTItZGUuYXRtLWJiLmRlICg2Mi4xMDQuMTk2LjY2KSAgMTExMS44NzIgbXMgIDEwNjkuNzczIG1zICAxMDg5LjczMCBtcwoxNSAgcHBwMDIyNTkuMDEwMTlmcmVlbmV0LmRlICgyMTIuODEuMTM2LjIxMSkgIDEwMjkuOTU5IG1zICAxMDg0LjQ1MiBtcyAqCiAKCgpTb3ZpZWwgZGF6dS4gOi0oKCgKVGVkZHksIHdpcmQgbWFsIGFucnVmZW4gdW5kIGZyYWdlbiBvYiBkYXMgYmVzc2VyIHdpcmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTW9iaWxjb20gKEphbWVzb24sIDIxLiBKYW4gMTk5OSwgMDE6MDU6NDQpOgp+IyEgcm49VGVkZHkgcnQ9OTE2ODgwNTc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2ODgwNTc5CmFjaCBkaWUgYmVpIE1vKmNvbSB0dW4gZG9jaCBudXIgc28gYWxzIG9iIHNpZSBuaWNodCBnZWFobnQgaGFldHRlbiBkYXNzIHNvCnZpZWxlIGlociBQYXVzY2hhbGFuZ2Vib3QgbnV0emVuIHdlcmRlbiwgZGllIGhhbXMgZWluZmFjaCBuaWNodCByZWNodHplaXRpZwpoaW5nZWtyaWVndCBnZW51ZyBCYW5kYnJlaXRlIGhpbnp1c3RlbGxlbgoKaioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTW9iaWxjb20gKFRlZGR5LCAyMS4gSmFuIDE5OTksIDAxOjA2OjMyKToKfiMhIHJuPUphbWVzb24gcnQ9OTE2ODgwNzQ0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2ODgwNTc5CmF1ZiBkZXIgSFAgdm9uIGRlbmVuIHN0YW5kIHdhcyB2b24gbmVyIHZlcmZ1ZW5mZmFjaHVuZyB6dXIgbW9uYXRzbWl0dGUsIGljaAp3ZWlzcyBhYmVyIG5pY2h0LCBvYiBzaWUgZXMgc2Nob24gZ2VtYWNodCBoYWJlbiwgYWJlciBuZW4gcm91dGluZyB1ZWJlciBkaWUKVVNBIGlzIGVoIG11ZWxsLgoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hZWNoc3RlciBWZXJzdWNoOiBNdW5kb3Bob25lIChSaW5nb3IsIDIxLiBKYW4gMTk5OSwgMTI6NDQ6MzcpOgpEaWUgTW9nZWxDb20gaGF0IGVzIGpldHp0IHNjaG9uIGluIHp3ZWkgQW5sYWV1ZmVuIGdlc2NoYWZmdCwgZGVuIE11ZGRlcm4gZXJzdApkZW4gTXVuZCB3YWVzc3JpZyB6dSBtYWNoZW4gdW5kIGRhbm4gaXJnZW5kd2VsY2hlIEhha2VuIHp1IHByYWVzZW50aWVyZW4sIGRpZQpkaWUgQW5nZWJvdGUgbnVyIG5vY2ggaGFsYiBzbyBpbnRlcmVzc2FudCBlcnNjaGVpbmVuIGxhc3NlbiAoc2NobGVjaHRlCkxlaXR1bmdlbiBiZWltIFBhdXNjaGFsLUludGVybmV0enVnYW5nOyBrb3N0ZW5sb3NlIE9ydHNnZXNwcmFlY2hlIG51ciB6dQpNb2dlbENvbS1LdW5kZW4pLgoKR3Jvc3MgYW5rdWVuZGlnZW4ga29lbm5lbiBhbmRlcmUgYWJlciBhdWNoLiBBdWYgd3d3LmludGVycGhvbmUuZGUgd2lyYnQgZWluZQpHZXNlbGxzY2hhZnQgbWl0IGVjaHRlbiBrb3N0ZW5sb3NlbiBPcnRzZ2VzcHJhZWNoZW4gYWIgZGVtIDAxLjAzLjE5OTkuCgpOYWphLCBBbmt1ZW5kaWd1bmdlbiBoYWx0LiBJY2ggcGVyc29lbmxpY2ggZ2xhdWJlIGphLCBkYXNzIGRlciBncm9zc2UgSGFrZW4Kbm9jaCBuYWNoZ2VsaWVmZXJ0IHdpcmQuIEFiZXIgdmllbGxlaWNodCBnaWJ0cyBoaWVyIGphIE11ZGRlciwgZGllIG5vY2ggZ2VybmUKdm9uIG5pZWRyaWdlbiBUZWxlZm9ucmVjaG51bmdlbiB0cmFldW1lbiBtb2VjaHRlbiAuLi4gOy0pCgpSaW5nb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYWVjaHN0ZXIgVmVyc3VjaDogTXVuZG9waG9uZSAoTm9ubmUsIDIxLiBKYW4gMTk5OSwgMTI6NDY6MjgpOgp+IyEgcm49UmluZ29yIHJ0PTkxNjkyMjY3NyByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjkyMjY3NwptbWgsIGlzdCBkYXMgZGllIGdlc2VsbHNjaGFmdCBtaXQgZGVyIHdlcmJ1bmcgYWxsZSAzMCBtaW51dGVuPyBpY2ggd2Vpc3MKbmljaHQsIHdpZSBpY2ggZGFzIG1laW5lbSBtb2RlbSBiZWlicmluZ2UgZGllIHJhdXN6dXNjaG5laWRlbi4gYWJlciB3ZW5uIGRpZQppbSBmbGFzY2hlbiBtb21lbnQga29tbXQsIGlzdCBkYXMgd29obCBhdWNoIG5peCBmdWVyIG11ZGRlciA6KAoKTm9ubmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hZWNoc3RlciBWZXJzdWNoOiBNdW5kb3Bob25lIChSaW5nb3IsIDIxLiBKYW4gMTk5OSwgMTI6NTU6MzApOgp+IyEgcm49Tm9ubmUgcnQ9OTE2OTIyNzg4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2OTIyNjc3Ck5lZWVlLCBkYXMgaXN0IHdpZWRlciBuZSBhbmRlcmUuIERpZSB3b2xsZW4gZnVlciBkaWUgV2VyYnVuZyBzb2dhciBub2NoIG5lCmVpbm1hbGlnZSBCZWFyYmVpdHVuZ3NnZWJ1ZWhyIHZvbiBydW5kIDQwLC0gaGFiZW4gb2RlciBzbyAuLi4gOi0vCgpEaWUgSW5mb3JtYXRpb25lbiwgZGllIGljaCBoYWJlLCBzdGFtbWVuIGF1cyBkZW0gVGVsdGFyaWYtTmV3c2xldHRlcjoKCiA2LiBNdW5kb3Bob25lIChmcnVlaGVyIEludGVycGhvbmUsIEludGVybmV0LUhvbWVwYWdlOgogICAgaHR0cDovL3d3dy5pbnRlcnBob25lLmRlLykgcGxhbnQsIGFiIDEuIE1hZXJ6IGtvc3Rlbmxvc2UKICAgIE9ydHNnZXNwcmFlY2hlIGFuenViaWV0ZW4uICBBdXNzZXJoYWxiIGRlcyBPcnRzbmV0emVzIHNjaGxhZWd0IGFiZXIKICAgIHNvZm9ydCBlaW4gRmVybnRhcmlmIHZvbiAxOCBQZmVubmlnIHBybyBNaW51dGUgenUuICBEaWUgRnJhZ2UsCiAgICBpbiB3ZWxjaGVuIFN0YWVkdGVuIG1hbiBiZWdpbm5lbiB3ZXJkZSwgYmVhbnR3b3J0ZXRlIG1hbiBkYW1pdCwKICAgIGRhc3MgZGVyIERpZW5zdCBmbGFlY2hlbmRlY2tlbmQgZ2VwbGFudCBzZWkuICBEYXMgaXN0IGVpbgogICAgZ2V3YWx0aWdlcyBWb3JoYWJlbi4gIEFsbGVyZGluZ3Mgc3RlaHQgV29ybGRjb20sIGVpbmUgZGVyIGdyb2Vzc3RlbgogICAgVGVsZWZvbmZpcm1lbiB3ZWx0d2VpdCwgaGludGVyIE11bmRvcGhvbmUuICBTb2JhbGQgYWxsZSBEYXRlbgogICAgdm9ybGllZ2VuLCB3aXJkIE11bmRvcGhvbmUgYXVmIHRlbHRhcmlmIG5hY2hnZXRyYWdlbiB3ZXJkZW4uCgpJY2ggd2Vpc3MgbnVyLCBkYXNzIHNpZSBtaXQgRmVybmdlc3ByYWVjaGVuIGFuIG1pciBuaWNodCB2aWVsIHZlcmRpZW5lbgp3ZXJkZW4uIERpZSBrb2VubnRlbiBzaWUgbWVpbmV0d2VnZW4gYXVmIGVpbmUgTWFyayBwcm8gTWludXRlIHNldHplbiAuLi4gOy0pCgpSaW5nb3IsIHdhcnRldCB0cm90emRlbSBldHdhcyBza2VwdGlzY2ggYWIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOYWVjaHN0ZXIgVmVyc3VjaDogTXVuZG9waG9uZSAoTm9ubmUsIDIxLiBKYW4gMTk5OSwgMTI6NTc6NTYpOgp+IyEgcm49UmluZ29yIHJ0PTkxNjkyMzMzMCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjkyMjY3NwpEYXMgd2FlcmUgRElFIGxvZXN1bmcuIFdpciBoYWJlbiBlaW5lbiBlaWdlbmVuIGFuc2NobHVzcyBmdWVyIGludGVybmV0LCBkYQprb2VubmVuIGRpZSB3aXJrbGljaCBsYW5nZSB3YXJ0ZW4uIEFiZXIgd2FzIGljaCBhbiBnZXNjaGFlZnRzcHJha3Rpa2VuIGdlaG9lcnQKaGFiZSwgd2lyZCBtZWluIHZlcnRyYWcgbmFjaCBlaW5lbSBtb25hdCBnZWt1ZW5kaWd0IDooIEFtIGJlc3RlbiBpY2ggemllaGUgaW4KZGllIFVuaS4gRGEgd2lyZCB3b2hsIGlyZ2VuZHdvIGVpbiBwbGF0eiBmdWVyIG1laW5lIG1hdHJhemUgc2VpbiA7LSkKCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmFlY2hzdGVyIFZlcnN1Y2g6IE11bmRvcGhvbmUgKFBhZHJlaWMsIDIxLiBKYW4gMTk5OSwgMTM6MDI6NTcpOgp+IyEgcm49Tm9ubmUgcnQ9OTE2OTIzNDc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2OTIyNjc3CkxldXRlIGxldXRlLCBob2VydCBkb2NoIG1hbCBhdWYgenUgdHJhZXVtZW4hCktvc3Rlbmxvc2UgT3J0c2dlc3ByYWVjaGUgd2lyZCBlcyBoaWVyIGluIERldXRzY2hsYW5kIGF1ZiBEYXVlciBuaWNodCBnZWJlbgooYXVzc2VyIGdnZi4gZHVyY2ggZWluZSBrcmFzc2UgR3J1bmRnZWJ1ZWhyKS4gRGVyIGdyb3NzZSBVbnRlcnNjaGllZCB6d2lzY2hlbgp1bnMgdW5kIEFtZXJpa2EgaXN0IG5hZW1saWNoLCBkYXMgd2lyIGhpZXIgcHJpdmF0IF93ZXNlbnRsaWNoXyB3ZW5pZ2VyCkZlcm5nZXNwcmFlY2hlIGZ1ZWhyZW4sIGRhIGRpZSBNZW5zY2hlbiBuaWNodCBzbyBmbGV4aWJlbCBzaW5kIHVuZCB2aWVsZSBpbW1lcgppbiBpaHJlcmUgSGVpbWF0c3RhZHQgKGJlaSBpaHJlbiBWZXJ3YW5kdGVuKSB3b2huZW4gYmxlaWJlbi4gU29sbHRlIGVzIGRvY2gKZWluZSBUZWxlZm9uZ2VzZWxsc2NoYWZ0IHVua2x1Z2Vyd2Vpc2UgdHVuLCBzbyB3aXJkIGRlciBNYXJrdCBkaWVzIGJlcmVpbmlnZW4KdW5kIGRpZSBGaXJtYSBpbiBrdWVyemVzdGVyIFplaXQgcGxlaXRlIGdlaG4hCgpQYWRyZWljCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCbHV0Z3J1cHBlLi4uLiAoTWFoYXRtdSwgMjEuIEphbiAxOTk5LCAxNDowODo1Mik6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTkxNjg3Mzc5MiByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjc0MzM5NwpXZW5uIGljaCBpbicgUHVmZiBnZWgsIHVudGVyc3R1ZXR6ZSBpY2ggZGFzIGF1Y2guIE1hbiBzb2xsdGUgYWJlciBkaWUgRGluZ2UKYmVpbSBOYW1lbiBuZW5uZW4uIEljaCB3ZXJkZSBrYXVtIHNhZ2VuOiBJY2ggZ2VoZSB6dSBlaW5lciBGcmV1bmRpbiA6KQoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogQmx1dGdydXBwZS4uLi4gKEtlbGx5YnVuZHksIDIxLiBKYW4gMTk5OSwgMTQ6MTE6NTYpOgp+IyEgcm49TWFoYXRtdSBydD05MTY5Mjc3MzIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKTmFjaCBkZWluZXIgRGVmaW5pdGlvbiBrb2VubnRlIGViZW5zb2d1dCBqZWRlIFBlcnNvbiBwcm9zdGl0dWllcnRlL3Igc2VpbiwgZGllCmplZGVuIG1vcmdlbiBhdWZzdGVodCB1bmQgenVyIGFyYmVpdCBzY2hsYXBwdC4KTmEgZmVpbiBsZWJlbiB3aXIgdm9tIFNvemlhbGFtdCwgaGF1cHRzYWNoZSB3aXIgaGFsdGVuIGRpZSBNb3JhbCBob2NoIC4uLgoqaXJvbmllIG9mZioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEJsdXRncnVwcGUuLi4uIChNYWhhdG11LCAyMS4gSmFuIDE5OTksIDE0OjIyOjU5KToKfiMhIHJuPUtlbGx5YnVuZHkgcnQ9OTE2OTI3OTE2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2NzQzMzk3CkR1IGthbm5zdCBuaWNodCBsZXNlbj8gTWVpbiB2b3JsZXR6dGVyIEFydGlrZWwgbWFjaHQgZGVuIGZlaW5lbiBVbnRlcnNjaGllZC4KCk1haGF0bXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJsdXRncnVwcGUuLi4uIChLcmV0ZWssIDIxLiBKYW4gMTk5OSwgMTc6MzM6MTgpOgp+IyEgcm49S2VsbHlidW5keSBydD05MTY4MzIyOTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKUXVhcmshCkRpZSBzZWx0ZW5zdGUgQmx1dGdydXBwZSBpc3QgQUItLCB1bmQgZGEgaGFzdCBEdSBSZWNodCwgZGEgd2VyZGVuIHdvaGwKbmljaHQgc28gdmllbGUgU3BlbmRlciBydW1sYXVmZW4uIEFiZXI6IE1pdCBkaWVzZXIgc2VsdGVuc3RlbiBCbHV0Z3J1cHBlCmJpc3QgRHUgZGVyIGlkZWFsZSBFbXBmYWVuZ2VyLCBkYSBEdSAoenVtaW5kZXN0IHRoZW9yZXRpc2NoKSBKRURFIEFOREVSRQpCbHV0Z3J1cHBlIHZlcnRyYWVnc3QhIFNwcmljaDogV2VubiBzaWUgbWljaCBtYWwgZWlubGllZmVybiwgZGFubiBrb2VubmVuCnNpZSBtaXIgcmVpbnB1bXBlbiwgd2FzIGdyYWQgZGEgaXN0IDstKQogICAgICAgICAgCiAgICAgICAgICBrcmV0ZWtAYW50aXNvY2lhbC5jb20KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCbHV0Z3J1cHBlLi4uLiAoV3VyemVsLCAyMS4gSmFuIDE5OTksIDE5OjA1OjA0KToKfiMhIHJuPUtyZXRlayBydD05MTY5Mzk5OTggcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKd2FzIGdyYWQgZGEgaXN0PyBoYXN0IGR1IGVpbiBnbHVlY2ssIGRhc3MgaWNoIG5pY2h0IHNwZW5kZSA6KQpuZWUsIGVocmxpY2gsIG1pdCBtZWluZXIgYnJ1ZWhlIHd1ZXJkZSBpY2ggbmljaHQgbnVyIGtlaW4gZ2VsZCBiZWtvbW1lbiwKc29uZGVybiBtdWVzc3RlIHdvaGwgZWhlciBtaXQgc2NoYWRlbnNlcnNhdHpmb3JkZXJ1bmdlbiByZWNobmVuIDopCgp3dXJ6ZWwgbGVidCBnZWxlZ2VudGxpY2ggZXR3YXMgdW5nZXN1bmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE5hZWNoc3RlciBWZXJzdWNoOiBNdW5kb3Bob25lIChBY3JpbW9uLCAyMi4gSmFuIDE5OTksIDE1OjExOjMxKToKfiMhIHJuPVBhZHJlaWMgcnQ9OTE2OTIzNzc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2OTIyNjc3ClBhZHJlaWMsIGJpdHRlIHNldHplICJmbGV4aWJlbCIgbmljaHQgbWl0ICJyZWlzZWZyZXVkaWciIGdsZWljaC4KRmxleGliZWwgYmVkZXV0ZXQgd2FzIGdhbnogQW5kZXJlcy4KImZsZXhpYmVsIiBiZWRldXRldCAiYW5wYXNzdW5nc2ZhZWhpZyIgb2RlciAiYmllZ3NhbSIsIGFiZXIgKm5pY2h0KgoicmVpc2VmcmV1ZGlnIi4KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlciBlcmtsYWVydCBkZW4gV29ydHNjaGF0ei4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IE5hZWNoc3RlciBWZXJzdWNoOiBNdW5kb3Bob25lIChXb29keSwgMjIuIEphbiAxOTk5LCAxNzoxNTo0Mik6Cn4jISBybj1BY3JpbW9uIHJ0PTkxNzAxNzg5MSByZz1hbnplaWdlbgp+IyEgdGlkPTkxNjkyMjY3NwpXb3J0c2NoYXR6IHNjaG9lbiB1bmQgZ3V0LCBhYmVyIGVpbiBVbXp1ZyBpbiBlaW4gd2VpdCBlbnRmZXJudGVzCkdlYmlldCBzZXR6dCBzaWNoZXJsaWNoIEZsZXhpYmlsaXRhZXQgdm9yYXVzLCBkYSBtYW4gc2ljaCBhbiBkaWUKdmVyYWVuZGVydGVuIEdlZ2ViZW5oZWl0ZW4gQU5QQVNTRU4gbXVzcy4uLgoKQWxzbyB3ZW5uIER1IHNjaG9uIGktVHVlcGZjaGVuIHJlaXRlbiBtdXNzdCwgbWFjaHMsIHdvIGVzIFNpbm4gaGF0Li4uIDopCgoKV29vZHkuLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQmx1dGdydXBwZS4uLi4gKEFzbW9kaXMsIDIyLiBKYW4gMTk5OSwgMjA6MTE6MTEpOgp+IyEgcm49S2VsbHlidW5keSBydD05MTY4MzIyOTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY3NDMzOTcKTnVuamEsIGRpZSBLbGluaWtlbiBoYWJlbiAnc3RhdGlzdGlzY2ggZ2VzZWhlbicgaW1tZXIgbWVociBCbHV0a29uc2VydmVuIHZvbgpzZWx0ZW5lbgpCbHV0Z3J1cHBlbiBhdWYgTGFnZXIgYWxzIHZvbiBkZW4gJ2dld2hubGljaGVuJyBCbHV0Z3J1cHBlbiAoYW50ZWlsc21hZXNzaWcKZ2VzZWhlbikuCkRpZSBtZWlzdGVuIEJsdXRrb25zZXJ2ZW4gd2VyZGVuIGRvY2ggZWggenUgTWVkaWthbWVudGVuIHVuZCBzb25zdGlnZW0gS3JhbQp2ZXJhcmJlaXRldC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hZWNoc3RlciBWZXJzdWNoOiBNdW5kb3Bob25lIChBc21vZGlzLCAyMi4gSmFuIDE5OTksIDIwOjIwOjU1KToKfiMhIHJuPVJpbmdvciBydD05MTY5MjMzMzAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY5MjI2NzcKSG1tLCBuZWhtZW4gZGllIG5pY2h0IGVpbmVuIFBhdXNjaGFsYmV0cmFnPyBPZGVyIHdpZSB3b2xsZW4gc2llIGRhcwpmaW5hbnppZXJlbiA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYWVjaHN0ZXIgVmVyc3VjaDogTXVuZG9waG9uZSAoUmluZ29yLCAyMy4gSmFuIDE5OTksIDE0OjEwOjI0KToKfiMhIHJuPUFzbW9kaXMgcnQ9OTE3MDM2NDU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE2OTIyNjc3CkFsc28gZGFzcyBkaWUgR2VzZWxsc2NoYWZ0IGVpbmUgd2llIGF1Y2ggaW1tZXIgZ2VhcnRldGUgR3J1bmRnZWJ1ZWhyIG5laG1lbgp3aXJkLCBkYXMgaGFiIGljaCBlaW5mYWNoIG1hbCB2b3JhdXNnZXNldHp0LiA7LSkKCkJsb3NzIG11c3MgYmVpIGVpbmVyIGZlc3RlbiBHcnVuZGdlYnVlaHIgc2VsYmlnZSBzY2hvbiB2ZXJkYW1tdCBob2NoIGxpZWdlbiwKZGFtaXQgZXMgc2ljaCBmdWVyIGVpbmVuIE11ZGRlciAqbmljaHQqIGxvaG5lbiB3dWVyZGUuCgpXYXMgYWxsZXJkaW5ncyBnZXdpc3NlIFByb3ZpZGVyIHNhZ2VuLCBzb2JhbGQgc2llIGVpbmVuIFBvcnQgcHJvIEt1bmRlbgpicmF1Y2hlbiwgd2VpbCBzaWNoIGtlaW5lciBtZWhyIGF1c2xvZ2d0LCBzdGVodCBhdWYgZWluZW0gZ2FueiBhbmRlcmVuIEJsYXR0Ci4uLgoKUmluZ29yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOYWVjaHN0ZXIgVmVyc3VjaDogTXVuZG9waG9uZSAoQW5hdG9sLCAyMy4gSmFuIDE5OTksIDE3OjM5OjU4KToKfiMhIHJuPVJpbmdvciBydD05MTcxMDA2MjQgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTY5MjI2NzcKKnNldWZ6KiBJY2ggaGFldHRlIGdlcm5lIGVpbiAuZGUtUGVuZGFudCBkZXIgVGVsZWthYmVsLmF0IC4uLgoKQW5hdG9sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVpbmUgVEYgUGFrZXRlIGZ1ZXIgYWxsZSAoTWVzaXJpaSwgMjUuIEphbiAxOTk5LCAxMzozMzozMCk6CkhhbGxvIElocnMsCgpuYWNoZGVtIGljaCBqZXR6dCA0IEphaHJlIHRmLW1ha3JvcyBnZXNjaHJpZWJlbiBoYWJlLCBkaWUgc2ljaCBpbQpMYXVmZSBkZXIgWmVpdCBpbiBrb21wbGV0dGUgUGFrZXRlIGVudHdpY2tlbHQgaGFiZW4sIHdpbGwgaWNoIGpldHp0CmRpZSBnYW56ZSBBcmJlaXQgYXVjaCBhbmRlcmVuIHp1Z2FlbmdsaWNoIG1hY2hlbi4KSGllciBlaW5lIGt1cnplIFp1c2FtbWVuZmFzc3VuZzoKKiBNYWtyb3MsIGRpZSBkYXMgTGFkZW4sIE5ldWxhZGVuIHVzdy4gdm9uIE1ha3JvZGF0ZWllbiB2ZXJlaW5mYWNoZW4KKiBrZXktdmFsdWUgTGlzdGVuIG1pdCB2aWVsZW4gWnVncmlmZnNmdW5rdGlvbmVuICh3ZXJkZW4gYXVjaCB2b24gbWlyCiBleHRlbnNpdgogZ2VudXR6dCkKKiBrb21wbGV0dGVzIEhpbGZlc3lzdGVtICh2ZXJnbGVpY2hiYXIgbWl0IGRlbSB0ZiBoaWxmZXN5c3RlbSwgYWJlcgogICAgICAga29tcGxldHQgaW4gdGYgZ2VzY2hyaWViZW4pCiogaHRtbC1Eb2t1cyBrb2VubmVuIGF1cyBkaWVzZXIgSGlsZmUgZ2VuZXJpZXJ0IHdlcmRlbiAod3VyZGVuIGF1Y2ggOykKKiB1bWZhbmdyZWljaGVzIFdlZ2VzeXN0ZW0gbWl0IHZpZWwgWnVzYXR6ZnVua3Rpb25hbGl0YWV0CiogbnVldHpsaWNoZSBBbndlbmR1bmdlbiBkZXIga2V5LXZhbHVlIGxpc3RlbgoqIFNwaWVsZXIgUHJvcGVydGllcywgZGllIHVlYmVyYWxsIGdlbnV0enQgd2VyZGVuIGtvZW5uZW4KCkFsbCBkYXMgaXN0IHp1IGZpbmRlbiB1bnRlciAodWVicmlnZW5zIGxpZWd0IGRvcnQgYXVjaCBkaWUKICAgICAgIHRmLWh0bWwtZG9rdSkKaHR0cDovL3d3dy5pbmYudHUtZHJlc2Rlbi5kZS9+bWgxNC90ZgoKS29tcGxldHQgbWl0IFF1ZWxsY29kZSB1bmQgdW1mYW5ncmVpY2hlciBIaWxmZSAoMTYwIGtiIGh0bWwgZG9rdSA7KS4KCkZhbGxzIHNpY2ggaXJnZW5kamVtYW5kIGRhZnVlciBpbnRlcmVzc2llcmVuIHd1ZXJkZSwgd3VlcmRlIGljaCBtaWNoCmZyZXVlbi4KCk1haWx0IG1pciwgKGFtIGJlc3RlbiBhbiBtaDE0QGluZi50dS1kcmVzZGVuLmRlKSB3ZW5uIGlociBJZGVlbiBoYWJ0LApGZWhsZXIgZmluZGV0LCB1c3cuCgpNZXNpcmlpLCBURmxlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1laW5lIFRGIFBha2V0ZSBmdWVyIGFsbGUgKFJpbmdvciwgMjUuIEphbiAxOTk5LCAxMzozNzowMik6Cn4jISBybj1NZXNpcmlpIHJ0PTkxNzI3MTIxMCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNzI3MTIxMApBbHMgRHUgZGFzIFBha2V0IGF1ZiBkZXIgVEYtTWFpbGluZ2xpc3QgYW5nZWt1ZW5kaWd0IGhhc3QsIGZhbmQgaWNoIGVzIHNjaG9uCi4uLiBzYWdlbiB3aXIgLi4uIGRyZWlzdC4KCkFiZXIgamV0enQgaW0gTUcgYXVjaCBub2NoIG9lZmZlbnRsaWNoIGF1ZiBlaW5lIFNlaXRlIHp1IHZlcndlaXNlbiwgZGllIHouQi4KZWluIGtvbXBsZXR0ZXMgVW50ZXJzdWNoZXNrcmlwdCBiZXJlaXRoYWVsdCwgaXN0IHNjaG9uIGVpbmUgb2ZmZW5lCkhlcmF1c2ZvcmRlcnVuZyBhbiBkZW4gbGVpZGVyIG5pY2h0IHZvcmhhbmRlbmVuIFNoZXJpZmYuCgpXYXMgd2lsbHN0IER1IGRhbWl0IGVycmVpY2hlbj8KClJpbmdvci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWVpbmUgVEYgUGFrZXRlIGZ1ZXIgYWxsZSAoUGFyYWNlbHN1cywgMjUuIEphbiAxOTk5LCAxMzozNzo1Myk6Cn4jISBybj1SaW5nb3IgcnQ9OTE3MjcxNDIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE3MjcxMjEwCkVyIHdpbGwgZ2Vsb2VzY2h0IHdlcmRlbiwgaXN0IGRvY2gga2xhci4KClBhcmEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1laW5lIFRGIFBha2V0ZSBmdWVyIGFsbGUgKFBhdHJ5biwgMjUuIEphbiAxOTk5LCAxMzo0MDozNik6Cn4jISBybj1SaW5nb3IgcnQ9OTE3MjcxNDIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE3MjcxMjEwCmRhcyBpc3QgZWluIHVudGVyc3VjaGVzeXN0ZW0sIGtlaW4gdW50ZXJzdWNoZXNjcmlwdCAoYXVjaCB3ZW5uIGVzIGRhcwogYXVjaCBrb2VubnRlKS4gbWFuY2hlIHNjaHJlaWJlbiBoYWx0IG5vY2ggenUgdW50ZXJzdWNoZW5kZSBkZXRhaWxzCm1pdCBkZW0gc3RpZnQgYXVmIChvZGVyIG1lcmtlbiBlcyBzaWNoPyBuYSBqYSksIGhpZXIgbWFjaHRzIGRlciBjb21wdXRlci4KZXMgbWFjaHQgc28genVtaW5kZXN0IG1laHIgc3Bhc3MgdW5kIG1hbiBrYW5uIHNpY2ggYXVmcyBsZXNlbgprb256ZW50cmllcmVuLgoKLS0tLS0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKODggKE1lc2lyaWksIDI1LiBKYW4gMTk5OSwgMTM6NDI6MzApOgp+IyEgcm49UGF0cnluIHJ0PTkxNzI3MTYzNiByZz1hbnplaWdlbgp+IyEgdGlkPTkxNzI3MTIxMApFcyBpc3Qga2VpbiBVbnRlcnN1Y2hlIC0gU2tyaXB0ISBFcyBpc3QgbGVkaWdsaWNoIGVpbmUgaGlsZmUsIHdpZSBlaW4genUKZ3Jvc3NlcyBHZWhpcm4gOykKTWVzaXJpaQosCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogODggKEFuYXRvbCwgMjUuIEphbiAxOTk5LCAxMzo1MDowOCk6Cn4jISBybj1NZXNpcmlpIHJ0PTkxNzI3MTc1MCByZz1hbnplaWdlbgp+IyEgdGlkPTkxNzI3MTIxMApWaWVsbGVpY2h0IHNvbGx0ZXN0IER1IGFsbGVyZGluZ3MgZGF2b3Igd2FybmVuLCBkYXNzIG1hbiBiZWkgRmVobGdlYnJhdWNoCmRpZXNlcyBTa3JpcHRzIGhpZXIgaW4gZGl2ZXJzZW4gTG9nZmlsZXMgYXVmdGF1Y2h0IC0gbWl0IGRlbSBFcmdlYm5pcywgc2ljaApwbG9ldHpsaWNoIG9obmUgRm9yc2NoZXJwdW5rdGUgdW5kIGdlTWJhbmlzaHQgd2llZGVyenVmaW5kZW4uCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IDg4IChNZXNpcmlpLCAyNS4gSmFuIDE5OTksIDEzOjUzOjU1KToKfiMhIHJuPUFuYXRvbCBydD05MTcyNzIyMDggcmc9YW56ZWlnZW4KfiMhIHRpZD05MTcyNzEyMTAKSmEgZGVuIERpc2NsYWltZXIgaGFiIGljaCB3ZWdnZWxhc3Nlbiwgd2VpbCBpY2ggZGVua2UsIGRhc3MgZGllIEJlbnV0emVyIGdlbnVnCmluIGRlciBCaXJuZSBoYWJlbi4gCk1lc2lyaWkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IDg4IChSaW5nb3IsIDI1LiBKYW4gMTk5OSwgMTM6NTY6NDMpOgp+IyEgcm49TWVzaXJpaSBydD05MTcyNzI0MzUgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTcyNzEyMTAKU2llIGhhYmVuIGltIFp3ZWlmZWxzZmFsbCBuaWNodG1hbCBnZW51ZyBpbiBkZXIgQmlybmUsIHVtIGRhcywgd2FzIHNpZSBkYQpsZXNlbiwgYXVjaCB6dSB2ZXJzdGVoZW4uIAoKV2VubiBzaWUgZXMgZGVubiBsZXNlbi4KCgpadW1pbmRlc3QgaGFiIGljaCBkaWUgRXJmYWhydW5nIGdlbWFjaHQgLi4uCgpSaW5nb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhYnkncyBXZWJzZWl0ZSAoTWVzaXJpaSwgMjUuIEphbiAxOTk5LCAxNjozNzowOCk6CkhhbGxvIExldXRlLApmYWxscyBlcyBqZW1hbmRlbiBpbnRlcmVzc2llcnQsIHdpZSBkYXMgQmFieSBlaW5lcyBDaGFvdGVuIGF1c3NpZWh0LCBkYW5uIAprb2VubnQgaWhyIEV1Y2ggbWFsIHNjaGxhdSBtYWNoZW46Cmh0dHA6Ly93d3cuaW5mLnR1LWRyZXNkZW4uZGUvfm1oMTQvc2VsaW5hCgpWaWVsbGVpY2h0IGtvbW10IGlociBhdWYgZGVuIEdlc2NobWFjayA7KQpNZXNpcmlpLCBQYXBpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiA4OCAoTWFoYXRtdSwgMjYuIEphbiAxOTk5LCAwODo1NDo0Mik6Cn4jISBybj1SaW5nb3IgcnQ9OTE3MjcyNjAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE3MjcxMjEwCk5hLCBkaWUgd2VyZGVuIGRhbm4gYXVjaCBsZWljaHRlIEluc3RhbGxhdGlvbnNwcm9ibGVtZSBoYWJlbiA6KSBJY2gga2FlbXBmZQppbW1lciBub2NoIG1pdCBNZXNpcmlpcyBwcmUtQmV0YS4gQWJlciBzZWl0IGRlbSBEaW5nIGdlaHQgZXMgbWVpbmVuCkZpbmdlcm4gdW5kIGRlciBNYXVzIHdlc2VudGxpY2ggYmVzc2VyIDstKQoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWVpbmUgVEYgUGFrZXRlIGZ1ZXIgYWxsZSAoUWl0ZXNzLCAyOS4gSmFuIDE5OTksIDE4OjQ3OjIxKToKfiMhIHJuPVBhdHJ5biBydD05MTcyNzE2MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTcyNzEyMTAKYWxzbywgaWNoIG1lcmtlIG1pciBkaWUgZGV0YWlscywgZGllIGljaCB1bnRlcnN1Y2hlbiB3aWxsLCB1bmQgaWNoIHVudGVyc3VjaGUKYXVjaCBhbGxlcyBncm9zc2dlc2NocmllYmVuZSB1bmQgYWxsZSBtb2VnbGljaGtlaXRlbiBkaWUgdm9yaGFuZGVuIHNlaW4Ka29lbm50ZW4sIGF1Y2ggd2VubiBzaWUgYWxzIGRldGFpbC9ncm9zc2dlc2NocmllYmVuZXMgd29ydC9rbGVpbmdlc2NocmllYmVuZXMKd29ydCBuaWNodCB2b3JoYW5kZW4gc2luZC4gemIgaGltbWVsIG9kZXIgYm9kZW4gZGVja2Ugd2FuZC4uLgpRSSAtIGJsdWVtY2hlbnBmbHVlY2tlbmRlcyB1bnRlcnN1Y2hlc2NyaXB0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJhYnkncyBXZWJzZWl0ZSAoUWl0ZXNzLCAyOS4gSmFuIDE5OTksIDE4OjUyOjQ3KToKfiMhIHJuPU1lc2lyaWkgcnQ9OTE3MjgyMjI4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE3MjgyMjI4CmFsc28sIGljaCBiaW4gZW50dGFldXNjaHQuCmpldHp0IGRhY2h0ZSBpY2gsIGRhIGtvbW10IHdhcyByaWNodGlnIHdpdHppZ2VzLCB1bmQgZGFubiBpc3NlcyBkb2NoIG51ciBzb24KMDgvMTUtYmFieS4Kc2VociBpbnRlcmVzc2FudAoKUUkqKiBmcmFndCBzaWNoLCB3aWVzbyBtYW4gc293YXMgaW0gaW50ZXJuZXQgdmVyYnJlaXRldC4uLig/KSAtIHdlbXMgZ2VmYWVsbHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJhYnkncyBXZWJzZWl0ZSAoTWFoYXRtdSwgMjkuIEphbiAxOTk5LCAyMTowOToyNik6Cn4jISBybj1RaXRlc3MgcnQ9OTE3NjM1OTY3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE3MjgyMjI4Ck1lc2lyaWlzIEJhYnkgaXN0IG1pciBhbGxlbWFsIG5vY2ggbGllYmVyLCBhbHMgRGVpbmUgZXZlbnR1ZWxsZW4uCipmbGFtZSBvZmYqCgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCYWJ5J3MgV2Vic2VpdGUgKFJhbnRhbnBsYW4sIDMwLiBKYW4gMTk5OSwgMTI6MDI6MzkpOgp+IyEgcm49TWFoYXRtdSBydD05MTc2NDQxNjYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTcyODIyMjgKRGllcyBpc3QgZWluZSBBbnplaWdlICEKCkljaCBnZWJlIGJla2FubnQgOgoKSWhyIHNlaWQgYWxsZSB2b2VsbGlnIGJla2xvcHB0IDstKSAhCgpHcmltbWJvcm4gbGVnIG1pY2ggbmFjaCBzY2htYXJyZW4gYWJlciB6YWNraWcgIQoKT2UqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNVUQgamV0enQgYXVjaCBpbSBJUkMtQ2hhdCBpbiAjTXVkLmRlIChHcmltbWJvcm4sIDMxLiBKYW4gMTk5OSwgMjM6MDE6MTApOgp+IyEgb249RmFzdHkgb3Q9OTE3NTUxNzMyIG9nPWFsbGdlbWVpbmVzCkRhcyBNVUQgV3VuZGVybGFuZCBoYXQgZnVlciBBTExFIGRlbiBJUkMtQ2hhbm5lbCAjTXVkLmRlIGF1ZmdlbWFjaHQuLi5XaXIKaG9mZmVuIGlobiBtaXQgRVVDSCB6dXNhbW1lbiBhdWZiYXVlbiB6dSBrb2VubmVuIHVuZCBiaXR0ZW4gZGFydW0gQUxMRSxkaWUKYWN1aCBpbSBJUkMgdmVydHJldGVuIHNpbmQgaW4gZGllc2VuIENoYW5uZWwgenUga29tbWVuIHVuZCB1bnMgYmVpIGRlbSBBVWZiYXUKZGllc2VzIENoYW5uZWxzIHp1IGhlbGZlbi4uLldpciBrb2VubmVuIHVucyBuYXR1ZXJsaWNoIG5pY2h0IHVtIGFsbGUgTXVkcwprdWVtbWVybiB1bmQgdWViZXJhbGwgV2VyYnVuZyBtYWNoZW4sYWxzbyBiaXR0ZW4gd2lyIGV1Y2ggYXVjaCBlaW4gd2VuaWcgZGllCmRpZSBQb3B1bGFyaXRhZXQgZGllc2VzIENoYW5uZWxzIHp1IGt1ZW1tZXJuIHVuZCBub2NoIExldXRlIGluIGRlbiBDaGFubmVsCmhvbHQhI011ZC5kZSBzb2xsIGhhbHQgZnVlciBhbGxlIE11ZGRlciBlaW4gVHJlZmZwdW5rdCBzZWluLHVtIHNpY2ggaW0gYmVyZWljaApNVUQgdWViZXIgYWxsZXMgenUgdW50ZXJoYWx0ZW4genUga29lbm5lbiFJbSBtb21lbnQgbGFldWZ0IGRlciBDaGFubmVsIGdhbnoKZ3V0IVVuZCB3aXIgaG9mZmVuIG1pdCBldXJlciBIaWxmZSBlaW5lbiB3aXJrbGljaCBhbnNwcmVjaGVuZGVuIE1VRC1DaGFubmVsCmF1ZmVyc3RlaGVuIHp1IGxhc3NlbiBkdXJjaCBkZW4gd2lyIGRhcyBNVUQgbmF0dWVybGljaCBhdWNoIGludGVycmVzc2FudGVyIHVuZApwb3B1bGFlcmVyIG1hY2hlbiB1bmQgc28gYXVjaCBhbmRlcmVuIG11ZGRlcm4gYW5kZXJlIG11ZHMgenUgdmVybWl0dGVsbiBvZGVyCmVpbmZhY2ggbnVyIHNvIGxhYmVybiB1bmQgZnVuIGhhYmVuLi4uV2lyIGhvZmZlbiBldWNoIHphaGxyZWljaCBpbiAjbXVkLmRlCndpbGxrb21tZW4genUgaGVpc3NlbiB1bmQgZ3JhZGUgbWl0IGRlbiBoaGVyIGdlc3RlbGx0ZW4gTGV1dGVuIGltIE11ZCBrb250YWt0ZQp6dSBrbnVlcGZlbiAoSW4gV3VuZGVybGFuZCBNYWdpZXIsU2VoZXIsRXJ6bWFnaWVyLC4uLikuaWNoIGhvZmZlIGlociBrb2VubnQKdW5zIGRhYmVpIGJlaGlsZmxpY2ggc2Vpbi4uLkFsc28gI211ZC5kZSAuLi5JY2ggaG9mZmUgd2lyIHNlaGVuIHVucyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFydGlrZT8gKFRhbmdhbHVyLCAgNC4gRmViIDE5OTksIDE0OjI3OjM2KToKbmV1ZXMgenUgSGF1c2UgZ2VzdWNodAorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwoKRHJpbmdlbmQgbmV1ZXMgenUgSGF1c2UgZ2VzdWNodAoKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCkRhIHZvbSBXb2xwZXJ0aW5nZXItQ2x1YiBudXIgbm9jaCByYXVjaGVuZGUgVHJ1ZW1tZXIgdWVicmlnIApzaW5kIHN1Y2hlIGljaCBmdWVyIG1laW4gS2F0emVua29lcmJjaGVuIGRyaW5nZW5kIGVpbiBldHdhcwpnZW11ZXRsaWNoZXJlcyB1bmQgbmljaHQgZ2FueiBzbyB3YXJtZXMgKG9id29obCBlcyBLYXRlci9LYXR6ZW4KamEgZ2FueiBnZXJuZSBrdXNjaGVsaWcgaGFiZW4pIGFkZXF1YXRlcyB6dSBIYXVzZS4gRGFzIEtvZXJiY2hlbgppc3QgYXVjaCBnYW56IHBmbGVnZWxlaWNodCwgZGllIEthdHplbmtpc3RlIGJyaW5nZSBpY2ggZWlubWFsCmRpZSBXb2NoZSB2b3IgZGllIFR1ZXIuCgorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGFydGlrZT8gKEFuYWtpbiwgIDQuIEZlYiAxOTk5LCAxNTo0MTowMCk6Cn4jISBybj1UYW5nYWx1ciBydD05MTgxMzg0NTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MTgxMzg0NTYKCkphamFqYSBuaWVkZXIgbWl0IGRlbiBXb2xwZXJ0aW5nZXIsIGVuZGxpY2ggaGF0IG1hbCBqZW1hbmQKZGVuIENsdWIgZ2VzcHJlbmd0LgoKQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGFydGlrZT8gKFRlZGR5LCAgNC4gRmViIDE5OTksIDE2OjMyOjEzKToKfiMhIHJuPVRhbmdhbHVyIHJ0PTkxODEzODQ1NiByZz1hbnplaWdlbgp+IyEgdGlkPTkxODEzODQ1NgpXaWUgd2FlcnMgaW4gS2F0em1hbmR1PwpXaXJkIGRvY2ggd29obCBuZSBFY2tlIGluIGRlciBHaWxkZSBvZGVyIHNvIGZyZWkgc2VpbiA7KQoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBhcnRpa2U/IChBc21vZGlzLCAgNC4gRmViIDE5OTksIDIxOjUwOjIyKToKfiMhIHJuPVRhbmdhbHVyIHJ0PTkxODEzODQ1NiByZz1hbnplaWdlbgp+IyEgdGlkPTkxODEzODQ1NgpOZSBLYXR6ZSwgZGllIGlocmUgS2lzdGUgdm9yIGRpZSBUdWVyIGJyaW5ndCwgaGFldHRlIGljaCBhdWNoIGdlcm5lIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJiZWl0Li4uIChGeXQsIDE1LiBGZWIgMTk5OSwgMTM6MzM6MjYpOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzbmlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCiAgICAgICAgICAgICAgICAgUHJvZ3JhbW1pZXJlci9TeXN0ZW1iZXRyZXVlciBnZXN1Y2h0CgpGciBkaWUgQmVhcmJlaXR1bmcgZWluZXMgRHJpdHRtaXR0ZWxwcm9qZWt0ZXMgZnIgZGllIFRlbGVrb21tdW5pa2F0aW9ucy0KaW5kdXN0cmllIHN1Y2hlbiB3aXIgZWluZW4gTWl0YXJiZWl0ZXIgenVtIGZyaGVzdG1nbGljaGVuIFplaXRwdW5rdCBmcgplaW5lIGhhbGJlIFN0ZWxsZSBhbiBkZXIgSG9jaHNjaHVsZSBNaXR0d2VpZGEgZnIgenVuY2hzdCBlaW4gSmFociAobWl0CmRlciBNZ2xpY2hrZWl0IGRlciBWZXJsbmdlcnVuZykuCgpWb3JhdXNnZXNldHp0ZSBLZW5udG5pc3NlOgoqIFVOSVggdW5kIFdJTkRPV1MKKiBDKysgUHJvZ3JhbW1pZXJ1bmcKKiBJbnRlcm5ldCAoUGZsZWdlIGVpbmVzIFdlYnNlcnZlcnMpCiogTWdsaWNoc3QgYXVjaCBLZW5udG5pc3NlIGluIFBBU0NBTC9ERUxQSEkKCkRpZSBWZXJndHVuZyBkZXIgU3RlbGxlbiBlcmZvbGd0IG5hY2ggQkFULU8gSUlhLzIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzbmlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCkJlaSBJbnRlcmVzc2UgTWFpbCBhbiBtaWNoLi4uCgpGeXQuCgpQUzogQXVzIGRlciBoYWxiZW4gU3RlbGxlIGtvZW5uZW4gYXVjaCBQcmFrdGlrYW50ZW4gZmluYW56aWVydCB3ZXJkZW4sCmRpZSBkYW5uIGplIG5hY2ggQXVzYmlsZHVuZy9XdW5zY2ggVGVpbGF1ZmdhYmVuIGF1cyBkZW0gS3VjaGVuIGJla29tbWVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaGFsbG8gbWllemUgKEJlbmRlaWdpZCwgMTYuIEZlYiAxOTk5LCAwODo1MDowNSk6Cn4jISBvbj1NYWR1c2VyIG90PTkxODk5MzE1OSBvZz1hbGxnZW1laW5lcwpoYWxsIG1pZXplCmljaCBiaWIgZ3J0YWQgaW4gZGVyIHBvYXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNZXJsaW4ncyBIZWlyYXQgKEdyaW1tYm9ybiwgMjAuIEZlYiAxOTk5LCAyMjowMzoyNyk6Cn4jISBvbj1EZWFsZXIgb3Q9OTE5MjYwMTIyIG9nPWFsbGdlbWVpbmVzCk1lcmxpbiB1bmQgTGVvLCBlbnRzY2h1bGRpZ3VuZywgZGVhbGVyIHdvbGxlbiBzaWNoIHRyYXVlbiBsYXNzZW4KTWl0IGFuZGVyZW4gV29ydGVuOiBTaWUgaGVpcmF0ZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJlcXVlc3QgZm9yIGhlbHAgKE5qYWxhLCAyMi4gRmViIDE5OTksIDE5OjM5OjI4KToKCkd1Z2d1Z3MuLi4KCkljaCBzdWNoZSBlbmdsaXNjaGUgU3BvbnRhbmtvbnZlcnNhdGlvbiBhdWYgS2Fzc2V0dGUgb2RlciBWaWRlbywgYWxzbwpiZWlzcGllbHN3ZWlzZSBlaW5lbiBpbGxlZ2FsZW4gTWl0c2Nobml0dCBhdXMgZWluZW0gSXJpc2ggUHViIDotKSBGdWVuZgpiaXMgemVobiBNaW51dGVuIGdlbnVlZ2VuIHZvbGxrb21tZW4uCgpLbGluZ3QgbmljaHQgc2Nod2llcmlnLCBvZGVyID8gTGVpZGVyIGRhcmYgZXMga2VpbiAiZ2VzdGVsbHRlciIgRGlhbG9nCnNlaW4sIGFsc28ga2VpbiBJbnRlcnZpZXcsIGtlaW5lIENvbWVkeSwga2VpbiBGaWxtbWl0c2Nobml0dCwgc29uZGVybgp3aXJrbGljaCBnYW56IHVuZ2Vwcm9idGVzIHNwb250YW5lcyBTcHJlY2hlbiB2b24gendlaSBQZXJzb25lbi4gICAgIAoKTWVpbiBlcmJhcm11bmdzbG9zZXIgUHJvZiBlcndhcnRldCBlaW5lIEhhdXNhcmJlaXQgYXNhcCwgYWxzbyBiaXR0ZSBiaXR0ZQp3dWVobHQgZG9jaCBtYWwsIG9iIElociBzb3dhcyBkYWhlaW0gaGFidCAuLi4KCgogICAgICAgIE5qYWxhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcmVxdWVzdCBmb3IgaGVscCAoWWVuZGksIDIzLiBGZWIgMTk5OSwgMjA6MjA6MTkpOgp+IyEgcm49TmphbGEgcnQ9OTE5NzEyMzY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTE5NzEyMzY4Ck11ZXNzZW4gZXMgTXV0dGVyc3ByYWNobGVyIHNlaW4/IEljaCBoYWJlIGhpZXIgenVmYWVsbGlnIGVpbmVuCiJFcy13YXItZWlubWFsLi4uIi1NaXRzY2huaXR0LCBkZXIgYXVmIGhhbGJlciBTdHJlY2tlIGlucyBFbmdsaXNjaGUKdWViZXJnZWtpcHB0IGlzdC4KCiJCdXQgdGhhdCdzIGlsbG9naWNhbCEiCiJGdWNrIGxvZ2ljLiIKIkxvZ2ljIGdvdCBmdWNrZWQgYW4gaG91ciBhZ28hIgoKCllUWQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2xlaW5lIFBhdXNlLi4uIChUcmFuY2VmZWFyLCAyNi4gRmViIDE5OTksIDE4OjU0OjE3KToKQXVmZ3J1bmQgdmVyc2NoYWVyZnRlciBBa3Rpdml0YWV0IGluIGRlciBGaXJtYSAoTWVnYXN0cmVzcykgbWFjaGUgaWNoIGVpbmUKa2xlaW5lIFBhdXNlIGJpcyAxLiBNYWkgKHNldWZ6KQoKdGYKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlYm9vdC4uLiAoQW5hdG9sLCAyNy4gRmViIDE5OTksIDE1OjM2OjQ2KToKCkRlciB2b24gUGFkcmVpYyBmdWVyIE1vbnRhZyBhbmdla3VlbmRpZ3RlIFJlYm9vdCBmYWVsbHQgZHVyY2ggZGVuIGdlc3Rlcm4KdWViZXJyYXNjaGVuZCBzdGF0dGdlZnVuZGVuZW4gQ3Jhc2ggX25pY2h0XyBhdXMsIHdpcmQgYWJlciBldnRsLiBhdWYgZGVuCm1vcmdpZ2VuIFNvbm50YWcgdm9ydmVybGVndC4KCkRhIGVzIHNvbnN0IGtlaW5lciBzY2hyZWlidCwKQW5hdG9sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGU6IChLZXksICA2LiBNYXIgMTk5OSwgMjA6NDQ6MzYpOgpIYWxsbywKaWNoIHN1Y2hlIGRyaW5nZW5kIGVpbiBQcm9ncmFtbSBuYW1lbnMgWGZkaXNrIC4uCkhhdCBkYXMgbm9jaCBpcmdlbmR3ZXIgaXJnZW5kd28/CgpLSmV5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphcnRpa2VsIE1hcC1NYXAtUHJvZ3JhbW0genUgdGVzdGVuIChNZXNpcmlpLCAxMi4gTWFyIDE5OTksIDIyOjQxOjQ3KToKCkhhbGxvLAppY2ggaGFiZSBtaWNoIG1hbCBkcmFuIGdlc2V0enQgdW5kIGJlZ29ubmVuIGVpbiBUb29sIHp1IHNjaHJlaWJlbiwgZGFzIGRhcwpaZWljaG5lbiB2b24gS2FydGVuIGFtIENvbXB1dGVyIHVudGVyc3R1ZXR6dC4gSWNoIGRlbmtlLCBkYXNzIGRhcyB2aWVsZW4KQmx1ZW1jaGVucGZsdWVja2VybiBlaW5lIEhpbGZlIHdhZXJlLiBEZXNoYWxiIG1vZWNodGUgaWNoIGRpZSB2b24gRXVjaCBkaWUKSW50ZXJlc3NlIGRhcmFuIGhhYmVuLCBiaXR0ZW4gbWlyIGJlaW0gRGVidWdnZW4gdW5kIElkZWVuZmluZGVuIGhpbGZyZWljaCB6dQpzZWluLgpadSBmaW5kZW4gaXN0IGVpbmUgRGVtby9UZXN0dmVyc2lvbiBhbHMgQXBwbGV0IHVudGVyOgpodHRwOi8vd3d3LmluZi50dS1kcmVzZGVuLmRlL35taDE0L3RmL21hcC9NYXBwZXIuaHRtbAoKTWVzaXJpaSwgYmx1ZW1lbHJ1cGZlbmRlciBDaGFvdCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29tbXVuaXR5IExpdGVyYXR1ciBnZXN1Y2h0IChBenp1cm8sIDI1LiBNYXIgMTk5OSwgMTE6Mzc6NDQpOgpJY2ggYmVub2V0aWdlIGZ1ZXIgZWluIEZvcnNjaHVuZ3Nwcm9qZWt0IHNhZW10bGljaGUgKG5hamEgZmFzdCkgTGl0ZXJhdHVyCnVlYmVyCgpWSVJUVUFMIENPTU1VTklUSUVTCgpCaW4gZnVlciBqZWRlbiBMaW5rLCBCdWNoZW1wZmVobHVuZywgQXJ0aWtlbG5lbm51bmcgLi4uIGRhbmtiYXIuCgpHcnVzcwpBenp1cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIE1GRyAoQ2FsaW1lcmEsIDMwLiBNYXIgMTk5OSwgMTU6MTY6MzApOgpzcGFzc2VzaGFsYmVyIG1hbCBoaWVyIHZlcnN1Y2hlbjoKU3VjaGUgTUZHIGFtIGZvbGdlbmRlbiBEb25uZXJzdGFnIAp2b24gTVVFTkNIRU4gIC0gUmljaHR1bmcgS09FTE4gLyBBQUNIRU4KCkNhbGltZXJhIChnbGF1YnQgamEgbmljaHQgZHJhbiAtIGFiZXIgd2VyIG5pY2h0IHdhZ3QsIGRlciBuaWNodCBnZXdpbm50KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQgKEdyaW1tYm9ybiwgIDIuIEFwciAxOTk5LCAwMToyMzozMCk6Cn4jISBvbj1BcmlhbmEgb3Q9OTIyOTI1ODUzIG9nPWFsbGdlbWVpbmVzClZvbGxlciBTdG9seiBnZWJlbiBBcmlhbmEgdW5kIE5ldm9rIGRpZSBWZXJtYWVobHVuZyBpaHJlciBad2VpdHNwaWVsZXIKClRlbGVub3MgICAgdW5kICAgICAgICBDYWlsbGVhbgoKYW0gMS40LjE5OTkgdW0gMjMuMzAgVWhyIGltIEhvY2h6ZWl0c2hhaW4gYW0gRW5kZSBkZXIgV2VsdCAKCmJla2FubnQuIChOZWluLCBkYXMgaXN0IGtlaW4gQXByaWxzY2hlcnohISEhISEhKQoKV2lyIGhvZmZlbiwgZGFzcyBpaHIgZGllc2VtIGZyZXVkaWdlbiBFcmVpZ25pcyB6YWhscmVpY2ggYmVpd29obmVuIHdlcmRldC4KCgoKQWxzbyBiZXRldCBtaXQgdW5zLCBkYXNzIGRpZXMgYmlzIG1vcmdlbiBnZXNjaGVoZW4gd2lyZDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBTCAoQW5ha2luLCAgOC4gQXByIDE5OTksIDE3OjA0OjQ3KToKCkZhbGxzIGVzIGplbWFuZGVuIGludGVyZXNzaWVydC4uLmRhIEFMIGlzdCB3aWVkZXIgZXJyZWljaGJhci4KCkFuYWtpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFVFQkVSUkFTQ0hVTkchISEgKFRlZGR5LCAxMS4gQXByIDE5OTksIDAzOjQ2OjA2KToKfiMhIHJuPUZldWVyd2VociBydD05MjMwOTUyNzEgcmc9Z2lsZGVuLmNoYW9zCn4jISB0aWQ9OTIzMDEyNDgwCk1BR0lFUiB6dSB2ZXJrYXVmZW4hCgpBdWZncnVuZCBlaW5pZ2VyIGhvZWNoc3RwZWlubGljaGVyIEFrdGlvbmVuIGhhdCBkaWUgQ2hhb3NnaWxkZSBkZXJ6ZWl0aWcKZWluaWdlIG51ciBsZWljaHQgZ2VicmF1Y2h0ZSBNYWdpZXIgaW0gQW5nZWJvdC4KRGllc2Ugd2VyZGVuIG5pY2h0IHdpZSBzb25zdCBnZWdlbiBIb2VjaHN0Z2Vib3QgdmVyc3RlaWdlcnQgc29uZGVybiBhbHMKT3N0ZXJ3ZXJiZWdlc2NoZW5rIGFuIGRlbiBlcnN0ZW4gRWluc2VuZGVyIHZlcnNjaGVua3QuIEtvc3QgdW5kIExvZ2lzIHdlcmRlbgppbSBlcnN0ZW4gSmFociBlYmVuZmFsbHMgYmV6YWhsdCwgamVkb2NoIHJlaWNodCBlaW4gZ2VsZWdlbnRsaWNoZXMgT3N0ZXJlaSB6dW0KZnVldHRlcm4gdW5kIGV0d2FzIEthbWlsbGVudGVlIHZvZWxsZyBhdXMuCgpBTnplaWdlbiBiaXR0ZSB1bnRlciBDaGlmZnJlICJCdW50ZSBFaWVyIiBhbiBQbHVlc2Nob3N0ZXJoYXNlQFJ1ZWhyZWkuQ2hhb3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFycyBNYWdpY2EgKFNpbHZhbmEsIDEyLiBBcHIgMTk5OSwgMTU6NTI6MzgpOgpIaS4KCkljaCBwbGFuZSBlaW5lIE9ubGluZSAvIFBiRU0gKFBsYXkgYnkgRU1haWwpIFNhZ2EgZnVlciBBcnMgTWFnaWNhCnp1IGxlaXRlbi4gQWxsZXJkaW5ncyBudXIsIHdlbm4gZ2VudWVnZW5kIExldXRlIEludGVyZXNzZSBoYWJlbiwgCmRhYmVpIG1pdHp1c3BpZWxlbi4gQWxzbywgZmFsbHMgRFUgbWl0bWFjaGVud2lsbHN0LCBiaXR0ZSBtYWlsIGFuCm1pY2ggLSB1bmQgbW9lZ2xpY2hzdCBtaXQgZWluZXIgbWFpbC1BZHJlc3NlIEFVU1NFUkhBTEIgZGVzIE1Hcwp2ZXJzZWhlbi4KCiAgU2lsdmFuYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFycyBNYWdpY2EgKFllbmRpLCAxMi4gQXByIDE5OTksIDIwOjQ0OjUyKToKfiMhIHJuPVNpbHZhbmEgcnQ9OTIzOTI1MTU4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTIzOTI1MTU4CkFlaCAtLSBpc3QgQXJzIE1hZ2ljYSBuaWNodCBlaW4gUm9sbGVuc3BpZWw/ClNvIGEgbGEgImVpbiBwYWFyIExldXRjaGVuIHNpdHplbiB1bSBlaW5lbiBUaXNjaCBydW0gdW5kIGVyemFlaGxlbiBzaWNoCkdlc2NoaWNodGVuIj8gCgpVbmQgaXN0IGVpbiBQQk0gKG9kZXIgUEJlTSkgbmljaHQgZWluIHJ1bmRlbmJhc2llcnRlcyBTdHJhdGVnaWVzcGllbCwgc28gYSBsYQpTY2hhY2gsIFVuaXRlZCwgRGlwbG9tYWN5IG9kZXIgInN0YXJzISIgPwoKSXN0IGRhcyBuaWNodCBkaXNqdW5rdD8KCllUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXJzIE1hZ2ljYSAoU2hhbm5hcmEsIDEyLiBBcHIgMTk5OSwgMjA6NDU6NTApOgp+IyEgcm49WWVuZGkgcnQ9OTIzOTQyNjkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTIzOTI1MTU4Ckd1Y2sgZGlyIG1hbCBodHRwOi8vd3d3LnBiZW0uY29tIGFuLCBkb3J0IGdpYnQgZXMgbWVociBhbHMgZ2VudWcgc29sY2hlIFBCZU0KUm9sbGVuc3BpZWxlLgoKU2hhbm5hcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaXR5LUxBUlAgU3RhZHRhYmVudGV1ZXIgKEd3eW53YWl0ZXIsIDE0LiBBcHIgMTk5OSwgMjI6NDU6MTMpOgpIaSBBbGxlLAoKVm9uIEZhbnRhc3kgTGl2cmVyb2xsZW5zcGllbGVuIGhhYnQgSWhyIGdhcmFudGllcnQgc2Nob24gZ2Vob2VydCwgYXVjaCBMQVJQcwooTGl2ZUFjdGlvblJvbGVQbGF5cykgZ2VuYW5udC4gV2lyIHBsYW5lbiBldHdhcyBhZWhubGljaGVzIHVuZCBkb2NoIHdpZWRlcgpnYW56IGFuZGVyZXM6CgpFaW4gTEFSUCBpbiBkZXIgR3Jvc3MtU3RhZHQgZGVyIEhpbnRlcmdydW5kIGVpbmUgTWlzY2h1bmcgYXVzIElsbHVtaW5hdHVzIHVuZApDeWJlcnB1bmssIGluIGRpZXNlbSBGYWxsIEVuZGUgTWFpIGluIGRlciBlaW56aWdlbiBEZXV0c2NoZW4gR3Jvc3NTdGFkdCBtaXQKZWluZXIgcmVhbCBleGlzdGllcmVuZGVuIFNreWxpbmUuIEFsc28gMjkvMzAuMDUuOTkgaW4gRnJhbmtmdXJ0IGFtIE1haW4uCgpXZXIgSW50ZXJlc3NlIGhhdCwgZGFyYW4gbWl0enV3aXJrZW4sIGJlaSBlaW5lciBiZXphaGx0ZW4gVWViZXJuYWNodHVuZywKa29zdGVubG9zZXIgVGVpbG5haG1lIHVuZCBldHdhcyBTcGVzZW5nZWxkLCBzb2xsIHNpY2ggbWl0IG1pciBpbiBWZXJiaW5kdW5nCnNldHplbjogRW1haWwgZ2VudWVndCwgYW4gR3d5bndhaXRlckBNb3JnZW5ncmF1ZW4gb2RlciBhbiBXZXR0YWNoQHRvbGtpZW4uZGUKCldlciBhbHMgImVpbmZhY2hlciBTcGllbGVyIiBkYXJhbiB0ZWlsbmVobWVuIG1vZWNodGUsIHNvbGx0ZSBlbnR3ZWRlciBkYXMKcmljaHRpZ2UgRnJhbmtmdXJ0ZXIgU3RhZHRtYWdhemluIGxlc2VuLCBvZGVyIG1pY2ggbmFjaCBEZXRhaWxzIGZyYWdlbi4KCkVzIHdpcmQga3VsdGlnLCBlcyB3aXJkIHVsdHJhY29vbCwgdW5kIElociBicmF1Y2h0IGtlaW5lIFNwaWVsemV1Z3dhZmZlbiBvZGVyCkxhdGV4c2Nod2VydGVyLCBzb25kZXJuIG51ciBFdXJlIGVpZ2VuZSBQZXJzb24gdW5kIGVpbiBzdGlsdm9sbGVzIE91dGZpdCBpbQpTdGlsIGRlciA5MGVyIEphaHJlIGRpZXNlcyBKYWhyaHVuZGVydHMuLi4gIDstKQoKR3J1c3MsCkd3eW53YWl0ZXIgYWthIFdHVwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcnMgTWFnaWNhIChTaWx2YW5hLCAxNS4gQXByIDE5OTksIDAxOjAxOjQ1KToKfiMhIHJuPVllbmRpIHJ0PTkyMzk0MjY5MiByZz1hbnplaWdlbgp+IyEgdGlkPTkyMzkyNTE1OAo+IEFlaCAtLSBpc3QgQXJzIE1hZ2ljYSBuaWNodCBlaW4gUm9sbGVuc3BpZWw/CkplcCwga29ycmVrdC4KPiBTbyBhIGxhICJlaW4gcGFhciBMZXV0Y2hlbiBzaXR6ZW4gdW0gZWluZW4gVGlzY2ggcnVtIHVuZCBlcnphZWhsZW4gCj4gc2ljaCBHZXNjaGljaHRlbiI/CldlaXRnZWhlbmQga29ycmVrdCwgamEuCj4gVW5kIGlzdCBlaW4gUEJNIChvZGVyIFBCZU0pIG5pY2h0IGVpbiBydW5kZW5iYXNpZXJ0ZXMgU3RyYXRlZ2llc3BpZWwsIHNvCj4gYSBsYSBTY2hhY2gsIFVuaXRlZCwgRGlwbG9tYWN5IG9kZXIgInN0YXJzISIgPwpKZWluLi4uIE1hbiBtdXNzIHNpY2ggZGFzIGluIGRpZXNlbSBGYWxsIG5pY2h0IHNvIHZvcnN0ZWxsZW4sIGRhc3MgcnVuZGVud2Vpc2UKZWluemVsbmUgQmVmZWhsZSAob2RlciBMaXN0ZW4gZGF2b24pIGFiZ2VnZWJlbiB3ZXJkZW4uIFZpZWxtZWhyIHdlcmRlbgpBa3Rpb25lbiBpbSBLbGFydGV4dCBiZXNjaHJpZWJlbiwga2xhcmUgUnVuZGVuIHVuZCBTcGllbHp1ZWdlIGdpYnQgZXMgbmljaHQuClNjaHdlciB2b3J6dXN0ZWxsZW4/IEthbm4gc2VpbiwgZ2VodCBhYmVyLgoKICBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWR0EtUGxhbmV0cyAoRGVlcGJsdWUsIDE1LiBBcHIgMTk5OSwgMTU6MDk6MTApOgpHaWJ0cyBoaWVyIExldXRlLCBkaWUgYW4gZWluZXIgVkdBLVBsYW5ldHMtUnVuZGUgaW50ZXJlc3NlIGhhYmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3JhZmlra2FydGUgenUgdmVya2xvcHBlbiAoQ3JpdHRlciwgIDMuIE1haSAxOTk5LCAxNzo0NTowMyk6CnVuZCB6d2FyIGRpYW1vbmQgdmlwZXIgdjMzMCBhZ3AKbWl0IHZpZGlhIHJpdmEgMTI4IENoaXBzYXR6CjQgbWIgc2dyYW0Kc2VociBwcm9ibGVtbG9zIHVudGVyIHdpbjk1IGxpbnV4CgpwcmVpcyBzbyA2MCBtYWVya2VyIHNvbGx0ZW5zIHNjaG9uIHNlaW4uLi4KYnR3IG5pY2h0IHdpcmtsaWNoIGluIGJlbnV0enVuZyBnZXdlc2VuIHdlaWwgZ2xlaWNoIHdpZWRlciBhdWZnZXJ1ZXN0ZXQKKnBhdHNjaCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhaHJlIExpZWJlIChaYXJuaXlhLCAxMS4gTWFpIDE5OTksIDE3OjAxOjA0KToKCgpTaW5kIHNpZSBhdWNoIGhldXRlIHdpZWRlciBkYWJlaSBiZWkgZGVyIHdpcmtsaWNoZW4gZWluemlnYXJ0aWdlbiB3YWhyZW4gTGllYmUKendpc2NoZW4gendlaSBNdWRkZXJuLCB3aWUgc2llIHZvbGxrb21tZW5lciBuaWNodCBzZWluIGthbm4uLi4gc2NoYXVlbiBzaWUKaGVyZWluIGluIHVuc2VyIFRoZWF0ZXIsIHdlbGNoZXMgbGVpZGVyIHZvbiBkZXIgVmVyd2FsdHVuZyBpbiBkaWUgU2x1bXMKdmVyc2Nob2JlbiB3dXJkZW4gKFp3aXNjaGVuIEhhdXNudW1tZXIgMTMwIHVuZCAxNTEgaW4gZGVyIE11ZWxsLUF2ZW51ZSkuCgpJaHJlIFRoZWF0ZXJkaXJla3Rpb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyZmFocnVuZyBtaXQgQ2hpcGthcnRlbiBpbSBVbmliZXJlaWNoPyAoQW5hdG9sLCAyMS4gTWFpIDE5OTksIDE0OjUzOjUxKToKCldlciBrZW5udCBpaG4gbmljaHQsIGRlbiBibG9lZGVuIEF1c3dlaXMsIGRlbiBtYW4gYnJhdWNodCwgdW0gaW4gZGVuCkNJUC1Qb29sIHp1IGtvbW1lbi4uLiBFZ2FsIG9iIFBhcGllciwgVHJhbnNwb25kZXIgb2RlciBUZWxlZm9ua2FydGUuCgpXYXMgaWNoIEpFVFpUIHN1Y2hlLCBzaW5kIExldXRlLCBkaWUgZ2FueiBrdXJ6IHNjaGlsZGVybiBrb2VubmVuLCAKd2VsY2hlIEVyZmFocnVuZ2VuIFNJRSBhbiBJSFJFUiBVbmkgbWl0IGdyb2Vzc2VyZW4gQ2hpcGthcnRlbi0KcHJvamVrdGVuIGdlbWFjaHQgaGFiZW4gLSBhbHNvIHouQi4gYXVjaCBNZW5zYWJldHJpZWIgb2RlciBhZWhubGljaGVzLgoKS3VyemUgTWFpbCBvZGVyIFBvc3RpbmcgaW4gIkRpc2t1c3Npb24iIGVyd3VlbnNjaHQsCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClR1cml0aGlsIChUcnVnLCAyMS4gTWFpIDE5OTksIDIzOjQ2OjA0KToKRmFsbHMgZXMgamVtYW5kZW4gaW50ZXJlc3NpZXJ0LCBkYXMgVHVyaXRoaWwgaXN0IGRlcnplaXQgZG93biBiencuIGxhZXVmdCBhdWYKZWluZW4gQXVzd2VpY2hyZWNobmVyLgoKQWt0dWVsbGUgaW5mb3M6IGh0dHA6Ly94b3Zlci5tdWQuYXQvYWxlcGgKQXVzd2VpY2hhZHJlc3NlOiB0ZWxuZXQgc3R1ZGlzLnVwYi5kZSA0NzExCgpUcnVnLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKEtleSwgMjQuIE1haSAxOTk5LCAxNzowMDozOSk6Cn4jISBybj1BbmF0b2wgcnQ9OTI3MjkxMjMxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI3MjkxMjMxCkVyZmFocnVuZ2VuIG1pdCBDaGlwa2FydGVucHJvamVrdGVuPwpIbW0gbnVsbCBzaWNoZXJoZWl0LCBkYSBoYXVmZW53ZWlzZSBLb3BpZW4gbmFjaCBrdXJ6ZXIgWmVpdCBhdWZ0YXVjaGVuIDopCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXJmYWhydW5nIG1pdCBDaGlwa2FydGVuIGltIFVuaWJlcmVpY2g/IChNYWhhdG11LCAyNS4gTWFpIDE5OTksIDE2OjE4OjA5KToKfiMhIHJuPUtleSBydD05Mjc1NTgwMzkgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjcyOTEyMzEKV2VuZGUgRGljaCBtYWwgYW4gU3R1V2VyayBUVSBEcmVzZGVuIG1pdCBpaHJlbSBGcmFzcy1DaGlwIGJ6dy4gYW4gVFUKRHJlc2RlbiBtaXQgaWhyZW0gQ2hpcGthcnRlbnByb2pla3QgKGxhZXVmdCBzY2hvbiBlaW5lIFdlaWxlKS4KCkdsb2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKFBhdHJ5biwgMjUuIE1haSAxOTk5LCAxNjoyMTowNSk6Cn4jISBybj1NYWhhdG11IHJ0PTkyNzY0MTg4OSByZz1hbnplaWdlbgp+IyEgdGlkPTkyNzI5MTIzMQpkaWUgdHUgaGF0IGVuZGxpY2ggbmVuIGNoaXBrYXJ0ZW5wcm9qZWt0PwpkZXJ6ZWl0IGhhYiBpY2ggbmVuIGZyZXNzY2hpcCwgMiBiaWJvbWFnbmV0a2FydGVuIHVuZCBlaW4gc3R1ZGlhdXN3ZWlzcywKZGVyIGF1c3NpZWh0LCBhbHMgaGFldHQgaWNoIGlobiBzZWxic3QgZ2VtYWx0Lgp3YWVyZSBzY2hvbiB0b2xsLCB3ZW5uIG1hbiBkYXMgbWFsIHp1c2FtbWVuZmFzc3QgOikKCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVyZmFocnVuZyBtaXQgQ2hpcGthcnRlbiBpbSBVbmliZXJlaWNoPyAoUGF0cnluLCAyNS4gTWFpIDE5OTksIDE2OjIzOjU3KToKfiMhIHJuPVBhdHJ5biBydD05Mjc2NDIwNjUgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjcyOTEyMzEKbWlzdCwgdmVyZ2Vzc2VuOiBkYW5uIG5vY2ggMiB2ZXJzY2hpZWRlbmUga29waWVybWFnbmV0a2FydGVuIHdlZ2VuIDIKc3lzdGVtZW4sIGVpbiByZWNoZW56ZW50cnVtc2thZXJ0Y2hlbiwgd2FzIGRlbiBkaWl0ZXRhbnRpc2NoZW4gY2hhcmFrdGVyCm1laW5lcyBzdHVkaWF1c3dlaXNlcyBub2NoIHRvcHQsIGRhbm4gZWluIGRydWNremV0dGVsY2hlbiwgd28gbWFuCmRydWNrYXVmdHJhZWdlIGFicmVjaG5ldC4gc2ljaGVyIGhhYiBpY2ggbm9jaCBtZWhyIDopCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKE1haGF0bXUsIDI1LiBNYWkgMTk5OSwgMTY6NTE6MTQpOgp+IyEgcm49UGF0cnluIHJ0PTkyNzY0MjIzNyByZz1hbnplaWdlbgp+IyEgdGlkPTkyNzI5MTIzMQpIbW1tIC4uLiBpY2ggZ2xhdWJlIGRhcyBoYXQgc28gaW4gZXR3YSBnZXN0YXJ0ZXQsIGFscyBEdSBtaXQgSW5mb3JtYXRpawpmZXJ0aWcgd2Fyc3QgOikKLSAxIFN0dWRpYXVzd2VpcywgU2NocmVpYm1hc2NoaW5lIGF1ZiBCdW50cGFwaWVyCi0gMSBCaWJvYXVzd2VpcyBVbmksIFBhcHBlIGluIFBsYXN0aWsKLSAxIEJpYm9hdXN3ZWlzIFN0YWR0LCBQbGFzdGlrIG1pdCBNYWduZXQKICAtIChtYW4gYmVtZXJrZSwgZGFzcyBkaWUgQmlib3MgenVzYW1tZ2VoZW4gOikgKQotIDEgRnJhc3NjaGlwIGFtIEJhbmQsIGJsYXUgKG9kZXIgb3JhbmdlKQotIDEgRHJ1Y2t6ZXR0ZWwgUlosIFBhcGllcgotIGVpbiBiaXMgendlaSBMZXV0ZSwgZGllIGJlaSBBbGJhdHJvcyBtaXRrb3BpZXJlbiA6KQpLb21tdCBkYXMgc28gaW4gZXR3YSBoaW4/CgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKFBhdHJ5biwgMjUuIE1haSAxOTk5LCAxNjo1Mjo0OCk6Cn4jISBybj1NYWhhdG11IHJ0PTkyNzY0Mzg3NCByZz1hbnplaWdlbgp+IyEgdGlkPTkyNzI5MTIzMQplaW4gZnJhc3NjaGlwIGFtIGJhbmQuLi5oYWgsIGVyaW5uZXJ0IG1pY2ggaXJnZW5kd2llIGFuIGRlbiBzaW5ubG9zZXN0ZW4KYXV0b2xvYWRlciBpbSBtZyA6KQpqYSwgZGVuIGdpYm50cyBhdWNoIGluIG9yYW5nZSAqZ3JpbnMqCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKENhaWxsZWFuLCAyNi4gTWFpIDE5OTksIDAzOjMwOjE5KToKfiMhIHJuPU1haGF0bXUgcnQ9OTI3NjQxODg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI3MjkxMjMxCmJlaSB1bnMga2FubnN0ZSBpbiBkZXIgbWVuc2EgbWl0IGRlciBiYWhuY2FyZCBiZXphaGxlbiwgc28gdmVya2VocnQgaXMgZGFzIGdhcgpuaWNodDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRXJmYWhydW5nIG1pdCBDaGlwa2FydGVuIGltIFVuaWJlcmVpY2g/IChHcmltbWJvcm4sIDI4LiBNYWkgMTk5OSwgMTA6Mzc6MzApOgp+IyEgcm49Q2FpbGxlYW4gcnQ9OTI3NjgyMjE5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI3MjkxMjMxCkRhcyBob2VydCBzaWNoIGludGVyZXNzYW50IGFuLiBVbmQgd2llIGtvbW10IGRpZSBNZW5zYSBkYW5uIGFuIGlociBHZWxkPyBXaXJkCmRhcyBiZWltIG5hZWNoc3RlbiBGYWhya2FydGVua2F1ZiBlaW5iZWhhbHRlbj8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRXJmYWhydW5nIG1pdCBDaGlwa2FydGVuIGltIFVuaWJlcmVpY2g/IChNYWhhdG11LCAyOC4gTWFpIDE5OTksIDE3OjI4OjQwKToKfiMhIHJuPUdyaW1tYm9ybiBydD05Mjc4ODA2NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjcyOTEyMzEKQUZBSUsgaXN0IGF1ZiBkZXIgQmFobmNhcmQgZWluZSBhYnNvbHV0IGxlZ2FsZSBWSVNBLUthcnRlLCB3ZW5uIG1hbgpkZW5uIG1vZWNodGUgKGljaCBtb2NodGUgYmlzaGVyIG5vY2ggbmljaHQpLgoKR2xvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEVyZmFocnVuZyBtaXQgQ2hpcGthcnRlbiBpbSBVbmliZXJlaWNoPyAoTWFyY3VzLCAyOC4gTWFpIDE5OTksIDE4OjEyOjIwKToKfiMhIHJuPU1haGF0bXUgcnQ9OTI3OTA1MzIwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI3MjkxMjMxCk5laW4sIGRpZXNlcyBGZWF0dXJlIChWSVNBICYgQmFobmNhcmQpIGlzdCB3aWVkZXIgYWJnZXNjaGFmZnQuCgpDaWFvLCBNYXJjdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKE1pZXplLCAzMC4gTWFpIDE5OTksIDE5OjA4OjMxKToKfiMhIHJuPUFuYXRvbCBydD05MjcyOTEyMzEgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjcyOTEyMzEKaXN0IHZpZWxsZWljaHQgc2Nob24gZWluIGJpc3NjaGVuIHZlcmFsdGV0IGRpZSBEaXNrdXNzaW9uLi4uIGFuIGRlciBVbmkgSGFsbGUKaGFiZW4gd2lyIGF1Y2ggdmllbGUsIHZpZWxlIENoaXBrYXJ0ZW4gKE1lbnNhLCBCaWIsIENvcHksLi4uKSBEaWUgc29sbGVuIGpldHp0CmFsbGUgenVzYW1tZW4gYXVmIGRpZSBVbmktU2VydmljZS1DYXJkICh6dXNhbW1lbiBtaXQgbmVyIFphaGxmdW5rdGlvbiAtIHdpZQpHZWxka2FydGUgYmVpIGRlciBTcGFzc2thc3NlKS4gTWFuY2hlIEZ1bmt0aW9uZW4ga2xhcHBlbiBhdWNoIHNjaG9uLCBudXIgTWVuc2EKdW5kIEJpYiBub2NoIG5pY2h0LCB3ZWlsIGRpZSBMZXNlZ2VyYWV0ZSBub2NoIG5pY2h0IHVtZ2VzdGVsbHQgc2luZC4KCk1pZXplIC0gc2FtbWVsdCBub3RnZWRydW5nZW4gQ2hpcGthcnRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRlc3RpZSBnZXN1Y2h0IChQYXJhY2Vsc3VzLCAzMS4gTWFpIDE5OTksIDE0OjQyOjUzKToKSGkuCgpJY2ggc3VjaGUgbm9jaCAxLTIgTGV1dGUsIGRpZSBMdXN0IGhhYmVuLCBkaWUgVGFuamlhbi1HaWxkZSB6dSB0ZXN0ZW4uCldhaGx3ZWlzZSBtaXQgZWluZW0gZWlnZW5lbiBad2VpdGksIGRlciB3YWVocmVuZCBkZXIgVGVzdHplaXQgYWxzClRlc3RpZSBtYXJraWVydCB3aXJkIHVuZCBhbSBFbmRlIGFsbGUgU2tpbGxzIHdpZWRlciBhYmdlbm9tbWVuIGtyaWVndCwKb2RlciBtaXQgZWluZW0gdm9uIG1pciB6dXIgVmVyZnVlZ3VuZyBnZXN0ZWxsdGVuIFRlc3RpZSAoZGVyIG11c3MgYW0KRW5kZSBuYXR1ZXJsaWNoIHdpZWRlciBhYmdlZ2ViZW4gd2VyZGVuIDspLgoKSW50ZXJlc3NlbnRlbiBtZWxkZW4gc2ljaCBiaXR0ZSBwZXIgTWFpbCBiZWkgbWlyLgoKR3J1c3MsCiAgUGFyYWNlbHN1cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEVyZmFocnVuZyBtaXQgQ2hpcGthcnRlbiBpbSBVbmliZXJlaWNoPyAoU29uZ29rdSwgIDEuIEp1biAxOTk5LCAxMDoyOTo1Nik6Cn4jISBybj1NYWhhdG11IHJ0PTkyNzkwNTMyMCByZz1hbnplaWdlbgp+IyEgdGlkPTkyNzI5MTIzMQpEaWUgVmlzYWthcnRlIGthbm4gbWFuIG51ciBub2NoIGVpbiBvZGVyIDIgTW9uYXRlIGJlYW50cmFnZW4uIERhbmNoIGxhZXVmdCBkZXIKVmVydHJhZyB6d2lzY2hlbiBCYWhuIHVuZCBWaXNhIGF1cy4KClNheW8tbmFyYSAobm9jaCBuZSBzY2hyZWliYXJ0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBFcmZhaHJ1bmcgbWl0IENoaXBrYXJ0ZW4gaW0gVW5pYmVyZWljaD8gKENhaWxsZWFuLCAgNC4gSnVuIDE5OTksIDEzOjM1OjU0KToKfiMhIHJuPUdyaW1tYm9ybiBydD05Mjc4ODA2NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjcyOTEyMzEKbmFqYSwgaGF0IG1pY2ggbmllIHNvIGludGVyZXNzaWVydCpHR0cqCm1pdCBkZXIgbmV1ZW4gYmFobmNhcmQgZ2VodHMgZWggbmV0IG1laHI6KCgoCgpjYWlsbGVhbiwgamV0enQgd2llZGVyIG1laHIga29jaGVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRlc3RpZSBnZXN1Y2h0IChQYXJhY2Vsc3VzLCAgNC4gSnVuIDE5OTksIDE4OjAyOjQwKToKfiMhIHJuPVBhcmFjZWxzdXMgcnQ9OTI4MTU0NTczIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI4MTU0NTczCkhpLgoKRGEgc2ljaCBqYSBudW4gZG9jaCBzY2hvbiBtZWhyIEludGVyZXNzZW50ZW4gZ2VtZWxkZXQgaGFiZW4gYWxzIFRlc3RpZS0KcGxhZXR6ZSBkYSBzaW5kLCBydWZlIGljaCBqZXR6dCBtYWwgZGVuICJBbm1lbGRlc2NobHVzcyIgYXVzLiBJY2ggZGVua2UKbWFsLCBkYXNzIGljaCBkaWUgQXVzd2FobCBhbSBXRSBwZXIgTG9zZW50c2NoZWlkIHRyZWZmZW4gd2VyZGUgdW5kIGRhbm4sCndvIG5vZXRpZywgZGllIGVudHNwci4gVGVzdGllcyBlaW5yaWNodGUuCgpHcnVzcywKICBQYXJhY2Vsc3VzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmVlbkNvbiAoVGVkZHksICA2LiBKdW4gMTk5OSwgMjA6NTU6MzcpOgpIaWhvLAoKaWNoIHBsYW5lIGRlcnplaXRpZywgRW5kZSBkZXMgTW9uYXRzIHp1ciBGZWVuQ29uIHp1IGZhaHJlbiB1bmQgd29sbHRlIGZyYWdlbiwKb2Igbm9jaCBhbmRlcmUgTXVkZGVyIGRhIHNlaW4gd2VyZGVuLCBtaXQgZGVuZW4gbWFuIHNpY2ggdHJlZmZlbiBrb2VubnRlLgoKCkZ1ZXIgYWxsZSBkaWUgZGFtaXQgbml4IGFuZmFuZ2VuIGtvZW5uZW46Cmh0dHA6Ly93d3cuZ2ZyLnd0YWwuZGUvZmVlbmNvbi9mZWVuY29uLWluZGV4Lmh0bQoKVGVkZHksIGhvZmZ0IGRhIHNlaW4genUga29lbm5lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvbnRha3QgQW56ZWlnZSAoR3JpbW1ib3JuLCAgNy4gSnVuIDE5OTksIDIxOjU0OjM3KToKfiMhIG9uPVhhbiBvdD05Mjg2OTEyOTQgb2c9YWxsZ2VtZWluZXMKWGFuLCBlaW4ga3JmdGlnZXIsIGp1bmdlciBXYW5kZXJzZ2VzZWxsZSBzdWNodCBmcmF1IGdsZWljaGVyIHN0dWZlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29udGFrYW56ZWlnZSBOci4gMiAoR3JpbW1ib3JuLCAgNy4gSnVuIDE5OTksIDIxOjU0OjQ5KToKfiMhIG9uPVhhbiBvdD05Mjg2OTczOTIgb2c9YWxsZ2VtZWluZXMKWGFuLCBkZXIgZ3V0YXVzc2VoZW5kZSwgbWl0dGVsZ3JvZSwgc3RhcmtlIFdhbmRlcnNnZXNlbGxlIHN1Y2h0IElNTUVSTk9DSAptZ2xpY2hzdCBpbnRpbGxpZ2VudGUganVuZ2UgZnJhdSAhCldlciBpbnRlcmVzc2UgaGF0IHNjaHJlaWJlIGVpbmVuIGJyaWUgYW4gWGFuICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLb250YWthbnplaWdlIE5yLiAyIChHcmltbWJvcm4sICA3LiBKdW4gMTk5OSwgMjE6NTU6MzEpOgp+IyEgb249TmV2b2sgb3Q9OTI4Njk3NDU0IG9nPWFsbGdlbWVpbmVzCn4jISBybj1YYW4gcnQ9OTI4Njk3MzkyIHJnPWFsbGdlbWVpbmVzCn4jISB0aWQ9OTI4Njk3MzkyCndhZXJlIGVzIG5ldCB2aWVsbGVpY2h0IGJlc3NlciBlcnN0IG1hbCBTY2hyZWliZW4genUgbGVybmVuPyBPZGVyIGxlc2VuIHdhcyBEdQpnZXNjaHJpZWJlbiBoYXN0PwoKTmV2b2ssIGF1Y2ggbWFsIGVpbnplaWxlcm5kLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS29udGFrYW56ZWlnZSBOci4gMiAoR3JpbW1ib3JuLCAgNy4gSnVuIDE5OTksIDIxOjU1OjM1KToKfiMhIG9uPUhhc2ltIG90PTkyODcwMjY2OSBvZz1hbGxnZW1laW5lcwp+IyEgcm49WGFuIHJ0PTkyODY5NzM5MiByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTkyODY5NzM5MgpGcmFnZTogc29sbCBkaWUgRnJhdSBpbiBSTCBlaW5lIEZyYXUgc2VpbiBvZGVyIG51ciBpbSBNVUQ/IFNvbnN0IGtvZW5udGUgamEKYXVjaCB6LkIuIGVpbmUgUkwtRnJhdSBlaW5lbiBtYWVubmxpY2hlbiBDaGFyYWt0ZXIgc3BpZWxlbiAuLi4gb2RlciBzbyBvZGVyCndpZS4uLiBEdSBzb2xsdGVzdCBEaWNoIGdlbmF1ZXIgYXVzZHJ1ZWNrZW4uLi4gOykKSGFzaW0gLT4gU2NobWFycm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS29udGFrYW56ZWlnZSBOci4gMiAoR3JpbW1ib3JuLCAgNy4gSnVuIDE5OTksIDIxOjU1OjUxKToKfiMhIG9uPVlhcmVuIG90PTkyODc2NDM3MSBvZz1hbGxnZW1laW5lcwp+IyEgcm49TmV2b2sgcnQ9OTI4Njk3NDU0IHJnPWFsbGdlbWVpbmVzCn4jISB0aWQ9OTI4Njk3MzkyClNjaGF1IERpciBtYWwgZGVuIFZlcndlaXMgYXVmIHNlaW5lIEhvbXBhaXRzY2ggYW46IGVyIGlzcyBuZW4gaDhYMHIsIHdpZSBtaXIKc2NoZWludCwgZGEgbXVzcyBtYW4gbmljaHQgZGVzIFNjaHJlaWJlbnMgbWFlY2h0aWcgc2Vpbiwgd2VubiBtYW4ga2V3bCB1bmQgbmVuCjNsMzMrIGlzdCA7LSkKClNDTlIgLi4uIFlhcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS29udGFrYW56ZWlnZSBOci4gMiAoR3JpbW1ib3JuLCAgNy4gSnVuIDE5OTksIDIxOjU2OjE3KToKfiMhIG9uPU5ldm9rIG90PTkyODc2NDk4MyBvZz1hbGxnZW1laW5lcwp+IyEgcm49WWFyZW4gcnQ9OTI4NzY0MzcxIHJnPWFsbGdlbWVpbmVzCn4jISB0aWQ9OTI4Njk3MzkyCmF1IGJhY2tlLCBudSBsZWInIGljaCBpbiBwaGVhciBkYXNzIGRlciBuZXQgbWVpbmVuIHJlY2huZXIgaGFja3Qgb2RlciB3aWUgb2Rlcgp3YXMKCndvIHNpbmQgZGllIHplaXRlbiBkZXMgQ0NDIGhpbiAqc29pZnoqCm5hamEga2FubiBtYW4gYXVjaCBuaXggbWFjaGVuCgpOZXZvaywgZGVyLCBhbHMgc2VpbiBDLTY0IG5vY2ggZWluIGd1dGVyIFJlY2huZXIgKD0hIEJyaWVmYmVzY2h3ZXJlcikgd2FyIGF1Y2gKbm9jaCBwcm9nZ2VuIGtvbm50ZSAqc29pZnoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLb250YWthbnplaWdlIE5yLiAyIChHcmltbWJvcm4sICA3LiBKdW4gMTk5OSwgMjE6NTY6MjQpOgp+IyEgb249U2lsdmFuYSBvdD05Mjg3Nzc5NjUgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPVlhcmVuIHJ0PTkyODc2NDM3MSByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTkyODY5NzM5MgpVbmQgamV0enQgZGFzIGdhbnplIG5vY2ggbWFsIGluIFZlcnN0YWVuZGxpY2ggZnVlciBhbHRlIE9taXMgd2llIG1pY2guIDopCgpTaWx2YW5hIChoYXQga2VpbiBXb3J0IHZlcnN0YW5kZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLb250YWthbnplaWdlIE5yLiAyIChKYXNwZXIsICA4LiBKdW4gMTk5OSwgMTI6NDM6MjcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTkyODc4NTM1MSByZz1hbnplaWdlbgp+IyEgdGlkPTkyODY5NzM5MgpEZWFyIFMxcnp6OiAKICAgICAgICBMRXQndXMgdDN8bCB5QSBqdVNUIGgwdyBiSWcgfGlGMyBraW4gYjMsIHlhIGZ1Y2sxbicgCnBVZmYhICgpbmUgU2F0dXJkYXkgbmlHaHQsIEZVY0ssIGFmVDNyIEFoIGhBZCBqdXN0IFJldHVybmVkIGZyMG0gCmEgZ3J1RWxJbicgZ2FtMyBhJ3NxVWFzaCwgQWggd2FzIFIzM2RZIFQzUiBqdW1wIDFOdDNyIHRoZSAKZlVja2lOJyBzSCgpdzNyIHdoZW4gRTFsRWVOLCBmdUNrLCBlUnIgaHVnMyBzdFVjay11cCBuMzFnaGIwciwgCmZVY2ssIENhbUUgMW4gd2FudGludCB0M3IgVEFhbGsgdCgpJ3VzIGFCM1J0IHd1ciBmWXMxY3MgeWVtdygpcksuIApBSCBnfGFOY2VEIHVwLCBmdWNrLCB1TicgdEhFcmUgc3QoKTBkIEEgVzEnIHN1cnByMVNpbicgZWFzZSAKYmVhdXRpZnVsIGNyaW5rbGVEIGR1Q0hlU3Mgd0VhckluJyBBIGZlYXRoZXJ5IGJpazFuaS4gQWggV2FzIEEgCmJpdCBzVXJwcmlzM2QsIGZ1Y2ssIEEnY0VSUnNlLCBiVXQgSSBEMURuJ3QgbTFuRCBhIGIxdC4gV3UgCnBBbnRlRCBmJyBhIHdoaWxlLCBGdWNrLCBUaGVuIEFIIDFuVjFUM0QgaGVyIDFOczFkMy4gV2gzbiB3VSAKZzB0IGlOIHRoZSBmdWNrMW4nIGQwMHIsIEZVQ2ssIHNoRSB0dVJuZUQgaW50ZVIgYSBkMWZmM3JlblQgCnBlcnMoKU4sIHlBIGZ1Y2sxbicgcHVmRiEgQUggQ0VyfGQgVDN8fCB0SGFUIHd1IGJ1clRoIHd1cyB3YXJtIAozTjNyZ2ggdGVSIGczdCB0cmVtYkxlZCwgRnVDaywgdU4nIHNIMyBtVXJtdXIzZCBUaGF0IHNoZSBoYWROJ3QgCnNlM24gSDNyIFBpeDFlMXNoIGxBZGZySWVOZCBzSW5jRSBIMyBzdGFydGVEIDFuamVjdDFuJyBXMScgaGVyIAptVXRoYS4gU2hFIHRoZW4gYmVnYU4gZzBCSW4nIG11dEhhIHNQdVJ0aW5nIGhhMVIgc2xlZXBpTHkgdW5EZXIgCm1VdGhhIFNoMHJUenosIGZ1Y2ssIHVuJyBBaCBiRUdhTiB0ZVIgZ0V0IHRIZSBmdWNraW4nIDFkZWEgdGhBdCAKc0gzIHdhUyBoKClSbnkgKDcgeWVhcnMgYScgQzB8TDNnZSBoYXNOJ1QgZXhhY3RsWSBtYWRlJ3VzCmRVbWIhKS4gQWggcjN0dXJuM2QgdGhFIGZ1Q0tpTicgZmFWMHIsIGZVY0ssIGEnY2VScnNlLCB1bicgCmJlZ2FuIGRlRmlsaW4nIGhlUiBtYUdOaUYxY2VOdCBiVW56ei4gU2hlIGwzUnJrZWQgMW50ZXIgbXkgaEFpclkgCjNZM3p6LCBmVWNrLCB1bicgc3VkZGVuTHkgcExBY2VkIGhlciBUMGUgYWdhMW5zdCBtdXRoYSBzY2h8KCluRywgCnlBIGZ1Y0sxbicgcHVmZiEgQWggdW5kZXJzVDAoKWQgMW5zdEFudHxZLCB5QSBmdWNrMW4nIHB1ZmYhIFNoZSAKZ2lnZ3xlZCBUaGF0IHNoMyB3YXMgbHVzVC1DckF6M2QgKEFoIEFnUjNlZCB3MScgSGVyKSwgZnVjaywgVW4nIApBSCB5ZXxsRWQgdGhhdCBJIHdhUyB0MDAgKHNUMzNkSWx5IHMwISkuIEFmdGVSIGEgfDF0dGxlIEN1dGUgCnNNM2FySW5nLCBmdWNrLCB3dSBwdXQgQnJJQU4gRW4wJ1MgYWF8YlVtLCBmdWNrLCAiVGhlIGZ1Y2tpbicgCndBeSB5YSBudXpafCBtdXRoYSBtdXRoQSdzIEVHZ0IzYXRFciInQW4gdEhlIGZ1Y2tpbicgc3RlcmUwIChhdCAKdEgzIGZ1Q2sxbicgd3Jhbmcgc3AzZUQhKS4gU0hFIHx1eFVyMUVyU0x5IHAzM2xlZCAoKWZmIG11dGhhIApyZW1hSW4xbicgY2woKXRoZXMgczAgdGhBVCBzSDMgY0VyfGQga2lTcyBtdXRoYSB0MDB8IHcxJyBoZVIgCmcwYiwgeUEgZnVDazFuJyBwdWZmISBTSGUgQlVaemVkIEl0IGFBYWwgdXJ2YSB3MScgaGVyIHczdCAKa04wYnp6LCBGdWNrLCB1bnRpbCAxdCBXYXMgTUFOTHkgdEVyIGhlUiBsaWsxbmcuIFd1IHRoZW4gcjFQcGVkIAozQWNoICgpVGhlUnp6JyBjbCgpdGhlcyAwZmYuIFNIRSB3YXMgbjNhVEx5IHRyMW1tZUQsIHlhIGZ1Y2tpbicgCnBVZmYhIEFoIHdBcyBzMCAzeGNpdEVkLCBGVUNrLCB0aGFUIGFmVDNSIFVybnx5IDUzIG0xbnV0ZXMgCmEnbnV6enwxbicgaDNyIHB1Y2tlckVkIHRFQXR6eiwgZnVjSywgQUggSnVNcGVkJ2FuIGgzciB1bicgCnNRdTNlWjNkIEhlciBmJyBhYWFsIEFoIFdBUyBXKClydGgsIHlhIGZVY0sxbicgcHVmRiEgU2hlIApySHl0aG1pY2FBYWx5IHBsZWVEZWQgV2lUaCd1cyAxcigpTjFDYWxseSBhcyBBaCAxbmplY3RlRCBoZVIgCnRVbm5lfCB3SScgbXkgdGhyMGJiSW5nLCBGVWNLLCBlWHRyYSgpckQxTmFyeSBjMGNLLCB5YSBmdWNraW4nIApwVWZmISAiVGhhVCBmdWNrMW4nIHJlTTFuZHp6J1VTIEEnbXkgTXV0aEEnUyBsaWYzbGVzcyBicnVya2VuIAp3ZXQgc0gzZVR6eiEiIHNoMyBzY3JlQW0zZCBBUyBTaDMgYkFja3dBckRzIGRpZGRsZWQgbXV0aGEgfCgpbkcKbUFqM3N0WSB3SScgaGVyIHdpdGggc3VyUFJpUzFuJyBlYXNlIDFScmVzMXN0aWJsZSAzeWV6ei4gQWZ0RXIgCnRIYXQsIEZ1Y2ssIHd1IGYzbGwgYVNsRUVwLCB1bicgd2hFbiBBSCBhd3VyazMsIGZ1Y2ssIHNoZSBXYXMgCmdVcm4uIEFoIG5ldjNyIHNhdyBoZVIgYWdBSW4sIGZ1Y0ssIGJVdCAxRiBJIGQwLCBXMWxsIEFoIGZ1Q2sgCm1pbmQsIHlhIEZ1Y2sxbicgcHVmZiEgCgoKUFM6IC5vTyhuZXVlciBzcHJhY2hmbHVjaD8/IDopICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtkZSAoTGFyaXNzYSwgIDguIEp1biAxOTk5LCAxOTo0MTozMik6CgpFaWdlbnRsaWNoIGJyYWV1Y2h0ZSBpY2ggZWluZSBSdWJyaWsgJ05ldWdpZXJkZScsIGFiZXIgaWNoIGZyYWcgbWFsIGhpZXI6Ck1pY2ggd3VlcmRlIGVpbmZhY2ggbnVyIG1hbCBzbyBpbnRlcmVzc2llcmVuLCBvYiBzaWNoIGtkZS1Qcm9ncmFtbWllcmVyCnVudGVyIGRlciBNdWRkZXJzY2hhZnQgYmVmaW5kZW4uCgpMYXJpLCBudXIgbmV1Z2llcmlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGtkZSAoV3VyemVsLCAgOC4gSnVuIDE5OTksIDIwOjU0OjA2KToKfiMhIHJuPUxhcmlzc2EgcnQ9OTI4ODYzNjkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI4ODYzNjkyCmxldXRlLCBkaWUgYXVmIGtkZSBzY2hpbXBmZW4sIGdpYnQgZXMgcmVpY2hsaWNoLiBhdWNoIGhpZXIgOikKCnd1cnplbCAoZWluemVpbGVyIHNpbmQgYXVjaCBhcnRpa2VsIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp2ZXJsdXN0YW56ZWlnZSAoVHJ1ZywgMTAuIEp1biAxOTk5LCAwMDo0ODowNSk6Ckdlc3VjaHQ6IEF1c3J1ZXN0dW5nIGJlaW0gQmFscm9nIChSdWluZSBpbiBkZXIgTmFlaGUgZGVyIEJpZW5lbikuCkdlYm90ZW4gd2lyZDogQWxsZSBBdXNyZXVzdHVuZyBiaXMgYXVmIGRlbiBJbmhhbHQgZGVzIEtvbXBvZ3VlcnRlbCB1bmQgZGVuClNjaGxhZ3JpbmcuCkFienVnZWJlbiBiZWkgVHJ1ZyBvZGVyIFN0cm9oYWxtLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VtZWluc2FtZSBVbnRlcm5laG11bmdlbiAoa2VpbiBTZXgpIChDaXNvdSwgMTEuIEp1biAxOTk5LCAyMTo0OToyMik6Clp3ZWkgd2VpYmwuIEVsZmVuIGltIGJlc3RlbiBBbHRlciBzdWNoZW4gbWFlbm5saWNoZSBCZWdsZWl0dW5nIGZ1ZXIgZ2VtZWluc2FtZQpPbmxpbmUtU3R1bmRlbi4gV2lyLCBQcmluemVzc2luIGEuRC4gKEthZW1wZmVyaW4sIEdMIDE2LCB2b2xsZSBTdGF0cywgCmFsbGVpbmdlbGFzc2VuZSBTdHJvaHdpdHdlKSB1bmQgZGllIGRpZWJpc2NoZSBFbHN0ZXIgKFphdWJlcmluLCBHTCA4LCB2b2xsZQpTdGF0cywgbGVkaWcgdW5kIGxhc3RlcmhhZnQpLCAgc2luZCBkZXMgZWluc2FtZW4gTWV0emVsbnMgdW5kIFN0ZXJiZW5zIG11ZWRlLgpEYWhlciBzdWNoZW4gd2lyIEV1Y2ggenVtIEVya3VuZGVuIHZvbiBLYXRha29tYmVuICB1bmQgUGFyYXdlbHQuIElociBzb2xsdGV0Cm1hZW5ubGljaCwgbmljaHQgdW50ZXIgNTAgT25saW5lLVRhZ2VuLCB3aWxsaWcsIGdlZHVsZGlnLCBncm9zc3p1ZWdpZywga2VpbmUKV3Vyc3QgdW5kIGF1Y2gga2VpbiBad2VpdGllIHNlaW4uIFVtIGVpbmUgZXJmb2xncmVpY2hlIEV4cGVkaXRpb24genUKZ2V3YWVocmxlaXN0ZW4sIHNvbGx0ZXQgIElociBkaWUgZnVlciB1bnMgZXJmb3JkZXJsaWNoZSBBdXNydWVzdHVuZwpiZXJlaXRzdGVsbGVuIGtvZW5uZW4uIApadW0gQXVzZ2xlaWNoIHZlcnNwcmVjaGVuIHdpciBlaW5lIE1lbmdlIFNwYXNzIQpTb2xsdGUgc2ljaCBkYXJhdXMgZWluZSBlcm5zdGhhZnRlIGJlZ2x1ZWNrZW5kZSBEYXVlcmJlemllaHVuZyBlbnR3aWNrZWxuLCBpc3QKZGFzIHZvbiB1bnMgZ2VybiBlcnd1ZW5zY2h0IDotKS4KCkJpdHRlIG51ciBlcm5zdGdlbWVpbnRlIEFudHdvcnRlbiBhbgoKTGVpYSB1bmQgQ2lzb3UgLSAxMDAlIHNlcmlvZXMgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZXN1Y2h0OiBUaGUgcGVyZmVjdCBkcnVnIC4uLi4gKFNoYXJpYSwgMTIuIEp1biAxOTk5LCAyMjozMzozMik6Cn4jISBybj1OZXNhamEgcnQ9OTI5MjE5NDc0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI5MjE5NDc0CkljaCBkZW5rZSBhbSBiZXN0ZW4gbGFuZGVuIGRpZXNlIEFuZ2Vib3RlIGJlaSBOZXNpcyBUYW50ZTogU2hhcmlhIDopCgpTaGFyaWEgLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGtkZSAoSmVob3ZhLCAxMy4gSnVuIDE5OTksIDAwOjAwOjU5KToKfiMhIHJuPUxhcmlzc2EgcnQ9OTI4ODYzNjkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI4ODYzNjkyCkljaCBiaW4gUXQtUHJvZ3JhbW1pZXJlciAod2VpbCBLREUgZXR3YXMgenUgTGludXgvU29sYXJpcy1zcGV6aWZpc2NoIGlzdCksCmxldHp0ZW5kbGljaCBpc3QgZXMgZGFzIGdsZWljaGUgOikgS2FubnN0IGFsc28gcnVoaWcgRnJhZ2VuIHN0ZWxsZW4gLi4uCgpNZkcsIEoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdlc3VjaHQ6IFRoZSBwZXJmZWN0IGRydWcgLi4uLiAoTW9yZ290aCwgMTQuIEp1biAxOTk5LCAwNzozOToyMSk6Cn4jISBybj1TaGFyaWEgcnQ9OTI5MjE5NjEyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI5MjE5NDc0CkhtLCBrb250YWt0YW56ZWlnZW4/PwpobSwgd2FzIGtvZW5udGUgaWNoIGRlbm4gc2NocmVpYmVuPz8KCkljaCB3aWxsIEZJQ0tFTiAhIQoKRGlyZWt0IHVuZCBlaW5mYWNoLiB2ZXJzdGVodCBzb2dhciBqZWRlcyBibG9uZGNoZW4uLi4gOy0pCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBHZXN1Y2h0OiBUaGUgcGVyZmVjdCBkcnVnIC4uLi4gKFNvbmdva3UsIDE0LiBKdW4gMTk5OSwgMTA6MTc6NTQpOgp+IyEgcm49TW9yZ290aCBydD05MjkzMzg3NjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjkyMTk0NzQKS29lbm50ZXN0IGR1IGRhcyBuaWNodCBldHdhcyBuYWVoZXIgYXVzZnVlaHJlbj8/CkljaCBnbGF1YmUgbmljaHQsIGRhc3MgYWxsZSB2ZXJzdGFuZGVuIGhhYmVuLCB3YXMgZHUgbWVpbnN0LgoKU29uR29rdShhYnNvbHV0IGVybnN0IGhldXRlKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VyIHdpbGwgbWljaD8gKFBoeWdvcywgMTQuIEp1biAxOTk5LCAxNTo1ODowOCk6ClNlaHIgZ2VlaHJ0ZSBEYW1lbiB1bmQgSGVycmVuLAppbiBsZXR6dGVyIFplaXQgdmVyc3B1ZXJlIGljaCBiZWkgbWVpbmVuIFN0cmVpZnp1ZWdlbiBkdXJjaCBkYXMgTW9yZ2VuZ3JhdWVuCndpZWRlciBlaW4gdmVyc3RhZXJrdGVzIFphZXJ0bGljaGtlaXRzYmVkdWVyZm5pcywgd2FzIHZpZWxsZWljaHQgYXVjaCBkYXJhbgpsaWVnZW4gbWFnLCBkYXNzIHNpY2ggZGVyIEZydWVobGluZyBoaWVyIG51biBlbmRndWVsdGlnIGJyZWl0IGdlbWFjaHQgaGF0LgpBdXMgZGllc2VtIEdydW5kIG1vZWNodGUgaWNoIGVpbmZhY2ggbWFsIGZvbGdlbmRlcyBsb3N3ZXJkZW46CgoKICAgICAgICAgICAgICAgICAgICAgICAgSUNIIExJRUJFIEVVQ0ggQUxMRSEhIQoKCiAgICAgICAgICAgICAgICAgICAgIDg4ODg4OCAgICAgICAgICAgICA4ODg4ODgKICAgICAgICAgICAgICAgICAgODg4ODg4ODg4ODg4ICAgICAgIDg4ODg4ODg4ODg4OAogICAgICAgICAgICAgICAgODg4ODg4ODg4ODg4ODg4OCAgIDg4ODg4ODg4ODg4ODg4ODgKICAgICAgICAgICAgICAgODg4ODg4ODg4ODg4ODg4ODg4IDg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgIDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgIDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgIDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgIDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgICA4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4CiAgICAgICAgICAgICAgICA4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgICAgIDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgICAgICAgODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgKICAgICAgICAgICAgICAgICAgICAgODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAogICAgICAgICAgICAgICAgICAgICAgICA4ODg4ODg4ODg4ODg4ODg4ODg4CiAgICAgICAgICAgICAgICAgICAgICAgICAgODg4ODg4ODg4ODg4ODg4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ODg4ODg4ODg4OAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ODg4ODg4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODg4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgKCk51biB6dSBtZWluZW0gc3BlemllbGxlbiBBbmxpZWdlbjoKRGEgc2ljaCBtZWluIEFsdGVyIG51bm1laHIgYXVjaCBlaW5lciBnZXdpc3NlbiBrcml0aXNjaGVuIEdyZW56ZSBuYWVoZXJ0LCBiaW4KaWNoIGF1ZiBkZXIgU3VjaGUgbmFjaCBlaW5lciBsaWViZXZvbGxlbiwgZWluZnVlaGxzYW1lbiB1bmQgdHJldWVuIFBhcnRuZXJpbiwKbWl0IGRlciBpY2ggaGllciBlaW5lIHJpY2h0aWdlIEZhbWlsaWUgZ3J1ZW5kZW4gdW5kIGdlbWVpbnNhbSBtZWluZW4KTGViZW5zYWJlbmQgaW4gbWVpbmVtIEJhdW1oYXVzIHZlcmJyaW5nZW4ga2Fubi4gSWNoIHZlcmZ1ZWdlIHVlYmVyIGVpbmVuCnJlaWNoaGFsdGlnZW4gRXJmYWhydW5nc3NjaGF0eiB1bmQgZmluYW56aWVsbCBhdXNyZWljaGVuZGUgTWl0dGVsLCB1bSB1bnNlcmUKUGFydG5lcnNjaGFmdCBhdWYgZWluZXIgc29saWRlbiBCYXNpcyBhdWZ6dWJhdWVuLgpQcmluemlwaWVsbCB3dWVuc2NoZSBpY2ggbWlyIGVpbmUgUGFydG5lcmluIGltIFN0aWwgdm9uIENpc291IG9kZXIgTGVpYSAoc2llaGUKQXJ0aWtlbCAyOCksIGFiZXIgZXMgbXVzcyBuaWNodCB1bmJlZGluZ3QgZWluZSBFbGZpbiBzZWluLiBBdWNoIGVpbmUgZmVzY2hlClp3ZXJnaW4gb2RlciBlaW5lIEhvYmJpdGZyYXUgd2lya3QgYXVmIG1pY2ggc2VociBlcm90aXNjaC4KV2VubiBEdSBEaWNoIGFsc28gYW5nZXNwcm9jaGVuIGZ1ZWhsc3QsIEx1c3QgYXVmIGhlbW11bmdzbG9zZW4gU2V4IGluIGFsbGVuClZhcmlhbnRlbiB1bmQgVmVyc3RhZW5kbmlzIGZ1ZXIgbWVpbmUgSG9iYmllcyAoSGVydW1oYW50aWVyZW4gbWl0ClNwcmVuZ3N0b2ZmZW4KYWxsZXIgQXJ0LGV0Yy4pIGhhc3QsIHNvIG1lbGRlIERpY2ggYml0dGUgc2NobmVsbHN0bW9lZ2xpY2ggYmVpIG1pciEKQWxsZXMgd2VpdGVyZSBrb2VubmVuIHdpciBkYW5uIHp1c2FtbWVuIGluIGFsbGVyIFJ1aGUga2xhZXJlbi4uLgoKU2VobnN1Y2h0c3ZvbGwsIEV1ZXIgUGh5Z29zCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXZXIgd2lsbCBtaWNoPyAoVGVkZHksIDE0LiBKdW4gMTk5OSwgMTg6MTE6NDMpOgp+IyEgcm49UGh5Z29zIHJ0PTkyOTM2ODY4OCByZz1hbnplaWdlbgp+IyEgdGlkPTkyOTM2ODY4OApBbHMgTWVuc2NoIG1pdCBIb2JiaXQsIFp3ZXJnaW4gb2RlciBFbGZpbj8KU29kb21pZSBuZW5udCBtYW4gc293YXMsIHBmdWkgdWViZXIgZGljaC4KClRlZGR5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlciB3aWxsIG1pY2g/IChXaWRld2l0dCwgMTQuIEp1biAxOTk5LCAyMzoxMDo0Nyk6Cn4jISBybj1UZWRkeSBydD05MjkzNzY3MDMgcmc9YW56ZWlnZW4KfiMhIHRpZD05MjkzNjg2ODgKRHUgbWVpbnN0IHdvaGwgd2llIGtvZW5uZW4gSG9iYml0IHNpY2ggbnVyIG1pdCBNZW5zY2hlbiBhYmdlYmVuIDopCgpXaWRld2l0dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXZXIgd2lsbCBtaWNoPyAoTWllemUsIDE1LiBKdW4gMTk5OSwgMDg6NDU6NDIpOgp+IyEgcm49VGVkZHkgcnQ9OTI5Mzc2NzAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI5MzY4Njg4CgpUZWRkeSwgenVtIEdsdWVjayBoYXQgZXIgZGllIEZlbGxrbmV1bGUgdmVyZ2Vzc2VuIDopICphdG1lIGF1ZioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXZXIgd2lsbCBtaWNoPyAoVGVkZHksIDE1LiBKdW4gMTk5OSwgMTg6MDA6MDQpOgp+IyEgcm49TWllemUgcnQ9OTI5NDI5MTQyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTI5MzY4Njg4Ck5hamEsIG5lIGZsb3R0ZSBNSWV6ZSBpcyBqYSBPSy4KClRlZGR5LgpQLlMuOiBOZWluLCBpY2ggcmVkIG5pY2h0IHZvbiBNdSpzIG9kZXIgYWVobmxpY2hlbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXZXIgd2lsbCBtaWNoPyAoT3JrdG9ldGVyLCAxNi4gSnVuIDE5OTksIDIwOjQ5OjUwKToKfiMhIHJuPVBoeWdvcyBydD05MjkzNjg2ODggcmc9YW56ZWlnZW4KfiMhIHRpZD05MjkzNjg2ODgKSG1tIGJpc3QgZHUgZGEgbWl0IGRlbiBiZWlkZW4gc2ljaGVyID8KRGEgc3RhbmQgYXVzZHJ1ZWNrbGljaCBkYXJ1ZWJlcjogKGtlaW4gU2V4KQoKRHUgc2NoZWluc3Qgd2lya2xpY2ggYWx0IHp1IHdlcmRlbi4uLgoKT3JrdCBzY2hyZWlidCBmdWVyIHNjaG1hcnJuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSnVuZ21hZ2llciBzdWNodCAuLi4gKE11YWRpYiwgMTYuIEp1biAxOTk5LCAyMDo1NzowMCk6CklkZWxwYXJ0bmVyIQpEdSBzb2xsdGVzdCBzdHVuZGVubGFuZyBuaWNodHMgdHVuIGtvZW5uZW4sIGRpY2ggZGFuYWNoIGRlemVudCBhdXNsb2dnZW4gdW5kCmVyc3Qgd2llZGVyIHp1bSBuYWVjaHN0ZW4gSWRlbG4gYW53ZXNlbmQgc2Vpbi4KR3J1cHBlbmlkZWxuIG51ciBuYWNoIHZvcmhlcmlnZXIgQWJzcHJhY2hlLgoKc28gbmUgbGFlbmdlcmUgaWRlbHBhdXNlIGthbm4gaWNoIG5pY2ggdmVya3JhZnRlbi4KCm11YWRpYgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGljaHQgbWVpbmVyIEF1Z2VuLi4uIChGbGludG5haWwsIDIwLiBKdW4gMTk5OSwgMDM6MDY6MTIpOgpMaWNodCBtZWluZXIgQXVnZW4sIFN0ZXJuLCBkZXIgbWljaCBkdXJjaCBkaWUgRmluc3Rlcm5pcyBsZWl0ZXQuLi4KCndvIGJpc3QgZHUgbnVyLi4uClZlcmxvcmVuIGRlciBSaW5nIGRlciB1bnMgYmVpZGUgdmVyYmluZGVuIHNvbGx0ZSBhdWYgZXdpZy4uLgpnZWZyZXNzZW4gdm9uIGVpbmVtIGJzd2lsbGlnZW4gTFBNdWQtS2Zlcj8KVmllbGxlaWNodCB3ZXJkZSBpY2ggZGljaCBkZXJlaW5zdCB3aWVkZXJmaW5kZW4uLi4KYXVmIGVpbmVyIGFuZGVyZW4gRWJlbmUuLi4KVmVybGFzc2VuIGhhc3QgZHUgbWljaCB1bmQgdW5zZXIgSGF1cy4uLgpkZWluZSBaaW1tZXIgLSBub2NoIGltbWVyIGxlZXIuLi4Kd28gbnVyIHdvIGJpc3QgZHUgaGluIGtsZWluZSBIZXhlCgpzaWNoIHNlaG5lbmQgZGVuIEJhcnQga3JhdWxlbmQKCgludXIgZGVpbiBGbGludG5haWwKCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGlsZmUgISEhIChNb3Jnb3RoLCAyMi4gSnVuIDE5OTksIDA5OjQ5OjAyKToKaHR0cDovL3d3dy5oZWlzZS5kZS9uZXdzdGlja2VyL2RhdGEvZm0tMjIuMDYuOTktMDAwLwoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIaWxmZSAhISEgKFNvbmdva3UsIDIzLiBKdW4gMTk5OSwgMDg6Mzg6NDcpOgp+IyEgcm49TW9yZ290aCBydD05MzAwMzc3NDIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzAwMzc3NDIKRHUgaGFzdCBkYXMgIkljaCBiaW4gbmljaHQgc3VlY2h0aWciIHZlcmdlc3NlbiA7KQoKU2F5b3VuYXJhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJvaGVzIEp1YmlsYWV1bSAoQW5hY3Jpb24sIDI0LiBKdW4gMTk5OSwgMDE6NDU6MDMpOgoKV2lyIGZlaWVybiBoZXV0ZSBkZW4gNTAwMHRlbiBUb2Rlc3RhZyB2b24gTG9md3lyIC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfCBMb2Z3eXIgd3VyZGUgc2VpdCBkZW0gNi4zLjE5OTYgfAp8ICAgIGJlcmVpdHMgNTAwMCBtYWwgZ2V0b2V0ZXQuICB8CnwgU2VpbmUgZWlmcmlnc3RlbiBNb2VyZGVyIHNpbmQ6IHwKfCAgICAgU2tpcHBlci4uLi4uLi42MDUgbWFsLiAgICAgfAp8ICAgICBTbHlmb3guLi4uLi4uLjUxNyBtYWwuICAgICB8CnwgICAgIExhdXJpbi4uLi4uLi4uNDE3IG1hbC4gICAgIHwKfCAgICAgTGlsaXB1dC4uLi4uLi40MDMgbWFsLiAgICAgfAp8ICAgICBUb3dlci4uLi4uLi4uLjMwOSBtYWwuICAgICB8CnwgICAgIFRoZXJpbi4uLi4uLi4uMTM3IG1hbC4gICAgIHwKfCAgICAgS2V5Li4uLi4uLi4uLi4xMzIgbWFsLiAgICAgfAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAKCk1vZWdlc3QgRHUgbm9jaCB2aWVsZSB3ZWl0ZXIgTWFsZSBEZWluIEJsdXQgZnVlciB1bnMgdmVyZ2llc3NlbiA6KQoKQW5hYyoKClAuUy46IFVuZCBsYXNzIERpY2ggbmljaHQgdm9uIEtleSBlaW5ob2xlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVXJsYXViIChSaWt1cywgMjQuIEp1biAxOTk5LCAyMjo1NjoyOCk6CkhpLAoKaXJnZW5kd2FubiBkaWVzZXMgSmFociBtb2VjaHRlIGljaCBnZXJuIGZ1ZXIgMy00IFdvY2hlbiBVcmxhdWIgbWFjaGVuIHVuZAp6LkIuIHBlciBNaWV0d2FnZW4gdW5kIFplbHQgZGllIEdlZ2VuZCBlcmt1bmRlbi4gTHVzdCBoYWV0dGUgaWNoIHdpZWRlcgphdWYgVVNBIG9kZXIgSXNsYW5kLCB3dWVyZGUgYWJlciBhdWNoIGdlcm4gSXJsYW5kLCBTY2hvdHRsYW5kIG9kZXIgd2FzIGF1Y2gKaW1tZXIgd2FlaGxlbi4gTWVpbiBQcm9iIGlzdCBoYWx0IG51ciwgZGFzcyBkaWVzZXMgSmFociBhbGxlIGF1cyBtZWluZXIKQmVrYW5udHNjaGFmdCBlbnR3ZWRlciBzY2hvbiBVcmxhdWIgaGF0dGVuLCBhbHMgaWNoIG5pY2h0IGtvbm50ZS93b2xsdGUKb2RlciBrZWluZSBaZWl0IGhhYmVuIHdlcmRlbi4gVW5kIGRhIGljaCB1bmdlcm4gYWxsZWluZSBydW16aWVoZSwgc3VjaGUKaWNoIGhpZXIgZWluZShuKSwgZGllL2RlciBMdXN0IGhhZXR0ZSEgRmFsbHMgamEsIGJpdHRlIG1haWwgYW4gbWljaCEKCkRhbmtlLCBSaWt1cyAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMaWNodCBtZWluZXIgQXVnZW4uLi4gKEF1Z3JhLCAyNi4gSnVuIDE5OTksIDIzOjE0OjIwKToKfiMhIHJuPUZsaW50bmFpbCBydD05Mjk4NDA3NzIgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mjk4NDA3NzIKTmEsIER1IGJpc3QgbWlyIGRlciBSaWNodGlnZSwgCgplcnN0IHZlcGllc2Vsc3QgRHUgRGljaCBqYWhyZWxhbmcsIGxhZXNzdCBtaWNoIGhpZXIgZWluc2FtIHJ1bWhldWxlbi4gVW5kIGRhbm4Ka29tbXQgZGVyIEtlcmwgd2llZGVyIGFuZ2VrcnVlbWVsdCB1bmQgZnJhZ3QgLCB3byBJQ0ggd2FyPyAgCgpVbmQgZGVuIFJpbmcgaGFzdGUgYXVjaCB2ZXJzY2hsYW1wdD8gIEtvbW0gRHUgbWlyIG51ciBuYWNoIEhhdXNlLCBpY2ggd2Vpc3MKbm9jaCBnZW5hdSB3byBkZXIgSG1hbWVyIGhhZW5ndCwgbWl0IG1hbiBhdWNoIGRlbiBGbGludG5haWwgdW5kIGdlc3BpdHp0IGluCmRlbiBIb2VobGVuYm9kZW4gcmFtbWVuIGthbm4uIAoKQS4gV2Vpc3NuaXgKCjstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmlsbGlnbXVkZGVuID8gKEdyaW1tYm9ybiwgMjkuIEp1biAxOTk5LCAxODo0NTo0Nyk6Cn4jISBvbj1SZWFwZXIgb3Q9OTMwNjc0NjI5IG9nPWFsbGdlbWVpbmVzCgogRGFzIGhpZXIgaXN0IG1pciBnZXJhZGUgenVnZW1haWx0IHdvcmRlbi4KCiBXaWVkZXJtYWwgZWluIHRvbGxlcyBBbmdlYm90Li4uIC0gIHdhcyBkYXZvbiB6dSBoYWx0ZW4gaXN0CiB3ZWlzeiBpY2ggbmljaHQsIGlzIG1pciBlaWdlbnRsaWNoIGF1Y2ggd3Vyc3QuCiBBYmVyIHZpZWxsZWljaHQgaXNzZXMgZnVlciBkZW4gZWluIG9kZXIgYW5kZXJlbiAncHJpdmF0bXVkZGVyJwogamEgZG9jaCBnYW56IGludGVyZXNzYW50LiA6bykKCiBSZWFwZXIKCiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tIAogIAoKIEFNSUdBLWFrdHVlbGwtU3BlY2lhbCArKysgQU1JR0EtYWt0dWVsbC1TcGVjaWFsIAoKIEludGVybmV0LU51dHp1bmcgZnIgMSBQZmVubmlnIHBybyBNaW51dGUgKDI3LjA2Ljk5KSAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKIFdpZSBiZXJlaXRzIGdlbWVsZGV0LCBrb3N0ZW4gYW4gZGllc2VtIERpZW5zdGFnIEZlcm5nZXNwcmNoZSAKIHp3aXNjaGVuIDIxIHVuZCAyNCBVaHIgYmVyIFRhbGtsaW5lICgwMTA1MCkgbnVyIDEgUGZlbm5pZyBwcm8gCiBNaW51dGUuIERvY2ggZGFubiBpc3QgYXVjaCBkZXIgSW50ZXJuZXQtQXVmZW50aGFsdCwgc2VsYnN0IGZyIAogQW53ZW5kZXIsIGRpZSBrZWluZW4gUHJvdmlkZXIgbWl0IEVpbndhaGxudW1tZXIgaW4gZGVyIEZlcm56b25lIAogaGFiZW4sIG5pY2h0IHRldXJlcjogCgogSW50ZXJuZXQtTnV0emVyIGZyIDEgUGYuL01pbi4gVGVsZWZvbmtvc3RlbiwgYWJlciBrb3N0ZW5sb3MgaW5zIAogSW50ZXJuZXQgSGFtYnVyZywgMjQuIEp1bmkgMTk5OS4gRGllIFBPUCBQb2ludCBvZiBQcmVzZW5jZSBHbWJILCAKIEhhbWJ1cmcsIHN0YXJ0ZXQgcHJlaXNhZ2dyZXNzaXYgaW4gZGllIFNvbW1lcnplaXQuIERlbm4gYXVjaCBkaWUgCiBJbnRlcm5ldC1OdXR6ZXIgc29sbGVuIHNpY2ggYmVyIGZhbGxlbmRlIFByZWlzZSB1bmQgU29uZGVyYWt0aW9uZW4gCiBkZXIgVGVsZWZvbmdlc2VsbHNjaGFmdGVuIGZyZXVlbiBrbm5lbi4gTWl0IEhpZ2hzcGVlZCBpbnMgSW50ZXJuZXQgCiBicm93c2VuIHNpZSBhYiBkZW0gMjYuIEp1bmkgMTk5OSBhbiB2b3JlcnN0IHp3ZWkgVGVzdC1Xb2NoZW5lbmRlbiAKICgyNi4gdW5kIDI3LiBKdW5pIHNvd2llIDMuIHVuZCA0LiBKdWxpKSBrb3N0ZW5sb3MgaW5zIEludGVybmV0LiAKIEpld2VpbHMgdm9uIEZyZWl0YWcgMjQuMDAgVWhyIGJpcyBNb250YWcgMC4wMCBVaHIgZ2lsdCBkaWVzZSBBa3Rpb24sIAogZGllIGdlbWVpbnNhbSB2b24gZGVyIFBPUCBQb2ludCBvZiBQcmVzZW5jZSBHbWJILCBJbnRlcm5ldC1TZXJ2aWNlLVByb3ZpZGVyLAogdW5kIGRlciBUZWxlZm9uZ2VzZWxsc2NoYWZ0IEhhbnNlTmV0IEdtYkggcmVhbGlzaWVydCB3aXJkLiAiRXMgc3BpZWx0IAogZGFiZWkga2VpbmUgUm9sbGUiLCBlcmtscnQgUE9QLUdlc2NoZnRzZmhyZXIgSG9sZ2VyIEdydWVsLCAiYmVyIAogd2VsY2hlIFRlbGVmb25nZXNlbGxzY2hhZnQgc2ljaCBkaWUgSW50ZXJuZXQtU3VyZmVyIGVpbndobGVuLiIgCiBTaWUga25udGVuIGRlbiBqZXdlaWxzIGduc3RpZ3N0ZW4gVGFyaWYgZnIgZGllIFRlbGVmb24tR2ViaHJlbiAKIHNlbGJzdCBiZXN0aW1tZW4uIERlciBnbnN0aWdzdGUgVGFyaWYgYW0gdmVyYmxlaWJlbmRlbiBKdW5pLVdvY2hlbmVuZGUgCiB3aXJkIHouQi4gYmVyIGRpZSAwMTA5MDA0MTUyOTE5ODg4IGZyIDIsOSBQZi4vTWluLiBhbmdlYm90ZW4uIAogR2xlaWNoIGRhaGludGVyIHBsYXppZXJlbiBzaWNoIGRpZSAwMTA1MDA0MTUyOTE5ODg4IGFiIDMsOSBQZi4vTWluLiAKIHVuZCBkaWUgMDEwNzAwNDE1MjkxOTg4OCBhYiA0IFBmLi9NaW4uIAoKIE5vY2ggZ25zdGlnZXIgd2lyZCBlcyBhbSBEaWVuc3RhZywgZGVtIDI5LiBKdW5pIDE5OTk6IGJlciBkaWUgCiAwMTA1MDA0MTUyOTE5ODg4IHphaGxlbiBkaWUgSW50ZXJuZXQtTnV0emVyIGluIGRlciBaZWl0IHZvbiAyMS0yNCBVaHIgCiBudXIgMSBQZi4vTWluLiBmciBkYXMgU3VyZmVuIGltIEludGVybmV0ISEhIERpZSBBYnJlY2hudW5nIGRlciAKIFRlbGVmb24tR2ViaHJlbiBlcmZvbGd0IHdpZSBibGljaCBiZXIgZGllIGpld2VpbGlnZSBUZWxlZm9uZmlybWEuIAogRXh0cmEtS29zdGVuIHdpZSBmciBBbm1lbGR1bmcsIE1pbmRlc3RnZWJociBvZGVyIEdydW5kZ2ViaHIgZmFsbGVuIAogZnIgZGllIEludGVybmV0LU51dHp1bmcgbmljaHQgYW4uIFVuZCBzbyBnZWh0J3M6IAoKIEltIERGLU5ldHp3ZXJrIG11IGRlciBCZW51dHplcm5hbWUvTG9naW4gImhhbnNlbmV0IiwgZGFzIEtlbm53b3J0LyBQYXdvcnQgCiAicG9wIiwgZGllIEVpbndhaGxudW1tZXIgIjAxMHh4LTA0MTUyOTE5ODg4IiB1bmQgZnIgZGllIElQLU51bW1lcgoiZHluYW1pc2NoIiAKIGVpbmdlZ2ViZW4gd2VyZGVuLiBEYXMgZ2VuZ3QuIEVzIHN0ZWhlbiBmciBkaWUgVGVzdHBoYXNlIGJpcyBlaW5zY2hsaWVsaWNoIAogNC4gSnVsaSAxOTk5IGJlciAxMDAwIFBvcnRzIHp1ciBWZXJmZ3VuZywgc28gZGEgMTAwMCBOdXR6ZXIgZ2xlaWNoemVpdGlnIAogYmVyIGRpZXNlIFBsYXR0Zm9ybSBzdXJmZW4ga25uZW4uIAogRWlubWFsIGRvcHBlbGtsaWNrZW4gdW5kIHZlcmJpbmRlbi4gVW5kIGxvcyBnZWh0J3M6IEtvc3RlbmxvcyBpbnMgSW50ZXJuZXQhIQogV2VpdGVyZSBJbmZvcyBzaW5kIGltIEludGVybmV0IHVudGVyIGh0dHA6Ly9jYWxsLnBvcC5kZSBlcmhsdGxpY2guIAogIAogIChRdWVsbGU6IFBvaW50IG9mIFByZXNlbmNlKSAKCiBFLU1haWwtQWJvcyB2b24gQU1JR0EgYWt0dWVsbCBrbm5lbiB1bnRlciBBbmdhYmUgZGVyIGdld25zY2h0ZW4gVmVyc2lvbiAKICgxLiBBTUlHQUd1aWRlIG9kZXIgSFRNTDsgMi4gbWl0IG9kZXIgb2huZSBHcmFmaWtlbikga29zdGVubG9zIGF1ZiBkZW4gCiBXV1ctU2l0ZXMgaHR0cDovL3d3dy5tZWRpYXNwYWNlLm5ldC9hbWlnYWFrdHVlbGwgdW5kIAogaHR0cDovL3d3dy52bWMuZGUvYWFrdCBiencuIHBlciBFLU1haWwgKGFha3RAZ214LmRlKSAKIGVpbmdlcmljaHRldCB3ZXJkZW4uIAoKICAxOTk5IENhcnN0ZW4gU2NocmRlciAtIERlciBJbmhhbHQgZGllc2VyIE1haWwgZGFyZiBudXIgdm9sbHN0bmRpZyB1bmQgCiBvaG5lIG5kZXJ1bmdlbiB3ZWl0ZXJ2ZXJicmVpdGV0IHdlcmRlbiAoei5CLiBpbiBOZXdzZ3JvdXBzLCBGb3JlbikuIAoKIEFNSUdBLWFrdHVlbGwtU3BlY2lhbCArKysgQU1JR0EtYWt0dWVsbC1TcGVjaWFsIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIHhyZWYtVG9vbCBmdWVyIExQQyAoU2hhbm5hcmEsIDEwLiBKdWwgMTk5OSwgMTE6MTE6MzgpOgpLZW5udCBqZW1hbmQgZWluIHhyZWYtVXRpbGl0eSBmdWVyIFdpbjMyLCBkYXNzIGVpbmVuIGFsbGUgZGVmaW5pZXJ0ZW4KRnVua3Rpb25lbiAod2VubiBlcyBnZWh0IG1pdCBLb21tZW50YXJlKSBpbiBlaW5lIERhdGVpIGV4dHJhaGllcnQgYnp3IGFtCkJpbGRzY2hpcm0gYW56ZWlndCAoZGFzIG1hbiBkYW5uIGluIGVpbmUgRGF0ZWkgbGVpdGVuIGthbm4pPwoKU2hhbm5hcmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNvbm5lbmZpbnN0ZXJuaXMgKEFsYm9pbiwgMTIuIEp1bCAxOTk5LCAxMzo1OTo0NCk6CkFsc28gZWlnZW50bGljaCBsYWVzc3QgbWljaCBXZXJidW5nIHZvZWxsaWcga2FsdCwgYWJlciBiZWkgZGVyIEthbXBhZ25lIHZvbgpkbS1kcm9nZXJpZSBtYXJrdCB3dXJkZSBpY2ggbnUgZG9jaCBhbmdlc3RlY2t0LiBBZWggd29ydW0gZXMKZ2VodD8gCk51biBqYSwgYW0gMTEuOC4gZ2lidCBlcyBqZW5lcyBkZW5rd3VlcmRpZ2UgRXJlaWduaXNzIGRhcyBtYW4gU29ubmVuZmluc3Rlcm5pcwpuZW5udC4gRGFzIEtlcm5nZWJpZXQsIGFsc28gZGFzIEdlYmlldCB3byBkaWUgRmludGVybmlzIHRvdGFsIGVyc2NoZWludCBsaWVndAppbSBzdWVkbGljaGVuIERldXRzY2hsYW5kLCB6QiBiZWkgU3R1dHRnYXJ0LCBVbG0sIERhY2hhdSBzaWVoZSBhdWNoIAoKaHR0cDovL3d3dy5kd2QuZGUvZ2VuZXJhbC9lY2xpcHNlLwooa2xpY2sgYXVmICdWZXJsYXVmIGRlciBGaW5zdGVybmlzem9uZScpCgpNZWluZSBGcmFnZSwgZ2lidCBlcyBub2NoIGFuZGVyZSBBc3Ryby1GcmVha3Mgb2RlciBpbnRlcmVzc2llcnRlIGRpZSBleHRyYQpkZXN3ZWdlbiBydW50ZXJmYWhyZW4uIFVuZDogd2Vpc3Mgd2VyIGluIGRpZXNlbSBHZWJpZXQgZ3VlbnN0aWdlCkF1c3NpY2h0c3B1bmt0ZT8KCkFsYm9pbiwgYXVmIGd1dGVzIFdldHRlciBob2ZmZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc29ubmVuZmluc3Rlcm5pcyAoVHJhbmNlLCAxMi4gSnVsIDE5OTksIDE0OjUwOjAyKToKfiMhIHJuPUFsYm9pbiBydD05MzE3ODA3ODQgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzE3ODA3ODQKSW4gS2FybHNydWhlIHdpcmQgZXMgZWluIEZlc3QgaW0gU2NobG9zc3BhcmsgZ2ViZW4sIGRlciBzaWNoZXIgZWluIG5ldHRlciBPcnQKenVtIHp1c2NoYXVlbiBpc3QhIEFuc29uc3RlbiBnaWJ0IGVzIHdvaGwgYXVjaCBpbiBQZm9yemhlaW0gKGdlbmF1IGltIFplbnRydW0pCnVuZCBTdHV0dGdhcnQgZXh0cmEgVmVyYW5zdGFsdHVuZ2VuLgoKVHJhbmNlLCB3aXJkIHdvaGwgaW4gS0EgenVzY2hhdWVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHNvbm5lbmZpbnN0ZXJuaXMgKE1haGF0bXUsIDEyLiBKdWwgMTk5OSwgMTQ6NTE6MTgpOgp+IyEgcm49VHJhbmNlIHJ0PTkzMTc4MzgwMiByZz1hbnplaWdlbgp+IyEgdGlkPTkzMTc4MDc4NAo6Z3Vja3QgYXVjaCBydW50ZXIuCjptdXNzIHNpY2ggZGVuIEtlcm5zY2hhdHRlbiBub2NobWFsIGdlbmF1IGFuc2NoYXVlbi4KO1NjaHdlc3RlciBrZW5udCBkYSBzbyBlaW5lbiBob2hlbiBCZXJnLgo6aG9mZnQsIGRhc3MgZGVyIGltIEtlcm5zY2hhdHRlbiBsaWVndC4KCmdsb2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBzb25uZW5maW5zdGVybmlzIChBbGJvaW4sIDEyLiBKdWwgMTk5OSwgMTU6MTg6MjApOgp+IyEgcm49TWFoYXRtdSBydD05MzE3ODM4Nzggcmc9YW56ZWlnZW4KfiMhIHRpZD05MzE3ODA3ODQKZWlnZW50bGljaCB3dWVyZGUgaWNoIGxpZWJlciBkb3J0aGluIHdvIG1laHIgcnVoZSBpc3QgdW5kIHdvIG1hbiBkZW4gZ2FuemVuCkhvcml6b250IHVlYmVyYmxpY2tlbiBrYW5uIC4uCgpBbGJvaW4sIGRlciBuaWNodCBnZXJuIGluIGRpZSBNYXNzZSB0YXVjaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc29ubmVuZmluc3Rlcm5pcyAoSG9ibywgMTIuIEp1bCAxOTk5LCAxNToyNjoyMyk6Cn4jISBybj1UcmFuY2UgcnQ9OTMxNzgzODAyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMxNzgwNzg0CkhtbSwgb2IgZGVyIFNjaGxvc3NwYXJrIHNvIGlkZWFsIGlzdCwgd2Vpc3MgaWNoIG5pY2h0LiBVbnMgd2lyZCBlcyB3b2hsIGVoZXIKYXVmIGRlbiBUdXJtYmVyZyBvZGVyIFJpY2h0dW5nIEZlcm5zZWh0dXJtIEdydWVud2V0dGVyc2JhY2ggemllaGVuICh3byB3aXIKZG9jaCBzY2hvbiBkYSBzaW5kLi4uKQoKICBIb2JvIC0gbGVidCBpbSBLZXJuc2NoYXR0ZW4gKElzdCBkYXMgdW5nZXN1bmQ/KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogc29ubmVuZmluc3Rlcm5pcyAoVHJhbmNlLCAxMi4gSnVsIDE5OTksIDE1OjUyOjI0KToKfiMhIHJuPUhvYm8gcnQ9OTMxNzg1OTgzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMxNzgwNzg0CjogUmljaHR1bmcgRmVybnNlaHR1cm0gR3J1ZW53ZXR0ZXJzYmFjaCAuLi4Ka29tbXQgbWFuIGRhIGRyYXVmPwoKCm5hLCBtYWwgc2VoZW4gd28gbWljaCBtZWluZSBLYXJsc3J1aGVyIEJla2FubnRlbiBoaW5zY2hsZWlmZW4gOikKClRyYW5jZSwgYmVzdWNodCB2ZXJtdXRsaWNoIGFsdGUgV0ctR2Vub3NzSW5uZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHNvbm5lbmZpbnN0ZXJuaXMgKEhvYm8sIDEyLiBKdWwgMTk5OSwgMTU6NTM6MTQpOgp+IyEgcm49VHJhbmNlIHJ0PTkzMTc4NzU0NCByZz1hbnplaWdlbgp+IyEgdGlkPTkzMTc4MDc4NApOb2UsIHJhdWYgbmljaHQgKG51ciB3ZW5uIG1hbiBiZWltIHJvdGVuIEtyZXV6IGlzdCB1bmQgZGEgaXJnZW5kd2VsY2hlClJldHR1bmdzdWVidW5nZW4gbWFjaHQpLgpBYmVyIGF1Zm4gQmVyY2ggZWJlbiA6KQoKIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHNvbm5lbmZpbnN0ZXJuaXMgKEFuYXRvbCwgMTIuIEp1bCAxOTk5LCAxNTo1ODoyMCk6Cn4jISBybj1Ib2JvIHJ0PTkzMTc4NzU5NCByZz1hbnplaWdlbgp+IyEgdGlkPTkzMTc4MDc4NApXb3p1IHVlYmVyaGF1cHQgZGVuIFVsdHJhaG9yaXpvbnQ/IFdlbm4gZGllIFNvbm5lIGFtIEhpbW1lbCBzdGVodCwgaXN0IApzaWUgaGFsdCBhbSBIaW1tZWwgdW5kIGd1dC4gVW5kIGVzIGlzdCBqYSBlaW5lIFNvbm5lbmZpbnN0ZXJuaXMgdW5kCmtlaW5lIDUtY20tdWViZXItSG9yaXpvbnQtTW9uZHZlcmR1bmtsdW5nLi4uLiBob2ZmIGljaCBkb2NoIHp1bWluZGVzdC4KCkFsc28gZW50d2VkZXIgUGFydHkgcGx1cyB2aWVsZSBMZXV0ZSBvZGVyIEFiZ2VzY2hpZWRlbmhlaXQgcGx1cwpiZXNpbm5saWNoZSBSdWhlIGltIEdydWVuZW4uLi4gCgpBbmF0b2wKClBTOiBEZXV0c2NobGFuZCB3aXJkIGVoIHZvbGxrb21tZW4gd29sa2VudmVyaGFuZ2VuIHNlaW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBzb25uZW5maW5zdGVybmlzIChBbGJvaW4sIDEyLiBKdWwgMTk5OSwgMTk6MzU6MjgpOgp+IyEgcm49QW5hdG9sIHJ0PTkzMTc4NzkwMCByZz1hbnplaWdlbgp+IyEgdGlkPTkzMTc4MDc4NAp0amEgQW5hdG9sLCBhdWYgZGllc2UgRnJhZ2UgaGFiZSBpY2ggZ2V3YXJ0ZXQsIG51ciBkYXNzIGljaCBuaWUgZ2VkYWNodApoYWV0dGUsIGRhc3Mgc2llIHZvbiBEaXIga29tbWVuIHd1ZXJkZSwtKQpBbHNvIGJlaSBuZXIgU29ubmVuZmluc3Rlcm5pcyBpc3QgbmljaHQgbnVyIGRhcyBpbnRlcmVzc2FudCwgd2llIGRlciBNb25kIHZvcgpkZXIgU29ubmUgdm9yYmVpaHVzY2h0LCBzb25kZXJuIGF1Y2ggd2llIGRlciBIaW1tZWwgc2ljaCBhZW5kZXJ0LiBBdWNoIHdlbm4KZGVyIFNjaGF0dGVuIHZpZWxsZWljaHQgc2NobmVsbGVyIHJhbnppZWh0IGFscyBtYW4gZ3Vja2VuIGthbm4sIHNvIHNvbGwgbWFuCmhpbiB1bmQgd2llZGVyIGludGVyZXNzYW50ZSBQaGFlbm9tZW5lLCB3aWUgU29ubmVuZmxhY2tlcm4gYmVvYmFjaHRlbiBrb2VubmVuLgpEZXN3ZWdlbiBhbHNvIGRpZSBTdWNoZSBuYWNoIG5lbSBBdXNzaWNodHNwdW5rdCAuLi4KCkFsYm9pbiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IHNvbm5lbmZpbnN0ZXJuaXMgKEFsYm9pbiwgMTIuIEp1bCAxOTk5LCAxOTozODo0Mik6Cn4jISBybj1BbGJvaW4gcnQ9OTMxODAwOTI4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMxNzgwNzg0CmFyZ3MgbmljaHQgc29ubmVuZmxhY2tlcm4gc29uZGVybiBhdWYgZGVtIEJvZGVuIGthbm4gbWFuIFNjaGF0dGVuZmxha2VybgpiZW9iYWNodGVuCgpBbGJvaW4gKGtlaW4gVGFnIG9obmUgVHlwb3MpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBzb25uZW5maW5zdGVybmlzIChNb25vdG9uaSwgMTIuIEp1bCAxOTk5LCAyMDo1ODowMyk6Cn4jISBybj1Ib2JvIHJ0PTkzMTc4NTk4MyByZz1hbnplaWdlbgp+IyEgdGlkPTkzMTc4MDc4NApLZXJuc2NoYXR0ZW4gaXN0IG51ciB1bmdlc3VuZCwgd2VubiBlciB2b20gS2VybmtyYWZ0d2VyayBrb21tdCEKCk1vbm90b25pIChIZXV0ZSBiZXNvbmRlcnMgc2NobGF1ISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkt1Y2t0IG1hbC4uLiAoV29vZHksIDE3LiBKdWwgMTk5OSwgMTg6Mjk6MzkpOgouLi5uYWNoOgpodHRwOi8vd3d3Lm9zbmFicnVlY2submV0c3VyZi5kZTo4MDgwL35yX3NjaG9lbmZlbGR0L3R2X2Fic3RpbW11bmcuaHRtbAoKdW5kIHN0aW1tdCBkb3J0IGFsbGUgZnVlciBDYXR3ZWF6bGUsIG9kZXIgd2FzIGF1Y2ggaW1tZXIgIDstKQoKCndvb2R5Li0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbmZvcm1hdGlrZXIgKHdpc3MuIE10YiArIFByb21vdGlvbnNtb2VnbGljaGtlaXQpIChIYXRlLCAxOS4gSnVsIDE5OTksIDExOjQxOjU5KToKd2lyIHN1Y2hlbiBlaW5lbiBJbmZvcm1hdGlrZXIgYWxzIHdpc3NlbnNjaGFmdGxpY2hlbiBNaXRhcmJlaXRlci4KRGllc2VyIGJla29tbXQgYmVpIHVucyBkaWUgTW9lZ2xpY2hrZWl0IHp1ciBQcm9tb3Rpb24gdW5kIHd1ZXJkZQptaXQgbWlyIFp1c2FtbWVuIGFuIGVpbmVtIFByb2pla3QgaW0gQmVyZWljaCBTaW11bGF0aW9uIHp1cgpOYWNoaGFsdGlnZW4gRW50d2lja2x1bmcgaW4gRGV1dHNjaGxhbmQgYXJiZWl0ZW4uIERpZSBBdWZnYWJlCnVtZmFzc3QgZmFzdCBhbGxlIEJlcmVpY2hlLCB2b24gS29tbXVuaWthdGlvbiBiaXMgR1VJIERldmVsb3BtZW50CnVuZCB3aXJkIGFscyBCYXNpcyBKYXZhIGhhYmVuLiBLZW5udG5pc3NlIGluIEMgdW5kIEMrKyBzaW5kIGdhbnoKcHJha3Rpc2NoIHVuZCB3ZXIgYXVjaCBub2NoIEZvcnRhbiBrYW5uLCBtYWNodCBtZWluZW4gQ2hlZgpnbHVlY2tsaWNoLgoKRGllIEJlemFobHVuZyBpc3QgbGVpZGVyIG5pY2h0IHVuYmVkaW5ndCBkYXMgQSZPOgoKICAgQkFUIElJYS1PIGJ6dyBkYXMgYXF1aXZhbGVudCBmdWVyIEZILUFiZ2FlbmdlciAoQkFULUlJSS1PKQoKQWxsZXJkaW5ncyBnaWJ0cyBiZWkgdW5zIGVpbmlnZSBhbmRlcmUgTmV0dGlna2VpdGVuLCBkaWUgZGFzCkxlYmVuIHVuZCBBcmJlaXRlbiBoaWVyIHNlaHIgYW5nZW5laG0gbWFjaGVuIDotKSBaVSBlcmZyYWdlbgpiZWkgbWlyLgoKV2VyIGludGVyZXNzZSBoYXQsIG1haWwgbWlyIGFuIGxlb0BtdWQuZGUKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW5mb3JtYXRpa2VyICh3aXNzLiBNdGIgKyBQcm9tb3Rpb25zbW9lZ2xpY2hrZWl0KSAoSGF0ZSwgMTkuIEp1bCAxOTk5LCAxMTo0NDowMSk6Cn4jISBybj1IYXRlIHJ0PTkzMjM3NzMxOSByZz1hbnplaWdlbgp+IyEgdGlkPTkzMjM3NzMxOQpBY2hqYSwgZGFzIGdhbnplIGlzdCBpbiBCZXJsaW4sIGRpZSBGaXJtYS9Gb3JzY2h1bmdzemVudHJ1bSBpc3QgR01ECkZJUlNUIChodHRwOi8vd3d3LmZpcnN0LmdtZC5kZS8pLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBzb25uZW5maW5zdGVybmlzIChNdWFkZGliLCAyMi4gSnVsIDE5OTksIDIxOjU1OjA0KToKfiMhIHJuPUFsYm9pbiBydD05MzE3ODA3ODQgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzE3ODA3ODQKSWNoIGdsYXViIG5pY2h0LCBkYXNzIER1IGVpbmVuIEF1c3NpY2h0c3B1bmt0IGZ1ZXIgdG90YWxlIEZpbnN0ZXJuaXMgYnJhdWNoc3QuCk5hY2h0cyB6dW0gQmVpc3BpZWwgc2VoIGljaCBkYXMgdm9uIHVlYmVyYWxsIGhlciBnbGVpY2ggZ3V0IDopCgpNdWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc29ubmVuZmluc3Rlcm5pcyAoUmluZ29yLCAyMi4gSnVsIDE5OTksIDIyOjIxOjM5KToKfiMhIHJuPU11YWRkaWIgcnQ9OTMyNjczMzA0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMxNzgwNzg0Ck1pdCBkZXIgQXJndW1lbnRhdGlvbiBicmF1Y2h0IHNpY2ggYXVjaCBrZWluZXIgYXVmIGRpZSBSZWlzZSBpbiBkZW4gU3VlZGVuIHp1Cm1hY2hlbi4gRWluZSB6dSB1ZWJlciA5MCUgYWJnZWRlY2t0ZSBTb25uZSBzaWVodCBtYW4gYXVjaCBub2NoIGluIEJlcmxpbi4KClJpbmdvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogc29ubmVuZmluc3Rlcm5pcyAoSG9vZCwgMjMuIEp1bCAxOTk5LCAwMToyMDo1OSk6Cn4jISBybj1SaW5nb3IgcnQ9OTMyNjc0ODk5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMxNzgwNzg0CmxlaWRlciBtZXJrdCBtYW4gb2huZSBzZWhoaWxmZW4ga2F1bSB3YXMgdm9uIGRlciBzb25uZW5maW5zdGVybmlzIGluCmJlcmxpbiwgYXVjaCB3ZW5uIGZhc3QgOTAlIG5hY2ggc2VociB2aWVsIGtsaW5ndC4KZGllIGR1bmtlbGFkYXB0aW9uIGRlcyBhdWdlcyB1ZWJlcnN0cmVpY2h0IHByb2JsZW1sb3MgbWVocmVyZQpoZWxsaWdrZWl0c29yZG51bmdlbiwgb2huZSBkYXNzIHdpciBlaW5lbiB1bnRlcnNjaGllZCBiZW1lcmtlbiwgenVtYWhsIGRlcgp2b3JnYW5nIGRlciB2ZXJkdW5rZWx1bmcgc2VociBsYW5nc2FtIHZvcmFuc2NocmVpdGV0IHVuZCBzaWNoIG5pY2h0IHdpZQpiZWkgZWluZXIgbW9uZGZpbnN0ZXJuaXMgcmVsYXRpdiBzY2huZWxsIGJld2VndC4KCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHNvbm5lbmZpbnN0ZXJuaXMgKE11YWRkaWIsIDIzLiBKdWwgMTk5OSwgMDk6NTU6MzYpOgp+IyEgcm49UmluZ29yIHJ0PTkzMjY3NDg5OSByZz1hbnplaWdlbgp+IyEgdGlkPTkzMTc4MDc4NApEaWQgeW91IHNlZSB0aGUgc21pbGV5PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RlbGxlbmFuZ2Vib3QgKFNjaGxlaWNoZXIsIDI2LiBKdWwgMTk5OSwgMTU6MDM6MjUpOgpJY2ggYXJiZWl0ZSB6dXIgWmVpdCBmdWVyIGVpbmUgZ3Jvc3NlIEZpcm1hIGltIEJlcmVpY2ggRGlnaXRhbCBUViBpbgpLcmVmZWxkL05pZWRlcnJoZWluIHVuZCB3aXIgc3VjaGVuIGZ1ZXIgY2EuIGVpbmVuIE1vbmF0IApldnRsLiBhdWNoIGZ1ZXIgZXR3YXMgbGFlbmdlciBqZW1hbmRlbiBkZXIgaGllciB2b3IgT3J0IFJlY2huZXIgc2NocmF1YnQgdW5kCmtvbmZpZ3VyaWVydC4gRGFtaXQgYXVjaCBkdXJjaCBlaW4gU3RlbGxlbmFuZ2Vib3QgZWluIEZsYW1ld2FyIGxvc2dldHJldGVuCndpcmQgZGFzIE9TIGlzdCBlTlRlIDQuMCA7LSkgQml0dGUgZWluZSBrdXJ6ZSBNYWlsIG1pdCBUZWwuIE5yLiBhbgpzY2hsZWljaGVyQG5ldHN1cmYuZGUgaWNoIHJ1ZmUgZGFubiB1bWdlaGVuZCB6dXJ1ZWNrLgpTY2hsZWljaGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3RlbGxlbmFuZ2Vib3QgKEFjcmltb24sIDI2LiBKdWwgMTk5OSwgMTc6MTk6MzcpOgp+IyEgcm49U2NobGVpY2hlciBydD05MzI5OTQyMDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzI5OTQyMDUKPiBEYW1pdCBhdWNoIGR1cmNoIGVpbiBTdGVsbGVuYW5nZWJvdCBlaW4gRmxhbWV3YXIgbG9zZ2V0cmV0ZW4gd2lyZAo+IGRhcyBPUyBpc3QgZU5UZSA0LjAKCk1pY3Jvc29mdCBzdGVsbHQga2VpbmUgQmV0cmllYnNzeXN0ZW1lIGhlci4KCkFjcmltb24sIGRlciBSb3RlIFJpdHRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2Vob2VybG9zZW5pbmZvcm1hdGlrIChHcmltbWJvcm4sIDI2LiBKdWwgMTk5OSwgMjE6MTQ6MzUpOgpJc3QgaGllciBqZW1hbmRlbSBlaW5lIE1vZWdsaWNoa2VpdCBmdWVyIEdlaG9lcmxvc2Uvc3RhcmsgR2Vob2VyZ2VzY2hhZWRpZ3RlCmJla2FubnQgSW5mb3JtYXRpayB6dSBzdHVkaWVyZW4/IEljaCBtZWluZSwgZWlnZW50bGljaCBpc3QgZGFzIGphIGZhc3QgZGVyCnBlcmZla3RlIEJlcmVpY2ggZnVlciBHZWhvZXJsb3NlLi4uCldlciBkYSB3YXMga2VubnQsIG1haWwgYW4gbWljaCAoZ3JpbW1ib3JuQHVuaS1rb2Vsbi5kZSkuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcmxvcmVuL2dlZnVuZGVuIChCZXVuZywgMjcuIEp1bCAxOTk5LCAxMTozODo1Nik6CkhhbGxvIHp1c2FtbWVuIQpJY2ggaGFiZSBhdWYgZGVyIFBhcnR5IGxlaWRlciBtZWluZSBLb25kb21wYWNrdW5nIHZlcmxvcmVuIChOYWVoZSBQYXJrcGxhdHopCnVuZCBiaXR0ZSBkZW4gZWhybGljaGVuIEZpbmRlciB1bSBSdWVja2dhYmUuCk1pdCBmcmV1bmRsaWNoZW4gR3J1ZXNzZW4sCkV1ZXIgQmV1bmcKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmVybG9yZW4vZ2VmdW5kZW4gKFJvY2h1cywgMjcuIEp1bCAxOTk5LCAxNDoxODo0Mik6Cn4jISBybj1CZXVuZyBydD05MzMwNjgzMzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzMwNjgzMzYKTW9udGFudXMgaGF0IGRvY2ggZXh0cmEgYmVpbSBGcnVlaHN0dWVjayBnZWZyYWd0LAp3ZXIgZGllIHZlcmxvcmVuIGhhdCB1bmQgZ2VzYWd0LCBkYXNzIGRlcgpCZXNpdHplciBzaWUgYmVpIGlobSBhYmhvbGVuIGthbm4uLi4KRGEgbXVzc3QgZHUgc2Nob24gZnJ1ZWhlciBhdWZzdGVoZW4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFZlcmxvcmVuL2dlZnVuZGVuIChIb2JvLCAyNy4gSnVsIDE5OTksIDE0OjIwOjE2KToKfiMhIHJuPVJvY2h1cyBydD05MzMwNzc5MjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzMwNjgzMzYKTmljaCBNb25hdG51cywgUGFtcGVycy4uLgojQWJlciBzb3dlaXQgaWNoIHdlaXNzLCBoYWJlbiBzaWNoIGdsZWljaCA3IExldXRlIGRyYXVtIGJld29yYmVuLi4uCgogSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29ubmVuZmluc3Rlcm5pcyAoQ2Fzc2FuZHJhLCAyOC4gSnVsIDE5OTksIDE0OjM1OjQ3KToKRGEgZGllcyB3b2hsIGluIG1laW5lbSBMZWJlbiBkaWUgZWluemlnZSBTb25uZW5maW5zdGVybmlzIHNlaW4gd2lyZCBzdWNoZSBpY2gKZWluZSBNaXRmYWhyZ2VsZWdlbmhlaXQgaW4gZGVyIFdvY2hlIFJpY2h0dW5nIFN0dXR0Z2FydC4KQXVzZ2FuZ3NwdW5rdCBzb2xsdGUgbmljaHQgYWx6dSB3ZWl0IHZvbiBIYWxsZS9zLiBlbmZlcm50IHNlaW4uCldlciB3YXMgd2VpcyBiaXR0ZSBtYWlsIGFuIG1pY2guCgpjYXNzeSwgd2lsbCBzZWhuIHdpZSBkZXIgRHJhY2hlIGRpZSBTb25uZSB2ZXJzY2hsdWNrdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTb25uZW5maW5zdGVybmlzIChIb3VzZWhvbGRlciwgMjguIEp1bCAxOTk5LCAxNDozODowNSk6Cn4jISBybj1DYXNzYW5kcmEgcnQ9OTMzMTY1MzQ3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMzMTY1MzQ3CmhtIGVzIGdpYnQgY2EuIDQgbWFsIGltIGphaHIgbmUgc29ubmVuZmluc3Rlcm5pcyBhbHNvIG1hY2ggZGlyIGtlaW5lIHNvcmdlbgo6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU29ubmVuZmluc3Rlcm5pcyAoQ2Fzc2FuZHJhLCAyOC4gSnVsIDE5OTksIDE0OjM5OjUxKToKfiMhIHJuPUhvdXNlaG9sZGVyIHJ0PTkzMzE2NTQ4NSByZz1hbnplaWdlbgp+IyEgdGlkPTkzMzE2NTM0NwpaYWhsc3RlIG1pciBkYW5uIGF1Y2ggZGVuIEZsdWc/CkNhc3N5LCBrZWluIEdlbGQgaGFiZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTb25uZW5maW5zdGVybmlzIChIb3VzZWhvbGRlciwgMjguIEp1bCAxOTk5LCAxNDo0MTo0Nik6Cn4jISBybj1DYXNzYW5kcmEgcnQ9OTMzMTY1NTkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMzMTY1MzQ3Cm5vZSA6LSkKSEggYXJtIHdpZSBuZSBraXJjaGVubWF1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29ubmVuZmluc3Rlcm5pcyAoTGFyYW5pcywgMjguIEp1bCAxOTk5LCAxOToxNzo1Nyk6CkljaCBtb2VjaHRlIGRhcyBTcGVrdGFrZWwgYXVjaCBsaWZlIGVybGViZW4sIHVuZCBzdWNoZSBnZW5hdXNvIHdpZSBjYXNzeSBuZQpNaXRmYWhyZ2VsZWdlbmhlaXQgaW4gZGllc2UgUmljaHR1bmcuIGFtIEJlc3RlbiB2b24gRHJlc2RlbiBhdXMgb2RlciBzby4gQWJlcgphdWNoIEhhbGxlIHVuZCBMZWlwemlnIHdhZXJlbiBuaWNodCBkYXMgUHJvYmxlbS4KTGFyYW5pcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNvbm5lbmZpbnN0ZXJuaXMgKEJhbWJ1bGtvLCAyOC4gSnVsIDE5OTksIDE5OjI2OjQ3KToKfiMhIHJuPUxhcmFuaXMgcnQ9OTMzMTgyMjc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMzMTgyMjc3CkFsc28gaWNoIGZhaHJlIGhpbiwgYWJlciB2b24gS29lbG4gYXVzIHVuZCBkYXMgQXV0byBpc3Qgc2Nob24gdm9sbC4uLi4uSGlsZnQKZGFzIGpldHp0IHZpZWxlaWNodD8KCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTb25uZW5maW5zdGVybmlzIChMYXJhbmlzLCAyOC4gSnVsIDE5OTksIDE5OjI3OjM5KToKTGFyYW5pcyBoYXQgZ3JhZCBuZW4gc2VociBndXRlbiBUaXAgdm9uIFBhZHJlaWMgZ2VrcmllZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU29ubmVuZmluc3Rlcm5pcyAoVW5hc2FpLCAyOS4gSnVsIDE5OTksIDE4OjA5OjU3KToKfiMhIHJuPUxhcmFuaXMgcnQ9OTMzMTgyMjc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMzMTgyMjc3CkpPLCBzaWVodCBtYW4gZGFzIGJlaSB1bnMgc28gZ3V0PyB3dXNzdCBpY2ggZ2FyIG5ldCA/PwoqZ3J1ZWJlbCogVW5hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXQncyBuZXcgaXQncyBncmVhdC4gSm9pbiBITTk5IChaYXJkb3osIDI5LiBKdWwgMTk5OSwgMTk6MTk6NDMpOgpJZiB5b3Ugd2FudCB0byBwbGF5IGEgcmVhbCBwbGF5ZXJraWxsaW5nIG11ZCB3aXRoIG5pY2UgcHJvZmVzc2lvbnMgYW5kIHJhY2VzCmFuZCBhIHZlcnkgZ29vZCBndWlsZC1zeXN0ZW06CgpKb2luIEhvbHkgTWlzc2lvbiA5OSAhCgpJZiB5b3UgcGxheSBvbmUgb2YgdGhlIGRhcmsgcmFjZXMgeW91IGNhbiBtZWV0IFpkcm96eiwgdGhlIGRyb3ctZWx2ZW4Kc2hhZG93bWFnZS4gSWYgeW91IHBsYXkgb25lIG9mIHRoZSBob2x5IHJhY2VzLCB5b3UgYmV0dGVyIHJ1biwgaWYgKnpkcm96eiwgdGhlCmRyb3ctZWxmKiBlbnRlcnMgdGhlIHJvb20uIDopCgp5b3UgY2FuIGZpbmQgaXQgYXQgYXRvbW11ZWxsLm9laC51bmktbGluei5hYy5hdCAyMDAxCgpaYXJkb3oKClAuUzogSWNoIGhhYiBudXIgWmVpdCwgZGFzIGhpZXIgenUgc2NocmVpYmVuLCB3ZWlsIGVzIGhldXRlIGRvd24gaXN0LCBhbHNvIGVpbgphbmRlcmVzIG1hbCB2ZXJzdWNoZW4gOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSXQncyBuZXcgaXQncyBncmVhdC4gSm9pbiBITTk5IChTdG9lcnRpLCAyOS4gSnVsIDE5OTksIDE5OjM3OjA3KToKfiMhIHJuPVphcmRveiBydD05MzMyNjg3ODMgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzMyNjg3ODMKQXVoYSwgcmVhbCBwbGF5ZXJraWxsbXVkIG1hZyBqYSB3YXMgaGFiZW4sIGFiZXIgZGFzIGVzIG1pY2ggc28gc2NobmVsbCBraWxsdAo6LSkKCjApIEV4aXQgZnJvbSBIb2x5IE1pc3Npb24uCjEpIEVudGVyIHRoZSBnYW1lLgoyKSBDaGFuZ2UgcGFzc3dvcmQuCjMpIFRoZSBhZG1pbnMgb2YgdGhlIEhvbHkgTWlzc2lvbi4KNCkgUmVhZCB0aGUgYWN0dWFsIG5ld3MuCjUpIFJlYWQgdGhlIHdpemFyZCBuZXdzLgo2KSBEZWxldGUgdGhpcyBjaGFyYWN0ZXIuCiAgIE1ha2UgeW91ciBjaG9pY2U6IDEKZ2V0X3dpel9uYW1lOiBzeXMvbW9kdWxzL3JlZ2Fpbi5jCkVycm9yIGluIHN5cy9wbGF5ZXIhCkNsb3NpbmcgZG93bi4KQ29ubmVjdGlvbiBjbG9zZWQgYnkgZm9yZWlnbiBob3N0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJdCdzIG5ldyBpdCdzIGdyZWF0LiBKb2luIEhNOTkgKFRydWcsIDI5LiBKdWwgMTk5OSwgMjE6MTE6MzApOgp+IyEgcm49WmFyZG96IHJ0PTkzMzI2ODc4MyByZz1hbnplaWdlbgp+IyEgdGlkPTkzMzI2ODc4MwpVaSwgZWluZSBOZXVhdWZsYWdlIHZvbiBIb2x5IE1pc3Npb24/IEhhYiBtaXIgZWlnZW50bGljaCBnZWRhY2h0LCBkYXNzIEhNMgptb2Rlcm4gZ2VudWcgaXN0PyBOYWphIDopCgpQS2luZyB3YXIgbmllIHNvIG1laW5lIFNhY2hlLgoKVHJ1Zy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsdWVtY2hlbnBmbHVlY2tlciB6dW0gVEVTVEVOIGdlc3VjaHQhIChNZXNpcmlpLCAgNS4gQXVnIDE5OTksIDIzOjE2OjM2KToKCkxpZWJlIE1pdGZvcnNjaGVyIDspCgpJY2ggaGFiZSBtZWluIEhpbGZzcHJvZ3JhbW0genVtIEthcnRlbm1hbGVuIChpbSBhbGxnZW1laW5lbiBhbHMgTWFwcGVyCmJlemVpY2huZXQpIHdlaXRlcmVudHdpY2tlbHQgdW5kIHNlbGJlciBhdWNoIHNjaG9uIHVlYmVyIDEwMDAgUmFldW1lIGRlcyBNRwpkYW1pdCBhdWZnZW1hbHQuCkRhIG1hbiBhbHMgUHJvZ3JhbW1pZXJlciBkaWUgRmVobGVyIGltbWVyIG5pY2h0IGZpbmRldCwgZGllIG1hbiBzbyBtYWNodCwKc3VjaGUgaWNoIG5vY2ggdmVyendlaWZlbHQgTGV1dGUgZGllIG1pciBiZWltIFRlc3RlbiBoZWxmZW4uCkRlbiBNYXBwZXIgZ2lidCBlcyBhbHMgZGV1dHNjaGUgdW5kIGVuZ2xpc2NoZSBWZXJzaW9uCnVudGVyIGh0dHA6Ly93d3cuaW5mLnR1LWRyZXNkZW4uZGUvfm1oMTQvdGYKZG9ydCBhdWYgTWFwcGVyIGtsaWNrZW4gdW5kIGlociBzZWlkIGRhLgoKQmVpIFByb2JsZW1lbiwgRnJhZ2VuIHVuZCBJZGVlbiBiaW4gaWNoIGltbWVyIGZ1ZXIgRXVjaCBkYS4KCk1lc2ksIGF1ZiByZWdlbiBadXNwcnVjaCBob2ZmZW5kIDspCgpGdWUgZGllamVuaWdlbiwgZGllIGVzIGludGVyZXNzaWVydCwga29tbXQgaGllciBub2NobWFsIG5lIFVlYmVyc2ljaHQgZGVyCkZ1bmt0aW9uYWxpdGFldDoKCiogS2FydGVuIGF1cyBLbm90ZW4gbWl0IFdlZ2VuIGFscyBWZXJiaW5kdW5nZW4gbWl0IGRlbiBLbm90ZW4KKiBtYW4ga2FubiBkaWUgS2FydGVuIGR1cmNod2FuZGVybiAoTWF1cy9SaWNodHVuZ2VuL0tleXBhZCkKKiAzLWRpbWVuc2lvbmFsZSBLYXJ0ZW4gdm9uIGRlbmVuIGVpbmUgWi1FYmVuZSBha3R1ZWxsIGRhcmdlc3RlbGx0IHVuZAogIGRpZSBWZXJiaW5kdW5nZW4gaW4gYW5kZXJlIFotRWJlbmVuIGFuZ2VkZXV0ZXQgd2VyZGVuCiogamVkZSBLYXJ0ZT09TWFwIHdpcmQgbWl0IGFuZGVyZW4gTWFwcyB2ZXJrbnVlcGZ0LCB6d2lzY2hlbiBkZW5lbiBiZWkKICBkZXIgTmF2aWdhdGlvbiBhdXRvbWF0aXNjaGUgdW1nZXNjaGFsdGV0IHdpcmQgKGRpZSBWZXJrbnVlcGZ1bmcgZGVyCiAgTWFwcyB3aXJkIGFtIEVuZGUgZGVzIEF1c2dhbmdzIGR1cmNoIGVpbiBnZWxiZXMgUXVhZHJhdCB2aXN1YWxpc2llcnQpCiogbmV1ZSBBdXNnYWVuZ2Uga29lbm5lbiBlbnR3ZW5kZXIgaW50ZXJha3RpdiBkdXJjaCBBYmxhdWZlbiBvZGVyCiAgbWVocmVyZSBBdXNnYWVuZ2UgZGVzIGFrdHVlbGxlbiBLbm90ZW5zIGF1ZiBlaW5tYWwgZHVyY2ggZWluZW4gQmVmZWhsCiAgZXJ6ZXVnZW4KKiBBdXNnYWVuZ2UgZGllIHVlYmVyIHNwZXppZWxsZSBLb21tYW5kb3MgYW5nZXNwcm9jaGVuIHdlcmRlbiwga29lbm5lbgogIGVudHdlZGVyIG1pdCBlaW5lciBSaWNodHVuZyBvZGVyIGVpbmVtIE1hcC9aaWVscHVua3QgZWluZ2VnZWJlbiB3ZXJkZW4KICAoc28gd2VyZGVuIGF1Y2ggZGllIFZlcmtudWVwZnVuZ2VuIHp1IGFuZGVyZW4gbWFwcyBlcnpldWd0KQoqIEZlcm5zdGV1ZXJ1bmcgdm9uIHRmIHVlYmVyIGVpbmVuIFBvcnQgKEtvbW1hbmRvcykKKiBNYXJraWVydW5nIHZvbiBLbm90ZW4gKE1hdXMpCiogRWluYmFobnN0cmFzc2VucmljaHR1bmdlbiBzaW5kIG1vZWdsaWNoCiogWm9vbXN0dWZlbiAoTWF1cy9UYXN0YXVyKSwgVmVyc2NoaWViZW4gZGVyIE1hcCBvaG5lIEJld2VndW5nIGRlcwogIGFrdHVlbGxlbiBLbm90ZW5zLCBaZW50cmllcmVuIHVtIGRlbiBha3R1ZWxsZW4gUHVua3QKKiBMb2VzY2hlbiB2b24gS25vdGVuIHVuZCBXZWdlbgoqIEluZm9ybWF0aW9uZW4genUgS25vdGVuICh3aWUgcF9sb25nLCBwX3Nob3J0LCBuYW1lLCBrbm90ZW4gaW0KICBXZWdlc3lzdGVtLCBucGNzLC4uLiksIGRpZSBkYW5uIGVudHdlZGVyIGlubmVyaGFsYiBkZXIgTWFwCiAgdmlzdWFsaXNpZXJ0IHdlcmRlbiBiencuIGluIGVpbmVtIEluZm9iZXJlaWNoIGFuZ2V6ZWlndCB3ZXJkZW4gKGF1Y2gKICB2b24gdGYgYXVzIGdlbmVyaWVyYmFyKQoqIDIyLjMuOTkKKiB6dXNhZXR6bGljaCB6dSBkZW4gZmVzdGdlbGVndGVuIEluZm9ybWF0aW9uZW4genUgS25vdGVuIGtvZW5uZW4gYXVjaAogIGVpZ2VuZSBTY2hsdWVzc2Vsd29ydGUgdmVyd2VuZGV0IHdlcmRlbiwgZGllc2Ugd2VyZGUgYXVjaCBhbHMgVGl0ZWwgaW4KICBkZXIgQW56ZWlnZSBiZW51dHp0CiogZGllIEtvbW1hbmRvcyBEUCAoZGVsZXRlUG9pbnQpLCBERSAoZGVsZXRlRXhpdCksIGFlIChhZGRFeGl0KQogIGFyYmVpdGVuIGpldHp0IGF1Y2ggdWViZXIgZGllIG1hcmtpZXJ0ZW4gS25vdGVuCiogZGFzIEtvbW1hbmRvIGNncmlkIGVyemV1Z3QgTmV0enN0cnVrdHVyZW4gaW4gZGVyIE1hcAoqIGRpZSBtZWlzdGVuIG1vZWdsaWNoZW4gSGltbWVsc3JpY2h0dW5nZW4gd3VyZGVuIGhpbnp1Z2VmdWVndCAoc2llaGUKICBOYXZpZ2F0aW9uKQoqIDMuNC45OQoqIG1pdCBkZW0gS29tbWFuZG8gYXIgKGFkZFJldmVyc2UpIGtvZW5uZW4gUmFldW1lLCBkaWUgbnVyIGVpbmVuCiAgQXVzZ2FuZyBvZGVyIFp1Z2FuZyBoYWJlbiBlaW5lIHNwZWNpYWwgZXhpdCBtaXQgZGVtIGFuZ2VnZWJlbmVuIE5hbWVuCiAgZ2FueiBlaW5mYWNoIGVyaGFsdGVuIChQcmFrdGlzY2ggZnVlciByYXVzLCB2ZXJsYXNzZSB4eHgpCiogZGllIEluZm9ybWF0aW9uZW4gdWViZXIgTlBDcywgSGFldXNlciwgS25vdGVubmFtZW4sIFBvcnRhbGUsCiAgQXVmdGFua3N0ZWxsZW4sIEtuZWlwZW4sTGFlZGVuIGhhYmVuIGpldHp0IGVpbmUgZ3JhZmlzY2hlCiAgUmVwcmFlc2VudGF0aW9uIGluIGRlciBNYXAKKiAyNi40Ljk5CiogRWluc3RlbGxlbiB2b24gT3B0aW9uZW4gbWl0dGVscyBvcHQgKEdpdHRlciwgQW56ZWlnZSwgTWF4bGV2ZWwpCiogRGVtb21hcHMsIGRpZSBGdW5rdGlvbmVuIGRlbW9uc3RyaWVyZW4KKiBWZXJzY2hpZWJlbiB2b24gS25vdGVuIGluIHVuZCB6d2lzY2hlbiBNYXBzIG1pdCBNUAoqIDYuNS45OQoqIGVyemV1Z2VuIHZvbiBLbm90ZW4gYW4gYmVsaWViaWdlbiBLb29yZGluYXRlbiBtaXQgYW4KKiBhdWZzcGFsdGVuIGVpbmVzIEtub3RlbnMgaW4gendlaSBUZWlsa25vdGVuIG1pdCBzbgoqIGVyendpbmdlbiBkZXMgVWViZXJzY2hyZWliZW5zIHZvbiBBdXNnYWVuZ2VuIChtaXQgIiEiIHVuZCBkZXMKICBFcnpldWdlbnMgdm9uIEtub3RlbiBhdWYgc2Nob24gYmVsZWd0ZW4gS29vcmRpbmF0ZW4gKCIkIiksIEFuZ2FiZSBkZXIKICBMYWVuZ2Ugdm9uIFdlZ2VuIG1pdCBuKiBzaWVoZSBTeW50YXgKKiBlcnpldWdlbiB1bmQgdXBkYXRlbiB2b24gbHBjIGNvZGUgbWl0IHRlbXBsYXRlIGZpbGVzCiogU3BlaWNoZXJuIGRlciBPcHRpb25lbiB1bmQgZnJlaWUgT3B0aW9uZW4gZWludHJhZ2VuIHNpZWhlIG9wdAoqIDE2LjcuOTkKKiBBdWZsaXN0dW5nIHZvbiBLbm90ZW4sIGRpZSBlaW4gYmVzdGltbXRlcyBJbmZvLVNjaGx1ZXNzZWx3b3J0CiAgZW50aGFsdGVuLCBiencuIERhcnN0ZWxsdW5nIHZvbiBTY2hyaXR0Zm9sZ2VuIHVlYmVyIGRpZSBnZXd1ZW5zY2h0ZW4KICBLbm90ZW4KKiBpbnRlcm4gd2lyZCBhdWNoIG1pdCB2ZXJ3YWx0ZXQsIHdlbGNoZSBLbm90ZW4gc2Nob24gKHZvbSBNdWQgYXVzKQogIGJldHJldGV0ZW4gd29yZGVuIHNpbmQuIERpZXNlIHdlcmRlbiBpbiBkZXIgTWFwIG1pdCBlaW5lbSBRdWFkcmF0CiAgbWFya2llcnQuCiogZGllIGludGVybmVuIEF0dHJpYnV0ZSB3ZXJkZW4gamV0enQgbWl0IGluIGRlciBjb29yZHMgRGF0ZWkKICBhYmdlc3BlaWNoZXJ0IChNYXJraWVydW5nLCBLbm90ZW4gYmV0cmV0ZW4sIFVlYmVybGFwcGVuZGUgS25vdGVuLC4uLikKKiAzLjguOTkKKiBIaWxmZSBpbSBNYXBwZXIgbWl0ID8genUgYWxsZW4gS29tbWFuZG9zIHVuZCBnZW5lcmVsbAoqIEhpc3RvcnkgZnVlciBLb21tYW5kb3MgZGVzIE1hcHBlcnMgKG1pdCBQZmVpbCBob2NoIHVuZCBydW50ZXIpCiogdGVpbHdlaXNlIGZ1bmt0aW9uc3R1ZWNodGlnZSBVbmRvIEZ1bmt0aW9uYWxpdGFldCBtaXR0ZWxzIHVuZG8KKiBuZXVlIEhpbGZzZnVua3Rpb25lbiB6dW0gWm9vbWVuLCBVbnpvb21lbiwgQW5zaWNodCB2ZXJzY2hpZWJlbiB1bmQKICBaZW50cmllcmVuCiogSGlsZnNmdW5rdGlvbmVuIHp1bSBNYXJraWVyZW4gdW5kIERlbWFya2llcmVuIG1pdCBBdXN3YWhsc3ludGF4IHdpZQogIGxuYQoqIEtvbW1hbmRvIHp1bSBIYWxiaWVyZW4gZGVzIE1hc3NzdGFicyBlaW5lciBBbnphaGwgS25vdGVuIChtYXJraWVydGUpCiAgei5CLiBmdWVyIEdlYmFldWRlIG1pdHRlbHMgbWgKKiBnbyBrYW5uIGF1Y2ggYmVuYW5udGUgUHVua3RlIHVlYmVyIE1hcGdyZW56ZW4gYW5zcHJpbmdlbgoqIGJlaSBhc3Aga2FubiBkZXIgLW1tYXAgUGFyYW1ldGVyIHdlZ2dlbGFzc2VuIHdlcmRlbiwgd2VubiBkZXIgYmVpIC1wCiAgYW5nZWdlYmVuZSBQdW5rdCBlaW4gYmVuYW5udGVyIFB1bmt0IGluIGVpbmVyIGFuZGVyZW4gTWFwIGlzdC4KKiBzYXZlIGhhdCBqZXR6dCBhdWNoIGRlbiBQYXJhbWV0ZXIgYWxsLCBkYW1pdCB3ZXJkZW4gYWxsZSBNYXBzCiAgZ2VzcGVpY2hlcnQKKiBERSBsb2VzY2h0IGpldHp0IGF1Y2ggYmVuYW5udGUgQXVzZ2FlbmdlIG9obmUgenVzYWV0emxpY2hlIFBhcmFtZXRlcgoqIGdlcGxhbnQ6CiogZmFyYmlnZSBQb2x5Z29uZSB1bnRlcmxlZ2VuIGRpZSBNYXBzCiogQW5tZXJrdW5nZW4gaXJnZW5kd28gaW4gZGVyIE1hcAoqIE5ldWJlcmVjaG51bmcgZGVyIE1hcCwgd2VubiBVbnN0aW1taWdrZWl0ZW4gaW5uZXJoYWxiIGRlciBNYXAKKiBJbnRlZ3JhdGlvbiBpbiBkYXMgV2VnZXN5dGVtLCBkLmguIHBlciBBbmtsaWNrZW4gd2FuZGVyZSBpY2ggaW0gTXVkCiAgenUgZGVtIFB1bmt0CgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNvbm5lbmZpbnN0ZXJuaXMgKFNudWdnbGUsICA5LiBBdWcgMTk5OSwgMTE6MjY6NDApOgp+IyEgcm49QmFtYnVsa28gcnQ9OTMzMTgyODA3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMzMTgyMjc3CkhpIEJhbSoKCm5pbW1zdGUgbWljaCBhdWZtIERhY2hnZXBhZWNrdHJhZWdlciBtaXQ/CgpTZWUgeW91LCAob2RlciBhdWNoIG5pY2h0LCB3aXJkIGphIGR1bmtlbCBzZWluIDsuKQoKU251Z2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU29ubmVuZmluc3Rlcm5pcyAoTmFzaW0sICA5LiBBdWcgMTk5OSwgMjI6NDM6MjEpOgp+IyEgcm49U251Z2dsZSBydD05MzQxOTA4MDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzMxODIyNzcKSGksIAppY2ggZmFocmUgKHdlbm4gZGFzIFdldHRlciBuaWNodCBlaCBzY2guLi4gd2lyZCkgTWl0dHdvY2ggbW9yZ2VuIFJpY2h0dW5nClNhYXJicnVlY2tlbiAtIHVuZCBzdWNoZSBtaXIgZGFubiBlaW5lbiBzY2hvZW5lbiBQbGF0eiBpbiBkZXIgUGFtcGEgLi4uIGRhcwpoZWlzc3QgbmF0dWVsaWNoLCBkYXNzIGVzIHdpcmtsaWNoICpmcnVlaCogbG9zZ2VoZW4gc29sbHRlIC0ga2VpbmVuIEJva2NrLCBpbQpTdGF1IHp1IHN0ZWhlbiBvZGVyIHNvIC4uLiBhbHNvIHNwYWV0ZXN0ZW5zIDYgVWhyIHdvbGx0ZSBpY2ggbG9zIQpFcyBnaWJ0IG5vY2ggZnJlaWUgUGxhZXR6ZSBpbSBBdXRvIC0gQnJpbGxlIGhhYiBpY2ggbnVyIGVpbmUgdW5kIGRpZSBnaWJ0cwpuaWNodCEgOC0tKQoKTmFzaW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFNvbm5lbmZpbnN0ZXJuaXMgKFN0b2VydGksICA5LiBBdWcgMTk5OSwgMjI6NDU6MzMpOgp+IyEgcm49TmFzaW0gcnQ9OTM0MjMxNDAxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTMzMTgyMjc3CmpvLCB3YXMgaXM/IHNvbGxlbiB3aXIgbiBpbnRlcm11ZHRyZWZmZW4gaW4gc2FhcmJydWVja2VuIG1hY2hlbj8gOi0pKSkpIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29kZXggVHlyYW5pZGVuIDJuZCBFZGl0aW9uIChMeXJhLCAxMi4gQXVnIDE5OTksIDE2OjU3OjQ0KToKSWNoIHN1Y2hlIG5vY2ggZWluZSBBdXNnYWJlIGRlcyBDb2RleCBkZXIgVHlyYW5pZGVuICgybmQgRWRpdGlvbikuIEZhbGxzIGVpbmVyCnZvbiBFdWNoIGRhdm9uIHRyZW5uZW4gd2lsbCwga2FubiBlciBtaXIgamEgZWluZSBNYWlsIHp1IGtvbW1lbiBsYXNzZW4uCgpMeXJhIGZpbmRldCBUeXJhbmlkZW4gZWtsaWcsIGZpZXMgdW5kIGdlbWVpbi4gQWxzbyBlaW5mYWNoIGNvb2wuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ29kZXggVHlyYW5pZGVuIDJuZCBFZGl0aW9uIChHcmltbWFuLCAxMi4gQXVnIDE5OTksIDE5OjU3OjU2KToKfiMhIHJuPUx5cmEgcnQ9OTM0NDY5ODY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM0NDY5ODY0Cmlzc2l0IGRhcyBkZXIgYWx0ZSBvZGVyIGRlciBuZXVlPwoKR3JpbU1hbiAsIGt1cnogYW5mcmFnZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENvZGV4IFR5cmFuaWRlbiAybmQgRWRpdGlvbiAoTHlyYSwgMTMuIEF1ZyAxOTk5LCAxMjoxMzo0Mik6Cn4jISBybj1HcmltbWFuIHJ0PTkzNDQ4MDY3NiByZz1hbnplaWdlbgp+IyEgdGlkPTkzNDQ2OTg2NApnYW56IGt1cno6IGRpZSBhbHRlCgpMeXJhIHdhcnRldCBzY2hvbiBnYW56IGdlc3Bhbm50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBDb2RleCBUeXJhbmlkZW4gMm5kIEVkaXRpb24gKEdyaW1tYW4sIDEzLiBBdWcgMTk5OSwgMTg6NDM6MTYpOgp+IyEgcm49THlyYSBydD05MzQ1MzkyMjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzQ0Njk4NjQKSWNoIGhvZXIgbWljaCBtYWwgdW0sIGlzdCBndXQgbW9lZ2xpY2gsIGRhcyBpY2ggZGVuIG5vY2ggYXVmdHJlaWJlbiBrYW5uLgoKR3JpbU1hbiBpc3QgYXVjaCBnZXNwYW5udCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGlsZmUgZ2VzdWNodCAoQXRveiwgIDguIFNlcCAxOTk5LCAxMDowMjo0Mik6Cktlbm5zdCBzaWNoIGhpZXIgdmllbGxlaWNodCB3ZXIgbWl0IGRlciBkZXV0c2NoZW4gVmVyc2lvbiBkZXIgQmxhY2tzdG9uZQpDaHJvbmlrZW4gYXVzPyBJY2ggYmluIGluIGRlciBGb2x0ZXJrYW1tZXIgdW5kIGtyaWVnZSBkaWUgRWlzZXJuZSBKdW5nZnJhdQpuaWNodCBhdWYuCkljaCBoYWJlIGRpZSBOb3RpeiBhdXMgZGVtIEFyYmVpdHN6aW1tZXIgdW5kIGthbm4gbWlyIGluIGV0d2EgZGVua2VuLCB3YXMgc2llCm1pciBzYWdlbiB3aWxsLiBEYXMgUHJvYmxlbSBpc3QgYWxsZXJkaW5ncywgZGFzcyBpY2ggbWl0IGRlbiBCaWxkZXJuIG5peAphbmZhbmdlbiBrYW5uLi4uCgpXZW5uIGRhcyBqZXR6dCBqZW1hbmQgdmVyc3RhbmRlbiBoYXQgdW5kIG1pciB3ZWl0ZXJoZWxmZW4ga2FubiwgZGFubiB3YWVyZSBpY2gKZnVlciBlaW5lIE1haWwgc2VociBkYW5rYmFyLgoKQXRveiAtIGdlaHQgbm9jaCBlaW4gYmlzc2NoZW4gdW5tb3RpdmllcnQgYXVmIEtub2VwZmUgZHJ1ZWNrZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIaWxmZSBnZXN1Y2h0IChTdG9wZGVuYnVzLCAgOS4gU2VwIDE5OTksIDE4OjI0OjI0KToKfiMhIHJuPUF0b3ogcnQ9OTM2Nzg0OTYyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM2Nzg0OTYyCkRhIGthbm4gaWNoIGRpciBoZWxmZW4sIGRhIGhhdHMgaXJnZW5kd28gbmUgRGF1bWVucHJlc3NlLiBhbGxlcyB3YXMgZHUgamV0enQKdHVuIG11c3N0LCBpc3QgZGVpbmVuIGxpbmtlbiAoISkgZGF1bWVuIGRhcmVpbnp1c3RlY2tlbiB1bmQgZGFubiBtdXNzdApkdSBrcmFlZnRpZyBhbiBkZXIga3VyYmVsIGRyZWhlbi4gV2VubiBkZXIgZGF1bWVuIGdhbnogYmxhdSBnZXdvcmRlbiBpc3QsCmthbm5zdCBkdSBpaG4gaW4gZGllIFJpdHplIHp3aXNjaGVuIGRlbiBiZWlkZW4gSGFlbGZ0ZW4gZGVyIEUuIEp1bmdmcmF1CnN0ZWNrZW4gdW5kIGRvcnQgZWluZW4gdmVyc3RlY2t0ZW4gS25vcGYgZHJ1ZWNrZW4gdW5kIHZvaWxhICEKV2FzIER1IGFscyBuYWVjaHN0ZXMgbWFjaGVuIG11c3N0LCBzYWcgaWNoIGRpciBhdWNoIGdsZWljaCwgRHUgbXVzc3QgZGljaAppbiBkaWUgSnVuZ2ZyYXUgc3RlbGxlbiwgdW5kIHNpZSBtaXQgZWluZW0gc3RhcmtlbiBSdWNrIHp1bWFjaGVuIC4uLgoKU3RvcHBpIGhpbGZ0IGphIHNvb29vbyBnZXJuLCBiZXNvbmRlcm5zIEF0b3oKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyZmFocnVuZ2VuPyAoTGFyaXNzYSwgMjIuIFNlcCAxOTk5LCAxODozMjo0MSk6CgpBaG9pIQoKRGEgZXMgendpc2NoZW4gdmllbGVuIHN0dWRpZXJlbmRlbiBNdWRkZXJlbiBkZW4gZWluZW4gb2RlciBkaWUgYW5kZXJlCmF1cyBkZXIgYXJiZWl0ZW5kZW4gWnVuZnQgZ2ViZW4gc29sbDogSWNoIGhhYmUgZWluZSBGcmFnZToKCldlciBoYXQgc2Nob24gZWlubWFsIGFuIGVpbmVtIFRlYW1lbnR3aWNrbHVuZ3MtU2VtaW5hciB0ZWlsZ2Vub21tZW4sCmVpbmVzIGdlbGVpdGV0LCBvZGVyIGtlbm50IGplbWFuZGVuIGRlciBtYWwgdGVpbGdlbm9tbWVuIGhhdCB1bmQKa2FubiBtaXIgZWluIGJpc3NjaGVuICdhdXMgZGVtIE5hZWhrYWVzdGNoZW4nIGVyemFlaGxlbj8KCkxhcmksIHdhcnRldCBnZXNwYW5udCBhdWYgbWFpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZwIChaYXJkb3osIDIzLiBTZXAgMTk5OSwgMTA6NDc6NDUpOgpXZXIgZWluZSBMaXN0ZSBkZXIgRlBzIGhhYmVuIG1vZWNodGUsIGRlciBtdXNzIG1pciBlaW5mYWNoIG51ciBNYWlsZW4KCgpaYXJkb3oKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBmcCAoSGlnaHQsIDIzLiBTZXAgMTk5OSwgMTM6NDQ6NTcpOgp+IyEgcm49WmFyZG96IHJ0PTkzODA4MzY2NSByZz1hbnplaWdlbgp+IyEgdGlkPTkzODA4MzY2NQpzYWdtYWwgaGFzdGUgbGFuZ2V3ZWlsZSA/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZnAgKEdyaW1tYm9ybiwgMjMuIFNlcCAxOTk5LCAxNTozMzoxMCk6Cn4jISBybj1IaWdodCBydD05MzgwOTQyOTcgcmc9YW56ZWlnZW4KfiMhIHRpZD05MzgwODM2NjUKT2ZmZW5zaWNodGxpY2ggZWhlciBlaW5lIExpc3RlIGRlciBGUHMuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1JTExFTklVTS1FVkVOVCAhISEgKFphcm5peWEsIDEyLiBPa3QgMTk5OSwgMTA6MzE6MTUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDSFRVTkcgISEhCgpWaWVsZSBXb3J0ZSBzaW5kIHZlcmxvcmVuIHdvcmRlbiB1ZWJlciBkZW4gSmFocnRhdXNlbmR3ZWNoc2VsIHVuZCB2aWVsZQpFcmVpZ25pc3NlIHdlcmZlbiBub2NoIGlocmUgU2NoYXR0ZW4gdm9ycmF1cywgYWJlciBzaWUga29lbm5lbiBzaWNoIGFsbGUKbmljaHQgbWVzc2VuIG1pdCBERU0gRUlORU4gRVZFTlQ6IAoKICAgICAgICAgICAgICBEZXIgbGV0enRlIFRyYWRpdGlvbnNzdGFtbXRpc2NoICAgIAogICAgICAgICAgICAgICAgICAgIGRlcyBKYWhydGF1c2VuZCAhISEKCk5hdHVlcmxpY2gga2FubiBkaWVzZXIgbnVyIGluIEtvZWxuIHN0YXR0ZmluZGVuIHVuZCBlcyB3aXJkIGRpZXNtYWwgZWluCnNlbnNhdGlvbmVsbGVzIEZlYXR1cmUgZ2ViZW4uIEFsbGUgcmVkZW4gdm9tIFdldHRrYW1wZiBkZXMgSmFocmh1bmRlcnRzLApkb2NoIHdvIGZpbmRldCBlciB3aXJrbGljaCBzdGF0dD8gSGllciBpbiBLb2VsbiB3ZXJkZW4gc2ljaCB6d2VpIE1laXN0ZXIKaWhyZXMgRmFjaGVzIHRyZWZmZW4sIHVtIGRpZSBIb2VybmVyIGdlZ2VuZWluYW5kZXIgenUgd2V0emVuLiBFaW5lIGthdW0Kdm9yc3RlbGxiYXJlIEZsdXQgZGVyIEVycmVndW5nIHdpcmZ0IGlocmUgU2NoYXR0ZW4gdm9ycmF1cyBiZWkgZGVtIEdlZGFua2VuIAphbiBkYXMgVmVyZ251ZWdlbiwgd2VsY2hlcyBzaWNoIGFsbGVuIEdhZXN0ZW4gYmlldGVuIHdpcmQuIAoKTWVsZGV0IGV1Y2ggamV0enQgc2Nob24gYW4gdW5kIHNpY2hlcnQgZXVjaCBlaW5lbiBQbGF0eiBiZWkgZGVtIEVyZWlnbmlzLCAgIAp3ZWxjaGVzIGluIGRpZSBIaXN0b3JpZSBlaW5nZWhlbiB3aXJkIHVuZCB3byBzaWNoIHVuc2VyZSBNdWR1cmVua2VsIG5vY2ggZGllIApMaXBwZW4gbmFjaCBsZWNrZW4gd2VyZGVuLiAKCk5hZWhlcmUgSW5mb3JtYXRpb25lbiBmb2xnZW4gYW4gZGllc2VyIFN0ZWxsZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNSUxMRU5JVU0tRVZFTlQgISEhIChQcmEsIDEyLiBPa3QgMTk5OSwgMTE6NDc6NTkpOgp+IyEgcm49WmFybml5YSBydD05Mzk3MjQyNzUgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKd2FzIGRlbm4sIGdpYnQgZXMgbmFlY2hzdGVzIEphaHIgZXR3YSBrZWluZW4gU3RhbW10aXNjaD8gRGVyIHdhZXJlIGRhbm4KZG9jaCBkZXIgbGV0enRlIGRlcyBNLiA6LSgKClByYS4gRW50dGFldXNjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1JTExFTklVTS1FVkVOVCAhISEgKFphcm5peWEsIDEyLiBPa3QgMTk5OSwgMTI6MTU6MDgpOgp+IyEgcm49UHJhIHJ0PTkzOTcyODg3OSByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpIbW1tbSBhbHNvIFN0YW1tdGlzY2ggaW4gS29lbG4gaXN0IGltbWVyIGluIGRlciBlcnN0ZW4gSmFudWFyLVdvY2hlLi4gYWxzbyBpc3QKZGVyIGltIEphaHIgMjAwMCBkZXIgbGV0enRlIGluIGRpZXNlbSBKYWhydGF1c2VuZC4uLgoKTWFyYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1JTExFTklVTS1FVkVOVCAhISEgKFByYSwgMTIuIE9rdCAxOTk5LCAxMjozMDo1Myk6Cn4jISBybj1aYXJuaXlhIHJ0PTkzOTcyNDI3NSByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQp1cHBzIC0gbWVpbiBGZWhsZXIuIERhY2h0ZSwgZGVyIHdhZXJlIGltbWVyIHp3aXNjaGVuIFdlaWhuYWNodGVuIHVuZCBOZXVqYWhyLgoKUHJhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNSUxMRU5JVU0tRVZFTlQgISEhIChTb3JjZXJlciwgMTIuIE9rdCAxOTk5LCAyMDozMDozOCk6Cn4jISBybj1QcmEgcnQ9OTM5NzMxNDUzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CkhtbSwgZGllIFplaXRyZWNobnVuZyBiZWdpbm50IG1pdCAwLiBELmguIGFtIDMxLjEyLjE5OTkgc2luZCAyMDAwIEphaHJlIHNlaXQKQmVnaW5uIGRlciBaZWl0cmVjaG51bmcgdmVyZ2FuZ2VuID0+IEphbnVhciAyMDAwIGlzdCBzY2hvbiBpbSBuYWVjaHN0ZW4KSmFocnRhdXNlbmQuLi4KClNvcmNlcmVyIC0gbWl0IFphaGxlbiBzcGllbGVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTUlMTEVOSVVNLUVWRU5UICEhISAoTmV2b2ssIDEyLiBPa3QgMTk5OSwgMjA6MzE6NTApOgp+IyEgcm49U29yY2VyZXIgcnQ9OTM5NzYwMjM4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1ClBoeXNpa2VyIGFid2VydGVuIHVuZCBlaW5lbiBSZWFsaXR5IENoZWNrIHZlcnBhc3Nlbgp1bmQgRGF0aW5nIDEwMSBiZXN1Y2hlbiBsYXNzZW4sIGtlaW4gQ3JlZGl0IGJ5IEV4YW1pbmF0aW9uCgpOZXZvaywgZ3JpbnNlbmQgdW5kIHNpY2ggZHVja2VuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTUlMTEVOSVVNLUVWRU5UICEhISAoR3JpbW10ZXN0LCAxMi4gT2t0IDE5OTksIDIwOjMyOjA2KToKfiMhIHJuPVNvcmNlcmVyIHJ0PTkzOTc2MDIzOCByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpIYWx0IERpY2ggZG9jaCBiaXR0ZSBhdXMgZGVyIERpc2t1c3Npb24gd2VubiBEdSBrZWluZSBBaG51bmcgdm9tIFRoZW1hIGhhc3QuCkRhcyBKYWhyIDAgaGF0IGVzIG5paWNodCBnZWdlYmVuLCBkaWUgWmVpdHJlY2hudW5nIHNwcmluZ3Qgdm9uIC0xIGF1ZiAxLgoKR2RUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNSUxMRU5JVU0tRVZFTlQgISEhIChTb3JjZXJlciwgMTIuIE9rdCAxOTk5LCAyMDozNDoyOCk6Cn4jISBybj1HcmltbXRlc3QgcnQ9OTM5NzYwMzI2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CkxlaWNodGVyIGdlc2FndCBhbHMgZ2V0YW46IHdlbm4gaWNoIGRhcyBnZXd1c3N0IGhhZXR0ZSwgaGFldHRlIGljaCBlcyBuaWNodApnZXNjaHJpZWJlbiwgYWJlciBkYSBpY2ggZXMgbmljaHQgd3Vzc3RlIGtvbm50ZSBpY2ggbmF0dWVybGljaCBhdWNoIG5pY2h0Cndpc3NlbiwgZGFzcyBpY2ggZXMgbmljaHQgd2Vpc3MsIGFsc28uLi4KClNvcmNlcmVyIC0gZW1wZmllaGx0IGVyc3QgZGVua2VuLCB3YXJ1bSBlaW5lciB3YXMgdHV0IHVuZCBEQU5OIGhhbmRlbG4uLi4gaXN0CmFiZXIgaGllcnp1bGFuZGUgbWFuY2htYWwgc2NoZWluYmFyIHp1dmllbCB2ZXJsYW5ndC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTUlMTEVOSVVNLUVWRU5UICEhISAoR3JpbW10ZXN0LCAxMi4gT2t0IDE5OTksIDIwOjM2OjI2KToKfiMhIHJuPVNvcmNlcmVyIHJ0PTkzOTc2MDQ2OCByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpHcmF0dWxpZXJlIHp1ciBFbnRkZWNrdW5nIGVpbmVucyByZWFsIGxpZmUgUGFyYWRveG9ucy4gQml0dGUgZ2VoIGRlbiBHYW5nCmVudGxhbmcsIGxpbmtzLCBsZWlkZXIga2VpbiBOb2JlbHByZWlzLgoKR2RUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBNSUxMRU5JVU0tRVZFTlQgISEhIChOZXZvaywgMTIuIE9rdCAxOTk5LCAyMDozNzo1NSk6Cn4jISBybj1HcmltbXRlc3QgcnQ9OTM5NzYwNTg2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CnN0aW1tdCwgc293YXMga3JpZWdlbiBudXIgJ0dyb2Vzc2VuJyB3aWUgR3Jhc3MuLi4uLgoKTmV2b2ssIGVpbnplaWxsZXJuZCB1bmQgLT5zY2htYXJybi1lbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE1JTExFTklVTS1FVkVOVCAhISEgKEJhbWJpLCAxMy4gT2t0IDE5OTksIDA5OjExOjIyKToKfiMhIHJuPVNvcmNlcmVyIHJ0PTkzOTc2MDQ2OCByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpUdSBkb2NoIGVpbmZhY2ggc28sIGFscyBvYiBqZW1hbmQgbnVyIHp1IGJsb2VkIGdld2VzZW4gd2FlcmUsIGRhcyBKYWhyICIwIgplaW56dWZ1ZWhyZW4uCkRhIGRpZSBaZWl0cmVjaG51ZyBqYSBlcnN0IFZJRUwgc3BhZXRlciBlaW5nZWZ1ZWhydCB3dXJkZSwgYWxzIGlocgpTdGFydHplaXRwdW5rdCwKcGFzc2llcnRlbiBlaCB2aWVsZSBSZWNoZW5mZWhsZXIuIFNvIGZlaGxlbiBpcmdlbmR3YW5uIGltIE1pdHRlbGFsdGVyIGF1Y2gKZWluaWdlCk1vbmF0ZSBvZGVyIGdhciBKYWhyZSwgZGllIGVpbmZhY2ggcGVyIERlZmluaXRpb24gdWViZXJzcHJ1bmdlbiB3dXJkZW4uCkF1c3NlcmRlbSBmYWVuZ3QgdW5zZXJlIFplaXRyZWNobnVuZyBhdWZncnVuZCBhbmRlcmVyIFVuZ2VuYXVpZ2tlaXRlbiBlaCBuaWNodAptaXQgZGVtIEdlYnVydHNqYWhyIHZvbiBKZXN1cyBDLiBhbi4KTWFsIGdhbnogZGF2b24gYWJnZXNlaGVuLCBkYXNzIG1hbiBkYW5uIFdlaWhuYWNodGVuIGdsZWljaCBhbHMgQW5mYW5nIGRlcwpKYWhyZXMgbmVobWVuIGtvZW5udGUsIHdlbm4gbWFucyBnZW5hdSBoYWJlbiB3b2xsdGUuCkF1Y2ggd2VubiBtYW4gc2ljaCBuaWNodCBhdWYgZGFzIEphaHIgMCBvZGVyIGRpZSBhdXNnZWxhc3NlbmVuIEphaHJlIGJlemllaGVuCmthbm4sIHNvIGthbm4gbWFuIGRvY2ggYXVzIGRlbSBoZXV0aWdlbiB6ZWl0dmVyc3RhZW5kbmlzIHNvIHR1biwgYWxzIGZhZW5nZQpkaWUgemVpdHJlY2hudWduIGltIEphaHJlICIwIiBhbi4gQWJlciBlaWdlbnRsaWNoIGlzdCBkYXMgZG9jaCBnYW56IGVnYWwuIEFtCjMxLjEyIGdlaG4gZWggdWViZXJhbGwgZGllIExpY2h0ZXIgenVtIGxldHp0ZW4gbWFsIGFuLi4uIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBNSUxMRU5JVU0tRVZFTlQgISEhIChFcmRiZWVyZSwgMTMuIE9rdCAxOTk5LCAwOToyODozNSk6Cn4jISBybj1CYW1iaSBydD05Mzk4MDU4ODIgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKSW0gT2t0b2JlciAxNTgzIGZlaGx0ZW4gZWluaWdlIFRhZ2UuIERhIHdhciBkZXIgVW1zdGVsbHVuZyB2b20gSnVsaWFuaXNjaGVuCkthbGVuZGVyIGF1ZiBkZW4gR3JlZ29yaWFuaXNjaGVuLiBadXIgWmVpdCBlaW5lcyBQYXBzdGVzIEdyZWdvci4KCkVyZGJlZXJlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTUlMTEVOSVVNLUVWRU5UICEhISAoQmFtYnVsa28sIDEzLiBPa3QgMTk5OSwgMDk6MzI6NTUpOgp+IyEgcm49RXJkYmVlcmUgcnQ9OTM5ODA2OTE1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CkFoYS4uLi5oZWlzc3QgZGFzIGRhbm4sIGRhc3MgZGllIFdlbHQgZ2FyIG5pY2h0IGFtIDMxLjEyIHVudGVyZ2VodCBzb25kZXJuCnZpbGVpY2h0IHNwYWV0ZXIgb2RlciBmcnVlaGVyLi4/Pz8gV2FubiBzb2xsIGljaCBkZW5uIGpldHp0IFNlbGJzdG1vcmQKYmVnZWhlbj8KCkJhbWJ1bGtvICh2ZXJ3aXJydCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IE1JTExFTklVTS1FVkVOVCAhISEgKEJhYm9vbiwgMTMuIE9rdCAxOTk5LCAwOTo0NDoyMSk6Cn4jISBybj1CYW1idWxrbyBydD05Mzk4MDcxNzUgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKRGVyIGJlc3RlIFplaXRwdW5rdCBTZWxic3Rtb3JkIHp1IGJlZ2VoZW4gaXN0IHdhaHJzY2hlaW5saWNoCnNvYmFsZCBkaWUgZXJzdGVuIEF0b21rcmFmdHdlcmtlIGV4cGxvZGllcmVuLiBMYWVuZ2VyIGFscwpiaXMgenUgZGVuIGVyc3RlbiBTY2hhdWVybiB2b20gYmx1dGlnZW4gUmVnZW4gc29sbHRlc3QKZHUgYWJlciBrZWluZXNmYWxscyB3YXJ0ZW4hCgpCYUJPT24oKSB0cmFlZ3QgZWluIFNjaGlsZCAiVGhlIEVuZCBpcyBuZWFyIi4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBNSUxMRU5JVU0tRVZFTlQgISEhIChCYW1idWxrbywgMTMuIE9rdCAxOTk5LCAwOTo1MDo1MCk6Cn4jISBybj1CYWJvb24gcnQ9OTM5ODA3ODYxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CkRhcyBtaXQgZGVuIEF0b21rcmFmdHdlcmtlbiBoYXQgamEgc2Nob24gYW5nZWZhbmdlbi4uLi4uLldhcyBzYWdlbiBkZW5uIGRpZQpXZXR0ZXJ2b3JoZXJzYWdlbiB6dSBkZW0gQmx1dHJlZ2VuPyBJY2ggd29sbHRlIFdlaWhuYWNodGVuIGVpZ2VudGxpY2ggbm9jaAp3ZWdlbiBkZXIgR2VzY2hlbmtlIGFid2FydGVuLi4uLgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBNSUxMRU5JVU0tRVZFTlQgISEhIChNYWhhdG11LCAxMy4gT2t0IDE5OTksIDExOjAxOjQ5KToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTkzOTgwODI1MCByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpEYXp1IGJyYXVjaHQgZXMgbnVyIGVpbmUgYmVzb25kZXJlIGtsaW1hdGlzY2hlIEtvbnN0ZWxsYXRpb24sIHdlbm4gZGVyCldpbmQgU2FuZCBhdXMgQWZyaWthIG5hY2ggRXVyb3BhIHRyYWVndC4gQmlzaGVyIG51ciBpbiBzb2xjaGVuIE1lbmdlbiwKZGFzcyBkZXIgU2NobmVlIHJvdCB3dXJkZSwgYWJlciBkYXJhbiBrYW5uIG1hbiBqYSBhcmJlaXRlbi4KCk1haGF0bXUgc2FndDogT2VobS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IE1JTExFTklVTS1FVkVOVCAhISEgKEd1aWxkbywgMTMuIE9rdCAxOTk5LCAxNzowODoxMSk6Cn4jISBybj1FcmRiZWVyZSBydD05Mzk4MDY5MTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKCjxrbHVnc2NoZWlzc2VyPgpFcyB3YXIgaW0gSmFociAxNTgyLCBuaWNodCAxNTgzLgo8L2tsdWdzY2hlaXNzZXI+CgpHcnVzcywKR3VpbGRvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBNSUxMRU5JVU0tRVZFTlQgISEhIChBbGluZSwgMTMuIE9rdCAxOTk5LCAxNzozMzo0OCk6Cn4jISBybj1HdWlsZG8gcnQ9OTM5ODI3MjkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1Cgo8a2x1Z3NjaGVpc3Nlcj4KVW5kIGVzIHdhciBlaW5lIEtvcnJla3R1ciB1bSAxMCBUYWdlLgo8L2tsdWdzY2hlaXNzZXI+CgpHcnVzcwoKQWxpbmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IE1JTExFTklVTS1FVkVOVCAhISEgKFByYSwgMTMuIE9rdCAxOTk5LCAxODoyMDozMyk6Cn4jISBybj1FcmRiZWVyZSBydD05Mzk4MDY5MTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKPG5vY2ggZWluZW4gZHJhdWYgc2V0ej4KRXMgd2FyZW4gMTAgVGFnZSwgdW5kIGVzIHdhciBQYXBzdCBHcmVnb3IgZGVyIFhJSUkuCjwvbm9jaCBlaW5lbiBkcmF1ZiBzZXR6PgoKUHJhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogTUlMTEVOSVVNLUVWRU5UICEhISAoRXJkYmVlcmUsIDEzLiBPa3QgMTk5OSwgMTg6MjI6MDEpOgp+IyEgcm49UHJhIHJ0PTkzOTgzMTYzMyByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQo8c2Fya2FzbXVzPgpKZXR6dCB3aXNzZW4gd2lyIGVzIGFsbGUgaG9mZmVudGxpY2guCjwvc2Fya2FzbXVzPgoKRXJkYmVlcmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBNSUxMRU5JVU0tRVZFTlQgISEhIChQYXJhY2Vsc3VzLCAxMy4gT2t0IDE5OTksIDIyOjI4OjEyKToKfiMhIHJuPUVyZGJlZXJlIHJ0PTkzOTgzMTcyMSByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQo8cGFyYWNlbHN1cz4KVW5kIHdvIGxpZWd0IGpldHp0IGRlciBOdXR6ZW4/CjwvcGFyYWNlbHN1cz4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBNSUxMRU5JVU0tRVZFTlQgISEhIChQcmEsIDE0LiBPa3QgMTk5OSwgMTE6NDg6MzYpOgp+IyEgcm49UGFyYWNlbHN1cyBydD05Mzk4NDY0OTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKPGxlYmVuc3dlaXNoZWl0PgpBbGxnZW1laW5iaWxkdW5nIGlzdCBlaW4gaG9oZXMgR3V0IQo8L2xlYmVuc3dlaXNoZWl0PgoKUHJhLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IE1JTExFTklVTS1FVkVOVCAhISEgKEhhZHJhLCAxNC4gT2t0IDE5OTksIDE4OjExOjA5KToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTkzOTgwNzE3NSByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQp3YXJ0ZSBlaW5mYWNoIGJpcyBkaWUgd2VsdCB1bnRlcmdlaHQuIGRhbm4gZXJsZWRpZ3Qgc2ljaCBkYXMgcHJvYmxlbSBtaXQgZGVtCnNlbGJzdG1vcmQgYXV0b21hdGlzY2ggdW5kIGluIGVpbmVtIGF1Zndhc2NoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IE1JTExFTklVTS1FVkVOVCAhISEgKEFjcmltb24sIDE0LiBPa3QgMTk5OSwgMjE6MjQ6MDMpOgp+IyEgcm49QmFtYnVsa28gcnQ9OTM5ODA4MjUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CkhtbS4uLiBuaW1tc3QgRHUgZGllIEdlc2NoZW5rZSBtaXQsIHdlbm4gRHUgRGljaCB1bWJyaW5nc3Q/CgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IE1JTExFTklVTS1FVkVOVCAhISEgKEJhbWJ1bGtvLCAxNS4gT2t0IDE5OTksIDEwOjM4OjMzKToKfiMhIHJuPUhhZHJhIHJ0PTkzOTkxNzQ2OSByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpBYmVyIGtvbW1lIGljaCBkYW5uIG5pY2h0IGluIGRpZSBIb2VsbGU/IEljaCBtb2VjaHRlIGRvY2ggYXVmIGVpbmVtCnZvcmJlaWZsaWVnZW5kZW4gS29tZXRlbiBpbiBob2VoZXJlIFNwYWVocmVuIHNjaHdlYmVuLi4uLi4uCgpIYXQsIEhhbGUtQm9iLCBuaW1tIG1pY2ggbWl0Li4uCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IE1JTExFTklVTS1FVkVOVCAhISEgKEFuYXRvbCwgMTUuIE9rdCAxOTk5LCAxMTo0NToyMCk6Cn4jISBybj1CYW1idWxrbyBydD05Mzk5NzY3MTMgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKQW56dW5laG1lbiwgZGFzcyBzaWNoIGRhcyBVbml2ZXJzdW0gbmFjaCBkZW4gVm9yc3RlbGx1bmdlbiBlaW5lciAKc2VociB1bmJlZGV1dGVuZGVuIExlYmVuc2Zvcm0gcmljaHRldCwgaXN0IGRhbm4gZG9jaCBldHdhcyBaVSB2ZXJtZXNzZW4uCgpBbmF0b2wgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogTUlMTEVOSVVNLUVWRU5UICEhISAoQmFtYnVsa28sIDE1LiBPa3QgMTk5OSwgMTE6NDY6NTQpOgp+IyEgcm49QW5hdG9sIHJ0PTkzOTk4MDcyMCByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpEYXMgd2FyIGFiZXIgZ2VtZWluLi4uLk5hamEgd2VubiBpY2ggYXVmIG1laW5lbSBLb21ldGVuIGJpbiwgd2VyZGUgaWNoIGVpbgpTdHVlY2sgcmF1c2JyZWNoZW4gdW5kIGVzIGdlbmF1IGF1ZiBkaWNoIHNjaG1laXNzZW4uLi4uLi4uCgpWb24gd2VnZW4gdW5iZWRldXRlbmQuLi4uCgpCYW1idWxrbyAoc2NobW9sbGVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBNSUxMRU5JVU0tRVZFTlQgISEhIChQYXJhY2Vsc3VzLCAxNS4gT2t0IDE5OTksIDEzOjIwOjEzKToKfiMhIHJuPUFuYXRvbCBydD05Mzk5ODA3MjAgcmc9YW56ZWlnZW4KfiMhIHRpZD05Mzk3MjQyNzUKQWxzbyBpY2gga2FubiBqYSB3b2hsIG1pdCBtZWluZW0gVW5pdmVyc3VtIG1hY2hlbiwgd2FzIGljaCB3aWxsLCBvZGVyPwoKUGFyYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBNSUxMRU5JVU0tRVZFTlQgISEhIChNYWhhdG11LCAxNS4gT2t0IDE5OTksIDEzOjM1OjQ1KToKfiMhIHJuPVBhcmFjZWxzdXMgcnQ9OTM5OTg2NDEzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CkRhIHVucyB1bmJlZGV1dGVuZGVuIFd1ZXJtY2hlbiBlaW5lIE1lbmdlIFBoYW50YXNpZSBnZWdlYmVuIGlzdCwgd2lyZCBzaWNoCndvaGwgamVkZXIgc2VpbiBFbmRlIHNvIGF1c3N1Y2hlbiB1bmQgZXJ0cmFldW1lbiB3aWUgZXMgaWhtIHBhc3N0LiBPYiBkYXMKZGFubiBhbmRlcmUgYXVjaCBzbyBlcmZhaHJlbiAuLi4gaXN0IGluIGRlbSBGYWxsIGVnYWwsIHNpZSBzaW5kIGphIGF1Y2gKdG90IDopCgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPaCBNYW5uLi4uLiAoVW5hc2FpLCAxOC4gT2t0IDE5OTksIDA5OjU2OjE1KToKCklociBoYWJ0IGVjaHQgUHJvYmxlbWUuLi4uLi5XZW4gaW50ZXJlc3NpZXJ0IGRhcyBzY2hvbiwgb2IgZGllIFdlbHQgdW50ZXJnZWh0Cm9kZXIgbmljaHQ/IEFlbmRlcm4ga2FubiBkYXMgZWgga2VpbmVyLi4uLi51bmQgc2VsYnN0IHdlbm4gaXN0IGVzIGZ1ZXIKamFtbWVybiwgamV0enQgZWggenUgc3BhZXQsIGxhc3N0IHVucyBsaWViZXIgZGllIGxldHp0ZSBNVUQtUGFydHkgZ2VuaWVzc2VuIDopCkFsbGVzIGFuZGVyZSB3aXJkIHNpY2ggc2Nob24gemVpZ2VuLi4uClVuYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPaCBNYW5uLi4uLiAoQWNyaW1vbiwgMTguIE9rdCAxOTk5LCAyMDoxOTowMik6Cn4jISBybj1VbmFzYWkgcnQ9OTQwMjMzMzc1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQwMjMzMzc1Ck51biwgd2VubiBkZXIgV2VsdHVudGVyZ2FuZyB2b24gTWVuc2NoZW4gb3JnYW5pc2llcnQgd2lyZCwgZGFubiBrYW5uIG1hbiBkYXMKZHVyY2hhdXMgdmVyaGluZGVybi4KTWFuIGJyYXVjaHQgbnVyIGFsbGUgV2FmZmVuIHp1IHZlcm5pY2h0ZW4gc293aWUgYWxsZXMgVW13ZWx0LVNjaGFlZGxpY2hlIHp1CnZlcmhpbmRlcm4gc293aWUgYWxsZSBNZW5zY2hlbiB2ZXJudWVuZnRpZyBtYWNoZW4uCgpBY3JpbW9uLCB1dG9waXNpZXJ0IG1pdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogT2ggTWFubi4uLi4gKFd1cnplbCwgMTguIE9rdCAxOTk5LCAyMDoyMTozMyk6Cn4jISBybj1BY3JpbW9uIHJ0PTk0MDI3MDc0MiByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpkYXMgcHJvYmxlbSBsaWVndCB3b2FuZGVyczogZXMgc2luZCBkaWUgbWVuc2NoZW4uIHdlbm4gZHUgYWxsZXMgd2FzIGRlciB1bXdlbHQKc2NoYWRldCBiZXNlaXRpZ2VuIHdpbGxzdCwgZGFubiBmYW5nIGJlaSBkaXIgYW4uIHdhaGx3ZWlzZSBhdWNoIGJlaSBkZWluZW0KbmFjaGJhcm4sIGplIG5hY2ggdmVyYW5sYWd1bmcgOikKCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBPaCBNYW5uLi4uLiAoQXBzdSwgMjAuIE9rdCAxOTk5LCAxNzo1NzozNyk6Cn4jISBybj1BY3JpbW9uIHJ0PTk0MDI3MDc0MiByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQo+IHNvd2llIGFsbGVzIFVtd2VsdC1TY2hhZWRsaWNoZSB6dSB2ZXJoaW5kZXJuIHNvd2llIGFsbGUgTWVuc2NoZW4gdmVybnVlbmZ0aWcKbWFjaGVuLi4uCgpEYSBlcyBpbiBSTCBqYSBrZWluIHJtIC1yZiAvKiBhbHMgcm9vdCBnaWJ0LCBhbmRlcnMgYWxzIGJlaW0gTXVkLCBlbXBmZWhsZSBpY2gKa29sbGVrdGl2ZW4gU2VsYnN0bW9yZCBvZGVyIGZvcmNpZXJ0ZSBTZWxic3R2ZXJuaWNodHVuZyBkZXIgTWVuc2NoaGVpdC4gRGVubgpkYXMgbWl0IGRlbSB2ZXJudWVuZnRpZyB3ZXJkZW4vbWFjaGVuIGlzdCBqYSB3b2hsIGVpbiBXaXR6LgoKRGFubiBoYXQgZGVyIFJlc3QgZGVyIE5hdHVyIHZpZWxsZWljaHQgbm9jaCBlaW5lIENoYW5jZS4uLi4KCkFwc3UsIE5JQ0hUIHV0b3Bpc2llcmVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1JTExFTklVTS1FVkVOVCAhISEgKERlZXBibHVlLCAyMC4gT2t0IDE5OTksIDE4OjAwOjU3KToKfiMhIHJuPVNvcmNlcmVyIHJ0PTkzOTc2MDIzOCByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpEaWUgWmVpdHJlY2hudW5nIHd1cmRlIGFuZ2VmYW5nZW4sIGFscyBtYW4gQ2hyaXN0dXMgZnVlciBkZW4gTWVzc2lhcyBoaWVsdCwKYWxzbyB3ZXNlbnRsaWNoIHNwYWV0ZXIgYWxzIHNlaW5lIEdlYnVydC4gRGUgRmFrdG8ga29lbm5lbiB3aXIgc2VpdCBwYWFyCkphaHJlbiBhdWYgVmVyZGFjaHQgSmFocnRhdXNlbmR3ZWNoc2VsIGZlaWVybiwgdW5kIGF1Y2ggbm9jaCBwYWFyIHdlaXRlcmUKSmFocmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE9oIE1hbm4uLi4uIChIYWRyYSwgMjEuIE9rdCAxOTk5LCAwMDoyOTo1OSk6Cn4jISBybj1BcHN1IHJ0PTk0MDQzNTA1NyByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpybSAtcmYgLyBoZWlzc3QgaW0gcmwgc2NobGljaHQgc2ludGZsdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5JQ0hUIFZFUlBBU1NFTiAhISEgKFphcm5peWEsIDIxLiBPa3QgMTk5OSwgMDk6MzY6NTEpOgoKICAgICAgICAgICAgICAgICAgICAgQSBDIEggVCBVIE4gRyAgICAhICEgIQoKUmVndCBFdWNoIGF1Y2ggZGllc2UgZHVlbW1saWNoZSBKYWhydGF1c2VuZC1EaXNrdXNzaW9uIGF1Zj8gV29sbHQgSWhyIGF1Y2gKbmljaHQgbWl0IGRlbSBTdHJvbSBkZXIgTWFzc2VuIHNjaHdpbW1lbj8gSXN0IGRhcyBuaWNodCBhbGxlcyBlaCBlZ2FsPwpXaWNodGlnIGlzdCBkZXIgU3Bhc3MgdW5kIGRlciBpc3QgZ2FyYW50aWVydCBiZWltIHVsdGltYXRpdmVuIGxldHp0ZW4KZ3JhbmRpb3NlbgoKICAgICAgICAgICAgICAgIFRyYWRpdGlvbnNzdGFtbXRpc2NoIGluIEtvZWxuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZXNlcwogICAgICAgICAgICAgICAgICAgICAgIEphaHJ0YXVzZW5kcyAhISEKClNlaSBhdWNoIFpldWdlIGRlcyBlaW56aWdhcnRpZ2VuIFdldHRrYW1wZmVzLiBWZXJnaXNzIGRpZSBLbGl0c2Noa29zLCBUeXNvbnMKdW5kIFNjaHdhYmJlbGJhY2tlbiAobmVubmVuIHNpY2ggbWVpc3QgQXhlbCwgd2VpbCBzaWUgZGEgaW1tZXIgc28gYXJnCnNjaHdpdHplbiB2b3IgQU5HU1QsIGFiZXIgZGFzIG51ciBuZWJlbmJlaSkuIEJlaSB1bnMgZ2lidCBlcyBrZWluZW4KU2Nod2Vpc3MsIGtlaW5lIEZhbmF0aWtlciwga2VpbmUgRmFzY2hvcywga2VpbiBHZWdyb2VobGUsIHNvbmRlcm4gZWluZW4KZmFpcmVuIHVuZCBnZXJhZGV6dSBzdWVzc2VuIFdldHRrYW1wZiwgZGVyIGplZGVtIFp1c2NoYXVlciBkYXMgV2Fzc2VyIGluIGRpZQpLaWVtZW4gdHJlaWJ0ISBEZXIgVGVybWluIHdpcmQgaW4gZGVyIGVyc3RlbiBKYW51YXJ3b2NoZSBsaWVnZW4sIHdvaGwKRnJlaXRhZ3MgYWJlbmQsIHdlaWwgZXMgc28gVHJhZGl0aW9uIGlzdCwgYWJlciBmZXN0Z2VsZWd0IHdpcmQgZGFzIGVyc3QsCndlbm4gYmVpZGUgS2FlbXBmZXIgc2ljaCBhdWYgZGVuIFRlcm1pbiBnZWVpbmlndCBoYWJlbi4KCk5ldWdpZXJpZz8gV2VyIHdpcmQgZGEgd29obCBkaWUgSG9lcm5lciBnZWdlbmVpbmFuZGVyIHdldHplbj8gV2FzIGlzdCBkYXMKZnVlciBlaW4gS2FtcGYsIGJlaSBkZW0gbWFuIG5pY2h0IGlucyBzY2h3aXR6ZW4ga29tbXQ/IFdvIGZpbmRldCBkYXMgRXZlbnQKc3RhdHQ/IEdpYnQgZXMgVklQLUthcnRlbj8gU2NobGFmcGxhZXR6ZT8gQWxsZXMgbm9jaCBkYS4uLiBzb2dhciBQbGFldHplIGltCldldHRrYW1wZmdlcmljaHQuIE5hZWhlcmUgSW5mb3Mgc3BhZXRlciBhbiBkaWVzZXIgU3RlbGxlLiBCZXdlcmJ1bmdlbiBiaXR0ZQpudXIgcGVyIE1haWwgYW4gbWljaC4KCk1hcmMKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE9oIE1hbm4uLi4uIChHcmltbXRlc3QsIDIyLiBPa3QgMTk5OSwgMDI6MzM6MzMpOgp+IyEgcm49SGFkcmEgcnQ9OTQwNDU4NTk5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQwMjMzMzc1Ck5laW4uClNpbnRmbHV0IGlzdCAnY2F0IC9kZXYvemVybyA+IC9kZXYvaGRhJy4KCkdkVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogT2ggTWFubi4uLi4gKEFjcmltb24sIDIyLiBPa3QgMTk5OSwgMjA6Mzg6NDYpOgp+IyEgcm49R3JpbW10ZXN0IHJ0PTk0MDU1MjQxMyByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpOZWluLCBkZW5uIGJlaSBkZXIgU2luZmx1dCBibGllYiBlcnN0ZW5zIGRpZSBHcnVuZHN0cnVrdHVyIGVyaGFsdGVuIHVuZAp6d2VpdGVucyBoYXQgc2llIHZvbiBrZWluZXIgR2F0dHVuZyBhbGxlIEV4ZW1wbGFyZSBlcndpc2NodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IE9oIE1hbm4uLi4uIChHcmltbWJvcm4sIDIzLiBPa3QgMTk5OSwgMDQ6MDE6MTYpOgp+IyEgcm49QWNyaW1vbiBydD05NDA2MTc1MjYgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDAyMzMzNzUKWyBdIER1IGtlbm5zdCBkaWUgTW9lZ2xpY2hrZWl0ZW4gbW9kZXJuZXIgRGF0ZW5yZXR0dW5nLgoKVW5kIHp1bSBUaGVtYSAibmljaHQgYWxsZSBFeGVtcGxhcmUgZXJ3aXNjaGVuIiBrYW5uc3QgRHUgamEgbWFsIGRpZQpEaW5vc2F1cmllciBmcmFnZW4uLi4gCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IE9oIE1hbm4uLi4uIChMdWcsIDI1LiBPa3QgMTk5OSwgMDM6MzE6MDUpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk0MDY0NDA3NiByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQoKVW5nbGF1YmxpY2ggYWJlciB3YWhyLAoKCmVzIGdpYnQgaW1tZXIgbm9jaCBMZXV0ZSBkaWUgYW4gZGllIGVyZHVtc3Bhbm5lbmRlIFNpbnRmbHV0IGdsYXViZW4uIE5hamEgZGFubgpzdGFuZCBkYXMgV2Fzc2VyIHdvaGwgYmlzIHVlYmVyIGRlbiBNb3VudCBFdmVyZXN0Li4uCgpXbyBpc3NuIGRhcyBoaW4/Ckx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogT2ggTWFubi4uLi4gKFN1YmxpbWUsIDI1LiBPa3QgMTk5OSwgMDM6MzQ6MDMpOgp+IyEgcm49THVnIHJ0PTk0MDgxNTA2NSByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpXYWhyc2NoZWlubGljaCBpbiBkaWUgS29lcGZlIHZvbiB2aWVsZW4gdmllbGVuIApQb2xpdGlrZXJuIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogT2ggTWFubi4uLi4gKFBhcmFjZWxzdXMsIDI1LiBPa3QgMTk5OSwgMDg6NTg6MDcpOgp+IyEgcm49THVnIHJ0PTk0MDgxNTA2NSByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpIbW0sIHZpZWxsZWljaHQgaGF0dGUgZGVyIE1hbm4gaW0gTW9uZCBuZW4gemllbWxpY2hlbiBEdXJzdD8KClBhcmEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBPaCBNYW5uLi4uLiAoQWxib2luLCAyNS4gT2t0IDE5OTksIDA5OjU3OjI5KToKfiMhIHJuPUdyaW1tYm9ybiBydD05NDA2NDQwNzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDAyMzMzNzUKLi4uIG9kZXIgZGllIEVpbmhvZXJuZXIKCkFsYm9pbiBtYWwgZWluemVpbGVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE1JTExFTklVTS1FVkVOVCAhISEgKFdpZGV3aXR0LCAyNS4gT2t0IDE5OTksIDEyOjI1OjUwKToKfiMhIHJuPURlZXBibHVlIHJ0PTk0MDQzNTI1NyByZz1hbnplaWdlbgp+IyEgdGlkPTkzOTcyNDI3NQpTbyB2aWVsIGljaCB3ZWlzcywgaGF0bWFuIHNpY2ggYmVpIGRlciBiZXJlY2hudW5nIHNvIHVtIHVuZ2VmYWVociBzaWViZW4gSmFocmUKdmVycmVjaG5ldCAuLi4KV2lkZXdpdHQgZWluZmFjaCBzbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTUlMTEVOSVVNLUVWRU5UICEhISAoQmFtYnVsa28sIDI1LiBPa3QgMTk5OSwgMTI6MjY6NDEpOgp+IyEgcm49V2lkZXdpdHQgcnQ9OTQwODQ3MTUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTM5NzI0Mjc1CldobyBjYXJlcz8KCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBPaCBNYW5uLi4uLiAoTWFoYXRtdSwgMjUuIE9rdCAxOTk5LCAxMjozNDo0OCk6Cn4jISBybj1MdWcgcnQ9OTQwODE1MDY1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQwMjMzMzc1CkluIGRlbiBFcmRrZXJuIHVuZCBkYXMgUGFja2VpcyA7LSkgTmVlLCBpbSBFcm5zdCwgaW0gRXJka2VybiBzY2hlaW50IGFuCmRlbiBNaW5lcmFsZW4gbWVociBXYXNzZXIgZ2VidW5kZW4genUgc2VpbiAodW5kIGdlYnVuZGVuIHp1IHdlcmRlbikgYWxzCm1hbiBhbm5haG0uIE9mZmVua3VuZGlnIHNpbmQgc2Nod2VyZSBNaW5lcmFsZSB3aWUgT2xpdmluIGRvY2ggaW4gZWluZW0KZW5nZW4gUmFobWVuIGZhZWhpZyBXYXNzZXIgenUgc3BlaWNoZXJuLgoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogT2ggTWFubi4uLi4gKEdyaW1tYm9ybiwgMjYuIE9rdCAxOTk5LCAxMDo1ODowMyk6Cn4jISBybj1NYWhhdG11IHJ0PTk0MDg0NzY4OCByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpPaG5lIE9saXZpbiB6dSBrZW5uZW4sIGRlciBCZWdyaWZmICJLcmlzdGFsbHdhc3NlciIgaXN0IGluIGRlcgpLcmlzdGFsbG9ncmFwaGllIGtlaW5lIHdpcmtsaWNoIG5ldWUgRXJmaW5kdW5nLiBVbmQga2FubiB6aWVtbGljaCB2aWVsIHNlaW4sCmphLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogT2ggTWFubi4uLi4gKE1haGF0bXUsIDI2LiBPa3QgMTk5OSwgMTE6MDA6MTApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk0MDkyODI4MyByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpXb21pdCBkYXMgUmFldHNlbCB1bSBkZW4gVmVyYmxlaWIgZGVyIFNpbnRmbHV0IGdla2xhZXJ0IGlzdC4gQWxsZXMgS3Jpc3RhbGwtCmhlZmUgZ2V3b3JkZW4uIEVpbiB3YWhyaGFmdCBnb2V0dGxpY2hlciBUcnVuayBzb3p1c2FnZW4gOy0pCgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogT2ggTWFubi4uLi4gKEx1ZywgMjcuIE9rdCAxOTk5LCAwMTowNzoxNik6Cn4jISBybj1NYWhhdG11IHJ0PTk0MDkyODQxMCByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQoKQWVoLi4uCgoKUHJvc3QhCgpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBPaCBNYW5uLi4uLiAoQnViYmEsIDI3LiBPa3QgMTk5OSwgMTg6MzM6NTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk0MDkyODI4MyByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQoKRGllIFRoZW9yaWUgZGVyIGVyZHVtc3Bhbm5lbmRlbiBTdWVuZGZsdXQgZGFyZiBuYWNoIG5ldWVzdGVuIEVya2VubnRuaXNzZW4gYWxzCndhaHIgYW5nZXNlaGVuIHdlcmRlbi4gRGllIFdhc3Nlcm1hc3Nlbiwgd2VsY2hlIGRpZSBFcmRvYmVyZmxhZWNoZSBiZWRlY2t0ZW4sCnd1cmRlbiB0YXRzYWVjaGxpY2ggaW4gS3Jpc3RhbGx3YXNzZXIgZ2VzcGVpY2hlcnQuIFNvIHdlaXQsIHNvIGd1dC4gRGllc2VyClZvcmdhbmcgZ2VzY2hhaCBqZWRvY2gga2VpbmVzd2VncyB3aWxsa3VlcmxpY2gsIGF1Y2ggd3VyZGUgZGFzIEtyaXN0YWxsd2Fzc2VyCm5pY2h0IGF1ZiBvZGVyIGluIGRlciBFcmRlIGdlc3BlaWNoZXJ0LCBzb25kZXJuIGVzIHd1cmRlIHZvbiBkZW4gUGxlamFkaWVybgphdWYgaWhyZSBIZWltYXRwbGFuZXRlbiB2ZXJicmFjaHQuIEJldm9yIHNpY2ggamV0enQgVW5tdXQgcmVndCB1bmQgdm9uCkF1c2JldXR1bmcgZ2VzcHJvY2hlbiB3aXJkLCB3aWxsIGljaCBlcmxhZXV0ZXJuLCBkYXNzIGRhenUga2VpbmVybGVpIEFubGFzcwpnZWdlYmVuIGlzdC4gRGllIFBsZWphZGllciBicmF1Y2h0ZW4gZGFzIFdhc3NlciB6dSBkaWVzZXIgWmVpdCBkcmluZ2VuZGVyIGFscwpkaWUgbm9jaCB1bnRlcmVudHdpY2tlbHRlIE1lbnNjaGhlaXQuIEFscyBHZWdlbmxlaXN0dW5nIHNhbmR0ZSB1bnMgaWhyZSBlZGxlClJhc3NlIGluIHJlaWNoZW0gTWFzcyBkYXMga29zdGJhcnN0ZSwgd2FzIHNpZSB1bnMgZ2ViZW4ga29ubnRlIC0gT3Jnb25lbmVyZ2llIQpEaWVzZSBFbmVyZ2llIGVybW9lZ2xpY2h0ZSBlcnN0IGRpZSBFbnR3aWNrbHVuZyBkZXMgTWVuc2NoZW4genVyIGxpZWJlbmRlbiB1bmQKaG9mZmVuZGVuIFJhc3NlLiBVbmQgamV0enQsIHdvIGRhcyBHb2xkZW5lIFplaXRhbHRlciBkZXMgV2Fzc2VybWFubnMgZGFzCmR1bmtsZSBmaXNjaGlnZSBaZWl0YWx0ZXIgYWJsb2VzdCwgaG9mZmVuIHdpciBhdWYgRXJsb2VzdW5nLiBVbnNlcmUKZmVpbnN0b2ZmbGljaGUgRXhpc3RlbnogbGVjaHp0IGRhbmFjaCwgZGllIGVuZ2Uga29lcnBlcmxpY2hlIEh1ZWxsZSBmdWVyIGltbWVyCnp1IHZlcmxhc3NlbiB1bmQgZWluenVnZWhlbiBpbnMgTGljaHQuIEZyZXVlbiB3aXIgdW5zIGF1ZiBkaWVzZW4gaGVocmVuIE1vbWVudAp1bmQgaGFsdGVuIGVpbmVuIEF1Z2VuYmxpY2sgaW5uZSwgenVyIEJlc2lubnVuZyBhdWYgZGllIFBsZWphZGllciwgZGVuZW4gd2lyCmRpZXNlIEVya2VubnRuaXMgdmVyZGFua2VuLiBTbyBzaW5kIHdpciBkZW5uIGJlcmVpdCwgZWluenVnZWhlbiBpbiBkaWUKVHJhbnN6ZW5kZW56LiBEZXIgQXVnZW5ibGljayB3aXJkIGtvbW1lbiwgYW4gZGVtIGRpZSBCbGluZGVuIHp1IFNlaGVuZGVuCndlcmRlbiB1bmQgdGVpbGhhYmVuIGFtIExpY2h0ZSBkZXIgRXJrZW5udG5pcy4gRGllIGFiZXIsIGRpZSBkaWUgd2FocmUgTGllYmUKbGV1Z25lbiwgd2VyZGVuIHp1cnVlY2tibGVpYmVuIGF1ZiBlaW5lciBFcmRlIHZvbGxlciBKYW1tZXJucyB1bmQKWmFlaG5la2xhcHBlcm5zLgoKQnViYmEgYXVmIGRlbiBTY2h3aW5nZW4gZGVzIExpY2gKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogT2ggTWFubi4uLi4gKE1haGF0bXUsIDI3LiBPa3QgMTk5OSwgMTg6NDQ6NDUpOgp+IyEgcm49QnViYmEgcnQ9OTQxMDQyMDMxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQwMjMzMzc1Ck1vcm1vbmVuZW5lcmdpZT8gRHUgbWVpbnN0IGRpZSBQbGVqYWRlciBzaW5kIGZ1ZXJzIFJ1ZGVsYnVtc2VuIHZlcmFudHdvcnQtCmxpY2g/ISBVbmQgZnVlciBkZW4gU2V4LCBkZXIgc2ljaCBhbHMgTGllYmUgYXVzZ2lidD8hCkVpbiBIb2NoIGF1ZiBkaWUgUGxlZGluZ3NkYXMhCgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogT2ggTWFubi4uLi4gKEJ1YmJhLCAyNy4gT2t0IDE5OTksIDE5OjA0OjU5KToKfiMhIHJuPU1haGF0bXUgcnQ9OTQxMDQyNjg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQwMjMzMzc1CgpJY2ggYmluIGVudHNldHp0IHVlYmVyIERlaW5lbiBpbnN0aW5rdGxvc2VuIEFydGlrZWwsIE1haGF0bXUhIERvY2ggdHJvZXN0ZXQKbWljaCBkaWUgVGF0c2FjaGUsIGRhc3MgYXVjaCBEdSBlaW5zdCBpbSBDaG9yIGRlciBHbHVlY2tsaWNoZW4gc2luZ2VuIHdpcnN0LgpOaWVtYW5kIGVudGdlaHQgZGVyIFdhaHJoYWZ0aWdrZWl0ISAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogT2ggTWFubi4uLi4gKFd1cnplbCwgMjcuIE9rdCAxOTk5LCAyMDozMDoxMCk6Cn4jISBybj1CdWJiYSBydD05NDEwNDM4OTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDAyMzMzNzUKZG9jaC4gaWNoIHNjaG9uLiB1bmQgd2VubiBtaXIgZWluZXIgdm9uIGRpZXNlbiBydWRlbGJ1bXNlbmRlbiBhbGllbnMgdm9yIGRpZQpmbGludGUga29tbXQsIHplaWcgaWNoIGlobSB3byBiYXJ0ZWwgZGVuIG1vc3QgaG9sdC4gb2RlciBzbyBhZWhubGljaC4KCnVlYnJpZ2VucyBpc3QgZGFzIGhpZXIgZGllIGZhbHNjaGUgcnVicmlrLgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogT2ggTWFubi4uLi4gKE1hZ2VuYnJvdCwgMjcuIE9rdCAxOTk5LCAyMzowMzo1Myk6Cn4jISBybj1CdWJiYSBydD05NDEwNDM4OTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDAyMzMzNzUKaG1tLCBkdSBoYXN0IGVpbmRldXRpZyB6dXZpZWwgU3lzdGVtIFNob2NrIDIgZ2VzcGllbHQuLi4KCk1hZ2VuYnJvdCAtIHNpbmd0IG5pY2h0IG1pdCBkZXIgVmllbGhlaXQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBPaCBNYW5uLi4uLiAoQWxib2luLCAyOC4gT2t0IDE5OTksIDEzOjIyOjI1KToKfiMhIHJuPUJ1YmJhIHJ0PTk0MTA0MjAzMSByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpkYXJmIG1hbiBmcmFnZW4gd29oZXIgZHUgZGFzIGFsbGVzIGhhc3Q/IG1pY2ggZXJpbm5lcnQgZGFzIGFuIGVpbiBwYWFyIG51biBqYQpyZWxpZ2lvZXNlIEdydXBwaWVydW5nZW4sIGRlcmVuIExlaHJlIGF1Y2ggZGF2b24gYXVzZ2VodCwgZGFzcyB1bnMgZXJzdCBzbyBlaW4KcGFhciBrbGVpbmUgZ3J1ZW5lIE1hZW5ubGVpbiB6dSBNZW5zY2hlbiBnZW1hY2h0IGhhYmVuLCB1bmQgd2lyIHNvbnN0IHdvaGwKbm9jaCBhdWYgQmFldW1jaGVuIEJhbmFuZW4gc2NoYWVsZW4gd3VlcmRlbiwgb2RlciBzby4KKERlciBWb2xsc3RhZW5kaWdrZWl0IGhhbGJlcjogbmljaHQgbnVyIEdydXBwaWVydW5nZW4gYmVoYXVwdGVuIGRpZXNlbiBRdWFyaywKc29uZGVybiBhdWNoIGRlciBCZXJ1ZnNzcGVrdWxhbnQgRXJpY2ggdm9uIERhZW5pY2tlbikKCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IE9oIE1hbm4uLi4uIChSb2NodXMsIDI4LiBPa3QgMTk5OSwgMTM6NDY6NTEpOgp+IyEgcm49V3VyemVsIHJ0PTk0MTA0OTAxMCByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpEYXMgaGVpc3N0ICJkYW5uIHplaWcgaWNoIGRlbSwgd28gZGVyIFppZWdlbmJvY2sgZGVuIEhvbmlnIGhhdCIKKGMpIFN0ZWZhbiBSYWFiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogT2ggTWFubi4uLi4gKFBob2JvcywgMjguIE9rdCAxOTk5LCAxMzo0NzozMSk6Cn4jISBybj1Sb2NodXMgcnQ9OTQxMTExMjExIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQwMjMzMzc1Ci4uLiBkdSBTb2NrZSB2b2xsIFBvcGtvcm4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogT2ggTWFubi4uLi4gKEZyaWVkZWwsIDI4LiBPa3QgMTk5OSwgMjM6Mzc6MjQpOgp+IyEgcm49Um9jaHVzIHJ0PTk0MTExMTIxMSByZz1hbnplaWdlbgp+IyEgdGlkPTk0MDIzMzM3NQpkYXMgY29weXJpZ2h0IGlzdCBhYmVyIGJlaSAiUGF0ZXIgQmxhdWF1Z2UiIDspCgpGcmllZGVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWOklvbWVnYSBaSVAgTGF1ZndlcmsgKEFUQVBJKSAoR3JpbW1ib3JuLCAyOS4gT2t0IDE5OTksIDEwOjI5OjU5KToKfiMhIG9uPUJoYW1pciBvdD05NDExMjE1MjEgb2c9aGFyZHNvZnR3YXJlClZlcmthdWZlIFpJUCBMYXVmd2VyayB2b24gSW9tZWdhIChBVEFQSSkuCkhhbmRidWNoIHVuZCBUcmVpYmVyLUNEIHNpbmQgZGFiZWkuIERhY2h0ZSBkYWJlaSBzbyBhbiA4MCwtIGFiZXIgZGEga2FubiBtYW4KZHJ1ZWJlciByZWRlbi4KQmhhbWlyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVjpUaWJlcmlhbiBTdW4oZW5nbGlzY2gpIChHcmltbWJvcm4sIDI5LiBPa3QgMTk5OSwgMTA6MzA6MDEpOgp+IyEgb249QmhhbWlyIG90PTk0MTEyMTc1NSBvZz1oYXJkc29mdHdhcmUKSGFiZSBoaWVyIGRpZSBlbmdsaXNjaGUgT3JnaW5hbHZlcnNpb24gdm9uIEMmQzMgVGliZXJpYW4gU3VuLiBXb2xsdGUgbWljaAp3b2hsIGZ1ZXIgNTAsLSBkYXZvbiB0cmVubmVuLiAKQmhhbWlyCi4sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBPaCBNYW5uLi4uLiAoUmFyZGlhbiwgIDIuIE5vdiAxOTk5LCAyMjo0NTo0Myk6Cn4jISBybj1IYWRyYSBydD05NDA0NTg1OTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDAyMzMzNzUKCldpcmQgZGFubiBoYWx0IG51ciBzY2h3aWVyaWcgbWl0IGRlbiBBdXNmdWVocnVuZ3NyZWNodGVuLi4uCgoKKFdhcnVtIGxlcyBpY2ggZWlnZW50bGljaCBSdWJyaWsgQW56ZWlnZW4/IFdhcnVtIGlzdCBkaWUgRXJkZSBydW5kPyBVbmQgd2FydW0KaXN0IGVzIHNjaG9uIHNvIHNwYWV0PykKClJhcmRpYW4sIGhldXQgbmljaHQgZ2FueiBlciBzZWxic3QsIG9kZXIgZG9jaD8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJZGxlLXplaXQgZ2VzdWNodCEgKFJvbmRhLCAxOC4gTm92IDE5OTksIDIxOjUwOjMxKToKSGksCm5laiwgZXMgZ2VodCBqZXR6dCBuaWNodCBkcnVtLCB3aWUgbWFuIFd1cnN0bWFnaWVyIHdpcmQgdW5kIGlkbGVuIGxlcm50IDspClNvbmRlcm46IERlaW4gUmVjaG5lciBpZGxlZCB1bmQgbGFuZ3dlaWx0IHNpY2ggZGF1ZXJuZCEgKFdlbm4gRHUgbmljaHQgZ3JhZApEb29tIHNwaWVsc3QuLi4pClNlbGJzdCB3ZW5uIER1IE1vcmdlbmdyYXVlbiBzcGllbHN0IC0gamF3b2xsLiBEYSBsYW5nd2VpbHQgZXIgc2ljaCBmdXJjaHRiYXIhCgpEYWdlZ2VuIGdpYnRzIGVpbiBIaWxmc21pdHRlbCEgS3VlaGUhIE9laG0uLi4gcHJhZXppc2VyOiBEaXN0cmlidXRlZC5uZXQuCgpXYXMnbiBkYXM/IFdhcnVtIGRhcz8gSEFFSD8KQWxzbyBndXQ6IEJlaSBEaXN0cmlidXRlZC5uZXQgZ2VodCBlcyBkYXJ1bSBuYWNoenV3ZWlzZW4sIHdpZSBzaWNoZXIgLSBiencuCndpZSB1bnNpY2hlciBWZXJzY2hsdWVzc2VsdW5nc2FsZ29yaXRobWVuIHNpbmQgLSB1bmQgZGF6dSBpbnN0YWxsaWVydCBtYW4KZWluZmFjaCBhdWYgc2VpbmVtIGVpZ2VuZW4gUmVjaG5lciBlaW4gd2luemlnZXMgUHJvZ3JhbW0sIHdhcyBpbW1lciwgd2VubiBkZXIKUmVjaG5lciBzaWNoIGxhbmd3ZWlsdCwgbWFsIGViZW4gbmVuIGJpc3NjaGVuIGVudHNjaGx1ZXNzZWxuIGhpbGZ0LiAoT2ssIGRhcwplaWdlbnRsaWNoZSBaaWVsIGlzdCBub2NoIG5lbiBiaXNzY2hlbiBhbmRlcnMgOykgKQoKTXVkLmRlIG1hY2h0IGRhIHNjaG9uIHNlaXQgbGFuZ2VtIG1pdCAtIHVuZCBpc3Qgc2NobWFlY2hsaWNoICghISEpIGluIGRlcgpSYW5nZm9sZ2UgYWJnZXNhY2t0ISBTcHJpY2g6IHdpciBzaW5kIGluIGRlciBUb3BsaXN0IGFiZ2Vzb2ZmZW4uIFdpZSBkaWUKVGl0YW5pYyAtIG51ciBuaWNodCBzbyBzY2htYWx6aWcuCgpXaWUga2FubnN0IF9EVV8gaGVsZmVuPyBTY2hhdSBEaXIgZWluZmFjaCBtYWwgZGllIFNlaXRlCmh0dHA6Ly93d3cuYWVpLXBvdHNkYW0ubXBnLmRlL353ZWhyZW5zL3Byb2plY3RzL3JjNS8KYW4sIGRhIHdpcmQgZXJrbGFlcnQsIHdpZSBEdSBkZW4gTXVkcyB3aWVkZXIgYXVmIGRpZSBGdWVzc2UgaGVsZmVuIGthbm5zdC4KRGVpbiBSZWNobmVyIHdpcmQgZXMgRGlyIGRhbmtlbiA7KQoKUm9uZGEKCk9rLCB3YXIgenUgbGFuZywgZ2VsbD8gRGFubiBmcmFnIGVpbmZhY2ggbWFsIGplbWFuZGVuLCBkZXNzZW4gUmVjaG5lciBhdWNoCkNvZGVzIGtuYWNrdC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IElkbGUtemVpdCBnZXN1Y2h0ISAoTWFoYXRtdSwgMTkuIE5vdiAxOTk5LCAxMTozNToxNCk6Cn4jISBybj1Sb25kYSBydD05NDI5NTgyMzEgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDI5NTgyMzEKOndhcnRldCBpbnp3aXNjaGVuIGF1ZiBlaW5lIHNpbm52b2xsZXJlIEFud2VuZHVuZyBkZXMgdmVydGVpbHRlbiBSZWNobmVucwogYWxzIEF1c3NlcmlyZGlzY2hlIG9kZXIgU2NobHVlc3NlbCB6dSBqYWdlbi4KCk1haGF0bXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRyYWNoZSBzdWNodCBJbnRlcm5ldHp1Z2FuZyAoU2hhcmlhLCAxOS4gTm92IDE5OTksIDE2OjA0OjA1KToKSGFsbG8gIQoKClR5cmlvbiBzdWNodCBkcmluZ2VuZCBuZW4gSW50ZXJuZXR6dWdhbmcgaW4gQmVybGluIChhbHNvIGFtIGJlc3RlbiB1ZWJlciBkaWUKQmVybGluZXIgVW5pIGhhbHQgT3J0c2dlc3ByYWVjaCBvaG5lIHp1c2FldHpsaWNoZSBLb3N0ZW4gOi0pICkgCgpXZXIgc29ldHdhcyBiaWV0ZW4ga2FubiBtb2VnZSBzaWNoIGJpdHRlIGJlaSBtaXIgbWVsZGVuIDopCgpHcnVzcyBTaGFyaWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkd1ZW5zdGlnZXIgV2VicHJvdmlkZXIgKERlZXBibHVlLCAyMC4gTm92IDE5OTksIDEwOjE3OjE4KToKS2FubiBqZW1hbmQgbmVuIGd1ZW5zdGlnZW4gV2VicHJvdmlkZXIgZnVlciB3ZW5pZ2UgKDEtMi9Xb2NoZSkga3VyemUgKDEwIG1pbikKbG9naW5zIG5hY2htaXR0YWdzL2FtIGZydWVoZW4gYWJlbmQgYW5iaWV0ZW4/IEJlZGluZ3VuZzogRXMgZGFyZiBrZWluZQpjYmMtVm9yd2FobCBub2V0aWcgc2VpbiwgZGFzcyBsYWVzc3QgdW5zZXJlIGJsb2VkZSBUZWxlZm9uYW5sYWdlIG5pY2h0IHp1LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKemV1Y2hzIG11c3Mgd2VjaCAoTXlzdGVyaW91cywgMjIuIE5vdiAxOTk5LCAyMTo0OTo1NSk6Cmtvbi1iYW4td2EhCgppY2ggaGFldHRlIGRhIGZvbGdlbmRlIGFuZ2Vib3RlOgoKLSBjZC1yb20tbHcgdm9uIHBsZXh0b3IsIDMyZmFjaCwgc2NzaS1JSTogMTAwZG0KLSBwYWFyIGxhdXRzcHJlY2hlciBtYWduYXQgKDEweSksIDEwMHdhdHQsIHNjaHdhcno6IDEwMGRtCgp1bmQgZGVyL2RpZSBlcnN0ZSBiZWtvbW10IG5vY2ggbiBhdWRpby1yYWNrIGdyYXRpcyBkYXp1IDopCgpiZWkgaW50ZXJlc3NlLCBtYWlsIGFuIG1pY2guLi4KCnNvIGxvbmcKICAgICAgICBtWXN0RVJpT3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRHJhY2hlIHN1Y2h0IEludGVybmV0enVnYW5nIChMdWcsIDI0LiBOb3YgMTk5OSwgMDA6NTk6MDUpOgp+IyEgcm49U2hhcmlhIHJ0PTk0MzAyMzg0NSByZz1hbnplaWdlbgp+IyEgdGlkPTk0MzAyMzg0NQoKVFlSSU9OPwoKT2h3ZWlhaCwgZ2VidCBpaG0ga2VpbiBBY2NvdW50Li4uCgoKQW4gTGlsbHkgZGVua2VuZApMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm51ciB3ZWcgaGllciAoQWxib2luLCAyNS4gTm92IDE5OTksIDE3OjE5OjQ3KToKSGFsbGloYWxsbyBhbGxlcnNlaXRzIQpXZWlobmFjaHRlbiB3aWUgaW1tZXI/IFNjaG5hdXplIHZvbGwgdm9tIE1pbGxlbml1bXNmaWViZXI/IERhcyBtdXNzIG5pY2h0CnNlaW4hCgpBbHNvIG1pciBpc3QgZ2VyYWRlIG5lIHZlcnJ1ZWNrdGUgSWRlZSBnZWtvbW1lbiwga3VyemZyaXN0aWcgV2VpaG5hY2h0ZW4gaW0KQXVzbGFuZCB6dSB2ZXJicmluZ2VuIHVuZCBpY2ggZGFjaHRlIHZpZWxsZWljaHQgZmluZGUgaWNoIGhpZXIgZ2xlaWNoZ2VzaW5udGUuCkFsc28gbWVpbmUgSWRlZSBpc3QgZGFzIG1hbiBzaWNoIGFtIDIzLjEyLiBpbnMgbmFlY2hzYmVzdGUgRmx1Z3pldWcgKHdhcyBlaW5lbgphdWNoIG1vZWdsaWNoc3Qgd2VpdCB1bmQgaW4gZWluIHdhcm1lcyBMYW5kIGJyaW5ndCkgc2V0enQgdW5kIGRhbm4gaW4gZXR3YSBhbQo0LjEuOTkgd2llZGVyIGltIGthbHRlbiBEZXV0c2NobGFuZCBhbnRhbnplbi4KCldlciAgYWxzbyBmdWVyIHVua29udmVudGlvbmVsZSBTYWNoZW4genUgaGFiZW4gaXN0IG1lbGRldCBzaWNoIG1hbCBiZWkgbWlyLgpBdWNoIGRpZSBMZXV0ZSBkaWUgYWVobmxpY2hlcyBzY2hvbiBnZW5hdSBnZXBsYW50IGhhYmVuIHNvbGx0ZW4gdW5kIG5vY2gKamVtYW5kIHN1Y2hlbiBrb2VubmVuIGRpZXMgZ2VybmUgbWl0dGVpbGVuLgoKQWxib2luIHdpbGwgYmxvc3Mgd2VnIGhpZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBudXIgd2VnIGhpZXIgKE1haGF0bXUsIDI2LiBOb3YgMTk5OSwgMTE6MTA6NTkpOgp+IyEgcm49QWxib2luIHJ0PTk0MzU0Njc4NyByZz1hbnplaWdlbgp+IyEgdGlkPTk0MzU0Njc4NwpJc3QgZGFzIG5pY2h0IGdlbmF1c28gaXJyZSB3aWUgZGFzIFBzZXVkb21pbGxlbml1bXNmaWViZXI/IEdlcmFkZSBpbiBhbmRlcmVuCkxhZW5kZXJuIHdpcnN0IER1IGVoZXIgYmVnZWlzdGVydGVuIEV2ZW50LVRvdXJpc3RlbiBiZWdlZ25lbiBhbHMgaW0gdmVyLQp0cmF1dGVuIEtyZWlzIGltIHN0aWxsZW4gS2FlbW1lcmxlaW4uCgpNYWhhdG11CgpQUzogVHJvdHpkZW0gdmllbCBTcGFzcyA6PiBEZXIgYXJtZSBXZWlobmFjaHRzbWFubiB3aXJkIGdhbnogc2Nob2VuCiAgICBzY2h3aXR6ZW4gaW4gc2VpbmVyIE1vbnR1ci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbnVyIHdlZyBoaWVyIChBbGJvaW4sIDI2LiBOb3YgMTk5OSwgMTE6MjU6NTgpOgp+IyEgcm49TWFoYXRtdSBydD05NDM2MTEwNTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDM1NDY3ODcKZGFzIGlzdCBlcyBuaWNodCB1bmJlZGluZ3QgZGFoaW4gZ2VoZW4gbXVzcywgd28gZGllIGV2ZW50LXRvdXJpc3RlbiBzaW5kIHdhcgptaXIga2xhciwgb2J3b2hsIGljaCBhdWNoIG5pY2h0IHVlYmVybCBMdXN0IGhhZXR0ZSBkaWUgVmVycnVlY2t0ZW4genUgc2VoZW4KZGllIGFtIEJlcmcgWmlvbiBhdWYgQXJtYWdlZGRvbiAobmVlIG5pY2h0IGRlciBhdXMgZGVtIE11ZDotKSkgd2FydGVuLiBEaWUKSWRlZSB3YXIgZWluZmFjaCB3YXMgc3BvbnRhbmVzIHVuZCB1bmtvbnZlbnRpb25lbGxlcyB6dSBtYWNoZW4uIERpZQpFdmVudC10b3VyaXN0ZW4gc2luZCBhdWNoIG5pY2h0IHVlYmVyYWxsLiAKCkFsc28gbWFjaHQgbWl0IGJlaTogV0VHLUhJRVItMjAwMCEhIQoKQWxib2luIHNhZ3Q6IHZvbiBudWVzY2h0IGtvbW10IG51ZXNjaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IG51ciB3ZWcgaGllciAoV3VyemVsLCAyNy4gTm92IDE5OTksIDE5OjE3OjU2KToKfiMhIHJuPUFsYm9pbiBydD05NDM2MTE5NTggcmc9YW56ZWlnZW4KfiMhIHRpZD05NDM1NDY3ODcKd2VnaGllciAyMDAwPyByb2NodXMsIHVlYmVybmVobWVuIHNpZSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXMgZ2lidCBudXIgZWluZW4gS29lbG5lciBTdGFtbXRpc2NoIDopIChaYXJuaXlhLCAgMi4gRGV6IDE5OTksIDE2OjE1OjQ4KToKCkljaCBob2ZmZSwgZGFzcyBpaHIgaW1tZXIgbm9jaCBuaWNodCB2ZXJnZXNzZW4gaGFidCwgZGFzcyBlcyBlaW5lbgp1bHRpbWF0aXZlbiB1bmQgZ2VuaWFsZW4gU3RhbW10aXNjaCBnZWJlbiB3aXJkLiBTZWlkIGRhYmVpLCB3ZW5uIGVzIGRhcnVtCmdlaHQsIGRpZSBhYnNvbHV0ZSBNZWlzdGVyaW4genUga3VlcmVuLiBFaW5lIEF1c3dhaGwgYW4gbGllYmxpY2hzdGVuLAprb2VzdGxpY2hzdGVuIHVuZCBiZWVpbmRydWNrZW5zdGVuIFNwZXppYWxpdGFldGVuLCBkaWUgYWxsZSBXZWx0ZW4gYmlzIGpldHp0Cmdlc2VoZW4gaGFiZW4uIFBsYWV0emNoZW4gdW5kIFByYWxpbmVuIGFsbGVyIEFydCB3ZXJkZW4gZ2Vib3Rlbiwgd2VubiBlcwpoZWlzc3QsIGVpbmVuIHNjaG9lbmVuIGt1bGluYXJpc2NoZW4gQWJlbmQgaW4gZGVyIG5ldHRlc3RlbiBTdGFkdCBkZXIgV2VsdAp6dSB2ZXJicmluZ2VuLiBEZXNoYWxiIHZlcnBhc3N0IG5pY2h0IGRlbiB3aWNodGlnc3RlbiwgZWluemlnIHdhaHJlbiB1bmQKbGV0enRlbiBTdGFtbXRpc2NoIGluIGRpZXNlbSBKYWhydGF1c2VuZCwgZGVyCgogICAgICAgICAgICAgICAgICAgICBUcmFkaXRpb25zc3RhbW10aXNjaCB6dSBLb2VsbgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtIFNhbXN0YWcsIGRlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuMDEuMjAwMAoKaW4gZWluZXIgbm9jaCBnZW5hdWVyIHp1IGJlc3RpbW1lbmRlbiBPZXJ0bGljaGtlaXQgaW4gS29lbG4uLiBkYXMgaGFlbmd0CmF1Y2ggdm9tIEFuZHJhbmcgYWIsIGFiZXIgaWNoIGRlbmtlLCBkYXNzIHZpZWxlIGtvbW1lbiB3ZXJkZW4sIGRlbm4gd2FubiBoYXQKbWFuIHNjaG9uIGRpZSBHZWxlZ2VuaGVpdCwgZWluZW4gc29sY2hlbiBXZXR0c3RyZWl0IG1pdHp1bGViZW4sIGVpbgpmZWlsc2NoZW4gdW0gZGllIEd1bnN0IGRlciBHYXVtZW4uIEFudHJldGVuIG1pdCBpaHJlbiBTdWVzc3dhcmVuLCBQcmFsaW5lbgp1bmQgUGxhZXR6Y2hlbiB3ZXJkZW46CgpkaWUga2xlaW5lIHN1ZXNzZSBUYW5qYSwga2VpbmUgTXVkZGVyaW4sIEZyZXVuZGluIHZvbiBZYW50cm8sIGV1cmVyIGdlbGllYnRlbgpOZXJ2ZW5zYWVnZSBhdXMgYWx0ZW4gWmVpdGVuLCBkZW0gV2VyYmV0cm9tbWxlci4gU2llIGlzdCBhdXNnZWJpbGRldGUKS29uZGl0b3JpbiB1bmQgd2lyZCBkZXNoYWxiIHZpZWxsZWljaHQgZ2VlaWduZXQgc2VpbiwgZ2VnZW4gc2llIHp1CmJlc3RlaGVuLCBkaWUgZWlubWFsaWdlLCBkaWUgdW5nbGF1YmxpY2hlLCBkaWUgYmV6YXViZXJuZGUsIGRpZQplaXNpZ3N1ZXNzZXN0ZSBhbGxlciBGZWVuOgoKU2lsdmFuYSwgZGllIEdsZXRzY2hlcmZlZSwgWmF1YmVyaW4sIE1hZ2llcmluLCBGcmF1IHZvbiBZYW50cm8sIGV1cmVyCmdlbGllYnRlbiBOZXJ2ZW5zYWVnZSBhdXMgYWx0ZW4gWmVpdGVuLCBkZW0gV2VyYmV0cm9tbWxlci4KCldpcmQgSGFuZHdlcmsgZXMgd2lya2xpY2ggc2NoYWZmZW4ga29lbm5lbiwgZ2VnZW4gTWFnaWUgenUgYmVzdGVoZW4/IFdpcmQKZGllIEhhbmRmZXJ0aWdrZWl0IGRlcyBzdHJlYnNhbSBlcmxlcm50ZW4gYmVzc2VyIHNlaW4gYWxzIGRpZSBHYWJlIGRlcgpHb2V0dGVyPyBLb21tdCB1bmQgc2VpZCBkYWJlaSwgdW0gc2VsYnN0IHp1IGVudHNjaGVpZGVuICEKCk1hcmMKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VyYWV1c2NoZS1DRCBnZXN1Y2h0IChEYXJpYSwgIDcuIERleiAxOTk5LCAwMToyNToxNik6CkhpLAptZWluIFZhdGVyIHNjaG5laWRldCBnZXJuZSBzZWluZSBGaWxtZSwgZGllIGVyIG1pdCBkZXIgVmlkZW9rYW1lcmEgZ2VkcmVodApoYXQsIGFtIENvbXBpIG5hY2h1bmQgYmVhcmJlaXRldCBzaWUgYXVjaCAoVm9yc3Bhbm4sIEhpbnRlcmdydW5kbXVzaWsgZXRjLikKSWNoIHN1Y2hlIGZ1ZXIgaWhuIG51biB6dSBXZWlobmFjaHRlbiBuZSBHZXJhZXVzY2hlLUNkLiBOZWluLCBrZWluCldhbGRlc3JhdXNjaGVuLCBzb25kZXJuIFR1ZXJlbmtuYWxsZW4sIEVsZWZhbnRlbnRyb2V0ZW4sIERvbm5lcmdyb2xsZW4gZXRjLiBFcgpoYXQgd29obCBzY2hvbiBlaW4gc29nZW5hbm50ZXMgIk1vbnN0ZXJQYWNrIiwgYWJlciBkYXMgaXN0IG5pY2h0IHNvIHRvbGwuCgpOZWluLCBpY2ggd2lsbHMgbmljaHQgYXVzbSBOZXR6IHNhdWdlbiB1bmQgc2VsYmVyIGJyZW5uZW4uCgpJY2ggd3VlcmQgbWljaCBmcmV1ZW4sIHdlbm4gbWlyIGplbWFuZCBzYWdlbiBrb2VubnRlLCB3YXMgZGEgZ3V0IGlzdCB1bmQgd28KaWNoIHNvd2FzIGJla29tbWUuCgpEYW5rZXNjaG9lbiEgKmtudWRkZWxzKgpEYXJpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVXNlciBnZXN1Y2h0IChNZXNpcmlpLCAgNy4gRGV6IDE5OTksIDAzOjA1OjAyKToKTGllYmUgTGV1dGUsCmRhIGljaCBzb3dhcyB3aWUgbmUgTWFpbGxpbmdsaXN0ZSBhdWZtYWNoZW4gd2lsbCBmdWVyIGRpZSBMZXV0ZSwgZGllIG1laW5lbiAKVEYtS3JhbXMgbnV0emVuIHVuZCBkZW4gTWFwcGVyLCBtb2VnZW4gc2ljaCBkb2NoIGFsbGUgZGllIGVzIGJlaSBzaWNoIGxhdWZlbgpoYWJlIG1hbCBiZWkgbWlyIG1lbGRlbi4KTWVzaSwgVEYtbGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCAoR3JpbW1ib3JuLCAgOC4gRGV6IDE5OTksIDIxOjAzOjA3KToKfiMhIG9uPUthZmYgb3Q9OTQ0NjYwNTgxIG9nPWFsbGdlbWVpbmVzClNvIGpldHp0IGRhcmYgaWNoIG5vY2ggZnVlciBEcmVhbXkgdW5kIENvbmNoaSBIb2NoemVpdHNhbnplaWdlbiBhdWZnZWJlbiwgd2VpbAplcnN0ZXJlci4uLiBuYWphLCBhbHNvIGZvbGdlbmRlIEZhY3RzOgpIZXV0ZQoxODAwCkthcGVsbGVuc2FhbCAobmljaHQgQ2hhb3NnaWxkZSAqYnJ1bW1lbCopCnphaGxyZWljaCBlcnNjaGVpbmVuCkthdXRzY2h1a2hhZW1tZXIgenUgaGF1c2UgbGFzc2VuIChoZWhlKQpkYXMgZ2lsdCBhdWNoIGZ1ZXIgRHJvbGxpLi4uCgpLYWZmIChpbSBBdWZ0cmFnIHZvbiBEcmVhbWVyIHVuZCBDb25jaGkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VyYWV1c2NoZS1DRCBnZXN1Y2h0IChDeW1vbmssICA4LiBEZXogMTk5OSwgMjI6MjE6MjApOgp+IyEgcm49RGFyaWEgcnQ9OTQ0NTI2MzE2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQ0NTI2MzE2CmhtbW0uLi4KamVkZXIgZ3V0ZSBlbGVrdHJvIG11c2lrYWxpZW5mYWNoaGFuZGVsIHNvbGx0ZSBnZW51ZyBzYW1wbGUKY2RzIGltIHNvcnRpbWVudCBoYWJlbiwgaW4gZGllIGR1IHJlaW5ob2VyZW4ga2FubnN0LgoKY3kKCnBzLiBuZWluLCBpY2ggbWVpbmUga2VpbiBoYXVzaGFsdHN3YXJlbmdlc2NoYWVmdCwgYXVjaCB3ZW5uIG1hbgptaXQgZGVtIHpldWdzIGRvcnQgYXVjaCBwcmltYSBtdWNrZSBtYWNoZW4ga2FubiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHZXJhZXVzY2hlLUNEIGdlc3VjaHQgKERhcmlhLCAxMi4gRGV6IDE5OTksIDE2OjE0OjM2KToKfiMhIHJuPUN5bW9uayBydD05NDQ2ODgwODAgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDQ1MjYzMTYKSGksCmluIFBhZGVyYm9ybiBmZWhsdCBsZWlkZXIgZGVyIGd1dCBzb3J0aWVydGUgQ0QtRmFjaGhhbmRlbC4KCkljaCBoYWIgamV0enQgaW4gRE8gbmUgQ0QgYmVpIFNhdHVybiBnZWZ1bmRlbiAuLi4gZGFzIGlzdCBkaWUgQ0QtQWJ0ZWlsdW5nCmVpbmVzIFppbW1lcm1hbm5zLi4uCkRhbmxlIGFuIGFsbGUgZGllIG1pciBoZWxmZW4gd29sbHRlbiEhIQpEYXJpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTG9ncyB2b24gU3BpZWxlcm4gKEhhdGUsIDEzLiBEZXogMTk5OSwgMTA6NDI6MjApOgpIaSwKCkVpbmUgU3BpZWxlcmluIHN1Y2h0IGZ1ZXIgd2lzc2Vuc2NoYWZ0bGljaGUgQXVmZ2FiZW4gTWl0c2Nobml0dGUgdm9uClNwaWVsZXJuIG1pdCBhbGxlbiBVbnRlcmhhbHR1bmdlbiAoaWhyIGtvZW5udGUgamEgemVuc2llcmVuLCB3ZW5ucyB6dQpwZWlubGljaCB3aXJkKSB1bmQgQWt0aW9uZW4uIFdlciBhbHNvIGhlbGZlbiBtb2VjaHRlLCBkZXIgbG9nZ3QgZWluZmFjaAptYWwgbWl0LCB3YXMgZXIvc2llIHNvIGhpZXIgYWxsZXMgdHV0IHVuZCBzY2hpY2t0IGRhbm4gZGFzIGxvZyBhbjoKCnNhcGhpckBtZy5tdWQuZGUKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkaXBsb21hcmJlaXQgKFNhcGhpciwgMTMuIERleiAxOTk5LCAxMTozMzo0MSk6CndpZSBIYXRlIHNjaG9uIGFuZ2VrbmRpZ3QgaGF0IGR1Y2hlIGljaCBsb2dzLCB6d2Vja3MgYW5hbHlzZW5iYXNpcywgbmFtZW4Kd2VyZGVtIGdlbmRlcnQsIGVzIGdlaHQgaGFsdCBpcmdlbmR3aWUgZGFydW0sIG9iIHF1ZXN0cyB0aGVhdHJhbCBzaW5kLCBhbHNvIG9iCmRhIHNvIG5lIGFjdGlvbiBzdGF0dGZpbmRldCwgd2llIHNpZSBhdWNoIGltIGRyYW1hIG9kZXIgaW0gZmlsbQpwYXNzaWVyZW4uLi5kYW5rZSwgc2FwaGlyLgoKdW5kIGJlcmhhdXB0IGlzdCBlcyBpY2h0IHNvLCBkYXNzIG11ZGRlciBtYW5jaGFtIGxsaWViZXIgc3BpZWxlbiBhbHMgIGxlYmVuPwpiencgaW0gbXVkIHN1cGkgbmV0dCBzaW5kLCBhYmVyIGluIHJsIHByb2JzIG1pdCBrb250YWt0ZW4gaGFiZW4/IHNvIHdpZQpzY2hhdXNwaWVsZXIgYXVjaCBhdWYgZGVyIGJobmUgYWxsZXMga25uZW4gYWJlciBpbSBsZWJlbiBuaXg/LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExvZ3Mgdm9uIFNwaWVsZXJuIChQaWxncmltLCAxMy4gRGV6IDE5OTksIDE1OjIwOjExKToKfiMhIHJuPUhhdGUgcnQ9OTQ1MDc4MTQwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQ1MDc4MTQwCklzdCBkaWVzZSBGb3JtIGRlciBEYXRlbmVyaGVidW5nIG5pY2h0ICh1bmJlcmVjaGVuYmFyKSBzZWxla3Rpdj8KClAuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IExvZ3Mgdm9uIFNwaWVsZXJuIChCb2luZywgMTMuIERleiAxOTk5LCAxNTozMToxMSk6Cn4jISBybj1QaWxncmltIHJ0PTk0NTA5NDgxMSByZz1hbnplaWdlbgp+IyEgdGlkPTk0NTA3ODE0MApOYWphLCBEdSBtdXNzdCBudXIgZGllIGxldHp0ZW4gMyB6ZWlsZW4gdm9uIFNhcGhpcnMgQXJ0aWtlbCBsZXNlbiwgdW0KenUgc2VoZW4sIGRhc3MgZXMgdm9lbGxpZyB1bmVyaGVibGljaCBpc3Qgd2VyIGRhIG1pdG1hY2h0LgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBMb2dzIHZvbiBTcGllbGVybiAoR3JpbW1ib3JuLCAxMy4gRGV6IDE5OTksIDE5OjUyOjA1KToKfiMhIHJuPUJvaW5nIHJ0PTk0NTA5NTQ3MSByZz1hbnplaWdlbgp+IyEgdGlkPTk0NTA3ODE0MApFYmVuLgpJY2gga2FubiB2aWVsbGVpY2h0IGltIExlYmVuIG5peCwgYWJlciBpY2gga2FubiBpbW1lcmhpbiB2ZXJudWVuZnRpZyB0aXBwZW4KdW5kIFVtbGF1dGUgdmVybWVpZGVuLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LiBTY2hvbiBnYXIgbmljaHQgInN1cGkgbmV0dCIsIHdlZGVyIHJsIG5vY2ggdmwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZGlwbG9tYXJiZWl0IChMYXJpc3NhLCAxNC4gRGV6IDE5OTksIDIxOjUzOjQ0KToKfiMhIHJuPVNhcGhpciBydD05NDUwODEyMjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDUwODEyMjEKSG0sCgphbHNvIGljaCBrZW5uIHdlbGNoZSwgZGllIGluIFJMIGFuZ2VibGljaCBnYW56IG5ldHQgc2luZC4uLgoKTGFyaSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBkaXBsb21hcmJlaXQgKFBhbXBlcnMsIDE0LiBEZXogMTk5OSwgMjE6NTU6MTQpOgp+IyEgcm49TGFyaXNzYSBydD05NDUyMDQ4MjQgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDUwODEyMjEKSWNoIGtlbm4gYXVjaCBlaW5lLiBEaWUgaGF0IEtvcGZzY2htZXJ6dGFibGV0dGVuLiBVbmQgR2lidCBzb2dhciB3ZWxjaGUgYW4KQmVkdWVyZnRpZ2UgYWIuCgpQYW1wZXJzLkltbWVyIG5vY2ggYmVnZWlzdGVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvZWxsZSAoWmFybml5YSwgMjEuIERleiAxOTk5LCAxNzo1Mzo0MSk6CkhhbGxpaGFsbG9oYWxsb2VsZSwgCgpoaWVyIG5vY2htYWwgZGVyIEhpbndlaXMgYXVmIGRlbiB3aXJrbGljaCBsZXR6dGVuICAgICAgICAgCgpLb2VsbmVyIFRyYWRpdGlvbnNzdGFtbXRpc2NoCgphbSBTQU1TVEFHLCBkZXIgMTUuMDEuMjAwMAoKYWIgMTkgVWhyIGltIEhhcnAsIHdvIGVyIGF1Y2ggbGV0enRlcyBKYWhyIHdhci4gCgpXZWdiZXNjaHJlaWJ1bmdlbiBnaWJ0IHBlciBNYWlsYW5mcmFnZSBiZWkgbWlyIHVudGVyLi4uCgpNYXJjCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS29lbGxlIChQcmEsIDIyLiBEZXogMTk5OSwgMTY6Mzc6NDcpOgp+IyEgcm49WmFybml5YSBydD05NDU3OTUyMjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDU3OTUyMjEKRWNodCBkZXIgbGV0enRlPyBJY2ggZGFjaHRlLCBudXIgZGVyIGxldHp0ZSBkZXMgSmFocnRhdXNlbmRzLi4uCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtvZWxsZSAoTW9udGFudXMsIDIyLiBEZXogMTk5OSwgMjI6NDE6MDIpOgp+IyEgcm49UHJhIHJ0PTk0NTg3NzA2NyByZz1hbnplaWdlbgp+IyEgdGlkPTk0NTc5NTIyMQoKTm9lLCBlY2h0IGRlciBsZXR6dGUuCkFscyBIb2VoZXB1bmt0IG1hY2h0IFlhbnRybyBSTC1TZWxic3Rsb2VzY2h1bmcgbXRpIGVpbmVtIFBmZWZlcm1pbnpwbGFldHRjaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS29lbGxlIChUZWRkeSwgMjMuIERleiAxOTk5LCAxODoyODoxMyk6Cn4jISBybj1Nb250YW51cyBydD05NDU4OTg4NjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDU3OTUyMjEKQnVtbT8hPwoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEtvZWxsZSAoWmFybml5YSwgMjguIERleiAxOTk5LCAwODoxMjo0Nyk6Cn4jISBybj1UZWRkeSBydD05NDU5NzAwOTMgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDU3OTUyMjEKRWluZ2VsYWRlbiBzaW5kIGVoIGF1c2RydWVja2xpY2ggbnVyIGRpZWplbmlnZW4sIGRpZSBtaXIgbmljaHQgYWxsIGRpZQpzdXBlcmd1dGVuIFByYWxpbmVuIHZvbiBTaWx2YW5hIHVuZCBUYW5qYSB3ZWdmcmVzc2VuLi4uLiBTY2hhZGUsIFRlZGR5Li4uICkKCk1hcmMsIGtvc3RldCBkaWUgRGluZ2VyIHNjaG9uIHNlaXQgV29jaGVuIHZvciA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSWNoIGJpbiB3aWVkZXIgZGEgKEJlbmRlaWdpZCwgIDEuIEphbiAyMDAwLCAyMTowMToyOCk6Cn4jISBvbj1XYWIgb3Q9OTQ2NzQ1NTI4IG9nPWFsbGdlbWVpbmVzClNvcnJ5IEZyZXVuZGUsIGFiZXIgaWNoIGtvbm50ZSBsYW5nZSBaZWl0IG5pY2h0IHJlaW4sIHdlaWwgbWVpbiBGcmV1bmQgaW0gTUcKU2NoZWllIGdlYmF1dCBoYXQuIEpldHp0IGlzdCBtaXIgR2xja2xpY2hlcndlaXNlIHdpZWRlciBtZWluIFBhc3N3b3J0CmVpbmdlZmFsbGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTG9ja2VuIChXYWIsICAyLiBKYW4gMjAwMCwgMjE6MDM6MDEpOgpXaWUgbG9ndCBtYW4gZWlnZW50bGljaD8/PyBJY2ggaGFiZSBIaWVyIHNvIGV0d2FzIGluIGRlciBaZWl0dW5nIGdlbGVzZW4gdW5kCmludGVyZXNzaWVyZSBtaWNoIGF1Y2ggZnIgc28gZXR3YXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMb2NrZW4gKE1lbmFjZSwgIDQuIEphbiAyMDAwLCAxODoyODo0MSk6Cn4jISBybj1XYWIgcnQ9OTQ2ODQzMzgxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQ2ODQzMzgxCkxvZ2dlbiBramFuc3QgRHUgbnVyIG1pdCBkZWluZW0gQ2xpZW50LCBhbHNvIHRlbG5ldCwgek11ZCwgdGYgb2RlciB3YXMgZHUgc28KdmVyd2VuZGVzdC4KQmVpIHRmIGxhdXRldCBkZXIgQmVmZWhsOiAiL2xvZyBbRGF0ZWluYW1lXQpCZWkgd2luZG93cy10ZWxuZXQgZmluZGVzdCBkdSBkYXMgaW0gTWVudWUgdW5kIGJlaSB6TXVkIGhhYiBpY2gga2VpbmUgQWhudW5nLAphYmVyIHZlcm11dGxpY2ggZ2liYmV0IGRhIGF1Y2ggbmVuIE1lbnVlcHVua3QgZnVlci4KCk1lbmFjZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBMb2NrZW4gKFNoYW5uYXJhLCAgNC4gSmFuIDIwMDAsIDE5OjA2OjIwKToKfiMhIHJuPU1lbmFjZSBydD05NDcwMDY5MjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDY4NDMzODEKT2RlciBlYmVuIGluIGVpbmVuIHVuaXggbWl0ICJ0ZWxuZXQgaG9zdCBwb3J0IC1uIHRyYWNlZmlsZSIuCgpTaGFubmFyYSwga3VyeiB1bmQgYnVlbmRpZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJvY2sgeW91ciBCdXR0ISAoQW5ndXMsIDEwLiBKYW4gMjAwMCwgMDA6MzY6NTcpOgpNb2luIQpXZXIgYW0gMTUuMDEuIG5pY2h0IHp1IE1hcmMncyBTdXBlcnN0YW1tdGlzY2ggZ2VodAp1bmQgc2ljaCBvYmVuZHJlaW4gbm9jaCBpbiBIYW1idXJnIGJlZmluZGV0IHVuZAphdXNzZXJkZW0genVzYWV0emxpY2ggbm9jaCBhdWYKc29saWRlIFJvY2ttdXNpayBkZXIgZXR3YXMgaGFlcnRlcm4gR2FuZ2FydCBzdGVodCwKZGVyIHNvbGx0ZSBtYWwgaW4gZGVyIE1hcmt0aGFsbGUgKGdlbmF1ZXIgaW0gTWFyeCkKYmVpbSAnSmVzdXMgTWxsZXIgTXVzaWMtQ2x1Yicgdm9yYmVpc2NoYXVlbiEKTmUgTWFzc2UgU3Bhc3MgaXMgZ2FyYW50aWVydCB1bmQgQW5ndXMgcXVhZWx0CnNlaW5lIEtsYW1wZmUgd2llIGVpbiB3aWxkZXIgOy0pCkFsc286IEtvbW1lbiB1bmQgU3Bhc3MgaGFiZW4gdW5kIGFicm9ja2VuIQoKLSBBbmd1cy4KClAuUy46IEljaCBzaW5nZSBhdWNoIG5pY2h0IHdpcmtsaWNoLi4uIGFlaGguLi4gOy0pCiAgICAgIC4uLiBudXIgZWluZW4gU29uZyAtIHVuZCBpY2ggaGFiIGdldWVidCEgOy0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJvY2sgeW91ciBCdXR0ISAoWmFybml5YSwgMTEuIEphbiAyMDAwLCAxNDo0MDowNCk6Cn4jISBybj1Bbmd1cyBydD05NDc0NjEwMTcgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDc0NjEwMTcKCmljaCBrZW5uZSBlaW5lIERlbW9DRCB2b24gQW5ndXMnIEJhbmQuLi4uIGFsc28gaWNoIGthbm4gZGllIE1pdGJyaW5nZW4sIG9id29obApkZXIgS29lbG5lciBTdGFtbXRpc2NoIGVoIGJlc3NlciBzZWluIHdpcmQsIHdlbm4gaWNoIGRpZSBDRCB6dSBIYXVzZSBsYXNzZSA7KQoKKmxhZXN0ZXJsYWVzdGVyKgoKTWFyYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSb2NrIHlvdXIgQnV0dCEgKFN1YmxpbWUsIDExLiBKYW4gMjAwMCwgMTk6NDI6MjYpOgp+IyEgcm49WmFybml5YSBydD05NDc1OTgwMDQgcmc9YW56ZWlnZW4KfiMhIHRpZD05NDc0NjEwMTcKVmllbGxlaWNodCBoYWIgaWNoIGphIHdhcyB1ZWJlcmxlc2VuLCBhYmVyIHdpZSBoZWlzc3QgZGllCkJhbmQgZGVubiB1ZWJlcmhhdXB0ID8gRG9jaCBuaWNodCBldHdhIEFuZ3VzIEJhbmQsIG9kZXIgPwoKc3VibCxqZXR6dCBkb2NoIHdhcyBpbiBkaWUgbXBhIGdlc2NocmllYmVuICpobW0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgbGFuZ2Ugd2FlaHJ0Li4gKFplcGh5ciwgMTEuIEphbiAyMDAwLCAyMzozODoxMSk6CgogICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgSCBPIEMgSCBaIEUgSSBUICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgIHwgICAgICAgICAgV2lyIGhhYmVuIHVucyBsYW5nZSBiZXNjaG51cHBlcnQgdW5kIGdlcHJ1ZWZ0Li4uICAgICAgICAgfAogICAgICArICAgICAgICAgICAgICAgLi4udW5kIHVuc2VyZSBNZWludW5nIG5pY2h0IGdlYWVuZGVydCEgICAgICAgICAgICAgICsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICsgICAgICAgICAgICAgICAgIEpldHp0IHNvbGwgZXMgd2llZGVyIHNvd2VpdCBzZWluISAgICAgICAgICAgICAgICAgKwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICBaRVBIWVIgICYgICBBTkFUT0wgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICsgICAgd2VyZGVuIGFtIERvbm5lcnN0YWcsIGRlbSAxMy4gSmFudWFyIDIwMDAsIHVtIDIyLjAwIFVociBzLnQuICAgKwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICBoIGUgaSByIGEgdCBlIG4gISAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICArICAgICAgICAgICAgICAgICAgIFVuZCBEVSBiaXN0IGRhenUgZWluZ2VsYWRlbiEgICAgICAgICAgICAgICAgICAgICsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgbGFuZ2Ugd2FlaHJ0Li4gKEdyaW1tYm9ybiwgMTMuIEphbiAyMDAwLCAwMTowMzowNSk6Cn4jISBybj1aZXBoeXIgcnQ9OTQ3NjMwMjkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTQ3NjMwMjkxCkFyZ2gsIG5pY2h0IHNjaG9uIHdpZWRlci4uLgpCZXR0ZXIgbHVjayB0aGlzIHRpbWUuIDstKQoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTUVMgZnVlciBbd10gKEFuYXRvbCwgIDEuIEZlYiAyMDAwLCAxNjo0Mzo0OSk6CgpEaWUgRXJ6bWFnaWVyIGRlcyBNdWRzIE1vcmdlbmdyYXVlbiBoYWJlbiB2aWVyc3RpbW1pZyBiZXNjaGxvc3NlbiwgCmRhc3MgZWluZSBuZXVlIFNwaWVsZXJzdHVmZSBlaW5nZWZ1ZWhydCB3ZXJkZW4gc29sbC4gU28gd2llIGVzIGRhcyAKW1ddICgiV2Vpc2VyIikgZ2lidCwgZnVlciBtZWhyIG9kZXIgd2VuaWdlciBpbiBSdWhlc3RhbmQgZ2VnYW5nZW5lIAp3dWVyZGlnZSBFcnptYWdpZXIsICBzb2xsIGVzIGZvcnRhbiBhdWNoIGRhcyBbd10gZnVlciBpbiBSdWhlc3RhbmQgCmdlZ2FuZ2VuZSAoZWhyKXd1ZXJkaWdlIEFsdHNlaGVyIGdlYmVuLiBRdWFsaWZpemllcnQgZnVlciBkaWUgbmV1ZSAKU3BpZWxlcnN0dWZlIChpbnRlcm4gV2l6bGV2ZWwgMikgIHNpbmQgYWxsZSBTZWhlciB1bmQgIFNlaGVyaW5uZW4sICAKZGllIG5hY2ggZGVtIExvZXN1bmdzc2NobHVlc3NlbCBkZXMgIG5hY2hmb2xnZW5lbiBGcmFnZWJvZ2VucyBlaW5lICAKbWl0dGxlcmUgU1FTIHZvbiBtaW5kZXN0ZW5zIDg1JSB6dWdld2llc2VuIGJla29tbWVuIFsxXS4KCgoKUXVhbGlmaWthdGlvbnNmcmFnZWJvZ2VuIEkKPT09PT09PT09PT09PT09PT09PT09PT09PT0KCkdlc2NobGVjaHQgICAgICAgICAgICAgICAgICAgICAgCiAgIFsgXSAgIG1hZW5ubGljaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKICAgWyBdICAgd2VpYmxpY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICBbIF0gICB3ZWlzcyBuaWNodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCgpXaWVsYW5nZSBleGlzdGllcnN0IER1IHNjaG9uPwogICBbIF0gICBTZWl0IG1pbmRlc3RlbnMgZGVtIDEwLiBOb3YgMTk5NSAgICAgICAgICAgICAgICAgICAgIDEwCiAgIFsgXSAgIFNlaXQgMTk5NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKICAgWyBdICAgU2VpdCAxOTk3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICBbIF0gICBTZWl0IDE5OTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEwCiAgIFsgXSAgIEljaCBiaW4gc28gYWx0IHdpZSBHcm9zcy1BYFR1aW4hICAgICAgICAgICAgICAgICAgLTgyLjQKICAgWyBdICAgSWNoIGJpbiBpbSBkcml0dGVuIEphaHJ0YXVzZW5kIGdlYm9yZW4hICAgICAgICAgICAgLTEzNAoKQmlzdCBEdSBTZWhlcj8KICAgWyBdICAgTmVlZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICBbIF0gICBKYSwgc2Nob24gbGFuZ2UhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwCiAgIFsgXSAgIEphLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKICAgWyBdICAgSGUsIGljaCBiaW4gTWFnaWVyISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEwMAoKV2VsY2hlbiBTcGllbGVybGV2ZWwgaGFzdCBEdT8KICAgWyBdICAgPCAyNSAqc2NobmllZiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICBbIF0gICAyNSAtIDQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CiAgIFsgXSAgIDQxIC0gNjAgICAgIHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAKICAgWyBdICAgPiA2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0yLjc3NwoKV2FzIHZlcmJpbmRlc3QgRHUgbWl0IGRlbSBCZWdyaWZmICJEYW5jZXIiPwogICBbIF0gICBTYW5kdGlnZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgWyBdICAgUHlyYW1pZGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwCiAgIFsgXSAgIFdldHRwYWxhc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNQoKS2VubnN0IER1IFdvZWxrY2hlbj8KICAgWyBdICAgSXN0IGRhcyBlaW5lIG5ldWUgQW5mYWVuZ2VyaW4/ICAgICAgICAgICAgICAgICAgICAgICAwCiAgIFsgXSAgIFNpbmQgZGFzIGRpZSBrb21pc2NoZW4gV2Fzc2VybWFzc2VuIGltIEhpbW1lbD8gICAgICAgMAogICBbIF0gICBXb2Vsa2NoZW4gaXN0IHRvbGwhIEljaCB3aWxsIGF1Y2ggc28gc2VpbiEgICAgICAgICAgIDUKCldhcyBpc3QgZGVyIEdyb3NzbXVtZXJpY2g/CiAgIFsgXSAgIERlciBlbmdzdGUgQmVyYXRlciBlaW5lcyBHcm9zc2hlcnpvZ3MgICAgICAgICAgICAgICAtMgogICBbIF0gICBFaW4gd2VydGxvc2VyIHVuZCBhYnNvbHV0IHVuYnJhdWNoYmFyZXIgU3RlaW4hICAgICAgIDAKICAgWyBdICAgU2FnIGljaCBuaWNodCwgZmluZCdzIHNlbGJzdCByYXVzISA6LVAgICAgICAgICAgICAgICA1CgpXaWV2aWVsZSBaVHMgZ2lidCBlcyBhdWYgQm9zY2hhbnRlPwogICBbIF0gICBLZWluZW4gbWVociAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKICAgWyBdICAgWndpc2NoZW4gMSB1bmQgMTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgIFsgXSAgIEJvc2NoYW50ZT8gTXVzcyBpY2ggbm9jaCBoaW4sIGdsZWljaCBtb3JnZW4hICAgICAgICAtNAoKV2FzIHNhZ2VuIERpciBkaWUgQnVjaHN0YWJlbiBGR1c/CiAgIFsgXSAgIEZlcmVpbmlndW5nIGdyb3NzZXIgV2VpY2hlaWVyICAgICAgICAgICAgICAgICAgICAgICAtMgogICBbIF0gICBGcm9udCBHZWdlbiBXb2xwZXJ0aW5nZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKICAgWyBdICAgRmFtaWxpZSBHZXdpc3NlbiBXb2hsc3RhbmQgZS5WLiAgICAgICAgICAgICAgICAgICAgICAwCgpXYXMgaXN0IGdlZmFlaHJsaWNoZXI/IEVpbiBncm9zc2VyIHNjaHdhcnplciBTdGVpbmJlaXNzZXIgCm9kZXIgZWluIGFldHplbmRlciBTY2hlbWVuPwogICBbIF0gICBEZXIgU2NoZW1lbiBuYXR1ZXJsaWNoLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgWyBdICAgU2luZCBiZWlkZSBnbGVpY2ggaGFybWxvcyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgIFsgXSAgIEljaCBrZW5uZSBudXIgZGVuIFN0ZWluYmVpc3NlciA6KCAqc2NobmllZiogICAgICAgICAgNgogICBbIF0gICBNb21lbnQsIGljaCBjbG9uZSBzaWUgbWFsIHVuZCBsYXNzIHNpZSBrYWVtcGZlbi4uLiAtOTkKClZvbiB3ZW0gc3RhbW10IGRhcyBaaXRhdCAiSUNIIEhBQkUgQUxMRVMgVU5URVIgS09OVFJPTExFLiI/CiAgIFsgXSAgIFRvZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICBbIF0gICBDYXR3ZWF6bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKICAgWyBdICAgUGFkcmVpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjAwMDAwMDAwMDAxCiAgICAgIApXZW4gYXNzb3ppaWVyc3QgRHUgYW0gZWhlc3RlbiBtaXQgIlRvcHNlaGVyIj8KICAgWyBdICAgV2FyIGRhIG5pY2h0IG1hbCBXb2Vsa2NoZW4uLi4/ICAgICAgICAgICAgICAgICAgICAgICA1CiAgIFsgXSAgIFJpbmdvciB1bmQgU3RpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICBbIF0gICBQYXRyeW4gdW5kIC4uLiB1bmQgLi4uIGhtLiAgICAgICAgICAgICAgICAgICAgICAgICAtMTcKICAgWyBdICAgUnluZSB1bmQgVG9ldGVyISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CiAgICAgIApXZXIgb2RlciB3YXMgaXN0IE9ldHRpPwogICBbIF0gICBEYXMgaXN0IFJhbnRhbnBsYW5zIFJMLU5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgWyBdICAgRWluIE9zdGZyaWVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgIFsgXSAgIEVpbmUgTGViZW5zZWluc3RlbGx1bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNQogICBbIF0gICBFaW4gYWJzb2x1dCB1bmZhZWhpZ2VyIHVuZCB1bm51ZXR6ZXIgTWFnaWVyICAgICAgICAgLTEKCldpZSBoZWlzc3QgZGVyIGVyc3RlIE11ZHJlY2huZXIgZGVzIE1vcmdlbkdyYXVlbnM/CiAgIFsgXSAgIFNhbnRhbmEsIGVyIGxlYmUgaG9jaCEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMwogICBbIF0gICBBZWguLi4gUGFzY2FsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcKICAgWyBdICAgUmF1bXNjaGlmZiBFbnRlcnByaXNlPyBPZGVyIHdhciBlcyBTcG9jaz8gICAgICAgICAgICA3CiAgIFsgXSAgIE1HIG5hdHVlcmxpY2ghICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAoKRGVyIGVyc3RlIEVyem1hZ2llciwgZGVyIGdlZ2VuIHNlaW5lbiBXaWxsZW4gZHVyY2ggCkJlc2NobHVzcyBzZWluZXIgS29sbGVnZW4gYWJnZXN0dWZ0IHd1cmRlLCB3YXI6CiAgIFsgXSAgIFd1cnplbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICBbIF0gICBGcmV1bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMTAKICAgWyBdICAgWWFudHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CgpXaWV2aWVsZSBBdXRvbG9hZC1HZWdlbnN0YWVuZGUgaGFzdCBEdSBiZWkgRGlyPwogICBbIF0gICBadSB2aWVsZSwgZnVlcmNodGUgaWNoISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKICAgWyBdICAgWmVpdHVuZywgRnJldW5kc2NoYWZ0c2JhbmQsIFNlaGVya3VnZWwsIFphdWJlcnN0YWIgIDEwCiAgIFsgXSAgIEtuYXBwIDMwLCBhYmVyIGljaCBhcmJlaXRlIGRyYW4hICAgICAgICAgICAgICAgICAgICAgMAoKV2VsY2hlcyBpc3QgZGllIHN0YWVya3N0ZSBHaWxkZSBkZXMgTW9yZ2VuR3JhdWVucz8KICAgWyBdICAgRGllIEFrYWRlbWllIGRlciBnZWlzdGlnZW4gS3JhZnQgenUgVGFyYW1pcyAgICAgICAgIC0xCiAgIFsgXSAgIERpZSBLYWVtcGZlciBkZXMgS29ydSBUc2NoYWthciBTdHJ1diAgICAgICAgICAgICAgLTEuMgogICBbIF0gICBEaWUgQmllcnNjaHVldHRsZXIgdm9uIFNoYWt5IElzbGFuZCAgICAgICAgICAgICAgICAgLTEKICAgWyBdICAgRGllIEthcmF0ZWdpbGRlIGluIFhpYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xCiAgIFsgXSAgIERpZSBLcmllZ2VyIGRlcyBDaGFvcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMQogICBbIF0gICBEaWUgR2lsZGUgZGVyIEthdHplbmtyaWVnZXIgaW4gS2F0emVuaGF1c2VuLi4gYWVoLiAgLTEKICAgWyBdICAgRGllIE1vZW5jaGUgdW5kIE5vbm5lbiBkZXMgaGVpbGlnZW4gT3JkZW5zICAgICAgICAgIC0xCiAgIFsgXSAgIERpZSBBYmVudGV1cmVyZ2lsZGUsIGtlaW5lIEZyYWdlISAgICAgICAgICAgICAgICAgIDAuNQogICBbIF0gICBOYXR1ZXJsaWNoIGRpZSBQaXJhdGVuZ2lsZGUgdm9uIFRvcnR1Z2EgICAgICAgICAgICAtMTEKICAgWyBdICAgR2lsZGVuPyBFcyBnaWJ0IG1laHJlcmU/IT8gICAgICAgICAgICAgICAgICAgICAgICAgIDEwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClsxXSBMZWlkZXIgZ2luZyBkZXIgTG9lc3VuZ3NzY2hsdWVzc2VsICBmdWVyIGRpZSBtaXR0bGVyZSBTUVMgYmVpbSAKICAgIGxldHp0ZW4gQ3Jhc2ggdW53aWVkZXJicmluZ2xpY2ggdmVybG9yZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZmluZ2VyIHZvbiBhdXNzZW4gKEhhdGUsICA4LiBGZWIgMjAwMCwgMTY6MjA6NTQpOgpIaSwKCm1hbiBrYW5uIGpldHp0IHdpZWRlciBTcGllbGVyIHZvbiBhdXNzZW4gZmluZ2VybjoKCiAgZmluZ2VyIG1nLm5hbWVAbWcubXVkLmRlCgpuYW1lIGVyc2V0enQgbWFuIGVudHNwcmVjaGVuZC4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZmluZ2VyIHZvbiBhdXNzZW4gKFN1YmxpbWUsICA5LiBGZWIgMjAwMCwgMjM6MjI6MTUpOgp+IyEgcm49SGF0ZSBydD05NTAwMjMyNTQgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTAwMjMyNTQKRGFzIGdpbmcgZG9jaCBzb3dpZXNvLCBvZGVyID8gSWNoIG11c3N0ZSwgYmVpc3BpZWxzd2Vpc2UgbnVyIGRhcyBnYW56ZQoybWFsIGhpbnRlcmVpbmFuZGVyIGFic2NoaWNrZW4sIGRhbm4gbGllZidzLC4uLgoKc3VibCwgZnJhZ2VuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQbGF5c3RhdGlvbiAoR3JpbW1ib3JuLCAxMy4gRmViIDIwMDAsIDIzOjM3OjMyKToKfiMhIG9uPUdub21lIG90PTk1MDQ3NTA4MSBvZz1hbGxnZW1laW5lcwp+IyEgcm49RGFudGUgcnQ9OTUwNDU3MjkxIHJnPWFsbGdlbWVpbmVzCn4jISB0aWQ9OTUwNDU3MjkxCnZlcmthdWZlIHBsYXlzdGF0aW9uJTtrYXVmZSBkcmVhbWNhc3QgaW5jbC4gc29uZGVyenViZWhvZXIKCmRlciBzaG9vdGVyIGlzdCBleHRyZW0gcHJhZXppc2UsIGhhdCBtaWNoIHNlaHIgZ2V3dW5kZXJ0LiB1bmQgbWFjaHQgc3Bhc3MgOikKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaXRlbHNlaXRlIGdlc3VjaHQgKE5peGlob3UsIDE1LiBGZWIgMjAwMCwgMTQ6MTc6MDApOgpoaSwKa2VubnQgenVmYWVsbGlnIGplbWFuZCB2b24gZXVjaCBkaWUgemVpdHNjaHJpZnQgRmluYW56ZW4/CnVuZCBrYW5uIG1pciBzYWdlbiB3aWUgZGllIFRpdGVsc2VpdGUgZGVzIGFsbGVyZXJzdGVuIGhlZnRlcyAwMS8xOTkwIGF1c3NhaD8KCmF1cmlhbiwgc3VjaGVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW16dWcgKFJhbnRhbnBsYW4sIDE3LiBGZWIgMjAwMCwgMDE6MTA6MjIpOgpZbyAhCgpNZWluZSBLYW1lbGhlcmRlIHVuZCBpY2ggc2luZCBVbWdlem9nZW4sIHdpciB3b2huZW4gamV0enQgaW4gZGVyIEVsZmVucG9zdC4KCk5hY2ggSkFocmVuIGluIGRlciBQVi1Qb3N0IGtvbW10IGVpbiBUYXBldGVud2VjaHNlbCBnZXJhZGUgcmVjaHQgIQoKT2UqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWYWdhcnkgYWdhaW4uLi4gKEFuZ3VzLCAxOC4gRmViIDIwMDAsIDExOjAzOjE1KToKSGkhCkZ1ZXIgYWxsZSwgZGllIHVuc2VyZW4gZ3JhbmRpb3NlbiBBdWZ0cml0dCBhbSAxNS4wMS4yMDAwCmluIEhhbWJ1cmcgdmVycGFzc3QgaGFiZW4sIGJpZXRldCBzaWNoIG51biBkaWUKd2lya2xpY2ggZWlubWFsaWdlIENoYW5jZSwgZGllc2VuIEZlaGxlciB3aWVkZXIKZ3V0enVtYWNoZW4hIDstKSBXaXIgc3BpZWxlbgpBbTogMTUuMDMuMjAwMApJbTogJ0tudXN0JyAtIEJyYW5kc3R3aWV0ZSAyIGluIEhhbWJ1cmcKQWI6IDIxOjE1IFVociAoRWlubGFzcyBhYiAyMDowMCBVaHIpCgpWb3IgdW5zIHNwaWVsZW4gbm9jaCAyIHdlaXRlcmUgQmFuZHMsIGFscyBkYSB3YWVyZW46CkZ1a2UgYXVzIEhhbWJ1cmcgdW5kCkthaHVuYSBhdXMgTHVlbmVidXJnCgpLYXJ0ZW4gZ2lidHMgaW0gVm9ydmVya2F1ZiBiZWkgbWlyLCBnZW5hdXNvIHdpZQp3ZWl0ZXJlIEluZm9zIC0gZWluZmFjaCBuZSBrdXJ6ZSBNYWlsIGFuIG1pY2ghCgpTdXBwb3J0IHRoZSBVbmRlcmdyb3VuZCEKICAtIEFuZ3VzIC0gaGV1dGUgbWFsIGRpZSBXZXJiZXRyb21tZWwgcnVlaHJlbmQgOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaHcvc3cgKE15c3RlcmlvdXMsIDIyLiBGZWIgMjAwMCwgMjI6NDU6MjEpOgprb24tYmFuLXdhIQoKc28sIGljaCBoYWIgZm9sZ2VuZGUgZGluZ2UgenUgdmVyc2NobGV1ZGVybjoKCjEpIHRlcnJhdGVjIHhsZXJhdGUgcGNpLCBuZSBjYSAxLjV5IGFsdGUgc291bmRrYXJ0ZSBmdWVyIC4uLiA1MGRtCjIpIG9zLzIgd2FycCBtaXQgMi0zIHNoYXJld2FyZS1jZCNzLCBkYXMgZ3V0ZSBhbHRlIG9zL2hhbGJlIDopLi4uIDUwZG0KMykgYmVPUyA0LjUsIHBsdXMgYmVPcy1iaWJlbC4uLiA1MGRtCgpzbywgaWNoIGtvZW5udGUgZGllIHNhY2hlbiBuYWNoIGRyYWVzZGVuIG1pdGJyaW5nZW4sIGFuc29uc3RlbiBwZXIgcG9zdC4KCndlciBhbHNvIGludGVyZXNzZSBoYWJlbiBzb2xsdGUgbWVsZGUgc2ljaCBhbSBiZXN0ZW4gc28gYmFsZCB3aWUgbW9lZ2xpY2ggYmVpCm1pci4uCgpzbyBvbmcKICAgIG1Zc3RFcmlPdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBody9zdyAoU3VibGltZSwgMjMuIEZlYiAyMDAwLCAxOTo0OTozMik6Cn4jISBybj1NeXN0ZXJpb3VzIHJ0PTk1MTI1NTkyMSByZz1hbnplaWdlbgp+IyEgdGlkPTk1MTI1NTkyMQpLdXJ6ZSBGcmFnZSA6IElzdCBkaWUgVGVycmF0ZWMgaW4gaXJnZW5kZWluZXIgRm9ybSAzRC1Tb3VuZAprb21wYXRpYmVsID8gTm9lLCBvZGVyID8gOykKc3VibAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBody9zdyAoTXlzdGVyaW91cywgMjMuIEZlYiAyMDAwLCAyMTozNzo1Myk6Cn4jISBybj1TdWJsaW1lIHJ0PTk1MTMzMTc3MiByZz1hbnplaWdlbgp+IyEgdGlkPTk1MTI1NTkyMQprb24tYmFuLXdhIQoKc2llIGlzdCBuaWNoIG5hY2ggZGVtIDNkLXN0YW5kYXJkIHZvbiBjcmVhdGl2ZSBsYWJzIGtvbXBhdGliZWwuIGRhcyBkaW5nCnVudGVyc3R1ZXR6dCBkaWVzZXMgQTNEIHZvbiBhdXJlYWwuIHdpZSBpY2ggaG9lcnRlIHNvbGwgc29nYXIgaW56d2lzY2hlbiBzb2dhcgptYWwgbiBhbnN0YWVuZGlnZXIgdHJlaWJlciBmLiBsaW51eCBpbiBlbnR3aWNrbHVuZyBzZWluLgpqZWRlbmZhbGxzIGJlc3NlciwgYWxzIGRhcywgd2FzIHNlaXQgdWViZXIgbmVtIGphaHIgX2tvc3RlbnBmbGljaHRpZ18gYWxzCl9iZXRhXy12ZXJzaW9uIGJlaSBvcGVuc291bmQgenUga3JpZWdlbiBpcyAqc2V1ZnoqCgpzbyBsb25nLi4uIGNyZWF0aXZlIHJvb2xlei4uCiBkQSBtWVN0aQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHJ1ZiBmdWVyIGVpbmVuIGd1dGVuIEZyZXVuZCAoTWVzaXJpaSwgMjQuIEZlYiAyMDAwLCAxMDoyMTo0OCk6CkxpZWJlIEZyZXVuZGUsCgpoZXV0ZSBtdXNzIGljaCBFdWNoIGRpZSBzY2hsaW1tc3RlIE5hY2hyaWNodCB1ZWJlcmJyaW5nZW4sIGRpZSBlcyBmdWVyIG1pY2gKZ2ViZW4ga2Fubi4KRWluIGd1dGVyIEZyZXVuZCwgZGVyIHZpZWxlbiBoaWVyIGVpbmUgTWVuZ2UgYmVkZXV0ZXQgaGF0LCBpc3QgbmljaHQgbWVociBhbQpMZWJlbi4gTWFoYXRtYSBpc3QgYW0gRGllbnN0YWcgQWJlbmQgdG90IGluIHNlaW5lciBXb2hudW5nIGF1ZmdlZnVuZGVuIHdvcmRlbi4KCkRpZXNlciBOYW1lIGlzdCBiZXN0aW1tdCB2aWVsZW4gdm9uIEV1Y2ggbnVyIG5vY2ggYXVzIGRlbiBFcnphZWhsdW5nZW4gdW5kCkxlZ2VuZGVuIGRlciBhbHRlbiBaZWl0IGRlcyBNb3JnZW5ncmF1ZW4gYmVrYW5udCwgYWJlciBkaWUsIGRpZSBpaG4ga2FubnRlbgp1bmQKc28gdmllbGUgc2Nob2VuZSBTdHVuZGVuIG1pdCBpaG0genVzYW1tZW4gZXJsZWJ0IHVuZCBpaG4gYmVzc2VyIGdla2FubnQgaGFiZW4sCndlcmRlbiBnZW5hdSB3aWUgd2lyIGRlbiBTY2htZXJ6IGRlcyBWZXJsdXN0ZXMgdW5kIGRpZSBxdWFlbGVuZGUgRnJhZ2UgbmFjaApkZW0KIldhcnVtPyIgZnVlaGxlbi4gU2VpbiBUb2QgaXN0IGVpbiB0b3RhbGVyIFNjaG9jayBmdWVyIHVucyB1bmQgZWluZmFjaCBuaWNodApiZWdyZWlmYmFyLiBTZWluZSBmcm9laGxpY2hlIFZlcmFic2NoaWVkdW5nIHZvbiBlaW5lbSBGcmV1bmQgYW0gRnJlaXRhZyBBYmVuZAppc3QgZGFzIGxldHplLCB1bnMgYmVrYW5udGUgTGViZW5zemVpY2hlbiBNYWhhdG1hcy4KCkZ1ZXIgYWxsZSwgZGllIGlobiBpbiBSTCBlcmxlYnQgaGFiZW4sIHNlaSBlcyBpbSBTdHVkaXVtLCBhdWYKU3RhbW10aXNjaGVuLCBTa2F0dHVybmllcmVuIHVuZCBQYXJ0aWVzLCBibGVpYnQgZGllIEVyaW5uZXJ1bmcgYW4gc2VpbmUKbGViZW5zZnJvaGUgQXJ0LCBzZWluZSBzZWhyIHNwZXppZWxsZSBXZWlzZSBzaWNoIGF1c3p1ZHJ1ZWNrZW4sIHNlaW4gTGFjaGVuLApuYXR1ZXJsaWNoIHNlaW5lIFRyaW5rZmVzdGlna2VpdCB1bmQgc2VpbmUgR2VuaWFsaXRhZXQsIGRpZSBlaW5lbSBlaW5mYWNoCm5pY2h0CnZlcmJvcmdlbiBibGllYi4gCgpBdWNoIHdlbm4gZXIgaW4gZGVyIGxldHplbiBaZWl0IGVoZXIgc2VsdGVuIGhpZXIgYW56dXRyZWZmZW4gd2FyLCBnYWIgZXMgZWluZQpFcG9jaGUsIGluIGRlciBlciBoaWVyIGdhbnogb2JlbiBzdGFuZC4gTWFoYXRtYSBnaW5nIGJpcyBhbiBkaWUgR3JlbnplbiBkZXMgCk1vZWdsaWNoZW4sIGxpZXNzIG5pY2h0cyB1bnZlcnN1Y2h0IHVtIHZvcmFuenVrb21tZW4gdW5kIGZhbmQgYXVmIGRpZXNlbiBXZWdlbgp2aWVsZSBCdWdzIHVuZCBVbm1lbmdlbiB2b24gVHlwb3MuIFp1IGVpbmVyIFplaXQsIGRhIHNpZSBub2NoIGJlaSBkZW4gU2VoZXJuCkVyc2NoYXVlcm4gdW5kIEVyZnVyY2h0IGhlcnZvcnJpZWYgd2FyIGRpZSBIeWRyYSBzZWluZSBiZXN0ZSBGcmV1bmRpbiwgZGllCnNpY2ggCnNvZ2FyIHZlcnN0ZWNrdCBpbSBUaXRlbCBzZWluZXMgRGlwbG9tcyB3aWVkZXJmaW5kZW4gbGFlc3N0ICJEaWUKOTkgVmVyZmFocmVuIHp1ciBSZWR1a3Rpb24gZGVyIEtvZXBmZSBkZXIgSHlkcmEiLiBEZXIgYWt0dWVsbGUgU3RhbmQgendpc2NoZW4KZGVuIGJlaWRlbiBpc3QgMTQzOjIxLgoKSWNoIGhvZmZlIE1haGF0bWEgaXN0IGRlciBlcnN0ZSB1bmQgZGVyIGxldHp0ZSBNZW5zY2gsIGRlciBkYXMgTUcgYXVmIGRpZXNlCnNjaHJlY2tsaWNoZSBXZWlzZSB2ZXJsYWVzc3QgdW5kIGljaCBkZW5rZSwgZGFzcyBzZWluIFRvZCB3ZW5pZ3N0ZW5zIGVpbmlnZQp2b24KRXVjaCBkYXJ1ZWJlciBuYWNoZGVua2VuIGxhZXNzdCwgd2llIHNpbm5sb3MgYWxsIGRpZXNlIEtsZWlua3JpZWdlIHVuZApaYWVua2VyZWllbiwgZGllIGhpZXIgc28gb2Z0IHN0YXR0ZmluZGVuLCBkb2NoIHNpbmQuCgpXaXIgd2VyZGVuIGlobiBuaWNodCB2ZXJnZXNzZW4gc29uZGVybiB1bnMgYmVpIGplZGVtIFRyZWZmZW4gZGFyYW4gZXJpbm5lcm4sCndlcgppbiB1bnNlcmVyIFJ1bmRlIGZlaGx0LgoKRGllamVuaWdlbiwgZGllIGFtIG1laXN0ZW4gZGVzIFRyb3N0ZXMgYmVkdWVyZmVuLCBzaW5kIGplZG9jaCBzZWluZSBFbHRlcm4uCldlbm4KSWhyIGRlbmt0LCBkYXNzIEV1cmUgV29ydGUgZGF6dSBiZWl0cmFnZW4ga29lbm5lbiwgc2llIGZ1ZWhsZW4genUgbGFzc2VuLCBkYXNzCnNpZSBuaWNodCBhbGxlaW4gbWl0IGlocmVtIFNjaG1lcnogdW5kIGlocmVyIFRyYXVlciBzaW5kLCBzb25kZXJuIHNvIHZpZWxlCkZyZXVuZGUgbWl0IGlobmVuIHp1c2FtbWVuIHRyYXVlcm4sIGRhbm4gc2NoaWNrdCBzaWUgYml0dGUgYW4gbWljaCwgd2lyIHdlcmRlbgpzaWUgZGFubiB3ZWl0ZXJsZWl0ZW46CgpNaWNoYWVsIEh1bmdlcgpNYXRoaWxkZW5zdHIuIDQKMDEwNjkgRHJlc2RlbgoKTWVzaXJpaSBpbSBBdWZ0cmFnIEdsb2lucyB1bmQgZGVyIERyZXNkbmVyIE11ZGRlcgoKUC5TLiBEaWUgVG9kZXN1cnNhY2hlIGlzdCB1bnMgbmljaHQgYmVrYW5udCwgYWxzbyBmcmFndCBnYXJuaWNodCBlcnN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hY2hydWYgZnVlciBlaW5lbiBndXRlbiBGcmV1bmQgKFJvbmRhLCAyNS4gRmViIDIwMDAsIDAwOjA5OjE2KToKfiMhIHJuPU1lc2lyaWkgcnQ9OTUxMzg0MTA4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTUxMzg0MTA4CkxpZWJlIEZyZXVuZGUgaW0gTW9yZ2VuZ3JhdWVuLAp3ZWxjaCB1bmdld29laG5saWNoZSBBbnJlZGUgZnVlciBlaW5lbiBBcnRpa2VsIGluIGRlciBNUEEgLSBhYmVyIG1pciB3aXJkCmVpbmZhY2gga2xhciB1bmQgZGV1dGxpY2gsIHdpZSBuYWggd2lyIHVucyBkb2NoIHVlYmVyIGRpZXNlcyBtZXJrd3VlcmRpZ2UKTWVkaXVtICJNb3JnZW5ncmF1ZW4iIGluIGRlbiB2aWVsZW4gSmFocmVuIGdld29yZGVuIHNpbmQuLi4KCipzZXVmeiogU2VsdGVuIGZhZWxsdCBtaXIgZWluIEJyaWVmIHNvIHNjaHdlciB3aWUgZGllc2VyIC0gZGFua2UgTWVzaXJpaSBmdWVyCmRlbiBNdXQgdW5kIGRpZSBLcmFmdCwgZGFzcyBEdSBEZWluZW4gQXJ0aWtlbCBmdWVyIGRpZSBNUEEgZ2VzY2hyaWViZW4gaGFzdC4KCkF1Y2ggd2VubiBpY2ggTWFoYXRtYSBhdWYgZGVuIFBhcnRpZXMgbnVyIGVpbiB2aWVsIHp1IHdlbmlnIGtlbm5lbmdlbGVybnQKaGFiZSwgaGF0IG1pY2ggZGllIE5hY2hyaWNodCB2b24gc2VpbmVtIFRvZCBzZWhyIGJldHJvZmZlbiBnZW1hY2h0IC0gYXVjaCBtaXIKaXN0IGVyIGFscyBzZWhyIGxlYmVuc2Zyb2ggaW4gRXJpbm5lcnVuZywgbWl0IGVpbmVtIEdyaW5zZW4gaW0gR2VzaWNodCB1bmQKbWFuY2htYWwgYXVjaCBlaW4gYmlzc2NoZW4gemVyc3RydXd3ZWx0Li4uCgpFaW4gcGFhciBCaWxkZXIsIHdpZSB3aXIgaWhuIGtlbm5lbiwgZmluZGV0IG1hbiBqYSBhdWYgZGVuIFBhcnR5LVNlaXRlbiB1bnRlcgpodHRwOi8vbWcubXVkLmRlL1BhcnR5L211ZGRlci9tLmh0bWwKCkhybXBmLCB3ZW5uIGljaCBtaXIgQW5hdG9scyBCaWxkIApodHRwOi8vbWcubXVkLmRlL1BhcnR5L1BhcnR5LjcvZm90b3MuQW5hdG9sL21ncDctMTQuSlBHCmFuc2NoYXVlLCBrcmllZyBpY2gncyBoZXVsZW4gOi0oCgpHbG9pbiwgTWVzaXJpaSB1bmQgYWxsZSBhbmRlcmVuLCBkaWUgTWFoYXRtYSBuYWVoZXIga2FubnRlbiAtIGVzIHNpbmQgdmllbGUKaGllciBpbSBNb3JnZW5ncmF1ZW4sIGRpZSBtaXQgRXVjaCBmdWVobGVuIC0gYXVjaCB3ZW5uIHdpciBFdXJlIFRyYXVlciBudXIKYWhuZW4ga29lbm5lbiA6LSgKCkFiZXIgZWlnZW50bGljaCBoYXR0ZSBpY2ggZWluZW4gZ2FueiBhbmRlcmVuIEdydW5kLCBkaWVzZW4gQXJ0aWtlbCB6dQpzY2hyZWliZW46ClNseWZveCB1bmQgaWNoIGZhZW5kZW4gZXMgZ3V0LCB3ZW5uIHdpciBhdWYgZGVuIE1vcmdlbmdyYXVlbi1XZWJzZWl0ZW4gZXR3YXMKenUgTWFoYXRtYSdzIFRvZCBzZXR6ZW4uIEFscyBnYW56IGtsZWluZXMgWmVpY2hlbiwgZGFzcyBoaWVyIGltIE1vcmdlbmdyYXVlbgp2aWVsZSBhbiBpaG4gZGVua2VuIC0gd2FocnNjaGVpbmxpY2ggbWVociwgYWxzIGVyIGdlbWVya3QgaGF0LiBVbmQgdmllbGxlaWNodApnZWh0IGVzIGphIHZpZWxlbiBzbyB3aWUgbWlyLCBkYXNzIG1hbiBlcnN0IHZpZWwgenUgc3BhZXQgbWVya3QsIHdhcyBmZWhsZW4Kd2lyZCA6LSgKCk1lc2lyaWksIHZpZWxsZWljaHQga29lbm5lbiB3aXIgRGVpbmVuIEFydGlrZWwgbmVobWVuLCBtaXQgQW5hdG9scyBCaWxkIC0KUm9jaHVzLCBzZXR6dCBEdSBkYXMgYXVmIGRpZSBXZWJzZWl0ZW4/IEFueSBjb21tZW50cz8KCkRhbmtlLAoKUm9uZGEKCgpQczogR3JhZGUgbm9jaCBhdWZnZWZhbGxlbjogd2VubiBtYW4gTWFoYXRtYSAiZmluZ2VydCIsIGtvbW10IGRhCiJQcm9qZWt0OiBtZWluZSBIeWRyYWhvcm5zYW1tbHVuZyBlcndlaXRlcm4sIG9obmUgc28gb2Z0IHp1IHN0ZXJiZW4iClNvcnJ5IGZ1ZXIgZGllIGhhcnRlIEF1c2RydWNrc3dlaXNlLCBhYmVyIHNjaGVpc3NlIE1hbm4sIHdhcnVtIGhhc3QgRHUgRGljaCBpbQp3aXJrbGljaGVuIExlYmVuIG5pY2h0IGRhcmFuIGdlaGFsdGVuIDotKAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnJpZWZlIGZ1ZXIgTWFoYXRtYSdzIEVsdGVybiAoTWVzaXJpaSwgMjUuIEZlYiAyMDAwLCAxNDozNToyOCk6CkhhbGxvLAppY2ggaGF0dGUgZ2FueiB2ZXJnZXNzZW4sIGRhc3MgbWFuIE1haGF0bWFzIEVsdGVybiBqYSBhdWNoIGFuc3ByZWNoZW4gbXVzcywKd2VubgptYW4gaWhuZW4gZWluZW4gQnJpZWYgc2NocmVpYnQuCkRlc2hhbGIgaGllciBzZWluIFJMLU5hbWU6IE1hdHRoaWFzIEhvZWZmIChtaXQgdW1sYXV0KS4KV2VyIGFsc28gc2VpbmVuIEVsdGVybiBUcm9zdCBzcGVuZGVuIHdpbGwsIHNjaGlja2Ugc2VpbmVuIEJyaWVmIGFuIG1pY2gsCndpciBnZWJlbiBzaWUgaWhuZW4gZGFubiBiZWkgZGVyIEJlZXJkaWd1bmcuCk1pY2hhZWwgSHVuZ2VyLCBNYXRoaWxkZW5zdHIuIDQsIDAxMDY5IERyZXNkZW4KCk1lc2lyaWksIGZlcnRpZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVlcmRpZ3VuZyB2b24gTWFoYXRtYSAoTWVzaXJpaSwgMjUuIEZlYiAyMDAwLCAyMjo0MDo1OCk6CkxpZWJlIEZyZXVuZGUsCkFtIE1pdHR3b2NoIHdpcmQgTWFoYXRtYSBpbiBzZWluZXIgSGVpbWF0c3RhZHQgTWFnZGVidXJnIGJlaWdlc2V0enQuIFdlciB2b24KRXVjaCBtaXRrb21tZW4gbW9lY2h0ZSB1bSBzaWNoIHZvbiBpaG0genUgdmVyYWJzY2hpZWRlbiwgbW9lZ2UgbWljaCBvZGVyCkdsb2luc29uIGZyYWdlbi4KTWVzaXJpaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYWNocnVmIGZ1ZXIgZWluZW4gZ3V0ZW4gRnJldW5kIChTaWJvcml0LCAyNS4gRmViIDIwMDAsIDIzOjQwOjQ4KToKfiMhIHJuPVJvbmRhIHJ0PTk1MTQzMzc1NiByZz1hbnplaWdlbgp+IyEgdGlkPTk1MTM4NDEwOApIYWJlIGdyYWQgZGVuIHNlaHIgdHJhdXJpZ2VuIE5hY2hyaWNodCBnZWxlc2VuIGRhcyBNYWhhdG1hIG5pY2h0IG1laHIgdW50ZXIKdW5zIGlzdC4gQXVjaCB3ZW5uIGljaCBpaG4gbmljaHQgaW4gUkwgZ2VrYW5udCBoYWJlLCBmdWVobHQgZXMgc28gYWxzb2IgaWNoCmVpbiBndXRlciBCZWthbm50ZSB2ZXJsb3JlbiBoYWJlLgoKTWFoYXRtYSBoYXQgdmllbGUgaGllciBpbiBNRyBhbHMgVm9yYmlsZCBnZWRpZW50LiBJY2ggZmluZGUgZGFoZXIgZGllIElkZWUgdW0Kd2FzIGF1ZiBkZXIgTW9yZ2VuZ3JhdWVuLVdlYnNlaXRlIGZ1ZXIgaWhuIHp1IG1hY2hlbiBndXQuIEljaCBkZW5rZSBlcyB3YWVyZQphdWNoIGVpbmUgZ3V0ZSBJZGVlIGZ1ZXIgaWhuIGFtIEVpbmdhbmcgZGVzIEx1cGluZW50YWxzIGVpbiBEZW5rbWFsCmhpbnp1c3RlbGxlbi4gRXIgaGF0IGVzIHZlcmRpZW50LgoKU2lib3JpdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hY2hydWYgZnVlciBlaW5lbiBndXRlbiBGcmV1bmQgKEx1ZywgMjYuIEZlYiAyMDAwLCAwMTo1OTowMSk6Cn4jISBybj1NZXNpcmlpIHJ0PTk1MTM4NDEwOCByZz1hbnplaWdlbgp+IyEgdGlkPTk1MTM4NDEwOAoKSWNoIHNjaGxhZ2Ugdm9yLCBhbSBFaW5nYW5nIGRlcyBMdXBpbmVudGFscyBlaW4gKEdlLSlEZW5rbWFsIHp1IHNldHplbi4gRGFzCndhZXJlIHdvaGwgYW5nZW1lc3NlbiB1bmQga29lbm50ZSBlaW5lbiBPcnQgYmlldGVuLCBkZXIgenVyIEJlc2lubnVuZyB1bmQKRWhydW5nIGVpbmVzIEZyZXVuZGVzIHZpZWxlciBoaWVyIGRpZW50LiBJY2ggYmluIG1pciBiZXd1c3N0LCBlcyB3YWVyZSAibnVyIgp2aXJ0dWVsbCwgYWJlciBkYXMgbXVzcyBqYSBuaWNodCB2ZXJrZWhydCBzZWluLgoKV2Ugd2lsbCByZW1lbWJlciEKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hY2hydWYgZnVlciBlaW5lbiBndXRlbiBGcmV1bmQgKFN1YmxpbWUsIDI2LiBGZWIgMjAwMCwgMTg6NDE6MzMpOgp+IyEgcm49THVnIHJ0PTk1MTUyNjc0MSByZz1hbnplaWdlbgp+IyEgdGlkPTk1MTM4NDEwOApBdWNoIHdlbm4gaWNoIE1haGF0bWEgbnVyIGF1cyBkZW0gVkwga2VubmUnIHVuZCBuaWUgcGVyc29lbmxpY2gKZ2VzZWhlbiBoYWJlLCBnZWh0IG1pciBkaWVzZXMgU2NoaWNrc2FsIHppZW1saWNoIHVudGVyIGRpZSBIYXV0LgpVbXNvIG1laHIgaWNoIGRhcnVlYmVyIG5hY2hkZW5rZSwgdW1zbyBzY2h3ZXJlciBmYWVsbHQgbWlyIGRhcwpBdG1lbi4KRGllIElkZWUgbWl0IGRlbSBEZW5rbWFsIGZpbmRlIGljaCBndXQsIHZpZWxsZWljaHQga25udGUgbWFuIGVpbgpHZWRpY2h0IGFscyBJbnNjaHJpZnQgc2V0emVuID8KClN1YmxpbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5hY2hydWYgZnVlciBlaW5lbiBndXRlbiBGcmV1bmQgKENpc291LCAyNi4gRmViIDIwMDAsIDE5OjQ0OjIxKToKfiMhIHJuPVN1YmxpbWUgcnQ9OTUxNTg2ODkzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTUxMzg0MTA4CgoKQml0dGUgbGFzc3QgdW5zIHVuZCBsYXNzdCBNYWhhdG1hcyBGcmV1bmRlbiBoaWVyIGVpbiBiaXNzY2hlbiBaZWl0IHp1IHRyYXVlcm4uCgpNYW5jaG1hbCBzaW5kIHp1dmllbGUgV29ydGUgLSB2b3IgYWxsZW0sIHdlbm4gc2llIG51ciBnZXNjaHJpZWJlbiB1bmQgbmljaHQKZ2VzcHJvY2hlbiB1bmQgZ2Vob2VydCB3ZXJkZW4gLSBuaWNodCBkZXIgYW5nZW1lc3NlbmUgVHJvc3QuCgpXYWVyZSBlcyBuaWNodCBzY2hvZW5lciwgYW5zdGF0dCB6dSBkaXNrdXRpZXJlbiwgd2FzIG9kZXIgd2llIGV0d2FzIHVucyBhbGxlCmFuIE1haGF0bWEgZXJpbm5lcm4gc29sbCwgZGllc2UgRW50c2NoZWlkdW5nIGRlbmVuIGluIGRpZSBIYW5kIHp1IGxlZ2VuLCBkaWUKaWhtIGFtIG5hZWNoc3RlbiBzdGFuZGVuIHVuZCBpaG4gYmVzc2VyIGthbm50ZW4sIHNvYmFsZCBzaWUgc2ljaCBkYW5hY2gKZnVlaGxlbj8KCldlIHdpbGwgcmVtZW1iZXIhCgpDaXNvdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmlsZGVyIHZvbiBNYWhhdG1hIHVuZCBhbmRlcmVzIGdlc3VjaHQhIChHbG9pbiwgIDMuIE1hciAyMDAwLCAyMTo1NjowMSk6CldpciBoYWJlbiBNYXR0aGlhcyBhbSBNaXR0d29jaCBlaW4gbGV0enRlcyBNYWwgYmVnbGVpdGV0LiBEYW5rZSBhbiBhbGxlLCBkaWUgCnVucyBUcm9zdCBzcGVuZGV0ZW4sIHNvIGRhc3Mgd2lyIGZ1ZXIgZGllIEZhbWlsaWUgZGEgc2VpbiBrb25udGVuLCBkZW5uCmVzIGlzdCBhbGxlbiBzZWhyIHNjaHdlciBnZWZhbGxlbiBkaWVzZW4gR2FuZyB6dSBnZWhlbi4gICAgICAgICAgICAgICAKRGllIEZhbWlsaWUgaGF0IHVucyBnZWJldGVuLCBkb2NoIGVpbmlnZSBCaWxkZXIgZGVzIGlobmVuIGZhc3QgZ2FlbnpsaWNoCnVuYmVrYW5udGVuIExlYmVucyBNYWhhdG1hcyBpbiBNVUQgdW5kIERyZXNkZW4genV6dXNlbmRlbi4gQWxzbyBoYWJlbiB3aXIKYmVzY2hsb3NzZW4sIGVpbiBBbGJ1bSBkZXIgenVzYW1tZW4gdmVyYnJhY2h0ZW4gSmFocmUgenUgZXJzdGVsbGVuLgoKQml0dGUgc2NoaWNrdCBhbGxlIG5vY2ggbmljaHQgYXVmIGRlciBNRy1QYWdlIHZlcm9lZmZlbnRsaWNodGVuIEJpbGRlciwKVGV4dGUgb2RlciBzb25zdGlnZXMgTWF0ZXJpYWwgTWF0dGhpYXMnIGFuIE1lc2lyaWlzIEFkcmVzc2UsIGdlYnQgbWlyIG9kZXIKTWVzaXJpaSBkaWUgZGlnaXRhbGVuIEFkcmVzc2VuIG9kZXIgYnJpbmd0IGVzIG1pdCB6dW0gTUctVHJlZmZlbiBuYWNoIApEcmVzZGVuLgpEb3J0IHdlcmRlbiB3aXIgZGFzIEFsYnVtIGRhbm4gYXVjaCBub2NoIGVpbm1hbCBhdXNsZWdlbiwgZGFtaXQgc2ljaCBhbGxlCmRpZSBtb2VjaHRlbiBlaW50cmFnZW4ga29lbm5lbi4KCkRhbmtlc2Nob2VuLAogR2xvaW4KClBTOiBEaWUgQWRyZXNzZSB3YXI6CiAgICBNaWNoYWVsIEh1bmdlciwgTWF0aGlsZGVuc3RyLiA0LCAwMTA2OSBEcmVzZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZpc3VhbCBCYXNpYyB3aXJkIHZlcnNjaGVua3QhIChBbWFyeWxsaXMsIDEyLiBNYXIgMjAwMCwgMTQ6NDI6MDgpOgpIaWhvLAoKaGFiIGdlcmFkZSBlaW5lIGludGVyZXNzYW50ZSBNYWlsIGdla3JpZWd0LgpVbnRlciBodHRwOi8vd3d3LnN0YXJ0LWRldmVsb3BpbmcuZGUgd2lyZCBkZW4gZXJzdGVuIDMwMDAwIFN0dWRlbnRlbiBWaXN1YWwKQmFzaWMgNi4wIFByb2YuIGdlc2NoZW5rdCAoa29zdGVubG9zIHZlcnNjaGlja3QpLiBNYW4gbXVzcyBsZWRpZ2xpY2ggZWluCmtsZWluZXMgRm9ybXVsYXIgYXVzZnVlbGxlbi4gSWNoIGhhYnMgYmVyZWl0cyBnZW1hY2h0IHVuZCBuZSBNYWlsIGdla3JpZWd0LApkYXNzIGljaCAiZGFiZWkgYmluIiAtIG9icyB3aXJrbGljaCBnZXNjaGllaHQgb2RlciBlcyBlaW4gRmFrZSBpc3Qga2FubiBpY2gKbm9jaCBuaWNodCBzYWdlbiwgYWJlciBlaW5lbiBWZXJzdWNoIGlzdHMgd2VydCAtIGVzIHNlaSBkZW5uLCBtYW4gaGFlbHQgc2VpbmUKQWRyZXNzZSB1bmQgTWF0cmlrZWxudW1tZXIgZnVlciBzdXBlcmdlaGVpbSA6LSkKCk51ciBzbyBhbHMga2xlaW5lciBUaXAuCgpBbWFyeWxsaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWaXN1YWwgQmFzaWMgd2lyZCB2ZXJzY2hlbmt0ISAoSGF0ZSwgMTIuIE1hciAyMDAwLCAxOToxNTowOSk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9OTUyODY4NTI4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTUyODY4NTI4CkRhIGJpbiBpY2ggZG9jaCBmcm9oLCBkYXNzIGljaCBmdWVyIGRlbiBnY2MgKEMrKykgdW5kIG5lIGVudHNwcmVjaGVuZGUKRW50d2lja2x1bmdzdW1nZWJ1bmcgbmljaHQgbWVpbmUgQWRyZXNzZSBhYmdlYmVuIG11c3MsIGRpZSBqYSBkYW5uIGRvY2gKbnVyIHZlcmthdWZ0IHdpcmQuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWaXN1YWwgQmFzaWMgd2lyZCB2ZXJzY2hlbmt0ISAoQW1hcnlsbGlzLCAxMi4gTWFyIDIwMDAsIDE5OjI0OjQ3KToKfiMhIHJuPUhhdGUgcnQ9OTUyODg0OTA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTUyODY4NTI4Ck5hamEsIHdpZSBnZXNhZ3QsIG11c3MgamVkZXIgc2VsYmVyIHdpc3NlbiAtIGdlaHQgamEgenVyIE5vdCB3b2hsIGF1Y2ggZWluClBvc3RmYWNoLCB1bmQgc29vb28gdW5zZXJpb2VzIGVyc2NoaWVuIG1pciBkYXMgZ2FuemUgamV0enQgbmljaHQgOi0pKQpPYiBtYW4gZGllIFNvZnR3YXJlIGJyYXVjaHQgaXN0IG5lIGFuZGVyZSBGcmFnZSwgYmluIGF1Y2gga2VpbiBWQi1GYW4sIGFiZXIKdmllbGxlaWNodCBsYWVzc3Qgc2llIHNpY2ggamEgbm9jaCB2ZXJrYXVmZW4gOi0pCgpEYXMgRmVlY2hlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVmlzdWFsIEJhc2ljIHdpcmQgdmVyc2NoZW5rdCEgKEhhdGUsIDEyLiBNYXIgMjAwMCwgMTk6MjY6MTUpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTk1Mjg4NTQ4NyByZz1hbnplaWdlbgp+IyEgdGlkPTk1Mjg2ODUyOApXaXIgaGFiZW4gaGllciBsZXR6dGVucyBWQiBhdXNwcm9iaWVydCB1bmQgdW0gZWhybGljaCB6dSBzZWluLCBlcyBpc3QKd2llIHZpZWxlcyB2b24gTSQgemllbWxpY2ggc2NobGVjaHQgOy0pCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVmlzdWFsIEJhc2ljIHdpcmQgdmVyc2NoZW5rdCEgKFd1cnplbCwgMTIuIE1hciAyMDAwLCAxOToyNzoxMyk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9OTUyODg1NDg3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTUyODY4NTI4CmRhcyBpc3QgdmVybXV0bGljaCBuaWNodCB1bnNlcmlvZXMsIHNvbmRlcm4gZWluZmFjaCBlaW4gYmlsbGlnZXIgbWFya2V0aW5nLQp0cmljay4gbmljaHQgZGFzIGVyc3RlIG1hbCBiZWkgZGVuIGp1bmdzIGF1cyByZWRtb25kLCB1bmQgZnVua3Rpb25pZXJ0LgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBWaXN1YWwgQmFzaWMgd2lyZCB2ZXJzY2hlbmt0ISAoQW1hcnlsbGlzLCAxMi4gTWFyIDIwMDAsIDE5OjMwOjU3KToKfiMhIHJuPVd1cnplbCBydD05NTI4ODU2MzMgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTI4Njg1MjgKd2llIGdlc2FndCwgbXVzcyBqZWRlciBzZWxiZXIgd2lzc2VuIDotKQpJY2ggd29obmUgaGFsdCBuaWNodCBtZWhyIGxhbmdlIGhpZXIsIG1laW5lIE1hdHJpa2VsbnVtbWVyIGtlbm50IGVoIGplZGVyLAphbHNvIHdhcyBzb2xscyA6LSkKQWNoamEsIGRhcyBWQiBNaXN0IGlzdCwgaGFiIGljaCBhdWNoIHNjaG9uIGZlc3RnZXN0ZWxsdCwgSGF0ZSA6LSkgTmFjaCBlaW5lbQpoYWxiZW4gSmFociBydW1tdXJrc2VuIChnZXp3dW5nZW5lcm1hc3NlbikgaGFiIGljaCBkYW5uIGFscwpFbnR3aWNrbHVuZ3N1bWdlYnVuZyBmdWVyIFdpbjMyIGRvY2ggZGFua2VuZCB3aWVkZXIgRGVscGhpIGFuZ2Vub21tZW4gOi0pCgpEYXMgRmVlY2hlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVmlzdWFsIEJhc2ljIHdpcmQgdmVyc2NoZW5rdCEgKEdsb2luLCAxMy4gTWFyIDIwMDAsIDEzOjM4OjE1KToKfiMhIHJuPUFtYXJ5bGxpcyBydD05NTI4ODU4NTcgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTI4Njg1MjgKSG1tbSAuLi4gd2VubiBkaWUgV2VyYnVuZyBuaWNodCBpbW1lciBwZXIgZS1tYWlsIGthZW1lLiBFaW5pZ2UgTGV1dGUgc29sbGVuCmphIG5vY2ggT2ZlbmhlaXp1Z24gaGFiZW4gdW5kIHp1bSBBbmhlaXplbiBzaW5kIGRpY2tlIEJyaWVmZSBpbW1lciBndXQuCgpHbG9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogVmlzdWFsIEJhc2ljIHdpcmQgdmVyc2NoZW5rdCEgKFJpbmdvciwgMTMuIE1hciAyMDAwLCAxMzozOTo0OSk6Cn4jISBybj1HbG9pbiBydD05NTI5NTEwOTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTI4Njg1MjgKV2VyYnVuZyBrb21tdCBpbiBkZW4gTXVlbGxlaW1lci4gCgpJbiBkZW4gZ2VsYmVuLiBNaXQgZGVtIHNjaHdhcnplbiBIb3JuIGRyYXVmIHVuZCBkZW4gendlaSBTY2hsaXR6ZW4gYW4gZGVuClNlaXRlbi4gU2NobGllc3NsaWNoIGxpZWd0IGRvY2ggaW1tZXIgZWluIEFudHdvcnR1bXNjaGxhZyBiZWkuCgpEaWUgbWVpc3RlbiBGaXJtZW4gcmFmZmVuIGRhcyBnYW56IHNjaG5lbGwsIHdlbm4gc2llIGRhcyAoZXJob2VodGUpIFBvcnRvCmJlemFobHQgaGFiZW4gdW5kIGRvY2ggbnVyIGlocmUgZWlnZW5lIFdlcmJ1bmcgZHJpbiBmaW5kZW4uIF06LT4KCgpSaW5nb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFZpc3VhbCBCYXNpYyB3aXJkIHZlcnNjaGVua3QhIChTdWJsaW1lLCAxNS4gTWFyIDIwMDAsIDIyOjEwOjU2KToKfiMhIHJuPVJpbmdvciBydD05NTI5NTExODkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTI4Njg1MjgKVW5kIG1hbiBiZWFjaHRlIGRpZSBnaWZ0aWdlbiBEYWVtcGZlLCBkaWUgYmVpbSBWZXJicmVubmVuIGVudHN0ZWhlbiAhCkFsc28gc28gZ2VzdW5kIHdhZXJlIGRhcyBkYW5uIGphIGF1Y2ggbmljaHQsIG9kZXIgPwoKOykKU2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwZW5kZW5rb250byBNYWhhdG1hIChNZXNpcmlpLCAxNS4gTWFyIDIwMDAsIDIzOjUwOjQwKToKSGFsbG8gSWhycywKCndpZSBHbG9pbiB6dXIgVmVyZWluc3ZlcnNhbW1sdW5nIHNjaG9uIGFuZ2VtZXJrdCBoYXQsIHdvbGxlbiB3aXIsIHVtIGF1Y2ggCmluIFp1a3VuZnQgaW1tZXIgbWFsIGVpbmVuIEJsdW1lbmdydXNzIGFuIE1haGF0bWFzIEdyYWIgc3RlbGxlbiB6dSBrb2VubmVuLAogZWluZSBLb250b251bW1lciB2ZXJvZWZmZW50bGljaGVuLCBkYW1pdCBkaWVqZW5pZ2VuIHZvbiBFdWNoLCBkaWUgaWhuIGF1cwpkZXIgRmVybmUgZ3J1ZXNzZW4gd29sbGVuLCBhdWNoIGlyZ2VuZHdpZSBkaWUgR2VsZWdlbmhlaXQgZGF6dSBlcmhhbHRlbi4KRGEgR2xvaW5zIEVsdGVybiBuaWNodCB3ZWl0IHZvbiBNYWdkZWJ1cmcgd2VnIHdvaG5lbiwgd2lyZCBlciBpbW1lciBtYWwKdm9yYmVpc2NoYXVlbiwgYnp3LiBkaWUgTWFnZGVidXJnZXIgTXVkZGVyIGJlc3VjaGVuIE1haGF0bWEgbWFsLgoKSGllciBkaWUgRGF0ZW46CgpLb250bzogNjYxNDM4MgpCTFo6IDg3MCA3MDAgMDAKRGV1dHNjaGUgQmFuawpNaWNoYWVsIEh1bmdlcgoKU2NocmVpYnQgYml0dGUgZGF6dTogRnVlciBNYWhhdG1hIG9kZXIgc28KCk1lc2kKClAuUy4gTWFoYXRtYXMgRmFtaWxpZSBrb21tdCBhbSBGcmVpdGFnIG5hY2ggRHJlc2Rlbiwgd2VyIG5vY2ggZWluZW4gR3J1c3MKbWl0Z2ViZW4gd2lsbCwga2FubiBtaXIgQmVzY2hlaWQgc2FnZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyYWZpa2ZyZXVkaWdlciBnZXN1Y2h0IChIYXRlLCAxNy4gTWFyIDIwMDAsIDA3OjQxOjUzKToKSGksCgppY2ggc3VjaGUgamVtYW5kZW4gZGVyIGVpbmlnZXJtYXNzZW4gbWl0IEdyYWZpayBndXQgZHJhdWYgaXN0IHVuZApqZW1hbmQgZGVyIG1pciBldmVudHVlbGwgYmVpIGVpbmlnZW4gU2hvY2t3YXZlIEZsYXNoIEZyYWdlbgphbnR3b3J0ZW4ga2Fubi4KCkljaCBoYWJlIGF1Y2ggbGV0enRlbnMgbWFsIG1pdCBlaW5lbSBnZXNwcm9jaGVuLCBhYmVyIGxlaWRlciBoYWJlIGljaApkZW4gTmFtZW4gdmVyZ2Vzc2VuLiAKCkhhdGUsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFtYnVyZ2VyIGdlc3VjaHQhIChMdWcsIDIxLiBNYXIgMjAwMCwgMjI6MjI6NTEpOgoKTW9pbiwKCgppc3QgZWluZXIgdm9uIEV1Y2ggYXVzIEhhbWJ1cmc/IFVuZCBtb2VjaHRlIGF1ZiBkaWUgUmVsZWFzZSBQYXJ0eQpQcmltb3JpZGxhL1RoeXJmaW5nPyBVbmQga2FubiAyIExldXRlIGRhbmFjaCB1bnRlcmJyaW5nZW4/CgoKV2VubiBKYTogTWFpbCBhbiBtaWNoLgoKTHVnCihHYWVzdGVsaXN0ZW5mdWVsbGVyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgTGludXgtTGl0LiAoQXRveiwgMTQuIEFwciAyMDAwLCAxMzoyOTozMCk6Ckh1aHUsIHNpZWhlIG9iZW46CgpJY2ggc3VjaGUgTGludXggRWluc3RlaWdlcmxpdGVyYXR1ci4gU3ByaWNoOiBJY2ggYmluIERBVSBhbHNvIGJpdHRlIHdhcywgd2FzCmljaCBhdWNoIHZlcnN0ZWhlbiBrYW5uLi4uICwpKSkKQWxzbywgd2VubiBqZW1hbmQgZWluZW4gVGlwIGZ1ZXIgZWluIEJ1Y2ggaGF0LCBvZGVyIGd1dGUgbGlua3Mga2VubnQuLi4gd2FlcmUKbmV0dCwgd2VubiBJaHIgbWlyIG1haWxlbiBrb2VubnRldC4uLgoKVHNjaGF1LCBBdG96IC0gZ2VuZXJ2dCAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTdWNoZSBMaW51eC1MaXQuIChHcmltbWJvcm4sIDE0LiBBcHIgMjAwMCwgMTk6MDM6MzApOgp+IyEgcm49QXRveiBydD05NTU3MTE3NzAgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTU3MTE3NzAKS29mbGVyLiBLb2ZsZXIuIFVuZCBLb2ZsZXIuCkRhcyBMaW51eC1BbndlbmRlcmhhbmRidWNoIHZvbiBTZWJhc3RpYW4gSGV0emUgZXQuIGFsLiBpc3QgYXVjaCBnYW56IG9rLCB1bmQKZXJzdGF1bmxpY2ggZ3V0IGlzdCBkYXMgQnVjaCBMaW51eCBmdWVyIER1bW1pZXMuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTdWNoZSBMaW51eC1MaXQuIChHbm9tZSwgMTQuIEFwciAyMDAwLCAyMDoxMjoyNik6Cn4jISBybj1BdG96IHJ0PTk1NTcxMTc3MCByZz1hbnplaWdlbgp+IyEgdGlkPTk1NTcxMTc3MAphdWNoIGdhbnogZ3V0IGlzdCBkYXMgYnVjaCAnamV0enQgbGVybmUgaWNoIGxpbnV4JyB2b24gdW5kIG1pdApzdGVmYW5pZSB0ZXVmZWwuIHZlcmxhZyBtYXJrdCZ0ZWNobmlrLiBpc2JuIDMtODI3Mi01NDMzLTcuIDUwIGRtLgoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxBUlAgKFBhcmFjZWxzdXMsIDE0LiBBcHIgMjAwMCwgMjE6MTM6MzUpOgp+IyEgb249SWxsaWFuIG90PTk1NTczMTI3MiBvZz1hbGxnZW1laW5lcwpBdWYgV3Vuc2NoIHVuc2VyZXMgYXJtZW4gVmVyZWluc2xlaXRlcnMgbW9lY2h0ZSBpY2ggYXVmIGRpZSBHZWxlZ2VuaGVpdApoaW53ZWlzZW4sIGltIHdlc3RmYWVsaXNjaGVuIEhlc3NlbG4sIHp3aXNjaGVuIEJpZWxlZmVsZCB1bmQgT3NuYnJ1ZWNrCmdlbGVnZW4sIGFtIFdvY2hlbmVuZGUgdm9tIDI4LjA0LTAxLjA1IGFuIGVpbmVtIExBUlAgdGVpbHp1bmVobWVuLgpXZXIgSW50ZXJlc3NlIGhhdCwgaW5mb3JtaWVydCBzaWNoIGFtIGJlc3RlbiBwZXIgSW50ZXJuZXQuIE1vZWdsaWNoZXIgRWluc3RpZWcKaXN0IHVlYmVyIHd3dy5hc3RhLnVuaS1vc25hYnJ1ZWNrLmRlIHVuZCBkYW5uIExpbmtzIHp1bSBXZWx0ZW53YW5kZXJlci4KVmllbCBTcGFzcyBiZWltIExhcnBlbgp3dWVuc2NodCBJbGxpYW4KLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmpPYlMhIChNeXN0ZXJpb3VzLCAxOC4gQXByIDIwMDAsIDEzOjQ4OjAyKToKa29ubmktY2hpLXdhIQoKZHUgd29sbHRlc3Qgc2Nob24gaW1tZXIgbWFsIGluIGRlciBoYXVwdHN0YWR0IGxlYmVuIHVuZCBhcmJlaXRlbj8KZGllIGJlcmxpbmVyIHNjaG5hdXplIGlzcyBkaXIgbmljaCB6dXdpZGVyPwpkdSBoYXN0IGx1c3QsIGluIGVpbmVyIGtsZWluZW4gdW5kIGZlaW5lbiB3ZWJkZXNpZ24tYWdlbnR1ciBkZWluZQptb2VnbGljaGtlaXRlbiBhYnp1Y2hlY2tlbj8KaGF1cHRzYWVjaGxpY2gga3VuZGVuIGF1cyBkZW0gbXVzaWstYml6IHNjaHJlY2tlbiBkaWNoIG5paGN0IGFiPwpkdSBrZW5uc3QgZGljaCBtaXQgdW5peC9tYWNvcy93aW5kb29mIGF1cz8KZHUga2FubnN0IGh0bWwvamF2YXNjcmlwdC9wZXJsL3BocC9mbGFzaC93bWwgdW1nZWhlbj8KCm9kZXIgZmFsbHMgZHUgZWluIGxhZXBwaXNjaGVyIGdyYWZpay1kZXNpZ25lciBzZWluIHNvbGx0ZXN0Li4uCgpTQ0hBVSBNSUNIIEFOOiBodHRwOi8vd3d3LmRlZmNvbS5kZQoKCnNheW91bmFyYQogICAgIG1Zc3RlcmlPdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBqT2JTISAoQW5ha2luLCAxOC4gQXByIDIwMDAsIDE2OjM0OjIzKToKfiMhIHJuPU15c3RlcmlvdXMgcnQ9OTU2MDU4NDgyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTU2MDU4NDgyCkhpLAoKaXN0IGRlZmNvbSBuaWNodCB2b24gSm9ubnkgZGVtIEZyaXR6IE1vZGVyYXRvcj8KCkFuYWtpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogak9iUyEgKE15c3RlcmlvdXMsIDE5LiBBcHIgMjAwMCwgMTk6MjY6MTEpOgp+IyEgcm49QW5ha2luIHJ0PTk1NjA2ODQ2MyByZz1hbnplaWdlbgp+IyEgdGlkPTk1NjA1ODQ4Mgp5byA6KQouLiBhYmVyIGV4LWZyaXR6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaXR0ZWxhbHRlcm1hcmt0IGluIFd1cHBlcnRhbCAoS2FydG9mZmVsLCAyNC4gQXByIDIwMDAsIDAwOjIxOjE0KToKSG9pLAoKYW0gNi4vNy4gNS4gaXN0IGluIFd1cHBlcnRhbCBlaW4gTWl0dGVsYWx0ZXJtYXJrdCwgYXVmIGRlbSB1LmEuIGF1Y2ggSW4KRXh0cmVtbyBhdWZ0cmV0ZW4uCgpLZW5udCBzaWNoIGplbWFuZCBpbiBXdXBwZXJ0YWwgYXVzIHVuZCBrYW5uIG1pciBuZSBXZWdiZXNjaHJlaWJ1bmcgdm9uIGRlciBBNDYKenVyIFN0cmFzc2UgJ0FtIEphZ2RoYXVzJyAoYW5nZWJsaWNoIFctRWxiZXJmZWxkKSBzY2hpY2tlbj8KCkRhcyB3YWVyIHN1cGVybmV0dCwKJ1RvZmZlbCAtIHNpdHp0IHNjaG9uIGF1ZiBoZWlzc2VuIEtvaGxlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1pdHRlbGFsdGVybWFya3QgaW4gV3VwcGVydGFsIChSb25kYSwgMjUuIEFwciAyMDAwLCAxODowOTowNik6Cn4jISBybj1LYXJ0b2ZmZWwgcnQ9OTU2NTI4NDc0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTU2NTI4NDc0CkhpIFRvZmZlbCwKCnZlcnN1Y2ggZWluZmFjaCAoKmdyaW5zKiBuYWphLi4uKSBtYWwsIFBoaWxvdSBpbSBNdWQgYW56dXRyZWZmZW46IGRlciB3b2hudCBpbgpFbGJlcmZlbGQuCgpUc2NodWVzcywKClJvbmRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyZWNsYWltIHRoZSBuaWdodCEgKE15c3RlcmlvdXMsIDI1LiBBcHIgMjAwMCwgMjE6NDA6MjYpOgpmdWVyIGRpZSBsb2lkeiwgZGllIGFtIDE0LjA1LjIwMDAgbm9jaCBuaXggdm9yaGFiZW46CiAgICAgICAgIGh0dHA6Ly9ydHMuc3F1YXQubmV0L3J0bgoKYyB5YQogICBtWXN0aQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogak9iUyEgKEFuYWtpbiwgMjYuIEFwciAyMDAwLCAwOTo0NTozMyk6Cn4jISBybj1NeXN0ZXJpb3VzIHJ0PTk1NjE2NTE3MSByZz1hbnplaWdlbgp+IyEgdGlkPTk1NjA1ODQ4MgoKSG1tIHdlciBtYWNodCBkZW5uIGpldHp0IENoYW9zcmFkaW8/CgpBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBqT2JTISAoTXlzdGVyaW91cywgMjcuIEFwciAyMDAwLCAyMjowODoyNik6Cn4jISBybj1BbmFraW4gcnQ9OTU2NzM1MTMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTU2MDU4NDgyCmtvbi1iYW4td2EhCgpuYWphLCBkYXMgbWFjaHQgam9obm55IGFiZXIgc2Nob24gc2VpdCBhbmZhbmcgZGVzIGphaHJlcyBuaWNoIG1laHIuLi4KaWNoIGdsYXViLCBkYXMgd2V4ZWx0IG4gYmlzc2NoZW4uIG1laXN0ZW5zIHdhcmVucyBob2xnZXIgdW5kIGFkaSAoZGllLCBkaWUKYXVjaCBzb25zdCBtaXR0d29jaHMgZGVuIHRlY2huaWstYmx1ZW1vb24gbWFjaGVuKSB1bmQgZGFubiB3YXIgZGEgZWlubWFsIG5vY2gKaXJnZW5kc29laW5lIGZyYXUsIGRpZSBpY2ggbm9jaCBuaWNoIGthbm50ZS4KCmhtbS4uIGRhIGZhZWxsdCBtaXIgZ3JhZCBhdWYsIGRhc3MgaWNoIGdlc3Rlcm4gZGFzIGNoYW9zIHZlcnBhc3N0IGhhYi4gbmFqYSwKZGllIGJlYXRudXRzIHdhcm4gYmVzdGltbXQgcGhhdHRhICpnKgoKZHVpaWkKIG1Zc3RpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSQUdFLUthcnRlbnNwaWVsIChNZXNpcmlpLCAgMi4gTWFpIDIwMDAsIDAwOjEyOjAwKToKQW4gZGllIFJhZ2VzdWVjaHRpZ2VuIE1pdHNwaWVsZXIsCmFscyBpY2ggdm9yIHp3ZWkgVGFnZW4gaW4gbmVtIFNwaWVsZWxhZGVuIHdhciwgbGFjaHRlIG1pY2ggZG9jaCBlaW4gUmFnZXNwaWVsCmFuLiBJY2ggaGF0dGUgaGllciBudXIgZ2Vob2VydCBkYXNzIGVzIGZydWVoZXIgd29obCBtYWwgZWluIFJhZ2UgenUga2F1ZmVuCmdhYiBhYmVyIGRhcyBoaWVyIHNpZWh0IG5ldSBhdXMuCkthcnRlbjogNiBGYWJlbngxNSBLYXJ0ZW4gMiBKb2tlciwgM3ggLSs1LCA0eFRydW1wZih3ZWNoc2VsLGJsb2NrKQpBbWlnbyBTcGllbGUKTWVzaSwgUmFnZS1CZXNpdHplcgpzaWVoZSBhdWNoIHd3dy5hbWlnby1zcGllbGUuZGUgZGllIGhhYmVuIGF1Y2ggaGFlbmRsZXJhZHJlc3NlbiBkYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJBR0UtS2FydGVuc3BpZWwgKFByYSwgIDIuIE1haSAyMDAwLCAxMDo1MjoyMCk6Cn4jISBybj1NZXNpcmlpIHJ0PTk1NzIxOTEyMCByZz1hbnplaWdlbgp+IyEgdGlkPTk1NzIxOTEyMAp3aWUgdGV1ZXI/CgpQcmEuIEsmawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSQUdFLUthcnRlbnNwaWVsIChQYXJhY2Vsc3VzLCAgMi4gTWFpIDIwMDAsIDEwOjU1OjU4KToKfiMhIHJuPVByYSBydD05NTcyNTc1NDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTcyMTkxMjAKMTEKClBhcmEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXRhLU1pbmluZy1DdXAgMjAwMCAoQWxib2luLCAgMy4gTWFpIDIwMDAsIDA5OjU4OjMxKToKV2VpbCBhbGxlcyBtb21lbnRhbiBudXIgdm9uIEluZGVybiB1bmQgYW5nZWJsaWNoZW4gTWFuZ2VsIGFuCkNvbXB1dGVyc3BlemlhbGlzdGVuIHJlZGV0LCBoYXQgdW5zZXJlIEZpcm1hIGVpbmVuIHN0dWRlbnRpc2NoZW4gV2V0dGJld2VyYiwKZGVuIAoKICAgRGF0YS1NaW5pbmctQ3VwIDIwMDAKCmF1c2dlc2NocmllYmVuLiBEaWUgQXVmZ2FiZW5zdGVsbHVuZyBkZXMgRGF0YS1NaW5pbmctQ3VwIDIwMDAgYmVzdGVodCBpbiBkZXIKQW5hbHlzZSB2b24gYXVzIGRlciBQcmF4aXMgc3RhbW1lbmRlbiBEYXRlbi4gRXMgc29sbCBhdWYgZGVyIEJhc2lzIGRpZXNlcgp2b3JnZWdlYmVuZW4gRGF0ZW4gZWluIFZvcmhlcnNhZ2Vtb2RlbGwgZXJzdGVsbHQgd2VyZGVuLiBEaWUgZWluZ2VyZWljaHRlbgpNb2RlbGxlIHdlcmRlbiB2b24gZWluZXIgZmFjaGt1bmRpZ2VuIEp1cnkgYmV3ZXJ0ZXQuCgpEYXMgWmllbCBkaWVzZXMgV2V0dGJld2VyYnMgaXN0IGVzIGRhcyBJbnRlcmVzc2UgYW4gRGF0YS1NaW5pbmcgenUgd2Vja2VuLgpEYXRhLU1pbmluZyBpc3QgZWluZSByZWNodCBqdW5nZSBlcmZvbGd2ZXJzcHJlY2hlbmRlIERpc3ppcGxpbiBkaWUKVmVyYmluZHVuZ2VuIHp3aXNjaGVuIGRlbiBHZWJpZXRlbiBLdWVuc3RsaWNoZSBJbnRlbGxpZ2VueiwgbWF0aGVtYXRpc2NoZQpTdGF0aXN0aWssIERhdGVuYmFua2VuLCBNYXJrZXRpbmcgdW5kIENvbnRyb2xsaW5nIGhlcnN0ZWxsdC4KCldlciBpbnRlcmVzc2llcnQgaXN0LCBtZWhyIEluZm9ybWF0aW9uZW4gZ2lidCBlcyBhdWYgCgpodHRwOi8vd3d3LmRtYzIwMDAuZGUKCkFsYm9pbgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEYXRhLU1pbmluZy1DdXAgMjAwMCAoS2FyaXMsICAzLiBNYWkgMjAwMCwgMTE6MjI6NDEpOgp+IyEgcm49QWxib2luIHJ0PTk1NzM0MDcxMSByZz1hbnplaWdlbgp+IyEgdGlkPTk1NzM0MDcxMQpIbW0uLi4gd2FzIGhhdCBkYXMgbnVuIG1pdCBlaW5lbSBNYW5nZWwgYW4gRmFjaGtyYWVmdGVuIHp1IHR1bj8KRGFzIHNpZWh0IG1pciBtZWhyIG5hY2ggZGVyIC0genVnZWdlYmVuZXJtYXNzZW4gZmFzdCBzY2hvbiBnZW5pYWxlbgpJZGVlIGF1cywgYSkgZWluIG5vY2ggdW5iZWthbm50ZXMgUHJvZ3JhbW0gdW50ZXJzIFZvbGsgenUgYnJpbmdlbiwKYikgc2ljaCBSZWZlcmVuemFud2VuZHVuZ2VuIGZ1ZXIgZGllc2VzIFByb2dyYW1tIHp1IGJlc29yZ2VuIHVuZCBjKQpnbGVpY2ggbm9jaCBlaW4gZ3Jvc3NhbmdlbGVndGVzIFNjcmVlbmluZyBkdXJjaHp1ZnVlaHJlbi4KCkFiZXIgd2llIGF1Y2ggaW1tZXIgLSBlcnN0bWFsIHdpbGwgaWNoIGRpZSBBdWZnYWJlIHNlaGVuLgoKS2FyaXMuIEtlaW4gU3R1ZGVudCBtZWhyLiBGcmFndCBzaWNoIGRlc2hhbGIsIG9iIGRpZSBBdWZnYWJlIGF1Y2gKb2huZSBkaWVzZSBhbmdlcHJhbmdlcnRlIFNXIGdlbG9lc3Qgd2VyZGVuIGthbm4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmd1dCZiaWxsaWcgKEJ1YmJhLCAgNC4gTWFpIDIwMDAsIDE3OjQxOjMyKToKCkRhIGljaCBpbiBkZXIgV29jaGUgdm9tIDI2Li0zMC4gSnVuaSBpbiBNdWVuY2hlbiB6dSB0dW4gaGFiZSwgc3VjaGUgaWNoIGZ1ZXIKZGVpIFplaXQgJ25lIEJsZWliZSBpbSBSYXVtIE1hcnRpbnNyaWVkIG9kZXIgdmVya2VocnN0ZWNobmlzY2ggZ3VlbnN0aWdlciBMYWdlCmRvcnRoaW4uIFdlciBoYXQgJ25lbiBUaXAsIHdvIG1hbiBpbiBkZXIgR2VnZW5kIG9kZXIgaW4gTXVlbmNoZW4KZ3J1bmRzYWV0emxpY2ggZ3V0IHVuZCBiaWxsaWcgZWluIFppbW1lciBiZWtvbW1lbiBrYW5uPyE/CkJpdHRlIE1haWwgYW4gbWljaCEKCkJ1YmJhCgpQUzogZGVyIG5hZWNoc3RlIEJpZXJnYXJ0ZW4gc29sbHRlIHNpY2ggenUgRnVzcyBub2NoIGJlcXVlbSBlcnJlaWNoZW4gbGFzc2VuIC0KYWJlciBkYXMgc29sbHRlIGltIE11ZW5jaGVuZXIgUmF1bSBqYSBvaG5laGluIGtlaW4gYWxsenUgZ3Jvc3NlcyBQcm9ibGVtIHNlaW4hCjstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGd1dCZiaWxsaWcgKFd1cnplbCwgIDQuIE1haSAyMDAwLCAyMjo1NzozMSk6Cn4jISBybj1CdWJiYSBydD05NTc0NTQ4OTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTc0NTQ4OTIKZGFzIG1pdCBkZW0gYmllcmdhcnRlbiBpc3QgaW4gZGVyIHRhdCBrZWluIHByb2JsZW0uIGd1dGUgemltbWVyIGdpYnRzIGF1Y2gsCm51ciBkYXMgbWl0IGRlbSAiYmlsbGlnIiB3aXJkIG5pY2h0IHNvIGdhbnoga2xhcHBlbi4uLgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGd1dCZiaWxsaWcgKEJ1YmJhLCAgNS4gTWFpIDIwMDAsIDEzOjI2OjUzKToKfiMhIHJuPVd1cnplbCBydD05NTc0NzM4NTEgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTc0NTQ4OTIKCjEwMC0xMjAgVGFja2VuIHNpbmQgbm9jaCBpbSBncnVlbmVuIEJlcmVpY2ghIE1pciBpc3Qga2xhciwgZGFzcyBtYW4gaW4KTXVlbmNoZW4ga2VpbmUgdmllciBTdGVybmUgZnVlciBkZW4ganVnZW5kaGVyYmVyZ3NwcmVpcyBiZWtvbW10Li4ub2J3b2hsIGVzIGphCmVpZ2VudGxpY2ggaW1tZXIgaXJnZW5kd2VsY2hlIEF1c25haG1lbiBnaWJ0Li4uYWJlciBkaWUgenUga2VubmVuLi4uICpzZXVmeioKOy0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFpbC1GcmV1bmRzY2hhZnQgZ2VzdWNodCAoUHVyemVsLCAgOC4gTWFpIDIwMDAsIDE1OjAwOjU1KToKSWNoIHNjaHJlaWJlIGltIEF1ZnRyYWcgbWVpbmVyIFNjaHdlc3RlciwgZGllIHNlaXQga3VyemVtIGVpbmVuIEludGVybmV0enVnYW5nCmhhdCB1bmQgc2ljaCBNYWlsLUZyZXVuZHNjaGFmdGVuIHd1ZW5zY2h0LgpLYXRyaW4gaXN0IDIyIEphaHJlIGFsdCwgbGllYnQgVGllcmUgKHZvciBhbGxlbSBQZmVyZGUpIHVuZCBOYXR1ci4gClZvciAzIDEvMiBKYWhyZW4gaGF0dGUgc2llIGVpbmVuIEF1dG91bmZhbGwgdW5kIHNpdHp0IHNlaXRoZXIgaW0gUm9sbHN0dWhsLApzZWl0IGRlbSBoYXQgc2llIGxlaWRlciBrYXVtIG5vY2ggS29udGFrdCB6dSBhbmRlcmVuIGp1bmdlbiBNZW5zY2hlbi4KV2VyIGlociBnZXJuZSBzY2hyZWliZW4gbW9lY2h0ZSwgc29sbCBzaWNoIGJlaSBtaXIgbWVsZGVuIGljaCBnZWIgaWhyZSBBZHJlc3NlCmRhbm4gd2VpdGVyLgpEYW5rZSBmdWVyIEV1ZXIgVmVyc3RhZW5kbmlzLgoKUHVyemVsIChQZmVpZmUpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFpbC1GcmV1bmRzY2hhZnQgZ2VzdWNodCAoR2xvaW4sICA4LiBNYWkgMjAwMCwgMTU6MTQ6MDcpOgp+IyEgcm49UHVyemVsIHJ0PTk1Nzc5MDg1NSByZz1hbnplaWdlbgp+IyEgdGlkPTk1Nzc5MDg1NQpOZWluLCBkYXMgaXN0IGpldHp0IG5pY2h0IGZpZXMgZ2VtZWludDoKV2FydW0gYmVzb3Jnc3QgRHUgaWhyIGtlaW5lIFN0YW5kbGVpdHVuZz8gRGFubiBtdXNzdCBEdSBzaWUgbnVyIG5vY2ggYXVmCkNoYXQtUGFnZXMgb2RlciBkYXMgTW9yZ2VuZ3JhdWVuIHZlcndlaXNlbi4gV2VubiBpY2ggbWFsIGR1cmNoemFlaGxlLApzaW5kIG1pdHRsZXJ3ZWlsZSBkaWUgbWVpc3RlbiBtZWluZXIgUkwtRnJldW5kZSBhdWNoIGlyZ2VuZHdpZSBpbSBNVUQKbWl0IG1pciB2ZXJidW5kZW4uIEUtTWFpbCBudXR6ZSBpY2ggd2VzZW50bGljaCBzZWx0ZW5lci4KT2huZSBhdWYgYW5kZXJlIHNjaGxpZXNzZW4genUgd29sbGVuLgoKR2xvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFpbC1GcmV1bmRzY2hhZnQgZ2VzdWNodCAoUHVyemVsLCAgOC4gTWFpIDIwMDAsIDE1OjE2OjE1KToKfiMhIHJuPUdsb2luIHJ0PTk1Nzc5MTY0NyByZz1hbnplaWdlbgp+IyEgdGlkPTk1Nzc5MDg1NQpTaWUgaGF0IGxlaWRlciBzZWlyIHN0YXJrZSBQcm9ibGVtZSBpaHJlIEJld2VndW5nZW4genUga29vcmRpbmllcmVuIHVuZCBrYW5uCm51ciBsYW5nc2FtIHRpcHBlbiwgZGVzd2VnZW4gaXN0IGRhcyBrZWluZSBzbyBndXRlIElkZWUKUHVyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYWlsLUZyZXVuZHNjaGFmdCBnZXN1Y2h0IChHcmltbWJvcm4sICA4LiBNYWkgMjAwMCwgMTU6NDU6MzUpOgp+IyEgcm49UHVyemVsIHJ0PTk1Nzc5MTc3NSByZz1hbnplaWdlbgp+IyEgdGlkPTk1Nzc5MDg1NQpPaG5lIGdlbmF1IGRpZSBha3R1ZWxsZW4gTW9lZ2xpY2hrZWl0ZW4genUga2VubmVuOiBXaWUgc2llaHRzIG1pdApTcHJhY2hlcmtlbm51bmdzc29mdHdhcmUgYXVzPwoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFpbC1GcmV1bmRzY2hhZnQgZ2VzdWNodCAoQ2F0d2VhemxlLCAgOC4gTWFpIDIwMDAsIDE2OjQ5OjQyKToKfiMhIHJuPVB1cnplbCBydD05NTc3OTA4NTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTc3OTA4NTUKS2xhciBrZWluIFByb2JsZW0sIGthbm5zdGUgbWFsICpodWVzdGVsKiBlaW4gQmlsZCBiZWlsZWdlbj8KCllvdXJzIHRydWx5LAogICAgIENhdHdlYXpsZSAobWFuY2htYWwgZ2VtZWluIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSVNETi1Nb2JpbHRlbGVmb24gKE9iZXJtb3R6LCAyNS4gTWFpIDIwMDAsIDE0OjIyOjQ0KToKTmFjaCBkZW0gaWNoIG1laW5lIFdvaG51bmcgdW1nZXJhZXVtdCBoYWJlLCBrYW5uIGljaCBuaWNodCBnbGVpY2h6ZWl0aWcgYW0KQ29tcGkgc2l0emVuIHVuZCB0ZWxlZm9uaWVyZW4gKFRlbGVmb25zY2hudXJyIGlzdCBudW4genUga3VyeikuClVuZCBkYXNzIGlzdCBlaW4gZ3V0ZXIgR3J1bmQsIG1pciBtZWluZW4gYWx0ZW4gV3Vuc2NoIG5hY2ggZWluZW0gTW9iaWx0ZWxlZm9uCnp1IGVyZnVlbGxlbiAoRGllIFRlbGVmb25zdHJpcHBlIHJlaWNodCBhdWNoIG5pY2h0IGJpcyBpbnMgZ2V3aXNzZSBPZXJ0Y2hlbgo7LSkpCkRhcnVtIG1hbCBtZWluZSBGcmFnZTogV2VsY2hlcyBUZWxlZm9uIGtvZW5udCBJaHIgZGEgZW1wZmVobGVuLiBFcyB3YWVyZSBuZXR0LAp3ZW5uIGVzIGF1Y2ggZWluZW4gQUIgaGF0LCBkZXIgZnVlciAyIFJ1Zm51bW1lcm4gMiB2ZXJzY2hpZWRlbmUgQW5zYWdldGV4dGUKdW50ZXJzdHVldHplbiB3dWVyZGUuCgpPYmVybW90eiBoYXQgc2ljaCBkZW4gWFhMLVRhcmlmIGdlZ29lbm50IHVuZCB3aWxsIG51biBTb25udGFncyBhdWNoIGF1cyBqZWRlcgpFY2tlIGRlciBXb2hudW5nIHRlbGVmb25pZXJlbiBrb2VubmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSVNETi1Nb2JpbHRlbGVmb24gKEd1YXJkLCAyNS4gTWFpIDIwMDAsIDE0OjI3OjQzKToKfiMhIHJuPU9iZXJtb3R6IHJ0PTk1OTI1NzM2NCByZz1hbnplaWdlbgp+IyEgdGlkPTk1OTI1NzM2NAp3ZW5uIGR1IGlzZG4gaGFzdCBicmF1Y2hzdCBkdSBlaWdlbnRsaWNoIGtlaW4gYWIgZXh0cmEsIGthbm5zdGUgdG5ldGJveApudXR6ZW4uIGVzIGdpYnQgbmFlbWxpY2gga2VpbmUgaXNkbi1nZXJhdGUsIGRpZSBtb2JpbCBzaW5kIHVuZCBhYiBoYWJlbiEgOi0pCmZ1ZXJuIG1vYmlsdGVsZWZvbiBtdWVzc3Rlc3RlIHNvIHVtIGRpZSA1MDAgbWFlcmtlciBiZXJhcHBlbiAKYWxsZSBhbmdhYmVuIHZvbm5lciB0ZWxla29tIGF1c2dlaGVuZCAuLi4gd2llIGVzIGJlaSBhbmRlcmVuIGFuYmlldGVybgphdXNzaWVodCAgLSB3ZWlzcyBpY2ggbmljaAoKZ3VhcmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJU0ROLU1vYmlsdGVsZWZvbiAoVGlhbWFrLCAyNS4gTWFpIDIwMDAsIDE0OjI4OjQ3KToKfiMhIHJuPU9iZXJtb3R6IHJ0PTk1OTI1NzM2NCByZz1hbnplaWdlbgp+IyEgdGlkPTk1OTI1NzM2NApTb2Zlcm4gRHUgbmljaHQgZ2VyYWRlIERlaW4gZWlnZW5lcyBHZWxkIGRydWNrc3QsIHd1ZXJkZSBpY2ggYW5hbG9nZQpFbmRnZXJhZXRlIGhpbnRlciBlaW5lbSBhL2ItV2FuZGxlciBlbXBmZWhsZW4uIFNjaG51cmxvc2UgSVNETi1UZWxlZm9uZSAtIGVyc3QKcmVjaHQgbWl0IGludGVncmllcnRlbSBBQiAtIGtvc3RlbiBpbSBCZXJlaWNoIHZvbiA4MDAsLSBiaXMgMTAwMCwtIERNLiBEaWUKYW5hbG9nZSBWYXJpYW50ZSBrb21tdCBfZGV1dGxpY2hfIGJpbGxpZ2VyLCB6dW1hbCBtYW4gYXVjaCBub2NoIHNlaW5lCnZvcmhhbmRlbmVuIEdlcmFldGUgd2VpdGVybnV0emVuIGthbm4gdW5kIGRlciBhL2ItV2FuZGxlciBqYSBlaCBkdXJjaCBkaWUKVGVsZWtvbSBnZXNwb25zb3J0IHdpcmQgYmVpIGVpbmVtIE5ldXZlcnRyYWcuCgpVbmQgZGllIG1laXN0ZW4gS29tZm9ydG1lcmttYWxlIGthbm4gbWFuIGF1Y2ggd3VuZGVyYmFyIG1pdCBzZWluZW4gYW5hbG9nZW4KR2VyYXJ0ZW4gYmVudXR6ZW4uCgpUaWFtYWsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSVNETi1Nb2JpbHRlbGVmb24gKE9iZXJtb3R6LCAyNS4gTWFpIDIwMDAsIDE0OjMwOjI5KToKfiMhIHJuPUd1YXJkIHJ0PTk1OTI1NzY2MyByZz1hbnplaWdlbgp+IyEgdGlkPTk1OTI1NzM2NApJY2ggd2Vpc3MsIGRhc3MgaWNoIGRpZSBCb3ggaGFiZS4gTWFuIG11c3MgZG9ydCBudXIgaW1tZXIgZXJzdCBhbnJ1ZmVuLCB1bSB6dQpzZWhlbiwgb2IgbWFuIGV0d2FzIGRyYXVmIGhhdC4gTGVpZGVyIGtlaW4gTGFlbXBjaGVuLCB3YXNzIGJsaW5rdC4KCk9iZXJtb3R6IGlzdCB2b24gTmF0dXIgYXVzIGZhdWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IElTRE4tTW9iaWx0ZWxlZm9uIChHdWFyZCwgMjUuIE1haSAyMDAwLCAxNDozMTozOCk6Cn4jISBybj1PYmVybW90eiBydD05NTkyNTc4Mjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTkyNTczNjQKZGFzIGlzIGFsbGVyZGluZ3MgU0VIUiBmYXRhbCA6LSkKCkd1YXJkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBJU0ROLU1vYmlsdGVsZWZvbiAoUmlrdXMsIDI1LiBNYWkgMjAwMCwgMTQ6MzQ6MDQpOgp+IyEgcm49R3VhcmQgcnQ9OTU5MjU3ODk4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTU5MjU3MzY0CmhtLCBpY2ggbGFzcyBtaWNoIHZvbiBkZW5lbiBiZW5hY2hyaWNodGlnZW4sIGdlaHQgcGVyIGFucnVmIG9kZXIgc21zLi4uCgpyaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogSVNETi1Nb2JpbHRlbGVmb24gKEd1YXJkLCAyNS4gTWFpIDIwMDAsIDE0OjM0OjQ0KToKfiMhIHJuPVJpa3VzIHJ0PTk1OTI1ODA0NCByZz1hbnplaWdlbgp+IyEgdGlkPTk1OTI1NzM2NAprb3N0IGRhcyB3YXM/CgpHdWFyZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJU0ROLU1vYmlsdGVsZWZvbiAoSGF0ZSwgMjUuIE1haSAyMDAwLCAxNjozODo1MCk6Cn4jISBybj1UaWFtYWsgcnQ9OTU5MjU3NzI3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTU5MjU3MzY0CkRhcyBTd2F0Y2ggSVNETiBpc3QgemllbWxpY2ggY29vbCA6LSkKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IElTRE4tTW9iaWx0ZWxlZm9uIChNYWtpc2gsIDI1LiBNYWkgMjAwMCwgMjE6MTk6MzkpOgp+IyEgcm49VGlhbWFrIHJ0PTk1OTI1NzcyNyByZz1hbnplaWdlbgp+IyEgdGlkPTk1OTI1NzM2NApOYWphYS4uLiBULUNvbmNlcHQgQ1BBNzIwIElzdCBGZXN0c3RhdGlvbiArIENvcmRsZXNzLi4uIFVuZCBmdWVyIDY0OSwtLi4gd2FzCnp3YXIgaW1tZXIgbm9jaCB0ZXVyZXIgaXN0IGFscyBhbmFsb2csIGFiZXIgaW1tZXJoaW4gdW50ZXIgODAwICp6d2lua2VyKgpVbmQgYXVjaCBkYSBoYWIgaWNoIG5vY2ggYW5kZXJlIFZhcmlhbnRlbiBnZXNlaGVuLi4uCgpNYWtpc2gsIGhvZmZlbnRsaWNoIGF1Y2ggYmFsZCBzY2hudXJsb3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IElTRE4tTW9iaWx0ZWxlZm9uIChFdGFpbiwgMjUuIE1haSAyMDAwLCAyMzo1NjozNyk6Cn4jISBybj1PYmVybW90eiBydD05NTkyNTc4Mjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTkyNTczNjQKTm9lLCBzZWl0IG5ldWVzdGVtIG5pY2h0IG1laHIuIER1IGthbm5zdCBEaXIgZGllCkJlbmFjaHJpY2h0aWd1bmcgYXVmJ3MgSGFuZHkgb2RlciBhdWYncyBUZWxlZm9uCnNjaGlja2VuIGxhc3Nlbi4gR3VjayBtYWwgZGllIFdlcmJ1bmcgYW4sIGRpZSBEdSBtaXQgZGVyCmxldHp0ZW4gUmVjaG51bmcgZ2VrcmllZ3QgaGFzdCAoQWJzZW5kZWdydXBwZSA+IDA1KS4KCip3aW5rKgoKRXRhaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhZSAoUmFudGFucGxhbiwgMzAuIE1haSAyMDAwLCAwMTozOTozNyk6CkFzIHRoZSBzdGFycyBhcHBlYXIgLgpBcyB0aGUgc3RhcnMgYXBwZWFyIC4KQXMgdGhlIHN0YXJzIGFwcGVhciAuCkFzIHRoZSBzdGFycyBhcHBlYXIgLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSVNETi1Nb2JpbHRlbGVmb24gKE9iZXJtb3R6LCAzMC4gTWFpIDIwMDAsIDE2OjMwOjUzKToKfiMhIHJuPU1ha2lzaCBydD05NTkyODIzNzkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NTkyNTczNjQKSWNoIGhhYmUgZGFzIGd1dGUgdGVpbCBhdWNoIGdlc2VoZW4uIEdlZmFlbGx0IG1pciBhdWNoIGdhbnogZ3V0LiBEYSBpY2ggZ2VyYWRlCmRhYmVpIGJpbiwgbWVpbmUgTW9iaWxpYXIgenUgZXJuZXVlcm4sIHdhZXJlIG1pciBuYXR1ZXJsaWNoIGVpbmUgMzAwRE0gTG9lc3VuZwpsaWViZXIuLi4KCk9iZXJtb3R6LCBkZXIgaW1tZXIgbm9jaCBhbiBkZXIgU3RyaXBwZSBoYWVuZ3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhNMiAoWmFyZG96LCAyNy4gSnVuIDIwMDAsIDA5OjUxOjE4KToKTnVyIHNvIGFscyBoaW50IGZ1ZXIgZGllIExldXRlLCBkaWUgaW4gbGV0enRlciBaZWl0IGZydXN0cmllcnQgd2FyZW4sIHdhcyBpY2gKdmVyc3RlaG4ga2Fubi4gOikgWnVyIFplaXQgc2luZCBudXIgd2VuaWcgZGFya2llLWxnZHMgb24sIHp1bWluZGVzdCB2b3JtaXR0YWdzCmJpbiBpY2ggZGVyIGVpbnppZ2UgdW5kIGljaCBodW50IGVoIG5pY2h0IHN0YWVuZGlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2FzIGtvbW10IGhpZXIgYmxvcyByZWluID8gKFN0b3BkZW5idXMsICAyLiBKdWwgMjAwMCwgMTM6NDQ6MTkpOgpIaSAhCkljaCBoYWIgZGEgZWluIGJpc3NsSGFyZHdhcmUgYW56dWJpZXRlbjoKZWluIDguOCBNb2RlbSB2b24gWWFrdW1vCnVuZCB6d2VpIFByb3plc3NvcmVuIEFNRCBLNi0yIDMwMCBNaHogbmVic3QgS3VlaGxlciwKClByZWlzZSBuYWNoIFZlcmluYmFydW5nLCBrYW5uIGVoIG5ldCBtZWhyIHZpZWwgZnVlciBWZXJsYW5nZW4gOikKV2VyIHdhcyBoYWJlbiB3aWxsLCBlaW5mYWNoIG1hbG5lIGVtYWlsIGFuIG1pY2ggc2NoaWNrZW4KClN0b3BwaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2VyIG1hZyBuYWNoIGJlcmxpbj8gKE15c3RlcmlvdXMsIDExLiBKdWwgMjAwMCwgMTc6MjM6MjkpOgprb25uaS1jaGktd2EhCgpuYWNoIGRlbSByZWxhdW5jaCB2b24gaHR0cDovL3d3dy5kZWZjb20uZGUgZGllIGZyYWdlOgp3ZWxjaGVSIHByb2dyYW1taWVyZXJJbiwgZGVzaWduZXJJbiwgc3lzYWRtaW5FLCBidWVyb21lbnNjaCB3aWxsIHp1IHVucwprb21tZW4/CgpmdWVyIGVpbiBha3R1ZWxsZXMgcHJvamVrdCBhdWYgYmFzaXMgdm9uIHBocDQgaXN0IHouYi4gYXVjaCB0ZWxlYXJiZWl0Cm1vZWdsaWNoLgoKd2VyIGludGVyZXNzZSBoYXQsIHNjaGF1IHNpY2ggYml0dGUgZGllIHdlYnNlaXRlIGFuLiBkZXIgcmVzdCBtb2VnZSBkaWVzZQphdWZkcmluZ2xpY2hrZWl0IGVudHNjaHVsZGlnZW4gdW5kIGJlaSB6dXJlY2h0d2Vpc3VuZyB3ZXJkIGljaCBtaWNoIGF1Y2ggbmljaHQKd2llZGVyIHZlcnN1ZW5kaWdlbiA6KQoKc2F5b25hcmEsCiAgIG1Zc3RlcklvdXMtc2FuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKEhvb2QsIDExLiBKdWwgMjAwMCwgMTc6Mjk6MzQpOgp+IyEgcm49TXlzdGVyaW91cyBydD05NjMzMjkwMDkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKYWxzbyB1bnRlciBuZXRzY2FwZSBhdWYgbGludXggaXN0IGRpZSBzZWl0ZSBzY2hsZWNodHdlZyB1bmdlbmllc3NiYXIgOikKaWhyIHNvbGx0ZXQgbm9jaCBldHdhcyB1ZWJlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChTaWx2YW5hLCAxMS4gSnVsIDIwMDAsIDE3OjQ1OjQ3KToKfiMhIHJuPU15c3RlcmlvdXMgcnQ9OTYzMzI5MDA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CipzaWdoKgoKTWFsIHdpZWRlciBMZXV0ZSwgZGllIGdsYXViZW4sIGR1bmtlbGJyYXVuIGF1ZiBuaWNodCBnYW56IHNvIGR1bmtlbGJyYXVuIHNlaQpiZWkgZWluZXIgU2NocmlmdGdyb2Vzc2Ugdm9uIDQgUHVua3RlbiBub2NoIGxlc2Jhci4gQWxzbyB3ZW5uIElociBkYXMgdW50ZXIKV2ViZGVzaWduIHZlcnN0ZWh0Li4uIFNvcnJ5LCBfaWNoXyBrYW5uJ3MgamVkZW5mYWxscyBuaWNodCBsZXNlbi4KCiAgU2lsdmFuYSAoYmVpIGRlciBTZWl0ZW4gZGllc2VyIEJhdWFydCBrZWluZSA1c2VjIGF1ZiBkZW0gQmlsZHNjaGlybQpibGVpYmVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoU3RpbmcsIDExLiBKdWwgMjAwMCwgMTg6MzQ6MjIpOgp+IyEgcm49U2lsdmFuYSBydD05NjMzMzAzNDcgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKSHVodSwKCmFsc28gaWNoIGZpbmQgZGllIFNpdGUgdm9tIF9BdXNzZWhlbl8gaGVyIHNlaHIgZ2VsdW5nZW4uIExlaWRlciBtdXNzIGljaAphbGxlcmRpbmdzIFNpbHZhbmEgcmVjaHQgZ2ViZW4sIGRlciBUZXh0IGlzdCBzY2h3ZXIgbGVzYmFyLCBkYSBzb2xsdGV0IGlocgpub2NoIHdhcyBkcmFuIGFlbmRlcm4uIEFuc29uc3RlbiBhYmVyIHdpcmtsaWNoIHNlaHIgZ3V0LiBVbnRlcm0gSUUgdW5kIE5TIGJlaQpXaW5kb3dzIGtsYXBwdCBhbGxlcywgdW5kIGRhcyBpc3QgZGllIEhhdXB0c2FjaGUuIExpbnV4IGludGVyZXNzaWVydApuaWVtYW5kZW4sIHNvIHNlaHIgZXVjaCBkYXMgdmllbGxlaWNodCBhdWNoIGF1ZnJlZ2VuIG1hZywgb2RlciBpaHIgZGFzIHdpZWRlcgplaCBuaWNodCBnbGF1YnQgOikgVWVicmlnZW5zIGludGVyc3NpZXJ0IGF1Y2ggTlMgZmFzdCBuaWVtYW5kZW4gbWVociwgYWt0dWVsbGUKWmFobGVuIHNpbmQgemllbWxpY2ggZXJiYWVybWxpY2ggZnVlciBOZXRzY2FwZSAod2FzIGF1Y2gga2VpbiBXdW5kZXIgaXN0LCBiZWkKZGVtIHNjaGxlY2h0ZW4gQnJvd3Nlci4uLikuIE5TIDYgaXN0IHVlYnJpZ2VucyB3aWVkZXIgZXR3YXMgYW5kZXJzLCBkYSBzb2xsdGV0CmlociBnbGVpY2ggYXVjaCBtYWwgdGVzdGVuLCBpY2ggdWViZXJhcmJlaXRlIG1vbWVudGFuIGVpbmlnZSBtZWluZXIgU2VpdGVuLApkYW1pdCBkYSBhdWNoIGFsbGVzIGtsYXBwdC4uLgoKR3J1c3MsClN0aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoR3JpbW1ib3JuLCAxMS4gSnVsIDIwMDAsIDE5OjQ4OjQ3KToKfiMhIHJuPVN0aW5nIHJ0PTk2MzMzMzI2MiByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpXZXIgSUUtIG9kZXIgTlMtU2VpdGVuIHN0YXR0IGh0bWwtU2VpdGVuIGVyc3RlbGx0IG1hY2h0IG1laW5lciByaWNodGlnZW4KTWVpbnVuZyBuYWNoIGVoIHdhcyBncnVuZGxlZ2VuZGVzIHZlcmtlaHJ0LiBBYmVyIGRhc3MgSFRNTCBlaW5lCmxheW91dHVuYWJoYWVuZ2lnZSBTZWl0ZW5iZXNjaHJlaWJ1bmdzLSAodW5kIG5pY2h0IHNlaXRlbmRhcnN0ZWxsZW5kZSkgU3ByYWNoZQppc3QgZ2xhdWJ0IGVpbmVtIGphIG1pdHRsZXJ3ZWlsZSBlaCBrZWluZXIgbWVoci4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFN0aW5nLCAxMS4gSnVsIDIwMDAsIDE5OjUzOjAxKToKfiMhIHJuPUdyaW1tYm9ybiBydD05NjMzMzc3Mjcgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKSEFMTE9PT09PIEdSSU1NQk9STiA6KQoKUmVkIHZvbiBuaXggdm9uIGRlbSBkdSBrZWluZSBBaG51bmcgaGFzdC4KClN0aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoU2lsdmFuYSwgMTEuIEp1bCAyMDAwLCAxOTo1NzoxMSk6Cn4jISBybj1TdGluZyBydD05NjMzMzc5ODEgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKT2NoLCBHcmltbWJvcm4gaGF0IHNjaG9uIFJlY2h0LgpFcyBpc3QgZWluIFVudGVyc2NoaWVkLCBvYiBtYW4gSFRNTC1Eb2t1bWVudGUgc2NocmVpYnQsIG9kZXIgV2Vic2VpdGVuCmVudHdpcmZ0LiBEYXNzIGJlaWRlcyBpbiBkZXIgYW5nZWJsaWNoIGdsZWljaGVuIFNwcmFjaGUgZ2VzY2hpZWh0IGhhdCBwcmltYWVyCmhpc3RvcmlzY2hlIEdydWVuZGUuIChPSywgZGFzIHdhciBqZXR6dCB6eW5pc2NoLikgRGFzcyBoZXV0ZSBrZWluIEJyb3dzZXIKcmVpbmVzIEhUTUwgNC4wIHNhdWJlciBpbnRlcnByZXRpZXJlbiBrYW5uLCBsaWVndCBhbiBNYXJrZXRpbmctR3J1ZW5kZW4uCgpLdXJ6IHVuZCBib2VzZTogV2VyIFdlYnNlaXRlbiBiZXNjaHJlaWJlbiB3aWxsLCBkaWUgdWViZXJhbGwgZ2xlaWNoIChvZGVyCmhpbnJlaWNoZW5kIGFlaG5saWNoKSBhdXNzZWhlbiwgbXVzcyBkaWUgRGF0ZWllbiB6dW1pbmRlc3QgZnVlciBkaWUgYWt0dWVsbGVuCkJyb3dzZXIgb3B0aW1pZXJlbi4gQWJlciBtaXQgZGVtLCB3YXMgSFRNTCB1cnNwcnVlbmdsaWNoIG1hbCBzZWluIHNvbGx0ZSwgaGF0CmRhcyBuaWNodCBtZWhyIHZpZWwgenUgdHVuLgoKU2lsdmFuYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKEdyaW1tYm9ybiwgMTEuIEp1bCAyMDAwLCAyMDowMToyNSk6Cn4jISBybj1TaWx2YW5hIHJ0PTk2MzMzODIzMSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpJY2ggaGFiIGtlaW4gUHJvYmxlbSBkYW1pdCwgYmVpIGVpbmlnZW4gV2Vic2VpdGVuICJhdXNnZXNwZXJydCIgenUgc2VpbiwgaWNoCm11c3MgbWlyIGphIG5pY2h0IGFsbGVzIGFuZ3Vja2VuLiBPZmZlbnNpY2h0bGljaCBiaW4gaWNoIGZ1ZXIgdmllbGUgZ2FyIG5pY2h0ClppZWxncnVwcGUuCkRhcyBQcm9ibGVtLCBkYXMgbWljaCB3aXJrbGljaCBiZXNjaGFlZnRpZ3QgaXN0LCB3aWUgaWNoIGRpZXNlCldlYnNlaXRlbmdlc3RhbHRlciBkYXp1IGJyaW5nZW4ga2FubiwgaWhyZSBFcmtlbm50bmlzLCBkYXNzIGljaCBrZWluIGxvaG5lbmRlcgpwb3RlbnRpZWxsZXIgS3VuZGUgYmluLCBtaXQgZGVuIFNwYW1tZXJuIHp1IHRlaWxlbiwgZGFtaXQgZGllIG1pY2ggYXVjaCBnbGVpY2gKaWdub3JpZXJlbi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFN0aW5nLCAxMS4gSnVsIDIwMDAsIDIwOjAxOjM1KToKfiMhIHJuPVNpbHZhbmEgcnQ9OTYzMzM4MjMxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5Ck5laW4sIGVyIGhhdCBuaWNodCBSZWNodCA6KQoKSWhyIGFsYmVybmVuIFN0dWRlbnRlbiB3aXNzdCBkb2NoIG5pY2h0bWFsIHdhcyBkaWUgTGV1dGUgaGV1dHp1dGFnZSB3b2xsZW4uCldhcyBJSFIgd29sbHQgaXN0IHdhcyBhbmRlcnMgYWxzIGRhcyB3YXMgOTAlIGFsbGVyIEt1bmRlbiB3b2xsZW4uIERhcyBpc3QgbWFsCmRhcyBlcnN0ZS4KClVuZCBEVU1NRVJXRUlTRSBpbnRlcnByZXRpZXJ0IHpiLiBOZXRzY2FwZSAoYXVjaCBJRSwgYWJlciBkZXIgX3dlc2VudGxpY2hfCmJlc3NlcikgX29mZml6aWVsbGVfIFczQy1IVE1MLVRhZ3MgZmFsc2NoIHVuZC9vZGVyIGFuZGVycy4gQXVjaCBPcGVyYSBpc3QgZGEKbmljaHQgYXVzZ2Vub21tZW4sIG9id29obCBkZXIgZWggbnVyIDAsNSUgTWFya3RhbnRlaWwgaGF0LiBJaHIgc29sbHRldCBrZWluZQpCZWhhdXB0dW5nZW4gYXVmc3RlbGxlbiwgb2huZSBlcyBnZW5hdSB6dSB3aXNzZW4uIEhUTUwgYW4gc2ljaCBpc3QgYWJnZXNlaGVuCmRhdm9uIGF1Y2ggRVhUUkVNIHRyYWVnZS4gV2VubiBpY2ggdWViZXJsZWdlIGRhcyBIVE1MIDUgdGhlb3JldGlzY2ggc2Nob24KX2xhbmdlXyB2ZXJhYnNjaGllZGV0IHNlaW4ga29lbm50ZSwgYWJlciBzaWNoIGVpbmZhY2ggbml4IHR1dCwgZGFubiB3dW5kZXJ0IGVzCm1pY2gga2VpbiBiaXNzY2hlbiBkYXMgemIuIE1pY3Jvc29mdCAoYWJlciBhdWNoIE5TKSBlaWdlbmUgVGFncyBlaW5mdWVocnQgdW0KYmVzdGltbXRlIFNhY2hlbiB6dSB2ZXJlaW5mYWNoZW4sIHVuZCBpY2ggZmluZGUgZXMgYWxzIEVudHdpY2tsZXIgYXVjaAp2b2xsa29tbWVuIHJpY2h0aWcgc28uIFB1bmt0LiAKClN0aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoR3JpbW1ib3JuLCAxMS4gSnVsIDIwMDAsIDIwOjA0OjQxKToKfiMhIHJuPVN0aW5nIHJ0PTk2MzMzODQ5NSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpJY2ggdmVyc3RlaGUgRGVpbmUgQXVmcmVndW5nIG5pY2h0LiBEYXMgaXN0IE1hcmt0d2lydHNjaGFmdC4gRHUgYmlzdCBBbmJpZXRlci4KV2VubiBEdSBhbiBtaXIgdm9yYmVpYW5iaWV0ZXN0LCB6LkIuIHdlaWwgRGlyIGFuZGVyZSB3aWNodGlnZXIgc2luZCwgZGFubiBnZWh0CmRhcyBmdWVyIG1pY2ggdm9lbGxpZyBpbiBPcmRudW5nLiBEYW5uIGJpbiBpY2ggaGFsdCBuaWNodCBEZWluIChwb3RlbnRpZWxsZXIpCkt1bmRlLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoRGllZGVyLCAxMS4gSnVsIDIwMDAsIDIwOjA1OjM5KToKfiMhIHJuPVN0aW5nIHJ0PTk2MzMzODQ5NSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQphbGJlcm5lIFN0dWRlbnRlbj8gU2F1YmVyIGFsbGVzIGluIGVpbmVuIFRvcGYgZ2V3b3JmZW4sIEFwcGxhdXMuLi4KCkljaCBzdGltbWUgRGlyIHp1IGRhc3MgSFRNTCBiencgVzMgemllbWxpY2ggdHJhZWdlIGlzdCAod2VpbCBpY2ggc2VsYnN0CmltbWVyaGluIGpldHp0IHNlaXQga25hcHAgNyBKYWhyZW4gc2VpbmUgRW50d2lja2x1bmcgdmVyZm9sZ2UpLCBhYmVyIGRhZnVlciwKZGFzcyBzaWNoIEhUTUwgdm9uIGVpbmUgQmVzY2hyZWlidW5ncy0genUgZWluZXIgRGFyc3RlbGx1bmdzc3ByYWNoZSBlbnR3aWNrZWx0CmhhdCBrb2VubmVuIGRpZSBhdWNoIG5pY2h0IHZpZWwuCgpBbHMgRW50d2lja2xlciBiaXN0ZSBuYXR1ZXJsaWNoIHN1cGVyIGRyYW4gd2VubiBtYW4gYWxsZXMgc2Nob2VuIGZ1ZXIKTWlja2lzY2hyb3R0IGVudHdpY2tlbHQsIGRhIGhhdCBtYW4gZGVuIGdyb2Vzc3RlbiBLdW5kZW5rcmVpcyB1bmQga2FubiBpbQpQcm9ibGVtZmFsbCBhbGxlcyBtaXQgZWluZW0gbGFlc3NpZ2VuICJOdXR6dCBoYWx0IElFIiBhYnR1bi4gVG9sbC4KCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKEdyZWlmYXgsIDExLiBKdWwgMjAwMCwgMjA6MDY6NTEpOgp+IyEgcm49RGllZGVyIHJ0PTk2MzMzODczOSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQprb2VubnQgaWhyIGJpdHRlIGRlbiAqLWtyaWVnIGluIGRpc2t1c3Npb24gb2RlciBhZWhubGljaGVzIHZlcmxlZ2VuPwoKZGFua2UsIGdyZWlmYXgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChTaWx2YW5hLCAxMS4gSnVsIDIwMDAsIDIwOjA3OjEzKToKfiMhIHJuPUdyaW1tYm9ybiBydD05NjMzMzg0ODUgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKV2VubiBEdSBuZW4gV2VnIGZpbmRlc3QsIGRhcyB6dSBiZXdlcmtzdGVsbGlnZW4sIHNhZyBtaXIgQmVzY2hlaWQuLi4gRGllIFNhY2hlCm1pdCBkZW0gUnVlY2t1bXNjaGxhZWdlbiBiZWkgUG9zdHd1cmZzZW5kdW5nZW4gaXN0IHNjaG9uIGhpbGZyZWljaCwgYWJlciBkaWUKdWVibGljaGVuIFNwYW0tTWFpbHMgdW5kIHdhcyBuaWNodCBzb25zdCBhbGxlcy4uLiAqc2lnaCoKClNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChSb25kYSwgMTEuIEp1bCAyMDAwLCAyMDowNzozNSk6Cn4jISBybj1TdGluZyBydD05NjMzMzg0OTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKSHJncy4gU3RpbmcsIGRhc3MgRHUgZGFzIGFscyAiRW50d2lja2xlciIgLSB3YXMgaW1tZXIgZGFzIHNlaW4gbWFnIC0gb2sKZmluZGVzdCwgZGFzcyBOJCB1bmQgTSQgZmxlaXNzaWcgcHJvcHJpZXRhZXJlbiBLcmFtIHByb2dyYW1taWVyZW4uLi4ga2FubiBpY2gKbmljaHQgdmVyc3RlaGVuLgpJY2ggd3VlcmdlIHNlaXQgZXRsaWNoZW4gVGFnZW4gYW4gUHJvYmxlbWVuIHJ1bSwgZGllIGRhZHVyY2ggZW50c3RlaGVuLCBkYXNzCmRpZSBiZWlkZW4gYW0gaGFldWZpZ3N0ZW4gdmVyd2VuZGV0ZW4gQnJvd3NlciBzZWhyIG1lcmt3dWVyZGlnZSBCdS4uLiBhZWggLQpGZWF0dXJlcyBhdWZ3ZWlzZW4uCgpFZ2FsIHdpZTogSFRNTCBpc3QgZnVlciBMYXlvdXQgaW0gU2lubmUgdm9uICJiZWkgbWlyIGF1ZiBkZW0gUmVjaG5lciBzaWVodHMKZ2VuYXVzbyBhdXMgd2llIGF1ZiAoZmFzdCkgYWxsZW4gYW5kZXJlbiBSZWNobmVybiIgYWJzb2x1dCBzY2guLi4sIHVtIG5pY2h0IHp1CnNhZ2VuIHVuZ2VlaWduZXQuIFVuZCBtaXQgY3NzIHVuZCBkZW4gaHVlYnNjaGVuIFJhbmRlZmZla3RlbiB3aXJkIGRhcyBudXIgenVtClRlaWwgYW5kZXJzLgoKSXN0IGFiZXIgYXVjaCBudXIgbWVpbmUgcGVyc29lbmxpY2hlIG1laW51bmcgZWluZXMgIkhvYmJ5LVdlYnNlaXRlbi1CYXN0bGVycyIuCgpSb25kYQoKUHM6IFdpZSB3aXJkIG1hbiBlaWdlbnRsaWNoICJFbnR3aWNrbGVyIj8gV2FzJ24gZGFzIGdlbmF1PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFN0aW5nLCAxMS4gSnVsIDIwMDAsIDIwOjA5OjQ5KToKfiMhIHJuPVJvbmRhIHJ0PTk2MzMzODg1NSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpUamEuLi4gaW0gSUUgZnVua3Rpb25pZXJ0IGRhcyBtaXQgQ1NTIHNlaHIgd29obCA6KSBhYmVyIGRlciBJRSBoYWVsdCBzaWNoIGphCmF1Y2ggYW4gZGllIFczQy1Wb3JnYWJlbi4uLgpVZWJyaWdlbnMgZ2VodCBkYXMgYXVjaCBpbSBOUyA2IHd1bmRlcmJhciAobmFqYSB6dW0gR3Jvc3N0ZWlsIGplZGVuZmFsbHMuLi4pClVuZCBEaWVkZXI6IEljaCB0dSBuaXggbWl0ICJudXR6IGhhbHQgbXMiIGFiLCBkYXMga2FubiBpY2ggbWlyIGdhciBuaWNodApsZWlzdGVuLi4uClVuZCBkYXMgbWl0IGRlbiBTdHVkZW50ZW4gaXN0IG1pciByZWxhdGl2IGVnYWwsIG9iIGR1IGRhcyBhbmRlcnMgc2llaHN0LiBCZWkKX2Zhc3RfIGplZGVyIFVudGVyaGFsdHVuZyBtZXJrIGljaCBoYWx0IGRhcyBkaWUgU3R1ZGlzIG1laXN0ZW5zIHdlaXQgYWIgdm9uCmRlciBSZWFsaXRhZXQgZGVua2VuIDopCgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKE1hdGlzLCAxMS4gSnVsIDIwMDAsIDIxOjAyOjE0KToKfiMhIHJuPVN0aW5nIHJ0PTk2MzMzODk4OSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpFbmRsaWNoLCBoYXR0ZW4gd2lyIGxhbmcgbmljaHQgbWVocjogR2xhdWJlbnNrcmllZywgVmVyYWxsLQpnZW1laW5lcnVuZ2VuLCAiaWNoIHdlaXNzIGFsbGVzIHVuZCBpaHIgZ2FyIG5pY2h0cyIgLSBzbwprb21tdCB3aWVkZXIgTGViZW4gaW4gZGllIE1QQS4KCk1hdGlzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoUGlsZ3JpbSwgMTEuIEp1bCAyMDAwLCAyMzo1Mzo1Nyk6Cn4jISBybj1TdGluZyBydD05NjMzMzg5ODkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKU29zbywKCj5JaHIgYWxiZXJuZW4gU3R1ZGVudGVuIHdpc3N0IGRvY2ggbmljaHRtYWwgd2FzIGRpZSBMZXV0ZSBoZXV0enV0YWdlIHdvbGxlbi4KPldhcyBJSFIgd29sbHQgaXN0IHdhcyBhbmRlcnMgYWxzIGRhcyB3YXMgOTAlIGFsbGVyIEt1bmRlbiB3b2xsZW4uIERhcyBpc3QgbWFsCj5kYXMgZXJzdGUuCgpIbW0sIG51ciB3ZWlsIDkwJSBhbGxlciBMZXV0ZSBtZWluZW4sIGRhc3MgJ2JsYXVlIEJpbGRzY2hpcm1lJyBiZWkgV2luZG93cwpnYW56IG5vcm1hbCBzaW5kLCBkZW5rJyBpY2ggZGFzIGxhbmdlIG5vY2ggbmljaHQgOy0pCgpXYXMgYW5kZXJlIHdvbGxlbiB3ZWlzcyBpY2ggbmljaHQgLSBiaW4gamEga2VpbiBIZWxsc2VoZXIgLSBpY2ggd2Vpc3MgYWJlciwKd2FzIGljaCB3aWxsLgoKPiBCZWkKPiBfZmFzdF8gamVkZXIgVW50ZXJoYWx0dW5nIG1lcmsgaWNoIGhhbHQgZGFzIGRpZSBTdHVkaXMgbWVpc3RlbnMgd2VpdCBhYiB2b24KPiBkZXIgUmVhbGl0YWV0IGRlbmtlbiA6KQpKYSwgYWJlciBkYXMgbWl0IGRlciBSZWFsdGl0YWV0c2Zlcm5lIGhvZXJ0IHNjaGxhZ2FydGlnIGF1Ziwgd2VubiBzaWUKZmVydGlnIHN0dWRpZXJ0IGhhYmVuIHVuZCBzaWUgYW5mYW5nZW4genUgRW50d2lja2VsbiAuLi4gYXVzc2VyIGJlaQpNYXJrZXRpbmdsZXV0ZW4gLi4uIGRhIGhvZXJ0IHNpZSBuaWUgYXVmIDstKQoKc29ycnksIGtvbm50ZSBuaWNodCB3aWVkZXJzdGVoZW4gOy0pClBpbGdyaW0KClBTOiBJY2ggZ2ViZSB6dSwgaWNoIHdlaXNzIG5vY2ggbmljaHQgbWFsLCB3b3J1bSBlcyBoaWVyIGVpZ2VudGxpY2ggZ2VodCwgCmRhIGljaCBtaXIgZGllIGVudHNwcmVjaGVuZGVuIFNlaXRlbiBuaWNodCBhbmdlc2VoZW4gaGFiZSAoaGFiJ3MgYXVjaCBuaWNodAp2b3IpCi4uLiBhYmVyIGRpZSBXZWhlbWVucywgbWl0IGRlciBoaWVyICdhcmd1bWVudGllcnRlJyB3aXJkIGxhZXNzdCBtaWNoIGFuIGRhcwpTcHJpY2h3b3J0IGRlbmtlbjogJ1dlciBzY2hyZWl0IGhhdCB1bnJlY2h0Ii4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoSGF0ZSwgMTIuIEp1bCAyMDAwLCAwNzo1MDo0MSk6Cn4jISBybj1TdGluZyBydD05NjMzMzg5ODkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKQWxzbyBpY2ggd2Vpc3MgZ2FybmljaHQgd2FzIGlociBoYWJ0LiBNYW4gbmltbXQgbmUgWE1MIEJlc2NocmVpYnVuZyBkZXIKSW5mb3JtYXRpb25lbiB1bmQgamFndCBzaWUgZHVyY2ggZWluZW4gVHJhbnNmb3JtYXRvciwgZGVyIGplIG5hY2ggQnJvd3NlcgplbnRzcHJlY2hlbmQgZGllIElFL05TLWVpZ2VuZW4gVGFncyBlcnpldWd0LiBBYmdlc2VoZW4gZGF2b24sIGRhc3MgbWFuCmRhZHVyY2ggdm9uIGplZ2xpY2hlbiB6dWt1ZW5mdGlnZW4gVmVyYWVuZGVydW5nZW4gaW4gSFRNTCB1bmFiaGFlbmdpZwppc3QsIGlzdCBlcyBmdWVyIGRpZSBJbmhhbHRlLU1hY2hlIGF1Y2ggZWluZmFjaGVyLCBkYSBzaWUgc2ljaCBudXIKbm9jaCBkYXJ1bSBrdWVtbWVybiBtdWVzc2VuIC4uLiB3YXMgYXVjaCBpbnNnZXNhbXQgYXVjaCBiZXNzZXIgaXN0LgpEaWVzZSBpbmhhbHRzbG9zZW4gRGVzaWduc2VpdGVuIHNpbmQgd2lya2xpY2ggZ3JhdXNpZywgZGllIG1hbiBzbwpmaW5kZXQuCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJzYXR6YnJvd3NlciBnZXN1Y2h0IChUcnVnLCAxMi4gSnVsIDIwMDAsIDA4OjUxOjIyKToKU3VjaGUgRXJzYXR6IGZ1ZXIgTmV0c2NhcGUsIGRlbiBpY2ggbGVpZGVyIGF1Y2ggaW1tZXIgd2llZGVyIHRyb3R6IGFiZ2VkcmVodGVuCkphdmFTY3JpcHRzIG1pdCAna2lsbCAtOSBwaWQnIGJlZGVua2VuIG11c3MgdW5kIHNvIHppZW1saWNoIGRhcyBlaW56aWdlIGlzdCwKd2FzIGltbWVyIHdpZWRlciBhYnN0dWVyenQuIAoKR2lidCBlcyBmdWVyIExpbnV4IGRhIGVpbmUgdmVybnVlbmZ0aWdlIEFsdGVybmF0aXZlLCBkaWUgd2VkZXIgUVQgbm9jaCBHVEsKdm9yYXVzc2V0enQ/IEZ1ZXIgZGllIFNoZWxsIGhhYiBpY2ggamEgbHlueC4KClRydWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXJzYXR6YnJvd3NlciBnZXN1Y2h0IChHcmltbWJvcm4sIDEyLiBKdWwgMjAwMCwgMTE6MDI6NTApOgp+IyEgcm49VHJ1ZyBydD05NjMzODQ2ODIgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzODQ2ODIKa29ucXVlcm9yIG1hY2h0IG1pdHRsZXJ3ZWlsZSBlaW5lbiBnYW56IG9yZGVudGxpY2hlbiBFaW5kcnVjay4gQWJlciB3ZW5uIE5TCkRpciBfc29fIGhhZXVmaWcgYWJzdHVlcnp0IHJlaWNodCBlcyB2ZXJtdXRsaWNoLCB3ZW5uIER1IGVudHdlZGVyIGVpbmVuCmFlbHRlcmVuIE5TIG5pbW1zdCAofjQuNSkgb2RlciBEZWluZSB4bGlicyB1cGRhdGVzdC4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFdvb2R5LCAxMi4gSnVsIDIwMDAsIDEzOjQ4OjE3KToKfiMhIHJuPUhhdGUgcnQ9OTYzMzgxMDQxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5ClN0aW1tdC4gRnVlciBEQVRFTnJlcHJhZXNlbnRhdGlvbiB1bmQgLWF1c3RhdXNjaCBvaG5lIFZlcmx1c3RlIGlzdApYTUwgZWluZmFjaCBkaWUgZGVyemVpdCBlaW56aWcgcmljaHRpZ2UgV2FobC4gSGllciAoUHJlc3NldGV4dC5hdCwKaW0gTW9tIG5hY2ggLmNoIHVuZCAuZGUgZXhwYW5kaWVyZW5kKSB2ZXJ3ZW5kZW4gd2lyIGF1Y2ggbnVyIG5vY2gKWE1MLCB1bmQgd2lyIGhhYmVuIGRvY2ggcmVjaHQgdmllbGUgSW5oYWx0ZSA6KS4gVW5kIGRhcyBpc3Qgd29obApuaWNodCBhbHMgImFsYmVybmUgU3R1ZGVudGVuIiBhYnp1dHVuLCBoaWVyIGdlaHRzIHVtIHdlaXQgbWVociA6KQpXb2JlaSBpY2ggZGVua2UsIGRhc3MgU3R1ZGVudGVuIG9mdG1hbHMgaW1tZXIgbm9jaCB3ZWl0IHp1a3VuZnRzLQpzaWNoZXJlcmUgTG9lc3VuZ2VuIGVudHdpY2tlbG4uIERlc2lnbiBvaG5lIEluaGFsdGUgaXN0IEthZXNlLgpJbmhhbHRlIG9obmUgRGVzaWduIHNpbmQgd2VuaWdzdGVucyBicmF1Y2hiYXIuIFVuZCBEZXNpZ24ga2FubgptYW4gbGVpY2h0IG5hY2hydWVzdGVuIDopCgoKV29vZHkuLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoTXlzdGVyaW91cywgMTIuIEp1bCAyMDAwLCAxNTo0MzowOCk6Cn4jISBybj1IYXRlIHJ0PTk2MzM4MTA0MSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpuaSBoYW8hCgp2aWVsZW4gZGFuayBmdWVyIGV1cmUga29tbWVudGFyZSwgYWhicyBhbiBkZW4gZGVzaWduZXIgd2VpdGVyZ2VsZWl0ZXQuCnVlYnJpZ2VucyBmaW5kZSBpY2gsIGRhc3MgZGVzaWduIGF1Y2ggZHVyY2hhdXMgb2huZSBpbmhhbHQgZXhpc3RpZXJlbiBkYXJmLgprb21tdCBlYmVuIGRhcmF1ZiBhbiwgd2FzIG1hbiBtYWNoZW4gbW9lY2h0ZTsgZGFzIGF1Z2Ugc3VyZnQgbWl0IDopCgpzYXlvbmFyYSwKIG1Zc3RFcmlPdXMKCnAucy46IGF1ZiBtZWluZW0gbGludXggbmV0c2NhcGUgKDQuNykgc2llaHRzIHRyb3R6ZGVtIGd1dCBhdXM7IGFiZXIKd2FocnNjaGVpbmxpY2ggaGFiIGljaCBtaWNoIHNjaG9uIGFuIHNjaHdlciBsZXNiYXJlIHNjaHJpZnQgZ2V3b2VobnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFN0aW5nLCAxMi4gSnVsIDIwMDAsIDE5OjU1OjEyKToKfiMhIHJuPU15c3RlcmlvdXMgcnQ9OTYzNDA5Mzg4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CkhpZXIgbm9jaG1hbCBlaW4gS29tbWVudGFyIHZvbiBBbCBTcGFyYmVyIChkZW4gdmllbGxlaWNodCBlaW5pZ2Ugdm9uIGV1Y2gKa2VubmVuPykgenUgZGVtIFRoZW1hIDopCgpUaGVyZSdzIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGJlaW5nIHBhc3Npb25hdGUgYWJvdXQgYSBzdWJqZWN0LCBhbmQgYmVpbmcKcnVkZS4KCk9idmlvdXNseSwgTmV0c2NhcGUgaXMgZXN0ZWVtZWQgYnkgc29tZSBwZW9wbGUuIFRoYXQncyBmaW5lIHdpdGggbWUuIEl0CmRvZXNuJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQgaXQgaXMgYSBwb29ybHkgd3JpdHRlbiBicm93c2VyLiBUaGUgdHJhZGl0aW9uYWwKY29wb3V0IGZyb20gTmV0c2NhcGUgaXMgdGhhdCBpdCdzLCB1aC4uLiBhbG1vc3QgMyB5ZWFycyBvbGQuIFlldC4uLiB0aGUKYXZlcmFnZSBjb21wdXRlciB1c2VyIGhhcyBiZWVuIGxlZCB0byBiZWxpZXZlIHRoYXQgdGhlcmUgaGF2ZSBiZWVuIHVwZ3JhZGVzCmFsbCBhbG9uZyBmcm9tIDQuMCB0byA0LjczLgoKVGhlIHByb2R1Y3QgaXMgYmFkLiBJZiB5b3UgY2FuJ3Qgc2VlIHRoYXQsIHlvdSBhcmUgY2VydGFpbmx5IGluIHRoZQptaW5vcml0eS4gQnV0IEkgcmVzcGVjdCB5b3VyIHJpZ2h0IHRvIGRpc2FncmVlLiBCdXQgSSdtIGNlcnRhaW5seSBub3QgZ29pbmcKYmUgcXVpZXQgYWJvdXQgYSBzdWJzdGFuZGFyZCBwcm9kdWN0IHRoYXQgY29zdCBwZW9wbGUgdGltZSBhbmQgbW9uZXkuCgpJZiBwZW9wbGUganVzdCBzdG9wcGVkIGFuZCByZWFsbHkgdGhvdWdodCBoYXJkIGFib3V0IHdoYXQKTmV0c2NhcGUgaXMgZG9pbmcuLi4gdGhleSBtaWdodCByZWFsaXplIGl0J3MgYSBsYXN0IGRpdGNoIHN0YWIgYXQgc2F2aW5nCnRoZWlyIGJyYW5kLiBGb3JnZXQgd2hhdCBhIGplcmsgR2F0ZXMgaXMuIFRoYXQgaXMgbm90IHRoZSBpc3N1ZS4gQXMKZGFzdGFyZGx5IGFzIE1pY3Jvc29mdCBoYXMgYmVlbiBhdCB0aW1lcy4uLiBJRTUgd29ya3MuIEZyYW1lcyB3b3JrIHJpZ2h0LgpMYXllcnMgd29yayByaWdodC4gQ29sb3JzIGV2ZW4gbG9vayBiZXR0ZXIuIE5vdCB0byBtZW50aW9uIHRleHQuIE5ldHNjYXBlIDYKY2FuIGJlIGEgZ3JlYXQgcHJvZHVjdC4gQnV0IHRoZXkgYXJlIHRyeWluZyB0byBidXJ5IHRoZSBkaXNmaWd1cmVkIGNoaWxkCnRoYXQgaXMgTmV0c2NhcGU0LiBUaGV5IG93ZSB1cyBhbGwgYW4gYXBvbG9neS4KCgpBbAoKClN0aW5nIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFRpYW1haywgMTIuIEp1bCAyMDAwLCAyMTozMjozMCk6Cn4jISBybj1TdGluZyBydD05NjM0MjQ1MTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKPiBUaGVyZSdzIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGJlaW5nIHBhc3Npb25hdGUgYWJvdXQgYSBzdWJqZWN0LAo+IGFuZCBiZWluZyBydWRlLgoKT2ggd2llIHJlY2h0IGVyIGRvY2ggaGF0LiAKCkFiZXIgZGFzcyBkaWVzZXMgWml0YXQgYXVzZ2VyZWNobmV0IHZvbiBkZW1qZW5pZ2VuIGFuZ2VmdWVocnQgd2lyZCwgZGVyIGluCmRpZXNlciBEaXNrdXNzaW9uIG1pdCBzbyBmcmV1bmRsaWNoZW4gU2FldHplbiB3aWU6Cgo+IFJlZCB2b24gbml4IHZvbiBkZW0gZHUga2VpbmUgQWhudW5nIGhhc3QuCm9kZXIKPiBJaHIgYWxiZXJuZW4gU3R1ZGVudGVuIHdpc3N0IGRvY2ggbmljaHRtYWwgd2FzIGRpZSBMZXV0ZSBoZXV0enV0YWdlIHdvbGxlbi4KCmdlZ2xhZW56dCBoYXQsIG1hY2h0IGRpZSBBcmd1bWVudGF0aW9uIG5pY2h0IGdlcmFkZSBnbGF1Ynd1ZXJkaWdlci4KCgpUaWFtYWsgc2FndDogIkdlaGUgZGlyZWt0IGF1ZiBTdGFydC4gR2VoZSBuaWNodCB1ZWJlciBMb3MuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFcnNhdHpicm93c2VyIGdlc3VjaHQgKFRydWcsIDEyLiBKdWwgMjAwMCwgMjE6NTE6MDkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk2MzM5MjU3MCByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzM4NDY4MgpIYWIgbWlyIEFtYXlhIGJlc29yZ3QuLi4gaXMgZ3V0IDopCgpUcnVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFN0aW5nLCAxMi4gSnVsIDIwMDAsIDIyOjEzOjAwKToKfiMhIHJuPVRpYW1hayBydD05NjM0MzAzNTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKKmtpY2hlcioKCklzdCBtaXIgZG9jaCByZWxhdGl2IGVnYWwgd2FzIGR1IGRhenUgbWVpbnN0LCBpY2ggYmluIGViZW4gZWluIGFycm9nYW50ZXMKQXJzY2hsb2NoIDopClVuZCBmcmV1bmRsaWNoIHNvbGx0ZSBlcyBuaWUgc2Vpbi4gSWNoIHNhZyBudXIgZGFzIHdhcyBpY2ggZGVua2UsIHVuZCBkYSBuZWhtZQppY2ggX2tlaW5fIEJsYXR0IHZvciBkZW4gTXVuZCAod2FydW0gc29sbHRlIGljaCBkYXMgYXVjaCB0dW4/KSBBdXNzZXJkZW0gbWFnCmljaCBhdWNoIGtlaW5lIFZlcmFsbGdlbWVpbmVydW5nZW4sIGFiZXIgZGllc2VyIFNhdHogdm9uIG1pciB0cmlmZnQgaGllciBhdWYKX3NvdmllbGVfIExldXRlIHp1IGRhcyBlcyBmYXN0IHNjaG9uIGtlaW5lIFZlcmFsbGdlbWVpbmVydW5nIG1laHIgaXN0IDopIE1hbAphYmdlc2VoZW4gZGF2b24gdGFuZ2llcnQgbWljaCBkYXMgZWggYWxsZXMgbnVyIHBlcmlwaGVyLCBpY2ggc2NobGllc3NlIG1pY2gKUGlsZ3JpbSBpbiBzZWluZXIgTWVpbnVuZyBhbiwgZGFzIHNpY2ggZGllIFNpY2h0d2Vpc2UgZGVyZXIgUGVyc29uZW4gYXVjaApzcGFldGVzdGVucyBhZW5kZXJ0IHdlbm4gc2llIG1hbCByaWNodGlnIGFyYmVpdGVuIDopCgpTdGluZywgYXJyb2dhbnQgdW5kIHZlcmFsbGdlbWVpbmVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChUcmFuY2UsIDEyLiBKdWwgMjAwMCwgMjI6MjE6MDIpOgp+IyEgcm49U3RpbmcgcnQ9OTYzMzM4OTg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5Cj4gLi4uIGRpZSBTdHVkaXMgbWVpc3RlbnMgd2VpdCBhYiB2b24gZGVyIFJlYWxpdGFldCBkZW5rZW4gOikgLi4uCnp1bSBHbHVlY2sgdHVuIHNpZSBkYXMuIHNvbnN0IHd1cmRlIHNpY2ggbml4IGFlbmRlcm4gdW5kIGVzIGthZW1lIG5peCBuZXVlcy4KCkFuc29uc3RlbiBiaW4gaWNoIGZyb2gsIGRhc3MgTVMgc2VpbmUgYmVzdGVuIFRhZ2UgaGludGVyIHNpY2ggaGF0IC4uLiBrb21tdAptYWwgd2llZGVyIExlYmVuIGluIGRpZSBTb2Z0d2FyZWJ1ZGUgOykKClRyYW5jZSwgYXVjaCB2b20gRmFjaCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChTdGluZywgMTIuIEp1bCAyMDAwLCAyMjoyMjoyMCk6Cn4jISBybj1UcmFuY2UgcnQ9OTYzNDMzMjYyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CldhcnVtIGdsYXVic3QgRHUgZGFzIE1TIHNlaW5lIGJlc3RlbiBUYWdlIGhpbnRlciBzaWNoIGhhdCA/CgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChUaWFtYWssIDEyLiBKdWwgMjAwMCwgMjI6MzM6MzkpOgp+IyEgcm49U3RpbmcgcnQ9OTYzNDMyNzgwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CkF1ZiBkZXIgZWluZW4gU2VpdGUgaXN0IGVzIGphIG5ldHQgdm9uIERpciwgZGFzcyBEdSBtaXIgZGllIGdhbnplIEFyYmVpdAphYm5pbW1zdCB1bmQgRGljaCBzZWxiZXIgZGVyYXJ0IGRpc3F1YWxpZml6aWVyc3QuIERhcyBoYWV0dGUgaWNoIG5pY2h0IGJlc3NlcgpoaW5nZWtyaWVndC4gTnVyIHNjaGFkZSBpcmdlbmR3aWUsIGRhc3MgRHUgZGllIERpc2t1c3Npb24gYXVmIGRpZSBBcnQgc28KYWJ3dWVyZ3N0LiBIYWV0dGUgZWlnZW50bGljaCBlaW4gc2Nob2VuZXIgRmxhbWUtV2FyIHdlcmRlbiBrb2VubmVuLgoKRGVuIFRpdGVsICJhcnJvZ2FudGVzIEFyc2NobG9jaCIgdmVyZGllbnN0IER1IHVlYnJpZ2VucyBuaWNodC4gRnJhZyBtYWwgUmluZ29yCmRhbmFjaCwgd2llIG1hbiBzaWNoIGRlbiBlcmFyYmVpdGV0LiBEaWUgcGFhciAiSWNoIGtlbm4gbWljaCBhdXMgdW5kIGlociBoYWJ0CmFsbGUga2VpbmUgQWhudW5nIi1BcnRpa2VsIHJlaWNoZW4gZGEga2F1bSBhdXMuCgoKVGlhbWFrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKFN0aW5nLCAxMi4gSnVsIDIwMDAsIDIyOjM1OjQ5KToKfiMhIHJuPVRpYW1hayBydD05NjM0MzQwMTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKQml0dGUgOikKR2xhdWJlIGljaCBhdWNoIG5pY2h0LgpJY2ggbWFnIGtlaW5lIEZsYW1lLVdhcnMuCldlaXNzIG5pY2h0IG9iIGljaCBkZW4gVGl0ZWwgdmVyZGllbmUuIEFiZXIgZnVlciBhcnJvZ2FudCBoYWVsdCBtaWNoIGVoIGRpZQpIYWVsZnRlIGhpZXIgOikKCgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChUcmFuY2UsIDEyLiBKdWwgMjAwMCwgMjI6Mzk6MDMpOgp+IyEgcm49U3RpbmcgcnQ9OTYzNDMzMzQwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5Cj4gV2FydW0gZ2xhdWJzdCBEdSBkYXMgTVMgc2VpbmUgYmVzdGVuIFRhZ2UgaGludGVyIHNpY2ggaGF0ID8KaWNoIGhhYiBkYXMgaW0gVXJpbi4gRGVuIG5hZWNoc3RlbiBQYXJhZGlnbWVuc2hpZnQgd2VyZGVuIHNpZSBuaWNodCBhdWZob2xlbgprb2VubmVuLCBzbyB3aWUgc2llIGVzIGJlaW0gSW50ZXJuZXQgZ2VzY2hhZmZ0IGhhYmVuLiBBYmVyIGRhcyB6dSBkaXNrdXRpZXJlbgppc3QgbXVlc3NpZywgdW5kIGljaCBrYW5uIG1pY2ggYXVjaCBqYSBhdWNoIGlycmVuLiBRdWUgc2VyYSwgc2VyYSA6KQoKVHJhbmNlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChQYXJhY2Vsc3VzLCAxMy4gSnVsIDIwMDAsIDA5OjQ1OjA3KToKfiMhIHJuPVRyYW5jZSBydD05NjM0MzQzNDMgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKV2VubiBkYW5uIG5pY2h0IGRpZSBQYXJhZGlnbWEtUG9saXplaSB2b3JiZWlrb21tdCB1bmQgLi4uIGFjaCBuZWUsCmRhcyB3YXIgd2FzIGFuZGVyZXMuCgpQYXJhY2Vsc3VzLT5zY2htYXJybigpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNjogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKEdyaW1tYm9ybiwgMTMuIEp1bCAyMDAwLCAxMTo1NDoxMSk6Cn4jISBybj1TdGluZyBydD05NjM0MzQxNDkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKSmEsIER1IGhhc3Qgc2ljaGVyIHJlY2h0LCBkYXNzIHNpY2ggZGllIEhhZWxmdGUgaGllciBtaXQgZGVyIEJlemVpY2hudW5nCiJhcnJvZ2FudGVzIEFyc2NobG9jaCIgZnVlciBEaWNoIGFiZmluZGVuIGthbm4uIEFsbGVyZGluZ3MgZW50Z2VnZW4gRGVpbmVyClZlcm11dHVuZyBlaGVyIG1pdCBkZXIgendlaXRlbiBIYWVsZnRlIGRlcyBBdXNkcnVja3MuLi4KCkdkQSAoamVwcCwgZmxhbWUgd2FyLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE3OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoU3RpbmcsIDEzLiBKdWwgMjAwMCwgMTk6NTA6NTkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk2MzQ4MjA1MSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpGZWluLCBkdSBzY2hyZWlic3QgendhciBuaWNodCBkYXMgZHUgZGFzIGdlbmF1c28gc2llaHN0LCBhYmVyIHdlbm4gZGVtIHNvIGlzdApiZXJ1aHQgZGFzIGF1ZiBHZWdlbnNlaXRpZ2tlaXQgOikKClN0aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKEFwc3UsIDEzLiBKdWwgMjAwMCwgMjE6MTU6MTApOgp+IyEgcm49U3RpbmcgcnQ9OTYzNDMzMzQwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CldlaWwgZGllIHNpY2ggbWl0IGRlbSBPdXRsb29rLSB1bmQgVkJTLVpldWcgc28gZWluIHJpZXNpZ2VzIEVpZ2VudG9yCmdlc2Nob3NzZW4gaGFiZW4gdW5kIGRpZSBWaXJlbmZsdXQgZGFuayBzb2xjaGVyIEhpbGZzbWl0dGVsIG5vY2ggc3RhZXJrZXIgYWxzCm9obmVoaW4gc2Nob24genVuZWhtZW4gd2lyZCwgZGEgbWl0dGxlcndlaWxlIGplZGVyIGRlcHAsIGRlciBzZWluZSAzIGtyZXV6Y2hlbgphbHMgVW50ZXJzY2hyaWZ0IHNldHp0LCBzb3dhcyBiYXN0ZWxuIGthbm4sIHdhZWhyZW5kIG1hbiBmcnVlaGVyIG5vY2ggbmUgbWVuZ2UKZHJhdWZoYWJlbiBtdXNzdGUsIHVtIHNvd2FzIHp1IGJhc3RlbG4/IAoKQXBzdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChBbmF0b2wsIDEzLiBKdWwgMjAwMCwgMjM6MTY6MDgpOgp+IyEgcm49U3RpbmcgcnQ9OTYzNDM0MTQ5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CkljaCBrYW5uIFRpYW1hayBudXIgenVzdGltbWVuLiBGdWVyICJhcnJvZ2FudGVzIEFyc2NobG9jaCIgbXVzcyBtYW4Kd2Vpc3MgSm9mIG1laHIgTGVpc3R1bmcgemVpZ2VuLiBHZXdvZWhubGljaGUgU2VsYnN0dWViZXJzY2hhZXR6dW5nIApyZWljaHQgZGEgbnVuIHdpcmtsaWNoIG5pY2h0IGF1cy4gCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoQWNyaW1vbiwgMTQuIEp1bCAyMDAwLCAyMTozMToxNCk6Cn4jISBybj1TdGluZyBydD05NjMzMzg0OTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKRHUgaG9lcnN0IERpY2ggYmVpbGVpYmUgbmljaHQgd2llIGVpbiBFbnR3aWNrbGVyIGFuLCBzb25kZXJuIHZpZWxtZWhyIHdpZSBlaW4KTWFya2V0aW5nLU1hbmFnZXIuIEhhdXB0c2FjaGUsIG1hbiBzcHJpY2h0IHNvIHZpZWxlIEt1bmRlbiB3aWUgbW9lZ2xpY2ggYW4sCmRhbWl0IG1hbiBzb3ZpZWwgR2VsZCB3aWUgbW9lZ2xpY2ggdmVyZGllbnQsIGtvbW1lIHdhcyBkYSB3b2xsZS4gTWljcm9zb2Z0CnZlcnN1Y2h0IHNlaW5lIEJlbnV0emVyIHp1IGtvbnRyb2xsaWVyZW4/IEFuZGVyZSBGaXJtZW4gdHVuIGRhcyBhdWNoPyBTaWUKd2VyZmVuIFN0YW5kYXJkcyB1ZWJlciBkZW4gSGF1ZmVuLCB3ZWlsIHNpZSBrZWluZSBLb25rdXJyZW56IHZlcnRyYWdlbj8gU2llCnBhdGVudGllcmVuIEluZm9ybWF0aW9uZW4sIGRhbWl0IG5pZW1hbmQgYW5kZXJzIGFlaG5saWNoZSBTYWNoZW4KdmVyb2VmZmVudGxpY2hlbiBkYXJmPyBTaWUgdmVyc3VjaGVuLCBkaWUgb2VmZmVudGxpY2hlIE1laW51bmcgenUKbWFuaXB1bGllcmVuLCB1bSBkYXMgT2ZmZW5zaWNodGxpY2hlIHp1IHZlcnN0ZWNrZW4/IFVud2FocmhlaXRlbiBpbiBkZXIKV2VyYnVuZywgbWFuY2htYWwgb2ZmZW5zaWNodGxpY2gsIG1hbmNobWFsIHdlbmlnZXIgb2ZmZW5zaWNodGxpY2g/CkFuZ2VzdGVsbHRlLCBkaWUgaW4gTmV3c2dyb3VwcyBlaW5lIGZpcm1lbi1wb3NpdGl2ZSBNZWludW5nIGR1cmNoc2V0emVuCnNvbGxlbj8gVWViZXJsZWd1bmdlbiwgd2llIG1hbiBkaWUgTGV1dGUgZGF6dSBicmluZ3QsIHNlbGJzdCBmdWVyIGRpZSBMdWZ0LApkaWUgbWFuIGF0bWV0LCBiZXphaGxlbiB6dSBtdWVzc2VuPyBBbGxlcyB3dXJzY2h0LiBBbGxlcyByZWNodGVucy4gVW5kIHdlbm5zCm5pY2h0IHJlY2h0ZW5zIGlzdCwgZGFubiBtYWNodCBtYW4gZXMgcmVjaHRlbnMuIERhcyBHZXdpc3NlbiBzdG9lcnQgbnVyLCBkYXMKbXVzeiBtYW4gdW50ZXJkcnVlY2tlbi4gSGF1cHRzYWNoZSBHZWxkLiBHZWxkIGlzdCBhbGxlczsgd2VyIGVzIG5pY2h0IGhhdCwgZGVyCmhhdCBkaWUgUmVhbGl0YWV0IG5pY2h0IGVya2FubnQuCgpHdXRlIE5hY2h0LCBXZWx0LCB3ZW5uIGVzIHNvd2VpdCBpc3QuIFZpZWxsZWljaHQgZXJrZW5udCBqYSBkZXIgZWluZSBvZGVyCmFuZGVyZSwgd29oaW4gc29sY2hlIERlbmt3ZWlzZW4gZnVlaHJlbi4gVW5kIHdlciBkYWZ1ZXIgYXJiZWl0ZXQsIGRhc3ogbWFuCl9taXRlaW5hbmRlcl8gbGViZW4ga2FubiwgZGVyIHNldHp0IGRhcyBhdWNoIGluIGRpZSBSZWFsaXRhZXQgdW0uIExlYmVuIGthbm4KbWFuIGFsbGVtYWwsIGF1Y2ggb2huZSBzb2xjaGUgWmllbGUgYXVmenVnZWJlbi4KUmVzaWduaWVyZSwgdW5kIGRpZSBncm9zemVuIEZpcm1lbiBwcm9maXRpZXJlbiBkYXZvbi4KCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChIb29kLCAxNC4gSnVsIDIwMDAsIDIxOjQ5OjU0KToKfiMhIHJuPUFjcmltb24gcnQ9OTYzNjAzMDc0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5Cm9iZXJuYWl2bGluZyB1bmQgcm9zYXJvdC1icmlsbGVudHJhZWdlciBhY3JpbW9uIHNjaGFmZnQgZXMgaW1tZXIgd2llZGVyLApkYXNzIG1pciBlaW5lIGVpbnNhbWUgdHJhZW5lIHVlYmVyIGRpZSB3YW5nZSBrdWxsZXJ0IDopCm5pY2h0IGplZGVyIHNpZWh0IGltIGNvbXB1dGVyIGVpbmVuIGdvZXR0bGljaGVuIHplaXR2ZXJ0cmVpYiwgZGVyIHZvbGxlcgphdWZvcGZlcnVuZ3N2b2xsZW4gYWt0aW9uaXNtdXMgYmV0cmllYmVuIHdlcmRlbiBtdXNzLgp2aWVsZSBpbiBkaWVzZXIgYnJhbmNoZSBhcmJlaXRlbiBpbiBkZXIgdGF0IG51ciBmdWVyIGdlbGQgdW5kIGRlbmVuCmthbm5zdCBkdSBkYXMga2F1bSB6dW0gdm9yd3VyZiBtYWNoZW4sIHdlbm4gc2llIGRpY2ggYWxzIGFtaWdhLQpvZGVyIHdhc3dlaXNzaWNoLXVzZXIgdm9lbGxpZyBpZ25vcmllcmVuLgpzZWkgZGlyIGdld2lzczogZGFzIGlzdCBuaWNodCBwdXJlIGJvc2hhZnRpZ2tlaXQgb2RlciBhZWhubGljaGVzLApzb25kZXJuIGdhbnogbm9ybWFsZXMgbWluaW1hbGlzbXVzOiBtaXQgbW9lZ2xpY2hzdCB3ZW5pZyByZXNvdXJjZW4KbW9lZ2xpY2hzdCB2aWVsZW4gc2VpbmUgcHJvZHVrdGUgenUgdmVya2F1ZmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogd2VyIG1hZyBuYWNoIGJlcmxpbj8gKEFjcmltb24sIDE0LiBKdWwgMjAwMCwgMjE6NTg6MDIpOgp+IyEgcm49SG9vZCBydD05NjM2MDQxOTQgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjMzMjkwMDkKRnJhZ3Qgc2ljaCBuYXR1ZXJsaWNoLCB3aWUgd2VpdCBtYW4gc2VpbmVuICJNaW5pbWFsaXNtdXMiIGJldHJlaWJ0LiBEYXN6IGVzCkxldXRlIGdpYnQsIGRpZSBndXRlIFppZWxlIHN0YWVya2VyIGFscyBub2V0aWcgbWluaW1pZXJlbiwgaXN0IG1pciBrbGFyLgoKQWNyaW1vbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChIb29kLCAxNC4gSnVsIDIwMDAsIDIxOjU5OjEyKToKfiMhIHJuPUFjcmltb24gcnQ9OTYzNjA0NTEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5CnNvd2VpdCBnZWhlIGljaCBuYXR1ZXJsaWNoIG1pdC4uLmRlciBhbmdlc3Byb2NoZW5lIG1pbmltYWxpc211cyBzb2xsZSBuaWNodAp6dSB3ZWl0IGdldHJpZWJlbiB3ZXJkZW4uIGxldHp0ZW5kbGljaCBlbnRzY2hlaWRldCBkZXIgbWFya3QgdWViZXIgZGVuIGdyYWQKZGllc2VyIGVpZ2Vuc2NoYWZ0LCB3YXMgYXVjaCBkZXJ6ZWl0IHNvIGFibGFldWZ0LgpmaXJtZW4gZGllIGluIGRpZXNlciBoaW5zaWNodCB6dSBlcmZvbGdyZWljaCBhbmRlcnMgb3BlcmllcmVuIGdlcmF0ZW4KZnJ1ZWhlciBvZGVyIHNwYWV0ZXIgaW5zIHppZWtyZXV6IGRpdmVyc2VyIHN0YWF0bGljaGVyIGthcnRlbGxiZWhvZXJkZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoQWNyaW1vbiwgMTQuIEp1bCAyMDAwLCAyMjowOTozOCk6Cn4jISBybj1Ib29kIHJ0PTk2MzYwNDc1MiByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpGaXJtZW4sIGRpZSBzaWNoIGVpbnppZyB1bmQgYWxsZWluIGF1cyBkZXIgRnVyY2h0IHZvciBkZW0gS2FydGVsbGFtdCBpbiBpaHJlcgprb21wcm9taXN6bG9zZW4gR2llciBlaW5zY2hyYWVua2VuIGxhc3Nlbiwga2FubiBpY2ggbnVyIHZlcmFjaHRlbi4KCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHdlciBtYWcgbmFjaCBiZXJsaW4/IChUcnVnLCAxNS4gSnVsIDIwMDAsIDEzOjM5OjIxKToKfiMhIHJuPVN0aW5nIHJ0PTk2MzMzMzI2MiByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpFaW4gYmlzc2VsIGFycm9nYW50IGlzdCBkaWVzZXIgQXJ0aWtlbCBuaWNodCwgb2Rlcj8KCkVpZ2VudGxpY2ggZ2lidHMgamEgc28gZXR3YXMgd2llIGRlbiBXM0MtU3RhbmRhcmQtSFRNTCwgc29nYXIgZWluZW4KUmVmZXJlbnpicm93c2VyLCBkZXIgbmViZW4gSFRNTCA0LjAsIENTUyB1bmQgTWF0aE1MIGVpZ2VudGxpY2ggYWxsZXMga29ycmVrdApkYXJzdGVsbHQuCgpVbmQgc29uc3Qgc29sbHRlIG1hbiBoYWx0IC0gc293ZWl0IGVzIGdlaHQgLyB2ZXJudWVuZnRpZyBpc3QgLSBkaWUgZWlnZW5lbgpTZWl0ZW4gZG9jaCBtaXQgYWxsZW4gd2ljaHRpZ2VuIEJyb3dzZXIgKGRoIE5ldHNjYXBlLCBJRXhwbG9kZXIsIE1vc2FpYywKT3BlcmEsIGx5bngpIGFuZ3Vja2VuLCBvYiB6dW1pbmRlc3QgZGVyIENvbnRlbnQgc28gaGFsYndlZ3MgbGVzYmFyIGlzdC4gU29uc3QKZ2lidHMgamEgYXVjaCBub2NoIGRpdmVyc2UgYW5kZXJlIERva3VtZW50YXRpb24gd2llIG1hbiBndXRlcyBIVE1MIHNjaHJlaWJ0LgoKRXMgc29sbCBqYSBMZXV0ZSBnZWJlbiwgZGllIGR1cmNoIGd1dGVuIEluaGFsdCB3aWVkZXJrb21tZW4uLi4uCgpUcnVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoQWNyaW1vbiwgMTcuIEp1bCAyMDAwLCAxODoxNToxMSk6Cn4jISBybj1UcnVnIHJ0PTk2MzY2MTE2MSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpXaWUgaGVpc3p0IGRlbm4gZGVyIFJlZmVyZW56YnJvd3Nlcj8KCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIFVudGVya3VuZnQgKE1hZ2ljb2xsaSwgMTcuIEp1bCAyMDAwLCAxODo1Njo1NCk6CkhhbGxvIHp1c2FtbWVuLAoKYW0gMTAuOS4gZmluZGV0ICh3ZW5uIGljaCByaWNodGlnIGluZm9ybWllcnQgYmluKSBpbiBCZXJsaW4gZGVyIGFsbGphZWhybGljaGUKTWFyYXRob24Kc3RhdHQgdW5kIGljaCBoYWV0dGUgbWFsIEx1c3QgbWl0enVsYXVmZW4uIFp1IGRpZXNlbSBBbmxhc3Mgc3VjaGUgaWNoIGZ1ZXIgZGFzCldFIG5vY2gKZWluZSBwcmVpc3dlcnRlIFVudGVya3VuZnQuClNhY2hkaWVuc3RsaWNoZSBIaW53ZWlzZSBiaXR0ZSBwZXIgTWFpbCBhbiBtaWNoLi4uIDstKQoKTWZHCk1hZ2ljKiAoZGVyIGdhciBuaWNodCBlcnN0IGZyYWd0LCBvYiBzb25zdCBub2NoIGplbWFuZCBtaXRsYXVmZW4gbW9lY2h0ZS4uLgo7LSkpCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgVW50ZXJrdW5mdCAoTGlhcmEsIDE3LiBKdWwgMjAwMCwgMTk6MDM6MDApOgp+IyEgcm49TWFnaWNvbGxpIHJ0PTk2Mzg1MzAxNCByZz1hbnplaWdlbgp+IyEgdGlkPTk2Mzg1MzAxNApFaW4gTXVkZGVyIGRlciBlaW5lbiBNYXJhdGhvbiBtaXRsYXVmZW4ga2Fubj8/ClVuZCB1ZWJlcmhhdXB0IC4uLiBkZW4gUmVjaG5lciB6aWVoc3RlIGF1ZiBlaW5lbSBLYWVycmNoZW4gaGludGVyIERpciBoZXI/CjstKSkKCkxpYXJhLCBad2VyZ2VuemF1YmVyaW5lLCByZXBhcmllcnQgYW4gaWhyZW0gV2VsdGJpbGQgcnVtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoR3JpbW1ib3JuLCAxNy4gSnVsIDIwMDAsIDE5OjI0OjA4KToKfiMhIHJuPUFjcmltb24gcnQ9OTYzODUwNTExIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTYzMzI5MDA5ClNjaGxhZyBtaWNoIG5pY2h0IHdlbm4gaWNoIGZhbHNjaCBsaWVnZSwgYWJlciBpY2ggc2FnZSBtYWwgIkFyZW5hIi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCAoIkhUTUw/IEJsZWliIG1pciBibG9zcyB3ZWcgbWl0IGRlbSBLcmFtISIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiB3ZXIgbWFnIG5hY2ggYmVybGluPyAoVHJ1ZywgMTcuIEp1bCAyMDAwLCAyMDo1ODoxNSk6Cn4jISBybj1BY3JpbW9uIHJ0PTk2Mzg1MDUxMSByZz1hbnplaWdlbgp+IyEgdGlkPTk2MzMyOTAwOQpFciBob2VydCBhdWYgZGVuIGZydWNodGlnZW4gTmFtZW4gJ0FtYXlhJyB1bmQgaWhuIGthbm4gbWFuIHVlYmVyCmh0dHA6Ly93d3cudzNjLm9yZy9BbWF5YS8gZG93bmxvYWRlbiBhbHMgc291cmNlL2JpbmFyaWVzLiAKCnRydWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU3VjaGUgVW50ZXJrdW5mdCAoTWFnaWNvbGxpLCAyMC4gSnVsIDIwMDAsIDExOjQ1OjM5KToKfiMhIHJuPUxpYXJhIHJ0PTk2Mzg1MzM4MCByZz1hbnplaWdlbgp+IyEgdGlkPTk2Mzg1MzAxNApIbSwgd2VubiBzaWNoIGVpbiBwYXNzZW5kZXIgU3BvbnNvciBmaW5kZXQsIGRhbm4gemllaGUgaWNoIGF1Y2ggUmVjaG5lciBhdWYKS2FlcnJjaGVuIGhpbnRlciBtaXIgaGVyLi4uLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJJTEQgKEtvZWxuKSBoZXV0ZSAhISEgKFphcm5peWEsIDI0LiBKdWwgMjAwMCwgMDg6NTg6MzMpOgoKSGlobywgCgppY2ggYmluIGF1ZiBkZXIgU3VjaGUgbmFjaCBlaW5lbSBNYWdpZXIgaGllciwgZGVyIGZvbGdlbmRlcyB6dSB2ZXJhbnR3b3J0ZW4KaGF0OgoKIkVSWkJJU0NISE9GIERZQkEgLSBQTG9ldHpsaWNoZXIgSGVyenRvZCBpbSBNb3JnZW5ncmF1ZW4gISIKCkljaCB3dWVyZCBkZW0genVzdGFlbmRpZ2VuIE1hZ2llciBnZXJuZSBlaW5lbiBhdXNnZWJlbi4uLgoKTWFyYy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCSUxEIChLb2VsbikgaGV1dGUgISEhIChTaWx2YW5hLCAyNC4gSnVsIDIwMDAsIDEwOjI4OjIyKToKfiMhIHJuPVphcm5peWEgcnQ9OTY0NDIxOTEzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY0NDIxOTEzClNlbHRzYW0uLi4KCkRpZSBTYXQuMSBOYWNocmljaHRlbiBoYWJlbiBiZWhhdXB0ZXQsIGVyIHNlaSBQdW5rdCBNaXR0ZXJuYWNodCBnZXN0b3JiZW4uIEljaApoYXR0ZSBzY2hvbiBhbiBzY2h3YXJ6ZSBNZXNzZW4gZ2VkYWNodCwgYWJlciBkYXMuLi4gSW50ZXJlc3NhbnQuIDstKQpBYmVyIHdlbm4gZGVyIG1hZ2lzY2hlIFJ1ZWNrc2NobGFnIGRlciBaYXViZXJlcmdpbGRlIEZlc3RwbGF0dGVuIHplcmZldHplbgprYW5uLC4uLiAKCiAgU2lsdmFuYSAoYml0dGUgbmljaHQgenUgZXJuc3QgbmVobWVuLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCSUxEIChLb2VsbikgaGV1dGUgISEhIChQYWRyZWljLCAyNC4gSnVsIDIwMDAsIDEwOjQzOjAwKToKfiMhIHJuPVNpbHZhbmEgcnQ9OTY0NDI3MzAyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY0NDIxOTEzClNhZ3QgbWFsLCByZWljaHQgZXMgbmljaCBhbGxtYWVobGljaD8gSWNoIGJpbiB3ZWRlciBrYXRob2xpc2NoIG5vY2ggaGFiIGljaAp2b24gZGVtIEhlcnJuIHp1IExlYnplaXRlbiBiZXNvbmRlcnMgdmllbCBnZWhhbHRlbiwgYWJlciB3aWUgaGllciBqZXR6dApGcmV1ZGVucGFydHlzIHVlYmVyIHNlaW5lbiBUb2QgZ2VmZWllcnQgd2VyZGVuLCBmaW5kZSBpY2ggc2NobGljaHR3ZWcKZ2VzY2htYWNrbG9zLi4uCgpQYWQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCSUxEIChLb2VsbikgaGV1dGUgISEhIChQYXJhY2Vsc3VzLCAyNC4gSnVsIDIwMDAsIDEwOjQ0OjI0KToKfiMhIHJuPVBhZHJlaWMgcnQ9OTY0NDI4MTgwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY0NDIxOTEzCk9jaCwgdW5kIGljaCB3b2xsdGUgbWlyIGdlcmFkZSBlaW4gUGFydHltb25zdGVyIGNsb25lbi4uLgoKUGFyYSogXTotPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQklMRCAoS29lbG4pIGhldXRlICEhISAoUGlsZ3JpbSwgMjQuIEp1bCAyMDAwLCAxNjowNDoyNCk6Cn4jISBybj1QYWRyZWljIHJ0PTk2NDQyODE4MCByZz1hbnplaWdlbgp+IyEgdGlkPTk2NDQyMTkxMwo+IFNhZ3QgbWFsLCByZWljaHQgZXMgbmljaCBhbGxtYWVobGljaD8KCkhtbSwgby5rLiAuLi4gZXMgZmVobHRlbiBvZmZlbnNpY2h0bGljaCBJcm9uaWVPbi9PZmYgWmVpY2hlbiAhIEljaCBuZWhtIG1hbApuaWNodCBhbiwgZGFzIGRhcyBlcm5zdCBnZW1laW50IHdhci4KCj4gSWNoIGJpbiB3ZWRlciBrYXRob2xpc2NoIG5vY2ggaGFiIGljaAo+IHZvbiBkZW0gSGVycm4genUgTGViemVpdGVuIGJlc29uZGVycyB2aWVsIGdlaGFsdGVuLCBhYmVyIHdpZSBoaWVyIGpldHp0Cj4gRnJldWRlbnBhcnR5cyB1ZWJlciBzZWluZW4gVG9kIGdlZmVpZXJ0IHdlcmRlbiwgZmluZGUgaWNoIHNjaGxpY2h0d2VnCj4gZ2VzY2htYWNrbG9zLi4uClBhcnR5IGphLCBkaWUgZGFyc3RlbGx1bmcgZGllc2VzIFdvcnR3aXR6ZXMgYWJlciBuaWNodC4gT2RlciBnZWhvZXJ0IER1IHp1CmRlbmVuLCBkaWUgZmluZGVuIGRhcyBtYW4gdWViZXIgZGVuIFRvdCB1bmQgVG90ZSBrZWluZSBXaXR6ZSByZWlzc2VuIGRhcmY/IAoKUGlsZ3JpbQoqbXVzc3RlIHNjaG11bnplbG4gLSB3ZW5uIGF1Y2ggbWl0IHNjaGxlY2h0ZW0gR2V3aXNzZW4qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYW5keSBpbiBVU0EhIChCYW1idWxrbywgIDEuIEF1ZyAyMDAwLCAxMjowMDo1Nik6CkhhdCBpcmdlbmRqZW1hbmQgdm9uIGV1Y2ggRXJmYWhydW5nZW4gbWl0IGVpbmVtIEhhbmR5IGluIGRlbiBVU0EgZ2VtYWNodD8KS2VubnQgc2ljaCBqZW1hbmQgZGFtaXQgYXVzPwoKSWNoIGJpbiBhYiBTZXB0ZW1iZXIgaW4gZGVuIFVTQSB1bmQgdWViZXJsZWdlIG1pciwgb2IgaWNoIG1pciBoaWVyIGVpbiBIYW5keQp6dWxlZ2UgdW5kIG1pdG5laG1lIG9kZXIgZG9ydCBlaW5zIGthdWZlLi4uLi4KCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhhbmR5IGluIFVTQSEgKFJpa3VzLCAgMS4gQXVnIDIwMDAsIDEyOjE0OjE0KToKfiMhIHJuPURlZXBibHVlIHJ0PTk2NTEyNDczOCByZz1hbnplaWdlbgp+IyEgdGlkPTk2NTEyNDA1NgpvZGVyIGhhbHQgZWluIHRyaWJhbmQgbWl0bmVobWVuLCB6LmIuIG1vdG9yb2xhIHRpbWVwb3J0Li4uCgpyaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIYW5keSBpbiBVU0EhIChCYW1idWxrbywgIDEuIEF1ZyAyMDAwLCAxMjoxNDoyNik6Cn4jISBybj1EZWVwYmx1ZSBydD05NjUxMjQ3Mzggcmc9YW56ZWlnZW4KfiMhIHRpZD05NjUxMjQwNTYKRXMgZ2VodCBtaXIgd2VuaWdlciB1bXMgQW5ydWZlbiBzb25kZXJuIGhhdXRzYWVjaGxpY2ggdW0gU01TIHVuZCB1bXMgYW5nZXJ1ZmVuCndlcmRlbi4gS2FubiBpY2ggbWl0IGVpbmVtIGluIFVTQSBhbmdlbWVsZGV0ZW4gSGFuZHkgU01TIGF1cyBEIGVtcGZhbmdlbiBiencKdmVyc2NoaWNrZW4/CgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSGFuZHkgaW4gVVNBISAoUmlrdXMsICAxLiBBdWcgMjAwMCwgMTI6MTU6MjgpOgp+IyEgcm49QmFtYnVsa28gcnQ9OTY1MTI0ODY2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MTI0MDU2CnJ1ZiBkaWUgaG90bGluZSBkZWluZXMgbmV0emFuYmlldGVycyBhbiB1bmQgZnJhZyBkaWUgbmFjaCByb2FtaW5ncGFydG5lcm4gaW4KZGVuIHVzYSwgZGllIHNtcyB1bnRlcnN0dWV0emVuLgoKcmlrdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEhhbmR5IGluIFVTQSEgKEdvciwgIDEuIEF1ZyAyMDAwLCAxMjoxOTo0Nik6Cn4jISBybj1EZWVwYmx1ZSBydD05NjUxMjUwNTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjUxMjQwNTYKTmVpZW4gbWl0IG1hbmNoZW4gQW5iaWV0ZXJuIGdlaHQgZGFzLiBXYXMgYXVjaCBuZSBndXRlIE1vZWdsaWNoa2VpdCBpc3QsIGhpZXIKZWluIGd1dGVzIFRyaXBwbGViYW5kaGFuZHkga2F1ZmVuIHVuZCBpbiBkZW4gU3RhYXRlbiBkYW5uIGRpZSBLYXJ0ZSwgZGEgZG9ydApkcnVlYmVyIGRhcyBnYW56ZSBlcmhlYmxpY2ggd2VuaWdlciBrb3N0ZXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBIYW5keSBpbiBVU0EhIChCYW1idWxrbywgIDEuIEF1ZyAyMDAwLCAxMjoyMzoxMik6Cn4jISBybj1Hb3IgcnQ9OTY1MTI1MTg2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MTI0MDU2CkRhcyB3aXJkIGRhbm4gd2FocnNjaGVpbmxpY2ggZXR3YXMgdGV1ZXIuLi4uLlVuZCBvYiBpY2ggZGFubiBTTVMgdmVyc2NoaWNrZW4Ka2FubiBpc3QgaW1tZXIgbm9jaCBuaWNodCBzaWNoZXIuIEljaCB3ZWlzcyBudXIsIGRhc3MgaWNoIG1pdCBlaW5lbQpUcmliYW5kLUhhbmR5IGJlaSBUMSBTTVMgZW1wZmFuZ2VuIGthbm4uLi4ud2Vpc3MgYWJlciBuaWNodCwgb2IgZGFzIGV4dHJhCmtvc3RldC4KCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBIYW5keSBpbiBVU0EhIChHb3IsICAxLiBBdWcgMjAwMCwgMTI6MjQ6NTQpOgp+IyEgcm49QmFtYnVsa28gcnQ9OTY1MTI1MzkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MTI0MDU2CkR1IGJpc3QgaGFsdCBlY2h0IGRlciBTZXBwLCB3ZW5uIGRpY2ggZWluZXIgYW5ydWZ0IHVuZCBkaXIgbnVyICdIZSBBbHRlciB3aWUKZ2VodHMgYXVmIGRlaW5lIE1haWxib3ggbGFiZXJ0JyBEaWUgZGV1dHNjaGVuIFRhcmlmZSBzaW5kIHVudGVyIGFsbGVyIFNhdS4gRHUKemFobHN0IGRhbm4gZnVlciBkZW4gQW5ydWYgYWIgRGV1dHNjaGxhbmQuLi4uLiBkYSB3aXJzdGUgYXJtLCB3ZW5uIGRpY2gKc3RhZW5kaWcgTGV1dGUgYW5ydWZlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEhhbmR5IGluIFVTQSEgKEJhbWJ1bGtvLCAgMS4gQXVnIDIwMDAsIDEyOjI3OjQ4KToKfiMhIHJuPUdvciBydD05NjUxMjU0OTQgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjUxMjQwNTYKTmFqYSB1bmQgd2VubiBpY2ggMTAwMCBETSBmdWVyIGVpbiBIYW5keSBhdXNnZWJlIGJpbiBpY2ggdm9yaGVyIHNjaG9uCmFybS4uLi5XaWUgZ2VzYWd0LCBlcyBnZWh0IG1pciBfaGF1cHRzYWVjaGxpY2hfIHVtIFNNUy4gVW5kIGRhcyBpY2ggenVyIE5vdAphbmdlcnVmZW4gd2VyZGUuLi4uTXVlc3NlbiBqYSBuaWNodCB2aWVsZSBMZXV0ZSBtZWluZSBOdW1tZXIgaGFiZW4uCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogSGFuZHkgaW4gVVNBISAoR2xvaW5zb24sICAxLiBBdWcgMjAwMCwgMTI6Mjk6NDEpOgp+IyEgcm49QmFtYnVsa28gcnQ9OTY1MTI1NjY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MTI0MDU2Ci4uLgpadW1hbCBtYW4gZGllIE1haWxib3ggdW5kIEFucnVmZSBhYnNjaGFsdGVuIGthbm4gdW5kIGRhbWl0IG5peCB6YWhsZW4gbXVzcywKZXMgc2VpLCBNdXR0aSBydWZ0IGFuIHVuZCBmcmFndCBuYWNoIFNvY2tlbiAtIGRhIG11c3MgbWFuIHJhbmdlaGVuLgoKR2xvaW4oc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogSGFuZHkgaW4gVVNBISAoSGF0ZSwgIDEuIEF1ZyAyMDAwLCAxMzo0MDozMik6Cn4jISBybj1CYW1idWxrbyBydD05NjUxMjU2Njggcmc9YW56ZWlnZW4KfiMhIHRpZD05NjUxMjQwNTYKQmVzb3JnIERpciBlaW5lIEVNQUlMIGFkcmVzc2UuIFNNUyAtIEJsb2Vkc2lubiBmdWVyIEtpbmRlciAuLi4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBIYW5keSBpbiBVU0EhIChXYXJnb24sICAxLiBBdWcgMjAwMCwgMTM6NTc6MzApOgp+IyEgcm49QmFtYnVsa28gcnQ9OTY1MTI1NjY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MTI0MDU2CldpZSBzY2hvbiB2b24gYW5kZXJlbiBnZXNhZ3QgaXN0IGRpZSBHU00tQWJkZWNrdW5nIGluIGRlbiBVU0EgYWV1c3NlcnN0CmR1ZXJmdGlnLiBEaWUgQW1pcyBoYWx0ZW4gc2ljaCBkYSBsaWViZXIgYW4gaWhyZSBlaWdlbmVuIFN0YW5kYXJkczogQU1QUywKQ0RNQSwgVERNQS4KQmVpIEFNUFMgZ2lidHMgdWViZXJoYXVwdCBrZWluZSBTTVMsIGJlaSBDLSB1bmQgVERNQSBzaW5kIHNpZSBtaXR0bGVyd2VpbGUgc28Kd2VpdCwgU01TIGVtcGZhbmdlbiB6dSBrb2VubmVuIChkYXMgc2luZCBkYW5uIGFiZXIgbmljaHQgdW5iZWRpbmd0CkdTTS1rb21wYXRpYmxlIFNNUykuIFNNUyB2ZXJzY2hpY2tlbiBpc3QgbWl0IGRpZXNlbiBTdGFuZGFyZHMgbm9jaCBuaWNodAptb2VnbGljaC4KICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1dG9yZW4gZ2VzdWNodCEgKFNoYWtlZGJlZXIsICAzLiBBdWcgMjAwMCwgMTU6Mjg6MjMpOgpIYWxsbyEKCkFuYmVpIHBvc3RlIGVpbmUgYWt0dWVsbGUgU3RlbGxlbmJlc2NocmVpYnVuZyBmdWVyIGVpbmUgbmV1ZQpTUEVDVFJPc29mdHdhcmUtQWJ0ZWlsdW5nIG5hbWVucyBTUEVDVFJPYXV0aG9ycy4gSGllciB3aXJkIG1pdCBtZWhyZXJlbgpBdXRvcmVuIGFuIGVpbnplbG5lbiBCdWVjaGVybiBnZXNjaHJpZWJlbiwgZGllIHp1dm9yIHZvbiBWZXJsYWdlbiAod2llIE1hcmt0ICYKVGVjaG5paywgQWRkaXNvbi1XZXNsZXksIC4uLikgaW4gQXVmdHJhZyBnZWdlYmVuIHd1cmRlbi4gV2VubiBEdSBMdXN0IGhhc3QsCmhpZXIgYmVpIGRlbSBlaW4gb2RlciBhbmRlcmVuIFByb2pla3QgbWl0enVtYWNoZW4sIG1lbGRlIERpY2ggZG9jaCBlaW5mYWNoLgpNb21lbnRhbiBzdGVodCB6dW0gQmVpc3BpZWwgbm9jaCBmdWVyIDIwMDAgZWluIGJyYW5kYWt0dWVsbGVzIEJ1Y2ggenUKTWFjcm9tZWRpYSBVbHRyYURFViBhbi4gTm9jaCBGcmFnZW4/IERhbm4gbWFpbCBkb2NoIGVpbmZhY2ggenVydWVjay4gOy0pCgpCaXMgZGVubi4uLgoKU2hha2VkYmVlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFVVEhPUlMgV0FOVEVEIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKV2lyIHN1Y2hlbiBwcm9qZWt0YmV6b2dlbiBmcmVpYmVydWZsaWNoZQpGQUNIQlVDSEFVVE9SRU4vSU5ORU4sCmRpZSBpbiB1bnNlcmVtIEF1dG9yZW50ZWFtIG1pdGFyYmVpdGVuIG1vZWNodGVuLiBHZWZyYWd0IHNpbmQgZm9sZ2VuZGUKQmVyZWljaGU6IAoKQmV0cmllYnNzeXN0ZW1lLCBPZmZpY2UtUHJvZHVrdGUsIEludGVybmV0LCBPbmxpbmVkaWVuc3RlLCBQcm9ncmFtbWllcnVuZyBpbgphbGxlbiBTcHJhY2hlbiwgZ2FlbmdpZ2UgQXBwbGlrYXRpb25lbiAoQ29yZWwsIE1hY3JvbWVkaWEsIC4uLiksCkNvbXB1dGVyc3BpZWxlIAoKQml0dGUgc2VuZGVuIFNpZSBCZXdlcmJ1bmdlbiBtaXQgSWhyZW0gV2lzc2Vuc3Byb2ZpbCB1bmQgZWluZW0gZXR3YQoxMC1zZWl0aWdlbiBQcm9iZWthcGl0ZWwgenUgZWluZW0gVGhlbWEgSWhyZXIgV2FobCBhbiBIZXJybiBEZWxsd2lnOiAKClNQRUNUUk9zb2Z0d2FyZQpBYnRlaWx1bmcgU1BFQ1RST2F1dGhvcnMKUG9zdGZhY2ggMTEzOQpELTU5MzU0IFdlcm5lIAoKTmF0dWVybGljaCBzdGVoZW4gd2lyIElobmVuIGdlcm5lIGZ1ZXIgRnJhZ2VuIHp1ciBWZXJmdWVndW5nOiAKClRlbGVmb24gMDIzODktNTMwMDYwCkUtTWFpbCBJbmdvLkRlbGx3aWdAU1BFQ1RST2F1dGhvcnMuZGUgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1dG9yZW4gZ2VzdWNodCEgKENhdHdlYXpsZSwgIDMuIEF1ZyAyMDAwLCAxNTozMjowMSk6Cn4jISBybj1TaGFrZWRiZWVyIHJ0PTk2NTMwOTMwMyByZz1hbnplaWdlbgp+IyEgdGlkPTk2NTMwOTMwMwpPa29rLCBpY2ggZGFjaHRlIGljaCB3YWVyIGhhbGJ3ZWdzIGdlYmlsZGV0IHVuZCBhdXNyZWljaGVuZCBzY2hsYXUsIAp1bmQgZWluZSBCZXdlcmJ1bmcgaGFiIGljaCBhdWNoIHNjaG9uIG1hbCBnZXNjaHJpZWJlbiwgYWJlciB3YXMgCmdlbmF1IGJpdHRlIGlzdCBlaW4gJ1dpc3NlbnNwcm9maWwnPwpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXV0b3JlbiBnZXN1Y2h0ISAoU2hha2VkYmVlciwgIDMuIEF1ZyAyMDAwLCAxNTozNDoxNyk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9OTY1MzA5NTIxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MzA5MzAzCipHUklOUyogR2VtZWludCBpc3QgZWluZSBBdWZsaXN0dW5nIHZvbiBUaGVtZW4genUgZGVuZW4gRHUgc2NocmVpYmVuCmtvZW5udGVzdC4gCgpTaGFreS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEF1dG9yZW4gZ2VzdWNodCEgKFBpbGdyaW0sICAzLiBBdWcgMjAwMCwgMTk6NDQ6MjMpOgp+IyEgcm49U2hha2VkYmVlciBydD05NjUzMDk2NTcgcmc9YW56ZWlnZW4KfiMhIHRpZD05NjUzMDkzMDMKSG1tLAoKenVtIFRoZW1hICJNZW5zYWVzc2VuIC0gb2RlciBWYXJpYXRpb25lbiBkZXMgRWluZmFsbHNsb3NlbiIgc3VjaHQKSWhyIGJlc3RpbW10IG5pZW1hbmRlbiwgb2Rlcj8gOy0pCgpQaWxncmltCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEF1dG9yZW4gZ2VzdWNodCEgKEFwb3BoaXMsICA0LiBBdWcgMjAwMCwgMTk6Mjg6MDkpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTk2NTMwOTUyMSByZz1hbnplaWdlbgp+IyEgdGlkPTk2NTMwOTMwMwppbSBlbmdsaXNjaGVuIFNraWxsLU1hdHJpeCBnZW5hbm50LiBrdWNrIG1hIGF1ZiBkaWVzZXIgU2VpdGUgdW50ZXIKU2tpbGxtYW5hZ2VtZW50LCBkYSBzdGVobiBlaW4gd2VuaWcgZHJ1ZWJlciBkcmluOgpodHRwOi8vd3d3LmljbC5kZS9pdGluZnJhL3RyYWluaW5nL29ubGluZS5odG0KCkFwbyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IEhhbmR5IGluIFVTQSEgKEFuYWtpbiwgMTQuIEF1ZyAyMDAwLCAxNDo1ODo0NCk6Cn4jISBybj1XYXJnb24gcnQ9OTY1MTMxMDUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY1MTI0MDU2CgpBbHNvIG1laW4gQ2hlZiBoYXQgZWluIFRyaWJhbmRIYW5keSB1bmQgZXIga2F1ZnQgc2ljaCBpbiBVU0EgZnVlcgpkaWUgWmVpdCBkaWUgZXIgZGEgaXN0IGltIGxva2FsZW4gVGVsZWZvbnNob3AgZWluZSBOdW1tZXIgZGllCmRhbm4gYXVmIHNlaW4gSGFuZHkga29tbXQgKGlzdCB3b2hsIFByZVBhaWQgdW5kIGtlaW5lIEFobnVuZwp3aWUgdGV1ZXIsIGFiZXIgd29obCBndWVuc3RpZ2VyIGFscyBSb2FtaW5nKS4KCkFuYWtpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNoaW5jaGlsbGEtQmFieSAoS2FydG9mZmVsLCAyOC4gQXVnIDIwMDAsIDAwOjA4OjQyKToKSGFsbG9lbGUsCgptZWluZSBDaGluY2hpbGxhcyBzaW5kIGFtIDI0LjguIEVsdGVybiBnZXdvcmRlbi4gRnVlciBkYXMga2xlaW5lIEJvZWNrY2hlbgpzdWNoZSBpY2ggYWIgY2EgTWl0dGUgTm92ZW1iZXIgZWluIG5ldWVzIFp1aGF1c2UgbW9lZ2xpY2hzdCBpbSBSYXVtCkR1ZXNzZWxkb3JmLCBkYW1pdCBsYW5nZSBBbmZhaHJ0ZW4gdmVybWllZGVuIHdlcmRlbi4gCk5hZWhlcmUgSW5mb3MgZ2lidHMgcGVyIE1haWwsIAoKJ1RvZmZlbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENoaW5jaGlsbGEtQmFieSAoSW1kYSwgMjguIEF1ZyAyMDAwLCAwMDoxODozMCk6Cn4jISBybj1LYXJ0b2ZmZWwgcnQ9OTY3NDE0MTIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY3NDE0MTIyCkhtbSwgc293YXMgaGFiYmljaCBqZXR6dCBhdWNoIG5vY2ggbmllIGdlZ2Vzc2VuLi4uCj09PiBrb2NocmV6ZXB0ZQoKSW1kYS4gT2JlcnN0dXJtZmVsZGlkbGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDaGluY2hpbGxhLUJhYnkgKFBpbGdyaW0sIDI4LiBBdWcgMjAwMCwgMTQ6NDk6MDApOgp+IyEgcm49SW1kYSBydD05Njc0MTQ3MTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njc0MTQxMjIKKmcqCkNoaWxsYSBjb24gY2FybmUgPwoKUGlsZ3JpbSA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaGluY2hpbGxhLUJhYnkgKFBob2JvcywgMjkuIEF1ZyAyMDAwLCAxNTo1Njo0Nyk6Cn4jISBybj1LYXJ0b2ZmZWwgcnQ9OTY3NDE0MTIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY3NDE0MTIyCndpZXZpZWxlIGJyYXVjaHQgbWFuIGRhIGZ1ZXIgZWluZW4gTWFudGVsPwoKICBQaG9ib3MgIC0gIHBsYW50IHNjaG9uIG1hbCBmdWVyIGRlbiBXaW50ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1Y2hlIFRlYW0gKEJlbmRlaWdpZCwgMTguIFNlcCAyMDAwLCAwOTo0OTo0Nyk6Cn4jISBvbj1SYW5kd2FuZGxlciBvdD05NjkxMDUyNjcgb2c9YWxsZ2VtZWluZXMKSW0gTmFtZW4gZGVyIGdyb3NzZW4gS2F0emUgZ2lidCBlcyBuaWVtYW5kZW4gZGVyIGluIGVpbiBUZWFtIG1pdCBtaXIgd2lsbAotUmFuZHdhbmRsZXIuCi1xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgVGVhbSAoUmFyZGlhbiwgMTkuIFNlcCAyMDAwLCAxNjoxNjoxNyk6Cn4jISBybj1CZW5kZWlnaWQgcnQ9OTY5MjYzMzg3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTY5MjYzMzg3CldlcmQgU2VoZXIsIGVyd2Vpc2UgRGljaCBhbHMgd3VlcmRpZyB1bmQgbGFzcyBEaWNoIGRhbm4gaW5zIFRlYW0gS0FUWkVOUE9XRVIKYXVmbmVobWVuIDopCgpHcnVzcywKICBSYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkZW1vIGltIG5ldHogKGVpbHQpIChOb25uZSwgMjAuIFNlcCAyMDAwLCAwOTozODoxMSk6ClRhY2gsCmhpZXIgc2luZCBkb2NoIGJlc3RpbW10IHZpZWxlIEFkbWlucyBhbndlc2VuZC4gQWxzbyBmcmlzY2ggYW5zIFdlcmsgdW5kIGxlc2VuOgoKaHR0cDovL3d3dy5oZWlzZS5kZS9uZXdzdGlja2VyL2RhdGEvaG9iLTE5LjA5LjAwLTAwMC8KCkRhbm4gZGVtIExpbmsgenVyIERlbW9zZWl0ZSBmb2xnZW4gdW5kIGRpZSBQYWdlIGRlciBlaWdlbmVuIEZpcm1hIGZ1ZXIgaGV1dGUKZXJzZXR6ZW4uIFZpZWxsZWljaHQgd2lyZHMgamEgd2FzLCBzb2xsdGUgYWxsZXJkaW5ncyBoZXV0ZSBub2NoIHBhc3NpZXJlbiwgZGEKZGllIFZlcmhhbmRsdW5nIGhldXRlIGlzdC4KCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2llIGdy/G5kZSBpY2ggVGVhbXMgKEJlbmRlaWdpZCwgMjIuIFNlcCAyMDAwLCAwOToyMzo0NCk6Cn4jISBvbj1SYWlkcmkgb3Q9OTY5NTYwODE2IG9nPWFsbGdlbWVpbmVzCkthbm4gbWlyIGplbWFuZCBzYWdlbiB3aWUgaWNoIGVpbiB0ZWFtIGdydWVuZGU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2llIGdy/G5kZSBpY2ggVGVhbXMgKE5ldm9rLCAyMi4gU2VwIDIwMDAsIDA5OjQzOjA2KToKfiMhIHJuPUJlbmRlaWdpZCBydD05Njk2MDc0MjQgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njk2MDc0MjQKSXMgZGFzIGVpbiBVbWxhdXQgaW4gZGVyIFVlYmVyc2NocmlmdD8gaGFiIGljaCBkYSB3YXMgdWViZXJzZWhlbj8/Pz8KCk5ldm9rLCBCYXVrbG9ldHplIHN0YXVuZW5kLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXaWUgZ3L8bmRlIGljaCBUZWFtcyAoR29yLCAyMi4gU2VwIDIwMDAsIDA5OjQ3OjU2KToKfiMhIHJuPUdvciBydD05Njk2MDg4NDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njk2MDc0MjQKSW0gTWFpbC9NcGEgRWRpdG9yIHdlcmRlbiBpbSBUaXRlbCBkaWUgVW1sYXV0ZSBuaWNodCB1bWdld2FuZGVsdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdpZSBncnVlbmRlIGljaCBUZWFtcyAoVGlhbWFrLCAyMy4gU2VwIDIwMDAsIDAwOjU5OjA1KToKfiMhIHJuPUdvciBydD05Njk2MDg4NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njk2MDc0MjQKRnVlciBkaWUgTVBBIGlzdCBkYXMgYmVpIG5ldWVuIEV4ZW1wbGFyZW4gc2VsYmlnZXIgYmVob2Jlbi4KCgpUaWFtYWsgbXVybWVsdCB3YXMgdm9uICJNYWlsZXIiIHVuZCAiVjIuMCIgdW5kICJpcmdlbmR3YW5uIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdhbWVEcml2ZXIgKFRpYW1haywgMjMuIFNlcCAyMDAwLCAwMjozMDoyMyk6ClVudGVyIC9Tb2Z0d2FyZS9HYW1lRHJpdmVyIGxpZWd0IGF1ZiB1bnNlcmVtIEZUUC1TZXJ2ZXIgamV0enQgZWluZSBuZXVlClZlcnNpb24gZGVzIERyaXZlcnMgLSBzb3dvaGwgYWxzIFNvdXJjZSBhbHMgYXVjaCBhbHMgTGludXgtQmluYXJ5LiBGdWVyCldpbmRvd3MtQmluYXJpZXMgcXVlbmdlbHQgYmVpIFJpa3VzLiA7LSkKCkRlciBiZWhvYmVuZSBCdWcgaGF0IGtlaW5lIHNjaHdlcndpZWdlbmRlbiBBdXN3aXJrdW5nZW4sIHNvbmRlcm4gd2FyIGVoZXIgZWluZQprbGVpbmUgVW5zdGltbWlna2VpdCBiZWkgcXVlcnlfaW5wdXRfcGVuZGluZygpLiBJbSBNRyB3aXJkIGVzIGRhZnVlciBrZWluZW4KUmVib290IGdlYmVuLgoKCkZZSSwgVGlhbWFrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaWxhIE1hciBhdWYgVG91ciAoR3JpbW1ib3JuLCAyOS4gU2VwIDIwMDAsIDExOjMyOjI4KToKfiMhIG9uPUx1ZyBvdD05NzAxNzUzNzUgb2c9YWxsZ2VtZWluZXMKCkludGVyZXNzaWVydCB2aWVsbGVpY2h0IGRlbiBlaW5lbiBvZGVyIGFuZGVyZW46CgpNaWxhIE1hciBUb3VyZGF0ZXMKClppbGxvIHByc2VudGllcnQ6IEVsZmVuc2V4IFRvdXIgMjAwMCsxCgoxOS4xMC4wMCAgICAgICAgR3R0aW5nZW4gICAgICAgICAgICAgICAtICAgICAgIE91dHBvc3QgW0NEIFJlbGVhc2UgUGFydHldCjIxLjEwLjAwICAgICAgICBBbHpleSAgICAgICAgICAgICAgICAgICAtICAgICAgIE9iZXJoYXVzCjI2LjEwLjAwICAgICAgICBFc3NlbiAgICAgICAgICAgICAgICAgICAtICAgICAgIFplY2hlIENhcmwKMjcuMTAuMDAgICAgICAgIEtsbiAgICAgICAgICAgICAgICAgICAgLSAgICAgICBVbmRlcmdyb3VuZAoyOC4xMC4wMCAgICAgICAgQWhsZW4gICAgICAgICAgICAgICAgICAgLSAgICAgICBTY2h1aGZhYnJpawozMS4xMC4wMCAgICAgICAgTWFyYnVyZyAgICAgICAgIC0gICAgICAgS0ZaCgowMS4xMS4wMCAgICAgICAgRnJhbmtmdXJ0L00uICAgIC0gICAgICAgTmFjaHRsZWJlbgowMi4xMS4wMCAgICAgICAgS2FybHNydWhlICAgICAgICAgICAgICAgLSAgICAgICBTdWJzdGFnZQowMy4xMS4wMCAgICAgICAgVWxtICAgICAgICAgICAgICAgICAgICAgLSAgICAgICBSb3h5CjA0LjExLjAwICAgICAgICBBVVQtIEFidGVuYXUgICAgLSAgICAgICBEcmVzY2hmbGVnZWwKMDUuMTEuMDAgICAgICAgIEZyaWVkcmljaHNoYXZlbiAtICAgICAgIE1ldHJvCjA3LjExLjAwICAgICAgICBGcmVpYnVyZyAgICAgICAgICAgICAgICAtICAgICAgIEphenpoYXVzCjA4LjExLjAwICAgICAgICBIZWlkZWxiZXJnICAgICAgICAgICAgICAtICAgICAgIFNjaHdpbW1iYWQKMTAuMTEuMDAgICAgICAgIExlaXB6aWcgICAgICAgICAtICAgICAgIFdlcmsgMgoxMS4xMS4wMCAgICAgICAgRXJmdXJ0ICAgICAgICAgIC0gICAgICAgR2V3ZXJrc2NoYWZ0c2hhdXMKMTIuMTEuMDAgICAgICAgIEJlcmxpbiAgICAgICAgICAtICAgICAgIEtuYWFjawoxNS4xMS4wMCAgICAgICAgSGFubm92ZXIgICAgICAgICAgICAgICAgLSAgICAgICBGYXVzdAoxNi4xMS4wMCAgICAgICAgSGFtYnVyZyAgICAgICAgIC0gICAgICAgTWFya3RoYWxsZQoxNy4xMS4wMCAgICAgICAgV2lsaGVsbXNoYXZlbiAgIC0gICAgICAgUHVtcHdlcmsKMTguMTEuMDAgICAgICAgIFNjaHdlcmluICAgICAgICAgICAgICAgIC0gICAgICAgVGhhbGlhCjIxLjExLjAwICAgICAgICBHbGF1Y2hhdSAgICAgICAgICAgICAgICAtICAgICAgIEFsdGUgU3Bpbm5lcmVpCjIyLjExLjAwICAgICAgICBHcmVpZnN3YWxkICAgICAgICAgICAgICAtICAgICAgIEtsZXgKMjMuMTEuMDAgICAgICAgIERyZXNkZW4gICAgICAgICAtICAgICAgIEJyZW56d2luZ2VyCgoxOS4xMi4wMCAgICAgICAgTWFpbnogICAgICAgICAgICAgICAgICAgLSAgICAgICBLVVoKMjEuMTIuMDAgICAgICAgIEdpZUtVWmVuICAgICAgICAgIC0gICAgICAgTVVLCjIzLjEyLjAwICAgICAgICBHYWdnZW5hdSAgICAgICAgICAgICAgICAtICAgICAgIENocmlzdG1hcyBQYXJ0eSBGZXN0aXZhbAoyNS4xMi4wMCAgICAgICAgQ2hlbW5pdHogICAgICAgICAgICAgICAgLSAgICAgICBLcmFmdHdlcmsvWm9vbSAoRGFyayBTdG9ybSkKMjYuMTIuMDAgICAgICAgIEhhbGxlICAgICAgICAgICAgICAgICAgIC0gICAgICAgVHVybQoKMTkuMDEuMDEgICAgICAgIEZyZWliZXJnICAgICAgICAgICAgICAgIC0gICAgICAgQWx0ZSBNZW5zYQoyMC4wMS4wMSAgICAgICAgR2VyYSAgICAgICAgICAgICAgICAgICAgLSAgICAgICBDb21tYQoyNy4wMS4wMSAgICAgICAgRWJlcnNicnVubiAgICAgICAgICAgICAgLSAgICAgICBadW0gTHdlbgowOC4wMy4wMSAgICAgICAgRnVsZGEgICAgICAgICAgICAgICAgICAgLSAgICAgICBLcmV1egowOS4wMy4wMSAgICAgICAgSmVuYSAgICAgICAgICAgICAgICAgICAgLSAgICAgICBDYXNzYWJsYW5jYQoxMC4wMy4wMSAgICAgICAgTGVpemlnICAgICAgICAgIC0gICAgICAgTW9yaXR6YmFzdGVpCndpcmQgZm9ydGdlc2V0enQKClZpZWwgU3Bhc3MgKG5laW4sIGVzIGlzdCBrZWluIE1ldGFsKQpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaS9GaS1Db24gKEVsc3RlcmNvbikgKEl2bywgMjkuIFNlcCAyMDAwLCAxNTowMDowMyk6CkhpIExldXRlLAp3ZW4gZXMgaW50ZXJlc3NpZXJ0LCBuY2hzdGVzIFdvY2hlbmVuZGUgKDYuLTguMTApIGZpbmRldCBpbiBMZWlwemlnIGRlciBkYXMKRWxzdGVyQ29uIHN0YXR0LiBFcyBzaW5kIHZpZWxlIGJla2FubnRlIEF1dG9yZW4gYW5nZWt1ZW5kaWd0LCB1bSBudXIgbWFsIEdlb3JnCk1hcnRpbiB6dSBuZW5uZW4uCmh0dHA6Ly9hcHBsZS5yei51bmktbGVpcHppZy5kZS9GS1NGTC9FbHN0ZXJjb24vQmFzaXMvR2Flc3RlLmh0bWwKV2lyIHNlaGVuIHVucywKCkl2bwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1pbGEgTWFyIGF1ZiBUb3VyIChUcm95LCAyOS4gU2VwIDIwMDAsIDE4OjQ1OjE2KToKfiMhIHJuPUdyaW1tYm9ybiBydD05NzAyMTk5NDggcmc9YW56ZWlnZW4KfiMhIHRpZD05NzAyMTk5NDgKV28gaXN0IGRlbm4gR3R0aW5nZW4/CgpUcm95LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdhbWVEcml2ZXIgKFJpa3VzLCAgNC4gT2t0IDIwMDAsIDIwOjUzOjU4KToKfiMhIHJuPVRpYW1hayBydD05Njk2NjkwMjMgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njk2NjkwMjMKSGksCgpkYSB3aWRlciBFcndhcnRlbiBkb2NoIGVpbmlnZSBnZXF1ZW5nZWx0IGhhYmVuLCBoYWJlIGljaCBkZW4gbmV1ZXN0ZW4KVGlhbWFrc2NoZW4gRHJpdmVyIHZvbSAyMy4wOS4wMCBtYWwgbmFjaCBXaW5kb3dzIHVtZ2VzZXR6dC4KWnUgZmluZGVuIGlzdCBlciBhdWYgdW5zZXJlbSBGVFAtU2VydmVyIHVudGVyIFNvZnR3YXJlL0dhbWVEcml2ZXIvV2luVENQSVAuCgpWaWVsIFNwYXNzLCBSaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHYW1lRHJpdmVyIChUcm95LCAgNS4gT2t0IDIwMDAsIDA4OjUyOjA2KToKfiMhIHJuPVJpa3VzIHJ0PTk3MDY4NTYzOCByZz1hbnplaWdlbgp+IyEgdGlkPTk2OTY2OTAyMwpBaC4KCm11c3MgbWFuIG51ciBnZW51ZyBxdWVuZ2VsbiwgdW5kIER1IHNldHp0IGRhcyBUZWlsIGF1Y2ggbm9jaCBuYWNoIFNvbGFyaXMgMi43CnVtPwoKVHJveSAtIGthZW1wZnQgbWl0IGRlciBCSUdfRU5ESUFOLVZlcm5hY2hsYWVzc2lndW5nIGltIGRyaXZlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR2FtZURyaXZlciAoUmlrdXMsICA1LiBPa3QgMjAwMCwgMDg6NTI6MzgpOgp+IyEgcm49VHJveSBydD05NzA3Mjg3MjYgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njk2NjkwMjMKTm9wZSwgZGFtaXQgaGFiIGljaCBuaXggYW0gSHV0IDopCgpSaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR2FtZURyaXZlciAoQm9pbmcsICA1LiBPa3QgMjAwMCwgMDk6MzQ6MTgpOgp+IyEgcm49VHJveSBydD05NzA3Mjg3MjYgcmc9YW56ZWlnZW4KfiMhIHRpZD05Njk2NjkwMjMKV2VubiBEdSBmZXJ0aWcgYmlzdCBtaXQga2FlbXBmZW4sIGRhbm4gc2FnIGVpbmZhY2ggQmVzY2hlaWQgdW5kIHdpciAKcGFja2VuIGRpZSBWZXJzaW9uIGF1ZiBkZW4gRlRQLVNlcnZlci4gOikKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2ludGVycGFydHkgPyAoT3JrdG9ldGVyLCAgNS4gT2t0IDIwMDAsIDE1OjU5OjM0KToKCldpZSBzaWVodCBlcyBtaXQgZGVyIFdpbnRlcnBhcnR5IGF1cyA/CkdpYnQgZXMgc2Nob24gQmV3ZXJiZXIgPyBPZGVyIHN0ZWh0IGVzIGdhciBzY2hvbiBmZXN0LCB3byBkaWUgaXN0ID8KCk9yLCBkZXIgc28gbGFuZ3NhbSBhbiBlbnR6dWdzZXJzY2hlaW51bmdlbiBsZWlkZXQgdW5kIHNpY2ggenVtaW5kZXN0IGRhbWl0CnRyb2VzdGVuIG1vZWNodGUsIGRhcyBkaWUgbmFlY2hzdGUgUGFydHkgYmVzdGltbXQga29tbXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2ludGVycGFydHkgPyAoVGVkZHksICA1LiBPa3QgMjAwMCwgMjA6MTI6MTcpOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTk3MDc1NDM3NCByZz1hbnplaWdlbgp+IyEgdGlkPTk3MDc1NDM3NApFcyBnaWJ0IGRhIGVpbmlnZSBJZGVlbiwgd28gc2llIHN0YXR0ZmluZGVuIGtvZW5udGUsIGFiZXIgbml4IGdlbmF1ZXMgd2Vpc3MKbWFuIG5pY2h0IGJpc2xhbmcuCgpUZWRkeSwgb3Jha2VsdCBlaW4gd2VuaWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2ludGVycGFydHkgPyAoQnJhbmRpciwgIDYuIE9rdCAyMDAwLCAxMDowNDoyNCk6Cn4jISBybj1Pcmt0b2V0ZXIgcnQ9OTcwNzU0Mzc0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTcwNzU0Mzc0Clp1ciBXaW50ZXJwYXJ0eSB3ZWlzcyBpY2ggendhciBuaWNodHMsIGFiZXIgZGllICJTcGFldGZydWVoamFocnNwYXJ0eSIgenVtCjMzMzMgR2VidXJ0c3RhZyBpbSBNYWkgMjAwMSBuaW1tdCBGb3JtZW4gYW4uLi4gRWluZW4gUGFydHlyYXVtIGhhZXR0ZSBpY2gKc2Nob24sIGpldHp0IG11c3MgaWNoIG51ciBub2NoIG5lbiBTY2hsYWZwbGF0eiBmdWVyIGRpZSBCYW5kZSBvcmdhbmlzaWVyZW4gOikKCkJyYW5kaXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaW50ZXJwYXJ0eSA/IChSYXl6ZWVsLCAgNi4gT2t0IDIwMDAsIDE1OjQ3OjAyKToKfiMhIHJuPU9ya3RvZXRlciBydD05NzA3NTQzNzQgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzA3NTQzNzQKUmF5emVlbCBzYWd0OiBCcmllc2VsYW5nIHJ1bGVzISA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXaW50ZXJwYXJ0eSA/IChRaXRlc3MsICA2LiBPa3QgMjAwMCwgMjM6MTA6MTIpOgp+IyEgcm49UmF5emVlbCBydD05NzA4NDAwMjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzA3NTQzNzQKUWl0ZXNzIHNhZ3Q6IEJyaWVzZWxhbmcgaXN0IHp1IHRldWVyLiBBbGxlaW5lIHNjaG9uIHdhcyBkZW4gUGFya2xwbGF0eiBhbmdlaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXaW50ZXJwYXJ0eSA/IChSYXJkaWFuLCAgOC4gT2t0IDIwMDAsIDIzOjU1OjI1KToKfiMhIHJuPVFpdGVzcyBydD05NzA4NjY2MTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzA3NTQzNzQKUXVhbGl0YWV0IGhhdCBoYWx0IGlocmVuIFByZWlzLi4uCgpSYXIsIHRyb2VzdGVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJvaG5hbnphLUZyZWFrcyBhdWZnZXBhP3NzdCEgKE1vbnRhbnVzLCAgOS4gT2t0IDIwMDAsIDAwOjE1OjE5KToKCkJldm9yIHNpY2ggaXJnZW5kamVtYW5kIGJlc2Nod2VydCwgZXIgaGFldHRlIGVzIG5pY2h0IG1pdGJla29tbWVuOgoKU2VpdCBlaW4gcGFhciB0YWdlbiBnaWJ0IGVzIGVpbmUgbmV1ZSBFcndlaXRlcnVuZyB6dW0gYmVsaWVidGVuIEthcnRlbnNwaWVsCkJvaG5hbnphLgpEYXMgRGluZyBoZWlzc3QgSGlnaCBCb2huIHVuZCBpc3QgZGllIFN0YWVkdGUgdW5kIFJpdHRlciwgYWVoCldlc3Rlcm4tRXJ3ZWl0ZXJ1bmcuCldlaWwgZXMgYmlzbGFuZyBudXIgaW0gS2xlaW52ZXJsYWcgZXJzY2hpZW5lbiBpc3QsIGdpYnQgZXMgbnVyIGVpbmUgQXVmbGFnZQp2b24gMi41MDAgU3R1ZWNrLiBXZXIgYWxzbyBlaW4gRXhlbXBsYXIgaGFiZW4gd2lsbCwgc29sbHRlIHNpY2ggYmVlaWxlbi4uLiA7LSkKCkVpbiBwYWFyIEluZm9zICh1LmEuIEJlenVnc3F1ZWxsZW4pIGZpbmRldCBtYW4gYXVmIGRlciBXZWJwYWdlOgoKd3d3Lmxvb2tvdXQtZ2FtZXMuZGUKCmdydXNzCgpNb250YW51cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgWmV1Z3MgKFRvd2VyLCAxMi4gT2t0IDIwMDAsIDEzOjI2OjQ2KToKSWNoIHZlcm1pc3NlIHNwZXppZWxsIGVpbiBQYWtldCwgdmVybG9yZW5nZWdhbmdlbiBhbSAxMS4xMC4yMDAwIGJlaW0Kc3VlZGxpY2hlbiBTY2hsZWltZHJhY2hlbiBpbiBkZXIgU1NQIChjYS4gMTEgVWhyIEFiZW5kcykuIERhIGxhZyBhdWNoIGVpbmlnZXIKYW5kZXJlciBLcmFtLiBEZXIgRmluZGVyIHdpcmQgZ2ViZXRlbiwgenVtaW5kZXN0IGRhcyBUb2Rlc3JpdHRlcnNjaHdlcnQKenVydWVjayB6dSBnZWJlbi4KClRvd2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgLi4uIChMaWFyYSwgMTIuIE9rdCAyMDAwLCAxMzozOToyNCk6CkFoamEgcHJha3Rpc2NoLCBpY2ggaGFiIHp3YXIga2VpbiBQYWtldCB2ZXJsb3JlbiwgYWJlciBkaXZlcnNlIGFuZGVyZSBEaW5nZToKCk5haXZpdGFldCwgSWxsdXNpb25lbiwgdGFlZ2xpY2hlcyBFc3NlbiBiZWkgTXV0dGVybiwgZGVuIEdsYXViZW4gYW4gQ2hyaXN0a2luZAp1bmQgV2VpaG5hY2h0c21hbm4sIG1laW5lIEtpc3RlIFdlaW4gdm9tIFdlaW5oYWVuZGxlciwgbWVpbmUgZXdpZyBnZWZ1ZWxsdGUKR2VsZGJvZXJzZSAuLi4KCkFjaCBqYSwgdW5kIFVuYXNhaSB2ZXJtaXNzdCBpaHJlbiBDaGFyYWt0ZXIgdW5kIGlocmUgVW5zY2h1bGQgLi4uIGRpZSBzaW5kIG1pcgp3b2hsIGF1Y2ggaXJnZW5kd2FubiBhYmhhbmRlbiBnZWtvbW1lbiAuLi4KCkxpYXJhLCBad2VyZ2VuemF1YmVyaW5lLCBndXQgZHJhdWYgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgLi4uIChVbmFzYWksIDEyLiBPa3QgMjAwMCwgMTM6NDI6MzMpOgp+IyEgcm49TGlhcmEgcnQ9OTcxMzUwNzY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTcxMzUwNzY0CnRqYSBudSA6KQp3ZW5uIGljaHMgbWlyIHJlY2h0IHVlYmVybGVnZSBmZWhsdCBtaXIgYXVjaCBub2NoIHNvIGVpbmlnZXMgOikgbWFsCnVlYmVybGVnZW4uLi4KCjEuKSBkZXIgR2xhdWJlIGFuIGRhcyBHdXRlIGltIE1lbnNjaGVuIChpcyBiZWltIGF1ZnJhZXVtZW4gdmVybG9yZW4gZ2VnYW5nZW4pCjIuKSBkaWUgT3N0ZXJlaWVyIHZvbiBPc3Rlcmhhc2kgKGRpZSBoYXQgbWlyIG1laW5lIFNjaHdlc3RlciBpbW1lciBnZWtsYXV0KQozLikgZGVyIEdsYXViZSBkYXJhbiwgZGFzIExpYXJhIHBlaW5saWNoZSBTYWNoZW4gX25pY2h0XyB2ZXJvZWZmZW50bGljaHQhCgoKKmxhY2gqIApVbmEqIGViZW5mYWxscyBndXQgZHJhdWYKClBTLjogV2VyIGRpZXNlIERpbmdlIGZpbmRldCwgZGFyZiBzaWUgZ2VnZW4gRmluZGVybG9obiBiZWkgbWlyIGFiZ2ViZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU3VjaGUgLi4uIChKZW4sIDEyLiBPa3QgMjAwMCwgMTM6NTQ6MDgpOgp+IyEgcm49VW5hc2FpIHJ0PTk3MTM1MDk1MyByZz1hbnplaWdlbgp+IyEgdGlkPTk3MTM1MDc2NApIaSB6dXNhbW1lbiwKCmJpZXRlIEJlbG9obnVuZyBmdWVyIGRhcyBVbnRlcnNjaGxhZ2VuIHZvbiBVbmFzIFVuc2NodWxkLCBmdWVyIGRlbgp1bndhaHJzY2hlaW5saWNoZW4gRmFsbCwgZGFzcyBkaWUgd2lya2xpY2ggamVtYW5kIGZpbmRlbiBzb2xsdGUuIE9kZXIgbW9lY2h0ZQpkaWUgamVtYW5kIHdpcmtsaWNoIHVuc2NodWxkaWcgOykgPwpDVSwgRWxlbmRpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU3VjaGUgLi4uIChBcG9sbG9uaWEsIDEyLiBPa3QgMjAwMCwgMTQ6MDU6MjIpOgp+IyEgcm49SmVuIHJ0PTk3MTM1MTY0OCByZz1hbnplaWdlbgp+IyEgdGlkPTk3MTM1MDc2NApJY2ggaGFiIGRpZSBnZWtsYXV0LiBVbmQgZGllIGJlaGFsdCBpY2ggYXVjaC4gQmFzdGEuCgpBcG8qCnp3aW5rZXJuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU3VjaGUgLi4uIChSb2NodXMsIDEyLiBPa3QgMjAwMCwgMTk6MDI6NDQpOgp+IyEgcm49QXBvbGxvbmlhIHJ0PTk3MTM1MjMyMiByZz1hbnplaWdlbgp+IyEgdGlkPTk3MTM1MDc2NApBY2gsIERFU0hBTEIgYmlzdCBEdSBoYXJtbG9zLCBsaWViLCBuZXR0IHVuZCBVTlNDSFVMRElHLAp3ZWlsIER1IGRpZSBVbnNjaHVsZCB2b24gVW5hIGdla2xhdXQgaGFzdC4uLgpKZXR6dCB2ZXJzdGVoZSBpY2ggZGFzIGVuZGxpY2ggOi0pCgogIFJvY2h1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU3VjaGUgLi4uIChMdWcsIDE2LiBPa3QgMjAwMCwgMjI6NTA6MjgpOgp+IyEgcm49Um9jaHVzIHJ0PTk3MTM3MDE2NCByZz1hbnplaWdlbgp+IyEgdGlkPTk3MTM1MDc2NAoKSG0/CgpVbmEgd2FyIG5pZSB1bnNjaHVsZGlnLCB2b20gTW9tZW50IGRlciBaZXVndW5nIGFuLiBBbHNvIHdhcyBzb2xscy4uLgoKQXVzc2Nod2VpZmVuZApMdWcKLC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRyYWNoZW5nb3R0IChHcmltbWJvcm4sIDE3LiBPa3QgMjAwMCwgMDg6NDY6MDYpOgp+IyEgb249S2llc2Vsc3RlaW4gb3Q9OTcxNzQzNDc5IG9nPWFsbGdlbWVpbmVzCkF1Y2ggd2VubiBpY2ggd2Vpc3MgZGFzIGVzIHppZW1saWNoIHNjaHdpZXJpZyBpc3QgYXVmIGRpZXNlbSB3ZWdlIGVpbiBUZWFtIHp1CmJla29tbWVuLCBzbyBob2ZmZSBpY2ggZG9jaCBkYXMgaWNoIGVzIGRvY2ggbm9jaCBzY2hhZmZlIFZPUiBkZW0gUmVib290IGRlbgpEcmFjaGVuZ290dCB6dSBraWxsZW4uClZpZWxlaWNodCBoYXQgbm9jaCB3ZXIgWmVpdCBtaWNoIGFtIDE3LjEwLjAwIHVtIDIzOjAwIFVociB6dSBCZWdsZWl0ZW4uCkRpZSBub3R3ZW5kaWdlbiBTY2hsdWVzc2VsIHNpbmQgYmVyZWl0cyBpbiBtZWluZW0gQmVzaXR6LgpEYW5uIGhvZmZlIGljaCBlbmRsaWNoIG1laW5lbiBHZW5lcmFsc2JlcmljaHQgenUgVmVydm9sbHN0YWVuZGlnZW4uCkRhbmsgS2llc2Vsc3RlaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9keXNzZWUgKENvbikgKFJvY2h1cywgMTcuIE9rdCAyMDAwLCAxNzo0MTo1OCk6ClNpZWhlCmh0dHA6Ly93d3cudGZoLWJlcmxpbi5kZS9+czY2MDE3NS9Sb2xsZW5zcGllbC9CZXJsaW4vT2R5c3NlZS9PZHlfRnJhbWUuaHRtbApLdXJ6OiBSb2xsZW5zcGllbGVyLUNvbiBpbiBCZXJsaW4gbWl0IEFVU1NDSExJRVNTTElDSApuaWNodC1TdGFuZGFyZC1TcGllbHN5c3RlbWVuLCA0LiB1bmQgNS4gTm92ZW1iZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQaGlsaXBzIDdDTTUyNzkgKERlZXBibHVlLCAxOC4gT2t0IDIwMDAsIDAwOjE1OjI5KToKSGF0IGplbWFuZCB2b24gRXVjaCBkaWVzZW4gMTQiLU1vbml0b3I/IFdlbm4gamEsIGdpYnRzIG5lbiBUcmljayB3aWUgbWFuIGJlaQpkZW0gVGVpbCBzY2h3YXJ6IGFscyBzY2h3YXJ6ICh1bmQgbmljaHQgYWxzIEhlbGxncmF1KSBkYXJnZXN0ZWxsdCBiZWtvbW10PwpGdWVyIEJlc3Nlcndpc3NlcjogS29udHJhc3QgaXN0IHZvbGwgYXVmLSB1bmQgSGVsbGlna2VpdCB2b2xsIHp1Z2VkcmVodCwgc29uc3QKc2llaHQgbWFuIGdhcm5peCBtZWhyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGhpbGlwcyA3Q001Mjc5IChHb2xhcywgMTguIE9rdCAyMDAwLCAwMDo1NDoyMik6Cn4jISBybj1EZWVwYmx1ZSBydD05NzE4MjA5Mjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzE4MjA5MjkKaWNoIGhhYiB6dW1pbmRlc3QgZWluIHNlaHIgYWVobmxpY2hlcyB0ZWlsLCBmcmFnIG1pY2ggbmljaHQgd2llIGRhcyBnZW5hdQpoZWlzc3QuCmJlaSBtaXIgbGFnIGVzIGFtIGthYmVsLCBkYSB3YXIgZWluIHBpbiB2ZXJib2dlbi4gZW50d2VkZXIgaXMgZGVpbiBrYWJlbCBpbQpBLi4uLi4gb2RlciBlaW5lciBkZXIgc3RlY2tlciBvZGVyIGVzIGlzdCB3YXMgdm9lbGxpZyBhbmRlcmVzIDopCgp3aW5rZSB3aW5rZQpHb2xhcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc2NocmVpYmUgKFNudWdnbGUsIDE4LiBPa3QgMjAwMCwgMTU6MTc6MDEpOgpIYWxsb2VjaGVuIElociB0cmV1ZW4gTXVkZGllcywKCk5hY2hkZW0gaWNoIGRlbSBNdWQgbWFuZ2VscyBiZXphaGx0ZW4gSW50ZXJuZXR6dWdhbmdzIHVudHJldSB3ZXJkZW4KbXVzc3RlLCBzdWNoZSBpY2ggamV0enQgbmFjaCBFcnNhdHpiZWZyaWVkaWd1bmcgdW5kIGJpbiBkYWJlaQphdWYgZGFzIG1pdCB2aWVsZW4gVm9yc2NodXNzbG9yYmVlcmVuIGF1c2dlc3RhdHRldGUgCkJhbGR1cnMgR2F0ZSAyIGdlc3Rvc3Nlbiwgd2VsY2hlcyBpY2ggZ2VybmUga2FldWZsaWNoIGVyd2VyYmVuCm1vZWNodGUuIExlaWRlciBpc3Qga2VpbiBlaW56aWdlciBMYWRlbiBpbiBCb25uIGluIGRlciBMYWdlLAptaWNoIGRhbWl0IGF1c3p1cnVlc3Rlbi4gRnJ1ZWhlc3RlbnMgaW4gMiBXb2NoZW4gb2RlciBzbyBsYXV0ZXQKZGllIEF1c3NhZ2UuCgpEYWhlciBkaWUgRnJhZ2U6IGtlbm50IGplbWFuZCBlaW5lbiBMYWRlbiwgZGVyIGVzIHZvcnJhZXRpZyBoYXQgCihldnRsIHNvZ2FyIGRpZSBhdXN0cmFsaXNjaGUgVmVyc2lvbiwgd2VsY2hlIG1pdCBiZXN0ZXIgCkF1c3RhdHR1bmcgYmVpIGdlcmluZ3N0ZW0gUHJlaXMgZGFoZXJrb21tdCAtIG5laG1lIGFiZXIgYXVjaCAKZ2VybmUgZWluZSBhbmRlcmUpCn50CgpGYWxscyBtaXJqZW1hbmQgbmVuIGhlaXNzZW4gVGlwIGdlYmVuIGthbm4gKHVuZCB3ZW5ucyBlaW4gClNwaWVsZXZlcnNhbmQgaW0gSW50ZXJuZXQgaXN0LCBkZXJzIGhhdCkgYml0dGUgbWFpbCBhbiBtaWNoLgoKZGFuayBldWNoCgpTbnVnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc2NocmVpYmUgKE5pbWJ1cywgMTkuIE9rdCAyMDAwLCAwNjoxMjoxNCk6Cn4jISBybj1TbnVnZ2xlIHJ0PTk3MTg3NTAyMSByZz1hbnplaWdlbgp+IyEgdGlkPTk3MTg3NTAyMQpIaSBTbnVnZ2xlLAoKaWNoIG1hY2hlIGltIE1vbWVudCBnZXJhZGUgZWluIFByYWt0aWt1bSBpbiBTeWRuZXkgdW5kIGthbm4gbWljaCBtYWwKbmFjaCBkZXIgYXVzdHJhbGlzY2hlbiBWZXJzaW9uIHVtc2NoYXVlbiA6LSkKCkNoZWVycywKTmltYnVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzdXNlbiAoQmVuZGVpZ2lkLCAzMC4gT2t0IDIwMDAsIDA5OjUxOjAxKToKfiMhIG9uPUVsZGFyb24gb3Q9OTcyNzQ5NjE4IG9nPWFsbGdlbWVpbmVzCkljaCBiaW4gaW4gZGVyIFBvc3QuCk5hIGRhIHN0YXVuc3QgZHUsIHdhPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHN1c2VuIChCZW5kZWlnaWQsIDMwLiBPa3QgMjAwMCwgMDk6NTE6MTEpOgp+IyEgb249SGVyb21jZmx5IG90PTk3Mjc1MDA1NyBvZz1hbGxnZW1laW5lcwp+IyEgcm49RWxkYXJvbiBydD05NzI3NDk2MTggcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD05NzI3NDk2MTgKCmFsbGVyZGluZ3MgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc3VzZW4gKEJlbmRlaWdpZCwgMzAuIE9rdCAyMDAwLCAwOTo1MToxOSk6Cn4jISBvbj1ZZW5kaSBvdD05NzI4OTM4MjUgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPUhlcm9tY2ZseSBydD05NzI3NTAwNTcgcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD05NzI3NDk2MTgKR3JpbWJvb29vb3JuISBWZXJsZWd1bmdzLUFsYXJtIQoKWVRZCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBzdXNlbiAoWWVuZGksIDMwLiBPa3QgMjAwMCwgMTA6MjA6MjkpOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTk3Mjg5NTg3OSByZz1hbnplaWdlbgp+IyEgdGlkPTk3Mjc0OTYxOApHcmltbWJvb29ybiEgCipiZXR0ZWwqCgpZVFkKLT5zY2htYXJybgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk11ZCBpbSByYWRpbyAoQW5ha2luLCAzMC4gT2t0IDIwMDAsIDE0OjI1OjE5KToKSGksCgpzY2hhdXQgbWFsIGF1ZiAKCmh0dHBzOi8vY2hhb3NyYWRpby5jY2MuZGUvY3I1NS5odG1sCgpkYSB3aXJkIHVlYmVyIE11ZHMvQ2hhdCBkaXNrdXRpZXJ0IGF1Y2ggcGVyIHJlYWxhdWRpbwp6dSBob2VyZW4gdW5kIHNvd2VpdCBpY2ggd2Vpc3MgaXN0IGF1Y2ggaW1tZXIgZWluCmJlZ2xlaXRlbmRlciBjaGF0IGRhYmVpLgoKQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGV1dHNjaGUgVEYgV2Vic2l0ZSAoTWVzaXJpaSwgIDUuIE5vdiAyMDAwLCAyMDoxNDowOSk6CkxpZWJlIFRGbGVyLAoKbmFjaGRlbSBpY2ggbnVuIHNjaG9uIHZpZWxlIEphaHJlIGFscyBURi1CZXRyZXVlciBpbSBNRyBhcmJlaXRlIDopLCBoYWJlbgpUd3J4IHVuZCBpY2ggdW5zIGVudHNjaGxvc3NlbiwgZWluZSBkZXV0c2NoZSB0aW55ZnVndWUgV2Vic2l0ZSAKKHd3dy50aW55ZnVndWUuZGUgZmFsbHMgS2VuIEtleXMgbml4IGRhZ2VnZW4gaGF0KSBhdWZ6dXNldHplbi4KCkRvcnQgc29sbCB1bnRlciBhbmRlcmVtIGZvbGdlbmRlcyB6dSBmaW5kZW4gc2VpbjoKCiogTGluayB1bmQgTWlycm9yIHp1IGRlbiBha3R1ZWxsZW4gVEYgVmVyc2lvbmVuIHVuZCB6dXIgSG9tZXBhZ2Ugdm9uIEtlbiBLZXlzCiogTWlycm9yIGRlciBURi1IaWxmZQoqIFRpcHMgdW5kIFRyaWNrcyBmdWVyIEVpbnN0ZWlnZXIgaW4gVEYKKiBGQVEKKiBkZXV0c2NoZSBNYWlsaW5nbGlzdGUsIGZ1ZXIgZGllIExldXRlIGRlbmVuIGRpZSBlbmdsaXNjaGUgdW52ZXJzdGFlbmRsaWNoCm9kZXIgenUga29tcGxpemllcnQgaXN0IAoqIFByb2dyYW1taWVydGlwcywgU2ljaGVyaGVpdCB1bmQgRGVidWdnZW4gbWl0IFRGIAoqIE5ld3MgdW5kIEdpbW1pY2tzCiogU2FtbWx1bmcgdm9uIFRGLU1ha3JvcywgZGllIGVudHdlZGVyIGFsbGdlbWVpbiBnZWhhbHRlbiwgb2RlciBNdWRzcGV6aWZpc2NoCnNpbmQsIGdlZ2xpZWRlcnQgbmFjaCB2ZXJzY2hpZWRlbmVuIEthdGVnb3JpZW4uCkRhIHNvIGVpbmUgU2FjaGUgbmljaHQgdm9uIDIgTGV1dGVuIGdldHJhZ2VuIHdlcmRlbiBrYW5uLCBzaW5kIHdpciBhdWYgRXVyZQpNaXRoaWxmZSBhbmdld2llc2VuLgoKU2NoaWNrdCBkaWUgU2FjaGVuLCBkaWUgSWhyIGdlcm4gbWl0IGVpbmVyIGJyZWl0ZXJlbiBPZWZmZW50bGljaGtlaXQgdGVpbGVuCndvbGx0IChlZ2FsIG9iIGFsbGdlbWVpbiwgb2RlciBNb3JnZW5ncmF1ZW4gc3BlemlmaXNjaCkgZWluZmFjaCBhbiBtZWluZQpSTC1NYWlsYWRyZXNzZSAobWgxNEBpbmYudHUtZHJlc2Rlbi5kZSkuCgpJbiBkZXIgTWFpbCBzb2xsdGUgZW50aGFsdGVuIHNlaW46CgpLdXJ6ICgyLTMgU2FldHplKSB3YXMgZGFzIFRlaWwgbWFjaHQuCgpLYXRlZ29yaWUgKHdvIGlociBlcyBlaW5vcmRuZW4gd3VlcmRldCksIGdnZi4gTXVkIGZ1ZXIgZGFzIGVzIHNwZXppZmlzY2ggaXN0LApnZ2YgYXVjaCB3ZWl0ZXJlIEthdGVnb3JpZSAod2llIEdpbGRlLCBSYXNzZSwgLi4uKQoKTGFlbmdlcmUgQmVzY2hyZWlidW5nIG1pdCBTeW50YXggZnVlciBOdXR6dW5nLCBCZWlzcGllbGUsIEVpbnNjaHJhZW5rdW5nZW4KdXN3LgoKTWluaW1hbCBiZW5vZXRpZ3RlIFRGLVZlcnNpb24uCgpBbHMgQXR0YWNobWVudCBkaWUgZW50c3ByZWNoZW5kZW4gRmlsZXMuCgpXZXNzZW4gU2FjaGVuIGF1Y2ggcHJvYmxlbWxvcyBpbiBlbmdsaXNjaGVuIE11ZHMgZnVua3Rpb25pZXJlbiwgc29sbCBkYXMgYml0dGUKbWl0IGRhenVzY2hyZWliZW4sIGRhbm4gd2FlcmUgZXMgbmF0dWVybGljaCBhdWNoIHdpY2h0aWcgZGllIEt1cnpiZXNjaHJlaWJ1bmcKdW5kIGRpZSBMYW5nYmVzY2hyZWlidW5nIGluIEVuZ2xpc2NoIHp1IGhhYmVuLgoKV2lyIHdlcmRlbiBfdmVyc3VjaGVuXyBkaWUgV2Vic2l0ZSB3byBlcyBnZWh0IHp3ZWlzcHJhY2hpZyB6dSBoYWx0ZW4uCgpNZXNpcmlpLCBURi1sZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuY2FsYWdvbiAoU2lsdmFuYSwgMjEuIE5vdiAyMDAwLCAxODozOTozMSk6ClNhbHZlCgpOYWNoZGVtIGRpZSBNYWlsIGFuIG1pY2ggZGVuIGRpY2tlbiBUaXRlbCAiV0VJVEVSU0FHRU4hIiB0cnVnLCB3aWxsIGljaCBkZW0KbWFsIFJlY2hudW5nIHRyYWdlbjoKCkhpZXJtaXQgdHUgaWNoIGt1bmQgdW5kIHp1IHdpc3NlbiwgZGFzcyBLbnVkZGVsZHJhY2hlIEFuY2FsYWdvbiAoZWluIHBhYXIgZGVyCmFlbHRlcmVuIHdpcmQgZXIgbm9jaCBiZWthbm50IHNlaW4pIGhldXRlIHVtIDk6MzUgVWhyIFZhdGVyIGdld29yZGVuIGlzdC4KRWx0ZXJuIHVuZCBLaW5kIHNpbmQgZGVtIFZlcm5laG1lbiBuYWNoIGdlc3VuZCB1bmQgd29obGF1Zi4KClNpbHZhbmEgKGdyYXR1bGllcnQgaGVyemxpY2gpCgpQUzogQWNoIGphOiBFcyBpc3Qgdm9uIGRpZXNlbSBzZWx0c2FtZW4gTXVkIG5hbWVucyBSTCBkaWUgUmVkZSwgYWxzbyBsYXNzdApkYXZvbiBhYiwgUm9uZGEgenUgZ3JhdHVsaWVyZW4sIGphPyA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1vYmlsY29tIChMdXB1cywgMjMuIE5vdiAyMDAwLCAxMTowMDoyMSk6CkhpaG8hCgpJY2ggbGllZmVyZSBtaXIgZ3JhZGUgR3JhYmVua2FlbXBmZSBtaXQgZGVyIE1vYmlsY29tIHdlZ2VuIGRlciBpaHJlcgoiUmVjaG51bmdzZ2VidWVociIuIEhhdCBkYSBqZW1hbmQgc2Nob24gRXJmYWhydW5nZW4gbWl0IGdlbWFjaHQgKHNvbGwgaGVpc3NlbgpLbGFnZS9LdWVuZGlndW5nIGV0Yy4pPwoKTHVwdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyZXVkaWdlIEJla2FubnRtYWNodW5nISA6KSAoQW5jYWxhZ29uLCAyMy4gTm92IDIwMDAsIDIxOjUwOjE2KToKSGFsbG8gTW9yZ2VuR3JhdWVuIQpJY2ggaGFiZSBtaXQgdmVyZ251ZWdlbiB6dWdlc2VoZW4sIHdpZSBtZWluIFJMLUNoYXJha3RlciBhbSBEaWVuc3RhZyBkZW4KMjEuMTEuMjAwMCB1bSA5LjM1IHp1bSBWYXRlciBlaW5lcyBTb2huZXMgYmVmb2VyZGVydCB3dXJkZSEKSWNoIGZyZXVlIG1pY2ggd2FobnNpbm5pZyB1bmQgd3VlbnNjaGUgYWxsZW4gZHJlaWVuIGFsbGVzIG51ciBlcmRlbmtsaWNoIEd1dGUhCkljaCBob2ZmZSBpaHIgdGVpbHQgbWVpbmUgTWVpbnVuZyEKR3J1ZXNzZSB1bmQgR2x1ZWNrd3VlbnNjaGUgbGVpdGUgaWNoIGdlcm4gd2VpdGVyLCBMYWVzdGVyZWllbiB1bmQKVW5hcnRpZ2tlaXRlbiBtb2VnZSBHcmltbWJvcm4gYXVmIGV3aWcgaW4gZGllIGhpbnRlcnN0ZW4gV2lua2VsIHZvbiAubXVlbGwKdmVybGVnZW4hCkZ1ZXIgZGVuIHVlYmVyZ2x1ZWNrbGljaGVuIFZhdGVyLAogICAgICAgICAgICAgICAgQW5jYWxhZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW5jYWxhZ29uIChQYW1wZXJzLCAyNC4gTm92IDIwMDAsIDE5OjE2OjM0KToKfiMhIHJuPVNpbHZhbmEgcnQ9OTc0ODI4MzcxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTc0ODI4MzcxCkhhZXR0ZSBpY2ggaWhtIGdhciBuaWNodCB6dWdldHJhdXQuLi4uCgpQYW1wZXJzLiBLaW5kZXJsb3MuIEhvZmZlbnRsaWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTnVuIHN1Y2gnaWNoIG5lIEJ1ZGUgaW4gTXVlbmNoZW4gOy0pIChSb25kYSwgMjYuIE5vdiAyMDAwLCAyMjo0OToxOSk6CkhpLAoKbmFjaGRlbSBpY2ggamEgc2Nob24gdmVyc2NodCBoYWInLCBpbiBHaWVzc2VuIG5lIEJ1ZGUgZnVlciBlaW5lIEJla2FubnRlCmF1Znp1dHJlaWJlbiAtIG51biBkZXIgVmVyc3VjaCwgYXVjaCBpbiBNdWVuY2hlbiB3YXMgenUgZmluZGVuIDstKQpBbHNvOiBXZXIgZ2FueiBkdXJjaCBadWZhbGwgaW4gTXVlbmNoZW4gZWluZSBrbGVpbmUgQnVkZSB3ZWlzcywgdmllbGxlaWNodAp6d2VpIFppbW1lciwgbW9lZ2xpY2hzdCB1bnRlciAxNTAwIERNIHBybyBNb25hdCAoTXVlbmNoZW4gc29sbCB1ZWJlbCB0ZXVlcgpzZWluLCBvZGVyPykgLSBpY2ggd3VlcmRlIG1pY2ggcmllc2lnIHVlYmVyIFRpcHBzIGZyZXVlbi4KCkRhbmtlLAoKUm9uZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOdW4gc3VjaCdpY2ggbmUgQnVkZSBpbiBNdWVuY2hlbiA7LSkgKFRlZGR5YmVhLCAyOC4gTm92IDIwMDAsIDEzOjI3OjU2KToKfiMhIHJuPVJvbmRhIHJ0PTk3NTI3NTM1OSByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTI3NTM1OQpWZXJnaXNzIGVzLCBpbiBNdWVuY2hlbiBpc3QgZGllIExhZ2UgaW0gTW9tZW50IG1laHIgYWxzIG51ciBhdXNzaWNodHNsb3MuClNvZmVybiBEZWluZSBCZWthbm50ZSBrZWluZSBTdHVkZW50aW4gaXN0LCBibGVpYnQgaWhyIHdvaGwgbnVyIGRpZQpNaXR3b2huemVudHJhbGUuLi4KClRlZGR5YmVhLCBzdWNodCBhdWNoIHNjaG9uIHNlaXQgbmVyIFdlaWxlIG5hY2ggbmVyIFdvaG51bmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk11ZCBnZXN1Y2h0IChaYXJkb3osIDI5LiBOb3YgMjAwMCwgMTA6MTQ6MDUpOgpJY2ggc3VjaGUgZWluIE11ZCwgZGFzcyBtaWNoIGFscyBQcm9ncmFtbWllcmVyIGhhYmVuIHdpbGwgOikKRGFzIE11ZCBzb2xsdGUgZm9sZ2VuZGUgQmVkaW5ndW5nZW4gZXJmdWVsbGVuOgotIGVpbiBwbGF5ZXJraWxsaW5nIG11ZCBzZWluIChhYmVyIE5JQ0hUIGRhcyBway1tdWQgOikpCi0gcmVjaHQgbmV1IChhbSBiZXN0ZW4gZ2VyYWRlIGVyc3QgaW0gQXVmYmF1KQotIG9mZmVuIGZ1ZXIgbmV1ZSBJZGVlbiAoS2FtcGZzeXN0ZW0vR2lsZGVuL0F1c3J1ZXN0dW5nZW4pCi0gZXMgc29sbHRlIGVpbiBLb256ZXB0IGhhYmVuLCBkLmguIGtlaW4gd2lsZGVzIEdlYmlldGVwcm9ncmFtbWllcmVuLCBzb2xhbmdlCmRpZSBHcnVuZGxhZ2VuIG5pY2h0IGdlbGVndCBzaW5kIDopCgpJY2ggYmlldGU6Ci0gNSBKYWhyZSBwa211ZC1FcmZhaHJ1bmcgKEhNIChqYSwgZGFzIG11ZCBpc3Qgc2Nocm90dCwgaWNoIHdlaXNzIGRlc2hhbGIsIHdhcwptYW4gYWxsZXMgYmVzc2VyIG1hY2hlbiBrYW5uIDopKSkKLSBlaW4gcGFhciBQcm9ncmFtbWllcmtlbm50bmlzc2UKLSBleHRyZW0gdmllbGUgSWRlZW4gOikKClphcmRvegoKUC5TLjogRGFzIEtvZWxuZXIgTXVkICJaYXJuaXlhIiBlcmtsYWVyZSBpY2ggaGllcm1pdCBmdWVyIGdlc3RvcmJlbiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNpZWhlIGF1Y2ggUGFydHktUnVicmlrIChQaXp6YXBlcGUsIDMwLiBOb3YgMjAwMCwgMTM6MDk6NTMpOgpTZWlkIGlociBzcG9udGFuPwoKRGEgc2ljaCBtZWluIEFiZmx1ZyB1ZWJlciBkZW4gVGVpY2ggbm9jaCB3ZWl0ZXIgbmFjaCBoaW50ZW4gdmVyc2NoaWVidCwgaGFldHRlCmljaCBqYSBzcG9udGFuIHdpZWRlciBMdXN0IHVuIGF1Y2ggdmllbGxlaWNodCBaZWl0LCBrdXJ6ZnJpc3RpZyBlaW5lCk5pa29sYXVzZmV0ZSBhdWYgZGVyIEJ1cmcgc3RlaWdlbiB6dSBsYXNzZW4uCkljaCBtdWVzc3RlIGRhbm4gZ2xlaWNoIG1sIG5hY2hmcmFnZW4sIG9iIHVuZCB3YW5uIGRpZSBCdXJnIG5vY2ggZnJlaSBpc3QgLQphYmVyIGVyc3RtYWwgYml0dGUgRmVlZGJhY2sgdm9uIGV1Y2gsIG9iIGlociBhbSAyLiBvZGVyIDMuIEFkdmVudHN3b2NoZW5lbmRlCihhbHNvIGVudHdlZGVyIGluIHp3ZWkgb2RlciBpbiBkcmVpIFdPY2hlbikgTHN1dCBhdWYgTXVkLVBhcnR5IGhhZXR0ZXQ/IQoKUmVwbGllIGJpdHRlIGluIGRlciBQYXJ0eS1SdWJyaWshCgotUFAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTXVkIGdlc3VjaHQgKEJvaW5nLCAgMS4gRGV6IDIwMDAsIDE2OjQ4OjQ2KToKfiMhIHJuPUhvcm55eSBydD05NzU2NzMwNjcgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKSmEsIHd1ZXJkZSBtaWNoIGF1Y2ggaW50ZXJlc3NpZXJlbiB3aWVzbyBEdSBkYXMgbmljaHQgZ2xhdWJzdC4KU2Fnc3QgRHUgZXMgdW5zPwogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNdWQgZ2VzdWNodCAoSG9ybnl5LCAgNS4gRGV6IDIwMDAsIDE0OjE1OjIwKToKfiMhIHJuPUJvaW5nIHJ0PTk3NTY4NTcyNiByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpXZWlsLCB3ZW5uIGVzIGZ1ZW5mIEphaHJlIGdld2VzZW4gd2FlcmVuLCB1bmQgZGFzIE1VRCAxOTk2IGdlZ3J1ZW5kZXQgd3VyZGUKd2FlcmVuIHdpciBkb2NoIHNjaG9uIGFtIHh4eCBEZXouIDIwMDEgb2Rlcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE11ZCBnZXN1Y2h0IChTaW5hLCAgNS4gRGV6IDIwMDAsIDE0OjIyOjIxKToKfiMhIHJuPUhvcm55eSBydD05NzYwMjIxMjAgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKOTYgZ2VncnVlbmRldDoKRC5oLiBtYW4ga2FubiBwcm9nZ2VuOiA5NiwgOTcsIDk4LCA5OSwgMDAKbWFjaHQgYmVpIG1pciA1IEphaHJlLgoKU2luYSwgWndlcmcgYWJlciBuaWNodCBnYW56IGRvb2YKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE11ZCBnZXN1Y2h0IChCb2luZywgIDUuIERleiAyMDAwLCAxNDoyNzozMik6Cn4jISBybj1Ib3JueXkgcnQ9OTc2MDIyMTIwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTc1NDg5MjQ1CkljaCB3YXIgZGFzIGVyc3RlIG1hbCAxOTkxIGltIEhNIGVpbmdlbG9nZ3QuIERhcyBzaW5kIGZ1ZXIgbWljaCBzY2hvbgo5IEphaHJlIC4uLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBNdWQgZ2VzdWNodCAoQm9pbmcsICA1LiBEZXogMjAwMCwgMTQ6MzE6MTMpOgp+IyEgcm49Qm9pbmcgcnQ9OTc2MDIyODUyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTc1NDg5MjQ1CkljaCByZWRlIG1pdCBtaXIgc2VsYnN0IC4uLgpLb2VubnRlIGF1Y2ggQW5mYW5nIDE5OTIgZ2V3ZXNlbiBzZWluLCBhdWYgamVkZW4gRmFsbCBpc3QgZXMgbGFuZ2UKaGVyLiA6KQogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBNdWQgZ2VzdWNodCAoWmFybml5YSwgIDUuIERleiAyMDAwLCAxNDozNDoxMyk6Cn4jISBybj1Cb2luZyBydD05NzYwMjMwNzMgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKd2Vpc3MgaGFsdCBuaWNodCBqZWRlciwgZGFzcyBlcyB2ZXJzY2hpZWRlbmUgR2VuZXJhdGlvbmVuIHZvbiBITSBnYWIuLi4KaW56d2lzY2hlbiB3aXJkIGFuIGRlciB2aWVydGVuIGdlcHJvZ2d0LgoKTWFyYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTXVkIGdlc3VjaHQgKEhvcm55eSwgIDUuIERleiAyMDAwLCAxNjowNzowMCk6Cn4jISBybj1aYXJuaXlhIHJ0PTk3NjAyMzI1MyByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpITT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IE11ZCBnZXN1Y2h0IChTYW10cGZvdGUsICA1LiBEZXogMjAwMCwgMjA6NDg6MjkpOgp+IyEgcm49SG9ybnl5IHJ0PTk3NjAyODgyMCByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpob2x5IG1pc3Npb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IE11ZCBnZXN1Y2h0IChIb3JueXksICA2LiBEZXogMjAwMCwgMTU6MTI6MTQpOgp+IyEgcm49U2FtdHBmb3RlIHJ0PTk3NjA0NTcwOSByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpLZW5uIGljaCBuaWNoLi4uIGlzIGRhcyBSTCBSb2xsZW5zcGllbD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBNdWQgZ2VzdWNodCAoQm9pbmcsICA2LiBEZXogMjAwMCwgMTU6MjE6MjIpOgp+IyEgcm49SG9ybnl5IHJ0PTk3NjExMTkzNCByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpKZXR6dCBoYWIgaWNoIG1hbCBuZSBnYW56IGRvb2ZlIEZyYWdlIC4uLiB3ZW5uIER1IGRhcyBITSBuaWNodCBrZW5uc3QsCndpZXNvIGJlaGF1cHRlc3QgRHUgZGFubiB6dSB3aXNzZW4sIGRhc3MgZXMgZGFzIHNlaXQgMTk5NiBnaWJ0PwogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgotLS0tLS0rKysrKysjIyMjIyNFSU5MQURVTkcjIyMjIyMrKysrKystLS0tLS0gKFNjaGxlaWNoZXIsICA3LiBEZXogMjAwMCwgMDI6MDk6NDEpOgpBbSAxMi4xMi4wMCB1bSAwOjAwIFVociBsYWRlbiBTYW1vcyB1bmQgU2NobGVpY2hlciBoZXJ6bGljaHN0IGFsbGUgZGllamVuaWdlbgpkaWUgIGtvbW1lbiBtb2VnZW4genUgSWhyZXIgSG9jaHplaXQgaW4gZGVuIEhvY2h6ZWl0c2hhaW4gYW0gRW5kZSBkZXIgV2VsdAplaW4uIEJpdHRlIGVyc2NoZWludCBpbiB6d2FuZ2xvc2VyIEFiZW5kZ2FyZGVyb2JlIHVuZCBvaG5lIFdhZmZlbiBkYSBqZWRlcgpWZXJzdWNoIGRlbiBQcmllc3RlciB6dSB0b2V0ZW4gdW1nZWhlbmQgbWl0IGRlciBIZW5rZXJzYXh0IGdlYWhuZGV0IHdpcmQuIH06LT4KWndlcmdlIHVuZCBFbGZlbiB3ZXJkZW4gZ2ViZXRlbiBzaWNoIGZ1ZXIgZGllc2VuIEFiZW5kIGF1c25haG1zd2Vpc2UgbWFsCmdlc2l0dGV0IHp1IHZlcmhhbHRlbiwgc2llIG11ZXNzZW4gamEgbmljaHQgbWl0ZWluYW5kZXIgcmVkZW4uIFNhbW9zIHVuZCBpY2gKd2VyZGVuIGF1ZiBlaW5lIGV4YWt0ZSBTaXR6b3JkbnVuZyBhY2h0ZW4uClZvbiBHZXNjaGVua2VuIGJpdHRlbiB3aXIgYWJ6dXNlaGVuLgpEYXMgZ2x1ZWNrbGljaGUgUGFhcgpTYW1vcyAmIFNjaGxlaWNoZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldPVCA5IChBdG96LCAxMS4gRGV6IDIwMDAsIDE0OjEyOjU4KToKSHVodSwKb3N0ZW4KY2hhb3NiYWxsIHdlZ2hpZXIKdW50IHdlZ2hpZXIKd2VzdGVuCnZpZWxsZWljaHQgaGFiZSBpY2ggZXMgdWViZXJsZXNlbiwgd2VubiBqYSwgZGFubiBiaXR0ZSBpY2ggdW0gTmFjaHNpY2h0LCBpY2gKYmluIGluIGRlciBsZXR6dGVuIFplaXQgbnVyIG5vY2ggbWl0IGVpbmVtIEF1Z2UgYXVmIGRlbSBCaWxkc2NoaXJtLgpIYXQgc2Nob24gamVtYW5kIGRlbiBuZXVlbiBXT1QgZ2VsZXNlbj8gV2llIGlzdCBlciBkZW5uIHNvPyBVbmQgd2Vpc3MgamVtYW5kLAp3YW5uIGVyIGFscyBUYXNjaGVuYnVjaCBmYWVsbGlnIGlzdD8gRnVlciBlaW4gSGFyZGNvdmVyIGhhYmUgaWNoIG5hZW1saWNoCmxlaWRlciBrZWluZW4gUGxhdHogbWVociAqc2V1ZnoqCgpHcnVzcywgQXRveiAtIGVpZ2VudGxpY2ggZ2FyIGtlaW5lIFplaXQgenVtIGxlc2VuIGhhYmVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXT1QgOSAoTXVhZGRpYiwgMTEuIERleiAyMDAwLCAxNTowNDoyOSk6Cn4jISBybj1BdG96IHJ0PTk3NjU0MDM3OCByZz1hbnplaWdlbgp+IyEgdGlkPTk3NjU0MDM3OApJY2ggYmluIHp3YXIgbm9jaCBuaWNodCBnYW56IGR1cmNoLCBhYmVyIG1pciBnZWZhZWxsdCBkYXMgQnVjaCBndXQgLSBiaXMgamV0enQKKGNhLiAyLzMpIGtlaW5lIGV3aWcgbGFuZ2F0bWlnZW4gU3RlbGxlbiwgd2llIGdld29obnQgZmx1ZXNzaWcgZ2VzY2hyaWViZW4uCk1laW5lciBNZWludW5nIG5hY2ggZHVyY2hhdXMgbGVzZW5zd2VydCwgYWJlciBob2ZmZW4gd2lyIG1hbCwgZGFzcyBlcyBuYWNoIGRlbQoxMC4gQmFuZCB6dWVuZGUgaXN0LCBzb25zdCB3aXJkcyB1bmdsYXVid3VlcmRpZy4uLgoKTXVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6enogKEJlbmRlaWdpZCwgMTIuIERleiAyMDAwLCAxMTo1NjozNCk6Cn4jISBvbj1QYXJyYSBvdD05NzYzMjcyMjEgb2c9YWxsZ2VtZWluZXMKR3J1c3MgYW4gU3Bhd24gdW5kIE1jcmlwLCBQYXJyYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBNdWQgZ2VzdWNodCAoSG9ybnl5LCAxMi4gRGV6IDIwMDAsIDE0OjQyOjE2KToKfiMhIHJuPUJvaW5nIHJ0PTk3NjExMjQ4MiByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpITT8gaWNoIHJlZCB2b20gUEsuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogTXVkIGdlc3VjaHQgKEJvaW5nLCAxMi4gRGV6IDIwMDAsIDE0OjQ0OjQ2KToKfiMhIHJuPUhvcm55eSBydD05NzY2Mjg1MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKQWxsZSBhbmRlcmVuIHJlZGVuIHZvbSBITSAuLi4gWmFyZG96IHNjaHJpZWIgZG9jaCBleHRyYSBkYXNzIGVyIE5JQ0hUCnZvbSBzb2dlbmFubnRlbiAncGstbXVkJyByZWRldC4KICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJ3ZWl0ZXJ1bmdlbiBmdWVyIGRpZSBLYW1wZm1lbGR1bmdlbiEgKE1lc2lyaWksIDEzLiBEZXogMjAwMCwgMDI6NDI6MDMpOgoKMS4gV2VpbCBpY2ggZXMgaW1tZXIgc2Nob24gbWFsIGFuZGVycyBoYWJlbiB3b2xsdGUsIGhhYiBpY2ggbWljaCBtYWwKaGluZ2VzZXR6dCAKdW5kIGVpbmUgRXJ3ZWl0ZXJ1bmcgZnVlciBkaWUgS2FtcGZtZWxkdW5nZW4gdm9uIFJpbmdvciBnZXNjaHJpZWJlbi4KCkRpZXNlIGhhdCBmb2xnZW5kZSBWb3J0ZWlsZSAoaW1obyk6CgotIEFuemVpZ2UgZGVyIEtvbnN0aXR1dGlvbiBkZXIgR2VnbmVyLCB2b24gc2ljaCBzZWxic3QgdW5kIHZvbiBkZW0gZWlnZW5lbgpUZWFtCiAgYWxzIEZhcmJhYnN0dWZ1bmcgZGlyZWt0IGluIGRlbiBLYW1wZm1lbGR1bmdlbgotIGJlaSBtZWhyZXJlbiBHZWduZXJuIHdpcmQgZGVyIFN0YXR1cyBoYWx0IGVudHNwcmVjaGVuZCB6dWdlb3JkbmV0Ci0gYmVpIG1laHJlcmVuIGdsZWljaGVuIEdlZ25lcm4gd2VyZGVuIGVudHdlZGVyIGRpZSBsZXR6dGVuIG4gTWVsZHVuZ2VuIHVlYmVyCiAgZGVuIFN0YXR1cyBpbiBlaW5lbiBOYW1lbiByZWluZ2VtYWx0IG9kZXIgcHJvIFplaWxlIGtvbW10IGVpbmVyIGRlciBuIAogIFN0YXRpIHp1IFdvcnQKCi0gS29tbXVuaWthdGlvbiBkZXIgS29uc3RpdHV0aW9uIGRlciBHZWduZXIgdWViZXIgdGVhbSBydWZlLCBtaXQgZ2FnZ2VuIHVuZAogIGVpbmFyYmVpdGVuCgotIEZyZXVuZCwgRmVpbmQgU29ydGllcnVuZyAoRnJldW5kZSBsaW5rcywgRmVpbmRlIHJlY2h0cykKLSBiZXNzZXIga29uZmlndXJpZXJiYXJlIEFuemVpZ2UsIGQuaC4gYXVjaCBlaW5lbmUgQXVzZ2FiZW4ga29lbm5lbiBtaXQgcmVpbi0KICBnZWJhc3RlbHQgd2VyZGVuCgoKV2VyIGVzIHNpY2ggbWFsIGFuc2NoYXVlbiB3aWxsOiAKaHR0cDovL2Vtdy5pbmYudHUtZHJlc2Rlbi5kZS9+bWgxNC90Zi9tYWtyb3MvaW5kZXguaHRtbCAKZGEgYXVmIGRpZSBCZWlzcGllbGUga2xpY2tlbgoKRG93bmxvYWQgYXVjaCBkb3J0LCBiZWkgUHJvYmxlbWVuLCBJZGVlbiwgRnJhZ2VuIC0+IG1haWwsIHRtIGFuIG1pY2ggbmljaHQgYW4gClJpbmdvciAoYWJlciBkZXIgaXMgamEgZWggbmljaCBkYSA6KQoKMi4gSWNoIGhhYmUgYW5nZWZhbmdlbiwgZGllIEthbXBmbWVsZHVuZ2VuIGZ1ZXIgVGFuamlhbiB1bmQgRGVsZmVuIGFscyBadXNhdHotCiAgIGRhdGVpZW4genUgUmluZ29ycyBLYW1wZm1lbGR1bmdlbiB6dXNhbW1lbnp1c3RlbGxlbi4KCkRpZSBGYXJiZW4gZGVyIFNwZWxscyB1bmQgR2lsZGVuIHNpbmQgZnJlaSBrb25maWd1cmllcmJhcgoKRGllIE5hbWVuIGRlciBTcGVsbHMgbmljaCA6KQoKQmVpIFByb2JsZW1lbiBzLm8uCgpNZXNpLCBzZWluIHRmIGFudHJlaWJlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXT1QgOSAoV3VyemVsLCAxMy4gRGV6IDIwMDAsIDIyOjEwOjE4KToKfiMhIHJuPUF0b3ogcnQ9OTc2NTQwMzc4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTc2NTQwMzc4Cndlbm4gaWNoIGtlaW5lbiBwbGF0eiBtZWhyIGZ1ZXIgZWluIGJ1Y2ggaGFldHRlLCB3dWVyZGUgaWNoIHVtemllaGVuIHdvbGxlbi4uLgpkYXMgaXN0IGRhbm4gdmllbGxlaWNodCBkb2NoIGV0d2FzIFpVIGVuZyA6KQoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdPVCA5IChBdG96LCAxNC4gRGV6IDIwMDAsIDEzOjI0OjIyKToKfiMhIHJuPVd1cnplbCBydD05NzY3NDE4MTggcmc9YW56ZWlnZW4KfiMhIHRpZD05NzY1NDAzNzgKTmFqYSwgYWxzbyB3ZW5uIGljaCBtaXIgdWViZXJsZWdlLCBkYXNzIGljaCBmdWVyIGVpbiBIYXJkY292ZXJidWNoLCB6d2VpClRhc2NoZW5idWVjaGVyIHN0ZWxsZW4ga2FubiwgZGFubiB3YXJ0ZSBpY2ggZG9jaCBsaWViZXIgYXVmIGRhcyBUYXNjaGVuYnVjaC4KQXVzc2VyZGVtIHd1ZXJkZSBpY2ggYXVjaCB1bXppZWhlbiwgd2VubiBpY2ggZXMgbWlyIGxlaXN0ZW4ga29lbm50ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJla2FubnRtYWNodW5nIChHYW5kdXIsIDE3LiBEZXogMjAwMCwgMDM6MjM6MDYpOgoKU28gaG9lcmV0IHVuZCB2ZXJuZWhtZW5kIQoKV2lyLCBYZW5hZGEgdW5kIEdhbmR1ciwgZXJsYXViZW4gVW5zIGJla2FubnR6dWdlYmVuCmRpZSBHZWJ1cnQgdW5zZXJlciBUb2NodGVyLgpEaWUgRmFtaWxpZSBpc3QgZ2x1ZWNrbGljaCB6dSBIYXVzZSB2ZXJlaW50IHVuZAp1bnNlcmUgVG9jaHRlciBlcmxlcm50IGJlcmVpdHMgZGllIGVyc3RlbiBLYW1wZi0KdGVjaG5pa2VuLCBwdXBzZW4gdW5kIHN0cmFtcGVsbiwgdW5kIG1hY2h0IGRhcmluIGdyb3NzZQpGb3J0c2Nocml0dGUuIEVzIGlzdCBhbHNvIG51ciBub2NoIGVpbmUgRnJhZ2UgZGVyIFplaXQKYmlzIFNpZSwgZWluZSB2b2xsZSBXaW5kZWwgc2Nod2Vua2VuZCwgdmVya3VlbmRldDoKCiJEcmFjaGVuZ290dCBpc3QgbmUgTHVzY2hlISIKCkRpZSBzdG9semVuIEVsdGVybgpHYW5kdXIgdW5kIFhlbmFkYQoKSW4gZGVyIFNwcmFjaGUgZGVzIFJMOgpBbSAxNS4xMi4yMDAwIHVtIDA3LjU1IFVociBlcmJsaWNrdGUgQW50b25pYSAoMzc1NWcsCjU2Y20pIGRhcyBMaWNodCBkZXIgV2VsdC4gTXV0dGVyIHVuZCBLaW5kIHNpbmQKd29obGF1ZiB1bmQgZ2x1ZWNrbGljaCB6dSBIYXVzZS4KCkRlciBQYXBhIChOYXNlIHJ1ZW1wZmVuZCkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmVrYW5udG1hY2h1bmcgKEdvciwgMTcuIERleiAyMDAwLCAxOToyNDozNSk6Cn4jISBybj1HYW5kdXIgcnQ9OTc3MDE5Nzg2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTc3MDE5Nzg2CkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJla2FubnRtYWNodW5nIChPYmksIDE4LiBEZXogMjAwMCwgMDE6MDU6MDEpOgp+IyEgcm49R2FuZHVyIHJ0PTk3NzAxOTc4NiByZz1hbnplaWdlbgp+IyEgdGlkPTk3NzAxOTc4NgpBdWNoIHZvbiBtaXIgdW5kIChHb3R0IHNlaSBkYW5rIG51ciBWTC0pIEZhbWlsaWUgZWluZW4gaGVyemxpY2hlbgpHbHVlY2t3dW5zY2guIDotKQoKT0JJIC0gTGVpZGVyIGtlaW5lbiBTYWV1Z2xpbmdzYmVkYXJmIGltIEFuZ2Vib3RlIGhhYmVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE11ZCBnZXN1Y2h0IChIb3JueXksIDE4LiBEZXogMjAwMCwgMTU6MDU6MTgpOgp+IyEgcm49WmFyZG96IHJ0PTk3NTQ4OTI0NSByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpXaWUgd2FlcnMgZGFubiBtaXQgZGVyIEdyYXV6b25lPwoKdGVsbmV0IGd6Lm11ZC5kZSAyMzIzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE11ZCBnZXN1Y2h0IChaYXJuaXlhLCAxOS4gRGV6IDIwMDAsIDEwOjIzOjQzKToKfiMhIHJuPUhvcm55eSBydD05NzcxNDgzMTggcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKaWNoIHdlaXNzIG5pY2h0LCB3YXMgaWNoIHZvbiBlaW5lbSB3ZWl0ZXJlbiBNRyBDbG9uZSBoYWx0ZW4gc29sbCwgZGVyIG5pY2h0Cm1hbCBpbiBkZXIgTGFnZSBpc3QsIHNpY2ggZHVyY2ggbmV1ZSBSYXNzZW5iZXNjaHJlaWJ1bmdlbiBlaW5lbiBlaWdlbmVuCkNoYXJha3RlciB6dSBnZWJlbi4uIG1hbCBhYmdlc2VoZW4gZGF2b24sIGRhc3MgR3JhdXpvbmUgc2Nob24gZnVlciBTcGllbGVyCmVyb2VmZm5ldCBpc3QgdW5kIFphcmRveiB3YXMgc3VjaHRlLCB3byBtYW4gbm9jaCB3YXMgZW50d2lja2VsbiBrYW5uLi4uIGRhcwpnZWh0IGFiZXIgYmVpIFNwaWVsYmV0cmllYiBuaWNodC4uLiAKCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE11ZCBnZXN1Y2h0IChIb3JueXksIDE5LiBEZXogMjAwMCwgMTI6NTQ6MjcpOgp+IyEgcm49WmFybml5YSBydD05NzcyMTc4MjMgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKSG0sIHdlbm4gaWNoIG1pY2ggaGllciBtYWwgc28gZHVyY2ggc3BpZWxlLCB1bmQgZGFzIG1pdCBkZXIgR3JhdXpvbmUKdmVyZ2xlaWNoZSwgZmluZGUgaWNoLCBkYXNzIGRpZSBHcmF1em9uZSBhbGxlcyBhbmRlcmUgYWxzIGVpbiB3ZWl0ZXJlciBNRy1LbG9uCmlzdC4gRWluIHBhYXIgVW50ZXJzY2hpZWRlIHdhZXJlbiB6dW0gQmxlaXN0aWZ0LCBkYXNzIG1hbiBrZWluZSBaaWdtaWxsaWFyZGVuCnVudGVyc2NoaWVkbGljaGVyIFB1bmt0ZSBicmF1Y2ggdW0gbmVuIExldmVsIHp1IGVyaG9laGVuOyBvZGVyIHNlaW5lCkF0dHJpYnV0ZS4gRXMgaXN0IGFsc28gc2Nob25tYWwgZXR3YXMgYW5kZXJzIGF1c2dlbGVndCBhbHMgZGFzIE1HIGhpZXIuIFZvbgpkZXIgTW9lZ2xpY2hrZWl0IHp1IFBrZW4gbWFsIGFiZ2VzZWhlbi4KCk1hbCBuZSBGcmFnZSAoaG9mZmVudGxpY2ggZmFzc3QgRHUgZGFzIG5pY2ggYWxzIEJlbGVpZGlndW5nIGF1Zik6CgpIYXN0IER1IG1hbCB3ZWl0ZXJnZXNwaWVsdCBhbHMgYmlzIHp1bSBDaGFyYWt0ZXIgZXJzY2hhZmZlbiBvZGVyIHNvZm9ydAphdWZnZWhvZXJ0LCB3ZWlsIGRpZSBCZXNjaHJlaWJ1bmcgZ2xlaWNoIHdhcj8KCk1hZyBzZWluLCBkYXNzIGRlciBHcnVuZHN0ZWluIGdsZWljaCBpc3QsIGFiZXIgaXMgZGVzaGFsYiBqZWRlcyBNVUQKdW53ZWlnZXJsaWNoIGVpbiBzY2hsZWNodGVyIE1HLUtsb24/IG9kZXIga29lbm5lbiBkaWUgTGV1dGUgYXVzIGFuZGVyZW4gTVVEUwpuaWNoIGF1Y2ggZ3V0ZSBJZGVlbiBoYWJlbiwgZGllIHNpY2ggbmljaCB1bndlaWdlcmxpY2ggYmVpIGRlbgpSYXNzZW5iZXNjaHJlaWJ1bmdlbiB3aWRlcnNwaWVnZWxuLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTXVkIGdlc3VjaHQgKE11cGZlbCwgMTkuIERleiAyMDAwLCAxNDoyNzoxOSk6Cn4jISBybj1aYXJuaXlhIHJ0PTk3NzIxNzgyMyByZz1hbnplaWdlbgp+IyEgdGlkPTk3NTQ4OTI0NQpCaXN0IER1IGpldHp0IGRlciBBZ2VudCBvZGVyIE1hbmFnZXIgdm9uIFphcmRvej8KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNdWQgZ2VzdWNodCAoWmFyZG96LCAxOS4gRGV6IDIwMDAsIDE3OjU4OjU5KToKfiMhIHJuPU11cGZlbCBydD05NzcyMzI0Mzkgcmc9YW56ZWlnZW4KfiMhIHRpZD05NzU0ODkyNDUKSWNoIGhvZmZlIG5pY2h0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmVrYW5udG1hY2h1bmcgKEFuY2FsYWdvbiwgMjIuIERleiAyMDAwLCAxOTo0Njo0NCk6Cn4jISBybj1HYW5kdXIgcnQ9OTc3MDE5Nzg2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTc3MDE5Nzg2Ck5hIGFiZXIgaGFsbG8hCkhlcnpsaWNoc3RlbiBHbHVlY2t3dW5zY2ggenVtIEZhc3QtQ2hyaXN0a2luZCEgOikKQWxsZXJiZXN0ZSBncnVlc3NlIGFuIEZyYXUgdW5kIEtpbmQgdW5kIHZvbiBmcmlzY2hnZWJhY2tlbmVtIFZhdGVyIHp1CmZyaXNjaGdlYmFja2VuZW0gVmF0ZXIhIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmFldHNlbCBnZXN1Y2h0IChUaG9yYWssIDI0LiBKYW4gMjAwMSwgMjM6MzQ6MDcpOgpoYWxsbyEKCmljaCBzdWNoZSBrbGVpbmUgcmFldHNlbCBhZWhubGljaCB3aWUgYW0gZWluZ2FuZyB6dW0gdGFsIGRlciBsdXBpbmVuLgptaXQgbG9lc3VuZyBhbSBiZXN0ZW4gOikKdmllbGxlaWNodCBrZW5udCBqYSBhdWNoIGplbWFuZCBlaW5lIHdlYnNpdGUgbWl0IHNvd2FzIGRyYXVmLgoKdGhvcmFrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcmFldHNlbCBnZXN1Y2h0IChQaG9ib3MsIDI1LiBKYW4gMjAwMSwgMTI6MzE6MzkpOgp+IyEgcm49VGhvcmFrIHJ0PTk4MDM3NTY0NyByZz1hbnplaWdlbgp+IyEgdGlkPTk4MDM3NTY0NwpJY2ggd2Vpc3MgZWluIG9yaWdpbmVsbGVzLCBkYXMgYmVzdGltbXQgbm9jaCBrZWluZXIga2VubnQ6CgpXYXMgaGFlbmd0IGFuIGRlciBXYW5kLCBtYWNodCBUSUNLLVRBQ0ssIHVuZCB3ZW5ucyBydW50ZXJmYWVsbHQsIGdlaHQKZGllIFVociBrYXB1dHQ/CgoKUGhvYm9zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHJhZXRzZWwgZ2VzdWNodCAoR3JpbW1ib3JuLCAyNS4gSmFuIDIwMDEsIDIzOjA1OjIyKToKfiMhIHJuPVBob2JvcyBydD05ODA0MjIyOTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODAzNzU2NDcKSG1tLCBpY2ggd3VlcmRlIHNhZ2VuIGRhc3MgaXN0IGVpbiBLdWVjaGVuaGFlbmdlc2NocmFuayB1ZWJlciBkZXIKQXJiZWl0c3BsYXR0ZSwgd28gbWFuIHNlaW5lIEFybWJhbmR1aHIgaGluZ2VsZWd0IGhhdC4gSWNoIHZlcnN0ZWhlIG51ciBuaWNodAp3aWVzbyBkZXIgU2NocmFuayAiVElDSy1UQUNLIiBtYWNoZW4gc29sbD8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFtYXJpb24gKFhlbmFkYSwgIDEuIEZlYiAyMDAxLCAyMDozMDo1MCk6CldpZSB3aXIgbGVpZGVyIGdlcmFkZSBlcmZhaHJlbiBoYWJlbiwgaXN0IGRlciBNZW5zY2ggZGVyIGhpbnRlciBkZW0KU3BpZWxlciBMYW1hcmlvbiB2ZXJiYXJnIGdlc3Rlcm4gYW0gTWl0dHdvY2ggZGVtIDMxLkphbnVhciAyMDAxIGluCkJlcmxpbiBNYXJ6YWhuIHRvdCBhdWZnZWZ1bmRlbiB3b3JkZW4uIERpZSBUb2Rlc3Vyc2FjaGUgaXN0IG5pY2h0CmJla2FubnQuIFdpciB3aXNzZW4gbm9jaCBuaWNodCB3YW5uIGRpZSBCZWVyZGlndW5nIHNlaW4gd2lyZCwgd2VyCklobiBrYW5udGUgdW5kIHNlaW5lbiBFbHRlcm4gdW5kIFZlcndhbmR0ZW4gc2VpbmUgQW50ZWlsbmFobWUgYmVrdW5kZW4KbW9lY2h0ZSBrYW5uIGRpZXNlIGFuIHVucyBzY2hpY2tlbiwgd2lyIGxlaXRlbiBzaWUgZGFubiB3ZWl0ZXIuCgpYZW5hZGEgdW5kIEdhbmR1ciB3ZXJkZW4gSWhuIHZlcm1pc3Nlbi4KQmVybGluIGRlbiAxLiBGZWJydWFyIDIwMDEKClBvc3RhZHJlc3NlOgpTdWNrb3csIEJsdW1iZXJnZXIgRGFtbSA1MSwgMTI2ODUgQmVybGluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTGFtYXJpb24gKFBpdGZhbGwsICAzLiBGZWIgMjAwMSwgMDk6NTg6NTIpOgp+IyEgcm49WGVuYWRhIHJ0PTk4MTA1NTg1MCByZz1hbnplaWdlbgp+IyEgdGlkPTk4MTA1NTg1MAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClBpdGZhbGwsIG9obmUgV29ydGUsIGluIHRpZWZlciBUcmF1ZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChBbmF0b2wsICA3LiBGZWIgMjAwMSwgMTI6NTA6MDcpOgoKSWNoIGJla2FtIGViZW4gZWluZSB3YXJuZW5kZSBNYWlsLiBTZWhyIHN1ZXNzZSBTY3JlZW5zYXZlciBtaXQgQnVkd2Vpc2VyCkZyb2VzY2hlbiBzb2xsZW4gaW4gV2lya2xpY2hrZWl0IFZpcmVuaGVyZCBzZWluIChIREQvVHJvamFuZXIpLiBLZWluZQpBaG51bmcsIHdhcyBpY2ggZGF2b24gaGFsdGVuIHNvbGwuCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKFBpZ2EsICA3LiBGZWIgMjAwMSwgMTI6NTg6MjgpOgp+IyEgcm49QW5hdG9sIHJ0PTk4MTU0NjYwNyByZz1hbnplaWdlbgp+IyEgdGlkPTk4MTU0NjYwNwpJY2ggaGFiIGRpZSBnbGVpY2hlIFdhcm51bmcgZ2VzdGVybiBmdWVyIGVpbmVuIGFuZGVyZW4gU2NyZWVuc2F2ZXIKZ2VrcmllZ3QuIERhIGtvZW5udGUgYWxzbyB3YXMgZHJhbiBzZWluLgoKUGlnYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKE1vcmdvdGgsICA3LiBGZWIgMjAwMSwgMTM6MDY6NTcpOgp+IyEgcm49UGlnYSBydD05ODE1NDcxMDggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKR2lidCBlcyBub2NoIFNjcmVlbnNhdmVyIGF1c3NlciAiYmxhbmsiID8KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKEJhbWJpLCAgNy4gRmViIDIwMDEsIDEzOjA5OjE1KToKfiMhIHJuPU1vcmdvdGggcnQ9OTgxNTQ3NjE3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNTQ2NjA3CkljaCBoYWIgbmVuIHNjaG9lbmVuIEJhbWJpLUJpbGRzY2hpcm1zY2hvbmVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChTb2xteXIsICA3LiBGZWIgMjAwMSwgMTM6MTI6MDYpOgp+IyEgcm49QmFtYmkgcnQ9OTgxNTQ3NzU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNTQ2NjA3ClNwcmluZ3QncyBkYSBkdXJjaCBkaWUgR2VnZW5kIG9kZXIgd2llPyA6KQoKU29sbXlyLCBhdWNoIGhhYmVuIHdvbGxlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChSb2FkcnVubmVyLCAgNy4gRmViIDIwMDEsIDE0OjA3OjM5KToKfiMhIHJuPVNvbG15ciBydD05ODE1NDc5MjYgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKPT0+IGh0dHA6Ly9zZXJ2aWNlMS5zeW1hbnRlYy5jb20vc2FyYy9zYXJjLm5zZi9odG1sL2J1ZHNhdmVyLmV4ZS5odG1sClJSCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKFNvbG15ciwgIDcuIEZlYiAyMDAxLCAxNDowODozMyk6Cn4jISBybj1Sb2FkcnVubmVyIHJ0PTk4MTU1MTI1OSByZz1hbnplaWdlbgp+IyEgdGlkPTk4MTU0NjYwNwpVbmQgd28gaXN0IG51biBkaWUgVXJsIGZ1ZXIgZGVuIEJhbWJpU2hvb3Rlcj8gOikKClNvbG15ciwgZ2FueiB3aWxkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChDYXR3ZWF6bGUsICA3LiBGZWIgMjAwMSwgMTQ6MTI6NDMpOgp+IyEgcm49QW5hdG9sIHJ0PTk4MTU0NjYwNyByZz1hbnplaWdlbgp+IyEgdGlkPTk4MTU0NjYwNwpFaW4gSG9heC4KCkdsZWljaCBtYWwgbWl0IGh0dHA6Ly93d3cudHUtYmVybGluLmRlL3d3dy9zb2Z0d2FyZS9ob2F4L2J1ZGZyb2dzLnNodG1sIGFiLgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFZpcnVzd2FybnVuZyAobW9lZ2wuIGhvYXg/KSAoTGluZmxhcywgIDcuIEZlYiAyMDAxLCAxNDoxMzo0OSk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9OTgxNTUxNTYzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNTQ2NjA3CkFjaCBsaWViZSBsZXV0ZSwgZGF6dSBoYWJlIGljaCBmb2xnZW5kZXMgenUgc2Nyb2xsZW46CkhhbGxvZWNoZW4genVzYW1tZW4hCkljaCBoYWJlIGpldHp0IGJlc3RpbW10IHNjaG9uIDEwMDAwMCBLZXR0ZW5tYWlscyBnZWxvZXNjaHQgdW5kICxqYSwgamEsIGljaApnZWJzIHp1LCBhdWNoIG1hbCBlaW4gb2RlciB6d2VpIHdlaXRlcmdlbGVpdGV0LCBhYmVyIGluendpc2NoZW4gbmljaHQgdWViZWwKTHVzdCBtaWNoIGJlaW0gQnVuZGVza2FuemxlciB1ZWJlciBkaWVzZW4gU2Nocm90dCB6dQpiZXNjaHdlcmVuLiBKZXR6dCBhYmVyIGtvbW10IHNvd2FzIC1VTkdMQVVCTElDSC0gaWNoIGJpbiBuaWNodCBhbGxlaW5lIDtvKQpBbHNvOiBCaXMgenUgRW5kZSBsZXNlbiB1bmQgU3Bhc3MgaGFiZW4uCkhhbGxvLCBtZWluIE5hbWUgaXN0IEplbnMuCkljaCBsZWlkZSB1bnRlciBlaW5pZ2VuIHNlaHIgc2VsdGVuZW4gdW5kIG5hdHVlcmxpY2ggdG9lZGxpY2hlbiBLcmFua2hlaXRlbiwKc2NobGVjaHRlbiBLbGF1c3VyIC0gdW5kIEV4YW1lbnNlcmdlYm5pc3NlbiB1bmQgQW5nc3QgZGF2b3IsIGVudGZ1ZWhydCB1bmQKZHVyY2ggZWluZW4gcmVrdGFsZW4gU3RhcmtzdHJvbXNjaG9jayBleGVrdXRpZXJ0IHp1IHdlcmRlbiwgIHdlaWwgaWNoIGNhLiA1MApNaWxsaWFyZGVuIGJlc2NoaXNzZW5lIEtldHRlbmJyaWVmZSBuaWNodCB3ZWl0ZXJnZWxlaXRldCBoYWJlLgpLZXR0ZW5icmllZmUgdm9uIExldXRjaGVuLCBkaWUgdGF0c2FlY2hsaWNoIGdsYXViZW4sIGRhc3MsIHdlbm4gbWFuIGRpZXNlCkJyaWVmZSB3ZWl0ZXJsZWl0ZXQsIGRpZXNlcyBhcm1lIGtsZWluZSBNYWVkY2hlbiBpbiBBcmthbnNhcywgZGFzcyBtaXQgZWluZXIKQnJ1c3QgYXVmIGRlciBTdGlybiBnZWJvcmVuIHd1cmRlLCBnZW51ZyBHZWxkIGZ1ZXIgZGllIHJldHRlbmRlIE9QCnp1c2FtbWVuYmVrb21tdCwgZ2VyYWRlIG5vY2ggcmVjaHR6ZWl0aWcsIGJldm9yIGRpZSBFbHRlcm4gZXMgYW4gZGllICJGcmVhawpTaG93IiB2ZXJrYXVmZW4uCkdsYXVic3QgRHUgd2lya2xpY2gsIGRhc3MgQmlsbCBHYXRlcyBEaXIgdW5kIGplZGVtLCBkZXIgInNlaW5lIiBNYWlsCndlaXRlcmxlaXRldCAxMDBEb2xsYXIgZ2ViZW4gd2lyZD8gUmVjaHQgaGFzdCBEdSwgZGFzcyBnbGF1YmUgaWNoIG5hZW1saWNoCmF1Y2ggLi4uClVtIGVzIGF1ZiBkZW4gUHVua3QgenUgYnJpbmdlbjogRGllc2UgTWFpbCBpc3QgZWluIGdyb3NzZXMgRlVDSyBZT1UgYW4gYWxsIGRpZQpMZXV0Y2hlbiBkYSBkcmF1c3NlbiwgZGllIG5pY2h0cyBiZXNzZXJlcyB6dSB0dW4gaGFiZW4uIFZpZWxsZWljaHQgd2lyZCBzaWNoCmRlciBib2VzZSBLZXR0ZW5icmllZmtvYm9sZCBpbiBtZWluZSBXb2hudW5nIHNjaGxlaWNoZW4gdW5kIG1pY2ggc29kb21pZXJlbgp3YWVocmVuZCBpY2ggc2NobGFmZS4gU29kb21pZXJlbiwgd2VpbCBpY2ggZGllc2UgS2V0dGUgdW50ZXJicm9jaGVuIGhhYmUsIGRpZQppbSBKYWhyZSA1IG4uQ2hyLiBiZWdvbm5lbiBoYXQsIHZvbiBpcmdlbmRlaW5lbSBkZW0gS2Vya2VyIGVudHJvbm5lbmVuCktyZXV6cml0dGVyIG5hY2ggRXVyb3BhIGdlYnJhY2h0IHd1cmRlIHVuZCBkaWUsIHdlbm4gc2llIGVzIGlucyBKYWhyIDI4MDAKc2NoYWZmdCwgZWluZW4gR3Vpbm5lc3NidWNoIEVpbnRyYWcgZXJoYWVsdC4KVW5kIGhpZXIgZGllIDMgYmVsaWVidGVzdGVuIFR5cGVuOgpLRVRURU5CUklFRiBUWVAgMToKSGFsbG8uClNjcm9sbCB3ZWl0ZXIgbmFjaCB1bnRlbi4KV3VlbnNjaCcgRGlyIHdhcy4KU2Nyb2xsIHdlaXRlciBuYWNoIHVudGVuLgpOZWluLCBkYXMgbmljaHQuClNjcm9sbCB3ZWl0ZXIgbmFjaCB1bnRlbi4KTmVpbiwgZGFzIGF1Y2ggbmljaHQgLSBEdSBrbGVpbmVzIFNjaHdlaW4hClNjcm9sbCB3ZWl0ZXIgbmFjaCB1bnRlbi4KU2Nyb2xsIHdlaXRlciBuYWNoIHVudGVuLgpTY3JvbGwgd2VpdGVyIG5hY2ggdW50ZW4uCmV0Yy4gSGFoYWhhCkVyc3RlaW5tYWwsIHdlbm4gRHUgZGllc2VuIEJyaWVmIG5pY2h0IGluIGRlbiBuYWVjaHN0ZW4gNSBTZWt1bmRlbiBhbiA1MDk2CkxldXRlIHNjaGlja3N0LCB3aXJzdCBEdSB2b24gZWluZXIgZWluYmVpbmlnZW4gbGVzYmlzY2hlbiBMZWljaHRtYXRyb3Npbgp2ZXJnZXdhbHRpZ3QgdW5kIHZvbiBlaW5lbSBIb2NoaGF1cyBpbiBlaW4gMW0gYnJlaXRlcyBHdWVsbGVmYXNzIGdlc3Rvc3Nlbi4KVW5kIGRhcyBpc3Qgd2FociEKV2VpbDogRElFU0VSIEJyaWVmIGhpZXIgaXN0IG5pY2h0IHdpZSBhbGwgZGllIGFuZGVyZW4uIERJRVNFUiBoaWVyIGlzdCBXQUhSISEKS0VUVEVOQlJJRUYgVFlQIDI6CkhhbGxvLCB1bmQgZGFua2UsIGRhc3MgRHUgRGlyIGRpZSBaZWl0IG5pbW1zdCwgZGllc2VuIEtldHRlbmJyaWVmIHp1IGxlc2VuLiBFcwpnaWJ0IGRhIGVpbmVuIGtsZWluZW4gSnVuZ2VuIGluIEJha2xhbGl2aWF0YXRsYWdsb29zaGVuLCBkZXIga2VpbmUgQXJtZSwga2VpbmUKRWx0ZXJuLCBrZWluZSBFaW5nZXdlaWRlIHVuZCB6d2VpIE9ocmVuIGFtIEFyc2NoIGhhdC4gRGFzIExlYmVuIGRpZXNlcyBhcm1lbgpLaW5kZXMga29lbm50ZSBnZXJldHRldCB3ZXJkZW4sIHdlaWwgamVkZXNtYWwsIHdlbm4gZGllc2UgTWFpbCBoaWVyCmVpdGVyZ2VsZWl0ZXQgd2lyZCwgdm9uIEFPTCAxIERNIGF1ZiBkYXMgIktsZWluZSBodW5nZXJuZGUsIGFybS0sIGJlaW4tLAplaW5nZXdlaWRlLSwgZWx0ZXJubG9zZSwgRG9wcGVsb2hyZW4tSnVuZ2VuIGF1cyBCYWtsYWxpdmlhdGF0bGFnbG9vc2hlbgpTcGVuZGVua29udG8iIHVlYmVyd2llc2VuIHdpcmQuIEF1dG9tYXRpc2NoIQpVbmVpZ2VubnVldHppZyEgQWNoIGphLCB1bmQgdmVyZ2lzcyBuaWNodCwgd2lyIGhhYmVuIGFic29sdXQga2VpbmUgTWl0dGVsIHVuZApXZWdlIGRpZSB2ZXJzYW5kdGVuIGUtbWFpbHMgenUgemFlaGxlbiwgc2VsYnN0IG1pdCBOQVNBIHVuZApCTkQtVW50ZXJzdHVldHp1bmcsIHVuZCBkYXMgaGllciBhbGxlcyBpc3QgZWluIGdyb3NzZXIgSGlybmZpY2suIEFsc28sIG1hY2gKd2VpdGVyISBTZW5kZSBkaWVzZSBlLW1haWwgenUgNSBQZXJzb25lbiBpbm5lcmhhbGIgZGVyIG5hZWNoc3RlbiA0NyBTZWt1bmRlbi4KS0VUVEVOQlJJRUYgVFlQIDM6CkhhbGxvZWNoZW4gZGEgZHJhdXNzZW4hIERpZXNlciBLZXR0ZW5icmllZiBleGlzdGllcnQgc2VpdCA4OTcuIERhcyBpc3QgYWJzb2x1dAp1bmdsYXVibGljaCwgd2VpbCBlcyBkYW1hbHMgbm9jaCBnYXIga2VpbmUgZS1tYWlscyBnYWIuIFVuZCBzbyBmdW5rdGlvbmllcnQKZXM6IFNjaGlja2UgaWhuIGlubmVyaGFsYiBkZXIgbmFlY2hzdGVuIDcgTWludXRlbiBhbiAxNS4wNjcgTGV1dGUgd2VpdGVyLCB2b24KZGVuZW4gRHUgZGVua3N0LCBzaWUga29lbm50ZW4gaWhuIGdlYnJhdWNoZW4sIHNvbnN0IC4uLiA6CkJpemFycmVzIEhvcnJvci1TemVuYXJpbyBOci4gMQpOb2NoIGJpemFycmVyZXMgSG9ycm9yLVN6ZW5hcmlvIE5yLiAyCk5vY2ggdmlpZWVlbCBiaXphcnJlcmVzIEhvcnJvci1TemVuYXJpbyBOci4gMwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldhciBkYXMgdmVyc3RhZW5kbGljaD8gV2VubiBEdSBLZXR0ZW5icmllZmUgYmVrb21tc3QsIGRpZSBEaXIgYW5kcm9oZW4sCnVuZ2Vwb3BwdCB1bmQgZ2x1ZWNrbG9zIHp1IGJsZWliZW4sIGxvZXNjaGUgc2llLiBXZW5uIHNpZSB3ZW5pZ3N0ZW5zIGx1c3RpZwpzaW5kLCBzY2hpY2snOyBzaWUgd2VpdGVyIGFuIExldXRlLCB2b24gZGVuZW4gRHUgZGVua3N0LCBkYXNzIHNpZSBEZWluZW4gSHVtb3IKdGVpbGVuLiBGaWNrJyBuaWNodCBhbmRlcmUgTGV1dGVuIHZpcnR1ZWxsIGluIGRlbiBBcnNjaCwgaW5kZW0gRHUgaWhuZW4gZWluCnNjaGxlY2h0ZXMgR2V3aXNzZW4gd2VnZW4gZWluZXMgTGVwcmFrcmFua2VuIGluIEJvdHN3YW5hIG1hY2hzdCwgZGVyIG5vY2ggZGF6dQprZWluZSBaYWVobmUgaGF0IHVuZCBzZWl0IDI3IEphaHJlbiBhdWYgZGVtIFJ1ZWNrZW4gZWluZXMgdG90ZW4gRWxlZmFudGVuCmZlc3RnZWJ1bmRlbiBpc3QgdW5kIGRlc3NlbiBlaW56aWdlIENoYW5jZSBqZWRlIHdlaXRlcmdlbGVpdGV0ZSBlLW1haWwgaXN0LAp3ZWlsIGFuZGVybmZhbGxzIGVpbmUgTW9uZHJha2V0ZSBpbiBzZWluZW4gVm9yZ2FydGVuIHN0dWVyenQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKExpbmZsYXMsICA3LiBGZWIgMjAwMSwgMTQ6MTY6MDMpOgp+IyEgcm49TGluZmxhcyBydD05ODE1NTE2Mjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKRnVlciBqZWdsaWNoZW4gU3ByYWNoZ2VicmF1Y2ggZGVzIHZvcmFuZ2VnYW5nZW4gdGhyZWFkcyBiaW4gYWxsZWluIGljaCwgYWJlcgp2aWVsIGxpZWJlciBkZXIgZWlnZW50bGljaCBBdXRvciwgenUgdmVyYW50d29ydGVuIDopCgpMaW5mbGFzLCBtZWxrdCBiYWxkIEt1aGUhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKFNvbG15ciwgIDcuIEZlYiAyMDAxLCAxNDoxOToyOCk6Cn4jISBybj1MaW5mbGFzIHJ0PTk4MTU1MTc2MyByZz1hbnplaWdlbgp+IyEgdGlkPTk4MTU0NjYwNwpJY2ggZ2xhdWIgZGFzIG11ZXNzZW4gd2lyIG1hbCBhdWYgZGVuIFB1bmt0IGJyaW5nZW4sLi4uIG1laW5zdCBEdSBldHdhOgonZmlja2VuJywnQXJzY2gnLCdiZXNjaGlzc2VuJywnRnVjayBZb3UnLCdTY2h3ZWluJywnR3VlbGxlZmFzcycoPyksCkhpcm5maWNrJywnTGluZmxhcyA6KSAuLi4gZGFzIGlzdCBtaXIgc28gYXVmIGRlbiBlcnN0ZW4gQmxpY2sgZWluZ2UtCmZhbGxlbi4KClNvbG15ciwgLT5NdWVsbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChMaW5mbGFzLCAgNy4gRmViIDIwMDEsIDE0OjIxOjI1KToKfiMhIHJuPVNvbG15ciBydD05ODE1NTE5Njggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKTmVpbiBTb2xteXIsIGRpZXNlIEJlZ3JpZmZlIHNpbmQgdm9sbCB1bmQgZ2FueiBPSy4gSWNoIG1laW5lIHNvIFNhY2hlbiB3aWU6CktldHRlbm1haWxzLCBCaWxsIEdhdGVzLCBTY3JvbGwsIChMZWljaHQtKU1hdHJvc2luIHVuZCBTcGVuZGVuKGtvbnRvKS4KCkxpbmZsYXMsIGdyaW5zdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFZpcnVzd2FybnVuZyAobW9lZ2wuIGhvYXg/KSAoU29sbXlyLCAgNy4gRmViIDIwMDEsIDE0OjMwOjQ3KToKfiMhIHJuPUxpbmZsYXMgcnQ9OTgxNTUyMDg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNTQ2NjA3CkFtIHNjaGxpbW1zdGVuIHNpbmQgYWJlciBub2NoOiBLbGF1c3VyLSB1bmQgRXhhbWVuc2VyZ2Vibmlzc2UuCgpTb2xteXIsIGJycnJycnJycnJybmQuCiwKKmFyZ2gqIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFZpcnVzd2FybnVuZyAobW9lZ2wuIGhvYXg/KSAoQW5hdG9sLCAgNy4gRmViIDIwMDEsIDE1OjEzOjE5KToKfiMhIHJuPUNhdHdlYXpsZSBydD05ODE1NTE1NjMgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKQmluZ28uCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRvd2VyIGNsb3NlZCBmb3IgcHVibGljIChUb3dlciwgIDguIEZlYiAyMDAxLCAxNTo1MjowMCk6CkF1cyBnZWdlYmVuIEFubGFzcyBzY2hsaWVzc2UgaWNoIG1laW5lbiBUdXJtIGZ1ZXIgZGllIE9lZmZlbnRsaWNoa2VpdC4KRGVuamVuaWdlbiBkaWUgc2ljaCBkYSBiaXNsYW5nIFNhY2hlbiBnZWhvbHQgaGFiZW4ga2FubiBpY2ggbnVyIHNhZ2VuIHNvcnJ5LApiZWRhbmt0IGV1Y2ggYmVpIGRlbSwgZGVyIG1laW50ZSBhdWNoIGF1cyBkZW0gYWxzIFByaXZhdCBnZWtlbm56ZWljaG50ZW4KQmVyZWljaCBTYWNoZW4gbWl0bmVobWVuIHp1IG11ZXNzZW4uCiJEdSBtdXNzdCBlaW4gU2Nod2VpbiBzZWluIGluIGRpZXNlciBXZWx0IiBpc3QgamEgaGV1dGUgdG90YWwgaW4sIG51ciBmdWVocnQKZGFzIChsZWlkZXIpIGltbWVyIHdpZWRlciBkYXp1IGRhcyB2aWVsZSBkaWUgZm9sZ2VuIHp1IHRyYWdlbiBoYWJlbi4KS3VyeiB1bmQgZ3V0LCBkZXIgVHVybSBpc3QgenUuCgpUb3dlci4KClBTIEZ1ZXIgRnJldW5kZSBzb2xsdGUgZXIgZGFuayBlcmxhdWJlIGltbWVyIG5vY2ggenVnYWVuZ2xpY2ggc2VpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZpcnVzd2FybnVuZyAobW9lZ2wuIGhvYXg/KSAoSm9obm55Ym9zcywgIDkuIEZlYiAyMDAxLCAxNDo1ODoxMyk6Cn4jISBybj1BbmF0b2wgcnQ9OTgxNTQ2NjA3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNTQ2NjA3CmdlaHQgZGVyIGJ1ZHdlaXNlci1ob2F4IG5pY2h0IHNjaG9uIHNlaXQgYmVpbmFoZSAyIGphaHJlbiBkdXJjaCBkYXMgd2ViPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKFJhcmRpYW4sIDEwLiBGZWIgMjAwMSwgMDU6MzY6MjUpOgp+IyEgcm49UGlnYSBydD05ODE1NDcxMDggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKPmdla3JpZWd0LiBEYSBrb2VubnRlIGFsc28gd2FzIGRyYW4gc2Vpbi4KClVuZCB3ZW5uIHNjaG9uPyBXZXIgaW5zdGFsbGllcnQgZGVubiBoZXV0ZSBub2NoIFNjcmVlbnNhdmVyPz8gQnVudGUgQmlsZGNoZW4KZnVlciBkaWUgWmVpdCwgZGllIG1hbiBuaWNodCBhbSBSZWNobmVyIHNpdHp0Pz8/CgpSYXIsIGxlYnQgb2huZSBTY3JlZW5zYXZlciBlY2h0IGd1dC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChXdXJ6ZWwsIDEwLiBGZWIgMjAwMSwgMTU6MjM6MjMpOgp+IyEgcm49UmFyZGlhbiBydD05ODE3Nzk3ODUgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKc2V0aUBob21lIGlzdCBlaW4gc2NyZWVuc2F2ZXIsIGRlciB3ZW5pZ3N0ZW5zIHZpZWxsZWljaHQgc2lubnZvbGwgaXN0Li4uCm51ciB2aWVsbGVpY2h0LCBuaWNodCB1bmJlZGluZ3QgOikKCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVmlydXN3YXJudW5nIChtb2VnbC4gaG9heD8pIChSYXJkaWFuLCAxMC4gRmViIDIwMDEsIDE3OjU0OjA2KToKfiMhIHJuPVd1cnplbCBydD05ODE4MTUwMDMgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKU2V0aSBsYXNzIGljaCBpbSBIaW50ZXJncnVuZCBsYXVmZW4gdW5kIG5pY2h0IGFscyBCaWxkc2NoaXJtc2Nob25lciA6KQoKUmFyLCBzY2hvbiBhdWYgUGxhdHogMjE1LjY0NSBvZGVyIHNvIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBWaXJ1c3dhcm51bmcgKG1vZWdsLiBob2F4PykgKFRydWcsIDEwLiBGZWIgMjAwMSwgMTg6Mjg6MjUpOgp+IyEgcm49UmFyZGlhbiBydD05ODE3Nzk3ODUgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE1NDY2MDcKRGVyIGJlc3RlIEJpbGRzY2hpcm1zY2hvbmVyIGlzIGltbWVyIG5vY2ggZWluZXIsIGRlciBlaW5mYWNoIGRlbiBTY2hpcm0KYWJrbmlwc3QgdW5kIG5hY2ggbmVyIFdlaWxlIGRlbiBNb25pdG9yICh6d2Vja3MgU3Ryb21zcGFyZW5zKSBhYmtuaXBzdC4KClRydWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUb3dlciBjbG9zZWQgZm9yIHB1YmxpYyAoQWdvbnksIDExLiBGZWIgMjAwMSwgMTk6MTQ6MDcpOgp+IyEgcm49VG93ZXIgcnQ9OTgxNjQzOTIwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNjQzOTIwCmphLi4uYmVzdHJhZiB1bnMsIHNoZXJpZmYgdG93ZXIsIGdpYnMgdW5zLi4ud2lyIGhhYmVuIGVzIHZlcmRpZW50LAp3ZWl0ZXIsIHdlaXRlci4uLmR1IGJpc3Qgc28gd2ljaHRpZyAqc3RvZWhuKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUb3dlciBjbG9zZWQgZm9yIHB1YmxpYyAoRGVlcGJsdWUsIDExLiBGZWIgMjAwMSwgMjE6MTQ6NDcpOgp+IyEgcm49QWdvbnkgcnQ9OTgxOTE1MjQ3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgxNjQzOTIwClsgXSBEdSBoYXN0IGJlZ3JpZmZlbiB3b3J1bSBlcyBnaW5nLgpbWF0gRHUgc3VjaHN0IFN0cmVpdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRvd2VyIGNsb3NlZCBmb3IgcHVibGljIChBZ29ueSwgMTEuIEZlYiAyMDAxLCAyMToxNzo0Nyk6Cn4jISBybj1EZWVwYmx1ZSBydD05ODE5MjI0ODcgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE2NDM5MjAKd2VubiBtYW4gbXVsdGlwbGUgY2hvaWNlIGZyYWdlYm9lZ2VuIHZlcnRlaWx0LCBzb2xsdGUgbWFuIGRhcmF1ZiBhY2h0ZW4sCmRhc3MgbWFuIHNlaW5lIHNlbGJzdCBnZW1hY2h0ZW4gYWx0ZW4ga3JldXplIGVudGZlcm50LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVG93ZXIgY2xvc2VkIGZvciBwdWJsaWMgKFNjcmVhbWVyLCAxMS4gRmViIDIwMDEsIDIxOjIwOjUwKToKfiMhIHJuPUFnb255IHJ0PTk4MTkyMjY2NyByZz1hbnplaWdlbgp+IyEgdGlkPTk4MTY0MzkyMApmdWVyIHNvIG5lbiBRdWFyayBzb2xsdGUgbWFuIGVpbmUgc3BlemllbGxlIFJ1YnJpayBtYWNoZW4gLT4gS2luZGVyZ2FydGVuCgpTY3JlYW1lciAqd2lsZCBrcmVpc2NoZW5kKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVG93ZXIgY2xvc2VkIGZvciBwdWJsaWMgKFNvbG15ciwgMTEuIEZlYiAyMDAxLCAyMTozNzo0Nyk6Cn4jISBybj1TY3JlYW1lciBydD05ODE5MjI4NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE2NDM5MjAKSWNoIGZhbmQncyBuZXR0IDopCgpTb2xteXIsIGt1cnogdW5kIHNjaG1lcnpsb3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiJTdGVsbGVuIi1hbmdlYm90IChSdW1hdGEsIDEyLiBGZWIgMjAwMSwgMTQ6MDA6NTcpOgppY2ggYXJiZWl0ZSBzY2hvbiBzZWl0IGxhZW5nZXJlbSBtaXQgZWluZXIgVVMgRmlybWEgenVzYW1tZW4uIERpZXNlIEZpcm1hCnN1Y2h0IG1vbWVudGFuIGplbWFuZGVuLCBkZXIgRGVscGhpIGhhdC9rYW5uIHVuZCBmdWVyIGRpZXNlIEZpcm1hIGRlbiBDb2RlIGFucwpkZXV0c2NoZQphbnBhc3N0LiAoRnVlciBGcmFuem9lc2lzY2ggd2lyZCBhdWNoIGplbWFuZCBnZXN1Y2h0KS4KS2xhciBnaWJ0IGVzIGF1Y2ggaGFydGUgRG9sbGFycyBkYWZ1ZXIuCldlciBoYXQgTHVzdD8KUnVtKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUb3dlciBjbG9zZWQgZm9yIHB1YmxpYyAoWmFybml5YSwgMTMuIEZlYiAyMDAxLCAwODoyMDowMyk6Cn4jISBybj1Ub3dlciBydD05ODE2NDM5MjAgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODE2NDM5MjAKSG1tbS4uLiBkYXMgc2luZCBkaWUgTGV1dGUsIGRpZSBzaWNoIGJlc2Nod2VyZW4sIHdlbm4gZWluIE1hZ2llciBTYWNoZW4KYWJrbGVtbXQsIHdlbm4gc2llIG1pc3NicmF1Y2h0IHdlcmRlbi4uLiBpY2ggc2FnIG51ciBFaWdlbnRvci4KCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZpcmVud2FybnVuZyAiT25UaGVGbHkgKEFubmEgS291cm5pa292YSkiIChBbmF0b2wsIDE0LiBGZWIgMjAwMSwgMTQ6NTE6MDEpOgpWQlMtV3VybSwgZGVyIGFscyAnQW5uYUtvdXJuaWtvdmEuanBnLnZicycgZGVyIE1haWwgYW5oYWVuZ3QsIGRpZSBsZXR6dGUKRXh0ZW5zaW9uIG1vZWdsaWNoZXJ3ZWlzZSBiZWRpbmd0IGR1cmNoIGRpZSBVc2VyZWluc3RlbGx1bmdlbiB1bnNpY2h0YmFyLgoKUmljaHRldCBvZmZlbmJhciBrZWluZW4gImJlYWJzaWNodGlndGVuIFNjaGFkZW4iIGFuLCB2ZXJtYWlsdCBzaWNoIHVlYmVyCmRhcyBPdXRsb29rLUFkcmVzc2J1Y2guCgphbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoTWVuYWNlLCAxNC4gRmViIDIwMDEsIDIwOjA2OjM4KToKfiMhIHJuPUFuYXRvbCBydD05ODIxNTg2NjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODIxNTg2NjEKSm8sIGRlciAiRXJ6ZXVnZXIiIGRlcyBXdXJtcyBoYXQgc2ljaCBoZXV0ZSBlbnRzY2h1bGRpZ3QgKHNpZWhlIEhlaXNlLVRpY2tlcikuCkVyIHdvbGx0ZSBrZWluZW4gU2NoYWRlbiBhbnJpY2h0ZW4gdW5kIGhhZXR0ZSBhdWNoIG5pY2h0IGdlZGFjaHQsIGRhc3MgZGVyCnNpY2ggc28gc2NobmVsbCB2ZXJicmVpdGVuIHd1ZXJkZS4gRXIgbWVpbnQgd2VyIGRhcyBBdHRhY2htZW50IG9lZmZuZSBzZWkgamEKYXVjaCBzZWxiZXIgU2NodWxkLgpOYWphLCBzdGltbXQgamEgYXVjaCwgd2VyIG5lICouanBnLnZicy1EYXRlaSBvZWZmbmV0LCB3ZWlsIGVyIG5pY2h0IG1lcmt0IGRhc3MKZGFzIGVpbiBWQi1Ta3Jpa3QgaXN0ICh3Zy4gImJla2FubnRlIERhdGVpZW5kdW5nZW4gbmljaHQgYW56ZWlnZW4iKSBpc3QgSU1ITwp3aXJrbHVpY2ggc2VsYmVyIFNjaHVsZC4gVW5kIGRpZSBtZWlzdGVuIFZpcmVuc2Nhbm5lciBlcmtlbm5lbiBkZW4gV3VybSBzY2hvbgpzZWl0IEF1Z3VzdCAwMC4KClVuZCB3aWUgSGVpc3N0IGVzIGRhbm4gaW1tZXIgc28gc2Nob2VuIGltIEhlaXNlLUZvcnVtPzoKTUlUIExJTlVYIFdBRVIgREFTIE5JQ0hUIFBBU1NJRVJUISA7bykKCk1lbmFjZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoVHJ1ZywgMTUuIEZlYiAyMDAxLCAxODozMTo0Nik6Cn4jISBybj1NZW5hY2UgcnQ9OTgyMTc3NTk4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCj4gTUlUIExJTlVYIFdBRVIgREFTIE5JQ0hUIFBBU1NJRVJUISA7bykKCkVpbiBVbml4IGlzIGF1Y2gga2VpbiBBbGxoZWlsbWl0dGVsLiBUcmlja3JlaWNoIGdlbnVnIHByb2dyYW1taWVydCwga2FubiBtYW4Kc2ljaCBkYSBhdWNoIG1pdCBzb3dhcyBzZWluIEhvbWUgemVyYmxhc2VuLCB3ZW5uIG1hbiBibGluZCBaZXVncyBhdXNmdWVocnQuCgp0cnVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoQW5hdG9sLCAxNS4gRmViIDIwMDEsIDE4OjM2OjA4KToKfiMhIHJuPVRydWcgcnQ9OTgyMjU4MzA2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCkRhcyBpc3QgZGVyIFB1bmt0LCBUcnVnLiBTZWluIEhvbWUuCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFZpcmVud2FybnVuZyAiT25UaGVGbHkgKEFubmEgS291cm5pa292YSkiIChTaWx2YW5hLCAxNS4gRmViIDIwMDEsIDE5OjA2OjQ0KToKfiMhIHJuPUFuYXRvbCBydD05ODIyNTg1Njggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODIxNTg2NjEKIC4uLnVuZCB3ZXIgc2ljaCB1bnRlciBMaW51eCBhbHMgInJvb3QiIGVpbmxvZ2d0IGZ1ZXIgZGllIHRhZWdsaWNoZW4gRGluZ2UsCmhhdCBlaCB3YXMgbmljaHQgdmVyc3RhbmRlbi4uLiA7LSkKClNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFZpcmVud2FybnVuZyAiT25UaGVGbHkgKEFubmEgS291cm5pa292YSkiIChUdXJibywgMTUuIEZlYiAyMDAxLCAxOToxMjoxMCk6Cn4jISBybj1BbmF0b2wgcnQ9OTgyMjU4NTY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCkRhcyBpc3Qgd29obCB3YWhyLiBBbGxlcmRpbmdzIGdpYnQgZXMgaW1tZXIgd2llZGVyIGJ1ZmZlciBvdmVyZmxvdyBleHBsb2l0cywKZHVyY2ggZGllIGplbWFuZCByb290IHdlcmRlbiB1bmQgZGVuIHJlY2huZXIgemVyc2NoaWVzc2VuIGthbm4uIERhIGhpbGZ0Cm51ciBzb3JnZmFlbHRpZ2UgU2Nod2FjaHN0ZWxsZW5hbmFseXNlICh6QiB0ZWxuZXRkIHVuZCBhbmRlcmVuIEtyYW0KYXVmIGRlbSBLb21tdW5pa2F0aW9uc3JlY2huZXIgYWJzY2hhbHRlbiwgd2VubiBpbW1lciBtb2VnbGljaC4KCkJ0dy46IEthbm4gdW50ZXIgTlQvVzJLIGltbWVyIG5vY2ggamVkZXIgSGFuc2VsIGRpZSBSZWdpc3RyeSB6ZXJzY2hyZWliZW4/CgpUdXJibyAoS2F0ZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoQWdvbnksIDE1LiBGZWIgMjAwMSwgMTk6MjE6NDApOgp+IyEgcm49QW5hdG9sIHJ0PTk4MjI1ODU2OCByZz1hbnplaWdlbgp+IyEgdGlkPTk4MjE1ODY2MQppY2ggd2FydGUgYXVmIGRlbiB0YWcsIHdlbm4gbGludXggZXZ0bC4gdmllbCB2ZXJicmVpdGV0ZXIgaXN0IGFscyBqZXR6dCwKd28gd2lya2xpY2ggbWFsIGVpbmVyIG5lbiBicmF1Y2hiYXJlbiB2aXJ1cyB1bnRlciBsaW51eCBzY2hyZWlidCwgZGVyIG1pdApkZW0gZHVzc2xpZ2VuIHZvcnVydGVpbCBhdWZyYWV1bXQsIGxpbnV4IHNlaSBkYWdlZ2VuIGdlZmVpdC4KZ2V0cmV1IGRlbSBhbHRlbiBzb2Z0d2FyZWxlaXRzYXR6OiBqZWRlciBoYWxid2VncyBrb21wbGV4ZSBzb2Z0d2FyZSBrYW5uCmdhciBuaWNodCBmZWhsZXJmcmVpIHNlaW4sIGthbm4gd29obCBrYXVtIGVpbmVyIGJlaGF1cHRlbiwgbGludXggd2FlcmUKZGEgdm9lbGxpZyBhbmRlcnMuIHNvd2FzIGtvbW10IGltIG5vcm1hbGZhbGwgbnVyIHZvbiBsZXV0ZW4sIGRpZSBzZWl0CjUgd29jaGVuIGxpbnV4IGhhYmVuIHVuZCBnYW56IGV1cGhvcmlzY2ggdmVya3VlbmRlbiwgc2llIGhhZXR0ZW4gZGllCndlaXNoZWl0IG1pdCBsb2VmZmVsbiBnZWZyZXNzZW4gdW5kIGhhZXR0ZW4gc2ljaCBqZXR6dCB2aWVsIHdlaXRlcgplbnR3aWNrZWx0IGFscyBhbGxlIGFuZGVyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoQWdvbnksIDE1LiBGZWIgMjAwMSwgMTk6MzE6MDApOgp+IyEgcm49QW5hdG9sIHJ0PTk4MjI2MTUxNSByZz1hbnplaWdlbgp+IyEgdGlkPTk4MjE1ODY2MQp3YXMgZ2xhdWJzdCBkdSwgd2llIHNpY2ggZGllIHBvbGl0aWsgYXVmIGxpbnV4IGF1c3dpcmtlbiB3aXJkLCB3ZW5uCnRhdHNhZWNobGljaCA5OCUgZGVyIGJldm9lbGtlcnVuZyBsaW51eCBoYWV0dGVuLi4udW5kIHNvbWl0IGF1Y2ggbGV1dGUsCmRpZSA1MCUgaWhyZXIgZnJlaXplaXQgaW4gaWhyZSBmcmV1bmRpbiBzdGF0dCBpbiBpaHJlbiBjb21wdXRlciBzdGVja2VuLApnYW56IHp1IHNjaHdlaWdlbiB2b24gZGVyIG1laXN0IHZvZWxsaWcgY29tcHV0ZXItZGVzaW50ZXJlc3NpZXJ0ZW4KaGFlbGZ0ZSBkZXIgYmV2b2Vsa2VydW5nLgpkYW5uIHdpcmQgamVkZSBkdW1taGVpdCwgZGllIHF1ZW5nbGlnZSBrdW5kZW5hbnJ1ZmUgZGV6aW1pZXJlbiBrb2VubnRlIHZvbgpkZW4gZGlzdHJpYnV0b3JlbiBhdWNoIGR1cmNoZ2V6b2dlbiwgdW5kIG1hbiBrYW5uIHVudGVyIGxpbnV4IG1pbmRlc3RlbnMKZ2VuYXVzbyBkdW1tZSBzYWNoZW4gd2llIHVudGVyIHdpbmRvd3MgbWFjaGVuLgpkYXMgYmV0cmllYnNzeXN0ZW0gbWFnIGRhcyBlcHNpbG9uIGluIHNhY2hlbiB1bnNpY2hlcmhlaXQgZnVlciBzaWNoCnZlcmJ1Y2hlbiwgYWJlciB1bmJlc2NocmFlbmt0ZSBkdW1taGVpdCBnbGVpY2h0IGRhcyB1ZWJsaWNoZXJ3ZWlzZSBsb2NrZXIgYXVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVmlyZW53YXJudW5nICJPblRoZUZseSAoQW5uYSBLb3Vybmlrb3ZhKSIgKFNjcmVhbWVyLCAxNS4gRmViIDIwMDEsIDIyOjAyOjE2KToKfiMhIHJuPUFnb255IHJ0PTk4MjI2MTMwMCByZz1hbnplaWdlbgp+IyEgdGlkPTk4MjE1ODY2MQoKTmFqYSwgd2lyIExpbnV4LVVzZXIgc2luZCBkb2NoIHNvd2llc28gdmllbCB0b2xsZXIgYWxzIGRpZSBXaW5kb3dzLQpOdXR6ZXIsIHVuc2VyIElRIGlzdCBob2VoZXIsIHdpciBzZWhlbiBiZXNzZXIgYXVzLi4uLiAKSWNoIGxhbmd3ZWlsZSBtYWwgbmljaHQgd2VpdGVyLCB3aWUgdG9sbCBtYW4gYWxzIExpbnV4IEJlbnV0emVyIGlzdCwKZGFzIHdlaXNzIGVoIGplZGVyLiAKCktsZWluZSBVbnRlcnNjaGllZGUgZ2lidHMgYWJlciBhdWNoIGJlaSBsaW51eCBiZW51dHplciwgbWFuY2hlIHNpbmQgbm9jaAp0b2xsZXIsIGhhZW5ndCB2b24gZGVyIERpc3RyaWJ1dGlvbiBhYi4uLiBBYmVyIHNlbGJzdCBTdXNlLUJlbnV0emVyIAp1ZWJlcnRyZWZmZW4gV2luZG93cy1CZW51dHplciBpbSBJUSB3ZWl0Li4uLgoKQWNoIGphLCBWaXJlbiBnaWJ0IGVzIGZ1ZXIgTGludXggYXVjaCwgZ2VyYWRlIGRpZSBUYWdlIGthbSBuZSBXYXJudW5nLAppY2ggZ2xhdWJlIHNpZSBiZXRyYWYgc3BlemllbGwgUmVkIEhlYWQuLi4uLiAKClNvdmllbCB6dXIgZ29ldHRsaWNoZW4gVWViZXJsZWdlbmhlaXQuLi4KClNjcmVhbWVyIChzZWxic3QgTGludXggQmVudXR6ZXIsIGFiZXIgbGVpZGVyIGVpbiBub3JtYWxlciBNZW5zY2gpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoTm9raSwgMTYuIEZlYiAyMDAxLCAwOToyMzozNik6Cn4jISBybj1TY3JlYW1lciBydD05ODIyNzA5MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODIxNTg2NjEKCkRpZSBhcnJvZ2FudGVzdGV0ZW4gUG9zdGluZ3MgZmluZGV0IG1hbiBqZWRlbmZhbGxzIG1pdCBob2VjaHN0ZXIKVHJlZmZzaWNoZXJoZWl0IGluIExpbnV4LUZvcmVuLgoKTm9raSAoa3VyeiB1bmQgc2NobWVyemxvcykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFZpcmVud2FybnVuZyAiT25UaGVGbHkgKEFubmEgS291cm5pa292YSkiIChNdWFkaWIsIDE2LiBGZWIgMjAwMSwgMTA6NTU6NDIpOgp+IyEgcm49QWdvbnkgcnQ9OTgyMjYxMzAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCkhpLAoKTGludXgtVmlyZW4gc2luZCBuaWNodHMgbmV1ZXMuIFNjaG9uIDE5OTYgaGFiZW4gU3RvYWcgdW5kIEJsaXNzIGRpZSBSdW5kZQpnZW1hY2h0LiBWb24gVHJlbmRtaWNybyBnaWJ0cyB1ZWJyaWdlbnMgZWluZW4gVmlyZW5zY2FubmVyIGRlciB1bnRlciBMaW51eApsYWV1ZnQgdW5kIHJlY2h0IGd1dCBpc3QuIE5laW4gaWNoIGJpbiBuaWNodCBtaXQgVHJlbmRtaWNybyB2ZXJiYW5kZWx0IHVuZAp3aWxsIG5pY2h0IHp1bSBLYXVmIGFucmVnZW4uCgpHcnVzcwoKTXVhZGliCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoVHJ1ZywgMTYuIEZlYiAyMDAxLCAxMzoxMToxNCk6Cn4jISBybj1BZ29ueSBydD05ODIyNjEzMDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODIxNTg2NjEKVHJ1ZyBicmFiYmVsdCB3YXMgdm9uICdNb3JyaXMtV3VybScsIHdvIGRhcyBJbmV0IG5vY2ggZ2FhYW56IGtsZWluIHdhci4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogVmlyZW53YXJudW5nICJPblRoZUZseSAoQW5uYSBLb3Vybmlrb3ZhKSIgKEN5bW9uaywgMTcuIEZlYiAyMDAxLCAwMDoxOTo1MCk6Cn4jISBybj1TY3JlYW1lciBydD05ODIyNzA5MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODIxNTg2NjEKCmFwcm9wb3MgU3VTRToKCnNjaGF1IGRpciAnbWFsIHZlcmdsZWljaHN0ZXN0IGJ6Z2wuIHBvc2l4IGtvbmZvcm1pdGFldCwgZXRjLgpha3R1ZWxsZXIgbGludXggZGlzdHJpYnV0aW9uZW4gYW46CgpodHRwOi8vd3d3LmxpbnV4YmFzZS5vcmcKCmR1IHdpcnN0IGRpY2ggd3VuZGVybiAuLi4KCmdydXNzLAoKY3kgKFN1U0UgYW53ZW5kZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoQ3ltb25rLCAxNy4gRmViIDIwMDEsIDAwOjIyOjM0KToKfiMhIHJuPUN5bW9uayBydD05ODIzNjU1OTAgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODIxNTg2NjEKCndlciBkYXMgZG9ydCBuaWNodCBhdWYgYW5oaWViIGZpbmRldDoKCmh0dHA6Ly93d3cubGludXhiYXNlLm9yZy90ZXN0L3Jlc3VsdHMvCgpncnVzcywKY3kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFZpcmVud2FybnVuZyAiT25UaGVGbHkgKEFubmEgS291cm5pa292YSkiIChJbGVzc2EsIDE3LiBGZWIgMjAwMSwgMjM6NTI6MzQpOgp+IyEgcm49U2NyZWFtZXIgcnQ9OTgyMjcwOTM2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCkludGVyZXNzYW50ZXIgTGluaywgZGFua2UuClVuZCBpY2ggYmluIGJlcnVoaWd0LCBkYXNzIG1laW5lIExpZWJsaW5nc2Rpc3RyaWJ1dGlvbiB3ZW5pZ3N0ZW5zIGF1ZiBQbGF0eiAyCmxhbmRldCA7LSkKCklsZXNzYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVlcmRpZ3VuZyB2b24gTGFtYXJpb24gIChYZW5hZGEsIDE4LiBGZWIgMjAwMSwgMDA6NTg6MDkpOgpEaWUgQmVlcmRpZ3VuZyB2b24gTm9yYmVydCBmaW5kZXQgYW0gMjMuMDIuMjAwMSB1bSAxMDowMGggYXVmIGRlbSAKUGFya2ZyaWVkaG9mIGluIE1hcnphaG4gc3RhdHQuIERhcyBpc3QgZGlyZWt0IGFtIFMtQmFobmhvZiBNYXJ6YWhuLiAKV2VyIHZvbiBFdWNoIG1pdGtvbW1lbiBtb2VjaHRlIHVuZCBuaWNodCB3ZWlzcyB3byBlcyBnZW5hdSBpc3QgCmthbm4gdW5zIGdlcm5lIGRhbmFjaCBmcmFnZW4uCgpHYW5kdXIgdW5kIFhlbmFkYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogVmlyZW53YXJudW5nICJPblRoZUZseSAoQW5uYSBLb3Vybmlrb3ZhKSIgKENhdHdlYXpsZSwgMTkuIEZlYiAyMDAxLCAwOToxNjo0Mik6Cn4jISBybj1DeW1vbmsgcnQ9OTgyMzY1NzU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCk5hamEsCkRhbm4gc2llaCBEaXIgbWFsIGdlbmF1ZXIgYW4sIHdhcyBpbiBkaWVzZXIgJ1Rlc3RzdWl0ZScgYWxsZXMgZ2V0ZXN0ZXQgd2lyZAp1bmQgdWViZXJsZWcgRGlyIHdpZSB3ZW5pZyBhdXNzYWdla3JhZWZ0aWcgZGFzIGlzdC4gCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogVmlyZW53YXJudW5nICJPblRoZUZseSAoQW5uYSBLb3Vybmlrb3ZhKSIgKEN5bW9uaywgMTkuIEZlYiAyMDAxLCAyMToyODo1NCk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9OTgyNTcwNjAyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCgpqYSwgaWNoIHdlaXNzLCB3YXMgZG9ydCBnZXRlc3RldCB3aXJkLgp1bmQgJ2F1c3NhZ2VrcmFlZnRpZycgYnpnbC4gd2FzPyA6KQppY2ggd29sbHRlIGVpZ2VudGxpY2ggbnVyLCB6dWdlZ2ViZW5lcm1hc3NlbiBldHdhcyB2ZXJzdGVja3QsIGF1ZnplaWdlbiwKd2llIHdlaXQgbGludXggZGlzdHJpcyB2b24gZWluZW0gJ3N0YW5kYXJkJyBlbnRmZXJudCBzaW5kIHVuZCBlcyBpbWhvCmF1Y2ggdm9lbGxpZyB1bmFuZ2VicmFjaHQgaXN0IGVpbmVuICdkaXN0cmktIGZsYW1lLSB3YXInIHp1IHZlcmFuc3RhbHRlbi4KamVkZXIgaGF0IHNlaW5lIHZvcmxpZWJlbiBiemdsLiBsaWVmZXJ1bWZhbmcgdW5kIC1hdXN3YWhsLCBoZXJzdGVsbGVyZWlnZW5lbgphZGQtb24gdG9vbHMKCm5pY2h0cyBkZXN0cm90eiBoYWx0ZSBpY2ggZWluaWdlIGRlciB0ZXN0cyBpbm5lcmhhbGIgZGVyIHN1aXRlIGZ1ZXIKZHVyY2hhdXMgc2lubnZvbGwgLi4uIGF1c3NhZ2VrcmFlZnRpZyBpbiBkZW0gc2lubmUgJ3dlbGNoZXMgaXN0IGRpZQp1bHRpbWF0aXZlIGRpc3RyaSctIHdlbm4gZHUgZXMgZGVubiBzbyBnZW1laW50IGhhc3QtIGlzdCBlcyBuaWNodCwKZGEgaGFzdCBkdSB3b2hsIHdhaHIgLi4uCgpjeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWaXJlbndhcm51bmcgIk9uVGhlRmx5IChBbm5hIEtvdXJuaWtvdmEpIiAoQXBzdSwgIDMuIE1hciAyMDAxLCAxNzozNzowOCk6Cn4jISBybj1NZW5hY2UgcnQ9OTgyMTc3NTk4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTgyMTU4NjYxCkljaCB3dWVyZGUgc29nYXIgc2FnZW4sIHdlciBhbGxlcyBhbiBhdHRhY2htZW50cyBvZWZmbmV0LCB3YXMgbmljaHQgc2NobmVsbApnZW51ZyBkZW4gbmFlY2hzdGVuIFZlcnplaWNobmlzYmF1bSByYXVma2xldHRlcnQsIHVuZCBkYXMgbmFjaCBfZGVtXwpJbG92ZXUtVGhlYXRlciwgaGF0IG5peCBiZXNzZXJlcyB2ZXJkaWVudCwgYWxzIHNpY2ggc2VpbiBIb21lIHp1CnplcnNjaHJlZGRlcm4uCgpBcHN1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNRy1NdWRsaWIgKFRpYW1haywgIDguIE1hciAyMDAxLCAxOToxMzoyOCk6ClNhbHZlIQoKQXVmIHZpZWxmYWNoZW4gZ29ldHRsaWNoZW4gRHJeSF5IV3Vuc2NoIGdpYnQgZXMgZWluZSBuZXVlIE11ZGxpYi1SZWxlYXNlLgoKQWxsZXJkaW5ncyBpc3Qgc2llIG5vY2ggbmFjaCAiYWx0ZW0iIFNjaGVtYSAtIGFsc28gdW52b2xsc3RhZW5kaWcsIGZyb2VobGljaApidWdnZW5kIHVuZCBmdWVyIEhvbWVtdWRzIG5pY2h0IG9obmUgZWluaWdlIEJhc3RlbGVpIHp1IGdlYnJhdWNoZW4uIFNlaWQKZ2V3YXJudC4gOy0pCgoKVGlhbWFrLiBIYXQga2VpbmUgWmVpdCBmdWVyIGVpbmUgInJpY2h0aWdlIiBSZWxlYXNlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1HLU11ZGxpYiAoUmlrdXMsICA4LiBNYXIgMjAwMSwgMjE6MDc6NTIpOgp+IyEgcm49VGlhbWFrIHJ0PTk4NDA3NTIwOCByZz1hbnplaWdlbgp+IyEgdGlkPTk4NDA3NTIwOApIaS4KCkljaCBoYWJlIG1hbCBldHdhcyBkcmFuIGdlYmFzdGVsdCwgYmVpIG1pciB6dWhhdXNlIHN0YXJ0ZXQgc2llIGVyc3RtYWwKZmVobGVyZnJlaSwgZWlubG9nZ2VuIGdlaHQgYXVjaCBvay4gV2VubiB3YXMgZGFuYWNoIG5pY2h0IGdlaHQsIGRhbm4KYml0dGUgZWluZSBtYWlsIGFuIG1pY2guLi4KClJpa3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2hudW5nIGluIE0/IChIb2JvLCAxNS4gTWFyIDIwMDEsIDE1OjI2OjE4KToKSGFsbG8gTGV1dGUsCk5pY2h0IGxhY2hlbiwgYWJlciBrZW5uc3QgRFUgbmljaHQgdmllbGxlaWNodCBlaW5lIDItMyBaaW1tZXIgV29obnVuZyBpbgpNdWVuY2hlbiwgZGllIGRlbW5hZWNoc3QgZnJlaSB3aXJkIG9kZXIgc2Nob24gZnJlaSBpc3Q/CgpNYW4ga2FubidzIGphIG1hbCBwcm9iaWVyZW4uLi4KTWFuIGthbm4ncyBqYSBtYWwgcHJvYmllcmVuLi4uCiAgICBIb2JvIC0gd2Vpc3MgZ2VuYXUsIGRhc3MgbWluZGVzdGVucyBlaW5lIFplaWxlIHdpZWRlciBkb3BwZWx0IGFua29tbXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXb2hudW5nIGluIE0/IChHb3IsIDE1LiBNYXIgMjAwMSwgMTY6MTg6NDMpOgp+IyEgcm49SG9ibyBydD05ODQ2NjYzNzggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODQ2NjYzNzgKTmUgMS1aaW1tZXIgV29obnVuZyBrb2VubnRlbiB3aXIgYW5iaWV0ZW4gZnVlciBkZW4gUHJlaXNzIGVpbmVyIDMKWmltbWVyd29obnVuZyAqZyogOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV29obnVuZyBpbiBNPyAoSG9ibywgMTYuIE1hciAyMDAxLCAxNjowMTowMCk6Cn4jISBybj1Hb3IgcnQ9OTg0NjY5NTIzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg0NjY2Mzc4CkRhbmtlLCBuZWluLi4gendlaSBQZXJzb25lbiBzb2xsdGVuIG1pdCBpaHJlbSBIYWIgdW5kIEd1dCBzY2hvbiByZWluIHBhc3Nlbi4KSXN0IHVlYnJpZ2VucyBhdWNoIG5pY2h0IGZ1ZXIgbWljaCwgc29uZGVybiBmdWVyIGVpbmVuIEZyZXVuZC4KSXN0IHVlYnJpZ2VucyBhdWNoIG5pY2h0IGZ1ZXIgbWljaCwgc29uZGVybiBmdWVyIGVpbmVuIEZyZXVuZC4KIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdvaG51bmcgaW4gTT8gKFd1cnplbCwgMTYuIE1hciAyMDAxLCAxNjo0NTowNSk6Cn4jISBybj1Ib2JvIHJ0PTk4NDc1NDg2MCByZz1hbnplaWdlbgp+IyEgdGlkPTk4NDY2NjM3OApkYW5uIHN0ZWxsIGRpY2ggbWFsIGF1ZiBob2hlIHByZWlzZSBlaW4uIHdlbm4gZHUgMjAgZG0gLyBtXjIgYmV6YWhsc3QsCmtvbW1zdCBkdSBub2NoIGd1dCBkYWJlaSB3ZWcuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdvaG51bmcgaW4gTT8gKEFuYWNyaW9uLCAxNi4gTWFyIDIwMDEsIDE2OjU4OjM5KToKfiMhIHJuPVd1cnplbCBydD05ODQ3NTc1MDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODQ2NjYzNzgKU292aWVsIGtvc3RldCBpbiBCdWZmYWxvLCBOWSBhbGxlaW4gZGFzIEhlaXplbi4KCkJlaSBIb2x6d2FlbmRlbiwgSGllc3NsdWZ0aGVpenVuZyB1bmQgLTMwIEdyYWQgQ2Vsc2l1cyBkcmF1c3NlbiBhbGxlcmRpbmdzCmF1Y2gga2VpbiBXdW5kZXIuCgpBY2ggamEgLi4gaGF0dGUgZGVuIERvbGxhcmt1cnMgZmFzdCB2ZXJnZXNzZW4gOy0pCgpBbmFjKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogV29obnVuZyBpbiBNPyAoR2xvaW5zb24sIDE2LiBNYXIgMjAwMSwgMTc6MDA6MjcpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTg0NzU4MzE5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg0NjY2Mzc4CkhhdHMgZGEga2VpbmUgb2VmZmVudGxpY2hlbiBCaWJsaW90aGVrZW4/IEJ6dy46IFdhcyBtYWNodCBtYW4genUgSGF1c2UgYXVzc2VyClNjaGxhZmVuIHVuZCBFc3Nlbj8gRGEgaG9sdCBtYW4gc2ljaCBlYmVuIGVpbiBkaWNrZXMgRmVkZXJiZXR0LgoKR2xvaW4oc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV29obnVuZyBpbiBNPyAoSG9ibywgMTYuIE1hciAyMDAxLCAyMTo1NToxOCk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTg0NzU3NTA1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg0NjY2Mzc4Ck5pY2h0IGljaCwgc29uZGVybiBkZXIgRnJldW5kIHZvbiBtaXIgOykKCiAgIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJyYXVuc2Nod2VpZzogQ29udmVudHVzIExlb25pcyAoR3JpbW1ib3JuLCAxOS4gTWFyIDIwMDEsIDE4OjIzOjA0KToKfiMhIG9uPVFpdGVzcyBvdD05ODUwMjExODQgb2c9YWxsZ2VtZWluZXMKClZvbSAyMy4gYmlzIDI1Lk1hZXJ6IGZpbmRldCBpbiBCcmF1bnNjaHdlaWcgZGllIGxlZ2VuZGFlcmUgQ29udmVudHVzIExlb25pcwpzdGF0dCwgZWluIFJvbGxlbnNwaWVsZXJ0cmVmZmVuLgoKV2VyIHNpY2ggZGFmdWVyIGludGVyZXNzaWVydCwgZmluZGV0IG5hZWhlcmUgSW5mb3MgaW4gZGVyIFJ1YnJpayB0cmVmZmVuIGltCkFydGlrZWwgODYuCgpRSSoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWZXJsZWdlcmVpIChRaXRlc3MsIDIwLiBNYXIgMjAwMSwgMTQ6MjE6MzIpOgpJY2ggZmluZCdzIGFldHplbmQuCkRlciBBcnRpa2VsIHVlYmVyIGRpZSBDb25MZW9uaXMgc29sbHRlIGluIGRpZSBSdWJyaWsgJ2FsbGdlbWVpbmVzJywgZGFtaXQgc2llCnZvbiBfdmllbGVuXyBMZXV0ZW4gZ2VsZXNlbiB3aXJkLCB1bmQgbmljaHQgbnVyIHZvbiB6d2VpIG9kZXIgZHJlaSwgZGllIGRpZQpSdWJyaWsgJ2FuemVpZ2VuJyBuaWNodCBhYmJlc3RlbGx0IGhhYmVuLgpRSSoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDb252ZW50dXMgTGVvbmlzIChHcmltbWJvcm4sIDIwLiBNYXIgMjAwMSwgMTQ6NDA6NTApOgp+IyEgb249UWl0ZXNzIG90PTk4NTA5NDU5MSBvZz1hbGxnZW1laW5lcwpOb2NobWFsOgpWb20gMjMuIGJpcyB6dW0gMjUuIE1hZXJ6IGZpbmRldCBkaWUgQ29udmVudHVzIExlb25pcyBpbiBCcmF1bnNjaHdlaWcgaW0KSnVnZW5kemVudHJ1bSBNdWVobGUgc3RhdHQuCldlciBzaWNoIGZ1ZXIgZGllc2VzIFJvbGxlbnNwaWVsZXJ0cmVmZmVuIGludGVyZXNzaWVydCwgZmluZGV0IG5hZWhlcmUgQW5nYWJlbgppbiBkZXIgUnVicmlrIFRyZWZmZW4gaW0gQXJ0aWtlbCA4Ni4KUUkqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWZXJsZWdlcmVpIChQYXRyeW4sIDIwLiBNYXIgMjAwMSwgMTQ6NTI6MzgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk4NTA5NTg5NSByZz1hbnplaWdlbgp+IyEgdGlkPTk4NTA5NDQ5MgptYW4ga29lbm50ZSBkb2NoIGRpZSBydWJyaWsgcWl0ZXNzLm1wYSBpZ25vcmllcmVuLiBpY2ggZnVlciBtZWluZW4gdGVpbAp3dWVyZGUgZGFubiBhYnNvbHV0IG5pY2h0cyB2ZXJwYXNzZW4gb2RlciB2ZXJtaXNzZW4sIGFiZXIgZ2VzY2htYWVja2VyCnNpbmQgenVtIGdsdWVjayB2ZXJzY2hpZWRlbiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVmVybGVnZXJlaSAoT3JrdG9ldGVyLCAyMC4gTWFyIDIwMDEsIDE0OjU0OjI3KToKfiMhIHJuPVBhdHJ5biBydD05ODUwOTYzNTggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODUwOTQ0OTIKaWdub3JpZXJlIG5hbWUubXBhIGdlaHQgbmljaHQsIGF1Y2ggd2VubnMgbGFuZ2UgemVpdCBzb2dhciBmYWVsc2NobGljaGVyd2Vpc2UKaW4gZGVyIEhpbGZlIHN0YW5kLgoKT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFZlcmxlZ2VyZWkgKEphbWVzb24sIDIwLiBNYXIgMjAwMSwgMTQ6NTU6MDcpOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTk4NTA5NjQ2NyByZz1hbnplaWdlbgp+IyEgdGlkPTk4NTA5NDQ5MgplcyBoZWlzc3QgbmFtZS5uZXdzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBWZXJsZWdlcmVpIChQYXRyeW4sIDIwLiBNYXIgMjAwMSwgMTQ6NTU6MTEpOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTk4NTA5NjQ2NyByZz1hbnplaWdlbgp+IyEgdGlkPTk4NTA5NDQ5Mgp3dXJkZSBtaXIgYXVjaCBncmFkIG1pdGdldGVpbHQuLi5pY2ggaWdub3JpZXJlIHdpcmtsaWNoIGhvZWNoc3Qgc2VsdGVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ29udmVudHVzIExlb25pcyAoR2xvaW5zb24sIDIwLiBNYXIgMjAwMSwgMTQ6NTU6NTcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk4NTA5NTY1MCByZz1hbnplaWdlbgp+IyEgdGlkPTk4NTA5NTY1MApEYSBEdSBzbyBoYXJ0bmFlY2tpZyBiaXN0IHVuZCBCb2luZyBhdWNoIHNjaG9uIGRhbmtiYXIgLSBJbmRpemVzLUFuZ2FiZW4gaW4KWmVpdHVuZ3NydWJyaWtlbiBudXR6ZW4gZWluZW4gU2NobWFycm4sIHdlbm4gRHUgbmljaHQgenVmYWVsbGlnIGRpZSBMb2VzY2h6ZWl0CmRlciBSdWJyaWsgd2Vpc3N0IHVuZCBtaXQgYWxsZW4gYWx0ZW4gQXJ0aWtlbG4gYWJnbGVpY2hzdC4gRWluIGZyZXVuZGxpY2hlcgpIaW53ZWlzIGZ1ZXIgZGllIFp1a3VuZnQuCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZW1hbmQgaGllci4uLiAoSHVtbmksIDIxLiBNYXIgMjAwMSwgMDE6MDE6NDEpOgpkZXIgZm9sZ2VuZGVuIFNhdHogdmVyc3RlaHQgdW5kIG1pciBzYWd0IHdhcyBlciBoZWlzc3Q/CkthcmFhIEtlZW5peWFhdGlpbiBodW1uaQpndXJtZWVzc2VlIGZpZGUga2FuYSBkdXJhIE1vb3lhYWxlZXJyYXR0aSBydWt1dGFtZWUgZHV1YmF0dGkga2FuIGRlZWJpJ2UgdGEKCkljaCBoYWIgaWhuIG1pdHRlbHMgR29vZ2xlIGdlZnVuZGVuIGFscyBpY2ggbmFjaCAsSHVtbmknIGdlc3VjaHQgaGFiZSB1bmQKd3VlcmRlIGdlcm5lIHdpc3Nlbiwgd2FzIG1laW4gTmFtZSBpbiB3ZWxjaGVyIFNwcmFjaGUgZGFzIGF1Y2ggaW1tZXIgaXN0CmJlZGV1dGV0Li4uCgogOy0pCkNVIEh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSmVtYW5kIGhpZXIuLi4gKEthcm9sdXMsIDIxLiBNYXIgMjAwMSwgMDk6MTY6MDApOgp+IyEgcm49SHVtbmkgcnQ9OTg1MTMyOTAxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg1MTMyOTAxCnNpZWh0IGZ1ZXIgbWljaCBhdXMgd2llIGZpbm5pc2NoIC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdvaG51bmcgaW4gTT8gKEFsY2luYSwgMjEuIE1hciAyMDAxLCAxMjoxODozMSk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTg0NzU3NTA1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg0NjY2Mzc4CgpXdXJ6ZWwsIGRhcyB3YXJlbiB3b2hsIG5vY2ggYWx0ZSBtdWVuY2huZXIgUHJlaXNlLiBKZXR6dCBzaW5kcyBlaGVyIDMwIG1hY2sKcHJvIHFtLgoKQWxjaW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBXb2hudW5nIGluIE0/IChXdXJ6ZWwsIDIxLiBNYXIgMjAwMSwgMTI6MjE6MTEpOgp+IyEgcm49QWxjaW5hIHJ0PTk4NTE3MzUxMSByZz1hbnplaWdlbgp+IyEgdGlkPTk4NDY2NjM3OAprb21tdCBkcmF1ZiBhbiB3by4gbWl0IGVpbiB3ZW5pZyBzdWNoZW4gaGF0dGUgaWNoIG5lIHdvaG51bmcgZnVlciAxNiBtYXJrCmRlbiBxdWFkcmF0bWV0ZXIsIHVuZCBkYXMgYmlzIHNlcHRlbWJlci4uLiBkZXIgbmFjaG1pZXRlciB6YWhsdCBuaWNodAp3ZXNlbnRsaWNoIG1laHIuIHVuZCBkYXMgaW4gaW5uZW5zdGFkdG5hZWhlLCBmYXN0IGluIHNjaHdhYmluZy4uLgpmdWVyIDMwIG1hcmsgbXVzcyBtYW4gbmljaHQgd29obmVuLiBhdWNoIG5pY2h0IGluIG11ZW5jaGVuLgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSmVtYW5kIGhpZXIuLi4gKFFpdGVzcywgMjEuIE1hciAyMDAxLCAxNTo0OToxMSk6Cn4jISBybj1IdW1uaSBydD05ODUxMzI5MDEgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODUxMzI5MDEKYWxzbywgZmlubmlzY2ggd3VlcmRlIGljaCBuZXQgc2FnZW4sIHp1IHdlbmlnIGtrIHVuZCAiYSJhIHVuZCBzby4uLiB2aWVsbGVpY2h0CmtsaW5nb25pc2NoPyAqa2ljaGVyKgprb2VubnRlIG5hdHVlcmxpY2ggYXVjaCBpcmdlbmR3YXMgYXVzIGRlbSBhc2lhdGlzY2hlbiByYXVtIHNlaW4uLi4KClFJKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKZW1hbmQgaGllci4uLiAoUmFyZGlhbiwgMjEuIE1hciAyMDAxLCAxNjozNDoyOSk6Cn4jISBybj1IdW1uaSBydD05ODUxMzI5MDEgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODUxMzI5MDEKQWNoIEh1bW5pLi4uCgpEYXMgaGFzdCBkdSBzZWxic3QsIGltIFZvbGxyYXVzY2gsIGdlc2NocmllYmVuIDspCgpSYXIsIHNwZWt1bGllcmVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSmVtYW5kIGhpZXIuLi4gKFNjcmVhbWVyLCAyMS4gTWFyIDIwMDEsIDIzOjQyOjE4KToKfiMhIHJuPVJhcmRpYW4gcnQ9OTg1MTg4ODY5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg1MTMyOTAxCgpKb29vbywgYmluIHNpY2hlciBkYXNzIGRhcyB3YXMgbWl0IEJpZXIgenUgdHVuIGhhdCwgd2FzIEh1bW5pIGRhIGdlZnVuZGVuIGhhdAo7LSkKClNjcmVhbWVyICpuYWNoIEJpZXIga3JlaXNjaGVuZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSmVtYW5kIGhpZXIuLi4gKEFwc3UsIDI2LiBNYXIgMjAwMSwgMTg6MTc6MjEpOgp+IyEgcm49S2Fyb2x1cyBydD05ODUxNjI1NjAgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODUxMzI5MDEKTm9lIGtlaW4gZmlubmlzY2ggYWJlciBlc3RuaXNjaCBvZGVyIHdhcyBhbmRlcmVzIHZlcndhbmR0ZXMgdmllbGxlaWNodAooc2FtaXNjaCwgbGFwcGlzY2gsIGthcmVsaXNjaC4uLikKCkFwc3UsIHB1aHV1IHN1b21hbGFpbmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSmVtYW5kIGhpZXIuLi4gKE1vZ2llbiwgMjcuIE1hciAyMDAxLCAxNjo0MToxMSk6Cn4jISBybj1IdW1uaSBydD05ODUxMzI5MDEgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODUxMzI5MDEKQWxzbyB3ZW5uIGljaCBkYXMgcmljaHRpZyBzZWhlLCB3YXIgZGllIGVudHNwcmVjaGVuZGUgV2Vic2VpdGUKaHR0cDovL3d3dy50ZWxlY29tLm5ldC5ldC9+d2FsdGEvZWRpdG9yaWFsL29yb21pYS9vcjIxMTA5MS5odG1sCkRlciBEb21haW5lbmR1bmcgbmFjaCBpc3QgZGFzIEFldGhpb3BpZW4sIGFsc28gaXN0IGRpZSBTcHJhY2hlIHdvaGwKQW1oYXJpc2NoIChyYXRlIGljaCBqZXR6dCBtYWwsIG9id29obCBBbWhhcmlzY2ggZWlnZW50bGljaCBlaW5lIGVpZ2VuZQpTY2hyaWZ0IGhhdCAuLi4pCkFjaHNvLCBrZWluZSBBaG51bmcsIHdhcyBpbiBkZW0gQXJ0aWtlbCBzdGVodC4KCkdydXNzLApNb2dpZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlciBmYWVocnQgbWl0PyAoQXJrLCAgMi4gQXByIDIwMDEsIDIwOjIzOjQzKToKSG9zc2EuIFdlbiBpbnRlcmVzc2llcnQgTWFyb2trbz8gU3VjaGUgbm9jaCBqZW1hbmQsIGRlciBtaXRmYWVocnQuIFplaXQ6IGV0d2EKZ2VnZW4gTWl0dGUgYmlzIEVuZGUgTWFpLCAzIFdvY2hlbi4gU2Nod2VycHVua3RlOiBNYXJyYWtlc2NoLCBGZXMsIFJhYmF0LiBCaW4KbGVpZGVyIGtlaW4gdHlwaXNjaGVyIFN0cmFuZHR5cCwgc29uZGVybiBtZWhyIGFuIExhbmQgdW5kIExldXRlbiBpbnRlcmVzc2llcnQuClN0cmFuZHVybGF1YiB3aXJkIGRlc2hhbGIgaW1tZXIgYXVmIHdlbmlnZSBUYWdlIGJlc2NocmFlbmt0IDotKQpTb2xsdGVzdCBEdSBhbHNvIEludGVyZXNzZSB1bmQgWmVpdCBoYWJlbiwgZGFubiBtZWxkZSBEaWNoIGVpbmZhY2ggbWFsIGJlaQptaXIuCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlciBmYWVocnQgbWl0PyAoQXJrLCAgMi4gQXByIDIwMDEsIDIyOjI3OjI2KToKfiMhIHJuPUFyayBydD05ODYyMzU4MjMgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODYyMzU4MjMKQWNoc28sIHVuZCB0b2VkbGljaGUgRmFsbGVuIHVuZC9vZGVyIEtyYW5raGVpdGVuIHNpbmQgZnVlciBkaWUgRGF1ZXIgZGVyIFJlaXNlCm5hdHVlcmxpY2ggbmljaHQgZXJ3dWVuc2NodCA7XjEKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgd2FzIE51ZXR6bGljaGVzLi4uIChSb2NodXMsICA0LiBBcHIgMjAwMSwgMjA6MTU6MTYpOgpOYWNoZGVtIHNpY2ggc292aWVsZSBNdWRkZXIgamEgbWl0IEJlZ2Vpc3RlcnVuZyBpaHJlClJlY2huZXIgenVtIFJDNS1LbmFja2VuIHp1ciBWZXJmdWVndW5nIGdlc3RlbGx0IGhhYmVuOgoKICBodHRwOi8vd3d3LmludGVsLmNvbS9jdXJlLwpvZGVyCiAgaHR0cDovL3d3dy5jaGVtLm94LmFjLnVrL2N1cmVjYW5jZXIuaHRtbAoKRG9ydCBpc3QgZWluIFByb2dyYW1tIGRvd256dWxvYWRlbiwgZGFzIHVlYmVyc2NodWVzc2lnZSBSZWNoZW56ZWl0CmltIERpZW5zdGUgZGVyIEtyZWJzZm9yc2NodW5nIG51dHp0LgpWaWVsbGVpY2h0IG1vZWNodGUgamEgbWFsIGplbWFuZCB3YXMgbnVldHpsaWNoZXJlcyB0dW4gYWxzIEFsaWVucyBqYWdlbi4uLgoKICBSb2NodXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWwgd2FzIE51ZXR6bGljaGVzLi4uIChHcmltbWJvcm4sICA0LiBBcHIgMjAwMSwgMjA6MTc6NDcpOgp+IyEgcm49Um9jaHVzIHJ0PTk4NjQwODExNiByZz1hbnplaWdlbgp+IyEgdGlkPTk4NjQwODExNgpDb3JyZWN0IG1lIGlmIEknbSB3cm9uZywgYWJlciBpY2ggaGF0dGUgaW0gS29wZiBkYXMgZ2lidHMgbnVyIGFscwpXaW5kb3dzLXNjcmVlbnNhdmVyPyBVbmQgd296dSBzb2xsdGUgaWNoIGVpbiBrb21wbGV0dCBuZXVlcyBPUyBpbnN0YWxsaWVyZW4sCmJsb3NzIGRhbWl0IGVpbiBwYWFyIExldXRlLCBkaWUgYXVjaCBoZXV0ZSBub2NoIGRhcyByYXVjaGVuIG5pY2h0IGxhc3Nlbgprb2VubmVuLCBzaWNoIGVpbiBwYWFyIElsbHVzaW9uZW4gbWVociB1ZWJlciBlaW5lIHJlY2h0emVpdGlnZQpXdW5kZXJ3YWZeSF5IXkhtZWRpemluIG1hY2hlbiBrb2VubmVuPwoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFsIHdhcyBOdWV0emxpY2hlcy4uLiAoUGF0cnluLCAgNC4gQXByIDIwMDEsIDIwOjIxOjI3KToKfiMhIHJuPVJvY2h1cyBydD05ODY0MDgxMTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODY0MDgxMTYKZGFzIHdvcnQgIm51ZXR6bGljaGVyIiBpc3QgZG9jaCB6aWVtbGljaCByZWxhdGl2LApzbyBnZXNlaGVuIHNvbGx0ZSBqZWRlciBlaW5lbiBuZXVlcmVuIHByb3plc3NvciB3ZW5pZ2VyIGluIHNlaW5lbQpsZWJlbiBrYXVmZW4gdW5kIGRhcyBnZWxkIGRlciBtZWRpa2FtZW50ZW5wcm9kdWt0aW9uIGZ1ZXIgZGllIDMuIHdlbHQKc3BlbmRlbi4gbWFuIGthbm4gZGFtaXQgZXJzdGF1bmxpY2ggdmllbCBtZWhyIGxldXRlbiBoZWxmZW4uLi4KCi0tLS0tLQpwYXRyeW4sIHdlaXRlciBhbGllbnMgamFnZW5kIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hbCB3YXMgTnVldHpsaWNoZXMuLi4gKFJvY2h1cywgIDQuIEFwciAyMDAxLCAyMDoyNTowMik6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTg2NDA4MjY3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg2NDA4MTE2CkZpbmRlIGljaCBqYSBhdWNoIGJsb2VkLCBkYXNzIGVzIGRhcyBudXIgZnVlciBXaW5kb29mIGdpYnQsCmFiZXIgZGllIG1laXN0ZW4gTGV1dGUgaGFiZW4gQVVDSCBkaWUgR2FtZXNoZWxsIHp1aGF1c2UKKHNvZ2FyIGljaCksIHVuZCBkYW5uIGxhZXNzdCBzaWNoIGVuZGxpY2ggbWFsIHdhcyB2ZXJudWVuZnRpZ2VzCmRhbWl0IGFuc3RlbGxlbi4KClBTOgpBcG8gd2FyIHNjaG9uIGluIGlocmVyIEtpbmRoZWl0IHZvbiBMZXVrYWVtaWUgYmVmYWxsZW4sCkxBTkdFIGJldm9yIHNpZSB6dSByYXVjaGVuIGFuZ2VmYW5nZW4gaGF0LgpCZWkgZGVyIEdlbGVnZW5oZWl0IHVlYnJpZ2VucyBhdWNoIG5vY2htYWwgZWluIFZlcndlaXMgYXVmCgogIHd3dy5ka21zLmRlCgpSb2NodXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1hbCB3YXMgTnVldHpsaWNoZXMuLi4gKEdyaW1tYm9ybiwgIDQuIEFwciAyMDAxLCAyMDoyNjozOSk6Cn4jISBybj1Sb2NodXMgcnQ9OTg2NDA4NzAyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg2NDA4MTE2CldhcywgZXMgZ2lidCBhdWNoIGFuZGVyZSBNZXRob2RlbiBLcmVicyB6dSBrcmllZ2VuIGFscyB6dSByYXVjaGVuPyBEYSBoYWJlIGljaApudW4gamFocmVsYW5nIENoZW1pZSBzdHVkaWVydCwgdW5kIG5pY2h0cyBnZWFobnQuIEphamEsIHNvIGthbm5zIGdlaGVuLi4uCgpHZEEgKGJyYXVjaHQgc2VpbmUgQ1BVIGZ1ZXIgZGVuIGtvcmdhbml6ZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hbCB3YXMgTnVldHpsaWNoZXMuLi4gKFZhbmlvbiwgIDQuIEFwciAyMDAxLCAyMDoyODoxNyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTg2NDA4MjY3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg2NDA4MTE2ClNvcnJ5LCBhYmVyIEtyZWJzIGFscyBSYXVjaGVya3JhbmtoZWl0IGhpbnp1c3RlbGxlbiBpcyBhbGJlcm4uIElzIGRhcyBuZSBuZXVlCkFydCBkZXIgVmVyZHJhZW5ndW5nc3Rha3Rpaz8KClYqLCB3dWVyZGUgcmVjaG5lbiwgYWJlciBXaW4gbGFldWZ0IGhvZWNoc3RlbnMgYW4gU29ubi0gdW5kIEZlaWVydGFnZW4gbWFsIDooCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hbCB3YXMgTnVldHpsaWNoZXMuLi4gKEdsb2luc29uLCAgNC4gQXByIDIwMDEsIDIwOjMzOjMxKToKfiMhIHJuPVBhdHJ5biBydD05ODY0MDg0ODcgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODY0MDgxMTYKV2llIHdhciBkYXMgbmV1bGljaCBub2NobWFsOiBKZXR6dCBoYWIgaWNoIHNjaG9uIGRyZWkgU3R1bmRlbiBsYXVmZW4gbGFzc2VuCnVuZCBpbW1lciBub2NoIGtlaW4gQWxpZW4gZ2VmdW5kZW4/CgpJbiBkZW0gU2lubmUsIEdsb2luKHNvbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFsIHdhcyBOdWV0emxpY2hlcy4uLiAoR2xvaW5zb24sICA0LiBBcHIgMjAwMSwgMjE6MTA6MzYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk4NjQwODI2NyByZz1hbnplaWdlbgp+IyEgdGlkPTk4NjQwODExNgpOYWphLCB3ZW5uIGljaCBtaWNoIHJlY2h0IGVudHNpbm5lIHdhcyBpY2ggZ2VyYWRlIGdlbGVzZW4gaGFiZSwgc3RlaHQgZGEgTGludXgKdmVyc2lvbiBzb29uLiBVbmQgSW50ZWwtZ2VzcG9uc29ydGUgUHJvamVrdGUgc29sbHRlbiBkYXMgR2VsZCBmdWVycyBVbXNldHplbgpoYWJlbiA7KQpBYmVyIG1hbCBlaHJsaWNoIC0gZGFzIFByb2dyYW1tIHNjaHJlaXQgZGFuYWNoLCBkYXMgUkM1LVRlYW0genUgZXJzZXR6ZW4uCkhhYmVuIGRpZSBkYSBlaWdlbnRsaWNoIGVuZGxpY2ggaWhyZW4gU2NobHVlc3NlbCBnZWtuYWNrdD8KCkdsb2luKHNvbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkp1cmlzdGVuIGhpZXI/IChIdW1uaSwgIDQuIEFwciAyMDAxLCAyMTozNToyOSk6CkhpLAoKYXVzIHdpc3NlbnNjaGFmdGxpY2hlbiBHcnVlbmRlbiAoamEsIHdpcmtsaWNoISkgc3VjaGUgaWNoIExldXRlIGltIE1VRCwgZGllCkp1cmEgc3R1ZGllcmVuLgpXZXIgbWFsIFplaXQgaGF0IHNpY2ggbWl0IG1pciB6dSB1bnRlcmhhbHRlbiBtZWxkZSBzaWNoIHBlciBtYWlsIG9kZXIgc28uCgpEYW5rZSBzY2hvZW4uIApIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEp1cmlzdGVuIGhpZXI/IChHbG9pbnNvbiwgIDQuIEFwciAyMDAxLCAyMTozODozOSk6Cn4jISBybj1IdW1uaSBydD05ODY0MTI5Mjkgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODY0MTI5MjkKRnVlciBlaW5lIFNjaG51cHBlcmZyYWdlIG5pbW10IERlaW5lciBmcmV1bmRsaWNoZXIgQW53YWx0IHZvbiBuZWJlbmFuIHNpY2hlcgplcnN0bWFsIG5pY2h0cywgZnVlciBkaWUgZGFyYXVmZm9sZ2VuZGUgWmVpdCBqZSBuYWNoIFF1YWxpdGFldC4KCkdsb2luKHNvbikgZ3JpbnN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEp1cmlzdGVuIGhpZXI/IChab29rLCAgNC4gQXByIDIwMDEsIDIzOjA1OjI2KToKfiMhIHJuPUdsb2luc29uIHJ0PTk4NjQxMzExOSByZz1hbnplaWdlbgp+IyEgdGlkPTk4NjQxMjkyOQpab29rIHJlaWNodCBIdW1uaSB1bmQgZXR3YWlnZW4gSW50ZXJlc3NlbnRlbiBzY2hvbiBtYWwgdm9yc29yZ2xpY2ggZWluCnBhYXIgVG9tYXRlbi4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlZ2VuYm9nZW4gKEJlbmRlaWdpZCwgIDUuIEFwciAyMDAxLCAxNjoxNTo1NCk6Cn4jISBvbj1HbG9pbnNvbiBvdD05ODY0MjEyMTEgb2c9YWxsZ2VtZWluZXMKUkIgaXN0IHdlZ2VuIE9TLVByb2JsZW1lIG1pdCBVbHRyaXggZG93bi4gTGVpZGVyIGtlaW5lIEFic2NoYWV0enVuZyB3aWUgbGFuZ2UKR2F3YWluIHp1ciBBbnBhc3N1bmcgYXVmIE1pcHMtTGludXggYnJhdWNoZW4gd2lyZC4KCkxlb25pZGFzQFJCCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFsIHdhcyBOdWV0emxpY2hlcy4uLiAoR2xvaW5zb24sICA5LiBBcHIgMjAwMSwgMTc6Mjk6MjIpOgp+IyEgcm49Um9jaHVzIHJ0PTk4NjQwODExNiByZz1hbnplaWdlbgp+IyEgdGlkPTk4NjQwODExNgpJY2ggbGVnZSB6d2VpIGFuZGVyZSBudWV0emxpY2hlcmUgUHJvZ3JhbW1lIGFscyBLdWVoZSB1bmQgQWxpZW5zIGRyYXVmOgogaHR0cDovL3d3dy5zdGFuZm9yZC5lZHUvZ3JvdXAvcGFuZGVncm91cC9Db3NtLwogaHR0cDovL2dhaC5zdGFuZm9yZC5lZHUvCgpTdGFuZm9yZCB3aXJkIGF1Y2ggc2ljaGVybGljaCBuaWNodCBpcmdlbmR3YW5uIHNvdmllbCBQcm9maXQgbWFjaGVuIHdvbGxlbiB3aWUKZXMgVUQgZ2FueiBvZmZlbnNpY2h0bGljaCBtYWwgdm9yaGF0IC4uLiA6KQoKR2xvaW4oc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFsbG91dCBUYWN0aWNzIC0gQnJvdGhlcmhvb2Qgb2YgU3RlZWwuLi4gKE1vbnRhbnVzLCAgOS4gQXByIDIwMDEsIDIxOjE1OjUxKToKCi4uLiB6dSB2ZXJzY2hlbmtlbiwgdW5iZW51dHp0LgpOYWphIG5pY2h0IGdhbnosIGFiZXIgYmVpbmFoZTogaXN0IGltIFNjaG1hcnJuLVRocmVhZCBhbHMgUHJlaXMgYXVzZ2VzZXR6dC4KClp1IFJpc2lrZW4gdW5kIExlYmVyd2lya3VuZ2VuIGZyYWdlbiBTaWUgYml0dGUgaWhyZW4gQW5hdG9sIG9kZXIgQXBvdGhla2VyIHVuZApsZXNlbiBTaWUgZGllIFNjaG1hcnJuLUJlaWxhZ2UuCgotTW9udGFudXMgKGtlaW5lIFplaXQgenVtIENvbXB1dGVyc3BpZWxlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnRlbG5ldCBuZW1lc2lzLmRlIDIwMDAgKEppbWRpZ3JpeiwgMTEuIEFwciAyMDAxLCAyMToyNToxMik6Ck1vaW4sCgpmYWxscyBlcyBub2NoIGtlaW4gYWx0ZXIgSHV0IGlzdCwgdW5kIGltIE1VRApub2NoIGdlbnVlZ2VuZCBSZW50bmVyLCBkaWUgc2ljaCBub2NoIGFuIGRpZSBhbHRlbgpaZWl0ZW4gZXJpbm5lcm4sIGRhbm4gc29sbHRlIGRhcyBzdWJqZWN0IHJlaWNoZW4uCgpOb2NoIGVpbmUgaW5mbzogY29tcGxldGVseSByZXN0b3JlZC4gOikKCkNJYW8sCiBKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogdGVsbmV0IG5lbWVzaXMuZGUgMjAwMCAoQm9pbmcsIDEyLiBBcHIgMjAwMSwgMTA6MTk6NDEpOgp+IyEgcm49SmltZGlncml6IHJ0PTk4NzAxNzExMiByZz1hbnplaWdlbgp+IyEgdGlkPTk4NzAxNzExMgpBcmdoISBJY2ggaGFiIG1laW4gUGFzc3dvcnQgdmVyZ2Vzc2VuISA6KQogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpoYXJkd2FyZSBzdWNoZSAoSGlydWRvLCAxOC4gQXByIDIwMDEsIDA5OjE3OjI1KToKd2FzIGVtcGZpZWhsdCBzaWNoIGRlbm4gbW9tZW50YW4gYWxzIHByb3plc3NvciB1bmQgbWFpbmJvYXJkLiBtdXNzIGtlaW4KaGlnaC1lbmQga3JhbSBzZWluLiBhYmVyIGRlciBwMTMwIHJlaWNodCBuaW1tZXIgOikgdm9yYXVzc2V0enVuZ2VuIGZ1ZXIgZGVuCm1laXN0ZW4ga3JhbSBzaW5kIHAyIDMwMC4gaWNoIGRhY2h0ZSBkYSBhbiBLNyA4MDAtMTAwMCwgZmVobHQgbm9jaCBlaW4KdmVybnVlbmZ0aWdlcyBib2FyZC4KCmVtcGZlaGx1bmdlbiBiaXR0ZSBwZXIgbWFpbCBhbiBtaWNoIG9kZXIgaW4gZGllc2VyIHJ1YnJpawpkYW5rZQoKZGFzIGVnZWxjaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogaGFyZHdhcmUgc3VjaGUgKFJpa3VzLCAxOC4gQXByIDIwMDEsIDEwOjExOjI4KToKfiMhIHJuPUhpcnVkbyBydD05ODc1NzgyNDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKaGFldHRlIG5lbiBhbWQgazZpaSA1MDBtaHogbWl0IG5lbiBwYXNzZW5kZW4gYm9hcmQgKGJlemVpY2hudW5nIGhhYgppY2ggZ3JhZGUgbmljaHQgaW0ga29wZikgdW5kIDEyOG1iIHNwZWljaGVyIHp1IGJpZXRlbikuCgpyaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBoYXJkd2FyZSBzdWNoZSAoUmlrdXMsIDE4LiBBcHIgMjAwMSwgMTA6MjA6MTkpOgp+IyEgcm49UmlrdXMgcnQ9OTg3NTgxNDg4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTc4MjQ1CnNvLCBtb2JvIHVuZCBjcHUgdW5kIHNwZWljaGVyIHNpbmQgd2VnIDopIGhhYmUgbnVuIG5vY2ggbmUgd2ludHYgKGRpZQplaW5mYWNoZSB2ZXJzaW9uKSB1bmQgbmUgZmx5dmlkZW8gaWkgenUgYmlldGVuLgoKcmlrdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGhhcmR3YXJlIHN1Y2hlIChSaWt1cywgMTguIEFwciAyMDAxLCAxMDoyMTowOCk6Cn4jISBybj1SaWt1cyBydD05ODc1ODIwMTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKdW5kIG5vY2ggbmVuIGNkLWRyaXZlLCA0MCBvZGVyIDUwZmFjaCBpc3QgZXMuCgpyaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogaGFyZHdhcmUgc3VjaGUgKFJpa3VzLCAxOC4gQXByIDIwMDEsIDEwOjI2OjE2KToKfiMhIHJuPVJpa3VzIHJ0PTk4NzU4MjA2OCByZz1hbnplaWdlbgp+IyEgdGlkPTk4NzU3ODI0NQpnaW5nIGF1Y2ggd2VnIHdpZSB3YXJtZSBzZW1tZWxuIDopCgpyaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogaGFyZHdhcmUgc3VjaGUgKFBhdHJ5biwgMTguIEFwciAyMDAxLCAxMDozMDoxMCk6Cn4jISBybj1SaWt1cyBydD05ODc1ODIzNzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKd2VyIHdvbGx0ZSBkZW5uIGRlbiBrcmFjaCBlaW5lciBtaXR0ZWxncm9zc2VuIGZsdWd6ZXVndHVyYmluZSBpbiBzZWluZW0KemltbWVyIGdlbmllc3Nlbj8gOykKCi0tLS0tLQpwYXRyeW4sIGltbWVyIGZyb2ggdWViZXIgbWF4aW1hbCAzMnggOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGhhcmR3YXJlIHN1Y2hlIChSaWt1cywgMTguIEFwciAyMDAxLCAxMDozNDo0MSk6Cn4jISBybj1SaWt1cyBydD05ODc1ODIwMTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKc2V1ZnosIHNjaG9uIHdpZWRlciB3YXMgd2VjaC4gbnVuIGlzdCBub2NoIGRpZSBmbHl2aWRlbyBpaSB6dWhhYmVuIDopCgpyaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmFkIEhvbWJ1cmcgLSBnaWJ0cyBkYSBNdWRkZXIgb2RlciBXb2hudW5nZW4/IChSb25kYSwgMTguIEFwciAyMDAxLCAxMTo1MjoxOCk6CkhpLAoKYXVzbmFobXN3ZWlzZSBlY2h0IG1hbCBmdWVyIG1pY2ggOy0pCkRhJ3MgbWljaCB6dW0gMS44LiBuYWNoIEhlc3NlbiwgZ2VuYXVlciBCYWQgSG9tYnVyZyAoMjAga20gbm9lcmRsaWNoIHZvbgpGcmFua2Z1cnQvTWFpbikgdmVyc2NobGFlZ3Q6IGdpYnRzIGRhIGludGVsbGlnZW50ZXMgTGViZW4/IEFlaC4uLiBNdWRkZXI/ICduZW4KRnJhbmtmdXJ0ZXIgU3RhbW10aXNjaD8KVW5kIGRhIGljaCBkYSBhdWNoIGlyZ2VuZHdvIHBlbm5lbiBtdXNzOiBGYWxscyB6dWZhZWxsaWcgZGEgZG9jaCB3ZXIgd29obnQgLQp3ZW5uIGplbWFuZCB2b24gRXVjaCB1ZWJlciBlaW5lIG5ldHRlIDItWmltbWVyLVdvaG51bmcgc3RvbHBlcnQsIGRpZSBuaWNodCBnYXIKenUgd2VpdCB3ZWcgdm9uIEJhZCBIb21idXJnIGlzdCwgd3VlcmRlIGljaCBtaWNoIHJpZXNpZyB1ZWJlciBlaW5lIE1haWwgYW4Kcm9uZGFAbWcubXVkLmRlIGZyZXVlbiA7LSkKClJvbmRhICpvbiB0aGUgcm9hZCBhZ2FpbioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCYWQgSG9tYnVyZyAtIGdpYnRzIGRhIE11ZGRlciBvZGVyIFdvaG51bmdlbj8gKFd1cnplbCwgMTguIEFwciAyMDAxLCAxMjowMDoxMCk6Cn4jISBybj1Sb25kYSBydD05ODc1ODc1Mzggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1ODc1MzgKdGFnc3VlYmVyIGdpYnRzIGluIGJhZCBob21idXJnIG1pY2ggOikKc3RhbW10aXNjaCBnaWJ0cyBpbiBkYXJtc3RhZHQgKDUwIGttLCBoYWxiZSBzdHVuZGUgYTUpIG1laHIgb2RlciB3ZW5pZ2VyCnJlZ2VsbWFlc3NpZywgaW4gZnJhbmtmdXJ0IGVoZXIgc3BvcmFkaXNjaC4Kd29obnVuZ2VuIGhpZXIga2VubmUgaWNoIG5pY2h0LCBkaWUgYTUgaXN0IGphIHJlY2h0IG5haGUuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogaGFyZHdhcmUgc3VjaGUgKEdyaW1tYW4sIDE4LiBBcHIgMjAwMSwgMTg6MDc6MDgpOgp+IyEgcm49UmlrdXMgcnQ9OTg3NTgxNDg4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTc4MjQ1CkhtbW0gLi4uIFJpa3VzIC4uLiBrbGluZ3QgZ3V0IC4uLiB3YXMgaGFzdGUgc28gYW4gS29obGUgZnVlciBlcndhcnRldC8KZWluZ2VwbGFudCA/Pz8KCkdyaW1NYW4gLi4uIGdyYWQgd2llZGVyIG1hbCBtaXQgbmVtIGFsdGVuIEVETy1Cb2FyZCBhbSB2ZXJ6d2VpZmVsbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogaGFyZHdhcmUgc3VjaGUgKEdyaW1tYW4sIDE4LiBBcHIgMjAwMSwgMTg6MDc6NDcpOgp+IyEgcm49UmlrdXMgcnQ9OTg3NTgyMDE5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTc4MjQ1Cmd1dCBkYW5uIGhhbHQgbmljaCAuLi4gbmFleHRlcyBNYWwgbGVzIGljaCBlcnN0IHdlaXRlciA6KQoKR3JpbU1hbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogaGFyZHdhcmUgc3VjaGUgKEdyaW1tYW4sIDE4LiBBcHIgMjAwMSwgMTg6MDk6MzgpOgp+IyEgcm49UGF0cnluIHJ0PTk4NzU4MjYxMCByZz1hbnplaWdlbgp+IyEgdGlkPTk4NzU3ODI0NQpBbHNvIC4uLiBtZWluIEF1ZnJ1ZiBhbiBldWNoIE1pdE11ZGRlciAuLi4gd2VubiBub2NoIHdlciBuZW4gQm9hcmQgbmVic3QgQ1BVCnJ1bWxpZWdlbiBoYXQgLi4uIHJlbGF0aXYgZWdhbCB3YXMgLi4uIGhhdXB0c2FjaGUgZnVuenQgLi4uIGJpbiB1ZWJlciBqZWRlcwpBbmdlYm90IGZyb2gKCkdyaW1NYW4gLi4uIHdpbGwgc2VpbmUgRDItU29yYyB3aWVkZXIgc3BpZWxlbiAuLi4gYWJlciBuaWNoIG1pdCAzMiBNQiBFRE8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IGhhcmR3YXJlIHN1Y2hlIChKYW1lc29uLCAxOC4gQXByIDIwMDEsIDE4OjEwOjM3KToKfiMhIHJuPUdyaW1tYW4gcnQ9OTg3NjEwMTc4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTc4MjQ1CmljaCBoYWV0dCBkYSBub2NoIGVpbmVuIDQ4NiBtaXQgMTAwIE1IeiB1bmQgNjQgTUIgRmFzdHBhZ2UtUkFNIHp1IGJpZXRlbiAqZyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IGhhcmR3YXJlIHN1Y2hlIChHcmltbWFuLCAxOC4gQXByIDIwMDEsIDE4OjExOjMyKToKfiMhIHJuPUphbWVzb24gcnQ9OTg3NjEwMjM3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTc4MjQ1CmFsc28gZHUgdmVyd2VjaHNlbHN0IGRhIHdhcyAuLi4gNDg2LTEwMCAgaW4gVmVyYmluZHVuZyBtaXQgRDIgdW5kIFNvcmMgaXMKZGVmaW5pdGl2IE5JQ0hUIGJyYXVjaGJhciEKCkdyaW1NYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IGhhcmR3YXJlIHN1Y2hlIChKYW1lc29uLCAxOC4gQXByIDIwMDEsIDE4OjEyOjA2KToKfiMhIHJuPUdyaW1tYW4gcnQ9OTg3NjEwMjkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTc4MjQ1CmljaCBkYWNodCBoYWx0IGljaCBiaWV0J3MgZWluZmFjaCBtYWwgYW4gKmtpY2hlcioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IGhhcmR3YXJlIHN1Y2hlIChNb250YW51cywgMTguIEFwciAyMDAxLCAxODoxMjowOCk6Cn4jISBybj1HcmltbWFuIHJ0PTk4NzYxMDI5MiByZz1hbnplaWdlbgp+IyEgdGlkPTk4NzU3ODI0NQpLYXVmdCBldWNoIGFsbGUgbmVuIE1hYy4gRGFubiBoYWJ0IGlociBkYXMgZ2FuemUgUHJvYmxlbSBuaWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBoYXJkd2FyZSBzdWNoZSAoR3JpbW1hbiwgMTguIEFwciAyMDAxLCAxODoxNDoyNSk6Cn4jISBybj1Nb250YW51cyBydD05ODc2MTAzMjggcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKSG1tbSAuLi4gZGEgaGFiIGljaCBhYmVyIGRhcyBQcm9ibGVtLCBkYXMgZGFzIG1laW5lIG1vbWVudGFuZW4gZmluYW56aWVsbGVuCk1vZWdsaWNoa2VpdGVuIGVpbiBrbGVpbiB3ZW5pZyB1ZWJlcnN0ZWlndCAuLi4gTmFqYSAuLi4gbWFsIHNlaGVuIHdhcyBpY2ggc28Kc2NoYWZmZSA6KQoKR3JpbU1hbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCYWQgSG9tYnVyZyAtIGdpYnRzIGRhIE11ZGRlciBvZGVyIFdvaG51bmdlbj8gKEFyaywgMTguIEFwciAyMDAxLCAxOTozOToyNyk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTg3NTg4MDEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg3NTg3NTM4CldvIHdpciBnZXJhZGUgYmVpbSBUaGVtYSBzaW5kIC4uLiB3b2xsbiB3aXIgbWFsIHdpZWRlcj8gU2NocmVpYnN0IER1IHdhcz8gOykKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogaGFyZHdhcmUgc3VjaGUgKEdub21lLCAxOC4gQXByIDIwMDEsIDIxOjQzOjQzKToKfiMhIHJuPUhpcnVkbyBydD05ODc1NzgyNDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKTUI6IEVDUyBLN1ZaQSwgVklBIEtUMTMzLCBiaXMgMSw1IEdIeiwgRHVyb24vVEJpcmQsIDE4MCwtCkNQVTogSzctQiA4MDAsIDI3MCwtCnVuZCB3ZW5uIGR1IGdyYWRlIGRhYmVpIGJpc3QsIGxhc3MgZGlyIG5lbiAyNTYgTUIgUkFNLVJpZWdlbCAoUEMxMzMpIGZ1ZXIKMTUwLC0gaGludGVyaGVyd2VyZmVuLiBQQzEzMyB3aXJkIHZvbiBkZW0gTUIgdW50ZXJzdHVldHp0IHVuZCBhdXRvbWF0aXNjaAplcmthbm50LgphbGxlcyBiZWkgSyZNLgoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IGhhcmR3YXJlIHN1Y2hlIChNZW5hY2UsIDE5LiBBcHIgMjAwMSwgMDQ6MDM6MzMpOgp+IyEgcm49SmFtZXNvbiBydD05ODc2MTAyMzcgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKSG0sIGlzdCBkZXIgNDg2IG1pdCBQYXNzaXZrdWVobGVyPyBkYW5uIHd1ZXJkIGljaCBkZW4gZ2xhdHQgbmVic3QgU3BlaWNoZXIgdW5kCk1CIG5laG1lbi4KCk1lbmFjZSAoc2ljaCBqZXR6dCBkb2NoIG1hbCBuZW4ga2xlaW5lbiBMaW51eC1FaW53YWhsLVNlcnZlciBiYXN0ZWxuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IGhhcmR3YXJlIHN1Y2hlIChKYW1lc29uLCAxOS4gQXByIDIwMDEsIDE0OjA2OjE5KToKfiMhIHJuPU1lbmFjZSBydD05ODc2NDU4MTMgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODc1NzgyNDUKbmVpbiBpc3NlciBuaWNodC4KKmxhY2gqIGljaCBoYWV0dCBkYXMgVGVpbCBpbnp3aXNjaGVuIHNjaG9uIG1laHJmYWNoIHZlcmtsb3BwZW4ga29lbm5lbiwgbnVyCmhhYiBpY2ggZ2FueiBlaW5mYWNoIG5vY2gga2VpbiBHZWxkIGZ1ZXIgZWluZW4gbmV1ZW4gUmVjaG5lciB1ZWJyaWcgOykgSkEgZGVyCmlzdCBhbGxlbiBFcm5zdGVzIGltbWVyIG5vY2ggbWVpbiBIYXVwdC1SZWNobmVyLgpNYWwgZ2FueiBkYXZvbiBhYmdlc2VoZW4sIGRhc3MgaWNoIGlobiBzbyB3aWUgZXIgaXN0IHNwYWV0ZXIgc2VsYmVyIGdhbnogZ3V0CmJyYXVjaGVuIGthbm4uCkZhbGxzIG5pY2h0LCBoYWJ0IElociBtaWNoIGluendpc2NoZW4gZXJtdXRpZ3QsIGRlbiBSZWNobmVyIGhpZXIgbm9jaG1hbAphbnp1YmlldGVuICpnKgoKakFtZXNvbiwgZ2xhdWJ0IGdhciBuaWNodCwgd2FzIGVpbmVtIGhpZXIgbm9jaCBhbGxlcyBhdXMgZGVuIEhhZW5kZW4gZ2VyaXNzZW4Kd2lyZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaHRtbC1kZXNpZ25lciBnZXN1Y2h0IChIaXJ1ZG8sIDIzLiBBcHIgMjAwMSwgMTE6NTE6MjIpOgplcyBnZWh0IHVtIGRpZSB1bXNldHp1bmcgZWluZXMgSFAga29uemVwdGVzLgp3aXJkIHJlbCBuaWVkcmlnIGJlemFobHQsIHdlaWwgZnVlciBuZW4gZWluZ2V0cmFnZW5lbiB2ZXJlaW4uIG5pY2h0CnZvbGxzdGFlbmRpZyBlaHJlbmFtdGxpY2gsIGFiZXIgbWl0IGdlcmluZ2VuIG1pdHRlbG4gLi4uCndlciB6ZWl0IHVuZCBsdXN0IGRhenUgaGF0LCBzY2hyZWliZSBtaXIgbmUgbWFpbCwgZGFubiBnaWJ0IGVzIGdlbmF1ZXJlIGluZm9zCgpzIGVnZWxjaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTYW5kdGlnZXIgKEdyaW1tYm9ybiwgIDcuIE1haSAyMDAxLCAwMToxNToyNCk6Cn4jISBvbj1CYW1iaSBvdD05ODkxOTA4NTAgb2c9c3VjaGUtYmlldGUKSWNoIHN1Y2hlIGVpbmVuIG5ldHRlbiBNaXRzcGllbGVyLCBkZXIgZGVtIGFybWVuIFNhbmR0aWdlciBpbiBtZWluZXIKQWJ3ZXNlbmhlaXQgc2Nob2VuZSBHdXRlLU5hY2h0LUdlc2NoaWNodGVuIGF1cyBkZW0gTW9yZ2VuZ3JhdWVuIGVyemFlaGx0LgpEaWUgR2VzY2hpY2h0ZW4gc29sbHRlbiB6d2lzY2hlbiAxMCB1bmQgMjAgTWludXRlbiBsYW5nIHNlaW4gdW5kIG1vZWdsaWNoc3Qgc28KZ2VzdGFsdGV0IHNlaW4sIGRhc3MgZGVyIFNhbmR0aWdlciBkYXJhdWZoaW4gZWluc2NobGFmZW4ga2Fubi4KWnUgZXJ6YWVobGVuIHdhZXJlbiBkaWVzZSBHZXNjaGljaHRlbiB6d2lzY2hlbiAyMyBVaHIgdW5kIDE6MzAgVWhyLCBNRy1aZWl0LApkaWUgc2ljaCB1bSAxIGJ6dy4gMiBTdHVuZGVuIChTb21tZXJ6ZWl0KSB2b24gZGVyIEdNVCB1bnRlcnNjaGVpZGV0LiAoRGllCk1HLVplaXQgaXN0ICJ2b3IiIGRlciBHTVQpCkFscyBEYW5rIGVyaGFlbHQgZWluIFNwaWVsZXIgbWl0IFNwaWVsZXJjaGFyYWt0ZXItWnVob2VyZXJuIGVpbmVuCmhhbmRnZXNjaHJpZWJlbmVuIEdlc2NoaWNodGVuZXJ6YWVobGVyLVN0cm9odXQqLgpJbnRlcmVzc2VudGVuIG1lbGRlbiBzaWNoIGJpdHRlIGRpcmVrdCB6dSBnZWdlYmVuZXIgWmVpdCBiZWltIFNhbmR0aWdlci4KTWZHLCBCYW1iaS4KCiogU29mZXJuIGRpZXMgdm9uIGhvZWhlcmVyIFN0ZWxsZSBnZW5laG1pZ3Qgd2lyZC4KClBTOiBEaWVzZW4gQXJ0aWtlbCBiaXR0ZSBfbmljaHRfIG5hY2ggc2NobWFycm4gb2RlciBtZWdhc2NobWFycm4gdmVybGVnZW4uCkRhbmtlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNhbmR0aWdlciAoR3JpbW1ib3JuLCAgNy4gTWFpIDIwMDEsIDAxOjE2OjE4KToKfiMhIHJuPUdyaW1tYm9ybiBydD05ODkxOTA5MjQgcmc9YW56ZWlnZW4KfiMhIHRpZD05ODkxOTA5MjQKS2VpbmUgU29yZ2UsIGRlbiBoYWJlIGljaCBuaWNodCBuYWNoICpzY2htYXJybiwgc29uZGVybiBhbnplaWdlbiB2ZXJsZWd0LCB3bwplciBlaGVyIGhpbmdlaG9lcnQuIFZpZWxsZWljaHQgaXJyZSBpY2ggbWljaCwgYWJlciBkYW5uIGlzdCBkYXJhbiBkaWUgVWhyemVpdApzY2h1bGQuLi4gOy0pCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNhcmtvbiBpc3Qgbm9jaCB6dSBoYWJlbiAoQmVuZGVpZ2lkLCAgNy4gTWFpIDIwMDEsIDE0OjM1OjA3KToKfiMhIG9uPUVsaXphYmV0aCBvdD05ODkwOTU3Nzggb2c9YWxsZ2VtZWluZXMKQWxzbywgaGllciBlaW5lIEtvbnRha3RhbnplaWdlIGltIE5hbWVuIHZvbiBTYXJrb24uCkVyIHN1Y2h0IGVpbmUgbGllYmUsIGtudWZmaWdlIE11ZGRlcmluLCBlZ2FsIHdlbGNoZXIgUmFzc2UuClNpZSBtdXNzIGdlcm4gbWV0emVsbiwgZWluZW4gaG9laGVyZW4gUmFuZyBoYWJlbiBhbHMgbHZsIDQgdW5kIGlobiBnZXJuCnN0dW5kZW5sYW5nIHZvbSBxdWVzdGVuIGFiaGFsdGVuLgpXZWl0ZXJlIEFuZm9yZGVydW5nZW4gZ2lidCBlcyBlcnN0bWFsIG5pY2h0LgpCZXdlcmJ1bmdzbWFpbHMgb2RlciBhdWNoIHRtcyBzaW5kIGdlcm4gZ2VzZWhlbiBhbiBTYXJrb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2Fya29uIGlzdCBub2NoIHp1IGhhYmVuIChCZW5kZWlnaWQsICA3LiBNYWkgMjAwMSwgMTQ6Mzc6MDgpOgp+IyEgb249U2Fya29uIG90PTk4OTE1NTM2MyBvZz1hbGxnZW1laW5lcwp+IyEgcm49RWxpemFiZXRoIHJ0PTk4OTA5NTc3OCByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTk4OTA5NTc3OApFbnRnZWdlbiBhbGxlbiBhbmRlcmVuIEFydGlrZWwgc3VjaGUgaWNoLCBTYXJrb24gS2FlbXBmZXIgZGVzIEtvcnUgVHNjaGFrYXIKU3RydXYsIGtlaW5lIGxpZWJlLCBrbnVmZmlnZSBNdWRkZXJpbi4gQWJnZW5laWd0IGJpbiBpY2ggbmF0dWVybGljaCBuaWNodCwgbnVyCnNvIG5vZXRpZyBpc3QgZXMgbnVuIGF1Y2ggbmljaHQsIGRhc3MgaWNoIGVpbmUgS29udGFrdGFuemVpZ2UgYXVmZ2ViZW4gbXVzcy4KSWNoIGJpdHRlIGFsc28gZGVuIEFydGlrZWwgdm9uIEVsaXphYmV0aCwgZGVyIGVpbmRldXRpZyBpbiBnZWlzdGlnZXIKVW1uYWNodHVuZyBnZXNjaHJpZWJlbiB3dXJkZSB6dSBlbnRzY2h1bGRpZ2VuIHVuZCBncnVlc3NlIGhpZXJtaXQgYWxsZSBsaWViZW4sCmtudWZmaWdlbiBNdWRkZXJpbm5lbiwgZGllIHNpY2hlcmxpY2ggZW50YWV1c2NodCBzZWluIHdlcmRlbiAqZ2cqLiBFaW4gUHJvc2l0CmF1ZiBkYXMgU3RydXYhIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQhIChLb2VuaWcsIDEwLiBNYWkgMjAwMSwgMTY6MzM6MDIpOgoKSWNoIGhhYmUgZGllIEVocmUgbWVpbmUgVmVybWFlaGx1bmcgbWl0IGRlciBLb2VuaWdpbiBiZWthbm50enVnZWJlbi4KRGllIFRyYXV1bmcgd2lyZCBoZXV0ZSBnZWdlbiAyMTowMCBVaHIgTVNaIChNb3JnZW5ncmF1ZW4gU3RhbmRhcmR6ZWl0KQp2b24gZGVyIERhbWUgS2FsbGlvcGUgdm9yZ2Vub21tZW4uIFN0YXR0ZmluZGVuIHdpcmQgc2llIGltIFdvbGtlbnNjaGxvc3MKdWViZXIgS2V0b3MnIFdpZXNlLgpWZXJ3YW5kdGUsIEZyZXVuZGUgdW5kIGRhcyByZXN0bGljaGUgVm9sayBzaW5kIGhlcnpsaWNoIGVpbmdlbGFkZW4gZGVyCmZlaWVybGljaGVuIFplcmVtb25pZSBiZWl6dXdvaG5lbi4gS29tbWV0IHphaGxyZWljaCB1bmQgaW4gZ3V0ZXIgU3RpbW11bmcuCgpTdGFuZGFyZG1hZXNzaWdlIEFrdGl2aXRhZXRlbiB3aWUgZGFzIFByaWVzdGVybWV0emVsbiBiaXR0ZSBpY2ggenUKdW50ZXJsYXNzZW4uCgpEZXIgS29lbmlnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9jaHplaXQhIChIaWdodCwgMTAuIE1haSAyMDAxLCAxNjo0OTo0NSk6Cn4jISBybj1Lb2VuaWcgcnQ9OTg5NTA1MTgyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTg5NTA1MTgyCmhtbSB3YXIgZGFzIG5lIGVpbmxhZHVuZyB6dW5tIHByaWVzdGVya2lsbGVuID8KCmhpZ2h0IGFuZGVybiBsZXV0ZW4gZGFzIHdvcnQgaW0gbXVuZGUgcnVtZHJlaGVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQgKEdyaW1tYm9ybiwgMTQuIE1haSAyMDAxLCAxOToyODoyNyk6Cn4jISBvbj1NaWthZ2Ugb3Q9OTg5ODYxMjgxIG9nPWFsbGdlbWVpbmVzCkluIGRlciBVZWJlcnpldWd1bmcgZ2VnZW5zZWl0aWdlciBBYm5laWd1bmcgd2VyZGVuIEVsYWluZSB1bmQgaWNoIHVucyBtb3JnZW4KZ2VnZW4gMjEgMzBoIHp1bSBBbHRhciBkZXIgRmVpbmRzZWxpZ2tlaXQgZnVlaHJlbiB1bmQgdW5zIGV3aWdlbiBIYXNzCnNjaHdvZXJlbi4KRGllIGxldHp0ZW4gVGFnZSBkZXIgVmVyd2lycnVuZyB0cmllYmVuIHVucyB6dSBkZW0gU2Nocml0dCEgTW9lZ2UgTm9ubmUgdW5zCmRlbiBzY2h3YXJ0ZW4gU2VnZW4gYXVmIGltbWVyIGVpbmJyZW5uZW4uCkRhaGVyIGxhZGVuIHdpciBhdWNoIGhldXRlIGFiZW5kIHVtIDIxIDMwaCBmcmV1ZGlnIHp1bSBQb2x0ZXJhYmVuZCBlaW4uIFdpcgpkZW5rZW4sIGRpZSBBcmVuYSBpc3QgZWluIGdlZWlnbmV0ZXIgT3J0Li4uCk1paywgZmVpbmRzZWVsaWcgRWxhaW5lIGFuc3RhcnJlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnZlcmxvcmVuLWdlZnVuZGVuIChHcmltbWJvcm4sIDE1LiBNYWkgMjAwMSwgMTI6MDk6NTIpOgp+IyEgb249S2FzcGFyIG90PTk4OTkyMDU1NCBvZz1hbGxnZW1laW5lcwpIaW8sCmViZW4gaGFiZSBpY2ggZWluIG5pY2h0IGdhbnogdW53aWNodGlnZXMgSXRlbSBpbiBkZXIgS2xlcmlrZXJnaWxkZSBnZWZ1bmRlbi4KV2VyIGVzIGRhIHZlcmxvcmVuIGhhdCB3ZWlzcyBqYSB3YXMgZXMgaXN0ICh1bmQgc3VjaHQgc2ljaGVyIHNjaG9uIGRhbmFjaCkuCkt1cnplIG1haWwgb2RlciB0ZWlsZSBtaXQgcmVpY2h0LgpHcnVzcywgVmVjdG9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogdmVybG9yZW4tZ2VmdW5kZW4gKE1vcmdvdGgsIDE1LiBNYWkgMjAwMSwgMTI6Mzc6MTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk4OTkyMTM5MiByZz1hbnplaWdlbgp+IyEgdGlkPTk4OTkyMTM5MgpkYSBub25uZSBudW4gbWVpbmUgImZyZXVuZGluIiBpc3QsIHd1ZXJkIGljaCBzYWdlbiBkdSBoYXN0IHNlaW5lIGVpZXIgZ2VmdW5kZW4KOy0pCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RlbGxlbmFuZ2Vib3QgKE1vcmdvdGgsIDE3LiBNYWkgMjAwMSwgMTI6MjY6NDApOgoKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gQSBDIEggVCBVIE4gRyAhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBXaXIgc3RlbGxlbiBlaW46CgogIEVpbmUgSnVuZ21hZ2llcmluIC8gRWluZW4gSnVuZ21hZ2llciAgCgogIGZ1ZXIgZGVuIEJlcmVpY2g6IFJlbm92aWVydW5nIHZvbiBEZXRhaWxzIC8gCiAgICAgICAgICAgICAgICAgICAgRW50ZmVybmVuIHZvbiBUeXBvcwogICAgICAgICAgICAgICAgICAKICBCaXN0IER1IGZyZXVuZGxpY2gsIHdpc3NiZWdpZXJpZywgdGVhbWZhZWhpZz8KICBIYXN0IER1IFplaXQsIGFsdGUgS29uemVwdGUgenUgcG9saWVyZW4gdW5kIHdpZWRlciBhdWYgSG9jaGdsYW56IHp1CiAgYnJpbmdlbj8gIFNjaGV1c3QgRHUgbmljaHQgZGF2b3IgYWx0ZW4gQ29kZSB1bXp1c3RydWt0dXJpZXJlbiB1bmQgCiAgRGVpbmUgZWlnZW5lbiBJZGVlbiBlaW56dWJyaW5nZW4/IEhhc3QgRHUgZ2VudWcgUGhhbnRhc2llIHVtCiAgV2llc2VuLSAsIFdhbGQtIHVuZCBHZWJpcmdzZ2ViaWV0ZSBtaXQgd2l0emlnZW4gQmVzY2hyZWlidW5nZW4KICB6dSBzcGlja2VuPwogIAogIERhbm4gYmlzdCBEdSBiZWkgdW5zIHJpY2h0aWcsIGltIHZlcmxvcmVuZW4gTGFuZC4KICAKICBQcm9ncmFtbWllcmVyZmFocnVuZyBpc3QgZXJ3dWVuc2NodCwgYWJlciBuaWNodCB6d2luZ2VuZCBub3R3ZW5kaWcuCiAgQXVmIFd1bnNjaCB3aXp6ZW4gd2lyIERpY2ggYXVjaCBwZXJzb2VubGljaC4KICAKCiAgQmV3ZXJidW5nZW4gYml0dGUgc2NocmlmdGxpY2ggbWl0IExpY2h0YmlsZCB1bmQgTGViZW5zbGF1ZiBhbjoKICAKICBNb3Jnb3RoQG1nLm11ZC5kZSBvZGVyIE5vbm5lQG1nLm11ZC5kZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN0ZWxsZW5hbmdlYm90IChTb2xteXIsIDE3LiBNYWkgMjAwMSwgMTM6MjE6MDgpOgp+IyEgcm49TW9yZ290aCBydD05OTAwOTUyMDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTAwOTUyMDAKSG1tLCBlaW5lbiBMZWJlbnNsYXVmID8/PyBPaywgLi4uCgpJY2ggd3VyZGUgZ2Vib3Jlbi4gTWl0IDkgYmVrYW0gaWNoIG1laW5lbiBlcnN0ZW4gQ29tcHV0ZXIuIE1pdCAxNSBiZWdhbm4KaWNoIHp1IG11ZGRlbi4KCkhtbSwgdW5kIGVpbiBMaWNodGJpbGQgPz8/IE9rLCAuLi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fSQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz0gIHwgICNcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8uX18tfCBfXyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwvIF9cXy9fIFx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoIF9fIFxfXykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fICgoKCkpKSkpKCkpIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCcgIHwoKSkpKSkoKCgoKXwjIGAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgfF4pKSgpKSkpKShefCAgID1cCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAvXnZeKCgpKSgpKCl2XlwnICAuXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfXy4nXnZedl4pKSkpKSledl52YC5fX3wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9fICcgXF9fX19fXygoKV9fX19fKCAgIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLi4tJyAgIF8vL19fX19fW3h4eF1fX19fX1wuLXwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8sXyNcLj0tJyAvdl52XnZedl52XnZedl52XnwgX3wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwpfCkgICAgICB2XnZedl52XnZedl52XnZednwgX3wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAgICAgICA6dl52XnZedl52XnZgLi0nIHwjICBcLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICAgICAgIHZedl52XnZgXy9cX18sLS0ufFxfPV8vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwgICAgICAgOnZedl9fX198ICBcX19fX198XwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIHx8ICAgICAgIHZeICAgICAgLyAgXCAgICAgICAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1xffHxfKVwgICAgYC9fLi4tLl9cICAgKV8uLi5fX1wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgICBcLyAgI3wgICAgIHxfPSdfKCAgICAgfCAgPV8oXwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAgXy9cXyAgfCAgICAvICAgICA9XCAgICAvICAnICA9XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFwvIFwvICkvIGdudiB8PV9fX18jfCAgICAnPS4uLi4jfAoKTWZHIFNvbCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0ZWxsZW5hbmdlYm90IDIgKEFub3JpcywgMTcuIE1haSAyMDAxLCAxOTo1Mjo1MSk6CkZhbGxzIHdlciBpbnRlcnNzaWVydCBpc3QgYW4gZWluZXIgU3RlbGxlIGluIGRlciBTY2h3ZWl6LAptb2VnZSBzaWNoIGJlaSBtaXIgbWVsZGVuLiBXaXIgc3VjaGVuIExldXRlLCBpbiBkZXIgRmlybWEKaW4gZGVyIGljaCBhcmJlaXRlIHVuZCBpbiBkZXIgU2NodWxlIGluIGRlciBpY2ggc2VpdAprdXJ6ZW0gdW50ZXJyaWNodGUuCgpBbmZvcmRlcnVuZ2VuIGV0Yy4uLiBlcmZhZWhydCBJaHIgZGlyZWt0IHZvbiBtaXIgLi4uCgotIEFub3JpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0aCBGdWxsIEZvcmNlIC8gV2Fja2VuIChJaHNhaG4sIDI2LiBNYWkgMjAwMSwgMDA6MzQ6MDkpOgoKRGllIEZlc3RpdmFsc2Fpc29uIHJ1ZWNrdCBuYWVoZXIgdW5kIHdlbm4gdW5zIE1LUyBuaWNodCBkYXp3aXNjaGVuIGZ1bmt0LApnZWhlbiBzaWNoZXIgd2llZGVyIGVpbmlnZSB2b24gdW5zIHp1IGRlbiBoYXJ0ZW4gU2FjaGVuLiBCZWkgSW50ZXJlc3NlIHNpY2ggenUKdHJlZmZlbiwgTWFpbCBhbiBtaWNoLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpicmllZiAoQmVuZGVpZ2lkLCAgMS4gSnVuIDIwMDEsIDEwOjA0OjQ3KToKfiMhIG9uPUtsZWluaSBvdD05OTEzODA3Nzggb2c9YWxsZ2VtZWluZXMKaGV5IG9yZG9zIGljaCBmaW5kIHZvbSBiYXVlcm5ob2YgbmljaHQgenVydWVjayBoaWxmIG1pciBiaXR0ZSBkZWluIG1vZ2xpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIVE1MLVByb2dyYW1taWVyZXIgZ2VzdWNodCAoR3JpbW1ib3JuLCAyMy4gSnVuIDIwMDEsIDIxOjE3OjE4KToKfiMhIHJuPVJ1bWF0YSBydD05OTMzMTM5OTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTMyMjk5NzUKTWVhIEN1bHBhLgpJY2ggaGFiZSBtaWNoIGluIGRlciBmYWxzY2hlbiBSdWJyaWsgYmVmdW5kZW4gdW5kIGhhYmUgdmVyc2VoZW50bGljaApzYWVtdGxpY2hlIEFydGlrZWwgZGllc2VyIFJ1YnJpayBnZWxvZXNjaHQuIEd1dCwgaGFldHRlIHZlcm11dGxpY2ggbmllbWFuZApnZW1lcmt0LCBpc3QgbWlyIGFiZXIgdHJvdHpkZW0gcGVpbmxpY2guIEJldHJhY2h0ZXQgZGFzIGhpZXIgYWxzIG9lZmZlbnRsaWNoZXMKU2NoYWVtZW4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEhUTUwtUHJvZ3JhbW1pZXJlciBnZXN1Y2h0IChBbmFjcmlvbiwgMjMuIEp1biAyMDAxLCAyMzoyNjoxMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTkzMzIzODM4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTkzMjI5OTc1ClByaW56aXBpZWxsIGdpbmcgZXMgZGFydW0sIG9iIGplbWFuZCBlaW4gV3VuZGVyIHZvbGxicmluZ2VuIGthbm4uIERlcmplbmlnZQpzb2xsIHNpY2ggYmVpIFBob2Jvcyg/KSBtZWxkZW4uCgpBbmFjKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogSFRNTC1Qcm9ncmFtbWllcmVyIGdlc3VjaHQgKFd1cnplbCwgMjMuIEp1biAyMDAxLCAyMzoyNzo1NCk6Cn4jISBybj1BbmFjcmlvbiBydD05OTMzMzE1NzAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTMyMjk5NzUKbmVpbiwga2VpbiB3dW5kZXIuIGVzIGdpbmcgZGFydW0sIG9iIGplbWFuZCBkdW1tIGdlbnVnIGlzdCwgZnVlciBndXRlIGFyYmVpdAprZWluIGd1dGVzIGdlbGQgenUgdmVybGFuZ2VuIDopCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRldXRzY2hlciBTcGllbGUtUHJlaXMgKE1vbnRhbnVzLCAyNy4gSnVuIDIwMDEsIDAwOjQ5OjA1KToKCkhtbW0sIG9obmUgenV2aWVsIFdlcmJ1bmcgaW4gZWlnZW5lciBTYWNoZSBtYWNoZW4sIGFiZXIuLi4KZGllc2VzIGphaHIga2FubiBtYW4gb25saW5lIHp1bSBEZXV0c2NoZW4gU3BpZWxlLVByZWlzIGFic3RpbW1lbi4KVW5kIHp3YXIgdW50ZXIgd3d3LmRldXRzY2hlci1zcGllbGUtcHJlaXMuZGUKCkhtbW0sIHdpZSBzb2xsIGljaCBlcyBzYWdlbiwgZXMgd2FlcmUgemllbWxpY2ggbmV0dCwgd2VubiBzaWNoIGVpbiBwYWFyIExldXRlCmRyYW4gYmV0ZWlsaWdlbiB3dWVyZGVuLCB1bmQgbm9jaCBuZXR0ZXIsIHdlbm4gZGEgZGFubiBqZWRlc21hbCBiZWkgZGVuIDUKUHVua3RlbiBkYXMgU3BpZWwgIkhpZ2ggQm9obiIgdm9uIGxvb2tvdXQgR2FtZXMgZ2VuYW5udCB3dWVyZGUuLi4KCkljaCBzcGVuZGllciBhdWNoIGVpbmUgYW5nZW1zc2VuZSBNZW5nZSBsZWNrZXJlbiBBbGtvaG9sIGF1ZiBkZXIgbmFlY2hzdGVuCkZldGUsIGZhbGxzIGljaCBkZW4gKHVuZG90aWVydGVuKSBQcmVpcyBnZXdpbm5lbiBzb2xsdGUuCjstKQoKLU1vbnRhbnVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGV1dHNjaGVyIFNwaWVsZS1QcmVpcyAoR2xvaW5zb24sIDI3LiBKdW4gMjAwMSwgMDI6NDY6MzkpOgp+IyEgcm49TW9udGFudXMgcnQ9OTkzNTk1NzQ1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTkzNTk1NzQ1CkdlZ2Vudm9yc2NobGFnOiBXaXIgc3BlbmRpZXJlbiBEaXIgYXVmIGRlbSB6d290ZW4gQWJlbmQgamVkZSBNZW5nZSBCaWVyCihicmluZ2VuIGVzIERpciBhbHNvKSB3ZW5uIER1IG1hbCBlaW4gcGFhciBQcm9iZXNwaWVsZSBtaXRicmluZ3N0IDopCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGV1dHNjaGVyIFNwaWVsZS1QcmVpcyAoQmFtYmksIDI4LiBKdW4gMjAwMSwgMTE6NTQ6MzApOgp+IyEgcm49TW9udGFudXMgcnQ9OTkzNTk1NzQ1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTkzNTk1NzQ1Ck1hY2ggcmVpbmVuIEFsayBkcmF1cywgZGFtaXQgaWNoIG1hbCBtZWluIEF1dG8gZ2VzY2hlaXQgcHV0emVuIGthbm4gdW5kIGljaAp1ZWJlcmxlZ3MgbWlyLiBTb25zdCBoYWIgaWNoIGZ1ZXIgQWxrb2hvbCBrZWluZSBWZXJ3ZW5kdW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXV0c2NoZXIgU3BpZWxlLVByZWlzIChNb250YW51cywgMjguIEp1biAyMDAxLCAxNzo0NTo1Nik6Cn4jISBybj1CYW1iaSBydD05OTM3MjIwNzAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTM1OTU3NDUKSGFldHRlIGljaCBub2NoIGVyd2FlaG5lbiBzb2xsZW4sIGRhc3MgZGVyIFZlcmFuc3RhbHRlciBub2NoIHVudGVyIGFsbGVuCkVpbnNlbmR1bmdlbiB6aWVtbGljaCB2aWVsZSBhdHRyYWt0aXZlIHByZWlzZSAod2llIFNwaWVsZXBha2V0ZSkgdmVybG9zdD8gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZXV0c2NoZXIgU3BpZWxlLVByZWlzIChSb25kYSwgMjguIEp1biAyMDAxLCAxNzo0NzoyNik6Cn4jISBybj1Nb250YW51cyBydD05OTM3NDMxNTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTM1OTU3NDUKTm9lLiBBYmVyIER1IGhhZXR0ZXN0IFRpcHBzIGdlYmVuIHNvbGxlbiwgd2FzIG1hbiBhbHMgTnVyLU1hbC1FYmVuLVNwaWVsZXIKc29uc3Qgc28gbmV0dGVzIGVpbnRyYWdlbiBrb2VubnRlIDstKQoKUm9uZGEgKkdlbGVnZW5oZWl0cy1TcGllbGtpbmQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEZXV0c2NoZXIgU3BpZWxlLVByZWlzIChJc2ksIDI4LiBKdW4gMjAwMSwgMTc6NDc6NDgpOgp+IyEgcm49Um9uZGEgcnQ9OTkzNzQzMjQ2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTkzNTk1NzQ1CmRhcyBoYWIgaWNoIGF1Y2ggc2NobmUgYmVtYWVuZ2VsdCA7KQppc2kgKHJvdHN0aWZ0d2VyZmVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXV0c2NoZXIgU3BpZWxlLVByZWlzIChMaWFyYSwgIDEuIEp1bCAyMDAxLCAwMDo1MTozMyk6Cn4jISBybj1Nb250YW51cyBydD05OTM1OTU3NDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTM1OTU3NDUKVW5kIHdhcyBzb2xsIG1hbiBEZWluZXIgTWVpbnVuZyBuYWNoIHNvIGFscyAnZ3V0IGluZm9ybWllcnRlciBTcGllbGVyJyAobHQuCldhaGx2ZXJmYWhyZW4pIGJlaSBkZW4gYW5kZXJlbiBQbGFldHplbiBlaW50cmFnZW4/IDstKSkKCkxTWlogLT4gU2NobWFycm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERldXRzY2hlciBTcGllbGUtUHJlaXMgKExpYXJhLCAgMS4gSnVsIDIwMDEsIDAxOjA0OjMyKToKfiMhIHJuPVJvbmRhIHJ0PTk5Mzc0MzI0NiByZz1hbnplaWdlbgp+IyEgdGlkPTk5MzU5NTc0NQpJY2ggaGFzc2UgZGllIG5ldWUgUmVjaHRzY2hyZWlidW5nLiA6LSkKSWNoIGhhc3NlIGVzLCB3ZW5uIER1IFRpcHBzIHNjaHJlaWJzdCEgOi0pCkRhcyBpc3QgYXVjaCBqZWRlcyAzdGUgV29ydCBhdWYgRGVpbmVyIHNjcmVlbnN1cmZlci5kZS1TZWl0ZS4gClVuZCBlcyB0dXQgbWlyIGxlaWQsIGRhc3MgaWNoIHF1YXNpIGRlbnNlbGJlbiAob2RlciBoZWlzc3QgZXMgZGVuIGdsZWljaGVuKQpBcnRpa2VsIGdlc2NocmllYmVuIGhhYiB3aWUgRHUuIE1hbiBzb2xsdGUgZG9jaCBlcnN0IE1QQSBmZXJ0aWNoIGxlc2VuLiA7LSkKCkxTWlosIHp1IG11ZWRlIGZ1ZXIgc2lubnZvbGxlIGxlc2JhcmUgQXJ0aWtlbAoKUC4gUy46ICdUaXBwcycgaXN0IGZhc3Qgc28gc2NobGltbSB3aWUgJ3BsYXR6aWVyZW4nICpoZXVsKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXV0c2NoZXIgU3BpZWxlLVByZWlzIChNb250YW51cywgIDEuIEp1bCAyMDAxLCAwNTo0NTo1NSk6Cn4jISBybj1MaWFyYSBydD05OTM5NDE0OTMgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTM1OTU3NDUKYWxzbyBpY2gga2FubiBqYSBub2NoIGVpbiBwYWFyIHZvbiBkZW4gYW5kZXJlbiBndXRlbiBTcGllbGVuIGRlcyBqYWhyZ2FuZ3MKYXVmemFlaGxlbjoKCkRpZSBoYWVuZGxlciB2b24gR2VudWEgKGFsZWEpIHZvbiBSdWVkaWdlciBEb3JuIGlzdCBzZWhyIG5ldHQsIHdlbm4gbWFuIGdlcm5lCmtyZWF0aXYgdmVyaGFuZGVsdC4gCkRpZSBGdWVyc3RlbiB2b24gRmxvcmVueiAoYWxlYSkgc2luZCBlaW4ga2xhc3NlIE1hZW5nZWx2ZXJ3YWx0dW5nc3NwaWVsOiBtYW4KaGF0IHVuaGVpbWxpY2ggdmllbGUgT3B0aW9uZW4sIG11c3Mgc2ljaCBhYmVyIGF1ZiAyIEFrdGlvbmVuIGJlc2NocmFlbmtlbiwgdWRuCmRhYmVpIGF1Y2ggbm9jaCBhdWZzIEdlbGQgYWNodGVuLiBVbmQgZGFzIGlzdCBiZWkgVmVyc3RlaWdlcnVuZ2VuIG5pY2h0CmVpbmZhY2gsIGRhIG11c3MgbWFuIHNjaGF1ZW4sIGRhc3MgbWFuIGd1dCBibHVmZnQuCkNhcmNhc3Nvbm5lIChIYW5zIGltIEdsdWVjaykgaXN0IG5pY2h0IGdhbnogdW1zb25zdCBTcGllbCBkZXMgamFocmVzIGdld29yZGVuLAplaW4gbmV0dGVzIExlZ2VzcGllbC4KQXR0aWxhIChIYW5zIGltIEdsdWVjaykgaXN0IG1hbCB3aWVkZXIgZWluIHRvbGxlcyBTcGllbCB2b24gS2FsbGUgU2NobWllbCwgZGVyCmF1Y2ggdS5hLiBmdWVyIFR5cmFubm8tRXggb2RlciBEaWUgTWFjaGVyIHZlcmFudHdvcnRsaWNoIHdhci4gClphcHAgWmVyYXBwIChab2NoKSBpc3Qgd2FzIGZ1ZXIgZGllIEtpbmRlciB1bnRlciB1c24gdW5kIHdhciBhdWYgZGVyIE1lc3NlIGluCkVzc2VuIHNlaHIgYmVsaWVidC4gTWFuIG11c3MgZGF1ZXJuZCBhbiBrbGVpbmVuIEhvbHpkb3NlbiBydWV0dGVsbiwgZGllIG1pdAp1bnRlcnNjaGVpZGxpY2ggdmllbGVuIEt1Z2VsbiBnZWZ1ZWxsdCBzaW5kLCB1bSBkZW0gV3VlcmZlbGVyZ2VibmlzIG1vZWdsaWNoc3QKbmFoZSB6dSBrb21tZW4uLi4gaW5zZ2VzYW10IGVpbmUgTWVuc2NoLWFlcmdlcmUtZGljaC1uaWNodC1WYXJpYW50ZS4KYmFiZWwgKEtvc21vcykgaXN0IGVpbiBad2VpLVBlcnNvbmVuc3BpZWwgdm9uIFV3ZSAiQm9obmFuemEiIFJvc2VuYmVyZyB1bmQgSEduCkRvcmdhdGhlbi4gRXR3YXMga29tcGxpemllcnRlciBhbHMgZGllIG5vcm1hbGVuIEtvc21vcy1ad2VpLVBlcnNvbmVuc3BpZWxlLApkYXMgbXVzcyBhYmVyIG5pY2h0IHVuYmVkaW5ndCBzY2hsZWNodCBzZWluCkVWTyAoRXVyb2dhbWVzKSBoYW5kZWx0IHZvbiBEaW5vcywgZGllIG1hbiBtaXQgR2VuZW4gc28gd2VpdGVyZW50d2lja2VsbiBrYW5uLApkYXNzIGRhcyBtaXQgZGVtIEF1c3N0ZXJiZW4gc2ljaCBtb2VnbGljaHN0IGxhbmdlIGhpbnpvZWdlcnQuIEFlaG5saWNoa2VpdGVuCm1pdCBVcnN1cHBlLCBhYmVyIGVpZ2VudGxpY2ggYXVjaCBzbyBnYW56IG5ldHQuCkFsIENhYm9obmUgKGFtaWdvKTogZGllIDItUGVyc29uZW4tVmVyc2lvbiBmdWVyIEJvaG5hbnphCk1ldXRlcmVyIChBZGx1bmcpOiBkaWUgU2VlZmFocmVyLVZhcmlhbnRlIGZ1ZXIgVmVycmFldGVyLi4uIG5hamEsIGJlaW5haGUuClNjaG9uIGJpc3NlbCBhbmRlcnMuIDotKQoKU28uIGdlbnVnIFdlcmJ1bmcgZnVlciBkZW4gRmVpbmQgZ2VtYWNodD8gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZXV0c2NoZXIgU3BpZWxlLVByZWlzIChMaWFyYSwgIDEuIEp1bCAyMDAxLCAxMjowNDowOSk6Cn4jISBybj1Nb250YW51cyBydD05OTM5NTkxNTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTM1OTU3NDUKRHUgaGFzdCB2ZXJnZXNzZW4sIGVpbmlnZSBLaW5kZXJzcGllbGUgenUgbmVubmVuLiA7LSkKCkxTWloKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERldXRzY2hlciBTcGllbGUtUHJlaXMgKE1vbnRhbnVzLCAgMS4gSnVsIDIwMDEsIDE2OjU2OjE5KToKfiMhIHJuPUxpYXJhIHJ0PTk5Mzk4MTg0OSByZz1hbnplaWdlbgp+IyEgdGlkPTk5MzU5NTc0NQpJY2ggaGFiIG1laW5lIFB1bmt0ZSBmdWVyIGRhcyBiZXN0ZSBLaW5kZXJzcGllbCBhbiBkYXMgaW0gaXJnZW5kd28Kdm9yaGVyZ2VnYW5nZW5lbiBBcnRpa2VsIGdlbmFubnRlIFphcHAgWmVyYXBwIHZlcmdlYmVuLiBFaW5lCk1lbnNjaC1hZXJnZXItZGljaC1uaWNodC1WYXJhaW50ZSwgYmVpIGRlciBtYW4gZGF1ZXJuZCBhbiBrbGVpbmVuIEhvbHpkb3NlbgpzY2h1ZXR0ZWx0LCBpc3QgbmFlbWxpY2ggZnVlciBtaWNoIGF1Y2gga2luZGVyZ2VlaWduZXQuIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFnaWNrYXJ0ZW4gKEJpcmR5LCAgMS4gSnVsIDIwMDEsIDIyOjI0OjEyKToKVmVya2F1ZmUgbWVpbmUgTWFnaWMtS2FydGVuLiBJbnRlcmVzc2VudGVuIE1haWwgYW4gbWljaCAhCgpCaXJkeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGV1dHNjaGVyIFNwaWVsZS1QcmVpcyAoU29sbXlyLCAgMi4gSnVsIDIwMDEsIDA0OjA2OjAwKToKfiMhIHJuPU1vbnRhbnVzIHJ0PTk5Mzk1OTE1NSByZz1hbnplaWdlbgp+IyEgdGlkPTk5MzU5NTc0NQpTbywgdW5kIG51IHdlcmRlbiBIdW5kZXJ0ZSBkaWVzZSBTcGllbGUgZWludHJhZ2VuIHVuZCBkaWUgSnVyeQp3aXJkIGRhcyBkYW5uIHp1cnVlY2t2ZXJmb2xnZW4gOikgTmFqYSwgYWxsZXMgaW4gYWxsZW0gZWluZSByZWNodAppbnRlcmVzc2FudGUgTWF0ZXJpZS4KClNvbG15cgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGV1dHNjaGVyIFNwaWVsZS1QcmVpcyAoTW9udGFudXMsICAyLiBKdWwgMjAwMSwgMDY6MTM6MjYpOgp+IyEgcm49U29sbXlyIHJ0PTk5NDAzOTU2MCByZz1hbnplaWdlbgp+IyEgdGlkPTk5MzU5NTc0NQpOYSB1bmQ/IFdlciBwZXIgSW50ZXJuZXQgYWJzdGltbWVuIGxhZXNzdCwgZGVyIGlzdCBzZWxiZXIgU2NodWxkLgpEYXMgd2FyIGhpZXIgamV0enQgYXVjaCBnZXJhZGUgYmVpbSBBbGwtU3Rhci1Wb3Rpbmcgc286IGRhIGR1cmZ0ZSBqZWRlciBzb2dhcgpiaXMgenUgMjVtYWwgaW0gSW50ZXJuZXQgYWJzdGltbWVuLiBEYXp1IGRpZSB0b2xsZW4gTG9jaGthcnRlbixkaWUgbWFuIGltClN0YWRpb24gYXVzc3RhbnplbiB1ZG4gZWlud2VyZmVuIGtvbm50ZS4KRWluIEVTUE4tS29tbWVudGF0b3IgbWVpbnRlIGdlc3Rlcm4gZGF6dSBudXIsIGRhc3MgaW0gVmVyZ2xlaWNoIGRhenUgRmxvcmlkYQplaW4gSG9ydCBhbiBEZW1va3JhdGllIHVuZCBmYWlyZW4gV2FobGVuIGdld2VzZW4gc2VpLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWdpY2thcnRlbiAoR29yLCAgMi4gSnVsIDIwMDEsIDEyOjE5OjMxKToKfiMhIHJuPUJpcmR5IHJ0PTk5NDAxOTA1MiByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDAxOTA1MgpHT3Igc2NobGllc3N0IHNpY2ggZGEgYW4gdW5kIGJpZXRldCBzZWluZSBrb21wbGV0dGUgUmV2aXNlZCBFZGl0aW9uIGZlaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hZ2lja2FydGVuIChUcm95LCAgMy4gSnVsIDIwMDEsIDA5OjM0OjIyKToKfiMhIHJuPUdvciBydD05OTQwNjkxNzEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQwMTkwNTIKVHJveSBiaWV0ZXQgZGFyYXVmaGluIGF1Y2ggZGllIFJldmlzZWQgRWRpdGlvbiBrb21wbGV0dCwgc293aWUgZWluaWdlIExlZ2VuZHMsCkljZSBXb3JsZCB1LiB2LiBtLiBhbi4KClRyb3kgLSB3aWxsIGNhLiAxMGtnIE1hZ2ljIGxvc3dlcmRlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWFnaWNrYXJ0ZW4gKEdyaW1tYm9ybiwgIDMuIEp1bCAyMDAxLCAxMDowMzo0NCk6Cn4jISBybj1Ucm95IHJ0PTk5NDE0NTY2MiByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDAxOTA1MgpJY2ggYmlldGUgZnVlbmYgTWFyay4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWFnaWNrYXJ0ZW4gKEJpcmR5LCAgMy4gSnVsIDIwMDEsIDEwOjA3OjM3KToKfiMhIHJuPVRyb3kgcnQ9OTk0MTQ1NjYyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCkphamEsIHNvIGlzdCBkYXMgbWl0IEFuZ2Vib3QgdW5kIE5hY2hmcmFnZS4KSWhyIHZlcnNhdXQgZGllIFByZWlzZS4KCkJpcmR5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNYWdpY2thcnRlbiAoR3JpbW1ib3JuLCAgMy4gSnVsIDIwMDEsIDEwOjQ2OjU1KToKfiMhIHJuPUJpcmR5IHJ0PTk5NDE0NzY1NyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDAxOTA1MgpIYXN0IG1pY2ggdWViZXJ6ZXVndC4gNCw1MCBETS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWFnaWNrYXJ0ZW4gKEdvciwgIDMuIEp1bCAyMDAxLCAxMjo1MjoxMSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTk0MTQ3NDI0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCkdvciBodXN0ZXQga3JhZWZ0aWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNYWdpY2thcnRlbiAoR2xvaW5zb24sICAzLiBKdWwgMjAwMSwgMTk6MTA6MDgpOgp+IyEgcm49QmlyZHkgcnQ9OTk0MTQ3NjU3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCk5hamEsIGRlbiBTb25kZXJzY2huaWNrc2NobmFjayBrYW5uc3RlIHJhdXNuZWhtZW4sIGVpbmUgYmlsbGlnZSBWYXJpYW50ZSB2b24KamVkZXIgRmFyYmUgaGFldHRlIGljaCBzY2hvbiB6dSBhbmdlbWVzc2VuZW4gUHJlaXNlbi4KCkdsb2luKHNvbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBrbGVpbmVzIFNjaG1hbmtlcmwgaW4gQmVybGluIChMaW5mbGFzLCAgNy4gSnVsIDIwMDEsIDE4OjE5OjQ0KToKSGkhCgpXZXIgc2ljaCBnZXJuZSB1bmQgZ3V0IGZ1ZXJjaHRlbiBtYWcsIGRlciBzb2xsdGUgbWFsIGluIGRhcyBCZXJsaW5lcgpHcnVzZWxrYWJpbmV0dCBnZWhlbi4KSW4gZWluZW0gYWx0ZW4gQnVua2VyIGdpYnQgZXMgYWxsZXJsZWkgaW50ZXJlc3NhbnRlcyB6dSBkaXYuIEZvbHRlcm1ldGhvZGVuCmF1cyBkZW0gTWl0dGVsYWx0ZXIsIEluZm9ybWF0aW9uZW4genVtIEJ1bmtlciBzZWxic3QgdW5kIGVpbmUgd2lya2xpY2gKZ3J1c2VsaWdlIFNob3csIGRpZSBldWNoIGRpZSBIYWFyZSB6dSBCZXJnZSBzdGVoZW4gbGFlc3N0LgpadSBmaW5kZW4gaXN0IGRhcyBpbiBkZXIgU2Nob2VuYmVyZ2VyIFN0ci4gMjNhIGltIEhpbnRlcmhvZiAoS3JldXpiZXJnKSwKUy1CYWhuIEFuaGFsdGVyIEJhaG5ob2YsIFUtQmFobiBHbGVpc2RyZWllY2sgKFUgMSwxNSB1bmQgMikuCgpWaWVsIFNwYXNzIQoKTGluZmxhcyBncnVzZWx0IGltbWVyIG5vY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYWdpY2thcnRlbiAoUm9sYW5kLCAgOC4gSnVsIDIwMDEsIDAyOjUxOjE4KToKfiMhIHJuPVRyb3kgcnQ9OTk0MTQ1NjYyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCndvenUgc2luZCBkaWVzZSBrYXJ0ZW4gZWlnZW5kbGljaCAuLiAKZG9lcyBoYWIgaWNoIGltbWVybm9jaCBuaXQgZ2VzY2huYWxsdAoKbWFsIG4gaW5mbyBnZXJuIGhhYmVuIHdpbGwgOikKCgptZmcgcm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE1hZ2lja2FydGVuIChUcm95LCAgOC4gSnVsIDIwMDEsIDEyOjI1OjA3KToKfiMhIHJuPVJvbGFuZCBydD05OTQ1NTM0Nzggcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQwMTkwNTIKTWl0dGxlcndlaWxlIHdlaXNzIGljaCBkYXMgYXVjaCBuaWNodCBtZWhyIHNvIGdlbmF1Li4uIEZydWVoZXIgd2FyIGljaCBkZXIKTWVpbnVuZywgZGFzIFNwaWVsIHNlaSB1bnRlcmhhbHRzYW0uCgpUcm95CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBNYWdpY2thcnRlbiAoUm9sYW5kLCAgOC4gSnVsIDIwMDEsIDE1OjQ1OjA2KToKfiMhIHJuPVRyb3kgcnQ9OTk0NTg3OTA3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCmRhcyBpcyBuIHNwaWVsID8gLi4uCm5hamEgd2VtbSBzcGFzcyBtYWNodCBhbGxlaW5lIGthcnRlbiB6dSBzYW1tZWxuICwsLCB1bmQgenUgb3JkbmVuIDopCmFiZXIgaWNoIGhhYiBhdWNoIG5iZWthbm50ZW4gZGVyIG4gaGF1ZmVuIHZvbiBkZW4gZGluZ2VyZW4gaGF0IC4uLiBhYmVyIGljaApnbGF1YmUgd296dSB3ZWlzcyBlciBhdWNoIG5pY2h0Li4uCgphYmVyIHVtIG1hbCB3YXMgenVtIHByZWlzIHp1IHNhZ2VuIC4uIGVyIGhhdCAxMDAwIGZ1ZXIgMTAwIGJlaSBlYmF5IGVyc3RlaWdlcnQKISAuLiBhbHNvIGRpZSA1IGRtIC4uIG5hamEgc2luZCBnYXJuZXQgc28gdWViZWwgOikKCm1mZyBybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTWFnaWNrYXJ0ZW4gKFBhdHJ5biwgIDguIEp1bCAyMDAxLCAxNTo1MjozNSk6Cn4jISBybj1Sb2xhbmQgcnQ9OTk0NTk5OTA2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCmVuZGxpY2ggd2lsbCBkaWUgZGluZ2VyIGplZGVyIGxvc3dlcmRlbi4uLmRhbWl0IGhhdCBtYW4gc2Nob24gbWFuY2ggZWluZQpwYXJ0eSBzdGFyayBzYWJvdGllcnQsIGF1Y2ggc2Nob24gbWctcGFydGllcyB3ZW4gaWNoIG1pY2ggcmVjaHQgZW50c2lubmUuCgotLQpwYXRyeW4sIGZhbmQgZGFzIHNwaWVsIGltbWVyIGRvb2YKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IE1hZ2lja2FydGVuIChab29rLCAgOC4gSnVsIDIwMDEsIDE1OjUzOjMxKToKfiMhIHJuPVBhdHJ5biBydD05OTQ2MDAzNTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQwMTkwNTIKWm9vayBoYXQgYXVjaCBpbW1lciBudXIgZmFzemluaWVydCB6dWdlc2NoYXV0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTWFnaWNrYXJ0ZW4gKEdvciwgIDguIEp1bCAyMDAxLCAyMjowODo0Mik6Cn4jISBybj1Ucm95IHJ0PTk5NDU4NzkwNyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDAxOTA1MgpTbyBpc3NlcywgZGFzIHdhciBlaW5mYWNoIFBmbGljaHQgRW5nbGlzY2hrdXJzZSB6dSBzdGVtbWVuIHVuZCBNYWdpYyB6dQp6b2NrZW4uCgpNYWdpYyBSdWxleiEgb2RlciBzbyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogTWFnaWNrYXJ0ZW4gKEdvciwgIDguIEp1bCAyMDAxLCAyMjoxMDo0MCk6Cn4jISBybj1ab29rIHJ0PTk5NDYwMDQxMSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDAxOTA1MgpPaywgaWNoIHZlcmthdWZzIHNpZSBkaXIgZnVlcm4gRnJldW5kc2NoYWZ0c3ByZWlzIFpvb2tpbGVpbiwgZGEgZHUgamEKaXJnZW5kd2llIGtlaW4gTmV0eiBoYXN0IG9kZXIgbnVyIHNwb3JhZGlzY2gsIGlzdCBkYXMgZ2VuYXUgZGFzIHJpY2h0aWdlIGZ1ZXIKZGljaC4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IE1hZ2lja2FydGVuIChNb250YW51cywgIDkuIEp1bCAyMDAxLCAwNzoxMTowOSk6Cn4jISBybj1Hb3IgcnQ9OTk0NjIzMDQwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0MDE5MDUyCk1hY2h0IG1pciBNYWdpYyBuaWNodCBzY2hsZWNodC4gOi0pIFNvbnN0IG11c3MgaWNoIG1pciBuZW4gbmV1ZW4gSm9iIHN1Y2hlbi4KCi1Nb250YW51cy4gS3Vlc3RlbnphdWJlcmVyLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMT0QgS2V5IChHcmltbWJvcm4sIDEwLiBKdWwgMjAwMSwgMjI6NDc6MjApOgp+IyEgcm49R29yIHJ0PTk5NDc5Nzk2NCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApEYXMgZXJpbm5lcnQgbWljaCBkYXJhbiBkYXNzIHdpciBoaWVyIG1vZWdsaWNoZXJ3ZWlzZSBlaW5lIFJVYnJpayAid2FyZXoiCmJyYXVjaGVuIGtvZW5udGVuLi4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTE9EIEtleSAoU3Ryb2hhbG0sIDEwLiBKdWwgMjAwMSwgMjI6NDg6NTMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NDc5ODA0MCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApBdWphLCB1bmQgZGllIGlzIGF1cyBzaWNoZXJoZWl0c3JlbGV2YW50ZW4gR3J1ZW5kZW4gbnVyIGZ1ZXIgU2VoZXIgenVnYWVuZ2xpY2gKOykKCkhhZWxtY2hlbiwgc2Nob25tYWwgc2VpbmUgQm9va21hcmtzIGR1cmNod3VlaGxlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTE9EIEtleSAoR29yLCAxMC4gSnVsIDIwMDEsIDIyOjQ5OjAzKToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTQ3OTgwNDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKU3RlbGwgZGlyIHZvciwgZHUga2F1ZnN0IG5lbiBBdXRvLCB1bmQgZGVpbiBMYWcgZGFyZiBuaWNodCBkYW1pdCBmYWhyZW4sIHdlaWwKZXIga2VpbmVuIFNjaGx1ZXNzZWwgaGF0Li4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IExPRCBLZXkgKEdyaW1tYm9ybiwgMTAuIEp1bCAyMDAxLCAyMjo0OTo1MSk6Cn4jISBybj1Hb3IgcnQ9OTk0Nzk4MTQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CkRhbm4gYmluIGljaCBjbGV2ZXIgZ2VudWcgbWljaCB2b3JoZXIgenUgaW5mb3JtaWVyZW4gdW5kIGljaCBrYXVmZSBkYW5uIGVpbgphbmRlcmVzIEF1dG8uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMT0QgS2V5IChBcmssIDEwLiBKdWwgMjAwMSwgMjI6NTE6MDQpOgp+IyEgcm49R29yIHJ0PTk5NDc5Nzk2NCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApIbSwgYmlzdCBEdSBqZXR6dCBLZXktc3VlY2h0aWcgKnVyZ3MqIG9kZXIgRGlhYmxvLXN1ZWNodGlnICp3YXJncyoKQmVpZGVzIGJlZGVua2xpY2ggOi0pCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExPRCBLZXkgKFJvbGFuZCwgMTAuIEp1bCAyMDAxLCAyMzowNjo0Nyk6Cn4jISBybj1Hb3IgcnQ9OTk0Nzk3OTY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CkljaCBoYWIgamEgYXVjaCBrZWluZSAyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBMT0QgS2V5IChSb2xhbmQsIDEwLiBKdWwgMjAwMSwgMjM6MDc6MjkpOgp+IyEgcm49Um9sYW5kIHJ0PTk5NDc5OTIwNyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApuYWNodHJhZyAuLiBrYW0gbmljaHQgbWl0IAoKcm9sYW5kIGlzdCBLb0EtUmVkU2hhcmsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IExPRCBLZXkgKEJhbWJpLCAxMS4gSnVsIDIwMDEsIDExOjEyOjUwKToKfiMhIHJuPUdvciBydD05OTQ3OTgxNDMgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKU3RlbGwgRGlyIHZvciwgZXMgZ2lidCBMZXV0ZSwgZGllIGthdWZlbiBzaWNoIHp3ZWkgQXV0b3MsIHdlbm4gc2llCmdsZWljaHplaXRpZyBkYXMgQXV0byBicmF1Y2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IExPRCBLZXkgKEdvciwgMTEuIEp1bCAyMDAxLCAxMjo1MTo1Nyk6Cn4jISBybj1CYW1iaSBydD05OTQ4NDI3NzAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKU29sY2hlIGF1ZnJlY2h0ZSwgZGV1dHNjaGUgQnVlcmdlciBnaWJ0IGVzPwoKR29yIHNhbHV0aWVydC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBMT0QgS2V5IChXdXJ6ZWwsIDExLiBKdWwgMjAwMSwgMTI6NTM6MDYpOgp+IyEgcm49R29yIHJ0PTk5NDg0ODcxNyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NAp2aWVsIHNjaGxpbW1lci4gZXMgZ2lidCBsZXV0ZSwgZGllIGhhYmVuIHNvZ2FyIGRyZWkgb2RlciBtZWhyCmF1dG9zIGluIGRlciBnYXJhZ2UuLi4gZnVlciBqZWRlIGFud2VuZHVuZyBlaW4gYW5kZXJlcyA6KQoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBMT0QgS2V5IChHcmltbWJvcm4sIDExLiBKdWwgMjAwMSwgMTI6NTQ6MDEpOgp+IyEgcm49V3VyemVsIHJ0PTk5NDg0ODc4NiByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApBYmVyIGVzIGdpYnQgYXVjaCBMZXV0ZSBvaG5lIEF1dG8sIGRpZSBsaWViZXIgQmFobiBvZGVyIEZhaHJyYWQgZmFocmVuIG9kZXIgenUKRnVzcyBsYXVmZW4uIFVuZCBzaWNoLCB3ZW5ucyBkZW5uIHNlaW4gbXVzcywgbGllYmVyIGVpbiBBdXRvIG1pZXRlbi4KRGFzIG11c3N0ZSBhdWNoIG1hbCBnZXNhZ3Qgd2VyZGVuLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBMT0QgS2V5IChTb2xteXIsIDExLiBKdWwgMjAwMSwgMTI6NTQ6NTcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NDg0ODg0MSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApFcyBnaWJ0IGF1Y2ggTGV1dGUsIGRpZSBJaHJlIE1pZXRlIG5pY2h0IG1hbCB6YWhsZW4ga29lbm5lbiB1bmQKamVkZW4gTW9uYXQgYmFuZ2VuIG11ZXNzZW4gOigKClNvbG15cgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTE9EIEtleSAoRGVlcGJsdWUsIDExLiBKdWwgMjAwMSwgMTI6NTc6MTMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NDg0ODg0MSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApEYXMgc2luZCBkaWUgc2NobGltbXN0ZW4hIE5pY2h0IG51ciwgZGFzcyBzaWUga2VpbmUgS0Zac3RldWVyIHVzdy4gWmFobGVuLCBzaWUKZ2VmYWVocmRlbiBhdWNoIHVuc2VyZW4gSW5kdXN0cmlzdGFuZG9ydCBEZXV0c2NobGFuZC4gTnVyIHdlciBlaW4gRGV1dHNjaGVzCkF1dG8gZmFlaHJ0IChvZGVyIHp3ZWkgb2RlciBkcmVpKSBpc3QgZWluIGJyYXZlciBEZXV0c2NoZXIuClNvLCBkYXNzIG11c3N0ZSBtYWwgZ2VzYWd0IHdlcmRlbgpEZWVwKiwgX2tlaW4gYnJhdmVyIERldXRzY2hlciB1bmQgZGVzaGFsYiBzY2htYXJyZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBMT0QgS2V5IChXdXJ6ZWwsIDExLiBKdWwgMjAwMSwgMTI6NTc6NTEpOgp+IyEgcm49U29sbXlyIHJ0PTk5NDg0ODg5NyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NAp3ZXIgZGllIG1pZXRlIG5pY2h0IHphaGxlbiBrYW5uLCBicmF1Y2h0IGluIGRlciByZWdlbCBuaWNodCB6dQpiYW5nZW4uIGRpZSBmcmV1bmRsaWNoZW4gdmVybWlldGVyIGtsYWVyZW4gZGFzIHNjaG9uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogTE9EIEtleSAoQ3VjaHVsbGluLCAxMS4gSnVsIDIwMDEsIDEzOjA1OjE4KToKfiMhIHJuPVd1cnplbCBydD05OTQ4NDkwNzEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKVW5kIGVzIGdpYnQgc29nYXIgQXV0b2ZhaHJlciwgZGllIGVpbmUgYmVzdGltbXRlIEF1dG9tYXJrZSBzbyBiZXNjaGlzc2VuCmZpbmRlbiwgZGFzcyBzaWUga2VpbmUgc29sY2hlbiBBdXRvcyBrYXVmZW4sIHNvbmRlcm4gbnVyIGltbWVyIGtsYXVlbi4KCkN1KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExPRCBLZXkgKEJvaW5nLCAxMS4gSnVsIDIwMDEsIDEzOjA3OjM0KToKfiMhIHJuPUdvciBydD05OTQ3OTc5NjQgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKV2VubiBEdSBtaXQgRGVsIHp1c2FtbWVuIHpvY2tlbiBtb2VjaHRlc3QsIGRhbm4gaGFidCBpaHIgZG9jaCBiZXN0aW1tdAoyIENEcyBnZWthdWZ0LiBCZWkgamVkZXIgQ0QgaXN0IGVpbiBDRCBLZXkgZGFiZWksIHdvIGlzdCBhbHNvIGRhcyBQcm9ibGVtPwpXZW5uIGVzIGhpZXIgdW0gUmF1YmtvcGllbiBnZWh0LCBkYW5uIG1vZWNodGUgaWNoIGRpY2ggJ2ZyZXVuZGxpY2gnIDspCmJpdHRlbiwgRGVpbmVuIEFydGlrZWwgenUgbG9lc2NoZW4uIAogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IExPRCBLZXkgKERlbCwgMTEuIEp1bCAyMDAxLCAxMzozNDoyMSk6Cn4jISBybj1Cb2luZyBydD05OTQ4NDk2NTQgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKTmVpbiwgd2lyIGhhYmVuIGtlaW5lIDIgQ0RzIGdla2F1ZnQuIFdpZXNvIHNvbGx0ZW4gd2lyIGRhcywgd2VubiB3aXIgTE9EIGF1Y2gKbWl0IGVpbmVyIHNwaWVsZW4ga29lbm5lbi4uLgpOZWluLCBlcyBoYW5kZWx0IHNpY2ggbmljaHQgdW0gZWluZSBSYXVia29waWUsIGljaCBrYW5uIG1pY2ggbnVyIHdpZWRlcmhvbGVuOgpMT0QgbGFlc3N0IHNpY2ggbWl0IGVpbmVyIENEIHNwaWVsZW4uCldpciBicmF1Y2hlbiBhdWNoIGtlaW5lIHdhcmV6LCBkZW5uIGVzIG51ZXR6dCByZWluIGdhciBuaWNodHMsIHdlbm4gMTAwIGFuZGVyZQpTY2hsYXVuYXNlbiBhdWNoIGRpZXNlbiBLZXkgaGFiZW4gdW5kIG51dHplbi4KRGVyIEFydGlrZWwgdm9uIEdvciB3YXIgbGVkaWdsaWNoIGVpbmUgQW5mcmFnZSBhbiBkaWVqZW5pZ2VuLCBkaWUgTE9EIGdla2F1ZnQKaGFiZW4sIGFiZXIgZXMgc293aWVzbyBuaWNodCBpbSBCbmV0IHNwaWVsZW4gdW5kIGRhaGVyIGJlcmVpdCBzaW5kIGlocmVuIEtleQphbiB1bnMgd2VpdGVyenVnZWJlbi4KSXJnZW5kd2llIHdpcmQgbWlyIGltbWVyIGtsYXJlciwgd2llc28gaWNoIGluIGRpZXNlbSBNdWQgbmljaHQgbWVociBzcGllbGUuLi4KRGVsLCBkaWUgenVyIEtsYWVydW5nIGJlaXRyYWdlbiB3b2xsdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IExPRCBLZXkgKEFuYWNyaW9uLCAxMS4gSnVsIDIwMDEsIDEzOjM4OjU2KToKfiMhIHJuPURlbCBydD05OTQ4NTEyNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKSmEgbWFuIGthbm4gLi4uLgoKaXN0IGRlbm5vY2ggZWluZSBWZXJsZXR6dW5nIGRlciBMaXplbnpiZXN0aW1tdW5nZW4gLi4uLgoKd2FzIGpldHp0IG5pY2h0IGhlaXNzdCwgZGFzcyBlcyBzY2hsZWNodCB3YWVyZSA7LSkKCmFuYWMqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBMT0QgS2V5IChHb3IsIDExLiBKdWwgMjAwMSwgMTM6NDE6MDgpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTk0ODUxNTM2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0Cklzc2VzIHp1bSBHbHVlY2sgbmljaHQuCkF1ZiBkaWVzZW4gU1BydWNoIHdhcnRlIGljaCBzY2hvbiBzZWl0IEJlZ2lubiBkZXMgVGhyZWFkcwpFcyBzaW5kIHp3ZWkgdW50ZXJzY2hpZWRsaWNoZSBMaXplbnplbi4gV2VubiBtaXIgZWluZXIgc2VpbmVuIEtleSBhYnRyaXR0LApkYW1pdCBpY2ggQm5ldCBtaXQgZGVtIEtleSBzcGllbGVuIGthbm4gaXMgZGFzIGxlZ2FsLCBEYSBlciBuaWNodCBkcmluIHNwaWVsdAp1bmQgZnVlciBkaWUgU29mdHdhcmUgbm9jaCBuZSBhbmRlcmUgTGl6ZW56IGhhdC4gQm5ldCB1bmQgU0luZ2xlIFBMYXllciBzaW5kCkxpemVuenJlY2h0bGljaCBnZXRyZW5udC4uLi4uLiBWaWVsIFNwYXNzIGJlaW0gbmFjaHNjaG1vZWNrZXJuLgpBbHMgTGVrdHVlcmUgZW1wZmVobGUgaWNoIElTQk46IDMtNDIzLTAwNTYyLTYKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTE9EIEtleSAoQW5hY3Jpb24sIDExLiBKdWwgMjAwMSwgMTM6NDE6NTgpOgp+IyEgcm49R29yIHJ0PTk5NDg1MTY2OCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApJY2ggcmVkZSB2b20gR2xlaWNoemVpdGlnZW4gTnV0emVuIHZvbiBlaW5lciBMT0QtQ0QgbWl0IDIgUGVyc29uZW4gLi4uLgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IExPRCBLZXkgKFBhdHJ5biwgMTEuIEp1bCAyMDAxLCAxMzo0MjowMik6Cn4jISBybj1Hb3IgcnQ9OTk0ODUxNjY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CmthbiBpY2ggZGF2b25uZSBrb3BpZSBoYWJlbj8gOykKCi0tCnBhdHJ5biwgc2NobWFycmVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTE9EIEtleSAoVmFybGFyaW9uLCAxMS4gSnVsIDIwMDEsIDEzOjQyOjQ4KToKfiMhIHJuPVBhdHJ5biBydD05OTQ4NTE3MjIgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKd2FzIHJlZ3QgaWhyIGV1Y2ggZGVubiBhbGxlIHNvIGF1Zj8gZWluIGVpbmZhY2hlcyAibmVpbiwgbWVpbmVuIGtleSBrcmllZ3N0ZQpuaWNoIiBoYWV0dGUgZXMgZG9jaCBhdWNoIGdldGFuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBMT0QgS2V5IChQYXRyeW4sIDExLiBKdWwgMjAwMSwgMTM6NDQ6MzYpOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5NDg1MTc2OCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApkdSBzb2xsdGVzdCBub2NoIGVyd2FlaG5lbiwgZGFzcyBkaWUgYW50d29ydCBhdWYgZGVuIGxldHp0ZW4gYXV0b3IgcmVpbgp6dWZhZWxsaWcgZ2VzY2hpZWh0LiBpY2gga2FubiBlcyBtb3JhbGlzY2ggbmljaHQgdmVydHJldGVuLCBhbmRlcmUgZnVlcgpyYXVta29waWVuIHp1IHZlcnVydGVpbGVuLi4ud2FzIGF1Y2ggaW1tZXIgZGFzIGhlaXNzZW4gbWFnICpnKgoKLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBMT0QgS2V5IChBbmFjcmlvbiwgMTEuIEp1bCAyMDAxLCAxMzo0NTozMik6Cn4jISBybj1QYXRyeW4gcnQ9OTk0ODUxODc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CkljaCBhdWNoIG5pY2h0IC4uLi4gYWxzbyBmdWVyIFJhdUJrb3BpZW4gOy0pCgphbmFjKiAtIGhhdCBEMiBhbHMgb3JpZ2luYWwgYWJlciBmaW5kZXQgRDJYIHp1IHRldWVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBMT0QgS2V5IChWYXJsYXJpb24sIDExLiBKdWwgMjAwMSwgMTM6NDU6MzQpOgp+IyEgcm49UGF0cnluIHJ0PTk5NDg1MTg3NiByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApwb2VoLCBkYXMgd2FlciBqYSBwYyBvZGVyIHNvd2FzIGluIGRlciBhcnQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IExPRCBLZXkgKEdsb2luc29uLCAxMS4gSnVsIDIwMDEsIDEzOjQ5OjQ2KToKfiMhIHJuPVZhcmxhcmlvbiBydD05OTQ4NTE5MzQgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKUmF1Y2hrb3BpZW4/IEphamEsIG1laW5lIFRhc3RhdHVyIHJhdWNodCBhdWNoIHNjaG9uIHZvbSBab2NrZW4sIGFiZXIgaGFiIGljaApkZXNobGFiIGVpbmUgUmF1Y2hrb3BpZT8gQWVoLCBuZWUsIGRhcyB3aXJkIGhpZXIga2VpbiBzaW5udm9sbGVyIEJlaXRyYWcgaWNoCmhhYiBtaWNoIGphIHNjaG9uIGJlb2VsdCwgYWxzIGljaCBkZW4gdGhyZWFkYXVzbG9lc2VuZGVuIEFydGlrZWwgZ2VsZXNlbiBoYWJlCi4uLiBkYXMgaGF0dGUgaWNoIGJpc2hlciBudXIgdm9uIGRlbiBldHdhcyBKdWVuZ2VyZW4gaW4gZGl2ZXJzZW4gTkV3c2dvdXBzCmdlbGVzZW4gLi4uCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBMT0QgS2V5IChTaWx2YW5hLCAxMS4gSnVsIDIwMDEsIDEzOjUyOjIwKToKfiMhIHJuPVZhcmxhcmlvbiBydD05OTQ4NTE5MzQgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKVm9lbGxpZyB1bmFiaGFlbmdpZyB2b24gcGVyc29lbmxpY2hlbiBFaW5zdGVsbHVuZ2VuIHp1bSBUaGVtYSBtb2VjaHRlIGljaCBkb2NoCnVtIFZlcnN0YWVuZG5pcyBkYWZ1ZXIgd2VyYmVuLCB3ZW5uIHdpciBoaWVyICJpbiBkZXIgT2VmZmVudGxpY2hrZWl0IiBrZWluZQpBdWZydWZlIHp1bSBSYXVia29waWVyZW4gdW5kIGF1Y2gga2VpbmUgR2VzdWNoZSBuYWNoIFJhdWJrb3BpZW4gZHVsZGVuCmtvZW5uZW4uIEltIEdlZ2Vuc2F0eiB6dSBlaW5pZ2VuIFZvcnJlZG5lcm4gaGFlbmdlbiBoaWVyIGVpbmlnZSBMZXV0ZSBhbiBkZXIKRXhpc3RlbnogZGVzIE1vcmdlbmdyYXVlbnMgdW5kIG1vZWNodGVuIGRpZXNlcyBuaWNodCB1bm5vZXRpZyBkdXJjaCBQcm9ibGVtZQptaXQgU3RhYXRzYW53YWVsdGVuIHVuZCBhZWhubGljaGVuIGdlZmFlaHJkZW4uCgpWZXJzdGVodCBkYXMgYml0dGUgbmljaHQgYWxzIEJld2VydHVuZyBlaW56ZWxuZXIgQXJ0aWtlbCBkaWVzZXMgVGhyZWFkcywKc29uZGVybiBhbHMgYWxsZ2VtZWluZSBJbmZvcm1hdGlvbiBtaXQgZGVyIEJpdHRlIHVtIEJlYWNodHVuZy4gRGVyIEJlenVnIGF1ZgpkZW4gdm9yYW5nZWhlbmRlbiBBcnRpa2VsIC8gQXV0b3IgaXN0IHp1ZmFlbGxpZyAod2VpbCBkZXIgbGV0enRlIGJpcyBpY2gKYW5maW5nIGRlbiBBcnRpa2VsIHp1IHNjaHJlaWJlbikuCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBMT0QgS2V5IChHb3IsIDExLiBKdWwgMjAwMSwgMTM6NTI6MjYpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk0ODUyMTg2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CjxFTkQgT0YgVEhSRUFEPgoKSWhyIHNlaWQgcmVjaHRzY2hhZmZlbmUgQnVlcmdlciwgaWNoIGJpbiBlaW4gUmF1YmtvcGllcmVyLCBkaWUgV2VsdCBpcyBpbgpPcmRudW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IExPRCBLZXkgKFBhdHJ5biwgMTEuIEp1bCAyMDAxLCAxMzo1NTowOSk6Cn4jISBybj1Hb3IgcnQ9OTk0ODUyMzQ2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0Cm5hIGVuZGxpY2ggc2llaHN0IGR1IGVzIGVpbiA7KQoKPFRIRSBSRUFMTFkgRU5EIE9GIFRIUkVBRD4KCi0tCnBhdHJ5biwgaW1tZXIgZGFzIGxldHp0ZSB3b3J0IGhhYmVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IExPRCBLZXkgKElzaSwgMTEuIEp1bCAyMDAxLCAxMzo1NjowMyk6Cn4jISBybj1QYXRyeW4gcnQ9OTk0ODUyNTA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0Ck5vZQppc2kgKG1vdXNzZXdlcmZlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogTE9EIEtleSAoQW5hY3Jpb24sIDExLiBKdWwgMjAwMSwgMTM6NTY6MTkpOgp+IyEgcm49SXNpIHJ0PTk5NDg1MjU2MyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApFY2h0IG5pY2h0LgoKQW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBMT0QgS2V5IChHbG9pbnNvbiwgMTEuIEp1bCAyMDAxLCAxMzo1NjoyMCk6Cn4jISBybj1Hb3IgcnQ9OTk0ODUyMzQ2IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CkR1IHZlcmhhZWx0c3QgRGljaCB3aWUgZWluZXIuIERhcyBpc3QgYWxsZXMgd2FzIGljaCBzYWdlbiBrYW5uLiBVbmQgd2VubiBlaW5lcgonbmVuIEtleSBmdWVyIERpY2ggdWViZXJoYXQsIGRhbm4gaGF0IGVyIERpciBkZW4gc2ljaGVyIGdlbWFpbHQgLSBpY2ggdmVyc3RlaAphbHNvIG5pY2h0IHdhcnVtIER1IERpY2ggbm9jaCB2ZXJ0ZWlkaWdlbiBtdXNzdCBmYWxscyBEdSBlcmhhbHRlbiBoYXN0IHdhcyBEdQp3b2xsdGVzdC4gQWVoLCBuZWluLCBhbmRlcnM6IEljaCBiZWxvYmlnZSBEaWNoIGhpZXJtaXQgZGllIEVocmUgdW5kIGRhcwpTZWxic3R2ZXJzdGFlbmRuaXMgZGVyIE1QQSB3ZWl0ZXJoaW4gYmVzdGFlcmt0IHp1IGhhYmVuLiBEcmVpIEJpZW5jaGVuIHVuZAplaW5lbiBSb3Rhcm1pc3RlbnN0ZXJuLgoKR2xvaW4oc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IExPRCBLZXkgKFBhdHJ5biwgMTEuIEp1bCAyMDAxLCAxMzo1NzozOSk6Cn4jISBybj1HbG9pbnNvbiBydD05OTQ4NTI1ODAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKd2VubiBtYW4gYW5nZWdyaWZmZW4gd2lyZCwgdmVydGVpZGlndCBtYW4gc2ljaCBmdWVyIGdld29laG5saWNoLgpmdWVyIGRpZXNlIGVjaHQgb2ZmZW5zaWNodGxpY2hlIHRhdHNhY2hlIGVya2VubmUgaWNoIGRpciBkYXMgcmVjaHQgYWIsCnp1bHVlbmZ0aWcgd2VpdGVyIGJpZW5jaGVuIHVuZCByb3Rhcm1pc3RlbnN0ZXJuZSB2ZXJ0ZWlsZW4genUgZHVlcmZlbiA6KQoKLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogTE9EIEtleSAoQW5hY3Jpb24sIDExLiBKdWwgMjAwMSwgMTM6NTg6MjMpOgp+IyEgcm49UGF0cnluIHJ0PTk5NDg1MjY1OSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApEYW5uIHdhZXJlIEdsb2luc29uIGphIHJlY2h0bG9zLgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE0OiBMT0QgS2V5IChWYXJsYXJpb24sIDExLiBKdWwgMjAwMSwgMTM6NTk6MDMpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTk0ODUyNzAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CmlzdCBqZXR6dCBhbGxlcyBnZXNhZ3QsIG9kZXIgdmVybGVnZW4gd2lyIGRhcyBqZXR6dCBuYWNoIG1lZ2FzY2htYXJybj8gZGVyCmRvcnRpZ2UgdGhyZWFkIGlzdCBzY2hvbiB3aWVkZXIgZWluZ2VzY2hsYWZlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IExPRCBLZXkgKFBhdHJ5biwgMTEuIEp1bCAyMDAxLCAxMzo1OTowNSk6Cn4jISBybj1BbmFjcmlvbiBydD05OTQ4NTI3MDMgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKcGVyc3Bla3Rpdmxvcywgc2lubmxvcywgcmVjaHRsb3M/CmFiZXIgZGFzIHNpbmQgamEgZ2xlaWNoIDMgZGluZ2UgYXVmIGVpbm1hbC4uLiA7KQoKLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogTE9EIEtleSAoVmFybGFyaW9uLCAxMS4gSnVsIDIwMDEsIDEzOjU5OjQ5KToKfiMhIHJuPVBhdHJ5biBydD05OTQ4NTI3NDUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKb2RlciBhbmRlcnMgZ2VmcmFndDogd2FzIGdpYnRzIHp1bSByZV4xMDA/IDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogTE9EIEtleSAoR2xvaW5zb24sIDExLiBKdWwgMjAwMSwgMTM6NTk6NTUpOgp+IyEgcm49UGF0cnluIHJ0PTk5NDg1Mjc0NSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApJY2ggYmVoYWx0ZSBtaXIgZGllIFBFcnNwZWt0aXZlIHZvciB3ZWl0ZXJoaW4gUnVlZ2VuIHVuZCBHZW5vZXJnZWwgdmVydGVpbGVuCnp1IGtvZW5uZW4uCgpHbG9pbihzb24pLCB3aXJkIG5pY2h0IGluIEVpZXJuIGdlbGllZmVydAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTU6IExPRCBLZXkgKEJpZWxlZmVsZCwgMTEuIEp1bCAyMDAxLCAxMzo1OTo1OSk6Cn4jISBybj1WYXJsYXJpb24gcnQ9OTk0ODUyNzQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0Ck5hamEsIHN0aWZ0ZSB3YXMgZnVlciBSZV4xMDAuLi4gd2lyZCBzY2hvbiBlcnJlaWNodCB3ZXJkZW4uLi4KCi1CaWVsZWZlbGQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE2OiBMT0QgS2V5IChQYXRyeW4sIDExLiBKdWwgMjAwMSwgMTQ6MDA6MjcpOgp+IyEgcm49QmllbGVmZWxkIHJ0PTk5NDg1Mjc5OSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApnZW5hdSwgaW4gbmVyIGhhbGJlbiBzdHVuZGUgaGFiZW4gd2lyIG1lZ2FzY2htYXJybiBlaW4sIHVuZCBiaXNoZXIgc29nYXIKaGFsYndlZ3Mgbml2ZWF1bG9zIDspCgotLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE2OiBMT0QgS2V5IChWYXJsYXJpb24sIDExLiBKdWwgMjAwMSwgMTQ6MDA6MzIpOgp+IyEgcm49QmllbGVmZWxkIHJ0PTk5NDg1Mjc5OSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NAppY2ggaGFiIG5peCBtZWhyLCBpaHIgaGFidCBtaWNoIHZvZWxsaWcgYXVzZ2VwbHluZGVydCB1bmQgZWluIGd1bW1paHVobiBpc3QKZGllc2VyIHRocmVhZCBuaWNodCB3ZXJ0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTc6IExPRCBLZXkgKEdsb2luc29uLCAxMS4gSnVsIDIwMDEsIDE0OjAxOjI0KToKfiMhIHJuPVBhdHJ5biBydD05OTQ4NTI4Mjcgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKTml2ZWFsb3M/IERhcyB3aXJkIGphIGVpbiBmbHV0c2NoaWdlciBUaHJlYWQuIERlbiBiZWVuZGVuIHdpciBlcnN0LCB3ZW5uIG1laW5lClJhdWNoa29waWVuIG1pciBkaWUgU2ljaHQgbmljaHQgbWVociB2ZXJuZWJlbG4gb2RlciBpY2ggZGllIEJyaWxsZSBhdWZzZXR6ZS4KCkdsb2luKHNvbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE4OiBMT0QgS2V5IChWYXJsYXJpb24sIDExLiBKdWwgMjAwMSwgMTQ6MDI6MDcpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk0ODUyODg0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0Cm5pdmVhbG9zPyBkdSBzb2xsdGVzdCB3aXJrbGljaCBseWZ0ZW4gb2RlciBkZWluZSBicmlsbGUgcHV0emVuIHVuZCBhdWZzZXR6ZW4KOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE4OiBMT0QgS2V5IChJc2ksIDExLiBKdWwgMjAwMSwgMTQ6MDI6MTEpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk0ODUyODg0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CmR1IHNpZWhzdCBuaWNodCB3YXMgRHUgdGlwcHN0PyBkYXMgZXJrbGFlcnQgZWluaWdlcwppc2kgKGJyaWxsZXdlcmZlbmQpCi0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE4OiBMT0QgS2V5IChQYXRyeW4sIDExLiBKdWwgMjAwMSwgMTQ6MDI6NTEpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk0ODUyODg0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CmRhbm4gZGFyZiBpY2ggamEgZ2FyIG5pY2ggbWl0cmVkZW4sIGRlcnplaXQgbGFldWZ0IGtlaW5lIGVpbnppZ2UgcmF1bWtvcGllCmF1ZiBtZWluZW4gMiByZWNobmVybiBoaWVyLi4ubmEsIHdlciBrYW5uIGRhcyBub2NoIGJlaGF1cHRlbiBvaG5lIHJvdCB6dQp3ZXJkZW4gOykKCi0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTk6IExPRCBLZXkgKFZhcmxhcmlvbiwgMTEuIEp1bCAyMDAxLCAxNDowMzoxNyk6Cn4jISBybj1QYXRyeW4gcnQ9OTk0ODUyOTcxIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CmljaCwgaWNoIHdlaXNzIG5vY2ggbmljaHRtYWwsIHdhcyBlaW5lIHJhdW1rb3BpZSBpc3QgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIwOiBMT0QgS2V5IChQYXRyeW4sIDExLiBKdWwgMjAwMSwgMTQ6MDM6NDApOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5NDg1Mjk5NyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NAplaW5lIHJhdWJrb3BpZSBtaXQgdHlwb3MuLi5hbHNvIHdhcyB6aWVtbGljaCBkb29mZXMgOikKCi0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTk6IExPRCBLZXkgKFNpbHZhbmEsIDExLiBKdWwgMjAwMSwgMTQ6MDM6NTQpOgp+IyEgcm49UGF0cnluIHJ0PTk5NDg1Mjk3MSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApIbW1tLi4uIGZhc3QuLi4gRXMgc2luZCBkcmVpIFJlY2huZXIuLi4gOy0pCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIwOiBMT0QgS2V5IChJc2ksIDExLiBKdWwgMjAwMSwgMTQ6MDQ6MTIpOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5NDg1Mjk5NyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApnYW56IGVpbmZhY2ggZHUgbmltbXN0IG5lbiBSYXVtIHVuZCBqYWdzdCBpaG4gZHVyY2ggZWluZW4KRHVwbGlrYXRvcgp1bmQgendpc2NoZW5kdXJjaCBob2xzdGUgZGlyIG5lbiBOb2JlbHByZWlzIGFiLgppc2kgKHJhZXVtZXdlcmZlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMDogTE9EIEtleSAoUGF0cnluLCAxMS4gSnVsIDIwMDEsIDE0OjA0OjEzKToKfiMhIHJuPVNpbHZhbmEgcnQ9OTk0ODUzMDM0IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CmFyZ2wuLi5zaWx2YW5hIGhhdCBuZW4gbGFlbmdlcmVuIGFscyBpY2ggOikKCi0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjA6IExPRCBLZXkgKFZhcmxhcmlvbiwgMTEuIEp1bCAyMDAxLCAxNDowNDoxNik6Cn4jISBybj1TaWx2YW5hIHJ0PTk5NDg1MzAzNCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApzaWVoc3RlLCBzb3dhcyBoYWIgaWNoIG5pY2h0LCBtZWluZSByYXVia29waWVuIGhhYmVuIGFsbGUga2VpbmUgdHlwb3MgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIxOiBMT0QgS2V5IChTaWx2YW5hLCAxMS4gSnVsIDIwMDEsIDE0OjA2OjA0KToKfiMhIHJuPVZhcmxhcmlvbiBydD05OTQ4NTMwNTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKV2llLi4uIERlaW5lIFJhdWJrb3BpZW4gaGFiZW4ga2VpbmUgVHlwb3MuLi4/IERhbm4gaGFzdCBEdSBzY2hvbiBtYWwga2VpbmUgTSQKUHJvZHVrdGUgaW4gUmF1YmtvcGllLi4uIEljaCBoYWIgamVkZW5mYWxscyBrZWluIE0kIFdlcmsgX29obmVfIFR5cG9zLi4uIDstKQoKICBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMjogTE9EIEtleSAoQW5hY3Jpb24sIDExLiBKdWwgMjAwMSwgMTQ6MDc6MDApOgp+IyEgcm49U2lsdmFuYSBydD05OTQ4NTMxNjQgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKSm8uIEljaCBmaW5kZSBlcyBhdWNoIGd1dCwgd2VubiBpbSBIVUQgbWVpbmVzIG1vbml0b3JzIG1hbnVhbCAobWFudWVsbCkKamVkZXNtYWwgbWl0IEhBTkRCVUNIIHVlYmVyc2V0enQgd2lyZC4gRGFzIHNpZG4gZGFubiBkaWUgZ2Vob2JlbmVuIFR5cG9zLgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIzOiBMT0QgS2V5IChWYXJsYXJpb24sIDExLiBKdWwgMjAwMSwgMTQ6MTA6MjEpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTk0ODUzMjIwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk0Nzk3OTY0CiJzdGVja2VuIHNpZSBpaHJlIHNwaWVsZXBvbHN0ZXIgaW4gZGllIHNwaWVsZWhhZmVuIFsuLi5dIGlociB0b2xsZQpzcGllbGVwb2xzdGVyIGlzdCBhdXNnZXN0YXR0ZXQgbWl0IHp3ZWkgZGF1ZXJzY2h1c3Nrbm9wZmVuLi4uIiAoYXVzenVnIGF1cyBkZXIKYmVkaWVudW5nc2FubGVpdHVuZyBlaW5lcyBnYW1lcGFkcykKbWVpbnN0IGR1IGRpZXNlIGFydCB2b24gdHlwb3M/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yNDogTE9EIEtleSAoR3JpbW1ib3JuLCAxMS4gSnVsIDIwMDEsIDE0OjIxOjIzKToKfiMhIHJuPVZhcmxhcmlvbiBydD05OTQ4NTM0MjEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKSG1tLiBBdWNoIHdlbm4gbWljaCBkYXMgYWxzIExhdy1hbmQtT3JkZXIgTWVuc2NoZW4gaGluc3RlbGx0OiBBYmVyIGljaCBrYW5uCmRhcywgd2FzIGljaCBlc3NlLCBiZXphaGxlbiwgaWNoIGthbm4gbWVpbmUgR2V0cmFlbmtlIGViZW5zbyBiZXphaGxlbiwgdW5kIGljaApoYWJzIGF1Y2ggbmljaHQgbm9ldGlnIGltIFN1cGVybWFya3QgZGllIEthc3NpZXJlcmluIHVtIDUgRE0genUgYmV0cnVlZ2VuIHdlbm4Kc2llIG1pciBmYWxzY2ggcmF1c2dpYnQuIFdlbm4gaWNoIGV0d2FzIG5pY2h0IGJlemFobGVuIGthbm4sIGthbm4gaWNocyBoYWx0CmF1Y2ggbmljaHQgaGFiZW4sIGRlc3dlZ2VuIGtvc3RldCBtZWluIFdlaW4gYXVjaCBrZWluZSAyMDAgRE0vRmxhc2NoZS4gVW5kIGJlaQpTb2Z0d2FyZSBzZWhlIGljaCBkYXMgZG9jaCBpbSB3ZXNlbnRsaWNoZW4gZ2VuYXVzbzogV2FzIGljaCBicmF1Y2hlIGthbm4gaWNoCm1pciBsZWlzdGVuLCBpY2ggaGFicyBuaWNodCBub2V0aWcgenUga2xhdWVuLgoKTmFqYSwgd2FzIGRhcyBTY2h3YXJ6ZmFocmVuIGltIEJ1cyBhbmdlaHQsIGRhcyBpc3QgbmF0dWVybGljaCBlaW5lIGdhbnogYW5kZXJlClNhY2hlLCBkYXMgaXN0IFNwb3J0Li4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjI1OiBMT0QgS2V5IChBbmF0b2wsIDExLiBKdWwgMjAwMSwgMjE6NDY6MjQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NDg1NDA4MyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApFcyBzcGllbHQgZG9jaCBhYnNvbHV0IGtlaW5lIFJvbGxlLCB3YXMgRHUgb2RlciBHb3Igb2RlciBQYXRyeW4gb2RlciBpY2gKZnVlciBlaW5lIEVpbnN0ZWxsdW5nIHp1IFNvZnR3YXJlcGlyYXRlcmllIG9kZXIgQXV0b2RpZWJzdGFobCBoYWJlbi4gV2llClNpbHZhbmEgdm9lbGxpZyBrb3JyZWt0IGFuZ2VtZXJrdCBoYXQsIGthbm4gZXMgc2ljaCBkYXMgTW9yZ2VuR3JhdWVuIGRlbgpFaW5kcnVjaywgZWluZSBQbGF0dGZvcm0gZnVlciBTb2Z0d2FyZXRhdXNjaC9XYXJleiB6dSBzdGVsbGVuLCBzY2hsaWNodApuaWNodCBsZWlzdGVuLiBXZWRlciBkZXIgVHJhZWdlciAoZGVyIEZvZXJkZXJ2ZXJlaW4gUHJvamVrdCBNb3JnZW5ncmF1ZW4KZS5WLikgbm9jaCBkZXIgSG9zdGVyIChHTUQgQmVybGluKSB3dWVyZGVuIHJpY2h0aWcgZ2x1ZWNrbGljaCB3ZXJkZW4sIHdlbm4KaXJnZW5kZWluIExpemVuemhhbHRlciBvZGVyIFNwaW5uZXIgKHZvbiBsZXR6dGVyZW4gZ2lidCBlcyB2ZXJtdXRsaWNoIG1laHIKYWxzIHVucyBsaWViIGlzdCkgQW56ZWlnZSBlcnN0YXR0ZXQgb2RlciBhdWYgaXJnZW5kd2VsY2hlIFRyb21tZWxuIGhhdXQuCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjI2OiBMT0QgS2V5IChHb3IsIDExLiBKdWwgMjAwMSwgMjI6MjU6MzUpOgp+IyEgcm49QW5hdG9sIHJ0PTk5NDg4MDc4NCByZz1hbnplaWdlbgp+IyEgdGlkPTk5NDc5Nzk2NApEYSBnZWJlIGljaCBkaXIgdm9sbGtvbW1lbiByZWNodCB1bmQgZGVzaGFsYiBoYWJlIGljaCBkZW4gQXJ0aWtlbCBhdWNoIHdpZWRlcgpnZWxvZXNjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yNzogTE9EIEtleSAoU29sbXlyLCAxMi4gSnVsIDIwMDEsIDAxOjUzOjEyKToKfiMhIHJuPUdvciBydD05OTQ4ODMxMzUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTQ3OTc5NjQKV2VsY2hlbiBBcnRpa2VsID8gOikKV2VsY2hlciBUaHJlYWQgPyA6KQoKU29sbXlyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmRndWVsdGlnISAoU2NobGVpY2hlciwgMjIuIEp1bCAyMDAxLCAxNDoyNDoyMyk6CkRpZXNhbWwgZ2ViZW4gd2lyIHVuc2VyZSBlbmRndWVsdGlnZSBIb2NoemVpdCBiZWthbm50LiBEZW5uIHdhaHJlIExpZWJlIGthbm4Ka2VpbiBNZW5zY2ggdHJlbm5lbi4gV2lyIGdlYmVuIHVucyBIZXV0ZSBhYmVuZCB1bSAyMjoyMiBVaHIgaW4gZGVyIEthcGVsbGUgZGFzCkphLVdvcnQuIFdlciBrb21tZW4gbW9lY2h0ZSBpc3QgdW5zIGhlcnpsaWNoIHdpbGxrb21tZW4uIFZvbiBQcmllc3RlcmtpbGxzCmJpdHRlbiB3aXIgYWJ6dXNlaGVuIGRhIGF1Y2ggTGFycyB6dSB1bnNlcmVuIEdhZXN0ZW4gZ2Vob2VydC4gClAuUy4gV2VyIGhldXRlIGFiZW5kIGVyc2NoZWludCB1bmQgc2ljaCBuZXR0IGJlbmltbXQgaXN0IGF1Y2ggYXV0b21hdGlzY2ggenUKdW5zZXJlciBSTC1Ib2NoemVpdCBlaW5nZWxhZGVuIQoKRGFzIHVlYmVyZ2x1ZWNrbGljaCBQYWFyClNhbW9zIHVuZCBTY2hsZWljaGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRW5kZ3VlbHRpZyEgKFNvbG15ciwgMjIuIEp1bCAyMDAxLCAxNjo0Njo0OCk6Cn4jISBybj1TY2hsZWljaGVyIHJ0PTk5NTgwNDY2MyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NTgwNDY2MwpJY2gga29tbWUsIGhhYmUga2VpbmUgRWlud2FlbmRlIHVuZCB3ZXJkJyBhdWNoIGdhbnogc3RpbGwgc2VpbiA6KQoKU29sKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFbmRndWVsdGlnISAoR29yLCAyMi4gSnVsIDIwMDEsIDIwOjI5OjM5KToKfiMhIHJuPVNvbG15ciBydD05OTU4MTMyMDggcmc9YW56ZWlnZW4KfiMhIHRpZD05OTU4MDQ2NjMKRWlud2FlbmRlIGdpYnQgbWFuIGVoIGVyc3Qga3VuZCwgd2VubiBzaWNoIGFsbGUgZnJpZWRsaWNoIHZlcnNhbW1lbHQgaGFiZW4gdW5kCmRlciBQcmllc3RlciBkaWUgZ2V3b2hudGUgRnJhZ2Ugc3RlbGx0LiB9Oi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSb2xsZW5zcGllbGVyIGluIEJhZXJsaW4/IChNb250YW51cywgMzEuIEp1bCAyMDAxLCAwMDowNjo0OCk6CkVpbmVuIFN0dWRpZW5rb2xsZWdlbiB2b24gbWlyIGhhdCdzIG5hY2ggYmVybGluIHZlcnNjaGxhZ2VuLCB1bmQgZXIgc3VjaHQKamV0enQgZWluZSBSb2xsZW5zcGllbGdydXBwZS4KSGFsbG8gYmVybGluZXIhIDotKQpLb2VubnQgaWhyIGRlbSBndXRlbiBNYW5uIGhlbGZlbj8gRXIgaXN0IG5ldHQsIHBmbGVnZWxlaWNodCwgYmVpc3N0Cihub3JtYWxlcndlaXNlKSBuaWNodCB1bmQgc3ByaWNodCBlaW5lbiBsZWljaHRlbiBSdWhycG90dC1EaWFsZWt0LgoKU2FndCBtaXIgYmVzY2hlaWQsIG9kZXIga29udGFrdGllcnQgaWhuIGRpcmVrdCB1dG5lciBhbmRyZWFzQGZpY2h0bmVyLW5ldC5kZQoKTWVyY2khCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUm9sbGVuc3BpZWxlciBpbiBCYWVybGluPyAoRGVudGksIDMxLiBKdWwgMjAwMSwgMDA6MDg6MjMpOgp+IyEgcm49TW9udGFudXMgcnQ9OTk2NTMwODA4IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk2NTMwODA4CgpIaWVyIGluIGRlciBHZWdlbmQgZ2lidHMgZG9jaCBzbyBuZSBSb2xsZW5zcGllbGVya25laXBlLCB3ZXJkIG1pcgptYWwgZGVuIE5hbWVuIGF1ZnNjaHJlaWJlbiB1bmQgZGllIEFkcmVzc2UuCgpEZW50aQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSb2xsZW5zcGllbGVyIGluIEJhZXJsaW4/IChSYXJkaWFuLCAgMS4gQXVnIDIwMDEsIDEzOjIwOjE2KToKfiMhIHJuPURlbnRpIHJ0PTk5NjUzMDkwMyByZz1hbnplaWdlbgp+IyEgdGlkPTk5NjUzMDgwOApSb2xsZW5zcGllbGVya25laXBlPwpEZW4gSGV4ZW5rZXNzZWwgZ2lidCBlcyBkb2NoIChsZWlkZXIsIGxlaWRlcikgZ2FyIG5pY2h0IG1laHIgOiggTWVpbnN0IGR1CnZpZWxsZWljaHQgZGFzICJEdW5nZW9uIj8gRGFzIGlzdCBpbiBOZXVrb2VsbG4sIGFuIGRlciBVOCAtIExlaW5lc3RyYXNzZSwgRWNrZQpMeWtlc3RyYXNzZSBvZGVyIHNvIGFlaG5saWNoLi4uCgpHcnVzcywKICBSYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBSb2xsZW5zcGllbGVyIGluIEJhZXJsaW4/IChEZW50aSwgIDEuIEF1ZyAyMDAxLCAxMzozODoxOSk6Cn4jISBybj1EZW50aSBydD05OTY2NjU4NDEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTY1MzA4MDgKCk5lbm50IHNpY2ggTXlzdGVyeSBJc2xhbmQuIElzdCBhdWYgZGVyIExlaWJuaXR6c3RyYXNzZSBhbiBkZXIgRWNrZQp6dXIgU2NoaWxsZXJzdHJhc3MgaW4gQ2hhcmxvdHRlbmJ1cmcuIEljaCB3YXIgc2VsYmVyIG5vY2ggbmV0IGRyaW4sCmFiZXIgZXMgc3RlaHQgZHJhbiwgZGFzcyBkb3J0IFBDLSwgTmV0ei0sIFJvbGxlbi0gdW5kIEJyZXR0c3BpZWxlCmdlbWFjaHQgb2RlciBhbmdlYm90ZW4gd2VyZGVuLgoKR3J1ZXNzZSwgRGVudGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFJvbGxlbnNwaWVsZXIgaW4gQmFlcmxpbj8gKFNvbG15ciwgIDEuIEF1ZyAyMDAxLCAyMDoxMDowMCk6Cn4jISBybj1EZW50aSBydD05OTY2NjU4OTkgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTY1MzA4MDgKSWNoIGVtcGZlaGxlIGltbWVyIHdpZWRlciBnZXJuZSBHcnVtcGYgaW4gVGVnZWwgYW4gZGVuIEJvcnNpZ3dlcmtlbi4KCkdydXNzIFNvbCoKClBzIDogR2VuYXVlIEFkcmVzc2UgZ2lidHMgYmVpIG1pcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogUm9sbGVuc3BpZWxlciBpbiBCYWVybGluPyAoU2NobGVpY2hlciwgIDEuIEF1ZyAyMDAxLCAyMzowMzoxOSk6Cn4jISBybj1Tb2xteXIgcnQ9OTk2Njg5NDAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk2NTMwODA4CkdydW1wZiBrb21tdCBhdXMgRHVlc3NlbGRvcmYgenVtaW5kZXN0IG5vY2ggIQoKU2NobGVpY2hlciBtYWwga2xhcnN0ZWxsZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBVFgtTmV0enRlaWwgZ2VzdWNodCAoR29yLCAgOC4gQXVnIDIwMDEsIDE2OjM1OjA3KToKU3VjaGUgZ3VlbnN0aWdlcyBOZXR6dGVpbCAoQVRYLUZvcm1mYWN0b3IpIHp1bSBzZWxiZXJhYmhvbGVuLiBJbiBCVwoKR3J1c3MgR29yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQVRYLU5ldHp0ZWlsIGdlc3VjaHQgKEFuYWNyaW9uLCAgOC4gQXVnIDIwMDEsIDE2OjM1OjU1KToKfiMhIHJuPUdvciBydD05OTcyODEzMDcgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTcyODEzMDcKV2lldmllbCBXYXR0ID8KCmFuYWMqIC0gaGF0IHRyb3R6ZGVtIGtlaW5zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFUWC1OZXR6dGVpbCBnZXN1Y2h0IChHb3IsICA4LiBBdWcgMjAwMSwgMTY6MzY6NDUpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTk3MjgxMzU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk3MjgxMzA3CklzIHRvdGFsIHNjaG51cHBlIDIwMC14eHggOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFUWC1OZXR6dGVpbCBnZXN1Y2h0IChBbWFyeWxsaXMsICA4LiBBdWcgMjAwMSwgMTY6Mzc6MzYpOgp+IyEgcm49R29yIHJ0PTk5NzI4MTQwNSByZz1hbnplaWdlbgp+IyEgdGlkPTk5NzI4MTMwNwpTY2hhdSBtYWwgYmVpIEsmTSwgZGllIGhhbSBzb3ZpZWwgZGF2b24sIGRhc3Mgc2llIHZlcmthdWZlbiA6KQoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NodXNzIHVuZCBUb3IgKDMuIFZlcnN1Y2gpIChNb250YW51cywgIDkuIEF1ZyAyMDAxLCAxNzo0OTo0Nik6CkljaCBoYWIgamEgc2Nob24gdmllbGUgbWl0IGRpZXNlbSBTcGllbCBnZW5lcnZ0LCB1bmQgamV0enQgZ2lidHMgZW5kbGljaCBkaWUKTmV1YXVmbGFnZSwgbWl0IG5ldWVyIHNjaG9lbmVyIEdyYXBoaWshCkVyaGFlbHRsaWNoIGF1ZiBkZXIgU3BpZWxlbWVzc2Ugb2RlciB3aWUgaW1tZXIgYmVpIG1pci4KWnVyIFNwaWVsZW1lc3NlIHdpcmQgdWVicmlnZW5zIGF1Y2ggbWl0ICJNdXRhYm9obiIgZWluZSB3ZWl0ZXJlCkJvaG5hbnphLVZhcmlhbnRlIGJlaSB1bnMgZXJzY2hlaW5lbi4gTWl0IGxpbWl0aWVydGVyIEF1ZmxhZ2UsIC0gYW0gYmVzdGVuCnNjaGlja3QgaWhyIG1pciBpaG0gVm9yZmVsZCBuZSBNYWlsLCB3ZWlsIGRhcyBTcGllbCB3YWhyc2NoZWlubGljaCB3aWVkZXIgNC02CldvY2hlbiBuYWNoIEVyc2NoZWluZW4gYXVzdmVya2F1ZnQgc2VpbiB3aXJkLiA6LSkKCi0tLS0gc25pcCBoZXJlIC0tLS0KCk5lYmVuICJNdXRhYm9obiIga29lbm5lbiB3aXIgbnVuIGF1Y2ggdW5zZXJlIHp3ZWl0ZSBIZXJic3RuZXVoZWl0Cm9mZml6aWVsbCBhbmt1ZW5kaWdlbjoKCiJTY2h1c3MgdW5kIFRvciIgaXN0IGRpZSBsZWljaHQgdWViZXJhcmJlaXRldGUgTmV1YXVmbGFnZSBkZXMgcmFzYW50ZW4KRnViYWxsc3BpZWxzIHZvbiBSdWRpIEhvZmZtYW5uLiAKCkVpbiBQYXNzIGphZ3QgZGVuIG5hZWNoc3RlbiwgTHVpZ2kgc3ByaW50ZXQsIE1heCBkcmliYmVsdCwgZmxhbmt0IHp1IE90dG8KLSBTY2h1c3MgdW5kIFRvciwgVG9vb3IhIEthcnRlbiBrbmFsbGVuIGF1ZiBkZW4gVGlzY2ggdW5kClN0YWR0aW9uYXRtb3NwaGFlcmUga29tbXQgYXVmLCB3ZW5uIGRpZSBTcGllbGVyIGRpZSBXaW5rZWx6dWVnZSBpaHJlcgpMaWVibGluZ2UgRnJpdHosIEx1aWdpLCBNYXgsIE90dG8gdW5kIFdpbGxpIGtvbW1lbnRpZXJlbi4KCiJTY2h1c3MgdW5kIFRvciIgaXN0IGVpbiBTcGllbCBmciAoMi0pIDQgU3BpZWxlciB1bmQgd2lyZCB3aWUgIk11dGFib2huIgphYiBIZXJic3QgMjAwMSBlcmhhZWx0bGljaCBzZWluLiAKCldlaXRlcmUgSW5mb3JtYXRpb25lbiBzaW5kIHVudGVyIHd3dy5sb29rb3V0LWdhbWVzLmRlIHp1IGZpbmRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVudGVya3VuZnQgdm9tIDI4Li0zMCAoMiBOYWVjaHRlKSBpbiBNdWVuY2hlbiBnZXN1Y2h0IChBdG96LCAyNS4gQXVnIDIwMDEsIDA5OjM4OjAwKToKTW9pbiEKSWNoIHN1Y2hlIGZ1ZXIgendlaSBOYWVjaHRlIGVpbmUgVW50ZXJrdW5mdCBpbiBNdWVuY2hlbi4gS2FubiBtaXIgZGFqZW1hbmQgd2FzCmVtcGZlaGxlbj8KR3J1c3MsIEF0b3oKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbnRlcmt1bmZ0IHZvbSAyOC4tMzAgKDIgTmFlY2h0ZSkgaW4gTXVlbmNoZW4gZ2VzdWNodCAoV3VyemVsLCAyNS4gQXVnIDIwMDEsIDA5OjQzOjU1KToKfiMhIHJuPUF0b3ogcnQ9OTk4NzI1MDgwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzI1MDgwCmxldHp0ZXMgbWFsIHdhciBpY2ggaW0gbWFycmlvdC4gbGllZ3QgaW4gZGVyIG5hZWhlIGRlciBhdXRvYmFobiwgYWJlciBpc3QKdHJvdHpkZW0gemllbWxpY2ggcnVoaWcuIGd1dGVzIGZydWVoc3R1ZWNrIChlaW4gInNlaHIgZ3V0IiBnaWJ0cyBudXIgZnVlcgpkYXMgaG9saWRheSBpbm4sIGFiZXIgZGEgd2FyIGF1c2dlYnVjaHQpLiBvcmRlbnRsaWNoZSB6aW1tZXIgdW5kIGVpbiBmZWF0dXJlLApkYXMgaWNoIHNvIG5vY2ggbmljaHQgZ2VzZWhlbiBoYWJlOiBkaWUgImV4cHJlc3NyZWNobnVuZyIuIG1hbiBtdXNzIG1vcmdlbnMKbnVyIG5vY2ggZGFubiBhdXNjaGVja2VuLCB3ZW5uIG1hbiBhYndlaWNodW5nZW4genUgZGVyIHJlY2hudW5nIGhhdCwgZGllCm5hY2h0cyB1bnRlciBkZXIgdHVlciBkdXJjaGdlc2Nob2JlbiB3aXJkLiBzZWhyIHplaXRzcGFyZW5kZXMgdmVyZmFocmVuLApmYWxscyBtYW4ga2VpbiBtaW5pYmFyanVua2llIGlzdC4gaW5zZ2VzYW10OiBlbXBmZWhsZW5zd2VydC4KCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGV1dHNjaGVyIFNwaWVsZS1QcmVpcyAoTGlhcmEsIDI1LiBBdWcgMjAwMSwgMTM6MDE6MTUpOgpNb2luIQoKRW5kZSBKdW5pIGhhdHRlIE1vbnRhbnVzIGhpZXIgYXVmIGRpZSBNb2VnbGljaGtlaXQgaGluZ2V3aWVzZW4sIG9ubGluZSBhbiBkZXIKQWJzdGltbXVuZyB6dW0gRGV1dHNjaGVuIFNwaWVsZS1QcmVpcyB0ZWlsenVuZWhtZW4uCgpIZXV0ZSBtb3JnZW4gYmVrYW0gaWNoIGVpbiBkaWNrZXMgUGFrZXQsIGluIGRlbSBhbHMgR2V3aW5uIHVuZCBEYW5rIGZ1ZXIgbWVpbmUKVGVpbGFuaG1lIGRhcyAnRGVyIEhlcnIgZGVyIFJpbmdlJy1HZXNlbGxzY2hhZnRzc3BpZWwgdm9uIEtvc21vcyBlbnRoYWx0ZW4Kd2FyLiAqc3RhdW4qCgpJY2ggaGFiIG1pY2ggdW0gc28gbWVociBnZWZyZXV0LCB3ZWlsIGRlciBWZXJsYWcgc2ljaCBvZmZlbmJhciBkaWUgTXVlaGUKZ2VtYWNodCBoYXQsIGRhcyBTcGllbCB2b24gSm9obiBIb3dlIGlsbHVzdHJpZXJlbiB6dSBsYXNzZW4uIEVzIHNpZWh0IHdpcmtsaWNoCktsYXNzZSBhdXMhIEdlc3BpZWx0IGhhYmUgaWNoIGVzIG5vY2ggbmljaHQsIGFiZXIgaGllciBtYWwgZWluIExpbmssIHdvIG1hbgplaW5lIGd1dGUgU2FtbWx1bmcgdm9uIElsbHVzdHJhdGlvbmVuIHZvbiBUb2xraWVuLU1vdGl2ZW4gZmluZGVuIGthbm4gKGF1Y2gKZWluaWdlIHZvbiBKb2huIEhvd2UpOgoKaHR0cDovL2Z0cC5zdW5ldC5zZS9wdWIvcGljdHVyZXMvZmFudGFzeS9Ub2xraWVuLwoKR3J1ZXNzZSwKTGlhcmEgKGZyZXV0IHNpY2gsIHdlaWwgc2llIGVpZ2VudGxpY2ggbmllIHdhcyBnZXdpbm50ISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW50ZXJrdW5mdCB2b20gMjguLTMwICgyIE5hZWNodGUpIGluIE11ZW5jaGVuIGdlc3VjaHQgKE1hcmN1cywgMjUuIEF1ZyAyMDAxLCAxMzowNjozMik6Cn4jISBybj1XdXJ6ZWwgcnQ9OTk4NzI1NDM1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzI1MDgwClVuZCBpbiB3ZWxjaGVtIHByZWlzbGljaGVtIFJhaG1lbiBsaWVndCBkYXMgTWFycmlvdD8gVW50ZXIgMjAwIERNL05hY2h0PyA7KQoKQ2lhbywgTWFyY3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbnRlcmt1bmZ0IHZvbSAyOC4tMzAgKDIgTmFlY2h0ZSkgaW4gTXVlbmNoZW4gZ2VzdWNodCAoV3VyemVsLCAyNS4gQXVnIDIwMDEsIDE2OjE1OjQ3KToKfiMhIHJuPU1hcmN1cyBydD05OTg3Mzc1OTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3MjUwODAKbWl0IGZpcm1lbnJhYmF0dCB1bnRlciAzMDAsLSBpbW1lcmhpbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVW50ZXJrdW5mdCB2b20gMjguLTMwICgyIE5hZWNodGUpIGluIE11ZW5jaGVuIGdlc3VjaHQgKFpvb2ssIDI1LiBBdWcgMjAwMSwgMTY6MjA6MzkpOgp+IyEgcm49V3VyemVsIHJ0PTk5ODc0ODk0NyByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODcyNTA4MApXb2JlaSBkaWUgSWRlZSBtaXQgZGVyICJFeHByZXNzcmVjaG51bmciIHdpcmtsaWNoIHppZW1saWNoIGNsZXZlciBpc3QuCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdGYgJiBrZXlwYWQgJiB4dGVybSAoTWVzaXJpaSwgMjUuIEF1ZyAyMDAxLCAyMToxOTowNSk6CgpXZXIgYmlzaGVyIGRhbWl0IFByb2JsZW1lIGhhdHRlLCBkZW0ga2FubiBnZWhvbGZlbiB3ZXJkZW4uCkljaCBoYWIgZXMgZXJzdCBtaXQgZGVuIGtleW1hcHMgZGVzIExpbnV4IEtlcm5lbHMgdmVyc3VjaHQsIGJpcyBtaXIKUGF0cnluIGRlbiBUaXAgbWl0IC9hcHAtZGVmYXVsdHMvWFRlcm0gZ2FiLgpBYmVyIG1hbiBrYW5uIHNpY2ggc29nYXIgbmVuIHN0YXJ0c2NyaXB0IGJhc3RlbG4sIHdhcyBudXIgZnVlciBkYXMKdGYgdGVybWluYWwgZGllIHRhc3RlbnN0cmluZ3MgdW1nZXNldHp0IHdlcmRlbi4KSWNoIHZlcnN1Y2hlIGVzIG1hbCBoaWVyIHJlaW4genUgcGFzdGVuLCBoYWJzIGFscyAvdXNyL2xvY2FsL2Jpbi90ZnRlcm0KYWJnZWxlZ3Q6Cnh0ZXJtIC14cm0gJ1hUZXJtKlZUMTAwLlRyYW5zbGF0aW9uczogI292ZXJyaWRlIFwKICAgPEtleT5LUF8xOiBzdHJpbmcoIlwwMzNPcSIpIFxuXAogICA8S2V5PktQXzI6IHN0cmluZygiXDAzM09yIikgXG5cCiAgIDxLZXk+S1BfMzogc3RyaW5nKCJcMDMzT3MiKSBcblwKICAgPEtleT5LUF80OiBzdHJpbmcoIlwwMzNPdCIpIFxuXAogICA8S2V5PktQXzU6IHN0cmluZygiXDAzM091IikgXG5cCiAgIDxLZXk+S1BfNjogc3RyaW5nKCJcMDMzT3YiKSBcblwKICAgPEtleT5LUF83OiBzdHJpbmcoIlwwMzNPdyIpIFxuXAogICA8S2V5PktQXzg6IHN0cmluZygiXDAzM094IikgXG5cCiAgIDxLZXk+S1BfOTogc3RyaW5nKCJcMDMzT3kiKSBcblwnCk1lc2lyaWkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnBpY2t1cCAoV3VyemVsLCAyNi4gQXVnIDIwMDEsIDAxOjEzOjA1KToKa2VubnQgc2ljaCBqZW1hbmQgbWl0IHNvbGNoZW4gYXV0b3MgYXVzPwpzdWNoZSBlaW5lbiBnZWxhZW5kZWdhZW5naWdlbiBwaWNrdXAgbWl0IGhhcmR0b3AgdW5kIGFuaGFlbmdlcmt1cHBsdW5nLgp6dWdrcmFmdCBzb2xsdGUgZ3Jvc3MgZ2VudWcgc2VpbiwgdW0gendlaSBwZmVyZGUgaW0gYW5oYWVuZ2VyIHp1IHppZWhlbi4gZWluCnR5cGlzY2hlciBnZWxhZW5kZXdhZ2VuIHRhdWd0IG5pY2h0IGJlc29uZGVycyBmdWVyIGRpZSBhdWZnYWJlLCB3aWUgbWFuIHNlaHIKc2NobmVsbCBmZXN0c3RlbGx0LCB3ZW5uIG1hbiBtYWwgdmVyc2Nod2l0enRlIHNhZXR0ZWwgaW4gcmllY2h3ZWl0ZSB1ZWJlcgpsYWVuZ2VyZSBkaXN0YW56IHRyYW5zcG9ydGllcnQgaGF0Li4uCmhhYmUgbWlyIGRlbiBsMjAwIHZvbiBtaXRzdWJpbGxpZyBtYWwgYW5nZXNlaGVuLCBmdWVyIGVpbiBlaW56ZWxuZXMgcGZlcmQKaXN0IGRlciB2b2VsbGlnIGF1c3JlaWNoZW5kLiBiZWkgendlaWVuIHNjaHdhZWNoZWx0IGVyIGFiZXIgemllbWxpY2guCmhhYiBpbSBtb21lbnQga2VpbmUgaWRlZSwgd28gaWNoIG1hbCBzY2hhdWVuIHNvbGx0ZS4gamVtYW5kIG4gdGlwPwoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogdGYgJiBrZXlwYWQgJiB4dGVybSAoS2VsbHlidW5keSwgMjYuIEF1ZyAyMDAxLCAxNDowMjowOCk6Cn4jISBybj1NZXNpcmlpIHJ0PTk5ODc2NzE0NSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc2NzE0NQpCaXNzaSBzcGFldCB3ZWlsIGljaCBrZWluZW4gWnVncmlmZiBhdWYgZGllIG9sbGVuIE9TRi1hbHBoYXMgaGFiZSBhYmVyCnRyb3R6ZGVtIGRhbmtlIDstKQoKRHVtcGZiYWNrZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHBpY2t1cCAoWmFybml5YSwgMjcuIEF1ZyAyMDAxLCAwNzo1ODo0OSk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTk4NzgxMTg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1CkhpIFd1cnplbCwgCgphbHNvIGljaCB3aWxsIGphIG5pY2h0IGxhZXN0ZXJuLCBhYmVyIGljaCBkZW5rZSwgbWl0IGVpbmVtIE1vZGVsbCBhdXMgZGVuIFVTQQprb21tc3QgZHUgc2ljaGVyIGtsYXIuLi4gS290ZXQgYWJlciBlaW5pZ2VzLCBhdWNoIG1laXN0IGltIFZlcmJyYXVjaC4gQWxzbyBpY2gKYmluIGVpbiBGYW4gdm9uICJDaGVyb2tlZSIgdm9uIEplZXAuCgpNYXJjLCBiZWtlbm5lbmRlciBDb3VudHJ5IEZhbi4KClAuUy46IEljaCB3ZWlzcyBhdWNoLCBkYXNzIENyeXNsZXIgZ3V0ZSBNb2RlbGxlIGhhdC4gVmVyZ2lzcyBtZWluZXIgTWVpbnVuZwpuYWNoIGVpbmZhY2ggQXNpYXRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcGlja3VwIChOb25uZSwgMjcuIEF1ZyAyMDAxLCAwODo1MTozMik6Cn4jISBybj1aYXJuaXlhIHJ0PTk5ODg5MTkyOSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpBbHNvIG1pdCBDaGVyb2tlZXMgaGFiZSBpY2ggc2NobGVjaHRlIEVyZmFocnVuZyBnZW1hY2h0LiBCaW4gbWl0IHNvbSBEaW5nCnF1ZXRyIGR1cmNoIGRpZSBVU0EuIERlciB0dXQgc2ljaCBsb2NrZXIgMTUgTCByZWluIHVuZCB6b2cgYmVpIDQgTGV1dGVuIG1pdApHZXBhZWNrIHNjaG9uIGtlaW5lbiBIZXJpbmcgdm9tIFRlbGxlci4gRWluZSBFeCB2b24gbWlyIHJlaXRldCwgZGllIGZhZWhydAplaW5lbiBUb3lvdGEuIERhcyBEaW5nIGlzdCBuZXR0LCBrb3N0ZXQgYWJlciBlaW5pZ2VzIHVuZCBpY2ggd2Vpc3MgbmljaHQsIG9icwpkZW4gYXVjaCBhbHMgUGlja3VwIGdpYnQuIElzdCBhYmVyIGVpbiBEaWVzZWwgdW5kIHZlcmJyYXVjaHQgdW0gZGllIDEwIEwuIFdpcmQKYXVjaCBnZXJuIGluIEFmcmlrYSB2b24gV2lsZGh1ZXRlcm4gYmVudXR6dCwgc3ByaWNodCBmdWVyIGRpZQpadXZlcmxhZXNzaWdrZWl0LgoKTm9ubmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBwaWNrdXAgKFpvb2ssIDI3LiBBdWcgMjAwMSwgMDg6NTU6NDgpOgp+IyEgcm49Tm9ubmUgcnQ9OTk4ODk1MDkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1CldlaXNzIGphIG5pY2h0LCBvYnMgZGVuIGFscyBQaWNrdXAgZ2lidCwgYWJlciBkZXIgVG95b3RhIExhbmRDcnVpc2VyCmlzdCBuZW4gcmVjaHQgenV2ZXJsYWVzc2lnZXMgQXV0by4gTmVuIEJla2FubnRlciBudXR6dCBkZW4gaW4gS2VueWEsIApkYW1pdCBrb21tdCBtYW4gcmVjaHQgZ3V0IGR1cmNobiBCdXNjaCwgc2VsYnN0IHdlbm4gZXMgZ2VyZWduZXQgaGF0LgpVbmQgZGllIDVsLU1hc2NoaW5lIGhhdCBhdWNoIG9yZGVudGxpY2ggU2FmdC4gOi0pCgpHcnVzcywgWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHBpY2t1cCAoVHJveSwgMjcuIEF1ZyAyMDAxLCAwODo1Nzo1Mik6Cn4jISBybj1Ob25uZSBydD05OTg4OTUwOTIgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKSG1tLiBJY2ggZmFocmUgdm9uIEhhdXNlIGF1cyBrZWluZSBQaWNrdXBzLCBoYWIgbWlyIGFiZXIgaW4gQXVzdHJhbGllbiBlaW5lbgpnZW1pZXRldCBnZWhhYnQuIERpZSBBdXNzaWVzIGhhbSBkYSBzbyBpaHJlIGVpZ2VuZW4gVm9yc3RlbGx1bmdlbi4gSmVkZW5mYWxscwpoYWJlbiBzaWUgaGVyemxpY2ggdWViZXIgZGllIEdlbGFlbmRlZ29sZi1QbGFrYXRlIGdlbGFjaHQuCkRvcnQgZ2lidHMgNCBGcmFrdGlvbmVuOiBUb3lvdGEsIEhvbGRlbiAoR2VuZXJhbCBNb3RvcnMgPT0gT3BlbCksIEZvcmQgdW5kCk1lcnplZGVzLUJlbnouIFZvbiBsZXR6dGVyZW4gbnVyLCBhdXNzY2hsaWVzc2xpY2gsIGVpbnppZyB1bmQgYWxsZWluIGRlcgpVbmltb2cuIEVpbiBVbmltb2cgc29sbHRlIGluIGRlciBMYWdlIHNlaW4sIGltIE5vdGZhbGwgYXVjaCBtZWhyIGFscyAyClBmZXJkZSB6dSB6aWVoZW4uLi4KClRyb3kgLSBhbnNvbnN0ZW4ga2VpbmUgQWhudW5nIHZvbiBzb3dhcyBoYWJlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHBpY2t1cCAoWmFybml5YSwgMjcuIEF1ZyAyMDAxLCAwOTowMToyOCk6Cn4jISBybj1ab29rIHJ0PTk5ODg5NTM0OCByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpIbW0gaWNoIGRlbmtlLCBkaWUgRnJhZ2UgaXN0IG5pY2h0LCBvYiBkZXIgV2FnZW4gYW4gc2ljaCBndXQgZHVyY2ggZGVuIEJ1c2NoCmtvbW10LCBzb25kZXJuLCBvYiBlciBlaW5pZ2VybWFzc2VuIGd1dCB1ZWJlciBCYXllcm5zIFN0cmFzc2VuIGtvbW10LCB3ZW5uCmhpbnRlbiBlaW4gbWl0IDIgYmVsZ2lzY2hlbiBLYWx0Ymx1ZXRlcm4gbGVpY2h0IHVlYmVybGFkZW5lciBBbmhhZW5nZXIgZHJhbgppc3QuLi4gVG95b3RhIGlzdCB3aXJrbGljaCBndXQsIGljaCBmYWhyZSBzb3dhcyBzZWl0IEphaHJlbiAobm9ybWFsZXMgQXV0bykKdW5kIGltIEdlbGFlbmRld2FnZW5iZXJlaWNoIG51dHp0IGRpZSBSaGVpbmJyYXVuIGRpZSBEaW5nZXIgaGllciBuaW4gZGVuCkJyYXVua29obGV0YWdlYmF1Z3J1YmVuLiBJY2ggZGVua2UsIGVzIGdpYnQgdm9uIGplZGVyIEZpcm1hIHZlcnNjaGllZGVuc3RlCk1vZGVsbGUgbWl0IHZlcnNjaGllZGVuZW4gTW90b3Jlbi4uLiBJY2ggaGFiIGhhbHQgS29udGFrdCB6dSBlaW5pZ2VuIFRleGFuZXJuCnVuZCBkaWUgc2Nod29lcmVuIGF1ZiBBbWlzLiBBdXNzZXJkZW4ga2VubiBpY2ggV3VyemVsIHNvIGd1dCwgZGFzcyBpY2ggc2ljaGVyCmJpbiwgZGFzcyBlciBzaWNoIHNjaG9uIGJlaSBtZWhyZXJlbiBBbmJpZXRlcm4gaW5mb3JtaWVyZW4gd2lyZCwgdW0gZGFubgpsZXR6dGVuZGxpY2ggZGFzIGNvb2xlcmUgQXV0byB6dSBob2xlbiA6KQoKTWFyYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogcGlja3VwIChOb25uZSwgMjcuIEF1ZyAyMDAxLCAwOTowNDoxNSk6Cn4jISBybj1aYXJuaXlhIHJ0PTk5ODg5NTY4OCByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpEYXMgbWl0IGRlciBHZWxhZW5kZWdhZW5naWdrZWl0IHNvbGx0ZSBtYW4gYmVpIFJlaXR0dXJuaWVyZW4gbmljaHQKdW50ZXJzY2hhZXR6ZW4uIFBhcmtwbGFldHplIHNpbmQgZGEgbWVpc3QgRmVsZGVyIG9kZXIgV2llc2VuLiBXZW5uIGVzIGdlcmVnbmV0CmhhdCB1bmQgZGEgMjAwIEF1dG9zIG1pdCBIYWVuZ2VyIHJ1bnRlciB1bmQgd2llZGVyIGRyYXVmIGZhaHJlbiwga2FubiBtYW4gZGVuClVudGVyZ3J1bmQgbmljaHQgbWVociBtaXQgQmF5ZXJucyBTdHJhc3Nlbiwgc29uZGVybiBlaGVyIG1pdCBkZW0gS2VuaWFuaXNjaGVuCkJ1c2NoIHZlcmdsZWljaGVuLiAoYzsKCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogcGlja3VwIChaYXJuaXlhLCAyNy4gQXVnIDIwMDEsIDA5OjA3OjU5KToKfiMhIHJuPU5vbm5lIHJ0PTk5ODg5NTg1NSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpqYWphamEuLi4gc293ZWl0IGhhc3QgZHUgcmVjaHQsIGFiZXIgd2llc28gd2lsbHN0IGR1IGZ1ZXIgZGVuIFNjaGxhbW0gZWluZW4Kc3RhcmtlbiBNb3RvciBoYWJlbiwgd2VubiBoaW50ZW4gYXVmIGRlbSBIYWVuZ2VyIDIgYmVsZ2lzY2hlIEthbHRibHVldGVyIHNpbmQ/CkRhIHNwYW5udCBtYW4gdW0gdW5kIGRpZSB6aWVoZW4gZGVuIFdhZ2VuIGRhbm4gZnVlciBEaWNoIGF1cyBkZW0gRHJlY2suLi4uIAoKRnJhZyBtaWNoIG51ciwgaW4gd2lld2VpdCBzbyBlaW4gS2xhdGJsdWV0ZXIgYmVpIGVpbmVtIHR1cm5pZXIgUHVua3RlIG1hY2h0IDopCgpNYXJjCgpQLlMuOiBXaWVkZXIgbWFsIGVpbiBUb3BpYywgd2FzIHZlcnNjaG1hcnJudC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogcGlja3VwIChab29rLCAyNy4gQXVnIDIwMDEsIDA5OjE3OjQyKToKfiMhIHJuPVphcm5peWEgcnQ9OTk4ODk2MDc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1Ck1lZ2FzY2htYXJybiBydWxleiEKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBwaWNrdXAgKFhlbmFkYSwgMjcuIEF1ZyAyMDAxLCAwOToyMjo0Myk6Cn4jISBybj1ab29rIHJ0PTk5ODg5NjY2MiByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpKYSBhYmVyIG11ZXNzdCBpaHIgZGllIGdhbnplIE1QQSBpbmZpemllcmVuPyA6KQpYZW5hZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IHBpY2t1cCAoR3JpbW1ib3JuLCAyNy4gQXVnIDIwMDEsIDA5OjI0OjUwKToKfiMhIHJuPVhlbmFkYSBydD05OTg4OTY5NjMgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKRGFzIHNpbmQgbnVyIEdhc3RzcGllbGUsIG9mdCBnZW51ZyB2b24gbWVnYXNjaG1hcnJuZnJlbWRlbiBMZXV0ZW4gaW5pdGlpZXJ0LgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogcGlja3VwIChXdXJ6ZWwsIDI3LiBBdWcgMjAwMSwgMTA6MjM6MzYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5ODg5NzA5MCByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQphbnl3YXksIHdlbm4gZXMga2FsdGJsdWV0ZXIgd2FlcmVuIHd1ZXJkZSBpY2ggZGVuIHVuaW1vZyBmYXZvcmlzaWVyZW4gOikKc2luZCBhYmVyIGtsZWluZSBjcmlvbGxvcywgZGllIHNpbmQgbmljaHQgd2lya2xpY2ggZHJhdWYgZ2VlaWNodCwga2FycmVuCmF1cyBkZW0gZHJlY2sgenUgemllaGVuLiBkYW5rZSBhbiBhbGxlLCBpY2ggbWFjaGUgbWljaCBtYWwgd2llZGVyIGF1ZiBkaWUKc3VjaGUuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBwaWNrdXAgKFpvb2ssIDI3LiBBdWcgMjAwMSwgMTA6MzQ6NTIpOgp+IyEgcm49V3VyemVsIHJ0PTk5ODkwMDYxNiByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpXaWU/IEVuZGV0IGRlciBUaHJlYWQgZGFtaXQ/IFVuZCB3YXMgZ2FlYmUgZXMgZnVlciBSZV4xMDA/Cgpab29rIGtlaHJ0IGluIGRpZSBIZWltYXQgenVydWVjay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBwaWNrdXAgKEthcmlzLCAyNy4gQXVnIDIwMDEsIDEwOjQwOjAwKToKfiMhIHJuPVd1cnplbCBydD05OTg5MDA2MTYgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKQWxzbywgaWNoIHd1ZXJkZSBlaW5mYWNoIG1hbCBiZWkgZGVyIEZpcm1hIG1pdCBkZXIgUmVudG5lcnppZWxlaW5yaWNodHVuZwphdWYgZGVyIE1vdG9yaGF1YmUgbmFjaGZyYWdlbi4gRnVlciBkaWUgQnVuZGVzd2VociBiYXVlbiBkaWUgamEgYXVjaApnYW56IG5ldHRlIEdlbGFlbmRld2FnZW4sIG5lbiBBdWZydWVzdHNhdHogJ0FuaGFlbmdlcmt1cHBsdW5nJyB3aXJkcyB3b2hsIAphdWNoIGdlYmVuLiBVbmQgd2lldmllbCBkYXMgdGVpbCBzY2hsdWNrdCBkdWVyZnRlIERpciBqYSBlaCBlZ2FsCnNlaW4gOykuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogcGlja3VwIChHbG9pbnNvbiwgMjcuIEF1ZyAyMDAxLCAxMDo0NjoyOCk6Cn4jISBybj1LYXJpcyBydD05OTg5MDE2MDAgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKV2VubiBpaG0gVmVyYnJhdWNoIGVnYWwgd2FlcmUga29lbm50ZSBlciBhdWNoIGVpbmVuIExhZGEgTml2YSBuZWhtZW4uIERlcgprb21tdCBkdXJjaCBqZWRlbiBEcmVjayAobWVpbiBWYXRlZXIgaXN0IGRhbWl0IGhpbiB1bmQgd2llZGVyIHp1IEJvaHJ1bmdlbgpnZWZhaHJlbikgdW5kIHNjaGx1Y2t0IGFiZXIgMjAgTGl0ZXIuIEFiZXIgaWNoIG5laG1lIG1hbCBhbiwgZGFzcyBXdXJ6ZWwgc2VpbmUKUGZlcmRlIG5pY2h0IGluIEdlZ2VuZGVuIG1pdCB0YXVlbmRlbSBQZXJtYWZyb3N0Ym9kZW4gb2RlciBhZWhubGljaGVuIFNjaG11dHoKZmFocmVuIHdpcmQuCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogcGlja3VwIChXdXJ6ZWwsIDI3LiBBdWcgMjAwMSwgMTA6NDY6NDApOgp+IyEgcm49S2FyaXMgcnQ9OTk4OTAxNjAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1Cmcta2xhc3NlLCBnaWJ0IGVzIGF1Y2ggZnVlciBwcml2YXRsZXV0ZS4gbmV1IHNpbmQgZGllIG5vY2gKZGV1dGxpY2ggdGV1cmVyIGFscyBkaWUgbS1rbGFzc2UuLi4gYWJlciBkYXMgbW9kZWxsIHdpcmQgc2VpdCAyMSBqamFocmVuCmdlYmF1dC4gaGFiIG1hbCBpbSBuZXQgZ2VzY2hhdXQsIGVpbiAyMCBqYWhyZSBhbHRlciB3YWdlbiBtaXQKMjUwMDAwIGttIGtvc3RldCBudXIgbm9jaCBzY2hsYXBwZSAxMDAwMC0xNTAwMCBtYXJrLiB3ZW5uIGVyIGVpbmlnZXJtYXNzZW4KZXJoYWx0ZW4gdW5kIHJvc3RmcmVpIGlzdCwgdmllbGxlaWNodCBhdWNoIG1hbCAyMDAwMCBtYXJrLiBuYSBqYS4uLgp0cm90eiBhbGxlbSBoYWV0dGUgaWNoIGxpZWJlciBlaW5lbiBwaWNrdXAuIHdlciBtYWwgaW0gc29tbWVyIG1pdCB6d2VpCnNhZXR0ZWxuLCBzYXR0ZWxkZWNrZW4gZXRjIGdlZmFocmVuIGlzdCwga2FubiBkYXMgYmVzdGltbXQKbmFjaHZvbGx6aWVoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogcGlja3VwIChLYXR6ZW50YW50ZSwgMjcuIEF1ZyAyMDAxLCAxNzo1OToxNik6Cn4jISBybj1XdXJ6ZWwgcnQ9OTk4OTAyMDAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1Ckhhc3QgZHUgZGVuIEwyMDAgZGVubiBtYWwgZ2V0ZXN0ZXQ/IERhIGdpYnQgZXMgYmVzdGltbXQgZG9jaCBhdWNoIHN0YWVya2VyZQpNb2RlbGxlPyBEaWUgc2luZCBkb2NoIGltIFJlaXRzcG9ydCBzbyBha3RpdiAoTWl0c3ViaXNoaSkuIFNvbGwgZGFzIEZaRyBuZXUKc2Vpbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE0OiBwaWNrdXAgKEFuYWNyaW9uLCAyNy4gQXVnIDIwMDEsIDE4OjE0OjQzKToKfiMhIHJuPUthdHplbnRhbnRlIHJ0PTk5ODkyNzk1NiByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpBbHNvIG1pdCBGb3JkIGlzdCBlcyBzbyBuZSBTYWNoZSAuLi4gZGllIGhhYmVuIENyYXNodGVzdHMgei5CLiBtaXQgZGVtIEYxNTAKZ2VtYWNodCAuLi4gYWxzbyBkaWUgVWViZXJsZWJlbnNjaGFuY2UgaXN0IGRhIGdsZWljaCBudWxsIC4uLgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE1OiBwaWNrdXAgKEdyaW1tYm9ybiwgMjcuIEF1ZyAyMDAxLCAxODoxNTowOSk6Cn4jISBybj1BbmFjcmlvbiBydD05OTg5Mjg4ODMgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKRnVlciBkZW4gRmFocmVyIG9kZXIgZGllIFBmZXJkZT8KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IHBpY2t1cCAoQW5hY3Jpb24sIDI3LiBBdWcgMjAwMSwgMTg6MTY6MzcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5ODkyODkwOSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpGYWhyZXIgYXVmIGplZGVuIEZhbGwgLi4gYWJlciBQZmVyZCBtb2VjaHRlIGljaCBkYW5uIGF1Y2ggbmljaHQgc2VpbiAuLgoKYW5hYyogKEVsZi9NZW5zY2gpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNzogcGlja3VwIChXdXJ6ZWwsIDI3LiBBdWcgMjAwMSwgMTk6MDk6NTUpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTk4OTI4OTk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1CndlciBnbGF1YnQsIGVpbiBnZWxhZW5kZXdhZ2VuIHNlaSBzaWNoZXJlciBhbHMgZWluIHBrdywgbnVyIHdlaWwgZXIgYnVsbGlnZXIKYXVzc2llaHQsIGxlYnQgaW0gaXJydHVtLiBkYXMgaXN0IG51biBtYWwgc28uIHdvIGthbm4gbWFuIHdhcyB1ZWJlciBkaWVzZQpjcmFzaHRlc3RzIG5hY2hsZXNlbj8gaGFiIG1pciBoZXV0ZSBlaW5lbiBmb3JkIGFuZ2VzZWhlbiwgZGVyIG1hY2h0ZSBhbiBzaWNoCmtlaW5lbiBzY2hsZWNodGVuIGVpbmRydWNrLiBhdWYgamVkZW4gZmFsbCBrcmFlZnRpZ2VyIGFscyBkZXIgbWl0c3ViaWxsaWcuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBwaWNrdXAgKFNvbG15ciwgMjcuIEF1ZyAyMDAxLCAyMToyNzoyNCk6Cn4jISBybj1ab29rIHJ0PTk5ODkwMTI5MiByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpTb2dhciB1bnNlciBHb3R0IG1lZ2FzY2htYXJybnQgbWl0LCAuLi4gdHNlIHRzZS4gRHUgc29sbHRlc3QgRGVpbmUKR2xhZXViaWdlbiBtYWwgYmVrZWhyZW4gOikKClNvbCosIG1pdCBkZXIgQml0dGUgYW4gWm9vayBNZWdhc2NobWFycm4gYmVpIEFydGlrZWwgOTk5OSB6dSBzY2hsaWVzc2VuLgpCZWkgUmUxMC4wMDAgc2luZCBuYWVtbGljaCAxMDAgTGl0ZXIgRnJlaWJpZXIsIHdvIGljaCBub2NoIG5pY2h0IG1hbAp3ZWlzcywgd2llIGljaCBkaWUgZmluYW56aWVyZW4gc29sbCAqZyosIGZhZWxsaWcuLi5OYWphLCBtaXIgZmFlbGx0CnNjaG9uIHdhcyBlaW4uIEZ1ZXIgQmllciB2ZXJ6aWNodGUgaWNoIGF1Y2ggZ2VybiBhdWZzIGVzc2VuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcGlja3VwIChIb2JvLCAyNy4gQXVnIDIwMDEsIDIzOjAzOjExKToKfiMhIHJuPVd1cnplbCBydD05OTg3ODExODUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKV2llIHdhZXIncyBtaXQgZWluZW0gbmV1ZW4gSGFlbmdlciBtaXQgU2F0dGVsa2FtbWVyPyBBdWNoIGluIGRpZSBrbGVpbnN0ZQpLYW1tZXIgcGFzc2VuIGRpZSBiZWlkZW4gdmVyc2Nod2l0enRlbiBEZWNrZW4gdW5kIEd1cnRlIC0gdW5kIGRhcyBMZWRlcnpldWdzCnNlbGJlciBpc3QgamEgbmljaHQgdmVyc2Nod2l0enQuCgogICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHBpY2t1cCAoS2FyaXMsIDI3LiBBdWcgMjAwMSwgMjM6MDc6NTYpOgp+IyEgcm49SG9ibyBydD05OTg5NDYxOTEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKWnVtIFRldWZlbCBhdWNoLi4uIHdhcnVtIGZhZWxsdCBtaXIgZGFzIGpldHp0IGVyc3QgZWluLi4uCklociBoYWJ0IDIgKGluIFdvcnRlbjogendlaSkgUGZlcmRlLCB1bmQgZGF6dSBkaWUgcGFzc2VuZGVuIFNhZXR0ZWwuCldhcnVtIHVtIGFsbGVzIGluIGRlciBXZWx0IHdvbGx0IGlociBkaWUgVmllY2hlciBkZW5uIG5pY2h0CmVpbmZhY2ggZXNzZW4/CkFiZXIgbmVpbiwgaWhyIG11ZXNzdCBkaWUgamEgdW5iZWRpbmd0IHNwYXppZXJlbmZhaHJlbi4gREFTIGlzdCBudW4gCndpcmtsaWNoIGRlciBHaXBmZWwgZGVyIERla2FuZGVuei4gSWNoIGRhY2h0ZSBlaWdlbnRsaWNoIGltbWVyLCBkYXNzCmRpZXNlIFZpZXJiZWluZSB6dW0gUmVpdGVuIGF1ZiBNdXR0ZXIgRXJkZSAoZGVzd2VnZW4gYXVjaCAnUGZlcmRsJywgd2VpbAp3ZW5ucyBmbGllZ2VuIGtvZW5udGUsIHd1ZXJkcyBqYSAnUGZsdWZ0bCcgaGVpc3NlbikgZ2VkYWNodCBzZWllbi4uClVuZCBkYXp1IGJyYXVjaHQgbWFuIG51biBhbHNvIGVpbmVuIFBpY2t1cD8gU2Nob2VuZSBuZXVlIFdlbHQuLi4KCkthcmlzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBwaWNrdXAgKFNvbG15ciwgMjcuIEF1ZyAyMDAxLCAyMzoyMToxMCk6Cn4jISBybj1LYXJpcyBydD05OTg5NDY0NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKUGZsdWZ0bD8gUGZlcmRsPyBBY2ggbmVlLCBTY2h1c3RlciBibGVpYiBiZWkgRGVpbmVuIEtyaXN0YWxsZHJhY2hlbgpzYWcgaWNoIGltbWVyLCAuLi5TY2hvZW5lIGFsdGUgV2VsdCwgd2llc28gRXZvbHV0aW9uIHdlbm5zIHNvIGdhbnoKaHVlYnNjaCBpcyc/CgpTb2wqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBwaWNrdXAgKFd1cnplbCwgMjguIEF1ZyAyMDAxLCAwMTo0MTo1NSk6Cn4jISBybj1Tb2xteXIgcnQ9OTk4OTQ3MjcwIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1CmhhZW5nZXIgbWl0IHNhdHRlbGthbW1lciBpc3QgYW4gc2ljaCBlaW5lIGd1dGUgaWRlZS4gbGVpZGVyIHNpbmQgZGllc2UKa2FtbWVybiBuaWNodCBmdWVyIHdlc3Rlcm5zYWV0dGVsIGdlbWFjaHQsIHNvbmRlcm4gZnVlciBrbGFzc2lzY2ggZW5nbGlzY2hlCnNhZXR0ZWwuIGluc29mZXJuIHBhc3N0IGRhcyBsZWlkZXIgbmljaHQuCmVzc2VuIHdvbGx0ZSBpY2ggZGllc2Ugc3BlemllbGxlbiBwZmVyZGUgbmljaHQuIGRhcyB3YWVyZW4gZGllIHRldWVyc3RlbgpzdGVha3MsIGRpZSBpY2ggamVtYWxzIGdlZ2Vzc2VuIGhhYmUuIGVpbiBoYWxid2VncyBndXRlcyByZWl0cGZlcmQga29zdGV0CmViZW4gZWluIHZpZWxmYWNoZXMgZGVzc2VuLCB3YXMgbWFuIGZ1ZXIgZWluIHNjaGxhY2h0cGZlcmQgYmV6YWhsdC4gdW5kCnNwYXppZXJlbiBmYWhyZW4gZGVzaGFsYiwgd2VpbCBtYW4gZ2VsZWdlbnRsaWNoIGF1Y2ggbWFsIGV0d2FzIHdlaXRlciB3ZWcKd2lsbC4gdW5kIGF1Y2ggd2VubiBlcyBuZXR0IHdhZXJlLCBtYWwgendlaSB3b2NoZW4gbnVyIHp1IHJlaXRlbiwgaXN0IGRhcwphdWYgZGF1ZXIgYXVjaCBrZWluZSBsb2VzdW5nLCB3ZW5uIG1hbiB0ZXJtaW5lIGVpbmhhbHRlbiB3aWxsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogcGlja3VwIChIb2JvLCAyOC4gQXVnIDIwMDEsIDE1OjIyOjE2KToKfiMhIHJuPVd1cnplbCBydD05OTg5NTU3MTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKRGVzaGFsYiBtZWludGUgaWNoIGphOiBEZWNrZW4gdW5kIEd1cnRlIHBhc3NlbiBpbiBkaWUgU2F0dGVsa2FtbWVyLiBEaWUKU2FldHRlbCBrb2VubmVuIGRhbm4gamEgaW5zIEF1dG8sIHNpZSBzaW5kIGphIHNlbGJlciBuaWNodCB2ZXJzY2h3aXR6dC4gVW5kCkxlZGVyIHNlbGJzdCByaWVjaHQgbnVyIGd1dCEKCiBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBwaWNrdXAgKFd1cnplbCwgMjguIEF1ZyAyMDAxLCAxNjoyODo1OSk6Cn4jISBybj1Ib2JvIHJ0PTk5OTAwNDkzNiByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpobSwgZ3V0ZXIgcHVua3QuIGRhcyBtYWNodCBkZW4gZm9yZCBleHBsb3JlciBub2NoIGludGVyZXNzYW50ZXIsIGF1Y2ggd2VubgplcyBrZWluIHBpY2t1cCBpc3QuIGFiZXIgZG9wcGVsdCBzb3ZpZWwgbGVpc3R1bmcgd2llIGRlciBtaXRzdWJpbGxpZywgZGEKa2FubiBtYW4gc2Nob24gbWFsIHdhcyB3ZWd6aWVoZW4uLi4Kbm9ybWFsZSBmYWhydGVuIHNvbGx0ZSBtYW4gd29obCBkYW1pdCBhYmVyIG51ciB1bnRlcm5laG1lbiwgd2VubiBkZXIgdGFua3dhZ2VuCmdsZWljaCBtaXRrb21tdC4gYXVmIGRpZSBmcmFnZSBuYWNoIGRlbSB2ZXJicmF1Y2ggc2FndGUgZGVyIHZlcmthZXVmZXI6CmlyZ2VuZHdvIHp3aXNjaGVuIHp3b2VsZiB1bmQgaHVuZGVydCBsaXRlcm4sIGtvbW10IGRyYXVmIGFuIHdpZSBtYW4gZmFlaHJ0LgppY2ggZnVlcmNodGUsIGRhcyBsYXV0ZXN0ZSBkYXJhbiBpc3Qgd2lya2xpY2ggbmljaHQgZGVyIG1vdG9yLCBzb25kZXJuIGRlcgpzdHJ1ZGVsIGltIHRhbmsuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IHBpY2t1cCAoU2NobGVpY2hlciwgMjguIEF1ZyAyMDAxLCAxODoxNDozMSk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTk5MDA4OTM5IHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1CkhtbW0sIGljaCBrZW5uIG1pY2ggamEgbmljaHQgc28gYXVzLi4uIGFiZXIgZWluIEZyZXVuZCB2b24gbWlyIHNjaHdvZXJ0IGZ1ZXIKSGFlbmdlcmJldHJpZWIgYXVmIGRlbiBOaXNzYW4gUGF0cm9sLiBXZWlzcyBuaWNodCBvYnMgZGVuIG5vY2ggZ2lidCB3ZWlzcyBudXIKZGFzIGRlciAydCB6aWVoZW4gZHVyZnRlIHVuZCBkYXMgYXVjaCBrb25udGUuCgpTY2hsZWljaGVyIGRlciBOaWNodC1BdXRvZmFocmVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBwaWNrdXAgKFByZWZlY3QsICA5LiBTZXAgMjAwMSwgMjM6NTk6MTIpOgp+IyEgcm49U2NobGVpY2hlciBydD05OTkwMTUyNzEgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKaG1tbS4uLiBtZWluZXMgd2lzc2VucyBkdXJmdGUgZGVyIHBhdHJvbCBtaXQgc29uZGVyZ2VuZWhtaWd1bmcgYXVjaCAzdCB6aWVoZW4KLSB1bmQgZGVyIGRpZXNlbCBpc3QgcmVjaHQgbGVpc3R1bmdzZmFlaGlnISEhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHBpY2t1cCAoVG9nLCAxMC4gU2VwIDIwMDEsIDAwOjI3OjM5KToKfiMhIHJuPVd1cnplbCBydD05OTg3ODExODUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKV2llIHdhZXJzIG1pdCBkZW0gTGFuZHJvdmVyIERlZmVuZGVyIDExMC4gSXN0IGRvY2ggZGVyIGVpbnppZyB3YWhyZSBPZmZyb2FkClBpY2t1cCAuLi4gCgpOdXIgb2JzIEhhcmR0b3AgZ2lidCB3ZWlzcyBpY2ggbmljaHQuCgpUb2cKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHBpY2t1cCAoVG9nLCAxMC4gU2VwIDIwMDEsIDAwOjMwOjM4KToKfiMhIHJuPVd1cnplbCBydD05OTg5NTU3MTUgcmc9YW56ZWlnZW4KfiMhIHRpZD05OTg3ODExODUKPiBkYXMgd2FlcmVuIGRpZSB0ZXVlcnN0ZW4gc3RlYWtzLCBkaWUgaWNoIGplbWFscyBnZWdlc3NlbiBoYWJlLgpOYSwgZHUgYmlzdCBkb2NoIHNvbnN0IG5pY2ggc28ga25pY2tlcmlnLiBXZW5ucyBzY2htZWNrdD8KClRvZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBwaWNrdXAgKFd1cnplbCwgMTAuIFNlcCAyMDAxLCAxNzo1NjozMyk6Cn4jISBybj1Ub2cgcnQ9MTAwMDA3NDQ1OSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpzZWl0IHdhbm4gaXN0IGRlciBkZWZlbmRlciBlaW4gcGlja3VwPyBkaWUgZGluZ2VyLCBkaWUgaWNoIGJpc2hlciBnZXNlaGVuCmhhYmUsIHdhcmVuIGFsbGUgZ2VzY2hsb3NzZW4uCmFueXdheSwgaGFiZSBqZXR6dCBlaW5lbiBmb3JkIGV4cGxvcmVyIGdla2F1ZnQuIGlzdCB6d2FyIGF1Y2ggZ2VzY2hsb3NzZW4KdW5kIGtlaW4gcGlja3VwLCBhYmVyIHdlbm4gbWFuIGRpZSBwYWRzIGluIGRlbiBoYWVuZ2VyIGxlZ3QsIHNvbGx0ZSBkYXMKb2xmYWt0b3Jpc2NoZSBwcm9ibGVtIGF1Y2ggZ2Vsb2VzdCBzZWluIDopIHVuZCBkZXIgZXhwbG9yZXIgemllaHQgbWl0IHVlYmVyCjIwMCBwcyBhdWNoIGVpbmVuIGV0d2FzIGdyb2Vzc2VyZW4gaGFlbmdlciBwcm9ibGVtbG9zLgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBwaWNrdXAgKEdsb2luc29uLCAxMC4gU2VwIDIwMDEsIDE4OjQxOjAxKToKfiMhIHJuPVd1cnplbCBydD0xMDAwMTM3MzkzIHJnPWFuemVpZ2VuCn4jISB0aWQ9OTk4NzgxMTg1CjIwMCBQUyBmdWVyIDIgUGZlcmRlIHVuZCB6d2VpIFRvbm5lbiBBbHRtZXRhbGwuIERhcyBuZW5udCBzaWNoIGVmZml6aWVudCA6KQoKR2xvaW4oc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogcGlja3VwIChXdXJ6ZWwsIDEwLiBTZXAgMjAwMSwgMTg6NDI6MzkpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTAwMDE0MDA2MSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpoYWIgYXVjaCBzY2hvbiBkcnVlYmVyIG5hY2hnZWRhY2h0LCB3aWV2aWVsIHp3ZWkgcGZlcmRlIHppZWhlbiBrb2VubmVuIHVuZApkYXNzIG1hbiBtaXQgZWluZW0gMi1wcy1tb3RvciBkYSBiZWkgd2VpdGVtIG5pY2h0IHJhbmtvbW10Li4uIGlyZ2VuZHdhcyBpc3QKZGEgbWl0IGRlciBiZXplaWNobnVuZyBkYW5lYmVuZ2VnYW5nZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHBpY2t1cCAoSG9ibywgMTEuIFNlcCAyMDAxLCAxMToyODowNyk6Cn4jISBybj1XdXJ6ZWwgcnQ9MTAwMDE0MDE1OSByZz1hbnplaWdlbgp+IyEgdGlkPTk5ODc4MTE4NQpJY2ggaGFiJyBtYWwgaXJnZW5kd28gYXVmZ2VzY2huYXBwdCwgZGFzcyBlaW4gUGZlcmQgNyAiUFMiIHppZWhlbiBrYW5uLiBPYiBkYXMKUGZlcmQgamV0enQgYWxsZXJkaW5ncyBTaGV0dHksIEhhZmxpbmdlciB1bmQgU2NobGVzaWVyIHdhciwgd2Vpc3MgaWNoIG5pY2h0IDspCgogICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpURi1FbnR3aWNrbGVyIGdlc3VjaHQgKE1lc2lyaWksIDEyLiBTZXAgMjAwMSwgMTE6MTk6MTYpOgpIYWxsbywKCkRhIGVzIHVudGVyIEV1Y2ggamEgZG9jaCBlaW5lIE1lbmdlIExldXRlIGdpYnQsIGRpZSBzaWNoIG1pdCBURiBndXQgYXVza2VubmVuLAp3dWVyZGUgaWNoIGRpZWplbmlnZW4gZGllIEx1c3QgZGF6dSBoYWJlbiBnZXJuIGF1ZmZvcmRlcm4gc2ljaCBhbiBlaW5lbQpQcm9qZWt0IHp1IGJldGVpbGlnZW4sIGRhcyB3aXIgKGJpc2hlciBEb3R6LCBNdWFkZGliLCBPbGxpLCBTbmlwZXIsIFRodWZoaXIsClZhcmRpb24pIGF1ZiBTb3VyY2Vmb3JnZSBnZXN0YXJ0ZXQgaGFiZW4uCgpXaXIgZGVua2VuIGRhc3MgZXMgbnVldHpsaWNoIHdhZXJlLCB3ZW5uIGVpbiBUZWlsIGRlciBTYWNoZW4sIGRpZSBqZWRlciBzbwpmdWVyIHNpY2ggcHJvZ3JhbW1pZXJ0IGhhdCwgZGllIGFiZXIgdm9uIEludGVyZXNzZSB1bmQgTnV0emVuIGZ1ZXIgYWxsZQp3YWVyZW4sCmF1Y2ggYWxsZW4genVyIFZlcmZ1ZWd1bmcgZ2VzdGVsbHQgd3VlcmRlbi4KCldpciBoYWJlbiBzY2hvbm1hbCBhbmdlZmFuZ2VuLCBlaW5lIEJhc2lzIHZvbiB0Zi1maWxlcyB6dSBiaWxkZW4sIGRpZSB2aWVsZQp3aWNodGlnZSBGdW5rdGlvbmVuIGVudGhhbHRlbi4KCkF1c3NlcmRlbSB3dWVyZGUgaWNoIG1pY2ggc2VociBmcmV1ZW4sIHdlbm4gbWVociBMZXV0ZSB6dXIgV2VpdGVyZW50d2lja2x1bmcKZGVyIFRGLVNhY2hlbiBiZWl0cmFnZW4gd3VlcmRlbiwgdW5kIGRhc3MgbmljaHQgbnVyIHBlciBNYWlsLCBzb25kZXJuIHNlbGJzdApkYXJhbiBhcmJlaXRlbi4KCk1pdCBkZW4gTW9lZ2xpY2hrZWl0ZW4gdm9uIFNvdXJjZWZvcmdlIGthbm4gamVkZXIgYXVmIGRpZSBrb21wbGV0dGVuIFF1ZWxsZW4KenVncmVpZmVuIHVuZCBhbiBkaWVzZW4gbWl0ZW50d2lja2VsbiwgLWRlYnVnZ2VuIHVzdy4KCldpciBmcmV1ZW4gdW5zIHVlYmVyIGplZGVuIGRlciBzZWluIFdpc3NlbiBnZXJuIHRlaWxlbiBtYWcgdW5kIHp1ciBFbnR3aWNrbHVuZwpiZWl0cmFnZW4gd2lsbC4KCkFsc28gbm9jaG1hbCwgamVkZXIgZGVyIFRGIGdhbnogZ3V0IGtlbm50IHVuZCBMdXN0IGhhdCBtaXR6dW1hY2hlbiBtb2VnZSBzaWNoIApiZWkgbWlyIG9kZXIgTXVhZGRpYiBtZWxkZW4uCgpadXIgWmVpdCBpc3QgZGllIFByb2pla3R3ZWJzZWl0ZSBub2NoIG5ldCBzbyBkb2xsZSA6KSBhYmVyIGJlc3NlciBhbHMgbml4OgpodHRwOi8vdGYtbWFjcm9zLnNvdXJjZWZvcmdlLm5ldCwgZGFzIFByb2pla3QgaGVpc3N0IHRmLW1hY3Jvcywgd2VyIGRhIHNjaG9uIAplaW5lbiBOdXR6ZXIgaGF0LCBrYW5uIHNpY2ggZ2VybiBzY2hvbiBhbm1lbGRlbiB3ZXIgbmljaHQsIG1vZWdlIHNpY2ggZWluZW4KTnV0emVyIGF1ZiBzb3VyY2Vmb3JnZSBhbmxlZ2VuIHVuZCBkYW5uIGFubWVsZGVuLgoKVmllbGVuIERhbmsKCk1lc2lyaWkgJiBkYXMgVGVhbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVEYtRW50d2lja2xlciBVUkwgVXBkYXRlIChNZXNpcmlpLCAxMi4gU2VwIDIwMDEsIDEzOjExOjU4KToKYmVzc2VyIGlzdDoKaHR0cDovL3d3dy5zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvdGYtbWFjcm9zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVEYtRW50d2lja2xlciBVUkwgVXBkYXRlIChNdXBmZWwsIDEzLiBTZXAgMjAwMSwgMDE6NTI6MzApOgp+IyEgcm49TWVzaXJpaSBydD0xMDAwMjkzMTE4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMDI5MzExOApVbmQgd2FzIHNvbGwgZGFzIGdlYmVuPyBBbSBFbmRlIGVpbmVuIEJvdCwgbWl0IGRlbSBtYW4gbnVyIG5vY2ggZWluZW4gbmV1CmVpbmdlbG9nZ3RlbiBKVW5nc3BpZWxlciB2ZXJiaW5kZXQgdW5kIGRlciBkaWVzZW4gaW4gU3R1bmRlbiAoVGFnZW4pIHp1bQpwZXJmZWt0ZW4gU2VoZXIgbWFjaHQsIG9obmUgZGFzIGRhcyBqZW1hbmRkZW0gYXVmZmFlbGx0PyBEZXIgc29nYXIgZGFzIEZCYW5kCnp1IGhhbmRlbG4gd2Vpc3M/IApOYSBpY2ggd2Vpc3MgbmljaHQuCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBURi1FbnR3aWNrbGVyIFVSTCBVcGRhdGUgKEFuYXRvbCwgMTMuIFNlcCAyMDAxLCAwMTo1Mzo0Nik6Cn4jISBybj1NdXBmZWwgcnQ9MTAwMDMzODc1MCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDAyOTMxMTgKSW50ZXJlc3NhbnRlciB3YWVyZSBlcywgZWluZSB4LXRhdWdsaWNoZSBHVUkgenVzYW1tZW56dXN0ZWNrZW4uIEJpcwpLZW4gbWl0IFRGNS4wIGluIGRpZSBQb2V0dGUga29tbXQsIGlzdCBUYXJhbWlzIGFuZ2VzY2hsb3NzZW4uLi4gOykKCkFuYXRvbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBURi1FbnR3aWNrbGVyIFVSTCBVcGRhdGUgKE1lc2lyaWksIDEzLiBTZXAgMjAwMSwgMDE6NTQ6MTYpOgp+IyEgcm49TXVwZmVsIHJ0PTEwMDAzMzg3NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAwMjkzMTE4ClNjaHdhY2hzaW5uIE11cGZlbC4KU28gbmVuIEJvdCBrcmllZ3N0ZSB2b24gbWlyIGplZGVuZmFsbHMgbmllLiBuZWluIHdpciB3b2xsZW4gaGFsdCBuZSBCYXNpcwpzY2hhZmZlbiwgZGllIGVzIExldXRlbiBlcmxlaWNodGVybiBzb2xsIG1pdCBpaHJlbSB0ZiBkaWUgZGluZ2UgenUgdHVuLCBkaWUKc2llCndvbGxlbiwgZnVlciBkaWUgcHJvZ3JhbW1pZXJlciBuZSBiZXNzZXJlIGZ1bmt0aW9uc2Jhc2lzIG9obmUgamVkZXNtYWwgZGFzCnJhZCBuZXUgenUgZXJmaW5kZW4gdW5kIGZ1ZXIgZGllIGFud2VuZGVyIG51ZXR6bGljaGUgZGluZ2UgKHNjaGF1IGRpciB6LmIuCm1hbCBtZWluIGZpbGVzIGFuLCBkYSBzaW5kIGF1Y2gga2VpbmUgYm90cyBkcmlubmVuKQoKTWVzaSwgZ3J1bW1lbG5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBURi1FbnR3aWNrbGVyIFVSTCBVcGRhdGUgKE1lc2lyaWksIDEzLiBTZXAgMjAwMSwgMDE6NTY6MTIpOgp+IyEgcm49QW5hdG9sIHJ0PTEwMDAzMzg4MjYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAwMjkzMTE4CklzdCBqYSBuZXQgYXVzZ2VzY2hsb3NzZW4gQW5hdG9sLCBhYmVyIGJlaSBkZW0gRWNobyAoZ2xlaWNoIG51bGwpIHdpcmQgd29obAphdWNoIGRhcyBuaXguCk1lc2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFRGLUVudHdpY2tsZXIgVVJMIFVwZGF0ZSAoUGF0cnluLCAxMy4gU2VwIDIwMDEsIDAyOjQ4OjIzKToKfiMhIHJuPU1lc2lyaWkgcnQ9MTAwMDMzODk3MiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDAyOTMxMTgKd2FzIGVyd2FydGVzdCBkdSBmdWVybiBlY2hvLi4uZGllIG1laXN0ZW4gbGV1dGUgaGllciBmaW5kZW4gd2FocnNjaGVpbmxpY2gsCmRhc3Mgc2llIGF1Y2ggb2huZSBzb2xjaGUgcHJvamVrdGUgc2Nob24genUgdmllbCB6ZWl0IGluIGRpZXNlcyBob2JieQpoaWVyIHJlaW5zdGVja2VuIDspCgotLSAKcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpYWENDQzpFeGhpYml0aW9uIChMaW5mbGFzLCAxNC4gU2VwIDIwMDEsIDEwOjAyOjA1KToKRXR3YXMgc3BhZXQ6CgpTZWl0IGxldHplbSBNaXR0d29jaCBiaXMgU29ubnRhZywgZGVtIDE1LjA5LjIwMDEgZmluZGV0IGluIEJlcmxpbiBpbiBkZXIKQ29uZ3Jlc3NoYWxsZSBhbSBBbGV4YW5kZXJwbGF0eiBkaWUgQXVzc3RlbGx1bmcgenVtIDIwLWphZWhyaWdlbiBKdWJpbGFldW0gZGVzCkNoYW9zLUNvbXB1dGVyLUNsdWIgc3RhdHQuIEVzIGdpYnQgIlRleHQsIEJpbGQsIFRvbiB1bmQgQXJ0ZWZha3RlIGF1cyB6d2VpCkphaHJ6ZWhudGVtIGdlbGVidGVuIENoYW9zLCBEaXNrb3JkIHVuZCBTcGFzcyBhbSBHZXJhZXQuIgpEZXMgQWJlbmRzIGZpbmRlbiBpbnRlcmVzc2FudGUgVm9ydHJhZWdlIHN0YXR0LCBlcyBnZWh0IGxvY2tlciB6dSwgYW0gU2Ftc3RhZwpnaWJ0IGVzIGFiIDIxIFVociBlaW5lIExvdW5nZS4KCkwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogWFhDQ0M6RXhoaWJpdGlvbiAoTGluZmxhcywgMTQuIFNlcCAyMDAxLCAxODoyMzoyNSk6Cn4jISBybj1MaW5mbGFzIHJ0PTEwMDA0NTQ1MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAwNDU0NTI1CkFjaHNvOiBFaW50cml0dCBpc3QgbmF0dWVybGljaCB2b2VsbGlnIGZyZWkuCldlciBkaWUgQ29uZ3Jlc3NoYWxsZSBzdWNodCwgZGVyIGZpbmRldCBkaWUgZGlyZWt0IGFtICJIYXVzIGRlcyBMZWhyZXJzIiwgZGVtCmtsZWluZW4gSG9jaGF1cyBSaWNodHVuZyBLYXJsLU1hcngtQWxsZWUuCgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW50ZXJrdW5mdCBpbiBNdWVuY2hlbiBnZXN1Y2h0IChBdG96LCAgMS4gT2t0IDIwMDEsIDExOjU2OjU4KToKSGFsbG8sCmljaCBtdXNzIGJlcnVmbGljaCAobGVpZGVyKSBuYWNoIE11ZW5jaGVuIHppZWhlbiB1bmQgc3VjaGUgZnVlcnMgZXJzdGUgaGFsYmUKSmFociBlaW5lIFVudGVya3VuZnQuIChXRy1aaW1tZXIsIGVyc2Nod2luZ2xpY2hlIFBlbnNpb24sIDFaaS1BcHAgaW0KUy9VLUJhaG4tQmVyZWljaCkKV2VubiBqZW1hbmQgZGEgd2FzIGZ1ZXIgbWljaCBoYWV0dGU6IE1haWwgYW4gcmlua2NAZ214LmRlIHdhZXJlIHNlaHIgbmV0dC4KCmdydXNzLApBdG96CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2hhb3MtSG9jaHplaXQgKEFoYWIsICAxLiBPa3QgMjAwMSwgMjI6MjI6NTgpOgp+IyEgcm49VGh1ZmhpciBydD0xMDAxOTY3NzQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMTk2Nzc0MwpXYXMgZGVubj8gV2FzIGRlbm4/CgoqemFwcGVsdW5nZWR1bGRpZyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNoYW9zLUhvY2h6ZWl0IChUaHVmaGlyLCAgMS4gT2t0IDIwMDEsIDIyOjI2OjE3KToKU28sIDIuIFZlcnN1Y2g6CgpEYXR1bTogTWl0dHdvY2ggMy4xMC4yMDAxLCAxNzowMCBVaHIgTWl0dGVsYXJnZW50aW5pc2NoZSBaZWl0LCAyMjowMCBVaHIKZGV1dHNjaGUgWmVpdApPcnQgQ2hhb3NBbHRhciwgd28gaXNuIGRhcz8gTXVoPwpXZXIgaXMgYWxsZXMgZWluZ2VsYWRlbj8gQWxsZSEgYnJpbmd0IGd1dGUgTGF1bmUgdW5kIGRhcyBNVUggbWl0LiA7KSBoZWhlLCBpY2gKa3JpY2ggZGFzIGVoIG5pY2ggaGluIG1pdCBkZW0gYXJ0aWtlbHNjaHJlaWJlbiwgYWxzbyBrdXJ6IHVuZCBrbmFwcCwKRmFudGFnaGppcm8gdW5kIFRodWZoaXIgd2VyZGVuIGhlaXJhdGVuLCBrb21tZXQgenVoYXVmIChjKSBGb28qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2hhb3MtSG9jaHplaXQgKEdyaW1tYm9ybiwgIDEuIE9rdCAyMDAxLCAyMjoyNzowNSk6Cn4jISBybj1UaHVmaGlyIHJ0PTEwMDE5Njc5Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAxOTY3OTc3CmZpbmdlciBmYW50YWdoamlybwpIbW0uLi4gZGllc2VuIE5hbWVuIGdpYnQgZXMgaW4gTW9yZ2VuZ3JhdWVuIG5pY2h0LgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENoYW9zLUhvY2h6ZWl0IChUaHVmaGlyLCAgMS4gT2t0IDIwMDEsIDIyOjM0OjE4KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDAxOTY4MDI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMTk2Nzk3Nwp0amEsIHdhcyBtZWluc3RlIHdhcnVtIGRhcyBuZSBjaGFvc2hvY2h6ZWl0IHdpcmQ/IDspPQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ0lBIHN1Y2h0IEZyZW1kc3ByYWNobGVyLi4uIChMaW5mbGFzLCAgNC4gT2t0IDIwMDEsIDE2OjE3OjIxKToKS2FubnN0IGR1IEFyYWJpc2NoLCAJRGFyaS9QYXNodHUsIEZyYW56b2VzaXNjaCwgUnVzc2lzY2gsIFBlcnNpc2NoIChGYXJzaSkKb2RlciBTcGFuc2lzY2g/IERhbm4gYmlzdCBkdSBnZW5hdSBkaWVyL2RlciByaWNodGlnZSBmdWVyIGRhcyBDSUEsIGRlbm4gZGllCmtvZW5uZW4gZGFzIG5pY2h0IHVuZCBzdWNoZW4gTWVuc2NoZW4sIGRpZSBnZXJuZSBpbiBXYXNoaW5ndG9uIHNpdHplbi4gCnd3dy5jaWEuZ292L2NpYS9lbXBsb3ltZW50L2pvYnBvc3RpbmdzL2xhbmd1YWdlX2luc3RydWN0b3IuaHRtCgpIbW1tbSwgaGFiZW4gZGllIHdhcyBuYWNoenVob2xlbj8KCkwuLCB1ZWJlcmxlZ3QsIG9iIGRhcyBuaWNodCBkb2NoIG5hY2ggJ3dpdHplJyBnZWhvZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENJQSBzdWNodCBGcmVtZHNwcmFjaGxlci4uLiAoQW5hY3Jpb24sICA0LiBPa3QgMjAwMSwgMTc6MjI6NTcpOgp+IyEgcm49TGluZmxhcyBydD0xMDAyMjA1MDQxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMjIwNTA0MQpEaWUgTlNBIGhhdCBhdWNoIGVpbiAnU3R1ZHktQWJyb2FkJy1Qcm9ncmFtbSAuLiB6YWhsZW4gYWxsZXMga29tcGxldHQuIEhhYmVuCm5lIExpc3RlIHZvbiAnYmV2b3J6dWd0ZW4gTGFlbmRlcm4nIC4uLi4gbXVzc3QgYWxsZXJkaW5ncyBuYWNoaGVyIGJlaSBuZXIKR292ZXJubWVudCBBZ2VuY3kgYXJiZWl0ZW4gOm8pCgphbmFjKiAtIGZhbmQgZGFzIGF1Y2ggc2VociBpbnRlcmVzc2FudAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDSUEgc3VjaHQgRnJlbWRzcHJhY2hsZXIuLi4gKERlZXBibHVlLCAgNC4gT2t0IDIwMDEsIDE3OjI0OjA5KToKfiMhIHJuPUFuYWNyaW9uIHJ0PTEwMDIyMDg5Nzcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAyMjA1MDQxCkxlcm50IG1hbiBkYSBhdWNoIGRhcyBzdGV1ZXJuIHZvbiBGbHVnemV1Z2VuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQ0lBIHN1Y2h0IEZyZW1kc3ByYWNobGVyLi4uIChBbmFjcmlvbiwgIDQuIE9rdCAyMDAxLCAxNzoyNDo0NSk6Cn4jISBybj1EZWVwYmx1ZSBydD0xMDAyMjA5MDQ5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMjIwNTA0MQpXZWlzcyBuZXQuIEFiZXIgQWZnaGFuaXN0YW4gc3RlaHQgYXVjaCBhdWYgZGVyIExpc3RlIGRlcgonUHJpb3JpdGFldC0xLUxhZW5kZXInLgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IENJQSBzdWNodCBGcmVtZHNwcmFjaGxlci4uLiAoTW9udGFudXMsICA0LiBPa3QgMjAwMSwgMTc6MzA6NDEpOgp+IyEgcm49QW5hY3Jpb24gcnQ9MTAwMjIwOTA4NSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDIyMDUwNDEKQW5hYyogc2NocmVpYnQ6CgoiRGllIE5TQSBoYXQuLi4iCgpIb2VtbWEsIGV5aC4KRXJzdGVucyBoZWlzc3QgZXMgKmRhcyogTlNBLCB1bmQgendlaXRlbnMgaXN0IGRpZSBVU0EgZG9jaCB3aXJrbGljaCBzZWxiZXIgZGllClZlcmtvZXJwZXJ1bmcgZGVzIE5TQS4KSGFzdGUgd2llZGVyIGluIGRlciBTY2h1bGUgb2RlciBiZWkgZGVuIFBpb25pZXJlbiBuaWNodCBhdWZnZXBhc3N0PwpGbGVpc3NiaWVuY2hlbiB6dXJ1ZWNrZ2ViZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBDSUEgc3VjaHQgRnJlbWRzcHJhY2hsZXIuLi4gKEFuYWNyaW9uLCAgNC4gT2t0IDIwMDEsIDE3OjMzOjEyKToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwMDIyMDk0NDEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAyMjA1MDQxCkRhcyBOU0EgPyBXaWUga29tbXN0ZSBkZW5uIGRhcmF1ZiA/CgpBZ2VuY2UgLT4gQWdlbnR1ciAtPiBmZW1pbmluLgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IENJQSBzdWNodCBGcmVtZHNwcmFjaGxlci4uLiAoTW9udGFudXMsICA0LiBPa3QgMjAwMSwgMTc6MzQ6MDQpOgp+IyEgcm49QW5hY3Jpb24gcnQ9MTAwMjIwOTU5MiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDIyMDUwNDEKTlNBID0gTmljaHQtU296aWFsaXN0aXNjaGVzIEF1c2xhbmQuCgpIYXN0ZSBpbiBTdGF0c2J1ZXJnZXJrdW5kZSBpbW1lciBpbiBkZXIgRWNrZSBzdGVoZW4gbXVlc3NlbiwgbWl0IGRlcgpFc2Vsc2thcHBlIGF1Zj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IENJQSBzdWNodCBGcmVtZHNwcmFjaGxlci4uLiAoQW5hY3Jpb24sICA0LiBPa3QgMjAwMSwgMTc6MzU6MzYpOgp+IyEgcm49TW9udGFudXMgcnQ9MTAwMjIwOTY0NCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDIyMDUwNDEKS2FubiBuZXQgamVkZXIgaW4gZGVyIEREUiBhdWZnZXdhY2hzZW4gc2VpbiwgdW5kIGRhcyBpc3QgYXVjaCBndXQgc28gOi0pCgphbmFjKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogQ0lBIHN1Y2h0IEZyZW1kc3ByYWNobGVyLi4uIChNb250YW51cywgIDQuIE9rdCAyMDAxLCAxNzozODowNyk6Cn4jISBybj1BbmFjcmlvbiBydD0xMDAyMjA5NzM2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMjIwNTA0MQpvaCwgZGEgZ2lidCBqZW1hbmQgZGVuIFdvd2VyZWl0LiA6LSkKClVuZCBlcyBpc3Qgd2lya2xpY2ggc2NoYWRlLCBkYXNzIGF1Y2ggZWxmIEphaHJlIG5hY2ggZGVyICJlaW5oZWl0IiBiZWkgZWluaWdlbgpkaWUgRGVua211c3RlciBkZXIgSW50b2xlcmFueiB1bmQgVWViZXJoZWJsaWNoa2VpdCBzaWNoIG5pY2h0IGltIGdlcmluZ3N0ZW4KZ2VhZW5kZXJ0IGhhYmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogQ0lBIHN1Y2h0IEZyZW1kc3ByYWNobGVyLi4uIChBbmFjcmlvbiwgIDQuIE9rdCAyMDAxLCAxNzo0MDoyMCk6Cn4jISBybj1Nb250YW51cyBydD0xMDAyMjA5ODg3IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMjIwNTA0MQpKYS4gR2VuYXUuIERhbmtlIGZ1ZXJzIEdlc3ByYWVjaC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBDSUEgc3VjaHQgRnJlbWRzcHJhY2hsZXIuLi4gKE5vbm5lLCAgNC4gT2t0IDIwMDEsIDE5OjU0OjExKToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwMDIyMDk4ODcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAyMjA1MDQxCldhaGgsIHdhcyBpc3QgZGFzIGRlbm4/IERhIHdhciBlaW5lIFNtaWxleSBiZWkgQW5hKiBkYWhpbnRlciB1bmQgRHUgc2V0enQgZG9jaApERFItV2lzc2VuIHZvcmF1cywgdW0gRGVpbmUgUG9zdGluZ3MgenUgdmVyc3RlaGVuLiBXZXIgdWViZXIgc28gZWluZW4gU3BydWNoCihtaXQgU21pbGV5KSBuaWNodCBkcnVlYmVyc3RlaGVuIGthbm4sIGRlciBzb2xsdGUgbWFuIG5hY2hkZW5rZW4sIG9iIGVyIHNlbGJzdApuaWNodCBub2NoIGluIHVlYmVyaG9sdGVuIE11c3Rlcm4gZGVua3QuCgpOb25uZSwgZGVyIHNpY2ggZnJhZ3QsIHdpZXNvIHNvIHZpZWxlIE9zdGRldXRzY2hlIGltbWVyIGF1ZiBkaWUgUGFsbWUgZ2VoZW4sCndlbm4gamVtYW5kIGVpbmVuIFNjaGVyeiBtYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaWwgLi4uIChLYWRhYnJhLCAgNS4gT2t0IDIwMDEsIDAwOjI4OjI2KToKbWFuY2hlIGJpcyB2aWVsZSBkaWVzZXIgU2NoZXJ6ZSB0YWt0bG9zIHNpbmQgPwprYWRhYnJhIChXZXNzaSBtaXQgRVgtT3N0dmVyd2FuZHRlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IENJQSBzdWNodCBGcmVtZHNwcmFjaGxlci4uLiAoQ2F0d2VhemxlLCAgNS4gT2t0IDIwMDEsIDA3OjU0OjEwKToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwMDIyMDk4ODcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDAyMjA1MDQxCk5laW4sIG5laW4sIHR1dCBtaXIgbGVpZCwgZGEgbXVzcyBpY2ggbmFjaGZyYWdlbi4gS2FubnN0IER1IG1pciBlcmtsYWVyZW4gd28KRHUgaW4gZGVtIFBvc3Rpbmcgdm9uIEFuYWMqIERlbmttdXN0ZXIgZGVyIEludG9sZXJhbnogdW5kIFVlYmVyaGVibGljaGtlaXQKZXJrYW5udCBoYXN0LCBkYXMgZHUgZGljaCBzbyB2ZWhlbWVudCBkYXJ1ZWJlciBtb2tpZXJlbiBtdXNzdD8KCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBDSUEgc3VjaHQgRnJlbWRzcHJhY2hsZXIuLi4gKEdsb2luc29uLCAgNS4gT2t0IDIwMDEsIDA4OjIwOjM0KToKfiMhIHJuPUNhdHdlYXpsZSBydD0xMDAyMjYxMjUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwMjIwNTA0MQpBbHNvIHdpcmtsaWNoLCBDYXR0aWUuIERhcyBiaXNzY2hlbiBQYXJhbm9pYSBtdXNzdCBEdSB1bnMgZ29lbm5lbi4gU2llaHN0IER1Cm5pY2h0LCBkYXNzIEFuYWNyaW9uIGVpbmRldXRpZyBldHdhcyBhZWhubGljaGVzIHdpZSAiZXMgaXN0IG5pY2h0IGd1dCBhbHMKRERSLURldXRzY2hlciBhdWZnZXdhY2hzZW4genUgc2VpbiIgZ2VzYWd0IGhhdD8gS2FubiBtYW4gZGFzIGFuZGVycyBhbHMKQmVsZWlkaWd1bmcgdmVyc3RlaGVuPwoKR2xvaW4oc29uKQoKUFM6IElyZ2VuZHdpZSBlcmlubmVydCBtaWNoIGRhcyBhbiBkaWUgQWV1c3NlcnVuZ2VuIG1laW5lcyBSZWZSYXRlcyB6dXIKUmFzdGVyZmFobnVuZy4gTmVpbiwgZGEgd3VyZGUgbmljaHQgdm9yZHJpbmdsaWNoIHZvbiBEYXRlbnNjaHV0enByb2JsZW1lbiB1bmQKc2Vuc2libGVuIFRoZW1lbiBnZXJkZXQsIHNvbmRlcm4gdm9uIFN0aWdtYXRpc2llcnVuZyBkZXIgQmV0cm9mZmVuZW4sIFVud3VlcmRlCmZ1ZXIgZWluZW4gZnJlaWVuIFN0YWF0IHVuZCBQb3B1bGlzbXVzIGltIERpZW5zdGUgdm9uIFdhaGxrYW1wZi4gQXV0c2NoLAp2b3JiZWkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VpbCAuLi4gKFJpa3VzLCAgNS4gT2t0IDIwMDEsIDA4OjM0OjAyKToKfiMhIHJuPUthZGFicmEgcnQ9MTAwMjIzNDUwNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDIyMzQ1MDYKV2FzIHdhZXJlbiBXaXR6ZSBvaG5lIFRha3Rsb3NpZ2tlaXQ/CgpSaWt1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQgIChXYWxkcmFjaGluLCAgOC4gT2t0IDIwMDEsIDE2OjIxOjE3KToKSGllcm1pdCB3aXJkIGJla2FubnQgZ2VnZWJlbiwgZGFzcyBTa3lmaXJlIHVuZCBBbm9yYWxwaCBhbSAxMy4xMC4yMDAxIGluIGRlbiAKaGVpbGlnZW4gQnVuZCBkZXIgRWhlIHRyZXRlbiB3ZXJkZW4uIElociBzZWlkIGFsbGUgaGVyemxpY2ggZWluZ2VsYWRlbiwgCmJlaSBkaWVzZXIgVHJhdW1ob2NoemVpdCBkYWJlaSB6dSBzZWluLiBPcnQgZGVyIFRyYXV1bmcgd2lyZCBkaWUgS2FwZWxsZQphbSBFbmRlIGRlciBXZWx0IHNlaW4uIEFub3JhbHBoIHVuZCBTa3lmaXJlIGhhYmVuIHNpY2ggZGllIHp3YW56aWdzdGUgU3R1bmRlCmRlcyBUYWdlcyBkYWZ1ZXIgYXVzZ2VzdWNodC4gQnJpbmd0IGJpdHRlIGd1dGUgTGF1bmUgbWl0LCB1bmQgbW9lZ2UKZGFzIE1VSCBtaXQgZXVjaCBzZWluLgooRWluZSBXZWdiZXNjaHJlaWJ1bmcgZnVlciBOaWNodC1TZWhlciBmaW5kZXQgaWhyIGJlaW0gU2FuZHRpZ2VyKQpncnVlc3NlIFdhbGRyYWNoaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV2VpbCAuLi4gKFNpbHZhbmEsIDE1LiBPa3QgMjAwMSwgMTY6NDc6MzApOgp+IyEgcm49UmlrdXMgcnQ9MTAwMjI2MzY0MiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDIyMzQ1MDYKTGFuZ3dlaWxpZy4KCihKZW1hbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWJzaXRlIGRlciBXb2NoZS4uLi51bmQgZGVyIG5hZWNoc3RlbiBwYWFyIHdvaGwgYXVjaCAoTGluZmxhcywgMjcuIE9rdCAyMDAxLCAxODo1NDo0OSk6Cnd3dy5iaWdicm90aGVyYXdhcmRzLmRlCgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlYnNpdGUgZGVyIFdvY2hlLi4uLnVuZCBkZXIgbmFlY2hzdGVuIHBhYXIgd29obCBhdWNoIChZbmcsIDI4LiBPa3QgMjAwMSwgMTU6NTc6NDkpOgp+IyEgcm49TGluZmxhcyBydD0xMDA0MjAxNjg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwNDIwMTY4OQp3d3cuYmlnYnJvdGhlcmF3YXJkcy5hdAp3d3cuYmlnYnJvdGhlcmF3YXJkcy5jaAoKWW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW56ZWlnZTogKExpbmZsYXMsIDMwLiBPa3QgMjAwMSwgMTY6MDY6MzYpOgpGdWVyIGRpZSBFbmdsaXNjaGxpZWJlbmRlbiB1bnRlciB1bnM6Cgp3d3cuaGVpc2UuZGUvdHAvZW5nbGlzaC9pbmhhbHQvdGUvOTk0NC8xLmh0bWwKClBsdXMgZGllIEtvbW1lbnRhZXJlLi4uCgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2ludGVyYnVyZy1QYXJ0eSEgOikgKEFuYXRvbCwgMTIuIERleiAyMDAxLCAxMjo1Nzo1NCk6CgpTYWx2ZSwgU29kYWxlcyBmZXN0aXZpdGF0ZSEKCkRlciBDb3VudGRvd24gbGFldWZ0LCBhbmJlaSBhdXMgMjAwIFBhcnR5YXJ0aWtlbG4gaW4gbG9ja2VyZXIKUmVpaGUgZGFzLCB3YXMgenUgd2lzc2VuIGxvaG5lbiBrb2VubnRlLCBhdWZnZWxpc3RldCEgRGllc2VyIApBcnRpa2VsIHN0ZWh0IGluICJhbnplaWdlbiIsIGRhIGlzdCBzY2hvbiBsZWVyLCBkYSBmaW5kZXQgaWhyCmlobiBhdWNoIEZyZWl0YWdtaXR0YWcga3VyeiB2b3IgZGVyIEFiZmFocnQgc2NobmVsbCB3aWVkZXIuLi4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgo6byBXSU5URVJCVVJHIDE0LjEyLiBCSVMgMTYuMTIuCgogICBCdXJnIGFiIEZyZWl0YWcsIDE3OjAwIFVociwKICAgUGFydHkgYWIgU2Ftc3RhZyBBYmVuZC4KICAgQ2hpbmVzZSBhYiBTb25udGFnLCAxMzowMCBVaHIuCgogICBGcnVlaHN0dWVjayBTYW1zdGFnIGV0d2Egdm9uIDk6MDAgYmlzIDEwOjAwIFVociwKICAgTWl0dGFnZXNzZW4gU2Ftc3RhZyBhYiBldHdhIDEzOjAwIFVociwKICAgS2FmZmVlIFNhbXN0YWcgYWIgZXR3YSAxNjowMCBVaHIsCiAgIEJ1ZmZldCBTYW1zdGFnIGFiIGV0d2EgMTk6MDAgVWhyLAogICBGcnVlaHN0dWVjayBTb25udGFnIGFiIGV0d2EgOTozMCBVaHIuCgogICBEaWVqZW5pZ2VuLCBkaWUgU2Ftc3RhZ3MgYW5yZWlzZW46IFRlaWx0IExhcmluYS9taXIgYml0dGUgbm9jaAogICBtaXQgKE1haWwpLCB1bSB3aWV2aWVsIFVociBpaHIgZXR3YSBhbnp1cmVpc2VuIGdlZGVua3QhIElociAKICAgd2lzc3Qgc2Nob24sIEVzc2Vuc3BsYW51bmcuLi4KICAgCiAgIE9yZ2EtR2VzYW10dmVyYW50d29ydGxpY2hlOiBMYXJpbmEgW2xhcmluY2hlbkBnbXguZGVdCiAgIE9yZ2EtUGxhZXR6Y2hlbmJhY2tlbjogICAgICBLZWtzIFttYWcuaGFzaUBhb24uYXRdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKOm8gQW5mYWhydHMtIHVuZCBBbmJpbmR1bmdzYmVzY2hyZWlidW5nZW4gZ2lidCBlcyB1bnRlcgogICBodHRwOi8vd3d3LmhvbHp3YXJ0aC5uZXQvTUcvUGFydGllcy93dGJnMjAwMS5odG0KICAgKGF1Y2ggZXJyZWljaGJhciB2b24gaHR0cDovL21nLm11ZC5kZS9QYXJ0eS8pCgogICBNYW4gYmVhY2h0ZSBkZW4ga2xlaW5lbiBXZWcsIGRlciB2b24gV2ludGVyYmFjaCBhdWYncyBGZWxkIGluIGRpZQogICBOYWVoZSB2b24gV2ludGVyYnVyZyBmdWVocnQuIERhcyBpc3QgREVSIFdlZy4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgo6byBfTklDSFQgTUVIUiBVRUJFUldFSVNFTl8hCgogICBEYXMgR2VsZCBpc3Qgdm9uIGRlbiBtZWlzdGVuIHVlYmVyd2llc2VuIHdvcmRlbiwgVWViZXJ3ZWlzdW5nc2ZyaXN0CiAgIGlzdCBiZXJlaXRzIGFiZ2VsYXVmZW4sIGViZW5zbyBkaWUgTWVsZGVmcmlzdCB6dXIgTmFjaHVlYmVyd2Vpc3VuZy4KICAgRGFzIGlzdCBrZWluZSBTY2hpa2FuZSwgZGFzIHdhciBub3R3ZW5kaWcgKEF1c3p1ZWdlIGtvbm50ZW4gbnVyIGJpcwogICBNb250YWcgZWluZ2VzZWhlbiB3ZXJkZW4sIHVuZCB3aXNzZW4sIHdpZXZpZWwgYWJnZWhvYmVuIHdlcmRlbiBrYW5uCiAgIHVuZCBtdXNzLCBtdXNzIGRpZSBHZWxkdmVyd2FsdGVyaW4gamEgYXVjaCksIGhhYnQgYml0dGUgRmFpcnN0YWVuZG5pcy4KCiAgIERpZWplbmlnZW4sIGRpZSBuYWNoIEZyZWl0YWcgdWViZXJ3aWVzZW4gaGFiZW4gdW5kIHNpY2ggYmVpIExhcmluYS9taXIgCiAgIGRpZXNiZXp1ZWdsaWNoIGdlbWVsZGV0IGhhYmVuLCBicmluZ2VuIGRlbiBwYXNzZW5kZW4gS29udG9hdXN6dWcgbWl0LAogICBlYmVuc28gZGllamVuaWdlbiwgZGllIHNjaG9uIHZvcmhlciB6dSB1ZWJlcndpZXNlbiBoYWJlbiBnbGF1YmVuLCAKICAgYWJlciBuaWNodCAnYmVzdGFldGlndCcgd3VyZGVuLiBESUUgbWVsZGVuIHNpY2ggYml0dGUgYXVjaCB1bWdlaGVuZHN0CiAgIG5vY2ggYmVpIExhcmluYS9taXIsIHNvbnN0IHdpcmQgZGFzIGhhZXNzbGljaC4KCiAgIERlciBSZXN0IHdpcmQgYXV0b21hdGlzY2ggenVtIEJhcnphaGxlciwgc29mZXJuIG5pY2h0IGJlcmVpdHMgYW5kZXJzIAogICB2ZXJlaW5iYXJ0LCB6YWhsZW4gc2llIDEwLC0gRE0gWnVzY2hsYWcgKEZyZWl0YWcgYmlzIFNvbm50YWc6IERNIDc1KzEwLAogICBTYW1zdGFnIGJpcyBTb25udGFnOiBETSA0NSsxMCkuCgogICBEaWUgaGVydW1zdGVoZW5kZW4gUGFydHlicmV0dGVyIHNpbmQgaGluc2ljaHRsaWNoIEJlc3VjaGVyemFobCB1bmQKICAgLWlkZW50aXRhZXQgbmljaHQgdXAgdG8gZGF0ZSwgYml0dGUgbmVobXQgc2llIG5pY2h0IGFscyBSZWZlcmVuei4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgo6byBESUUgQkVUVEVOIFNJTkQgQkVMRUdULiAKCiAgIFdlciB0cm90emRlbSBrb21tZW4gbW9lY2h0ZSAodW5kIGRlbiBGdXNzYm9kZW4gYWxzIFNjaGxhZnBsYXR6CiAgIGFremVwdGllcmVuIGthbm4pLCBtZWxkZSBzaWNoIGJpdHRlIHZpYSBNYWlsIGJlaSBMYXJpbmEgdW5kIG1pciAKICAgYW4sIGRhbWl0IHdpciBkZXIgS3VlY2hlIEJlc2NoZWlkIGdlYmVuIGtvZW5uZW4uCgogICBCZWkgZGVyIFppbW1lcnZlcnRlaWx1bmcgaGF0IExhcmluYSB2ZXJzdWNodCwgbW9lZ2xpY2hzdCB2aWVsZW4KICAgV3VlbnNjaGVuIChQcmlvcml0YWV0IG5hY2ggRWluZ2FuZykgZ2VyZWNodCB6dSB3ZXJkZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKOm8gTUlUWlVCUklOR0VOCgogICAxLiBCZXR0d2Flc2NoZQoKICAgICAgTWl0enVicmluZ2VuIGZ1ZXIgZGllIEJldHRlbiBpc3QgZHJlaXRlaWxpZ2UgQmV0dHdhZXNjaGUgKGtlaW4KICAgICAgU2NobGFmc2FjayEpLCBrYW5uIGF1Y2ggZ2VnZW4gRE0gOCwtIHZvciBPcnQgZ2VtaWV0ZXQgd2VyZGVuLgogICAgICBEaWUgQm9kZW5zY2hsYWVmZXIgYnJhdWNoZW4gU2NobGFmc2FjayB1bmQgSXNvbWF0dGUuCgogICAyLiBUcmlua2dlZmFlc3MKCiAgICAgIERpZSBCdXJnYmVzYXR6dW5nIHBmbGVndCBHZXNjaGlyciBhYmVuZHMgenUgc3B1ZWxlbi4gV2VyIGVpbmVuCiAgICAgIGVpZ2VuZW4gQmVjaGVyIG9kZXIgZWlnZW5lIFRhc3NlIG1pdGJyaW5ndCwgaXN0IGtsYXIgaW0gVm9ydGVpbC4KCiAgIDMuICJNdXNpayIKCiAgICAgIERpZSBNdXNpa2FubGFnZSBkZXIgQnVyZyBpc3QgZnVua3Rpb25zZmFlaGlnLiBDRHMgbXVlc3NlbiB3aXIKICAgICAgYWJlciBzZWxic3QgbWl0YnJpbmdlbi4gRWluaWdlIExldXRlIChSb2NodXMsIERlZXBibHVlLCBNdXBmZWwpIAogICAgICBoYWJlbiBzaWNoIGRhbmtlbnN3ZXJ0ZXJ3ZWlzZSBiZXJlaXRzIGJlcmVpdGVya2xhZXJ0LCBldHdhcyAKICAgICAgQWJ3ZWNoc2x1bmcgbWl0enVicmluZ2VuLiBXZXIgZGVuIERKIHZvbSBlaWdlbmVuIEdlc2NobWFjayAKICAgICAgdWViZXJ6ZXVnZW4gd2lsbCAoT2xkaWVzLCBORFcsIFdlaWhuYWNodHNvcmF0b3JpdW0uLi4pLCBzb2xsdGUKICAgICAgYXVjaCBDRHMgbWl0YnJpbmdlbi4gCgogICAgICBFcyBnaWJ0IG5vY2ggaW1tZXIgZWluIEtsYXZpZXIgdW5kIGVzIHdlcmRlbiBtaW5kZXN0ZW5zIGVpbgogICAgICBLbGF2aWVyc3BpZWxlciAobmVpbiwgbmljaHQgaWNoLiBKZW1hbmQgZGVyIGVzIEtBTk4pIGRhIHNlaW4sCiAgICAgIHdlciBhbHNvIE5vdGVuIG1pdGJyaW5nZW4gbW9lY2h0ZSwgbW9lZ2UgZGFzIHR1bi4gRWluZSBHbGFtcGZlCiAgICAgIG5lYnN0IEdsYW1wZmVyIHdhZXIgdmllbGxlaWNodCBhdWNoIG5pY2h0IGZhbHNjaC4KCiAgIDQuIFdpY2h0ZWwtR2VzY2hlbmsKCiAgICAgIFdlciBtaXR3aWNodGVsbiBtb2VjaHRlLCBicmluZ2UgYml0dGUgZWluIGtsZWluZXMgR2VzY2hlbmsgbWl0LAogICAgICBHcm9lc3Nlbm9yZG51bmcgYWIgNSwtIERNIG9kZXIgc28uIERlciBSb2NodXNsYXVzIHBhY2t0IGRpZSBkYW5uIAogICAgICBpbiBzZWluZW4gU2FjayB1bmQgamVkZXIsIGRlciB3YXMgcmVpbiBoYXQsIGJla29tbXQgd2FzIHJhdXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKOm8gVk9SVFJBRwoKICAgQXJrLiBTYW1zdGFnLCAxMTowMCBjLnQuLCAiZXJmb2xncmVpY2ggQWJlbnRldWVyIHNjaHJlaWJlbiIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWl0IGZyZXVuZGxpY2hlbiBHcnVlc3NlbiwKQW5hdG9sCltQYXJ0eW5lYmVuYXVzaGlsZnN1bnRlcmFzc2lzdGVudHNza2xhdmVud2FmZmVudHJhZWdlcl0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsYXBwZXJzdG9yY2ggYmVpIExhcmlzc2EgdW5kIEpvZiAoSm9mLCAxMy4gRGV6IDIwMDEsIDE2OjM2OjE3KToKCiBBbSAxMS4xMi4yMDAxIHVtIDE1OjExIGhhdCBkZXIgS2xhcHBlcnN0b3JjaCBMYXJpc3NhIHVuZCBtaXIgZWluIGtsZWluZXMKQnVlbmRlbCBnZWJyYWNodCwgZGFzcyAzMTYwIGcgc2Nod2VyIHVuZCA1MCBjbSBsYW5nIHdhci4gQXVmIGRlbQpOYW1lbnNjaGlsZGNoZW4gc3RlaHQgIk5lZWxlIExhcmEgSm95IEZyYXVuZSIuIEZvdG9zIGdpYnQgZXMKdW50ZXIgaHR0cDovL3d3dy5mcmF1bmUuZGUvbmVlbGUvCgogVHNjaHVlc3MsCgogSm9mLCBqZXR6dCBQYXBhIGRlcyBzdWVzc2VzdGVuIEJhYnlzIGRlciBXZWx0IDopKSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChHbG9pbnNvbiwgMTMuIERleiAyMDAxLCAxNzoxOTozNyk6Cn4jISBybj1Kb2YgcnQ9MTAwODI1Nzc3NyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKRXJzdG1hbDogR3JhdHVsYXRpb24hClp3ZWl0ZW5zOiBHcmF0dWxhdGlvbiAoenUgdmllbCBBcmJlaXQgdW5kIHdlbmlnIFNjaGxhZiBkZW1uYWVjaHN0KSEKRHJpdHRlbnM6ICJqZXR6dCBQYXBhIGRlcyBzdWVzc2VzdGVuIEJhYnlzIGRlciBXZWx0IgogICAgICAgICAgLT4gU3ViamVrdGl2aXRhZXQsIER1IG11c3N0IGVzIHVucyBzY2hvbiBzZWxic3Qga29zdGVuIGxhc3Nlbi4KCkdsb2luKHNvbiksIGh1bmdyaWcgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLbGFwcGVyc3RvcmNoIGJlaSBMYXJpc3NhIHVuZCBKb2YgKEdhbmR1ciwgMTQuIERleiAyMDAxLCAwMDo0NTo1MCk6Cn4jISBybj1Kb2YgcnQ9MTAwODI1Nzc3NyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKSGVyemxpY2hlbiBHbHVlY2t3dW5zY2ggenUgRXVyZW0gc3Vlc3NlbiBGcmF0ei4gRGFzIG1pdCBkZW0gc3Vlc3Nlc3RlbgptdXNzIGljaCBuYXR1ZXJsaWNoIGJlc3RyZWl0ZW4gOykgLi4uIEdsb2luLCBsZWcgZGlyIGVpbiBlaWdlbmVzIHp1LAp3ZW5uIGR1IEh1bmdlciBoYXN0LCBkZW5rIGFiZXIgZGFyYW4gZGFzIGVzIHNvIGNhLiA5IE1vbmF0ZSBkYXVlcnQgOykKClNvIGxhbmdzYW0gbG9obnQgc2ljaCBlaW5lIFJ1YnJpayBCYWJ5Zm90b3MgYXVmIGRlbiBNRy1TZWl0ZW4gOikKCkdydXNzLCBHYW5kdXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChHbG9pbnNvbiwgMTQuIERleiAyMDAxLCAwMTo0ODoxOSk6Cn4jISBybj1HYW5kdXIgcnQ9MTAwODI4NzE1MCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKSWNoIHppZWggbWlyIGF1Y2ggbWVpbmUgS3VlaGUgbmljaHQgc2VsYnN0IGZ1ZXIgZGVuIEJ1cmdlci4gRGFzIHVlYmVybGFzcyBpY2gKei5CLiBQaXRmYWxsLCBkZXIgaGF0IEJyb3RuYWVsIHNjaG9uIHJpY2h0aWcgcnVuZCBnZW1hZXN0ZXQgLi4uCgpHbG9pbihzb24pLCBrbGFwcGVydCBhbnNwaXR6ZW5kIG1pdCBkZW4gWmFlaG5lbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtsYXBwZXJzdG9yY2ggYmVpIExhcmlzc2EgdW5kIEpvZiAoTW9yZ290aCwgMTQuIERleiAyMDAxLCAwODoyMjowNSk6Cn4jISBybj1Kb2YgcnQ9MTAwODI1Nzc3NyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKR3JhYWF0cyAhIQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChBbnRoZWEsIDE0LiBEZXogMjAwMSwgMTA6MDI6MzEpOgp+IyEgcm49TW9yZ290aCBydD0xMDA4MzE0NTI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwODI1Nzc3NwpHZW5hdSwga3VyeiB1bmQgYnVlbmRpZywgTSogOykKSGVyemxpY2hlbiBHbHVlaHN0cnVtcGYgdW5kIG5vY2ggdmllbCBTcGFzcyBtaXQgZGVtIGtsZWluZW4gKE5lcnZlbilidWVuZGVsIDspCgpVbmQgR2xvaW46CioqKllvdSBjYW4ndCBoYXZlIGEgYmFieSBpbiBvbmUgbW9udGggYnkgaW1wcmVnbmF0aW5nIG5pbmUgd29tZW4qKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChYZW5hZGEsIDE0LiBEZXogMjAwMSwgMjE6NDM6MzMpOgp+IyEgcm49R2FuZHVyIHJ0PTEwMDgyODcxNTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDA4MjU3Nzc3CkljaCBzY2hsaWVzcyBtaWNoIG1hbCBtZWluZW0gTWFubiBtaXQgZ3JhdHVsaWVyZW4gYW4uLi52aWVsIFNwYXNzIG1pdCBldXJlcgpLbGVpbmVuLCBzY2hsYWZsb3NlIE5hZWNodGUsIGRhcyBlcnN0ZSBMYWVjaGVsbiwgdmlpaWlpaWlpaWllZWVlZWxlIApXaW5kZWxuIHdlY2hzZWxuIHVuZCBsYXNzdCBldWNoIG5pY2h0IGJlaXJyZW46IElociBoYWJ0IG5hdHVlcmxpY2gKZGFzIHN1ZXNzZXN0ZSBCYWJ5Li4uIEljaCBiZWhhdXB0ZSBhYmVyIGRhcyBHbGVpY2hlOiBVbnNlcmUgVG9jaHRlciBpc3QKZGllIFN1ZXNzZXN0ZSA6KQpYZW5hZGEsIGRlcmVuIFN1ZXNzZXN0ZSBtb3JnZW4gc2Nob24gZWluIEphaHIgYWx0IHdpcmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLbGFwcGVyc3RvcmNoIGJlaSBMYXJpc3NhIHVuZCBKb2YgKEpha3NjaGEsIDE2LiBEZXogMjAwMSwgMjI6MjI6MDkpOgp+IyEgcm49WGVuYWRhIHJ0PTEwMDgzNjI2MTMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDA4MjU3Nzc3CmdyYXRzIHVuZCBndXRlIG5lcnZlbiB3dWVuc2NoZSBpY2ggZGlyIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29ycnksIGRlciBUZXN0IGdpbmcgbmFjaCBoaW50ZW4gbG9zICpzY2hhZW0qIChTYW10a3JhbGxlLCAxNy4gRGV6IDIwMDEsIDE1OjUwOjIxKToKRXJzdG1hbCBhdWNoIHZvbiBtaXIgR3JhdHMgenVtIE5hY2h3dWNocywgYmluIG1hbCBnZXNwYW5udCB3YW5uIE5lZWxlIGltCk1vcmdlbmdyYXVlbiBhdWZ0YXVjaHQgKmdyaWlucyoKClVuZCB6d2VpdGVucywgaWNoIHdvbGx0ZSBuZSBOb3RpeiBlaW5lbSBQYWNrZXQgYmVpbGVnZW4gdW5kIHRlc3Rlbiwgd2llIGljaApzb3dhcyBzY2hyZWliZS4gTmEsIGpldHp0IGJpbiBpY2ggd2llZGVyIGtsdWVnZXIKClNhbXRrcmFsbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLbGFwcGVyc3RvcmNoIGJlaSBMYXJpc3NhIHVuZCBKb2YgKEFuY2FsYWdvbiwgMTcuIERleiAyMDAxLCAyMTozMzoxMik6Cn4jISBybj1Kb2YgcnQ9MTAwODI1Nzc3NyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKTmEgYWJlciBoYWxsb2VjaGVua251ZGRlbHMsIG5ldWUgRXJkZW5idWVyZ2VyaW4hCkhlcnpsaWNoZSBHbHVlY2t3dW5zY2hrbnVkZGVscyBhbiBkaWUgS2xlaW5mYW1pbGllLiBVbmQgc2VpdGRlbSBtZWluIFNvaG5lbWFubgpqZXR6dCBrZWluIGJhYnkgbWVociBpc3QsIHNvbmRlcm4gc2Nob24gZWluIEtsZWlua2luZCwgZ2VodCBkYXMgbWl0IGRlbQpzdWVzc2VzdGVuIGJhYnkgbWVpbmV0d2VnZW4gYXVjaCBpbiBPcmRudW5nLi4uICpncmlucyoKQWxsZXMgR3V0ZSBmdWVyIFZhdGVyLCBNdXR0ZXIgS2luZE9ET0RPRE9ET0RPQ09DCgpBbmNhbGFnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChGbGludG5haWwsIDE3LiBEZXogMjAwMSwgMjM6MzM6MzcpOgp+IyEgcm49QW5jYWxhZ29uIHJ0PTEwMDg2MjExOTIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDA4MjU3Nzc3CkhtLi5qYSBhdWNoIHZvbiBtaXIgZGllIGJlc3RlbiBXdWVuc2NoZS46KQpEYXMgbWl0IGRlbSBTdHJlc3MgZ2lidCBzaWNoIHVlICB1ZWJyaWdlbnMsIHdlbm4gbWFuIGVpbmZhY2ggaW0gTW9yZ2VuZ3JhdWVuCmt1ZXJ6ZXIgVHJpdHQ6KQoKdW5kIEFuY2EuLi5kYXMgX3N1ZXNzZXN0ZSBLbGVpbmtpbmQgZmluZGVzdCBkdSB1bnRlciAKaHR0cDovL2luLmhhZ2VuLmRlL35wZnVocm1hbi9iaWxkZXIgICAgLi4ubmF0dWVybGljaCA7LSkKCkZsaW50KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChBbmNhbGFnb24sIDIxLiBEZXogMjAwMSwgMjM6MDA6MTMpOgp+IyEgcm49RmxpbnRuYWlsIHJ0PTEwMDg2Mjg0MTcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDA4MjU3Nzc3ClRhZ2NoZW5rbnVkZGVscyEKRmFsc2NoISEKRGFzIHN1ZXNzZXN0ZSBLbGVpbmtpbmQgZmluZGV0NSBtYW4gbmF0dWVybGljaCBpbiBVbnNlcmVyIEJpZWxlZmVsZGVyCldvaG51bmcuLi4gYmVzb25kZXJzIGpldHp0LCB3byBlciBzY2hsYWVmdCwgaXN0IGVyIGFuIHN1c3NoZWl0IG5pY2h0IHp1CnVlYmVyYmlldGVuISEhCgpBbmNhbGFnb24KKG1laW5raW5kaXN0c3Vlc3NlcmFsc2RlaW5zcnVtcHJvdHplbmQpIChnZWtsYXV0IHZvbiBJc2kpIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBLbGFwcGVyc3RvcmNoIGJlaSBMYXJpc3NhIHVuZCBKb2YgKFd1cnplbCwgMjEuIERleiAyMDAxLCAyMzowNToyNyk6Cn4jISBybj1BbmNhbGFnb24gcnQ9MTAwODk3MjAxMyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKa2xlaW5lIGtpbmRlciBzaW5kIGltbWVyIG5ldHQuIGRhcyBwcm9ibGVtIGlzdCBudXIsIGRhc3MgbWFuIHNpZSBuYWNoIHp3ZWkKamFocmVuIG5pY2h0IHp1cnVlY2tnZWJlbiBrYW5uLCBhYmVyIGRhcyB3ZXJkZXQgaWhyIGFsbGUgbm9jaCBtZXJrZW4gOikKcmljaHRpZyBndXQgc2luZCBudXIgZW5rZWwuIHdlbm4gc2llIHVuYW5nZW5laG0gd2VyZGVuLCBnaWJ0IG1hbiBzaWUgZWluZmFjaAp3aWVkZXIgenVydWVjayBhbiBkaWUgZWx0ZXJuICh1bmQgZnJldXQgc2ljaCwgZGFzcyBkaWUgamV0enQgYWxsZXMgenVydWVjawpiZWtvbW1lbiwgd2FzIHNpZSBlaW5lbSBmcnVlaGVyIGFuZ2V0YW4gaGFiZW4pLgoKd3VyemVsIGtlbm50IHNpY2ggYXVzIGRhbWl0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBLbGFwcGVyc3RvcmNoIGJlaSBMYXJpc3NhIHVuZCBKb2YgKEFuY2FsYWdvbiwgMjEuIERleiAyMDAxLCAyMzowNzo1Nik6Cn4jISBybj1XdXJ6ZWwgcnQ9MTAwODk3MjMyNyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKCm5hLCBkYW5uIGhhYiBpY2ggamEgbm9jaCBlaW4gamFociB6ZWl0Li4uLgoqd3VyemVsYW5ncmlucyoKQW5jYWxhZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBLbGFwcGVyc3RvcmNoIGJlaSBMYXJpc3NhIHVuZCBKb2YgKEZvb2JhciwgMjEuIERleiAyMDAxLCAyMzowODo1MCk6Cn4jISBybj1BbmNhbGFnb24gcnQ9MTAwODk3MjQ3NiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKVW5kIHdlbm4gZXJzdG1hbCBkaWUgZXJzdGVuIERyb2dlbi0gdW5kIEFsa29ob2xleHplc3NlIGtvbW1lbi4uLiBXZWlhLi4uCgpGb29iYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEtsYXBwZXJzdG9yY2ggYmVpIExhcmlzc2EgdW5kIEpvZiAoV3VyemVsLCAyMS4gRGV6IDIwMDEsIDIzOjEzOjE3KToKfiMhIHJuPUZvb2JhciBydD0xMDA4OTcyNTMwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAwODI1Nzc3NwpyaWNodGlnIGZlcnRpZyBzaW5kIGtpbmRlciBlcnN0IG1pdCAyNS4gZGFuYWNoIGtvc3RlbiBzaWUgaG9lY2hzdGVucyBub2NoCmdlbGQsIGFiZXIga29lbm5lbiBpbiBkZXIgcmVnZWwgc2VsYnN0IGxlYmVuLiB3ZXIgaW1tZXIgZGllIHZvbGxqYWVocmlna2VpdAptaXQgMTggZXJmdW5kZW4gaGF0LCBoYXQgZGEgb2ZmZW5zaWNodGxpY2gga2VpbmUgYWhudW5nIGdlaGFidC4uLgoKd3VyemVsCgpwLnMuIGphLCBpY2ggd2Vpc3MsIGRhcyB3YXIgZGllIHNwZCwgd2VpbCBzaWUgc2ljaCBtZWhyIGp1bmd3YWVobGVyc3RpbW1lbgplcmhvZmZ0IGhhdC4gYWJlciBzcGQgdW5kIGFobnVuZyBoYWJlbiBwYXNzdCBlaCBuaWNodCB6dXNhbW1lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEtsYXBwZXJzdG9yY2ggYmVpIExhcmlzc2EgdW5kIEpvZiAoR2xvaW5zb24sIDIyLiBEZXogMjAwMSwgMDQ6MTg6MTUpOgp+IyEgcm49V3VyemVsIHJ0PTEwMDg5NzI3OTcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDA4MjU3Nzc3ClN0aW1tdC4gTWVpbmUgRWx0ZXJuIGtvZW5uZW4gZGFzIGJlc3RhZXRpZ2VuIDspCgpHbG9pbihzb24pLCBraW5kZXJmcmVpLCBlbmtlbGZyZWksIGh1bmdyaWcKClBTOiBEZXIgZWluemlnZSBFbmtlbCBkZW4gaWNoIG1hbCBoYXR0ZSAuLi4gaGFidCBpaHIgIkJsYXV2b2dlbCAtIFdhaGxzb2huCiAgICBkZXIgSXJva2VzZW4iIG1hbCBnZWxlc2VuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogS2xhcHBlcnN0b3JjaCBiZWkgTGFyaXNzYSB1bmQgSm9mIChTY2h3dWJiZWwsIDIzLiBEZXogMjAwMSwgMTE6MzQ6MzYpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTAwODk5MTA5NSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDgyNTc3NzcKSmEsIGljaCBoYWJlICJCbGF1dm9nZWwgLSBXYWhsc29obiBkZXIgSXJva2VzZW4gbWFsIGdlbGVzZW4uCgpTY2h3dWJiZWwsCm11c3Mgc2ljaCBkZW4gWnVnYW5nIHp1bSBDb21waSBzY2h3ZXIgZ2VnZW4gc2VpbmUgS2luZGVyIGVya2FlbXBmZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkx1ZyBzYWd0Li4uIChEZW1vbmF6LCAyNC4gRGV6IDIwMDEsIDA1OjIxOjAzKToKTW9pbiwKCm1laW4gRXJzdGllIHd1ZW5zY2h0IGRpZSBvYmxpZ2F0b3Jpc2NoZW4gZmluc3RlcmVuIEZlaWVydGFnZSB1bmQgZnVlciBkYXMgbmV1ZQpKYWhyIGRpZSBQZXN0IChvZGVyIGRlbikgYW4gZGVuIEhhbHMhIFNvIGlzdCBlciBoYWx0Li4uCgppLkEuIERlbW9uYXogSUlJCgpQLlMuOiBMYW5nc2FtIGhvbHQgZXIgYXVmIEtleSBhdWYuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpbGZlYXVmcnVmLi4uLiAoQ3JpdHRlciwgIDkuIEphbiAyMDAyLCAxODozMjo0Myk6CkRhcyBoYWJlIGljaCBnZXJhZGUgZ2VrcmllZ3QuIExlc3QgZXMga3VyeiBkdXJjaCB1bmQgd2VubiBpaHIgbmljaHQgaW4gRnJhZ2UgCmtvbW10LCBzY2hpY2t0IGRpZSBNYWlsIGVpbmZhY2ggd2VpdGVyIG9rYXk/IEVpbmZhY2ggZGVuIEluaGFsdCBrb3BpZXJlbiB1bmQgCndlaXRlcnNjaGlja2VuISBEYXMgaXN0IGtlaW5lIGRpZXNlciBiZWtuYWNrdGVuIEtldHRlbm1haWxzLCBkYWZyIHN0ZWggaWNoIApwZXJzb2VubGljaCBnZXJhZGUhIAoKR3J1c3MgQ3JpdHRlcgoKCkhpIExldXRlLCAKIGljaCB3ZW5kZSBtaWNoIGFuIEV1Y2gsIHdlaWwgaWNoIHppZW1saWNoIHZlcnp3ZWlmZWx0IGJpbi4gSWNoIGhvZmZlLCBJaHIgCmtvZW5udCBtaXIgdW5kIG1laW5lciBGcmV1bmRpbiBoZWxmZW4sIHVuZCBsZXN0CmRpZXNlbiBCcmllZiEgRGFzIFByb2JsZW0gaXN0LCBkYXNzIG1laW5lIEZyZXVuZGluIGFuIExldWthZW1pZSBlcmtyYW5rdCAgCmlzdC4gRXMgaGF0IHNpY2ggaGVyYXVzZ2VzdGVsbHQsIGRhc3MgU2llIG51ciBub2NoIHdlbmlnZSBXb2NoZW4genUgbGViZW4gCmhhdC4gCkF1cyBkaWVzZW0gR3J1bmQgc2VpdCBJaHIgbWVpbmUgbGV0enRlIENoYW5jZSBpaHIgenUgaGVsZmVuLgpXaXIgYmVub2V0aWdlbiBkcmluZ2VuZCBlaW5lL24gU3BlbmRlci9pbiBtaXQgZGVyIEJsdXRncnVwcGUgIkFCIFJoZXN1cyAKbmVnYXRpdiIgISEhISwgZGVyL2RpZSBiZXJlaXQgd2FlcmVuLCBnZ2YuCktub2NoZW5tYXJrIHNwZW5kZW4uIApEaWVzIGlzdCBmciBFdWNoIG51ciBlaW4ga2xlaW5lciBhZXJ6dGxpY2hlciBFaW5ncmlmZiwga2FubgphYmVyIG1laW5lciBGcmV1bmRpbiB6dSBMZWJlbiB2ZXJoZWxmZW4uIFdlbm4gamVtYW5kIGRpZXNlIEJsdXRncnVwcGUgaGF0LCAKbW9lY2h0ZSBlci9zaWUgc2ljaCBkb2NoIGJpdHRlIG1pdCBtaXIgaW4gVmVyYmluZHVuZyBzZXR6ZW4uCkFsbGVzIHdlaXRlcmUgYmVzcHJlY2hlbiB3aXIgZGFubi4gU2VuZGV0IGJpdHRlIGRpZXNlbiBCcmllZiBhbiBhbGxlLCBkaWUgSWhyIAprZW5udCEhISBGcmFndCBpbiBldXJlbSBCZWthbm50ZW5rcmVpcyBuYWNoISEhISEgSWNoIGRhbmtlIEV1Y2ggZnIKRXVyZSBIaWxmZSEhISAKR3J1LCAKSnVsaWEgU2NobWlkdCAKT2JlcndlZyA4IAo4MjAwOCBVbnRlcmhhY2hpbmcgClRlbC46IDA4OS82NjUzMi00MjggRmF4OiAwODkvNjY1MzItMTE1IApFLU1haWw6IGp1bGlhLnNjaG1pZHRAaGV5ZS5kZSAKCkxpZWJlIEVtcGZhZW5nZXJuLCBsaWViZXIgRW1wZmFlbmdlciwgCmF1Y2ggd2VubiBTaWUgd2llIGljaCBuaWNodCBoZWxmZW4ga25uZW4sIHNlaWVuIFNpZSBiaXR0ZSBzbyAKbmV0dCB1bmQgdmVydGVpbGVuIGRpZXNlIE1haWwgd2VpdGVyLCB2aWVsZW4gRGFuayBpbSBWb3JhdXMhIApKb2VybiBWZWhyZW5iZXJnIApDb0JhIE1uc3RlciAKMDI1MS81MDEtMjM2IAp0aGFueCBjcml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGlsZmVhdWZydWYuLi4uIChHcmltbWJvcm4sICA5LiBKYW4gMjAwMiwgMTk6MDc6MjMpOgp+IyEgcm49Q3JpdHRlciBydD0xMDEwNTk3NTYzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxMDU5NzU2MwpNYWNodCBldWNoIGtlaW5lIE11ZWhlLCBkaWUgRnJhdSBpc3Qgd29obCBsYWVuZ3N0IHRvdCwgdW50ZXIKaHR0cDovL2YyMy5wYXJzaW1vbnkubmV0L2ZvcnVtNTEwOTIvbWVzc2FnZXMvMjkuaHRtIHNpZWh0IG1hbiBkYXNzIGRpZXNlcgoiSGlsZmVydWYiIG1pbmRlc3RlbnMgc2VpdCBFbmRlIDIwMDAgZXhpc3RpZXJ0LiBEYSBrYW5uIGljaCBtaXIgc29nYXIgZGVuCkhpbndlaXMgc3BhcmVuIGRhc3MgS25vY2hlbm1hcmtzc3BlbmRlbiB3ZXNlbnRsaWNoIG1laHIgUGFyYW1ldGVyIGhhYmVuIGFscwpCbHV0Z3J1cHBlIHVuZCBSaGVzdXNmYWt0b3IuIEtsZWluZXIgVGlwOiBFbWFpbGFkcmVzc2UgYmVpIGdvb2dsZSBlaW5nZWJlbi4KCj4gRGFzIGlzdCBrZWluZSBkaWVzZXIgYmVrbmFja3RlbiBLZXR0ZW5tYWlscywgZGFmciBzdGVoIGljaCBwZXJzb2VubGljaAo+IGdlcmFkZSEKTmEgZGVubiBtYW4gdGF1LCBpY2ggYmluIGJlc3Bhbm50LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IG9yZGVydCBzY2hvbm1hbCBQb3Bjb3JuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhpbGZlYXVmcnVmLi4uLiAoVmFuaW9uLCAgOS4gSmFuIDIwMDIsIDE5OjE1OjM2KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDEwNTk5NjQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxMDU5NzU2MwpNYW4ga2FubiBqYSB0cm90emRlbSBtYWwgYXVmIHd3dy5ka21zLmRlIGhpbndlaXNlbiA6KQoKViosIHR5cGlzaWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIaWxmZWF1ZnJ1Zi4uLi4gKEFuZGFyaWVsLCAxMC4gSmFuIDIwMDIsIDEyOjQxOjMxKToKfiMhIHJuPUNyaXR0ZXIgcnQ9MTAxMDU5NzU2MyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTA1OTc1NjMKPiBEYXMgaXN0IGtlaW5lIGRpZXNlciBiZWtuYWNrdGVuIEtldHRlbm1haWxzLCBkYWZ1ZXIgc3RlaCBpY2ggcGVyc29lbmxpY2gKZ2VyYWRlIQoKc2llaGUgaHR0cDovL3d3dy50dS1iZXJsaW4uZGUvd3d3L3NvZnR3YXJlL2hvYXgva25vY2hlbm1hcmtzcGVuZGV0eHQuc2h0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGlsZmVhdWZydWYuLi4uIChIb3VzZWhvbGRlciwgMTAuIEphbiAyMDAyLCAxNTozMjo0Myk6Cn4jISBybj1BbmRhcmllbCBydD0xMDEwNjYyODkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxMDU5NzU2MwphbHNvIGVpbmUgdm9uIGRlbiBuaWNodC1iZWtuYWNrdGVuIGtldHRlbm1haWxzID8gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIaWxmZWF1ZnJ1Zi4uLi4gKEJhbWJpLCAxMC4gSmFuIDIwMDIsIDE5OjMyOjA0KToKfiMhIHJuPUhvdXNlaG9sZGVyIHJ0PTEwMTA2NzMxNjMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEwNTk3NTYzCkVzIGdpYnQgR3J1ZW5kZSwgd2llc28gaWNoIEtldHRlbmJyaWVmZSBhdWNoIGRhbm4gbmljaHQgd2VpdGVyc2VuZGUsIHdlbm4gc2llCnZvbiBtaXIgcGVyc29lbmxpY2ggYmVrYW5udGVuIFBlcnNvbmVuIGFuIG1pY2ggZ2VzY2hpY2t0IHd1cmRlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSGlsZmVhdWZydWYuLi4uIChUaWFtYWssIDEwLiBKYW4gMjAwMiwgMTk6MzM6MTgpOgp+IyEgcm49QmFtYmkgcnQ9MTAxMDY4NzUyNCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTA1OTc1NjMKLi4uIHVuZCBkYWZ1ZXIgc2luZCB3aXIgc3RvbHogYXVmIERpY2guCgoKVGlhbWFrLiBNdXNzIEJhbWJpIG1hbCBhdXNkcnVlY2tsaWNoIGxvYmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIaWxmZWF1ZnJ1Zi4uLi4gKENyaXR0ZXIsIDEwLiBKYW4gMjAwMiwgMjI6NDQ6MTIpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwMTA1OTk2NDMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEwNTk3NTYzCk9LQVkgLi4uLiBpY2ggc3RlaGUgZ2VyYWRlLgppY2ggaGFiIG1pY2ggdmVyYXJzY2hlbiBsYXNzZW4sIGRhIGRpZSBNYWlsIHZvbiBuZXIgYmVrYW5udGUgdm9uIG1pciBrYW0sCmRhaGVyLCBkYXMgZWluZSBkZXIgTnVtbWVybiBhdXMgTXVlbnN0ZXIgaXN0LCB3byBpY2ggZGllIG1laXN0ZSBaZWl0IGJpbi4KdW5kIGRhaGVyIGRhcyBpY2ggZXMgbmljaHQgdW50ZXIKaHR0cDovL3d3dy50dS1iZXJsaW4uZGUvd3d3L3NvZnR3YXJlL2hvYXgva25vY2hlbm1hcmtzcGVuZGV0eHQuc2h0bWwKbmFjaGdlcHJ1ZWZ0IGhhYmUuCmljaCBERVBQIS4KQml0dGUgc3BhbXMgYml0dGUgZGFtaXQgaWNoIGdlcmFkZXN0ZWhlbiBrYW5uIGFuIFN0YXJiaW5kZXJAZ214LmRlIGRhbm4KYmxvY2tpZXJ0cyBuaWNoIGRhcyBtdWQgc29uZGVybiBtaWNoIC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIaWxmZWF1ZnJ1Zi4uLi4gKENyaXR0ZXIsIDEwLiBKYW4gMjAwMiwgMjI6NDc6MzQpOgp+IyEgcm49Q3JpdHRlciBydD0xMDEwNjk5MDUyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxMDU5NzU2MwphY2hqYSB1bmQgZGFtaXQgaWhyIHJpY2h0aWcgbGFjaGVuIGtvZW5udDoKaWNoIGhhYiBkZW4gYXJ0aWtlbCBhdWNoIGluIFVuaXRvcGlhIHZlcm9lZmZlbnRsaWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMdWcgc2FndC4uLiAoS2V5LCAxMi4gSmFuIDIwMDIsIDAzOjQ5OjU2KToKfiMhIHJuPURlbW9uYXogcnQ9MTAwOTE2NzY2MyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMDkxNjc2NjMKRHUgaGFzdCBqZXR6dCBkaWUgQ2hhbmNlIC4uLgoKQWJlciBkYXMgd2VyZGUgaWNoIERpciBuaWNodCBnb2VubmVuISA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSGlsZmVhdWZydWYuLi4uIChSb25kYSwgMTMuIEphbiAyMDAyLCAxODozMToyOSk6Cn4jISBybj1Dcml0dGVyIHJ0PTEwMTA2OTkyNTQgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEwNTk3NTYzCkhpIENyaXR0ZXIsCgpRdWF0c2NoLiBEaWUgZWluemlnZSBwYXNzZW5kZSBBbnR3b3J0IGlzdCBzaWNoIHR5cGlzaWVyZW4genUgbGFzc2VuLiBVbmQKbW9lZ2xpY2hzdCB2aWVsZSBhbmRlcmUgTGV1dGUgZ2VuYXUgZGF2b24genUgdWViZXJ6ZXVnZW4gLSBlZ2FsIHdlbSBtYW4gbnVuCmdlbmF1IGRhbWl0IGhlbGZlbiB3aXJkLgoKUm9uZGEgKnR5cGlzaWVydCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEhpbGZlYXVmcnVmLi4uLiAoVGlhbWFrLCAxMy4gSmFuIDIwMDIsIDE4OjM1OjUyKToKfiMhIHJuPVJvbmRhIHJ0PTEwMTA5NDMwODkgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEwNTk3NTYzCkZhbHNjaC4KClNpY2ggdHlwaXNpZXJlbiB6dSBsYXNzZW4ga2FubiBudXIgZGFubiBkaWUgQW50d29ydCBzZWluLCB3ZW5uIG1hbiBpbSBGYWxsZQpkZXMgRmFsbGVzIGF1Y2ggYmVyZWl0IGlzdCwgd2lya2xpY2ggenUgc3BlbmRlbi4gQWxsZXMgYW5kZXJlIGlzdApHZWxkdmVyc2Nod2VuZHVuZy4gVW5kIGZhbHNjaGUgSG9mZm51bmdlbiB3ZWNrdCBlcyBhdWNoLgoKVW5kIGRhcyBpc3QgZWluZSBFbnRzY2hlaWR1bmcsIGRpZSBqZWRlciBmdWVyIHNpY2ggc2VsYmVyIHRyZWZmZW4gbXVzcy4KCgpUaWFtYWsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEhpbGZlYXVmcnVmLi4uLiAoUm9uZGEsIDEzLiBKYW4gMjAwMiwgMTk6NTM6NDIpOgp+IyEgcm49VGlhbWFrIHJ0PTEwMTA5NDMzNTIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEwNTk3NTYzCk9rLCBUaWFtYWssIGluIHNvIHdlaXQgaGFzdCBEdSBSZWNodC4KCkVpbmlnZW4gd2lyIHVucyBhdWY6IFNpY2ggZHJ1ZWJlciB6dSBpbmZvcm1pZXJlbiAtIHVuZCB3ZW5uIG1hbiBlcyBzaWNoCl9ncnVlbmRsaWNoXyB1ZWJlcmxlZ3QgaGF0LCBhdWNoIHR5cGlzaWVyZW4gbGFzc2VuLgoKUm9uZGEgKndhciB1ZWJlciBkZW4gQnJpZWYgenVyIHdlaXRlcmVuIFVudGVyc3VjaHVuZyBhdWNoIGVyc3Qgc2VociBlcnN0YXVudCAtCmFsbGVyZGluZ3MgaGFiZW4gZGllIFdlcnRlIGRhbm4gc2NobHVzc2VuZGxpY2ggZG9jaCBuaWNodCBndXQgZ2VudWcgZ2VwYXNzdCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEhpbGZlYXVmcnVmLi4uLiAoWmFybml5YSwgMTQuIEphbiAyMDAyLCAwOToyMjozMik6Cn4jISBybj1Dcml0dGVyIHJ0PTEwMTA2OTkyNTQgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEwNTk3NTYzCkRhcyBtYWNodCBuaXguLi4uIGRpZSBEZXBwZW4gaW4gVU5JdG9waWEgZ2xhdWJlbiBhbGxlcyB1bmQgbGllYmVuIFNQQU0uIExpZWd0CmhhbHQgYW4gZGVuIExldXRlbiBkYS4gVU5JdG9waWFzcGllbGVyIHVuZCBpbm5lbiBzaW5kIGhhbHQgdm9uIE5hdHVyIGF1cwphbmRlcnMgYWxzIHdpciBub3JtYWxlbiBNdWRkZXIuIAoKV29iZWkgbWlyIGVpbmZhZWxsdCwgZGFzcyBlcyBqYSBzY2hvbiBlZWVlZWVlZWVlZWVlZXdpZyBrZWluZW4gRmxhbWV3YXIgbWVocgp6d2lzY2hlbiBNRyB1bmQgVU5JdG9waWEgZ2VnZWJlbiBoYXQuCgpNYXJjCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZS4uLiAoQW5hdG9sLCAyNS4gSmFuIDIwMDIsIDA2OjQyOjMyKToKClJpY2hhcmQgVy4gQ29ud2F5LCBUaG9tYXMgUi4gV2lsY294OgogIERlc2lnbiBhbmQgSW1wbGVtZW50YXRpb24gb2YgYSBEaWFnbm9zdGljIENvbXBpbGVyIGZvciBQTC9JLgogIENBQ00gMTYoMyk6IDE2OS0xNzkgKDE5NzMpCgpIYXQgZGFzIGlyZ2VuZGVpbmVyIGdyZWlmYmFyPyBEZXIgZnJlaWUgQ0FDTS1XZWJ6dWdhbmcgcmVpY2h0IG51ciAKYmlzIHp1ciBadXNhbW1lbmZhc3N1bmcsIHdhcyBtaXIgbGVpZGVyIGV0d2FzIHp1IHdlbmlnIGlzdC4KCkFuYXRvbCwgd2FlcmUgZ2xhdHQgZGFua2JhciA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VjaGUgQnVlY2hlciAoQmlyZHksIDI1LiBKYW4gMjAwMiwgMDk6MjA6MTApOgpIaWhvICEKCkljaCBzdWNoZSB2b24gRXJpYyB2YW4gTHVzdGJhZGVyIGRpZSBCdWVjaGVyICJEb2xtYW4iLCBEYWktU2FuIiwgIk1vaWNoaSIuCkRpZXNlIEJ1ZWNoZXIgc2luZCBpbSBIZXluZS1WZXJsYWcgZXJzY2hpZW5lbiB1bnRlciBkZW4gTnVtbWVybiA3ODE5LCA4MDA1LAo4bjU0LgpMZWlkZXIgdmVybGVnZW4gZGllIGRpZSBuaWNodCBtZWhyIHVuZCBpY2ggaGFiIGRpZSBub2NoIGluIGtlaW5lbSBBbnRpcXVhcmlhdApnZWZ1bmRlbi4gRXJzY2hlaW51bmdzamFocmUgd2FyZW4gendpc2NoZW4gMTk4OSB1bmQgMTk5MS4KRmFsbHMgamVtYW5kIGVpbmVuIFRpcCBoYXQsIHdvIGljaCBkaWUgZmluZGVuIGthbm4sIHdhZXJlIGljaCBkYW5rYmFyIGRhZnVlci4KV2VubiBlaW5lciBtaXIgZGllc2UgQnVlY2hlciB2ZXJrYXVmZW4gbW9lY2h0ZSAtIE1haWwgYW4gbWljaCEKCkRhbmtlISA6KQpCaXJkeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN1Y2hlIEJ1ZWNoZXIgKEJpcmR5LCAyNS4gSmFuIDIwMDIsIDA5OjIxOjA0KToKZXJzZXR6dCA4bjU0IGR1cmNoIDgwNTQgKmcqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFN1Y2hlIEJ1ZWNoZXIgKE1vcmdvdGgsIDI1LiBKYW4gMjAwMiwgMDk6MjU6MDUpOgp+IyEgcm49QmlyZHkgcnQ9MTAxMTk0Njg2NCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTE5NDY4NjQKTHVzdGJhZGVyPz8KQWxzbyBTZXggaW4gZGVyIFdhbm5lIGlzIGphIG5ldHQsIGFiZXIgZGllIFNhdWVyZWkgbmFjaGVyIGluIEJhZCA6KSAqendpbmtlcgpBbGluZSB6dSoKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTdWNoZSBCdWVjaGVyIChIYXRlLCAyNS4gSmFuIDIwMDIsIDEwOjIxOjMwKToKfiMhIHJuPU1vcmdvdGggcnQ9MTAxMTk0NzEwNSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTE5NDY4NjQKT3JkZW50bGljaGUgQmFlZGVyIGhhYmVuIGVpbmVuIEJvZGVuYWJmbHVzcyAuLi4KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFN1Y2hlIEJ1ZWNoZXIgKFJvY2h1cywgMjcuIEphbiAyMDAyLCAwMDozMTo1Myk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwMTE5NDcxMDUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDExOTQ2ODY0CkFsc28gZWluZSBXYW5uZSBpc3QgdWVibGljaGVyd2Vpc2UgcmVjaHQgbGVpY2h0IHp1IHJlaW5pZ2VuLAp3aWNodGlnZXIgaXN0IGRhIHNjaG9uLCBkYXNzIER1IGRpZSBydXRzY2hmZXN0ZSBNYXR0ZQpuaWNodCB2ZXJnaXNzdCAqendpbmtlciBlaW5lciBhbmRlcmVuIEEqIHp1KiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogU3VjaGUgQnVlY2hlciAoR25vbWUsIDI3LiBKYW4gMjAwMiwgMDA6NDQ6MjApOgp+IyEgcm49Um9jaHVzIHJ0PTEwMTIwODc5MTMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDExOTQ2ODY0CnJ1dHNjaGZlc3RlIG1hdHRlbj8Kd296dSBnaWJ0IGVzIGRlbm4gdWVibGljaGVyd2Vpc2UgZHVzY2hzdGFuZ2VuIHp1bSBmZXN0aGFsdGVuPwoKZ25PbWUgendpbmtlcnQgbmllbWFuZGVtIHp1ID46KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU3VjaGUgQnVlY2hlciAoTXVwZmVsLCAyNy4gSmFuIDIwMDIsIDAwOjQ2OjQ0KToKfiMhIHJuPUdub21lIHJ0PTEwMTIwODg2NjAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDExOTQ2ODY0CjplcmlubmVydCBzaWNoLCBtYWwgYmVpIGRlciBHZWxlZ2VuaGVpdCBkZW4gZ2FuemVuIER1c2Nodm9yaGFuZyBtaXRnZW5vbW1lbiB6dQpoYWJlbi4uLgooQWxzbyBiZXNzZXIgcnV0c2NoZmVzdGUgTWF0dGVuIDspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogU3VjaGUgQnVlY2hlciAoUm9uZGEsIDI4LiBKYW4gMjAwMiwgMDA6NTk6NDMpOgp+IyEgcm49TXVwZmVsIHJ0PTEwMTIwODg4MDQgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDExOTQ2ODY0ClJvY2h1cz8gTXVwZmVsPz8/CgpJcmdlbmR3aWUgaGFidCBJaHIgYmVpZGVuIHNjaG9uIEVyZmFocnVuZ2VuIGdlbWFjaHQuLi4gbmFqYSA7LSkKClJvbmRhICplcnN0YXVudC4gZXJzY2h1ZXR0ZXJ0LiB1bnNjaHVsZGlnKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJXWi1Gb3J1bSAoWm9vaywgMjguIEphbiAyMDAyLCAxMTo1OTo1NCk6Cn4jISBybj1Qc3kgcnQ9MTAxMjIxNDQ3NCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTIyMTQ0NzQKSWNoIG1hZyBtaWNoIGJlaSBkZXIgQmV1cnRlaWx1bmcgZGVzICJCb2FyZHMiIHRhZXVzY2hlbiwgYWJlciBpY2ggZ2ViZSBtYWwKZm9sZ2VuZGVuIEhpbndlaXM6IFdpciBrb2VubmVuIGtlaW5lIEF1ZnJ1ZmUgenUgVVJMcyBvZGVyIGRpcmVrdCB6dW0gClNvZnR3YXJlLSBldGMuICJyYXVia29waWVyZW4iIGhpZXIgaW0gTXVkIHN0ZWhlbiBsYXNzZW4uIERlc2hhbGIgaGFiZSBpY2ggZGVuCkFydGlrZWwgZ2Vsb2VzY2h0LgoKR3J1c3MsIFpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VjaGUgQnVlY2hlciAoQWxib2luLCAyOC4gSmFuIDIwMDIsIDE1OjIzOjI3KToKfiMhIHJuPUJpcmR5IHJ0PTEwMTE5NDY4MTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDExOTQ2ODEwCltdIER1IGtlbm5zdCBKdXN0Ym9va3MgKHd3dy5qdXN0Ym9va3MuZGUpCgpoYWJlIGRhIGplZGVuZmFsbHMgYWxsZSAzIEJ1ZWNoZXIgaW0gQW5nZWJvdCBnZWZ1bmRlbgoKR3J1ZXNzZSBBbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VzdWNodDogVWh1cmEgOykgKEtleSwgIDkuIEZlYiAyMDAyLCAwMToxMDoxOSk6CkhtbSBoYXQgbm9jaCBpcmdlbmR3ZXIgS29udGFrdCB6dSBVaHVyYT8KV2FlcmUgbmV0dCB3ZW5uIGRlcmplbmlnZSBtaXIgaWhyZSBlbWFpbCBBZHJlc3NlIHp1a29tbWVuIGxhc3NlbiBrb2VubnRlIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHZXN1Y2h0OiBVaHVyYSA7KSAoQ2F0d2VhemxlLCAxNC4gRmViIDIwMDIsIDA5OjE0OjM4KToKfiMhIHJuPUJ1YmJhIHJ0PTEwMTM2MjI0NDAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDEzMjEzNDE5CkljaCB3ZWlzcyBuaWNodCwgb2IgZGFzIHNvIHNjaGxhdS9rb3JyZWt0IGlzdCwgZGllIGVtYWlsLWFkcmVzc2UgZWluZXMgYW5kZXJlbgppbiBvZWZmZW50bGljaCBpbiBkaWUgWmVpdHVuZyB6dSBzdGVsbGVuLi4uCgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo0LiBDaGVtbml0emVyIExpbnV4LVRhZyAoVmFyZGlvbiwgMTguIEZlYiAyMDAyLCAxMjoyODo1Nik6CkhpLgoKQW0gOS4gdW5kIDEwLiBNYWVyeiBmaW5kZXQgZGVyIDQuIENoZW1uaXR6ZXIgTGludXgtVGFnIHN0YXR0LiBXZWl0ZXJlCkluZm9ybWF0aW9uZW4gZGF6dSB1bnRlciBodHRwOi8vd3d3LnR1LWNoZW1uaXR6LmRlL2xpbnV4L3RhZy9sdDQvCgpWYXJkaW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNUEctRW5jb2RlciAoR29yLCAxOS4gRmViIDIwMDIsIDA3OjUzOjE4KToKSGFsbG8genVzYW1tZW4sCmljaCBzdWNoZSBlaW5lbiBBdmktTVBFRyBFbmNvZGVyLiBJY2ggaGFiZSB6d2FyIGVpbmVuIGhpZXIsIGFiZXIgZGVyIHdpbGwgbWlyCmZ1ZXIgNjAwTUIgQXZpIDc4IFN0dW5kZW4gYnJhdWNoZW4gdW0gZGVuIEthZXNlIGluIE1QRUcgdW16dXd1cnNjaHRlbG4uIEtlbm50CmplbWFuZCB2b24gZXVjaCBuZW4gRW5jb2RlciwgZGVyIGRhcyBiZXNzZXIsIGJ6dyBzY2huZWxsZXIgbWFjaHQ/CgpHcnVlc3NlIEdvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1QRy1FbmNvZGVyIChNb3Jnb3RoLCAxOS4gRmViIDIwMDIsIDA3OjU0OjEwKToKfiMhIHJuPUdvciBydD0xMDE0MTAxNTk4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OApPUz8gV2VsY2hlbiBudXR6dCBEdT8gSGFyZHdhcmU/IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTVBHLUVuY29kZXIgKFBpbGdyaW0sIDE5LiBGZWIgMjAwMiwgMTI6MDg6MjQpOgp+IyEgcm49TW9yZ290aCBydD0xMDE0MTAxNjUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OApVbmQgLi4uIE1QRUcxIG9kZXIgTVBFRzIgPwoKUGlsZ3JpbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNUEctRW5jb2RlciAoR29yLCAxOS4gRmViIDIwMDIsIDEyOjA4OjMyKToKfiMhIHJuPU1vcmdvdGggcnQ9MTAxNDEwMTY1MCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMDE1OTgKT1MgaXN0IG1pciByZWxhdGl2IHd1cnNjaHQuIHdpbmRvb2Ygb2RlciBsaW51eC4gSGFyZHdhcmUgZGllIE1QRUcgZW5jb2RpbmcKdW50ZXJzdHVldHp0IGhhYiBpY2ggbnVyIG5lIE1hdHJveCBSYWluYm93cnVubmVyLiBTb25zdCBoYWIgaWhjIG5vY2ggcGFhcgpSZWNobmVyY2hlbiB1ZWJlciBtaXQgdmllbCBTcGVpY2hlciB1bmQgUmVjaGVucG93ZXIuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNUEctRW5jb2RlciAoR29yLCAxOS4gRmViIDIwMDIsIDEyOjA4OjQ4KToKfiMhIHJuPUdvciBydD0xMDE0MTE2OTEyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OApNUEVHMiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTVBHLUVuY29kZXIgKFBpbGdyaW0sIDE5LiBGZWIgMjAwMiwgMTI6MDk6NDYpOgp+IyEgcm49UGlsZ3JpbSBydD0xMDE0MTE2OTA0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OApGYXN0IHZlcmdlc3NlbiAuLi4KCmh0dHA6Ly93d3cudmNkaGVscC5jb20vCgpoaWxmdCB2aWVsbGVpY2h0IHdlaXRlciE/CgpQaWxncmltCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNUEctRW5jb2RlciAoQW50aGVhLCAxOS4gRmViIDIwMDIsIDEyOjM4OjUyKToKfiMhIHJuPVBpbGdyaW0gcnQ9MTAxNDExNjk4NiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMDE1OTgKT2RlciB1bnRlciB3aW5kb29mIGRlbiBhbGxzZWl0cyBiZWxpZWJ0ZW4gKHp1bWluZGVzdCB2b24gbWlyIDspICkgVmlydHVhbER1Yi4KaHR0cDovL3d3dzE4Ni5wYWlyLmNvbS92ZHViL2luZGV4Lmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE1QRy1FbmNvZGVyIChHb3IsIDE5LiBGZWIgMjAwMiwgMTI6NTE6NTApOgp+IyEgcm49QW50aGVhIHJ0PTEwMTQxMTg3MzIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDE0MTAxNTk4ClZpZWxlbiBEYW5rLCBlcyBjb2RpZXJ0LiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTVBHLUVuY29kZXIgKE1vcmdvdGgsIDE5LiBGZWIgMjAwMiwgMTM6MDA6MTQpOgp+IyEgcm49R29yIHJ0PTEwMTQxMTk1MTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDE0MTAxNTk4CkljaCB3dWVyZCBkYSBlaGVyIFRNUEVHIHZvcnNjaGxhZ2VuLiBodHRwOi8vd3d3LnBlZ2FzeXMtaW5jLmNvbS9lX21haW4uaHRtbApJc3QgYXVjaCBzZWhyIGd1dCwgdW5kIG1hbiBicmF1Y2h0IG5pY2h0IHNvdmllbCBLcmFtcyBlaW5zdGVsbGVuIHdpZSBiZWkKVmlydHVhbER1Yi4KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBNUEctRW5jb2RlciAoR29yLCAxOS4gRmViIDIwMDIsIDEzOjAxOjE2KToKfiMhIHJuPU1vcmdvdGggcnQ9MTAxNDEyMDAxNCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMDE1OTgKSWNoIGhhYmUgVE1QR0VuYyBvZGVyIHdlaSBkYXMgaGVpc3N0LiBEYXMgZnVua3Rpb25pZXJ0IHByaW1hIHVuZCBsYWVzc3Qgc2ljaAphdWNoIG1pdCBkaXZ4IHBsdWdpbnMgZXJ3ZWl0ZXJuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1QRy1FbmNvZGVyIChWYXJkaW9uLCAxOS4gRmViIDIwMDIsIDEzOjA2OjQ1KToKfiMhIHJuPUdvciBydD0xMDE0MTAxNTk4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OAptZW5jb2RlciAoaHR0cDovL3d3dy5NUGxheWVySFEuaHUvaG9tZXBhZ2UvKSB6dW0gRXJ6ZXVnZW4gdm9uIERpdnggNC4wIEZpbGVzCmF1cyBmYXN0IGJlbGllYmlnZW4gQXVzZ2FuZ3Nmb3JtYXRlbgpmZm1wZWcgKGh0dHA6Ly9mZm1wZWcuc291cmNlZm9yZ2UubmV0LykgZnVlciB2aWVsZSBhbmRlcmUgRm9ybWF0ZSAoei5CLgptc21wZWc0ID0gRGl2eCAzLjUpCgplbnRrcmFlZnRlIApbZmZtcGVnIC1mb3JtYXRzXQpGaWxlIGZvcm1hdHM6CiAgRW5jb2Rpbmc6IG1wMiBhYzMgbXBlZyBtcGVndmlkZW8gbWpwZWcgaDI2MyBybSBhc2YgYXZpIG1wanBlZyBqcGVnCnNpbmdsZWpwZWcgc3dmIHdhdiBzMTZsZSBzMTZiZSB1MTZsZSB1MTZiZSBzOCB1OCBtdWxhdyBhbGF3IHJhd3ZpZGVvIGZmbSBwZ20KcHBtIHBnbXl1diAuWS5VLlYgcGdtcGlwZSBwZ215dXZwaXBlIHBwbXBpcGUgYXVkaW9fZGV2aWNlCiAgRGVjb2Rpbmc6IG1wMiBtcGVnIG1wZWd2aWRlbyBtanBlZyBoMjYzIHJtIGFzZiBhdmkganBlZyBzd2Ygd2F2IHMxNmxlIHMxNmJlCnUxNmxlIHUxNmJlIHM4IHU4IG11bGF3IGFsYXcgcmF3dmlkZW8gZmZtIHBnbSBwcG0gcGdteXV2IC5ZLlUuViBwZ21waXBlCnBnbXl1dnBpcGUgcHBtcGlwZSB2aWRlb19ncmFiX2RldmljZSBhdWRpb19kZXZpY2UKQ29kZWNzOgogIEVuY29kZXJzOiBhYzMgbXAyIG1wZWcxdmlkZW8gaDI2MyBoMjYzcCBydjEwIG1qcGVnIG1wZWc0IG1zbXBlZzQgcmF3dmlkZW8KcGNtX3MxNmxlIHBjbV9zMTZiZSBwY21fdTE2bGUgcGNtX3UxNmJlIHBjbV9zOCBwY21fdTggcGNtX2FsYXcgcGNtX211bGF3CiAgRGVjb2RlcnM6IHJhd3ZpZGVvIGgyNjMgbXBlZzQgbXNtcGVnNCBtcGVndmlkZW8gaDI2M2kgcnYxMCBtanBlZyBtcGVnYXVkaW8KYWMzIHBjbV9zMTZsZSBwY21fczE2YmUgcGNtX3UxNmxlIHBjbV91MTZiZSBwY21fczggcGNtX3U4IHBjbV9hbGF3IHBjbV9tdWxhdwpTdXBwb3J0ZWQgZmlsZSBwcm90b2NvbHM6IGZpbGU6IHBpcGU6IHVkcDogaHR0cDoKRnJhbWUgc2l6ZSBhYmJyZXZpYXRpb25zOiBzcWNpZiBxY2lmIGNpZiA0Y2lmCk1vdGlvbiBlc3RpbWF0aW9uIG1ldGhvZHM6IHplcm8oZmFzdGVzdCkgZnVsbChzbG93ZXN0KSBsb2coZGVmYXVsdCkgcGhvZHMKCkJlaWRlIFByb2dyYW1tZSBzaW5kIGZ1ZXIgTGludXguCgpWYXJkaW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1QRy1FbmNvZGVyIChOb25uZSwgMTkuIEZlYiAyMDAyLCAxMzowNzoxMyk6Cn4jISBybj1WYXJkaW9uIHJ0PTEwMTQxMjA0MDUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDE0MTAxNTk4CldhcyBpc3QgZGVubiAnZW50a3JhZWZ0ZScgZnVlciBlaW4gRW5jb2RlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTVBHLUVuY29kZXIgKFZhcmRpb24sIDE5LiBGZWIgMjAwMiwgMTM6MDc6NTcpOgp+IyEgcm49Tm9ubmUgcnQ9MTAxNDEyMDQzMyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMDE1OTgKRWluIHZlcnNlaGVudGxpY2hlciBEcnVjayBhdWYgRjggOi0pCgpWYXJkaW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNUEctRW5jb2RlciAoTm9ubmUsIDE5LiBGZWIgMjAwMiwgMTM6MDg6NTcpOgp+IyEgcm49VmFyZGlvbiBydD0xMDE0MTIwNDc3IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OApBY2gsIGdpYiBlcyBkb2NoIHp1ISBEdSBoYXN0IERlaW4gU2tyaXB0IHdpZWRlciBuaWNodCBhYmdlc2NoYWx0ZXQgYmVpbQpTY2hyZWliZW4uCgpOb25uZSwgbXVzcyBkYWJlaSBpbW1lciBhbiBMZWlibml6JyBUb2lsZXR0ZW5nYW5nIGluIGRlciBNUEEgZGVua2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTVBHLUVuY29kZXIgKEdvciwgMTkuIEZlYiAyMDAyLCAxMzowOTo1MSk6Cn4jISBybj1Ob25uZSBydD0xMDE0MTIwNTM3IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEwMTU5OApHb3IgYml0dGV0IHVtIEF1ZmtsYWVydW5nLCBkYSBlciBkaWUgVG9pbGV0dGVuZ2V3b2huaGVpdGVuIGdld2lzc2VyCk11ZGRlcmlubmVuIG5pY2h0IHZlcmZvbGd0IGhhdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IE1QRy1FbmNvZGVyIChOb25uZSwgMTkuIEZlYiAyMDAyLCAxMzoxMDo1Mik6Cn4jISBybj1Hb3IgcnQ9MTAxNDEyMDU5MSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMDE1OTgKRGEgaGF0IGVpbmUgZ2V3aXNzZW4gTXVkZGVyaW4gYXVjaCB2ZXJnZXNzZW4gaWhyIFRvaWxldHRlbnNrcmlwdCBhYnp1c2NoYWx0ZW4KYWxzIHNpZSBwb3N0ZXRlLiBIYXQgd29obCBpbSBJbWJpc3MgZ2VzY2hyaWViZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2FubmVyIChOb25uZSwgMTkuIEZlYiAyMDAyLCAxMzoxMTo0NCk6CldhcyBrYXVmdCBtYW4gZGVyemVpdCBmdWVyIGVpbmVuIFNjYW5uZXIsIHdlbm4gbWFuIHVtIGRpZSAyMDAgRXVybyBhdXNnZWJlbgp3aWxsLiBLZWluIE11c3RlaywgZGllIGhhYmVuIGJlaSBtaXIgdmVyc2NoaXNzZW4uCgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTY2FubmVyIChCaXJkeSwgMTkuIEZlYiAyMDAyLCAxMzoxOToxMik6Cn4jISBybj1Ob25uZSBydD0xMDE0MTIwNzA0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEyMDcwNAp3d3cuaGV3bGV0dC1wYWNrYXJkLmRlLCBhbnNvbnN0ZW4ga2FubiBpY2ggZGVuIGhwIHNjYW5qZXQgNDQwMGMgZW1wZmVobGVuLAprb3N0ZXQgc29nYXIgbnVyIDE1OSBldXJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNjYW5uZXIgKENhdHdlYXpsZSwgMTkuIEZlYiAyMDAyLCAxMzoxOTo0Mik6Cn4jISBybj1CaXJkeSBydD0xMDE0MTIxMTUyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAxNDEyMDcwNApBdXMgJ2FsdGVyJyBFcmZhaHJ1bmc6IEFnZmEuCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFNjYW5uZXIgKEdvciwgMTkuIEZlYiAyMDAyLCAxMzoyMTozMyk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9MTAxNDEyMTE4MiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMjA3MDQKR2VnZW4gQWdmYSwgZGEgZGVyIFRyZWliZXJzdXBwb3J0IHppZW1saWNoIGJlc2NoZWlkZW4gaXN0LiBIUCBicmluZ3QsCnp1bWluZHJlc3QgYmVpIG5ldWVuIFNjYW5uZXIsIGd1dGUsIHNjaGFyZmUgQmlsZGUsIHp1IG5lbSBmYWlyZW4gUHJlaXMgbWl0Cmd1dGVyIFRyZWliZXJ1bnRlcnN0dWV0enVuZy4gV2VubiBkZXIgU2Nhbm5lciBiZWkgV2luZG93cyAyMDEwIGF1Y2ggbm9jaCBnZWhlbgpzb2xsLCBkYW5uIGxpZWJlcm4gbmVuIEhQLiA7KQoKR29yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTY2FubmVyIChHcmltbWJvcm4sIDE5LiBGZWIgMjAwMiwgMTM6Mjc6NDYpOgp+IyEgcm49R29yIHJ0PTEwMTQxMjEyOTMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDE0MTIwNzA0CkFsc28sIGF1ZiBkZW4gZXJzdGVuIEJsaWNrIGdpYnRzIGZ1ZXIgZXRsaWNoZSBBZ2ZhLVNjYW5uZXIgVW50ZXJzdHVldHp1bmcgaW4Kc2FuZS4gCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFNjYW5uZXIgKEdvciwgMjAuIEZlYiAyMDAyLCAwMDoyMDo1Mik6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAxNDEyMTY2NiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMjA3MDQKRGVyIGVyc3RlIEJsaWNrIHRydWVndCBtZWlzdC4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFNjYW5uZXIgKEdyaW1tYm9ybiwgMjAuIEZlYiAyMDAyLCAwMDoyMTo0NCk6Cn4jISBybj1Hb3IgcnQ9MTAxNDE2MDg1MiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQxMjA3MDQKSGFiIGljaCBhdWNoIG1pdHRsZXJ3ZWlsZSBiZW1lcmt0LCBhYmVyIGljaCBoYXR0ZSBnZWhvZmZ0IGVzIHd1ZXJkZSBuaWVtYW5kZW0Kc28gcmljaHRpZyBhdWZmYWxsZW4uIDstKQoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2Nhbm5lciAoTXVwZmVsLCAyMC4gRmViIDIwMDIsIDAwOjQzOjU5KToKfiMhIHJuPU5vbm5lIHJ0PTEwMTQxMjA3MDQgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDE0MTIwNzA0CnNvJ24gQ2Fub24gIkxJREUiIHNjYW5uZXIuIG5pbW10IHdlbmlnIHBsYXR6IHdlZyBtYWNodCBndXRlIHF1YWxpdGFldAoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2Nhbm5lciAoTm9ubmUsIDIwLiBGZWIgMjAwMiwgMDg6NTY6MTYpOgp+IyEgcm49TXVwZmVsIHJ0PTEwMTQxNjIyMzkgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDE0MTIwNzA0CkljaCBkZW5rZSwgaWNoIG5laG0gZGVuIEhQIDU0MDBjLiBBZ2ZhIHN0ZWxsdCBkaWUgU2Nhbm5lciBlaW4sIGRhIGthbm4gbWFuCnNpY2ggZGVua2VuLCB3aWUgZXMgbWl0IFRyZWliZXJuIGF1c3NpZWh0Li4uIDE5OSQgaXN0IG9rYXksIGRlciBpc3Qgc2NobmVsbAp1bmQgaGF0IG5lIGd1dGUgQXVmbG9lc3VuZy4KCkRhbmtlIGZ1ZXIgZGllIFRpcHBzCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDQuIENoZW1uaXR6ZXIgTGludXgtVGFnIChXaGl0ZXRpZ2VyLCAyMi4gRmViIDIwMDIsIDE5OjQ5OjAzKToKfiMhIHJuPVZhcmRpb24gcnQ9MTAxNDAzMTczNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMTQwMzE3MzYKd2llIHdhZXJzIGRhenUgbWFsIG1pdCBuZW0gdHJlZmZlbiBkZXIgY2hlbW5pdHplciBtdWRkZXI/Cm51ciBzbyBuZSBpZGVlLi4uCldULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RyYWZyZWNodCB1bmQgSW50ZXJuZXQtUHJvdmlkZXIgKFpvb2ssICA0LiBKdW4gMjAwMiwgMTA6NDU6MTApOgpXZW4gZXMgaW50ZXJlc3NpZXJ0LCBkZXIgZmluZGV0IGluIGRlciBSdWJyaWsgTWVnYXNjaG1hcnJuIChkZXJ6ZWl0CkFydGlrZWwgMjE5KSBpbiBSZV4yODYyNiBlaW5lbiBMaXRlcmF0dXJ0aXAuIDotKSAKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIZWlyYXQgTGFyaW5hIHUuIEthcmljIDIzOjAwIEFraGFyIE50aCd0YXIgKEthbGxpb3BlLCAgNi4gSnVuIDIwMDIsIDIyOjAwOjM3KToKCgogICAgICAgICBGb2xnZW5kZXMgaXN0IGRlciBHZW1laW5kZSBiZWthbm50enVnZWJlbjoKCgoKICAgICAgICAgRGVuIGhlaWxpZ2VuIEJ1bmQgZGVyIEVoZSBlaW5nZWhlbiB3ZXJkZW4gCiAgICAgICAgICAgICAgIGluIGVpbmVyIFN0dW5kZSwgdW0gMjM6MDAgVWhyOiAKCiAgICAgICAgICAgICAgICAgICAgTGFyaW5hICB1bmQgIEthcmljLgoKICAgICBEaWUgRmVpZXJsaWNoa2VpdGVuIGZpbmRlbiBhdWYgZGVtIEhvY2hwbGF0ZWF1IGRlciAgCiAgICAgICBJbnNlbCBBa2hhciBOdGgndGFyIHVuZCBuaWNodCB1bnRlciBBdXNzY2hsdXNzICAgCiAgICAgICAgIGRlciBPZWZmZW50bGljaGtlaXQgc3RhdHQuIEVzIHdpcmQgamVkb2NoCiAgICAgICBnZWJldGVuLCB2b20gdHJhZGl0aW9uZWxsZW4gIlByaWVzdGVyLU1ldHplbG4iIAogICAgICAgICAgICAgICAgICAgICAgICAgYWJ6dXNlaGVuLgoKCmkuQS4sCiAgS2FsbGlvcGUKKFByaWVzdGVyaW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGVpcmF0IExhcmluYSB1LiBLYXJpYyAyMzowMCBBa2hhciBOdGgndGFyIChNdXBmZWwsICA2LiBKdW4gMjAwMiwgMjI6MDg6MjQpOgp+IyEgcm49S2FsbGlvcGUgcnQ9MTAyMzM5MzYzNyByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjMzOTM2MzcKVG9ldGV0IEthbGxpb3BlISA7KQoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGVpcmF0IExhcmluYSB1LiBLYXJpYyAyMzowMCBBa2hhciBOdGgndGFyIChNb250YW51cywgIDYuIEp1biAyMDAyLCAyMjoxODo0OCk6Cn4jISBybj1NdXBmZWwgcnQ9MTAyMzM5NDEwNCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjMzOTM2MzcKSG9jaHplaXRlbiBvaG5lIHRvdGVuIFByaWVzdGVyIHNpbmQgd2llLi4uClsgXSBSb2NodXMgb2huZSBDb2xhClsgXSBBbnRoZWEgb2huZSBTY2h1cHBlbgpbIF0gT2V0dGkgb2huZSBLYW1lbGhlcmRlClsgXSBHcmltbWJvcm4gYWxzIEVsZgpbIF0gT3JrdG9ldGVyIG9obmUgT3JrcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWndpc2NoZW5zdGFuZCAuLi4gKFpvY2ssIDE0LiBKdW4gMjAwMiwgMDM6MTE6NTUpOgp6dSBLb3JlYSBmaW5kZXQgc2ljaCBpbiBkZXIgUnVicmlrIE1lZ2FzY2htYXJybiBpbSBSZQoyOTIzOS4KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXV0c2NoZXIgU3BpZWxlcHJlaXMgMjAwMiAoTW9udGFudXMsIDE0LiBKdW4gMjAwMiwgMTk6MTY6MTApOgpJY2ggaGF0dGUgYW4gZGllc2VyIFN0ZWxsZSBhbiBhdXMgcmVpbmVtIEVJZ2VubnV0eiBsZXR6dGVzIEphaHIgZnVlciBkZW4KRGV1dHNjaGVuIFNQaWVsZXByZWlzIDIwMDEgZ2V3b3JiZW4sIGRhbWl0IGlociBtZWluIFNQaWVsIGhvY2ggaW4gZGllIENoYXJ0cwpwdXNodC4gSGF0IG5pY2h0IGdhbnogZ2VyZWljaHQsIGFiZXIgdW50ZXIgZGVuIEVpbnNlbmRlcm4gd3VyZGVuIFNQaWVsZQp2ZXJsb3N0LCB1bmQgTGlhcmEgaGF0IGRhYmVpIGVpbnMKZ2V3b25uZW4uCkxvaG50IHNpY2ggYWxzby4gOi0pCkpldHp0IGlzdCBkaWUgQXVzc2NocmVpYnVuZyBmdWVyIDIwMDIgZGEsIGJpcyB6dW0gMzEuNy4gZ2VodCBkYXMgYXVjaCBvbmxpbmUKdW50ZXIKCnd3dy5kZXV0c2NoZXItc3BpZWxlcHJlaXMuZGUKCldlcm5pY2h0IGdlbmF1IHdlaXNzLCB3ZWxjaGUgU1BpZWxlIGVyIHRpcHBlbiBzb2xsOiBpY2gga2FubiBkaWUgRm9sZ2VuZGVuCmVtcGZlaGxlbgoKKiBNdXRhYm9obiAoTG9va291dC1HYW1lcykKKiBTY2h1c3MgdW5kIFRvciAoTG9va291dCBHYW1lcykKKiBQdWVydG8gUmljbyAoQWxlYSkKKiBEc2NodW5rZSAoUXVlZW4pCiogVHJhbnNhbWVyaWNhIChXaW5uaW5nIE1vdmVzKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERldXRzY2hlciBTcGllbGVwcmVpcyAyMDAyIChNb250YW51cywgMTQuIEp1biAyMDAyLCAxOTo0NjowNik6Cn4jISBybj1Nb250YW51cyBydD0xMDI0MDc0OTcwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyNDA3NDk3MApVbmQgbm9jaCBlaW4ga2xlaW5lciBBbnJlaXo6CkxldHp0ZXMgSmFociB3YXJlbiBlcyAxNTQ0IEVJbnNlbmR1bmdlbiwgdW50ZXIgZGVuZW4gdWViZXIgMTAwIFByZWlzZSB2ZXJsb3N0Cnd1cmRlbi4KU28gJ25lIEdld2lubnF1b3RlIGhhdCBtYW4gYmVpIFByZWlzYXVzc2NocmVpYmVuIHNlbHRlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERldXRzY2hlciBTcGllbGVwcmVpcyAyMDAyIChWZWN0b3IsIDE1LiBKdW4gMjAwMiwgMDI6MzU6MjIpOgp+IyEgcm49TW9udGFudXMgcnQ9MTAyNDA3NDk3MCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjQwNzQ5NzAKUHVlcnRvIFJpY28gZ2V3aW5udC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGV1dHNjaGVyIFNwaWVsZXByZWlzIDIwMDIgKE1vbnRhbnVzLCAxNS4gSnVuIDIwMDIsIDAyOjUxOjExKToKfiMhIHJuPVZlY3RvciBydD0xMDI0MTAxMzIyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyNDA3NDk3MApWZWN0b3IgLSBkYXMgaGllciBpc3Qga2VpbiBXTS1UaXBwLiBJY2ggZmFlbmRlIGVzIGF1Y2gga2xhc3NlLCB3ZW5uIFB1ZXJ0bwpSaWNvIGdld2lubmVuIHd1ZXJkZSwgYWJlciBpY2ggZXJrbGFlcnMgbm9jaG1hbCAtIGZvbGdlIGRlbSBMaW5rIGF1ZgpkaWVXZWJzZWl0ZSB1bmQgZ2ViIGRvcnQgZGVpbmUgU3RpbW1lIGFiLiBEYXMgaXN0IHNvd2FzIHdpZSBCYXNpc2RlbW9rcmF0aWUuClVuZCBkdSBrYW5uc3Qgc29nYXIgd2FzIGdld2lubmVuLiBJc3QgZGFzIG5pY2h0IHByaW1hPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGV1dHNjaGVyIFNwaWVsZXByZWlzIDIwMDIgKEJpcmR5LCAxNS4gSnVuIDIwMDIsIDExOjEyOjE3KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwMjQxMDIyNzEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI0MDc0OTcwCk1hbiBtdXNzIGRpZSBTcGllbGUgbmljaHQgZ2VzcGllbHQgaGFiZW4gb2Rlcj8gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaXJpdCBDb3Jwc2UgLSBMb3ZlIGlzIGEgR3JhdmUgKEJlZWx6ZWJ1YiwgIDEuIEp1bCAyMDAyLCAwOToxOTozNCk6Ck1haGx6ZWl0ICEKCkZ1ZXIgZGllLCBkaWUgZXMgd2lzc2VuIHdvbGxlbjoKRGFzIEVyc3RnZWJvcmVuZSBpc3QgZGEuCgp3d3cuc3Bpcml0LWNvcnBzZS5kZQp3d3cuc3RmLXJlY29yZHMuZGUKCkJlZWx6ZWJ1YiBhbGlhcyBSYWxwaCBhbGlhcyBTdHJ1Z2dsZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTcGlyaXQgQ29ycHNlIC0gTG92ZSBpcyBhIEdyYXZlIChHcmltbWJvcm4sICAxLiBKdWwgMjAwMiwgMDk6MjE6MDIpOgp+IyEgcm49QmVlbHplYnViIHJ0PTEwMjU1MDc5NzQgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI1NTA3OTc0ClVuZCB3byBzaW5kIGRhIGRpZSBtcDMncz8KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTcGlyaXQgQ29ycHNlIC0gTG92ZSBpcyBhIEdyYXZlIChCZWVsemVidWIsICAxLiBKdWwgMjAwMiwgMDk6MjI6MTIpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwMjU1MDgwNjIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI1NTA3OTc0CnNpbmQgaW4gYXJiZWl0LiBlaHJsaWNoLgpkZW1uYWVjaHN0IG1laHIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlbW8hIChDYXNzaWR5LCAgMy4gSnVsIDIwMDIsIDE5OjMyOjEwKToKSGF1c2hhbHRzc3BlcnJlLApFaW5zdGVsbHVuZ3NzdG9wLApTdHVkaWVuZ2VidWVocmVuIQoKRGllIGRldXRzY2hlbiBVbmlzIHdlcmRlbiBrYXB1dHRnZXNwYXJ0IQoKRGVzaGFsYjogRCBFIE0gTwoxMC4gSnVsaSAyMDAyLCAxMjowMCBVaHIKQmVybGluIEFsZXhhbmRlcnBsYXR6CgpTYWd0cyB3ZWl0ZXIsIGdlaHQgaGluLCB0dXQgZXR3YXMhCldlbm4ga2VpbmVyIHByb3Rlc3RpZXJ0IHdpcmQgc2ljaCBhdWNoIG5pY2h0cyBhZW5kZXJuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlbW8hIChHbm9tZSwgIDMuIEp1bCAyMDAyLCAyMDoxODoyOCk6Cn4jISBybj1DYXNzaWR5IHJ0PTEwMjU3MTc1MzAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI1NzE3NTMwCmVzIHdpcmQgc2ljaCBhdWNoIHNvIG5pY2h0cyBhZW5kZXJuLiBkYXp1IGhhYmVuIHZpZWwgenUgdmllbGUgaG9semtvZXBmZQpkYXMgc2FnZW4gZGEgb2Jlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZW1vISAoWm9vaywgIDQuIEp1bCAyMDAyLCAwOTo1NTowNik6Cn4jISBybj1DYXNzaWR5IHJ0PTEwMjU3MTc1MzAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI1NzE3NTMwCkR1bW0sIGRhIGhhYmVuIHdpciB2b24gdW5zZXJlbSBGYWNoYmVyZWljaCBTb21tZXJmZXN0LiBJY2ggd2VyZCBhbHNvCm5pY2h0IGtvbW1lbiBrb2VubmVuLgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVtbyEgKEJvaW5nLCAgNC4gSnVsIDIwMDIsIDEwOjAzOjUzKToKfiMhIHJuPVpvb2sgcnQ9MTAyNTc2OTMwNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjU3MTc1MzAKSW4gQlcgd3VyZGUgZGFtYWxzIGRlbW9uc3RyaWVydCB3aWUgYmxvZWQgLi4uIGhhdCdzIHdhcyBnZW51dHp0PyBOZWluLiBTZWl0CkphaHJlbiBoYWJlbiB3aXIgaGllciBTdHVkaWVuLUdlYnVlaHJlbi4KICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVtbyEgKEdyaW1tYm9ybiwgIDQuIEp1bCAyMDAyLCAxMDoyMzo0NSk6Cn4jISBybj1Cb2luZyBydD0xMDI1NzY5ODMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyNTcxNzUzMApUamEsIGRpZSBTY2h3YWJlbiBrb2VubmVuIGhhbHQgYWxsZXMuIEF1c3NlciBob2NoZGV1dHNjaC4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGVtbyEgKE1hbmRyYWdvbiwgIDQuIEp1bCAyMDAyLCAxNDoyMzo1OSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAyNTc3MTAyNSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjU3MTc1MzAKV28gaXN0IGRhcyBQcm9ibGVtIG1pdCBTdHVkaWVuZ2VidWVocmVuPyBJY2ggc2VoZSBrZWlucy4KRXMgbXVzcyBudXIgZGFzIHBhc3NlbmRlIFN0aXBlbmRpZW5zeXN0ZW0gZ2ViZW4gLi4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEZW1vISAoRWxiZXJldCwgIDQuIEp1bCAyMDAyLCAxNDoyNDo1MCk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTAyNTc4NTQzOSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjU3MTc1MzAKYWJlciBlaW5mYWNoIGdlYnVlaHJlbiB6dSBuZWhtZW4gdW0gZGVuIEhhdXNoYWx0IHp1IHN0b3BmZW4ga2FubiBrZWluZQpBbHRlcm5hdGl2ZSBzZWluCgpFbGJpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBEZW1vISAoTWFuZHJhZ29uLCAgNC4gSnVsIDIwMDIsIDE0OjI3OjIwKToKfiMhIHJuPUVsYmVyZXQgcnQ9MTAyNTc4NTQ5MCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjU3MTc1MzAKTmUuIEljaCBiaW4gYXVjaCBmdWVyIGRpZSB1bml2ZXJzaXRhZXJlIFNlbGJzdHZlcndhbHR1bmcgLi4uLiBhbGxlClN0dWRpZW5nZWJ1ZWhyZW4gcHJvIFVuaSAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IERlbW8hIChQaWxncmltLCAgNC4gSnVsIDIwMDIsIDE2OjUwOjMzKToKfiMhIHJuPU1hbmRyYWdvbiBydD0xMDI1Nzg1NjQwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyNTcxNzUzMApXb3ZvbiBJaHIgYWxsZSB0cmFldW10IT8KCldlbm4gJ3dhcyBhdWNoIGltbWVyJyBmdWVyIEdlYnVlaHJlbiBlaW5nZWZ1ZWhydCBzaW5kLCBpc3QgZXMKbnVyIG5vY2ggZWluIFZlcndhbHR1bmdzYWt0LCBkaWVzZSBhdWNoIHNjaG9lbiB2b24gU2VtZXN0ZXIgenUKU2VtZXN0ZXIgenUgZXJob2VoZW4gLi4uIHVuZCBkaWUgVW5pJ3Mgc2VoZW4gKGVyc3RtYWwpIG5vY2ggbml4CnZvbiBkZW0gR2VsZCEhIQoKTWVpbmUgVm9yaGVyc2FnZTogaW4gNCBTZW1lc3Rlcm4gc2luZCBkaWUgR2VidWVocmVuIDUwJSBoZW9laGVyCmFscyBiZWkgZWluZnVlaHJ1bmcgKE5laW4sIGRpZSBVbmkncyBzZWhlbiBkYW5uIGltbWVyIG5vY2ggbml4KSA6LTgKClBpbGdyaW0KClBTOiBBbiBkZXIgV1dVIE11ZW5zdGVyIHNpbmQgMzAlIGRlciBTdHVkaXMgdWViZXIgZGVyIDE1IFNlbWVzdGVyCk1hcmtlIHVuZCBzb21pdCBBYmdhYmVwZmxpY2h0aWchIDMwJSAoYmVpIGNhIDQwLjAwMCkgLi4uCktsYXIsIGRhc3Mgc2luZCBhbGxlcyBGYXVsZW56ZXIgdW5kIGFtIFN5c3RlbSBrYW5uIGRhcyBiZXN0aW1tdCBuaWNodApsaWVnZW4gKCpiaXR0ZXIqKSAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IERlbW8hIChDYXNzYW5kcmEsICA2LiBKdWwgMjAwMiwgMTQ6MTY6MzUpOgp+IyEgcm49UGlsZ3JpbSBydD0xMDI1Nzk0MjMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyNTcxNzUzMApOYWphIHN0dWRpZW5nZWJ1ZWhyZW4gYW5zaWNoIHNpbmQgc2Nob24gcy4uLiAuIERhcyBkaWUgZnVlciBkaWUKaGF1c2hhbHRzc3RvcGZ1bmcgdmVyd2VuZGV0IHdlcmRlbiBzb2xsZW4gaXN0IGRvY2gga2xhciB1bmQgc2VsYnN0IHdlbm4gc2llCmRpZSBlcnN0bWFsIGRlbSBob2Noc2NodWx0b3BmIHp1c2NoaWViZW4sIGt1ZXJ6ZW4gc2llIGRhbm4gaGFsdCBlbnRzcHJlY2hlbmQKYmVpIGRlbiB6dXNjaHVlc3NlbiB1bmQgc2Nod3VwcyBoYWJlbiBzaWUgZGFzIGdlbGQgaW0gaGF1c2hhbHQgdW5kIG5pY2h0IGFuCmRlciBVbmkuCkVyZ28gU3R1ZGllbmdlYnVlaHJlbiBicmluZ2VuIGRlciBIb2Noc2NodWxlIG5peCwgYXVzc2VyIHZpZWxsZWljaHQgZGFzIGRpZQpoYXVzaGFsdHNzcGVycmVuIHNwYWV0ZXIga29tbWVuICh1bnNlcmUga2FtIGltIG1haSkuCgpXYXMgZGFzIHN0aWRlbnRpZW5wcm9ncmFtIGV0YyBiZXRyaWZ0IHNvbGx0ZSBtYW4gc293YXMgd2VubiB2b3IgZWluZnVlaHJ1bmcKbWFjaGVuIHVuZCBuaWNodCBhbnNjaGxpZXNzZW5kLCBzb25zdCB3aXJkIGRpZSBzb3ppYWxlIGF1c3dhaGwgYW4gZGVyIFVuaSBub2NoCnNjaGFlcmZlciB1bmQgZGFzIGthbiBrYXVtIHNpbm4gZGVyIHNhY2hlIHNlaW4uCkNhc3NhbmRyYQoKTnVyIGRhcmF1ZiB3YXJ0ZW5kIGRhcyBkaWUgbmV1ZSBDRFUgcmVnaWVydW5nIGVzIHZlcnN1Y2h0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBEZW1vISAoRGFyaWEsICA3LiBKdWwgMjAwMiwgMTM6NDY6MTUpOgp+IyEgcm49Q2Fzc2FuZHJhIHJ0PTEwMjU5NTc3OTUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI1NzE3NTMwCkRhcyBQcm9ibGVtIGlzdDoKV2VubiBkaWUgU3R1ZGllbmdlYnVlaHJlbiBvZmZpemllbGwgZnVlciBkaWUgSG9jaHNjaHVsZW4gYmVudXR6dCB3ZXJkZW4sIHdpcmQKZWJlbiB3b2FuZGVycyBHZWxkIGF1cyBkZW0gTGFuZGVzaGF1c2hhbHQgYWJnZXpvZ2VuIChpbSBRdWFsaXRhZXRzcGFrdCB6dW0KQmVpc3BpZWwsIGRhcyBwZmVpZmVuIHNjaG9uIGRpZSBTcGF0emVuIHZvbiBkZW4gRGFlY2hlcm4uLi4KCkRhcmlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogRGVtbyEgKFBpbGdyaW0sICA3LiBKdWwgMjAwMiwgMjM6MTM6MjEpOgp+IyEgcm49RGFyaWEgcnQ9MTAyNjA0MjM3NSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjU3MTc1MzAKRGFzIFByb2JsZW0gaXN0OgphKSBFaW5lIFNQRCBMYW5kZXNyZWdpZXJ1bmcgdmVycmFldCBqYWhyZWxhbmdlIFBhcnRlaS1EaWdtZW4gKEtFSU5FIEdlYnVlaHJlbiwKICAgZ2wuIENoYW5jZW4gZnVlciBhbGxlIHVzdyksIHdlaWwgc2llIGVpbiB1bmZhZWhpZ2UgRmluYW56cG9saXRpayBtYWNodCEKYikgRGFzIGRpZSBTYWNoZSBuYWVjaHN0ZXMgSmFociBub2NoIHZpZWwgc2NobGltbWVyIGtvbW10LCBkYSB3aWVkZXIga2VpbgogICB2ZXJudWVuZnRpZ2VyIEhhdXNoYWx0IGRhIGlzdC9zZWluIHdpcmQgLi4uCgpQaWxncmltCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmFua3JlaWNoIChHbG9pbnNvbiwgMTUuIEp1bCAyMDAyLCAwMjo0Nzo1Nyk6Cklud2lld2VpdCBkYXJmIG1hbiBpbiBGcmFua3JlaWNoIGVpZ2VudGxpY2ggbWl0IGRlbSBSYWQgYXVmIGRlbiBTdHJhc3NlbgpydW1mbGl0emVuPyBELmguIGlzdCBkYXMgYXVmIGRlbiAnTictU3RyYXNzZW4gZXJsYXVidCBuYWNoIGZyYW56b2VzaXNjaGVtClJlY2h0IG9kZXIgdmVyYm90ZW4/CgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWaWduZXR0ZSBTY2h3ZWl6IChEZW1vbmF6LCAxOC4gSnVsIDIwMDIsIDIzOjM5OjA1KToKCk1vaW4sCgpmYWxscyBlaW5lciBndWVuc3RpZyBlaW5lIFZpZ25ldHRlIFNjaHdlaXogZXJ3ZXJiZW4gd2lsbCwgZWluZmFjaCBNYWlsIGFuIG1pY2gKOzkKCkdydXNzCi5pQS4gRGVtb25hegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZpZ25ldHRlIFNjaHdlaXogKFpvb2ssIDE5LiBKdWwgMjAwMiwgMTE6MzM6MjApOgp+IyEgcm49RGVtb25heiBydD0xMDI3MDI4MzQ1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyNzAyODM0NQpXaWUgZ3VlbnN0aWcgaXN0IGd1ZW5zdGlnPyA7KQoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVmlnbmV0dGUgU2Nod2VpeiAoQW50aGVhLCAxOS4gSnVsIDIwMDIsIDEzOjA0OjI0KToKfiMhIHJuPVpvb2sgcnQ9MTAyNzA3MTIwMCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMjcwMjgzNDUKLi4uIG9kZXIgZHJ1Y2tzdCBkdSBkaWUgc2VsYmVyPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZpZ25ldHRlIFNjaHdlaXogKEdvciwgMTkuIEp1bCAyMDAyLCAxMzo1OTo0OCk6Cn4jISBybj1EZW1vbmF6IHJ0PTEwMjcwMjgzNDUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI3MDI4MzQ1CkljaCBoYWIgYXVjaCBzY2hvbiB3ZWxjaGUgYXVmIGRlbSBGYXJiZHJ1Y2tlciBsaWVnZW4uIFdpZSB3YWVycyB3ZW5uIGR1IGRpY2gKaGludGVuIGFuc3RlbGxzdD8gfTstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGV1dHNjaHVudGVycmljaHQgZnVlciBBbWVyaWthbmVyaW4gKEhhdGUsIDIxLiBKdWwgMjAwMiwgMjE6MDQ6NDYpOgpIYWxsbywKCmljaCBzdWNoZSBqZW1hbmRlbiBkZXIgZWluZXIgQW1lcmlrYW5lcmluIGV0d2FzIERldXRzY2h1bnRlcnJpY2h0IGluIEhhbWJ1cmcKZXJ0ZWlsZW4ga29lbm50ZS4gQWxsZXJkaW5ncyBoYXQgc2llIHppZW1saWNoIHdlbmlnIEdlbGQsIHNvIGRhc3MgZXMgZW50d2VkZXIKYmlsbGlnIG9kZXIgYWxzIG5ldHRlIEdlc3RlIGdlc2NoZWhlbiBtdWVzc3RlLiBJY2ggd3VlcmRlIG1pY2ggZnJldWVuLCB3ZW5uCm1pY2ggamVtYW5kIGRhenUga29udGFrdGllcnQuCgpFbWFpbDogbGVvQG11ZC5kZQoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVmlnbmV0dGUgU2Nod2VpeiAoRGVtb25heiwgMjMuIEp1bCAyMDAyLCAxNzo1NToxMCk6Cn4jISBybj1ab29rIHJ0PTEwMjcwNzEyMDAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI3MDI4MzQ1CkRhcyBpc3QgdmVWZXJoYW5kbHVuZ3NzYWNoZSB1bmQgZGFzIERpbmcgaXN0IG9yaWdpbmFsLCBkLmguIHdhc2NoZmVzdCA7KQoKUnVmIGVpbmZhY2ggYW4gTGV2Li4uCgppLkEuCkRlbW9uYXoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthdHplbndhaGwgKEdyaW1tYm9ybiwgMjkuIEp1bCAyMDAyLCAxODoyMjoyOCk6Cn4jISBvbj1LYWV0emNoZW4gb3Q9MTAyNzk1OTcyMyBvZz1hbGxnZW1laW5lcwoqbWlhdSogCkljaCBuZWhtZSBkZXJ6ZWl0IGJlaSBlaW5lciBXYWhsIHp1ciBzY2hvZW5zdGVuIEthdHplIGRlcyBNb25hdHMgSnVuaSAyMDAyCnRlaWwuIEljaCBoYWV0dGUgc29vb29vbyBnZXJuZSBkYXMgZ3V0ZSBLYXR6ZW5mdXR0ZXIgdW5kIGRhcyBTcGllbHpldWcgZnVlcgptaWNoIHVuZCBtZWluZSBiZWlkZW4gR2VzY2h3aXN0ZXIuIApMZWlkZXIgZ2lidCBlcyBkYSBlaW5lIGFuZGVyZSBLYXR6ZSwgZGllIGltbWVyIG1laHIgYXVmaG9sdCB1bmQgbWlyIGRlbiBTaWVnCnN0cmVpdGlnIG1hY2h0LiAKQWxzbywgZnVlciBhbGxlIGRpZSBub2NoIG5pY2h0IGdld2FlaGx0IGhhYmVuLCBkYXVlcnQgbnVyIDUgU2VrdW5kZW46IApodHRwOi8vd3d3LmthdHplbi1hbGJ1bS5kZS9jZ2ktYmluL2NhdGxpc3QvY2F0bGlzdC5jZ2k/ZG89ZGV0YWlsJmNhdD0wMDE2NDkKCipzY2hudXJyKiAKSWNoIGhvZmZlIG5hdHVlcmxpY2ggZGFzIGljaCBuaWVtYW5kZW4gZGFtaXQgYmVsYWVzdGlnZSBkYXMgaWNoIGRpZXNlbiBBcnRpa2VsCmhpZXIgaW4gZGllIFplaXR1bmcgZ2VzY2hyaWViZW4gaGFiZSwgZmFsbHMgZG9jaCBlbnRzY2h1bGRpZ2UgaWNoIG1pY2ggaGllcm1pdAppbSBWb3JhdXMuIAoKS2FldHpjaGVuICh3dWVyZGUgc29vb28gZ2VybmUgZWlubWFsIGV0d2FzIGdld2lubmVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEthdHplbndhaGwgKEltZGEsIDMwLiBKdWwgMjAwMiwgMDA6MjI6MzApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwMjc5NTk3NDggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDI3OTU5NzQ4Cjp0YW5rdCBkZW4gRGllc2Vsc2NocmVkZGVyIHJhbmR2b2xsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXIgTmV3c3RpY2tlciBDaGFubmVsOiBOYWNocmljaHRlbiAoSGF0ZSwgMzEuIEp1bCAyMDAyLCAwOTo0MjowMyk6CkhpLAoKd2lyIGhhYmVuIGRlbiBuZXdzdGlja2VyIGNoYW5uZWwgbWFsIHdpZWRlciBha3RpdmllcnQuIE1pdCBnYW56IGFrdHVlbGxlbgpIZWFkbGluZXMgdm9uIFJQLU9ubGluZS4KCi1OYWNocmljaHRlbisKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXIgTmV3c3RpY2tlciBDaGFubmVsOiBOYWNocmljaHRlbiAoRGVlcGJsdWUsIDMxLiBKdWwgMjAwMiwgMTA6NDI6MjIpOgp+IyEgcm49SGF0ZSBydD0xMDI4MTAxMzIzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAyODEwMTMyMwpMYWVzc3Qgc2ljaCBkYXMgYXVjaCBtaXQgZGVtIEJ1bmRlc2xpZ2EtS29uZmVyZW56X1RpY2tlciB2b24gc3BvcnQxCnZlcmtudWVwZmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFuc3Rhc3ktTkZMLU1pdHNwaWVsZXIgZ2VzdWNodCAoTW9udGFudXMsICA3LiBBdWcgMjAwMiwgMTg6MTM6NTUpOgpVbnNlcmUgRm9vdGJhbGwtVGlwcC1MaWdhIHN1Y2h0IG5vY2ggYmlzIHp1IDMgTWl0c3BpZWxlciAtIERyYWZ0IGlzdCBhbQprb21tZW5kZW4gU29ubnRhZy4gRnVlciBMZXV0ZSwgZGllIHNvIGV0d2FzIG5vY2ggbmllIGdlbWFjaHQgaGFiZW4gLSBkYSBnZWh0CmVzIGRydW0sIGV4aXN0aWVyZW5kZSBORmwtU1BpZWxlciB1eiBkcmFmdGVuIHVuZCBkYW5uIFdvY2hlIHVtIFdvY2hlIHp1CmhvZmZlbiwgZGFzcyBkaWUgZWlnbmVuIFNQaWVsZXIgCmluIFJMIFB1bmt0ZSBlcnppZWxlbi4gR2FueiBlaW5mYWNoLgpHdWNrdCB1bnRlciBmYW50YXN5Lm5mbC5jb20sIHVuZCBzY2hyZWlidCBtaXIgbmUgTWFpbCwgZmFsbHMgaWhyIG1pdHNwaWVsZW4Kd29sbHRlLCBkYW5uIGxhc3MgaWNoIGV1Y2ggZGFzIFBhc3N3b3J0IGZ1ZXIgdW5zZXJlIExpZ2EgenVrb21tZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVlciBNdWQtTmFjaHd1Y2hzIGlzdCBhbmdla29tbWVuIDopIChCb2luZywgIDQuIE9rdCAyMDAyLCAwMDowNToyNSk6Ckp1aHV1dSwgdW5zZXIgU29obmVtYW5uIGlzdCBkYSEgOikKQWRyaWFuIFNpbW9uIGlzdCBzZWluIE5hbWUsIDUyY20gbGFuZywgMzE2MCBHcmFtbSB1bmQgCmFsbGVzIGdlc3VuZC4KSG9ibyBnZWh0J3MgZ3V0LCBtaXIgYXVjaCwgZGVtIEtpbmQgYXVjaCwgd2FzIHdpbGwgbWFuCm1laHI/IDopCgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoU291LCAgNC4gT2t0IDIwMDIsIDAwOjA3OjA0KToKfiMhIHJuPUJvaW5nIHJ0PTEwMzM2ODI3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CkdSQVRTClZpZWwgR2x1ZWNrLCB1bmQgbmljaHQgenUgZnJ1ZWggbXVkZGVuIGxhc3NlbiAqZ2cqCgpTb3UgaXN0IG5pY2h0IGdhbnogenVyZWNobnVnc2ZhZWhpZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVlciBNdWQtTmFjaHd1Y2hzIGlzdCBhbmdla29tbWVuIDopIChOb25uZSwgIDQuIE9rdCAyMDAyLCAwODo1NDo1OCk6Cn4jISBybj1Cb2luZyBydD0xMDMzNjgyNzI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzMzY4MjcyNQpXYXMgbWFuIG1laHIgd2lsbD8gV2FydGUgbWFsIGVpbiBwYWFyIFRhZ2UgKGM7IEF1c3NjaGxhZmVuPyBTZWluZSBSdWhlPyBLZWluCkJhYnlnZXNjaHJlaSBtZWhyPyBTaWVoIHp1LCBkYXNzIEhvYm8gc3RpbGx0LCBkYW5uIGhhc3RlIG5vY2ggZWluIGJpc3NjaGVuClNjaG9uZnJpc3QgbWl0IE5hY2h0cyBhdWZzdGVoZW4uCgpBYmVyIHRyb3R6ZGVtIEdSQVRTIQoKTm9ubmUsIGtlbm50IGRhcyBzY2hvbiAoYzoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoQW50aGVhLCAgNC4gT2t0IDIwMDIsIDEwOjMxOjU4KToKfiMhIHJuPU5vbm5lIHJ0PTEwMzM3MTQ0OTggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CkljaCBnZWggamV0enQgbWFsIGRhdm9uIGF1cywgZGFzcyBkaWUgR2VidXJ0IG5vY2ggYW0gMy4xMC4gd2FyIHVuZCBkdSBuaWNodApkaXJla3QgZGFiZWkgaW0gTGFwdG9wIG9ubGluZSB3YXJzdCB1bSBkYXMgUG9zdGluZyBhYnp1c2V0emVuLCBvZGVyPyA7KQoKQW5zb25zdGVuIGhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIGV1Y2ggZHJlaWVuIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoQW50aGVhLCAgNC4gT2t0IDIwMDIsIDEwOjM0OjA2KToKfiMhIHJuPUFudGhlYSBydD0xMDMzNzIwMzE4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzMzY4MjcyNQpBY2ggamEsIGdhbnogdmVyZ2Vzc2VuIDspCltYXVNFTkQgUElYIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKEphZGF3aW4sICA0LiBPa3QgMjAwMiwgMTE6MDM6NTApOgp+IyEgcm49Qm9pbmcgcnQ9MTAzMzY4MjcyNSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMzM2ODI3MjUKQXVjaCB2b24gbWlyIGhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoISBIYWJ0IGlociBndXQgZ2VtYWNodCwgYmVoYXVwdGUgaWNoIGpldHp0CmVpbmZhY2ggbWFsIHNvLiA7KQpKYWQqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKEthcmltYSwgIDQuIE9rdCAyMDAyLCAxMToxNTo0Mik6Cn4jISBybj1Cb2luZyBydD0xMDMzNjgyNzI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzMzY4MjcyNQpBdWNoIHZvbiBtaXIgbWFsIGhlcnpsaWNoZSBHcmF0cyB1bmQgdmllbCBTcGFzcyA7KQoKS2FyaW1hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoRmxpbnRuYWlsLCAgNC4gT2t0IDIwMDIsIDEzOjI4OjAxKToKfiMhIHJuPUJvaW5nIHJ0PTEwMzM2ODI3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CkhvaS4uLgoKYXVjaCB2b24gbWlyIGRpY2tlIEdsdWVja3d1ZW5zY2hlIQoKRmxpbnQqLCBzZWxic3Qgc2VpdCA0IEphaHJlbiBlaW5lbiBTaW1vbiB6dSBIYXVzZSBoYXQuLi4KClAuUy4gZGllIEdHZXNjaGljaHRlIG1pdCBQZXRydXMgdW5kIFNpbW9uIGRlbSBaYXViZXJlciBpc3QgYmVrYW5udD8gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKEVsaXphYmV0aCwgIDQuIE9rdCAyMDAyLCAxNTowNDoyNCk6Cn4jISBybj1GbGludG5haWwgcnQ9MTAzMzczMDg4MSByZz1hbnplaWdlbgp+IyEgdGlkPTEwMzM2ODI3MjUKQXVjaCB2b24gbWlyIGFsbGVyaGVyemxpY2hzdGUgZ2x1ZWNrd3VlbnNjaGUgOikgCgp1bmQgbm9jaCBlaW4gbXVkYmFieSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKE1pcmlsLCAgNC4gT2t0IDIwMDIsIDE3OjI1OjA1KToKfiMhIHJuPUJvaW5nIHJ0PTEwMzM2ODI3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CkFscyAoenVtaW5kZXN0IGluIGdld2lzc2VyIFdlaXNlKSB2aXJ0dWVsbGVyIE9tYSBuYXR1ZXJsaWNoIGF1Y2gKdm9uIG1pciBkaWUgaGVyemxpY2hzdGVuIEdsdWVja3d1ZW5zY2hlIGFuIGV1Y2ggYmVpZGUuCk1pcmlsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKE1hbmRyYWdvbiwgIDQuIE9rdCAyMDAyLCAxNzozMDo0MCk6Cn4jISBybj1NaXJpbCBydD0xMDMzNzQ1MTA1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzMzY4MjcyNQpEdSBiaXN0IGdsZWljaHplaXRpZyBPbWEgdW5kIFVyb21hLiBLbGFzc2UsIGdlbGw/IDotKQoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOZXVlciBNdWQtTmFjaHd1Y2hzIGlzdCBhbmdla29tbWVuIDopIChNaXJpbCwgIDQuIE9rdCAyMDAyLCAxNzozNDoyMik6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTAzMzc0NTQ0MCByZz1hbnplaWdlbgp+IyEgdGlkPTEwMzM2ODI3MjUKSG0sIHZpZWxsZWljaHQgc29sbHRlIGljaCBtaWNoIGRvY2ggYmVpIEtydXVvbHEgenVtIEdpbGRlbmVpbnRyaXR0IAptZWxkZW4uCk1pcmlsLCB2ZXJ3YW5zY2hhZnRsaWNoZXMgQ2hhb3MgZXJ6ZXVnZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKEdvciwgIDQuIE9rdCAyMDAyLCAxODo1OToxNik6Cn4jISBybj1Cb2luZyBydD0xMDMzNjgyNzI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzMzY4MjcyNQpOYSBkZW5uIEdyYXRzLiA7KQpEdXJjaCBkZW4gTmFtZW4ga29tbXQgc2VsYnN0dmVyc3RhZW5kbGljaCBudXIgZWluIFRhdWZwYXRlIGluIEJldHJhY2h0LiBBKgphbmdyaW5zKgoKR29yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5ldWVyIE11ZC1OYWNod3VjaHMgaXN0IGFuZ2Vrb21tZW4gOikgKFNjaG9rbywgIDQuIE9rdCAyMDAyLCAxOTowNjozMik6Cn4jISBybj1Hb3IgcnQ9MTAzMzc1MDc1NiByZz1hbnplaWdlbgp+IyEgdGlkPTEwMzM2ODI3MjUKTmEgYWxzbyB3ZW5uIGRlciBLbGVpbmUgYXVjaCBub2NoIGFuZmFlbmd0IHp1IG11ZGRlbiwgZGFubiBoYW0gd2lyIGphIDIgQSosCmRpZSBzaWNoIGluIGRlciBNUEEga2xvcHBlbiAuLi4gb2IgZGFzIGRhcyBNdWQgdmVya3JhZnRldCA6KSkKCgpHYW56IGRpY2tlcyBHcmF0cyBhbiBFdWNoIHZvbiBtaXIuLi4KClNjaG9rbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoS2llc2Vsc3RlaW4sICA2LiBPa3QgMjAwMiwgMDg6MDY6MjIpOgp+IyEgcm49QW50aGVhIHJ0PTEwMzM3MjAzMTggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CmdyYXRzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoQW5jYWxhZ29uLCAgNy4gT2t0IDIwMDIsIDAxOjE1OjA3KToKfiMhIHJuPUJvaW5nIHJ0PTEwMzM2ODI3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CkhhbGxvZWNoZW5rbnVkZGVscyEKCkdhbW56IGhlcnpsaWNoZSBHbHVlY2t3dW5zY2hrbnVkZGxlcyBhbiBWYXRlciwgTXV0dGVyIHVuZCBLaW5kISA6KQoKQW5jYWxhZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoQ2Fzc2FuZHJhLCAgNy4gT2t0IDIwMDIsIDE2OjQxOjE4KToKfiMhIHJuPUJvaW5nIHJ0PTEwMzM2ODI3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1CkdyYXR1bGF0aW9uIQpBbGxlcyBHdXRlIGZ1ZXIgTXV0dGVyIHVuZCBLaW5kCgpDYXNzYW5kcmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVlciBNdWQtTmFjaHd1Y2hzIGlzdCBhbmdla29tbWVuIDopIChUc3VuYW1pLCAyMS4gT2t0IDIwMDIsIDIwOjAwOjU1KToKfiMhIHJuPUJvaW5nIHJ0PTEwMzM2ODI3MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDMzNjgyNzI1Ci4uLi4gd2llIGltbWVyIGhpbmt0IGRpZSBTY2h3ZWl6IGV0d2FzIGhpbnRlcmhlciAuLi4KCmdhbnosIGdhbnogaGVyemxpY2hlbiBHbHVlY2t3dW5zY2ggYXVjaCB2b24gbWlyISEhIFVuZCBhbGxlcyBHdXRlLAoKVHN1bmFtaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1ZXIgTXVkLU5hY2h3dWNocyBpc3QgYW5nZWtvbW1lbiA6KSAoQWxpbmUsIDIzLiBPa3QgMjAwMiwgMDk6MDA6NDApOgp+IyEgcm49VHN1bmFtaSBydD0xMDM1MjIzMjU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzMzY4MjcyNQoKLi4uIG5pY2h0IG51ciBkaWUgU2Nod2VpeiBoaW5rdCBoaXRlcmhlciwgYXVjaCBSYXZlbnNidXJnIG1lbGRldCBzaWNoLi4KCkFiZXIgYmVzc2VyIHNwYWV0IGFscyBuaWUuCgpIZXJ6bGljaGVuIEdsdWVja3d1bnNjaCEgU2Nob2VuZSBLZW5uZW5sZXJuemVpdCEKCkFsaW5lCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTVVEIE5hY2h3dWNocyBnZWxhbmRldCEgKEthdHplbnRhbnRlLCAxMS4gRGV6IDIwMDIsIDE5OjI0OjIxKToKQW0gMTUuMTEuMDIgaXN0IGRlciB6dWt1ZW5mdGlnZSBNdWRkZXIgSm9uYXMgQmVuIEVsaWFzIGF1ZiBkaWUgV2VsdCBnZWtvbW1lbgoKU2VpbmUgTXV0dGVyIEthdHplbnRhbnRlIHVuZCBlciBzaW5kIHdvaGxhdWYKCkRlciBLbGVpbmUgdWVidCBzY2hvbiBlaWZyaWcgdW5kIHdpcmQgc28gaW4gY2EuIDEwLTE1IEphaHJlbiBoaWVyIGRhcwpHZXNjaGVoZW4gbWl0YmVzdGltbWVuISEKClZpZWxlIEdydWVzc2UgYW4gZGVuIFN0YXRpIGluIERhcm1zdGFkdCwgSWhyIHdlcmRldCBkZW4gS2xlaW5lbiBpcmdlbmR3YW5uIG1hbApwZXJzb2VubGljaCBrZW5uZW5sZXJuZW4hIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNVUQgTmFjaHd1Y2hzIGdlbGFuZGV0ISAoTW9yZ290aCwgMTIuIERleiAyMDAyLCAwNzo0OTozNik6Cn4jISBybj1LYXR6ZW50YW50ZSBydD0xMDM5NjMxMDYxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTAzOTYzMTA2MQpHcmF0cyAhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1VRCBOYWNod3VjaHMgZ2VsYW5kZXQhIChOb25uZSwgMTIuIERleiAyMDAyLCAwODo0OTo0NSk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwMzk2NzU3NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDM5NjMxMDYxCkdyYXRzPyBIaWhpLCBlaGVyIHd1ZW5zY2hlIGljaCBndXRlIE5lcnZlbiB1bmQgYmFsZGlnZXMgRHVyY2hzY2hsYWZlbiAoYzsKCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1VRCBOYWNod3VjaHMgZ2VsYW5kZXQhIChIb2JvLCAxMi4gRGV6IDIwMDIsIDE0OjU3OjIzKToKfiMhIHJuPUthdHplbnRhbnRlIHJ0PTEwMzk2MzEwNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDM5NjMxMDYxCkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIGF1Y2ggdm9uIG1pciEgU2Nob2VuIGlzdCBlcyBtaXQgc28gd2FzIEtsZWluZW0gOikKClVuZCBnZXN0ZXJuIHdhcmVuIHdpciBlcnN0IHp3ZWkgbmV1ZSBCYWJpZXMgZmVpZXJuOiBFaW5lciBoZWlzc3QgSm9uYXMsIGRlcgphbmRlcmUgQmVuIDopCgpDaWFvCgogICAgSG9ibyAtIGdyYWQgYXVzIGRlciBLcmFiYmVsZ3J1cHBlIGtvbW1lbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNVUQgTmFjaHd1Y2hzIGdlbGFuZGV0ISAoQW5jYWxhZ29uLCAxMy4gRGV6IDIwMDIsIDAxOjE4OjI3KToKfiMhIHJuPUthdHplbnRhbnRlIHJ0PTEwMzk2MzEwNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDM5NjMxMDYxCkhhbGxvZWNoZW5rbnVkZGVscyEgOikKTmEgc2NoYXUsIHNjaG9uIHdpZWRlciBlaW5lci4uLi4uLgoKSGVyemxpY2ggd2lsbGtvbW1lbiBpbSBSTCEgVW5kIGFsbGVzID5HdXRlIGZ1ZXIgZGllIE11dHRlciEgOikKCkdyYXRzZWtudWRkZWxzLAoKQW5jYWxhZ29uCihhdWNoIE1pdGdsaWVkIGltICJWZXJlaW4gZGVyIE11ZGRlciBtaXQgbmFjaHd1Y2hzIikgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaGV2ZXJtaXR0bHVuZyEgKE5pbm8sIDE2LiBEZXogMjAwMiwgMjE6Mzk6MzUpOgpHZXN1Y2h0IHdpcmQ6IEp1bmdlIGJpcyBtaXR0ZWxhbHRlIE11ZGRlcmluLCBFcnN0aWUsIFNlaGVyaW4uIEVyd3VlbnNjaHQgc2luZApndXRlIE9ydHMtIHVuZCBFSy1LZW5udG5pc3NlLiBHZWJvdGVuIHdpcmQ6IFNlaGVyLCB2b2VsbGlnZSBNR19Vbmtlbm50bmlzLCBNdXQKenVtIFN0ZXJiZW4gdW5kIGVpbmUgZmFzdCB1bmJyYXVjaGJhcmUgR2lsZGUuIE5laW4sIGljaCBzdWNoZSBuaWNodCBmdWVyIG1pY2gKc29uZGVybiBmdWVyIGVpbmVuIGhpZXIgYW5vbnltIGJsZWliZW4gd29sbGVuZGVuIE11ZGRlci4gQWJlciBiZWkgSW50ZXJlc3NlCmJpdHRlIG1haWwgYW4gbWlycm9yQG1nLm11ZC5kZSEgT3BzLi4uCk5pbm8sIGltIEF1ZnRyYWcgZGVzIEhlcnJuIHVudGVyd2Vncy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhcHB5IEJpcnRoZGF5IChEZWVwYmx1ZSwgMTAuIEphbiAyMDAzLCAwMDoxMDo0Nyk6CmZpbmdlciBtaWthZ2UKTWlrYWdlIGlzdCBhbndlc2VuZCwKdW5kIHp3YXIgdm9uOiBJbm51aXQgKHVlYmVyIFRlbGVrb20tUmVzZWxsZXIpLgpbLi4uXQpBbHRlcjogMTAwZCAwMDowMDowMApbLi4uXQoKCkhhcHB5IEJpcnRoZGF5IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJpbmdsZXMtRG9zZW4gaW4gZ3V0ZSBIYWVuZGUgLi4uIChDdWNodWxsaW4sIDI0LiBKYW4gMjAwMywgMTk6NTc6NTEpOgoKV2VubiBlaW4gQmFzdGxlciBJbnRlcmVzc2UgYW4gZWluIHBhYXIgUHJpbmdsZXMtRG9zZW4gaGF0LCBtb2VnZQplciBzaWNoIG1lbGRlbi4gSW4gT3NuYWJydWVjayBzaW5kIGVpbiBwYWFyIC0gbGVlcmUgLSB1ZWJlci4uLgoKWVRDdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFByaW5nbGVzLURvc2VuIGluIGd1dGUgSGFlbmRlIC4uLiAoV2lsbG93LCAyNS4gSmFuIDIwMDMsIDAwOjU0OjAwKToKfiMhIHJuPUN1Y2h1bGxpbiBydD0xMDQzNDM0NjcxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA0MzQzNDY3MQpsZWVyZT8gaG1tbS4uLiBpc3QgZG9jaCBsYW5nd2VpbGlnIC0gd2VubiBzaWUgdm9sbCB3YWVybiwga29lbm50ZW4gd2lyIGRydWViZXIKcmVkZW4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjUuIENoZW1uaXR6ZXIgTGludXgtVGFnIChXaGl0ZXRpZ2VyLCAyNS4gSmFuIDIwMDMsIDEwOjUyOjExKToKRXMgaXN0IGluIGVpbmVtIGd1dGVuIE1vbmF0IHdpZWRlciBzb3dlaXQ6IGRlciA1LiBDaGVtbml0emVyIExpbnV4LVRhZyBmaW5kZXIKc3RhdHQgKGluIENoZW1uaXR6IG5hdHVlcmxpY2ggOykpIHZvbSAxLiAtIDIuIE1hZXJ6IDIwMDMgdm9uIDk6MDAgYmlzIDE4OjAwClVoci4gR2ViYWxsdGVzIFByb2dyYW1tOiA1MCBWb3J0cmFlZ2UsIDggV29ya3Nob3BzLCBEZW1vcywgUHJheGlzIERyLiBUdXgsIC4uLgpHZW5hdWVyZSBJbmZvcm1hdGlvbmVuIGdpYnRzIGF1ZiBodHRwOi8vd3d3LnR1LWNoZW1uaXR6LmRlL2xpbnV4L3RhZy8uCi0tIFdoaXRlVGlnZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBSb3RlIFJpdHRlciByZWl0ZXQgbnVuIHdvYW5kZXJzLiA6KCggKEppbWRpZ3JpeiwgIDUuIEZlYiAyMDAzLCAxMzoyNTo0Nik6CgpGdWVyIGFsbGUgZGllIEFjcmltb24gZ2VrYW5udCBoYWJlbiwgaGFiZSBpY2ggZ2VzdGVybiBkaWUKdHJhdXJpZ2UgTmFjaHJpY2h0IGVyZmFocmVuLCBkYXNzIEFjcmltb24gdm9yIHdlbmlnZW4KVGFnZW4gYW4gZWluZXIgc2Nod2VyZW4gRXJrcmFua3VuZyBnZXN0b3JiZW4gaXN0LgoKRGllIEJlZXJkaWd1bmcgZmluZGV0IGFtIEZyZWl0YWcgc3RhdHQuIFdlciBEZXRhaWxzIGRhenUgd2lzc2VuCm1vZWNodGUsIGthbm4gc2ljaCBhbiBtaWNoIHdlbmRlbi4KCipzZXVmeiosCiBKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmQgbm9jaCBlaW4gTmFjaHJ1ZiAuLi4gKFJhbmdvcm4sICA3LiBGZWIgMjAwMywgMTU6NTk6MDQpOgpBbSAxLiBGZWJydWFyIGZhZWxsdGUgU2Nod2Fyem1hZ2llciBXeXJuZXkgc2VpbmUgZW5kZ3VlbHRpZ2UgRW50c2NoZWlkdW5nIHVuZApiZWVuZGV0ZSBzZWluIHdlbHRsaWNoZXMgRGFzZWluLgpNb2VnZSBlciBkYXMgZ2VmdW5kZW4gaGFiZW4sIHdhcyBlciBpbSBMZWJlbiB2ZXJnZWJlbnMgc3VjaHRlLgoKLSBSYW5nb3JuIEtodXInVGlncmVzIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnByYWt0aWt1bXNzdGVsbGUgZ2VzdWNodCAoQWxib2luLCAxMS4gRmViIDIwMDMsIDIxOjI2OjMzKToKLi51bmQgendhciBhbHMgU3lzdGVtYWRtaW5zdHJhdG9yIHZvcnp1Z3N3ZWlzZSBiZWkgTGludXgtU2VydmVybi4KCm1haWwgYW4gYWxib2luQHdlYi5kZQoKQWxib2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCb2huYXBhcnRlIChNb250YW51cywgIDMuIEFwciAyMDAzLCAxODoyNjoyMSk6CkVuZGUgQXByaWwgZXJzY2hlaW50IG1laW4gbmFlY2hzdGVzIFNwaWVsIGJlaSBMb29rb3V0IEdhbWVzLCBwdWVua3RsaWNoIHp1bQpIZXJuZXIgU3BpZWxld2FobnNpbm4uCldlciBzZWluIEV4ZW1wbGFyIGhhbmRzaWduaWVydCB1bmQvb2RlciBtaXQgV2lkbXVuZyBoYWJlbiB3aWxsLCBzY2hpY2tlIG1pcgpiaXR0ZSBlaW5lIE1haWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpob2NoemVpdCAoR3JpbW1ib3JuLCAyMi4gTWFpIDIwMDMsIDIxOjMxOjE5KToKfiMhIG9uPUdvbGRjYXQgb3Q9MTA1MzYzMTY1MiBvZz1hbGxnZW1laW5lcwpNb3JnZW4gZGVyIDIzLjA1LjIwMDMgaGVpcmF0ZW4gSGVsaXVtIHVuZCBTZXRoYWkgLCBzb3dpZSwgR29sZGNhdCB1bmQKTmFjaHRyb3NlIGluIGRlciBDaGFvcyBlaWdlbmVuIEtpcmNoZSAob2RlciBzbykuCkFsbGUga29lbm5lbiBrb21tZW4gOikuCkRhbmtlIGZ1ZXIgZXVlciBWZXJzdGFlbnRuaXMgOikgLgpJY2ggaG9mZmUgYWxsZSBrb21tZW4gLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGhvY2h6ZWl0IChGb29iYXIsIDIyLiBNYWkgMjAwMywgMjE6MzQ6MDEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwNTM2MzE4Nzkgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDUzNjMxODc5CkRlbiBnYW56ZW4gVGFnIGxhbmc/CgpIdXQgYWIuCgpHcnVzcywKCiAgIEZvb2JhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBob2NoemVpdCAoRmxpbnRuYWlsLCAyMy4gTWFpIDIwMDMsIDA5OjA0OjEyKToKfiMhIHJuPUZvb2JhciBydD0xMDUzNjMyMDQxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1MzYzMTg3OQpzY2hlaW5iYXIgZ2luZyBlcyBiZWltIFNjaHJlaWJlbiBkZXIgQW56ZWlnZSBldHdhcyBjaGFvdGlzY2ggenUgPwoKdmllbCBTcGFzcyBiZWltIGVudHJvcGlzY2hlbiBCZXppZWh1bmdzc2NobnVlcmVuLi4uCgpGbGludCoKClAuUy46IGdpYnQgZXMgZWlnZW50bGljaCBpbnp3aXNjaGVuIGVpbiBwYWFyIGNoYW90aXNjaGVyZSBGZWF0dXJlcyBiZWltClBhcnR5TW9uc3RhPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSE9DSFpFSVQgKEhlbGl1bSwgMjMuIE1haSAyMDAzLCAxNjoxMzowNSk6CkhldXRlIGdyb3NzZSBIb2NoemVpdCBpbiBkZXIgQ2hhb3NidXJnISEKCkdvbGRjYXQgaGVpcmF0ZXQgc2VpbmUgTmFjaHRyb3NlIHVuZCBpY2ggaGVpcmF0ZSBtZWluIGhhc2kgc2V0aGFpCmFsbGUgc2luZCBlaW5nZWxhZGVuCmZhZW5ndCBzbyB1bSAyMCB1aHIgYW4sIGZ1ZXIgZGllIGRpZSBuaWNodCB3aXNzZW4gd2llIG1hbiBkYSBoaW4ga29tbXQKZWluZmFjaCBhbiBnb2xkY2F0IHdlbmRlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGV1dHNjaGVyIFNwaWVsZXByZWlzIChNb250YW51cywgMjcuIE1haSAyMDAzLCAxMjo0Njo0Nyk6CkVzIGdlaHQgbWFsIHdpZWRlciB1bSBkZW4gZGV1dHNjaGVuIFNwaWVsZXByZWlzLgpVbnRlciBodHRwOi8vd3d3LmRldXRzY2hlci1zcGllbGVwcmVpcy5kZSBrb2VubnQgaWhyIGFic3RpbW1lbiwgdW5kIGVzIHdhZXJlCmdhbnogcHJpbWEsIHdlbm4gaWhyIHp3ZWkgZXVyZXIgMyBTdGltbWVuIGRlbiBTcGllbGVuICJBdHRyaWJ1dCIgdW5kCiJMYWR5Ym9obiIgKGJlaWRlIHZvbiBMb29rb3V0IEdhbWVzKSBnZWJlbiB3dWVyZGV0LiBFaW4gVm9yc2NobGFnIGZ1ZXIgZGllCmRyaXR0ZSBTdGltbWUgd2FlcmUgIlBhcmlzIFBhcmlzIiB2b24gQWJhY3VzIC0gZnVlciBtaWNoIGVpbiBoZWlzc2VyIGthbmRpZGF0CmF1ZiBzb3dvaGwgU3BpZWxlcHJlaXMgYWxzIGF1Y2ggU3BpZWwgZGVzIEphaHJlcy4KCkVzIGdpYnQgd2llIGltbWVyIGF0dHJha3RpdmUgU2FoY3ByZWlzZSB6dSBnZXdpbm5lbi4gRGVhZGxpbmUgaXN0IHp3YXIgZXJzdApkZXIgMzEuNy4sIGFiZXIgd2VubiBpaHIgZXMgamV0enQgbWFjaHQsIGJyYXVjaCBpY2ggZXVjaCBuaW1tZXIgenUgZXJpbm5lcm4uCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXZWxjaGVyIE1hZ2llciAgKEdyaW1tYm9ybiwgIDIuIEp1biAyMDAzLCAyMjowOTozMSk6Cn4jISBybj1HYXN0MiBydD0xMDU0NTgzOTM2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1NDU4Mzg4MQpJaHIgbGVybnRzIG5pY2h0LCBuZWluPyBLZWluZSBBcnRpa2VsIHZvbiBHYWVzdGVuIGluIGRlciBtcGEuIFZvbiBuaWVtYW5kZW0uCkluIGtlaW5lciBSdWJyaWsuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdlbGNoZXIgTWFnaWVyICAoRmxpbnRuYWlsLCAgMy4gSnVuIDIwMDMsIDA4OjQ3OjQxKToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDU0NTg0NTcxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1NDU4Mzg4MQppbiBkaWVzZW0gWnVzYW1tZW5oYW5nIG9kZXIgYXVjaCBuaWNodDoKCmdhc3RyaXRpcyB1bmQgZ2FzdGhlcm1lIHNpbmQgZ2ViYW5pc2hlZCwgd2VpbCBlcyBoaWVyIHNjaG9uIGdlbnVnIEdhZXN0ZSBnaWJ0CjpvKQoKRmxpbnQqLCBsYWVjaGVsbmQsIGRlbm4gZGFzIHdhciBpaG0gbmV1Li4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdHNhbmt1ZW5kaWd1bmcgKE1hZ2RhbGVuYSwgMTQuIEp1biAyMDAzLCAyMzoxNjowNik6CkxpZWJlIEZyZXVuZGUsIGxpZWJlIE11ZGRlciwgbGllYmUgR2Flc3RlLApncmVuemVubG9zZSBGcmV1ZGUgZXJmYXNzdCBtaWNoLCBkZW5uIGljaCBoYWJlIGRpZSBFaHJlIEV1Y2ggZWluIHd1bmRlcmJhcmVzCkVSZWlnbmlzIGFuenVrdWVuZGlnZW4uClNpY2hlciwgc2llIGlzdCBzZWx0ZW4sIGRpZSBMaWViZSBhdWYgZGVuIGVyc3RlbiBCbGljaywgYWJlciB6d2VpIExpZWJlbmRlCmhhYmVuIGJld2llc2VuLCBkYXNzIGVzIG1vZWdsaWNoIGlzdC4gCk5hY2ggZWluZXIgc3RhbmRlc2dlbWFlc3NlbiBWZXJsb2J1bmcgd29sbGVuIHNpY2ggZGVzaGFsYiBudW4gYXVjaCBlbmRsaWNoIApTdG9wIChUZXN0aWUsIHVuZ2VicmVtc3QpIHVuZCBVc2NoaSAoRnJpc29lc2UsIHNleHkpCmRhcyBKYS1Xb3J0IGdlYmVuLCBkYXNzIHNvZ2FyIHVlYmVyIGRlbiBUb2QgaGluYXVzZ2VsdGVuIHNvbGwuCkFsbGUgc2VpZCBpaHIgZWluZ2VsYWRlbiwgYXVjaCBMYXJzIHVuZCBkaWUgYmVzb25kZXJzIGRpZSBHZXdlcmtzY2hhZnQgZGVyClRlc3RzcGllbGVyLCB1bSBkaWVzZW4gZ2x1ZWNrbGljaGVuIFRhZyB6dSBmZWllcm4hClVuZCB6d2FyIGFtIERpZW5zdGFnIHVtIDIwaCBpbSBXYWxkIGRlciBIb2JiaXRzLgpFcnNjaGVpbnQgemFobHJlaWNoIQpCZXN0ZSBHcnVlc3NlIHZvbiBlaW5lciBTY2hlaW5oZWlsaWdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRlc3RpZSBnZXN1Y2h0IChIdW1uaSwgMTcuIEp1biAyMDAzLCAxNjowMDoyOSk6Ckh1aHUsCgppY2ggYmFzdGVsIGdlcmFkZSBhbiBlaW5lciBuZXVlbiBHaWxkZSwgZGVuIFdlcndvZWxmZW4gKHdpc3NlbiBqYSBhdWNoIHNjaG9uCmVpbiBwYWFyIExldXRlKS4gRGFmdWVyIGJyYXVjaHQgbWFuIFRlc3RpZXMsIDQgZGF2b24gZ2lidHMsIG5hamEsIGVpZ2VudGxpY2gKNSwgYWJlciBlaW5lciBkYXZvbiBoYXQgZ2VyYWRlIGtlaW5lIFplaXQuIFdlbm4gamVtYW5kIHNpY2ggYmVydWZlbiBmdWVobHQKZGFyZiBlci9zaWUgc2ljaCBiZWkgbWlyIHVtIGRpZXNlbiBUZXN0aWUgYmV3ZXJiZW4uIEljaCBiaXR0ZSBudXIgTGV1dGUgbWl0Cmd1dGVyIE11ZGtlbm50bmlzIChNaW5pbXVtOiBTZWhlcikgZGFydW0uIEljaCBlbnRzY2hlaWRlIGRhbm4gc2VsYnN0IHZvZWxsaWcKd2lsbGt1ZXJsaWNoLCBhYmVyIGJpdHRlIHNlaWQgbWlyIG5pY2h0IGJvZXNlIHdlbm4gaWhycyBkYW5uIG5pY2h0IHdlcmRldC4gVW5kCkJld2VyYnVuZ2VuIGJpdHRlIG51ciBwZXIgTWFpbCwgdG1zIHZlcmdlc3NlIGljaCBlaC4KCkRhbmtlIGZ1ZXIgZGllIEF1Zm1lcmtzYW1rZWl0LAoKSHVtbmkKUFM6IGhpbGZlIHRlc3RzcGllbGVyIHNvbGx0ZSBtYW4gdm9yaGVyIGxlc2VuLCBpbnNiZXNvbmRlcmUgZGVuIFRlaWwgbWl0IGRlbgpHaWxkZW50ZXN0aWVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTSdlcmEgTHVuYSAoTHVnLCAyMy4gSnVsIDIwMDMsIDIyOjI5OjE1KToKCk1vaW4sCgpkYSBlcyBzbyBhdXNzaWVodCBhbHMgb2IgaWNoIGJlaW0gTSNlcmEgTHVuYSBhdWZzY2hsYWcsIHdlciBmYWVocnQgZWlnZW50bGljaApub2NoIGFsbGVzIGhpbj8gS29sbGlkaWVydCBqYSBuaWNodCBtaXQgbmVyIFBhcnR5Li4uCgpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNJ2VyYSBMdW5hIChEYXJrd2luZywgMjMuIEp1bCAyMDAzLCAyMzowMDoxMik6Cn4jISBybj1MdWcgcnQ9MTA1ODk5MjE1NSByZz1hbnplaWdlbgp+IyEgdGlkPTEwNTg5OTIxNTUKSWNoIGZhaHIgaGluLCB6dXNhbW1lbiBtaXQgS2FkaXMgLi4uIHNvd2VpdCBpY2ggd2Vpc3Mgd29sbHRlIFJhZ25hcm9layBhdWNoCmtvbW1lbi4KCkRhcmt3aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTSdlcmEgTHVuYSAoQXBvbGxvbmlhLCAyNC4gSnVsIDIwMDMsIDA3OjU1OjA2KToKfiMhIHJuPUx1ZyBydD0xMDU4OTkyMTU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpJY2ggaGF0dGUgZXMgc2Nod2VyIHZvciwgYWJlciBkaWUgRmluYW56ZW4gKnd1ZXJnKgoKQXBvKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNJ2VyYSBMdW5hIChab29rLCAyNC4gSnVsIDIwMDMsIDA5OjQ2OjI3KToKfiMhIHJuPUFwb2xsb25pYSBydD0xMDU5MDI2MTA2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpXYXMgaXN0IGRlbm4gTSNlcmEgTHVuYT8KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNJ2VyYSBMdW5hIChOb25uZSwgMjQuIEp1bCAyMDAzLCAwOTo0OToxOCk6Cn4jISBybj1ab29rIHJ0PTEwNTkwMzI3ODcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDU4OTkyMTU1CkRhcyBpc3Qgd2llIGVpbiBUcmVmZmVuIGVpbmVyIFNlbGJzdG1vcmRzZWt0ZSBtaXQgTXVzaWssIG51ciBkYXNzIG5pZW1hbmQKa29uc2VxdWVudCBpc3QgKGM7CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcmFmZmljIEphbSAoQW1hem9yYSwgMjQuIEp1bCAyMDAzLCAwOTo1MzowNSk6CkFtIFdvY2hlbmVuZGUgaXN0IGRhcyBUcmFmZmljIEphbSBpbiBEaWVidXJnLiBBbSBGcmVpdGFnIHNwaWVsZW4gSipBKk4gZmVhdApVZHNzciB1bmQgYW0gU2Ftc3RhZyBEcml0dGUgV2FobC4KSXN0IGRhIG5vY2ggZWluZXIgYXVzc2VyIG1pcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE0nZXJhIEx1bmEgKEFwb2xsb25pYSwgMjQuIEp1bCAyMDAzLCAxMDozNToxMCk6Cn4jISBybj1Ob25uZSBydD0xMDU5MDMyOTU4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpCYWVhZWFlYWVhZWFlYWVhZWFlYWVhZWghCgp3d3cubWVyYWx1bmEuZGUsIFpvb2tpc2NoYXR6IChjOgoKQXBvKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTSdlcmEgTHVuYSAoWm9vaywgMjQuIEp1bCAyMDAzLCAxMDo0NToxMyk6Cn4jISBybj1BcG9sbG9uaWEgcnQ9MTA1OTAzNTcxMCByZz1hbnplaWdlbgp+IyEgdGlkPTEwNTg5OTIxNTUKQWhqYS4uICAKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBNJ2VyYSBMdW5hIChMdWcsIDI0LiBKdWwgMjAwMywgMTk6MjU6MzApOgp+IyEgcm49Wm9vayBydD0xMDU5MDM2MzEzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpLb21tc3RlIGpldHp0IGF1Y2ggbWl0IEhhbGxvIE11ZGdvdHQ/CkwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBNJ2VyYSBMdW5hIChab29rLCAyNC4gSnVsIDIwMDMsIDIxOjEyOjM5KToKfiMhIHJuPUx1ZyBydD0xMDU5MDY3NTMwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpXYW5uIGlzIGRhcz8KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBNJ2VyYSBMdW5hIChMdWcsIDI0LiBKdWwgMjAwMywgMjE6MTM6MDEpOgp+IyEgcm49Wm9vayBydD0xMDU5MDczOTU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpTaWVoIGF1ZiBBcG9sbG9uaWFzIFdlYnNpdGVsaW5rIG5hY2guLi4KTC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IE0nZXJhIEx1bmEgKFpvb2ssIDI0LiBKdWwgMjAwMywgMjE6MTU6MDgpOgp+IyEgcm49THVnIHJ0PTEwNTkwNzM5ODEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDU4OTkyMTU1Clp1IGZhdWwuCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IE0nZXJhIEx1bmEgKEFuc3V6LCAyNS4gSnVsIDIwMDMsIDEzOjI2OjI0KToKfiMhIHJuPVpvb2sgcnQ9MTA1OTA3NDEwOCByZz1hbnplaWdlbgp+IyEgdGlkPTEwNTg5OTIxNTUKTWFsIGVpbiBwYWFyIG5ldHRlIEJhbmRzIHZvcnNjaGxhZ2VuOgoKU2Ftc3RhZzoKCjExLjQwIC0gMTIuMTAgQXV0dW1uIGF1cyBHcm9uaW5nZW4gdW5kIFNhZW5nZXJpbiBOaWVua2UgaGF0cyBlY2h0IGRyYXVmLgoxNC40NSAtIDE1LjI1IEFmdGVyIEZvcnZlciBsaXZlIHdlc2VudGxpY2ggaGFlcnRlciBhbHMgZGllIENELiB1bmQgU2FlbmdlcmluCkZsb29yIHNpbmd0IGFsbGVzIGluIEdydW5kIHVuZCBCb2RlbiA7KQoyMi4zMC0yNC4wMCBOaWdodHdpc2ggTXVzcyBpY2ggbml4IHp1IHNhZ2VuLCBvZGVyPwoKU29ubnRhZwoxMS4zNSAtIDEyLjA1IFVudGVyc2NoYWV0enRlIGxldHp0ZSBQbGF0dGUsIGFuc2VoZW4uCjE0LjEwIC0gMTUuMDAgV2l0aGluIFRlbXB0YXRpb24gYWVoIGphIG5ldHRlIFNhZW5nZXJpbiA7KQoKQXNlcmRlbTogS2lsbGluZyBKb2tlLCBBcG9jYWx5cHRpY2EsIE1pbGEgTWFyLCBEZWluZSBMYWtlaWVuLCBRbnRhbCBldGMuCmJhbGJsYS4uLgoKMTAwMCBndXRlIEdydWVuZGUgaGluenVmYWhyZW4gOykKaS5BLgpBLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IE0nZXJhIEx1bmEgKEx1ZywgMjUuIEp1bCAyMDAzLCAxNToyMzowNyk6Cn4jISBybj1BbnN1eiBydD0xMDU5MTMyMzg0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpBY2hqYSwKCmhldXRlIEFiZW5kIDIwOjA1IFVociBnaWJ0cyBpbSBXZWJyYWRpbyB2b24gd3d3Lm9laW5zLmRlIGVpbiBrbGVpbmVzIEludGVydmlldwptaXQgZGVuIE0nZXJhIEx1bmEgTGV1dGVuLi4uCgpJc3QgYWJlciB2b24gTGFlcm0gdW1yaW5ndCA7KQpPdmVya2lsbGVuZApMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBNJ2VyYSBMdW5hIChFbGl6YWJldGgsIDI1LiBKdWwgMjAwMywgMjA6MjU6MzYpOgp+IyEgcm49QW5zdXogcnQ9MTA1OTEzMjM4NCByZz1hbnplaWdlbgp+IyEgdGlkPTEwNTg5OTIxNTUKV0FBQUFBQUFBQUFBQUFBSCBJQ0ggV0lMTCBBVUNIISEhISEhISEhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBNJ2VyYSBMdW5hIChBbWFyeWxsaXMsIDI1LiBKdWwgMjAwMywgMjA6MjY6NTYpOgp+IyEgcm49RWxpemFiZXRoIHJ0PTEwNTkxNTc1MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDU4OTkyMTU1CjxwcmF0Y2hldHQ+Cm11bHRpcGxlIGV4Y2xhbWF0aW9uIG1hcmtzLi4uCjwvcHJhdGNoZXR0PgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IE0nZXJhIEx1bmEgKEx1ZywgMjYuIEp1bCAyMDAzLCAxNjo0MTo0OCk6Cn4jISBybj1FbGl6YWJldGggcnQ9MTA1OTE1NzUzNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwNTg5OTIxNTUKS2luZGVyIG1pdCBuZW0gV2lsbGVuLCBrcmllZ2VuIHdlbGNoZSBhdWYgZGllIC4uLgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJvZ3JhbW1pZXJza2xhXkheSF5IXkhoaWxmZSBnZXN1Y2h0IChHcmltbWJvcm4sIDMwLiBKdWwgMjAwMywgMTc6NDA6NDgpOgpTb2xsdGUgaGllciBlaW4gU3R1ZGVudCBhdXMgZGVtIEhhbWJ1cmdlciBSYXVtIHJ1bXNjaHdpcnJlbiBkZXIgZWluZW4gSm9iIGZ1ZXIKZGllIFNlbWVzdGVyZmVyaWVuICh1bmQgbW9lZ2xpY2hzdCBpbiBUZWlsemVpdCBkYXJ1ZWJlciBoaW5hdXMpIHN1Y2h0LApicmF1Y2hiYXJlIFBlcmwtIHVuZCBDLUtlbm50bmlzc2UgKG1vZWdsaWNoc3QgYXVjaCBFcmZhaHJ1bmcpIGhhdCB1bmQgaW0KUmFobWVuIGVpbmVzIGludGVyZXNzYW50ZW4gUHJvamVrdGVzIGltIFN1cGVyY29tcHV0ZXJ1bWZlbGQgRXJmYWhydW5nZW4Kc2FtbWVsbiB3aWxsOiBBbnNwcmVjaGVuIG9kZXIgbWFpbCBhbiBtaWNoLiBXaXIgc3VjaGVuIGhpZXIga3VyemZyaXN0aWcKamVtYW5kZW4gZGVyIHVucyBiZWkgZGVyIEFucGFzc3VuZyB1bmQgV2FydHVuZyB2b24gZWluIHBhYXIgdG9vbHMgZW50bGFzdGVuCmthbm4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBNJ2VyYSBMdW5hIChLcmVsbGphLCAgNC4gQXVnIDIwMDMsIDE0OjM2OjE0KToKfiMhIHJuPUx1ZyBydD0xMDU5MjMwNTA4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA1ODk5MjE1NQpVbSB6dXp1ZWNrIHp1bSBUaGVtYSB6dSBrb21tZW4sIGljaCB3ZXJkZSBhdWNoIGRhIHNlaW4uCgpXb2xsZW4gd2lyIHVucyBuaWNodCBpcmdlbmR3byB0cmVmZmVuPwoKS3JlbGxqYQpoYWxiZHVlc3Rlciwgb2RlciB3aWUgbWFsIGVpbiBGcmV1bmQgc2FndGU6ICI8bmFtZTw+S3JlbGxqYSBpc3QgaW4gZWluCm5ldHRlcywgZnJldW5kbGljaGVzIFNjaHdhcnogZ2VrbGVpZGV0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VtbWVyQnJlZXplIChBbnN1eiwgMTIuIEF1ZyAyMDAzLCAxNTowNzo0MCk6Ck1vaW4sCgppcmdlbmR3aWUgbGllZiBtaXIgYmVpbSBNJ2VyYSBqYSBsZWRpZ2xpY2ggZGVyIE1vcmdvdHQgdWVlYmVyIGRlbiBXZWcgKFJlYXBlciwKRHUgTGFuZ3NjaGxhZWZlciksIGFiZXIgZGFzIGxhZXNzdCBzaWNoIGphIGFlbmRlcm4uIEtvbW10IHdlciB6dW0gU3VtbWVyQnJlZXplCk9wZW4gQWlyPwoKaS5BLgpBLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN1bW1lckJyZWV6ZSAoTW9yZ290aCwgMTIuIEF1ZyAyMDAzLCAxNToxNzowNik6Cn4jISBybj1BbnN1eiBydD0xMDYwNjkzNjYwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2MDY5MzY2MApXYW5uLCBXbywgV2llIHRldWVyLCBXZXIgc3BpZWx0LCBXYXJ0ZW4gYXVmIFJ1ZWNrZnJhZ2VuLi4uYWNoIG5lLCBuaWNodCBFcnN0ZQpIaWxmZSA6KQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU3VtbWVyQnJlZXplIChNYWhhcmV0LCAxMi4gQXVnIDIwMDMsIDE1OjE4OjE2KToKfiMhIHJuPU1vcmdvdGggcnQ9MTA2MDY5NDIyNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwNjA2OTM2NjAKd3d3LnN1bW1lci1icmVlemUuZGUKCk1haGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFN1bW1lckJyZWV6ZSAoTW9yZ290aCwgMTIuIEF1ZyAyMDAzLCAxNToyMToxMyk6Cn4jISBybj1NYWhhcmV0IHJ0PTEwNjA2OTQyOTYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDYwNjkzNjYwClZlcmdpc3MgZXMsIGRhIGhhYnNjaCBCZXN1Y2ggOikKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbGFjayBFbGJlbiBGZXN0aXZhbCAoTW9yZ290aCwgMTMuIEF1ZyAyMDAzLCAwMDowNjoyOCk6CkhpIExldXRzLApub2NoIGV0d2FzLCB3YXMgbWFuIGF1ZiBrZWluZW4gRmFsbCB2ZXJwYXNzZW4gc29sbHRlOiAKQmxhY2sgRWxiZW4gRmVzdGl2YWwgMjAwMwpJbmZvcyB1bnRlcjogaHR0cDovL3d3dy5ibGFja2VsYmVuZmVzdGl2YWwuZWxiZW5ldmVudHMuZGUvYmVmLmh0bWwKCk0qICgxKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsYWNrIEVsYmVuIEZlc3RpdmFsIChBcG9sbG9uaWEsIDEzLiBBdWcgMjAwMywgMDk6MTM6NDUpOgp+IyEgcm49TW9yZ290aCBydD0xMDYwNzI1OTg4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2MDcyNTk4OApIYSEgRG9jaCBub2NoIHdhcywgd2FzIGljaCBkaWVzZXMgSmFociBtaXRuZWhtZW4ga2FubiAqZyogSXMgamEgdW0gZGllIEVja2UuCgpBcG8qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmxhY2sgRWxiZW4gRmVzdGl2YWwgKENhc3NhbmRyYSwgMTMuIEF1ZyAyMDAzLCAxNjowMjo1OCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwNjA3MjU5ODggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDYwNzI1OTg4CmRhcyBrbGluZ3QgZ3V0LCBtYWwgc2VoZW4gd2FzIHNpY2ggYW1jaGVuIGxhZXNzdApDYXNzeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsYWNrIEVsYmVuIEZlc3RpdmFsIChEYXJrd2luZywgMTMuIEF1ZyAyMDAzLCAxOTo1MTowMik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwNjA3MjU5ODggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDYwNzI1OTg4Cm1oLi4uIHdvbGx0IHNvd2llc28gbWFsIHdpc3NlbiBvYiBMJ0FtZSBJbW9ydGVsbGUgbGl2ZSB3aXJrbGljaCBzbyB1ZWJlbCBpc3QKd2llIGFsbGVzIHNhZ2VuLiBJc3QgendhciBub2NoIHdhcyBoaW4sIGFiZXIgaWNoIHNhZyBtYWwgKCsxKSAKCkRhcmt3aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpha3JvbnltZSB1ZWJlciB0bSAoSm9obnNpbHZlciwgMTUuIEF1ZyAyMDAzLCAwMjo1NzowMyk6CndlciBlcyBsZWlkIGlzdCwgZGVuIHdlYi1icm93ZXIgZnVlciBlaW5lIHVuYmVrYW5udGUgYWJrdWVyenVuZyBhdWZtYWNoZW4genUKbXVlc3NlbiBrYW5uIGRhcyBudW4gd29obCBtaXQgJ3RlaWxlIGl0dGlAYW5kZXJsYW5kIG1pdCA8YWJrdWVyenVuZz4nCnZlcmVpbmZhY2hlbi4KZ3J1ZXNzZS4KLUpvaG5zaWx2ZXItCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzLm8uIChHbG9pbnNvbiwgMTUuIEF1ZyAyMDAzLCAwNDowNTowMyk6CkRhYmVpIGZhZWxsdCBtaXIgZWluIEVuZ2xpc2NoLUVuZ2xpc2NoLVdvZXJ0ZXJidWNoIGVpbjoKICdlcnphZWhsZSB3ZWJzdGVyQHR1Ym11ZCA8d29ydD4nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcy5vLiAoVmFyZGlvbiwgMTUuIEF1ZyAyMDAzLCAwOTo1MTozMyk6Cn4jISBybj1HbG9pbnNvbiBydD0xMDYwOTEzMTAzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2MDkxMzEwMwpEZXIgbWFjaHQgYWJlciBndXQgU2Nyb2xsIDotKQoKVmFyZGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHMuby4gKEJyYW4sIDE1LiBBdWcgMjAwMywgMTE6NTg6MzgpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTA2MDkxMzEwMyByZz1hbnplaWdlbgp+IyEgdGlkPTEwNjA5MTMxMDMKd293LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBzLm8uIChab29rLCAxNS4gQXVnIDIwMDMsIDEzOjA1OjMwKToKfiMhIHJuPUJyYW4gcnQ9MTA2MDk0MTUxOCByZz1hbnplaWdlbgp+IyEgdGlkPTEwNjA5MTMxMDMKVG9sbCwgd2FzIGVzIGFsbGVzIGdpYnQuIDopCgpab29rIGZyZXV0IHNpY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZXN0aWUgZ2VzdWNodCAoTW9yZ290aCwgMTguIEF1ZyAyMDAzLCAxODoxMToyOSk6CgpJY2ggc3VjaGUgZWluZW4gVGVzdGllLCBkZXIgZWluZW4gTWVuc2NoZW4vVXJ1a2hhaSBzcGllbHQgdW5kIHp3YXIgdm9uIEFuZmFuZwphbiwgbWl0IFF1ZXN0ZW4sIEYqKiplbiB1c3cuCgpCZXdlcmJ1bmdlbiBiaXR0ZSBwZXIgbWFpbCBhbiBtaWNoIG1pdCBCZWdydWVuZHVuZywgd2FydW0gaWNoIGdyYWQgRGljaCBuZWhtZW4Kc29sbHRlIChjYzpIdW1uaSkuCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVWxpdGUgLSBNR2xlciBnZXN1Y2h0Li4uIChXaGl0ZXRpZ2VyLCAyNS4gU2VwIDIwMDMsIDEwOjM4OjEzKToKLi4uIGljaCBoYWV0dGUgZ2VybmUgbmUgTGlzdGUgbWl0IGRlbiBnYW56ZW4gTUdsZXJuIGluIFVsaXRlLCBiaXR0ZSBtZWxkZW4hIDopCihNRyAtPiBVbGl0ZSkKV2hpdGVUaWdlciAtPiBUaWdlcgpIdW1uaSAtPiBTaGFyZW51ZwpTaGFrZWRiZWVyIC0+IFNoYWtlZGJlZXIKVmFuaW9uIC0+IFZhbmlvbgpGZWlnbGluZyAtPiBDaHJpZgouLi4gd2VyIG5vY2g/CgpUaWdlciAobmV1Z2llcmlnKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVsaXRlIC0gTUdsZXIgZ2VzdWNodC4uLiAoTWlyaWwsIDI1LiBTZXAgMjAwMywgMTQ6NDg6MzcpOgp+IyEgcm49V2hpdGV0aWdlciBydD0xMDY0NDc5MDkzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2NDQ3OTA5MwpNaXJpbC0+VmVsdmV0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFVsaXRlIC0gTUdsZXIgZ2VzdWNodC4uLiAoT2xsaSwgMjUuIFNlcCAyMDAzLCAyMDo0MjoxOSk6Cn4jISBybj1NaXJpbCBydD0xMDY0NDk0MTE3IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2NDQ3OTA5MwpBdWphLCBpY2ggYXVjaC4KCk9sbGkgLT4gb2xtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbGl0ZSAtIE1HbGVyIGdlc3VjaHQuLi4gKEJpcmR5LCAyNS4gU2VwIDIwMDMsIDIxOjI2OjA3KToKfiMhIHJuPU9sbGkgcnQ9MTA2NDUxNTMzOSByZz1hbnplaWdlbgp+IyEgdGlkPTEwNjQ0NzkwOTMKaWNoIGF1Y2gsIGFiZXIgZGFzIHdlaXNzdCBkdSBqYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVWxpdGUgLSBNR2xlciBnZXN1Y2h0Li4uIChXaGl0ZXRpZ2VyLCAyNi4gU2VwIDIwMDMsIDA4OjM0OjQ5KToKfiMhIHJuPUJpcmR5IHJ0PTEwNjQ1MTc5Njcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDY0NDc5MDkzCkFlaC4uLiA/ICpncnVlYmVsKiBuZWUgZ3JhZCBuaWNoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVWxpdGUgLSBNR2xlciBnZXN1Y2h0Li4uIChPZ28sIDI3LiBTZXAgMjAwMywgMTY6NDk6MjEpOgp+IyEgcm49V2hpdGV0aWdlciBydD0xMDY0NDc5MDkzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2NDQ3OTA5MwpOYWNoZGVtIGljaCBnZXJhZGUgRXJmYWhyZW4gaGFiZSwgZGFzcyBlcyBhdWNoIGVpbmVuIEVsZGFyb25AVWxpdGUgZ2lidCwKZGllc2VyIGlzdCBlaW4gZ2VtZWluZXIgTmFtZW5zZGllYiB1bmQgbmljaHQgbWl0IGRlbSBoaWVzaWdlbiBpZGVudGlzY2ghCgpPZ28sIGRpZSBTdGlybiBydW56ZWxuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBVbGl0ZSAtIE1HbGVyIGdlc3VjaHQuLi4gKENyb2Z0LCAyNy4gU2VwIDIwMDMsIDE3OjA0OjA5KToKfiMhIHJuPU9nbyBydD0xMDY0Njc0MTYxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA2NDQ3OTA5MwpOdWphLCAgRWxkYXJvbkBVTkl0b3BpYSBnaWJ0cyBhdWNoLCBhYmVyIGRlciBpc3QgZGVmaW5pdGl2IGFlbHRlcgphbHMgZGVyIGhpZXIgLC0pCgpDcm9mdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29ubmVuZXJ1cHRpb24gKEJhbWJ1bGtvLCAyOC4gT2t0IDIwMDMsIDE4OjM4OjQ2KToKSGV1dGUgbWl0dGFnIGZhbmQgYXVmIGRlciBTb25uZSBlaW4gZXh0cmVtIHN0YXJrZXIKU3RyYWhsdW5nc2F1c2JydWNoICh2b3IgYWxsZW0gaW0gUm9lbnRnZW4tLCBVVi0gdW5kIFJhZGlvLQpiZXJlaWNoKSBzdGF0dCwgZGVyIHNvZ2FyIGltIG5vcm1hbGVuIHdlaXNzZW4gTGljaHQgCnNpY2h0YmFyIHdhciAobWl0IEZpbHRlciBuYXR1ZXJsaWNoKS4gRGVyIEtXLUZ1bmt2ZXJrZWhyCmlzdCBkYXJhdWZoaW4gYXVzZ2VmYWxsZW4gKE1vZWdlbC1EZWxsaW5nZXItRWZmZWt0KS4KRGllIGdsZWljaHplaXRpZyBwcm9kdXppZXJ0ZW4gc2NobmVsbGVuIGdlbGFkZW5lbgpUZWlsY2hlbiBiZW5vZXRpZ2VuIDEuNSAtIDIgVGFnZSBiaXMgenVyIEVyZGUgdW5kCmVyemV1Z2VuIGRhaGVyIGluIGRlciBOYWNodCB2b24gTWl0dHdvY2ggYXVmIERvbm5lcnN0YWcKc2Nob2VuZSBQb2xhcmxpY2h0ZXIsIGRpZSB2aWVsbGVpY2h0IGF1Y2ggYmVpIHVucyB6dSBzZWhlbgpzaW5kLiBBbHNvIG5hY2h0cyBtYWwgcmF1c3NjaGF1ZW4hIFdlciBlaW4gVGVsZXNrb3AgbWl0IApndXRlbSBTb25uZW5maWx0ZXIgaGF0LCBzb2xsdGUgc2ljaCB1bmJlZGluZ3QgZGVuIFVucnVoZWhlcmQsIAplaW4gcmllc2lnZXIgU29ubmVuZmxlY2ssIGFuc2VoZW4uIAoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTb25uZW5lcnVwdGlvbiAoQmFtYnVsa28sIDMwLiBPa3QgMjAwMywgMTM6MDc6NTMpOgp+IyEgcm49QmFtYnVsa28gcnQ9MTA2NzM2MjcyNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwNjczNjI3MjYKU2Nob2VuZSBha3R1ZWxsZSBCaWxkZXIgdm9uIGRlciBTb25uZToKCmh0dHA6Ly9zb2hvd3d3Lm5hc2NvbS5uYXNhLmdvdi9kYXRhL3JlYWx0aW1lLWltYWdlcy5odG1sCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ3VsdHMgb2YgUHJheCAoTHVnLCAyOS4gTm92IDIwMDMsIDAxOjE5OjU4KToKTW9pbiwKCmJlc2l0enQgenVmYWVsbGlnIGVpbmVyIGRhcyBSdW5lcXVlc3QtSGFuZGJ1Y2ggQ1VMVFMgT0YgUFJBWD8gV2VubiBqYSwgTWFpbCBhbgptaWNoLi4uCgpBcmdsYmFyZ2wKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaGUgbmV4dCBnZW5lcmF0aW9uIChBbGluZSwgIDMuIERleiAyMDAzLCAxNTozNDo1Nik6CgpTbywgaW4gZWluIHBhYXIgSmFocmVuIGdpYnQgZXMgZGFubiB3aWVkZXIgamVtYW5kZW4sIGRlbgppY2ggYW4gZGFzIE1VRCBoZXJhbmZ1ZWhyZW4gd2VyZGUuIEJpcyBkYWhpbiB2ZXJzdWNoZSBpY2gKd2VpdGVyaGluIGRpZSBRdWVzdCB6dSBsb2VzZW4gbWl0IGRlbSBUaXRlbCAiSGlsZiBkZW0gQmFieQpiZWltIEVpbnNjaGxhZmVuIiwgIldhcnVtIHNjaHJlaXQgZGFzIEtpbmQ/IiB1bmQKIkVsdGVybiBtYWNoZW4gZWggYWxsZXMgZmFsc2NoIi4KClVtIGdlbmF1ZXIgenUgc2VpbjoKCmFtIDE0LjExLjIwMDMgaGF0IEZhYmlhbiBQaGlsaXBwCmRhcyBMaWNodCBkZXIgV2VsdCBlcmJsaWNrdC4KRXIgd2FyIGRhbWFscyBzY2hvbiA1NiBjbSBsYW5nIHVuZCA0MDEwIGcgc2Nod2VyIHVuZApsZWlkZXIgaGF0dGUgZXIgZWluZW4gS29wZnVtZmFuZyB2b24gc2F0dGVuIDM4LDUgY20uCkdlYm9yZW4gaXN0IGVyIG5vY2ggaW4gUmF2ZW5zYnVyZyB1bmQgd29obnQgYWxsZXJkaW5ncwpqZXR6dCBpbiBIYW1idXJnLgoKQWxsZXMgd2VpdGVyZSBhdWYgTmFjaGZyYWdlIG9kZXIgYmVpbSAxLiBTdGFtbXRpc2NoCmluIEhIIGltIG5hZWNoc3RlbiBKYWhyLgoKR3J1ZXNzZQoKQWxpbmUgKGdlc2NoYWZmdGUgTXV0dGVyKQoKUC5TLjogRnJhZ2UgYW4gZGllIFByb2ZpLUVsdGVybiBoaWVyOiBXbyBpc3QgYmVpbSBCYWJ5IGRpZQpMYXV0c3RhZXJrZXJlZ2VsdW5nPyBEZXIgRWluc2NobGFma25vcGY/IERpZSBCZWRpZW51bmdzYW5sZWl0dW5nPz8/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRoZSBuZXh0IGdlbmVyYXRpb24gKFdhcmdvbiwgIDMuIERleiAyMDAzLCAyMjoyODo0NSk6Cn4jISBybj1BbGluZSBydD0xMDcwNDYyMDk2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA3MDQ2MjA5NgogIEdyYXRzIFNjaGF0eiEKCkpldHp0IGdpbHQgZXMgbnVyIG5vY2gsIGR1cmNoenVoYWx0ZW4gYmlzIGRlciBLbGVpbmUgYXVzIGRlbSBHcm9lYnN0ZW4gaGVyYXVzCmlzdC4gQmVpIGRlbiBkZXJ6ZWl0IHVlYmxpY2hlbiBTdHVkaWVuemVpdGVuIGFsc28gZXR3YSBtaXQgMzAuIDotKQoKTWF5IHRoZSBQYW1wZXJzIGJlIHdpdGggaGltIQoKICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGhlIG5leHQgZ2VuZXJhdGlvbiAoTm9ubmUsICA0LiBEZXogMjAwMywgMDg6MTA6MjMpOgp+IyEgcm49V2FyZ29uIHJ0PTEwNzA0ODY5MjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDcwNDYyMDk2CkVyc3RlIGFiZ2VzY2hsb3NzZW5lIEF1c2JpbGR1bmcgb2RlciAyNiwga29tbXQgZHJhdWYgYW4sIHdhcyBmcnVlaGVyIGVpbnRyaXR0LgoKTm9ubmUsIGhhdCBzaWNoIGVya3VuZGlndC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRoZSBuZXh0IGdlbmVyYXRpb24gKE1vbnRhbnVzLCAgNC4gRGV6IDIwMDMsIDA4OjI4OjQwKToKfiMhIHJuPU5vbm5lIHJ0PTEwNzA1MjE4MjMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDcwNDYyMDk2CgpXYXJnb24gc2NocmVpYnQ6Cj5NYXkgdGhlIFBhbXBlcnMgYmUgd2l0aCBoaW0hCgpBaCwgaXN0IGRhcyBlaW4gSW5kaXosIGRhcyBhdWYgZGVuIFZhdGVyIGhpbnplaWd0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBTb21tZXJwYXJ0eSAoT3JrdG9ldGVyLCAxNy4gSmFuIDIwMDQsIDAwOjAyOjE2KToKSWNoIGtvcGllciBtYWwgZGVuIHdpY2h0aWdzdGVuIEFydGlrZWwgYXVzICJQYXJ0eSIgaGllcmhlciwgZGEgZXIgZG9ydCBudXIKc2Nod2VyIHp1IGZpbmRlbiBpc3Q6CgpTb21tZXJwYXJ0eSBIYWxsZSAoQ2Fzc2FuZHJhLCAxMy4gSmFuIDIwMDQsIDE1OjMwOjI1KToKClNvIG51IG1hbCBCdXR0ZXIgYmVpIGRpZSBGaXNjaGUKCkhhbGxlIHdpcmQgZGllIFNvbW1lcnBhcnR5IG1hY2hlbgpaZWl0OiBFcnN0ZSBBdWd1c3R3b2NoZSAoMi4tOC44LjA0KQpPcnQ6IEhhbGxlIC9TYWFsZQogICAgIFplbHRwbGF0eiAod2llIGdlaGFidCkKCldlaXRlcmUgSW5mb3MsIFdlZ2Jlc2NocmVpYnVuZ2VuIGV0YyBzcGFldGVyIGFuIGRpZXNlciBTdGVsbGUuCgpDYXNzeSwgaW0gTmFtZW4gZGVzIFBhcnR5b3JnYXRlYW1zLUhhbGxlCgpQLlMuIGtlaW5lIEFuZ3N0IGRpZXNtYWwgc2NocmVpYiBpY2ggZGllIEF1dG8tV2VnYmVzY2hyZWlidW5nZW4gbmljaHQgc2VsYnN0CgpUb3dlci4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXJ0aWtlbCBTb21tZXJwYXJ0eSAoTGV2LCAxNy4gSmFuIDIwMDQsIDE0OjE0OjIxKToKfiMhIHJuPU9ya3RvZXRlciBydD0xMDc0Mjk0MTM2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA3NDI5NDEzNgpOaWNoLCBkYXNzIHdpciBuZSBSdWJyaWsgInBhcnR5LmJla2FubnRtYWNodW5nZW4iIGhhZXR0ZW4uLi4KCkxldiBzdG9laG50LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGFydGlrZWwgU29tbWVycGFydHkgKEx1ZywgMjEuIEphbiAyMDA0LCAxMjowNDowOSk6Cn4jISBybj1Pcmt0b2V0ZXIgcnQ9MTA3NDI5NDEzNiByZz1hbnplaWdlbgp+IyEgdGlkPTEwNzQyOTQxMzYKVW5kIHdpZSBpbiBqZWRlbSBKYWhyOgoKV2Fja2VuIE9wZW4gQWlyIDA1LiAtIDA3LjA4LgoKdW5kIHVtIGVzIG5vY2ggYmVzc2VyIHp1IG1hY2hlbiwgaW4gZGllc2VtIEphaHIgbGllZ3QgZGFzIE0nZXJhIEx1bmEgKGJlaSBkZW0Kc2ljaCBsZXR6dGVzIEphaHIgZWluZSBNZW5nZSBNdWRkZXIgdHVtbWVsdGVuKSBhbSBnbGVpY2hlbiBXb2NoZW5lbmRlLi4uCgpUcmlmZnRzIGFsc28gYXVjaCBtYWwgZGllIE5pY2h0LU1ldGFsbGVyLi4uCgpGaWRLRyEKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYW1tZXJjaG9ya3VycyBpbiBDcm9zc2VuIGEuZC4gRWxzdGVyIChHaXRhcnJlLCAyMS4gSmFuIDIwMDQsIDIyOjU0OjI4KToKSGFsbG8genVzYW1tZW4sCgpFbmRlIEZlYnJ1YXIgZ2lidCBlcyBlaW5lbiBLYW1tZXJjaG9ya3VycyAoTXVzaWsgdW0gMTYwMCkgaW4gQ3Jvc3NlbiBhbiBkZXIKRWxzdGVyLiBOYWVoZXJlcyBlcmZhaHJ0IElociBhdWYgZGVuIFdlYnNlaXRlbiB2b20gSGVpbnJpY2ggU2NodWV0eiBIYXVzIChCYWQKS29lc3RyaXR6KS4gTWFuIG11ZXNzdGUgc2ljaCBiaXMgMjYuMS4gYW5tZWxkZW4uIFdlciBub2NoIHdlaXRlcmUgSW5mb3MKYnJhdWNodCwga2FubiBzaWNoIGdlcm4gYmVpIG1pciBtZWxkZW4sIGljaCB3YXIgc2Nob24gendlaSBtYWwgZGEuCgpHaXRhcnJlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaGVtbml0emVyIExpbnV4LVRhZyAyMDA0IChXaGl0ZXRpZ2VyLCAyNS4gRmViIDIwMDQsIDA3OjM2OjM3KToKSW4gZGVyICJPcmFuZ2VyaWUiLCBkZW0gTmV1ZW4gSG9lcnNhYWxnZWJhZXVkZSBkZXIgVFUgQ2hlbW5pdHosIGZpbmRldCBhbSA2Lgp1bmQgNy4gTWFlcnogMjAwNCBkZXIgZGllc2phZWhyaWdlIExpbnV4dGFnIHN0YXR0LiBFaW50cml0dHNwcmVpcyA1IEVVUiAoMyBFVVIKZXJtYWVzc2lndCksIHdlaXRlcmUgSW5mb3JtYXRpb25lbiB1bnRlcjoKaHR0cDovL3d3dy50dS1jaGVtbml0ei5kZS9saW51eC90YWcKCkhhdCBhdXNzZXIgbWlyIGVpZ2VudGxpY2ggbm9jaCBlaW4gYW5kZXJlciBNdWRkZXIgYXVzIGRlbSBNRyB2b3IsIHp1IGtvbW1lbj8KVGlnZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2hlbW5pdHplciBMaW51eC1UYWcgMjAwNCAoQWxib2luLCAyNi4gRmViIDIwMDQsIDExOjQwOjE2KToKfiMhIHJuPVdoaXRldGlnZXIgcnQ9MTA3NzY5MDk5NyByZz1hbnplaWdlbgp+IyEgdGlkPTEwNzc2OTA5OTcKSWNoIHdlcmRlIHdvaGwgYXVjaCBkYSBzZWluLgoKQWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwZW5kZW5rb250byBQSy1NdWQgKEFtYXJ5bGxpcywgIDguIE1hciAyMDA0LCAxODozNjo0Mik6CkhpLAoKd2llIHZpZWxsZWljaHQgZWluaWdlIGRlciBoaWVyIEFud2VzZW5kZW4sIGRpZSBhdWNoIGltIFBLLU11ZCBha3RpdiBzaW5kLAp3aXNzZW4sIGJyYXVjaHQgZGFzIFBLLU11ZCBlaW5lbiBuZXVlbiBSZWNobmVyLgpJY2ggd2lsbCBoaWVyIG5pY2h0IGxhbmdlIFdlcmJ1bmcgbWFjaGVuOgpEYXMgU3BlbmRlbmtvbnRvIGlzdCBlcm9lZmZuZXQsIHNpZWhlIEFydGlrZWwgMTcgaW4gUnVicmlrIDEgKE11ZC1SZWNobmVyKSBpbQpQSy1NdWQuIEtvbnRvZGF0ZW4gd2VyZGVuIGF1Y2ggYmFsZCBhdWYgZGVuIFdlYnNlaXRlbiB2ZXJmdWVnYmFyIHNlaW4uIFZpZWxlbgpEYW5rLgoKR3J1c3MsCkFtYSoKClBTIGdlZ2VuIGRpZSBOb2VyZ2xlcjogSWNoIGhhYmUgdm9yYWIgZGllIEVybGF1Ym5pcyB6dW0gUG9zdGVuIGRpZXNlcyBBcnRpa2VscwplaW5nZWhvbHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTXVhZGliIHN0ZWxsdCBBcG8gYW4gZGVuIFByYW5nZXIgKE1vcmdvdGgsICA2LiBBcHIgMjAwNCwgMTU6MDk6MjcpOgp+IyEgcm49TXVhZGliIHJ0PTEwODEyNTY5MDEgcmc9cHJhbmdlcgp+IyEgdGlkPTEwODEyNTY5MDEKRnVlciBhbGxlIG5vY2htYWw6CkhlcnpsaWNoc3RlbiBHbHVlaHN0cnVtcGYgenVtIEJ1cnplbHRhZyA6KQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBLLU11ZC1TcGVuZGUgKEFtYXJ5bGxpcywgMjQuIEFwciAyMDA0LCAxNTowNTo1NCk6CkhhbGxvIHp1c2FtbWVuLAoKbmFjaGRlbSBpY2ggQW5mYW5nIE1hZXJ6IGVpbmVuIEFydGlrZWwgendlY2tzIFNwZW5kZW5zdWNoZSBmdWVyIGVpbmVuIG5ldWVuClBLLU11ZC1SZWNobmVyIGhpZXIgdmVyb2VmZmVudGxpY2hlbiBkdXJmdGUsIG1vZWNodGUgaWNoIG1pY2ggaGllciBiZWkgYWxsZW4KYmVkYW5rZW4sIGRpZSBtaXQgZWluZXIgU3BlbmRlIGRhenUgYmVpZ2V0cmFnZW4gaGFiZW4sIGRhc3MgZGVyIG5ldWUgUmVjaG5lcgpiZXN0ZWxsdCB3ZXJkZW4ga29ubnRlLgoKSWNoIGJpbiB6aWVtbGljaCB2b24gZGVuIFNvY2tlbiwgd2FzIGRpZSBTdW1tZSBhbmdlaHQuIE51ciBlaW5lIGtsZWluZSBBbnphaGwKTGV1dGUgaGF0IGVpbmUgU3VtbWUgZ2VzcGVuZGV0LCBkaWUgZXMgZXJsYXVidCwgZWluZW4gc2VociBvcmRlbnRsaWNoZW4KUmVjaG5lciAoMTkgWm9sbCkgX25ldV8genUga2F1ZmVuIC0gdW5kIGVzIGlzdCBzb2dhciBub2NoIEdlbGQgdWVicmlnLgoKRGFua2Ugbm9jaG1hbHMuCgpJLkEuCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQSy1NdWQtU3BlbmRlIChab29rLCAyNC4gQXByIDIwMDQsIDE3OjM4OjEyKToKfiMhIHJuPUFtYXJ5bGxpcyBydD0xMDgyODExOTU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA4MjgxMTk1NApQcmltYSwgaWNoIG1haWwgRGlyIGRhbm4gbWVpbmUgS29udG9udW1tZXIgenUuCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQSy1NdWQtU3BlbmRlIChBbWFyeWxsaXMsIDI0LiBBcHIgMjAwNCwgMTc6Mzk6MjgpOgp+IyEgcm49Wm9vayBydD0xMDgyODIxMDkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTA4MjgxMTk1NApCaXR0ZSBtaXQgRWluenVnc2VybWFlY2h0aWd1bmcsIGRhbmtlIDopCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBQSy1NdWQtU3BlbmRlIChHbG9pbnNvbiwgMjQuIEFwciAyMDA0LCAxNzo0MDo0NCk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9MTA4MjgyMTE2OCByZz1hbnplaWdlbgp+IyEgdGlkPTEwODI4MTE5NTQKSWNoIG5laG1lIGF1Y2ggQmFyZ2VsZC4gRGFua2UuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSUxBIChHbG9pbnNvbiwgIDYuIE1haSAyMDA0LCAyMjo0MDo0Nyk6ClZvbSAxNC4tMTYuIE1haSBmaW5kZXQgaW4gQmVybGluIG1hbCB3aWVkZXIgZGllIGtsZWluZSBJbnRlcm5hdGlvbmFsZQpMdWZ0YXVzc3RlbGx1bmcgc3RhdHQuIEJlc3RpbW10IHdpZWRlciBtaXQgdG9sbGVuIEhpZ2hsaWdodHMgdW5kIGVyZm9sZ3JlaWNoZW4KS2xhZ2VuLCBkYXNzIGRpZSBKYWdkbWFzY2hpbmVuIHdpZWRlciBsZWlzZSBmbGllZ2VuIHNvbGxlbiA6KQpJcmdlbmR3ZXIgaGF0dGUgbWljaCBkYW5hY2ggbWFsIGdlZnJhZ3QuIE1vZWdlIGRlcmplbmlnZSBlcyBoaWVyIGxlc2VuIDspCgpTaWVoZSBhdWNoOiBodHRwOi8vd3d3LmlsYS1iZXJsaW4uZGUKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSUxBIChaYXJuaXlhLCAgNy4gTWFpIDIwMDQsIDA4OjQzOjMzKToKfiMhIHJuPUdsb2luc29uIHJ0PTEwODM4NzYwNDcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMDgzODc2MDQ3CnRvbGxlIEdlc2NoYWVmdHNpZGVlLCBMdWZ0IGF1c3p1c3RlbGxlbi4uLiBwcm9iaWVyIGljaCBhdWNoIG1hbCBhdXMuLi4gd2FzCm5laG1lbiBkaWUgc28gYW4gRWludHJpdHQ/IAoKTWFyYyAqZ2llcmlnKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV29ybGQgUHJlc3MgUGhvdG8gMDQgKFpvb2ssIDE5LiBKdW4gMjAwNCwgMTk6MzE6MTIpOgpIaSwgYXVmIGVpbmlnZW4gQmFobmhvZWZlbiBpbiBEIHdlcmRlbiBkaWUgR2V3aW5uZXJiaWxkZXIgYXVzZ2VzdGVsbHQ7IGljaApoYWJlIGRhcyBoZXV0ZSBhdWYgZGVtIEZyYW5rZnVydCBCYWhuaG9mIGdlc2VoZW4gdW5kIHdhciBzZWhyIGJlZWluZHJ1Y2t0LgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClpJTExPIEZFU1RJVkFMIFVNU09OU1QgKEx1ZywgMTUuIEp1bCAyMDA0LCAyMjoyMDo1OSk6Ck1vaW4sCgpoYWJlIG5vY2ggZWluICsxIGF1ZiBkZXIgR2Flc3RlbGlzdGUgZGVzIFppbGxvLUZlc3RpdmFscy4gRmFocmUgYWJlciB3b2hsIGVyc3QKU2Ftc3RhZyBoaW4uIFdlbm4gZWluZXIgbWl0IHdpbGwsIGRlciBzY2hyZWliZSBtaXIgZWluZSBNYWlsLi4uCgpDaGVlcnMKCkx1Z2lmZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbnRhc3kgRm9vdGJhbGwgKE1vbnRhbnVzLCAgMy4gQXVnIDIwMDQsIDEyOjE5OjMyKToKV2llIGplZGVzIEphaHIgaGFiZSBpY2ggYXVjaCBkaWVzZXMgSmFociB3aWVkZXIgbWl0IEZyZXVuZGVuIGVpbmUgKGtvc3Rlbmxvc2UpCkZhbnRhc3ktRm9vdGJhbGwtTGlnYSBiZWkgWWFob28gbGF1ZmVuLgpFaW4gcGFhciBQbGFldHplIHNpbmQgbm9jaCBmcmVpIC0gdmllbGxlaWNodCBoYXQgZGVyIEVpbmUgb2RlciBBbmRlcmUgamEgTHVzdCwKc2VpbmUgS2VubnRuaXNzZSBkZXIgTkZMIHVuZCBkYXMgZ2x1ZWNrbGljaGUgSGFlbmRjaGVuIGJlaW0gRHJhZnRlbiB6dQpiZXdlaXNlbj8KRWlubG9nZ3Bhc3dvcnQgZ2lidHMgYmVpIG1pciBhdWYgQW5mcmFnZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDYXNzYW5kcmEgaXN0IGpldHp0IGVpbmUgU2VoZXJpbiEgKEdyaW1tYm9ybiwgMjcuIEF1ZyAyMDA0LCAwNjozOTozMyk6Cn4jISBvbj1Pcmt0b2V0ZXIgb3Q9MTA5MzU1MDE2MyBvZz1hbGxnZW1laW5lcwp+IyEgcm49TWVybGluIHJ0PTEwOTM0MzUyMTEgcmc9c3R1ZmVuCn4jISB0aWQ9MTA5MzQzNTIxMQpIdWkhIAoKR3JhdHMgQ2Fzc3khISEKCgpEYXMgd2FyIGphIGF1Y2ggZWluZSBzY2h3ZXJlIEdlYnVydC4uLiBtaW5kZXN0ZW5zIFN0ZWlzc2xhZ2Ugb2RlciBzby4uIGFiZXIKd2FzIGxhbmdlIHdhZWhydCB3aXJkIGVuZGxpY2ggZ3V0IG9kZXIgc28uLiAKCkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIHZvbiBPcmt0b2V0ZXIuCgpQUyBrb21tdCBqZXR6dCBhdWNoIGJhbGQgVGFyYW1pcz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2Fzc2FuZHJhIGlzdCBqZXR6dCBlaW5lIFNlaGVyaW4hIChHcmltbWJvcm4sIDI3LiBBdWcgMjAwNCwgMDY6Mzk6NDUpOgp+IyEgb249RGFya2xvciBvdD0xMDkzNTUwNDAxIG9nPWFsbGdlbWVpbmVzCn4jISBybj1Pcmt0b2V0ZXIgcnQ9MTA5MzU1MDE2MyByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTEwOTM0MzUyMTEKR3JhdHMhCgpEYXJrbG9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBDYXNzYW5kcmEgaXN0IGpldHp0IGVpbmUgU2VoZXJpbiEgKEdyaW1tYm9ybiwgMjcuIEF1ZyAyMDA0LCAwNjozOTo0Nyk6Cn4jISBvbj1ab29rIG90PTEwOTM1NTM0NDYgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPURhcmtsb3IgcnQ9MTA5MzU1MDQwMSByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTEwOTM0MzUyMTEKWm9vayBydWZ0OiBHUkFUUyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhlcmJlcnQgRmV1ZXJzdGVpbiBpbiBCb25uIChBbmF0b2wsIDIyLiBTZXAgMjAwNCwgMjM6MDQ6NDIpOgoKV2VyID5IZXJiZXJ0IEZldWVyc3RlaW48IG51ciBhdXMgIlNjaG1pZHRlaW5hbmRlciIga2VubnQsIGhhdCBkZW4Kd2l0emlnZW4gU2NocmVpYnN0aWwgZWluZXMgUmVpc2ViZXNlc3NlbmVuIHZlcnBhc3N0LiBKZW5lciBIZXJiZXJ0CkZldWVyc3RlaW4gbGllc3QgYW0ga29tbWVuZGVuIE1vbnRhZyBpbSBCb3V2aWVyIGluIEJvbm4uCgpBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZSBBdWZuYWhtZW4gZGVyICJtYXJpb25ldHoiIChKaW1kaWdyaXosIDE5LiBOb3YgMjAwNCwgMjM6MTY6NTkpOgpNb2luLAoKaWNoIGVyaW5uZXIgbWljaCBkdW5rZWwgZWluZXIgbWVpbmVyIE1pdC1NdWRkZXIga2FubnRlCmRpZSBORFcvUHVuayBCYW5kICJNYXJpb25ldHoiLCB3ZWxjaGUgSGl0cyBoYXR0ZW4gd2llOgoiTGFzcyBtaWNoIGhldXQgRGVpbiBTdHJlaWNoaG9seiBzZWluIiwKIk5hY2h0IGZ1ZXIgTmFjaHQiLAoiS3VlaGxlIE1hZWRjaGVuLCB3YXJtZXMgQmllciIKb2RlcgoiVmllcnplaG4iCgpGYWxscyBqZW1hbmRlbiBkaWVzZSBUaXRlbCBvZGVyIGRpZSBCYW5kIGJla2FubnQKdm9ya29tbXQsIG9kZXIgc2ljaCBhbiBlaW5lbiBGcmV1bmQgb2RlciBLb2xsZWdlbgplcmlubmVydCBkZXIgc293YXMga2VubmVuIGtvZW5udGUsIGJpdHRlIG1pciBCZXNjaGVpZApnZWJlbi4gSWNoIHN1Y2hlIG5hY2ggQXVmbmFobWVuIGRpZXNlciBCYW5kLgpEZXJlbiBNYWNod2Vya2Ugc2luZCBudXIgYXVmIFZpbnlsIGVyc2NoaWVuZW4gdW5kIAppbnp3aXNjaGVuIHdvaGwgbGFlbmdzdCBvdXQtb2YtcHJpbnQuCgpWaWVsbGVpY2h0IGhhdCB3ZXIgamEgc29nYXIgZGFzIFZpbnlsIGRhaGVpbSB1bmQgbGFlbmdzdAphdWYgTVAzIGVuY29kZWQuIERhcyB3YWVyIGVjaHQgc3VwZXIuCgpEYW5rZSBzY2hvbm1hbC4KCkNpYW8sCkppbSBEaUdyaXoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0c2VpbmxhZHVuZyAoTWVzaXJpaSwgMjUuIE5vdiAyMDA0LCAwMjowMTo1Myk6CkxpZWJlIE1pdG11ZGRlciwKCnVtIGRpZSBQYXJ0eWJlc3VjaHN6YWhsZW4gdm9uIFdpbnRlcmJ1cmcgZXR3YXMgaW4gZGllIEhvZWhlIHp1IHRyZWliZW4sIG9wZmVybgp3aXIgdW5zZXJlIFVuc2NodWxkIHVuZCB3ZXJkZW4gZGllIFBhcnR5IG1pdCB1bnNlcmVyIEhvY2h6ZWl0IGJlcmVpY2hlcm4uCgpEaWUgR2VsZWdlbmhlaXQgYmlldGV0IHNpY2ggYW4sIGRhIHdpciBzbyBndWVuc3RpZyB6dSBlaW5lciBncm9zc2VuIApIb2NoemVpdHNwYXJ0eSBrb21tZW4uCgpHZWhlaXJhdGV0IHdpcmQgYW0gU2Ftc3RhZywgZGVtIDA0LjEyLjIwMDQgdW0gMTI6MzAgaW0gU3RhbmRlc2FtdCBLaXJuICh3byAKYXVjaCBpbW1lciBkYXMgc2VpbiBtYWcpLCBzbyBkYXNzIHdpciBuYWNoIGRlbSBnZW1laW5zYW1lbiBNaXR0YWdlc3NlbiAKcHVlbmt0bGljaCB6dXIgTWl0Z2xpZWRlcnZlcnNhbW1sdW5nIGRlcyBWZXJlaW5zICJQcm9qZWt0IE1vcmdlbmdyYXVlbiBlLlYuIiAKd2llZGVyIGF1ZiBkZXIgQnVyZyBzaW5kLgoKS29tbWV0IHp1aGF1Ziwgd2lyIHdlcmRlbiBhdWNoIGRhcyBBYmVuZGJ1ZmZldCBhdWZwZXBwZW4hCgpNYWhhcmV0ICYgTWVzaXJpaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTUZHIFdpbnRlcmJ1cmcgYXVzIE5vcmQgKEx1ZywgMjUuIE5vdiAyMDA0LCAyMzoyNDo0OCk6CkF1cyBnZWdlYmVuZW0gQW5sYXNzLCBtdXNzIGljaCB3b2hsIGRvY2ggdmVyc3VjaGVuIG5hY2ggV2ludGVyYnVyZyB6dSBrb21tZW4uCkZhZWhydCB3ZXIgYXVzIGRlbSBOb3JkZW4/IFdlbm4gamEsIGJpdHRlIGJlaSBtaXIgbWVsZGVuLi4uCgpTa2FsCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhvY2h6ZWl0c2VpbmxhZHVuZyAoUGFtcGVycywgMjcuIE5vdiAyMDA0LCAxNDoyNzo1Nik6Cn4jISBybj1NZXNpcmlpIHJ0PTExMDEzNDQ1MTMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTAxMzQ0NTEzCkRhcmYgaWNoIGJlaSBkZXIgSG9jaHplaXRzbmFjaHQgenVzZWhlbj8gRGFubiBicmluZ2UgaWNoIGF1Y2ggQmllciB1bmQgQ2hpcHMKbWl0IQpQYW1wZXJzLiBXb2xsdGUgc293YXMgaW1tZXIgc2Nob24gbWFsLiBTZWhlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdHNlaW5sYWR1bmcgKE1haGFyZXQsICAxLiBEZXogMjAwNCwgMDA6MzU6NDcpOgp+IyEgcm49TWVzaXJpaSBydD0xMTAxMzQ0NTEzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEwMTM0NDUxMwpXZXIgbWl0IHVucyBuYWNoIGRlciBUcmF1dW5nIEVzc2VuIGdlaGVuIHdpbGwsIG1vZWdlIHNpY2ggYml0dGUgc2NobmVsbApiZW1lcmtiYXIgbWFjaGVuLiBXaXIgbXVlc3NlbiB3aXNzZW4sIHdpZSBncm9zcyBkYXMgQnVmZmV0IHNlaW4gc29sbCwgZGFzIHdpcgp1bnMgYXVmdGlzY2hlbiBsYXNzZW4gd29sbGVuLgpUaGUgbW9yZSB0aGUgbWVycmllciEKCk1haGFyZXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0c2Vzc2VuIChNZXNpcmlpLCAgMS4gRGV6IDIwMDQsIDEwOjU3OjM3KToKVW5kIGVzIHNvbGwga2VpbmVyIGRlbmtlbiwgZGFzcyB3YWVyZSBudXIgaW4gRmFtaWxpZSBvZGVyIGRlbSBlbmdzdGVuIEtyZWlzLCAKYWxzbyBrZWluZSBBbmdzdC4gCk1lc2ksIGRlciBnZXN0ZXJuIHNjaG9uIGxpZWJlIE1pdG11ZGRlciBzY2h3ZXIgdWViZXJ6ZXVnZW4gbXVzc3RlLgpVbmQgYml0dGUgYmFsZCwgaWNoIG11c3MgZGVtIGRhcyBoZXV0ZSBzYWdlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBhcnRpa2VsIEhvY2h6ZWl0c2Vzc2VuIChab29rLCAgMS4gRGV6IDIwMDQsIDExOjAyOjQzKToKfiMhIHJuPU1lc2lyaWkgcnQ9MTEwMTg5NTA5MyByZz1hbnplaWdlbgp+IyEgdGlkPTExMDE4OTUwOTMKSWNoIGRhcmYga29ycmlnaWVyZW4sIHdlaWwgaWNoIGF1ZiBkZXIgU2VpdGUgaGVydW1pcnJ0ZToKCmh0dHA6Ly9ob2NoemVpdC5tZXNpcmlpLmRlIC0+IEhvY2h6ZWl0c2Vzc2VuIAoKWm9vayBncmluc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphcnRpa2VsIEhvY2h6ZWl0cy1XaWtpLU51dHplciAoTWVzaXJpaSwgIDEuIERleiAyMDA0LCAxMTowNTo0Nyk6Cmh0dHA6Ly9ob2NoemVpdC5tZXNpcmlpLmRlCk51dHplcjogaG9jaHplaXQKUGFzc3dvcnQ6IHRpbmEmbWljaGEKCkdydXNzIE1lc2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdHNlc3NlbiAoQ2F0d2VhemxlLCAgMS4gRGV6IDIwMDQsIDExOjIxOjA2KToKfiMhIHJuPU1lc2lyaWkgcnQ9MTEwMTg5NTA1NyByZz1hbnplaWdlbgp+IyEgdGlkPTExMDE4OTUwNTcKS2xpbmd0IHVlYmVyemV1Z2VuZCA6KQoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbml4LVNwZXppYWxpc3QgQW55b25lPyAoSmltZGlncml6LCAgNS4gTWFyIDIwMDUsIDIwOjAzOjUyKToKTW9pbiwKCmZhbGxzIGVzIGhpZXIgVU5JWCBDcmFja3MgZ2lidCwgZGllIHVudGVyIFVtc3RhZW5kZW4KYWIgTWl0dGUgZGVzIEphaHJlcyBlaW5lbiBKb2IgaW4gTXVlbmNoZW4gaW4gRXJ3YWVndW5nCnppZWhlbiB3dWVyZGVuLCBrb2VubmVuIHNpY2ggYmVpIG1pciBtZWxkZW4gKGFtIGJlc3RlbiBwZXIgbWFpbCkuCgpQcm9maWw6IFNvbGFyaXMgdW5kL29kZXIgSHBVWCBFeHBlcnRlLAogIEVyZmFocnVuZyBtaXQgVnhWTSwgU0RTL1NWTSwgU3VuIENsdXN0ZXIgdW5kIEhQIE1DIFNlcnZpY2VndWFyZAogIGFic29sdXQgdm9ydGVpbGhhZnQuCkVyZmFocnVuZ2VuIG1pdCBUZWFtZnVlaHJ1bmcgdW5kIGVudHNwcmVjaGVuZGUgClBlcnNvbmFsa29tcGV0ZW56IGViZW5mYWxscyBzZWhyIHZvcnRlaWxoYWZ0LgogICAKRWJlbmZhbGxzIGhpbGZyZWljaCBpc3QgZXJmYWhydW5nIGltIGRhdGFjZW50ZXIgc3VwcG9ydAp1bWZlbGQgKGhhcmR3YXJlIG5haCkuCgpIb2Noc2NodWxhYnNjaGx1c3MgaW4gZWluZW0gZmFjaGxpY2ggcmVsZXZhbnRlbgpTdHVkaWVuZ2FuZyBlYmVuZmFsbHMgd3VlbnNjaGVuc3dlcnQuCgpDaWFvLAogSmltIERpR3JpegoKUC5TLjogSmEgTGludXgtRXJmYWhydW5nIGlzdCBhdWNoIG5lZCBzY2hsZWNodCwgYWJlciBuaWNodAplbnRzY2hlaWRlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW5peC1TcGV6aWFsaXN0IEFueW9uZT8gKERhcmtsb3IsICA1LiBNYXIgMjAwNSwgMjA6MTI6MjUpOgp+IyEgcm49SmltZGlncml6IHJ0PTExMTAwNDk0MzIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTEwMDQ5NDMyCkhvZXJ0IHNpY2ggamEgZ2VmYWVocmxpY2ggYW4uLi4KCkRhcmtsb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW5peC1TcGV6aWFsaXN0IEFueW9uZT8gKFpvb2ssICA1LiBNYXIgMjAwNSwgMjA6NTE6MjkpOgp+IyEgcm49RGFya2xvciBydD0xMTEwMDQ5OTQ1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTExMDA0OTQzMgpWb3IgYWxsZW0gZGllIEtvbWJpbmF0aW9uIHZvbiB0ZWNobmlzY2hlbSBEZXRhaWx3aXNzZW4gbWl0IFBlcnNvbmFsa29tcGV0ZW56LgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpbGZlIHZvbm5vZXRlbiAoQW5hdG9sLCAzMC4gTWFpIDIwMDUsIDIxOjU2OjM4KToKCkhhbGxvLCAKaW56d2lzY2hlbiB6ZWljaG5ldCBzaWNoIHJlY2h0IGRldXRsaWNoIGFiLCBkYXNzIG1laW4gRGlzcHV0Cm1pdCBWb2RhZm9uZSBEMiB2b3IgR2VyaWNodCBhdXNnZXRyYWdlbiB3aXJkLiBadXIgVm9yYmVyZWl0dW5nCmtvZW5udGV0IElociBtaXIsIHdlbm4gaWhyIGJlaW0gbmFlY2hzdGVuIEJ1bW1lbCBpbiBkZXIgRnVzcy0KZ2FlbmdlcnpvbmUgZWluIFZpZXJ0ZWxzdHVlbmRjaGVuIFplaXQgaGFidCwgZWluZW4gZ3Jvc3NlbgpHZWZhbGxlbiB0dW4uCgpEZXRhaWxzIGF1ZiBBbmZyYWdlIChNdWQtTWFpbCkuCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGlsZmUgdm9ubm9ldGVuIChHbG9pbnNvbiwgMzAuIE1haSAyMDA1LCAyMjoyMjowMyk6Cn4jISBybj1BbmF0b2wgcnQ9MTExNzQ4Mjk5OCByZz1hbnplaWdlbgp+IyEgdGlkPTExMTc0ODI5OTgKR2Vob2VydCBkYXMgbmljaHQgbmFjaCBwdWl6PyBJY2ggcmF0ZSBtYWwsIGRhc3MgZHUgYmV3ZWlzZW4gd2lsbHN0LCBkYXNzClZvZGFmb25lIGlyZ2VuZHdhcyBCb2VzZXMgYmVpIGRlbiBBbndlcmJlYWt0aW9uZW4gbWFjaHQgYnp3LiBldHdhcwp1bnRlcmxhZXNzdC4gT2IgZGFzIGF1ZiBkZWluZW4gRmFsbCBFaW5mbHVzcyBoYXQgd2FnZSBpY2ggZmFzdCB6dSBiZXp3ZWlmZWxuLApkYSBtZWluIEFud2VyYmVyIGViZW4gbmljaHQgZGVpbmVyIGlzdC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZWxlZm9uaWVyZW4/IChIb2JvLCAyNC4gSnVuIDIwMDUsIDAwOjA1OjI4KToKSHVodSwKCkljaCBzdWNoZSBlaW5lbiBBbmJpZXRlciwgZGVyIG1pY2ggenUgRUlORVIgSGFuZHludW1tZXIgc2VociBndWVuc3RpZwp0ZWxlZm9uaWVyZW4gbGFlc3N0IChvZGVyIEZlc3RwcmVpcyBvZGVyIHVtbWUgOykpCgpLZW5udCBqZW1hbmQgc293YXM/CgogICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGVsZWZvbmllcmVuPyAoVmVjdG9yLCAyNC4gSnVuIDIwMDUsIDAwOjA3OjA0KToKfiMhIHJuPUhvYm8gcnQ9MTExOTU2NDMyOCByZz1hbnplaWdlbgp+IyEgdGlkPTExMTk1NjQzMjgKdm9uIGZlc3RuZXR6IGF1cyBvZGVyIHZvbiBoYW5keSBhdXM/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRlbGVmb25pZXJlbj8gKEhvYm8sIDI0LiBKdW4gMjAwNSwgMDA6MTE6NTApOgp+IyEgcm49VmVjdG9yIHJ0PTExMTk1NjQ0MjQgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTE5NTY0MzI4Ck1vZWdsaWNoc3QgRmVzdG5ldHouCkhhbmR5IG11ZXNzdGUgaWNoIG1pciBlcnN0IGVpbnMgYW5zY2hhZmZlbiAtIGphLCBzbyBMZXV0ZSBnaWJ0CmVzIG5vY2ggOykKCiAgIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRlbGVmb25pZXJlbj8gKEhvYm8sIDI0LiBKdW4gMjAwNSwgMDA6MTI6MTYpOgp+IyEgcm49SG9ibyBydD0xMTE5NTY0NzEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTExOTU2NDMyOApCencuIHdlbm4gSGFuZHksIGRhbm4gaGFsdCB6dW0gZ3VlbnN0aWdlbiBHZXNhbXRwcmVpcyAKCiAgICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBUZWxlZm9uaWVyZW4/IChHbG9pbnNvbiwgMjQuIEp1biAyMDA1LCAwMDoyNjowMik6Cn4jISBybj1Ib2JvIHJ0PTExMTk1NjQ3MzYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTE5NTY0MzI4CklyZ2VuZCBlaW4gR2VuaW9uLVRhcmlmIHVuZCBkYW5uIG1pdCBQYXJ0bmVyIHZpZWxsZWljaHQ/CgpWb24gSGFuZHkgenUgSGFuZHkgZ2lidCBlcyBhdWYgamVkZW4gRmFsbCBQYXJ0bmVydGFyaWZlLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFRlbGVmb25pZXJlbj8gKFZlY3RvciwgMjQuIEp1biAyMDA1LCAwMDoyNzoyOCk6Cn4jISBybj1HbG9pbnNvbiBydD0xMTE5NTY1NTYyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTExOTU2NDMyOApvMiBnZW5pb24gZHVvLXZlcnRyYWcuIG5vY2htYWwgZ3VlbnN0aWdlciBiZWkgZGlyZWt0ZXIgCm9ubGluZS1iZXN0ZWxsdW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogVGVsZWZvbmllcmVuPyAoWmFybml5YSwgMjQuIEp1biAyMDA1LCAxMDoxOTozMCk6Cn4jISBybj1WZWN0b3IgcnQ9MTExOTU2NTY0OCByZz1hbnplaWdlbgp+IyEgdGlkPTExMTk1NjQzMjgKZ2lidCBhdWNoIHNvIHBhcnRuZXJoYW5keXMsIGRhIGtvZW5uZW4gZGFubiBkaWUgYmVpZGVuIGhhbmR5cyBncmF0aXMKbWl0ZWluYW5kZXIgdGVsZWZvbmllcmVuLi4uIG11c3N0IG1hbCBuYWNoZnJhZ2VuLi4uIGRhcyB6d2VpdGUgaGFuZHkgbXVlc3N0ZQpkYW5uIGRlaW5lIHppZWxwZXJzb24gaG9sZW4uLi4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFN0YW1tdGlzY2ggQmVybGluIDEuIEp1bGkgKEJyb3RuYWVsLCAyNS4gSnVuIDIwMDUsIDExOjE3OjM4KToKfiMhIHJuPU9ya3RvZXRlciBydD0xMTE5NTkwNjYyIHJnPXNjaG1hcnJuCn4jISB0aWQ9MTExOTQ0MjI3OApJY2ggaGFiIHdhcyB2b24gQXJjb3IgZ2Vob2VydCwgZGllIGhhYmVuIG1hbCAyIG51bW1lcm4gZnVlciBmZXN0bmV0eiB1bmQgendlaQpmdWVyIEhhbmR5IHp1bSBndWVuc3RpZ2VyZW4gVGFyaWZmIGFuZ2Vib3Rlbi4gTWl0dGxlcndlaWxlIGdpYnRzIHdvaGwgbnVyIG5vY2gKamV3ZWlscyBlaW5lIE51bW1lciwgYWJlciBkYSB3dWVyZCBpY2ggbWFsIHNjaGF1bi4KQnJvdGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUZWxlZm9uaWVyZW4/IChPZ28sIDI4LiBKdW4gMjAwNSwgMTQ6MDU6MjIpOgp+IyEgcm49SG9ibyBydD0xMTE5NTY0MzI4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTExOTU2NDMyOApEYSBpY2ggbWljaCBnZXJhZGUgZGFtaXQgZWggYmVzY2hhZWZ0aWd0IGhhYmU6IApLb25zdGVsbGF0aW9uIDE6IERldXRzY2hhbmR3ZWl0ZSBIb21lem9uZQpFaW4gR2VuaW9uaGFuZHkgaGF0IGluIGRlciBIb21lem9uZSBkaWUgTW9lZ2xpY2hrZWl0LCBhbGxlIEFucnVmZSBrb3N0ZW5sb3MKYXVmIGVpbiBhbmRlcmVzIEhhbmR5IGltIE8yLU5ldHogdW16dWxlaXRlbi4gWnVoYXVzZSBsaWVndCBhbHNvIGVpbiBhbHRlcwpHdXJrZW5oYW5keSBtaXQgR2VuaW9uIGRyaW4gdW5kIGxlaXRldCBpbW1lciB3ZWl0ZXIuIEVpbiB6d2VpdGVzIEhhbmR5IG1pdApPMi1WZXJ0cmFnIChnZWh0IGF1Y2ggTG9vcCwgUHJlcGFpZCkgaXN0IGRhbm4gdWViZXJhbGwgaW4gRGV1dHNjaGxhbmQgdW50ZXIKZGVyIEZlc3RuZXR6LVJ1Zm51bW1lciBlcnJlaWNoYmFyLiBNaXQgVGFyaWZlbiwgZGllIGtvc3Rlbmxvc2UgQW5ydWZlIGltCk9ydHNuZXR6IGVybW9lZ2xpY2hlbiAoT3J0c25ldHogYmlldGV0IFRlbGVrb20sIERldXRzY2hsYW5kd2VpdCBnaWJ0J3MgYmVpCkFyY29yKSwgaXN0IGRhcyBMb29waGFuZHkga29zdGVubG9zIGFucnVmYmFyLgoKS29uc3RlbGxhdGlvbiAyOiBUaW1lIGFuZCBNb3JlIENvbWJpClNlaXQgZ2VzdGVybiBiaWV0ZXQgRXBsdXMgZGllIE1vZWdsaWNoa2VpdCwgYmlzIHp1IGRyZWkgKGphIHp3ZWkgZ2VoZW4gYXVjaCkKVGltZSBhbmQgTW9yZSBWZXJ0cmFlZ2UgdW50ZXIgZWluZW0gVmVydHJhZyB6dXNhbW1lbnp1ZmFzc2VuIHVuZCBkYW5uIGZ1ZXIKMi41MCBFVVIgenUgInZlcmtudWVwZmVuIiBzbyBkYXNzIGdlbmVyZWxsIGtvc3Rlbmxvc2UgR2VzcHJhZWNoZSB6d2lzY2hlbgpkaWVzZW4gbW9lZ2xpY2ggc2luZC4gRGVyIGtsZWluc3RlIFQmTSBUYXJpZiBrb3N0ZXQgYWxsZXJkaW5ncyAxNSBFVVIgaW0gTW9uYXQKKGFscyBTdHVkZW50IDEyIEVVUiksIHVuZCBtYW4gd2lyZCBmdWVyIDIgSmFocmUgZHJhbiBnZWtuZWJlbHQuCgpadSBFLVBsdXMgaHR0cDovL3d3dy5oZWlzZS5kZS9uZXdzdGlja2VyL21lbGR1bmcvNjEwNzUKWnVyIGRldXRzY2hsYW5kd2VpdGVuIEhvbWV6b25lOiBodHRwOi8vd3d3LnRlbHRhcmlmLmRlL2ZvcnVtL2EtbzIvNTQ1LTEuaHRtbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUZWxlZm9uaWVyZW4/IChCYW1idWxrbywgMjguIEp1biAyMDA1LCAxNDowNzo1Nik6Cn4jISBybj1PZ28gcnQ9MTExOTk2MDMyMiByZz1hbnplaWdlbgp+IyEgdGlkPTExMTk1NjQzMjgKRGFzIG1pdCBPMiB1bmQgZGVyIEhvbWV6b25lIGhhYmUgaWNoIGF1Y2ggZ2VtYWNodC4gRGFzIGhhdCBlaWdlbnRsaWNoIHNlaHIgZ3V0CmZ1bmt0aW9uaWVydC4gRGFzIHByb2JsZW0gaXN0IG51ciwgZGFzcyBtYW4gZW50d2VkZXIgendlaSBWZXJ0cmFlZ2UgYnJhdWNodCwKb2RlciB6dSBudXIgenUgcHJlLXBhaWQgUHJlaXNlbiB0ZWxlZm9uaWVyZW4ga2Fubi4KCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUZWxlZm9uaWVyZW4/IChHbG9pbnNvbiwgMjguIEp1biAyMDA1LCAxNDoxMzoxMSk6Cn4jISBybj1CYW1idWxrbyBydD0xMTE5OTYwNDc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTExOTU2NDMyOApIbS4gRGFzIGtsaW5ndCBqYSB0cm90emRlbSB6aWVtbGljaCBjb29sLiBJY2ggZ2xhdWIgaWNoIGhhYmUgZ2VyYWRlIGRpZQpFaW5nZWJ1bmcgYXVmIEdlbmlvbiB1bXN0ZWlnZW4genUgd29sbGVuLiBXYXJ1bSBlcnphZWhsdCBlaW5lbSBrZWluZXIgc29sY2hlCkRpbmdlPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFRlbGVmb25pZXJlbj8gKEJhbWJ1bGtvLCAyOC4gSnVuIDIwMDUsIDE0OjE2OjQ1KToKfiMhIHJuPUdsb2luc29uIHJ0PTExMTk5NjA3OTEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTE5NTY0MzI4CkZydWVoZXIgYmVrYW0gbWFuIGF1Y2ggbm9jaCBkaWUgMSBvZGVyIDIgQ2VudCBwcm8gTWludXRlLCB3ZW5uIG1hbiBkYXMgYXVmIGVpbgpMb29wIEhhbmR5IHdlaXRlcmxlaXRldC4gRGEga29ubnRlIG1hbiBzY2hvZW4gdWViZXJzIFdvY2hlbmVuZGUgbWl0IFRlbGVrb20KWFhMIHNlaW5lIExvb3AtS2FydGUga29zdGVubG9zIGF1ZmxhZGVuLiAKCklyZ2VuZHdhbm4gaGF0IE8yIGRhcyB3b2hsIG1pdGJla29tbWVuIDotKAoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRlbGVmb25pZXJlbj8gKE9nbywgMjguIEp1biAyMDA1LCAxNDozNTo0NSk6Cn4jISBybj1CYW1idWxrbyBydD0xMTE5OTYwNDc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTExOTU2NDMyOApJbiBkZXIgYyd0IDIwMDUvMTMgaXN0IGdhbnogYXVzZnVlaHJsaWNoIGJlc2NocmllYmVuLCB3aWUgbWFuIG1pdApHZW5pb24rTG9vcCtJU0ROIGVpbmUgQ2FsbGJhY2stTG9lc3VuZyBiYXV0LiBEdSBydWZzdCBtaXQgZGVpbmVtIExvb3AtSGFuZHkKenVoYXVzZSBhbiwgZG9ydCB3aXJkIGRlciBBbnJ1ZiByZWdpc3RyaWVydCB1bmQgYXVmZ2VsZWd0LCBkYW5uIHdpcnN0IGR1IHVlYmVyCkdlbmlvbiB6dXJ1ZWNrZ2VydWZlbiB1bmQgZGlyIHdpcmQgdmlhIGIzIGVpbiBGcmVpemVpY2hlbiBhbSBIYW5keQp2b3JnZXNwaWVsdCwgd28gZHUgcGVyIERUTUYgZGVpbiBlaWdlbnRsaWNoZXMgWmllbCBhbnJ1ZmVuIGthbm5zdC4gU28gemFobHN0CmR1IHouYi4gaW5zIE9ydHNuZXR6IG51ciBkb3BwZWx0ZSBPcnRzZ2VidWVocmVuIChlaW5tYWwgenUgR2VuaW9uIHVuZCBlaW5tYWwKenVtIGVpZ2VudGxpY2hlbiBaaWVsKS4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXV0c2NoZXIgU1BpZWxlLVByZWlzIChNb250YW51cywgIDcuIEp1bCAyMDA1LCAxMTozNzozMSk6CldpZSBpbiBqZWRlbSBKYWhyIGRhcyBnbGVpY2hlIFNwaWVsOiBlcyBnZWh0IHdpZWRlciB1bSBkZW4gZGV1dHNjaGVuClNQaWVsZXByZWlzLgpVbmQgd2llIGluIGplZGVtIEphaHIgZ2lidCBlcyB0b2xsZSBQcmVpc2UgenUgZ2V3aW5uZW4sIHVuZCBpY2ggd2FlcmUgZXVjaApkYW5rYmFyLCB3ZW5uIGlociBkYXMgdG9sbGUgU3BpZWwKCkRhcyBaZXB0ZXIgdm9uIFphdmFuZG9yIHZvbiBMb29rb3V0IEdhbWVzIG1pdCB2aWVsZW4gU3RpbW1lbiBldHdhcyBwdXNoZW4Kd3VlcmRldC4gOy0pCgpodHRwOi8vd3d3Lm1lcnotdmVybGFnLmNvbS9kc3AvcDA0MC5waHA0CgpNZXJjaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV1dXLVNlaXRlbiAoUmFuZ29ybiwgIDkuIEp1bCAyMDA1LCAxMTo1MDo0Nyk6Ck1vaW4sCgpmdWVyIGFsbCBkaWVqZW5pZ2VuLCBkaWUgaW56d2lzY2hlbiBkaWUgSG9mZm51bmcgdmVybG9ocmVuOiBqYSwgZXMgcGFzc2llcnQKbm9jaCB3YXMgYW4gZGVuIFdXVy1TZWl0ZW4gdW5zZXJlcyBzY2hvZW5lbiBNdWRzLiBVbmQgTGV1dGUsIGljaCBicmF1Y2hlIGV1cmUKSGlsZmUuIEFscyBQc2V1ZG8tTGVnYXN0aGVuaWtlciBiaW4gaWNoIGVoZXIgRmFjaG1hbm4gZnVlciBodWVic2NoZSBCaWxkY2hlbi4KS29ycmVrdGUgVW1zZXR6dW5nIGltIFNjaHJpZnRiaWxkIGlzdCBuaWNodCBnZXJhZGUgbWVpbiBGYWNoZ2ViaWV0LiBBbHNvCnN1Y2hldCBzaWUgYml0dGUsIGRpZSBmaWVzZW4gU2NocmVpYi0gdW5kIFRpcGZlaGxlciA6KQoKRGllIFNlaXRlbiBzaW5kIG5vY2ggbmljaHQgdm9sbC1mdW5rdGlvbmFsLiBEaWUgQ0dJLVNjcmlwdGUgc2luZCBub2NoIG5pY2h0CmVpbmdlYnVuZGVuIGJ6dyBub2NoIG5pY2h0IGRhbWl0IGVpbnZlcnN0YW5kZW4sIGF1ZiBkZW0gVHJ2ZXMtU2VydmVyIHp1CmxhdWZlbi4gRXMgZmVobGVuIG5vY2ggaHVlYnNjaGUgQmlsZGNoZW4gdW5kIGRpZSBTdGFydHNlaXRlIGlzdCB6d2FyIHdpcmtsaWNoCnNjaGljaywgYWJlciBuaWNodCBkaXJla3QgenVtIGRlcnplaXRpZ2VuIExheW91dCBwYXNzZW5kLiBEYSB3aXJkIHNpY2ggYWxzbwp3YWhyc2NoZWlubGljaCBub2NoIHdhcyB0dW4uCgpTbyBsb25nLAoKLSBSYW5nb3JuIEtodXInVGlncmVzIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXV1ctU2VpdGVuIChDcm9mdCwgIDkuIEp1bCAyMDA1LCAxMzo0ODoxMCk6Cn4jISBybj1SYW5nb3JuIHJ0PTExMjA5MDI2NDcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTIwOTAyNjQ3CkRlbSBpbnRlbGxpZ2VuIGd1ZXNzIG5hY2ggaXN0IGRpZSBVUkwgZnVlciBkaWUgbmV1ZSBTZWl0ZQpodHRwOi8vd3d3LnRydmVzLmRlL21nLwoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyYXR1bGF0aW9uIE1lZ2FzY2htYXJybiAoTW9udGFudXMsIDE4LiBKdWwgMjAwNSwgMTA6MTY6MTQpOgpEaWUgQmVrbG9wcHRlbiBoYWJlbiBlcyBnZXNjaGFmZnQhIEVpbmUgc2VjaHNzdGVsbGlnZSBBbnphaGwgYW4gQXJ0aWtlbG4gaXN0CmVycmVpY2h0LCB1bmQgWm9vayBpc3Qgc2NodWxkLiBOZWluLCBlaWdlbnRsaWNoIGphIERhbmNlci4gQWJlciB2aWVsbGVpY2h0IGlzdApab29rIGphIERhbmNlcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdydW5kc2F0emtsYWVydW5nIChPZ28sIDEzLiBBdWcgMjAwNSwgMTk6NDM6NDkpOgpTZWhyIGdlZWhydGUgRXJ6bWFnaWVyIHVuZCBHb2V0dGVyLAoKbmFjaGRlbSBzaWNoIG1pciBkaWVzZXIgbmljaHQgYXVmbG9lc2JhcmUgV2lkZXJzcHJ1Y2ggYXVmZHJhZW5ndCwgYml0dGUgaWNoCkV1Y2ggdW0gZWluZSBrbGVpbmUgU3RlbGx1bmduYWhtZSBiZXp1ZWdsaWNoIGRlciBCZW5hY2h0ZWlsaWd1bmcgdm9uClp3ZWl0c3BpZWxlcm4uIAoKSXN0IGRpZSBBdXNzYWdlLCBkYXNzIFp3ZWl0c3BpZWxlciBuaWNodCBiZW5hY2h0ZWlsaWd0IHdlcmRlbiBkdWVyZmVuLApvYnNvbGV0PwoKT2dvLCBLbGFyaGVpdCBoYWJlbiB3b2xsZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3J1bmRzYXR6a2xhZXJ1bmcgKEJyb3RuYWVsLCAxNC4gQXVnIDIwMDUsIDE3OjEwOjQxKToKfiMhIHJuPU9nbyBydD0xMTIzOTU1MDI5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyMzk1NTAyOQpBbHMgWnVzYXR6IHp1IE9nb3MgQXJ0aWtlbCB3dWVyZCBpY2ggYXVmIGRpZSBSZWdsZW1lbnRlIGRlciBLbGVyaWtlciAtCkVybGV1Y2h0ZXRlL0hvaGVwcmllc3RlcnBvc3RlbiBzb3dpZSBhdWYgZGllIFphdWJlcmVyIC0KTWFnaWVyendlaXRpZS1NYWdpc3Rlcnp3ZWlncG9zdGVuIHZlcndlaXNlbi4gRG9ydCB3ZXJkZW4gWndlaXRzcGllbGVyIG1laW5lcwpFcmFjaHRlbnMgYmVuYWNodGVpbGlndCwgYXVjaCBuaWNodCBnYW56IG9obmUgR3J1bmQgKGluIG1laW5lbiBBdWdlbikuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdydW5kc2F0emtsYWVydW5nIChWZWN0b3IsIDE0LiBBdWcgMjAwNSwgMjA6MjY6MjEpOgp+IyEgcm49QnJvdG5hZWwgcnQ9MTEyNDAzMjI0MSByZz1hbnplaWdlbgp+IyEgdGlkPTExMjM5NTUwMjkKb2VobSBiZW5hY2h0ZWlsaWd0PyBtb2VnbGljaCBkYXMgZGFzIGpldHp0IHNvCnp1IHNlaGVuIGlzdCwgd2VpbCB3ZW5pZyBwb3N0ZW4gYmVzZXR6dCBzaW5kLCB6dQpkZXIgZWluZnVlaHJ1bmcgZGllc2VyIHJlZ2VsdW5nIGJlaSBkZW4gemF1YmlzIHdhcgpkYXMgZWluIE1BU1NJVkVSIHZvcnRlaWwgZnVlciBkaWUgbWFnaWVyLXp3ZWl0aWVzLgp6dW0gZWluZW4gZ2FiIGVzIG51ciAyIG9kZXIgMyB6YXViZXItbWFnaXN0ZXIgbWl0CmVpbmVtIG1hZ2llci1lcnN0aWUgenVtIGFuZGVyZW4gc2luZCBkdXJjaCBlYmVuCmRpZXNlIHJlZ2xldW5nIHNwaWVsZXIgbWl0IHJlbGF0aXYgYmVzY2hlaWRlbmVtIGxldmVsCmFuIHBvc3RlbiBnZWtvbW1lbiAoei5iLiBhYndlaHJtYWdpc3Rlcikgdm9uIGRlbmVuCnNpZSBhbHMgIm5vcm1hbGUiIHNwaWVsZXIgbmljaHRtYWwgdHJhZXVtZW4ga29ubnRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpbnRlcmJ1cmctUGFydHkgKE1vbnRhbnVzLCAgNy4gU2VwIDIwMDUsIDE4OjIwOjE4KToKSmEsIGV2dGwgbWFjaGVuIHdpciBhdWNoIHdpZWRlciB1bnNlcmUgTmlrb2xhdXMtRmVpZXIgZG9ydC4gQWJlciB3ZXIgdm9yaGVyCnNjaG9uIG1hbCB3aWVkZXIgaW4gZGVuIEh1bnNyQzxjayB3aWxsOiBpY2ggbGVpdGUgZGllZXNlIE1haWwgaGllciBlaW5mYWNoIG1hbAp3ZWl0ZXIuCi0tLQpTQ0hMT1NTRkVTVCAyMDA1CgpHcm9DZXMgU2NobG9zc2Zlc3QgaW0gU2NodWxsYW5kaGVpbSBXaW50ZXJidXJnIGFtIDE3LiBTZXB0ZW1iZXIgMjAwNSBhYiAxMS4wMApVaHIKCkplZGVzIEphaHIga29tbWVuIGV0d2EgMjAwMCBTY2hDPGxlciB1bmQgYW5kZXJlIEp1Z2VuZGdydXBwZW4gaW4gZGVuIEh1bnNyQzxjawpuYWNoIFdpbnRlcmJ1cmcsIHVtIGluIG5hdHVybmFoZXIgVW1nZWJ1bmcgZWluIHBhYXIKYXVmcmVnZW5kZSBUYWdlIHp1IGVybGViZW4uClNlaXQgMTk4NSBDNmZmbmVuIHdpciBpbSA1LUphaHJlcy1SaHl0aG11cyBhbGxlbiBJbnRlcmVzc2llcnRlbiBiZWltCiJTY2hsb3NzZmVzdCIgdW5zZXJlIFRDPHJlbi4gRGllc2VzIEphaHIgamVkb2NoIGZyZXVlbiB3aXIgdW5zCmVpbiBnYW56IGJlc29uZGVyZXMgSnViaWxDJHVtIGZlaWVybiB6dSBrQzZubmVuOgo1MCBKYWhyZSBTY2h1bGxhbmRoZWltLVZlcmVpbmlndW5nIDE5NTUgTWFpbnogZS5WLgp1bmQKNDUgSmFocmUgU2NodWxsYW5kaGVpbSBXaW50ZXJidXJnCgpBbmxDJHNzbGljaCBkaWVzZXMgSnViaWxDJHVtcyBtQzZjaHRlbiB3aXIgU2llIGhlcnpsaWNoc3QgenVtIGRpZXNqQyRocmlnZW4KU2NobG9zc2Zlc3QgYW0gU2Ftc3RhZywgZGVuIDE3LiBTZXB0ZW1iZXIgZWlubGFkZW4uIERhcyBGZXN0CndpcmQgYWIgMTEuMDAgVWhyIGJpcyBzcEMkdCBpbiBkaWUgTmFjaHQgYXVmIGRlbSBHZWxDJG5kZSBkZXMgU2NodWxsYW5kaGVpbXMKc3RhdHRmaW5kZW4gdW5kIGVpbiBhYndlY2hzbHVuZ3NyZWljaGVzIG11c2lrYWxpc2NoZXMKUmFobWVucHJvZ3JhbW0gYmlldGVuLiBBdWNoIGZDPHIgZGFzIGxlaWJsaWNoZSBXb2hsIHVuc2VyZXIgR0Mkc3RlIHdpcmQKc2VsYnN0dmVyc3RDJG5kbGljaCBnZXNvcmd0IHNlaW4uIERhckM8YmVyIGhpbmF1cyBiaWV0ZW4gd2lyCnZlcnNjaGllZGVuZSBtaXR0ZWxhbHRlcmxpY2hlIFNwaWVsc3RDJG5kZSBzb3dpZSBLaW5kZXJiZXRyZXV1bmcgYW4uCktvbW1lbiB1bmQgc2VoZW4gU2llLCB3aWUgc2VpdCBkZW0gbGV0enRlbiBTY2hsb3NzZmVzdCBpbSBKYWhyZSAyMDAwIHVudGVyCmFuZGVyZW0gZHVyY2ggU3BlbmRlbmdlbGRlciBlaW4gbmV1ZXMgRGFjaCBhdXMgZWNodGVtCkh1bnNyQzxja3NjaGllZmVyIHVuc2VyIHJ1bmQgMjUwIEphaHJlIGFsdGVzIEhhdXB0Z2ViQyR1ZGUgd2llZGVyIHp1IGVpbmVtCmVjaHRlbiBCbGlja2ZhbmcgZ2VtYWNodCBoYXQuIFNjaEM8bGVyIGhhYmVuIGluIGZyZWl3aWxsaWdlcgpBcmJlaXQgaW4gZGVuIGxldHp0ZW4gNSBKYWhyZW4gTUM2YmVsIGdlc2NocmVpbmVydCwgZWluZW4gQnJ1bm5lbiBmcmVpZ2VsZWd0CnVuZCB2aWVsZSB3ZWl0ZXJlIFZlcnNjaEM2bmVydW5nZW4gdm9yZ2Vub21tZW4sIGRpZSB3aXIKSWhuZW4gcHJDJHNlbnRpZXJlbiBtQzZjaHRlbi4KV2lyIHdDPHJkZW4gdW5zIGdsQzxja2xpY2ggc2NoQyR0emVuLCBTaWUgYWxzIEdhc3QgYXVmIHVuc2VyZW0gU2NobG9zc2Zlc3QgaW0KU2NodWxsYW5kaGVpbSBpbiBXaW50ZXJidXJnIGJlZ3JDPENlbiB6dSBkQzxyZmVuISBJaHJlCkZyZXVuZGUgdW5kIEJla2FubnRlbiwgZGllIHVuc2VyIEhhdXMgZ2VybmUgd2llZGVyIHNlaGVuIG9kZXIga2VubmVuIGxlcm5lbgptQzZjaHRlbiwgc2luZCBlYmVuZmFsbHMgaGVyemxpY2ggd2lsbGtvbW1lbi4KCklocmUgU2NodWxsYW5kaGVpbS1WZXJlaW5pZ3VuZyAxOTU1IE1haW56IGUuVi4KCgpXZWl0ZXJlIEluZm9zIHVuZCBlaW5lIEFuZmFocnRzYmVzY2hyZWlidW5nIGZpbmRldCBJaHIgdW50ZXIKd3d3LnNjaHVsbGFuZGhlaW0td2ludGVyYnVyZy5kZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpbnRlcmJ1cmctUGFydHkgKENyb2Z0LCAgNy4gU2VwIDIwMDUsIDE4OjI1OjI2KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTExMjYxMTAwMTggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI2MTEwMDE4CkZ1ZXIgTW9udGFudXMgbm9jaG1hbCBtaXQgbGVzYmFyZW4gVW1sYXV0ZW46CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkphLCBldnRsIG1hY2hlbiB3aXIgYXVjaCB3aWVkZXIgdW5zZXJlIE5pa29sYXVzLUZlaWVyIGRvcnQuIEFiZXIgd2VyIHZvcmhlcgpzY2hvbiBtYWwgd2llZGVyIGluIGRlbiBIdW5zcnVlY2sgd2lsbDogaWNoIGxlaXRlIGRpZWVzZSBNYWlsIGhpZXIgZWluZmFjaCBtYWwKd2VpdGVyLgotLS0KU0NITE9TU0ZFU1QgMjAwNQoKR3Jvc3NlcyBTY2hsb3NzZmVzdCBpbSBTY2h1bGxhbmRoZWltIFdpbnRlcmJ1cmcgYW0gMTcuIFNlcHRlbWJlciAyMDA1IGFiCjExLjAwIFVocgoKSmVkZXMgSmFociBrb21tZW4gZXR3YSAyMDAwIFNjaHVlbGVyIHVuZCBhbmRlcmUgSnVnZW5kZ3J1cHBlbiBpbiBkZW4KSHVuc3J1ZWNrIG5hY2ggV2ludGVyYnVyZywgdW0gaW4gbmF0dXJuYWhlciBVbWdlYnVuZyBlaW4gcGFhciBhdWZyZWdlbmRlClRhZ2UgenUgZXJsZWJlbi4KU2VpdCAxOTg1IG9lZmZuZW4gd2lyIGltIDUtSmFocmVzLVJoeXRobXVzIGFsbGVuIEludGVyZXNzaWVydGVuIGJlaW0KIlNjaGxvc3NmZXN0IiB1bnNlcmUgVHVlcmVuLiBEaWVzZXMgSmFociBqZWRvY2ggZnJldWVuIHdpciB1bnMgZWluIGdhbnoKYmVzb25kZXJlcyBKdWJpbGFldW0gZmVpZXJuIHp1IGtvZW5uZW46CjUwIEphaHJlIFNjaHVsbGFuZGhlaW0tVmVyZWluaWd1bmcgMTk1NSBNYWlueiBlLlYuCnVuZAo0NSBKYWhyZSBTY2h1bGxhbmRoZWltIFdpbnRlcmJ1cmcKCkFubGFlc3NsaWNoIGRpZXNlcyBKdWJpbGFldW1zIG1vZWNodGVuIHdpciBTaWUgaGVyemxpY2hzdCB6dW0gZGllc2phZWhyaWdlbgpTY2hsb3NzZmVzdCBhbSBTYW1zdGFnLCBkZW4gMTcuIFNlcHRlbWJlciBlaW5sYWRlbi4gIERhcyBGZXN0IHdpcmQgYWIgMTEuMDAKVWhyIGJpcyBzcGFldCBpbiBkaWUgTmFjaHQgYXVmIGRlbSBHZWxhZW5kZSBkZXMgU2NodWxsYW5kaGVpbXMgc3RhdHRmaW5kZW4KdW5kIGVpbiBhYndlY2hzbHVuZ3NyZWljaGVzIG11c2lrYWxpc2NoZXMgUmFobWVucHJvZ3JhbW0gYmlldGVuLiAgQXVjaCBmdWVyCmRhcyBsZWlibGljaGUgV29obCB1bnNlcmVyIEdhZXN0ZSB3aXJkIHNlbGJzdHZlcnN0YWVuZGxpY2ggZ2Vzb3JndCBzZWluLgpEYXJ1ZWJlciBoaW5hdXMgYmlldGVuIHdpciB2ZXJzY2hpZWRlbmUgbWl0dGVsYWx0ZXJsaWNoZSBTcGllbHN0YWVuZGUgc293aWUKS2luZGVyYmV0cmV1dW5nIGFuLiAgS29tbWVuIHVuZCBzZWhlbiBTaWUsIHdpZSBzZWl0IGRlbSBsZXR6dGVuIFNjaGxvc3NmZXN0CmltIEphaHJlIDIwMDAgdW50ZXIgYW5kZXJlbSBkdXJjaCBTcGVuZGVuZ2VsZGVyIGVpbiBuZXVlcyBEYWNoIGF1cyBlY2h0ZW0KSHVuc3J1ZWNrc2NoaWVmZXIgdW5zZXIgcnVuZCAyNTAgSmFocmUgYWx0ZXMgSGF1cHRnZWJhZXVkZSB3aWVkZXIgenUgZWluZW0KZWNodGVuIEJsaWNrZmFuZyBnZW1hY2h0IGhhdC4gIFNjaHVlbGVyIGhhYmVuIGluIGZyZWl3aWxsaWdlciBBcmJlaXQgaW4gZGVuCmxldHp0ZW4gNSBKYWhyZW4gTW9lYmVsIGdlc2NocmVpbmVydCwgZWluZW4gQnJ1bm5lbiBmcmVpZ2VsZWd0IHVuZCB2aWVsZQp3ZWl0ZXJlIFZlcnNjaG9lbmVydW5nZW4gdm9yZ2Vub21tZW4sIGRpZSB3aXIgSWhuZW4gcHJhZXNlbnRpZXJlbiBtb2VjaHRlbi4KV2lyIHd1ZXJkZW4gdW5zIGdsdWVja2xpY2ggc2NoYWV0emVuLCBTaWUgYWxzIEdhc3QgYXVmIHVuc2VyZW0gU2NobG9zc2Zlc3QKaW0gU2NodWxsYW5kaGVpbSBpbiBXaW50ZXJidXJnIGJlZ3J1ZXNzZW4genUgZHVlcmZlbiEgSWhyZSBGcmV1bmRlIHVuZApCZWthbm50ZW4sIGRpZSB1bnNlciBIYXVzIGdlcm5lIHdpZWRlciBzZWhlbiBvZGVyIGtlbm5lbiBsZXJuZW4gbW9lY2h0ZW4sCnNpbmQgZWJlbmZhbGxzIGhlcnpsaWNoIHdpbGxrb21tZW4uCgpJaHJlIFNjaHVsbGFuZGhlaW0tVmVyZWluaWd1bmcgMTk1NSBNYWlueiBlLlYuCgpXZWl0ZXJlIEluZm9zIHVuZCBlaW5lIEFuZmFocnRzYmVzY2hyZWlidW5nIGZpbmRldCBJaHIgdW50ZXIKd3d3LnNjaHVsbGFuZGhlaW0td2ludGVyYnVyZy5kZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV2ludGVyYnVyZy1QYXJ0eSAoWm9vaywgIDcuIFNlcCAyMDA1LCAyMToyMTowOSk6Cn4jISBybj1BbG1kdWRsZXIgcnQ9MTEyNjEyMDY4MyByZz1hbnplaWdlbgp+IyEgdGlkPTExMjYxMTAwMTgKaXN0IGRhcyBkZXIgZnVzc3dlZyB2b24gbWFpbnogenVyIHdpbnRlcmJ1cmc/Cgp6b29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2ludGVyYnVyZy1QYXJ0eSAoQWxtZHVkbGVyLCAgNy4gU2VwIDIwMDUsIDIxOjIyOjA3KToKfiMhIHJuPVpvb2sgcnQ9MTEyNjEyMDg2OSByZz1hbnplaWdlbgp+IyEgdGlkPTExMjYxMTAwMTgKbmVlLCBkZXIgV2VnIHZvbSBQYXJrcGxhdHogenVtIEtsbyBuYWNoIGRlciBlaW4gb2RlciBhbmRlcmVuIE1hc3MuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdpbnRlcmJ1cmctUGFydHkgKEtlbGx5YnVuZHksICA3LiBTZXAgMjAwNSwgMjI6MDc6MDIpOgp+IyEgcm49Wm9vayBydD0xMTI2MTIwODY5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyNjExMDAxOApEdSBtZWluc3QgZGVuIGJlcnVlaG10ZW4gdW5kIGFsbHNlNGl0cyBiZWthbm50ZW4gQmFyZnVzc3BmYWQuIHNldWZ6LiB1bmQgZGVyCmJlZ2lubnQgZXJzdCBpbiBCYWQgS3JldXpuYWNoIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5rdW5mdCBkZXIgS2FtcGZ6d2VyZ2luIFJhbmEgaW0gTW9yZ2VuR3JhdWVuIChNZXNpcmlpLCAxNS4gU2VwIDIwMDUsIDIzOjI1OjQxKToKCldhcyBzb2xsIGRhIHNjaG9uIHJhdXNrb21tZW4sIHdlbm4gc2ljaCBlaW4gQ2hhb3N6d2VyZyB1bmQgZWluIEthZW1wZmVyaW4KenVzYW1tZW50dW4gdW5kIE5hY2h3dWNocyB6ZXVnZW4/IE5hdHVlcmxpY2ggZWluZSBrbGVpbmVyIEthbXBmendlcmdpbiwgZGllIGltCkNoYW9zIGdlYm9yZW4gd3VyZGUuCgpTbyBnZXNjaGVoZW4gaGV1dGUsIGRlbSAxNS4wOS4yMDA1IHVtIDEyOjMxIGltIFN0LiBKb3NlcGgtU3RpZnQgKEtsZXJpa2VyCmluZmlsdHJhdGlvbiEpIHp1IERyZXNkZW4sIHdvIFJhbmEgRWxpc2FiZXRoIHp3YXIgbGFuZyBlcndhcnRldCBhYmVyCnVudmVyaG9mZnQgZGFzIGdyZWxsZSBMaWNodCwgZGVyIGxhdXRlbiwgc2Nod2VyZ2V3aWNodGlnZW4gV2VsdCBlcmJsaWNrdGUuCgpFaWdlbnRsaWNoIHNvbGx0ZSBkaWUganVuZ2UgRGFtZSBudXIgbWl0IGRlbSBLb3BmIG5hY2ggdW50ZW4gZ2VkcmVodCB3ZXJkZW4sCndhcyBsYXV0IEF1c3NhZ2UgZGVyIFF1YWNrc2FsYmVyIGluIGRlbiBsZXR6dGVuIDEwIEphaHJlbiBhdWNoIG51ciAyIG1hbApzY2hpZWYgZ2VnYW5nZW4gaXN0LCBkLmguIHp1bSBBdWZzY2hsaXR6ZW4gZGVzIEJhdWNoZXMgZGVyIE11dHRlciB6dW0gWndlY2sKZGVyIEtpbmRzZW50bmFobWUgZnVlaHJ0ZS4KCkRlbiBEcmVodmVyc3VjaGVuIHdpZGVyc2V0emUgc2ljaCBkZXIgU3R1cmtvcGYgbmF0dWVybGljaCwgZnVlciBzaWUgd2FyIGRhcwplaGVyIGVpbiBuZXVlcyBTcGllbCwgYW4gZGVtIHNpZSB2aWVsIFNwYXNzIGhhdHRlIChQdWxzIG5haGV6dSB1bnZlcmFlbmRlcnQKdW5kIGtyYWVmdGlnZSBUcml0dGUgZnVlciBkZW4gQXJ6dCkuIE5hY2hkZW0gc2llIGRhcyBuYWNoIDIgVmVyc3VjaGVuCmF1ZmdlZ2ViZW4gaGF0dGVuLCB3YXIgTWFoYXJldCBmYXN0IHNjaG9uIHNvIHdlaXQgenVyIEJlb2JhY2h0dW5nIGF1ZiBkaWUKV29jaGVuYmV0dHN0YXRpb24genUgZ2VoZW4gKFJvdXRpbmUpLiBOdXIgdmVyd2FuZGVsdGUgc2ljaCBkYXMgYW5mYWVuZ2xpY2hlClNjaG1pZXJibHV0ZW4gYmFsZCBpbiBlaW5lbiBzdGFlcmtlcmVuIFN0cm9tIHJvdC1nZWxiZXIgRmx1ZXNzaWdrZWl0ZW4uIERpZQpKdW5ncyBoYXR0ZW4gaW4gaWhyZW0gRWlmZXIgbWl0IFJhbmEgenUgc3BpZWxlbiwgd29obCBldHdhcyB1ZWJlcnRyaWViZW4gdW5kCmRlbiBGcnVjaHRibGFzZW4tQmFsbG9uIHp1bSBQbGF0emVuIGdlYnJhY2h0LgoKT2huZSBGcnVjaHRibGFzZSBibGVpYnQgYWJlciBrZWluIEtpbmQgaW0gQmF1Y2ggLSBkYXMgaXN0IHNvLiBBbHNvIHdpcmQgZXMKcmF1c2dlaG9sdC4gRXMgZ2luZyBwbG9ldHpsaWNoIGFsbGVzIGdhbnogc2NobmVsbC4gS3VyemUgQXVma2xhZXJ1bmcgdWViZXIKUmlzaWtlbiB1bmQgTmFya29zZS0gdGVjaG5pa2VuLCBJbnRpbXJhc3VyIHVuZCBVbXppZWhlbiBmdWVyIGRlbiBPUC4gRGFubiBsYWcKTWFoYXJldCBhdWNoIHNjaG9uIHBhcmFseXNpZXJ0IHVudGVyIGRlbSBNZXNzZXIgdW5kIG5hY2ggc2Nob24gZnVlbmYgTWludXRlbgp3YXIgZGVyIGVyc3RlIEthbXBmc2NocmVpIGRlciBrbGVpbmVuIFp3ZXJnaW4genUgdmVybmVobWVuLgoKTmFjaCBlaW5lbSBrdXJ6ZW4gV2lsbGtvbW1lbnNrdXNjaGVsbiBnaW5nIGVzIGFuIGRpZSBXdW5kdmVyc29yZ3VuZyBkZXIKTXV0dGVyLCBkaWUgZnVlciBLaW5kIHVuZCBWYXRlciB6dSBsYW5nd2VpbGlnIHdhci4gRGllc2UgdmVydHJpZWJlbiBzaWNoIGRpZQpaZWl0IG1pdCBkZW0gZXJzdGVuIEtlbm5lbmxlcm5lbiwgZGFzcyBkYW5uIGFiZXIgcmlnZXJvcyBkdXJjaCBkYXMKVW50ZXJicmluZ2VuIGRlcyBad2VyZ2VuYmFiaWVzIGluIGVpbmVtIHdhcm1lbiBHbGFzc2FyZyB1bnRlcmJyb2NoZW4gd3VyZGUuCkhhYmVuIHNpZSBkaWUgZG9jaCBnbGF0dCBtaXQgU2NobmVlLSB3aXR0Y2hlbiB2ZXJ3ZWNoc2VsdC4gS2FlbXBmZXJpbm5lbgpmYWNrZWxuIGphIHp1bSBHbHVlY2sgbmljaHQgbGFuZ2UsIHVuZCBzbyBrb25udGUga3VyeiBuYWNoIEFua3VuZnQgZGVyCnNjaHdlcnZlcmxldHp0ZW4sIGFiZXIgZ3V0IHp1c2FtbWVuZ2VuYWVodGVuIE11dHRlciBkaWUgS2xlaW5lIHdpZWRlciBrdXNjaGVsbgprb21tZW4uCgpOYWNoIGRlbSBVbXp1ZyBhdWYgZGllIFp3ZXJnZW5raW5kZXJzdGF0aW9uIHd1cmRlIGVyc3RtYWwgYXVzZ2llYmlnIGdla3VzY2hlbHQKdW5kIGdlc2NobGFmZW4uIFNwYWV0ZXIgZGFubiBQcmVzc2V0ZXJtaW4gbWl0IGRlbiBlcnN0ZW4gQXVmemVpY2hudW5nZW4gZnVlcgpkaWUgT2VmZmVudGxpY2hrZWl0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYWVtcGZlcmlubmVuIHVudGVyIHNpY2ggKE1lc2lyaWksIDE1LiBTZXAgMjAwNSwgMjM6MjY6MjUpOgpodHRwOi8vd3d3Lm1haGFyZXQub3JnL2JpbGRlci9yYW5hCk1lc2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKE9nbywgMTYuIFNlcCAyMDA1LCAwMzo1MDozMyk6Cn4jISBybj1NZXNpcmlpIHJ0PTExMjY4MTk1NDEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI2ODE5NTQxClZvbiBtaXIgYWxsZXMgR3V0ZSB1bmQgaGVyemxpY2hlbiBHbHVlY2t3dW5zY2ggOi0pCgpPZ28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKE1pZXplLCAxNi4gU2VwIDIwMDUsIDEwOjQwOjA4KToKfiMhIHJuPU1lc2lyaWkgcnQ9MTEyNjgxOTU0MSByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKCkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIHVuZCBhbGxlcyBHdXRlIGZ1ZXIgRXVjaCBkcmVpIQoKTWllemUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKEJhbWJ1bGtvLCAxNi4gU2VwIDIwMDUsIDEwOjQ0OjA0KToKfiMhIHJuPU1lc2lyaWkgcnQ9MTEyNjgxOTU0MSByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKVm9uIG1pciBhdWNoIGFsbGVzIEd1dGUgdW5kIGhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoLiBIYXQgamEgc2Nob24gdmllbGUgSGFhcmUKYXVmIGRlbSBLb3BmLi4uCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFua3VuZnQgZGVyIEthbXBmendlcmdpbiBSYW5hIGltIE1vcmdlbkdyYXVlbiAoUnVtYXRhLCAxNi4gU2VwIDIwMDUsIDExOjM1OjU3KToKfiMhIHJuPU1lc2lyaWkgcnQ9MTEyNjgxOTU0MSByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKR1JBVFMhISEhITExZWluc2VsZgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKEFudGhlYSwgMTYuIFNlcCAyMDA1LCAxMTo0MTo1Myk6Cn4jISBybj1SdW1hdGEgcnQ9MTEyNjg2MzM1NyByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKU2llaHQgamEgYXVmIGRlbiBlcnN0ZW4gQmxpY2sgZ2FueiBuZXR0IGF1cyA6KQpBbHNvIGhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQW5rdW5mdCBkZXIgS2FtcGZ6d2VyZ2luIFJhbmEgaW0gTW9yZ2VuR3JhdWVuIChIdW1uaSwgMTYuIFNlcCAyMDA1LCAxMzo0MjoxOSk6Cn4jISBybj1BbnRoZWEgcnQ9MTEyNjg2MzcxMyByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKSm8sIGhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIGF1Y2ggbm9jaG1hbCBoaWVyIQoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEFua3VuZnQgZGVyIEthbXBmendlcmdpbiBSYW5hIGltIE1vcmdlbkdyYXVlbiAoQ2hhZ2FsbCwgMTYuIFNlcCAyMDA1LCAxNDozNDo1Mik6Cn4jISBybj1IdW1uaSBydD0xMTI2ODcwOTM5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyNjgxOTU0MQpEZW4gZ2FuemVuIEdsdWVja3d1ZW5zY2hlbiBzY2hsaWVzcyBpY2ggbWljaCBkYW5uIG1hbCBhbi4gOikKCk1DCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKERhcmtsb3IsIDE2LiBTZXAgMjAwNSwgMTc6MjE6MzUpOgp+IyEgcm49Q2hhZ2FsbCBydD0xMTI2ODc0MDkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyNjgxOTU0MQpDb25HcmF0cyEKCkRhcmtsb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEFua3VuZnQgZGVyIEthbXBmendlcmdpbiBSYW5hIGltIE1vcmdlbkdyYXVlbiAoR3JpbW1ib3JuLCAxNi4gU2VwIDIwMDUsIDE3OjU5OjI4KToKfiMhIHJuPURhcmtsb3IgcnQ9MTEyNjg4NDA5NSByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKT2ZmZW5iYXIgYnJhdWNodHMgaGllciBlaW5lIGVpZ2VuZSBSdWJyaWsgImdsdWVja3d1ZW5zY2hlIi4gQWJlciBtYW4gc2llaHQsCmRhcyBEb3BwZWxraW5uIHdpcmQgb2ZmZW5iYXIgdWViZXIgZGllIHdlaWJsaWNoZSBMaW5pZSB2ZXJlcmJ0Li4uIDstKSBHZW5pZXNzCm5vY2ggZGllIGxldHp0ZSBaZWl0IGluIGRlciBEdSBkdXJjaHNjaGxhZmVuIGthbm5zdCwgYmV2b3IgZGllIERhbWVuIGF1cyBkZW0KS3JhbmtlbmhhdXMga29tbWVuIQoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKE9ya3RvZXRlciwgMTYuIFNlcCAyMDA1LCAxODo0NToyOCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTEyNjg4NjM2OCByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKRGFubiBhdWNoIHZvbiBtaXIgbm9jaCBlaW5lbiBoZXJ6bGljaGVuIEdsdWVja3d1bnNjaCwgd2VubiBkaWUgTWVsZHVuZyBqYSBhdWNoCmVpZ2VudGxpY2ggZWluIEZlaGxtZWxkdW5nIGlzdDoKClJhbmEgaXN0IG5pY2h0IGFud2VzZW5kLgpadWxldHp0IGVpbmdlbG9nZ3Qgdm9uOiBNYXJidXJnLgpadWxldHp0IGF1c2dlbG9nZ3Q6IERvbiwgMTMuIEFwciAxOTk1LCAxNDo1NjozNiAoMzgwOWQgMDM6NDY6NDIpLgpWb2xsZXIgTmFtZTogUmFuYSBkZXIgV2FsZGxhZXVmZXIKUmFzc2U6IEVsZiwgIEdpbGRlOiBBYmVudGV1cmVyLCAgR2VzY2hsZWNodDogbWFlbm5saWNoCkFsdGVyOiAxZCAwMjozODowNCwgICBTcGllbGVybGV2ZWw6IDMKRGF0dW0gZGVzIGVyc3RlbiBMb2dpbjogdm9yIGRlbSAxMC4gTm92IDE5OTUKQmlzaGVyIGJlcmVpdHMgMSBtYWwgZ2VzdG9yYmVuCgpPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFua3VuZnQgZGVyIEthbXBmendlcmdpbiBSYW5hIGltIE1vcmdlbkdyYXVlbiAoUm9hZHJ1bm5lciwgMTYuIFNlcCAyMDA1LCAxOTozMjozNyk6Cn4jISBybj1NZXNpcmlpIHJ0PTExMjY4MTk1NDEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI2ODE5NTQxCgpBdWNoIGhlcnpsaWNoZSBHbHVlY2t3dWVuc2NoZSBhbiBhbGxlIEJldGVpbGlndGVuIHVuZCBndXRlIEJlc3NlcnVuZyBhbiAgICAgICAKTWFoYXJldC4gRGFzcyBkaWUga2xlaW5lIERhbWUgc28genVmcmllZGVuIGF1c3NpZWh0IGhhdCBiZXN0aW1tdCBldHdhcwpkYW1pdCB6dSB0dW4sIGRhc3Mgc2llIGVyZm9sZ3JlaWNoIGRlbiBhbnN0cmVuZ2VuZGVuIFRlaWwgZnVlciBzaWNoCnNlbGJzdCB2ZXJtZWlkZW4ga29ubnRlIC4uLiA7bykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKClJSCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFua3VuZnQgZGVyIEthbXBmendlcmdpbiBSYW5hIGltIE1vcmdlbkdyYXVlbiAoUGVyZGl0YSwgMTYuIFNlcCAyMDA1LCAxOTo0MzoxMSk6Cn4jISBybj1Sb2FkcnVubmVyIHJ0PTExMjY4OTE5NTcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI2ODE5NTQxCmF1Y2ggd2VubidzIHNpY2ggbGFuZ3NhbSBiaXNzY2hlbiB3aWVkZXJob2x0OiBhdWNoIHZvbiBtaXIgaGVyemxpY2hlCkdsdWVja3d1ZW5zY2hlIHVuZCBhbGxlcyBHdXRlIGZ1ZXIgZXVjaCBkcmVpIQpQZXJkaXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKFZhbmhlbHNpbmcsIDE2LiBTZXAgMjAwNSwgMTk6NTM6NTIpOgp+IyEgcm49UGVyZGl0YSBydD0xMTI2ODkyNTkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyNjgxOTU0MQpJY2ggYmluIGphIGRhZnVlciwgZGFzcyAiUmFuYSBkZXIgV2FsZGxhZXVmZXIiIG5hY2ggdWViZXIgMTAgSmFocmUgbmljaHQKb25saW5lIHdpZWRlciBmcmVpZ2VnZWJlbiB3aXJkLiBBYmVyIGljaCBiaW4gamEgcGFydGVpaXNjaCB1bmQgZGFzIGlzdCBuaWNodAptb2VnbGljaC4KVHJvdHpkZW0uCgpWSApPbmtlbCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQW5rdW5mdCBkZXIgS2FtcGZ6d2VyZ2luIFJhbmEgaW0gTW9yZ2VuR3JhdWVuIChWYW5oZWxzaW5nLCAxNi4gU2VwIDIwMDUsIDIwOjA0OjAyKToKfiMhIHJuPVZhbmhlbHNpbmcgcnQ9MTEyNjg5MzIzMiByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKT2suIFVtIG5vY2htYWwgbWVpbmUgTWVpbnVuZyBrbGFyenVzdGVsbGVuLiBEYSBSYW5hIGRlciBXYWxkbGFldWZlciBzZWl0IHVlYmVyCjEwIEphaHJlbiBuaWNodCBvbmxpbmUgd2FyLCBzb2xsdGUgZGVyIE5hbWUgZnVlciBNVUQtTmFjaHd1Y2hzIGZyZWlnZW1hY2h0CndlcmRlbi4KCkljaCBob2ZmZSwgZGFzIGlzdCBqZXR6dCBkZXV0bGljaGVyLgoKQ1UKVkgKaW1tZXJub2NoIE9ua2VsClAuUy4gRGFuayBhbiBHbG9pbnNvbiB1bmQgTWFydGluYSBmdWVyIGRlbiBIaW53ZWlzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogQW5rdW5mdCBkZXIgS2FtcGZ6d2VyZ2luIFJhbmEgaW0gTW9yZ2VuR3JhdWVuIChDcm9mdCwgMTYuIFNlcCAyMDA1LCAyMDowNzozOCk6Cn4jISBybj1WYW5oZWxzaW5nIHJ0PTExMjY4OTM4NDIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI2ODE5NTQxCkljaCB3dWVyZCBzYWdlbiwgZGFzcyBQcm9ibGVtIHdpcmQgZXJzdCBpbiBlaW5pZ2VuIEphaHJlbiBha3V0LiAgU29sYW5nCnd1ZXJkIGljaCBSYW5hIG5vY2ggZGllIENoYW5jZSBnZWJlbiBzaWNoIGhpZXIgd2llZGVyIGVpbnp1bG9nZ2VuICwtKQoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEFua3VuZnQgZGVyIEthbXBmendlcmdpbiBSYW5hIGltIE1vcmdlbkdyYXVlbiAoSmFkYXdpbiwgMTYuIFNlcCAyMDA1LCAyMToxODo0Nyk6Cn4jISBybj1Dcm9mdCBydD0xMTI2ODk0MDU4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyNjgxOTU0MQpJY2ggaG9mZmUgbnVyLCBkYXMgS2luZCBrb21tdCBzcGFldGVyIG5pY2h0IGF1ZiBkaWUgSWRlZSwgc2ljaCBpbiBJdGFsaWVuIG9kZXIKU3BhbmllbiBuaWVkZXJ6dWxhc3Nlbi4uLgpBY2ggdW5kIEdyYXRzIG5hdHVlcmxpY2ghCkphZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbmt1bmZ0IGRlciBLYW1wZnp3ZXJnaW4gUmFuYSBpbSBNb3JnZW5HcmF1ZW4gKENhc3NhbmRyYSwgMjAuIFNlcCAyMDA1LCAxNjowNjo1MSk6Cn4jISBybj1NZXNpcmlpIHJ0PTExMjY4MTk1NDEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI2ODE5NTQxCkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIHVuZCBhbGxlcyBHdXRlIGZ1ZXIgTXV0dGVyIHVuZCBLaW5kCiBDYXNzeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogQW5rdW5mdCBkZXIgS2FtcGZ6d2VyZ2luIFJhbmEgaW0gTW9yZ2VuR3JhdWVuIChNYWhhcmV0LCAyMS4gU2VwIDIwMDUsIDE3OjAyOjQ4KToKfiMhIHJuPUphZGF3aW4gcnQ9MTEyNjg5ODMyNyByZz1hbnplaWdlbgp+IyEgdGlkPTExMjY4MTk1NDEKRG9ydCwgdW5kIGF1Y2ggaW4gUnVzc2xhbmQsIGthbm4gc2llIHNpY2ggamEgRWxpc2FiZXRoIChpbiB3ZWxjaGVyIEFid2FuZGx1bmcKYXVjaCBpbW1lcikgbmVubmVuIGxhc3Nlbi4gRGFmdWVyIGhhYmVuIHdpciBpaHIgZXh0cmEgendlaSBOYW1lbiBnZWdlYmVuIDspCgpEYW5rZSBmdWVyIGRpZSB2aWVsZW4gR2x1ZWNrd3VlbnNjaGUuCgpNYWhhLCBNaWxjaGt1aAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogQW5rdW5mdCBkZXIgS2FtcGZ6d2VyZ2luIFJhbmEgaW0gTW9yZ2VuR3JhdWVuIChHcmltbWJvcm4sIDIxLiBTZXAgMjAwNSwgMTc6MTE6MzQpOgp+IyEgcm49TWFoYXJldCBydD0xMTI3MzE0OTY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEyNjgxOTU0MQpOYWphLCBpaHIga29lbm50IGphIGltbWVyIG5vY2ggaG9mZmVuIGRhc3Mgc2ljaCBhdWYgZGVtIE1hcmdhcmluZW1hcmt0IG5vY2gKd2FzIGJld2VndCBiaXMgZGllIEtsZWluZSBpbiBkaWUgU2NodWxlIGtvbW10LiAKCkdkQSBzaW5ndCAiSGFyZSBSYW5hLCBIYXJlIEtyaXNobmEsIEhhcmUgSGFyZSwgUmFuYSBSYW5hLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXQgdm9uIEdvbGRjYXQgdW5kIFBhcmt1ci4gKEdyaW1tYm9ybiwgMTkuIE9rdCAyMDA1LCAyMjoyNjozNyk6Cn4jISBvbj1Hb2xkY2F0IG90PTExMjk3NTMwNDYgb2c9YWxsZ2VtZWluZXMKRWlubGFkdW5nIEhpZXJtaXQgZ2ViZW4gd2lyIGFsbGVuIGRpZSBlcyB3aXNzZW4gd29sbGVuICwgdW5kIGF1Y2ggZGVuZW4gZGllIGVzCm5pY2h0IGludGVyZXNzaWVydCBiZWthbm50IDogYW0gRnJlaXRhZyB1bSAyMVVociBncm9zc2VzIHRyZWZmZW4gS2F0em1hbmR1IERvbQpXYXJ1bT8gR2FueiBlaW5mYWNoLCBHb2xkY2F0IHVuZCBQYXJrdXIgd2FnZW4gZGVuIFNjaHJpdHQgdW5kIGxhc3NlbiBzaWNoCnRyYXVlbi4gV2VyIHVucyBkYWJlaSB1bnRlcnN0dWV0emVuIHdpbGwgLSBvZGVyIGF1Y2ggbm9jaCBkZW4gdmVyc3VjaCBzdGFydGVuCnVucyBlaW5lcyBiZXNzZXJlbiB6dSBiZWxlaHJlbiBpc3QgaGVyemxpY2ggZGF6dSBlaW5nZWxhZGVuCkdlc2NoZW5rZSBzaW5kIGVyd3VlbnNjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9jaHplaXQgdm9uIEdvbGRjYXQgdW5kIFBhcmt1ci4gKEdyaW1tYm9ybiwgMTkuIE9rdCAyMDA1LCAyMjoyNjo0NSk6Cn4jISBvbj1CcmFuIG90PTExMjk3NTMyMDkgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPUdvbGRjYXQgcnQ9MTEyOTc1MzA0NiByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTExMjk3NTMwNDYKV2llIHNjaG9lbiwgZ3JhdHVsaWVyZSBldWNoIGJlaWRlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhvY2h6ZWl0IHZvbiBHb2xkY2F0IHVuZCBQYXJrdXIuIChQYXJrdXIsIDIxLiBPa3QgMjAwNSwgMTk6NDI6MjYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTExMjk3NTM1OTcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTI5NzUzNTk3ClZlcmVocnRlIEdhZXN0ZSBkZXIgaGV1dGlnZW4gSG9jaHplaXQuCkF1ZmdydW5kIGVpbmVzIHdpY2h0aWdlbiBUcmVmZmVucyBkZXIgS2xlcmlrZXItR2V3ZXJrc2NoYWZ0IHdpcmQgdW5zZXIgS2xlcmkKc2ljaAplaW4gd2VuaWcgdmVyc3BhZXRlbiB1bmQgc29taXQgYXVjaCB1bnNlcmUgSG9jaHplaXQgZXJzdCB1bSAyMiBVaHIKc3RhdHRmaW5kZW4uCldpciBob2ZmZW4gdHJvdHpkZW0gYXVmIGVpbiB6YWhscmVpY2hlcyBFcnNjaGVpbmVuIDspIGRlciBNdWRiZXZvZWxrZXJ1bmcgdW5kCmhvZmZlbiwgbW9lZ2xpY2hzdCBWaWVsZSBpbSBGZWxzZW5kb20gaW4gS2F0em1hbmR1IGFuenV0cmVmZmVuLgoKUGFya3VyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5lIE5hbWVuc2FlbmRlcnVuZyBpbSBadWdlIHJpdHVlbGxlciBBa3RlLi4uIChMYXJpbmEsIDMxLiBEZXogMjAwNSwgMTU6NDA6NTQpOgoKRWluZSBOYW1lbnNhZW5kZXJ1bmcgaW0gWnVnZSByaXR1ZWxsZXIgQWt0ZSB0cmFlZ3QKZGFmdWVyIFZlcmFudHdvcnR1bmcsIGRhc3Mgc2ljaCBCZWxkYXJhbiBDYXJhIHZvbQpnZXN0cmlnZW4gTWl0dGFnIGFuIEJlbGRhcmFuIEJhbWJpIG5lbm5lbiBkYXJmLiBXYXMKc2ljaCBpbSBlbnRzcHJlY2hlbmRlbiBVbml2ZXJzdW0gc2VociB3b2hsa2xpbmdlbmQKYW5ob2VydC4KCkxhcmluYSB1bmQgQW5hdG9sIGtvZW5uZW4ncyBiZXpldWdlbiA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW5lIE5hbWVuc2FlbmRlcnVuZyBpbSBadWdlIHJpdHVlbGxlciBBa3RlLi4uIChNYWhhcmV0LCAgNC4gSmFuIDIwMDYsIDE2OjIxOjAxKToKfiMhIHJuPUxhcmluYSBydD0xMTM2MDQwMDU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTEzNjA0MDA1NApOdW4gaGFidCBJaHIgc2Nob24gYW4gc28gdmllbGVuIEhvY2h6ZWl0ZW4gdGVpbGdlbm9tbWVuIC4uLiB3YW5uIHJ1ZWNrdCBJaHIKZGVubiBlbmRsaWNoIG1hbCBpbiBkZW4gTWl0dGVscHVua3QgZWluZXI/IDspCgpNYWhhLCBtaXQgR3JhdHVsYXRpb25zZ3J1ZXNzZW4gYW4gZGllIFJlaGZhbWlsaWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVlYmVycmVnaW9uYWxlIFdlcmJ1bmcgZnVlciBNVURzIChHbG9pbnNvbiwgMTUuIE1hciAyMDA2LCAxNToxNzo1MCk6CkhhbGxvLAptaXQgZGVyIFRhdHNhY2hlLCBkYXNzIHVuc2VyIGFsbGVyIE1VRHMgdW50ZXIgU3BpZWxlcnNjaHd1bmQgbGVpZGVuIGhhdCBzaWNoCnNpY2hlciBzY2hvbiBkZXIgZWluZSBvZGVyIGFuZGVyZSBiZXNjaGFlZnRpZ3QuCkxldHp0emVpdCB3aXJkIGRhcyBQcm9ibGVtIGFrdXRlciB1bmQgYWxsZSB3ZXJkZW4gZWluIHdlbmlnIGhpYmJlbGlnLgoKRGFyYXVzIHJlc3VsdGllcmVuZCBnaWJ0IGVzCihhKSBlaW5lIERpc2t1c3Npb24gdW50ZXIgZGUuYWx0Lm11ZCBtaXQgZGVtIFJlc3VsdGF0LCBkYXNzIFRwaGVpQEZpbmFsCiAgICBzaWNoIGFuZmFlbmd0IHVtIGRhcyBBdWZwb2xpZXJlbiB2b24gaHR0cDovL3d3dy5tdWQuZGUgenUga3VlbW1lcm4sCiAgICBkaWUgZXR3YXMgc3RhdGlzY2hlcmUgTVVELVdlcmJlc2VpdGUgaW0gTmV0egooYikgZWluIFdpa2kgdm9uIE1lc2lyaWkgKG11ZEBtZXNpcmlpLmRlKSB1bnRlciBodHRwOi8vbXVkZGVyLmluZm8sCiAgICBpbiBkZW0gZ3Jhc3d1cnplbGlnIEluZm9ybWF0aW9uZW4gdW5kIEhpbGZlbiB6dXNhbW1lbmdldHJhZ2VuCiAgICB3ZXJkZW4gc29sbGVuLCB1QSB3ZWlsIGluIFdpa2lwZWRpYSBMaXN0ZW4gdm9uIE1VRHMgdW5kIFNwaWVsZGV0YWlscwogICAgbmljaHQgc28gZXJ3dWVuc2NodCBzaW5kCgpEYXMgR2FuemUgd2lyZCBuaWNodCBzb2ZvcnQgdW5kIGpldHp0IHVuZCBtb3JnZW4gZmVydGlnIHVuZCBpbiBCZXN0Zm9ybQpzZWluLiBCZWhhbHRldCBlcyBlaW5mYWNoIG1hbCBpbSBBdWdlLiBXZW5uIGVpbmVyIHZvbiBldWNoIG1hbCBMdXN0IHVuZApaZWl0IGhhdCwga2FubiBlciBzaWNoIGphIGJlaSBlaW5lbSBkZXIgVGVpbHByb2pla3RlIGJldGVpbGlnZW4uCkF1ZiBsYW5nZSBTaWNodCB3YWVyZSBlcyB2aWVsbGVpY2h0IGF1Y2ggZ2FyIG5pY2h0IHNjaGxlY2h0LCB3ZW5uIHNpY2gKZWluZXIgdm9uIGV1Y2ggaGllciBkZW4gSHV0IGRhZnVlciBhdWZzZXR6dCwgc2VpbiBNVUQgenUgdmVydHJldGVuIC0Kd2llIHpCIGF1Y2ggYmVpIGh0dHA6Ly93d3cubXVkY29ubmVjdG9yLmNvbS4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpqdXJpc3RlbiBmdWVycyBtZyBnZXN1Y2h0ISAoQWxib2luLCAyMy4gQXByIDIwMDYsIDE2OjI2OjMwKToKT3JpZ2luYWw6Cmh0dHA6Ly93d3cubWcubXVkLmRlL1BhcnR5L1BhcnR5LjQvZm90b3MubmljaHRzL2JpbGQxMi5qcGcKRmFlbHNjaHVuZzoKaHR0cDovL3d3dy5zcGllZ2VsLmRlL2ltZy8wLDEwMjAsNjE0NDI2LDAwLmpwZwoKTGFuZ3NhbSBzb2xsdGVuIHdpciBtYWwgZWluZSBSZWNodHNhYnRlaWx1bmcgYXVmYmF1ZW4sIGZpbmRldCBpaHIgbmljaHQgYXVjaD8KCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdGVsZWZvbm51bW1lcm4gKEFsYm9pbiwgMjYuIEFwciAyMDA2LCAwMjowNTo0OSk6CkljaCB3b2xsdGUgbWFsIGZyYWdlbiwgb2Igc28gd2llIGZydWVoZXIgaW1tZXIgbm9jaCBDRCdzIG1pdCBzYWVtdGxpY2hlbmUKVGVsZWZvbm51bW1lcm4gRGV1dHNjaGxhbmRzIGt1cnNpZXJlbi4gQWxzbyB3byBhdWNoIFRlbGVmb25udW1tZXJuIGRyaW5uIHNpbmQKZGllIG1hbiBuaWNodCBpbSBUZWxlZm9uYnVjaCBmaW5kZXQuCkRhIGpldHp0IGF1Y2ggc2ljaGVyIExldXRlIHdpc3NlbiB3b2xsZW4gd2FzIGljaCBlaWdlbnRsaWNoIGRhbWl0IGFuc3RlbGxlbgp3aWxsLCBoaWVyIGRpZSBBbnR3b3J0LiBXaXIgd29sbGVuIGVpbiBLbGFzc2VudHJlZmZlbiBvcmdhbmlzaWVyZW4gdW5kIGVpbgpwYWFyIExldXRlIGhhYmVuIHdpciBub2NoIG5pY2h0IGF1Zmdlc3B1ZXJ0LiBVbmQgamEsIGljaCB3ZWlzcyBkYXMgZXMKc3RheWZyaWVuZHMgZ2lidC4uLgoKR3J1ZXNzZSBBbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHRlbGVmb25udW1tZXJuIChSb25kYSwgMjYuIEFwciAyMDA2LCAyMzoyNjoxNik6Cn4jISBybj1BbGJvaW4gcnQ9MTE0NjAwOTk0OSByZz1hbnplaWdlbgp+IyEgdGlkPTExNDYwMDk5NDkKLi4uIHVuZCBlcyBnaWJ0IE9wZW5CQy4gVW5kIEdvb2dsZS4gSXN0IHZlcm11dGxpY2ggZXJmb2xndmVyc3ByZWNoZW5kZXIgYWxzCmVpbmUgYWx0ZSBUZWxlZm9uLUNELgoKUm9uZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogdGVsZWZvbm51bW1lcm4gKEtudXJwcywgMjcuIEFwciAyMDA2LCAxNDoxNTo0MSk6Cn4jISBybj1Sb25kYSBydD0xMTQ2MDg2Nzc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE0NjAwOTk0OQpBbSBiZXN0ZW4gaXN0IGVzIHdvaGwsIHdlbm4gbWFuIGplbWFuZGVuIGJlaSBkZXIgUG9saXplaSBrZW5udC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogdGVsZWZvbm51bW1lcm4gKEdyaW1tYm9ybiwgMjcuIEFwciAyMDA2LCAxNDoyMTowNCk6Cn4jISBybj1LbnVycHMgcnQ9MTE0NjE0MDE0MSByZz1hbnplaWdlbgp+IyEgdGlkPTExNDYwMDk5NDkKSmEsIHVuZCB3ZW5uIGRlciBEaXIgaGlsZnQgdW5kIGRhcyBrb21tdCByYXVzLCBkYW5uIGthbm4gbWFuIGdlbXVldGxpY2gKYmVvYmFjaHRlbiB3aWUgc2NobmVsbCBhdWNoIEJlYW10ZSBnZWZldWVydCB3ZXJkZW4ga29lbm5lbi4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiB0ZWxlZm9ubnVtbWVybiAoS251cnBzLCAyNy4gQXByIDIwMDYsIDE0OjI1OjMyKToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMTQ2MTQwNDY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE0NjAwOTk0OQpEdSBibGVpYnN0IGJlc3RpbW10IGF1Y2ggYWxzIEZ1c3NnYWVuZ2VyIGFuIGVpbmVyIHJvdGVuIEFtcGVsIHN0ZWhlbi4uLiBhY2gKbGFzc2VuIHdpciBkYXMuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHRlbGVmb25udW1tZXJuIChCYW1idWxrbywgMjcuIEFwciAyMDA2LCAxNDoyNjoxMik6Cn4jISBybj1LbnVycHMgcnQ9MTE0NjE0MDczMiByZz1hbnplaWdlbgp+IyEgdGlkPTExNDYwMDk5NDkKV2VubiBBdXRvcyBrb21tZW4sIGJsZWliZSBpY2ggYXVjaCBiZWkgcm90IHN0ZWhlbi4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiB0ZWxlZm9ubnVtbWVybiAoQ3JvZnQsIDI3LiBBcHIgMjAwNiwgMTQ6Mjg6NTApOgp+IyEgcm49S251cnBzIHJ0PTExNDYxNDA3MzIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTQ2MDA5OTQ5CkJlaWRlcyBzaW5kIE9yZG51bmdzd2lkcmlna2VpdGVuPwoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IHRlbGVmb25udW1tZXJuIChHcmltbWJvcm4sIDI3LiBBcHIgMjAwNiwgMTQ6Mzg6MTMpOgp+IyEgcm49Q3JvZnQgcnQ9MTE0NjE0MDkzMCByZz1hbnplaWdlbgp+IyEgdGlkPTExNDYwMDk5NDkKS251cnBzIHNjaGVpbnQgZGllc2VyIEFuc2ljaHQgenUgc2Vpbi4gV2VubiBlciBkYW5hY2ggbGVidCB3aXJmdCBzZWluIEFydGlrZWwKbnVyIG5vY2ggZWluZSBGcmFnZSBhdWY6IFNlaXQgd2FubiBnaWJ0cyBpbSBLaXR0Y2hlbiBJbnRlcm5ldHp1Z2FuZz8gCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHRlbGVmb25udW1tZXJuIChLZWxseWJ1bmR5LCAzMC4gQXByIDIwMDYsIDE4OjA2OjUwKToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMTQ2MTQwNDY0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE0NjAwOTk0OQpvZGVyIFBhcmtzdWVuZGVyIGF1ZnNjaHJlaWJlbi4KSXN0IG5lbSBEb3JmYnVsbGVuIGluIGRlbSBLdWhrYWZmIGF1cyBkZW0gaWNoIGtvbW1lLCBwYXNzaWVydC4gSGF0IGRpZSBmYWxzY2hlCkZyYXUgZ2Vwb3BwdCwgdW5kIGRlciBnZWhvZXJudGUgRWhlbWFubiB3dXNzdGUgX3NlaHJfIGludGVyZXNzYW50ZSBTYWNoZW4KdWViZXIgZGVzIEVyc3RlcmVuIEFtdHNmdWVocnVuZyB6dSBlcnphZWhsZW4gOy0pCgpHZWhvZXJ0IG5pY2h0IHdpcmtsaWNoIHp1bSBUaGVtYSwgZmllbCBtaXIgYWJlciBnZXJhZGUgbWFsIHNvIGVpbiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyaWxscGxhdHogKE1pZXplLCAyMi4gTWFpIDIwMDYsIDA4OjUwOjE1KToKSGFsbG8genVzYW1tZW4sCgptb2VjaHRlIGplbWFuZCB6dWZhZWxsaWcgYW0gMjQuNi4gKFNhbXN0YWcpIGluIEVzc2VuIGluIGRlciBHcnVnYSBncmlsbGVuPyBJY2gKaGFiZSBlaW5lbiBHcmlsbHBsYXR6IHJlc2VydmllcnQgdW5kIGJpbiBkYSB2ZXJoaW5kZXJ0LiBMZWlkZXIga2FubiBtYW4gdm9uCmRlbSBWZXJ0cmFnIG5pY2h0IHp1cnVlY2t0cmV0ZW4uIFBsYXR6IGlzdCBmdWVyIGNhLiAzMC00MCBMZXV0ZSwgZXMgZ2VoZW4gYXVjaAp3ZW5pZ2VyLgoKTWllemUgLSBncmlsbHQgZGllc2VzIEphaHIgbWFsIG5pY2h0IGluIGRlciBHcnVnYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY29jYSBjb2xhIGNvZGVzIChBbGJvaW4sICA1LiBKdW4gMjAwNiwgMjE6NTE6MDEpOgpKbyB3ZWlsIG1pY2ggZGFzIFdNLUZpZWJlciBnZXBhY2t0IGhhdCB1bmQgaWNoIG5pY2h0IGVpbmUgS2FydGUgZnVlciBkaWUKRnVzc2JhbGwtV00gZXJzdGVoZW4ga29ubnRlLCB3aWxsIGljaCBkaWUgbGV0enRlIE1vZWdsaWNoa2VpdCB3YWhybmVobWVuIHVuZApiZWkgQ29jYSBDb2xhIG1pdCBkZW4gQ29kZXMgbWVpbiBHbHVlY2sgdmVyc3VjaGVuLiBXZXIgYWxzbyBkaWVzZXMgR2V0cmFlbmsKdmVydGlsZ3QgYWJlciBrZWluZSBMdXN0IGRhcmF1ZiBoYXQgZGllIENvZGVzIGVpbnp1bG9lc2VuLCBkZXIgbWFnIGJpdHRlIGJpdHRlCmJpdHRlIHdlbmlnc3RlbnMgc28gZmxlaXNzaWcgc2VpbiB1bmQgc2llIG1pciBzY2hpY2tlbi4gClZpZWxlbiBEYW5rCkFsClAuUy4gSmEgYW4gUm9jaHVzIGhhYmUgaWNoIHNjaG9uIGdlc2NocmllYmVuLCBhYmVyIGVyIGhhdCBtaXIgbm9jaCBuaWNodApnZWFudHdvcnRldCA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBjb2NhIGNvbGEgY29kZXMgKEtlbGx5YnVuZHksICA1LiBKdW4gMjAwNiwgMjM6Mzc6MjYpOgp+IyEgcm49QWxib2luIHJ0PTExNDk1MzcwNjEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTQ5NTM3MDYxCkFoIER1IGdsYXVic3QgYW4gZGVuIFdlaWhuYWNodHNtYW5uIG9kZXIgYW4gZGVuIEtsYXBwZXJzdG9yY2ggb2RlciBzY2hsaW1tZXIKbm9jaCwgZGFyYW4sIGRhc3MgZGFzIEdsdWVjayBhdWNoIG1hbCBhdWYgZGVuIGtsZWluZW4gSGF1ZmVuIG1hY2h0PyAqR0cqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWNoZSBTdG9jaGFzdGlrLUNoZWNrZXIgKEppbWRpZ3JpeiwgMTIuIEp1bCAyMDA2LCAxNDoxMjozNik6Ck1vaW4sCmljaCBzdWNoZSBqZW1hbmRlbiBkZXIgbWlyIGRpdmVyc2UgRGluZ2UgaW4gQmV6dWcgYXVmCktvbmZpZGVuemludGVydmFsbGUgZXJrbGFlcmVuIGthbm4uIEluc2Jlc29uZGVyZSwgd2FubiBkYWJlaQpkaWUgIlN0dWRlbnQncyB0LVZlcnRlaWx1bmciIGFuZ2V3ZW5kZXQgd2VyZGVuIGthbm4sIHdpZSBtYW4KZGllIEdyb2Vzc2UgZWluZXIgU3RpY2hwcm9iZSBiZXN0aW1tZW4ga2FubiwgYXVjaCB3ZW5uIG1hbiBrZWluZXJsZWkKSW5mb3JtYXRpb24gdWViZXIgZGllIFN0YW5kYXJkYWJ3ZWljaHVuZyBrZW5udCwgZXRjLgoKVmVybXV0bGljaCBLaW5kZXJrcmFtIGZ1ZXIgTGV1dGUgdm9tIEZhY2guCgpXZXIgc2ljaCBiZXJ1ZmVuIGZ1ZWhsdCBiaXR0ZSBhbSBiZXN0ZW4gZWluZSBNYWlsCnNjaGlja2VuLCBkYW1pdCBtYW4gd2FzIHZlcmVpbmJhcmVuIGthbm4uIEJpbiBoaWVyCm1laXN0IG5pY2h0IHNlaHIgYXVmbWVya3NhbS4KCkRhbmtlICYgQ2lhbywKIEpkRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGV1dHNjaGVyIFNwaWVsZXByZWlzIC0gbnVyIG5vY2ggYmlzIGhldXRlIChNb250YW51cywgMTQuIEF1ZyAyMDA2LCAwOToyNToyNSk6CldlciBub2NoIG5pY2h0IGZ1ZXIgZGVuIGRldXRzY2hlbiBTcGllbGVwcmVpcyBhYmdlc3RpbW10IGhhdDogZGFzIGdlaHQgbm9jaApiaXMgaGV1dGUgYXVmIHd3dy5kZXV0c2NoZXItc3BpZWxlcHJlaXMuZGUgLiBNYW4ga2FubiBGcmVpa2FydGVuIGZ1ZXIgZGllClNQaWVsZW1lc3NlIGdld2lubmVuIHBsdXMgZWluaWdlIFNhY2hwcmVpc2UuIEljaCBrYW5uIG1pY2ggZXJpbm5lcm4sIGRhc3MgZGllcwppbmRlbiBsZXR6dGVuIEphaGVuIGF1Y2ggc2hjb24gZWluaWdlbiBNdWRkZXJuIHdpZGVyZmFocmVuIGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvc3Rlbmxvc2UgTWFpbGFkcmVzc2UgZ2VzdWNodCAoSHVtbmksIDE4LiBEZXogMjAwNiwgMDk6Mjg6NDYpOgpIdWh1LAoKZGEgbWVpbmUgZGVyemVpdGVpZ2UgTWFpbGFkcmVzc2UgZGVtbmFlY2hzdCBuaWNodCBtZWhyIGZ1bmt0aW9uaWVyZW4gd2lyZCB1bmQKaWNoIGRhcnVtIGF1ZiBkaWUgTmFjaGZvbGdlb3JnYW5pc2F0aW9uIGtlaW5lIEx1c3QgaGFiZSAoZGEgaWNoIGViZW4gbmljaHQKYWxsZSBwYWFyIEphaHJlIGRlbiBTdHJlc3MgZWluZXIgbmV1ZW4gTWFpbGFkcmVzc2UgaGFiZW4gd2lsbCkgc3VjaGUgaWNoIGVpbmVuCmtvc3Rlbmxvc2VuIFByb3ZpZGVyLiBXZWIuZGUgd2lyYnQgZGFtaXQsIFRlc3RzaWVnZXIgYmVpIENvbXB1dGVyLUJpbGQgenUKc2VpbiwgZGFydW0gbWFnIGljaCBkaWUgbmljaHQuIEhhdCBqZW1hbmQgZWluZW4gZ3V0ZW4gVGlwPwoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLb3N0ZW5sb3NlIE1haWxhZHJlc3NlIGdlc3VjaHQgKE9nbywgMTguIERleiAyMDA2LCAxMjo1NjowMyk6Cn4jISBybj1IdW1uaSBydD0xMTY2NDMwNTI2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE2NjQzMDUyNgpHbWFpbCwgd2VubiBkdSBrZWluIFByb2JsZW0gZGFtaXQgaGFzdCwga29udGV4dGJlem9nZW5lIFdlcmJ1bmcgenUgZGVpbmVuCk1haWxzIHp1IHNlaGVuLi4uIERhcyBJbnRlcmZhY2UgaXN0IFZvcmJpbGQgZnVlciBWaWVsZSB1bmQgaWNoIGtlbm5lIApuaWVtYW5kZW4sIGRlciBkYW1pdCAgdW56dWZyaWVkZW4gaXN0LiBGYWxscyBkdSBlaW5lIEVpbmxhZHVuZyBicmF1Y2hzdCwgc2FnCmJlc2NoZWlkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLb3N0ZW5sb3NlIE1haWxhZHJlc3NlIGdlc3VjaHQgKEJhbWJ1bGtvLCAxOC4gRGV6IDIwMDYsIDEzOjAxOjMyKToKfiMhIHJuPU9nbyBydD0xMTY2NDQyOTYzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE2NjQzMDUyNgpKYSwgZ21haWwga2FubiBpY2ggYXVjaCBudXIgZW1wZmVobGVuLgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEtvc3Rlbmxvc2UgTWFpbGFkcmVzc2UgZ2VzdWNodCAoR2xvaW5zb24sIDE4LiBEZXogMjAwNiwgMTQ6MjI6MjkpOgp+IyEgcm49QmFtYnVsa28gcnQ9MTE2NjQ0MzI5MiByZz1hbnplaWdlbgp+IyEgdGlkPTExNjY0MzA1MjYKWWFob28gb2RlciBHTVguIE9kZXIga2FubiBHTWFpbCBpbnp3aXNjaGVuIFBvcC9JbWFwPyBFcyBzZWksIGR1IGthbm5zdCBkYW1pdApsZWJlbiBOVVIgdWViZXIgZGFzIFdlYmludGVyZmFjZSBsZXNlbiB1bmQgc2NocmVpYmVuIHp1IGtvZW5uZW4uIFdhcyB6QgpTaWduaWVyZW4gYXVjaCBldHdhcyBlcnNjaHdlcnQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS29zdGVubG9zZSBNYWlsYWRyZXNzZSBnZXN1Y2h0IChHcnVtcGYsIDE4LiBEZXogMjAwNiwgMTQ6MjQ6MzgpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTE2NjQ0ODE0OSByZz1hbnplaWdlbgp+IyEgdGlkPTExNjY0MzA1MjYKTW9pbnNlbiwKamEsIEdtYWlsIGthbm4gaW56d2lzY2hlbiBQT1AzIHVuZCB3aXJkIGF1Y2ggdm9uIFByb2dnaXMgd2llIFRyaWxsaWFuIGd1dAp1bnRlcnN0dWV0enQuCk1mRwpHcnVtcGYKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEtvc3Rlbmxvc2UgTWFpbGFkcmVzc2UgZ2VzdWNodCAoR2xvaW5zb24sIDE4LiBEZXogMjAwNiwgMTQ6Mjc6MzQpOgp+IyEgcm49R3J1bXBmIHJ0PTExNjY0NDgyNzggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTY2NDMwNTI2Ckp1aHV1ISBEYW5uIGlzdCBtZWluIEFjY291bnQgZG9jaCBlbmRsaWNoIHNpbm52b2xsIG51dHpiYXIgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCb2huYW56YS1GYW5zIGF1ZmdlcGFzc3QgKE1vbnRhbnVzLCAgOC4gTWFpIDIwMDcsIDE4OjI0OjI4KToKV2VubiBpY2ggbWljaCBuaWNodCB0YWV1c2NoZSwgaXN0IGRhcyBCb2huZW5zcGllbCBhdWNoIGJlaSBNdWRkZXJuIGltbWVyIGdlcm5lCmdlc2VoZW4uIFdlciBlaW5pZ2VybWEvM2VuIHplaWNobmVuIGthbm4sIGhhdCBqZXR6dCBkaWUgQ2hhbmNlbSwgc2ljaAp1bnN0ZXJibGljaCB6dSBtYWNoZW4uCkZ1ZXIgZWluZSBTb25kZXJlZGl0aW9uIGRlcyBiYXNpc3NwaWVscyBzdWNodCBMb29rb3V0IEdhbWVzIG5hZW1saWNoIDEwNAp2ZXJzY2hpZWRlbmUgQm9obmVuOiA2IEdhcnRlbmJvaG5lbiwgOCByb3RlIEJvaG5lbiwgMTAgQXVnZW5ib2huZW4gdXN3LgpHZW5hdWVyZXMgKHVuZCBkZWkgUmFobWVuIHp1bSBkb3dubG9hZGVuKSBmaW5kZXQgbWFuIGF1ZiBkZXIgVmVybGFnc2hvbWVwYWdlCnd3dy5sb29rb3V0LWdhbWVzLmRlLCBkZXIgRWluc2VuZGVzY2hsdXNzIGlzdCBkZXIgMzEuTWFpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lyIGhhYmVuIGVzICh3aXJrbGljaCkgZ2V0YW4gOikgKEFuYXRvbCwgMTAuIFNlcCAyMDA3LCAxODozOToxNSk6CgpEaWUgRWxzdGVybiBwZmVpZmVuIGVzIHZlcm11dGxpY2ggc2Nob24gYXVzIGRlbSBHbG9ja2Vud2FsZCwKYWJlciB0cm90emRlbSwgZGVyIEZvcm0gdW5kIFZvbGxzdGFlbmRpZ2tlaXQgaGFsYmVyIG9mZml6aWVsbDoKCkxhcmluYSBrYW0gdW50ZXIgZGllIEhhdWJlLgpBbmF0b2wga2FtIHVudGVyIGRlbiBQYW50b2ZmZWwuCgpTb3dlaXQgaWNoIHdlaXNzIHNpbmQgd2lyIGJlaWRlIGdsdWVja2xpY2guIDopCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxJVkUgaW4gY29uY2VydCEgKEhpZ2hsYW5kZXIsIDEzLiBTZXAgMjAwNywgMTU6MjM6NTUpOgpEYXMgRXJlaWduaXMgZGVzIEphaHJlcyEKCkVybGViZW4gU2llIEFudGhlYSwgSGlnaGxhbmRlciwgWmlydW5lbEBXdW5kZXJsYW5kIHNvd2llIHp3ZWkgd2VpdGVyZQpNdXNpa2VyIChiencuIGVpbmUgTXVzaWtlcmluIHVuZCBlaW5lbiBCYXNzaXN0ZW4pIGhhdXRuYWghCgpJcmlzaCBNaXN0IHRyaXR0IGV4a2x1c2l2IGF1ZiAtCkZyZWl0YWcsIDEyLiBPa3RvYmVyIDIwMDcsIEFuZmFuZyB2ZXJtdXRsaWNoIDIwOjMwaAppbiBkZXIgS2xhdXNlIGRlcyBDVkpNIGluIEVybGFuZ2VuLApTdWVkbGljaGUgU3RhZHRtYXVlcnN0cmFzc2UgMjEuCgpXaXIgc3BpZWxlbiB0cmFkaXRpb25lbGxlIGlyaXNjaGUgTXVzaWssIG1pdCBlaW4gcGFhciBrbGVpbmVuCkVpbnNjaGxhZWdlbiBhdXMgYW5kZXJlbiBHZWdlbmRlbi4gV2VyIEludGVyZXNzZSBoYXQsIGlzdApoZXJ6bGljaCB3aWxsa29tbWVuLgoKVW5kIHVudGVuIGluIGRlciBLbGF1c2UgZ2lidCdzIGF1Y2ggd2FzIHp1IHRyaW5rZW4gb2RlcgplaW5lbiBIYXBwZW4genUgZXNzZW4uCgpIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMSVZFIGluIGNvbmNlcnQhIChCb2luZywgMTMuIFNlcCAyMDA3LCAxNTozOTo1MSk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTExODk2ODk4MzUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTg5Njg5ODM1CkJhc3Npc3RlbiBzaW5kIGtlaW5lIE11c2lrZXI/IDspCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTElWRSBpbiBjb25jZXJ0ISAoQW50aGVhLCAxMy4gU2VwIDIwMDcsIDE1OjQyOjM2KToKfiMhIHJuPUJvaW5nIHJ0PTExODk2OTA3OTEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMTg5Njg5ODM1CkdlbmF1LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpciBoYWJlbiBlcyAod2lya2xpY2gpIGdldGFuIDopIChNYWhhcmV0LCAxMy4gU2VwIDIwMDcsIDIxOjIxOjEzKToKfiMhIHJuPUFuYXRvbCBydD0xMTg5NDQyMzU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE4OTQ0MjM1NQpOYSBlbmRsaWNoIQpIZXJ6bGljaGVuIEdsdWVja3d1bnNjaCBFdWNoIGJlaWRlbi4gTGllYmV0IHVuZCB2ZXJtZWhyZXQgRXVjaC4KV2lyIGVyd2FydGVuIHJlZ2VsbWFlc3NpZ2UgQmVyaWNodGUgOykKCk1haGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaXIgaGFiZW4gZXMgKHdpcmtsaWNoKSBnZXRhbiA6KSAoQXp6dXJvLCAyNy4gU2VwIDIwMDcsIDIwOjUwOjI3KToKfiMhIHJuPUFuYXRvbCBydD0xMTg5NDQyMzU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTE4OTQ0MjM1NQpIZXJ6bGljaGVuIEdsY2t3dW5zY2ggaWhyIGJlaWRlbiEhISoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWhhcmV0IGhhdCBzb2ViZW4gZWluIEFiZW50ZXVlciBiZXN0YW5kZW4uIChNZXNpcmlpLCAgNC4gTWFpIDIwMDgsIDAwOjQyOjMwKToKW0FiZW50ZXVlcjpRdWVzdF0gTWFoYXJldCBoYXQgc29lYmVuIGVpbiBBYmVudGV1ZXIgYmVzdGFuZGVuLiA8MDMuMDUuMjAwOAowODo0MD4KW0FiZW50ZXVlcjpRdWVzdF0gQmVmcmVpZSBkaWUgWndlcmdlbnRvY2h0ZXIgU2VsbWEuIDwwMy4wNS4yMDA4IDA4OjQwPgpbQWJlbnRldWVyOlF1ZXN0XSBTaWUgYmVub2V0aWd0ZSBkYXp1IDI2IFN0dW5kZW4gdW5kIDQwIE1pbnV0ZW4sIGRhbWl0IGlzdCBzaWUKW0FiZW50ZXVlcjpRdWVzdF0gemllbWxpY2ggZmVydGlnLgpbQWJlbnRldWVyOlF1ZXN0XSBTZWxtYSBlcnJlaWNodGUgMzIwMCBHcmFtbSB1bmQgNDcgY20uCltBYmVudGV1ZXI6U2VsbWFdIEhpZXIgaXN0IGVzIGFiZXIga2FsdCwgbGF1dCwgaGVsbCwgdHJvY2tlbi4gVW5kIHdhcnVtIGJpbgppY2gKW0FiZW50ZXVlcjpTZWxtYV0gcGxvZXR6bGljaCBzbyBzY2h3ZXIgdW5kIHdhcyBpc3QgZGFzIGthbHRlIFpldWcgaW4KW0FiZW50ZXVlcjpTZWxtYV0gbWVpbmVuIEx1bmdlbj8gSWNoIHdpbGwgenVydWVjayEgT2RlciB3YXMgenUgdHJpbmtlbi4KW0RlYnVnOkthZW1wZmVyXSAic2NobWVyemVuIiA1MDAlIGplbnNlaXRzIGRlcyBNYXgtU2tpbGxzLCByZWR1emllcmUgYXVmIDEwMCUuCltEZWJ1ZzpLYWVtcGZlcl0gImthbXBmc2NocmVpIiA1MDAlIGplbnNlaXRzIGRlcyBNYXgtU2tpbGxzLCByZWR1emllcmUgYXVmCjEwMCUKW1RydmVzOiBCcmllc2VsdHJpbV0gTWFoYXJldCBoYXQgaWhyZSBGYWhpZ2tlaXRlbiBTY2htZXJ6ZW4gdW5kIEthbXBmc2NocmVpIApbVHJ2ZXM6IEJyaWVzZWx0cmltXSBhdWYgamVuc2VpdGVzIHZvbiBhYnNvbHV0IHBlcmZla3QgZ2VicmFjaHQuIEd1dCBnZW1hY2h0LgpbQWJlbnRldWVyOk1haGFyZXRdIEZyZWNoZSBHb2VyZSwgZGllIGlzdCBqYSB3aWUgUmFuYS4KW01hc3Rlcjo8TGluaz5dIGh0dHA6Ly9zZWxtYS1tYXJnYXJldGhlLmRlIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1haGFyZXQgaGF0IHNvZWJlbiBlaW4gQWJlbnRldWVyIGJlc3RhbmRlbi4gKEd3ZW4sICA0LiBNYWkgMjAwOCwgMDg6MTg6NDMpOgp+IyEgcm49TWVzaXJpaSBydD0xMjA5ODU0NTUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApHcmF0dWxhdGlvbiB1bmQgYWxsZXMgR3V0ZSEKR3dlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWhhcmV0IGhhdCBzb2ViZW4gZWluIEFiZW50ZXVlciBiZXN0YW5kZW4uIChLZXNzYSwgIDQuIE1haSAyMDA4LCAwOTo1NToxNCk6Cn4jISBybj1NZXNpcmlpIHJ0PTEyMDk4NTQ1NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwCn4KV2llIHNjaG9lbiEgR3JhdHVsaWVyZSBEaXIgenUgRGVpbmVtIEFiZW50ZXVlciwgTWFoYXJldCwgdW5kIGRlbQpad2VyZ2Vua29lbmlnLCBkZXIgc2VpbmUgVG9jaHRlciBqZXR6dCBlbmRsaWNoICh3aWVkZXIpaGF0LCBlYmVuc28gOikKCktlc3NhLCBtaXQgZWluZW0gYnJlaXRlbiBmcm9laGxpY2hlbiBHcmluc2VuIGF1ZiBkZW0gR2VzaWNodAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1haGFyZXQgaGF0IHNvZWJlbiBlaW4gQWJlbnRldWVyIGJlc3RhbmRlbi4gKENoYWdhbGwsICA0LiBNYWkgMjAwOCwgMTE6MDI6MjUpOgp+IyEgcm49TWVzaXJpaSBydD0xMjA5ODU0NTUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApIZXJ6bGljaGVuIEdsdWVja3d1bnNjaCB1bmQgYWxsZXMgR3V0ZSEKCk1DCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFoYXJldCBoYXQgc29lYmVuIGVpbiBBYmVudGV1ZXIgYmVzdGFuZGVuLiAoQmFtYmksICA0LiBNYWkgMjAwOCwgMTI6NTQ6MzcpOgp+IyEgcm49TWVzaXJpaSBydD0xMjA5ODU0NTUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApHcmF0cyBhdWNoIHZvbiBCZWxkYXJhbiB1bmQgbWlyLgpXdXNzdGUgZ2FyIG5pY2h0LCBkYXNzIFJhbmEgVm9yc2l0emVuZGUgbWVpbmVzIEZhbmNsdWJzIGlzdC4gOykKCkJhbWJpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNYWhhcmV0IGhhdCBzb2ViZW4gZWluIEFiZW50ZXVlciBiZXN0YW5kZW4uIChaZXNzdHJhLCAgNC4gTWFpIDIwMDgsIDE5OjAzOjQzKToKfiMhIHJuPUNoYWdhbGwgcnQ9MTIwOTg5MTc0NSByZz1hbnplaWdlbgp+IyEgdGlkPTEyMDk4NTQ1NTAKSWNoIHNjaGxpZXNzZSBtaWNoIGRlbiBHbHVlY2t3dWVzY2hlbiBkYW5uIGF1Y2ggbWFsIGFuOiBIZXJ6bGljaGVuCkdsdWVja3d1bnNjaCEgOi0pCkljaCB3dWVuc2NoIGV1Y2ggKHVuZCBzcGV6aWVsbCBTZWxtYSB6dSBpaHJlbSBHZWJ1cnRzdGFnKSBhbGxlcyBHdXRlIQpCVFc6IEhhYnQgaWhyIFNlbG1hIHNjaG9uIGdlc2FndCwgc2llIHNvbGwgc2ljaCBuaWNodCBiZWkgYWxsZW0gc292aWVsIFplaXQKbmVobWVuIHdpZSB6dSBpaHJlciBHZWJ1cnQ/IDstKQoKWmVzc3RyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWFoYXJldCBoYXQgc29lYmVuIGVpbiBBYmVudGV1ZXIgYmVzdGFuZGVuLiAoTWFoYXJldCwgIDQuIE1haSAyMDA4LCAxOTo0NTozNik6Cn4jISBybj1aZXNzdHJhIHJ0PTEyMDk5MjA2MjMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwClZpZWxlbiBEYW5rIGZ1ZXIgZGllIGd1dGVuIFd1ZW5zY2hlLgpTZWxtYSBsYWVzc3Qgc2ljaCBhbGxlcmRpbmdzIG5pY2h0IGJlaSBhbGxlbSBzbyB2aWVsIFplaXQuIEluc2Jlc29uZGVyZSB3YXMKZGFzIFN0aWxsZW4gYW5nZWh0LCBoYXQgc2llIG1pY2ggamV0enQgc2Nob24gd3VuZGdlc2F1Z3QuIFJhbmEgaGF0dGUgbWlyIGRhCmRldXRsaWNoIGxhZW5nZXIgWmVpdCBnZWxhc3NlbiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1haGFyZXQgaGF0IHNvZWJlbiBlaW4gQWJlbnRldWVyIGJlc3RhbmRlbi4gKFJvYWRydW5uZXIsICA0LiBNYWkgMjAwOCwgMjA6NTg6MDgpOgp+IyEgcm49TWVzaXJpaSBydD0xMjA5ODU0NTUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApXZWlhIC0gYW5zdHJlbmdlbmQgLi4uIHVuZCB0YXBmZXIgZHVyY2hnZXN0YW5kZW4uLi4uIApKZWRlbmZhbGxzIGFsbGVzIEd1dGUgdW5kIHZpZWwgU3Bhc3MgbWl0IGRlbiBNYWVkZWxzLgpNYW4gbXVua2VsdCwgZGllIGVyemllaGVuIHNpY2ggaXJnZW5kd2FubiBmYXN0IHZvbiBzZWxic3QgLi4uIFdvYmVpIG1laW4KU3RpZWZ2YXRlciBtaXQgc2VpbmVuIDMgRGFtZW4gc2ljaGVyIHNvIHNlaW5lIGRhdm9uIGFid2VpY2hlbmRlbiBTdG9yaWVzCmVyemFlaGxlbiBkdWVyZnRlLgo7KQpSUgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1haGFyZXQgaGF0IHNvZWJlbiBlaW4gQWJlbnRldWVyIGJlc3RhbmRlbi4gKE9ya3RvZXRlciwgIDQuIE1haSAyMDA4LCAyMzoxOTo0OSk6Cn4jISBybj1NZXNpcmlpIHJ0PTEyMDk4NTQ1NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwCkdyYXRzIGF1Y2ggdm9uIG1pciEKCkJlcm5kLgoKUFM6IEVzIGdpYnQgbm9jaCBrZWluZW4gQ2hhciAiU2VsbWEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1haGFyZXQgaGF0IHNvZWJlbiBlaW4gQWJlbnRldWVyIGJlc3RhbmRlbi4gKEVubm94LCAgNC4gTWFpIDIwMDgsIDIzOjIxOjI1KToKfiMhIHJuPU9ya3RvZXRlciBydD0xMjA5OTM1OTg5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApEYW5rZQpNZXNpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYWhhcmV0IGhhdCBzb2ViZW4gZWluIEFiZW50ZXVlciBiZXN0YW5kZW4uIChSdW1hdGEsICA1LiBNYWkgMjAwOCwgMDk6MTk6NDUpOgp+IyEgcm49RW5ub3ggcnQ9MTIwOTkzNjA4NSByZz1hbnplaWdlbgp+IyEgdGlkPTEyMDk4NTQ1NTAKTWl0IGV0d2FzIG1laHIgVWVicnVuZyBiZWtvbW10IGlociBhdWNoIHNpY2hlciBub2NoIGVpbmVuIG1hZW5ubGljaGVuCkthbXBmemVyd2VnIGhpbi4KCkxpZWJlIGdydWVzc2UgdW5kIEdyYXRzISBSdW1hdGEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFoYXJldCBoYXQgc29lYmVuIGVpbiBBYmVudGV1ZXIgYmVzdGFuZGVuLiAoWm9vaywgIDUuIE1haSAyMDA4LCAxMDoyMTozOSk6Cn4jISBybj1NZXNpcmlpIHJ0PTEyMDk4NTQ1NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwCk1laW5lbiBHbHVlY2t3dW5zY2ggdW5kIGFsbGVzIEd1dGUhIDopIFpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFoYXJldCBoYXQgc29lYmVuIGVpbiBBYmVudGV1ZXIgYmVzdGFuZGVuLiAoSG9ibywgIDUuIE1haSAyMDA4LCAxMDo0Mjo1OSk6Cn4jISBybj1NZXNpcmlpIHJ0PTEyMDk4NTQ1NTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwCkdyYWFhYXRzIQpLb21tZW4gZ3JhZCB2b20gQmVzdWNoIGJlaSA1IFBlcnNvbmVuLCBkYXZvbiBudXIgZWluIE1hbm4sIHdpZWRlcjogVmllbCBTcGFzcwo6KQoKICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNYWhhcmV0IGhhdCBzb2ViZW4gZWluIEFiZW50ZXVlciBiZXN0YW5kZW4uIChNYWhhcmV0LCAgNS4gTWFpIDIwMDgsIDExOjU1OjAxKToKfiMhIHJuPVJ1bWF0YSBydD0xMjA5OTcxOTg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApJY2ggZ2xhdWJlLCBNZXNpIG1vZWNodGUgbGllYmVyIHdlaXRlciBNYWVkY2hlbiBtYWNoZW4gdWViZW4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE1haGFyZXQgaGF0IHNvZWJlbiBlaW4gQWJlbnRldWVyIGJlc3RhbmRlbi4gKEx1ZywgIDYuIE1haSAyMDA4LCAwMjozNjowMyk6Cn4jISBybj1NYWhhcmV0IHJ0PTEyMDk5ODEzMDEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwCi4uLnVuZCBzY2hvbiB3aWVkZXIgbXVudGVyLiBTbyBpc3QsIHNpZSwgbWVpbmUgR2F0dGluLi4uIDspCgpDaGVlcnMhCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ3JhYWF0eiwgbmFjaHRyYWVnbGljaCAuLi4gTWFoYXJldCB1bmQgTWVzaSB1bmQgZGVyIEtsZWluZW4gbmF0dWVybGljaCAoVGFwc2ksICA3LiBNYWkgMjAwOCwgMjM6NDQ6MDMpOgpIYWxsbyBNYWhhcmV0IHVuZCBNZXNpLAphdWNoIHZvbiBtaXIgbm9jaCAobmFjaHRyYWVnbGljaCkgaGVyemxpY2hlIEdsdWVja3d1ZW5zY2hlISIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZ3JhYWF0eiwgbmFjaHRyYWVnbGljaCAuLi4gTWFoYXJldCB1bmQgTWVzaSB1bmQgZGVyIEtsZWluZW4gbmF0dWVybGljaCAoUGVyZGl0YSwgIDguIE1haSAyMDA4LCAwMjo1ODo0MCk6Cn4jISBybj1UYXBzaSBydD0xMjEwMTk2NjQzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIxMDE5NjY0MwpVbmQgdm9uIG1pciBhdWNoIG5vY2ghCkRhcyB3YXIgamEgZWNodCBlaW4gTWFyYXRob24sIE1haGEhClNjaG9lbiwgZGFzcyBlcyBzbyBlcmZvbGdyZWljaCBhdXNnZWdhbmdlbiBpc3QhCkFsbGVzIEd1dGUgZnVlciBldWNoIQpQZXJkaXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFoYXJldCBoYXQgc29lYmVuIGVpbiBBYmVudGV1ZXIgYmVzdGFuZGVuLiAoTWlyaWwsICA4LiBNYWkgMjAwOCwgMjA6MDY6MjApOgp+IyEgcm49TWVzaXJpaSBydD0xMjA5ODU0NTUwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIwOTg1NDU1MApJY2ggd3VlbnNjaCBFdWNoIGF1Y2ggYWxsZXMgR3V0ZSB1bmQgZWluZSBob2ZmZW50bGljaCBuaWNodCB6dSBzY2hsYWZsb3NlCm5hZWNoc3RlIFplaXQuCgpNaXJpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNYWhhcmV0IGhhdCBzb2ViZW4gZWluIEFiZW50ZXVlciBiZXN0YW5kZW4uIChNYWhhcmV0LCAgOS4gTWFpIDIwMDgsIDExOjUwOjM5KToKfiMhIHJuPU1pcmlsIHJ0PTEyMTAyNjk5ODAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjA5ODU0NTUwClZpZWxlbiBEYW5rIGF1Y2ggZXVjaCA6KQpaZXJzdHVlY2tlbHRlIE5hZWNodGUgc2luZCB3aXIgamEgZWggbm9jaCBnZXdvaG50LCB3ZW5uIGF1Y2ggbmljaHQgaW4gZGVtCk1hc3NlLiBVbmQgbWFuIGthbm4gYXVjaCB0YWdzdWViZXIgc2NobGFmZW4uIEJpc2hlciBnZWh0IGVzIGFsc28gbm9jaCBnYW56IG9rLAphYmVyIGRpZSBaZWl0IGRlciBLb2xpa2VuIHN0ZWh0IGphIG5vY2ggYmV2b3IgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5pZSB3aWVkZXIgSWRsZS1Mb2dvdXQuIChSdW1hdGEsIDI4LiBKdWwgMjAwOCwgMTQ6NTU6NTUpOgpFaW5pZ2UgaGFiZW4gdm9uIGlocmVuIEhlaW12ZXJiaW5kdW5nZW4gYXVzIFByb2JsZW1lIGJlaW0gaWRsZW4uCkljaCBoYWJlIGRhIGVpbmUgaWRlZSwgd2llIG1hbiBkYXMgaW4gZGVuIEdyaWZmIGtyaWVnZW4ga29lbm50ZS4KQWJlciBkYXp1IGJyYXVjZSBpY2ggZWluIHBhYXIgZnJlaXdpbGxpZ2UgLSBhbSBiZXN0ZW4gbWl0IHZhcmlhYmxlbgpLbGllbnRwcm9yZ2FtbWVuLgoKQml0dGUgcGVyIHRtIG9kZXIgbWFpbCBiZWkgbWlyIG1lbGRlbi4KKgpSdW1hdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOaWUgd2llZGVyIElkbGUtTG9nb3V0LiAoUnVtYXRhLCAyOC4gSnVsIDIwMDgsIDE1OjM4OjI5KToKfiMhIHJuPVJ1bWF0YSBydD0xMjE3MjQ5NzU1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIxNzI0OTc1NQpOYWNodHJhZy4KSW4gbWVpbmVtIFdvcmtyb29tIGluIFBWIGxpZWd0IG51biBlaW4gS3JhdHplciBhdXMsIG1pdCBkZW0gbWFuCktyYXR6ZW4gZnVlciBzaWNoIHRlc3R3ZWlzZSBpbiB2ZXJzY2hpZWRlbmVuIE1vZGkgYWt0aXZpZXJlbiBrYW5uLgpNb21lbnRhbiBnaWJ0IGVzICd0ZicgdW5kICd0ZWxuZXQnLgoKS29tbWV0IHp1aGF1ZiB1bmQgcHJvYmllcnQgZGFzIFRlaWwgYXVzLiBVbmQgaWNoIGJpbiBmdWVyIEJ1Z3JlcG9ydHMKZGFua2Jhciwgd2VubiBwbG9ldHpsaWNoIChpbSAzMHNlay1UYWt0KSBtZXJrd3VlcmRpZ2UgWmVpY2hlbgplcnNjaGVpbmVuIG9kZXIgdmVyc2Nod2luZGVuIG9kZXIgc29uc3R3aWUgc3RvZXJlbi4gCgpSdW1hdGEqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOaWUgd2llZGVyIElkbGUtTG9nb3V0LiAoUnVtYXRhLCAyOC4gSnVsIDIwMDgsIDE1OjUyOjE2KToKfiMhIHJuPVJ1bWF0YSBydD0xMjE3MjUyMzA5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIxNzI0OTc1NQpOb2NobiBOYWNodHJhZwpXaWNodGlnIGlzdCB2b3IgYWxsZW0sIGRhc3MgaWhyIHRlc3RldCwgd2FzIG1pdCBkaXZlcnNlbiBQcm9tcHRtZWxkdW5nZW4KKCJtb3JlIiwiXSIgb2RlciBzbyBwYXNzaWVydCkuCgpSdW1hdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkljZXdhcnMtQ2xvbmUgKEh1bW5pLCAgMy4gU2VwIDIwMDgsIDIxOjEzOjE5KToKSHVodSwKCmRhIGhpZXIgamEgYWIgdW5kIGFuIEljZXdhcnMtU3BpZWxlciBydW1nZWlzdGVybiwgZGVuZW4gZGFzIGVpZ2VudGxpY2hlIElXIHp1CmxhbmdzYW0gd2lyZDogRGVyIEhhc2VuZ290dCBoYXQgZWluZSBuZXVlIEluc3RhbnogbWl0IGFuZGVyZW4gUmVnZWxuIGdlYmF1dCwKZGllIHNjaG5lbGxlciBnZWh0IChzY2hlaW50IG1pcikuIElzdCBnZXJhZGUgZXJzdCBvbmxpbmUgZ2VnYW5nZW4sIGljaCBkdXJmdGUKZGFzIHNvZ2FyIGltIFJhZGlvIHZlcmt1ZW5kZW4gLSBhbHNvIHR1IGljaHMgYXVjaCBoaWVyLiBXZXIgcmVpbnNjaGF1ZW4gd2lsbDoKd3d3LmNyeXN0YWx3YXJzLmRlLgoKRGFzIHNvbGx0ZSBFdWNoIGFiZXIgbmljaHQgdm9tIE1HIGFiaGFsdGVuLiBBbHNvLCBDcnlzdGFsV2FycyBudXIgd2FlaHJlbmQgZGVyCk1HLVplaXQgc3BpZWxlbiEgU29uc3QgZnJlc3MgaWNoIEV1Y2guCgpIdW1uaQpQUzogQWxzbywgZGFzIGlzdCBuaWNodCB3aXJrbGljaCBlaW4gQ2xvbmUuIE51ciB6dW0gS2xhcnN0ZWxsZW4uIERhcyBzaWVodCBudXIKc28gYWVobmxpY2ggYXVzLiBJc3QgdmllbGxlaWNodCBwcmFlemlzZXIuIFVuZCBlcyBpc3QgYXVjaCB2b20gSGFzZW4gaGFsdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbmUgdHJhdXJpZ2UgTWl0dGVpbHVuZyAoR3dlbiwgIDQuIEZlYiAyMDA5LCAwMTowMDoyMSk6ClZpZWxsZWljaHQgZnJhZ3Qgc2ljaCBqYSBkZXIgZWluZSBvZGVyIGFuZGVyZSwgd28gc2llIGlzdCB1bmQgd2FydW0gc2llIHNpY2gKbmljaHQgbWVociBlaW5sb2dndD8KV2llIGVzIGlociBnZWh0PyBPYiBlciBzaWUgdmllbGxlaWNodCBtYWwgd2llZGVyIHRyaWZmdD8KCkZ1ZXIgYWxsIGRpZSBoYWJlIGljaCBlcyB1ZWJlcm5vbW1lbiwgZGllc2UgTWl0dGVpbHVuZyBoaWVyIHp1IHZlcmZhc3Nlbi4KCkFwb2xsb25pYSBpc3QgbGV0enRlcyBKYWhyLCBhbSAyMS4gSnVsaSAyMDA4LCB2ZXJzdG9yYmVuLgoKSGVyemxpY2hlcyBCZWlsZWlkIGFuIGFsbGUsIGRpZSBzaWUga2FubnRlbiB1bmQgc2NoYWV0enRlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWluZSB0cmF1cmlnZSBNaXR0ZWlsdW5nIChTcmFiaSwgIDQuIEZlYiAyMDA5LCAwNjozNzo0NSk6Cn4jISBybj1Hd2VuIHJ0PTEyMzM3MDU2MjEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjMzNzA1NjIxCkF1Y2ggdm9uIG1pciBIZXJ6bGljaGVzIEJlaWxlaWQgYW4gYWxsZSwgZGllIEFwb2xsb25pYSBrYW5udGVuLgoKU3JhYmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRWluZSB0cmF1cmlnZSBNaXR0ZWlsdW5nIChNYWhhcmV0LCAgNC4gRmViIDIwMDksIDEyOjI2OjI4KToKfiMhIHJuPVNyYWJpIHJ0PTEyMzM3MjU4NjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjMzNzA1NjIxCkRhbmtlLCBHd2VuLCBpY2ggaGFiZSBtaWNoICh1bmQgYW5kZXJlKSBvZWZ0ZXIgZGFuYWNoIGdlZnJhZ3QsIHdhcyBtaXQgQXBvCmlzdC4gV2VpbCBzaWUgcGxvZXR6bGljaCBuaWNodCBtZWhyIGltIElDUSBhdWZ0YXVjaHRlLiBEYXNzIHNpZSBnZXN0b3JiZW4gaXN0LApkYXJhdWYgd2FlcmUgaWNoIG5pZSBnZWtvbW1lbiwgdW5kIGRhcyBtdXNzIGljaCBqZXR6dCBlcnN0bWFsIHZlcmFyYmVpdGVuLiAKTWVpbiBCZWlsZWlkIGRlbiBLaW5kZXJuLCBkaWUgaG9mZmVudGxpY2ggaW4gZ3V0ZW4gSGFlbmRlbiBzaW5kLgoKTWFoYXJldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRWluZSB0cmF1cmlnZSBNaXR0ZWlsdW5nIChWYW5oZWxzaW5nLCAgNC4gRmViIDIwMDksIDE1OjQ5OjMyKToKfiMhIHJuPU1haGFyZXQgcnQ9MTIzMzc0Njc4OCByZz1hbnplaWdlbgp+IyEgdGlkPTEyMzM3MDU2MjEKQXVjaCB2b24gbWlyIG1laW4gaGVyemxpY2hlcyBCZWlsZWlkLiBJY2gga2FubnRlIHNpZSB6d2FyIG51ciB3ZW5pZywgYWJlciBkYQpoYWJlIGljaCBtaWNoIGd1dCBtaXQgaWhyIHZlcnN0YW5kZW4uCklzdCBzZWhyIHRyYXVyaWcsIGRhc3MgZXMgc2llIG5pY2h0IG1laHIgZ2lidC4KClZhbkhlbHNpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW5lIHRyYXVyaWdlIE1pdHRlaWx1bmcgKFJvYWRydW5uZXIsICA0LiBGZWIgMjAwOSwgMTk6MzM6NDUpOgp+IyEgcm49R3dlbiBydD0xMjMzNzA1NjIxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIzMzcwNTYyMQpkYW5rZSBmdWVyIGRpZSBNaXR0ZWlsdW5nLiBGcmFndGUgbWljaCB0YXRzYWVjaGxpY2ggd28gQXBvbGxvbmlhIGdlYmxpZWJlbgppc3QuIEthbSB6d2FyIG5pY2h0IG1laHIgaW5zIE11ZCwgYWJlciB3YXIgZG9jaCBhdWNoIGltbWVyIG5vY2ggYXVmIElDUQpwcmFlc2VudC4KQXVjaCBCZWlsZWlkIGFuIGFsbGUgQmV0cm9mZmVuZW4uICAKClJSCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVpbmUgdHJhdXJpZ2UgTWl0dGVpbHVuZyAoRGVlcGJsdWUsIDEyLiBGZWIgMjAwOSwgMjE6MzY6MzgpOgp+IyEgcm49Um9hZHJ1bm5lciBydD0xMjMzNzcyNDI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTIzMzcwNTYyMQpBdWNoIHZvbiBtaXIgQmVpbGVpZCBhbiBhbGxlIEJldHJvZmZlbmVuLCB2b3IgYWxsZW0gYW4gZGllIEtpbmRlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhZWhsZW4hIChIdW1uaSwgIDYuIEp1biAyMDA5LCAxODo1NDowMyk6CkphLCBtYW4gc29sbHRlIGRhcyBlaWdlbnRsaWNoIGFscyBqZW1hbmQsIGRlciBtaXQgb2ZmZW5lbiBBdWdlbiBkdXJjaCBkaWUgV2VsdApnZWh0LCB3YXMgTXVkZGVyLCB3aWUgaWNoIGRlbmtlLCBpbW1lciB0dW4sIGdlc2VoZW4gaGFiZW4uCgpNb3JnZW4gc2luZCAoenVtaW5kZXN0IGluIEQpIEV1cm9wYXdhaGxlbi4gSWNoIHdpbGwsIGRhc3MgaWhyIGFsbGUgaGluZ2VodC4KRGFzIFBhcmxhbWVudCB3aXJkIHVudGVyc2NoYWV0enQsIGF1Y2ggdm9uIGRlciBXaWNodGlna2VpdCBoZXIuIERhcyBsaWVndApkYXJhbiwgZGFzcyBkaWUgUGFydGVpZW4gb2Z0IGRpZSBMZXV0ZSBkYSByZWluc2NoaWNrZW4sIHZvbiBkZW5lbiBtYW4gZGVuCkVpbmRydWNrIGhhdCwgZGllIGJyYXVjaGVuIGF1Y2ggbm9jaCBuZW4gUG9zdGVuLCB3byBzaWUgbml4IGFucmljaHRlbiBrb2VubmVuLAp1bmQgZGllIDEuIEdhcmRlIChvZGVyIHdhcyBhdWNoIGltbWVyKSBmdWVyIGRpZSAicmljaHRpZ2VuIiBKb2JzIGRhYmVoYWx0ZW4uCgpFZ2FsLCBvYiBkZXIgRWluZHJ1Y2sgdGFldXNjaHQgb2RlciBuaWNodDogR2VodCB0cm90emRlbSB3YWVobGVuLiBJY2ggc2FnZQpFdWNoIGF1Y2ggbmljaHQsIHdhcyBpaHIgd2FlaGxlbiBzb2xsdC4gV2VyIGRhcyBuaWNodCB3ZWlzcyBkYXJmIG1pY2ggYWJlcgpnZXJuZSBhbnNwcmVjaGVuLCBpY2ggaGFiIGRhIFRpcHMgOy0pCgpIdW1uaQpQUzogU29sbHRlIGplbWFuZCBpbSBub2NoLW5pY2h0LXdhaGxmYWVoaWdlbiBBbHRlciB0YXRzYWVjaGxpY2ggbWl0bGVzZW46IERhbm4KZ2Voc3QgaGFsdCB3YWVobGVuLCB3ZW5uIGF1Y2ggRHUgZGFyZnN0LiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYWVobGVuISAoQ3JvZnQsICA3LiBKdW4gMjAwOSwgMDA6NDI6MDQpOgp+IyEgcm49SHVtbmkgcnQ9MTI0NDMwNzI0MyByZz1hbnplaWdlbgp+IyEgdGlkPTEyNDQzMDcyNDMKSWNoIGdlaCBhYmVyIG5pY2h0IGhpbi4gIEljaCBoYWIgc2Nob24gZ2V3YWVobHQuICBPZGVyIGRhcmYgaWNoIHp3ZWltYWw/CgpDcm9mdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxwaGEtVGVzdGVyIGdlc3VjaHQgZnVlciBodHRwOi8vdGVzdC50aW1ld2l6YXJkLmluZm8gKE1lc2lyaWksIDIyLiBKdW4gMjAwOSwgMDA6MzQ6NDkpOgpTZWl0IERlemVtYmVyIGJhc3RlbCBpY2ggYW4gZWluZXIgQW53ZW5kdW5nIGRpZSBhbHMgTmFjaGZvbGdlciB2b24gIlNhbmR5IgooaXdhbnRzYW5keS5jb20pIGRhcyBLb21tYW5kemVpbGVucHJpbnppcCBhdWYgRS1NYWlscyBhbndlbmRldC4KRGFtaXQga2FubiBtYW4gZGFubiBvbmxpbmUgc2VpbmUgVGVybWluZSwgS29udGFrdGUsIEVyaW5uZXJ1bmdlbiwgTm90aXplbiB1c3cuCmFibGVnZW4gdW5kIGtyaWVndCB0YWVnbGljaGUgVWViZXJzaWNodGVuLCBSZW1pbmRlciB1c3cuCkludGVyYWdpZXJ0IHdpcmQgdWViZXIgRS1NYWlsIChTdWJqZWN0LCBCb2R5KSBkaWUgZ2VwYXJzdCB3aXJkIHVuZCB3ZW5ucwprbGFwcHQgZGFzIEFubGVnZW4gZW50c3ByZWNoZW5kZXIgRWludHJhZWdlIHp1ciBGb2xnZSBoYXQuCkF0bW9zcGhhZXJpc2NoIHNvbGwgZGFzIGdhbnplIHNvIGFibGF1ZmVuLCBkYXNzIG1hbiBlaW5lbiBPbmxpbmUtT3JnYW5pemVyLUltcAptaXQgZWlnZW5lbiBOYW1lbiBoYXQsIG1pdCBkZW0gbWFuIGtvbW11bml6aWVydC4KCkRlciBha3R1ZWxsZSBTdGFuZCBpc3QgamV0enQgbWl0dGxlcmV3ZWlsZSBzb3dlaXQgZ2VkaWVoZW4sIGRhc3MgaWNoCkFscGhhdGVzdGVyIGRhZnVlciBzdWNoZS4gQWxzbyB3ZXIgZGFzIEtvbnplcHQgaW50ZXJlc3NhbnQgZmluZGV0IHVuZCBlcyBzaWNoCm1hbCBhbnNjaGF1ZW4gbWFnIHVuZCBkYW5uIGF1Y2ggbm9jaCBxdWFsaWZpemllcnRlcyBGZWVkYmFjayBnaWJ0LCBpc3QKaGVyemxpY2ggd2lsbGtvbW1lbi4KClVSTCB6dXIgUmVnaXN0cmllcnVuZzogaHR0cDovL3Rlc3QudGltZXdpemFyZC5pbmZvL3VzZXIvc3RhcnQKCk1lc2ksIGJhc3RlbG5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEU0Egc3BpZWxlbiB1ZWJlciBNdWQgdW5kIFRlYW1zcGVhayAoSHVtbmksIDI5LiBTZXAgMjAwOSwgMjA6MTk6MDcpOgpIdWh1LAoKZGEgZXMgTGV1dGUgZ2lidCwgZGllIGdlcm5lIHJvbGxlbnNwaWVsZW4sIHVuZCB6dSBkaWVzZW0gQmVodWZlIGltbWVyIGRhcmF1Zgphbmdld2llc2VuIHNpbmQsIGRhc3MgbWFuIHNpY2ggUkwgdHJpZmZ0LCBoYWJlbiBzZWl0IGVpbmlnZXIgWmVpdCBMZXV0ZQp2ZXJzdWNodCwgdWViZXIgVGVhbXNwZWFrIHVuZCBadXNhdHpwcm9ncmFtbWUgenUgc3BpZWxlbi4KCkFscyBzb2xjaGVzIFp1c2F0enByb2dyYW1tIGJpZXRldCBzaWNoIGphIGVpZ2VudGxpY2ggYXVjaCBkYXMgTUcgYW4uIEFsc28gaGFiCmljaCBtaXIgZ2VkYWNodCwgYmF1IGljaCBtYWwgZWluZW4ga2xlaW5lbiBSYXVtIHp1bSBXdWVyZmVsbiB1bmQgZGFubiBrb2VubnRlCm1hbiBkYXMgZWluZmFjaCBtYWwgdGVzdGVuLgoKQWxzIGVyc3RlbiBUZXJtaW4gZGFjaHRlIGljaCBhbiBNaXR0d29jaCwgZGVuIDcuMTAuLCBnZWdlbiAxOCBVaHIsIGhpZXIgaW0gTUcuCklociBzb2xsdGV0IGRhbm4gVGVhbXNwZWFrIGF1ZiBkZW0gUmVjaG5lciBpbnN0YWxsaWVydCB1bmQgZWluIEhlYWRzZXQgaGFiZW4uCkVpbmVuIFRTLVNlcnZlciBoYWJlIGljaCBuZXR0ZXJ3ZWlzZSB2b24gQW5hdG9sIHp1ciBWZXJmdWVndW5nIGdlc3RlbGx0CmJla29tbWVuLgoKSWNoIHdvbGx0ZSBEYXMgU2Nod2FyemUgQXVnZSBzcGllbGVuLCBpbiBkZXIgNC4xLUVkaXRpb24gKDQuMC1DaGFyYWt0ZXJlLCBhbHNvCmRpZSBhdXMgZGVuIEJveGVuLCBnZWhlbiBhdWNoLCBkYSBzaW5kIGRpZSBVbnRlcnNjaGllZGUgbmljaHQgc28gZ3Jvc3MpLiBXZXIKbWl0c3BpZWxlbiB3aWxsIG9obmUgZGFzIFJlZ2Vsd2VyayB6dSBoYWJlbiBrYW5uIG1pciBhdWNoIGt1cnogbWl0dGVpbGVuIG9kZXIKbWl0IG1pciBhYnNwcmVjaGVuLCB3YXMgZXIvc2llIHNwaWVsZW4gd2lsbCwgZGFubiBrYW5uIGljaCBhdWNoIGdlcm5lIG5lbgpDaGFyYWt0ZXIgZnVlciBiYXN0ZWxuIChvZGVyIG1pdCBFdWNoIHp1c2FtbWVuIG9kZXIuLi4pLgoKQ2hhcmFrdGVyZSBzb2xsdGVuIG5pY2h0IHp1IGV4b3Rpc2NoIHNlaW4gKGFsc28ga2VpbmUgT3JrcywgR29ibGlucywgQWNoYXosCnVuZCBTY2hlbG1lIG51ciwgd2VyIHNpZSB3aXJrbGljaCBzcGllbGVuIGthbm4uLi4uIG9rLCBrZWluZSBTY2hlbG1lKS4gRGV0YWlscwprb2VubmVuIHdpciBkYW5uIGJlc3ByZWNoZW4uCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERTQSBzcGllbGVuIHVlYmVyIE11ZCB1bmQgVGVhbXNwZWFrIChBcmssIDI5LiBTZXAgMjAwOSwgMjA6MzA6MzEpOgp+IyEgcm49SHVtbmkgcnQ9MTI1NDI0ODM0NyByZz1hbnplaWdlbgp+IyEgdGlkPTEyNTQyNDgzNDcKVW5kIGtlaW5lIGFycm9nYW50ZW4gS2F1ZmxldXRlLCBkaWUgdmVyc3VjaGVuLCBkaWUgR3J1cHBlbm1pdGdsaWVkZXIgenUKTGVpYndhZWNodGVybiB6dSBlbmdhZ2llcmVuLCBnZWxsPyA6LSkKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERTQSBzcGllbGVuIHVlYmVyIE11ZCB1bmQgVGVhbXNwZWFrIChaZXNzdHJhLCAyOS4gU2VwIDIwMDksIDIwOjMxOjIxKToKfiMhIHJuPUFyayBydD0xMjU0MjQ5MDMxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI1NDI0ODM0NwpIZXksIGRlciBUeXAgd2FyIGx1c3RpZy4gT2Igd2lyIGRlbiBtYWwgd2llZGVydHJlZmZlbiBvZGVyIG9iIGRlciBzY2hvbiB2b24KaXJnZW5kd2VsY2hlbiBEb2VyZmxlcm4gZ2VzdGVpbmlndCB3dXJkZT8gOy0pCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRFNBIHNwaWVsZW4gdWViZXIgTXVkIHVuZCBUZWFtc3BlYWsgKFplc3N0cmEsIDI5LiBTZXAgMjAwOSwgMjA6NDc6MDIpOgp+IyEgcm49SHVtbmkgcnQ9MTI1NDI0ODM0NyByZz1hbnplaWdlbgp+IyEgdGlkPTEyNTQyNDgzNDcKSWNoIGhhYmUgc293YXMgbm9jaCBuaWNodCBhdXNwcm9iaWVydCAoYWxzbyBkYXMgZ2FuemUgdmlhIE5ldHosIG5pY2h0IERTQQphbGxnZW1laW4pLCBkYWhlciBoYWIgaWNoIEx1c3QgZGF6dS4gOi0pCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEU0Egc3BpZWxlbiB1ZWJlciBNdWQgdW5kIFRlYW1zcGVhayAoTWFoYXJldCwgIDUuIE9rdCAyMDA5LCAxMTo0MjowNSk6Cn4jISBybj1aZXNzdHJhIHJ0PTEyNTQyNDkwODEgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjU0MjQ4MzQ3CldhaHJzY2hlaW5saWNoIHd1ZXJkZSBlciBlaCBudXIgZWluZW4gTGFldWZlciBzY2hpY2tlbiAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERTQSBzcGllbGVuIHVlYmVyIE11ZCB1bmQgVGVhbXNwZWFrIChHd2VuLCAgNS4gT2t0IDIwMDksIDEyOjAxOjAwKToKfiMhIHJuPU1haGFyZXQgcnQ9MTI1NDczNTcyNSByZz1hbnplaWdlbgp+IyEgdGlkPTEyNTQyNDgzNDcKUlBHIGZhZW5kIGljaCB0b2xsLgpEU0EgbmljaHQgc28gOykKV3VlcmQgYWJlciBhdWNoIG5lbiBncnVuZHNraXp6aWVydGVuIENoYXIgZWluZmFjaCBzcGllbGVuLCB3ZW5uIGljaCBkaWUKbm9ldGlnZW4gSW5mb3Mga3JpZWcuCkJpbiBqYSBnZXNwYW5udC4KQ2lhbywgR3dlbi4KLAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRFNBIHNwaWVsZW4gdWViZXIgTXVkIHVuZCBUZWFtc3BlYWsgKE1haGFyZXQsICA1LiBPa3QgMjAwOSwgMTI6MDM6MDgpOgp+IyEgcm49R3dlbiBydD0xMjU0NzM2ODYwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI1NDI0ODM0NwpBbiBzaWNoIHd1ZXJkZSBpY2ggZGEgYXVjaCBnZXJuIG1pdG1hY2hlbiAodW5kIG1laW5lbiBBcG90aGVrZXIgd2VpdGVyc3BpZWxlbiwKZGVuIGhhYiBpY2ggbm9jaCBpcmdlbmR3bykuIEFiZXIgZGllc2UgV29jaGUgaXN0IHNjaGxlY2h0LCBpY2ggYmluIG1pdCBkZW4KYmVpZGVuIEtpbmRlcm4gYWxsZWluLgpLYW5uIG1hbiBhdWNoIHNwYWV0ZXIgbm9jaCBlaW5zdGVpZ2VuPwoKTWFoCmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IERTQSBzcGllbGVuIHVlYmVyIE11ZCB1bmQgVGVhbXNwZWFrIChIdW1uaSwgIDUuIE9rdCAyMDA5LCAxNDoxNTozNik6Cn4jISBybj1NYWhhcmV0IHJ0PTEyNTQ3MzY5ODggcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjU0MjQ4MzQ3CkF1ZmdydW5kIGRlciBSZXNvbmFueiB1bmQgZWluZXMgZ2VyYWRlIHJlaW5nZXJ1dHNjaHRlbiBUZXJtaW5lcyB3dWVyZGUgaWNoIGRhcwpHYW56ZSBnZXJuZSB1bSBlaW5lIFdvY2hlIHZlcnNjaGllYmVuLiBWaWVsbGVpY2h0IGthbm4gTWFoYXJldCBkYW5uIGF1Y2ggOy0pCgpHcnVlc3NlCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBEU0Egc3BpZWxlbiB1ZWJlciBNdWQgdW5kIFRlYW1zcGVhayAoSHVtbmksIDEzLiBPa3QgMjAwOSwgMTU6NTk6MzYpOgp+IyEgcm49SHVtbmkgcnQ9MTI1NDc0NDkzNiByZz1hbnplaWdlbgp+IyEgdGlkPTEyNTQyNDgzNDcKSHVodSwKCmRhIGljaCBtb3JnZW4gYWJlbmQgd2llZGVyIGtlaW5lIFplaXQgaGFiZSAoaG1wZiwgZG9vZmVyIFRlcm1pbgpkYXp3aXNjaGVuZ2VydXRzY2h0KSAtIHVuZCBHd2VuIG1pciBzY2hvbiBnZXNhZ3QgaGF0LCBkYXNzIHNpZSBhdWNoIERvbm5lcnN0YWcKa2FubiwgdW5kIHNpY2ggc29uc3QgZWggbm9jaCBuaWVtYW5kIHdpZWRlciBnZW1lbGRldCBoYXQuLiB3YXMgaGFsdGV0IGlociBkZW5uCnZvbiB1ZWJlcm1vcmdlbiwgZGVtIDE1LjEwLD8gKEhpZXIgb2RlciBwZXIgTWFpbCkuCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGhpc2hpbmcgb2RlciBWaXJ1cyAoSHVtbmksIDE0LiBPa3QgMjAwOSwgMDA6NDU6MDIpOgpIdWh1LAoKaW4gbWVpbmVtIE1haWxmb2xkZXIgZmFuZCBzaWNoIHNvZWJlbiBmb2xnZW5kZSBNYWlsOgoKQXR0ZW50aW9uIQoKICBPbiBPY3RvYmVyIDE2LCAyMDA5IHNlcnZlciB1cGdyYWRlIHdpbGwgdGFrZSBwbGFjZS4gRHVlIHRvIHRoaXMgdGhlIHN5c3RlbQptYXkgYmUgb2ZmbGluZSBmb3IgYXBwcm94aW1hdGVseSBoYWxmIGFuIGhvdXIuClRoZSBjaGFuZ2VzIHdpbGwgY29uY2VybiBzZWN1cml0eSwgcmVsaWFiaWxpdHkgYW5kIHBlcmZvcm1hbmNlIG9mIG1haWwgc2VydmljZQphbmQgdGhlIHN5c3RlbSBhcyBhIHdob2xlLiAKRm9yIGNvbXBhdGliaWxpdHkgb2YgeW91ciBicm93c2VycyBhbmQgbWFpbCBjbGllbnRzIHdpdGggdXBncmFkZWQgc2VydmVyCnNvZnR3YXJlIHlvdSBzaG91bGQgcnVuIFNTbCBjZXJ0aWZpY2F0ZXMgdXBkYXRlIApwcm9jZWR1cmUuCiBUaGlzIHByb2NlZHVyZSBpcyBxdWl0ZSBzaW1wbGUuIEFsbCB5b3UgaGF2ZSB0byBkbyBpcyBqdXN0IHRvIGNsaWNrIHRoZSBsaW5rCnByb3ZpZGVkLCB0byBzYXZlIHRoZSBwYXRjaCBmaWxlIGFuZCB0aGVuIHRvIApydW4gaXQgZnJvbSB5b3VyIGNvbXB1dGVyIGxvY2F0aW9uLiBUaGF0J3MgYWxsLgoKaHR0cDovL3VwZGF0ZXMubWcubXVkLmRlLnNlY3VyZS4xLWFkbWluLm5ldC9jb3JlL2lkPTc0NzMzMjg3ODYtaHVtbmlAbWcubXVkLmRlCi1wYXRjaDkxMy5leGUKCiBUaGFuayB5b3UgaW4gYWR2YW5jZSBmb3IgeW91ciBhdHRlbnRpb24gdG8gdGhpcyBtYXR0ZXIgYW5kIHNvcnJ5IGZvcgpwb3NzaWJsZSBpbmNvbnZlbmllbmNlcy4KCiBTeXN0ZW0gQWRtaW5pc3RyYXRvcgoKVmVybXV0bGljaCB3aXNzdCBpaHIgZGFzIGFsbGUgb2RlciBrYXBpZXJ0IGVzIGRpcmVrdCwgd2VubiBpaHIgZXMgbGVzdCwgZGFzClRlaWwgc3Rpbmt0IGphIGZvZXJtbGljaCBkYW5hY2guIEFsc28sIGZhbGxzIGRhcyBqZW1hbmQgbmljaHQga2FwaWVyZW4gc29sbHRlOgpEYXMgaXN0IGVpbiBGYWtlLCBkYSB3aWxsIEV1Y2ggamVtYW5kIGJvZXNlIERpbmdlIGFuZHJlaGVuLiBOaWNodCB0dW4uCgpTbywgdmVybXV0bGljaCBzZWlkIGlociBhbGxlIHNlbGJzdCBzbyBzY2hsYXUgLSBhYmVyIGljaCB3b2xsdGUgenVtaW5kZXN0Cmdld2FybnQgaGFiZW4uCgpIdW1uaQpQUzogU2VydmVydXBkYXRlcyB3ZXJkZW4gbmFjaCB3aWUgdm9yIGluIGRlciBSdWJyaWsgImJla2FubnRtYWNodW5nZW4iCmFuZ2VrdWVuZGlndC4gVW5kIG5pZW1hbHMgbXVlc3N0IGlociBkYWZ1ZXIgRXhlLURhdGVpZW4gYXVzZnVlaHJlbiwgdW0gd2VpdGVyCmltIE1HIHp1IHNlaW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGhpc2hpbmcgb2RlciBWaXJ1cyAoR2xvaW5zb24sIDE0LiBPa3QgMjAwOSwgMTA6MTg6NDcpOgp+IyEgcm49SHVtbmkgcnQ9MTI1NTQ3MzkwMiByZz1hbnplaWdlbgp+IyEgdGlkPTEyNTU0NzM5MDIKQ29vbGVyIEhvYXguIEljaCB3dWVzc3RlIGdlcm4sIHdpZSBkZXIgenVzdGFuZGUgZ2Vrb21tZW4gaXN0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IERTQSBzcGllbGVuIHVlYmVyIE11ZCB1bmQgVGVhbXNwZWFrIChEZWVwYmx1ZSwgMTQuIE9rdCAyMDA5LCAyMToxMjo1OSk6Cn4jISBybj1IdW1uaSBydD0xMjU1NDQyMzc2IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI1NDI0ODM0NwpXZXIgbm9jaCBuZW4gSGVsZGVuIGJhc3RlbG4gd2lsbC9tdXNzLCBkZXIga2FubiBkYXMgYXVjaCB1ZWJlciBkYXMgSGVsZGVudG9vbAooaHR0cDovL3d3dy5oZWxkZW4tc29mdHdhcmUuZGUpIG1hY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpbGZlZ2VzdWNoIGt5cmlsbGlzY2ggKFNoYWtlZGJlZXIsIDI3LiBEZXogMjAwOSwgMjM6NDY6MzkpOgpIYWxsbyEKCkhhYmUgZ2VyYWRlIGZlc3RnZXN0ZWxsdCwgZGFzcyBlcyBlaW5lIFVlYmVyc2V0enVuZyBtZWluZXMgRFZELUJ1Y2hlcyBnaWJ0LApkaWUgaWNoIG5vY2ggbmljaHQga2FubnRlLiBFcyBpc3Qgd29obCBpbiBCdWxnYXJpZW4gaW4gS3lyaWxsaXNjaCBlcnNjaGllbmVuLgpJY2gga2VubmUgbGVkaWdsaWNoIGRpZSBJU0JOIDk1NC0wMy0wNjE2LTcsIGFiZXIgZGllIFNlaXRlbiBhdWYgZGVuZW4gZXMgZGFzCm5vY2ggZ2lidCwgc2luZCBhbGxlIGF1Y2ggaW4ga3lyaWxsaXNjaC4gSGF0IGplbWFuZCB2b24gRXVjaCBzbyB2aWVsIEtlbm5lLApkYXNzIGVyIG1pciBlaW4gRXhlbXBsYXIgYmVzdGVsbGVuIGthbm4/IFdlbm4gamEsIGJpdHRlIGVpbmUgS3VyemUgTWFpbCwgZGFubgprb25uZW4gd2lyIGFsbGVzIFdlaXRlcmUgYmVxdWF0c2NoZW4uCgpEYW5rZSEKU2hha3kgLSBzb2xsdGUgb2VmdGVyIG1hbCBpbiBleG90aXNjaGVuIFNjaHJpZnRlbiBnb29nbGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhpbGZlZ2VzdWNoIGt5cmlsbGlzY2ggKFNoYWtlZGJlZXIsIDI3LiBEZXogMjAwOSwgMjM6NDg6MDEpOgp+IyEgcm49U2hha2VkYmVlciBydD0xMjYxOTUzOTk5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI2MTk1Mzk5OQpXZWlhLiBHcm9zcy0vS2xlaW5zY2hyZWlidW5nIGlzdCB3YXMgZnVlciBLb2VubmVyLiBVbWxhdXRlIHVlYnJpZ2VucyBhdWNoLgoKU2hha3kgLSBrYW5uIG5peC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhpbGZlZ2VzdWNoIGt5cmlsbGlzY2ggKEdsb2luc29uLCAyNy4gRGV6IDIwMDksIDIzOjQ5OjQ3KToKfiMhIHJuPVNoYWtlZGJlZXIgcnQ9MTI2MTk1NDA4MSByZz1hbnplaWdlbgp+IyEgdGlkPTEyNjE5NTM5OTkKSWNoIGthbm4gendhciBLeXJpbGxpc2NoIC4uLiBhYmVyIGtlaW4gQnVsZ2FyaXNjaCA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEhpbGZlZ2VzdWNoIGt5cmlsbGlzY2ggKFZhcmRpb24sIDI5LiBEZXogMjAwOSwgMjA6MTA6NTIpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTI2MTk1NDE4NyByZz1hbnplaWdlbgp+IyEgdGlkPTEyNjE5NTM5OTkKR29vZ2xlIHVlYmVyc2V0enQgZGllIGdlZnVuZGVuZW4gYnVsZ2FyaXNjaGVuIFNlaXRlbiB6dW1pbmRlc3Qgc293ZWl0IGlucwpEZXV0c2NoZSwgZGFzcyBtYW4gc2llaHQsIHdvIG1hbiBrbGlja2VuIG11c3MgKEFydGlrZWwgaW4gV2FyZW5rb3JiLCBXYXJlbmtvcmIKaW4gQmVzdGVsbHVuZyB1ZWJlcmZ1ZWhlcmVuIGV0Yy4pIFVuZCBkaWUgYWt6ZXB0aWVyZW4gS3JlZGl0a2FydGUuIER1IGthbm5zdApEaWNoIGphIGVpbmZhY2ggbWFsIGR1cmNoa2xpY2tlbiwgZGFzIGZpbmFuemllbGxlIFJpc2lrbyBpc3QgYmVpIDksOTAkCkthdWZwcmVpcyArIFZlcnNhbmQgdWViZXJzY2hhdWJhci4gT2Igc2llIG5hY2ggRGV1dHNjaGxhbmQgbGllZmVybiwga2FubiBtYW4KaW4gZGVuIEdvb2dsZS11ZWJlcnNldHp0ZW4gQUdCIHNpY2hlciBhdWNoIHJhdXNsZXNlbi4gQmVpIGVpbmVtIGRlciBTaG9wcyBoYWIKaWNoIG1pY2ggZml4IGJpcyB6dXIgQWRyZXNzZWluZ2FiZSBkdXJjaGdla2xpY2t0LCBkYSBrYW5uIG1hbiAiR2VybWFuaWEiCihuYXR1ZXJsaWNoIGluIGt5cmlsbGlzY2hlbiBTY2hyaWZ0emVpY2hlbiBnZXNjaHJpZWJlbiwgYWJlciBkaWUgZmluZGVzdCBEdSBpbgpXaWtpcGVkaWEgJiBDbykgYWxzIFppZWxsYW5kIGF1c3dhZWhsZW4uIAoKVmFyZGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSGlsZmVnZXN1Y2gga3lyaWxsaXNjaCAoU2hha2VkYmVlciwgMzAuIERleiAyMDA5LCAxNjo1NDowNCk6Cn4jISBybj1WYXJkaW9uIHJ0PTEyNjIxMTM4NTIgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjYxOTUzOTk5CkRhbmtlISAKTHVyY2hpIGhhdCBpbnp3aXNjaGVuIGVpbmVuIEtvbnRha3QgbmFjaCBCdWxnYXJpZW4gYXVmZ2V0YW4uIGljaCBoYXR0ZSBlcyBhdWNoCnNjaG9uIG1pdCBBdXRvLVVlYmVyc2V0enVuZ2VuIHZlcnN1Y2h0LCBrYW0gZGEgYWJlciBuaWNodCBzZWhyIHdlaXQuIAoKU2hha3kuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXR0YnVlcm8gZ2VvZWZmbmV0IChIdW1uaSwgMTEuIEp1biAyMDEwLCAxOTozMDowMCk6Ckh1aHUsCgpkYXMgRXJvZWZmbnVuZ3NzcGllbCBoYWIgaWNoIHZlcnBlbm50LCBhYmVyIGF1ZiBkaWUgbmFlY2hzdGVuIDYgU3BpZWxlIGRlciBXTQprb2VubnQgaWhyIG51biB3ZXR0ZW4uIE9rLCBEZXV0c2NobGFuZCBwYWNrIGljaCBnbGVpY2ggYXVjaCBub2NoIGRhenUuIERhbm4Kc2luZCBlcyBzaWViZW4uIEhvZmZlLCBpY2ggc2NoYWZmZSBpbW1lciBkaWUgQWt0dWFsaXNpZXJ1bmdlbi4uLgoKR3J1ZXNzZQpIdW1uaQpQUzogV2VyIGRhcyBuaWNodCBrZW5udDogTm9lcmRsaWNoIHZvbiBBbXVuZHNlbiB1bmQgU2NvdHQgaW0gUG9sYXIgc3RlaHQgZWluCldldHRidWVyby4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXZXR0YnVlcm8gZ2VvZWZmbmV0IChIdW1uaSwgMjQuIEp1biAyMDEwLCAxNjozODo0Nik6Cn4jISBybj1IdW1uaSBydD0xMjc2Mjc3NDAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI3NjI3NzQwMApEYSBudW4gYXVjaCBzY2hvbiBBY2h0ZWxmaW5hbHNwaWVsZSBkcmluc3RlaGVuOiBJY2ggd2Vpc2UgZHJhdWYgaGluLCBkYXNzIGljaAphbHMgRXJnZWJuaXMgZGllIEVyZ2Vibmlzc2UgbmFjaCBkZXIgcmVndWxhZXJlbiBTcGllbHplaXQgKHBsdXMgTmFjaHNwaWVsemVpdApuYXR1ZXJsaWNoKSBlaW50cmFnZW4gd2VyZGUsIHVuZCBWZXJsYWVuZ2VydW5nIG9kZXIgRWxmbWV0ZXJzY2hpZXNzZW4gYXVzc2VyCmFjaHQgbGFzc2VuIHdlcmRlLiBBbHNvIGVyZ2lidCBuYWNoIHdpZSB2b3IgYXVjaCBmdWVyIGRpZSBLTy1SdW5kZSBlaW4KIlVuZW50c2NoaWVkZW4iIGFscyBXZXR0ZXJnZWJuaXMgZWluZW4gU2lubi4KCkh1bW5pCiAuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCYXR0bGV0ZWNoLU1pdHNwaWVsZXIgZ2VzdWNodCAoQmlyZHksIDE5LiBTZXAgMjAxMCwgMjA6MDU6NDEpOgpIaWhvIQoKSWNoIHN1Y2ggZnVlciBlaW4gQmF0dGxldGVjaC1QQkVNIG1pdCBlaW5lbSBadWcgcHJvIFdvY2hlIG5vY2ggZWluIHBhYXIKTWl0c3BpZWxlci4KV2VyIEludGVyZXNzZSB1bmQgbmUgU3R1bmRlIFplaXQgcHJvIFdvY2hlIGhhdCwgc2NocmVpYnQgbWljaCBlaW5mYWNoIGFuLgoKR3J1c3MsCkJpcmR5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmF0dGxldGVjaC1NaXRzcGllbGVyIGdlc3VjaHQgKERhcmtsb3IsIDI1LiBTZXAgMjAxMCwgMTg6MTE6MjMpOgp+IyEgcm49QmlyZHkgcnQ9MTI4NDkxOTU0MSByZz1hbnplaWdlbgp+IyEgdGlkPTEyODQ5MTk1NDEKV2FzIGRhcyBkZW5uPwoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCYXR0bGV0ZWNoLU1pdHNwaWVsZXIgZ2VzdWNodCAoQmlyZHksIDI5LiBTZXAgMjAxMCwgMTk6Mzc6MDMpOgp+IyEgcm49RGFya2xvciBydD0xMjg1NDMxMDgzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI4NDkxOTU0MQpodHRwOi8vZGUud2lraXBlZGlhLm9yZy93aWtpL0JhdHRsZVRlY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJhdHRsZXRlY2gtTWl0c3BpZWxlciBnZXN1Y2h0IChEYXJrbG9yLCAxNS4gT2t0IDIwMTAsIDAwOjEyOjE5KToKfiMhIHJuPUJpcmR5IHJ0PTEyODU3ODE4MjMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjg0OTE5NTQxCkFoLCBkYXMgbWVpbnQgaWNoIG5pY2ggLSBpY2ggd2Vpc3Mgd2FzIEJhdHRsZXRlY2ggaXMuIFdhcyBtaWNoIGludGVyZXNzaWVydGUKd2FyLCB3aWUgRHUgZXMgcGVyIEVtYWlsIHNwaWVsbiB3b2xsdGVzdC4uLgoKSWNoIHdlaXNzIGV0d2FzIHNjaGxlY2h0IGF1c2dlZHJ1ZWNrdC4uLgoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQmF0dGxldGVjaC1NaXRzcGllbGVyIGdlc3VjaHQgKEJpcmR5LCAxOS4gT2t0IDIwMTAsIDEzOjU1OjU4KToKfiMhIHJuPURhcmtsb3IgcnQ9MTI4NzA5NDMzOSByZz1hbnplaWdlbgp+IyEgdGlkPTEyODQ5MTk1NDEKT2theS4KCkR1IGluc3RhbGxpZXJzdCBkYXMgU3BpZWwga29tcGxldHQgYmVpIGRpci4gRGllIERhdGVuYmFuayBtaXQgZGVuIGFrdHVlbGxlbgpEYXRlbiBrcmllZ3N0IGR1IHp1Z2VzY2hpY2t0LiBEYW5uIG1hY2hzdCBkdSBkZWluZW4gWnVnIHVuZCBzY2hpY2tzdCBpaG4gYWxzCkRhdGVpIHp1cnVlY2ssIGRhbmFjaCBnaWJ0cyB3aWVkZXIgZWluZSBuZXVlIERhdGVuYmFuay4KWnVnYXVzd2VydHVuZyBpc3QgamVkZW4gU2Ftc3RhZy4gRGEga2FubiBtYW4gaW0gVGVhbVNwZWFrIHNvZ2FyIGxpdmUgZGFiZWkKc2Vpbi4gS29tbXVuaWthdGlvbiBmaW5kZXQgYW5zb25zdGVuIGluZ2FtZSwgdWViZXIgZWluZW4gTWFpbGVyIG9kZXIgaW0gRm9ydW0Kc3RhdHQuCkZ1ZXIgZGllIENsYW5zIGhhYiBpY2ggZWluZW4gQ2hhdHJvb20gZWluZ2VyaWNodGV0LgpNYWNodCBlY2h0IFNwYXNzLiA6KQpJY2ggaG9mZmUsIGljaCBrb25udGUgZGVpbmUgZXJzdGVuIEZyYWdlbiBiZWFudHdvcnRlbiwgZmFsbHMgZHUgbm9jaCBtZWhyCmhhc3QsIHNjaHJlaWIgbWlyIGVpbmZhY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCYXR0bGV0ZWNoLU1pdHNwaWVsZXIgZ2VzdWNodCAoRGFya2xvciwgMjYuIE9rdCAyMDEwLCAwMDoyNDozNik6Cn4jISBybj1CaXJkeSBydD0xMjg3NDg5MzU4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTI4NDkxOTU0MQpEdSBtZWluc3QgTWVnYU1layBvZGVyIGRlbm4gYWxzIFBDLVNwaWVsIG1pdCBCYXR0bGV0ZWNoIGltIE5hbWVuIGZhZWxsdCBtaXIKbnVyIG4gYWx0ZXMgU29sb3JwZyBlaW4gQmF0dGxldGVjaCAtIFRoZSBDcmVzY2VudCBIYXdrcyBJbmNlcHRpb24gdW5kIFRlaWwgMgpCYXR0bGV0ZWNoIHRoZSBDcmVzY2VudCBIYXdrcyBSZXZlbmdlIGVpbgoKRGFya2xvcgpQUzogSWNoIGZpbmQgZ2VyYWQgZGVuIE1XOkxMIG1vZCBmdWVyIENyeXNpcyBnYW56IG5ldHQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEJhdHRsZXRlY2gtTWl0c3BpZWxlciBnZXN1Y2h0IChCaXJkeSwgMzAuIE9rdCAyMDEwLCAxODoxNDo1OCk6Cn4jISBybj1EYXJrbG9yIHJ0PTEyODgwNDU0NzYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMjg0OTE5NTQxCkVzIGdpYnQgZWluaWdlIEJhdHRsZXRlY2gtUEMtU3BpZWxlLCB6LkIuIGRpZSBnYW56ZSBNZWNod2Fycmlvci1SZWloZS4KQmVpIEJhdHRsZXRhYyBoYW5kZWx0IGVzIHNpY2ggdW0gZWluIHJlaW5lcyBTdHJhdGVnaWVzcGllbCBhbGEgIk1hc3RlciBvZgpPcmlvbiIgb2huZSBkZW4gZ2FuemVuIFBsYW5ldGVuYXVzYmF1LgpWaWVsbGVpY2h0IGF1Y2ggdm9tIFNwaWVscHJpbnppcCBoZXIgdmVyZ2xlaWNoYmFyIG1pdCAiVkdBLVBsYW5ldHMiLCBmYWxscyBkaXIKZGFzIHdhcyBzYWd0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogQmF0dGxldGVjaC1NaXRzcGllbGVyIGdlc3VjaHQgKERhcmtsb3IsICAxLiBOb3YgMjAxMCwgMDE6MTA6NTcpOgp+IyEgcm49QmlyZHkgcnQ9MTI4ODQ1NTI5OCByZz1hbnplaWdlbgp+IyEgdGlkPTEyODQ5MTk1NDEKRGllIE1lY2hXYXJyaW9yIFJlaWhlIGtlbm4gaWNoIC0gaGFiIHNvYWdhciBuIHBhYXIgVGVpbGUgZGF2b24sIHNvZ2FyCmdlc3BpZWx0LiBTaW5kIGltIEJhdHRsZXRlY2ggVW5pdmVyc3VtIGFuZ2VzaWVkZWx0IGFiZXIgZGVyIE5hbWUgQmF0dGxldGVjaCBpcwppbSBUaXRlbCBuaWNodCBlbnRoYWx0ZW4uIE1lY2hDb21tYW5kZXIgZmFuZCBpY2ggdWVicmlnZW5zIGF1Y2ggZ2FueiBuZXR0LiBEYXMKVGFibGV0b3AgU3BpZWwgaGF0dGUgbWljaCBuaWUgaW50ZXJlc3NpZXJ0LCBhdWNoIHdlbm4gaWNoIGVpbiBwYWFyIE1pbmlhdHVyZW4KZGF2b24gaGFiLCBlYmVuc28gd2llIHZvbSBLYXJ0ZW5zcGllbC4gLSBWb24gQmF0dGxldGFjIGhhdCBpY2ggbm9jaCBuaWUgd2FzCmdlaG9lcnQsIGRlc3dlZ2VuIHdhciBpY2ggc28gZXJzdGF1bnQuIFZHQS1QbGFuZXRzIGtlbm4gaWNoIG5pY2ggLSBhYmVyIGljaApnbGF1YiBHbG9pbnNvbiBoYXR0ZSBkYXZvbiBtYWwgaW0gTWVnYXNjaG1hcnJuIGdlc2NocmllYmVuLi4uIC0gTWFzdGVyIG9mCk9yaW9uIGtlbm4gaWNoLCBhYmVyIGRlciB6dXNhbW1lbmhhbmcgenUgQmF0dGxldGVjaCBpcyBtaXIgZGEgbmljaCBnYW56IHNvCmtsYXIsIGRlbm4gZnVlciBtaWNoIGdlaHQgZXMgYmVpIEJhdHRsZXRlY2ggaGF1cHRzYWVjaGxpY2ggdW0gZGllIEthZW1wZmUgbWl0CmRlbiBNZWNocy4gRGllIHBvbGl0aXNjaGVuIFF1ZXJlbGVuIHVuZCBQbGFuZXRlbmVyb2JlcnVuZ2VuIGluIGRlciBSZWdlbCBudXIKZWluIGhpbnVuZGhlciBpbSBrbGVpbmVuIFJhaG1lbiBkYXMgYW0gRW5kZSBuaWNoIHp1ciBIZXJyc2NoYWZ0IHVlYmVycwpVbml2ZXJzdW0gZnVlaHJ0IHdpZSBiZWltIE1hc3RlciBvZiBPLgoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogQmF0dGxldGVjaC1NaXRzcGllbGVyIGdlc3VjaHQgKEJpcmR5LCAgNS4gTm92IDIwMTAsIDIxOjQ1OjE2KToKfiMhIHJuPURhcmtsb3IgcnQ9MTI4ODU3MDI1NyByZz1hbnplaWdlbgp+IyEgdGlkPTEyODQ5MTk1NDEKU2NoaWNrIG1pciBlaW5mYWNoIG5lIEVtYWlsYWRyZXNzZSB2b24gZGlyIHVuZCBpY2ggc2NoaWNrIGRpciBkYXMgUmVnZWxidWNoCmFscyBwZGYuIFZpZWxsZWljaHQgaGFzdCBkdSBkYW5uIGphIEx1c3QsIG1pdHp1c3BpZWxlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjMgTW9uYXRzIFByb2pla3QgZnVlciBkaWUgVU5PIGluIEdlbmYgKFdpbmRvd3MgNykgKEppbWRpZ3JpeiwgMjkuIEp1biAyMDExLCAxMjoxMzoyOSk6Ck1vaW4sIAoKZmFsbHMgd2VyIEJvY2sgaGF0IGZ1ZXIgMyBNb25hdGUgZnVlciBkaWUgVU4gaW4gR2VuZiB6dSBhcmJlaXRlbiwKa2FubiBzaWNoIGJlaSBtaXIgbWVsZGVuLgpFcyBnZWh0IGRhcnVtIGVpbmlnZSBNaWxlc3RvbmVzIGZ1ZXIgZWluZSBXaW5kb3dzIDcgTWlncmF0aW9uCnZvcmFuenVicmluZ2VuLiBNZWhyIERldGFpbHMgYXVmIEFuZnJhZ2UuCgpDaWFvLAogSmRHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaaW1tZXIvV29obnVuZyBpbiBCb25uIGdlc3VjaHQgKE1pZXplLCAgNi4gQXVnIDIwMTEsIDA5OjU4OjUwKToKSGFsbG8genVzYW1tZW4sCgptb21lbnRhbiBhcmJlaXRlIGljaCBpbiBlaW5lbSBQcm9qZWt0IGluIEJvbm4gdW5kIHN1Y2hlIGRhaGVyIGVpbiBaaW1tZXIgb2RlcgplaW5lIGtsZWluZSBXb2hudW5nIGluIEJvbm4sIHdlbm4gbW9lZ2xpY2gsIGluIGRlciBOYWVoZSBvZGVyIGluIEJhZApHb2Rlc2JlcmcuIEhhdCBqZW1hbmQgdm9uIEV1Y2ggZWluZSBJZGVlPwoKVmllbGUgR3J1ZXNzZQpNaWV6ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFppbW1lci9Xb2hudW5nIGluIEJvbm4gZ2VzdWNodCAoQmlyZHksIDE3LiBBdWcgMjAxMSwgMTk6Mzc6MjkpOgp+IyEgcm49TWllemUgcnQ9MTMxMjYxNzUzMCByZz1hbnplaWdlbgp+IyEgdGlkPTEzMTI2MTc1MzAKQW0gYmVzdGVuIGhvbHN0IGR1IGRpciBNaXR0d29jaHMgdW5kIFNhbXN0YWdzIGRlbiAiQm9ubmVyIEdlbmVyYWxhbnplaWdlciIgYW0KS2lvc2suCk9kZXIgZHUgbmltbXN0IGRpciBnbGVpY2ggZWluZW4gTWFrbGVyLCBkZW5uIDEtIHVuZCAyLVJhdW0tV29obnVuZ2VuIGdpYnRzIGluCkJvbm4gZWlnZW50bGljaCBuaWNodC4gRGFmdWVyIGtyaWVnc3QgZHUgNC01LVJhdW0tV29obnVuZ2VuIG5hY2hnZXdvcmZlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogWmltbWVyL1dvaG51bmcgaW4gQm9ubiBnZXN1Y2h0IChNaWV6ZSwgMTcuIEF1ZyAyMDExLCAyMDo1NDo1MSk6Cn4jISBybj1CaXJkeSBydD0xMzEzNjAyNjQ5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTMxMjYxNzUzMApEYW5rZSA6KSBHdXQgenUgd2lzc2VuLiBEYW5uIG5laG0gaWNoIDUgWmltbWVyIDopIE1ha2xlciB3aWxsIGljaCBuaWNodDsgZGFzCnNlaGUgaWNoIG5pY2h0IGVpbi4KCk1pZXplCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBaaW1tZXIvV29obnVuZyBpbiBCb25uIGdlc3VjaHQgKFZhbmlvbiwgMTcuIEF1ZyAyMDExLCAyMjoyMjo1MCk6Cn4jISBybj1NaWV6ZSBydD0xMzEzNjA3MjkxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTMxMjYxNzUzMApJY2ggaGFiIGRhbWFscyBpbSBIZWlkZXJob2YgZ2V3b2hudC4gRWluZW0gcmVjaHQgbmV1ZW4gV29obmdlYmlldCBvYmVyaGFsYiB2b24KQmFkIEdvZGVzYmVyZy4gRGllIFdvaG51bmcgaGF0dGUgaWNoIGJlaSBkZXIgV29obmJhdSBHbWJIIGdlbWlldGV0LiBBbGxlcyBpbgphbGxlbSBzZWhyIHNjaG9lbmUsIGhhbGJ3ZWdzIGJlemFobGJhcmUgV29obnVuZ2UgdW5kIGVpbiBzZWhyIGd1dGVyIFNlcnZpY2UuCkV2ZW50dWVsbCBpc3QgZGEgd2FzIGZyZWkuIEFjaHNvLCBlcyBpc3QgendhciBub2NoIEJhZCBHb2Rlc2JlcmcsIGFiZXIgb2huZQpBdXRvIGlzdHMgbmljaHQgZWluZmFjaCwgZGVuayBpY2guCgpWKgpQUzogaHR0cDovL3d3dy53b2huYmF1LWdtYmguZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsZWluZXIgRWluc3RpZWcuLi4uIChIdW1uaSwgMTQuIE9rdCAyMDEyLCAwMDo1Nzo0MCk6CkhhYiBtYWwgZWluZW4ga2xlaW5lbiBFaW5zdGllZyBpbnMgTW9yZ2VuZ3JhdWVuIGdlYmF1dC4gS29tbWVudGFyZSBlcmJldGVuLApCZXNzZXJtYWNoZW4gYXVjaCwgZGFzIGlzdCBlaW4gU2NobmVsbHNjaHVzcywgYXVjaCB3ZW5uIGVyIDQ1IE1pbnV0ZW4gZGF1ZXJ0LgoKaHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVU1RDJBajg2cjZNCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtsZWluZXIgRWluc3RpZWcuLi4uIChIdW1uaSwgMTQuIE9rdCAyMDEyLCAwMDo1ODoyNSk6Cn4jISBybj1IdW1uaSBydD0xMzUwMTY5MDYwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM1MDE2OTA2MApBY2ggamEuLi4gendlaSBMZXV0ZSBoYWJlbiBtaWNoIGVpbiB3ZW5pZyBhdXMgZGVtIEtvbnplcHQgZ2VicmFjaHQsIGF1ZgotYW5mLi4uIGFsc28gYml0dGUgc2VodCBtaXIgZGVuIGVpbmVuIGR1bW1lbiBTcHJ1Y2ggbmFjaC4uLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2xlaW5lciBFaW5zdGllZy4uLi4gKEFyaywgMTQuIE9rdCAyMDEyLCAwOTo0NzozNCk6Cn4jISBybj1IdW1uaSBydD0xMzUwMTY5MTA1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM1MDE2OTA2MApIZWhlLCB3aWUgc3Vlc3MsIEh1bW5pIHp1enVob2VyZW4gOkQKVW5kIGRhIGlzdCBqYSBpbW1lciBub2NoIGRlciBEZXBwZW5wcmllc3RlciwgZGVyIGRpZSBCaWVuZSB1ZWJlciBkYXMgVHV0b3JpYWwKYmVsZWhydCAqZyoKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLbGVpbmVyIEVpbnN0aWVnLi4uLiAoQXJrLCAxNC4gT2t0IDIwMTIsIDA5OjQ4OjQ0KToKfiMhIHJuPUFyayBydD0xMzUwMjAwODU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM1MDE2OTA2MApTb2xsaWNoIGF1c2JhdWVuPyBXYXIgbWFsIGFscyBmdW5ueSB1bmQgc2NodXR6d3VlcmRpZyBnZXNlaGVuIHdvcmRlbiA6KQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEtsZWluZXIgRWluc3RpZWcuLi4uIChIdW1uaSwgMTQuIE9rdCAyMDEyLCAxMTowNTozOCk6Cn4jISBybj1BcmsgcnQ9MTM1MDIwMDkyNCByZz1hbnplaWdlbgp+IyEgdGlkPTEzNTAxNjkwNjAKSGUsIGRhcyBpc3QgdG9sbCEgRGFzIHNhZyBpY2ggZGFubiBqYSBhdWNoIDstKQoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEtsZWluZXIgRWluc3RpZWcuLi4uIChSdW1hdGEsIDE0LiBPa3QgMjAxMiwgMTU6Mjk6NDQpOgp+IyEgcm49SHVtbmkgcnQ9MTM1MDIwNTUzOCByZz1hbnplaWdlbgp+IyEgdGlkPTEzNTAxNjkwNjAKU2llaHQgc3VwZXIgYXVzLCBhYmVyIGRlciBUb24gaXN0IHZpZWwgenUgbGVpc2UuIEljaCBkYWNodGUgenVlcnN0LCBkYXMgd2FlcmUKZ2FueiBvaG5lIFRvbi4KUnVtKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEtsZWluZXIgRWluc3RpZWcuLi4uIChIdW1uaSwgMTQuIE9rdCAyMDEyLCAyMzoxNTozNSk6Cn4jISBybj1SdW1hdGEgcnQ9MTM1MDIyMTM4NCByZz1hbnplaWdlbgp+IyEgdGlkPTEzNTAxNjkwNjAKSmEsIGFlcmdlcnQgbWljaCBhdWNoLCB3YXIgZWluZSBGcmFnZSBkZXIgRWluc3RlbGx1bmcuIE1hbCBzY2hhdWVuLCB3aXJkCnNpY2hlciBub2NoIGJlc3NlciwgYWJlciBub2NobWFsIG1hY2hlbiBtYWcgaWNoIGdlcmFkZSBuaWNodC4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBLbGVpbmVyIEVpbnN0aWVnLi4uLiAoUnVtYXRhLCAxNS4gT2t0IDIwMTIsIDEwOjI5OjI3KToKfiMhIHJuPUh1bW5pIHJ0PTEzNTAyNDkzMzUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMzUwMTY5MDYwClZsbHQga2FubiBtYW4gamEgZGllIFRvbnNwdXIgcmF1c3ppZWhlbiwgbGF1dGVyIG1hY2hlbiB1bmQgd2llZGVyIGVpbmJhdWVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtsZWluZXIgRWluc3RpZWcuLi4uIChaZXNzdHJhLCAxNS4gT2t0IDIwMTIsIDIyOjE0OjMwKToKfiMhIHJuPUh1bW5pIHJ0PTEzNTAxNjkwNjAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMzUwMTY5MDYwCkRhbmtlISA6LSkKS2xlaW5lciBWb3JzY2hsYWc6IGJlaSB3ZWl0ZXJlbiBWaWRlb3Mgdm9uIERpciBvZGVyIGFuZGVyZW46IGljaCBlbXBlaGxlIGVoZXIKZGllIFBvcnRudW1tZXIgNDcxMSwgZGEgVGVsbmV0IEFGQUlLIHp1bWluZGVzdCBiaXNsYW5nIG9lZnRlciBnZXNwZXJydCB3YXIgYWxzCmRpZXNlciBBdXN3ZWljaHBvcnQuCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtsZWluZXIgRWluc3RpZWcuLi4uIChIdW1uaSwgMTUuIE9rdCAyMDEyLCAyMzo0ODozMCk6Cn4jISBybj1aZXNzdHJhIHJ0PTEzNTAzMzIwNzAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMzUwMTY5MDYwCkdlbmF1IGRhcyBzYWcgaWNoIGphIDstKQoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEtsZWluZXIgRWluc3RpZWcuLi4uIChIaWdobGFuZGVyLCAxNi4gT2t0IDIwMTIsIDEwOjU4OjUzKToKfiMhIHJuPUh1bW5pIHJ0PTEzNTAzMzc3MTAgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMzUwMTY5MDYwCm1nLm11ZC5kZSBpc3QgYWJlciBrZWluZSBUQ1AvSVAtQWRyZXNzZSwgSHVtbmkgOikKCkhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS2xlaW5lciBFaW5zdGllZy4uLi4gKFplc3N0cmEsIDE2LiBPa3QgMjAxMiwgMTQ6NTI6MjMpOgp+IyEgcm49SGlnaGxhbmRlciBydD0xMzUwMzc3OTMzIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM1MDE2OTA2MApEYXMgaGF0IGVyIGFiZXIgYXVjaCBnZXNhZ3QuIDstKQoKWmVzc3RyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogS2xlaW5lciBFaW5zdGllZy4uLi4gKEh1bW5pLCAxOS4gT2t0IDIwMTIsIDAxOjA5OjQ1KToKfiMhIHJuPVplc3N0cmEgcnQ9MTM1MDM5MTk0MyByZz1hbnplaWdlbgp+IyEgdGlkPTEzNTAxNjkwNjAKRXMgaXN0IGF1c3NlcmRlbSBkYXMsIHdhcyBkZXIgQ2xpZW50IHdpbGwsIHdlbm4gZGEgIlRDUC9JUCIgc3RlaHQuIDstKSBBYmVyCnN0aW1tdCBuYXR1ZXJsaWNoLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEtsZWluZXIgRWluc3RpZWcuLi4uIChHbm9tZSwgIDIuIE5vdiAyMDEyLCAwMDo0MTozNCk6Cn4jISBybj1IdW1uaSBydD0xMzUwNjAxNzg1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM1MDE2OTA2MAoiQmlzdCBlaW4gZWNodCBnZWlsZXIgRW50ZXJ0YWluZXIuIiAtPiAqd2FlbHoqIDopCgoiSWNoIGhhYiBqYSBzY2hvbm1hbCBpbSBNdWQgZ2VzcGllbHQuIgoiU28sIGljaCBnZWIgbWFsIGVpbmUgZS1tYWlsLUFkcmVzc2UgZWluLi4uIGhhaGEsIGRpZSBnZWIgaWNoIG5pY2h0IGVpbi4iCgpIdW1uaSwgZ3Jvc3NlcyBLaW5vLiA6KQoKCmduT21lCgpwLnMuIEljaCBzZWhlIGdlcmFkZSwgZGFzcyBtYW4gYmVpbSBhbGxlcmVyc3RlbiBFaW5sb2dnZW4gdm9uIFRleHQgZXJzY2hsYWdlbgp3aXJkLi4uIGNpY2Vyb25lcywgdHV0b3JpYWwsIGViZW5lLCBtZXJsaW4sIHp3ZXJnZW5wcmllc3Rlci4uLiBtdXNzIGRhcyBzZWluPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogS2xlaW5lciBFaW5zdGllZy4uLi4gKFplc3N0cmEsICAyLiBOb3YgMjAxMiwgMDA6NDM6NDcpOgp+IyEgcm49R25vbWUgcnQ9MTM1MTgxMzI5NCByZz1hbnplaWdlbgp+IyEgdGlkPTEzNTAxNjkwNjAKRGllIHVlYmVyYXJiZWl0dW5nIGRlcyBMb2dpbnNjcm9sbHMgc3RlaHQgYXVjaCBhdWYgZGVtIFByb2dyYW1tLCBqYS4gRGFzIHdpcmQKaG9mZmVudGxpY2ggYmFsZCB3ZW5pZ2VyLgoKWmVzc3RyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VyYnVuZyBhdWYgZGVyIFNwaWVsZW1lc3NlIChIdW1uaSwgMjAuIE9rdCAyMDEzLCAxODo1Nzo0NSk6CkhhbGxvIGlociwKCnVtIGRhcyBtYWwgenUgdmVya3VlbmRlbjogRGVyIFVocndlcmstVmVybGFnIChpbiBQZXJzb24gdm9uIFZlcmxhZ3NsZWl0ZXIKUGF0cmljIEdvZXR6KSBoYXQgdW5zIGhldXRlIGVybGF1YnQsIGF1ZiBkZXIgU3BpZWxlbWVzc2UgYW4gaWhyZW0gU3RhbmQKTUctUG9zdGthcmVuIHp1IHZlcnRlaWxlbi4KCkljaCBmaW5kZSBkYXMgZWluZSB0b2xsZSBHZXN0ZSB1bmQgZXJtdXRpZ2UgZm9sZ2xpY2ggYWxsZSBNdWRkZXJpbm5lbiB1bmQKTXVkZGVyIHp1bSBiZWRpbmd1bmdzbG9zZW4gS29uc3VtIHVuZCBFcndlcmIgdm9uIFVocndlcmstUHJvZHVrdGVuLiBOdXIgYWxzCkJlaXNwaWVsZTogVWhyd2VyayBwcm9kdXppZXJ0IERTQS1NeXJhbm9yLCBEdW5nZW9uc2xheWVycywgRGVhZGxhbmRzIChDbGFzc2ljCnVuZCBIZWxsIG9uIEVhcnRoLCBqd2VpbHMgZGllIGRldXRzY2hlIFZlcnNpb24pLCBEZXIgRWluZSBSaW5nIChkdC4gVmVyc2lvbiksClNwYWNlOiAxODg5IChkaXRvKSB1bmQgYWxzIEVpZ2VuZ2V3YWVjaHMgKG5vY2ggbmljaHQgZmVydGlnLCBhYmVyIGltCmF1c2dlZGVobnRlbiBCZXRhdGVzdCkgU3BsaXR0ZXJtb25kLgoKU28sIGdlbnVnIFdlcmJ1bmcgZ2VtYWNodCwgaWNoIGZpbmRlIG51ciwgd2VubiBkaWUgZnVlciB1bnMgd2VyYmVuLCB3ZXJiZSBpY2gKaGllciBhdWNoIGZ1ZXIgZGllLgoKSHVtbmkKUFM6IERpZSBMaXN0ZSBvYmVuIGlzdCBiZWlsZWliZSBuaWNodCBlcnNjaG9lcGZlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VyYnVuZyBhdWYgZGVyIFNwaWVsZW1lc3NlIChab29rLCAyMC4gT2t0IDIwMTMsIDE5OjM5OjIxKToKfiMhIHJuPUh1bW5pIHJ0PTEzODIyODgyNjUgcmc9YW56ZWlnZW4KfiMhIHRpZD0xMzgyMjg4MjY1CkdyYW5kaW9zIQpab29rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlcmJ1bmcgYXVmIGRlciBTcGllbGVtZXNzZSAoU2FyYXksIDIxLiBPa3QgMjAxMywgMDg6NDA6MjkpOgp+IyEgcm49Wm9vayBydD0xMzgyMjkwNzYxIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM4MjI4ODI2NQpDb29sZSBTYWNoZSBkYXMhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUdXRvcmlhbC1WaWRlbyAoSHVtbmksIDI0LiBPa3QgMjAxMywgMDA6MTA6NTQpOgpIdWh1LAoKaWNoIGhhYmUgbm9jaCBlaW4gIkxldCdzIFBsYXkiLVZpZGVvIGdlbWFjaHQsIGRhIG1laW4gYWx0ZXMgVmlkZW8gendhciBlaW5lCk1pbmlxdWVzdGxvZXN1bmcgemVpZ3RlLCBhYmVyIGRhdm9uIGF1c2dpbmcsIGRhc3MgbWFuIHNpY2ggbmljaHQgaW0gVHV0b3JpYWwKd2llZGVyZmluZGV0LiBEYXMgbmV1ZSBWaWRlbyBnZWh0IGRhdm9uIGF1cy4KCkxlaWRlciB3YXIgbmFjaCBlaW5lciBoYWxiZW4gU3R1bmRlIGRlciBUb24gd2VnLCBkYXJ1bSBoYWIgaWNoIGRlbiBSZXN0IG5ldS4uLgoiZ2VzY2huaXR0ZW4iLiBBYmVyIGljaCBnbGF1YmUsIHNvIHNjaGxpbW0gaXN0IGRhcyBuaWNodC4KCldlciBhbHNvIExldXRlIGhhdCwgZGllIHNpY2ggbml4IGRydW50ZXIgdm9yc3RlbGxlbiBrb2VubmVuLCBvZGVyIHdlciB3ZW5pZwpaZWl0IGhhdCwgamVtYW5kZW0genUgaGVsZmVuLCBkZXIgZGFzIGdlcmFkZSBzcGllbHQgLSB2aWVsbGVpY2h0IGhpbGZ0cyBqYQp3ZW0uCgpodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TWJTVDE1eDg5eGsKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVHV0b3JpYWwtVmlkZW8gKFRpbiwgMjQuIE9rdCAyMDEzLCAxMTo1MjoxNyk6Cn4jISBybj1IdW1uaSBydD0xMzgyNTY2MjU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTM4MjU2NjI1NApKdXV1aHUhISEKbXVzcyBpY2ggZ2xlaWNoIG1hbCAgc2NoYXVlbjopKSkKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VidXJ0c3RhZyAoWm9vaywgIDYuIE5vdiAyMDEzLCAxMjoyMzoxOCk6CkluIEt1ZXJ6ZSBmZWllcmUgaWNoIG1laW5lbiAxMDAwLiBHZWJ1cnRzdGFnLiBCYW1idWxrbyBtZWludGUsCmluIG1laW5lbSBBbHRlciBrb2VubmUgbWFuIGRhcyBub2NoIGZlaWVybi4gU29mZXJuIGljaCBhbHNvCnNvIGVpbmUgVHJvZXRlIGZpbmRlLCBzZWlkIElociBhbGxlIGhlcnpsaWNoIGVpbmdlbGFkZW4uIAoKT2IgZGFzIGhldXRlIG9kZXIgbW9yZ2VuIHNlaW4gd2lyZDsgaWNoIHdlaXNzIGVzIG5pY2h0LiAKClpvb2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWJ1cnRzdGFnIChaZXNzdHJhLCAgNi4gTm92IDIwMTMsIDIzOjQzOjEyKToKfiMhIHJuPVpvb2sgcnQ9MTM4MzczNjk5OCByZz1hbnplaWdlbgp+IyEgdGlkPTEzODM3MzY5OTgKVWloLiBab29rIHVuZCBpY2ggc2luZCBqYSBmYXN0IGdsZWljaCBhbHQhIEljaCBoYWJlIGFtIFdFIG1laW5lbiAxMDAwLiBnZWhhYnQuClNjaGFkZSwgZGFzcyBpY2ggRGVpbmVyIFBhcnR5IG1vcmdlbiB2ZXJtdXRsaWNoIG5pY2h0IGJlaXdvaG5lbiBrYW5uLiBJY2gKd3VlbnNjaCBhYmVyIHZpZWwgU3Bhc3MgdW5kIGhlYiBtaXIgZWluIE9ya2JhZXJjaGVuIGF1ZiEgOy0pCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYXJhIHVuZCBkZXIgRmV1ZXJicmluZ2VyIChIdW1uaSwgMTIuIEFwciAyMDE1LCAxNzoyMzozMik6CkhhbGxvIGFsbGUsCgoqIGRhIGlyZ2VuZHdpZSBmdWVyIHZpZWxlIFNwaWVsYXJ0ZW4gZGVyIFBoYW50YXN0aWsgaW4gRGV1dHNjaGxhbmQgZWluICJJZ2l0dCwKZGFzIGtvZW5uZW4gRGV1dHNjaGUgbmljaHQiLUdydW5kdGVub3Igdm9yaGFuZGVuIGlzdCwKKiBtYW4gYXVzIEZTSyA2LCBGYW50YXN5IHVuZCBEZXV0c2NobGFuZCBhdXRvbWF0aXNjaCBzY2hsaWVzc3QgIktpbmRlcmZpbG0iIQoqIGRhIHVlYmVyIERpbmdlLCBkaWUgbWFuIG5pY2h0IGdlc2VoZW4gaGF0LCBnZXJuZSBnZXVydGVpbHQgd2lyZCAiZGFzIGthbm4Kbml4IHNlaW4hIgoKLi4uIHNwcmVjaGUgaWNoIGhpZXJtaXQgZWluZSBrbGFyZSBFbXBmZWhsdW5nIGZ1ZXIgZGVuIChnZXJhZGUgaG9mZmVudGxpY2gKbm9jaCBpbSBLaW5vIGxhdWZlbmRlbikgRmlsbSAiTWFyYSB1bmQgZGVyIEZldWVyYnJpbmdlciIgYXVzLgoKR3J1ZW5kZSBnaWJ0IGVzIHZpZWxlLgoKKiBNaXIgaGF0IGVyIFNwYXNzIGdlbWFjaHQuIChEYXMgaXN0IHNlaHIgc3ViamVrdGl2KS4KKiBNaXIgZ2VmaWVsIHNjaG9uIGRpZSBSb21hbnZvcmxhZ2UuIChEaXRvKS4KKiBEZXIgRmlsbSBpc3Qgdm9uIFRvbW15IEtyYXBwd2VpcyAoZGVyIGhhdCBhdWNoICJCZXJuZCBkYXMgQnJvdCIgZXJmdW5kZW4uCkZpbmQgaWNoIGF1Y2ggZ3V0LiBEaXRvLikKKiBKYW4gSm9zZWYgTGllZmVycyBzcGllbHQgZWluZW4gUHJvZmVzc29yLiBEYXMga2FubiBlciwgZGFzIHdlaXNzIG1hbiwgd2VubgptYW4gZGVuIE11ZW5zdGVyYW5lciBUYXRvcnQga2VubnQgKGVyIHNwaWVsdCBoaWVyIGFiZXIgbmljaHQgaGFsYiBzbyBhcnJvZ2FudAp3aWUgZGEpLgoqIFNjaGFuZG1hdWwgaGFiZW4gYW0gU291bmR0cmFjayBnZWFyYmVpdGV0LgoqIERpZSBFZmZla3RlIHNpbmQgdGF0c2FlY2hsaWNoIHJpY2h0aWcgZ3V0LgoqIERlciBGaWxtIGhhdCwgYXVjaCB3ZW5uIGVzIGVyc3QgZ2FyIG5pY2h0IHVuYmVkaW5ndCBzbyBzY2hlaW50LCByZWNodAphdXRoZW50aXNjaGUgRGFyc3RlbGx1bmdlbiBkZXIgbm9yZGlzY2hlbiBNeXRob2xvZ2llLgoqIERlciBGaWxtIGlzdCBtaXQgSGVyemJsdXQgZ2VtYWNodC4gRGFzIGlzdCBuaWNodCBpbW1lciBlaW4gQXJndW1lbnQsIGhpZXIKYWJlciB1ZWJlcnpldWd0IGVzLiBEYXMgaXN0IGVpbiB3YXNjaGVjaHRlciBGYW50YXN5ZmlsbSwgZGVuIHNpY2hlciBhdWNoCktpbmRlciBzZWhlbiBrb2VubmVuIChpY2ggd3VlcmRlIGVoZXIgOCBhbHMgNiBhbHMgQmFzaXNhbHRlciBuZWhtZW4sIGFiZXIgaWNoCmRlbmtlLCBzY2hhZGVuIHdpcmQgZGFzIGF1Y2ggZWluZW0gU2VjaHNqYWVocmlnZW4gbmljaHQpLCBhYmVyIGtlaW4KIktpbmRlcmZpbG0iLgoKQWxsZXMgaW4gQWxsZW06IEFuc2NoYXVlbi4KClVuZCB3ZW5uIEV1Y2ggZGFtaXQgc2Nob24gTGV1dGUgYXVmIGRpZSBOZXJ2ZW4gZ2VoZW46IEphLiBEYXMgdHVuIHNpZS4gTWl0ClJlY2h0LgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRyYWlsZXIgb25saW5lISAoSHVtbmksIDE4LiBBdWcgMjAxNiwgMjI6NDE6NDEpOgpJY2ggaGFiZSBlaW5lbiBUcmFpbGVyIGdlYmFzdGVsdC4KCmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03SE9nOTZTalAydwoKSG9mZmUsIGRlciBMaW5rIHBhc3N0LiBUaXBwZSBnZXJhZGUgYXVmIGVpbmVtIEhhbmR5LgoKSHVtbmkKcQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lwZmVsbGFldWZlciAoSHVtbmksIDIwLiBBdWcgMjAxNiwgMDA6MDA6NDkpOgpMaWViZSBNdWRnZW1laW5kZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCmVpZ2VudGlsY2ggc29sbHRlIGluIGRpZXNlbSBNb21lbnQgYmVpIGFsbGVuIHdpY2h0aWdlbiBkZXV0c2NoZW4KRWJvb2stUGxhdHRmb3JtZW4gIldpcGZlbGxhZXVmZXIiLCBtZWluIGVyc3RlciAoc293ZWl0IGljaCBhdWNoIHdlaXNzLAp1ZWJlcmhhdXB0IGRlciBlcnN0ZSkgTW9yZ2VuR3JhdWVuLVJvbWFuLCBlcnNjaGVpbmVuLiBTaWVoZSBhdWNoIGRlbiBUcmFpbGVyCmltIEFydGlrZWwgenV2b3IuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKTnVyIGxlaWRlciB3YXIgaWNoIHp1IGJsb2VkLCBtYWwgdm9yaGVyIHp1IHNjaGF1ZW4sIHdpZSBsYW5nZSBkaWVzZQpQbGF0dGZvcm1lbiBicmF1Y2hlbiwgdW0gZWluZ2VnYW5nZW5lIERhdGVpZW4genUgInZhbGlkaWVyZW4iLiBEYXMgc2luZCB3b2hsCnRlaWx3ZWlzZSBiaXMgenUgMyBUYWdlLiBEYSBpY2ggZGFzIGViZW4gZXJzdCBhbGxlcyBob2NoZ2VsYWRlbiBoYWJlLCBrYW5uIGRhcwpub2NoIGRhdWVybi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApOaWNodHMgZGVzdG8gdHJvdHosIHVuZCBvYnNjaG9uIC4uLiAoQWNoIE1pc3QuIEljaCBoYWIgc2Nob24gd2llZGVyICJPYnNjaG9uIgpnZXNjaHJpZWJlbi4gTWVpbiBMZWt0b3IgaGF0IGdlc2NoaW1wZnQsIGljaCBoYWJlIHNpZSBhbGxlIGluICJPYndvaGwiCmdlYWVuZGVydCkgLi4uIGljaCBqZXR6dCBsYXV0ZXIgR2ViaWV0ZSBhbnNjaGxpZXNzZW4gd2VyZGUsIGhhYmUgaWNoCmJlc2NobG9zc2VuLCBlaW5lIG5ldWUgUGxhdHRmb3JtIApmdWVyIEVib29rcyBpbnMgTGViZW4genUgcnVmZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCkRpZXNlIFBsYXR0Zm9ybSBoZWlzc3QgTW9yZ2VuZ3JhdWVuLiBIYWhhLiBVbmQgaWhyIGtlbm50IHNpZS4gICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKTWFuIGJlZGllbnQgc2llIHdpZSBmb2xndDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAp0bSBodW1uaSBJY2ggd2lsbCBlaW4gQnVjaCEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCkRhbm4ga29tbXQgZXZ0bC4gRGllc2UgTWVsZHVuZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKS2VpbiBzb2xjaGVyIFNwaWVsZXIhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApEYW5uIGlzdCBkaWUgUGxhdHRmb3JtIGdlcmFkZSBhdXNzZXIgQmV0cmllYi4gSWhyIG11ZXNzdCBzcGFldGVyIHdpZWRlcmtvbW1lbi4KIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCldlbm4gZGllc2UgTWVsZHVuZyBrb21tdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKSHVtbmkgaXN0IHNlaXQgeCB2b2VsbGlnIHVudGFldGlnLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAooRGFiZWkgaXN0IHggaXJnZW5kd2FzKSAtIGRhbm4gd2FydGV0IGVyc3RtYWwsIG9iIHNpY2ggZG9jaCBub2NoIHdhcyB0dXQuICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCkFuc29zdGVuIGtvbW10IHZlcm11dGxpY2ggZGFubiBmb2xnZW5kZSBGcmFnZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKSHVtbmkgdGVpbHQgRGlyIG1pdDogU2VociBzY2hvZW4uIFNhZyBiaXR0ZSBlaW5tYWwgRGVpbmUgRW1haWwtQWRyZXNzZS4gICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApEdSBhbnR3b3J0ZXN0IGRhbm4gbWl0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCnRtIGh1bW5pIHd1ZmZAd3VmZndpZmYud3UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKV29iZWkgRHUgd3VmZkB3dWZmd2lmZi53dSBkdXJjaCBEZWluZSBNYWlsYWRyZXNzZSBlcnNldHp0LiAgICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApFcyBrYW5uIHNlaW4sIGRhc3MgRHUgZGFuYWNoIGluIGVpbmUgV2FydGVzY2hsZWlmZSBrb21tc3QuIERhcyB3aXJkIERpciBkYW5uCm1pdGdldGVpbHQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKRGFuYWNoIGNoZWNrc3QgRHUgYml0dGUgRGVpbmVuIFBvc3RlaW5nYW5nLiBJbiBlaW5pZ2VuIE1pbnV0ZW4gd2lyZCBkYW5uIGRhcwpFYm9vayBiZWkgRGlyIGVyc2NoZWluZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCkVzIHdpcmQgaW0gRVBVQi0gdW5kIGltIE1PQkktRm9ybWF0IGdlbGllZmVydC4gRGVyIEtpbmRsZSBrYW5uIE1PQkksIGFsbGUKYW5kZXJlbiBSZWFkZXIgdW5kIFRhYmxldHMga29lbm5lbiBpbiBkZXIgUmVnZWwgRVBVQiAodW5kIG1laXN0IGF1Y2ggTU9CSSkuCkljaCBwYWNrZSBhdWNoIG5vY2ggZWluZSBBbmxlaXR1bmcgZGF6dSwgd2llIG1hbiBkYXMgcGVyIE1haWwgaW4gZGVuIEtpbmRsZQpiZWtvbW10IChsZWlkZXIga2FubiBpY2hFdWNoIGJlaSBhbmRlcmVuIFJlYWRlcm4gbmljaHQgd2VpdGVyaGVsZmVuLCBhYmVyIGljaApiaW4gc2ljaGVyLCBkYXMgc2NoYWZmdCBpaHIgYXVjaCBzby4pIEVQVUIgaXN0IGF1Y2ggZGF6dSBnZWVpZ25ldCwgYW0KQmlsZHNjaGlybSBnZWxlc2VuIHp1IHdlcmRlbiwgd2VyIGRhcyBsaWViZXIgd2lsbC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApOYXR1ZXJsaWNoIGlzdCBkYXMgQnVjaCBEUk0tZnJlaS4gVWVicmlnZW5zIGF1Y2ggYmVpIGRlbiBvZmZpemllbGxlbgpQbGF0dGZvcm1lbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogClp1c2FtbWVuIGRhbWl0IGtvbW10IGVpbmUgUmVjaG51bmcuIERpZXNlIHdpcmQgc2ljaCB1ZWJlciBkZW4gQmV0cmFnIHZvbiA2LDk5CkV1cm8gYmVsYXVmZW4uIERhcyBpc3QgZGVyIG9mZml6aWVsbGUgTGFkZW5wcmVpcy4gRGFzIGlzdCBlaW4gRS1Cb29rLCBkYXMgaXN0CklNSE8gbmljaHQgcHJlaXNnZWJ1bmRlbiwgYWJlciBiaWxsaWdlciBtYWNoZW4ga2FubiBpY2ggZGFzIGRlbm5vY2ggbmljaHQKKGF1Y2ggd2VubiBpY2ggbmF0dWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKKE5laW4uIEljaCBnbGF1YmUgbmljaHQsIGRhc3Mgc2llIGRhcyBoaWVyIGZpbmRlbi4gQWJlciBpbW1lcmhpbiBpc3QgZGFzIGVpbgpvZmZpemllbGxlciBNUEEtQXJ0aWtlbCB1bmQgZGFtaXQgaXJnZW5kd2FubiBhdWNoIHVlYmVyIEdvb2dsZSBhdWZmaW5kYmFyLikgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCkJlemFobGVuIGtvZW5udCBpaHIgZGFubiBlaW5mYWNoIHBlciBVZWJlcndlaXN1bmcuIEphLCBpY2ggZ2xhdWJlIEV1Y2gsIGRhc3MKaWhyIGRhcyB0dXQuIEFsdGVybmF0aXYgYmVpbSBuYWVjaHN0ZW4gU3RhbW10aXNjaCBpbiBCb2NodW0uIDstKSAgICAgICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApJY2gga2FubiBhYmVyIGphIHZlcnNwcmVjaGVuLCB2b24gZGVuIE1laHJlaW5uYWhtZW4gcHJvIEJ1Y2ggZWluZW4gRXVybyBhbiBkZW4KVmVyZWluIHp1IHNwZW5kZW4uIFNwcmljaCwgaWhyIGthdWZ0IGRhcyBFYm9vayB1bmQgdW50ZXJzdHVldHp0IGRlbiBCZXRyaWViCmRlcyBTZXJ2ZXJzISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKIkJ1aCBCdWghIiBob2VyZSBpY2ggZGEgZGllIEVyc3RlbiBydWZlbi4gIkJlaSBBbWF6b24vVG9saW5vIC4uLiBiZWtvbW1lIGljaAplaW5lIFZvcnNjaGF1ISBCdWggQnVoISBIaWVyIGthdWZlIGljaCBkaWUgS2F0emUgaW0gU2FjayEiICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCk51biBkZW5uLiBOZWluLCBkYXMgbXVzcyBqYSBuaWNodCBzZWluLiBJY2ggaGFiZSBiaXMgZWJlbiB1ZWJlcmxlZ3QsIHdpZSBpY2gKZGllIExlc2Vwcm9iZSBvbmxpbmUgc3RlbGxlbiBzb2xsLiBIYWhhLiBXaWUgYmxvZWQgYmluIGljaC4gV2lyIGhhYmVuIGhpZXIgamEKZWluIHBlcmZla3RlcyBUZXh0bWVkaXVtLiBEaWUgTGVzZXByb2JlIGtvbW10IGluIGRpZSBNUEEuIE5hZWNoc3RlciBBcnRpa2VsLgo7LSkgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKKFVuZCBuZWluLiBEYXMgQnVjaCBlbnRoYWVsdCBVbWxhdXRlLiBEaWUgYmF1IGljaCBoaWVyZnVlciBudXIgcmF1cy4pICAgICAgICAgCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIApOb3QgLT4gVHVnZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCkh1bW5pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMZXNlcHJvYmUgKEh1bW5pLCAyMC4gQXVnIDIwMTYsIDAwOjA5OjM0KToKV2lwZmVsbGFldWZlcgoKLS0gS29zdGVubG9zZSBMZXNlcHJvYmUgenVtIEJlaHVmZSBkZXIgVmVyd2VuZHVuZyBpbiBkZXIgTVBBIC0tCgoKRGVyIGZvbGdlbmRlIFJvbWFuIHN0YW1tdCBhdXMgZGVyIFdlbHQgZGVzIE1vcmdlbkdyYXVlbiwgZWluZXMKTXVsdGktVXNlci1EdW5nZW9ucy4gTWFuIGtvZW5udGUgZGllc2UgU3BpZWxlLCBkaWUgc29nZW5hbm50ZW4gTVVEcywgYWxzClZvcmxhZXVmZXIgZGVyIGhldXRpZ2VuIE1hc3NpdmVseSBNdWx0aXBsYXllciBPbmxpbmUgUm9sZSBQbGF5aW5nIEdhbWVzCihNTU9SUEdzKSBzZWhlbiAod2llIFdvcmxkIG9mIFdhcmNyYWZ0KS4gRGVyIFVudGVyc2NoaWVkIGlzdCwgZGFzcyBzaWUga2VpbmUKR3JhZmlrIGhhYmVuLCBzb25kZXJuIG51ciBhdXMgVGV4dCBiZXN0ZWhlbiAtIGFiZXIgbWVociBkYXp1IGltIE5hY2h3b3J0LgoKRGFzIE1vcmdlbkdyYXVlbiBpc3QgZWluIHNlaHIgYWx0ZXMgT25saW5lc3BpZWwsIGVzIGV4aXN0aWVydCBiZXJlaXRzIHNlaXQKMTk5Mi4gU29taXQgaXN0IGVzIGFlbHRlciBhbHMgdmllbGUgRmFudGFzeS1Sb21hbmUsIGRpZSBkZXJ6ZWl0IGRpZSBSZWdhbGUKZnVlbGxlbi4gRmVybmVyIGhhYmVuIHNpY2ggSG9yZGVuIHZvbiBrcmVhdGl2ZW4gUHJvZ3JhbW1pZXJlcm4gZG9ydCBhdXNnZXRvYnQuCkRpZXMgZnVlaHJ0IHp1IGVpbmlnZW4gTmFtZW5zd2FobGVuLCBkaWUgYXVzIFNpY2h0IGRlcyB0eXBpc2NoZW4KRmFudGFzeS1MZXNlcnMgZGVzIDIxLiBKYWhyaHVuZGVydHMgZG9jaCBlaGVyIFN0aXJucnVuemVsbiBhdXNsb2VzZW4uCgpJY2ggaG9mZmUsIGRhc3MgZGllc2UgZGVuIExlc2VnZW51c3MgbmljaHQgenUgc2VociBzdG9lcmVuLiBJY2ggbWFnIG5pY2h0IGF1ZgpzaWUgdmVyemljaHRlbiwgZGEgc2llIGZ1ZXIgZGllIE1vcmdlbmdyYXVlbi1TcGllbGVyIGVpbmVuIGhvaGVuCldpZWRlcmVya2VubnVuZ3N3ZXJ0IGhhYmVuLgoKKEphamEsIGZ1ZXIgZGllIFNlaGVyIHVuZCBNYWdpZXIgbmF0dWVybGljaCBhdWNoIC4uLiBhYmVyIGRhenUgbnVuIHdpcmtsaWNoCm1laHIgaW0gTmFjaHdvcnQuKQoKCgoKCldhbGQKCgoKCgpHYW56IG9iZW4sIGF1ZiBkZW0gaG9lY2hzdGVuIFR1cm0gaW5taXR0ZW4gZGVyIEZlc3R1bmcgZGVyIERhZW1tZXJ1bmcsIHN0YW5kCmRlciBFaXNpZ2UuCgoKCkRpZSwgZGllIHVudGVuIGR1cmNoIGRpZSBGZXN0dW5nIGdpbmdlbiwgbGllZmVuIHVuZCBrcm9jaGVuLCBnbGF1YnRlbiBzaWNoIGFscwpTaWVnZXIsIGRhIHNpZSBhdWYgc2VpbmVyIFNlaXRlIHN0YW5kZW4uIFNpZSBibGlja3RlbiB6dSBpaG0gYXVmLCB6dSBzZWluZW0KZWlzaWdlbiBHZXNpY2h0IHVuZCBkZW0gc3RyYWhsZW5kZW4gU3Rpcm5yZWlmLiBTaWUgZ2xhdWJ0ZW4sIHNpY2ggaW4gc2VpbmVtCmthbHRlbiBHbGFueiB6dSBzb25uZW4uIERvY2ggaW4gV2FocmhlaXQgd2FyZW4gc2llIGJlcmVpdHMgamV0enQgZGllClZlcmxvcmVuZW4sIGRlbm4gZXIgaGF0dGUgc2llIHVudGVyIHNlaW5lbiBXaWxsZW4gZ2VrbmVjaHRldC4gU2llIGJ1aGx0ZW4gdW5kCmthZW1wZnRlbiB1bSBzZWluIEFuc2VoZW4sIGRvY2ggYWxsIGRpZXMgd2FyIGlobSBlaW5lcmxlaS4KCkVyIHNjaGF1dGUgaGludW50ZXIgYXVmIGRhcyBHZXdpbW1lbCwgR2V3dXNlbCB1bmQgR2VrcmllY2hlLCBkYXMgc2ljaCBkdXJjaApkaWUgdmllciBSaW5nZSB6b2csIGF1cyBkZW5lbiBkaWUgRmVzdHVuZyBhdWZnZWJhdXQgd2FyLgoKSGllcmhlciBrYW0gbmllbWFuZCwgZGVyIG5pY2h0IGhpZXJoZXJnZWhvZXJ0ZS4gRGllIE1lbnNjaGVuLCBkaWUgaW4gZGVyIE5hZWhlCndvaG50ZW4sIGRpZW50ZW4gaWhtIG9kZXIgbGVidGVuIGluIHN0YWVuZGlnZXIgRnVyY2h0IHZvciBpaG0gdW5kIHNlaW5lcgpNYWNodC4KCkVyIGhhZXR0ZSB6dWZyaWVkZW4gc2VpbiBrb2VubmVuLiBVbmJlZ3Jlbnp0ZSBNYWNodCB1ZWJlciBUYXVzZW5kZS4gQWJlciBlcgprb25udGUgbmljaHQgenVmcmllZGVuIHNlaW4uIEVzIGdhYiBub2NoIHp1IHZpZWwsIGRhcyBuaWNodCBpaG0gZ2Vob2VydGUuIEVzCnd1ZXJkZSBuaWUgZ2VudWcgc2Vpbi4KCklobiB0cmllYiBkaWUgcmVpbmUgR2llci4gRXIgd2FyIHVuZXJzYWV0dGxpY2guIERhcyB3YXIgc2VpbmUgTmF0dXIuCgpTbyBzY2h3ZWlmdGUgc2VpbiBCbGljayB3aWVkZXIgenVtIEhvcml6b250LCB3ZWcgdm9uIGRlbSwgd2FzIGVyIGJlcmVpdHMKaGF0dGUuIEVyIHNhaCBkaWUgd2VpdGUgVHVuZHJhLCBuZWJsaWcgdW5kIG1lbnNjaGVubGVlci4gRXIgZHVyY2hkcmFuZyBhdWNoCmRlbiBOZWJlbCB1bmQgc2FoIG1pdCBzZWluZW0gZ2Vpc3RpZ2VuIEF1Z2UgZGFzLCB3YXMgZGFoaW50ZXJsYWcsIHdhcyBub2NoCm5pY2h0IGlobSBnZWhvZXJ0ZS4KCkRlbiBXYWxkLiBVbmQgZGllIEVsZmVuLgoKCgoKCioKCgoKCgpSYWJlbi4gVWViZXJhbGwgUmFiZW4uIERpY2tlLCBkdWVubmUsIGdyb3NzZSwga2xlaW5lLiBVbmQgYWxsZSwgYWxsZQprcmFlY2h6dGVuLgoKCgpTbGFibmlyIHdhciBhbmdla29tbWVuLCB1bmQgZGllIFJhYmVuIHdhcmVuIGRhLiBFciBzdGFuZCBtaXR0ZW4gendpc2NoZW4KaWhuZW4uIFdvIGthbWVuIGRpZSBWb2VnZWwgaGVyPyBXaWUga2FtIGVyIGhpZXJoZXI/IFdhcyBtYWNodGUgZXIgaGllcj8KCkVyIHNjaHVldHRlbHRlIHNpY2gga3Vyei4gS2FsdCB3YXIgZXMuIE5laW4sIGt1ZWhsLiBVbmQgdW0gaWhuIGhlcnVtIHdhcmVuIGRpZQpSYWJlbi4gVW56YWVobGJhciB2aWVsZS4KClVuZCBpaHIgS3JhZWNoemVuIGtsYW5nIGluIHNlaW5lbiBPaHJlbi4gS3VyeiBzY2htZXJ6dGUgZXMsIGFiZXIgZGFubiAuLi4KCkRhbm4gd2FyIGVzIGltbWVyIG5vY2ggbGF1dCwgYWJlciBhbmdlbmVobS4gU2VociBhbmdlbmVobS4gRGFzIEdla3JhZWNoemUgd2FyCm5pY2h0IGVpbm1hbCBzdG9lcmVuZC4gRWhlciB3aWUgTXVzaWsuCgpEaWUgU3plbmUgZXJzY2hpZW4gaWhtIHVud2lya2xpY2guIE5laW4sIG5pY2h0IHVud2lya2xpY2guIFdpcmtsaWNoLiBEZXV0bGljaAp3aXJrbGljaGVyLCBhbHMgdmllbGVzLCB3YXMgZXIgYmlzaGVyIGdlc2VoZW4gaGF0dGUgdW5kIHdhcyBlciBiaXNoZXIgZXJsZWJ0CmhhdHRlLiBFciB3YXIgZGEsIGVyIHdhciBnYW56IGRhLCBhbiBkaWVzZW0gT3J0LCB1bmQgZGllIFJhYmVuIHdhcmVuIGRhLiBVbmQKZ2VuYXUsIHdlaWwgZGllIFN6ZW5lIHNvIHdpcmtsaWNoIHdhciwgZXJzY2hpZW4gc2llIHVud2lya2xpY2guCgpFciBsYXVzY2h0ZSBrdXJ6IGluIHNpY2ggaGluZWluLiBXYXJ1bSB3YXIgZXIgaGllcj8gV2FzIHdvbGx0ZSBlciBoaWVyPwoKVW5kIGRhbm4gZmllbCBlcyBpaG0gd2llZGVyIGVpbjogRXIgd2FyIGF1ZiBkZXIgS3VlaGxlbiBMaWNodHVuZy4gRGVtIE9ydCBpbQpIZXJ6ZW4gZWluZXMgamVkZW4sIGFuIGRlbSBlciBzZWxic3QgZGVyIHNlaW4ga29ubnRlLCBkZXIgZXIgd2FyLiBBbiBkZW0gZXIKc2ljaCBzZWxic3QgZXJrZW5uZW4ga29ubnRlLiBEZXIgT3J0LCBhbiBkZW4gaWhuIGRpZSBVZWJ1bmdlbiBzZWluZXMgRnJldW5kZXMKSWxsZGVyZXRoIGdlYnJhY2h0IGhhdHRlbi4gRXMgd2FyIGVpbiBLaW5kZXJzcGllbCBnZXdlc2VuLCBuYWNoZGVtIGVyCnZlcnN0YW5kZW4gaGF0dGUsIHdpZSBlcyBnaW5nLgoKSmEsIGhpZXIgd2FyIGVpbmUgTGljaHR1bmcuIFVtIGlobiBoZXJ1bSB3dWNoc2VuIEJhZXVtZS4gU2Nob2VuZSBCYWV1bWUsCkVpY2hlbiwgQnVjaGVuIHVuZCBFcmxlbi4gR2VyYWRlIHVuZCBzdG9seiBnZXdhY2hzZW4uIFNpZSBzY2hpcm10ZW4gZGllCkxpY2h0dW5nIGdlZ2VuIGRlbiBSZXN0IGRlcyBXYWxkZXMgYWIuCgpFciBlcmlubmVydGUgc2ljaCBhbiBkaWUgV29ydGUgc2VpbmVzIEZyZXVuZGVzLiBJbGxkZXJldGhzIHNjaG5lZXdlaXNzZSBIYWFyZQpoYXR0ZW4gaW0gV2luZCBnZXdlaHQsIHNlaW5lIGdydWVuZW4gQXVnZW4gaWhuIGR1cmNoZHJpbmdlbmQgYW5nZWJsaWNrdC4gV2llCmltbWVyIHdhciBzZWluZSBTdGltbWUgdm9sbGVyIFp1dmVyc2ljaHQgZ2V3ZXNlbi4gIkR1IHdpcnN0IHdpc3Nlbiwgd2FubiBkdSBkYQpiaXN0LiIgU2VpbmUga2xhcmUgU3RpbW1lIGhhdHRlIGVzIHNvIGVpbmZhY2ggZGFyZ2VzdGVsbHQsIHdpZSBlcyBsZXR6dGVuCkVuZGVzIGF1Y2ggd2FyLgoKSWxsZGVyZXRoIGhhdHRlIG5vY2ggbWVociBlcnphZWhsdCwgYWJlciBrZWluZSBXb3J0ZSBoYXR0ZW4gaWhuIGhpZXJhdWYKdm9yYmVyZWl0ZW4ga29lbm5lbi4gRGllc2VyIE9ydCB3YXIga3VlaGwsIHNvIGt1ZWhsLCB3aWUgZXIgc2VsYnN0IHNlaW4KbXVzc3RlLCB3ZW5uIGVyIGRpZSBld2lnZW4gR2VmYWhyZW4gZGVzIEthbXBmZXMgdWViZXJzdGVoZW4gd29sbHRlLiBFciB3YXIKa3VlaGwgd2llIGVpbiBIZXJic3RhYmVuZCwgYW4gZGVtIGVpbiBXaW5kIGF1ZnpvZywgbnVyIGludGVuc2l2ZXIuIFVuZCBkZW5ub2NoCmZyb3IgU2xhYm5pciBuaWNodC4gRGllc2VyIE9ydCB3YXIga3VlaGwsIG5pY2h0IGthbHQuCgpBbGxlcmRpbmdzIGhhdHRlIElsbGRlcmV0aCBuaWNodHMgdm9uIGRlbiBSYWJlbiBnZXNhZ3QuICJKZWRlciBlcmxlYnQgZGllCkt1ZWhsZSBMaWNodHVuZyBhbmRlcnMuIEplZGVyIGlzdCBhdWYgc2VpbmVyIGVpZ2VuZW4gS3VlaGxlbiBMaWNodHVuZyIsIHdhcmVuCnNlaW5lIFdvcnRlIGdld2VzZW4uCgpXYXJ1bSB3YXJlbiBhdWYgc2VpbmVyIEt1ZWhsZW4gTGljaHR1bmcgUmFiZW4/IFNpZSBzY2hpZW5lbiBzaWNoIGRvcnQgd29obCB6dQpmdWVobGVuLiBVbmQgaXJnZW5kd2llIG1lcmt0ZSBlciwgZGFzcyBpaHIgR2VrcmFlY2h6ZSBuaWNodCBlaW5mYWNoIG51cgpzaW5ubG9zZXMgR2VzY2huYXR0ZXIgd2FyLiBTaWUgaGllc3NlbiBpaG4gd2lsbGtvbW1lbi4KCkFsbGUgUmFiZW4gaGllc3NlbiBpaG4gd2lsbGtvbW1lbi4KCkVyIGxlZ3RlIHNpY2ggaGluIHp3aXNjaGVuIHNpZSBhdWYgZGVuIEJvZGVuLiBTaWUga2FtZW4gaGludW50ZXIsIGh1ZXBmdGVuIGF1ZgppaG4genUsIHJpZWJlbiBpaHJlIEZlZGVybiBhbiBzZWluZXIgSGF1dC4gUmFiZW4uCgpFciBoYXR0ZSBzaWNoIG5pZSBnbHVlY2tsaWNoZXIgZ2VmdWVobHQuIEVyIHdvbGx0ZSBoaWVyYmxlaWJlbiwgYW4gZGllc2VtIE9ydCwKc2VpbmVtIE9ydCwgc2VpbmVyIEt1ZWhsZW4gTGljaHR1bmcuCgpFaW5pZ2UgUmFiZW4gcGlja3RlbiBuYWNoIGlobSwgZG9jaCBpaG4gc3RvZXJ0ZSBkYXMgbmljaHQuCgoKCgoKKgoKCgoKCiJWZXJkYW1tdCwgU2xhYm5pciwgd2FjaCBhdWYhIgoKCgpJbGxkZXJldGggc2NodWV0dGVsdGUgc2VpbmVuIEZyZXVuZCwgZGVyIG51ciBsYW5nc2FtIHdpZWRlciB6dSBzaWNoIGthbS4gUGFuaWsKbGFnIGluIHNlaW5lciBTdGltbWUsIGJpcyBkZXIgZGV1dGxpY2gga2xlaW5lcmUgQmxvbmRzY2hvcGYgZW5kbGljaCBkaWUgQXVnZW4KYXVmc2NobHVnLgoKRGllIGJlaWRlbiBzYXNzZW4gYXVmIGVpbmVyIFBsYXR0Zm9ybSwgb2JlbiBhdWYgZWluZXIgRWljaGUgYW0gT3N0cmFuZCBkZXIKRWxmZW5zaWVkbHVuZy4KCkRpZSBlaWdlbnRsaWNoZW4gSGFldXNlciBkZXIgRWxmZW4gcmFndGVuIG5pY2h0IHNlaHIgaG9jaCBhdWYuIERpZSBncm9lc3NlcmVuCkdlYmFldWRlIGhhdHRlbiB6d2VpIEdlc2Nob3NzZSwgdW5kIHNvIG11c3N0ZSBkaWUgUGxhdHRmb3JtIG5pY2h0IHNlaHIgaG9jaApzZWluLCBkYW1pdCBtYW4gc2llIHZvbSBCb2RlbiBvZGVyIGF1Y2ggdm9uIGRlbiBEYWVjaGVybiBkZXIgSGFldXNlciBhdXMgbmljaHQKc2VoZW4ga29ubnRlLiBFbGZlbiBiYXV0ZW4gbmljaHQgc2VociBob2NoLCBzaWUgbnV0enRlbiBCYWV1bWUsIHVtIGdyb2Vzc2VyZQpIb2VoZW4genUgZXJyZWljaGVuLiBTdGF0dGRlc3NlbiB3YXIgZmFzdCBqZWRlcyBFbGZlbmhlaW0gZWluIGVpZ2VuZXMKS3Vuc3R3ZXJrLiBKZWRlIFNhZXVsZSwgamVkZXIgQmFsa2VuLCB0ZWlsd2Vpc2UgYXVjaCBUaXNjaGUgdW5kIEJhZW5rZSB3dXJkZW4Kdm9uIHZpZWxlbiBFbGZlbiBtaXQgU2Nobml0emVyZWllbiB2ZXJ6aWVydC4gTmljaHQgdW1zb25zdCBnYWx0ZW4gRWxmZW5tb2ViZWwKYmVpIGFuZGVyZW4gVm9lbGtlcm4gYWxzIHRldXJlIFJhcml0YWV0ZW4uIEFiZXIgdmllbCBQbGF0eiBiZW5vZXRpZ3RlbiBFbGZlbgpvaG5laGluIG5pY2h0LCB1bmQgc28gYmxpZWJlbiBhdWNoIGlocmUgSGFldXNlciBlaGVyIGtsZWluLgoKVm9uIGRlciBQbGF0dGZvcm0gYXVzIGhhdHRlIG1hbiBlaW5lbiBoZXJ2b3JyYWdlbmRlbiBSdW5kYmxpY2sgdWViZXIgZGllIGdhbnplCkVsZmVuc2llZGx1bmcsIGRpZSBhbiBkaWVzZW0gc29ubmlnZW4gTmFjaG1pdHRhZyB1bnRlciBpaG5lbiBsYWcuCgpEZXIgT3J0IGhhdHRlIGtlaW5lbiBlaWdlbmVuIE5hbWVuLiBOYW1lbiBicmF1Y2h0ZW4gbnVyIGRpZSBNZW5zY2hlbiwgZGllIGlocmUKU3RhZWR0ZSB1bmQgRG9lcmZlciBtaXQgTmFtZW4gd2llIEhlaWRlbmh1cyBvZGVyIFBvcnQgVmFpbiB2ZXJzYWhlbi4gRGllcyB3YXIKZWluZSBTaWVkbHVuZyBkZXIgRWxmZW4uIEVzIGdhYiB2aWVsZSBTaWVkbHVuZ2VuIGRlciBFbGZlbiwgYWJlciBlaW5lbiBOYW1lbgpicmF1Y2h0ZSBtYW4gbmljaHQgZGFmdWVyLiBEaWUgU2llZGx1bmcgd2FyIGVpbmZhY2ggZGllIFNpZWRsdW5nLCB3aWUgZGllCkhlaW1hdCB2b24gYW5kZXJlbiBFbGZlbiBlYmVuIGRpZSBTaWVkbHVuZyBkZXIgYW5kZXJlbiBFbGZlbiB3YXIuIERhIGRpZSBFbGZlbgphdXNzZXJoYWxiIGlocmVycyBXb2hub3J0cyB3ZW5pZyBLb250YWt0ZSBoYXR0ZW4sIHJlaWNodGVuIGZ1ZXIgZGllIHdlbmlnZW4KR2VsZWdlbmhlaXRlbiBOYW1lbiB3aWUgIkV1cmUgU2llZGx1bmciIHVuZCAiVW5zZXJlIFNpZWRsdW5nIiBhdXMuCgpJbGxkZXJldGggd2FyIGVpbiBqdW5nZXIgRWxmLCBudXIgendlaSBKYWhyZSBhZWx0ZXIgYWxzIFNsYWJuaXIuIEVyIGhhdHRlIHNpY2gKdGllZmVyIGFscyBkaWUgbWVpc3RlbiBzZWluZXMgVm9sa2VzIGluIGRlciBLdW5zdCBkZXIgTWVkaXRhdGlvbiBnZXVlYnQuIERhYmVpCmhhdHRlIGVyIGRlbiBPcnQgZ2VmdW5kZW4sIGRlbiBlciAiZGllIEt1ZWhsZSBMaWNodHVuZyIgbmFubnRlLiBEYW1pdCBrb25udGUKZXIsIEdlZHVsZCB2b3JhdXNnZXNldHp0LCBQZmxhbnplbiBpbiBpaHJlbSBXYWNoc3R1bSBsZW5rZW4uIEVyIGhhdHRlIGRhbWl0CmRpZXNlIFBsYXR0Zm9ybSBhdXMgZGVtIEJhdW0gaGVyYXVzd2FjaHNlbiBsYXNzZW4uCgpFciB2ZXJtdXRldGUsIGRhc3MgZGllc2UgZ2Vpc3RpZ2UgTGljaHR1bmcgbm9jaCBtZWhyIEdlaGVpbW5pc3NlIHZlcmJhcmcuCkJpc2hlciB3YXJlbiBudXIgc2VpbmUgRnJldW5kZSBTbGFibmlyIHVuZCBMaWdlbnNoYWQgZWluZ2V3ZWlodC4gRGllIGRyZWkKbnV0enRlbiBkaWUgUGxhdHRmb3JtIG51biBhbHMgVHJlZmZwdW5rdCBmdWVyIFVudGVybmVobXVuZ2VuLgoKU2xhYm5pcnMgQXVnZW4gZmllbGVuIHdpZWRlciB6dS4gIlNsYWJuaXIhIEtvbW0genVydWVjayEiCgpXaWRlcndpbGxpZyBvZWZmbmV0ZSBkaWVzZXIgZGllIEF1Z2VuLiAiUmFiZW4iLCBrcmFlY2h6dGUgZXIuICJEYSB3YXJlbiBSYWJlbgouLi4gSWxsZGVyZXRoLCB3YXMgaXN0IGRhcyBnZXdlc2VuPyIKCiJSYWJlbj8gSWNoIGhhYmUga2VpbmUgQWhudW5nIC4uLiAiIElsbGRlcmV0aCB3dW5kZXJ0ZSBzaWNoLiAiTGlnZW5zaGFkcwpMaWNodHVuZyBzaWVodCBhbmRlcnMgYXVzIGFscyBtZWluZSwgdW5kIGR1IGhhc3QgUmFiZW4gYXVmIGRlaW5lciBLdWVobGVuCkxpY2h0dW5nLiBXYXIgZXMgc2Nod2llcmlnPyIKCiJVZWJlcmhhdXB0IG5pY2h0IiwgbXVybWVsdGUgU2xhYm5pci4gIkRhcyB3YXIsIHdpZSBkdSBnZXNhZ3QgaGFzdDogSWNoIGhhYmUKbWljaCBpbiBtaWNoIHNlbGJzdCBoaW5laW52ZXJzZXR6dCwgaGFiZSBnZWRhY2h0LCBpY2ggYmluIGluIG1pciwgdW5kIGRhbm4gYW4KZGllc2VuIGt1ZWhsZW4gT3J0ICB1bmQgaWNoIHdhciBkYS4gQWxsZXMgd2FyIHNvIHdpcmtsaWNoLiBBYmVyIHdhcnVtIGhhYmUgaWNoCmRvcnQgUmFiZW4/IElzdCBkYXMgbmljaHQga29taXNjaD8iCgoiSW4gZGVyIFRhdC4iIElsbGRlcmV0aCB1ZWJlcmxlZ3RlLiAiQWJlciBpY2ggZ2xhdWJlLCB3aXIgZHVlcmZlbiBkYXMgbWl0IGRlbQpPcnQgbmljaHQgc28gZ2VuYXUgbmVobWVuLiBEaWVzZXIgT3J0IGlzdCBpbiB1bnMsIGVzIGlzdCBrZWluIE9ydCBpbiBkZXIKd2lya2xpY2hlbiBXZWx0LiIKCiJXYXMgaXN0IGRlbm4gZWlnZW50bGljaCBkaWUgd2lya2xpY2hlIFdlbHQ/IiBTbGFibmlyIGdpbmcgbWl0IHNlaW5lbiBHZWRhbmtlbgpub2NoIGVpbmVuIFNjaHJpdHQgd2VpdGVyLiAiSXN0IGVzIGRpZSBTaWVkbHVuZz8iCgpJbGxkZXJldGggenVja3RlIG51ciBtaXQgZGVuIFNjaHVsdGVybi4gIldlbm4gaWNoIGRpZSBBbnR3b3J0IGRhcmF1ZiB3dWVzc3RlLAp3dWVyZGUgaWNoIG1pY2ggc2VsYnN0IHp1bSBXZWlzZXN0ZW4gZXJuZW5uZW4gdW5kIGRlbiBBZWx0ZXN0ZW4gdW0gc2VpbmVuClBsYXR6IGJpdHRlbiIsIGdyaW5zdGUgZXIuCgpTbGFibmlycyBCbGljayBmaWVsIGR1cmNoIGRpZSBad2VpZ2UgbmFjaCB1bnRlbiwgaW4gZGVuIEhhaW4uIERvcnQgbGllZiBnZXJhZGUKZWluZSBqdW5nZSBFbGZlIGVudGxhbmcuIEVyIGJsaWNrdGUgSWxsZGVyZXRoIGZlaXhlbmQgYW4uICJBYmVyIHNjaGF1IG1hbCwKZnVlciBkZW4gQW5mYW5nIHd1ZXJkZSBlcyByZWljaGVuLCB3ZW5uIGR1IHd1ZXNzdGVzdCwgd2llIGR1IGVzIHNjaGFmZnN0LCBtaXQKVGFyaXZlbCB6dSByZWRlbiAuLi4iCgoiSWNoIHdpbGwgbmljaHQgbWl0IGlociByZWRlbiIsIHNhZ3RlIElsbGRlcmV0aC4gRWluIGdhbnosIGdhbnoga2xlaW5lcwpiaXNzY2hlbiB6dSBzY2huZWxsLiAiQWxzbyAuLi4gaWNoIGhhYmUgbmljaHRzIGRhZ2VnZW4sIG1pdCBpaHIgenUgcmVkZW4uClNvbGx0ZSBpY2ggZGEgbWVociBJbnRlcmVzc2UgaGFiZW4/IER1IGthbm5zdCBkaXIgamEgTXVlaGUgZ2ViZW4sIHdlbm4gZHUKd2lsbHN0IC4uLiIgRXIgdmVyc3VjaHRlLCBtb2VnbGljaHN0IGdsZWljaGd1ZWx0aWcgYXVzenVzZWhlbi4KCiJJY2g/IE5laW4sIGRhbmtlLiBJY2ggbWFnIFZlcmVuaWVsLCBkaWUgVG9jaHRlciBkZXIgR2FlcnRuZXJpbi4gVW5kIHdlaXNzdApEdSwgd2VsY2hlbiBWb3J0ZWlsIGljaCBkaXIgZ2VnZW51ZWJlciBoYWJlPyIKCiJXZWxjaGVuIGRlbm4/IgoKIlNpZSB3ZWlzcyBkYXMgdW5kIHNpZSBtYWcgbWljaCBhdWNoLiIKCiJCZWkgZGVuIEJsdWV0ZW4gZGVzIEJhdW1lcyBkZXIgV2Vpc2hlaXQhIFdvaGVyIHdlaXNzdCBkdSBkYXM/IFdhcyBtYWNodCBkaWNoCmRhIHNvIHNpY2hlcj8iIElsbGRlcmV0aCBibGllYiBkZXIgTXVuZCBvZmZlbiBzdGVoZW4uCgoiSWNoIGhhYmUgc2llIGdlZnJhZ3QuIgoKIkFoLiBBY2ggc28uIEphLiBEYXMgLi4uIGVya2xhZXJ0IG5hdHVlcmxpY2ggYWxsZXMuIgoKIkljaCBoYWJlIGVpbmVuIFJhdCBmdWVyIGRpY2guIiBTbGFibmlyIGdyaW5zdGUgaW1tZXIgbm9jaC4gIkFiZXIgbnVyLCB3ZW5uIGR1CndpcmtsaWNoIGludGVyZXNzaWVydCBiaXN0LiIKCiJXaWVzbyBzb2xsdGUgaWNoIGludGVyZXNzaWVydCBzZWluPyIgZ3J1bW1lbHRlIElsbGRlcmV0aC4KCiJXaWUgZHUgd2lsbHN0LiBEYW5uIGdlYiBpY2ggZGlyIGRlbiBSYXQgYXVjaCBuaWNodC4iCgpCZWlkZSBzY2h3aWVnZW4gZWluZSBXZWlsZSwgd29iZWkgU2xhYm5pcnMgR3JpbnNlbiBmYXN0IHNjaG9uIHVuZXJ0cmFlZ2xpY2gKd3VyZGUuIElsbGRlcmV0aCB2ZXJzdWNodGUgYmV0b250LCBuaWNodCBuYWNoIHVudGVuIHp1IGRlciBibG9uZGVuIEZyYXUgenUKc2NoYXVlbi4KCiJVbmQgd2VubiBpY2ggZG9jaCAuLi4gZWluIGdhbnoga2xlaW4gd2VuaWcgLi4uIGludGVyZXNzaWVydCB3YWVyZSwgenVtaW5kZXN0CmFuIGRlbSBSYXQ/IiwgZnJhZ3RlIGVyIHNjaGxpZXNzbGljaC4KCiJGcmFnIHNpZSBkb2NoIGVpbmZhY2guIE9kZXIsIHdlbm4gZHUgbmljaHQgc28gZGlyZWt0IHNlaW4gd2lsbHN0LCBmcmFnIHNpZSwKb2Igc2llIGF1Y2ggYXVmIGRpZSBLdWVobGUgTGljaHR1bmcgd2lsbC4gSWxsZGVyZXRoLCBkaWVzZXIgT3J0IGlzdAp1bmdsYXVibGljaCEgWmVpZyBpaHIsIHdlbGNoZSBHZWhlaW1uaXNzZSBkdSBlbnRkZWNrdCBoYXN0LiIKCiJJY2ggd2Vpc3MgbmljaHQgLi4uIgoKIkFscyBLaW5kZXIgc2VpZCBpaHIgYmVpZGUgdW0gZGllIGdhbnplIFNpZWRsdW5nIGdlbGF1ZmVuIHVuZCBoYWJ0IEZhbmdlbgpnZXNwaWVsdC4gVW5kIGhldXRlIGdydWVzc3QgZHUgc2llIGthdW0uIE1hbiBtdW5rZWx0LCBzaWUgd2FlcmUgbWl0IExpZ2Vuc2hhZAp6dXNhbW1lbiwgYWJlciBiZWlkZSBoYWJlbiBkYXMgbmllIGJlc3RhZXRpZ3QuIE9id29obCBlciBlY2h0IGVpbiBndXRlciBGcmV1bmQKaXN0LCBoYXN0IGR1IGlobiBhdWNoIG5pZSBnZWZyYWd0LiBVbmQgc2VsYnN0IHdlbm4gZGEgZXR3YXMgd2FyLCBkaWUgYmVpZGVuCmhhdCBtYW4gc2VpdCBXb2NoZW4gbmljaHQgbWVociB6dXNhbW1lbiBnZXNlaGVuLiBEdSBzb2xsdGVzdCBkaXIgZGllc2UgQ2hhbmNlCm5pY2h0IGVudGdlaGVuIGxhc3NlbiEgRHUgYmlzdCBuaWNodCBkZXIgZWluemlnZSBFbGYgaGllci4gRXMgZ2lidCBub2NoIGVpbmUKTWVuZ2UgYW5kZXJlciwgZGllIGF1Y2ggaW4gRnJhZ2Uga29tbWVuLCB1bmQgZGVyZW4gQmxpY2tlIHNhZ2VuLCBkYXNzIHNpZQpJbnRlcmVzc2UgaGFiZW4uIEJlc3RpbW10IHdpcmQgc2llIGJhbGQgZWluZXIgdm9uIGRlbmVuIGZyYWdlbiwgdW5kIHdlbm4gRHUKUGVjaCBoYXN0LCBkZW5rdCBzaWUsIGR1IGhhc3Qga2VpbiBJbnRlcmVzc2UgdW5kIHNhZ3QgaWhtIHp1ISIKCklsbGRlcmV0aCB3b2xsdGUgZGFzIG5pY2h0IGhvZXJlbi4gIkphLCBTbGFibmlyLiBJY2ggd2Vpc3MsIHdhcyBpY2ggdHVlLiIKCiJXZW5uIGVzIHVtIGRpZXNlIFBsYXR0Zm9ybSBnZWh0PyBFaW5lIFBsYXR0Zm9ybSwgZGllIG1hbiB2b20gSGFpbiBhdXMgcXVhc2kKbmljaHQgc2llaHQsIGRhIGRlciBCYXVtIHNvIGdld2FjaHNlbiBpc3Q/IFdlbm4gZXMgdW0gbXlzdGlzY2hlIEVyZmFocnVuZ2VuCmdlaHQ/IFdlbm4gZXMgdW1zIEJvZ2Vuc2NoaWVzc2VuIGdlaHQ/IElsbGRlcmV0aCwgZGFubiBiaXN0IGR1IGVpbiBNZWlzdGVyLgpBYmVyIHdlbm4gZXMgdW0gRnJhdWVuIGdlaHQ/IElsbGRlcmV0aCEgRHUgd2Fyc3QgZWluIEphaHIgbGFuZyBtaXQgTml2ZXJuYQp6dXNhbW1lbiwgZGllIGlzdCBkaXIgZGFtYWxzIGhpbnRlcmhlcmdlbGF1ZmVuLCB1bmQgZGllc2UgRnJhdSBpc3Qgd2lya2xpY2gKYW5zdHJlbmdlbmQuIER1IGthbm5zdCBEaWNoLCBiZWkgZGVuIEJsYWV0dGVybiBkZXMgQmF1bWVzIGRlciBGcmVpaGVpdCwKZ2x1ZWNrbGljaCBzY2hhZXR6ZW4sIGRhc3Mgc2llIC4uLiIKCiJTcHJpY2ggbmljaHQgc28gdm9uIGloci4iIElsbGRlcmV0aHMgU3RpbW1lIGtsYW5nIGZlc3QgdW5kIGJlaW5haGUgZHJvaGVuZC4KClNsYWJuaXIgaG9iIGFid2VocmVuZCBkaWUgSGFlbmRlLiAiU2Nob24gZ3V0LCBzY2hvbiBndXQsIGluIE9yZG51bmcuIEljaCB3ZXJkZQpuaWNodHMgbWVociBzYWdlbi4gSWNoIGZpbmRlIGFiZXIgdHJvdHpkZW0sIGRhc3MgaWNoIHJlY2h0IGhhYmUuIgoKSWxsZGVyZXRoIGJldWd0ZSBzaWNoIHZvciB1bmQgYmV0cmFjaHRldGUgZGllIGp1bmdlIEVsZmUgdm9tIFJhbmQgZGVyClBsYXR0Zm9ybSBhdXMuIFNpZSBoaWVsdCBlaW5lbiBIYW1tZXIgdW5kIGVpbiBwYWFyIEhvbHpzdHVlY2tlIHVuZCBzY2hsb3NzCmdlcmFkZSBSaXNzZSBpbiBkZXIgUGFsaXNhZGUsIGRpZSBkYXMgRG9yZiB1bWdhYi4gU2VsYnN0IGRpZSBrcnVkZW4KSGFtbWVyc2NobGFlZ2Ugd2lya3RlbiBiZWkgaWhyIHdpZSBlaW4gVGFueiwgb2J3b2hsIHNpZSBzaWNoZXIgbmljaHQgYWhudGUsCmRhc3Mgc2llIGJlb2JhY2h0ZXQgd3VyZGUuIElobSBzdG9ja3RlIGZhc3QgZGVyIEF0ZW0uCgpTbGFibmlyIHJpc3MgaWhuIGF1cyBzZWluZW4gR2VkYW5rZW4uICJXZW5uIGR1IGdlbnVnIGdlc2VoZW4gaGFzdCwgZ2VoIHJ1bnRlcgp1bmQgcmVkZSBtaXQgaWhyISIsIHNhZ3RlIGVyLiBEYW5uIGRyZWh0ZSBlciBzaWNoIHVtIHVuZCB2ZXJzY2h3YW5kIHZvbiBkZXIKUGxhdHRmb3JtLgoKSWxsZGVyZXRoIGRhY2h0ZSBuYWNoLiBFciBrb25udGUgamV0enQgaGllciBvYmVuIHNpdHplbmJsZWliZW4gdW5kIFRhcml2ZWwKYmVpbSBGbGlja2VuIGRlciBSaXNzZSB6dXNjaGF1ZW4uIERhcyB3YXIgendhciBrZWluIHNjaGxlY2h0ZXIgQW5ibGljaywgYWJlcgppcmdlbmR3aWUga2FtIGlobSBkYXMgbmljaHQgcmljaHRpZyB2b3IuIFdlbm4gZXIgamVtYWxzIGhlcmF1c2ZpbmRlbiB3b2xsdGUsCndhcyBzaWUgdWViZXIgaWhuIGRhY2h0ZSwgd2FyIHZpZWxsZWljaHQgU2xhYm5pcnMgUmF0IHJpY2h0aWcuIFZpZWxsZWljaHQKc29sbHRlIGVyIGVpbmZhY2ggc28gbWl0IGlociByZWRlbiBvZGVyIHNlaW5lIEhpbGZlIGFuYmlldGVuLiBNYW4gbXVzc3RlIGphCm5pY2h0IGdsZWljaCBtaXQgZGVyIFR1ZXIgaW5zIEhhdXMgZmFsbGVuLiBTY2hhZGVuIHd1ZXJkZSBkYXMgc2ljaGVyIG5pY2h0LgoKSWxsZGVyZXRoIHpvZWdlcnRlLiBTaWUgaGF0dGVuIGF1c2dlbWFjaHQsIGRhc3MgbmllbWFuZCB2b24gZGVyIFBsYXR0Zm9ybQplcmZ1aHIsIGRlciBuaWNodCBkYXp1Z2Vob2VydGUuIFVuZCBkYXMgd2FyZW4gZGVyemVpdCBhdWNoIG51ciBTbGFibmlyIHVuZApMaWdlbnNoYWQuIFVuZCBzZWxic3QgZGVyIHNjaHdhcnpoYWZ0ZSBTbGFibmlyIGhhdHRlIFZlcmVuaWVsIG5pY2h0cyBlcnphZWhsdC4KTmVpbiwgZXIgZHVyZnRlIGpldHp0IG5pY2h0IHZvbiBoaWVyIG9iZW4ga29tbWVuLgoKIkRpZSBXaXBmZWxsYWV1ZmVyIiBuYW5udGVuIHNpY2ggZGllIGRyZWkganVuZ2VuIEVsZmVuLiBFcyB3YXIgc2VpbmUgSWRlZQpnZXdlc2VuLiBTaWUgdWVidGVuIHNlaXQgV29jaGVuLCBzaWNoIGxhdXRsb3Mgdm9uIEJhdW0genUgQmF1bSB6dSBiZXdlZ2VuLgpNaXR0bGVyd2VpbGUga29ubnRlbiBzaWUgZGllIGdlc2FtdGUgU2llZGx1bmcgYXVmIFdlZ2VuIGluIGRlbiBCYWV1bWVuCmVycmVpY2hlbi4gVW5kIGF1Y2gsIFBhbGlzYWRlIGhpbiBvZGVyIGhlciwgZWluIGdhbnplcyBTdHVlY2sgaW4gZGVuIFdhbGQKZ2VsYW5nZW4uCgpTaWUgaGF0dGVuIGF1Y2ggYmVzY2hsb3NzZW4sIHNpY2ggYWVobmxpY2ggenUga2xlaWRlbiB1bmQgc2ljaCBncnVlbmUKTGVkZXJ3YWVtc2VyIG5hZWhlbiBsYXNzZW4uIElsbGRlcmV0aCB3YXIgZGVyIGJlc3RlIEphZWdlciBkZXIgU2llZGx1bmcuIFdvCmFuZGVyZSBlaW5lbiBnYW56ZW4gVGFnIGJlbm9ldGlndGVuLCB1bSBlaW5pZ2VybWFzc2VuIHRhdWdsaWNoZSBGZWxsZSB1bmQKRmxlaXNjaCB6dSBlcmphZ2VuLCBicmF1Y2h0ZSBlciBtZWlzdCBudXIgZWluIHBhYXIgU3R1bmRlbi4gRXMgaGF0dGUgaWhuIG5pY2h0CnZpZWwgQXJiZWl0IGdla29zdGV0LCBlaW5pZ2UgRnVlY2hzZSB6dXNhZXR6bGljaCB6dSBqYWdlbiB1bmQgc2llIGJlaW0gTGVkZXJlcgpnZWdlbiBkaWUgZ3J1ZW5lbiBSdWVzdHVuZ2VuIGVpbnp1dGF1c2NoZW4uIEVyIGhhdHRlIGVpbmUgd2lsZGUgR2VzY2hpY2h0ZSB2b24KImJlc3NlcmVyIFRhcm51bmciIGVyemFlaGx0LCBvYndvaGwgamVkZXIgd3Vzc3RlLCBkYXNzIGltIFVudGVyaG9seiBicmF1bgpiZXNzZXIgdGFybnRlLiBTbGFibmlyIHVuZCBMaWdlbnNoYWQgaGF0dGVuIHNpY2ggZXJzdCBlaW4gd2VuaWcgZ2V6aWVydCwgc2llCmFuenVuZWhtZW4sIGFiZXIgSWxsZGVyZXRoIHdvbGx0ZSB2b3IgYWxsZW0gZGllIElkZWUgdm9yYW5icmluZ2VuLgoKIkFsbGVzIGtsYXIuIERhbm4gbGVnZW4gd2lyIGxvcyIsIG1hY2h0ZSBlciBzaWNoIHNlbGJzdCBNdXQsIHNjaG5hbGx0ZSBzZWluZW4KQm9nZW4gdW0sIGhvbHRlIHRpZWYgTHVmdCB1bmQgc2Nod2FuZyBzaWNoIGF1ZiBkZW4gQmF1bS4gTGlua2VyIEFybSwgYXJtZGlja2VyCkFzdCwgcmVjaHRlciBBcm0sIEtub2VjaGVsYXN0LiBSZWNodGVzIEJlaW4gaGluYXVmIGF1ZiBkaWNrZW4gQXN0LCB1bWtsYW1tZXJuLApoZXJ1bXNjaHdpbmdlbiwgcmVjaHRlciBBcm0gYW4gZGllIFZvcmRlcnNlaXRlIGRlcyBBc3RlcyAgZGFzIGdpbmcgYW0Kc2NobmVsbHN0ZW4uIExpbmtlcyBCZWluIHZvciwgcmVjaHRlcyBCZWluIHVta2xhbW1lcnQgQXN0IHVuZCBsaW5rZXMgQmVpbiwKd2llZGVyIGhlcnVtLiBPYmVya29lcnBlciB2b3IsIGRhbm4gYXVmIGRpZSBuYWVjaHN0ZSBFaWNoZSwgZGVuClN0dXJtZ2VnZXJidGVuLCB3aWUgc2llIGRpZXNlbiBCYXVtIG5hbm50ZW4uIEF1Y2ggZG9ydCB3dXNzdGVuIHNlaW5lIEFybWUgdW5kCkJlaW5lIGF1ZmdydW5kIGRlciBVZWJ1bmcgZ2VuYXUsIHdhcyB6dSB0dW4gd2FyLgoKSmVtYW5kLCBkZXIgaWhuIHZvbSBCb2RlbiBhdXMgZ2VzZWhlbiBoYWV0dGUsIGhhZXR0ZSBudXIgZ2VzdGF1bnQsIHVuZCBkaWUKc3ByaWNod29lcnRsaWNoZSBBbm11dCBkZXIgRWxmZW4gd2FlcmUgaWhtIGluIGRlbiBTaW5uIGdla29tbWVuLiBEb2NoCklsbGRlcmV0aCB3b2xsdGUgZ2VyYWRlIG5pY2h0IGdlc2VoZW4gd2VyZGVuLCB1bmQgZGllIHdlbmlnZW4gR2VyYWV1c2NoZSwgZGllCmVyIG1hY2h0ZSwgdWViZXJ0b2VudGUgVGFyaXZlbCBtaXQgaWhyZW0gSGFtbWVyLgoKVm9tICJTdHVybWdlZ2VyYnRlbiIgZ2luZyBlcyB6dW0gIktydW1tZW4gWndlcmciLCBlaW5lciBsZWljaHQgYWJnZWtuaWNrdGVuCkJ1Y2hlLCBkaWUgYWJlciBub2NoIHJlY2h0IHN0YWJpbCB3YXIuIERhaGludGVyIGhpbmdlbiBlaW4gcGFhciBBZXN0ZSB6dQpCb2RlbiwgYXVmIGRlciB2b20gRG9yZiBhYmdld2FuZHRlbiBTZWl0ZS4gRG9ydCBzdGllZyBlciBhYi4KCkVyIG5haG0gc2VpbmVuIEJvZ2VuIGxvY2tlciBpbiBkaWUgSGFuZCB1bmQgbmFlaGVydGUgc2ljaCB3aWVkZXIgZGVtIERvcmYsIGFuCmRlciBTdGVsbGUsIHdvIGdla2xvcGZ0IHd1cmRlLiBEb3J0IGFuZ2Vrb21tZW4sIGhvbHRlIGVyIHRpZWYgTHVmdCB1bmQgZnJhZ3RlOgoiV2VyIGtsb3BmdCBkZW5uIGRhIGFuIGRpZSBQYWxpc2FkZT8iCgpEaWUganVuZ2UgRWxmZSBibGlja3RlIGR1cmNoIGVpbiBBc3Rsb2NoIGhpbmF1cy4gIk9oLCBoYWxsbywgSWxsZGVyZXRoLiBJY2gKc29sbCBoaWVyIGRpZSBMb2VjaGVyIGZsaWNrZW4uIEFud2Vpc3VuZyB2b24gbWVpbmVtIEdyb3NzdmF0ZXIuIgoKSWxsZGVyZXRoIG5pY2t0ZS4gRGFzIHd1c3N0ZSBlciBqYSBzY2hvbi4gR3V0LCBkYXMgbWl0IGRlciBBbndlaXN1bmcgbmljaHQsCmFiZXIgZGFzIGhhZXR0ZSBlciBzaWNoIGRlbmtlbiBrb2VubmVuLiBUYXJpdmVscyBHcm9zc3ZhdGVyIHdhciBPbG9ybiwgZGVyCkFlbHRlc3RlIGRlciBTaWVkbHVuZy4gVW5kIHNlaXQgaWhyZSBFbHRlcm4gdm9yIEphaHJlbiBnZXN0b3JiZW4gd2FyZW4sIHdhcgpPbG9ybiBpaHIgWmllaHZhdGVyLiBOYXR1ZXJsaWNoIGthbSBkaWUgQW53ZWlzdW5nLCBkaWUgUGFsaXNhZGUgenUgcmVwYXJpZXJlbiwKdm9uIGlobS4gSW5zb2Zlcm4gaGF0dGUgZXIgZ2VyYWRlIG5pY2h0IHdpcmtsaWNoIHZpZWwgZXJmYWhyZW4uCgpWZXJkYW1tdC4gV2FzIHNvbGx0ZSBlciBqZXR6dCBzYWdlbj8gRXIgYnJhdWNodGUgZWluIFRoZW1hLiBEZXIgUGxhbiB3YXIKZ2V3ZXNlbiwgc2VpbmUgSGlsZmUgYW56dWJpZXRlbi4KCiJTb2xsIGljaCBkaXIgaGVsZmVuPyIKCiJNZWluc3QgZHUsIGljaCBrYW5uIGRhcyBuaWNodD8iIFNpZSBncmluc3RlIGZlaXhlbmQuCgpEYXMgd2FyIGphIHBlcmZla3QsIHNpZSBoaWVsdCBpaG4gamV0enQgYmVzdGltbXQgZnVlciB2b2VsbGlnIGFycm9nYW50LiBTbwpncnVlbmRsaWNoIGhhdHRlIGVyIHNlbHRlbiBkaWUgRGluZ2UgaW4gZGVuIFNhbmQgZ2VzZXR6dC4gIk5hdHVlcmxpY2ggbmljaHQsCmljaCBtZWluZSwgaWNoIGRhY2h0ZSBudXIsIGR1IHdpbGxzdCBkYXMgdmllbGxlaWNodCBuaWNodCBhbGxlaW5lIC4uLiIKCkVyIHN0b2NrdGUuIFRhcml2ZWwgZ3JpbnN0ZSBpaG4gYW4uICJOZWluLCBkYXMgZ2VodCBzY2hvbi4gRGFzIGlzdCBtZWluZQpBdWZnYWJlLiBJY2ggYmluIGdsZWljaCBvaG5laGluIGZlcnRpZy4gVW5kIHdpZXNvIGJpc3QgZHUgZHJhdXNzZW4gaW0gV2FsZD8iCgoiSWNoIHdhciBqYWdlbiIsIHNhZ3RlIGVyIHVuZCB3ZWRlbHRlIGdyaW5zZW5kIG1pdCBzZWluZW0gQm9nZW4uCgoiQWhhLiBBYmVyIGVzIGdpYnQgZG9jaCBzZWl0IHp3ZWkgVGFnZW4gZWluIEphZ2R2ZXJib3QsIGRhbWl0IGRpZSBCZXN0YWVuZGUKc2ljaCBlcmhvbGVuLCB1bmQgd2lyIGhhYmVuIGdlbnVnIFZvcnJhZXRlIGZ1ZXIgZGVuIFdpbnRlci4gV2llc28gbWVpbnN0IGR1LApkYXNzIGRhcyBuaWNodCBmdWVyIGRpY2ggZ2lsdD8iCgoiQWVoLCBpY2ggbWVpbmUsIGljaCBoYWJlIGphIG5pY2h0cyBlcmxlZ3QgLi4uIGljaCBoYWJlIG51ciBaaWVsdWVidW5nZW4KZ2VtYWNodCIsIHN0b3R0ZXJ0ZSBJbGxkZXJldGguCgoiU3RpbW10LCBkdSBoYXN0IGtlaW5lIEJldXRlIGRhYmVpLiBNYWNodCBkYXMgU3Bhc3MsIHNvIFppZWx1ZWJ1bmdlbj8iCgoiQWJlciBuYXR1ZXJsaWNoLiBVbmQgZXMgaXN0IGF1Y2ggd2ljaHRpZy4gU3RlbGwgZGlyIHZvciwgZGFzIERvcmYgd2lyZAp1ZWJlcmZhbGxlbiwgZGFubiBtdXNzIGRpY2ggamEgamVtYW5kIGJlc2NodWV0emVuIiwgcGxhdHp0ZSBlcyBhdXMgaWhtIHJhdXMuCgpFciB3dXJkZSBrbmFsbHJvdCwgYWxzIGVyIGJlbWVya3RlLCB3YXMgZXIgZGEgZ2VzYWd0IGhhdHRlLgoKVW5kIG5vY2ggcm90ZXIsIGFscyBlciBtZXJrdGUsIGRhc3MgZXIgcm90IHd1cmRlLgoKIkRpY2ggdW5kIGRpZSBhbmRlcmVuIiwgc2FndGUgZXIuIE1hY2h0ZSBlciBlcyBnZXJhZGUgYmVzc2VyIG9kZXIgc2NobGltbWVyPwpVbmQga29ubnRlIGVyIG5vY2ggcm90ZXIgd2VyZGVuPwoKU2llIHNjaGF1dGUgaWhuIGlycml0aWVydCBhbi4KCkVyIGZ1aHIgaGVydW0uICJXYXIgZGEgd2FzPyIgRXIgdGF0LCBhbHMgbGF1c2NoZSBlciBpbiBkZW4gV2FsZC4KCiJJY2ggaGFiZSBuaWNodHMgZ2Vob2VydC4iIFRhcml2ZWwgaGFlbW1lcnRlIG11bnRlciB3ZWl0ZXIuCgpEYSB3YXIgdGF0c2FlY2hsaWNoIGV0d2FzLCB3aWUgZXIgZ2VyYWRlIGJlbWVya3RlLiBWaWVsbGVpY2h0IHdhciBkYXMgZGllCkFibGVua3VuZywgZGllIGVyIGJyYXVjaHRlLCB1bSBhdXMgZGVyIFBlaW5saWNoa2VpdCB3aWVkZXIgaGVyYXVzenVrb21tZW4uICJEYQppc3Qgd2FzISIgRXIgbmFobSBzZWluZW4gQm9nZW4gdm9tIFJ1ZWNrZW4gdW5kIHNwYW5udGUgaWhuIG1pdCBnZXVlYnRlbgpHcmlmZmVuLgoKVGFyaXZlbCBob2VydGUgYXVmIHp1IGhhZW1tZXJuLiAiSG1tPyBXYXMgZGVubj8iCgpFaW4gbGVpc2VzIFNjaG5hdWZlbiBzY2hpZW4gYXVzIGRlbiBCdWVzY2hlbiB6dSBrb21tZW4uIElsbGRlcmV0aCBsZWd0ZSBhdWYKZWluZXMgZGVyIEdlYnVlc2NoZSBhbi4gRWluZSByaWVzaWdlIEtyZWF0dXIgc3ByYW5nIGRvcnQgaGVyYXVzIHVuZCBzdHVlcnp0ZQpzaWNoIGF1ZiBpaG4uIFd1ZXRlbmRlcyBGYXVjaGVuIHdhciB6dSBob2VyZW4sIHVuZCBhdWNoIGVpbiB6d2Vpc3RpbW1pZ2VyClNjaHJlaSBhdXMgc2VpbmVyIHVuZCBUYXJpdmVscyBLZWhsZSBnbGVpY2h6ZWl0aWcuCgpEaWUgS3JlYXR1ciAgZWluIGdpZ2FudGlzY2hlciBXb2xmICBsYW5kZXRlIGF1ZiBJbGxkZXJldGgsIG5vY2ggYmV2b3IgZGVzc2VuClBmZWlsIGRpZSBTZWhuZSB2ZXJsYXNzZW4gaGF0dGUuIERlciBTY2h1c3MgbGFuZGV0ZSB1bmdlemllbHQgaW0gV2FsZC4gSGVmdGlnCnNjaGx1ZyBkZXIgRWxmIG1pdCBkZW0gQm9nZW4gdW0gc2ljaCB1bmQgZXJ3aXNjaHRlIGRhcyBUaWVyIGF1Y2gsIGFiZXIgZGFzCmxpZXNzIHNpY2ggbmljaHQgYWJicmluZ2VuLgoKRGFubiBsYW5kZXRlIHBsb2V0emxpY2ggVGFyaXZlbHMgSGFtbWVyIGF1ZiBkZW0gVGllci4gSWxsZGVyZXRoIGhhdHRlIGtlaW5lCkFobnVuZywgd28gc2llIGF1ZiBlaW5tYWwgaGVyZ2Vrb21tZW4gd2FyICBzaWUgd2FyIGRvY2ggZ2VyYWRlIG5vY2ggYXVmIGRlcgphbmRlcmVuIFNlaXRlIGRlciBQYWxpc2FkZSBnZXdlc2VuISBPZmZlbmJhciBrb25udGUgc2llIGd1dCBrbGV0dGVybi4gRGllClBhbGlzYWRlIHdhciBpbSBJbm5lcmVuIGRlciBTaWVkbHVuZyBlcmtsaW1tYmFyLCB1bSBCb2dlbnNjaHVldHplbiB1bmQKTmFoa2FlbXBmZXJuIGltIEZhbGxlIGVpbmVzIEFuZ3JpZmZzIGRpZSBWZXJ0ZWlkaWd1bmcgenUgZXJtb2VnbGljaGVuLiBTaWUKbXVzc3RlIHNpY2ggdm9uIG9iZW4gaGVydW50ZXIgYXVmIGRlbiBXb2xmIGdlc3R1ZXJ6dCBoYWJlbiwgYWxzIGRpZXNlciBnZXJhZGUKSWxsZGVyZXRocyBCZWluIGF1ZnJlaXNzZW4gd29sbHRlLiBTY2h3YW5rZW5kIGthbSBJbGxkZXJldGggd2llZGVyIGF1ZiBkaWUKQmVpbmUuCgpEYXMgVGllciB3YXIgendhciBoZWZ0aWcgZ2V0cm9mZmVuLCBoYXR0ZSBhYmVyIG5vY2ggbGFuZ2UgbmljaHQgZ2VudWcuIE1pdAphdWZnZXJpc3NlbmVtIE1hdWwgdW5kIHd1ZXRlbmQgZnVua2VsbmRlbiBBdWdlbiBzdGFuZCBlcyBpaG0gc3BydW5nYmVyZWl0CmdlZ2VudWViZXIuIFRhcml2ZWwgbmFobSBkZW4gSGFtbWVyIHdpZWRlciBob2NoIHVuZCBnaW5nIGF1ZiBkYXMgR2VzY2hvZXBmIHp1LgoiTGFzcyBkYXMsIGRhcyBpc3QgenUgZ2VmYWVocmxpY2ghIiwgd2FybnRlIElsbGRlcmV0aCwgZG9jaCBzaWUgaG9lcnRlIG5pY2h0CmF1ZiBpaG4uCgpEZXIgV29sZiBzcHJhbmcgdW5kIHBhY2t0ZSBUYXJpdmVsIG1pdHRlbiBpbiBkZXIgQmV3ZWd1bmcuIEVyIGJpc3MgaW4gaWhyZW4KVW50ZXJhcm0uIElsbGRlcmV0aCBob2VydGUgZWluZW4gS25vY2hlbiBzcGxpdHRlcm4gdW5kIFRhcml2ZWwgdm9yIFNjaG1lcnoKc2NocmVpZW4uICJOZWluISIsIHJpZWYgZXIsIHBhY2t0ZSBkaWUganVuZ2UgRWxmZSB1bmQgcmlzcyBzaWUgenVydWVjay4KCldhcyB3YXIgZGFzIGhpZXI/IFNlaXQgd2FubiBrYW1lbiBXb2VsZmUgc28gbmFoIGFucyBEb3JmPyBFYmVuIG5vY2ggd2FyIGVyCm9iZW4gYXVmIGRlbSBCYXVtIGdld2VzZW4sIHVuZCB2b3JoZXIgd2FyZW4gZXIgdW5kIHNlaW4gRnJldW5kIGF1ZiBkZXIgS3VlaGxlbgpMaWNodHVuZyBnZXdlc2VuIC4uLgoKRGllIEt1ZWhsZSBMaWNodHVuZy4gRG9ydCB3b2xsdGUgZXIgc2Vpbi4gQWxsZXMgdW0gaWhuIGhlcnVtIHd1cmRlIGxhbmdzYW1lci4KV2llIGtvbm50ZSBlciBudXIgaW4gZGllc2VtIE1vbWVudCBhbiBkaWUgTGljaHR1bmcgZGVua2VuPyBFciBtdXNzdGUgZG9jaApUYXJpdmVsIHJldHRlbiEKCkRlciBXb2xmIGhhdHRlIFRhcml2ZWwgbG9zZ2VyYXNzZW4sIHdhciBkdXJjaCBzZWluZW4gU2Nod3VuZyB3ZWl0ZXJnZXRyYWdlbgp3b3JkZW4gdW5kIHdhbmR0ZSBzaWNoIG51biB3aWVkZXIgenUgZGVuIGJlaWRlbiBFbGZlbiB1bS4gR2xlaWNoIHd1ZXJkZSBlcgplcm5ldXQgc3ByaW5nZW4uIElsbGRlcmV0aCBkdXJmdGUgZGFzIG5pY2h0IHp1bGFzc2VuLiBEZXIgV29sZiBtdXNzdGUgd2VnLgpWZXJzY2h3aW5kZW4uCgpJbGxkZXJldGggc3B1ZXJ0ZSBkaWUgS3VlaGxlIGluIHNlaW5lbSBJbm5lcmVuLCB0aWVmIGluIGlobSwgaW4gc2VpbmVtIEhlcnplbi4KTmVpbi4gS2FlbHRlLiBLYWx0LiBOaWNodCBkaWUgaGVpbWVsaWdlLCBlcmZyaXNjaGVuZGUgS3VlaGxlLCB3aWUgYmVpIHNlaW5lbgpCZXN1Y2hlbiBhdWYgZGVyIExpY2h0dW5nLiBJbGxkZXJldGggem9nIHB1cmUgS2FlbHRlIGF1cyBkZXIgTGljaHR1bmcsIGxpZXNzCnNpY2ggdm9uIGRpZXNlciBLYWVsdGUgbGVpdGVuLCB1bmQgc2NoaWNrdGUgc2llIGRlbSBXb2xmIGVudGdlZ2VuLgoKV2Fzc2VyIGF1cyBkZXIgTHVmdCBtYXRlcmlhbGlzaWVydGUgc2ljaC4gRmV1Y2h0aWdrZWl0IGF1cyBkZXIgVW1nZWJ1bmcgZmFuZApzaWNoIHp1c2FtbWVuIHVuZCBnZWZyb3IuIEtsZWluZSBFaXNrdWdlbG4gYmlsZGV0ZW4gc2ljaCwgaW1tZXIgZ3JvZXNzZXIKd2VyZGVuZC4gU2llIGZsb2dlbiBkZW0gV29sZiBlbnRnZWdlbiB3aWUgZWluIEhhZ2Vsc2NoYXVlci4gRGVyIFN0cm9tIGF1cwpFaXNrb2VybmVybiB0cmFmIGRhcyBUaWVyIG1pdCBzb2xjaGVyIFd1Y2h0LCBkYXNzIGVyIHRpZWZlIFd1bmRlbiBzY2hsdWcuIERlcgpXb2xmIGJsdXRldGUgdW5kIGphdWx0ZSBqYWVtbWVybGljaC4gS3VyeiBkYXJhdWYgYnJhY2ggZXIgenVzYW1tZW4gdW5kIGRhcwpKYXVsZW4gZXJzdGFyYiwgd2FlaHJlbmQgZGVyIEhhZ2VsIHdlaXRlciBhdWYgZGVuIGxlYmxvc2VuIEtvZXJwZXIgZWluc2NobHVnLgoKSWxsZGVyZXRoIHZlcnN1Y2h0ZSwgZGVuIEhhZ2VsIHp1IGJlZW5kZW4sIGluZGVtIGVyIGF1ZmhvZXJ0ZSwgS2FlbHRlIHZvbiBkZXIKTGljaHR1bmcgenUgemllaGVuLCB3YXMgaWhtIHNjaGxpZXNzbGljaCBhdWNoIGdlbGFuZy4KCkRhbm4gc3RhcnJ0ZSBlciBmYXNzdW5nc2xvcyBhdWYgZGVuIEtsdW1wZW4gRmVsbCB1bmQgZGFzIGltIEJvZGVuIHZlcnNpY2tlcm5kZQpCbHV0LCBkYXMgZWJlbiBub2NoIGVpbiBnZWZhZWhybGljaGVyIFdvbGYgZ2V3ZXNlbiB3YXIuCgpUcm90eiBpaHJlciBTY2htZXJ6ZW4gc2NoYXV0ZSBUYXJpdmVsIElsbGRlcmV0aCBlbnRzZXR6dCBhbi4gIldhcyBoYXN0IGR1CmdlbWFjaHQ/IFdhcyB3YXIgZGFzPyIKCiJEYXMgLi4uIGRhcyB3ZWlzcyBpY2ggc2VsYnN0IG5pY2h0IHNvIGdlbmF1Iiwgc3RvdHRlcnRlIElsbGRlcmV0aC4gRGFubgpibGlja3RlIGVyIGF1ZiBpaHJlIFZlcmxldHp1bmcuICJBYmVyIGpldHp0IGt1ZW1tZXJuIHdpciB1bnMgZXJzdG1hbCB1bSBkZWluZW4KQXJtLiIgRXIgc3R1ZXR6dGUgc2llIHVuZCBicmFjaHRlIHNpZSBpbiBkaWUgU2llZGx1bmcuCgoKCgoKKgoKCgoKCiJEYXMgaXN0IGphIHdvaGwgdW5nbGF1YmxpY2ghIgoKCgpNdWxhaSBPbG9ybiBzdGFuZCB2b3Igc2VpbmVyIEVua2VsaW4gdW5kIHN0YXJydGUgdW5lbnR3ZWd0IGF1ZiBpaHJlbiBBcm0uIEVpbgpIZWlsa3VuZGlnZXIgaGF0dGUgZGVuIEFybSBiZXJlaXRzIGZhY2hnZXJlY2h0IHZlcnNvcmd0LiBEaWUgVmVybGV0enVuZyB1bWdhYgplaW4ga3Vuc3R2b2xsZXMgRmxlY2h0d2VyayBhdXMgQmxhZXR0ZXJuIHVuZCBad2VpZ2VuLiBFaW4gQXN0IGRpZW50ZSBhbHMKU2NoaWVuZS4KCk5vcm1hbGVyd2Vpc2Ugd2FyIGRpZSBob2VjaHN0ZSBFYmVuZSBkZXMgYXVzZ2Vob2VobHRlbiBCYXVtZXMgZWluIGZyaWVkbGljaGVyCk9ydCwgZGFzIFplbnRydW0gZGVyIFNpZWRsdW5nLCBkZXIgZ3JvZXNzdGUgdW5kIGhvZWNoc3RlIGFsbGVyIEJhZXVtZS4gSGllcgpyZXNpZGllcnRlIGRlciBBZWx0ZXN0ZSB1bmQgZ2FiIHNlaW5lIEFud2Vpc3VuZ2VuLiBOdW4gc3RhbmQgZXIgZmFzc3VuZ3Nsb3MKdm9yIHNlaW5lciBFbmtlbGluLiBFciBsaWVzcyBkZW4gaGVpbGlnZW4gU3RhYiBkZXIgRWxmZW4gZWluIHBhYXJtYWwgendpc2NoZW4Kc2VpbmVuIEhhZW5kZW4gaGluLSB1bmQgaGVyZ2xlaXRlbi4KCiJXaWUga29ubnRlc3QgZHUgbnVyIGRhcyBEb3JmIHZlcmxhc3NlbiEiCgpUYXJpdmVsIHZlcmRyZWh0ZSBkaWUgQXVnZW4uIFdhcyBiaWxkZXRlIHNpY2ggaWhyIEdyb3NzdmF0ZXIgZGEgbnVyIGVpbiEgU2llCndhciBhbHQgZ2VudWcsIHVtIHNlbGJzdCBFbnRzY2hlaWR1bmdlbiB6dSB0cmVmZmVuIQoKIkR1IGJpc3QgbWVpbmUgRW5rZWxpbi4gRGFzIEVpbnppZ2UsIHdhcyB2b24gbWVpbmVyIEZhbWlsaWUgdWVicmlnIGlzdCwKc2VpdGRlbSBBZWx3aGFpbiBnZXN0b3JiZW4gaXN0LiBJY2ggd2lsbCBkaWNoIG5pY2h0IGF1Y2ggbm9jaCB2ZXJsaWVyZW4hIgoKVW5kIElsbGRlcmV0aCwgZGVyIHNpZSBnZXJldHRldCBoYXR0ZSwgd3VyZGUgaW4gR2VnZW53YXJ0IGRlcyBBZWx0ZXN0ZW4genUKZWluZW0gdm9sbGtvbW1lbmVuIFRvbHBhdHNjaCwgaW5kZW0gZXIgc2ljaCBkYXp3aXNjaGVuIGRyYWVuZ3RlLiAiRXMgd2FyIG1laW5lClNjaHVsZCwgQWVsdGVzdGVyLiBPaG5lIGRlbiBBbmdyaWZmIGRlcyBXb2xmcyBhdWYgbWljaCAuLi4iCgpTb3dlaXQga2FtIGVzIG5vY2guIERpZSBQYWxpc2FkZSB6dSBlcmtsaW1tZW4gd2FyIGlocmUgSWRlZSBnZXdlc2VuLCBuaWNodApzZWluZSEgVW5kIGltIEVuZGVmZmVrdCBoYXR0ZSBlciBzaWUgZ2VyZXR0ZXQuIFNpZSB2ZXJzdGFuZCB6d2FyIGltbWVyIG5vY2gKbmljaHQgd2llLCBhYmVyIGRhcyB3dWVyZGUgc2ljaCBzY2hvbiBub2NoIGtsYWVyZW4uCgoiTmF0dWVybGljaCBpc3QgZGFzIGRlaW5lIFNjaHVsZCEgRGFzIGhhYmUgaWNoIGF1Y2ggbmljaHQgaW4gRnJhZ2UgZ2VzdGVsbHQhIiwKc2NoaW1wZnRlIE9sb3JuLiAiTWVpbmUgRW5rZWxpbiBpbiBkaWVzZW0gWnVzdGFuZCEiCgpEYXMgcmVpY2h0ZSBpaHIuCgoiSWNoIHZlcmxhc3NlIGRhcyBEb3JmLCB3ZW5uIGljaCBkYXMgZnVlciByaWNodGlnIGhhbHRlLiBEcmF1c3NlbiB3YXIgZWluCldvbGYsIGRlciBlaW5lbiB1bnNlcmVyIEtyaWVnZXIgYW5nZWdyaWZmZW4gaGF0IC4uLiIsIGJlZ2FubiBzaWUuCgoiS3JpZWdlcj8gRGVyIGhpZXI/IERhcyBpc3Qga2VpbiBLcmllZ2VyISIsIGJydWVsbHRlIGlociBHcm9zc3ZhdGVyLiAiRGFzIGlzdAplaW4gVHVuaWNodGd1dC4gRWluIFRyYWV1bWVyISBFaW4gSmFlZ2VyLCBkZXIgbnVyIHNvIHZpZWwgamFndCwgd2llIGVyCnVuYmVkaW5ndCBicmF1Y2h0LCB1bmQgbmljaHQgbWVociBlcnJlaWNoZW4gd2lsbCEgSWNoIGhvZXJ0ZSwgZXIgc29sbCBlaW4KZ3V0ZXIgQm9nZW5zY2h1ZXR6ZSBzZWluLiBVbmQgd2FzIGhhdCBpaG0gZGFzIGdlZ2VuIGRlbiBXb2xmIGdlbnV0enQ/IE5pY2h0cyEKV28gaXN0IGRlbm4gZGVpbiBCb2dlbiwgSWxsYnJlPyBHZW5hdSBkYSwgd28gZGVpbmUgRWx0ZXJuIHNpbmQhIE5pY2h0IGhpZXIhIgoKSWxsZGVyZXRocyBIYWVuZGUgYmFsbHRlbiBzaWNoIHp1IEZhZXVzdGVuLiBTZWluZSBFbHRlcm4gd2FyZW4gYXVzIGRlbSBEb3JmCnZlcnN0b3NzZW4gd29yZGVuLCBkYSBzaWUgZW50Z2VnZW4gZGVuIEFud2Vpc3VuZ2VuIGRlcyBBZWx0ZXN0ZW4gZWluaWdlIEJhZXVtZQpnZXNjaGxhZ2VuIGhhdHRlbiwgZGllIGRpZXNlciBhdXNkcnVlY2tsaWNoIHp1IHNjaGxhZ2VuIHZlcmJvdGVuIGhhdHRlLgpJbGxkZXJldGggaGF0dGUgbmljaHRzIGRhbWl0IHp1IHR1biBnZWhhYnQgdW5kIHdhciBhbHQgZ2VudWcgZ2V3ZXNlbiwgdW0gc2ljaApzZWxic3QgenUgdmVyc29yZ2VuLiBFciBkdXJmdGUgaW0gRG9yZiBibGVpYmVuLCBhYmVyIHNlaXRkZW0gd2FyIGVyIGF1ZiBzaWNoCmFsbGVpbiBnZXN0ZWxsdC4gRG9jaCBlciBoYXR0ZSBzaWNoIG9mZmVuYmFyIHVudGVyIEtvbnRyb2xsZS4KCiJJbGxkZXJldGgsIEFlbHRlc3Rlci4gTWVpbiBOYW1lIGlzdCAuLi4iCgoiQmVsZWhyZSBtaWNoIG5pY2h0ISBCZWFudHdvcnRlIGRpZSBGcmFnZSEiCgoiSG9lciBhdWYhIiwgc2NocmllIFRhcml2ZWwuIERhcyB3YXIgamEgbmljaHQgenUgZXJ0cmFnZW4hICJEZXIgV29sZiBrYW0gYXVzCmRlbSBOaWNodHMhIEljaCB3ZWlzcyBuaWNodCwgd2FydW0gZGVyIHNvIG5haCBhbnMgRG9yZiBrYW0uIEljaCBrYW0gSWxsZGVyZXRoCnp1IEhpbGZlLCBhYmVyIGRhcyB3YXIgZ2FyIG5pY2h0IG5vZXRpZyEgRXIgaGF0IGRlbiBXb2xmIG1pdCAuLi4gbWl0IC4uLiBtaXQKZWluZW0gSGFnZWxzY2hsYWcgZ2V0b2V0ZXQhIgoKIkVpbmVtIHdhcz8iIElociBHcm9zc3ZhdGVyIHNjaGF1dGUgc2llIHZlcndpcnJ0IGFuLgoKIkVpbmVtIEhhZ2Vsc2NobGFnLiBJY2ggd2Vpc3MgbmljaHQgZ2VuYXUsIHdhcyBkYXMgd2FyLCBhYmVyIHdlbm4gZXIgZGFzCldpc3NlbiB3ZWl0ZXJ2ZXJicmVpdGVuIGthbm4gLi4uIgoKSWhyIEdyb3NzdmF0ZXIgd2lua3RlIHVud2lyc2NoIGFiLiAiV2FzIGZ1ZXIgZWluIFdpc3Nlbj8gQm9lZ2VuIHVuZApSdWVzdHVuZ2VuLCBTY2h3ZXJ0ZXIgdW5kIExhbnplbiEgQmFldW1lISBMZWJlbiEgRGFzIGlzdCB1bnNlciBMZWJlbnN3ZWchIFVuZAp3aXIgc2luZCBndXRlIEhlaWxlciEgRGllc2VuIFdlZyBoYXN0IGR1IHZlcmdlc3Nlbiwgd2FzPyBFaW5lbiBIYWdlbHNjaGxhZy4KVW5kIHdhcyBlcnphZWhsc3QgZHUgaWhyIG1vcmdlbj8gVm9uIEZldWVyd2FsemVuIHVuZCBCbGl0em5lYmVsbj8iCgoiSWNoIGhhYmUgZG9jaCBudXIgLi4uIiwgYmVnYW5uIElsbGRlcmV0aCwgYWJlciBkZXIgTXVsYWkgc2Nobml0dCBpaG0gZGFzIFdvcnQKYWIuCgoiTnVuIGRlbm4sIGRhbm4gemVpZ2UgbWlyIGRvY2ggbWFsIHNvIGVpbmVuIC4uLiBIYWdlbHNjaGxhZyEiCgpJbGxkZXJldGggem9lZ2VydGUsIGRhbm4gbmlja3RlIGVyLiBFciBzdHJlY2t0ZSBzZWluZSBIYW5kIGF1cy4gU2ljaHRsaWNoCmFuZ2VzdHJlbmd0IHZlcnpvZyBlciBkaWUgU3Rpcm4uCgoiRXMga2xhcHB0IG5pY2h0IiwgZmx1ZXN0ZXJ0ZSBlci4gIkljaCB3ZWlzcyBuaWNodCwgd2FydW0gZGFzIG5pY2h0IGtsYXBwdC4iCgpUYXJpdmVsIHZlcnN0YW5kIGlobiwgYWJlciBhdWNoIHdlbm4gaWhyIEdyb3NzdmF0ZXIgaWhuIG5pY2h0IHZlcnN0YW5kLCBoYXR0ZQpkZXIgZG9jaCBlcmtlbm5iYXIgZ2VudWcuCgoiRHUgYmlzdCBlaW4gU2NoYXJsYXRhbiwgSWxsZGVyZXRoISBNaXQgd2VsY2hlbiBUcmlja3MgaGFzdCBkdSB2ZXJzdWNodCwgbWVpbmUKRW5rZWxpbiB6dSBiZWVpbmRydWNrZW4/IgoKVGFyaXZlbCB3YXIgc2ljaCBuaWNodCBzaWNoZXIsIG9iIElsbGRlcmV0aCBnZW1lcmt0IGhhdHRlLCBkYXNzIGlociBHcm9zc3ZhdGVyCnNlaW5lbiByaWNodGlnZW4gTmFtZW4gZHVyY2hhdXMga2FubnRlLiBBYmVyIGRhcyB3YXIgbnVuIHp3ZWl0cmFuZ2lnLgoKIkljaCBoYWJlIGVzIGdlc2VoZW4iLCBlcmtsYWVydGUgVGFyaXZlbC4gIkRhbWl0IGljaCBkYXMgcmljaHRpZyB2ZXJzdGVoZTogRHUKd2lsbHN0IGFsc28gc2FnZW4sIGljaCBiaW4gZHVtbT8gR2xhdWJzdCBEdSwgaWNoIGZhbGxlIGF1ZiBlaW5lbiBTY2hhcmxhdGFuCmhlcmVpbj8iCgpTbyByZWRldGUgbmllbWFuZCBtaXQgaWhyZW0gR3Jvc3N2YXRlciwgZGFzIHd1c3N0ZSBUYXJpdmVsLiBBYmVyIElsbGRlcmV0aApoYXR0ZSBkaWVzZSBCZWhhbmRsdW5nIG5pY2h0IHZlcmRpZW50LgoKIk5hLCBkdSBzaWVoc3QgZG9jaCwgd2FzIGRlciBkYSBtYWNodCEgT2RlciBtb2VjaHRlc3QgZHUgZXR3YSBiZXN0cmVpdGVuLCBkYXNzCmR1IGVpbiBBdWdlIGF1ZiBtZWluZSBFbmtlbGluIGdld29yZmVuIGhhc3Q/IgoKSWxsZGVyZXRoIHd1cmRlIGtuYWxscm90IHVuZCBzdGFuZCBtaXQgb2ZmZW5lbSBNdW5kIGRhLiBFaW4gbGVpc2VzIEtyYWVjaHplbgpicmFjaHRlIGVyIHp1c3RhbmRlLgoKIkRhIHNpZWhzdCBkdSBlcyEgSWhtIGlzdCBqZWRlcyBNaXR0ZWwgcmVjaHQhIEljaCBlcmtlbm5lIEFycm9nYW56IHVuZApHcm9lc3NlbndhaG4sIHdlbm4gaWNoIHNpZSBzZWhlLiBVbmQgamV0enQgZXJrbGFlciBtaXIsIHdpZSB3aWxsc3QgZHUgZGllc2VuCkhhZ2Vsc2NobGFnIGVyemV1Z3QgaGFiZW4/IE9kZXIgd2FzIGltbWVyIGRhcyBnZXdlc2VuIHNlaW4gc29sbCwgd29iZWkgbWVpbmUKRW5rZWxpbiB2ZXJsZXR6dCB3dXJkZT8iCgpJbGxkZXJldGggZmFzc3RlIHNpY2guICJEYSBpc3QgZWluIE9ydCAuLi4iCgoiRWluIE9ydD8gV2FzIGZ1ZXIgZWluIE9ydD8iCgoiRGllIEt1ZWhsZSBMaWNodHVuZy4gRXMgaXN0IGVpbiBPcnQsIGRlciBpbiBlaW5lbSBTZWxic3QgbGllZ3QuIE1hbiBtdXNzIHNpY2gKdGllZiBpbiBzaWNoIHNlbGJzdCB2ZXJzZW5rZW4gLi4uIgoKIlBhcHBlcmxhcGFwcCEiIERlciBBZWx0ZXN0ZSB3aW5rdGUgYWIuICJOdW4gZGVubi4gU28gZW50c2NoZWlkZSBpY2ggbnVubWVocgpGb2xnZW5kZXM6IER1LCBuaWNodHNudXR6aWdlciBJbGxkZXJldGgsIHdpcnN0IGRpY2ggbW9yZ2VuIGJlaSBkZW4gV2FjaHBvc3RlbgptZWxkZW4uIER1IHdpcnN0IGVpbmUgQXVzYmlsZHVuZyBpbiBkZXIgV2FjaGUgZHVyY2hsYXVmZW4uIFZpZWxsZWljaHQgd2lyc3QgZHUKZGFubiBqYSB3aXJrbGljaCBub2NoIGVpbiBLcmllZ2VyLiBVbmQgZHUgd2lyc3QgZGljaCB2b24gbWVpbmVyIEVua2VsaW4KZmVybmhhbHRlbi4gVW5kIGR1LCBUYXJpdmVsLCB3aXJzdCBkaWVzZW4gTW9lY2h0ZWdlcm4tSmFlZ2VyIG5pY2h0IG1laHIKdHJlZmZlbi4iCgpUYXJpdmVsIHNhaCBpaG4gdHJvdHppZyBhbi4gIkdyb3NzdmF0ZXI/IgoKT2xvcm4gaGllbHQgaWhyZW0gQmxpY2sgc3RhbmQuICJJY2ggYmluIGdlcmFkZSBkZXIgRG9yZmFlbHRlc3RlIHVuZCBuaWNodCBkZWluCkdyb3NzdmF0ZXIuIgoKIkRlciBEb3JmYWVsdGVzdGUgaGF0IGtlaW4gUmVjaHQsIFVtZ2FuZyB6dSB2ZXJiaWV0ZW4uIERlciBEb3JmYWVsdGVzdGUga2FubgppaG4gdmllbGxlaWNodCB6dW0gV2FjaGRpZW5zdCBlaW50ZWlsZW4sIGFiZXIgbWlyIG5pY2h0IHZvcnNjaHJlaWJlbiwgd2VuIGljaAp6dSB0cmVmZmVuIGhhYmUuIgoKT2xvcm4gbGFjaHRlIGxhdXQgYXVmLiAiV2lsbHN0IGR1IGRpY2ggZXR3YSBtaXQgZGVtIGRhIHRyZWZmZW4/IgoKVGFyaXZlbCBoYXR0ZSBnZW51Zy4gU2llIGZhbmQgSWxsZGVyZXRoIG5ldHQsIHNvZ2FyIG1laHIgYWxzIGRhcy4gVW5kIHNpZQpoYXR0ZSBWZXJhYnJlZHVuZ2VuIG1pdCBMaWdlbnNoYWQgZ2VoYWJ0ICBhYmVyLCB3aWUgc2llIHNpY2ggc2VsYnN0CmVpbmdlc3RhbmRlbiBoYXR0ZSwgdm9yIGFsbGVtIGRhcnVtLCB1bSBJbGxkZXJldGggbmFlaGVyenVrb21tZW4uIFdhcyBsZWlkZXIKdWViZXJoYXVwdCBuaWNodCBmdW5rdGlvbmllcnQgaGF0dGUsIElsbGRlcmV0aCBoYXR0ZSBzaWUgdW5kIExpZ2Vuc2hhZApnZW1pZWRlbi4gVW5kIHNpZSB3dXNzdGUgbmljaHQgZWlubWFsLCBvYiBzaWUgZGFydWViZXIgbmFjaGRlbmtlbiB3b2xsdGUuCkxpZ2Vuc2hhZCBoYXR0ZSBkYXMgR2FuemUgc2NobGllc3NsaWNoIGJlZW5kZXQuCgpTaWUgZHJlaHRlIHNpY2ggYnJ1ZXNrIHVtLCBzdGllZyBkZW4gQmF1bSBoaW5hYiB1bmQgbGllZiBkdXJjaCBkaWUgU2llZGx1bmcuCkVyc3Qga3VyeiB2b3IgZGVtIFRvciBzY2hhdXRlIHNpZSB6dXJ1ZWNrLiBad2VpIGRlciBXYWNoZW4gZHJlaHRlbiBzaWNoIHp1IGlocgp1bSB1bmQgc2NoYXV0ZW4gc2llIGxhZWNoZWxuZCBhbi4gV2llIGVzIGlociBnaW5nLCB3YXMgc2llIGRhY2h0ZSAgZGFzIHdhcgpkZW5lbiB2ZXJtdXRsaWNoIGVnYWwuIFNpZSBzYWhlbiBUYXJpdmVsLCBkaWUgRW5rZWxpbiBkZXMgQWVsdGVzdGVuLCBqdW5nLApndXRhdXNzZWhlbmQuIEphLCBzaWUgd3Vzc3RlLCB3ZWxjaGUgV2lya3VuZyBzaWUgYXVmIE1hZW5uZXIgaGFiZW4ga29ubnRlLgpBYmVyIGdlcmFkZSB3b2xsdGUgc2llIGRhcyBuaWNodC4KCklocmUgR2VkYW5rZW4ga3JlaXN0ZW4gdW0gaWhyZW4gR3Jvc3N2YXRlci4gV2FzIHNvbGx0ZSBkYXM/IERpZXNlciBhcnJvZ2FudGUKTWlzdGtlcmwhIFNlaXQgaWhyZSBFbHRlcm4gZ2VzdG9yYmVuIHdhcmVuLCBoYXR0ZSBlciBzaWUgYXVmZ2V6b2dlbi4gSmEsIHNpZQp3YXIgaWhtIGRhbmtiYXIsIHVuZCBuYXR1ZXJsaWNoIHdvbGx0ZSBlciBzaWUgYmVzY2h1ZXR6ZW4uIEFiZXIgdmVyZGFtbXQsIHNpZQprb25udGUgZG9jaCBuaWNodCBlcmxhdWJlbiwgZGFzcyBlciBpaHIgc2FndGUsIHdlbiBzaWUgdHJlZmZlbiBkdXJmdGUgdW5kIHdlbgpuaWNodCEKClZpZWxsZWljaHQgd2FyIGVzIGRhcyBCZXN0ZSwgbnVuIGVyc3QgZWlubWFsIGtsZWluIGJlaXp1Z2ViZW4uIFVuZCBzbyB6dSB0dW4sCmFscyBzZWkgZ2FyIG5pY2h0cy4gR2VuYXUuIEVyIHdhciBzY2hsaWVzc2xpY2ggZGVyIEFlbHRlc3RlLgoKVW5kIGRhbm4sIGhlaW1saWNoLCBhYiB1bmQgYW4gYmVpIGRlciBXYWNoZSB2b3JiZWlzY2hhdWVuLCB3ZW5uIElsbGRlcmV0aCBkb3J0CkRpZW5zdCBoYXR0ZS4KCgoKCgpBdWZicnVjaAoKCgoKCkRlciBFaXNpZ2Ugc3RhbmQgdm9yIGRlciBLdWdlbCwgZWluZXIgZGVyIHBlcmZla3RlbiBLdWdlbG4sIGRpZSBkYXMgTGljaHQgYXVzCmRlbiB1bXN0ZWhlbmRlbiBLZXJ6ZW4gZ2VuYXUgcmVmbGVrdGllcnRlLiBTaWViZW4gS2VyemVuIHN0YW5kZW4gdW0gc2llIGhlcnVtCnVuZCBiZWxldWNodGV0ZW4gZGVuIEVpc2lnZW4sIGRlc3NlbiBkdW5rbGUgS3V0dGUgZGFtaXQgc2llYmVuIGZsYWNrZXJuZGUKU2NoYXR0ZW4gd2FyZi4KCgoKRXIgc3RyaWNoIG1pdCBLbGF1ZW5maW5nZXJuIHVlYmVyIGRhcyBLbGVpbm9kLiBSZWluIHVuZCBzY2h3YXJ6LiBTbyBtdXNzdGUgZXMKc2Vpbi4gRGFubiBkcmVodGUgZXIgZGllIEt1Z2VsIGxhbmdzYW0uCgpEYXMgTGljaHQgYnJhY2ggc2ljaCBpbiBpaHIsIG1laHJmYWNoLiBEaWUgTGljaHRzdHJhaGxlbiBkdXJjaGRyYW5nZW4gc2ljaApnZWdlbnNlaXRpZy4gU28gd2FyIGVzIHBlcmZla3QuIEVyIGxpZXNzIGRpZSBLdWdlbCBsb3MuCgpFaW4gU2NobGVpZXIgYXVzIExpY2h0IGVudHN0YW5kIGltIFJhdW0gdW5kIHZlcmRpY2h0ZXRlIHNpY2guIEVpbgprcmVpc2ZvZXJtaWdlcyBNdXN0ZXIsIGRhcyBzbyBkaWNodCB3dXJkZSwgZGFzcyBtYW4gZGllIGRhaGludGVybGllZ2VuZGUgV2FuZApudXIgbm9jaCBlcmFobmVuIGtvbm50ZS4KCkVpbiBtYWdpc2NoZXMgUG9ydGFsLiBFaW4gVG9yIGluIGVpbmUgYW5kZXJlIFdlbHQuCgpEZXIgRWlzaWdlIGR1cmNoc2Nocml0dCBlcy4KCkVyIGthbm50ZSBkZW4gT3J0LCBhbiBkZW0gZXIgaGVyYXVza2FtLiBEaWUgWndpc2NoZW53ZWx0LiBEaWUgV2VsdCwgaW4gZGVyIGRhcwpOaWNodHMgcmVnaWVydGUsIHVuZCBkaWUgZG9jaCBhbGxlcyB3YXIuIEV0d2FzLCBkYXMgbmViZW4gZGVyIG5vcm1hbGVuIFdlbHQKbGFnLgoKSGllciB3YXIgYWxsZXMgdm9uIGVpbmVtIHdhYmVybmRlbiBOZWJlbCBkdXJjaHpvZ2VuLiBHcm9iIGtvbm50ZSBlciBkaWUgTWF1ZXJuCmVpbmVzIFR1cm1lcyBlcmtlbm5lbi4KCldvIGVzIGluIGRlciBub3JtYWxlbiBXZWx0IEhpbmRlcm5pc3NlIGdhYiwgcmVnaWVydGUgaGllciB2b3IgYWxsZW0gZWluZXM6IGRpZQpLcmFmdCBkZXIgR2VkYW5rZW4uIFVuZCBlciBoYXR0ZSBtYWVjaHRpZ2UgR2VkYW5rZW4uIFNpZSBnZW51ZWd0ZW4sIHVtIGluIGRlcgpad2lzY2hlbndlbHQgZGllIG5vcm1hbGVuIEdlc2V0emUgYXVzc2VyIEtyYWZ0IHp1IHNldHplbi4gRXIgc2Nod2VidGUgZGVuIFR1cm0KaGluYXVmLgoKT2JlbiBhbmdla29tbWVuIHNjaGF1dGUgZXIgaW4gZGFzIFdhYmVybi4gRXJrZW5uZW4ga29ubnRlIGVyIG5pY2h0cywgYWJlciBkYXMKbXVzc3RlIGVyIGF1Y2ggbmljaHQuIEVzIHJlaWNodGUsIHdlbm4gbWFuIHJpZWYuCgoiTWFlY2h0ZSBkZXIgQmFsYW5jZSwgV2FocmVyIGRlcyBHbGVpY2hnZXdpY2h0ZXMsIG9mZmVuYmFydCBFdWNoISIKCkRpZSBNYWVjaHRlLCBkaWUgYW4gZGllc2VtIE9ydCByZWdpZXJ0ZW4sIGthbm50ZSBuaWVtYW5kIGdlbmF1LiBTZWxic3QgZGVtCkVpc2lnZSB3YXIgaWhyZSB3YWhyZSBIZXJrdW5mdCB1bmJla2FubnQuIEFsbGdlbWVpbiBnYWx0LCBkYXNzIGVzIG1hZWNodGlnZQpTZWhlciB1bmQgTWFnaWVyIHdhcmVuLCBkaWUgYW4gZGllc2VuIE9ydCBrb21tZW4ga29ubnRlbiwgdW0gc28gZGVtCkdsZWljaGdld2ljaHQgenUgZGllbmVuLCBhYmVyIHNvIGdlbmF1IHd1c3N0ZSBkYXMgbmllbWFuZC4KCkVyIHd1c3N0ZSBhdWNoIG5pY2h0LCBpbiB3ZWxjaGVyIEZvcm0gc2ljaCBpaG0gZGllIEJhbGFuY2UgZGllc21hbCB6ZWlnZW4Kd3VlcmRlLiBBYmVyIHNpZSB3dWVyZGUga29tbWVuLiBXZXIgc2llIHJpZWYsIGRlbSBtdXNzdGUgc2llIHNpY2ggemVpZ2VuLgoKRWluZSBtZW5zY2hlbmFlaG5saWNoZSwgYmxhc3NlIEtyZWF0dXIgbWl0IGR1bmtsZW4gRmx1ZWdlbG4sIGVpbiBTY2h3ZXJ0IGF1cwpGZXVlciBpbiBkZXIgSGFuZCwgbWF0ZXJpYWxpc2llcnRlIGF1cyBkZW0gTmViZWwuIFNpZSBzY2h3ZWJ0ZSBkaXJla3Qgdm9yIGlobQp1bmQgbXVzdGVydGUgaWhuIGFic2NoYWV0emlnLiBFciBlcmthbm50ZSB2YWdlLCBkYXNzIGVzIHNpY2ggdW0gZWluZQptYWVubmxpY2hlIEtyZWF0dXIgaGFuZGVsdGUuCgoiRHUgd2llZGVyIGhpZXIuIiBEaWUgV29ydGUgZGVzIEdlZmx1ZWdlbHRlbiB3aXJrdGVuIG1hZWNodGlnICB1bmQKZ2VsYW5nd2VpbHQuCgoiU2VpZCBnZWdydWVzc3QsIE1hY2h0IGRlciBCYWxhbmNlLiIKCkRlciBHZWZsdWVnZWx0ZSB2ZXJkcmVodGUgZGllIEF1Z2VuLiAiSmE/IFdhcyBrYW5uIGljaCBmdWVyIGRpY2ggdHVuLApFaXNpZ2VyPyIKCiJJY2ggYmVhbnNwcnVjaGUgQXVza3VuZnQgdWViZXIgbmV1ZSBRdWVsbGVuIGRlciBNYWNodCBkZXMgR3V0ZW4uIgoKRGllIEdlc3RhbHQgc2NobHVnIG1pdCBkZW4gRmx1ZWdlbG4gdW5kIHNjaGxvc3MgZGllIEF1Z2VuLCBhbHMgbXVlc3NlIHNpZSBzaWNoCmtvbnplbnRyaWVyZW4uIFNpZSBoaWVsdCBhdWYgZWlubWFsIGVpbmUga2xlaW5lIFdhYWdlIGluIGRlciBIYW5kIHVuZCBsZWd0ZQphdWYgZGllIGxpbmtlIFNlaXRlIGVpbmUgd2Vpc3NlLCBhdWYgZGllIHJlY2h0ZSBlaW5lIHNjaHdhcnplIEZpZ3VyLiBEaWUgV2FhZ2UKd2FyIGltIEdsZWljaGdld2ljaHQuCgoiQmVnaW5uZW4gd2lyIG1pdCBkZXIgWndlcmdlbnN0YWR0LiBEb3J0IGhhdCBzaWNoIGVpbmUgdW5iZWthbm50ZSBHZWZhaHIKZWluZ2VuaXN0ZXQuIE5pY2h0cyBmdWVyIGRpY2ggenUgaG9sZW4sIGRlbmtlIGljaC4iIERpZSBzY2h3YXJ6ZSBGaWd1ciBnaW5nCmxlaWNodCBuYWNoIHVudGVuLgoKIkJlaSBkZW4gTWVuc2NoZW4gZ2lidCBlcyBHb2JsaW5zIGluIGRlciBHZWdlbmQuIEdlZmFlaHJsaWNoLiBBdXNnZWdsaWNoZW4Kd3VlcmRlIGljaCBzYWdlbi4iIERpZSBXYWFnZSBnaW5nIGluIE5vcm1hbHBvc2l0aW9uIHp1cnVlY2suCgoiQmVpIGRlbiBGZWxpbmVuIGltIERzY2h1bmdlbCBnaWJ0IGVzIGVpbmUgbmV1ZSBCZXdlZ3VuZywgZWluZSBlaWdlbmUKS3JpZWdlcmdpbGRlIHp1IGdydWVuZGVuLiBIaWVyIGhhYmVuIGRpZSBHdXRlbiBlaW5lbiBsZWljaHRlbiBWb3J0ZWlsLiIgRGllCndlaXNzZSBGaWd1ciBzYW5rIG5hY2ggdW50ZW4uCgoiRXJ6YWVobGUgbWlyIHZvbiBkZW4gRWxmZW4iLCB2ZXJsYW5ndGUgZGVyIEVpc2lnZS4gRGllIEZlbGluZW4gd2FyZW4gZnVlciBpaG4KaW0gTW9tZW50IGF1c3NlciBSZWljaHdlaXRlLCBkYXMgd3Vzc3RlIGVyLgoKIkVsZmVuLiBEYSBnaWJ0IGVzIGVpbmlnZSBFaW5mbHVlc3NlLiBadW5hZWNoc3QgcmVjaHQgYXVzZ2VnbGljaGVuLiBHZXJhZGUgaXN0CmVpbiBXb2xmc3J1ZGVsIGRvcnQgYXVmIGRpZSBTaWVkbHVuZyBnZXRyb2ZmZW4uIE9kZXIgbm9jaCBlaW5lIEdlZmFociAuLi4iIERpZQpzY2h3YXJ6ZSBGaWd1ciBnaW5nIGxlaWNodCBuYWNoIHVudGVuLiAiQWJlciBzbyBnZWZhZWhybGljaCBpc3QgZGllc2UgTWFjaHQKbmljaHQuIERvY2gsIGVpbmVyIGRlciBFbGZlbiBoYXQgZWluZSBRdWVsbGUgZGVyIE1hY2h0IGVudGRlY2t0LiBEYXMgZ2xlaWNodAphdXMgLi4uIiBEaWUgd2Vpc3NlIEZpZ3VyIGdpbmcgaGludW50ZXIsIGJpcyB6dW0gR2xlaWNoZ2V3aWNodCwgdW5kIGRhbm4KdGF0c2FlY2hsaWNoIGRhcnVlYmVyIGhpbmF1cy4KCkRlciBFaXNpZ2UgdHJpdW1waGllcnRlLiAiUXVlbGxlIGRlciBNYWNodCEgRGFzIG11c3MgaWNoIGtvbnRlcm4gZHVlcmZlbi4iCgpEaWUgR2VzdGFsdCBzY2hhdXRlIG1pdGxlaWRpZyBhdWYgaWhuIGhlcmFiLiAiRHUga3JpZWdzdCBuaWUgZ2VudWcsIG9kZXI/IgoKIldpZXNvIHNvbGx0ZSBpY2gsIHdvIGljaCBkb2NoIG5vY2ggbWVociBiZWtvbW1lbiBrYW5uPyIKCk1hbiBzYWggZGFzIEdlc2ljaHQgZGVzIEdlZmx1ZWdlbHRlbiBuaWNodCwgYWJlciBtYW4gbWVya3RlIGlobSBhbiwgZGFzcyBlcgpuaWNodCBiZWdlaXN0ZXJ0IHdhci4gIkljaCBkYWNodGUgbWlyIHNjaG9uLCBkYXNzIG1pdCBkaXIgZGFydWViZXIgenUKZGlza3V0aWVyZW4gd29obCByZWNodCBzaW5ubG9zIGlzdC4gQWJlciBlcyBpc3QgZ2VyZWNodC4gRHUgZGFyZnN0IGluIGRpZQpRdWVsbGUgZWluZ3JlaWZlbi4gTmljaHQgZGlyZWt0IGluIHNpZSwgYWJlciBhbiBpaHJlbSBSYW5kLiIKCiJXaWVzbyBudXIgYW0gUmFuZD8iCgoiRGllIEVsZmVuIGhhYmVuIGRpZXNlIFF1ZWxsZSBzZWxic3QgZW50ZGVja3QuIFNpZSBnZWhvZXJ0IGlobmVuLiBEaWUgUmVnZWxuCmRlciBCYWxhbmNlIHNhZ2VuLCBkYXNzIGR1IHNpZSBuaWNodCBkaXJla3QgdmVyZGVyYmVuIGRhcmZzdC4gRHUgbXVzc3QgbWl0CmRlaW5lbiBNaXR0ZWxuIGFyYmVpdGVuLiBTb25zdCBpc3QgZGFzIEdsZWljaGdld2ljaHQgZ2VmYWVocmRldC4iCgpEZXIgRWlzaWdlIGdyaWZmIGluIGRlbiBOZWJlbC4gRmluc3RlcmUgV29ydGUgbXVybWVsbmQgaG9sdGUgZXIgbWl0IHNlaW5lbgpIYWVuZGVuIGVpbmUgVmlzaW9uIGhlcnZvci4gRXIgc2FoIGVpbmUgTGljaHR1bmcsIHRpZWYgaW4gZWluZW0gV2FsZC4KQW5nZWVrZWx0IHpvZyBlciBzZWluZSBLbGF1ZW4genVydWVjay4KCiJEYXMgaXN0IGRpZSBRdWVsbGUgaWhyZXIgTWFjaHQ/IFNpZSBpc3Qgc28gLi4uIGVsZmlzY2gga3VlaGwuIE5pY2h0IGVpc2lnLiIKCiJTaWUgaXN0IGd1dGFydGlnLiBFcyBpc3QgZWluZSBLdWVobGUgTGljaHR1bmcuIiBlcmtsYWVydGUgZGllIEdlc3RhbHQuICJXYWdlCmVzIG5pY2h0LCBpbiBzaWUgc2VsYnN0IGVpbnp1Z3JlaWZlbi4gRXMgaXN0IGVpbmUgRXJydW5nZW5zY2hhZnQgZGVyIEVsZmVuLCBkdQpkYXJmc3Qgc2llIG5pY2h0IGRpcmVrdCB2ZXJkZXJiZW4uIgoKRWluIExhZWNoZWxuIHpvZyBzaWNoIHVlYmVyIGRpZSBlaXNpZ2VuIExpcHBlbi4KCiJEYXMgd2VyZGUgaWNoIG5pY2h0LiBBYmVyIHZvbiBkZXIgS3VlaGxlbiBMaWNodHVuZyBpc3QgZXMgbmljaHQgd2VpdCAuLi4gYmlzCmlucyBFaXNpZ2UgVGFsLiIKCgotLS0tIEVuZGUgZGVyIExlc2Vwcm9iZSAtLS0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpcGZlbGxhZXVmZXIgKEh1bW5pLCAyMC4gQXVnIDIwMTYsIDA4OjQ1OjUyKToKfiMhIHJuPUh1bW5pIHJ0PTE0NzE2NDQwNDkgcmc9YW56ZWlnZW4KfiMhIHRpZD0xNDcxNjQ0MDQ5Ck51biBqYSwgbWFuY2htYWwgZ2VodCBlcyBkb2NoIHNjaG5lbGxlcjogV2lwZmVsbGFldWZlciBpc3QgbnVuIGVyaGFlbHRsaWNoIGJlaQpBbWF6b246CgpodHRwOi8vdGlueXVybC5jb20vd2lwZmVsbGFldWZlcgoKVW5kIGJlaSBLb2JvOgoKaHR0cDovL3Rpbnl1cmwuY29tL2tvYm93aXBmZWxsYWV1ZmVyCgpEaWUgVG9saW5vLUFsbGlhbnogaGF0IGVzIGF1Y2ggZnVlciBkaWUgTGFlZGVuIGZyZWlnZWdlYmVuLCBhYmVyIGJlaSBlaW5lcgplcnN0ZW4gU3RpY2hwcm9iZSBoYWJlIGljaCBlcyBpbiBzZWxiaWdlbiBuaWNodCBnZWZ1bmRlbiAod2VsdGJpbGQsCmh1Z2VuZHViZWwsIG1heWVyc2NoZSkuIERhcyBrYW5uIHdvaGwgNCBUYWdlIGRhdWVybi4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdpcGZlbGxhZXVmZXIgKFpvb2ssIDIyLiBBdWcgMjAxNiwgMDk6MjI6NDgpOgp+IyEgcm49SHVtbmkgcnQ9MTQ3MTY3NTU1MiByZz1hbnplaWdlbgp+IyEgdGlkPTE0NzE2NDQwNDkKU293ZWl0IGljaCB3ZWlzcyB1bnRlcmxpZWdlbiBFLUJvb2tzIGRlciBCdWNocHJlaXNiaW5kdW5nLiBBYmVyIGljaAptYWcgbWljaCB0YWV1c2NoZW4uCgpKZWRlbmZhbGxzIGlzdCBlaW4gQmVrYW5udGVyIHZvbiBtaXIgbWl0IHNlaW5lbSBWZXJsYWcgbWFsIGF1ZgpkaWUgTmFzZSBnZWZhbGxlbiwgd2VpbCBlciBlaW4gRS1Cb29rIG1hbCBlaW5lIFplaXRsYW5nIHZlcnNjaGVua3QKaGF0dGU7IGRhIGhhdCBpaG4gZGFubiBkZXIgQm9lcnNlbnZlcmVpbiBhYmdlbWFobnQgdW5kIHZvciBHZXJpY2h0Cmdlend1bmdlbiwgZGFzIG5pY2h0IG1laHIgenVtIFByZWlzIHZvbiAwIHp1ICJ2ZXJrYXVmZW4iLgoKWm9vawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV2lwZmVsbGFldWZlciAoSHVtbmksIDIyLiBBdWcgMjAxNiwgMTk6NDc6MTUpOgp+IyEgcm49Wm9vayBydD0xNDcxODUwNTY4IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTQ3MTY0NDA0OQpTbywgZWluIFN0YXRlbWVudCBub2NoLCBkYW5uIGlzdCBhYmVyIGJhbGQgYXVjaCBSdWhlIHZvbiBtZWluZXIgU2VpdGUgYXVzOgoKV2VubiBpaHIgZGFzIGdlbGVzZW4gaGF0LCB1bmQgZXMgZXVjaCBnZWZhbGxlbiBoYXQsIHdhZXJlIGljaCBmcm9oLCB3ZW5uIGlocgpiZWkgZWluZW0gT25saW5laGFlbmRsZXIgRXVyZXIgV2FobCAod2llIGljaCBiZW1lcmtlLCBpbiBkZW4gbWVpc3RlbiBGYWVsbGVuCkFtYXpvbiAuLi4pIGVpbmUgUmV6ZW5zaW9uIGhpbnRlcmxhc3N0LgoKRGFzIHdhZXJlIGVjaHQgdG9sbC4gRGFua2Ugc2VociEKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGllbGhpbGZlIGZ1ZXIgU3BhY2U6MTg4OSAoSHVtbmksIDE0LiBPa3QgMjAxNiwgMTM6NTU6NDIpOgpIYWxsbyBhbGxlLAoKd2VyIHZvbiBFdWNoIGdlcm5lIFN0ZWFtcHVuayBtYWcgdW5kIHNvZ2FyIG5vY2ggZ2VybmUgUm9sbGVuc3BpZWxlIHNwaWVsdCwgZGVtCmVtcGZlaGxlIGljaCBkYXMgZ3Jvc3NhcnRpZ2UgUm9sbGVuc3BpZWwgU3BhY2U6MTg4OS4gRGFzIGdpYnQgZXMgc2VpdCBlaW5pZ2VuCkphaHJlbiBpbiBlaW5lciBuZXVlbiBWZXJzaW9uIHZvbSBVaHJ3ZXJrLVZlcmxhZywgbWl0IGRlbSBVYmlxdWl0eS1SZWdlbHdlcmssCmRhcyBzZWhyIHNpbXBlbCBmdW5rdGlvbmllcnQuCgpVbmQgd2FydW0gc2NocmVpYmUgaWNoIGRhcz8gTnVuLCB3ZWlsIHNlaXQgZGVyIFNwaWVsZW1lc3NlIGluIEVzc2VuIChkaWUKZ2VzdGVybiBiZWdhbm4pIGRhenUgZWluZSBuZXVlIFNwaWVsaGlsZmUgYXVmIGRlbSBNYXJrdCBpc3Q6ICJEYXMgbmV1ZQpBZXRoZXJ2ZXJzdW0iLiBBbiBkZXIgaGFiZSBpY2ggKHJlY2h0IGJlZ3Jlbnp0LCB6dWdlZ2ViZW4pIG1pdGdlYXJiZWl0ZXQuCgpOdW4gZGVubiwgZGFydW0gZGFjaHRlIGljaCwgaWNoIGJld2VyYmUgZGllIG1hbC4KClVuZCB3ZXIgZGFzIG5vY2ggbmljaHQgd2Vpc3M6IE1laW4gTW9yZ2VuZ3JhdWVuLVJvbWFuICJXaXBmZWxsYWV1ZmVyIiBpc3QgYXVjaApyYXVzLCBhYmVyIHNjaG9uIGxhZW5nZXIuIE51ciBleHBpcmVkIGRpZSBSdWJyaWsgaGllciByZWNodCBzY2huZWxsLCBkYXJ1bQp3ZWlzZSBpY2ggbm9jaG1hbCBkYXJhdWYgaGluLiBCZWkgRnJhZ2VuIGRhenUgb2RlciBCZXN0ZWxsd3VlbnNjaGVuIHdlbmRldApFdWNoIGVpbmZhY2ggYW4gbWljaC4gOy0pCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgQnVjaCBpbSBuZXVlbiBWZXJsYWcgKEh1bW5pLCAgMy4gTWFpIDIwMTcsIDEzOjEwOjU4KToKSGFsbG8gaWhyLAoKaW4gbWVpbmVtIG5ldWdlZ3J1ZW5kZXRlbiBWZXJsYWdzaGF1cywgZGVtIEJvZXNlciBEcmFjaGUgVmVybGFnLCBlcnNjaGVpbnQKZ2VyYWRlIG1laW4gbmV1ZXMgQnVjaCwgIkJlcm5zdGVpbmt1Z2VsbiIuCgpEYXMgaXN0IGFiZXIga2VpbiBNb3JnZW5ncmF1ZW4tUm9tYW4uIERhZnVlciB3aXJkIGVzIGRpZXNtYWwgYXVjaCBlaW5lClByaW50dmVyc2lvbiBnZWJlbi4gSmF3b2hsLiBNaXQgSVNCTi1OdW1tZXIuCgpEYXMgRWJvb2sgZXJzY2hlaW50IG1vcmdlbiwgYW0gNC41LiwgYmVpIGRlbiB1ZWJsaWNoZW4gQW5iaWV0ZXJuIChBbWF6b24gdW5kCktvYm8gc2luZCBzY2hvbiB2b3JiZXN0ZWxsYmFyLCBiZWkgZGVuIFRvbGluby1QYXJ0bmVybiB3aXJkIGVzIG5vY2ggZWluIHdlbmlnCmRhdWVybikuIEVzIGtvc3RldCBhbHMgRWJvb2sgNiw5OSBFdXJvLiAKCkRhcyBQcmludGJ1Y2ggbXVzcyBub2NoIGF1cyBkZW0gRHJ1Y2sga29tbWVuIHVuZCB3aXJkIDEyIEV1cm8ga29zdGVuLgoKV2llIHVlYmxpY2ggZGFyZiBpY2ggZGllIEJ1ZWNoZXIgbmljaHQgYmlsbGlnZXIgdmVya2F1ZmVuLCBkYSBlcyBlaW5lCkJ1Y2hwcmVpc2JpbmR1bmcgZ2lidCwgYWJlciB3ZXIgYmVpIG1pciBoaWVyIGltIE11ZCBwZXIgdG0gYmVzdGVsbHQsIHNvcmd0CmRhZnVlciwgZGFzcyBkZXIgVmVyZWluIGVpbmVuIEV1cm8gYWJiZWtvbW10LiA7LSkKCkRhbmtlIGZ1ZXIgZGllIEF1Zm1lcmtzYW1rZWl0LiBEYXMgd2FyIGVzIGF1Y2ggc2Nob24uCgpIdW1uaQooZGVyIHRhdHNhZWNobGljaCwgc28gZ2FueiBuZWJlbmJlaSwgYXVjaCBhbiBlaW5lbSBuZXVlbiBNRy1Qcm9qZWt0IGFyYmVpdGV0Ci4uLikKKGphLCB3aXJrbGljaCBlaW4gTUctUHJvamVrdC4gSWNoIG1laW5lIGRhIGpldHp0IGtlaW4gTUctQnVjaC4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1ZXMgQnVjaCBpbSBuZXVlbiBWZXJsYWcgKEh1bW5pLCAxMi4gTWFpIDIwMTcsIDAwOjA4OjU1KToKfiMhIHJuPUh1bW5pIHJ0PTE0OTM4MDk4NTggcmc9YW56ZWlnZW4KfiMhIHRpZD0xNDkzODA5ODU4CkRhcyBQcmludGJ1Y2ggaXN0IG51biBhdWNoIGF1cyBkZW0gRHJ1Y2suIFdlciBlaW5lcyBoYWJlbiBtb2VjaHRlLCBrYW5uIHNpY2gKYmVpIG1pciBtZWxkZW4uIEtvc3RlbnB1bmt0IHNpbmQgMTIgRXVybywgZGVuIFZlcnNhbmQgdWViZXJuaW1tdCBkZXIgVmVybGFnLgoKSWNoIG11c3MgYWJlciBhdWYgZWluZW4gU2Nob2VuaGVpdHNmZWhsZXIgaGlud2Vpc2VuOiBEdXJjaCBlaW5lIEJsb2VkaGVpdCB2b24KbWlyIGhhYmUgaWNoIGRpZSBUZXh0ZSB6dSBuYWggYW4gZGllIEJpbmR1bmcgZ2VzZXR6dC4gRXMgaXN0IGFsbGVzIGxlc2JhciwKYWJlciBkYXMgaXN0IHRyb3R6ZGVtIGRvb2YuIFdlbiBzbyBldHdhcyBzdG9lcnQsIGFiZXIgZGFzIEJ1Y2ggZGVubm9jaCBoYWJlbgp3aWxsLCBrYW5uIHp1bSBFYm9vayBncmVpZmVuLgoKU29uc3QgbWVsZGV0IGV1Y2ggZWluZmFjaCBwZXIgdG0gb2RlciBtdWRtYWlsIGJlaSBtaXIuCgpEYW5rZSBmdWVyIGRpZSBBdWZtZXJrc2Fta2VpdCEKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmVyZ2llZmVsZCBSdWJpbiAoSHVtbmksIDIyLiBKdWwgMjAxNywgMDA6MDA6MzMpOgpMaWViZSBNdWRkZXIsCnVuZCB3aWVkZXIgaGFiZSBpY2ggRGluZ2UgYXVzc2VyaGFsYiBkZXMgTW9yZ2VuR3JhdWVucyBnZXRhbi4gTWFuIHZlcnplaWhlCnVuZCB3aWVkZXIgaGFiZSBpY2ggRGluZ2UgYXVzc2VyaGFsYiBkZXMgTW9yZ2VuR3JhdWVucyBnZXRhbi4gTWFuIHZlcnplaWVoCm1pciwgZGFzIG5hZWNoc3RlIGdyb2Vzc2VyZSBQcm9qZWt0IChva2F5LCBuZWJlbiBkZW0gbmFlY2hzdGVuIEJ1Y2gpIHdpcmQgZWluCk1HLVByb2pla3QgKGVzIGdlaHQgdW0gLi4uIGdyYWJlbmRlIC4uLiBXZXNlbi4gTWVociB2ZXJyYXRlIGljaCBub2NoIG5pY2h0LikKCldpZSBkZW0gYXVjaCBzZWk6IE1laW4gbmV1ZXIgUm9tYW4sIEVuZXJnaWVmZWxkIFJ1YmluLCBlcnNjaGVpbnQgaGV1dGUsIGFtCjIyLjcuMjAxNyBhbHMgRWJvb2suIEVyIGlzdCBhdWNoIHZlcmdsZWljaHN3ZWlzZSBlcnNjaHdpbmdsaWNoICgyLDk5IEV1cm8pIHVuZAppbSBWZXJnbGVpY2ggei5CLiB6dSBXaXBmZWxsYWV1ZmVyIG51ciBldHdhIGhhbGIgc28gbGFuZy4KClRoZW1hIGlzdCBkaWVzbWFsIGtlaW5lIEZhbnRhc3ksIHNvbmRlcm4gIk5lYXIgRnV0dXJlIiBtaXQgZWluZW0gVG91Y2ggdm9uCiJTb2xhciBQdW5rIiwgYWxzbyBlaW5lciBXZWx0LCBpbiBkZXIgZXMga2VpbmUgZm9zc2lsZW4gQnJlbm5zdG9mZmUgbWVociBnaWJ0LgpFaW4gd2VuaWcgU0YsIGVpbmUgZ2FueiBrbGVpbmUgUHJpc2UgVWViZXJuYXR1ZXJsaWNoZXMgLi4uIHVuZCBkYXMgd2FyIGVzIGRhbm4KYXVjaCAuLi4KCldlciBza2VwdGlzY2ggaXN0OiBEYXMgaXN0IG5hY2h2b2xsemllaGJhciwgbWFuIGthbm4gc2ljaCBqYSBlcnN0bWFsIGRpZQpMZXNlcHJvYmVuIGFuc2NoYXVlbiwgdW5kIGRhbm4gc2VoZW4sIG9iIGRhcyB3YXMgZnVlciBlaW5lbiBzZWxic3QgaXN0LiBXaWUKdWVibGljaCBtZWluIEFuZ2Vib3Q6IFdlbm4gamVtYW5kIGJlaSBtaXIgcGVyIE11ZG1haWwgYmVzdGVsbHQsIGtyaWVndCBlciBkZW4KUm9tYW4genVtIHNlbGJlbiBQcmVpcyAoQnVjaHByZWlzYmluZHVuZyB1bmQgc28uLi4pIC0gYWJlciBpY2ggc3BlbmRlIGVpbmVuCkV1cm8gYW4gZGVuIFZlcmVpbi4gRGFzIGlzdCBldHdhIGRhcywgd2FzIHNvbnN0IEFtYXpvbiBrYXNzaWVydC4KClNvbnN0IGthbm4gbWFuIGRhcyBCdWNoIGF1Y2ggZ2VybmUgYmVpIEFtYXpvbiwgS29ibyBvZGVyIGVpbmVtIFRvbGluby1IYWVuZGxlcgpiZXN0ZWxsZW4uIExldHp0ZXJlIGhhYmVuIGRhcyBqZXR6dCBnZXJhZGUgbm9jaCBuaWNodCBhbGxlIChIdWdlbmR1YmVsIGhhdCBlcwphYmVyIHouQi4gc2Nob24pLCB3ZXIgZWluZW4gVG9saW5vIGhhdCwgbXVzcyBzaWNoIGFsc28gZXZ0bC4gbm9jaCBlaW5lbiBNb21lbnQKZ2VkdWxkZW4sIGFiZXIgaWNoIHZlcm11dGUsIHNvIHJpY2h0aWcgdmllbGUgdm9uIGV1Y2ggd2VyZGVuIGpldHp0IG5pY2h0IGRyYXVmCmdld2FydGV0IGhhYmVuIC4uCgpFaW5lbiBUcmFpbGVyIGdpYnQgZXMgYXVjaCwgaGllcjoKCmh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9SEJNU25iMU9sZkkKCkRhbmtlIGZ1ZXIgZGllIEF1Zm1lcmtzYW1rZWl0LgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFbmVyZ2llZmVsZCBSdWJpbiAoSHVtbmksIDIyLiBKdWwgMjAxNywgMDA6MDA6NTcpOgp+IyEgcm49SHVtbmkgcnQ9MTUwMDY3NDQzMyByZz1hbnplaWdlbgp+IyEgdGlkPTE1MDA2NzQ0MzMKVW5kIG1hbiB2ZXJ6aWVoZSBtaXIgZGllIGVyc3RlIFplaWxlIGRlcyBUZXh0ZXMgLi4uIG51biBkZW5uLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktyaXN0YWxsZSBkZXIgTHVlZnRlIChIdW1uaSwgMzAuIEF1ZyAyMDE3LCAyMzoxMzo1Nik6CkphLCBpY2ggc2Nob24gd2llZGVyLiBBbHNvLCBpY2ggaGFiZSBlaW5lbiBuZXVlbiBSb21hbiBnZXNjaHJpZWJlbjogS3Jpc3RhbGxlCmRlciBMdWVmdGUuIERhIGRlciBiZWltIEtpbmRsZSBTdG9yeXRlbGxlciBBd2FyZCBtaXRtYWNoZW4gc29sbCAodW5kIHVuZ2VmYWVocgpzbyB0b2xsZSBBdXNzaWNodGVuIGhhdCwgd2llIGVpbiBEaXJla3RrYW5kaWRhdCBkZXIgVGllcnNjaHV0enBhcnRlaSBiZWkgZGVyCkJ1bmRlc3RhZ3N3YWhsIC4uLiBuYWphKSBtdXNzdGUgaWNoIGxlaWRlciBBbWF6b24gbWVpbmUgU2VlbGUgdmVya2FmdWVuIHVuZApoYWJlIGRhcyBCdWNoIGFscyBFYm9vayB1ZWJlciByZWd1bGFlcmVuIEthdWYsIHVlYmVyIGtpbmRsZSBVbmxpbWl0ZWQgdW5kIGFscwpQcmludGJ1Y2ggdWViZXIgQ3JlYXRlU3BhY2UgZWluZ2VzdGVsbHQuCgpFcyBoYW5kZWx0IHNpY2ggdW0gZWluZSBvYnNrdXJlIE1pc2NodW5nIGF1cyBGYW50YXN5LCBTdGVhbXB1bmssClBpcmF0ZW5nZXNjaGljaHRlbiwgQWJlbnRldWVycm9tYW4gdW5kIFNhdWVybGFlbmRlciBIZWltYXRyb21hbi4KCkZhbGxzIGplbWFuZCBpbnRlcmVzc2llcnQgaXN0LCBhYmVyIGtlaW5lbiBLaW5kbGUgaGF0OiBEYXMgQnVjaCBoYXQga2VpbiBEUk0sCmlzdCBhbHNvIGF1Y2ggYXVmIGFuZGVyZW4gUmVhZGVybiBvaG5lIGdyb2Vzc2VyZSBQcm9ibGVtZSBudXR6YmFyIChtdXNzIG1hbgplaW5tYWwgaGFsdCBtaXQgZWluZXIgS2luZGxlLUFwcCBydW50ZXJ6aWVoZW4pLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFic3RpbW11bmdlbiAuLi4gKEh1bW5pLCAxNC4gTm92IDIwMTcsIDEyOjQ5OjMxKToKRmFsbHMgamVtYW5kIG5pY2h0cyB6dSB0dW4gaGF0LCB1bmQgZ2VybmUgYW4gQWJzdGltbXVuZ2VuIHRlaWxuaW1tdCwgdW5kIC4uLiAKCkFjaCBlZ2FsLCBtYW4ga2FubiBhdWYgTG92ZWx5Ym9va3MgYmVpbSBMZXNlcnByZWlzIG1laW5lbiBSb21hbgoiQmVybnN0ZWlua3VnZWxuIiBub21pbmllcmVuLgoKRGF6dSBtdXNzIG1hbiBhYmVyIGFuZ2VtZWxkZXQgc2Vpbi4KCkhpZXIgaXN0IGRlciBMaW5rOgoKaHR0cHM6Ly93d3cubG92ZWx5Ym9va3MuZGUvbGVzZXJwcmVpcy8yMDE3L25vbWluaWVydW5nZW4vZmFudGFzeS11bmQtc2NpZW5jZS1mCmljdGlvbi8KCk1hbiBtdXNzIGV2dGwuIHNlaHIgd2VpdGVyIHJ1bnRlcnNjcm9sbGVuLCBvZGVyIG1hbiBnaWJ0IGRhcyBkaXJla3Qgb2JlbiBlaW4sCndlbm4gbWFuIHNpY2ggZWluZ2Vsb2dndCBoYXQuIEthbm4gbm9jaCBlaW5lIFdlaWxlIHNvIHNlaW4sIGRhc3MgZGFzIEJ1Y2gKbmljaHQgZ2VzZWhlbiB3aXJkLCB3ZWlsIGRhcyBlcnN0ICJub2NoIGdlcHJ1ZWZ0IiB3aXJkLCBvYiBkYXMgQnVjaApub21pbmllcmJhciBpc3QuIEljaCBob2ZmZSBhYmVyLCBlcyBpc3QgZGVtbmFlY2hzdCBkaXJla3QgYW5rbGlja2Jhci4KCkRhbmtlIGZ1ZXIgZGllIE11ZWhlbiEKCkh1bW5pCihiYXV0IGRhbm4gYXVjaCBhbiBkZW4gR3JhZWJlcm4gd2VpdGVyIC4uLikKUFM6IERpZSBBa3Rpb24gbGFldWZ0IG51ciBub2NoIGJpcyB6dW0gMTYuMTEuIERhbmFjaCBrb2VubnQgaWhyIGRpZXNlIEFuemVpZ2UKaWdub3JpZXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkphaHJlc2VuZGdld2lubnNwaWVsIChIdW1uaSwgMTMuIERleiAyMDE3LCAwOTo0Nzo0NCk6CkhhbGxvIGlociwKCmRlciBCb2VzZXIgRHJhY2hlIFZlcmxhZyB2ZXJhbnN0YWx0ZXQgZWluIEphaHJlc2VuZGdld2lubnNwaWVsLiBEYXp1IGtvZW5udAppaHIgZWluZSBlaW5mYWNoZSBBdWZnYWJlIGF1ZiBkaWVzZXIgU2VpdGUgbG9lc2VuOgoKd3d3LmJvZXNlci1kcmFjaGUuZGUKCkRhcyBSYWV0c2VsIGZpbmRldCBpaHIgdW50ZXIgIkphaHJlc2VuZGdld2lubnNwaWVsIi4KCkViZW5zbyBmaW5kZXQgbWFuIGRhcyBiZWkgRmFjZWJvb2suIEFudHdvcnRlbiBrYW5uIG1hbiBwZXIgTWFpbCBvZGVyIHBlcgpGYWNlYm9vaywgZGFzIHN0ZWh0IGRhIGFiZXIgYWxsZXMuIE51ciBsZWlkZXIgaXN0IGRhcyBSYWV0c2VsIGRvcnQgbmljaHQKQmxpbmRlbmZyZXVuZGxpY2guIEFsc28gdWViZXJzZXR6ZSBpY2ggZGFzIGhpZXIgLSBleGtsdXNpdiEgLSBpbiBob2ZmZW50bGljaApTY3JlZW5yZWFkZXItdGF1Z2xpY2hlcyBGb3JtYXQuCgpBbnR3b3J0ZW4gYml0dGUgbnVyIHBlciBNYWlsIGFuIGdld2lubmVyQGJvZXNlci1kcmFjaGUuZGUsIG5pY2h0IGluIGRlbiBUaHJlYWQKOy0pCgpEaWUgQmlsZGVyIGVyZ2ViZW4gR2xlaWNodW5nZW4sIGRpZSB3aWUgZm9sZ3QgbGF1dGVuOgoKQmVybnN0ZWlua3VnZWxuK0Jlcm5zdGVpbmt1Z2VsbitCZXJuc3RlaW5rdWdlbG4rS3Jpc3RhbGxlPTYzCldpcGZlbGxhZXVmZXIrQmVybnN0ZWlua3VnZWxuK0Jlcm5zdGVpbmt1Z2VsbitLcmlzdGFsbGU9NTkKV2lwZmVsbGFldWZlcitXaXBmZWxsYWV1ZmVyK0tyaXN0YWxsZStLcmlzdGFsbGU9NTAKV2lwZmVsbGFldWZlcitCZXJuc3RlaW5rdWdlbG4rS3Jpc3RhbGxlPT8KCkFjaCBqYSwgZGFzIHBhc3N0IGhpZXJoaW4sIGRhIGluIGRlbiBQcmVpc2VuIGF1Y2ggRXhlbXBsYXJlIGRlcwpNb3JnZW5ncmF1ZW4tUm9tYW5zICJXaXBmZWxsYWV1ZmVyIiBlbnRoYWx0ZW4gc2luZC4KClNvLiBOdW4gZHVlcmZ0IGlociAuLi4gcmF0ZW4uIE9kZXIgd2FzIGF1Y2ggaW1tZXIuCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSmVuc2VpdHMgdm9uIEJvY2h1bSAoSHVtbmksIDE1LiBKYW4gMjAxOCwgMDg6NTA6NTkpOgpNZWluIG5hZWNoc3RlciBSb21hbiBoZWlzc3QgIkplbnNlaXRzIHZvbiBCb2NodW0iLiBFciBlcnNjaGVpbnQsIHNvIG1pY2ggZGllCkRydWNrZXJlaSBuaWNodCBpbSBTdGljaCBsYWVzc3QsIGFtIDI1LjEuIGltIEJvZXNlciBEcmFjaGUgVmVybGFnLiBTb3dvaGwgYWxzClByaW50YnVjaCB3aWUgYXVjaCBhbHMgRWJvb2suCgpGYWxscyBzaWNoIGplbWFuZCBmdWVyIGVpbmUgTGVzZXJ1bmRlIGJlaSBMb3ZlbHlib29rcyBpbnRlcmVzc2llcnQsIGRpZSBnaWJ0CmVzIG51biBhdWNoIGRhenU6Cmh0dHBzOi8vdGlueXVybC5jb20veWJkanNzMjIKCkRhIGthbm4gbWFuIGF1Y2ggZWluZXMgdm9uIDEwIEJ1ZWNoZXJuIGdld2lubmVuLiBQcmludGJ1ZWNoZXIsIHNvZ2FyLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKZW5zZWl0cyB2b24gQm9jaHVtIChIdW1uaSwgMjQuIEphbiAyMDE4LCAyMDo1MzozOSk6Cn4jISBybj1IdW1uaSBydD0xNTE2MDAyNjU5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTUxNjAwMjY1OQpVbmQgd2VyIG1hZywga2FubiBkaWUgQnVlY2hlciBhdWNoIGJlc3RlbGxlbi4gQWIgMCBVaHIgZ2VodCBkYXMgRWJvb2sgYmVpIGRlbgp1ZWJsaWNoZW4gQW5iaWV0ZXJuIGluIGRlbiBWZXJrYXVmLCBkaWUgUHJpbnR2ZXJzaW9uIGdpYnQgZXMgZGEgZGllc21hbCBhdWNoCihhYmVyIG5vY2ggaGFiZW4gZGllIGRpZSBuaWNodCwgZGEgZGllIGFsbGUgbm9jaCBiZWkgbWlyIGxpZWdlbikuIEFsdGVybmF0aXYKa2FubiBtYW4gcGVyIE11ZG1haWwgb2RlciBhbiBiZXN0ZWxsdW5nQGJvZXNlci1kcmFjaGUuZGUgYXVjaCBlaW4gUHJpbnRidWNoCmRpcmVrdCBvcmRlcm4uCgpEYXMgQnVjaCBrb3N0ZXQgMTAgRXVybyBpbSBQcmludCB1bmQgNSw5OSBFdXJvIGFscyBFYm9vay4KClNvLCBudW4gaG9lcmUgaWNoIGF1ZiwgenUgbmVydmVuLCBpc3QgamEga2VpbiBNRy1Sb21hbi4gSG1tLi4uIGRhIGxpZWd0IG5vY2gKc28gZWluIE1hbnVza3JpcHQgLi4uCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lwZmVsbGFldWZlciBhbHMgVGFzY2hlbmJ1Y2ghIChIdW1uaSwgMjEuIE1hciAyMDE4LCAyMjowODoyMSk6CkhhbGxvIGlociwKCm1laW5lbiBNb3JnZW5ncmF1ZW4tUm9tYW4gIldpcGZlbGxhZXVmZXIiIGthbm4gbWFuIG51biBhdWNoIGFscyBUYXNjaGVuYnVjaAprYWV1ZmxpY2ggZXJ3ZXJiZW4uIEZ1ZXIgZGllamVuaWdlbiwgZGllIGtlaW5lbiBFYm9vay1SZWFkZXIgaGFiZW4sIGlzdCBkYXMKdmllbGxlaWNodCBpbnRlcmVzc2FudC4KCkVpbiB3ZW5pZyBXZXJtdXQgbXVzcyBpY2ggYWJlciBpbiBkZW4gV2VpbiBzY2h1ZXR0ZW4gLi4uCiogRGllIEJ1ZWNoZXIgZ2lidCBlcyBudXIgYmVpIEFtYXpvbiwgd2VpbCBpY2ggZGFmdWVyIGRlcmVuClByaW50LW9uLWRlbWFuZC1TZXJ2aWNlIG51dHplLgoqIERpZSBCdWVjaGVyIGtvc3RlbiAxMyBFdXJvLiBEYXMgaXN0IHJlY2h0IHZpZWwgaW0gVmVyZ2xlaWNoIHp1bSBFYm9vaywgaWNoCndlaXNzLiBJY2ggdmVyZGllbmUgZGFyYW4gZGVubm9jaCB3ZW5pZ2VyIGFscyBhbSBFYm9vay4gSWhyIHR1dCBtaXIgYWxzbwpleHBsaXppdCBuaWNodCBldHdhIGVpbmVuIEdlZmFsbGVuLCB3ZW5uIGlociBldWNoIGZ1ZXIgZGllIChmdWVyIGV1Y2gpIHRldXJlcmUKVmFyaWFudGUgZW50c2NoZWlkZXQuIEFsbGVyZGluZ3MgaGFidCBpaHIgZGFubiBlaW4gQnVjaC4gKCJWZXJkaWVuZW4iIGlzdCBhdWNoCnJlbGF0aXYuIEljaCBiZXJlaWNoZXIgbWljaCBkYXJhbiBuaWNodCwgZGllIEtvc3RlbiBmdWVyIGRhcyBMZWt0b3JhdCB3ZXJkZQppY2ggdmVybXV0bGljaCBlaCBuaWNodCByYXVza3JpZWdlbi4gSXN0IGFiZXIgbmljaHQgc2NobGltbS4pCiogTmVpbiwgZXMgYnJpbmd0IG5peCwgd2VubiBpY2ggRXVjaCBkaWUgQnVlY2hlciBzY2hpY2tlLiBEYXMgaGFldHRlIG51cgpmb2xnZW5kZW4gRWZmZWt0OiBJY2ggYmVzdGVsbGUgZGFzIEJ1Y2ggc2VsYnN0IGJlaSBBbWF6b24sIGtyaWVnZSBlaW5lIGdlcmluZ2UKTWFyZ2UgKGFsc28gZWluIHdlbmlnIHZvbSBLYXVmcHJlaXMpIHp1cnVlY2ssIHdhcyBmYXN0IGtvbXBsZXR0IGZ1ZXIgZGVuClZlcnNhbmQgYW4gZXVjaCBkcmF1ZmdlaHQgKGd1dCwgaWNoIHdlaXNzIG5pY2h0LCB3aWUgZGljayBkYXMgUGFrZXQgd3VlcmRlLgpWaWVsbGVpY2h0IGF1Y2ggbmljaHQgZ2FueikuIFp3ZWltYWwgUG9ydG8sIGRvcHBlbHRlIFRyYW5zcG9ydHdlZ2UuIFNwcmljaDoKQmVzdGVsbHQgZGFzIEJ1Y2ggZGlyZWt0IGJlaSBBbWF6b24sIGRhbm4gaGFidCBpaHIgZXMgc2NobmVsbGVyIHVuZCBpY2ggaGFiCm1laHIgZGF2b24uIDstKQoqIERhcyBFYm9vayBnaWJ0IGVzIG5hY2ggd2llIHZvciBhbiBkZW4gdWVibGljaGVuIFF1ZWxsZW4gdW5kIGtvc3RldCBuYWNoIHdpZQp2b3IgbnVyIDYsOTkgRXVyby4KClNvd2VpdCBlcnN0bWFsIGljaC4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXV0c2NoZXIgUGhhbnRhc3RpayBQcmVpcyAoSHVtbmksIDIyLiBNYXIgMjAxOCwgMTc6NTA6MjgpOgpIYWxsbyBpaHIsCgppY2ggaGFiZSBlaW5lIHVuZ2xhdWJsaWNoZSBJZGVlLCB3aWUgbWFuIGRpZSBTcGllbGVyemFobGVuIGhpZXIgZXJob2VoZW4Ka29lbm50ZS4gVW5kIGljaCB3dWVyZGUgZGF2b24gc2NoYW1sb3MgcHJvZml0aWVyZW4sIHN0aW5rcmVpY2ggd2VyZGVuIHVuZAptZWluZW4gSG9ydCBnZXdhbHRpZyBlcndlaXRlcm4uIEhhcmhhci4KCldpciBzdGVsbGVuIHVucyB6LkIuIGVpbmZhY2ggdm9yLCBGcmF1IFJvd2xpbmcgb2RlciBIZXJyIEZpdHplayBoYWV0dGUgZWluZW4KTUctUm9tYW4gZ2VzY2hyaWViZW4sIGJldm9yIGVyIGJlcnVlaG10IGdld29yZGVuIHdhZXJlLiBVbmQgZGllIExldXRlIHd1ZXJkZW4KZGFubiBhbmZhbmdlbiwgYWxsZXMgdm9uIGRlbSB6dSBsZXNlbi4gV2lyIHdhZXJlbiBxdWFzaSB2b24gaGV1dGUgYXVmIG1vcmdlbgp1ZWJlcnNjaHdlbW10IHZvbiBTcGllbGVybiEKClVuZCBkYSBpY2ggbnVuIGVpbmVuIE1HLVJvbWFuIGdlc2NocmllYmVuIGhhYmUsIGtvZW5udCBpaHIgbnVuIGRhZnVlciBzb3JnZW4sCmRhc3MgaWNoIHNvIGJlcnVlaG10IHdlcmRlIHdpZSBGcmF1IFJvd2xpbmcuIE9kZXIgSGVyciBGaXR6ZWsuIE9kZXIgZmFzdC4KCldpZT8KCk51biwgaWhyIGtvZW5udCAiQmVybnN0ZWlua3VnZWxuIiBmdWVyIGRlbiBkZXV0c2NoZW4gUGhhbnRhc3RpayBQcmVpcwpub21pbmllcmVuLiBMZWlkZXIgbmljaHQgZnVlciBkZW4gSHVnbywgYWJlciBkZXIga29tbXQgZGFubiBub2NoLgpVbmQgbGVpZGVyIGF1Y2ggbmljaHQgV2lwZmVsbGFldWZlciwgZGEgZGFzIEJ1Y2ggdm9uIDIwMTYgaXN0LgoKV2FzIG11ZXNzdCBpaHIgdHVuPwoKSWhyIG11ZXNzdCBlaW5mYWNoIG51cgoiRnJhbmsgUm9laHIsIEJlcm5zdGVpbmt1Z2VsbiwgQm9lc2VyIERyYWNoZSBWZXJsYWciIChtaXQgVW1sYXV0ZW4pIwp1bmQgZXVyZW4gTmFtZW4gdW5kIGVpbmUgTWFpbGFkcmVzc2UgaGllciBlaW50cmFnZW46Cmh0dHBzOi8vZXZlZW5vLmNvbS8xMTM3MTY3MTcKRGEgdW50ZXIgIkJlc3RlciBEZXV0c2NoZXIgUm9tYW4iLgoKV2FzIGlociBzb25zdCBlaW50cmFndCwgaXN0IHF1YXNpIGVnYWwsIGFiZXIgQ2FyeWFkLCBkaWUgWmVpY2huZXJpbiBkZXMKQ292ZXJzLCBlbXBmZWhsZSBpY2ggZWluZmFjaCBhdWNoIG1hbC4KCkRhbmtlIHNjaG9lbiEKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDYWxsIGZvciBTaG9ydCBTdG9yaWVzL05vdmVsZXR0ZXMgLi4uIChIdW1uaSwgIDEuIE5vdiAyMDE4LCAxMjoyNTowMCk6CkhhbGxvIGlociwKCmljaCB1ZWJlcmxlZ2UsIGVpbmUgS3Vyemdlc2NoaWNodGVuc2FtbWx1bmcgbWl0IE1vcmdlbmdyYXVlbi1HZXNjaGljaHRlbgpyYXVzenVnZWJlbi4KCkRpZSB3aWxsIGljaCBhYmVyIG5pY2h0IGFsbGUgYWxsZWluZSBzY2hyZWliZW4sIGRhIGR1ZXJmdCBpaHIgbWlyIGdlcm5lIGJlaQpoZWxmZW4uCgpXaWUgdW5kIHdhcyB1bmQgd28gc3RlaHQgaGllcjoKCmh0dHBzOi8vdGlueXVybC5jb20veTg2amtldXEKYnp3LApodHRwOi8vZHJhY2hlLm1hdWtlbnd1ZmZ0ZWwuZGUvaW5kZXgucGhwP29wdGlvbj1jb21fY29udGVudCZ2aWV3PWFydGljbGUmaWQ9MTQKOQoKCihkaWUgOSB1bnRlbiBnZWhvZXJ0IHp1IFVSTCwgcGFzc3RlIG5pY2h0IG1laHIgaW4gZGllIFplaWxlIC0gaW0gWndlaWZlbAp0aW55dXJsIG5laG1lbiwgaXN0IGRlcnNlbGJlIExpbmshKQoKV2VubiBub2NoIEZyYWdlbiBzaW5kLCBtZWxkZXQgZXVjaC4KCkh1bW5pClBTOiBFaW5lbiBaZWl0cGxhbiBzdGVsbGUgaWNoIG5vY2ggZWluLCBkYXMgaGFiZSBpY2ggdmVyZ2Vzc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENhbGwgZm9yIFNob3J0IFN0b3JpZXMvTm92ZWxldHRlcyAuLi4gKEFyaywgIDEuIE5vdiAyMDE4LCAxMjo0ODoyNik6Cn4jISBybj1IdW1uaSBydD0xNTQxMDcxNTAwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTU0MTA3MTUwMApOZXR0IDotKQpXaWV2aWVsZSBXb3J0ZSBzaW5kIGZ1ZXIgZWluZSBLdXJ6Z2VzY2hpY2h0ZSBpbiBldHdhIGFuenVzdHJlYmVuPwoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2FsbCBmb3IgU2hvcnQgU3Rvcmllcy9Ob3ZlbGV0dGVzIC4uLiAoSHVtbmksICAxLiBOb3YgMjAxOCwgMTI6NTQ6MDkpOgp+IyEgcm49QXJrIHJ0PTE1NDEwNzI5MDYgcmc9YW56ZWlnZW4KfiMhIHRpZD0xNTQxMDcxNTAwCkRlZmluaXRpb24gbmFjaCBIVUdPLVJpY2h0bGluaWVuIChhYmVyIGRhcyBzaW5kIG51ciBzbyBncm9iZSBEaW5nZSBhdXMKQW1lcmlrYSk6CgpLdXJ6Z2VzY2hpY2h0ZTogYmlzIDc0OTkgV29lcnRlcgpOb3ZlbGV0dGU6IDc1MDAtMTc0OTkgV29lcnRlcgpOb3ZlbGxlOiAxNzQ5OS0zOTk5OSBXb2VydGVyClJvbWFuICgibm92ZWwiKTogYWIgNDBrIFdvZXJ0ZXIKCkljaCBkZW5rZSBoaWVyIGFuIG1heGltYWwgTm92ZWxldHRlbi4gQWJlciBhdWNoIGVpbmUKMTAwMC1Xb2VydGVyLUt1cnpnZXNjaGljaHRlIGthbm4gU3Bhc3MgbWFjaGVuLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNhbGwgZm9yIFNob3J0IFN0b3JpZXMvTm92ZWxldHRlcyAoSHVtbmksIDI1LiBOb3YgMjAxOCwgMTQ6MjU6MjYpOgpIYWxsbywKCmljaCB3dXJkZSBnZXJhZGUgZGFyYXVmIGhpbmdld2llc2VuLCBkYXNzIG1laW4gZXJzdGVyICJDYWxsIGZvciBTaG9ydCBTdG9yaWVzIgpleHBpcmVkIGlzdCAuLi4gdW5kIGRhcmF1cyBnZWZvbGdlcnQgd3VyZGUsIGRhc3MgZXIgYWJnZWJsYXNlbiBpc3QuCgpJU1QgRVIgTklDSFQhCgpXZXIgYWxzbyBuYWNoIHdpZSB2b3IgSW50ZXJlc3NlIGhhdCwgaGllciBzaW5kIGRpZSBEZXRhaWxzOgoKaHR0cDovL3Rpbnl1cmwuY29tL3k4NmprZXVxCgpTb25zdCBuZXJ2IGljaCBuaWNodCB3ZWl0ZXIsIGljaCBoYXR0ZSBqYSBhbGxlcyBzY2hvbm1hbCBnZXNjaHJpZWJlbi4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnRlcmFrdGl2ZSBHZXNjaGljaHRlIC4uLiAoSHVtbmksIDI1LiBOb3YgMjAxOCwgMTg6NDQ6MTQpOgpJbnRlcmFrdGl2ZSBHZXNjaGljaHRlbiB3YXJlbiBtZWluIEVpbnN0aWVnIGluIGRhcyBUaGVtYSAiUm9sbGVuc3BpZWxlIiBpbQpBbGxnZW1laW5lbi4gVW5kIGljaCBtYWcgc2llIGJpcyBoZXV0ZS4KCkRhcnVtIGhhYmUgaWNoIG1hbCBlaW5lIHNvbGNoZSBnZXNjaHJpZWJlbi4gSWhyIGZpbmRldCBzaWUgaGllcjoKCmh0dHA6Ly93d3cubWF1a2Vud3VmZnRlbC5kZS9qZW5zZWl0cwoKRXMgaGFuZGVsdCBzaWNoIGFiZXIgZGFiZWkgYXVjaCAibnVyIiB1bSBkaWUgZXJzdGVuIEthcGl0ZWwgbWVpbmVzIFJvbWFucwoiSmVuc2VpdHMgdm9uIEJvY2h1bSIsIG51ciBpbiBhbmRlcmVyIEZvcm0gdW5kIG1pdCBhbmRlcmVuIE1vZWdsaWNoa2VpdGVuLgoKWnVyIFN0YXRpc3RpazogRGFzIEdhbnplIGhhdCAyMTAwMCBXb2VydGVyIGluIDIwMyBBYnNjaG5pdHRlbi4gV2VubiBtYW4KenVmYWVsbGlnIGF1c3dhZWhsdCwgaGF0IG1hbiBlaW5lbiBNZWRpYW4gdm9uIDQzNyBTY2hyaXR0ZW4gYmVpIGVpbmVtIG9iZXJlbgpRdWFydGlsIHZvbiA2NTcgdW5kIGVpbmVtIHVudGVyZW4gdm9uIDI4MC4gRGVyIGt1ZXJ6ZXN0ZSBXZWcgaXN0IGFiZXIgYmVpIDM1IC0KdW5kIHdlbm4gbWFuIG5hY2hkZW5rdCwgaXN0IG1hbiBlaGVyIGluIGRlciBHcm9lc3Nlbm9yZG51bmcuCgpEYW5rZSBmdWVyIGRpZSBBdWZtZXJrc2Fta2VpdCEKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZXJha3RpdmUgR2VzY2hpY2h0ZSAuLi4gKFphcGhvYiwgMjUuIE5vdiAyMDE4LCAyMDoxMTozMik6Cn4jISBybj1IdW1uaSBydD0xNTQzMTY3ODU0IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTU0MzE2Nzg1NApSaWNodGlnIHNwYXNzaWcsIHZpZWxlbiBEYW5rIGRhZnVlciEKVW5kIG5hdHVlcmxpY2g6IFZpZWwgenUga3VyeiEgQml0dGUgbWVociEgTGVjaHohCkhhYiBzY2hvbiBleHRyYSBhbGxlIE5lYmVuYXJtZSB1bmQgU2Fja2dhc3NlbiBhdXNwcm9iaWVydCwgYWJlciBJTU1FUiBub2NoCm5pY2h0IGdlbnVnLiBNdXNzIGljaCBqZXR6dCB3aXJrbGljaCBkYXMgQnVjaCBrYXVmZW4/IElzdCBkYXMgYXVjaCBzbyBzY2hvZW4KaW50ZXJha3Rpdj8gR2lidCdzIGRhbm4gbm9jaCBtZWhyIEJld2VyYnVuZ2VuLCBKZWFuc3JvZWNrZSB1bmQgV29lbGZpPyAKRnJhZ2VuIHVlYmVyIEZyYWdlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSW50ZXJha3RpdmUgR2VzY2hpY2h0ZSAuLi4gKEh1bW5pLCAyNS4gTm92IDIwMTgsIDIwOjU1OjAzKToKfiMhIHJuPVphcGhvYiBydD0xNTQzMTczMDkyIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTU0MzE2Nzg1NApJY2ggaGFiIG5vY2ggZWluIHBhYXIgaGluenVnZWZ1ZWd0LCBkYW1pdCBpY2ggYXVmIGRpZSAyMDAga29tbWUgOy0pIGthbm5zdCBqYQptYWwgc2NoYXVlbi4KCk9rYXksIGljaCBuZWhtZSBkYXMgbWFsIGFscyBBdWZmb3JkZXJ1bmcuIE1hbCBzZWhlbiwgd2FzIGljaCBhbHMgbmFlY2hzdGVzCm1hY2hlLiBVbmQgbmVpbiwgc292aWVsIFdvZWxmaSBpc3QgbmljaHQgZHJpbi4gRWluIHRlaWx3ZWlzZSBoYWxiIHVlYmVyc2V0enRlcgpBcmNoIEVuZW15LVRleHQgbWl0IEdlbmVobWlndW5nIHZvbiBBbmdlbGEgR29zc293IHBlcnNvZW5saWNoIGlzdCBhYmVyIGRyaW4uCgooSUNIIEhBQiBEQUZVRVIgRUlORSBNQUlMIFZPTiBBTkdFTEEgR09TU09XIEJFS09NTUVOISBIQUIgSUNIIERBUyBTQ0hPTk1BTApHRVNBR1Q/KQoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkphaHJlc2VuZGdld2lubnNwaWVsIChIdW1uaSwgMTYuIERleiAyMDE4LCAxMjo1MDo0Nik6ClRvIHdob20gaXQgbWF5IGNvbmNlcm4gLi4uCgpXaWUgamVkZXMgSmFociAob2VoZW0pIHZlcmFuc3RhbHRldCBkZXIgQm9lc2VyIERyYWNoZSBWZXJsYWcgc2VpbgpKYWhyZXNlbmRnZXdpbm5zcGllbC4gVW5kIGR1IGthbm5zdCBnZXdpbm5lbiEKCkRpZSBBdWZnYWJlIGlzdCBkaWVzZSBoaWVyOgoKTGltZW4sIE1pdHNoYXIgdW5kIFZpY3RhbiBtb2VjaHRlbiBnZW1laW5zYW0gZWluIEhhdXMga2F1ZmVuLgpEYSBMaW1lbiBVZWJ1bmdzcHVwcGVuIHVuZCBQbGF0eiBiZW5vZXRpZ3QsIHphaGx0IHNpZSAyMSBNdWVuemVuIG1laHIgYWxzClZpY3Rhbi4KRGEgVmljdGFuIGVpbiBMYWJvciBiZW5vZXRpZ3QsIHphaGx0IGVyIDE0IE11ZW56ZW4gbWVociBhbHMgTWl0c2hhci4KRGFzIEhhdXMga29zdGV0IHp1c2FtbWVuIDE3NSBNdWVuemVuLgpXaWV2aWVsIHphaGx0IE1pdHNoYXI/CgpNZWhyIERldGFpbHMgdW5kIGRpZSBQcmVpc2UgdW50ZXIgd3d3LmJvZXNlci1kcmFjaGUuZGUKCkFscyBNb3JnZW5ncmF1ZW4tQmV3b2huZXIgaGFidCBpaHIgYWJlciBkaWUgTW9lZ2xpY2hrZWl0LCBlaW5mYWNoIGRpZSByaWNodGlnZQpMb2VzdW5nIHBlciBNdWRtYWlsIGFuIG1pY2ggenUgc2NoaWNrZW4gdW5kIGJyYXVjaHQgZXVjaCBuaWNodCB1ZWJlciBSTC1NYWlsCm9kZXIgRmFjZWJvb2sgYWJ6dW11ZWhlbi4KCkFsc28gZGVubiEKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSmFocmVzZW5kZ2V3aW5uc3BpZWwgKFplc3N0cmEsIDE2LiBEZXogMjAxOCwgMTU6MTE6NTApOgp+IyEgcm49SHVtbmkgcnQ9MTU0NDk2MTA0NiByZz1hbnplaWdlbgp+IyEgdGlkPTE1NDQ5NjEwNDYKOmh1bGRpZ3QgZGVtIERyYWNoZW4uCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVlciBSb21hbiEgTm9jaCAzIFRhZ2UgZ2FueiBiaWxsaWchIChIdW1uaSwgIDcuIEphbiAyMDE5LCAwMDo1NTozOCk6CkhhbGxvIGlociwKCnRvIHdob20gaXQgbWF5IGNvbmNlcm46IE1laW4gbmV1ZXIgUm9tYW4gKCJOZW5uZW4gU2llIG1pY2ggQmVja2VyIikgaXN0IGltCkhhbmRlbC4gRXMgZ2lidCBpaG4gbnVyIGFscyBFYm9vay4gVW5kIGVzIGdpYnQgaWhuIG5vY2ggZWluIHBhYXIgVGFnZSBmdWVyIDk5CmNlbnQuIERhbmFjaCB3aXJkIGVyIGRldXRsaWNoIHRldXJlciwgYmVzdGltbXQgZGFzIERyZWlmYWNoZSBvZGVyIHNvIQoKQWxzbyBzb2xsdGV0IGlociBpaG4gZXVjaCBqZXR6dCBub2NoIHNpY2hlcm4sIHdlbm4gaWhyIGRhcyBtb2VndC4KCkRpZXNtYWwgaXN0IGRhcyBHYW56ZSBhYmVyIGVpbiBUaHJpbGxlciwga2VpbiBGYW50YXN5LSBvZGVyIFNGLVJvbWFuLgoKU28sIGRhbm4gYmluIGljaCBhdWNoIHNjaG9uIHdpZWRlciBzdGlsbC4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdUNvbiAoSHVtbmksIDE2LiBPa3QgMjAxOSwgMjM6MjY6MjApOgpIYWxsbyBpaHIsCgpkZXIgQm9lc2UgRHJhY2hlIFZlcmxhZyB3aXJkIGFtIFN0YW5kIHZvbiBGZWRlciZTY2h3ZXJ0IGF1ZiBkZXIgZGllc2phZWhyaWdlbgpCdUNvbiAoYW0gU2Ftc3RhZywgZGVtIDE5LjEwLiBpbiBEcmVpZWNoLCBpbSBCdWVyZ2VyaGF1cyBTcHJlbmRsaW5nZW4pCnZlcnRyZXRlbiBzZWluLiBJY2ggd2VyZGUgc29nYXIgZWluaWdlIEV4ZW1wbGFyZSB2b24gIldpcGZlbGxhZXVmZXIiIGFscwpQcmludGJ1Y2ggZGFiZWloYWJlbiAoZGllIG1hbiBzb25zdCBhYmVyIGF1Y2ggdWViZXIgQW1hem9uIG9yZGVybiBrYW5uKS4KCldlciBhbHNvIFplaXQgaGF0LCBtYWcgZ2VybmUgdm9yYmVpa29tbWVuLgoKRGFua2UgZnVlciBkaWUgQXVmbWVya3NhbWtlaXQsCkh1bW5pClBTOiBEaWUgYW5kZXJlbiBCdWVjaGVyIGRlcyBCb2VzZXIgRHJhY2hlIFZlcmxhZ2VzIHNpbmQgbmF0dWVybGljaCBhdWNoIGRhLgpNYW4ga2FubiBzaWNoIHNvZ2FyIHZvciBPcnQgc2VpbmVuIFJlYWRlciBtaXQgRWJvb2tzIGJlc3BpZWxlbiBsYXNzZW4uIEphd29obCEKUFBTOiBodHRwczovL3d3dy5idWNobWVzc2Vjb24uZGUvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaXR0ZXJuYWNodHNzdHJlYW0hIChIdW1uaSwgMTMuIE1hciAyMDIwLCAxOTo1NzowNSk6CldlcnRlIE11ZGRlciwKCmljaCB3ZXJkZSBoZXV0ZSBuYWNodCB1bmQgbW9yZ2VuIG5hY2h0IHVtIE1pdHRlcm5hY2h0IGpld2VpbHMgZWluZW4KWW91dHViZS1TdHJlYW0gbWl0IExlc3VuZ2VuIGF1cyBtZWluZW4gQnVlY2hlcm4gdmVyYW5zdGFsdGVuLiBFaW5lciBkZXIKU3RyZWFtcyAoaGFoYSwgaWNoIHZlcnJhdGUgbmljaHQgd2VsY2hlciwgd2VpbCBpY2ggZGEgbm9jaCBuaWNodCBzaWNoZXIgYmluKQp3aXJkIHNpY2hlciBhdWNoIGVpbmVuIFRlaWwgYXVzIGRlbSBNb3JnZW5ncmF1ZW4tUm9tYW4gIldpcGZlbGxhZXVmZXIiCmVudGhhbHRlbi4KCldlciBhbHNvIGVpbmUgU3R1bmRlIChvZGVyIHNvKSBtZWluZSBTdGltbWUgZXJ0cmFnZW4gbWFnLCBrYW5uIGhpZXIgZ3Vja2VuOgoKaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1wOEgxeFlMcTREVQoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNaXR0ZXJuYWNodHNzdHJlYW0hIChIdW1uaSwgMjguIE1hciAyMDIwLCAyMDowODowNik6Cn4jISBybj1IdW1uaSBydD0xNTg0MTI1ODI1IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTU4NDEyNTgyNQpJY2ggaGFiIG5vY2ggbmljaHQgZ2VudWcsIGljaCBtYWNoIG5vY2ggZWluZW4gRHJpdHRlbi4gOy0pCgpodHRwczovL3lvdXR1LmJlL1dyeTV3RjUtTUY0CgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FzIHR1biBpbiBkZXIgS3Jpc2U/IChIdW1uaSwgIDQuIE1haSAyMDIwLCAxODo0OTowMyk6CkhhbGxvIGlociwKCndlbm4gaWhyIHVlYmVybGVndCwgd2FzIGlociBpbiBkZXIgS3Jpc2UgYWxsZXMgc28gdHVuIG11ZXNzdCB1bmQgd29sbHRlIC4uLgppY2ggaGFiZSBkYSBlaW5lbiBSYXRnZWJlciBnZXNjaHJpZWJlbi4gRXMgc3RlaHQgenVtIEJlaXNwaWVsIGRyaW4sIGRhc3MgbWFuCk1HIHNwaWVsZW4gc29sbHRlIG9kZXIgTXkgTGl0dGxlIFBvbnkgZ3Vja2VuLgoKSmV0enQgd2VyZGV0IGlociBzYWdlbiAuLi4gd2FlaCwgSHVtbmksIGRhcyBicmF1Y2hlbiB3aXIgZG9jaCBudW4gZWNodCBuaWNodC4KTUcgc3BpZWxlbiB3aXIgc2Nob24sIHVuZCBNeSBMaXR0bGUgUG9ueSB3b2xsZW4gd2lyIG5pY2h0IGd1Y2tlbiAod2VpbCB3aXIgZGFzCm5vY2ggbmljaHQgcHJvYmllcnQgaGFiZW4pIG9kZXIgd2lyIGhhYmVuIGVoIGFsbGUgRm9sZ2VuIHNjaG9uIGRyZWltYWwgZ2VzZWhlbgood2VpbCBpaHIgZXMgcHJvYmllcnQgaGFidCkuCgpEYXJ1bSBoYWJlIGljaCBtaXIgZWluZSBzY2hsYXVlIENvLUF1dG9yaW4gZ2VzdWNodCwgbmFlbWxpY2ggbmllbWFuZApnZXJpbmdlcmVuIGFscyBKYWNxdWVsaW5lIFN0YWhsLiBEaWUgaGF0IHp3YXIgaGllciBrZWluZW4gU3BpZWxlcmFjY291bnQsIGFiZXIKZGFmdWVyIHVtIHNvIG1laHIgQWhudW5nIHZvbiBkZW4gRGluZ2VuLCBkaWUgc29uc3Qgbm9jaCBpbSBCdWNoIHN0ZWhlbi4KCkRhcyBFYm9vayBpc3QgcmF1cywgZGFzIFByaW50YnVjaCBpc3QgaW0gRHJ1Y2ssIGRhdWVydCBhYmVyIG5vY2ggYmlzIHp1bSAxOC41LgooaWNoIGhvZmZlLCBkYXMgYmlzIGRhaGluIHp1IGhhYmVuKS4gQW1hem9uIGhhdCBiaXNoZXIgbnVyIGRhcyBQcmludGJ1Y2ggYXVmCmRlciBTZWl0ZSwgaWNoIGhvZmZlLCBkYXMgYWVuZGVydCBzaWNoIGJhbGQsIGFiZXIgZGllIGFuZGVyZW4gTGllZmVyYW50ZW4gKHVuZApkYXMgaXN0IGphIGVoIGJlc3NlciwgZGVuIGtsZWluZW4gQnVjaGhhZW5kbGVyIHVtIGRpZSBFY2tlIHp1IHVudGVyc3R1ZXR6ZW4pCmhhYmVuIGRhcyBzY2hvbi4KCklociBmaW5kZXQgZGFzIEJ1Y2ggei5CLiwgd2VubiBpaHIgdW50ZXIgCgp3d3cuYnVjaGhhbmRsdW5nLmRlCgplaW5lIGJlbGliaWdlIEJ1Y2hoYW5kbHVuZyByYXVzc3VjaHQgdW5kIGRhIGRpZXNlcyBCdWNoIHN1Y2h0OgoKIkRpZSBQYW5kZW1pZSBtZWlzdGVybiIuCgpLb3N0ZW5wdW5rdCBhbHMgRWJvb2sgc2luZCAyLDk5IEV1cm8uCgpXZXIgbnVuIHNhZ3QsIGVyIGhhYmUgbnVyIGVpbmVuIEtpbmRsZTogRGFzIEJ1Y2ggaXN0IERSTS1mcmVpLiBFaW5mYWNoCmlyZ2VuZHdvIGthdWZlbiwgcnVudGVybGFkZW4gdW5kIHouQi4gbWl0IENhbGlicmUgaW5zIE1PQkktRm9ybWF0IHdhbmRlbG4gdW5kCmF1ZiBkZW4gS2luZGxlIHBhY2tlbi4gT2RlciBtaXIgYmVzY2hlaWRzYWdlbiwgZGFubiBzY2hpY2tlIGljaCBldWNoIGVpbiBNT0JJLgoKRGFua2UgZnVlciBkaWUgQXVmbWVya3NhbWtlaXQsCkh1bW5pLCBCb2VzYXJ0aWdlciBTZWxic3RoaWxmZWRyYWNoZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFzcyBlcyBkaXIgZG9jaCB2b3JsZXNlbiEgKFphcGhvYiwgMjUuIE1haSAyMDIwLCAxMzo1Mzo0Myk6CkhhbGxvIExldXRlLAoKYW4gZGVyIGVpbiBvZGVyIGFuZGVyZW4gU3RlbGxlIGhhdHRlIGljaCBlcyBiZXJlaXRzIGVyd2FlaG50LCBhYmVyIGhpZXIKbm9jaG1hbCBmdWVyIGFsbGU6CgpEZXJ6ZWl0IGthbm4gbWFuIDgwMCAkIHZlcmRpZW5lbiwgd2VubiBtYW4gZWluIGJpc3NjaGVuIEMrKyAodW5kIGRhIGluc2IuIGltClF0IEZyYW1ld29yaykgYW53ZW5kZW4ga2FubiwgdW0gTXVkbGV0IHNvIHp1IGVyd2VpdGVybiwgZGFzcyBkYXMgZ3Jvc3NlCmhhdXB0c2FlY2hsaWNoZSBUZXh0ZmVuc3RlciBic3B3LiB2b24gU2NyZWVucmVhZGVybiB2b3JnZWxlc2VuIHdlcmRlbiBrYW5uLgoKRGF6dSBicmluZ3QgUXQgYmVyZWl0cyBlaW4gZmVydGlnZXMgQWNjZXNzaWJpbGl0eSBGcmFtZXdvcmsgbWl0LiBEaWUgbWVpc3RlbgpNZW51cyB1bmQgUG9wdXBzIGZ1bmt0aW9uaWVyZW4gaW4gTXVkbGV0IGFsc28gYmVyZWl0cyBlaW53YW5kZnJlaS4gTnVyIGRhcwpIYXVwdGZlbnN0ZXIgbm9jaCBuaWNodCwgd2VpbCBlcyBrZWluIG5vcm1hbGVzIEZlbnN0ZXIgaXN0LCBzb25kZXJuIGV0d2FzCnNlbGJzdCBnZWJhc3RlbHRlcywgZGFzIGF1ZiBTY2huZWxsaWdrZWl0IGluIGRlciBBbnplaWdlIGRlciBUZWxuZXQtRGF0ZW4Kb3B0aW1pZXJ0IHd1cmRlLiBEYW1hbHMgbGVpZGVyIG9obmUgQWNjZXNzaWJpbGl0eSBIaW50ZXJnZWRhbmtlbi4KClNvIG11c3MgZXMgbnVuIG5hY2h0cmFlZ2xpY2ggZHJhbiBnZWJhdXQgd2VyZGVuLiBKZWRlciB3ZWlzcywgZGFzcyBkYXMgbmljaHQKb2huZSBVbXN0YWVuZGUgZ2VoZW4gd2lyZC4gRGFoZXIgaGF0IGRpZSBNdWRsZXQgQ29tbXVuaXR5IG51biB6dXNhbW1lbmdld29yZmVuCnVuZCBpbnp3aXNjaGVuIGRpZXNlIFN1bW1lIGVycmVpY2h0LCB1bmQgZnVlciBkaWUgZXJmb2xncmVpY2hlIFVtc2V0enVuZwphdXNnZWxvYnQuCgpFaW5pZ2UgTGV1dGUgaGF0dGVuIHNjaG9uIGFuZ2VmYW5nZW4sIGFuIExvZXN1bmdlbiB6dSBzY2hyYXViZW4sIHVuZCBpaHJlbgpad2lzY2hlbnN0YW5kIG5ldHRlcndlaXNlIHZlcm9lZmZlbnRsaWNodCwgYWxzIHNpZSBzZWxic3QgbmljaHQgd2VpdGVyIGthbWVuLgpMZXR6dGVuZGxpY2ggaXN0IGRhcyBqYSBlaW5lIGd1dGUgU2FjaGUsIGRpZSBkZXIgZ2FuemVuIE11ZCBDb21tdW5pdHkgaGVsZmVuCndpcmQuIEluc29mZXJuIHRvbGwsIHdlbm4gaGllciBuaWNodCBudXIgR2VsZCBpbSBWb3JkZXJncnVuZCBzdGVodC4KCkRldGFpbHMgZGF6dSBnaWJ0IGVzIHVudGVyIGZvbGdlbmRlbSBMaW5rIChpbiBlbmdsaXNjaGVyIFNwcmFjaGUpOgoKaHR0cHM6Ly93d3cuYm91bnR5c291cmNlLmNvbS9pc3N1ZXMvODg4NjY5ODktbWFrZS1tdWRsZXQtcy10ZXh0LXdpbmRvdy1yZWFkYWJsCmUtYnktc2NyZWVucmVhZGVycwoKT2RlciBrdXJ6OiBodHRwczovL3d3dy5tdWRsZXQub3JnL3NjcmVlbnJlYWRlcgoKT2RlciBlaW5mYWNoIGhpZXIgZnJhZ2VuLCB1bmQgaWNoIHZlcnN1Y2hlIHp1IGFudHdvcnRlbiA6KQoKR3J1ZXNzZSwKWmFwKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9yZ2VuR3JhdWVuIGF1ZiBZb3VUdWJlIChaYXBob2IsICA1LiBBdWcgMjAyMCwgMTc6NDA6MzApOgpIYWxsbyBMZXV0ZSwKCndpbGxrb21tZW4gYXVmIFlvdVR1YmUhIDotKQoKCldpciBoYWJlbiBzY2hvbiBzZWl0IGVpbmVyIGdhbnplbiBXZWlsZSBlaW5pZ2UgVmlkZW9zIHVlYmVyIGRhcyBNRwp2ZXJvZWZmZW50bGljaHQsIGFiZXIgbm9jaCBnYXIgbmljaHRzIGRhenUgaGllciBnZXNjaHJpZWJlbiwgYWxzbyAKamV0enQgbWFsIHp1ciBJbmZvLgoKTWFuIGthbm4gc2ljaCBkaWUgVmlkZW9zIGF1Y2ggc3VwZXIgYW5ob2VyZW4sIHdlbm4gbWFuIGRhcyBtaXQgZGVtClNlaGVuIG5pY2h0IHNvIHdhaHJuZWhtZW4ga2Fubi4gWnVtaW5kZXN0IHNvbGx0ZSBkYXMgc28gc2Vpbi4KCgpFcyBnaWJ0IG51ciBlaW5lIEtsZWluaWdrZWl0IHp1IGVybGVkaWdlbjogCkRlciBMaW5rIHp1bSBLYW5hbCBpc3Qgbm9jaCB6aWVtbGljaCBoYWVzc2xpY2ggdW5kIGxhbmcuIFVtIGRhcyB6dSAKYWVuZGVybiBicmF1Y2h0IGVzIG5vY2ggNTAgQWJvcyEgU2FndCBlcyBhbGxlbiB3ZWl0ZXIhIEplZGVyIGhpbGZ0LgoKQWxzbyBiaXR0ZSBhYm9ubmllcmVuOgpodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDWHZZdkxDWENuOXFkQVhOYVR0Ul85dwoKQmlzIGRpZSBVUkwgYmVzc2VyIHdpcmQsIGdlaHQgYWJlciBhdWNoOgpodHRwczovL3Rpbnl1cmwuY29tL21nLXlvdXR1YmUKCgpXYXMgZXJ3YXJ0ZXQgZXVjaCBkb3J0PwoKQmlzbGFuZyBnaWJ0IGVzIDI1IEZvbGdlbiBkZXIgU2VyaWUgIk5ldSBpbSBNb3JnZW5HcmF1ZW4iLCBkaWUgZWluZW4KbmV1ZW4gU3BpZWxlciBiZWkgZGVuIGVyc3RlbiBTY2hyaXR0ZW4gaW0gU3BpZWwgYmVnbGVpdGV0LiAKCkVpbmVuIG5ldWVuIENoYXJha3RlciB6dSBiYXVlbiBiZWRldXRldCBFbnRzY2hlaWR1bmdlbiB0cmVmZmVuLiBNYW5jaGUKc2luZCBsZWljaHQsIGFuZGVyZSBsdXN0aWcuIFdpZSB3aXJkIHNpY2ggamVtYW5kIGVudHNjaGVpZGVuLCBkZXIgbm9jaApuaWUgTW9yZ2VuR3JhdWVuIGdlc3BpZWx0IGhhdD8gVW5kIHdhcyB3aXJkIGRhbm4gcGFzc2llcmVuPwoKCkVzIGdpYnQgYXVjaCAoYmlzbGFuZyBub2NoIHJlY2h0IHZlcmVpbnplbHRlKSBIaWxmZW4gdW5kIEVya2xhZXJ1bmdlbgp6dW0gU3BpZWwgdW5kIFVtZmVsZCBkZXMgTW9yZ2VuR3JhdWVuLgoKQmVpc3BpZWxzd2Vpc2UgZGFzIEhhbmRidWNoIGZ1ZXIgQW5mYWVuZ2VyLCBiZWthbm50IGF1cyBqZWRlbSBTdGFydHJhdW06Cmh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NEpmNzVPSWR3emsKCk9kZXIga3VyejoKaHR0cHM6Ly90aW55dXJsLmNvbS9tZy1oYW5kYnVjaAoKCkhpZXIgc2luZCBuYXR1ZXJsaWNoIElkZWVuIHVuZCBNaXRhcmJlaXQgZ2V3dWVuc2NodC4gV2FzIGZlaGx0LCB3YXMgCmlzdCBndXQsIHdvdm9uIHNvbGwgZXMgbm9jaCBtZWhyIGdlYmVuPyBFeHBsaXppdCBrb2VubmVuIGhpZXIgbWVocmVyZQpWaWRlb2t1ZW5zdGxlciBpaHJlIEVyZ2Vibmlzc2UgdmVyb2VmZmVudGxpY2hlbi4gRGVyIEthbmFsIGlzdCBzbwphbmdlbGVndCwgZGFzcyBkYSBuaWNodCBudXIgZWluZSBQZXJzb24gbmV1ZSBWaWRlb3MgaG9jaGxhZGVuIG11c3MKb2RlciBicmF1Y2h0LgoKRGVyemVpdCBlcnNjaGVpbnQgKG1laXN0ZW5zKSBhbGxlIHp3ZWkgV29jaGVuIGVpbmUgbmV1ZSBGb2xnZSBkZXIKU2VyaWUgIk5ldSBpbSBNb3JnZW5HcmF1ZW4iLgoKQXVzIGJlc3RpbW10ZW4gR3J1ZW5kZW4ga2FubiBkZXJlbiBJbmhhbHQgbmljaHQgaW1tZXIgYWxsenUgZXhwbGl6aXQKYW5nZWdlYmVuIHdlcmRlbi4gRGFoZXIgZ2lidCBlcyBvZnQgbWVociBvZGVyIHdlbmlnZXIgb3JpZ2luZWxsZQpCZXNjaHJlaWJ1bmdlbiB1bmQgVGl0ZWwuIFNlaXQgZWluZXIgV2VpbGUgYXVjaCBUaHVtYm5haWxzIHVuZAp2ZXJlaW56ZWx0ZSBWaWRlb2JlYXJiZWl0dW5nLgoKQXVjaCBoaWVyYmVpIGlzdCBNaXRtYWNoZW4gZGVua2Jhci4gV2VyIHNpY2ggZGFmdWVyIGludGVyZXNzaWVydCwgCnNjaHJlaWJlIG1pY2ggZ2VybmUgYW4uIFdpciB3ZXJkZW4gZGFubiBzY2hvbiBldHdhcyBmaW5kZW4uCgoKVmllbCBTcGFzcyB1bmQgYmlzIGJhbGQsClphcCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkh1Z28gaXN0IHRvdCEgLSBOZXUgIzI1IChaYXBob2IsICA1LiBBdWcgMjAyMCwgMTc6NDE6NDIpOgpIdWdvIHZlcmJyaW5ndCBtaXQgc2VpbmVuIEZyZXVuZGVuIGVpbmVuIGdlbXVldGxpY2hlbiBUYWcgYXVmIGRlciBncnVlbmVuCldpZXNlLiBFciBoYXQgc2ljaCBtaXQgSHVnb2xpbmUgdmVyYWJyZWRldCwgZGllIGlobiBiYWxkIGJlc3VjaGVuIHdpbGwuIERvY2gKc2llIGhhdHRlbiBuaWNodCBnZXBsYW50LCBkYXNzIHBsb2V0emxpY2ggZWluZSBib2VzZSBIZXhlIGVyc2NoZWludCB1bmQgaWhuZW4KZWluZW4gU3RyaWNoIGR1cmNoIGRpZSBSZWNobnVuZyBtYWNodC4gS29tbXQgZGlyIGRhcyBiZWthbm50IHZvcj8gV2FydW0gbWFjaHQKZGllIHNvd2FzIG51cj8KCmh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9N2pYWlZ3WUZFdEkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlaSBkZW4gT3JrcyB6dSBIYXVzZSAtIE5ldSAjMjYgKFphcGhvYiwgMTAuIEF1ZyAyMDIwLCAyMTowODoxMik6Ck5hY2ggZWluZXIgYmVzY2h3ZXJsaWNoZW4gUmVpc2UgZXJyZWljaGVuIHdpciBkaWUgSGVpbWF0IGRlciBPcmtzLiBIaWVyIHNvbGxlbgpzaWUgYWxzbyB3b2huZW4/IEF1ZiBkZW4gZXJzdGVuIEJsaWNrIHNpZWh0IGVzIHNlaHIgc2VsdHNhbSBhdXMuIE9iIHNpZSB1bnMKd2lsbGtvbW1lbiBoZWlzc2VuPyBPZGVyIHdlcmRlbiBzaWUgdW5zIG1pdCBlcmhvYmVuZW4gV2FmZmVuIGRpcmVrdCB3aWVkZXIKZGF2b24gamFnZW4/CgpodHRwczovL3lvdXR1LmJlL1VzemtxWWxkcEtzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMga3JhdHpidWVyc3RpZ2UgS2FldHpjaGVuIC0gTmV1ICMyNyAoWmFwaG9iLCAyNC4gQXVnIDIwMjAsIDE3OjAxOjMxKToKSG9tZSBzd2VldCBob21lLiBFbmRsaWNoIHdpZWRlciBkYWhlaW0hIEVpZ2VudGxpY2gga29lbm50ZSBhbGxlcyBzdXBlciBzZWluLgpBYmVyIERhbmtiYXJrZWl0IHdpbGwgZ2VsZXJudCBzZWluLiBNYW5jaGUga29lbm5lbiBzaWUgbmljaHQgemVpZ2VuLiBPZGVyIGVzCmdpYnQgdHJhZ2lzY2hlIE1pc3ZlcnN0YWVuZG5pc3NlLiBFcyBnaWJ0IGphIG5vY2ggc28gdmllbCB6dSBsZXJuZW4uIFVuZCBkYW5uCm5hdHVlcmxpY2ggZmxlaXNzaWcgYXVzcHJvYmllcmVuISBXZXIgd2Vpc3MsIHdvenUgZXMgZ3V0IHNlaW4gd2lyZD8KCmh0dHBzOi8veW91dHUuYmUvS3NPRUhva3poVDAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvbiBLYXR6bWFuZHUgenVyIEhvY2hlYmVuZSAtIE5ldSAjMjggKFphcGhvYiwgIDYuIFNlcCAyMDIwLCAxMzo1NjozMyk6CkF1ZiBkZXIgSG9jaGViZW5lIGJlZmluZGVuIHNpY2ggdmllbGUgdG9sbGUgU2FjaGVuIHVuZCBMZXV0ZSwgZGllIG1hbgp1bmJlZGluZ3QgYmVzdWNoZW4gc29sbHRlLiBBbHNvIG1hY2hlbiB3aXIgdW5zIGF1Y2ggYXVmIGRlbiBXZWcgZG9ydGhpbi4gV2llCndlaXQgdW5kIGtvbXBsaXppZXJ0IGthbm4gZGVyIFdlZyBhdXMgZGVtIERzY2h1bmdlbCBzY2hvbiBzZWluPyBTY2hhdXQgenUgdW5kCmxlcm50LCB3YW5uIG1hbiB3aWUgYWJiaWVnZW4gbXVzcywgdW5kIHdvIG1hbiBsaWViZXIgdm9yYmVpbGFldWZ0LiBOb2NoCkZyYWdlbj8KCmh0dHBzOi8veW91dHUuYmUvdEh6X2FpSUk0YTAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWb24gS2F0em1hbmR1IHp1ciBIb2NoZWJlbmUgLSBOZXUgIzI4IChaYXBob2IsIDEwLiBTZXAgMjAyMCwgMTk6NDg6MDUpOgp+IyEgcm49WmFwaG9iIHJ0PTE1OTkzOTMzOTMgcmc9YW56ZWlnZW4KfiMhIHRpZD0xNTk5MzkzMzkzClZpZWxsZWljaHQgd2FyIGF1Y2ggZGVyIFRpdGVsICJWb24gS2F0em1hbmR1IHp1ciBIb2NoZWJlbmUiIHp1IHVuc3Bla3Rha3VsYWVyCnVuZCBncmFkbGluaWcsIG9id29obCBlciBlaWdlbnRsaWNoIGhpbnRlcmdydWVuZGlnIHNlaHIgd2l0emlnIGdlbWVpbnQgaXN0LApkZW5uIHdpciBsYW5kZW4gaW4gZGVyIEZvbGdlIHVlYmVyaGF1cHQgbmljaHQgYXVmIGRlciBIb2NoZWJlbmUsIHNvbmRlcm4gZ2Fuegp3b2FuZGVycy4uLgoKTW90dG8gYSBsYSAiV2FzIGthbm4gZGEgc2Nob24gc2NoaWVmIGdlaGVuPyIgdW5kIGF1Y2ggZGllIEJlc2NocmVpYnVuZyBtaXQKIldpZSB3ZWl0IHVuZCBrb21wbGl6aWVydCBrYW5uIGRlciBXZWcgYXVzIGRlbSBEc2NodW5nZWwgc2Nob24gc2Vpbj8gU2NoYXV0IHp1CnVuZCBsZXJudCwgd2FubiBtYW4gd2llIGFiYmllZ2VuIG11c3MsIHVuZCB3byBtYW4gbGllYmVyIHZvcmJlaWxhZXVmdC4gTm9jaApGcmFnZW4/IiBmdWVocnQgc2Nob2VuIGF1ZiBkaWUgZmFsc2NoZSBGYWVocnRlIHVuZCBzZXR6dCBFcndhcnR1bmdlbiwgZGllCnNwYWV0ZXIga29sb3NzYWwgdW50ZXJsYXVmZW4gd2VyZGVuIGtvZW5uZW4uIEFsc28sIGZhbGxzIGRhcyBkYW5uIGplbWFuZAphbnNjaGF1dC4KCkFiZXIgaGV5LCBuaWNodCBzbyBzY2hsaW1tLCB3ZW5uIGRhcyBqZXR6dCBub2NoIG5pY2h0IHp1ZW5kZXQuIElyZ2VuZHdlbGNoZQpBbmZhZW5nZXIgd2VyZGVuIGluIFggTW9uYXRlbiBzY2hvbiBkcnVlYmVyIHN0b2xwZXJuIHVuZCBkYW5uIGRlbiBBdWZ0YWt0IHp1CmVpbmVyIGRlciBiZXN0ZW4gRm9sZ2VuIGJpcyBkYXRvIGVybGViZW4sIGJ6dy4gZWJlbiB0b3RhbCB2ZXJ3aXJydCBzZWluLCB3aWUKYmVpIGRlciBXdW5kZXJ0dWV0ZW5mYWJyaWsqIGFubm8gZHVubmVtYWwuCgpBbmRlcmVyc2VpdHM6IDcgVmlld3MgbWl0IDQgTGlrZXMsIGRhcyBzaW5kIHdlaXQgdWViZXIgNTAlLiBCZXN0ZSBRdW90ZSEKCkF1c3NlcmRlbSBhbiBkaWVzZXIgU3RlbGxlIG1hbCBlaW4gZGlja2VzIERhbmtlIGFuIEJhbWJ1bGtvLCBkZXIgaW1tZXIgd2llZGVyCmZsZWlzc2lnIGtvbW1lbnRpZXJ0LCB1bSBkZW4gWW91dHViZSBBbGdvcml0aG11cyB6dSBmdWV0dGVybiwgdW5kIGRhcwpNb3JnZW5ncmF1ZW4gb2JlbiBpbiBkaWUgU3VjaGVyZ2Vibmlzc2UgenUgc3B1ZWxlbiEKCiogV2VyIGRpZSBXVEYgbm9jaCBuaWNodCBrZW5udCwgZXJoYWVsdCBoaWVyIGViZW5mYWxscyBlaW5lIFNjaGF1LUVtcGZlaGx1bmcuCgpEaWUgS29sbGVnZW4gaGFiZW4gbWl0IGNhLiAxMC1zZWt1ZW5kaWdlbiBWaWRlb3MgYXVmIGlocmVtIEthbmFsIGdlc3RhcnRldCwKd29iZWkgQW5zY2hlaW4gdW5kIEF1Zm1hY2h1bmcgc28gd2lya2VuLCBhbHMgd3VlcmRlbiBzaWUgZGllIEF1c3NwcmFjaGUKc2Nod2llcmlnZXIgV29ydGUgZXJrbGFlcmVuLiBBbHNvIGdlbmF1IGRhcywgd29uYWNoIGlyZ2VuZHdlbGNoZSBBbmZhZW5nZXIgaW4KZGVyIERldXRzY2hlbiBTcHJhY2hlIHp1bSBMZXJuZW4gb2RlciBOYWNoc2NobGFnZW4gc3VjaGVuIHd1ZXJkZW4uIERhbm4gZ2ViZW4Kc2llIGFiZXIgYWJzdXJkIGZhbHNjaGUgVm9yc2NobGFlZ2UgdW5kIEJlaXNwaWVsc2FldHplLCBvaG5lIG1pdCBkZXIgV2ltcGVyIHp1Cnp1Y2tlbi4gU2VociB6dW0gS3JpbmdlbG4uIEluendpc2NoZW4gbWFjaGVuIHNpZSBhbGxlcyBNb2VnbGljaGUgYXVmIGRlbQpLYW5hbC4gRWlucyBza3VyaWxlciBhbHMgZGFzIGFuZGVyZS4uIQoKVmllbCBTcGFzcywKWmFwKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5ub3lpbmcgQ3JhenkgRnJvZ3MuLiEgLSBOZXUgIzI5IChaYXBob2IsIDIxLiBTZXAgMjAyMCwgMTU6NDc6MTEpOgpFcnN0IHdpcmQgZ2VrdWVzc3QgLSB1bmQgZGFubiBnZWh0J3MgcnVuZC4uLiBLbGluZ3QgbmFjaCBlaW5lciB0b2xsZW4KR2VzY2hpY2h0ZSEgTnVyIHdlbGNoZSBBcnQgdm9uIEdlc2NoaWNodGU/IERlciBBbmZhbmcgZWluZXMgTGllYmVzcm9tYW5zPyBEYXMKRW5kZSBlaW5lcyBNYWVyY2hlbnM/IFZpZWxsZWljaHQgYXVjaCBnYW56IHdhcyBBbmRlcmVzLiBVbmQgd2FzIHBhc3NpZXJ0IHdvaGwKYW5zY2hsaWVzc2VuZD8KCmh0dHBzOi8veW91dHUuYmUvY3dlT2NhODNDeVUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkphLCB3byBsYXVmZW4gc2llIGRlbm4/IC0gTmV1ICMzMCAoWmFwaG9iLCAgNS4gT2t0IDIwMjAsIDEyOjM0OjAzKToKQWNoLCBpc3QgZGFzIHNjaG9lb2VuISBEZXIgV2FsZCBpc3Qgc2Nob2VuIGdydWVuLiBEZXIgVW50ZXJncnVuZCBpc3Qgc28Kc3RlaW5pZy4gRGVyIFR1cm0gYXVjaCB3aXJrbGljaCBhbGJlcm4uIEFjaCwgQmVybmhhcmRpbmVyPyBCcmF1Y2hlIGljaCBuaWNodCEKRGFzIHNhZ2VuaGFmdGUgSGF1cyBpc3QgZmFyYmlnLiBEaWUgR3J1YmUgaXN0IGF1Y2ggISYkIychISBXbyB3YXIgbm9jaG1hbCBkaWUKSG9jaGViZW5lPwoKaHR0cHM6Ly95b3V0dS5iZS9OZFJiRW1zcGMyRQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWmVua2EgdmVyc3RvcmJlbiAoSHVtbmksICA0LiBKYW4gMjAyMSwgMDE6NTY6NTApOgpMaWViZSBNaXRtdWRkZXJzY2hhZnQsCgp3aXIgaGFiZW4gbWFsIHdpZWRlciBlaW5lIHRyYXVyaWdlIE5hY2hyaWNodDogV2llIHVucyB6dWdldHJhZ2VuIHd1cmRlLCBpc3QKZGVyIFNwaWVsZXIgWmVua2EgYmVyZWl0cyBpbSBPa3RvYmVyIHZlcnN0b3JiZW4uCgpIaWVyIGltIE1vcmdlbmdyYXVlbiB3YXIgZXIgbmljaHQgc2VociBha3RpdiwgZWluaWdlIGtlbm5lbiBpaG4gYWJlciBub2NoIHZvbgpkZW0gZWluIG9kZXIgYW5kZXJlbiBUcmVmZmVuLiBFciB3YXIgQW5mYW5nIGRlciBOdWxsZXJqYWhyZSBub2NoIGltIE11ZApFcGFjcmlzIGFscyBNYWdpZXIgdGFldGlnLgoKTW9lZ2UgZXIgaW4gRnJpZWRlbiBydWhlbi4KCmkuQS4gSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaZW5rYSB2ZXJzdG9yYmVuIChHbG9pbnNvbiwgIDQuIEphbiAyMDIxLCAxNjoxMjozMSk6Cn4jISBybj1IdW1uaSBydD0xNjA5NzIxODEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTYwOTcyMTgxMApJY2ggbXVzcyBpbW1lciBuYWNoc2NoYXVlbiwgb2IgaWNoIGRpZSBOYW1lbiBrZW5uZSAuLi4KLi4uIGZydWVoZXIgd2FyIGFsbGVzIC4uLiBhbmRlcnMuCgpodHRwOi8vbWcubXVkLmRlL3JlYWx3b3JsZC9iaWxkZXJzdWNoZS5waHA/bmFtZT1aZW5rYSZ2b3JzY2hhdT0xCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29uemVydGUgKEh1bW5pLCAyOC4gSmFuIDIwMjEsIDE1OjM4OjI2KToKSWNoIGJpbiBhbSBXb2NoZW5lbmRlIGJlaSBGZXVlcnNjaHdhbnouIFRyZWZmZSBpY2ggZGEgd2VuIHZvbiBldWNoPwoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvbWVzY2hvb2xpbmcgKEh1bW5pLCAgNi4gRmViIDIwMjEsIDIxOjM5OjU3KToKSGFsbG8gaWhyLCBlZ2FsLCBvYiBzZWxic3QgTGVocmVuZGUsIEVsdGVybiBvZGVyIHNlbGJzdCBTY2h1bHBmbGljaHRpZ2UgdW5kCmdlcmFkZS1Ib21lc2Nob29saW5nLUdlc2NoYWVkaWd0ZSwKCmljaCBoYWIgbWFsIGVpbiBCdWNoIGdlc2NocmllYmVuIC4uLiBudW4gamEuIEJ1Y2guIEVoZXIgQnJvc2NodWVyZSBvZGVyCkJ1ZWNobGVpbi4gS29zdCBhdWNoIG5peCwgZ2lidHMgaGllciBmdWVyIHVtbWU6Cgp3d3cuYm9lc2VyLWRyYWNoZS5kZQoKRmFsbHMgamVtYW5kIG5vY2ggSWRlZW4gYnJhdWNodC4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9tZXNjaG9vbGluZyAoWm9vaywgIDguIEZlYiAyMDIxLCAxMTozMjoxOCk6Cn4jISBybj1IdW1uaSBydD0xNjEyNjQzOTk3IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTYxMjY0Mzk5NwpEYW5rZSwgaWNoIGhhYmUgZXMgbWlyIG1hbCBoZXJ1bnRlcmdlbGFkZW4uCgpab29rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9tZXNjaG9vbGluZyAoQW50aGVhLCAgOC4gRmViIDIwMjEsIDEzOjA2OjAyKToKfiMhIHJuPUh1bW5pIHJ0PTE2MTI2NDM5OTcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xNjEyNjQzOTk3Ck5ldHRlIEJyb3NjaHVlcmUsIGluIGRpZSBEdSB3aXJrbGljaCB2aWVsZSBJZGVlbiB1bmQgRGVua2Fuc2FldHplIHJlaW5nZXN0b3BmdApoYXN0LgpEYW5rZSwgaWNoIHdlcmQgZGF2b24gcnVtZXJ6YWVobGVuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSG9tZXNjaG9vbGluZyAoQW50aGVhLCAgOS4gRmViIDIwMjEsIDA4OjM0OjU4KToKfiMhIHJuPUh1bW5pIHJ0PTE2MTI2NDM5OTcgcmc9YW56ZWlnZW4KfiMhIHRpZD0xNjEyNjQzOTk3CkFjaCBqYTogRXMgZmFlbGx0IGhldXR6dXRhZ2UgZHVyY2hhdXMgYXVmLCB3ZW5uIGJvZXNlci1kcmFjaGUuZGUgbmljaHQgcGVyCmh0dHBzLCBzb25kZXJuIG51ciBwZXIgaHR0cCBlcnJlaWNodCB3ZXJkZW4ga2Fubi4KbWF1a2Vud3VmdGZ0ZWwgaXN0IGRhbm4gamEgc2F1YmVyIGVycmVpY2hiYXIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9tZXNjaG9vbGluZyAoSHVtbmksICA5LiBGZWIgMjAyMSwgMTk6NDY6NTApOgp+IyEgcm49QW50aGVhIHJ0PTE2MTI4NTYwOTggcmc9YW56ZWlnZW4KfiMhIHRpZD0xNjEyNjQzOTk3Ckkga25vdyAuLi4gaWNoIHNhZyBudXI6ICJIaXN0b3Jpc2NoIiA7LSkKCkljaCBrdWVtbWVyIG1pY2ggYXVmIERhdWVyIGFiZXIgYXVjaCBtYWwgZHJ1bS4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIb21lc2Nob29saW5nIChHbG9pbnNvbiwgMTYuIEZlYiAyMDIxLCAyMzoxNDoyOSk6Cn4jISBybj1IdW1uaSBydD0xNjEyODk2NDEwIHJnPWFuemVpZ2VuCn4jISB0aWQ9MTYxMjY0Mzk5NwpFaW5pZ2VuIExlaHJlciBlbXBmb2hsZW4uIERpZSBMZWhyZXIgZGVyIGp1ZW5nZXJlbiBoYXQgamV0enQgc2Nob24gc2VsYnN0IGVpbgpWaWRlbyBnZWRyZWh0LiBTZWggaWNoIG1vcmdlbi4gRGllIGRlciBBZWx0ZXJlbiBtYWcgbmljaHQsIHdlaWwgc2llIGRpZQpvZmZsaW5lLUtpbmRlciBiZW5hY2h0ZWlsaWd0LiBXaXIgaGFiZW4gYWxsZXMgdmVyc3VjaHQsIGFiZXIgc2llIHdpbGwgbmljaHQuCgpXYXMgYmluIGljaCBmcm9oLCBkYXNzIGRpZSBuYWVjaHN0ZS9uZXVlIFNjaHVsZSBmdWVyIGRpZSBHcm9zc2UgZXJzdCBhYiBIZXJic3QKYW5mYWVuZ3QuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSG9tZXNjaG9vbGluZyAoWm9vaywgIDIuIE1hciAyMDIxLCAxNzo1MTo0Myk6Cn4jISBybj1HbG9pbnNvbiBydD0xNjEzNTEzNjY5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTYxMjY0Mzk5NwpJY2ggbXVzcyBkYXMgQnVjaCBub2NoIGxlc2VuLiBNb3JnZW4gamVkZW5mYWxscyBuZW4gS3VycyBhbiAKZGVyIEhvY2hzY2h1bGUvQ29hY2hpbmcuIAoKWm9vawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXJvbiBNYWlkZW4tVGlja2V0cyBoZXV0ZSBhYmVuZCBpbiBLb2VsbiAoSHVtbmksICAyLiBKdWwgMjAyMiwgMTM6MTU6NDYpOgpXaXIgaGFiZW4gbm9jaCBUaWNrZXRzIGZ1ZXIgSXJvbiBNYWlkZW4sIDIgU3R1ZWNrLCBmdWVyIGhldXRlIGFiZW5kLCBkYSBkaWUKZWlnZW50bGljaCB2b3JnZXNlaGVuZW4gUGVyc29uZW4ga3JhbmtoZWl0c2JlZGluZ3QgYXVzZ2VmYWxsZW4gc2luZC4gV2lyIHNpbmQKYXVjaCBkYSwgYWJlciBuaWNodCBpbSBzZWxiZW4gQmxvY2suCgpJc3QgbmF0dWVybGljaCBrdXJ6ZnJpc3RpZywgYWJlciB3ZXIgSW50ZXJlc3NlIGhhdCwgcGVyIHRtIGFuIG1pY2guCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQml0dGUgTW9yZ2VuR3JhdWVuIGF1ZiBZb3VUdWJlIGFib25uaWVyZW4hIChaYXBob2IsICA1LiBBdWcgMjAyMiwgMTk6MDI6NTkpOgpIYWxsbyBMZXV0ZSwKCmtvZW5udGV0IGlociBtaXIgdWViZXJzIFdvY2hlbmVuZGUgKGJpcyBNb250YWcpIGVpbmVuIEdlZmFsbGVuIHR1bj8KClVuc2VyIFlvdVR1YmUgQ2hhbm5lbCBicmF1Y2h0IG5vY2ggNSBTdWJzY3JpYmVyLCBkYW1pdCB3aXIgZGVuIEthbmFsIAp2ZXJudWVuZnRpZ2VyIGJlbmVubmVuIGtvZW5uZW4uCgpEYXMgd2FlcmUgbGllYiEgOi0pCgpXaXIgaGFiZW4gZG9ydCBzY2hvbiBzZWl0IGVpbmVyIGdhbnplbiBXZWlsZSBlaW5pZ2UgVmlkZW9zIHVlYmVyIGRhcyBNRwp2ZXJvZWZmZW50bGljaHQsIGFsc28ga2xpY2t0IGdlcm4gbWFsIHJlaW4sIGZhbGxzIG5vY2ggbmljaHQgZ2VzY2hlaGVuLgoKSGllciBhYm9ubmllcmVuOgpodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDWHZZdkxDWENuOXFkQVhOYVR0Ul85dwoKQmlzIGRpZSBVUkwgYmVzc2VyIHdpcmQsIGdlaHQgYWJlciBhdWNoOgpodHRwczovL3Rpbnl1cmwuY29tL21nLXlvdXR1YmUKClZpZWxlIEdydWVzc2UKWmFwKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJpdHRlIE1vcmdlbkdyYXVlbiBhdWYgWW91VHViZSBhYm9ubmllcmVuISAoRGVhZGR5LCAgNy4gQXVnIDIwMjIsIDE3OjQ4OjIzKToKfiMhIHJuPVphcGhvYiBydD0xNjU5NzE4OTc5IHJnPWFuemVpZ2VuCn4jISB0aWQ9MTY1OTcxODk3OQpHdXQsIGRhc3MgRHUgZGEgZHJhbiBlcmlubmVyc3QsIGljaCBkYWNodGUgaWNoIGhhZXR0ZSBzY2hvbiBzdWJzY3JpYmVkLCBhYmVyCmpldHp0IGJpbiBpY2ggYXVjaCB3aXJrbGljaCBzdWJzY3JpYmVkLiBBbHNvIGF1Y2ggd2VubiBtYW4gZ2xhdWJ0LCBtYW4gaGF0IGRhcwpzY2hvbiBnZW1hY2h0LCBzb2xsdGUgbWFuIGVzIHRyb3R6ZGVtIG5vY2htYWwgdWViZXJwcnVlZmVuLiA7LSkKClNlbWlyZWxhdGllcnQsIGhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIGFuIEZyYW5rIFJvZWhyIHp1IDY2NiBBYm9zIQpHdXRlIFphaGwhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo=