MS4gSU5MRUROSU5HCgpXaW5lIORyIGV0dCBwcm9ncmFtIHNvbSBn9nIgZGV0IG32amxpZ3QgYXR0IGv2cmEgV2luZG93cy1wcm9ncmFtCihpbmtsdWRlcmF0IERPUywgV2luZG93cyAzLngsIFdpbjMyIG9jaCBXaW42NCkgaSBVbml4LiBEZXQgYmVzdOVyIGF2IGVuCnByb2dyYW1zdGFydGFyZSBzb20gc3RhcnRhciBvY2gga/ZyIFdpbmRvd3MtcHJvZ3JhbWZpbGVyLCBzYW10IGV0dApiaWJsaW90ZWsgKGthbGxhdCBXaW5lbGliKSBzb20gaW1wbGVtZW50ZXJhciBXaW5kb3dzIEFQSS1hbnJvcCBtZWQgaGrkbHAKYXYgZGVyYXMgVW5peC0gZWxsZXIgWDExLW1vdHN2YXJpZ2hldGVyLiBCaWJsaW90ZWtldCBrYW4gb2Nrc+UgYW525G5kYXMKdGlsbCBhdHQgcG9ydGEgV2luZG93cy1rb2QgdGlsbCB2YW5saWdhIFVuaXgtcHJvZ3JhbS4KCldpbmUg5HIgZnJpIHByb2dyYW12YXJhLCB1dGdldHQgdW5kZXIgdmlsbGtvcmVuIGkgR05VIExHUEw7IHNlCmZpbGVuIExJQ0VOU0UgZvZyIGRldGFsamVyLgoKMi4gS09NIElHxU5HCgpO5HIgZHUgYnlnZ2VyIFdpbmUgZnLlbiBr5Gxsa29kIHPlIHJla29tbWVuZGVyYXMgZHUgYW525G5kYSBXaW5lcwppbnN0YWxsYXRpb25zcHJvZ3JhbS4gS/ZyIGb2bGphbmRlIGkgcm90a2F0YWxvZ2VuIGb2ciBXaW5lcyBr5Gxsa29kOgoKLi90b29scy93aW5laW5zdGFsbAoKS/ZyIHByb2dyYW0gbWVkICJ3aW5lIFt2YWxdIHByb2dyYW0iLiBTZSByZXN0ZW4gYXYgZGVubmEgZmlsLApXaW5lcyBtYW4tc2lkb3Igc2FtdCBzaXN0IG1lbiBpbnRlIG1pbnN0IGh0dHA6Ly93d3cud2luZWhxLm9yZy8gZvZyIG1lcgppbmZvcm1hdGlvbiBvY2ggdGlwcyBvbSBodXIgcHJvYmxlbSBrYW4gbPZzYXMuCgoKMy4gU1lTVEVNS1JBVgoKRvZyIGF0dCBrb21waWxlcmEgb2NoIGv2cmEgV2luZSBrcuR2cyBldHQgYXYgZvZsamFuZGU6CgogIExpbnV4IHZlcnNpb24gMi4wLjM2IGVsbGVyIHNlbmFyZQogIEZyZWVCU0QgNi4zIGVsbGVyIHNlbmFyZQogIFNvbGFyaXMgeDg2IDkgZWxsZXIgc2VuYXJlCiAgTmV0QlNELWN1cnJlbnQKICBNYWMgT1MgWCAxMC40IGVsbGVyIHNlbmFyZQoKV2luZSBrcuR2ZXIgc3T2ZCBm9nIgdHLlZGFyIHDlIGtlcm5lbG5pduUsIG9jaCBk5HJm9nIg5HIgZGV0IGJhcmEKb3BlcmF0aXZzeXN0ZW1lbiBvdmFuIHNvbSBzdPZkcy4gQW5kcmEgb3BlcmF0aXZzeXN0ZW0gc29tCnN09mRlciBrZXJuZWx0cuVkYXIga29tbWVyIGV2ZW50dWVsbHQgYXR0IHN09mRqYXMgaSBmcmFtdGlkZW4uCgpJbmZvcm1hdGlvbiBm9nIgTGludXgKICDEdmVuIG9tIExpbnV4IDIuMi54IGFudGFnbGlnZW4gZm9ydGZhcmFuZGUgZnVuZ2VyYXIsIG9jaCBMaW51eCAyLjAueCBrYW5za2UKICBmdW5nZXJhciAodGlkaWdhIDIuMC54LXZlcnNpb25lciB1cHB2aXNhZGUgdHLlZHJlbGF0ZXJhZGUgcHJvYmxlbSksIHPlIORyCiAgZGV0IGLkc3QgYXR0IGhhIGVuIGFrdHVlbGwga2VybmVsIHNvbSAyLjQueCBlbGxlciAyLjYueC4KCkluZm9ybWF0aW9uIGb2ciBGcmVlQlNECiAgV2luZSBrb21tZXIgaSByZWdlbCBpbnRlIGZ1bmdlcmEgcOUgRnJlZUJTRC12ZXJzaW9uZXIg5GxkcmUg5G4gNi4zIGVsbGVyIDcuMC4KICBGcmVlQlNEIDYuMyBrYW4gdXBwZGF0ZXJhcyBmb3IgYXR0IHN09mRqYSBXaW5lLiBTZQogIGh0dHA6Ly93aWtpLmZyZWVic2Qub3JnL1dpbmUgZvZyIG1lciBpbmZvcm1hdGlvbi4KCkluZm9ybWF0aW9uIGb2ciBTb2xhcmlzCiAgV2luZSBt5XN0ZSBhbnRhZ2xpZ2VuIGJ5Z2dhcyBtZWQgR05VIHRvb2xjaGFpbiAoZ2NjLCBnYXMgZXRjLikuCiAgVmFybmluZzog5HZlbiBvbSBnYXMgaW5zdGFsbGVyYXMgc+Ug5HIgZGV0IGludGUgc+RrZXJ0IGF0dCBkZXQgYW525G5kcyBhdgogIGdjYy4gRGV0IHPkZ3MgYXR0IGRldCDkciBu9mR25G5kaWd0IGF0dCBhbnRpbmdlbiBieWdnYSBnY2MgcOUgbnl0dCwgZWxsZXIKICBza2FwYSBzeW1ib2xpc2thIGzkbmthciBmcuVuICJjYyIsICJhcyIgb2NoICJsZCIgdGlsbCBHTlUgdG9vbGNoYWluLgoKSW5mb3JtYXRpb24gZvZyIE5ldEJTRAogIFVTRVJfTERULCBTWVNWU0hNLCBTWVNWU0VNIG9jaCBTWVNWTVNHIG3lc3RlIHZhcmEgYWt0aXZlcmFkZSBpIGtlcm5lbG4uCgpJbmZvcm1hdGlvbiBm9nIgTWFjIE9TIFg6CiAgRHUgYmVo9nZlciBYY29kZSAyLjQgZWxsZXIgc2VuYXJlIGb2ciBhdHQga29ycmVrdCBrdW5uYSBieWdnYSBXaW5lIHDlIHg4Ni4KCgpTdPZkZGEgZmlsc3lzdGVtCiAgV2luZSBrYW4ga/ZyYSBw5SBkZSBmbGVzdGEgZmlsc3lzdGVtLCBtZW4gZGV0IGhhciByYXBwb3J0ZXJhdHMgcHJvYmxlbSB2YWQKICBn5GxsZXIga29tcGF0aWJpbGl0ZXQgZOUgc2FtYmEgYW525G5kcyBm9nIgYXR0IGFuc2x1dGEgdGlsbCBmaWxlci4gTlRGUwogIHRpbGxoYW5kYWjlbGxlciBpbnRlIGhlbGxlciBhbGxhIGZpbHN5c3RlbXNmdW5rdGlvbmVyIHNvbSBiZWj2dnMgYXYgYWxsYQogIHByb2dyYW0uIERldCByZWtvbW1lbmRlcmFzIGF0dCBhbnbkbmRhIGV0dCBMaW51eC1maWxzeXN0ZW0gc29tIGV4ZW1wZWx2aXMKICBleHQzLgoKR3J1bmRs5GdnYW5kZSBrcmF2OgogIFV0dmVja2xpbmdzZmlsZXJuYSBm9nIgWDExIG3lc3RlIHZhcmEgaW5zdGFsbGVyYWRlIChkZSBrYWxsYXMgeGxpYjZnLWRldiBpCiAgRGViaWFuIG9jaCBYRnJlZTg2LWRldmVsIGkgUmVkIEhhdCkuCgogIER1IG3lc3RlIGdpdmV0dmlzIG9ja3PlIGhhICJtYWtlIiAobWVzdCB0cm9saWd0ICJHTlUgbWFrZSIpLgoKICBEZXQg5HIgb2Nrc+UgbvZkduRuZGlndCBhdHQgaGEgZmxleCAyLjUuMzMgZWxsZXIgc2VuYXJlIHNhbXQgYmlzb24uCgpWYWxmcmlhIHN09mRiaWJsaW90ZWs6CiAgY29uZmlndXJlLXNrcmlwdGV0IHZpc2FyIHZhcm5pbmdhciBu5HIgdmFsZnJpYSBiaWJsaW90ZWsgaW50ZSBoaXR0YXRzLgogIFNlIGh0dHA6Ly93aWtpLndpbmVocS5vcmcvUmVjb21tZW5kZWRfUGFja2FnZXMgZvZyIGluZm9ybWF0aW9uIG9tCiAgdmlsa2EgcGFrZXQgZHUgYvZyIGluc3RhbGxlcmEuCgogIFDlIDY0IGJpdC1zeXN0ZW0gbeVzdGUgZHUgc+RrZXJzdORsbGEgYXR0IDMyIGJpdC12ZXJzaW9uZXJuYSBhdgogIG92YW5u5G1uZGEgYmlibGlvdGVrIGluc3RhbGxlcmF0czsgc2UgaHR0cDovL3dpa2kud2luZWhxLm9yZy9XaW5lT242NGJpdAogIGb2ciBu5HJtYXJlIGRldGFsamVyLiBPbSBkdSB2aWxsIGhhIGV0dCBzYW50IDY0LWJpdCBXaW5lIChlbGxlciBlbiBtaXhhZAogIDMyLSBvY2ggNjQtYml0IFdpbmUtaW5zdGFsbGF0aW9uKSwgc2UgaHR0cDovL3dpa2kud2luZWhxLm9yZy9XaW5lNjQgZvZyCiAgZGV0YWxqZXIuCgo0LiBLT01QSUxFUklORwoKS/ZyIGb2bGphbmRlIGtvbW1hbmRvbiBm9nIgYXR0IGJ5Z2dhIFdpbmUgb20gZHUgaW50ZSBhbnbkbmRlciB3aW5laW5zdGFsbDoKCi4vY29uZmlndXJlCm1ha2UKCkRldHRhIGJ5Z2dlciBwcm9ncmFtbWV0ICJ3aW5lIiBvY2ggZGl2ZXJzZSBzdPZkYmlibGlvdGVrL3Byb2dyYW1maWxlci4KUHJvZ3JhbWZpbGVuICJ3aW5lIiBsYWRkYXIgb2NoIGv2ciBXaW5kb3dzLXByb2dyYW0uCkJpYmxpb3Rla2V0ICJsaWJ3aW5lIiAoIldpbmVsaWIiKSBrYW4gYW525G5kYXMgdGlsbCBhdHQgYnlnZ2Egb2NoIGzkbmthCldpbmRvd3Mta+RsbGtvZCBpIFVuaXguCgpL9nIgJy4vY29uZmlndXJlIC0taGVscCcgZvZyIGF0dCBzZSBpbnN05GxsbmluZ2FyIG9jaCB2YWwgdmlkIGtvbXBpbGVyaW5nLgoKNS4gSU5TVEFMTEFUSU9OCgpO5HIgV2luZSDkciBieWdndCBrYW4gZHUga/ZyYSAibWFrZSBpbnN0YWxsIiBm9nIgYXR0IGluc3RhbGxlcmEgZGV0OwpkZXR0YSBpbnN0YWxsZXJhciBvY2tz5SBtYW4tc2lkb3JuYSBvY2ggbuVncmEgZmxlciBu9mR25G5kaWdhIGZpbGVyLgoKR2z2bSBpbnRlIGF0dCBm9nJzdCBhdmluc3RhbGxlcmEgZ2FtbGEgV2luZS12ZXJzaW9uZXIuIFBy9nZhIGFudGluZ2VuCiJkcGtnIC1yIHdpbmUiLCAicnBtIC1lIHdpbmUiIGVsbGVyICJtYWtlIHVuaW5zdGFsbCIgZvZyZSBpbnN0YWxsYXRpb25lbi4KCk7kciBXaW5lIORyIGluc3RhbGxlcmF0IGthbiBkdSBhbnbkbmRhIGluc3TkbGxuaW5nc3Byb2dyYW1tZXQgIndpbmVjZmciLgpTZSBoauRscGF2ZGVsbmluZ2VuIHDlIGh0dHA6Ly93d3cud2luZWhxLm9yZy8gZvZyIHRpcHMgb20gaW5zdORsbG5pbmdhci4KCgo2LiBL1lJOSU5HIEFWIFBST0dSQU0KCk7kciBkdSBhbnbkbmRlciBXaW5lIGthbiBkdSB1cHBnZSBoZWxhIHP2a3bkZ2VuIHRpbGwgcHJvZ3JhbWZpbGVuLCBlbGxlcgplbmJhcnQgZXR0IGZpbG5hbW4uCgpFeGVtcGVsOiBm9nIgYXR0IGv2cmEgTm90ZXBhZDoKCiAgICAgICAgd2luZSBub3RlcGFkICAgICAgICAgICAgICAgKGFuduRuZGVyIHP2a3bkZ2VuIGFuZ2l2ZW4gaSBXaW5lcwogICAgICAgIHdpbmUgbm90ZXBhZC5leGUgICAgICAgICAgICBrb25maWd1cmF0aW9uc2ZpbCBm9nIgYXR0IGZpbm5hIGZpbGVuKQoKICAgICAgICB3aW5lIGM6XFx3aW5kb3dzXFxub3RlcGFkLmV4ZSAgKGFuduRuZG5pbmcgYXYgRE9TLWZpbG5hbW5zc3ludGF4KQoKICAgICAgICB3aW5lIH4vLndpbmUvZHJpdmVfYy93aW5kb3dzL25vdGVwYWQuZXhlICAoYW525G5kbmluZyBhdiBVbml4LWZpbHbkZ2FyKQoKICAgICAgICB3aW5lIG5vdGVwYWQuZXhlIHJlYWRtZS50eHQgIChr9nJhIHByb2dyYW0gbWVkIHBhcmFtZXRyYXIpCgpXaW5lIORyIGludGUgcGVyZmVrdCwgc+UgZGV0IORyIG32amxpZ3QgYXR0IHZpc3NhIHByb2dyYW0ga3Jhc2NoYXIuCkkgc+UgZmFsbCBm5XIgZHUgZW4ga3Jhc2NobG9nZyBzb20gZHUgYvZyIGJpZm9nYSB0aWxsIGRpbiByYXBwb3J0IGTlIGR1CnJhcHBvcnRlcmFyIGV0dCBmZWwuCgoKNy4gTUVSIElORk9STUFUSU9OCgpJbnRlcm5ldDogIE15Y2tldCBpbmZvcm1hdGlvbiBvbSBXaW5lIGZpbm5zIHNhbWxhdCBw5SBXaW5lSFEgcOUKICAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5vcmcvIDogZGl2ZXJzZSBndWlkZXIsIGVuIHByb2dyYW1kYXRhYmFzIHNhbXQKICAgICAgICAgICBmZWxzcOVybmluZy4gRGV0dGEg5HIgYW50YWdsaWdlbiBkZXQgYuRzdGEgc3TkbGxldCBhdHQgYvZyamEuCgpGcuVnb3I6ICAgIEZy5WdvciBvY2ggc3ZhciBvbSBXaW5lIGZpbm5zIHNhbWxhZGUgcOUgaHR0cDovL3d3dy53aW5laHEub3JnL0ZBUQoKRmVsOiAgICAgICBSYXBwb3J0ZXJhIGZlbCB0aWxsIFdpbmVzIEJ1Z3ppbGxhIHDlIGh0dHA6Ly9idWdzLndpbmVocS5vcmcKICAgICAgICAgICBT9msgaSBCdWd6aWxsYS1kYXRhYmFzZW4gZvZyIGF0dCBzZSBvbSBwcm9ibGVtZXQgcmVkYW4gZmlubnMKICAgICAgICAgICByYXBwb3J0ZXJhdCBpbm5hbiBkdSBz5G5kZXIgZW4gZmVscmFwcG9ydC4KCklSQzogICAgICAgSGrkbHAgZmlubnMgdGlsbGfkbmdsaWcgb25saW5lIHDlIGthbmFsZW4gI1dpbmVIUSBw5QogICAgICAgICAgIGlyYy5mcmVlbm9kZS5uZXQuCgpHaXQ6ICAgICAgIFdpbmVzIG51dmFyYW5kZSB1dHZlY2tsaW5nc3ZlcnNpb24gZmlubnMgdGlsbGfkbmdsaWcgZ2Vub20gR2l0LgogICAgICAgICAgIEflIHRpbGwgaHR0cDovL3d3dy53aW5laHEub3JnL2dpdCBm9nIgbWVyIGluZm9ybWF0aW9uLgoKRS1wb3N0bGlzdG9yOgogICAgICAgICAgIERldCBmaW5ucyBmbGVyYSBlLXBvc3RsaXN0b3IgZvZyIFdpbmUtYW525G5kYXJlIG9jaCAtdXR2ZWNrbGFyZTsgc2UKICAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5vcmcvZm9ydW1zIGb2ciBtZXIgaW5mb3JtYXRpb24uCgpXaWtpOiAgICAgIFdpbmVzIFdpa2kgZmlubnMgcOUgaHR0cDovL3dpa2kud2luZWhxLm9yZwoKT20gZHUgbORnZ2VyIHRpbGwgbuVnb3QgZWxsZXIgZml4YXIgZXR0IGZlbCwg5HIgZGV0IGJyYSBvbSBkdSBz5G5kZXIKZW4gcGF0Y2ggKGb2cnNsYWdzdmlzIG1lZCBnaXQtZm9ybWF0LXBhdGNoKSB0aWxsIGxpc3RhbiB3aW5lLXBhdGNoZXNAd2luZWhxLm9yZwpm9nIgaW5rbHVkZXJpbmcgaSBu5HN0YSB1dGfldmEgYXYgV2luZS4KCi0tCk9yaWdpbmFsZXQgdGlsbCBkZW5uYSBmaWwgc2tyZXZzIGF2CkFsZXhhbmRyZSBKdWxsaWFyZApqdWxsaWFyZEB3aW5laHEub3JnCgrWdmVyc2F0dCB0aWxsIHN2ZW5za2EgYXYKQW5kZXJzIEpvbnNzb24KYW5kZXJzLmpvbnNzb25Abm9yc2pvbmV0LnNlCg==