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ICVzKS4gICVzACVzICVzIHBhY2thZ2VzACVzICVzIHBhY2thZ2VzIGluIHNlY3Rpb24gJXMAJXMgJXMgcGFja2FnZXMgd2l0aG91dCBhIHNlY3Rpb24AJXMgZm9yIG1vcmUAJXMgcGFja2FnZXMgaW4gc2VjdGlvbiAlcwAlcyBwYWNrYWdlcyB3aXRob3V0IGEgc2VjdGlvbgAlcyB0byBnbyBiYWNrACogSGlnaGxpZ2h0OiBPbmUgbGluZSBpbiB0aGUgcGFja2FnZSBsaXN0IHdpbGwgYmUgaGlnaGxpZ2h0ZWQuICBJdCBpbmRpY2F0ZXMKICB3aGljaCBwYWNrYWdlKHMpIHdpbGwgYmUgYWZmZWN0ZWQgYnkgcHJlc3NlcyBvZiBgKycsIGAtJyBhbmQgYF8nLgoKKiBUaGUgZGl2aWRpbmcgbGluZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4gc2hvd3MgYSBicmllZiBleHBsYW5hdGlvbiBvZgogIHRoZSBzdGF0dXMgb2YgdGhlIGN1cnJlbnRseS1oaWdobGlnaHRlZCBwYWNrYWdlLCBvciBhIGRlc2NyaXB0aW9uIG9mIHdoaWNoCiAgZ3JvdXAgaXMgaGlnaGxpZ2h0ZWQgaWYgYSBncm91cCBsaW5lIGlzLiAgSWYgeW91IGRvbid0IHVuZGVyc3RhbmQgdGhlCiAgbWVhbmluZyBvZiBzb21lIG9mIHRoZSBzdGF0dXMgY2hhcmFjdGVycyBkaXNwbGF5ZWQsIGdvIHRvIHRoZSByZWxldmFudAogIHBhY2thZ2UgYW5kIGxvb2sgYXQgdGhpcyBkaXZpZGVyIGxpbmUsIG9yIHVzZSB0aGUgYHYnIGtleSBmb3IgYSB2ZXJib3NlCiAgZGlzcGxheSAocHJlc3MgYHYnIGFnYWluIHRvIGdvIGJhY2sgdG8gdGhlIHRlcnNlIGRpc3BsYXkpLgoKKiBUaGUgYm90dG9tIG9mIHRoZSBzY3JlZW4gc2hvd3MgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKICBjdXJyZW50bHktaGlnaGxpZ2h0ZWQgcGFja2FnZSAoaWYgdGhlcmUgaXMgb25seSBvbmUpLgoKICBJdCBjYW4gc2hvdyBhbiBleHRlbmRlZCBkZXNjcmlwdGlvbiBvZiB0aGUgcGFja2FnZSwgdGhlIGludGVybmFsIHBhY2thZ2UKICBjb250cm9sIGRldGFpbHMgKGVpdGhlciBmb3IgdGhlIGluc3RhbGxlZCBvciBhdmFpbGFibGUgdmVyc2lvbiBvZiB0aGUKICBwYWNrYWdlKSwgb3IgaW5mb3JtYXRpb24gYWJvdXQgY29uZmxpY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW52b2x2aW5nIHRoZQogIGN1cnJlbnQgcGFja2FnZSAoaW4gY29uZmxpY3QvZGVwZW5kZW5jeSByZXNvbHV0aW9uIHN1Ymxpc3RzKS4KCiAgVXNlIHRoZSBgaScga2V5IHRvIGN5Y2xlIHRocm91Z2ggdGhlIGRpc3BsYXlzLCBhbmQgYEknIHRvIGhpZGUgdGhlCiAgaW5mb3JtYXRpb24gZGlzcGxheSBvciBleHBhbmQgaXQgdG8gdXNlIGFsbW9zdCBhbGwgb2YgdGhlIHNjcmVlbi4KAD8AQWJicmV2LgBBYm9ydCAtIHF1aXQgd2l0aG91dCBtYWtpbmcgY2hhbmdlcwBBY2Nlc3MgbWV0aG9kIGAlcycuAEFjdGlvbnM6CiAgYWNjZXNzIHVwZGF0ZSBzZWxlY3QgaW5zdGFsbCBjb25maWcgcmVtb3ZlIHF1aXQKCgBBbGwAQWxsIHBhY2thZ2VzAEF0dHJpYnV0ZXM6CgBBdmFpbC52ZXIAQXZhaWxhYmxlAEF2YWlsYWJsZSBjb250cm9sIGZpbGUgaW5mb3JtYXRpb24AQXZhaWxhYmxlIHBhY2thZ2VzIChub3QgY3VycmVudGx5IGluc3RhbGxlZCkAQnJva2VuAEJyb2tlbmx5IGluc3RhbGxlZCBwYWNrYWdlcwBDaG9vc2UgdGhlIGFjY2VzcyBtZXRob2QgdG8gdXNlLgBDb2xvdXJzOgoAQ29uZmlndXJlIGFueSBwYWNrYWdlcyB0aGF0IGFyZSB1bmNvbmZpZ3VyZWQuAENvcHlyaWdodCAoQykgMTk5NC0xOTk2IElhbiBKYWNrc29uLgpDb3B5cmlnaHQgKEMpIDIwMDAsMjAwMSBXaWNoZXJ0IEFra2VybWFuLgoAQ3ljbGUgdGhyb3VnaCBpbmZvcm1hdGlvbiBkaXNwbGF5cwBEZWJpYW4gYCVzJyBwYWNrYWdlIGhhbmRsaW5nIGZyb250ZW5kIHZlcnNpb24gJXMuCgBEZXBlbmRlbmN5L2NvbmZsaWN0IHJlc29sdXRpb24gLSBpbnRyb2R1Y3Rpb24uCgpPbmUgb3IgbW9yZSBvZiB5b3VyIGNob2ljZXMgaGF2ZSByYWlzZWQgYSBjb25mbGljdCBvciBkZXBlbmRlbmN5IHByb2JsZW0gLQpzb21lIHBhY2thZ2VzIHNob3VsZCBvbmx5IGJlIGluc3RhbGxlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGNlcnRhaW4gb3RoZXJzLCBhbmQKc29tZSBjb21iaW5hdGlvbnMgb2YgcGFja2FnZXMgbWF5IG5vdCBiZSBpbnN0YWxsZWQgdG9nZXRoZXIuCgpZb3Ugd2lsbCBzZWUgYSBzdWItbGlzdCBjb250YWluaW5nIHRoZSBwYWNrYWdlcyBpbnZvbHZlZC4gIFRoZSBib3R0b20gaGFsZiBvZgp0aGUgZGlzcGxheSBzaG93cyByZWxldmFudCBjb25mbGljdHMgYW5kIGRlcGVuZGVuY2llczsgdXNlIGBpJyB0byBjeWNsZSBiZXR3ZWVuCnRoYXQsIHRoZSBwYWNrYWdlIGRlc2NyaXB0aW9ucyBhbmQgdGhlIGludGVybmFsIGNvbnRyb2wgaW5mb3JtYXRpb24uCgpBIHNldCBvZiBgc3VnZ2VzdGVkJyBwYWNrYWdlcyBoYXMgYmVlbiBjYWxjdWxhdGVkLCBhbmQgdGhlIGluaXRpYWwgbWFya2luZ3MgaW4KdGhpcyBzdWItbGlzdCBoYXZlIGJlZW4gc2V0IHRvIG1hdGNoIHRob3NlLCBzbyB5b3UgY2FuIGp1c3QgaGl0IFJldHVybiB0bwphY2NlcHQgdGhlIHN1Z2dlc3Rpb25zIGlmIHlvdSB3aXNoLiAgWW91IG1heSBhYm9ydCB0aGUgY2hhbmdlKHMpIHdoaWNoIGNhdXNlZAp0aGUgcHJvYmxlbShzKSwgYW5kIGdvIGJhY2sgdG8gdGhlIG1haW4gbGlzdCwgYnkgcHJlc3NpbmcgY2FwaXRhbCBgWCcuCgpZb3UgY2FuIGFsc28gbW92ZSBhcm91bmQgdGhlIGxpc3QgYW5kIGNoYW5nZSB0aGUgbWFya2luZ3Mgc28gdGhhdCB0aGV5IGFyZSBtb3JlCmxpa2Ugd2hhdCB5b3Ugd2FudCwgYW5kIHlvdSBjYW4gYHJlamVjdCcgbXkgc3VnZ2VzdGlvbnMgYnkgdXNpbmcgdGhlIGNhcGl0YWwKYEQnIG9yIGBSJyBrZXlzIChzZWUgdGhlIGtleWJpbmRpbmdzIGhlbHAgc2NyZWVuKS4gIFlvdSBjYW4gdXNlIGNhcGl0YWwgYFEnIHRvCmZvcmNlIG1lIHRvIGFjY2VwdCB0aGUgc2l0dWF0aW9uIGN1cnJlbnRseSBkaXNwbGF5ZWQsIGluIGNhc2UgeW91IHdhbnQgdG8Kb3ZlcnJpZGUgYSByZWNvbW1lbmRhdGlvbiBvciB0aGluayB0aGF0IHRoZSBwcm9ncmFtIGlzIG1pc3Rha2VuLgoKUHJlc3MgPHNwYWNlPiB0byBsZWF2ZSBoZWxwIGFuZCBlbnRlciB0aGUgc3ViLWxpc3Q7IHJlbWVtYmVyOiBwcmVzcyBgPycgZm9yIGhlbHAuCgBEZXNjcmlwdGlvbgBEaXNwbGF5LCBwYXJ0IDE6IHBhY2thZ2UgbGlzdGluZyBhbmQgc3RhdHVzIGNoYXJzAERpc3BsYXksIHBhcnQgMjogbGlzdCBoaWdobGlnaHQ7IGluZm9ybWF0aW9uIGRpc3BsYXkARUlPTQBFT0YgYmVmb3JlIG9wdGlvbiBuYW1lIHN0YXJ0AEVPRiBiZWZvcmUgc3VtbWFyeQBFT0YgaW4gaW5kZXggc3RyaW5nAEVPRiBpbiBvcHRpb24gbmFtZQBFT0YgaW4gc3VtbWFyeSAtIG1pc3NpbmcgbmV3bGluZQBFcnJvcgBFcnJvcjogAEV4cGxhbmF0aW9uAEV4dHJhAEdvIHRvIGVuZCBvZiBsaXN0AEdvIHRvIHRvcCBvZiBsaXN0AEhlbHAgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgdG9waWNzOgBIZWxwOiAASW1wAEltcG9ydGFudABJbnN0LnZlcgBJbnN0YWxsIGFuZCB1cGdyYWRlIHdhbnRlZCBwYWNrYWdlcy4ASW5zdGFsbGVkAEluc3RhbGxlZCBjb250cm9sIGZpbGUgaW5mb3JtYXRpb24ASW5zdGFsbGVkIHBhY2thZ2VzAEluc3RhbGxlZD8ASW50ZXJyZWxhdGlvbnNoaXBzAEludHJvZHVjdGlvbiB0byBjb25mbGljdC9kZXBlbmRlbmN5IHJlc29sdXRpb24gc3ViLWxpc3QASW50cm9kdWN0aW9uIHRvIG1ldGhvZCBzZWxlY3Rpb24gZGlzcGxheQBJbnRyb2R1Y3Rpb24gdG8gcGFja2FnZSBzZWxlY3Rpb25zAEludHJvZHVjdGlvbiB0byByZWFkLW9ubHkgcGFja2FnZSBsaXN0IGJyb3dzZXIASW52YWxpZCAlcyBgJXMnCgBLZXliaW5kaW5ncwBLZXlzdHJva2VzAEtleXN0cm9rZXMgZm9yIG1ldGhvZCBzZWxlY3Rpb24ATWFrZSBoaWdobGlnaHQgbGVzcyBzcGVjaWZpYwBNYWtlIGhpZ2hsaWdodCBtb3JlIHNwZWNpZmljAE1hcmsgcGFja2FnZShzKSBmb3IgZGVpbnN0YWxsIGFuZCBwdXJnZQBNYXJrIHBhY2thZ2UocykgZm9yIGRlaW5zdGFsbGF0aW9uAE1hcmsgcGFja2FnZShzKSBmb3IgaW5zdGFsbGF0aW9uAE1hcmtlZCBmb3IATW90aW9uIGtleXM6IE5leHQvUHJldmlvdXMsIFRvcC9FbmQsIFVwL0Rvd24sIEJhY2t3YXJkcy9Gb3J3YXJkczoKICBqLCBEb3duLWFycm93ICAgICAgICAgaywgVXAtYXJyb3cgICAgICAgICAgICAgbW92ZSBoaWdobGlnaHQKICBOLCBQYWdlLWRvd24sIFNwYWNlICAgUCwgUGFnZS11cCwgQmFja3NwYWNlICAgc2Nyb2xsIGxpc3QgYnkgMSBwYWdlCiAgXm4gICAgICAgICAgICAgICAgICAgIF5wICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBsaXN0IGJ5IDEgbGluZQogIHQsIEhvbWUgICAgICAgICAgICAgICBlLCBFbmQgICAgICAgICAgICAgICAgICBqdW1wIHRvIHRvcC9lbmQgb2YgbGlzdAogIHUgICAgICAgICAgICAgICAgICAgICBkICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgaW5mbyBieSAxIHBhZ2UKICBedSAgICAgICAgICAgICAgICAgICAgXmQgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGluZm8gYnkgMSBsaW5lCiAgQiwgTGVmdC1hcnJvdyAgICAgICAgIEYsIFJpZ2h0LWFycm93ICAgICAgICAgIHBhbiBkaXNwbGF5IGJ5IDEvMyBzY3JlZW4KICBeYiAgICAgICAgICAgICAgICAgICAgXmYgICAgICAgICAgICAgICAgICAgICAgcGFuIGRpc3BsYXkgYnkgMSBjaGFyYWN0ZXIKCk1hcmsgcGFja2FnZXMgZm9yIGxhdGVyIHByb2Nlc3Npbmc6CiArLCBJbnNlcnQgIGluc3RhbGwgb3IgdXBncmFkZSAgICAgID0sIEggIGhvbGQgaW4gcHJlc2VudCBzdGF0ZQogLSwgRGVsZXRlICByZW1vdmUgICAgICAgICAgICAgICAgICA6LCBHICB1bmhvbGQ6IHVwZ3JhZGUgb3IgbGVhdmUgdW5pbnN0YWxsZWQKIF8gICAgICAgICAgcmVtb3ZlICYgcHVyZ2UgY29uZmlnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2NlbGxhbmVvdXM6ClF1aXQsIGV4aXQsIG92ZXJ3cml0ZSAobm90ZSBjYXBpdGFscyEpOiAgICAgICA/LCBGMSByZXF1ZXN0IGhlbHAgKGFsc28gSGVscCkKIFJldHVybiAgQ29uZmlybSwgcXVpdCAoY2hlY2sgZGVwZW5kZW5jaWVzKSAgIGksIEkgIHRvZ2dsZS9jeWNsZSBpbmZvIGRpc3BsYXlzCiAgIFEgICAgIENvbmZpcm0sIHF1aXQgKG92ZXJyaWRlIGRlcC5zKSAgICAgICBvLCBPICBjeWNsZSB0aHJvdWdoIHNvcnQgb3B0aW9ucwogWCwgRXNjICBlWGl0LCBhYmFuZG9uaW5nIGFueSBjaGFuZ2VzIG1hZGUgICAgdiwgViAgY2hhbmdlIHN0YXR1cyBkaXNwbGF5IG9wdHMKICAgUiAgICAgUmV2ZXJ0IHRvIHN0YXRlIGJlZm9yZSB0aGlzIGxpc3QgICAgICBebCAgIHJlZHJhdyBkaXNwbGF5CiAgIFUgICAgIHNldCBhbGwgdG8gc1VnZ2VzdGVkIHN0YXRlICAgICAgICAgICAgIC8gICBzZWFyY2ggKFJldHVybiB0byBjYW5jZWwpCiAgIEQgICAgIHNldCBhbGwgdG8gRGlyZWN0bHkgcmVxdWVzdGVkIHN0YXRlICBuLCBcICByZXBlYXQgbGFzdCBzZWFyY2gKAE1vdGlvbiBrZXlzOiBOZXh0L1ByZXZpb3VzLCBUb3AvRW5kLCBVcC9Eb3duLCBCYWNrd2FyZHMvRm9yd2FyZHM6CiAgaiwgRG93bi1hcnJvdyAgICAgICAgIGssIFVwLWFycm93ICAgICAgICAgICAgIG1vdmUgaGlnaGxpZ2h0CiAgTiwgUGFnZS1kb3duLCBTcGFjZSAgIFAsIFBhZ2UtdXAsIEJhY2tzcGFjZSAgIHNjcm9sbCBsaXN0IGJ5IDEgcGFnZQogIF5uICAgICAgICAgICAgICAgICAgICBecCAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgbGlzdCBieSAxIGxpbmUKICB0LCBIb21lICAgICAgICAgICAgICAgZSwgRW5kICAgICAgICAgICAgICAgICAganVtcCB0byB0b3AvZW5kIG9mIGxpc3QKICB1ICAgICAgICAgICAgICAgICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsIGluZm8gYnkgMSBwYWdlCiAgXnUgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbCBpbmZvIGJ5IDEgbGluZQogIEIsIExlZnQtYXJyb3cgICAgICAgICBGLCBSaWdodC1hcnJvdyAgICAgICAgICBwYW4gZGlzcGxheSBieSAxLzMgc2NyZWVuCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgIHBhbiBkaXNwbGF5IGJ5IDEgY2hhcmFjdGVyCihUaGVzZSBhcmUgdGhlIHNhbWUgbW90aW9uIGtleXMgYXMgaW4gdGhlIHBhY2thZ2UgbGlzdCBkaXNwbGF5LikKClF1aXQ6CiBSZXR1cm4sIEVudGVyICAgIHNlbGVjdCB0aGlzIG1ldGhvZCBhbmQgZ28gdG8gaXRzIGNvbmZpZ3VyYXRpb24gZGlhbG9ndWUKIHgsIFggICAgICAgICAgICAgZXhpdCB3aXRob3V0IGNoYW5naW5nIG9yIHNldHRpbmcgdXAgdGhlIGluc3RhbGxhdGlvbiBtZXRob2QKCk1pc2NlbGxhbmVvdXM6CiAgPywgSGVscCwgRjEgICAgICByZXF1ZXN0IGhlbHAKIF5sICAgICAgICAgICAgICAgIHJlZHJhdyBkaXNwbGF5CiAgLyAgICAgICAgICAgICAgICBzZWFyY2ggKGp1c3QgcmV0dXJuIHRvIGNhbmNlbCkKICBcICAgICAgICAgICAgICAgIHJlcGVhdCBsYXN0IHNlYXJjaAoATW92ZSBkb3duAE1vdmUgdXAATmV3AE5ld2x5IGF2YWlsYWJsZSBwYWNrYWdlcwBObyBkZXNjcmlwdGlvbiBhdmFpbGFibGUuAE5vIGV4cGxhbmF0aW9uIGF2YWlsYWJsZS4ATnVsbCBjb2xvdXIgc3BlY2lmaWNhdGlvbgoAT2Jzb2xldGUgYW5kIGxvY2FsIHBhY2thZ2VzIHByZXNlbnQgb24gc3lzdGVtAE9ic29sZXRlL2xvY2FsAE9sZCBtYXJrAE9wdABPcHRpb25hbABPcHRpb25zOgogIC0tYWRtaW5kaXIgPGRpcmVjdG9yeT4gICAgIFVzZSA8ZGlyZWN0b3J5PiBpbnN0ZWFkIG9mICVzLgogIC0tZXhwZXJ0ICAgICAgICAgICAgICAgICAgIFR1cm4gb24gZXhwZXJ0IG1vZGUuCiAgLS1kZWJ1ZyA8ZmlsZT4gfCAtRDxmaWxlPiAgVHVybiBvbiBkZWJ1Z2dpbmcsIHNlbmRpbmcgb3V0cHV0IHRvIDxmaWxlPi4KICAtLWNvbG91ciB8IC0tY29sb3Igc2NyZWVucGFydDpbZm9yZWdyb3VuZF0sW2JhY2tncm91bmRdWzphdHRyWythdHRyKy4uXV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmUgc2NyZWVuIGNvbG91cnMuCgoAUGFja2FnZQBQcmVzcyA8ZW50ZXI+IHRvIGNvbnRpbnVlLgoAUHJlc3MgPyBmb3IgaGVscCBtZW51LCAuIGZvciBuZXh0IHRvcGljLCA8c3BhY2U+IHRvIGV4aXQgaGVscC4AUHJlc3MgYSBrZXkgZnJvbSB0aGUgbGlzdCBhYm92ZSwgPHNwYWNlPiBvciBgcScgdG8gZXhpdCBoZWxwLAogIG9yIGAuJyAoZnVsbCBzdG9wKSB0byByZWFkIGVhY2ggaGVscCBwYWdlIGluIHR1cm4uIABQcmlvcml0eQBQdXJnZWQAUHVyZ2VkIHBhY2thZ2VzIGFuZCB0aG9zZSBuZXZlciBpbnN0YWxsZWQAUXVpdCBkc2VsZWN0LgBRdWl0IHdpdGhvdXQgY2hhbmdpbmcgc2VsZWN0ZWQgYWNjZXNzIG1ldGhvZABRdWl0LCBjb25maXJtaW5nIHdpdGhvdXQgY2hlY2sAUXVpdCwgY29uZmlybWluZywgYW5kIGNoZWNraW5nIGRlcGVuZGVuY2llcwBRdWl0LCByZWplY3RpbmcgY29uZmxpY3QvZGVwZW5kZW5jeSBzdWdnZXN0aW9ucwBSRUlOU1RBTEwAUmVkcmF3IGRpc3BsYXkAUmVtb3ZlIHVud2FudGVkIHNvZnR3YXJlLgBSZW1vdmVkAFJlbW92ZWQgYW5kIG5vIGxvbmdlciBhdmFpbGFibGUgcGFja2FnZXMAUmVtb3ZlZCBwYWNrYWdlcyAoY29uZmlndXJhdGlvbiBzdGlsbCBwcmVzZW50KQBSZXBlYXQgbGFzdCBzZWFyY2guAFJlcQBSZXF1ZXN0IGhlbHAgKGN5Y2xlIHRocm91Z2ggaGVscCBzY3JlZW5zKQBSZXF1ZXN0IHdoaWNoIHBhY2thZ2VzIHlvdSB3YW50IG9uIHlvdXIgc3lzdGVtLgBSZXF1aXJlZABSZXZlcnQgdG8gY3VycmVudGx5IGluc3RhbGxlZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFJldmVydCB0byBkaXJlY3RseSByZXF1ZXN0ZWQgc3RhdGUgZm9yIGFsbCBwYWNrYWdlcwBSZXZlcnQgdG8gb2xkIHN0YXRlIGZvciBhbGwgcGFja2FnZXMAUmV2ZXJ0IHRvIHN1Z2dlc3RlZCBzdGF0ZSBmb3IgYWxsIHBhY2thZ2VzAFNjcmVlbnBhcnRzOgoAU2Nyb2xsIGJhY2t3YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24AU2Nyb2xsIGJhY2t3YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24gYnkgMSBsaW5lAFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBsaXN0AFNjcm9sbCBiYWNrd2FyZHMgdGhyb3VnaCBsaXN0IGJ5IDEgbGluZQBTY3JvbGwgb253YXJkcyB0aHJvdWdoIGhlbHAvaW5mb3JtYXRpb24AU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBoZWxwL2luZm9ybWF0aW9uIGJ5IDEgbGluZQBTY3JvbGwgb253YXJkcyB0aHJvdWdoIGxpc3QAU2Nyb2xsIG9ud2FyZHMgdGhyb3VnaCBsaXN0IGJ5IDEgbGluZQBTZWFyY2ggZm9yID8gAFNlYXJjaCBmb3IgYSBwYWNrYWdlIHdob3NlIG5hbWUgY29udGFpbnMgYSBzdHJpbmcAU2VjdGlvbgBTZWxlY3QgY3VycmVudGx5LWhpZ2hsaWdodGVkIGFjY2VzcyBtZXRob2QAU2V0IHlvdXIgVEVSTSB2YXJpYWJsZSBjb3JyZWN0bHksIHVzZSBhIGJldHRlciB0ZXJtaW5hbCwKb3IgbWFrZSBkbyB3aXRoIHRoZSBwZXItcGFja2FnZSBtYW5hZ2VtZW50IHRvb2wgJXMuCgBTdGFuZGFyZABTdGQAU3dhcCBzb3J0IG9yZGVyIHByaW9yaXR5L3NlY3Rpb24AVGVybWluYWwgZG9lcyBub3QgYXBwZWFyIHRvIHN1cHBvcnQgY3Vyc29yIGFkZHJlc3NpbmcuCgBUZXJtaW5hbCBkb2VzIG5vdCBhcHBlYXIgdG8gc3VwcG9ydCBoaWdobGlnaHRpbmcuCgBUaGUgbGluZSB5b3UgaGF2ZSBoaWdobGlnaHRlZCByZXByZXNlbnRzIG1hbnkgcGFja2FnZXM7IGlmIHlvdSBhc2sgdG8gaW5zdGFsbCwgcmVtb3ZlLCBob2xkLCBldGMuIGl0IHlvdSB3aWxsIGFmZmVjdCBhbGwgdGhlIHBhY2thZ2VzIHdoaWNoIG1hdGNoIHRoZSBjcml0ZXJpb24gc2hvd24uCgpJZiB5b3UgbW92ZSB0aGUgaGlnaGxpZ2h0IHRvIGEgbGluZSBmb3IgYSBwYXJ0aWN1bGFyIHBhY2thZ2UgeW91IHdpbGwgc2VlIGluZm9ybWF0aW9uIGFib3V0IHRoYXQgcGFja2FnZSBkaXNwbGF5ZWQgaGVyZS4KWW91IGNhbiB1c2UgYG8nIGFuZCBgTycgdG8gY2hhbmdlIHRoZSBzb3J0IG9yZGVyIGFuZCBnaXZlIHlvdXJzZWxmIHRoZSBvcHBvcnR1bml0eSB0byBtYXJrIHBhY2thZ2VzIGluIGRpZmZlcmVudCBraW5kcyBvZiBncm91cHMuAFRoZSB0b3AgaGFsZiBvZiB0aGUgc2NyZWVuIHNob3dzIGEgbGlzdCBvZiBwYWNrYWdlcy4gIEZvciBlYWNoIHBhY2thZ2UgeW91IHNlZQpmb3VyIGNvbHVtbnMgZm9yIGl0cyBjdXJyZW50IHN0YXR1cyBvbiB0aGUgc3lzdGVtIGFuZCBtYXJrLiAgSW4gdGVyc2UgbW9kZSAodXNlCmB2JyB0byB0b2dnbGUgdmVyYm9zZSBkaXNwbGF5KSB0aGVzZSBhcmUgc2luZ2xlIGNoYXJhY3RlcnMsIGZyb20gbGVmdCB0byByaWdodDoKCiBFcnJvciBmbGFnOiBTcGFjZSAtIG5vIGVycm9yIChidXQgcGFja2FnZSBtYXkgYmUgaW4gYnJva2VuIHN0YXRlIC0gc2VlIGJlbG93KQogICAgICAgICAgICAgIGBSJyAgLSBzZXJpb3VzIGVycm9yIGR1cmluZyBpbnN0YWxsYXRpb24sIG5lZWRzIHJlaW5zdGFsbGF0aW9uOwogSW5zdGFsbGVkIHN0YXRlOiAgICAgU3BhY2UgICAgLSBub3QgaW5zdGFsbGVkOwogICAgICAgICAgICAgICAgICAgICAgIGAqJyAgICAgLSBpbnN0YWxsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgYC0nICAgICAtIG5vdCBpbnN0YWxsZWQgYnV0IGNvbmZpZyBmaWxlcyByZW1haW47CiAgIHBhY2thZ2VzIGluIHRoZXNlIHsgYFUnICAgICAtIHVucGFja2VkIGJ1dCBub3QgeWV0IGNvbmZpZ3VyZWQ7CiAgIHN0YXRlcyBhcmUgbm90ICAgIHsgYEMnICAgICAtIGhhbGYtY29uZmlndXJlZCAoYW4gZXJyb3IgaGFwcGVuZWQpOwogICAocXVpdGUpIHByb3Blcmx5ICB7IGBJJyAgICAgLSBoYWxmLWluc3RhbGxlZCAoYW4gZXJyb3IgaGFwcGVuZWQpOwogICBpbnN0YWxsZWQgICAgICAgICB7IGBXJyxgdCcgLSB0cmlnZ2VycyBhcmUgYXdhaXRlZCByZXNwLiBwZW5kaW5nLgogT2xkIG1hcms6IHdoYXQgd2FzIHJlcXVlc3RlZCBmb3IgdGhpcyBwYWNrYWdlIGJlZm9yZSBwcmVzZW50aW5nIHRoaXMgbGlzdDsKIE1hcms6IHdoYXQgaXMgcmVxdWVzdGVkIGZvciB0aGlzIHBhY2thZ2U6CiAgYConOiBtYXJrZWQgZm9yIGluc3RhbGxhdGlvbiBvciB1cGdyYWRlOwogIGAtJzogbWFya2VkIGZvciByZW1vdmFsLCBidXQgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgd2lsbCByZW1haW47CiAgYD0nOiBvbiBob2xkOiBwYWNrYWdlIHdpbGwgbm90IGJlIHByb2Nlc3NlZCBhdCBhbGw7CiAgYF8nOiBtYXJrZWQgZm9yIHB1cmdlIGNvbXBsZXRlbHkgLSBldmVuIHJlbW92ZSBjb25maWd1cmF0aW9uOwogIGBuJzogcGFja2FnZSBpcyBuZXcgYW5kIGhhcyB5ZXQgdG8gYmUgbWFya2VkIGZvciBpbnN0YWxsL3JlbW92ZS8mYy4KCkFsc28gZGlzcGxheWVkIGFyZSBlYWNoIHBhY2thZ2UncyBQcmlvcml0eSwgU2VjdGlvbiwgbmFtZSwgaW5zdGFsbGVkIGFuZAphdmFpbGFibGUgdmVyc2lvbiBudW1iZXJzIChzaGlmdC1WIHRvIGRpc3BsYXkvaGlkZSkgYW5kIHN1bW1hcnkgZGVzY3JpcHRpb24uCgBUeXBlIGRzZWxlY3QgLS1oZWxwIGZvciBoZWxwLgBVbmNsYXNzaWZpZWQAVXAgdG8gZGF0ZSBpbnN0YWxsZWQgcGFja2FnZXMAVXAtdG8tZGF0ZQBVcGRhdGUgbGlzdCBvZiBhdmFpbGFibGUgcGFja2FnZXMsIGlmIHBvc3NpYmxlLgBVcGRhdGVkAFVwZGF0ZWQgcGFja2FnZXMgKG5ld2VyIHZlcnNpb24gaXMgYXZhaWxhYmxlKQBVc2FnZTogJXMgWzxvcHRpb24+IC4uLl0gWzxhY3Rpb24+IC4uLl0KCgBXZWxjb21lIHRvIGRzZWxlY3QncyBtYWluIHBhY2thZ2UgbGlzdGluZy4KCllvdSB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgbGlzdCBvZiBwYWNrYWdlcyB3aGljaCBhcmUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZQpmb3IgaW5zdGFsbGF0aW9uLiAgU2luY2UgeW91IGRvIG5vdCBoYXZlIHRoZSBwcml2aWxlZ2UgbmVjZXNzYXJ5IHRvIHVwZGF0ZQpwYWNrYWdlIHN0YXRlcywgeW91IGFyZSBpbiBhIHJlYWQtb25seSBtb2RlLiAgWW91IGNhbiBuYXZpZ2F0ZSBhcm91bmQgdGhlCmxpc3QgdXNpbmcgdGhlIGN1cnNvciBrZXlzIChwbGVhc2Ugc2VlIHRoZSBgS2V5c3Ryb2tlcycgaGVscCBzY3JlZW4pLCBvYnNlcnZlCnRoZSBzdGF0dXMgb2YgdGhlIHBhY2thZ2VzIGFuZCByZWFkIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCgpZb3Ugc2hvdWxkIHJlYWQgdGhlIGxpc3Qgb2Yga2V5cyBhbmQgdGhlIGV4cGxhbmF0aW9ucyBvZiB0aGUgZGlzcGxheS4KTXVjaCBvbi1saW5lIGhlbHAgaXMgYXZhaWxhYmxlLCBwbGVhc2UgbWFrZSB1c2Ugb2YgaXQgLSBwcmVzcyBgPycgYXQKYW55IHRpbWUgZm9yIGhlbHAuCgpXaGVuIHlvdSBoYXZlIGZpbmlzaGVkIGJyb3dzaW5nLCBwcmVzcyBgUScgb3IgPGVudGVyPiB0byBxdWl0LgoKUHJlc3MgPHNwYWNlPiB0byBsZWF2ZSBoZWxwIGFuZCBlbnRlciB0aGUgbGlzdCBub3cuCgBXZWxjb21lIHRvIGRzZWxlY3QncyBtYWluIHBhY2thZ2UgbGlzdGluZy4KCllvdSB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgbGlzdCBvZiBwYWNrYWdlcyB3aGljaCBhcmUgaW5zdGFsbGVkIG9yIGF2YWlsYWJsZQpmb3IgaW5zdGFsbGF0aW9uLiAgWW91IGNhbiBuYXZpZ2F0ZSBhcm91bmQgdGhlIGxpc3QgdXNpbmcgdGhlIGN1cnNvciBrZXlzLAptYXJrIHBhY2thZ2VzIGZvciBpbnN0YWxsYXRpb24gKHVzaW5nIGArJykgb3IgZGVpbnN0YWxsYXRpb24gKHVzaW5nIGAtJykuClBhY2thZ2VzIGNhbiBiZSBtYXJrZWQgZWl0aGVyIHNpbmdseSBvciBpbiBncm91cHM7IGluaXRpYWxseSB5b3Ugd2lsbCBzZWUgdGhhdAp0aGUgbGluZSBgQWxsIHBhY2thZ2VzJyBpcyBzZWxlY3RlZC4gIGArJywgYC0nIGFuZCBzbyBvbiB3aWxsIGFmZmVjdCBhbGwgdGhlCnBhY2thZ2VzIGRlc2NyaWJlZCBieSB0aGUgaGlnaGxpZ2h0ZWQgbGluZS4KClNvbWUgb2YgeW91ciBjaG9pY2VzIHdpbGwgY2F1c2UgY29uZmxpY3RzIG9yIGRlcGVuZGVuY3kgcHJvYmxlbXM7IHlvdSB3aWxsIGJlCmdpdmVuIGEgc3ViLWxpc3Qgb2YgdGhlIHJlbGV2YW50IHBhY2thZ2VzLCBzbyB0aGF0IHlvdSBjYW4gc29sdmUgdGhlIHByb2JsZW1zLgoKWW91IHNob3VsZCByZWFkIHRoZSBsaXN0IG9mIGtleXMgYW5kIHRoZSBleHBsYW5hdGlvbnMgb2YgdGhlIGRpc3BsYXkuCk11Y2ggb24tbGluZSBoZWxwIGlzIGF2YWlsYWJsZSwgcGxlYXNlIG1ha2UgdXNlIG9mIGl0IC0gcHJlc3MgYD8nIGF0CmFueSB0aW1lIGZvciBoZWxwLgoKV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBzZWxlY3RpbmcgcGFja2FnZXMsIHByZXNzIDxlbnRlcj4gdG8gY29uZmlybSBjaGFuZ2VzLApvciBgWCcgdG8gcXVpdCB3aXRob3V0IHNhdmluZyBjaGFuZ2VzLiBBIGZpbmFsIGNoZWNrIG9uIGNvbmZsaWN0cyBhbmQKZGVwZW5kZW5jaWVzIHdpbGwgYmUgZG9uZSAtIGhlcmUgdG9vIHlvdSBtYXkgc2VlIGEgc3VibGlzdC4KClByZXNzIDxzcGFjZT4gdG8gbGVhdmUgaGVscCBhbmQgZW50ZXIgdGhlIGxpc3Qgbm93LgoAWHRyAFtBXWNjZXNzAFtDXW9uZmlnAFtJXW5zdGFsbABbUV11aXQAW1JdZW1vdmUAW1NdZWxlY3QAW1VdcGRhdGUAW25vdCBib3VuZF0AW3VuazogJWRdAGEAYXdhaXRpbmcgdHJpZ2dlciBwcm9jZXNzaW5nAGJVRwBicmVha3MAYwBjb2xvdXIAY29sb3VyIGF0dHJpYnV0ZQBjb25mbGljdHMgd2l0aABjb3VsZG4ndCBvcGVuIGRlYnVnIGZpbGUgYCUuMjU1cycKAGRlcGVuZHMgb24AZG91cGRhdGUgZmFpbGVkAGRvdXBkYXRlIGluIFNJR1dJTkNIIGhhbmRsZXIgZmFpbGVkAGRzZWxlY3QgLSBpbnNwZWN0aW9uIG9mIHBhY2thZ2Ugc3RhdGVzAGRzZWxlY3QgLSBsaXN0IG9mIGFjY2VzcyBtZXRob2RzAGRzZWxlY3QgLSBtYWluIHBhY2thZ2UgbGlzdGluZwBkc2VsZWN0IC0gcmVjdXJzaXZlIHBhY2thZ2UgbGlzdGluZwBkc2VsZWN0IGFuZCBkcGtnIGNhbiBkbyBhdXRvbWF0aWMgaW5zdGFsbGF0aW9uLCBsb2FkaW5nIHRoZSBwYWNrYWdlIGZpbGVzIHRvIGJlCmluc3RhbGxlZCBmcm9tIG9uZSBvZiBhIG51bWJlciBvZiBkaWZmZXJlbnQgcG9zc2libGUgcGxhY2VzLgoKVGhpcyBsaXN0IGFsbG93cyB5b3UgdG8gc2VsZWN0IG9uZSBvZiB0aGVzZSBpbnN0YWxsYXRpb24gbWV0aG9kcy4KCk1vdmUgdGhlIGhpZ2hsaWdodCB0byB0aGUgbWV0aG9kIHlvdSB3aXNoIHRvIHVzZSwgYW5kIGhpdCBFbnRlci4gIFlvdSB3aWxsIHRoZW4KYmUgcHJvbXB0ZWQgZm9yIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBkbyB0aGUgaW5zdGFsbGF0aW9uLgoKQXMgeW91IG1vdmUgdGhlIGhpZ2hsaWdodCBhIGRlc2NyaXB0aW9uIG9mIGVhY2ggbWV0aG9kLCB3aGVyZSBhdmFpbGFibGUsIGlzCmRpc3BsYXllZCBpbiB0aGUgYm90dG9tIGhhbGYgb2YgdGhlIHNjcmVlbi4KCklmIHlvdSB3aXNoIHRvIHF1aXQgd2l0aG91dCBjaGFuZ2luZyBhbnl0aGluZyB1c2UgdGhlIGB4JyBrZXkgd2hpbGUgaW4gdGhlIGxpc3QKb2YgaW5zdGFsbGF0aW9uIG1ldGhvZHMuCgpBIGZ1bGwgbGlzdCBvZiBrZXlzdHJva2VzIGlzIGF2YWlsYWJsZSBieSBwcmVzc2luZyBgaycgbm93LCBvciBmcm9tIHRoZSBoZWxwCm1lbnUgcmVhY2hhYmxlIGJ5IHByZXNzaW5nIGA/Jy4KAGVuaGFuY2VzAGVycm9yIGR1cmluZyByZWFkIG9mIG1ldGhvZCBvcHRpb25zIGZpbGUgYCUuMjUwcycAZXJyb3IgZHVyaW5nIHJlYWQgb2Ygb3B0aW9uIGRlc2NyaXB0aW9uIGZpbGUgYCUuMjUwcycAZXJyb3IgaW4gcmVndWxhciBleHByZXNzaW9uAGVycm9yIHJlYWRpbmcgYWNrbm93bGVkZ2VtZW50IG9mIHByb2dyYW0gZmFpbHVyZSBtZXNzYWdlAGVycm9yIHJlYWRpbmcga2V5Ym9hcmQgaW4gaGVscABlcnJvciByZWFkaW5nIG9wdGlvbnMgZmlsZSBgJS4yNTBzJwBmYWlsZWQgdG8gYWxsb2NhdGUgY29sb3VyIHBhaXIAZmFpbGVkIHRvIGJsb2NrIFNJR1dJTkNIAGZhaWxlZCB0byBjcmVhdGUgYmFzZWxpc3QgcGFkAGZhaWxlZCB0byBjcmVhdGUgaGVhZGluZyBwYWQAZmFpbGVkIHRvIGNyZWF0ZSBpbmZvIHBhZABmYWlsZWQgdG8gY3JlYXRlIHF1ZXJ5IHdpbmRvdwBmYWlsZWQgdG8gY3JlYXRlIHRoaXNzdGF0ZSBwYWQAZmFpbGVkIHRvIGNyZWF0ZSB0aXRsZSB3aW5kb3cAZmFpbGVkIHRvIGNyZWF0ZSB3aGF0aW5mbyB3aW5kb3cAZmFpbGVkIHRvIGdldCBvbGQgU0lHV0lOQ0ggc2lnYWN0AGZhaWxlZCB0byBnZXQgb2xkIHNpZ25hbCBtYXNrAGZhaWxlZCB0byBnZXRjaCBpbiBtYWluIG1lbnUAZmFpbGVkIHRvIHJlLWJsb2NrIFNJR1dJTkNIAGZhaWxlZCB0byByZWFkIG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAGZhaWxlZCB0byByZXN0b3JlIG9sZCBTSUdXSU5DSCBzaWdhY3QAZmFpbGVkIHRvIHJlc3RvcmUgb2xkIHNpZ25hbCBtYXNrAGZhaWxlZCB0byBzZXQgbmV3IFNJR1dJTkNIIHNpZ2FjdABmYWlsZWQgdG8gdW5ibG9jayBTSUdXSU5DSABnZXRjaCBmYWlsZWQAaGFsZiBpbnN0YWxsZWQAaG9sZABpAGluZGV4IHN0cmluZyB0b28gbG9uZwBpbnN0YWxsAGluc3RhbGxhdGlvbiBzY3JpcHQAaW5zdGFsbGVkAGludmFsaWQgc2VhcmNoIG9wdGlvbiBnaXZlbgBpb2N0bChUSU9DR1dJTlNaKSBmYWlsZWQAbWVudQBtZXRob2QgYCUuMjUwcycgaGFzIG5hbWUgdGhhdCBpcyB0b28gbG9uZyAoJWQgPiAlZCBjaGFyYWN0ZXJzKQBuZXcgcGFja2FnZQBuZXdsaW5lIGJlZm9yZSBvcHRpb24gbmFtZSBzdGFydABuZXdsaW5lIGJlZm9yZSBzdW1tYXJ5AG5vbi1hbHBoYW51bSBpbiBvcHRpb24gbmFtZQBub24tZGlnaXQgd2hlcmUgZGlnaXQgd2FudGVkAG5vbmFscGhhIHdoZXJlIG9wdGlvbiBuYW1lIHN0YXJ0IHdhbnRlZABub3QgaW5zdGFsbGVkAHByZS1kZXBlbmRzIG9uAHByb3ZpZGVzAHB1cmdlAHEAcXVlcnkvc2V0dXAgc2NyaXB0AHIAcmVjb21tZW5kcwByZW1vdmUAcmVtb3ZlZCAoY29uZmlncyByZW1haW4pAHJlcGxhY2VzAHMAc2NyZWVuIHBhcnQAc3VnZ2VzdHMAc3ludGF4IGVycm9yIGluIG1ldGhvZCBvcHRpb25zIGZpbGUgYCUuMjUwcycgLS0gJXMAdGVybWluYWwgbGFja3MgbmVjZXNzYXJ5IGZlYXR1cmVzLCBnaXZpbmcgdXAAdHJpZ2dlcmVkAHUAdW5hYmxlIHRvIGFjY2VzcyBtZXRob2Qgc2NyaXB0IGAlLjI1MHMnAHVuYWJsZSB0byBjbG9zZSBuZXcgb3B0aW9uIGZpbGUgYCUuMjUwcycAdW5hYmxlIHRvIGluc3RhbGwgbmV3IG9wdGlvbiBhcyBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBjdXJyZW50IG9wdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBvcGVuIG5ldyBvcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gb3BlbiBvcHRpb24gZGVzY3JpcHRpb24gZmlsZSBgJS4yNTBzJwB1bmFibGUgdG8gcmVhZCBgJS4yNTBzJyBkaXJlY3RvcnkgZm9yIHJlYWRpbmcgbWV0aG9kcwB1bmFibGUgdG8gcmVhZCBtZXRob2Qgb3B0aW9ucyBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byBzdGF0IG9wdGlvbiBkZXNjcmlwdGlvbiBmaWxlIGAlLjI1MHMnAHVuYWJsZSB0byB3cml0ZSBuZXcgb3B0aW9uIHRvIGAlLjI1MHMnAHVua25vd24gYWN0aW9uIHN0cmluZyBgJS41MHMnAHVucGFja2VkIChub3Qgc2V0IHVwKQB1cGRhdGUgYXZhaWxhYmxlIGxpc3Qgc2NyaXB0AFByb2plY3QtSWQtVmVyc2lvbjogZXUKUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGRlYmlhbi1kcGtnQGxpc3RzLmRlYmlhbi5vcmcKUE9ULUNyZWF0aW9uLURhdGU6IDIwMTEtMTAtMTQgMDc6MTErMDIwMApQTy1SZXZpc2lvbi1EYXRlOiAyMDA5LTAxLTA1IDE2OjI5KzAxMDAKTGFzdC1UcmFuc2xhdG9yOiBQaWFycmVzIEJlb2JpZGUgPHBpQGJlb2JpZGUubmV0PgpMYW5ndWFnZS1UZWFtOiBFdXNrYXJhIDxkZWJpYW4tbDEwbi1iYXNxdWVAbGlzdHMuZGViaWFuLm9yZz4KTGFuZ3VhZ2U6IGV1Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtR2VuZXJhdG9yOiBLQmFiZWwgMS4xMS40ClBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpCgAKCiVzOiAlcwoACgpNdWdpdHpla28sIGVyYWJpbGkgXlAgZXRhIF5OLCBrdXJ0c29yZS10ZWtsYWssIGhhc2llcmFrbyBsZXRyYWssIGVkbyBkaWdpdHVhazsKSGF1dGF0emVrbywgc2FrYXR1IDxzYXJ0dT4uIEVyYWJpbGkgXkwgcGFudGFpbGEgYmVycmlybyBtYXJyYXp0ZWtvLgoKAAoKU29pbGlrIGlyYWt1cnR6ZWtvIHNhcmJpZGVhOiBoYXV0YXBlbmVuIGF1cnJlYmlzdGEgYmFrYXJyaWsgZGFnbyBlcmFiaWxnYXJyaSEACkphcnJhaXR6ZWtvLCBzYWthdHUgPHNhcnR1Pi4AIAAgIC0tICVkJSUsIHNha2F0dSAAIChhbGZhYmV0aWtva2kpACAoZXJhYmlsZy4sIGxlaGVudGFzdW5hKQAgKGVyYWJpbGcuLCBzZWt6aW9hKQAgKGVyYWJpbGdhcnJpdGFzdW5hcmVuIGFyYWJlcmEpACAobGVoZW50YXN1bmFyZW4gYXJhYmVyYSkAIChzZWt6aW9hcmVuIGFyYWJlcmEpACAoZWdvZXJhcmVuIGFyYWJlcmEpACAoZWdvZXJhLCBsZWhlbnRhc3VuYSkAIChlZ29lcmEsIHNla3ppb2EpACA6IGV6IGRpcnVkaSBlcmFiaWxnYXJyaSBkYWdvZW5pawoAIG1hcmthOisvPS8tIGxhYnVyOnYgbGFndW50emE6PwAgbWFya2E6Ky89Ly0geGVoZWtpOnYgbGFndW50emE6PwAgZWRvIAAgbGFidXI6diBsYWd1bnR6YTo/ACB4ZWhla2k6diBsYWd1bnR6YTo/AFByb2dyYW1hLWVycm9yZWEAJS0qcyAlcyVzJXM7ICAlcyAobGVoZW46ICVzKS4gICVzACVzICVzIHBha2V0ZWFrACVzICVzIHBha2V0ZSAlcyBzZWt6aW9hbgAlcyAlcyBwYWtldGUgc2VremlvcmlrIGdhYmUAJXMgZ2VoaWFnb3Jha28AJXMgcGFrZXRlICVzIHNla3ppb2FuACVzIHBha2V0ZSBzZWt6aW9yaWsgZ2FiZQAlcyBhdHplcmEgam9hdGVrbwAqIE5hYmFybWVudHplYTogUGFrZXRlLXplcnJlbmRha28gbGVycm8gYmF0IG5hYmFybWVuZHV0YSBlZ29uZ28gZGEuICBgKycsIGAtJyAKICBldGEgYF8nIHNha2F0emVhbiB6ZWluIHBha2V0ZSBzYXJ0dWtvIGQoaXIpZW4gYWRpZXJhenRlbiBkdS4KCiogUGFudGFpbGEgZXJkaWJpdHplbiBkdWVuIGxlcnJvYWsgdW5lYW4gbmFiYXJtZW5kdXRha28gcGFrZXRlYXJlbiBlZ29lcmFyZW4KICBhemFscGVuIGxhYnVycmEgZXJha3VzdGVuIGR1LCBlZG8gdGFsZGVhcmVuIGF6YWxwZW5hIHRhbGRlLWxlcnJvYSBuYWJhcm1lbmR1dGEKICBiYWRhZ28uIElrdXN0ZW4gZGl0dXp1biBrYXJha3RlcmUgYmF0enVrIHVsZXJ0emVuIGV6IGJhZGl0dXp1LCBqb2FuCiAgcGFrZXRlIG5hZ3VzaXJhLCBldGEgYmVnaXJhdHUgbGVycm8gYmFuYXR6YWlsZWFuLCBlZG8gZXJhYmlsaSBgdicgdGVrbGEgCiAgaW5mb3JtYXppbyB4ZWhlYSBpemF0ZWtvLiAoc2FrYXR1IGB2JyBiZXJyaXJvIGxhYnVydHV0YSBpa3VzdGVrbykuCgoqIFBhbnRhaWxhcmVuIGJlaGVhbGRlYW4gdW5lYW4gbmFiYXJtZW5kdXRha28gcGFrZXRlYXJpIGJ1cnV6a28gaW5mb3JtYXppbwogIGdlaGlhZ28gYmlzdGFyYXR6ZW4gZGEgKGJhdCBiYWthcnJpayBiYWRhZ28pLgoKICBQYWtldGVhcmVuIGF6YWxwZW4gbHV6ZWFnb2EgZXJha3V0cyBkZXpha2UsIHBha2V0ZWFyZW4gYmFybmVrbyBrb250cm9sZWtvCiAgeGVoZXRhc3VuYWsgKGluc3RhbGF0dXRhIGVkbyBlcmFiaWxnYXJyaSBkYWdvZW4gYmVydHNpb2FyaSBkYWdva2lvbmV6KQogIGVkbyB1bmVrbyBwYWtldGVhcmkgZGFnb3praW9uIGdhdGF6a2VpIGV0YSBtZW5kZWtvdGFzdW5laSBidXJ1emtvCiAgaW5mb3JtYXppb2EgKGdhdGF6a2EvbWVuZGVrb3Rhc3VuYSBlYmF6dGVrbyBhenBpemVycmVuZGV0YW4pLgoKICBFcmFiaWxpIGBpJyB0ZWtsYSBwYW50YWlsZXRhbiB6ZWhhciBtdWdpdHpla28sIGV0YSBgSScgaW5mb3JtYXppb2EKICBlemt1dGF0emVrbyBlZG8gaWEgcGFudGFpbGEgb3NvYSBlcmFiaWx0emVrbyB6YWJhbHR6ZWtvLgoAPwBMYWJ1cmQuAEFib3J0YXR1IC0gaXJ0ZW4gYWxkYWtldGFyaWsgZWdpbiBnYWJlAGAlcycgYXR6aXBlbi1tZXRvZG9hLgBFa2ludHphazoKICBhY2Nlc3MgdXBkYXRlIHNlbGVjdCBpbnN0YWxsIGNvbmZpZyByZW1vdmUgcXVpdAoKAERlbmFrAFBha2V0ZSBndXp0aWFrAEF0cmlidXR1YWs6CgBCZXJ0cy4gZXJhYmlsZy4ARXJhYmlsZ2FycmkAS29udHJvbCBmaXR4YXRlZ2lhcmVuIGluZm9ybWF6aW8gZXJhYmlsZ2FycmlhAFBha2V0ZSBlcmFiaWxnYXJyaWFrIChleiBkYXVkZSBpbnN0YWxhdHV0YSkASGF1dHNpdGEAR2FpemtpIGluc3RhbGF0dXRha28gcGFrZXRlYWsAQXVrZXJhdHUgZXJhYmlsaSBuYWhpIGR1enVuIGF0emlwZW4tbWV0b2RvYS4AS29sb3JlYWs6CgBLb25maWd1cmF0dSBrb25maWd1cmF0dSBnYWJlIGRhdWRlbiBwYWtldGVhay4AQ29weXJpZ2h0IChDKSAxOTk0LTE5OTYgSWFuIEphY2tzb24uCkNvcHlyaWdodCAoQykgMjAwMCwyMDAxIFdpY2hlcnQgQWtrZXJtYW4uCgBKb2FuIGluZm9ybWF6aW8tcGFudGFpbGEgYmF0ZXRpayBiZXN0ZXJhAERlYmlhbi1lbiBwYWtldGUga3VkZWF0emVrbyBgJXMnIGludGVyZmF6ZWFyZW4gJXMgYmVydHNpb2EuCgBHYXRhemthL21lbmRla290YXN1bmEgZWJhenRlYSAtIHNhcnJlcmEuCgpadXJlIGF1a2VyZXRha29yZW4gYmF0ZWsgZ2F0YXprYSBlZG8gbWVuZGVrb3Rhc3VuLWFyYXpvcmVuIGJhdCBzb3J0dSBkdSAtCnBha2V0ZSBiYXR6dWsgYmVzdGUgYmF0enVla2luIGJhdGVyYSBiYWthcnJpayBpbnN0YWxhIGRhaXRlemtlLCBldGEKcGFrZXRlIGJhdHp1ayBlemluIGRpcmEgYmVzdGUgcGFrZXRlIGJhdHp1ZWtpbiBiYXRlcmEgaW5zdGFsYXR1LgoKQXJhem9hIGR1dGVuIHBha2V0ZWVuIGF6cGl6ZXJyZW5kYSBiYXQgaWt1c2lrbyBkdXp1LiBQYW50YWlsYXJlbiBiZWhla28KYWxkZWFuIGdhdGF6a2EgZXRhIG1lbmRla290YXN1biBuYWd1c2lhayBlcmFrdXN0ZW4gZGlyYTsgZXJhYmlsaSBgaScKaG9ydGlrIHBha2V0ZS1hemFscGVuZXJhIGV0YSBiYXJuZWtvIGtvbnRyb2xhcmVuIGluZm9ybWF6aW9hcmVuIGFsZGF0emVrby4KCmBJcmFkb2tpdGFrbycgcGFrZXRlLW11bHR6byBiYXQga2Fsa3VsYXR1IGRhLCBldGEgYXpwaXplcnJlbmRha28gbWFya2FrIGVnb2tpdHUgCmRpcmEgbXVsdHpvIGhvcnJla2luIGJhdCBldG9ydHpla287IGJlcmF6LCBTYXJ0dSBzYWthdHplYSBuYWhpa29hIGl6YW5nbyBkYSwgCm5haGkgYmFkdXp1LCBpcmFkb2tpenVuYWsgb25hcnR6ZWtvLiBBcmF6b2FrIHNvcnR1IGRpdHV6dGVuIGFsZGFrZXRhayBhYm9ydGF0dSAKYWhhbCBpemFuZ28gZGl0dXp1LCBldGEgemVycmVuZGEgbmFndXNpcmEgaXR6dWxpLCBgWCcgbWFpdXNrdWxhIHNha2F0dXouCgpaZXJyZW5kYW4gemVoYXIgbXVnaSB6YWl0ZXprZSBldGEgbWFya2FrIGFsZGF0dSB6dXJlIG5haGllbiBhcmFiZXJhLCBldGEKbmlyZSBpcmFkb2tpenVuYWsgYGV6ZXRzJyBkaXR6YWtlenUsIGBEJyBlZG8gYFInIG1haXVza3VsYSB0ZWtsYWsgc2FrYXR1eiAoaWt1cwpsYXN0ZXItdGVrbGVuIGxhZ3VudHphLXBhbnRhaWxhKS4gYFEnIG1haXVza3VsYSBzYWthIGRlemFrZXp1IHVuZWFuYmlzdGFyYXR1dGFrbwplZ29lcmEgb25hciBkZXphZGFuIGJlaGFydHpla28sIGlyYWRva2l6dW4gYmF0IGdhaW5pZGF0emkgbmFoaSBiYWR1enUsIGVkbwp1c3RlIGJhZHV6dSBwcm9ncmFtYSBva2VyIGRhYmlsZWxhLgoKU2FrYXR1IDxzYXJ0dT4gbGFndW50emF0aWsgaXJ0ZW4gZXRhIGF6cGl6ZXJyZW5kYXJhIGpvYXRla287IGdvZ29yYXR1OiBsYWd1bnR6YSBiZWhhciBpemFuZXogZ2Vybywgc2FrYXR1IGA/Jy4KAEF6YWxwZW5hAEJpc3RhcmF0emVhLCAxLiB6YXRpYTogcGFrZXRlZW4gemVycmVuZGEgZXRhIGVnb2VyYS1rYXJha3RlcmVhawBCaXN0YXJhdHplYSwgMi4gemF0aWE6IHplcnJlbmRhIG5hYmFybWVudHplYTsgaW5mb3JtYXppb2EgYmlzdGFyYXR6ZWEARUlPTQBFT0YgYXVrZXJhLWl6ZW5hcmVuIGhhc2llcmFyZW4gYXVycmV0aWsARU9GIGxhYnVycGVuYXJlbiBhdXJyZXRpawBFT0YgaW5kaXplLWthdGVhbgBFT0YgYXVrZXJhLWl6ZW5lYW4ARU9GIGxhYnVycGVuZWFuIC0gbGVycm8tamF1emlhIGZhbHRhIGRhAEVycm9yZWEARXJyb3JlYTogAEF6YWxwZW5hAEVzdHJhAEpvYW4gemVycmVuZGFyZW4gYW1haWVyYXJhAEpvYW4gemVycmVuZGFyZW4gaGFzaWVyYXJhAExhZ3VudHpha28gaW5mb3JtYXppb2EgZ2FpIGhhdWV0YW4gZGFnbyBlcmFiaWxnYXJyaToATGFndW50emE6IABHYXIuAEdhcnJhbnR6aXprb2EASW5zdC4gYmVydHMuAEluc3RhbGF0dSBldGEgYmVydHNpby1iZXJyaXR1IG5haGkgZGl0dXp1biBwYWtldGVhay4ASW5zdGFsYXR1dGEAaW5zdGFsYXR1dGFrbyBrb250cm9sIGZpdHhhdGVnaWFyZW4gaW5mb3JtYXppb2EASW5zdGFsYXR1dGFrbyBwYWtldGVhawBJbnN0YWxhdHV0YT8AaW50ZXJyZWxhemlvYWsAR2F0YXprYS9tZW5kZWtvdGFzdW5hIGViYXp0ZWtvIGF6cGl6ZXJyZW5kYXJlbiBzYXJyZXJhAE1ldG9kby1oYXV0YXBlbmFyZW4gc2FycmVyYQBQYWtldGUtaGF1dGFwZW5lbiBzYXJyZXJhAFNvaWxpayBpcmFrdXJ0emVrbyBwYWtldGVlbiB6ZXJyZW5kYXJlbiBhcmFrYXR6YWlsZWFyZW4gc2FycmVyYQAlcyBgJXMnIGJhbGlvZ2FiZWEKAExhc3Rlci10ZWtsYWsAVGVrbGEtc2FrYXR6ZWFrAE1ldG9kb2EgaGF1dGF0emVrbyB0ZWtsYS1zYWthdHplYWsATmFiYXJtZW5kdSB6ZWhhenRhc3VuIGd1dHhpYWdvegBOYWJhcm1lbmR1IHplaGF0emFnbwBNYXJrYXR1IHBha2V0ZWEoaykgZGVzaW5zdGFsYXR6ZWtvIGV0YSBwdXJnYXR6ZWtvAE1hcmthdHUgcGFrZXRlYShrKSBkZXNpbnN0YWxhdHpla28ATWFya2F0dSBwYWtldGVhKGspIGluc3RhbGF0emVrbwBIb25lbGEgbWFya2F0dWE6AE11Z2l0emVrbyB0ZWtsYWs6IEh1cnIuL0F1cnIuLCBIYXNpLi9BbWFpLiwgR29yYS9CZWhlcmEsIEF0emVyYS9BdXJyZXJhOgogIEJlaGVyYSBnZXppYSwgaiAgICAgIEdvcmEgZ2V6aWEsIGsgICAgICAgICBtdWdpdHUgbmFiYXJtZW5kdXRha29hCiAgTiwgT3JyQmVoLCBadXJpdW5lYSAgICAgUCwgT3JyR28sIGF0emVyYS10ZWtsYSAgIGtvcnJpdHUgemVycmVuZGEgb3JyaSAxCiAgXm4gICAgICAgICAgICAgICAgICAgICAgXnAgICAgICAgICAgICAgICAgICAgICAgIGtvcnJpdHUgemVycmVuZGEgbGVycm8gMQogIHQsIEhhc2kgICAgICAgICAgICAgICAgIGUsIEJ1a2EgICAgICAgICAgICAgICAgICBqb2FuIGhhc2llcmFyYS9hbWFpZXJhcmEKICB1ICAgICAgICAgICAgICAgICAgICAgICBkICAgICAgICAgICAgICAgICAgICAgICAga29ycml0dSBpbmYuIG9ycmkgMQogIF51ICAgICAgICAgICAgICAgICAgICAgIF5kICAgICAgICAgICAgICAgICAgICAgICBrb3JyaXR1IGluZi4gbGVycm8gMQogIEIsIEV6a2VycmVyYSBnZXppYSAgICAgIEYsIEVza3VpbmVyYSBnZXppYSAgICAgICBrb3JyaXR1IGhvcml6b250YWxraQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFudGFpbGFyZW4gMS8zCiAgXmIgICAgICAgICAgICAgICAgICAgIF5mICAgICAgICAgICAgICAgICAgICAgICAgIGtvcnJpdHUgaG9yaXpvbnRhbGtpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrYXJha3RlcmUgYmF0CgpNYXJrYXR1IHBha2V0ZWFrIGdlcm9hZ28gcHJvemVzYXR6ZWtvOgogKywgVHhlcnQgIGluc3RhbGF0dSBlZG8gYmVydHNpby1iZXJyaXR1ICAgID0sIEggIGhpem96dHUgdW5la28gZWdvZXJhbgogLSwgRXphYiAgIGtlbmR1ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDosIEcgIGRlc2hpem96dHU6IGJlcnRzaW8tYmVycml0dQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZG8gdXR6aSBpbnN0YWxhdHUgZ2FiZQogXyAgICAgICAgIGtlbmR1IGV0YSBwdXJnYXR1IGtvbmZpZ3VyYXppb2EKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFpbmJhdDoKSXJ0ZW4sIGdhaW5pZGF0emkgKG1haXVza3VsYWshKTogICAgICAgICAgID8sIEYxIGVza2F0dSBsYWd1bnR6YSAoZWRvIExhZ3VudHphKQogU2FydHUgIEJlcnJldHNpLCBpcnRlbiAoZWdpYXp0YXR1IG1lbmRla290YXN1bmFrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgSSAgaW5mLiBwYW50YWlsYQogICBRICAgIEJlcnJldHNpLCBpcnRlbiAoZ2FpbmlkYXR6aSBtZW5kZWtvdGFzdW5haykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLCBPICBhbGRhdHUgb3JkZW5hdHpla28gYXVrZXJhCiBYLCBJaGVzICBJcnRlbiwgdXR6aSBlZ2luZGFrbyBhbGRha2V0YWsgICB2LCBWICBhbGRhdHUgZWdvZXJhIGJpc3RhcmF0emVrbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1a2VyYWsKICAgUiAgICAgTGVoZW5lcmF0dSBhdXJyZWtvIGVnb2VyYXJhICAgICAgIF5sICAgTWFycmF6dHUgYmVycmlybyBwYW50YWlsYQogICBVICAgICBlemFycmkgZGVuYSBpcmFkb2tpdGFrbyBlZ29lcmFuICAgIC8gICBiaWxhdHUgKFV6dGVrbzogJ1NhcnR1JykKICAgRCAgICAgZXphcnJpIGRlbmEgenV6ZW5lYW4gZXNrYXR1dGFrbyBlZ29lcmFuIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICBFcnJlcGlrYXR1IGF6a2VuIGJpbGFrZXRhCgBNdWdpdHpla28gdGVrbGFrOiBIdXJyLi9BdXJyLiwgSGFzaWVyYS9BbWFpZXJhLCBHb3JhL0JlaGVyYSwgQXR6ZXJhL0F1cnJlcmE6CiAgbiwgQmVoZXJhIGdlemlhICAgICAgIHAsIEdvcmEgZ2V6aWEgICAgICAgICAgICBtdWdpdHUgbmFiYXJtZW5kdXRha29hCiAgTiwgT3JyQmVoLCBadXJpdW5lYSAgIFAsIE9yckdvLCBhdHplcmEtdGVrbGEgICBrb3JyaXR1IHplcnJlbmRhIG9ycmkgMQogIF5uICAgICAgICAgICAgICAgICAgICBecCAgICAgICAgICAgICAgICAgICAgICAga29ycml0dSB6ZXJyZW5kYSBsZXJybyAxCiAgdCwgSGFzaSAgICAgICAgICAgICAgIGUsIEJ1a2EgICAgICAgICAgICAgICAgICBqb2FuIGhhc2llcmFyYS9hbWFpZXJhcmEKICB1ICAgICAgICAgICAgICAgICAgICAgZCAgICAgICAgICAgICAgICAgICAgICAgIGtvcnJpdHUgaW5mLiBvcnJpIDEKICBedSAgICAgICAgICAgICAgICAgICAgXmQgICAgICAgICAgICAgICAgICAgICAgIGtvcnJpdHUgaW5mLiBsZXJybyAxCiAgQiwgRXprZXJyZXJhIGdlemlhICAgIEYsIEVza3VpbmVyYSBnZXppYSAgICAgICBrb3JyaXR1IGhvcml6b250YWxraQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbnRhaWxhcmVuIDEvMwogIF5iICAgICAgICAgICAgICAgICAgICBeZiAgICAgICAgICAgICAgICAgICAgICAga29ycml0dSBob3Jpem9udGFsa2kKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrYXJha3RlcmUgYmF0CihNdWdpdHpla28gdGVrbGEgaGF1ZWsgcGFrZXRlZW4gemVycmVuZGFrbyBwYW50YWlsYWtvIGJlcmFrIGRpcmEuKQoKSXJ0ZW46CiBFbnRlciwgU2FydHUgIGhhdXRhdHUgbWV0b2RvIGhhdSBldGEgam9hbiBiZXJlIGtvbmYuIGVsa2Fycml6a2V0YXJhCiB4LCBYICAgICAgICAgICAgICAgICAgIGlydGVuLCBpbnN0YWxhemlvLW1ldG9kb2EgYWxkYXR1IGVkbyBrb25maWd1cmF0dSBnYWJlCgpIYWluYmF0OgogID8sIEhlbHAsIEYxICAgICAgZXNrYXR1IGxhZ3VudHphCiBebCAgICAgICAgICAgICAgICBtYXJyYXp0dSBiZXJyaXJvIHBhbnRhaWxhCiAgLyAgICAgICAgICAgICAgICBiaWxhdHUgKHV6dGVrbywgc2FrYXR1ICdzYXJ0dScpCiAgXCAgICAgICAgICAgICAgIGVycmVwaWthdHUgYXprZW4gYmlsYWtldGEKAEVyYW1hbiBiZWhlcmFudHoARXJhbWFuIGdvcmFudHoAQmVycmlhAFBha2V0ZSBlcmFiaWxnYXJyaSBiZXJyaWFrAEV6IGRhZ28gYXphbHBlbiBlcmFiaWxnYXJyaXJpay4ARXogZGFnbyBhemFscGVuIGVyYWJpbGdhcnJpcmlrLgBLb2xvcmUtemVoYXp0YXBlbiBudWx1YQoAU2lzdGVtYW4gZGF1ZGVuIHBha2V0ZSB6YWhhcmtpdHVhayBldGEgbG9rYWxhawBaYWhhcmtpdHVhL2xva2FsYQBNYXJrYSB6YWhhcnJhAEF1ay4AQXVrZXJha29hAEF1a2VyYWs6CiAgLS1hZG1pbmRpciA8ZGlyZWt0b3Jpb2E+ICAgPGRpcmVrdG9yaW9hPiBlcmFiaWxpICVzIGJlaGFycmVhbi4KICAtLWV4cGVydCAgICAgICAgICAgICAgICAgICBNb2R1IGF1cnJlcmF0dXJhIHBhc2EuCiAgLS1kZWJ1ZyA8Zml0eD4gfCAtRDxmaXR4PiAgQXJhenBlbmEgZ2FpdHUgaXJ0ZWVyYSA8Zml0eGF0ZWdpYT4tcmEgYmlkYWxpei4KICAtLWNvbG91ciB8IC0tY29sb3Igc2NyZWVucGFydDpbZm9yZWdyb3VuZF0sW2JhY2tncm91bmRdWzphdHRyWythdHRyKy4uXV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYW50YWlsYSBrb2xvcmVhayBrb25maWd1cmF0dS4KCgBQYWtldGVhAEphcnJhaXR6ZWtvLCBzYWthdHUgPHNhcnR1Pi4KAFNha2F0dSA/IGxhZ3VudHphLW1lbnVhIGlrdXN0ZWtvLCAnLicgaHVycmVuZ28gZ2FpcmEgam9hdGVrbywgPHp1cml1bmVhPiBsYWd1bnR6YXRpayBpcnRldGVrby4AU2FrYXR1IGdvaWtvIHplcnJlbmRha28gdGVrbGEgYmF0LCAgPHp1cml1bmVhPiBlZG8gYHEnIGxhZ3VudHphdGlrIGlydGV0ZWtvCiwgZWRvICcuJyAocHVudHVhKSBsYWd1bnR6YS1vcnJpYWsgYmFuYW4tYmFuYW4gaXJha3VydHpla28uIABMZWhlbnRhc3VuYQBQdXJnYXR1dGEAUHVyZ2F0dXRha28gcGFrZXRlYWsgZXRhIGlub2l6IGluc3RhbGF0dSBleiBkaXJlbmFrAElydGVuIGRzZWxlY3QtZXRpay4ASXJ0ZW4gaGF1dGF0dXRha28gYXR6aXBlbi1tZXRvZG9hIGFsZGF0dSBnYWJlAElydGVuLCBlZ2lhenRhdHUgZ2FiZSBiZXJyZXRzaXoASXJ0ZW4sIGJlcnJldHNpeiBldGEgbWVuZGVrb3Rhc3VuYWsgZWdpYXp0YXR1egBJcnRlbiwgZ2F0YXprYS9tZW5kZWtvdGFzdW5hIGlyYWRva2l6dW5hayBlemV0c2l6AEJFUlJJTlNUQUxBVFUATWFycmF6dHUgYmVycmlybyBwYW50YWlsYQBLZW5kdSBuYWhpIGV6IGR1enVuIHNvZnR3YXJlYS4AS2VuZHV0YQBLZW5kdSBkaXJlbiBldGEgb3JhaW4gZXJhYmlsZ2FycmkgZXogZGF1ZGVuIHBha2V0ZWFrAEtlbmR1dGFrbyBwYWtldGVhayAoa29uZmlndXJhemlvYSBiYWRhZ28gb3JhaW5kaWspAEVycmVwaWthdHUgYXprZW4gYmlsYWtldGEuAEJlaC4ARXNrYXR1IGxhZ3VudHphIChqb2FuIGxhZ3VudHphLXBhbnRhaWxhIGJhdGV0aWsgYmVzdGVyYSkARXNrYXR1IHNpc3RlbWFuIGl6YW4gbmFoaSBkaXR1enVuIHBha2V0ZWFrLgBCZWhhcnJlemtvYQBMZWhlbmVyYXR1IHBha2V0ZSBndXp0aWFrIHVuZWFuIGluc3RhbGF0dXJpayBkYWdvZW4gZWdvZXJhcmEATGVoZW5lcmF0dSBwYWtldGUgZ3V6dGlhayB6dXplbmVhbiBlc2thdHV0YWtvIGVnb2VyYXJhAExlaGVuZXJhdHUgcGFrZXRlIGd1enRpYWsgZWdvZXJhIHphaGFycmVyYQBMZWhlbmVyYXR1IHBha2V0ZSBndXp0aWFrIGlyYWRva2l0YWtvIGVnb2VyYXJhAFBhbnRhaWxhLXphdGlhazoKAEtvcnJpdHUgYXR6ZXJhIGxhZ3VudHphbi9pbmZvcm1hemlvYW4AS29ycml0dSBhdHplcmEgbGFndW50emFuL2luZm9ybWF6aW9hbiBsZXJybyAxAEtvcnJpdHUgYXR6ZXJhIHplcnJlbmRhbgBLb3JyaXR1IGF0emVyYSB6ZXJyZW5kYW4gbGVycm8gMQBLb3JyaXR1IGF1cnJlcmEgbGFndW50emFuL2luZm9ybWF6aW9hbgBLb3JyaXR1IGF1cnJlcmEgbGFndW50emFuL2luZm9ybWF6aW9hbiBsZXJybyAxAEtvcnJpdHUgYXVycmVyYSB6ZXJyZW5kYW4AS29ycml0dSBhdXJyZXJhIHplcnJlbmRhbiBsZXJybyAxAEJpbGF0dSBoYXU6IABCaWxhdHUgaXplbmVhbiBrYXRlIGJhdCBkdWVuIHBha2V0ZSBiYXQAU2VremlvYQBIYXV0YXR1IHVuZWFuIG5hYmFybWVuZHV0YWtvIGF0emlwZW4tbWV0b2RvYQBFemFycmkgb25kbyBURVJNIGFsZGFnYWlhLCBlcmFiaWxpIHRlcm1pbmFsIGhvYmUgYmF0LAplZG8gbW9sZGF0dSBwYWtldGV6IHBha2V0ZSBrdWRlYXR6ZWtvICVzIHRyZXNuYXJla2luIC4KAEVzdGFuZGFycmEARXN0ZC4AQWxkYXR1IGxlaGVudGFzdW5hL3Nla3ppb2Egb3JkZW5hdHpla28gaXJpenBpZGVhAEJhZGlydWRpIHRlcm1pbmFsYWsgZXogZHVlbGEgb25hcnR6ZW4ga3VydHNvcmUtaGVsYmlkZXJhdHplcmlrLgoAQmFkaXJ1ZGkgdGVybWluYWxhayBleiBkdWVsYSBvbmFydHplbiBuYWJhcm1lbnR6ZWEuCgBOYWJhcm1lbmR1IGR1enVuIGxlcnJvYWsgaGFpbmJhdCBwYWtldGUgYWRpZXJhenRlbiBkaXR1OyBpbnN0YWxhdHpla28sIGtlbnR6ZWtvIGVkbyBhdHhpa2l0emVrbyBlc2thdHV6IGdlcm8sIGVyYWt1dHNpdGFrbyBpcml6cGlkZWFyZWtpbiBiYXQgZGF0b3plbiBwYWtldGUgZ3V6dGlla2luIGVnaW5nbyBkYS4KCk5hYmFybWVudHplYSBwYWtldGUgamFraW4gYmF0ZWtvIGxlcnJvIGJhdGVyYSBlcmFtYXRlbiBiYWR1enUsIHBha2V0ZSBob3JyaSBidXJ1emtvIGluZm9ybWF6aW9hIGhlbWVuIGJpc3RhcmF0dWtvIGRhLgpFcmFiaWxpIGBvJyBldGEgYE8nIG9yZGVuYSBhbGRhdHpla28gZXRhIGF1a2VyYSBpemF0ZWtvIHRhbGRlLW1vdGEgZGVzYmVyZGluZXRha28gcGFrZXRlYWsgbWFya2F0emVrby4AUGFudGFpbGFyZW4gZ29pa28gZXJkaWFuIHBha2V0ZS16ZXJyZW5kYSBiYXQgZXJha3VzdGVuIGRhLiBQYWtldGUgYmFrb2l0emFrIGxhdQp6dXRhYmUgZGl0dSBzaXN0ZW1hbiBkdWVuIGVnb2VyYSBldGEgbWFya2EgYWRpZXJhenRla28uIE1vZHUgbGFidXJ0dWFuIChlcmFiaWxpCmB2JyB4ZWhla2kgYmlzdGFyYXR6ZWtvKSBrYXJha3RlcmUgYmFrdW5hayBkaXJhLCBlemtlcnJldGlrIGVza3VpbmVyYToKCiBFcnJvcmUtYmFuZGVyYTogWnVyaXVuZWEgLSBlcnJvcmVyaWsgZXogKGJhaW5hIGhhdXRzaXRhIGVnb24gbGl0ZWtlIC0gaWt1cyBiZWhlYW4pCiAgICAgICAgICAgICAgICAgYFInICAgICAgLSBlcnJvcmUgbGFycmlhIGluc3RhbGF6aW9hbiwgYmVycmlybyBpbnN0YWxhdHUgYmVoYXIgZGE7CiBJbnN0YWxhemlvLWVnb2VyYTogIFp1cml1bmVhIC0gaW5zdGFsYXR1IGdhYmU7CiAgICAgICAgICAgICAgICAgICAgIGAqJyAgICAgIC0gaW5zdGFsYXR1dGE7CiAgICAgICAgICAgICAgICAgICAgIGAtJyAgICAgIC0gaW5zdGFsYXR1IGdhYmUsIGJhaW5hIGtvbmYuIGZpdHhhdGVnaWFrIGJhZGF1ZGU7CiAgIGVnb2VyYSBoYXVldGFrbyB7IGBVJyAgLSBkZXNrb25wcmltaXR1dGEgYmFpbmEgb3JhaW5kaWsga29uZmlndXJhdHUgZ2FiZTsKICAgICAgcGFrZXRlYWsgICAgIHsgYEMnICAtIGVyZGkta29uZmlndXJhdHV0YSAoZXJyb3JlIGJhdCBnZXJ0YXR1IGRhKTsKICAgIGhhdXRzaXRhIGRhdWRlIHsgYEknICAtIGVyZGktaW5zdGFsYXR1dGEgKGVycm9yZSBiYXQgZ2VydGF0dSBkYSkuCiAgIGluc3RhbGF0dXRha28gICAgIHtgVycsYHQnIGFiaWFyYXpsZWFrICBmYWx0YSBkZW4gZXJhbnR6dW5hcmVuIHphaSBkYXVkZS4KIE1hcmthIHphaGFycmE6IHBha2V0ZSBob25lbnR6YXQgZXNrYXR6ZW4gemVuYSB6ZXJyZW5kYSBoYXUgYXVya2V6dHUgYXVycmV0aWs7CiBNYXJrYTogcGFrZXRlIGhvbmVudHphdCBlc2thdHV0YWtvYToKICBgKic6IGluc3RhbGF0emVrbyBlZG8gYmVydHNpby1iZXJyaXR6ZWtvIG1hcmthdHVhOwogIGAtJzoga2VudHpla28gbWFya2F0dWEsIGJhaW5hIGtvbmYuIGZpdHhhdGVnaWFrIHV0emkgZWdpbmdvIGRpcmE7CiAgYD0nOiBhdHhpa2l0YTogcGFrZXRlYSBleiBkYSBwcm96ZXNhdHVrbzsKICBgXyc6IGVyYWJhdCBwdXJnYXR6ZWtvIG1hcmthdHVhIC0ga29uZmlndXJhemlvYSBlcmUga2VuZHU7CiAgYG4nOiBwYWtldGVhIGJlcnJpYSBkYSwgZXRhIG1hcmthdHUgZWdpbiBiZWhhciBkYSBpbnN0YWxhdHpla28va2VudHpla28gZXRhYi4KClBha2V0ZSBiYWtvb3R6YXJlbiBsZWhlbnRhc3VuYSwgYXRhbGEsIGl6ZW5hIGluc3RhbGF0dXJpa28gZXRhIGVza3VyYWdhcnJpCmRhdWRlbiBiZXJ0c2lvIHplbmJha2lhayAoc2hpZnQtViBiaXN0YXJhemkvZXprdXRhdHpla28pIGV0YSBsYWJ1cnBlbiBiYXQgYmlzdGFyYXppa28KIGRpcmEgZXJlLgoKUGFrZXRlIGJha29pdHphcmVuIExlaGVudGFzdW5hLCBTZWt6aW9hLCBpemVuYSwgZXRhIGluc3RhbGF0dXRhIGV0YQplcmFiaWxnYXJyaSBkYXVkZW4gYmVydHNpby16ZW5iYWtpYWsgYmlzdGFyYXR6ZW4gZGlyYSAobWFpdXNrdWxhLVYgCmJpc3RhcmF0emVrby9lemt1dGF0emVrbyksIGJhaXRhIGxhYnVycGVuYXJlbiBhemFscGVuYSBlcmUuCgBJZGF0emkgZHNlbGVjdCAtLWhlbHAgbGFndW50emEgbG9ydHpla28uAFNhaWxrYXR1IGdhYmUARWd1bmVyYSBkYXVkZW4gaW5zdGFsYXR1dGFrbyBwYWtldGVhayAoZXogZGFnbyBiZXJ0c2lvIGJlcnJpYWdvcmlrKQBFZ3VuZXJhdHV0YQBBaGFsIGJhZGEsIGVndW5lcmF0dSBwYWtldGUgZXJhYmlsZ2FycmllbiB6ZXJyZW5kYS4ARWd1bmVyYXR1dGEARWd1bmVyYXR1dGFrbyBwYWtldGVhayAoYmVydHNpbyBiZXJyaWFnbyBiYXQgZXJhYmlsZ2FycmkgZGFnbykARXJhYmlsZXJhOiAlcyBbPGF1a2VyYT4gLi4uXSBbPGF1a2VyYT4gLi4uXQoKAE9uZ2kgZXRvcnJpIGRzZWxlY3QtZW4gcGFrZXRlZW4gemVycmVuZGEgbmFndXNpcmEuCgpJbnN0YWxhdHV0YSBlZG8gaW5zdGFsYWdhcnJpIGRhdWRlbiBwYWtldGVlbiB6ZXJyZW5kYSBhdXJrZXp0dWtvIHphaXp1ClBha2V0ZS1lZ29lcmFrIGVndW5lcmF0emVrbyBiZWhhciBkaXJlbiBwcmliaWxlZ2lvYWsgZXogZGl0dXp1bmV6LApzb2lsaWsgaXJha3VydHpla28gbW9kdWFuIHphdWRlLiBaZXJyZW5kYW4gbmFiaWdhIGRlemFrZXp1IGt1cnRzb3JlLXRla2xlbgpiaWRleiAoaWt1cyBgVGVrbGEtc2FrYXR6ZWFrJyBsYWd1bnR6YS1wYW50YWlsYSksIHBha2V0ZWVuIGVnb2VyYSBpa3VzaSwgZXRhIHBha2V0ZWVpIGJ1cnV6a28gaW5mb3JtYXppb2EgaXJha3VycmkuCgpUZWtsZW4gemVycmVuZGEgZXRhIHBhbnRhaWxha28gYXphbHBlbmFrIGlyYWt1cnR6ZWEgZ29tZW5kYXR6ZW4gemFpenUuCkxpbmVhbiBlcmUgYmFkYWdvIGxhZ3VudHphIGVyYWJpbGdhcnJpYSB6dXJlIGVza3VyYSAtIHNha2F0dSBgPycgbmFoaQpkdXp1bmVhbiBsYWd1bnR6YSBsb3J0emVrby4KCkFyYWthdHplbiBhbWFpdHV0YWtvYW4sIHNha2F0dSBgUScgZWRvIDxzYXJ0dT4gaXJ0ZXRla28uCgpTYWthdHUgPHNhcnR1PiBsYWd1bnR6YXRpayBpcnRlbiBldGEgemVycmVuZGFyYSBqb2F0ZWtvLgoAT25naSBldG9ycmkgZHNlbGVjdC1lbiBwYWtldGVlbiB6ZXJyZW5kYSBuYWd1c2lyYS4KCkluc3RhbGF0dXRhIGVkbyBpbnN0YWxhZ2FycmkgZGF1ZGVuIHBha2V0ZWVuIHplcnJlbmRhIGF6YWxkdWtvIHphaXp1LgpaZXJyZW5kYW4gbmFiaWdhdHpla28sIGVyYWJpbGkga3VydHNvcmUtdGVrbGFrLCBldGEgbWFya2F0dSBwYWtldGVhawppbnN0YWxhdHpla28gKGArJyBlcmFiaWxpeikgZWRvIGRlc2luc3RhbGF0emVrbyAoYC0nIGVyYWJpbGl6KS4KUGFrZXRlYWsgYmFuYWthIG5haGl6IHRhbGRla2EgbWFya2EgZGFpdGV6a2U7IGhhc2llcmFuIGlrdXNpa28gZHV6dSAKYFBha2V0ZSBndXp0aWFrJyBsZXJyb2EgaGF1dGF0dXRhIGRhZ29lbGEuICBOYWJhcm1lbmR1dGFrbyBsZXJyb2FuIGArJywgCmAtJyBtYXJrYXR6ZWFrLCBsZXJyb2tvIHBha2V0ZSBndXp0aWV0YW4gaXphbmdvIGR1IGVyYWdpbmEuCgpadXJlIGF1a2VyYSBiYXR6dWVrIGdhdGF6a2FrIGVkbyBtZW5kZWtvdGFzdW4tYXJhem9hayBzb3IgZGl0emFrZXRlOyAKcGFrZXRlIGdhcnJhbnR6aXRzdWVuIGF6cGl6ZXJyZW5kYSBiYXQgZW1hbmdvIHphaXp1LCBhcmF6b2FrIGtvbnBvbmR1IAphaGFsIGl6YW4gZGl0emF6dW4uCgpUZWtsZW4gemVycmVuZGEgZXRhIHBhbnRhaWxha28gYXphbHBlbmFrIGlyYWt1cnR6ZWEgZ29tZW5kYXR6ZW4gemFpenUuCkxpbmVhbiBlcmUgYmFkYWdvIGxhZ3VudHphIGVyYWJpbGdhcnJpYSB6dXJlIGVza3VyYSAtIHNha2F0dSBgPycgbmFoaQpkdXp1bmVhbiBsYWd1bnR6YSBsb3J0emVrby4KClBha2V0ZWFrIGhhdXRhdHplbiBhbWFpdHV0YWtvYW4sIHNha2F0dSA8c2FydHU+IGFsZGFrZXRhayBiZXJyZXN0ZWtvLCAKZWRvIGBRJyBhbGRha2V0YWsgZ29yZGUgZ2FiZSBpcnRldGVrby4gR2F0YXprZW4gZXRhIG1lbmRla290YXN1bmVuCmF6a2VuIGF6dGVya2V0YSBlZ2luZ28gZGEgLSBoZW1lbiBlcmUgYXpwaXplcnJlbmRhIGJhdCBpa3VzaWtvIGR1enUuCgpTYWthdHUgPHNhcnR1PiBsYWd1bnR6YXRpayBpcnRlbiBldGEgemVycmVuZGFyYSBqb2F0ZWtvLgoAWHRyAFtBXXR6aXBlbmEAW0tdb25maWd1cmF0dQBbSV1uc3RhbGF0dQBJW3JddGVuAEtbZV1uZHUAW0hdYXV0YXR1AFtFXWd1bmVyYXR1AFtsb3R1IGdhYmVdAFtlemV6YWd1bmE6ICVkXQBhAGFiaWFyYXpsZSBwcm96ZXNhdHplYSBpdHhvaXRlbgBwRVIAaGF1IGhvbmRhdHplbiBkdTogAGsAa29sb3JlYQBrb2xvcmUtYXRyaWJ1dHVhAGdhdGF6a2FuIGRhZ28gaG9uZWtpbjoAZXppbiBpemFuIGRhIGAlLjI1NXMnIGFyYXprZXRhLWZpdHhhdGVnaWEgaXJla2kKAGhvbmVuIG1lbmRla29hIGRhOgBkb3VwZGF0ZTogaHV0cyBlZ2luIGR1AGRvdXBkYXRlOiBodXRzIGVnaW4gZHUgU0lHV0lOQ0ggbWFuZWlhdHphaWxlYW4AZHNlbGVjdCAtIHBha2V0ZS1lZ29lcmFyZW4gZWdpYXp0YXBlbmEAZHNlbGVjdCAtIGF0emlwZW4tbWV0b2RvZW4gemVycmVuZGEAZHNlbGVjdCAtIHBha2V0ZWVuIHplcnJlbmRhIG5hZ3VzaWEAZHNlbGVjdCAtIHBha2V0ZWVuIHplcnJlbmRhIGVycmVrdXJ0c2lib2EAZHNlbGVjdCBldGEgZHBrZy1rIGluc3RhbGF6aW8gYXV0b21hdGlrb2EgZWdpbiBkZXpha2V0ZSwgcGFrZXRlLWZpdHhhdGVnaWFrIGthcmdhdHV6CmhhaW5iYXQgbGVrdSBwb3NpYmxldGFrbyBiYXRldGlrIGluc3RhbGF0emVrby4KClplcnJlbmRhIGhvbmVrIGF1a2VyYSBlbWF0ZW4gZGl6dSBpbnN0YWxhemlvLW1ldG9kbyBoYXVldGFrbyBiYXQgaGF1dGF0emVrby4KCkVyYW1hbiBuYWJhcm1lbnR6ZWEgZXJhYmlsaSBuYWhpIGR1enVuIG1ldG9kb3JhaW5vLCBldGEgc2FrYXR1IFNhcnR1Lkluc3RhbGF6aW9hCm9zYXR6ZWtvIGJlaGFyIGRlbiBpbmZvcm1hemlvYSBlc2thdHVrbyB6YWl6dS4KCk5hYmFybWVudHplYSBtdWdpdHUgYWhhbGEsIGV0YSBlcmFiaWxnYXJyaSBlZ29uZXogZ2VybywgbWV0b2RvIGJha29pdHphcmVraW4KYXphbHBlbiBiYXQgYmlzdGFyYXR1a28gZGEgcGFudGFpbGFyZW4gYmVoZWtvIGVyZGlhbi4KCkV6ZXIgYWxkYXR1IGdhYmUgaXJ0ZXRla28sIGVyYWJpbGkgYHgnIHRla2xhIGluc3RhbGF6aW8tbWV0b2RvZW4gemVycmVuZGFuCnphdWRlbmVhbi4KClRla2xhLXNha2F0emVlbiB6ZXJyZW5kYSBvc29hIGlrdXN0ZWtvLCBzYWthdHUgYGsnIG9yYWluLCBlZG8gam9hbiBsYWd1bnR6YS1tZW51cmEKIGA/JyBzYWthdHV0YQoAaGF1IGhvYmV0emVuIGR1OgBlcnJvcmVhIG1ldG9kby1hdWtlcmVuIGAlLjI1MHMnIGZpdHhhdGVnaWEgaXJha3VydHplYW4AZXJyb3JlYSBhdWtlcmVuIGF6YWxwZW5la28gYCUuMjUwcycgZml0eGF0ZWdpYSBpcmFrdXJ0emVhbgBlcnJvcmVhIGFkaWVyYXpwZW4gZXJyZWd1bGFycmVhbgBlcnJvcmVhIHByb2dyYW1hLWh1dHNlZ2l0ZWFyZW4gbWV6dWFyZW4gYWRpZXJhenBlbmEgaXJha3VydHplYW4AZXJyb3JlYSBsYWd1bnR6YW4gdGVrbGF0dWEgaXJha3VydHplYW4AZXJyb3JlYSBgJS4yNTBzJyBhdWtlcmVuIGZpdHhhdGVnaWEgaXJha3VydHplYW4AaHV0cyBlZ2luIGR1IGtvbG9yZS1iaWtvdGVhIGVzbGVpdHplYW4AaHV0cyBlZ2luIGR1IFNJR1dJTkNIIGJsb2tlYXR6ZWFuAGh1dHMgZWdpbiBkdSBvaW5hcnJpemtvIHplcnJlbmRha28gem9uYSBzb3J0emVhbgBodXRzIGVnaW4gZHUgaXplbmJ1cnVlbiB6b25hIHNvcnR6ZWFuAGh1dHMgZWdpbiBkdSBpbmZvcm1hemlvYXJlbiB6b25hIHNvcnR6ZWFuAGh1dHMgZWdpbiBkdSBrb250c3VsdGEtbGVpaG9hIHNvcnR6ZWFuAGh1dHMgZWdpbiBkdSBlZ29lcmFyZW4gem9uYSBzb3J0emVhbgBodXRzIGVnaW4gZHUgbGVpaG9hcmVuIHRpdHVsdWEgc29ydHplYW4AaHV0cyBlZ2luIGR1ICd3aGF0aW5mbycgbGVpaG9hIHNvcnR6ZWFuAGh1dHMgZWdpbiBkdSBTSUdXSU5DSCBzaWdhY3QgemFoYXJyYSBoYXJ0emVhbgBodXRzIGVnaW4gZHUgc2VpbmFsZS1tYXNrYXJhIHphaGFycmEgaGFydHplYW4AZ2V0Y2g6IGh1dHMgZWdpbiBkdSBtZW51IG5hZ3VzaWFuAGh1dHMgZWdpbiBkdSBTSUdXSU5DSCBiaXJibG9rZWF0emVhbgBlemluIGRhIGlyYWt1cnJpIGF1a2VyZW4gYXphbHBlbmVrbyBgJS4yNTBzJyBmaXR4YXRlZ2lhAGh1dHMgZWdpbiBkdSBTSUdXSU5DSGVuIHNpZ2FjdCB6YWhhcnJhIGxlaGVuZXJhdHplYW4AaHV0cyBlZ2luIGR1IHNlaW5hbGUtbWFza2FyYSB6YWhhcnJhIGxlaGVuZXJhdHplYW4AaHV0cyBlZ2luIGR1IFNJR1dJTkNIIHNpZ2FjdCBiZXJyaWEgZXphcnR6ZWFuAGh1dHMgZWdpbiBkdSBTSUdXSU5DSCBkZXNibG9rZWF0emVhbgBnZXRjaDogaHV0cyBlZ2luIGR1AGVyZGktaW5zdGFsYXR1dGEAYXR4aWtpAGkAaW5kaXplLWthdGUgbHV6ZWVnaWEAaW5zdGFsYXR1AGluc3RhbGF6aW9hcmVuIHNjcmlwdC1hAGluc3RhbGF0dXRhAGJpbGFrZXRhLWF1a2VyYSBiYWxpb2dhYmVhIGVtYW4gZGEAaW9jdGwoVElPQ0dXSU5TWik6IGh1dHMgZWdpbiBkdQBtZW51YQBgJS4yNTBzJyBtZXRvZG9hayBpemVuIGx1emVlZ2lhIGRhdWthICglZCA+ICVkIGthcmFrdGVyZSkAcGFrZXRlIGJlcnJpYQBsZXJyby1qYXV6aWEgYXVrZXJhLWl6ZW5hcmVuIGhhc2llcmFyZW4gYXVycmV0aWsAbGVycm8tamF1emlhIGxhYnVycGVuYXJlbiBhdXJyZXRpawBhbGZhbnVtZXJpa29hayBleiBkaXJlbmFrIGF1a2VyYS1pemVuZWFuAGRpZ2l0dWFrIGV6IGRpcmVuYWsgZGlnaXR1YWsgYmVoYXIgZGlyZW4gbGVrdWFuAGFsZmFudW1lcmlrb2FrIGV6IGRpcmVuYWsgYXVrZXJhLWl6ZW5hcmVuIGhhc2llcmEgbmFoaSB6ZW5lYW4AaW5zdGFsYXR1IGdhYmUAaG9uZW4gYXVycmVtZW5kZWtvYSBkYToAaGF1IGhvcm5pdHplbiBkdToAcHVyZ2F0dQByAGtvbnRzdWx0YXJlbi9pbnN0YWxhemlvYXJlbiBzY3JpcHQtYQBlAGhhdSBnb21lbmRhdHplbiBkdToAa2VuZHUAa2VuZHV0YSAoa29uZmlndXJhdHplYSBmYWx0YSBkYSkAaGF1IG9yZGV6dGVuIGR1OgBoAHBhbnRhaWxhLXphdGlhAGhhdSBpcmFkb2tpdHplbiBkdToAc2ludGF4aS1lcnJvcmVhIG1ldG9kby1hdWtlcmVuIGZpdHhhdGVnaWFuOiBgJS4yNTBzJyAtLSAlcwB0ZXJtaW5hbGFrIGJlaGFycmV6a28gZWdpbmJpZGUgYmF0enVrIGZhbHRhIGRpdHUsIHV0emkgZWdpbmdvIGRhAGFiaWFyYXppYQBlAGV6aW4gZGEgYXR6aXR1IGAlLjI1MHMnIG1ldG9kb2FyZW4gc2NyaXB0LWEAZXppbiBkYSBpdHhpIGAlLjI1MHMnIGF1a2VyYS1maXR4YXRlZ2kgYmVycmlhAGV6aW4gZGEgaW5zdGFsYXR1IGF1a2VyYSBiZXJyaWEgYCUuMjUwcycgZ2lzYQBlemluIGRhIGlyZWtpIGF1a2VyZW4gYXphbHBlbmVrbyBgJS4yNTBzJyBmaXR4YXRlZ2lhAGV6aW4gZGEgaXJla2kgYCUuMjUwcycgYXVrZXJhLWZpdHhhdGVnaSBiZXJyaWEAZXppbiBkYSBpcmVraSBhdWtlcmVuIGF6YWxwZW5la28gYCUuMjUwcycgZml0eGF0ZWdpYQBlemluIGRhIGlyYWt1cnJpIGAlLjI1MHMnIGRpcmVrdG9yaW9hIGlyYWt1cmtldGEtbWV0b2RvZXRhbgBlemluIGRhIGlyYWt1cnJpIGAlLjI1MHMnIG1ldG9kby1hdWtlcmVuIGZpdHhhdGVnaWEAZXppbiBkYSBhdHppdHUgYXVrZXJlbiBhemFscGVuZWtvIGAlLjI1MHMnIGZpdHhhdGVnaWEAZXppbiBkYSBpZGF0emkgYXVrZXJhIGJlcnJpYTogYCUuMjUwcycAYCUuNTBzJyBla2ludHphLWthdGUgZXplemFndW5hAGRlc2tvbnByaW1pdHV0YSAoa29uZmlndXJhdHUgZ2FiZSkAZXJhYmlsZ2FycmktemVycmVuZGEgZWd1bmVyYXR6ZWtvIHNjcmlwdC1hAA==