ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggYzYyZmIwNS4uODQ3MTY5OCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDI5CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMwLDMwICszMCwxNyBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVNwZWxsaW5nOgotLSBDVFJMLVggcyBkb2Vzbid0IGNvbnNpZGVyICdzcGVsbGNhcGNoZWNrJy4KLS0gc3BlbGxzdWdnZXN0KCkgbmVlZHMgYSB3YXkgdG8gcmVxdWlyZSBhIGNhcGl0YWwuICBBIGZsYWcgb3IgY29udGV4dD8KLS0gVXNlIG1vcmUgcGhvbmV0LmRhdCBmaWxlcyBmcm9tIEFzcGVsbC4gIGVuIGFuZCBkZSBhcmUgZG9uZS4KLSAgICBmdHAuZ251Lm9yZy9nbnUvYXNwZWxsL2RpY3QKLQotV2luMzI6IENvbXBvc2luZyBjaGFyIGFwcGVhcnMgb24gbmV4dCBwb3NpdGlvbi4gKFRvbnkgTWVjaGVseW5jaykKLQotSW5jbHVkZSBjaGVjayBpbiBzZXRfbnVtX29wdGlvbigpIGZvciAnY29sdW1ucycgYW5kICdsaW5lcycgaW4gVmltIDYuMz8KLQogU3VwcG9ydCBzdWJkaXJlY3RvcmllcyBpbiBwbHVnaW4gZGlyZWN0b3J5PyAgKE5pa29sYWkgV2VpYnVsbCkKIAogV2hlbiBzY3JvbGxpbmcgc3RhcnRzLCByZW1lbWJlciB3aGF0IHNjcmlwdC9saW5lIGNhdXNlZCB0aGlzLCBzbyB0aGF0IHdlIGtub3cKIHdoYXQgY2F1c2VkIHRoZSBoaXQtZW50ZXIgcHJvbXB0PyAgKENoYXJsZXMgQ2FtcGJlbGwpCiAKLUNoYW5nZSAnaW5jbHVkZScgc28gdGhhdCBpdCBjYW4gbWF0Y2ggdGhlIGZpbGUgbmFtZSB3aGVuIFx6cyBhbmQgXHplIGFyZQotaW5jbHVkZWQuIChkb2NzIGFscmVhZHkgZG9uZSB0ZW50YXRpdmVseSkuCitXaGVuICdmb2xkY29sdW1uJyBpcyAxIHNob3cgbW9yZSArIHRvIGJlIGFibGUgdG8gb3BlbiBhbGwgZm9sZHM/IChEb25vaHVlKQogCiBjY29tcGxldGU6CiAtIEhvdyB0byB1c2UgYSBwb3B1cCBtZW51PwogLSBXaGVuIGEgdHlwZWRlZiBvciBzdHJ1Y3QgaXMgbG9jYWwgdG8gYSBmaWxlIG9ubHkgdXNlIGl0IGluIHRoYXQgZmlsZT8KIAotV2hlbiAnZm9sZGNvbHVtbicgaXMgMSBzaG93IG1vcmUgKyB0byBiZSBhYmxlIHRvIG9wZW4gYWxsIGZvbGRzPyAoRG9ub2h1ZSkKLQogTWFjIHVuaWNvZGUgcGF0Y2ggKERhIFdvb24gSnVuZyk6CiAtIHNlbGVjdGluZyBwcm9wb3J0aW9uYWwgZm9udCBicmVha3MgZGlzcGxheQogLSBVVEYtOCB0ZXh0IGNhdXNlcyBkaXNwbGF5IHByb2JsZW1zLiAgRm9udCByZXBsYWNlbWVudCBjYXVzZXMgdGhpcy4KQEAgLTEzNTAsNiArMTMzNyw3IEBACiAtICAgRG8gd2UgbmVlZCBhIGZsYWcgZm9yIHRoZSBydWxlIHRoYXQgd2hlbiBjb21wb3VuZGluZyBpcyBkb25lIHRoZSBmb2xsb3dpbmcKICAgICB3b3JkIGRvZXNuJ3QgaGF2ZSBhIGNhcGl0YWwgYWZ0ZXIgYSB3b3JkIGNoYXJhY3RlciwgZXZlbiBmb3IgT25lY2FwIHdvcmRzPwogLSAgIE5ldyBodW5zcGVsbCBob21lIHBhZ2U6IGh0dHA6Ly9odW5zcGVsbC5zb3VyY2Vmb3JnZS5uZXQvCisgICAgLSBWZXJzaW9uIDEuMS4wIGlzIG91dCBub3csIGxvb2sgaW50byB0aGF0LgogICAgIC0gTG90cyBvZiBjb2RlIGRlcGVuZHMgb24gTEFORywgdGhhdCBpc24ndCByaWdodC4gIEVuYWJsZSBlYWNoIG1lY2hhbmlzbQogICAgICAgaW4gdGhlIGFmZml4IGZpbGUgc2VwYXJhdGVseS4KICAgICAtIEV4YW1wbGUgd2l0aCBjb21wb3VuZGluZyBkYXNoIGlzIGJhZCwgZ2V0cyBpbiB0aGUgd2F5IG9mIHNldHRpbmcKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAppbmRleCA3ODIxNzFmLi4zYjUzYTRkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAyOQorKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtODIzLDYgKzgyMyw5IEBACiAiZHAiIHdvcmtzIHdpdGggbW9yZSB0aGFuIHR3byBidWZmZXJzIGluIGRpZmYgbW9kZSBpZiB0aGVyZSBpcyBvbmx5IG9uZSB3aGVyZQogJ21vZGlmaWFibGUnIGlzIHNldC4KIAorV2hlbiB0aGUgJ2luY2x1ZGUnIG9wdGlvbiBjb250YWlucyBcenMgdGhlIGZpbGUgbmFtZSBmb3VuZCBpcyB3aGF0IGlzIGJlaW5nCittYXRjaGVkIGZyb20gXHpzIHRvIHRoZSBlbmQgb3IgXHplLiAgVXNlZnVsIHRvIHBhc3MgbW9yZSB0byAnaW5jbHVkZWV4cHInLgorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIENPTVBJTEUgVElNRSBDSEFOR0VTCQkJCQkqY29tcGlsZS1jaGFuZ2VzLTcqCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL05ldHJ3UGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL05ldHJ3UGx1Z2luLnZpbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAxM2M4Zi4uMDAwMDAwMAotLS0gYS9ydW50aW1lL3BsdWdpbi9OZXRyd1BsdWdpbi52aW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotIiBuZXRydy52aW06IEhhbmRsZXMgZmlsZSB0cmFuc2ZlciBhbmQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIGFjcm9zcyBhIG5ldHdvcmsKLSIgICAgICAgICAgICBQTFVHSU4gUE9SVElPTgotIiBMYXN0IENoYW5nZToJQXVnIDI5LCAyMDA1Ci0iIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPGRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseSBkb3QgYml6PgotIiBWZXJzaW9uOgk2NgotIiBMaWNlbnNlOglWaW0gTGljZW5zZSAgKHNlZSB2aW0ncyA6aGVscCBsaWNlbnNlKQotIiBHZXRMYXRlc3RWaW1TY3JpcHRzOiAxMDc1IDEgOkF1dG9JbnN0YWxsOiBuZXRydy52aW0KLSIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQotIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKLSIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAotIiAgICAgICAgICAgICAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLAotIiAgICAgICAgICAgICAgIG5ldHJ3LnZpbSBpcyBwcm92aWRlZCAqYXMgaXMqIGFuZCBjb21lcyB3aXRoIG5vIHdhcnJhbnR5Ci0iICAgICAgICAgICAgICAgb2YgYW55IGtpbmQsIGVpdGhlciBleHByZXNzZWQgb3IgaW1wbGllZC4gQnkgdXNpbmcgdGhpcwotIiAgICAgICAgICAgICAgIHBsdWdpbiwgeW91IGFncmVlIHRoYXQgaW4gbm8gZXZlbnQgd2lsbCB0aGUgY29weXJpZ2h0Ci0iICAgICAgICAgICAgICAgaG9sZGVyIGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgcmVzdWx0aW5nIGZyb20gdGhlIHVzZQotIiAgICAgICAgICAgICAgIG9mIHRoaXMgc29mdHdhcmUuCi0iCi0iICBCdXQgYmUgZG9lcnMgb2YgdGhlIFdvcmQsIGFuZCBub3Qgb25seSBoZWFyZXJzLCBkZWx1ZGluZyB5b3VyIG93biBzZWx2ZXMge3t7MQotIiAgKEphbWVzIDE6MjIgUlNWKQotIiA9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgTG9hZCBPbmNlOiB7e3sxCi1pZiBleGlzdHMoImc6bG9hZGVkX25ldHJ3IikgfHwgJmNwCi0gIGZpbmlzaAotZW5kaWYKLWlmIHY6dmVyc2lvbiA8IDYwMAotIGVjaG9lcnIgIioqKm5ldHJ3KioqIGRvZXNuJ3Qgc3VwcG9ydCBWaW0gdmVyc2lvbiAiLnY6dmVyc2lvbgotIGZpbmlzaAotZW5kaWYKLWxldCBnOmxvYWRlZF9uZXRydyAgPSAidjY2IgotaWYgdjp2ZXJzaW9uIDwgNzAwCi0gbGV0IGxvYWRlZF9leHBsb3JlciA9IDEKLWVuZGlmCi1sZXQgczprZWVwY3BvPSAmY3BvCi1zZXQgY3BvJnZpbQotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBQdWJsaWMgSW50ZXJmYWNlOiB7e3sxCi0KLSIgTG9jYWwgQnJvd3Npbmc6IHt7ezIKLWF1Z3JvdXAgRmlsZUV4cGxvcmVyCi0gYXUhCi0gYXUgQnVmRW50ZXIgKiBjYWxsIHM6TG9jYWxCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQotYXVncm91cCBFTkQKLQotIiBOZXR3b3JrIEJyb3dzaW5nIFJlYWRpbmcgV3JpdGluZzoge3t7MgotYXVncm91cCBOZXR3b3JrCi0gYXUhCi0gaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luOTUiKSB8fCBoYXMoIndpbjY0IikgfHwgaGFzKCJ3aW4xNiIpCi0gIGF1IEJ1ZlJlYWRDbWQgIGZpbGU6Ly8qCQlleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICdlICcuc3Vic3RpdHV0ZShleHBhbmQoIjxhbWF0Y2g+IiksImZpbGU6LyoiLCIiLCIiKXxleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCi0gZWxzZQotICBhdSBCdWZSZWFkQ21kICBmaWxlOi8vLyoJCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLmV4cGFuZCgiPGFtYXRjaD4iKXxleGUgJ2UgLycuc3Vic3RpdHV0ZShleHBhbmQoIjxhbWF0Y2g+IiksImZpbGU6LyoiLCIiLCIiKXxleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCi0gIGF1IEJ1ZlJlYWRDbWQgIGZpbGU6Ly9sb2NhbGhvc3QvKglleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICdlIC8nLnN1YnN0aXR1dGUoZXhwYW5kKCI8YW1hdGNoPiIpLCJmaWxlOi8qIiwiIiwiIil8ZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUG9zdCAiLmV4cGFuZCgiPGFtYXRjaD4iKQotIGVuZGlmCi0gYXUgQnVmUmVhZENtZCAgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGh0dHA6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLmV4cGFuZCgiPGFtYXRjaD4iKXxleGUgIk5yZWFkIDByICIuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5leHBhbmQoIjxhbWF0Y2g+IikKLSBhdSBGaWxlUmVhZENtZCAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosaHR0cDovLyosZGF2Oi8vKixyc3luYzovLyosc2Z0cDovLyoJZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUHJlICIuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAiTnJlYWQgIiAgIC5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICJzaWxlbnQgZG9hdSBGaWxlUmVhZFBvc3QgIi5leHBhbmQoIjxhbWF0Y2g+IikKLSBhdSBCdWZXcml0ZUNtZCAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosZGF2Oi8vKixyc3luYzovLyosc2Z0cDovLyogICAgCWV4ZSAic2lsZW50IGRvYXUgQnVmV3JpdGVQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICJOd3JpdGUgIiAuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAic2lsZW50IGRvYXUgQnVmV3JpdGVQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCi0gYXUgRmlsZVdyaXRlQ21kIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qICAgIAlleGUgInNpbGVudCBkb2F1IEJ1ZldyaXRlUHJlICIuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAiJ1ssJ11Od3JpdGUgIiAuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAic2lsZW50IGRvYXUgRmlsZVdyaXRlUG9zdCAiLmV4cGFuZCgiPGFtYXRjaD4iKQotYXVncm91cCBFTkQKLQotIiBDb21tYW5kczogOk5yZWFkLCA6TndyaXRlLCA6TmV0VXNlclBhc3Mge3t7MgotY29tISAtbmFyZ3M9KgkJTnJlYWQJCWNhbGwgbmV0cncjTmV0U2F2ZVBvc24oKTxiYXI+Y2FsbCBuZXRydyNOZXRSZWFkKDxmLWFyZ3M+KTxiYXI+Y2FsbCBuZXRydyNOZXRSZXN0b3JlUG9zbigpCi1jb20hIC1yYW5nZT0lIC1uYXJncz0qCU53cml0ZQkJY2FsbCBuZXRydyNOZXRTYXZlUG9zbigpPGJhcj48bGluZTE+LDxsaW5lMj5jYWxsIG5ldHJ3I05ldFdyaXRlKDxmLWFyZ3M+KTxiYXI+Y2FsbCBuZXRydyNOZXRSZXN0b3JlUG9zbigpCi1jb20hIC1uYXJncz0qCQlOZXRVc2VyUGFzcwljYWxsIE5ldFVzZXJQYXNzKDxmLWFyZ3M+KQotCi0iIENvbW1hbmRzOiA6RXhwbG9yZSwgOlNleHBsb3JlLCBIZXhwbG9yZSwgVmV4cGxvcmUge3t7MgotY29tISAtbmFyZ3M9PyAtYmFyIC1iYW5nIC1jb3VudD0wICAJRXhwbG9yZQkJY2FsbCBuZXRydyNFeHBsb3JlKDxjb3VudD4sMCwwKzxiYW5nPjAsPHEtYXJncz4pCi1jb20hIC1uYXJncz0/IC1iYXIgLWJhbmcgLWNvdW50PTAgIAlTZXhwbG9yZQljYWxsIG5ldHJ3I0V4cGxvcmUoPGNvdW50PiwxLDArPGJhbmc+MCw8cS1hcmdzPikKLWNvbSEgLW5hcmdzPT8gLWJhciAtYmFuZyAtY291bnQ9MCAgCUhleHBsb3JlCWNhbGwgbmV0cncjRXhwbG9yZSg8Y291bnQ+LDEsMis8YmFuZz4wLDxxLWFyZ3M+KQotY29tISAtbmFyZ3M9PyAtYmFyIC1iYW5nIC1jb3VudD0wICAJVmV4cGxvcmUJY2FsbCBuZXRydyNFeHBsb3JlKDxjb3VudD4sMSw0KzxiYW5nPjAsPHEtYXJncz4pCi1jb20hIC1uYXJncz0/IC1iYXIgLWJhbmcgICAJCU5leHBsb3JlCWNhbGwgbmV0cncjRXhwbG9yZSgtMSwwLDAsPHEtYXJncz4pCi1jb20hIC1uYXJncz0/IC1iYXIgLWJhbmcgICAJCVBleHBsb3JlCWNhbGwgbmV0cncjRXhwbG9yZSgtMiwwLDAsPHEtYXJncz4pCi0KLSIgQ29tbWFuZHM6IE5ldHJ3U2V0dGluZ3Mge3t7MgotY29tISAtbmFyZ3M9MCBOZXRyd1NldHRpbmdzIDpjYWxsIE5ldHJ3U2V0dGluZ3MjTmV0cndTZXR0aW5ncygpCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIExvY2FsQnJvd3NlOiB7e3syCi1mdW4hIHM6TG9jYWxCcm93c2UoZGlybmFtZSkKLSAgIiB1bmZvcnR1bmF0ZSBpbnRlcmFjdGlvbiAtLSBkZWJ1Z2dpbmcgY2FsbHMgY2FuJ3QgYmUgdXNlZCBoZXJlOwotICAiIHRoZSBCdWZFbnRlciBldmVudCBjYXVzZXMgdHJpZ2dlcmluZyB3aGVuIGF0dGVtcHRzIHRvIHdyaXRlIHRvCi0gICIgdGhlIERCRyBidWZmZXIgYXJlIG1hZGUuCi0gIGlmIGlzZGlyZWN0b3J5KGE6ZGlybmFtZSkKLSAgIGNhbGwgbmV0cncjRGlyQnJvd3NlKGE6ZGlybmFtZSkKLSAgZW5kaWYKLSAgIiBub3QgYSBkaXJlY3RvcnksIGlnbm9yZSBpdAotZW5kZnVuCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIE5ldHJ3U3RhdHVzTGluZToge3t7MQotZnVuISBOZXRyd1N0YXR1c0xpbmUoKQotIiAgbGV0IGc6c3RsbXNnPSAiWGJ1Zm5yPSIudzpuZXRyd19leHBsb3JlX2J1Zm5yLiIgYnVmbnI9Ii5idWZucigiLiIpLiIgWGxpbmUjIi53Om5ldHJ3X2V4cGxvcmVfbGluZS4iIGxpbmUjIi5saW5lKCIuIikKLSAgaWYgIWV4aXN0cygidzpuZXRyd19leHBsb3JlX2J1Zm5yIikgfHwgdzpuZXRyd19leHBsb3JlX2J1Zm5yICE9IGJ1Zm5yKCIuIikgfHwgIWV4aXN0cygidzpuZXRyd19leHBsb3JlX2xpbmUiKSB8fCB3Om5ldHJ3X2V4cGxvcmVfbGluZSAhPSBsaW5lKCIuIikgfHwgIWV4aXN0cygidzpuZXRyd19leHBsb3JlX2xpc3QiKQotICAgbGV0ICZzdGw9IHM6bmV0cndfZXhwbG9yZV9zdGwKLSAgIGlmIGV4aXN0cygidzpuZXRyd19leHBsb3JlX2J1Zm5yIil8dW5sZXQgdzpuZXRyd19leHBsb3JlX2J1Zm5yfGVuZGlmCi0gICBpZiBleGlzdHMoInc6bmV0cndfZXhwbG9yZV9saW5lIil8dW5sZXQgdzpuZXRyd19leHBsb3JlX2xpbmV8ZW5kaWYKLSAgIHJldHVybiAiIgotICBlbHNlCi0gICByZXR1cm4gIk1hdGNoICIudzpuZXRyd19leHBsb3JlX210Y2hjbnQuIiBvZiAiLnc6bmV0cndfZXhwbG9yZV9saXN0bGVuCi0gIGVuZGlmCi1lbmRmdW4KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgTmV0VXNlclBhc3M6IHNldCB1c2VybmFtZSBhbmQgcGFzc3dvcmQgZm9yIHN1YnNlcXVlbnQgZnRwIHRyYW5zZmVyIHt7ezEKLSIgICBVc2FnZTogIDpjYWxsIE5ldFVzZXJQYXNzKCkJCQktLSB3aWxsIHByb21wdCBmb3IgdXNlcmlkIGFuZCBwYXNzd29yZAotIgkgICAgOmNhbGwgTmV0VXNlclBhc3MoInVpZCIpCQktLSB3aWxsIHByb21wdCBmb3IgcGFzc3dvcmQKLSIJICAgIDpjYWxsIE5ldFVzZXJQYXNzKCJ1aWQiLCJwYXNzd29yZCIpIC0tIHNldHMgZ2xvYmFsIHVzZXJpZCBhbmQgcGFzc3dvcmQKLWZ1biEgTmV0VXNlclBhc3MoLi4uKQotCi0gIiBnZXQvc2V0IHVzZXJpZAotIGlmIGE6MCA9PSAwCi0iICBjYWxsIERmdW5jKCJOZXRVc2VyUGFzcyhhOjA8Ii5hOjAuIj4pIikKLSAgaWYgIWV4aXN0cygiZzpuZXRyd191aWQiKSB8fCBnOm5ldHJ3X3VpZCA9PSAiIgotICAgIiB2aWEgcHJvbXB0Ci0gICBsZXQgZzpuZXRyd191aWQ9IGlucHV0KCdFbnRlciB1c2VybmFtZTogJykKLSAgZW5kaWYKLSBlbHNlCSIgZnJvbSBjb21tYW5kIGxpbmUKLSIgIGNhbGwgRGZ1bmMoIk5ldFVzZXJQYXNzKGE6MTwiLmE6MS4iPikgeyIpCi0gIGxldCBnOm5ldHJ3X3VpZD0gYToxCi0gZW5kaWYKLQotICIgZ2V0IHBhc3N3b3JkCi0gaWYgYTowIDw9IDEgIiB2aWEgcHJvbXB0Ci0iICBjYWxsIERlY2hvKCJhOjA9Ii5hOjAuIiBjYXNlIDw9MToiKQotICBsZXQgZzpuZXRyd19wYXNzd2Q9IGlucHV0c2VjcmV0KCJFbnRlciBQYXNzd29yZDogIikKLSBlbHNlICIgZnJvbSBjb21tYW5kIGxpbmUKLSIgIGNhbGwgRGVjaG8oImE6MD0iLmE6MC4iIGNhc2UgPjE6IGE6MjwiLmE6Mi4iPiIpCi0gIGxldCBnOm5ldHJ3X3Bhc3N3ZD1hOjIKLSBlbmRpZgotIiAgY2FsbCBEcmV0KCJOZXRVc2VyUGFzcyIpCi1lbmRmdW4KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgTmV0UmVhZEZpeHVwOiB0aGlzIHNvcnQgb2YgZnVuY3Rpb24gaXMgdHlwaWNhbGx5IHdyaXR0ZW4gYnkgdGhlIHVzZXIge3t7MQotIiAgICAgICAgICAgICAgIHRvIGhhbmRsZSBleHRyYSBqdW5rIHRoYXQgdGhlaXIgc3lzdGVtJ3MgZnRwIGR1bXBzCi0iICAgICAgICAgICAgICAgaW50byB0aGUgdHJhbnNmZXIuICBUaGlzIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGFzIGFuCi0iICAgICAgICAgICAgICAgZXhhbXBsZSBhbmQgYXMgYSBmaXggZm9yIGEgV2luZG93cyA5NSBwcm9ibGVtOiBpbiBteQotIiAgICAgICAgICAgICAgIGV4cGVyaWVuY2UsIHdpbjk1J3MgZnRwIGFsd2F5cyBkdW1wZWQgZm91ciBibGFuayBsaW5lcwotIiAgICAgICAgICAgICAgIGF0IHRoZSBlbmQgb2YgdGhlIHRyYW5zZmVyLgotaWYgaGFzKCJ3aW45NSIpICYmIGc6bmV0cndfd2luOTVmdHAKLSBmdW4hIE5ldFJlYWRGaXh1cChtZXRob2QsIGxpbmUxLCBsaW5lMikKLSIgICBjYWxsIERmdW5jKCJOZXRSZWFkRml4dXAobWV0aG9kPCIuYTptZXRob2QuIj4gbGluZTE9Ii5hOmxpbmUxLiIgbGluZTI9Ii5hOmxpbmUyLiIpIikKLSAgIGlmIG1ldGhvZCA9PSAzICAgIiBmdHAgKG5vIDwubmV0cmM+KQotICAgIGxldCBmb3VyYmxhbmtsaW5lcz0gbGluZTIgLSAzCi0gICAgc2lsZW50IGZvdXJibGFua2xpbmVzLiIsIi5saW5lMi4iZy9eXHMqL2QiCi0gICBlbmRpZgotIiAgIGNhbGwgRHJldCgiTmV0UmVhZEZpeHVwIikKLSBlbmRmdW4KLWVuZGlmCi0KLWxldCAmY3BvPSBzOmtlZXBjcG8KLXVubGV0IHM6a2VlcGNwbwotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgTW9kZWxpbmVzOiB7e3sxCi0iIHZpbTp0cz04IGZkbT1tYXJrZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL05ldHJ3U2V0dGluZ3MudmltIGIvcnVudGltZS9wbHVnaW4vTmV0cndTZXR0aW5ncy52aW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlY2RjZDIuLjAwMDAwMDAKLS0tIGEvcnVudGltZS9wbHVnaW4vTmV0cndTZXR0aW5ncy52aW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotIiBOZXRyd1NldHRpbmdzLnZpbTogbWFrZXMgbmV0cncgc2V0dGluZ3Mgc2ltcGxlcgotIiBMYXN0IENoYW5nZToJQXVnIDE2LCAyMDA1Ci0iIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPGRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseSBkb3QgYml6PgotIiBWZXJzaW9uOgkJMwotIiBDb3B5cmlnaHQ6ICAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA1IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiB7e3sxCi0iICAgICAgICAgICAgICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCB0byB1c2UgYW5kIGRpc3RyaWJ1dGUgdGhpcyBjb2RlLAotIiAgICAgICAgICAgICAgIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMgY29weXJpZ2h0Ci0iICAgICAgICAgICAgICAgbm90aWNlIGlzIGNvcGllZCB3aXRoIGl0LiBMaWtlIGFueXRoaW5nIGVsc2UgdGhhdCdzIGZyZWUsCi0iICAgICAgICAgICAgICAgTmV0cndTZXR0aW5ncy52aW0gaXMgcHJvdmlkZWQgKmFzIGlzKiBhbmQgY29tZXMgd2l0aCBubwotIiAgICAgICAgICAgICAgIHdhcnJhbnR5IG9mIGFueSBraW5kLCBlaXRoZXIgZXhwcmVzc2VkIG9yIGltcGxpZWQuIEJ5IHVzaW5nCi0iICAgICAgICAgICAgICAgdGhpcyBwbHVnaW4sIHlvdSBhZ3JlZSB0aGF0IGluIG5vIGV2ZW50IHdpbGwgdGhlIGNvcHlyaWdodAotIiAgICAgICAgICAgICAgIGhvbGRlciBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHJlc3VsdGluZyBmcm9tIHRoZSB1c2UKLSIgICAgICAgICAgICAgICBvZiB0aGlzIHNvZnR3YXJlLgotIgotIiBNYXQgNDoyMyAoV0VCKSBKZXN1cyB3ZW50IGFib3V0IGluIGFsbCBHYWxpbGVlLCB0ZWFjaGluZyBpbiB0aGVpciB7e3sxCi0iICAgICAgICAgICAgICAgIHN5bmFnb2d1ZXMsIHByZWFjaGluZyB0aGUgZ29zcGVsIG9mIHRoZSBraW5nZG9tLCBhbmQgaGVhbGluZwotIiAgICAgICAgICAgICAgICBldmVyeSBkaXNlYXNlIGFuZCBldmVyeSBzaWNrbmVzcyBhbW9uZyB0aGUgcGVvcGxlLgotIiBMb2FkIE9uY2U6IHt7ezEKLWlmIGV4aXN0cygiZzpsb2FkZWRfTmV0cndTZXR0aW5ncyIpIHx8ICZjcAotICBmaW5pc2gKLWVuZGlmCi1sZXQgZzpsb2FkZWRfTmV0cndTZXR0aW5ncyAgPSAidjMiCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIE5ldHJ3U2V0dGluZ3M6IHt7ezEKLWZ1biEgTmV0cndTZXR0aW5ncyNOZXRyd1NldHRpbmdzKCkKLSAgIiB0aGlzIGNhbGwgaXMgaGVyZSBsYXJnZWx5IGp1c3QgdG8gaW5zdXJlIHRoYXQgbmV0cncgaGFzIGJlZW4gbG9hZGVkCi0gIGNhbGwgbmV0cncjTmV0U2F2ZVBvc24oKQotCi0gIGFib3ZlIHdpbmNtZCBzCi0gIGVuZXcKLSAgc2V0bG9jYWwgbm9zd2FwZmlsZSBiaD13aXBlCi0gIHNldCBmdD12aW0KLSAgZmlsZSBOZXRyd1wgU2V0dGluZ3MKLQotICAiIHRoZXNlIHZhcmlhYmxlcyBoYXZlIHRoZSBmb2xsb3dpbmcgZGVmYXVsdCBlZmZlY3RzIHdoZW4gdGhleSBkb24ndAotICAiIGV4aXN0IChpZS4gaGF2ZSBub3QgYmVlbiBzZXQgYnkgdGhlIHVzZXIgaW4gaGlzL2hlciAudmltcmMpCi0gIGlmICFleGlzdHMoImc6bmV0cndfbG9uZ2xpc3QiKQotICAgbGV0IGc6bmV0cndfbG9uZ2xpc3Q9IDAKLSAgIGxldCBnOm5ldHJ3X2xpc3RfY21kPSAic3NoIEhPU1ROQU1FIGxzIC1GTGEiCi0gIGVuZGlmCi0gIGlmICFleGlzdHMoImc6bmV0cndfc2lsZW50IikKLSAgIGxldCBnOm5ldHJ3X3NpbGVudD0gMAotICBlbmRpZgotICBpZiAhZXhpc3RzKCJnOm5ldHJ3X3VzZV9udF9yY3AiKQotICAgbGV0IGc6bmV0cndfdXNlX250X3JjcD0gMAotICBlbmRpZgotICBpZiAhZXhpc3RzKCJnOm5ldHJ3X2Z0cCIpCi0gICBsZXQgZzpuZXRyd19mdHA9IDAKLSAgZW5kaWYKLSAgaWYgIWV4aXN0cygiZzpuZXRyd19pZ25vcmVuZXRyYyIpCi0gICBsZXQgZzpuZXRyd19pZ25vcmVuZXRyYz0gMAotICBlbmRpZgotCi0gIHB1dCA9JysgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJwotICBwdXQgPScrIE5ldHJ3U2V0dGluZ3M6ICAoYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuKScKLSAgcHV0ID0nKyAgUHJlc3MgPyB3aXRoIGN1cnNvciBhdG9wIGFueSBsaW5lIGZvciBoZWxwICAnCi0gIHB1dCA9JysgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJwotICBsZXQgczpuZXRyd19zZXR0aW5nc19zdG9wPSBsaW5lKCIuIikKLQotICBwdXQgPScnCi0gIHB1dCA9JysgTmV0cncgUHJvdG9jb2wgQ29tbWFuZHMnCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19kYXZfY21kICAgICAgICAgICA9ICcuZzpuZXRyd19kYXZfY21kCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19mZXRjaF9jbWQgICAgICAgICA9ICcuZzpuZXRyd19mZXRjaF9jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2Z0cF9jbWQgICAgICAgICAgID0gJy5nOm5ldHJ3X2Z0cF9jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2h0dHBfY21kICAgICAgICAgID0gJy5nOm5ldHJ3X2h0dHBfY21kCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19yY3BfY21kICAgICAgICAgICA9ICcuZzpuZXRyd19yY3BfY21kCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19yc3luY19jbWQgICAgICAgICA9ICcuZzpuZXRyd19yc3luY19jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NjcF9jbWQgICAgICAgICAgID0gJy5nOm5ldHJ3X3NjcF9jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NmdHBfY21kICAgICAgICAgID0gJy5nOm5ldHJ3X3NmdHBfY21kCi0gIGxldCBzOm5ldHJ3X3Byb3RvY29sX3N0b3A9IGxpbmUoIi4iKQotICBwdXQgPSAnJwotCi0gIHB1dCA9JytOZXRydyBUcmFuc2ZlciBDb250cm9sJwotICBwdXQgPSAnbGV0IGc6bmV0cndfY3lnd2luICAgICAgICAgICAgPSAnLmc6bmV0cndfY3lnd2luCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19mdHAgICAgICAgICAgICAgICA9ICcuZzpuZXRyd19mdHAKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2Z0cG1vZGUgICAgICAgICAgID0gJy5nOm5ldHJ3X2Z0cG1vZGUKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2lnbm9yZW5ldHJjICAgICAgID0gJy5nOm5ldHJ3X2lnbm9yZW5ldHJjCi0gIHB1dCA9ICdsZXQgZzpuZXRyd191c2VfbnRfcmNwICAgICAgICA9ICcuZzpuZXRyd191c2VfbnRfcmNwCi0gIHB1dCA9ICdsZXQgZzpuZXRyd193aW45NWZ0cCAgICAgICAgICA9ICcuZzpuZXRyd193aW45NWZ0cAotICBsZXQgczpuZXRyd194ZmVyX3N0b3A9IGxpbmUoIi4iKQotCi0gIHB1dCA9ICcnCi0gIHB1dCA9JysgTmV0cncgQnJvd3NlciBDb250cm9sJwotICBwdXQgPSAnbGV0IGc6bmV0cndfYWx0byAgICAgICAgICAgICAgPSAnLmc6bmV0cndfYWx0bwotICBwdXQgPSAnbGV0IGc6bmV0cndfYWx0diAgICAgICAgICAgICAgPSAnLmc6bmV0cndfYWx0dgotICBwdXQgPSAnbGV0IGc6bmV0cndfZGlyaGlzdG1heCAgICAgICAgPSAnLmc6bmV0cndfZGlyaGlzdG1heAotICBwdXQgPSAnbGV0IGc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QgPSAnLmc6bmV0cndfZnRwX2Jyb3dzZV9yZWplY3QKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2Z0cF9saXN0X2NtZCAgICAgID0gJy5nOm5ldHJ3X2Z0cF9saXN0X2NtZAotICBwdXQgPSAnbGV0IGc6bmV0cndfaGlkZSAgICAgICAgICAgICAgPSAnLmc6bmV0cndfaGlkZQotICBwdXQgPSAnbGV0IGc6bmV0cndfa2VlcGRpciAgICAgICAgICAgPSAnLmc6bmV0cndfa2VlcGRpcgotICBwdXQgPSAnbGV0IGc6bmV0cndfbGlzdF9jbWQgICAgICAgICAgPSAnLmc6bmV0cndfbGlzdF9jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2xpc3RfY21kICAgICAgICAgID0gJy5nOm5ldHJ3X2xpc3RfY21kCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19saXN0X2hpZGUgICAgICAgICA9ICcuZzpuZXRyd19saXN0X2hpZGUKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X2xvY2FsX21rZGlyICAgICAgID0gJy5nOm5ldHJ3X2xvY2FsX21rZGlyCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19sb2NhbF9ybWRpciAgICAgICA9ICcuZzpuZXRyd19sb2NhbF9ybWRpcgotICBwdXQgPSAnbGV0IGc6bmV0cndfbG9uZ2xpc3QgICAgICAgICAgPSAnLmc6bmV0cndfbG9uZ2xpc3QKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X21heGZpbGVuYW1lbGVuICAgID0gJy5nOm5ldHJ3X21heGZpbGVuYW1lbGVuCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19ta2Rpcl9jbWQgICAgICAgICA9ICcuZzpuZXRyd19ta2Rpcl9jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X3JlbmFtZV9jbWQgICAgICAgID0gJy5nOm5ldHJ3X3JlbmFtZV9jbWQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X3JtX2NtZCAgICAgICAgICAgID0gJy5nOm5ldHJ3X3JtX2NtZAotICBwdXQgPSAnbGV0IGc6bmV0cndfcm1kaXJfY21kICAgICAgICAgPSAnLmc6bmV0cndfcm1kaXJfY21kCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19ybWZfY21kICAgICAgICAgICA9ICcuZzpuZXRyd19ybWZfY21kCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19zaWxlbnQgICAgICAgICAgICA9ICcuZzpuZXRyd19zaWxlbnQKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NvcnRfYnkgICAgICAgICAgID0gJy5nOm5ldHJ3X3NvcnRfYnkKLSAgcHV0ID0gJ2xldCBnOm5ldHJ3X3NvcnRfZGlyZWN0aW9uICAgID0gJy5nOm5ldHJ3X3NvcnRfZGlyZWN0aW9uCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19zb3J0X3NlcXVlbmNlICAgICA9ICcuZzpuZXRyd19zb3J0X3NlcXVlbmNlCi0gIHB1dCA9ICdsZXQgZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdCA9ICcuZzpuZXRyd19zc2hfYnJvd3NlX3JlamVjdAotICBwdXQgPSAnbGV0IGc6bmV0cndfdGltZWZtdCAgICAgICAgICAgPSAnLmc6bmV0cndfdGltZWZtdAotICBwdXQgPSAnbGV0IGc6bmV0cndfd2luc2l6ZSAgICAgICAgICAgPSAnLmc6bmV0cndfd2luc2l6ZQotCi0gIHB1dCA9JycKLSAgcHV0ID0nKyBGb3IgaGVscCwgcGxhY2UgY3Vyc29yIG9uIGxpbmUgYW5kIHByZXNzID8nCi0KLSAgMWQKLSAgc2lsZW50ICVzL14rLyIvZQotICByZXMgOTkKLSAgc2lsZW50ICVzLz0gXChbXjAtOV0uKlwpJC89ICdcMScvZQotICBzaWxlbnQgJXMvPSAkLz0gJycvZQotICAxCi0KLSAgc2V0IG5vbW9kCi0KLSAgbWFwIDxidWZmZXI+IDxzaWxlbnQ+ID8gOmNhbGwgTmV0cndTZXR0aW5nSGVscCgpPGNyPgotICBsZXQgdG1wZmlsZT0gdGVtcG5hbWUoKQotICBleGUgJ2F1IEJ1ZldyaXRlQ21kCU5ldHJ3XCBTZXR0aW5ncwlzaWxlbnQgdyEgJy50bXBmaWxlLid8c28gJy50bXBmaWxlLid8Y2FsbCBkZWxldGUoIicudG1wZmlsZS4nIil8c2V0IG5vbW9kJwotZW5kZnVuCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIE5ldHJ3U2V0dGluZ0hlbHA6IHt7ezIKLWZ1biEgTmV0cndTZXR0aW5nSGVscCgpCi0iICBjYWxsIERmdW5jKCJOZXRyd1NldHRpbmdIZWxwKCkiKQotICBsZXQgY3VybGluZSA9IGdldGxpbmUoIi4iKQotICBpZiBjdXJsaW5lID1+ICc9JwotICAgbGV0IHZhcmhlbHAgPSBzdWJzdGl0dXRlKGN1cmxpbmUsJ15ccypsZXQgJywnJywnZScpCi0gICBsZXQgdmFyaGVscCA9IHN1YnN0aXR1dGUodmFyaGVscCwnXHMqPS4qJCcsJycsJ2UnKQotIiAgIGNhbGwgRGVjaG8oInRyeWluZyBoZWxwICIudmFyaGVscCkKLSAgIHRyeQotICAgIGV4ZSAiaGUgIi52YXJoZWxwCi0gICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTE0OS8KLSAgIAllY2hvICIqKipzb3JyeSoqKiBubyBoZWxwIGF2YWlsYWJsZSBmb3IgPCIudmFyaGVscC4iPiIKLSAgIGVuZHRyeQotICBlbHNlaWYgbGluZSgiLiIpIDwgczpuZXRyd19zZXR0aW5nc19zdG9wCi0gICBoZSBuZXRydy1zZXR0aW5ncwotICBlbHNlaWYgbGluZSgiLiIpIDwgczpuZXRyd19wcm90b2NvbF9zdG9wCi0gICBoZSBuZXRydy1leHRlcm5hcHAKLSAgZWxzZWlmIGxpbmUoIi4iKSA8IHM6bmV0cndfeGZlcl9zdG9wCi0gICBoZSBuZXRydy12YXJpYWJsZXMKLSAgZWxzZQotICAgaGUgbmV0cnctYnJvd3NlLXZhcgotICBlbmRpZgotIiAgY2FsbCBEcmV0KCJOZXRyd1NldHRpbmdIZWxwIikKLWVuZGZ1bgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBNb2RlbGluZXM6IHt7ezEKLSIgdmltOnRzPTggZmRtPW1hcmtlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kYS9kYV9ESy5kaWZmIGIvcnVudGltZS9zcGVsbC9kYS9kYV9ESy5kaWZmCmluZGV4IGFmY2I4ZDMuLjU4MzY1MmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZGEvZGFfREsuZGlmZgorKysgYi9ydW50aW1lL3NwZWxsL2RhL2RhX0RLLmRpZmYKQEAgLTEsMTYgKzEsMTQwIEBACiAqKiogZGFfREsub3JpZy5hZmYJU3VuIEF1ZyAxNCAyMDowNDozMSAyMDA1Ci0tLS0gZGFfREsuYWZmCU1vbiBBdWcgMTUgMTQ6MDM6MDYgMjAwNQorLS0tIGRhX0RLLmFmZglUaHUgU2VwIDI5IDIyOjIwOjE1IDIwMDUKICoqKioqKioqKioqKioqKgogKioqIDYsNyAqKioqCi0tLS0gNiwxNiAtLS0tCistLS0gNiwxMyAtLS0tCiAgIAogKyBGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CiArIExPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KICsgVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/wogKyAKLSsgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evwotKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/Ci0rIAogKyBNSURXT1JECSctCiArIAogICAjIEZvcmFuc3RpbGxpbmcgYWYgdS0KKyoqKioqKioqKioqKioqKgorKioqIDYwNiw2MTggKioqKgorLS0tIDYxMiw3MzUgLS0tLQorICAKKysgIyBzb3VuZCBmb2xkaW5nIGZyb20gQXNwZWxsCisrICMgRG9lc24ndCBjb250YWluIGEgY29weXJpZ2h0IG5vdGljZS4KKysgIyB2ZXJzaW9uIDAuMS0yMDAyLjEyLjE1LTMKKysgCisrIFNBTCBBQTwgICAgICAgICAgICAgICAgICDFCisrIFNBTCBBQ1RJT04gICAgICAgICAgICAgICBBS1NKT04KKysgU0FMIEFGPCAgICAgICAgICAgICAgICAgIEFWCisrIFNBTCBBU0lFPCAgICAgICAgICAgICAgICBBU0pFCisrIFNBTCBBICAgICAgICAgICAgICAgICAgICBBCisrIAorKyBTQUwgQkVEU1Q8ICAgICAgICAgICAgICAgQkVTVAorKyBTQUwgQk9SRDwgICAgICAgICAgICAgICAgQk9SCisrIFNBTCBCUllTVDwgICAgICAgICAgICAgICBCUthTVAorKyBTQUwgQlVSRUFVICAgICAgICAgICAgICAgQllSTworKyBTQUwgQiAgICAgICAgICAgICAgICAgICAgQgorKyAKKysgU0FMIENDPCAgICAgICAgICAgICAgICAgIEtTCisrIFNBTCBDSzwgICAgICAgICAgICAgICAgICBLICAKKysgU0FMIENIPCAgICAgICAgICAgICAgICAgIFRKCisrIFNBTCBDSTwgICAgICAgICAgICAgICAgICBTSQorKyBTQUwgQ088ICAgICAgICAgICAgICAgICAgS08KKysgU0FMIENZPCAgICAgICAgICAgICAgICAgIFNZCisrIFNBTCBDPCAgICAgICAgICAgICAgICAgICBTCisrIFNBTCAjQyAgICAgICAgICAgICAgICAgICBDCisrIAorKyBTQUwgRElHXiQgICAgICAgICAgICAgICAgREFKCisrIFNBTCBESUc8ICAgICAgICAgICAgICAgICBESQorKyBTQUwgRCQgICAgICAgICAgICAgICAgICAgXworKyBTQUwgRCAgICAgICAgICAgICAgICAgICAgRAorKyAKKysgU0FMIEVBVVg8ICAgICAgICAgICAgICAgIE8KKysgU0FMIEVBVTwgICAgICAgICAgICAgICAgIE8KKysgU0FMIEVKJDwgICAgICAgICAgICAgICAgIEFKCisrIFNBTCBFVTwgICAgICAgICAgICAgICAgICDYVgorKyBTQUwgRSAgICAgICAgICAgICAgICAgICAgRQorKyAKKysgU0FMIMkgICAgICAgICAgICAgICAgICAgIEUKKysgCisrIFNBTCDIICAgICAgICAgICAgICAgICAgICBFCisrIAorKyBTQUwgRkVEVDwgICAgICAgICAgICAgICAgRkVUCisrIFNBTCBGICAgICAgICAgICAgICAgICAgICBGCisrIAorKyBTQUwgRyAgICAgICAgICAgICAgICAgICAgRworKyAKKysgU0FMIEhKXjwgICAgICAgICAgICAgICAgIEoKKysgU0FMIEjFUkQ8ICAgICAgICAgICAgICAgIEjFUgorKyBTQUwgSMVORDwgICAgICAgICAgICAgICAgSMVOCisrIFNBTCBIICAgICAgICAgICAgICAgICAgICBICisrIAorKyBTQUwgSU9OPCAgICAgICAgICAgICAgICAgSk9OCisrIFNBTCBJTkRePCAgICAgICAgICAgICAgICBJTgorKyBTQUwgSSAgICAgICAgICAgICAgICAgICAgSQorKyAKKysgU0FMIEogICAgICAgICAgICAgICAgICAgIEoKKysgCisrIFNBTCBLICAgICAgICAgICAgICAgICAgICBLCisrIAorKyAjIFN0dW10IEcKKysgU0FMIExJRzwgICAgICAgICAgICAgICAgIExJCisrIFNBTCBMICAgICAgICAgICAgICAgICAgICBMCisrIAorKyBTQUwgTUFORDwgICAgICAgICAgICAgICAgTUFOCisrIFNBTCBNSUdeJCAgICAgICAgICAgICAgICBNQUoKKysgU0FMIE0gICAgICAgICAgICAgICAgICAgIE0KKysgCisrIFNBTCBOICAgICAgICAgICAgICAgICAgICBOCisrIAorKyBTQUwgT1NUICAgICAgICAgICAgICAgICAgxVNUCisrIFNBTCBPICAgICAgICAgICAgICAgICAgICBPCisrIAorKyBTQUwg0yAgICAgICAgICAgICAgICAgICAgTworKyAKKysgU0FMIFBIPCAgICAgICAgICAgICAgICAgIEYKKysgU0FMIFAgICAgICAgICAgICAgICAgICAgIFAKKysgCisrIFNBTCBRPCAgICAgICAgICAgICAgICAgICBLVQorKyAKKysgU0FMIFJFR048ICAgICAgICAgICAgICAgIFJFSk4KKysgU0FMIFJVRzwgICAgICAgICAgICAgICAgIFJVCisrIFNBTCBSWUcgICAgICAgICAgICAgICAgICBS2EcKKysgU0FMIFIgICAgICAgICAgICAgICAgICAgIFIKKysgCisrIFNBTCBTSDwgICAgICAgICAgICAgICAgICBTSgorKyBTQUwgU0lHXiQgICAgICAgICAgICAgICAgU0FKCisrIFNBTCBTS0lORDwgICAgICAgICAgICAgICBTS0lOCisrIFNBTCBTJ1M8JCAgICAgICAgICAgICAgICBTCisrIFNBTCBTICAgICAgICAgICAgICAgICAgICBTCisrIAorKyBTQUwgVElPTiAgICAgICAgICAgICAgICAgU0pPTgorKyBTQUwgVFo8ICAgICAgICAgICAgICAgICAgVFMKKysgU0FMIFQgICAgICAgICAgICAgICAgICAgIFQKKyAgCisrIFNBTCBVICAgICAgICAgICAgICAgICAgICBVCisgIAorKyBTQUwg3DwgICAgICAgICAgICAgICAgICAgWQorICAKKysgU0FMIFYgICAgICAgICAgICAgICAgICAgIFYKKyAgCisrIFNBTCBXPCAgICAgICAgICAgICAgICAgICBWCisgIAorKyBTQUwgWCdTPCAgICAgICAgICAgICAgICAgS1MKKysgU0FMIFg8ICAgICAgICAgICAgICAgICAgIEtTCisgIAorKyBTQUwgWUtLPCAgICAgICAgICAgICAgICAg2EtLCisrIFNBTCBZTkQ8ICAgICAgICAgICAgICAgICDYTkQKKysgU0FMIFkgICAgICAgICAgICAgICAgICAgIFkKKyAgCisrIFNBTCBaJ1M8ICAgICAgICAgICAgICAgICBTCisrIFNBTCBaPCAgICAgICAgICAgICAgICAgICBTCisrIFNBTCAjWiAgICAgICAgICAgICAgICAgICBaCisgIAorKyBTQUwgxiAgICAgICAgICAgICAgICAgICAgxgorICAKKysgU0FMIMQ8ICAgICAgICAgICAgICAgICAgIMYKKyAgCisrICMgZWtzLiBIYW4gbPh2IGVuIHR1ciAobPhiKSAKKysgU0FMINhCPCAgICAgICAgICAgICAgICAgINhWCisrIFNBTCDYICAgICAgICAgICAgICAgICAgICDYCisgIAorKyBTQUwg1jwgICAgICAgICAgICAgICAgICAg2AorICAKKysgU0FMIMUgICAgICAgICAgICAgICAgICAgIMUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZWwvZWxfR1IuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZWwvZWxfR1IuZGlmZgppbmRleCBlNjlkZTI5Li40ZDc0ZWM2IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VsL2VsX0dSLmRpZmYKKysrIGIvcnVudGltZS9zcGVsbC9lbC9lbF9HUi5kaWZmCkBAIC0wLDAgKzEsMjA0IEBACisqKiogZWxfR1Iub3JpZy5hZmYJVHVlIEF1ZyAxNiAxODowMjoyNyAyMDA1CistLS0gZWxfR1IuYWZmCVRodSBTZXAgMjkgMjI6Mjg6MTIgMjAwNQorKioqKioqKioqKioqKioqCisqKiogNTcyLDU3NCAqKioqCisgIFNGWCBKIPkgICAgIO/t9OHyICAgICAgLiAgICAgICAgICAjIOTd7fkgPiDk3e3v7fTh8gorISAJIAorICBTRlggSyBZIDQgCistLS0gNTcyLDU3NCAtLS0tCisgIFNGWCBKIPkgICAgIO/t9OHyICAgICAgLiAgICAgICAgICAjIOTd7fkgPiDk3e3v7fTh8gorISAgICAgICAgICAKKyAgU0ZYIEsgWSA0IAorKioqKioqKioqKioqKioqCisqKiogNjE5LDYyMSAqKioqCisgIAorISAJIAorICBTRlggUiBZIDQKKy0tLSA2MTksNjIxIC0tLS0KKyAgCishICAgICAgICAgIAorICBTRlggUiBZIDQKKyoqKioqKioqKioqKioqKgorKioqIDYyNiw2MjggKioqKgorICAKKyEgCSAKKyAgU0ZYIFMgWSA0CistLS0gNjI2LDYyOCAtLS0tCisgIAorISAgICAgICAgICAKKyAgU0ZYIFMgWSA0CisqKioqKioqKioqKioqKioKKyoqKiA2NDYsNjQ4ICoqKioKKyAgCishIAkgCisgIFNGWCBWIFkgNQorLS0tIDY0Niw2NDggLS0tLQorICAKKyEgICAgICAgICAgCisgIFNGWCBWIFkgNQorKioqKioqKioqKioqKioqCisqKiogNjg2LDY4OCAqKioqCisgIAorISAJIAorICBTRlggYiBZIDQKKy0tLSA2ODYsNjg4IC0tLS0KKyAgCishICAgICAgICAgIAorICBTRlggYiBZIDQKKyoqKioqKioqKioqKioqKgorKioqIDc1OCAqKioqCistLS0gNzU4LDkxMSAtLS0tCisgIFNGWCBuIO/yICAgICAgICAg7yAgICAgICAgICAgLiAgICAgICAgIyDk8fzs7/IgPiDk8fzs7worKyAKKysgIyBzb3VuZCBmb2xkaW5nIGZyb20gQXNwZWxsCisrICMgdmVyc2lvbiAwLjAgMDMvMTQvMjAwMgorKyAjIDAzLzE0LzIwMDIgRXZyaXBpZGlzIFBhcGFrb3N0YXMgPGV2cmlzQHNvdXJjZS5ncj4KKysgCisrICMgYWxsIHRoZSBmb2xsb3dpbmcgZG91YmxlIGxldHRlcnMgYXJlIHByb25vdW5jZWQgYXMgb25lCisrIFNBTCDCwi0gICAgICAgICAgICAgICAgICAgICAgICBfCisrIFNBTCDCICAgICAgICAgICAgICAgICAgICAgICAgICDCCisrIFNBTCDDwyAgICAgICAgICAgICAgICAgICAgICAgICDDygorKyBTQUwgwyAgICAgICAgICAgICAgICAgICAgICAgICAgwworKyBTQUwgxMQtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgxCAgICAgICAgICAgICAgICAgICAgICAgICAgxAorKyBTQUwgxsYtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgxiAgICAgICAgICAgICAgICAgICAgICAgICAgxgorKyBTQUwgyMgtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgyCAgICAgICAgICAgICAgICAgICAgICAgICAgyAorKyBTQUwgysotICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgytMgICAgICAgICAgICAgICAgICAgICAgICAgzgorKyBTQUwgyiAgICAgICAgICAgICAgICAgICAgICAgICAgygorKyBTQUwgy8stICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgyyAgICAgICAgICAgICAgICAgICAgICAgICAgyworKyBTQUwgzMwtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgzCAgICAgICAgICAgICAgICAgICAgICAgICAgzAorKyBTQUwgzc0tICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwgzSAgICAgICAgICAgICAgICAgICAgICAgICAgzQorKyBTQUwg0NAtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwg0NMgICAgICAgICAgICAgICAgICAgICAgICAg2AorKyBTQUwg0CAgICAgICAgICAgICAgICAgICAgICAgICAg0AorKyBTQUwg0dEtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwg0SAgICAgICAgICAgICAgICAgICAgICAgICAg0QorKyBTQUwg09MtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwg0yAgICAgICAgICAgICAgICAgICAgICAgICAg0worKyBTQUwg1NQtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwg1CAgICAgICAgICAgICAgICAgICAgICAgICAg1AorKyBTQUwg1tYtICAgICAgICAgICAgICAgICAgICAgICAgXworKyBTQUwg1iAgICAgICAgICAgICAgICAgICAgICAgICAg1gorKyBTQUwg19ctICAgICAgICAgICAgICAgICAgICAgICAgXyAKKysgU0FMINcgICAgICAgICAgICAgICAgICAgICAgICAgINcKKysgCisrICMgYWxwaGEgKyAoeXBzaWxvbiBvciB5cHNpbG9uIHRvbm9zKSBiZWNvbWVzIGFscGhhICsgYmV0YQorKyBTQUwgwb48ICAgICAgICAgICAgICAgICAgICAgICAgwdUKKysgU0FMIMHVzdQtLSAgICAgICAgICAgICAgICAgICAgIMHCCisrIFNBTCDB1cPKLS0gICAgICAgICAgICAgICAgICAgICDBwgorKyBTQUwgwdXUxi0tICAgICAgICAgICAgICAgICAgICAgwcIKKysgU0FMIMHVKMPExsvMzdEpLSAgICAgICAgICAgICAgIMHCCisrIFNBTCDB1cIgICAgICAgICAgICAgICAgICAgICAgICDBwgorKyBTQUwgwdUowcXHyc/Z1ba4ubq8v74pLSAgICAgICAgwcIKKysgCisrICMgYWxwaGEgKyAoeXBzaWxvbiBvciB5cHNpbG9uIHRvbm9zKSBiZWNvbWVzIGFscGhhICsgcGhpCisrIFNBTCDB1dYgICAgICAgICAgICAgICAgICAgICAgICDB1gorKyBTQUwgwdXU0y0tICAgICAgICAgICAgICAgICAgICAgwdYKKysgU0FMIMHVKMjK0NPU1yktICAgICAgICAgICAgICAgIMHWCisrIFNBTCDB1c4tICAgICAgICAgICAgICAgICAgICAgICDB1gorKyBTQUwgwdXYLSAgICAgICAgICAgICAgICAgICAgICAgwdYKKysgCisrICMgYWxwaGEgKyAoaW90YSBvciBpb3RhIHRvbm9zKSBiZWNvbWVzIGVwc2lsb24KKysgU0FMIMEoybopICAgICAgICAgICAgICAgICAgICAgIMUKKysgCisrICMgYWxwaGEgaXMgYWxwaGEKKysgU0FMIMEgICAgICAgICAgICAgICAgICAgICAgICAgIMEKKysgCisrICMgZXBzaWxvbiArICh5cHNpbG9uIG9yIHlwc2lsb24gdG9ub3MpIGJlY29tZXMgZXBzaWxvbiArIHZpdGEKKysgU0FMIMW+PCAgICAgICAgICAgICAgICAgICAgICAgINUKKysgU0FMIMXVzdQtLSAgICAgICAgICAgICAgICAgICAgIMXCCisrIFNBTCDF1cPKLS0gICAgICAgICAgICAgICAgICAgICDFwgorKyBTQUwgxdXUxi0tICAgICAgICAgICAgICAgICAgICAgxcIKKysgU0FMIMXVKMPExsvMzdEpLSAgICAgICAgICAgICAgIMXCCisrIFNBTCDF1cIgICAgICAgICAgICAgICAgICAgICAgICDFwgorKyBTQUwgxdUowcXHyc/Z1ba4ubq8v74pLSAgICAgICAgxcIKKysgCisrICMgZXBzaWxvbiArICh5cHNpbG9uIG9yIHlwc2lsb24gdG9ub3MpIGJlY29tZXMgZXBzaWxvbiArIHBoaQorKyBTQUwgxdXWICAgICAgICAgICAgICAgICAgICAgICAgxdYKKysgU0FMIMXV1NMtLSAgICAgICAgICAgICAgICAgICAgIMXWICAgICAgICMgR1VFU1NFRCEKKysgU0FMIMXVKMjK0NPU1yktICAgICAgICAgICAgICAgIMXWCisrIFNBTCDF1c4tICAgICAgICAgICAgICAgICAgICAgICDF1gorKyBTQUwgxdXYLSAgICAgICAgICAgICAgICAgICAgICAgxdYKKysgCisrICMgZXBzaWxvbiArIChpb3RhIG9yIGlvdGEgdG9ub3MpIGJlY29tZXMgaW90YQorKyBTQUwgxSjJuikgICAgICAgICAgICAgICAgICAgICAgyQorKyAKKysgIyBlcHNpbG9uIGlzIGVwc2lsb24KKysgU0FMIMUgICAgICAgICAgICAgICAgICAgICAgICAgIMUKKysgCisrIAorKyAjIG9taWtyb24gKyAoaW90YSBvciBpb3RhIHRvbm9zKSBiZWNvbWVzIGlvdGEKKysgU0FMIM8oybopICAgICAgICAgICAgICAgICAgICAgIMkKKysgCisrICMgb21pa3JvbiArICh5cHNpbG9uIG9yIHlwc2lsb24gdG9ub3MpIGJlY29tZXMgdQorKyBTQUwgzyjVvikgICAgICAgICAgICAgICAgICAgICAgz9UKKysgCisrICMgb21pa3JvbiBpcyBvbWlrcm9uCisrIFNBTCDPICAgICAgICAgICAgICAgICAgICAgICAgICDPCisrIAorKyAjIHdtZWdhIGJlY29tZXMgb21pa3JvbgorKyBTQUwg2SAgICAgICAgICAgICAgICAgICAgICAgICAgzworKyAKKysgIyBpdGEgYmVjb21lcyBpb3RhCisrIFNBTCDHICAgICAgICAgICAgICAgICAgICAgICAgICDJCisrIAorKyAjIHlwc2lsb24gKyBpb3RhIGJlY29tZXMgaW90YQorKyBTQUwg1ckgICAgICAgICAgICAgICAgICAgICAgICAgyQorKyAKKysgIyB5cHNpbG9uIGJlY29tZXMgaW90YQorKyBTQUwg1SAgICAgICAgICAgICAgICAgICAgICAgICAgyQorKyAKKysgIyBpb3RhIGlzIGlvdGEKKysgU0FMIMkgICAgICAgICAgICAgICAgICAgICAgICAgIMkKKysgCisrICMgZG91YmxlIGtzaSBiZWNvbWVzIGtzaSAKKysgU0FMIM7OLSAgICAgICAgICAgICAgICAgICAgICAgICBfCisrIAorKyAjIGtzaSArIHNpZ21hIGJlY29tZXMga3NpIAorKyBTQUwgztMgICAgICAgICAgICAgICAgICAgICAgICAgzgorKyAKKysgIyBrc2kgaXMga3NpCisrIFNBTCDOICAgICAgICAgICAgICAgICAgICAgICAgICDOCisrIAorKyAjIHBzaSArIHBzaSBiZWNvbWVzIHBzaQorKyBTQUwg2NgtICAgICAgICAgICAgICAgICAgICAgICAgXworKyAKKysgIyBwc2kgKyBzaWdtYSBiZWNvbWVzIHBzaQorKyBTQUwg2NMgICAgICAgICAgICAgICAgICAgICAgICAg2AorKyAKKysgIyBwc2kgaXMgcHNpCisrIFNBTCDYICAgICAgICAgICAgICAgICAgICAgICAgICDYCisrIAorKyAKKysgIyBpb3RhIGRpYWxpdGlrYSBiZWNvbWVzIGlvdGEgCisrIFNBTCDaICAgICAgICAgICAgICAgICAgICAgICAgICDJCisrIAorKyAjIHlwc2lsb24gZGlhbGl0aWthIGJlY29tZXMgSQorKyBTQUwg2yAgICAgICAgICAgICAgICAgICAgICAgICAgyQorKyAKKysgIyBhbHBoYSB0b25vcyBiZWNvbWVzIGFscGhhCisrIFNBTCC2ICAgICAgICAgICAgICAgICAgICAgICAgICDBCisrIAorKyAjIG9taWtyb24gdG9ub3MgYmVjb21lcyBvbWlrcm9uCisrIFNBTCC8ICAgICAgICAgICAgICAgICAgICAgICAgICDPCisrIAorKyAjIGlvdGEgdG9ub3MgYmVjb21lcyBpb3RhCisrIFNBTCC6ICAgICAgICAgICAgICAgICAgICAgICAgICDJCisrIAorKyAjIGVwc2lsb24gdG9ub3MgYmVjb21lcyBlcHNpbG9uCisrIFNBTCC4ICAgICAgICAgICAgICAgICAgICAgICAgICDFCisrIAorKyAjIHlwc2lsb24gdG9ub3MgYmVjb21lcyB5cHNpbG9uCisrIFNBTCC+ICAgICAgICAgICAgICAgICAgICAgICAgICDVCisrIAorKyAjIHdtZWdhIHRvbm9zIGJlY29tZXMgb21pa3JvbgorKyBTQUwgvyAgICAgICAgICAgICAgICAgICAgICAgICAgzworKyAKKysgIyBpdGEgdG9ub3MgYmVjb21lcyBpb3RhCisrIFNBTCC5ICAgICAgICAgICAgICAgICAgICAgICAgICDJCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2ZyL2ZyX0ZSLmRpZmYgYi9ydW50aW1lL3NwZWxsL2ZyL2ZyX0ZSLmRpZmYKaW5kZXggMGUzZDUxNi4uNGE5Y2Y4ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9mci9mcl9GUi5kaWZmCisrKyBiL3J1bnRpbWUvc3BlbGwvZnIvZnJfRlIuZGlmZgpAQCAtMSwxNiArMSwxMyBAQAogKioqIGZyX0ZSLm9yaWcuYWZmCVN1biBKdWwgIDMgMTk6MzQ6MjAgMjAwNQotLS0tIGZyX0ZSLmFmZglTdW4gSnVsIDMxIDIyOjE3OjUzIDIwMDUKKy0tLSBmcl9GUi5hZmYJRnJpIFNlcCAzMCAxMjo1ODoyOSAyMDA1CiAqKioqKioqKioqKioqKioKICoqKiAzLDQgKioqKgotLS0tIDMsMjQgLS0tLQorLS0tIDMsMjEgLS0tLQogICAKICsgRk9MICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/wogKyBMT1cgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CiArIFVQUCAgwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KICsgCi0rIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KLSsgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwotKyAKICsgTUlEV09SRAknCiArIAogKyBNQVAgOQpAQCAtMjYsMTAgKzIzLDEwMCBAQAogKyAKICAgUEZYIEEgWSAxMAogKioqKioqKioqKioqKioqCi0qKiogNjkwLDY5NCAqKioqCi0gIFNGWCBxICAgc3NhaXQgICAgICByYWllbnQgICAgIHNzYWl0Ci0tIAotLSAKLS0gCi0tIAotLS0tIDcxMCAtLS0tCisqKiogNjkyLDY5NCAqKioqCisgIAorISAKKyEgCistLS0gNzA5LDgwMCAtLS0tCisgIAorISAjIHNvdW5kIGZvbGRpbmcgZnJvbSBBc3BlbGwKKyEgIyAgIENvcHlyaWdodCAoQykgMjAwMCBS6W1pIFZhbmljYXQsIGRpc3RyaWJ1dGVkIHVuZGVyIExHUEwKKyEgIyB2ZXJzaW9uIGZyYW5jYWlzIDAuMDAwMDAwMDAxCishIAorISAjRU1NRSB+IEFNRQorISBTQUwgQUlYJCAgICAgICAgICAgICAgIEUKKyEgU0FMIEFJICAgICAgICAgICAgICAgICBFCishIFNBTCBBTihBRVVJTyktICAgICAgICAgQU0KKyEgU0FMIEFOICAgICAgICAgICAgICAgICBBCishIFNBTCBBTU0gICAgICAgICAgICAgICAgQU0KKyEgU0FMIEFNKEFFVUlPKS0gICAgICAgICBBTQorISBTQUwgQU0gICAgICAgICAgICAgICAgIEEKKyEgU0FMIEFVRCQgICAgICAgICAgICAgICBPCishIFNBTCBBVVgkCQkgICBPCishIFNBTCBBVSAgICAgICAgICAgICAgICAgTworISBTQUwgQSAgICAgICAgICAgICAgICAgIEEKKyEgU0FMIMIgICAgICAgICAgICAgICAgICBBCishIFNBTCDAICAgICAgICAgICAgICAgICAgQQorISBTQUwgQkIgICAgICAgICAgICAgICAgIFAKKyEgU0FMIEIgICAgICAgICAgICAgICAgICBQCishIFNBTCDHICAgICAgICAgICAgICAgICAgUworISBTQUwgQyhFSSktICAgICAgICAgICAgIFMKKyEgU0FMIENVKEVJKS0gICAgICAgICAgICBLCishIFNBTCBDQyhFSSktICAgICAgICAgICAgWAorISBTQUwgQ0MgICAgICAgICAgICAgICAgIEsKKyEgU0FMIENIICAgICAgICAgICAgICAgICBDSAorISBTQUwgQyAgICAgICAgICAgICAgICAgIEsKKyEgU0FMIEREICAgICAgICAgICAgICAgICBUCishIFNBTCBEICAgICAgICAgICAgICAgICAgVAorISBTQUwgRU1NRU5UQUwgICAgICAgICAgIEVNQVRBTAorISBTQUwgRU1NRU5USEFMICAgICAgICAgIEVNQVRBTAorISBTQUwgRU0oQUVJT1UpLSAgICAgICAgIEVNCishIFNBTCBFTSAgICAgICAgICAgICAgICAgQQorISBTQUwgRVQkICAgICAgICAgICAgICAgIEUKKyEgU0FMIEVVWCQgICAgICAgICAgICAgICBFCishIFNBTCBFVSAgICAgICAgICAgICAgICAgRQorISBTQUwgRU4oQUVVSU8pLSAgICAgICAgIEVNCishIFNBTCBFTiAgICAgICAgICAgICAgICAgQQorISBTQUwgRVIkICAgICAgICAgICAgICAgIEUKKyEgU0FMIEVPICAgICAgICAgICAgICAgICBPCishIFNBTCBFQVVYJAkJICAgTworISBTQUwgRUFVICAgICAgICAgICAgICAgIE8KKyEgU0FMIEUgICAgICAgICAgICAgICAgICBFCishIFNBTCDIICAgICAgICAgICAgICAgICAgRQorISBTQUwgySAgICAgICAgICAgICAgICAgIEUKKyEgU0FMIMogICAgICAgICAgICAgICAgICBFCishIFNBTCBGICAgICAgICAgICAgICAgICAgRgorISBTQUwgRyhFSVkpLSAgICAgICAgICAgIEoKKyEgU0FMIEdVKEVJWSktICAgICAgICAgICBHCishIFNBTCBHICAgICAgICAgICAgICAgICAgRworISBTQUwgSCAgICAgICAgICAgICAgICAgIF8KKyEgU0FMIEkgICAgICAgICAgICAgICAgICBJCishIFNBTCDOICAgICAgICAgICAgICAgICAgSQorISBTQUwgSiAgICAgICAgICAgICAgICAgIEoKKyEgU0FMIEtTICAgICAgICAgICAgICAgICBYCishIFNBTCBLICAgICAgICAgICAgICAgICAgSworISBTQUwgTEwgICAgICAgICAgICAgICAgIEwKKyEgU0FMIEwgICAgICAgICAgICAgICAgICBMCishIFNBTCBNTSAgICAgICAgICAgICAgICAgTQorISBTQUwgTSAgICAgICAgICAgICAgICAgIE0KKyEgU0FMIE5OICAgICAgICAgICAgICAgICBNCishIFNBTCBOICAgICAgICAgICAgICAgICAgTQorISBTQUwgT0VVICAgICAgICAgICAgICAgIEUKKyEgU0FMIE9VWCQgICAgICAgICAgICAgICBVCishIFNBTCBPVSAgICAgICAgICAgICAgICAgVQorISBTQUwgT9kgICAgICAgICAgICAgICAgIFUKKyEgU0FMIE8gICAgICAgICAgICAgICAgICBPCishIFNBTCDUICAgICAgICAgICAgICAgICAgTworISBTQUwgUFAgICAgICAgICAgICAgICAgIFAKKyEgU0FMIFBIICAgICAgICAgICAgICAgICBGCishIFNBTCBQICAgICAgICAgICAgICAgICAgUAorISBTQUwgUVUgICAgICAgICAgICAgICAgIEsKKyEgU0FMIFEgICAgICAgICAgICAgICAgICBLCishIFNBTCBSSVgkICAgICAgICAgICAgICAgUkkKKyEgU0FMIFJSICAgICAgICAgICAgICAgICBSCishIFNBTCBSICAgICAgICAgICAgICAgICAgUgorISBTQUwgUyQgICAgICAgICAgICAgICAgIF8KKyEgU0FMIFNTICAgICAgICAgICAgICAgICBTCishIFNBTCBTICAgICAgICAgICAgICAgICAgUworISBTQUwgVFQgICAgICAgICAgICAgICAgIFQKKyEgU0FMIFQgICAgICAgICAgICAgICAgICBUCishIFNBTCBVICAgICAgICAgICAgICAgICAgVQorISBTQUwg2SAgICAgICAgICAgICAgICAgIFUKKyEgU0FMINsgICAgICAgICAgICAgICAgICBVCishIFNBTCBWICAgICAgICAgICAgICAgICAgVgorISBTQUwgVyAgICAgICAgICAgICAgICAgIFcKKyEgU0FMIFggICAgICAgICAgICAgICAgICBYCishIFNBTCBZKEFFT1UpLSAgICAgICAgICAgSUwKKyEgU0FMIFkgICAgICAgICAgICAgICAgICBJCishIFNBTCBaWiAgICAgICAgICAgICAgICAgUworISBTQUwgWiAgICAgICAgICAgICAgICAgIFMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZ2EvZ2FfSUUuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZ2EvZ2FfSUUuZGlmZgppbmRleCA5YjcyODUzLi4zZTMwMWI3IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYKKysrIGIvcnVudGltZS9zcGVsbC9nYS9nYV9JRS5kaWZmCkBAIC0xLDE2ICsxLDEzIEBACiAqKiogZ2FfSUUub3JpZy5hZmYJV2VkIEF1ZyAzMSAxNjo0ODo0OSAyMDA1Ci0tLS0gZ2FfSUUuYWZmCVdlZCBBdWcgMzEgMTY6NDk6NDMgMjAwNQorLS0tIGdhX0lFLmFmZglGcmkgU2VwIDMwIDEzOjAxOjM4IDIwMDUKICoqKioqKioqKioqKioqKgogKioqIDM3LDM4ICoqKioKLS0tLSAzNyw1OCAtLS0tCistLS0gMzcsNTUgLS0tLQogICAKICsgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/wogKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CiArIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KICsgCi0rIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KLSsgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwotKyAKICsgTUlEV09SRAknLQogKyAKICsgTUFQIDkKQEAgLTI1LDMgKzIyLDI4NyBAQAogKyBNQVAgc98KICsgCiAgIFBGWCBTIFkgMTgKKyoqKioqKioqKioqKioqKgorKioqIDU1NiAqKioqCistLS0gNTczLDg1MyAtLS0tCisgIAorKyAjIHNvdW5kc2xpa2UgbWFwcGluZyBmcm9tIEFzcGVsbAorKyAjIEFzcGVsbCBwaG9uZXRpY3MgZm9yIElyaXNoLCBieSBLZXZpbiBTY2FubmVsbCA8c2Nhbm5lbGxAc2x1LmVkdT4KKysgIyBDb3B5cmlnaHQgMjAwMiwgMjAwMyBLZXZpbiBQLiBTY2FubmVsbCwgZGlzdHJpYnV0ZWQgdW5kZXIgR05VIEdQTAorKyAjIHZlcnNpb24gMi4wCisrIAorKyBTQUwgZm9sbG93dXAgMCAgICAgICAgICAgICAgICAgICAgIyBlbHNlIGJyZWFrcyBRVV4sIGUuZy4KKysgU0FMIGNvbGxhcHNlX3Jlc3VsdCAxICAgICAgICAgICAgICMgbm8gZG91YmxlIGxldHRlcnMgaW4gcmVzdWx0aW5nIHN0cmluZ3MKKysgCisrIFNBTCBBTkJIQU5OLS0tLS0gICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGFuYmhhbm5hPyBvbmx5LCBzZWUgTkJILS0KKysgU0FMIEFOQkhBSU4tLS0tLSAgICAgICAgICpOKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgYW5iaGFpbm5lPyBvbmx5LCBzZWUgTkJILS0KKysgU0FMIEFFUkdBLS0gICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIHNlZSBSRywgYWVyZ2Egb25seQorKyBTQUwgQU9SRy0gICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgc2VlIFJHLCBbbXNdYW9yZyosIGV0Yy4KKysgU0FMIEFFSUxHLSAgICAgICAgICAgICAgICpMICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIEdhZWlsZ2UqIG9ubHksIHNlZSBMRyAKKysgU0FMIEFJTEJILS0gICAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgW2Jjc11haWxiaCogb25seSwgc2VlIExCSC0tCisrIFNBTCBBTEJIwUQtLS0tICAgICAgICAgICAqTCAgICAgICAjIGdhbGJo4WQgb25seSwgbmV4dCBmZXcgYXJlIGV4Y2VwdGlvbnMgdG8gQUxCSAorKyBTQUwgQUxCSMFJRC0tLS0tICAgICAgICAgKkwgICAgICAgIyBnYWxiaOFpZCBvbmx5IChjb2lubmVhbGJo4Wlk7XMsIGV0Yy4gYjQpCisrIFNBTCBBTEJIUi0tLSAgICAgICAgICAgICAqTCAgICAgICAjIHBvYmFsYmhyZWl0aCwgZ2FsYmhydWl0aCwgZXRjLiBleGNlcHQuIHRvIG5leHQKKysgU0FMIEFMQkgtLSAgICAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbAorKyBTQUwgQVJCSMFELS0tLSAgICAgICAgICAgKlIgICAgICAgIyBt83RhcmJo4WQgb25seSwgZXhjZXB0aW9uIHRvIEFSQkggZXBlbnRoLgorKyBTQUwgQVJCSMFJRC0tLS0tICAgICAgICAgKlIgICAgICAgIyBt83RhcmJo4WlkIG9ubHksICAgIiAgICAgICAiICAgIiAgICAiIAorKyBTQUwgQVJCSFVJTC0tLS0tICAgICAgICAgKlIgICAgICAgIyBlcGVudGguIGV4Y2VwdGlvbiwgZ2FyYmh1aWxsZSBvbmx5LCBjdWFyYmgqIGI0CisrIFNBTCBBUkJIVUEtLS0tICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aC4gZXhjZXB0aW9uLCBlYWRhcmJodWFzKiBvbmx5CisrIFNBTCBBUkJISU4tLS0tICAgICAgICAgICAqUiogICAgICAjIGV4Y2VwdGlvbiB0byBuZXh0LCBtYXJiaGludGlubiogb25seQorKyBTQUwgQVJCSChFSSktLS0gICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiB0byBuZXh0LCAqdGFyYmhlYWxhY2gsIGV0Yy4KKysgU0FMIEFSQkgtLSAgICAgICAgICAgICAgICpSKiAgICAgICMgZXBlbnRoZXRpYywgZ2FyYmgsIGRlYXJiaCwgZXRjLiAtIFtJVV1BUkJIIGI0CisrIFNBTCBBVEhGSCjBydNBRUlPVSktLS0gICAqSCAgICAgICAjIGF0aGZoaWxsLHVhdGhmaGVpZGhtZWFjaCxldGMuLWV4Y2VwdGlvbiB0byBuZXh0CisrIFNBTCBBVEgoQkNERkdMTU5QUlNUKS0gICAqICAgICAgICAjIGF0aGxhcywgbWlvbmF0aHL6LCBldGMuIC0gZXhjZXB0aW9uIHRvIFRILT5ICisrIFNBTCBBREggICAgICAgICAgICAgICAgICAqICAgICAgICAjIGJsYWRobSwgZmVhZGhhaW4sIHRhZGhhbGwsIGFkaG1hZCwgLWFkaCQsIGV0Yy4KKysgU0FMIEFHSEktLS0gICAgICAgICAgICAgICogICAgICAgICMgZXhjZXB0aW9uIHRvIEFHSCwgY29ycmFnaGlvYiBvbmx5CisrIFNBTCBBR0hMT0lOLS0tLS0tICAgICAgICAqICAgICAgICAjICAgIiAgICAgICAiICAiLCBwbGVpY3NlYWdobC0gb25seSAobm90IGFnaGxvaXQpCisrIFNBTCBBR0ggICAgICAgICAgICAgICAgICAqICAgICAgICAjIHNsYWdoZOFuLCB0cmVhZ2hkLCBzYWdoYXMsIGV0Yy4KKysgU0FMIEFPTUgoRkxOU1QpLS0tICAgICAgICogICAgICAgICMgZmFvbWhbZnRdLSxjYW9taG4qLG5hb21oKiBvbmx5LCBPTUggZXhjZXB0aW9uCisrIFNBTCBBICAgICAgICAgICAgICAgICAgICAqCisrIFNBTCDBSVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBzZWUgUkcsIHThaXJnKiwgZXRjLgorKyBTQUwgwURIVS0tLSAgICAgICAgICAgICAgKiAgICAgICAgIyBw4WRodWlsbGUgb25seSwgZXhjZXB0aW9uIHRvIG5leHQKKysgU0FMIMFESCAgICAgICAgICAgICAgICAgICogICAgICAgICMg4WRo+mlsLCAt4WRoJCBvbmx5CisrIFNBTCDBVEhGSC0tICAgICAgICAgICAgICAqSCAgICAgICAjIHThdGhmaOlpdGhsZWFubiwgZ27hdGhmaC0gb25seSBleGNlcHRpb24gdG8gbmV4dAorKyBTQUwgwVRIKEJDREZHTE1OUFJTVCktICAgKiAgICAgICAgIyBm4XRoc2PpYWwsIGdu4XRoKiwgYmzhdGhmaGxlYXNjLCBldGMuCisrIFNBTCDBICAgICAgICAgICAgICAgICAgICAqCisrIFNBTCBCQU5CSF4kICAgICAgICAgICAgICBCKk4qViAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOQkgtLSwgYmFuYmgsIG5vdCAtYXL6bgorKyBTQUwgQkhBTkJIXiQgICAgICAgICAgICAgVipOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0KKysgU0FMIEJBSU5CSF4kICAgICAgICAgICAgIEIqTipWICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIE5CSC0tLCBiYWluYmggb25seQorKyBTQUwgQkhBSU5CSF4kICAgICAgICAgICAgVipOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0KKysgU0FMIEJIICAgICAgICAgICAgICAgICAgIFYgICAgICAgICMgaW5jbHVkZXMgYmgkLCBlY2xpcHNpcyBvZiBGIHZpYSBjb2xsYXBzaW5nCisrIFNBTCBCICAgICAgICAgICAgICAgICAgICBCICAgICAgICAjIG5vdGUgZWNsaXBzaXMgb2YgUCB2aWEgY29sbGFwc2luZworKyBTQUwgQ0jJQURGQc0tLSQgICAgICAgICAgSypUViAgICAgIyBleGNlcHRpb24gdG8gRkHNJCwgKGJy6WFnfGRvfG3tKQorKyBTQUwgQ0hFQVJDSC0tICAgICAgICAgICAgSypSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBjaGVhcmNoYWlsbCBvbmx5CisrIFNBTCBDRUFSQ0gtLSAgICAgICAgICAgICBLKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGc/Y2VhcmNoYWlsbCBvbmx5CisrIFNBTCBDSE9ORiAgICAgICAgICAgICAgICBLKk4qViAgICAjIGVwZW50aGV0aWMgdm93ZWwsbm8gZGFzaD0+aGFuZGxlcyBGQUk/REgkZXhjZXB0cworKyBTQUwgQ09ORiAgICAgICAgICAgICAgICAgSypOKlYgICAgIyAgICAgIiAgICAgICAgIiAgICAiICAgIiAgICAgIiAgICAgICAiICAgICAgICIKKysgU0FMIENBTkJILS0gICAgICAgICAgICAgIEsqTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIE5CSC0tLCBnP2NhbmJo4XMqIG9ubHkKKysgU0FMIENIQU5CSC0tICAgICAgICAgICAgIEsqTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIE5CSC0tLCBjaGFuYmjhcyogb25seQorKyBTQUwgQ09MQkhBLS0tICAgICAgICAgICAgSypMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTEJILS0sIGc/Y29sYmhh7T8gb25seQorKyBTQUwgQ0hPTEJIQS0tLSAgICAgICAgICAgSypMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTEJILS0sIGNob2xiaGHtPyBvbmx5CisrIFNBTCBDVVJGICAgICAgICAgICAgICAgICBLKlJWICAgICAjIGV4Y2VwdGlvbiB0byBGwSQsIGc/Y3VyZuEobm5hKSBvbmx5CisrIFNBTCBDSFVSRiAgICAgICAgICAgICAgICBLKlJWICAgICAjIGV4Y2VwdGlvbiB0byBGwSQsIGNodXJm4ShubmEpIG9ubHkKKysgU0FMIENIICAgICAgICAgICAgICAgICAgIEsgICAgICAgICMgT0sKKysgU0FMIEMgICAgICAgICAgICAgICAgICAgIEsKKysgU0FMIERIT1JDSC0tICAgICAgICAgICAgIEsqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgZG9yY2hhIHJvb3Qgb25seQorKyBTQUwgRE9SQ0gtLSAgICAgICAgICAgICAgVCpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBkb3JjaGEgcm9vdCBvbmx5CisrIFNBTCBESEVBUkYgICAgICAgICAgICAgICBZKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsaW5pdCBvbmx5LCBubyBkYXNoPT5GQc0gZXhjZXB0CisrIFNBTCBERUFSRiAgICAgICAgICAgICAgICBUKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsaW5pdGlhbCBvbmx5IChuZC0gZG9uZSBiNCkKKysgU0FMIERIRUlSRi0gICAgICAgICAgICAgIFkqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgaW5pdGlhbCBvbmx5CisrIFNBTCBERUlSRi0gICAgICAgICAgICAgICBUKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIChsZWFzKT9kZWlyZiogb25seQorKyBTQUwgREhPSUwoQkYpLSAgICAgICAgICAgSypMKiAgICAgIyBlcGVudGhldGljLHNlZSBMQkgtLSxpbml0aWFsIG9ubHksZGhvaWwoZmV8YmgpKgorKyBTQUwgRE9JTChCRiktICAgICAgICAgICAgVCpMKiAgICAgIyBlcGVudGhldGljLCBzZWUgTEJILS0sICIgICAgICAiICAobmQtIGRvbmUgYjQpCisrIFNBTCBESElGRUFSICAgICAgICAgICAgICBZKlYqUiAgICAjIGV4Y2VwdGlvbiB0byBGRUFSJCwgXmRoaWZlYXIkIG9ubHkKKysgU0FMIERJRkVBUiAgICAgICAgICAgICAgIFQqVipSICAgICMgZXhjZXB0aW9uIHRvIEZFQVIkLCBeZGlmZWFyJCBvbmx5IChuZC0gYjQpCisrIFNBTCBESCQgICAgICAgICAgICAgICAgICBfICAgICAgICAjIFth4XVdZGgrbW9zdCBbaW9dZGggZG9uZSBiNCxbZent8/pdZGggZG9uZSBoZXJlCisrIFNBTCBESChBwU/TVdopLSAgICAgICAgICBLICAgICAgICAjIGF0aGRo+mNoYXMsIGJ17WRob25uLCBjb21oZGjhaWwsIGV0Yy4KKysgU0FMIERIKEXJSc0pLSAgICAgICAgICAgIFkgICAgICAgICMgYXRoZGjpYW4sIGNhb3JkaGVhcmcsIGNpbmVkaGVpZ2hpbHQsIGV0Yy4KKysgU0FMIERITChBVdopLS0gICAgICAgICAgIEsgICAgICAgICMgY29taGRobPp0aGFpZ2gsIF5kaGwtICBvbmx5CisrIFNBTCBESEwoRUnNKS0tICAgICAgICAgICBZICAgICAgICAjICht7XxuZWFtaClkaGwoaXN0ZWFufGVhdGh87XRoafopLCBeZGhsICBvbmx5CisrIFNBTCBESFIoQcFP01XaKS0tICAgICAgICBLICAgICAgICAjICpkaHJvaW0sbWFyYmhkaHJhKiwqZGhyW+F1XW1hLCBeZGhyIG9ubHkKKysgU0FMIERIUijJRUnNKS0tICAgICAgICAgIFkgICAgICAgICMgKmRocmVhY2gsZmVpcmRocmlzLCpkaHLpYWNodCwqZGhyZWFzYWNodCxeZGhyCisrIFNBTCBEICAgICAgICAgICAgICAgICAgICBUICAgICAgICAjIG5vdGUgZWNsaXBzaXMgb2YgVCB2aWEgY29sbGFwc2luZworKyBTQUwgRUFGQVItLSQgICAgICAgICAgICAgKlYgICAgICAgIyBnZWFmYXIsIG1lYWZhciBvbmx5LCBGQVIkIGV4Y2VwdGlvbgorKyBTQUwgRU9GQVItLSQgICAgICAgICAgICAgKiAgICAgICAgIyBzaWxlbnQgdmVyYiBlbmRpbmcsIGV4Y2VwdGlvbiB0byBPRkFSJCBleGNlcHQhCisrIFNBTCBFSUxCSC0tICAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMQkgtLSBleGNlcHRpb24gYmVsb3cKKysgU0FMIEVJREgoRUkpLSAgICAgICAgICAgICogICAgICAgICMgYXVnbWVudHMgSURIIHJ1bGUsZWlkaGVhbm4sdGVpZGhlYWNoLG1laWRoaXIsZXRjCisrIFNBTCBFT01IKEZUKS0tLSAgICAgICAgICAqICAgICAgICAjIGxlb21oW2Z0XS0gb25seSwgZXhjZXB0aW9uIHRvIC1vbWggcnVsZQorKyBTQUwgRSAgICAgICAgICAgICAgICAgICAgKgorKyBTQUwgyUFSQkgtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgZ+lhcmJoLSBvbmx5CisrIFNBTCDJQVJNLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCDpYXJtaCsgdOlhcm1hIHJvb3Qgb25seQorKyBTQUwgyUFSRy0gICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwg6WFyZ2grKGzhbik/bOlhcmdhcyBvbmx5CisrIFNBTCDJSVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCDpaXJnaCsgYWlsbOlpcmdlIG9ubHkKKysgU0FMIMlJUkJILS0gICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHQuIGzpaXJiaHJlaXRoKiwgc3DpaXJiaGVhbiBvbmx5CisrIFNBTCDJQUxCSC0tICAgICAgICAgICAgICAqTCAgICAgICAjIGLpYWxiaGFjaCBvbmx5LCBleGNlcHRpb24gdG8gQUxCSAorKyBTQUwgyUFGwSAgICAgICAgICAgICAgICAgKlYqICAgICAgIyDpYWbhIG9ubHksIGV4Y2VwdGlvbiB0byBGwSQKKysgU0FMIMkgICAgICAgICAgICAgICAgICAgICoKKysgU0FMIEZIQUlSQ0gtLSAgICAgICAgICAgICpSKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgZmhhaXJjaCogb25seQorKyBTQUwgRkFJUkNILS0gICAgICAgICAgICAgVipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCAoYmgpP2ZhaXJjaCogb25seQorKyBTQUwgRkhPSVJGLSAgICAgICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBmb2lyZmUgcm9vdCBvbmx5CisrIFNBTCBGT0lSRi0gICAgICAgICAgICAgICBWKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGluaXRpYWwgKGJoKT9mb2lyZiogb25seQorKyBTQUwgRkhPTk5NSC0tICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTk1ILS0sIGZob25ubWhhaT9yKiBvbmx5CisrIFNBTCBGT05OTUgtLSAgICAgICAgICAgICBWKk4qICAgICAjICAgICIgICAgICAgICAiICAgICAiICAgICIsIChiaCk/Zm9ubm1oYWk/ciogb25seQorKyBTQUwgRkhPSUxNSC0tICAgICAgICAgICAgKkwqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTE1ILS0sIGZob2lsbWhlIG9ubHkKKysgU0FMIEZPSUxNSC0tICAgICAgICAgICAgIFYqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCAoYmgpP2ZvaWxtaGUgb25seQorKyBTQUwgRkhPTE1ILS0gICAgICAgICAgICAgKkwqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTE1ILS0sIGZob2xtaCogb25seQorKyBTQUwgRk9MTUgtLSAgICAgICAgICAgICAgVipMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTE1ILS0sIChiaCk/Zm9sbWgqIG9ubHkKKysgU0FMIEZFQURIXiQgICAgICAgICAgICAgIFYqICAgICAgICMgZXhjZXB0aW9uIHRvIHZlcmIgZW5kaW5nIGJlbG93LCBlY2xpcHNpcyBieSBsdWNrCisrIFNBTCBGRUFSXiQgICAgICAgICAgICAgICBWKlIgICAgICAjICAgICAiICAgICAgIiAgICIgICAgICIgICAgICIgICAgICAgICIgICAgICIgICAiIAorKyBTQUwgRklOTl4kICAgICAgICAgICAgICAgVipOICAgICAgIyAgICAgIiAgICAgICIgICAiICAgICAiICAgICAiICAgICAgICAiICAgICAiICAgIiAKKysgU0FMIEZFwV4kICAgICAgICAgICAgICAgIFYqICAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisrIFNBTCBGQc1eJCAgICAgICAgICAgICAgICBWKiAgICAgICAjICAgICAiICAgICAgIiAgICIgICAgICIgICAgICIgICAgICAgICIgICAgICIgICAiIAorKyBTQUwgRs1eJCAgICAgICAgICAgICAgICAgViogICAgICAgIyAgICAgIiAgICAgICIgICAiICAgICAiICAgICAiICAgICAgICAiICAgICAiICAgIiAKKysgU0FMIEZBSURILS0tLSQgICAgICAgICAgIF8gICAgICAgICMgc2lsZW50ICdmJyBpbiB2ZXJiIGVuZGluZworKyBTQUwgRkFESC0tLSQgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiCisrIFNBTCBGSURILS0tJCAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKysgU0FMIEZFQURILS0tLSQgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgICAKKysgU0FMIEZFQVItLS0kICAgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgICAKKysgU0FMIEZBUi0tJCAgICAgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIgorKyBTQUwgRklOTi0tLSQgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAgIAorKyBTQUwgRkFJTk4tLS0tJCAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAgIAorKyBTQUwgRsEtJCAgICAgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiIAorKyBTQUwgRkXBLS0kICAgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiIAorKyBTQUwgRkHNLS0kICAgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiCisrIFNBTCBGzS0kICAgICAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKysgU0FMIEZBSU1JKERTKS0tLS0tJCAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisrIFNBTCBGSU1JKERTKS0tLS0kICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgIChubyBleGNlcHRpb25zKQorKyBTQUwgRkFJRM1TLS0tLS0kICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAobm8gZXhjZXB0aW9ucykKKysgU0FMIEZJRM1TLS0tLSQgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisrIFNBTCBGSCAgICAgICAgICAgICAgICAgICBfICAgICAgICAjIGFsd2F5cyBzaWxlbnQgCisrIFNBTCBGICAgICAgICAgICAgICAgICAgICBWCisrIFNBTCBHSEFJTk1ILS0gICAgICAgICAgICBLKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsc2VlIE5NSC0tLF5naGFpbm1oKiBvbmx5CisrIFNBTCBHQUlOTUgtLSAgICAgICAgICAgICBLKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsc2VlIE5NSC0tLF5nYWlubWgqIG9ubHksIG5nLSBiNAorKyBTQUwgR0hFQUxMTUgtLSAgICAgICAgICAgWSpMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLHNlZSBMTUgtLSxnaGVhbGxtaGFyIG9ubHkKKysgU0FMIEdFQUxMTUgtLSAgICAgICAgICAgIEsqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxzZWUgTE1ILS0sZ2VhbGxtaGFyIG9ubHkKKysgU0FMIEdMQUZBREggICAgICAgICAgICAgIEtMKlYqICAgICMgZXhjZXB0aW9uIHRvIEZBREgkLCBub3QgZ2xhZmFybmFjaAorKyBTQUwgR0hMQUZBREggICAgICAgICAgICAgS0wqViogICAgIyBleGNlcHRpb24gdG8gRkFESCQgCisrIFNBTCBHTEFGQUlESCAgICAgICAgICAgICBLTCpWKiAgICAjIGV4Y2VwdGlvbiB0byBGQUlESCQsIG5vdCBnbGFmYWlyZQorKyBTQUwgR0hMQUZBSURIICAgICAgICAgICAgS0wqViogICAgIyBleGNlcHRpb24gdG8gRkFJREgkIAorKyBTQUwgR0gkICAgICAgICAgICAgICAgICAgXyAgICAgICAgIyBbYWnzdV1naCxtb3N0IG9naCBkb25lIGI0LFtl4ent+l1naCBhbGwgdGVybWluYWwKKysgU0FMIEdIKEHBT9NV2iktICAgICAgICAgIEsgICAgICAgICMgYm9iZ2hhaXN0ZSwgZGVvaXJnaOFzLCBzb2dob250YSwgZXRjLgorKyBTQUwgR0goRclJzSktICAgICAgICAgICAgWSAgICAgICAgIyBhdGhnaGluLCBsdWFzZ2jpYXJhaWdoLCBldGMuCisrIFNBTCBHSEwoQcFP01XaKS0tICAgICAgICBLICAgICAgICAjIGFyZGdobPNyYWNoLCBmb2z6c2dobGFudPNpciwgZXRjLgorKyBTQUwgR0hMKEXJSSktLSAgICAgICAgICAgWSAgICAgICAgIyBjb21oZ2hs6WFzLCBjb21oZ2hsZWFjYe0sIHNjb2lsdGdobGVhbm4sIGV0Yy4KKysgU0FMIEdIUihBwU/TVdopLS0gICAgICAgIEsgICAgICAgICMgdO1yZ2hy4SwgZ3JpYW5naHJhZiwgYW9pc2docvpwYSwgZXRjLiAKKysgU0FMIEdIUihFyUnNKS0tICAgICAgICAgIFkgICAgICAgICMgaWRpcmdoculhc+FuLCBicmVpdGhnaHJlYW1hbm5hY2gsIGV0Yy4KKysgU0FMIEdITihBwU/TVdopLS0gICAgICAgIEsgICAgICAgICMgZGVhc2dobuF0aCwgbmVhbWhnaG7hY2gsIGV0Yy4KKysgU0FMIEdITihFyUnNKS0tICAgICAgICAgIFkgICAgICAgICMgbGVvcmdu7W9taCwgYW9uZ2hu6Wl0aGVhY2gsIGV0Yy4KKysgU0FMIEcgICAgICAgICAgICAgICAgICAgIEsgICAgICAgICMgbm90ZSBlY2xpcHNpcyBvZiBDIHZpYSBjb2xsYXBzaW5nCisrIFNBTCBIICAgICAgICAgICAgICAgICAgICBIICAgICAgICAjIGJldHdlZW4gdm93ZWxzK0ZhcmFuaGHtdCxmb3JoYWxsYSxldGMuCisrIFNBTCBJQVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBpYXJn+mlsLCB0aWFyZ+FpbCwgZXRjLgorKyBTQUwgSUFSQkgtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBpYXJiaOFpcywgZ2lhcmJob3NjYSwgZXRjLiBlcGVudGguIGV4Y2VwdGlvbgorKyBTQUwgSURJUkJILS0gICAgICAgICAgICAgKlQqUiAgICAgIyBpZGlyYmhlYXJ0LCBpZGlyYmhsaWFpbiwgZXRjLiwgZXhjZXB0aW9uIHRvIElSQkgKKysgU0FMIElSQkhS2i0tLS0gICAgICAgICAgICpSICAgICAgICMgbXVpcmJocvpjaHQqIG9ubHksIGV4Y2VwdGlvbiB0byBJUkJILS0KKysgU0FMIElSQkhVLS0tICAgICAgICAgICAgICpSICAgICAgICMgZW9jaGFpcmJodWlsbGUsbGl0aXJiaHVhbWEgb25seSwgZXhjZXB0LiB0byBuZXh0CisrIFNBTCBJUkJILS0gICAgICAgICAgICAgICAqUiogICAgICAjICpzZWlyYmjtcywgdGFpcmJoKiwgdG9pcmJoKiwgZXRjLiBlcGVudGhldGljCisrIFNBTCBJRs0tJCAgICAgICAgICAgICAgICAqViAgICAgICAjIGV4Y2VwdGlvbiB0byBGzSQsIMlJRs0kIGRvbmUgYmVmb3JlCisrIFNBTCBJTk1IRShBwSktLS0tICAgICAgICAqTiAgICAgICAjIGV4Y2VwdGlvbiB0byBuZXh0LGFpbm1oZWFzYXJ0aGEsaW5taGVhYmhy+iwgZXRjLgorKyBTQUwgSU5NSEUtLS0gICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbm1oZSQgb25seSBieSBwcmV2aW91cworKyBTQUwgSU5OTUgtLSAgICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBmdWlubm1oLSwgY29pbm5taGUgb25seQorKyBTQUwgSU9OTUhBRy0tLS0gICAgICAgICAgKk4gICAgICAgIyBleGNlcHRpb24gdG8gbmV4dCwgbWlvbm1oYWdhZGggb25seQorKyBTQUwgSU9OTUhBLS0tICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBjaW9ubWhhciBvbmx5LCBzZWUgTk1ILS0KKysgU0FMIElUSEZIKEFFSU9VwcnN09opLS0tICpIICAgICAgICMgY2l0aGZob2xjKixjcml0aGZodWFjaHQsZnJpdGgqIG9ubHktIHNlZSBuZXh0CisrIFNBTCBJVEgoQkNERkdMTU5QUlNUKS0gICAqICAgICAgICAjIGFpdGhyaXMsIGZyaXRoKiwgZXRjLiAgZXhjZXB0aW9uIHRvIFRILT5ICisrIFNBTCBJREgoQkNERkdMTU5QUlNUKS0gICAqICAgICAgICAjIGZlaWRobSwgdHJhaWRoZmlsLCBvaWRocmUsIGV0Yy4KKysgU0FMIElHSChDREVGSUxOUlNUKS0gICAgICogICAgICAgICMgZm9pZ2huZSxjYWlnaGRl4W4sb2lnaHJpZ2gsb2lnaGVhcixmZWlnaGlsLGV0Yy4KKysgU0FMIEkgICAgICAgICAgICAgICAgICAgICoKKysgU0FMIM1PUk0tICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGTtb3JtYSwgZu1vci0gb25seQorKyBTQUwgzU9NSChCQ0RGR0xNTlBSU1QpLS0tICogICAgICAgIyAocHJ8cnxsfHNufGduKe1vbWgtIG9ubHksIGV4Y2VwdGlvbnMgdG8gb21oLQorKyBTQUwgzVRIUy0gICAgICAgICAgICAgICAgKiAgICAgICAgIyBjbO10aHNlYWNoIG9ubHkgKG5vIGV4Y3AuIGZvciBk7XRocmVhYmgsIGV0Yy4pCisrIFNBTCDNICAgICAgICAgICAgICAgICAgICAqCisrIFNBTCBKICAgICAgICAgICAgICAgICAgICBUICAgICAgICAjIGluaXRpYWwgaiwgZGlvc2MtamFjYe0gb25seTsgYml0IGxpa2Ugc2xlbmRlciBkCisrIFNBTCBLICAgICAgICAgICAgICAgICAgICBLICAgICAgICAjIGthcmF06SBvbmx5CisrIFNBTCBMRUFOQkgtLSAgICAgICAgICAgICBMKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsICh1Y2h0KT9sZWFuYmgoYW9pcyk/LHNlZSBOQkgtLQorKyBTQUwgTElOQkgtLSAgICAgICAgICAgICAgTCpOKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCAodWNodCk/bGluYmggb25seSwgc2VlIE5CSC0tCisrIFNBTCBMTUgtLSAgICAgICAgICAgICAgICBMICAgICAgICAjIGZlYWxsbWhhcvosIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBMQkgtLSAgICAgICAgICAgICAgICBMICAgICAgICAjIHVhaWxsYmhyZWFzLCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorKyBTQUwgTEdILS0gICAgICAgICAgICAgICAgTCAgICAgICAgIyB0aW1wZWFsbGdoZWFyciwgZXRjLiwgZXBlbnRoLiBleGNlcHRpb24KKysgU0FMIEwoQkdNKS0gICAgICAgICAgICAgIEwqICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIGFsc28gVUxDSC0tCisrIFNBTCBMICAgICAgICAgICAgICAgICAgICBMCisrIFNBTCBNT1JGQc0tLSQgICAgICAgICAgICBNKlJWICAgICAjIGV4Y2VwdGlvbiB0byBzaWxlbnQgRkHNJAorKyBTQUwgTUJBTkJIXiQgICAgICAgICAgICAgTSpOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIG5vdCAtYXL6bgorKyBTQUwgTUJBSU5CSF4kICAgICAgICAgICAgTSpOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0KKysgU0FMIE1CXiAgICAgICAgICAgICAgICAgIE0gICAgICAgICMgZWNsaXBzaXMKKysgU0FMIE1IQVJGLSAgICAgICAgICAgICAgIFYqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbAorKyBTQUwgTUFSRi0gICAgICAgICAgICAgICAgTSpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbml0aWFsIG9ubHkKKysgU0FMIE1IT0RIICAgICAgICAgICAgICAgIFYqICAgICAgICMgT0RIIGV4Y2VwdGlvbiwgdXN1YWxseSBpbml0aWFsCisrIFNBTCBNT0RIICAgICAgICAgICAgICAgICBNKiAgICAgICAjICAiICAgICAiICAgICAsICAgIiAgICAgICAiCisrIFNBTCBNSCAgICAgICAgICAgICAgICAgICBWICAgICAgICAjIGluY2x1ZGVzIG1oJCwvdy8sL3YvICsgc2VlIFVNSAorKyBTQUwgTSAgICAgICAgICAgICAgICAgICAgTQorKyBTQUwgTkFGQc0tLSAgICAgICAgICAgICAgTipWICAgICAgIyBleGNlcHRpb24gdG8gRkHNJCwgc25hZmHtIG9ubHkKKysgU0FMIE5OQVJCLSAgICAgICAgICAgICAgIE4qUiAgICAgICMgZXhjZXB0aW9uIHRvIFJCIGVwZW50aGV0aWMsIGlvbm5hcmIqIG9ubHkKKysgU0FMIE5ORUFMQkgtLSAgICAgICAgICAgIE4qTCAgICAgICMgZXhjZXB0aW9uIHRvIEFMQkggZXBlbnRoZXRpYywgY29pbm5lYWxiaOEgb25seQorKyBTQUwgTkRPUkNILS0gICAgICAgICAgICAgTipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgRE9SQ0gtLQorKyBTQUwgTkRFQVJGLSAgICAgICAgICAgICAgTipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgREVBUkYtCisrIFNBTCBOREVJUkYtICAgICAgICAgICAgICBOKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBERUlSRi0KKysgU0FMIE5ET0lMKEJGKS0gICAgICAgICAgIE4qTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIERPSUwoQkYpLQorKyBTQUwgTkRJRkVBUiAgICAgICAgICAgICAgTipWKlIgICAgIyBleGNlcHRpb24gdG8gRkVBUiQsIF5uZGlmZWFyJCBvbmx5CisrIFNBTCBOR0FJTk1ILS0gICAgICAgICAgICBOKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBHQUlOTUgtLQorKyBTQUwgTkdFQUxMTUgtLSAgICAgICAgICAgTipMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgR0VBTExNSC0KKysgU0FMIE5HTEFGQURIICAgICAgICAgICAgIE5MKlYqICAgICMgZXhjZXB0aW9uIHRvIEZBREgkLCBebmdsYWZhZGgkIG9ubHkKKysgU0FMIE5HTEFGQUlESCAgICAgICAgICAgIE5MKlYqICAgICMgZXhjZXB0aW9uIHRvIEZBSURIJCwgXm5nbGFmYWlkaCQgb25seQorKyBTQUwgTkNIQSjNUyktLS0tICAgICAgICAgTiogICAgICAgIyBlcGVudGhldGljIHZvd2VsLCAqc2g/ZWFuY2hhKO1zKSosaW9uY2hhcyBvbmx5CisrIFNBTCBOQ0hBSVJELS0tLS0tICAgICAgICBOICAgICAgICAjIGV4Y2VwdGlvbiB0byBuZXh0LCBkYW9uY2hhaXJkKiBvbmx5CisrIFNBTCBOQ0hBSShSUyktLS0tLSAgICAgICBOKiAgICAgICAjIGVwZW50aC4gdGlvbmNoYWlyKiwgaW9uY2hhaXMsICpzaD9lYW5jaGFpKiwgZXRjLgorKyBTQUwgTkNIQUlUSEUtLS0tLS0tICAgICAgTiogICAgICAgIyAgICAgIiAgICAgICAgIiAgLCBzaD9lYW5jaGFpdGhlLCBub3Qgc2VhbmNoYWl0ZQorKyBTQUwgTihERyleICAgICAgICAgICAgICAgTiAgICAgICAgIyBlY2xpcHNpcworKyBTQUwgTk1ILS0gICAgICAgICAgICAgICAgTiAgICAgICAgIyBleGNlcHRpb24gdG8gTihCTSktLCBwaWFubWhhciwgb25ubWhhaXJlLCBldGMuIAorKyBTQUwgTkJILS0gICAgICAgICAgICAgICAgTiAgICAgICAgIyAgICAiICAgICAgICIgICAiLCBhb25iaGVhbm5hY2gsIGJ1bmJocmF0LCBldGMuCisrIFNBTCBOKEJNKS0gICAgICAgICAgICAgICBOKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGJpbmIsIGFpbm0sIGV0Yy4KKysgU0FMIE4gICAgICAgICAgICAgICAgICAgIE4KKysgU0FMIE9GQVItLSQgICAgICAgICAgICAgICpWICAgICAgICMgZXhjZXB0aW9uIHRvIEZBUiQsIEVPRkFSIGRvbmUgYjQKKysgU0FMIE9JUkNILS0gICAgICAgICAgICAgICpSKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgdD9vaXJjaCogb25seQorKyBTQUwgT0NBTEJILS0gICAgICAgICAgICAgKksqTCAgICAgIyBleGNlcHRpb24gdG8gQUxCSCAtIGZvY2FsYmjhKiBvbmx5CisrIFNBTCBPUkJIwS0tLSAgICAgICAgICAgICAqUiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGZvcmJo4XMgb25seQorKyBTQUwgT05OQ0hBLS0tICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsICAgZmlvbm5jaGEsIERvbm5jaGEgb25seQorKyBTQUwgT01IQVJCLSAgICAgICAgICAgICAgKlIgICAgICAgIyBleGNlcHRpb24gdG8gZXBlbnRoLiBSKEJGR00pLSwgY29taGFyYmEqIG9ubHkKKysgU0FMIE9NSChCQ0RGR0xNTlBSU1QpLSAgICogICAgICAgICMgY29taC0sIERvbWhuYWNoLCBldGMuIChzZXZlcmFsIGV4Y3B0cyBiNCB0aGlzKQorKyBTQUwgT1RIKEJDREdMTU5QUlMpLSAgICAgKiAgICAgICAgIyBjb3Rocm9tLCBiYW90aGNoYWludCwgZ2FvdGhzY+F0aCwgZXRjLgorKyBTQUwgT0RIQU8tLS0tICAgICAgICAgICAgKiAgICAgICAgIyBmb2RoYW8qIG9ubHksIGV4Y2VwdGlvbiB0byBuZXh0CisrIFNBTCBPREgoQUNMTlIpLSAgICAgICAgICAqICAgICAgICAjIGJvZGhy4W4sbW9kaG5haWdoLHRvZGhjaGHtLGZvZGhsYSxib2RoYXIgZXRjLgorKyBTQUwgT0dIUtpQLS0tLS0gICAgICAgICAgKiAgICAgICAgIyBmb2docvpwYSwgdGhpcyBhbmQgbmV4dCBmZXcgYXJlIE9HSC0+KiBleGNlcHRzLgorKyBTQUwgT0dITFVBLS0tLS0gICAgICAgICAgKiAgICAgICAgIyBzby9kb2dobHVhaXN0ZSogb25seQorKyBTQUwgT0dIQUYtLS0tICAgICAgICAgICAgKiAgICAgICAgIyBkb2doYWZhIG9ubHkKKysgU0FMIE9HSChBwUJDREZHTE1OUFJTVCktICogICAgICAgICMgb2doYW0sIGZvZ2hsYWltLCBib2doZPNpciwgdG9naGNo4W4sIGV0Yy4KKysgU0FMIE8gICAgICAgICAgICAgICAgICAgICoKKysgU0FMINNSKEdNKS0gICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIChmb3IpP3RoP/NybWFjaCwg83JnYSxldGMuCisrIFNBTCDTR0ggICAgICAgICAgICAgICAgICAqICAgICAgICAjIPNnaGE/JCBvbmx5CisrIFNBTCDTICAgICAgICAgICAgICAgICAgICAqCisrIFNBTCBQSCAgICAgICAgICAgICAgICAgICBWICAgICAgICAjIE9LCisrIFNBTCBQICAgICAgICAgICAgICAgICAgICBCCisrIFNBTCBRVSAgICAgICAgICAgICAgICAgICBLViAgICAgICAjIF5xdWlu7W4kLCBecXVhcnRvJCBvbmx5CisrIFNBTCBSQU5GQc0tLSAgICAgICAgICAgICBSKk5WICAgICAjIGV4Y2VwdGlvbiB0byBzaWxlbnQgRkHNJCwgLWNodWFyYW5mYe0gb25seQorKyBTQUwgUkFGQc0tLSAgICAgICAgICAgICAgUipWICAgICAgIyBleGNlcHRpb24gdG8gc2lsZW50IEZBzSQsIGFsbCAqZ3JhZi0KKysgU0FMIFJSQkhBLS0tICAgICAgICAgICAgIFIqICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgY2VhcnJiaCogb25seSwgbm8gY2FycmJodWFtYQorKyBTQUwgUkVBTE1ILS0gICAgICAgICAgICAgUipMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTE1ILS0sIHRyZWFsbWgqIG9ubHkKKysgU0FMIFLNRkVBUl4kICAgICAgICAgICAgIFIqVipSICAgICMgZXhjZXB0aW9uIHRvIEZFQVIkLCBub3QgYXRocu1mZWFyIQorKyBTQUwgUk9NSChGVCktLS0gICAgICAgICAgUiogICAgICAgIyBwcm9taFtmdF0tIG9ubHksIGV4Y2VwdGlvbiB0byAtb21oIHJ1bGUKKysgU0FMIFJGRUFOLS0tLSAgICAgICAgICAgIFIqICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgKGJlfHNlfGdhKWlyZmVhbiBvbmx5CisrIFNBTCBSRklOLS0tJCAgICAgICAgICAgICBSKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNhbWUgd29yZHMgYXMgcHJldmlvdXMKKysgU0FMIFJCSC0tICAgICAgICAgICAgICAgIFIgICAgICAgICMgY+1vcmJode0sIGFlcmJocmF0LCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorKyBTQUwgUk1ILS0gICAgICAgICAgICAgICAgUiAgICAgICAgIyBpYXJtaGFyLCBs6WlybWhlYXMsIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBSR0gtLSAgICAgICAgICAgICAgICBSICAgICAgICAjIGRhb3JnaGFsYXIsIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisrIFNBTCBSQk8tLSAgICAgICAgICAgICAgICBSICAgICAgICAjIGNvc2FyYm9sZyBvbmx5LCBlcGVudGguIGV4Y2VwdGlvbgorKyBTQUwgUihCR00pLSAgICAgICAgICAgICAgUiogICAgICAgIyBlcGVudGhldGljIHZvd2VsCisrIFNBTCBSICAgICAgICAgICAgICAgICAgICBSCisrIFNBTCBTSE9SQ0gtLSAgICAgICAgICAgICBIKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNvcmNoYSByb290IG9ubHkKKysgU0FMIFNPUkNILS0gICAgICAgICAgICAgIFMqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc29yY2hhIHJvb3Qgb25seQorKyBTQUwgU0hPSUxCSC0tICAgICAgICAgICAgSCpMKiAgICAgIyBlcGVudGhldGljLCBzZWUgTEJILS0KKysgU0FMIFNPSUxCSC0tICAgICAgICAgICAgIFMqTCogICAgICMgZXBlbnRoZXRpYywgc2VlIExCSC0tCisrIFNBTCBTSCAgICAgICAgICAgICAgICAgICBIICAgICAgICAjIE9LCisrIFNBTCBTICAgICAgICAgICAgICAgICAgICBTCisrIFNBTCBUQUxNSC0tICAgICAgICAgICAgICBUKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgdGFsbWhhaWdoIG9ubHkKKysgU0FMIFRIQUxNSC0tICAgICAgICAgICAgIEgqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCAgICAiICAgICAgICIKKysgU0FMIFRJTkYoRUkpLSAgICAgICAgICAgIFQqTlYgICAgICMgZXhjZXB0aW9uIHRvIEYoRUF8SSlESCQsIGQ/dGluZihlYXxpKWRoIG9ubHkKKysgU0FMIFRISU5GKEVJKS0gICAgICAgICAgIEgqTlYgICAgICMgZXhjZXB0aW9uIHRvIEYoRUF8SSlESCQsIHRoaW5mKGVhfGkpZGggb25seQorKyBTQUwgVEFGQS0gICAgICAgICAgICAgICAgVCpWICAgICAgIyBleGNlcHRpb24gdG8gRkFJTk4kLCBkP3RhZmFpbm4gb25seQorKyBTQUwgVEhBRkEtICAgICAgICAgICAgICAgSCpWICAgICAgIyBleGNlcHRpb24gdG8gRkFJTk4kLCB0aGFmYWlubiBvbmx5CisrIFNBTCBUU09SQ0gtLSAgICAgICAgICAgICBUKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBTT1JDSC0tCisrIFNBTCBUU09JTEJILS0gICAgICAgICAgICBUKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBTT0lMQkgtLQorKyBTQUwgVFNeICAgICAgICAgICAgICAgICAgVCAgICAgICAgIyBwcmVmaXgtdAorKyBTQUwgVEgkICAgICAgICAgICAgICAgICAgXyAgICAgICAgIyBubyBleGNlcHRpb25zCisrIFNBTCBUSCAgICAgICAgICAgICAgICAgICBICisrIFNBTCBUICAgICAgICAgICAgICAgICAgICBUCisrIFNBTCBVRkEozVIpLS0kICAgICAgICAgICAqViAgICAgICAjIGV4Y2VwdGlvbiB0byBGQVIkLCBicnVmYXIvW2NyXXVmYe0gb25seQorKyBTQUwgVUFSRy0gICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgZnVhcmdhKiwgdHVhcmdhaW4gb25seQorKyBTQUwgVUFJUkctICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgdHVhaXJnbiogb25seQorKyBTQUwgVUFSQkgtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgZnVhcmJoKiwgY3VhcmJoKiBvbmx5IAorKyBTQUwgVUFMR0EtLSAgICAgICAgICAgICAgKkwgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgZHVhbGdhcyBvbmx5CisrIFNBTCBVTExNSC0tICAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLQorKyBTQUwgVU1IICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyBjdW1oYWNodCwgdW1obGHtb2NodCwgY2l1bWhhaXMsIGV4Y2VwdC4gdG8gTUgtPlYKKysgU0FMIFVUSChCQ0RHTE1OUFIpLSAgICAgICogICAgICAgICMgc3J1dGgqLCBndXRocGhvc3Qgb25seSwgVEgtPkggZXhjZXB0aW9uCisrIFNBTCBVTENILS0gICAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aC4gdm93ZWwsdWxjaGEsW3RtXXVsY2jhbixhbWh1bGNoYWNoIG9ubHkKKysgU0FMIFVSQ0goQdMpLS0tICAgICAgICAgICpSKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgdXJjaGFyLCB1cmNoYWxsLCB1cmNo82lkLCBldGMuCisrIFNBTCBVREggICAgICAgICAgICAgICAgICAqICAgICAgICAjIG11ZGgqIG9ubHkgKGxpdGVyYXJ5KQorKyBTQUwgVUdIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyBicnVnaCogb25seSAobGl0ZXJhcnkpCisrIFNBTCBVICAgICAgICAgICAgICAgICAgICAqCisrIFNBTCDaSVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBsaW90+mlyZyogb25seSwgc2VlIFJHCisrIFNBTCDaVEgoQkNERkxQUiktICAgICAgICAqICAgICAgICAjIGz6dGhjaGxlYXNhLCBk+nRocmFjaHQsIGV0Yy4gLSBUSC0+SCBleGNlcHRpb24KKysgU0FMINogICAgICAgICAgICAgICAgICAgICoKKysgU0FMIFYgICAgICAgICAgICAgICAgICAgIFYKKysgU0FMIFcgICAgICAgICAgICAgICAgICAgIFYgICAgICAgICMgd2lnd2FtIG9ubHkKKysgU0FMIFgoQUXJSc0pLV4gICAgICAgICAgIFMgICAgICAgICMgeGlsZWFm824sIGV0Yy4KKysgU0FMIFheICAgICAgICAgICAgICAgICAgICpLUyAgICAgICMgeC1naGEqIG9ubHkKKysgU0FMIFggICAgICAgICAgICAgICAgICAgIEtTICAgICAgICMgTWFyeGFjaCBvbmx5CisrIFNBTCBZICAgICAgICAgICAgICAgICAgICBZICAgICAgICAjIHnzefMgb25seQorKyBTQUwgWiAgICAgICAgICAgICAgICAgICAgUyAgICAgICAgIyB6+iwgcHV6YWwsIGV0Yy4K