gAJjZG9jdXRpbHMubm9kZXMKZG9jdW1lbnQKcQEpgXECfXEDKFUJbmFtZXR5cGVzcQR9cQUoWAoAAABtb2NrLnBhdGNocQaIWCYAAABwYXRjaGluZyBkZXNjcmlwdG9ycyBhbmQgcHJveHkgb2JqZWN0c3EHTlgOAAAAd2hlcmUtdG8tcGF0Y2hxCIhYEgAAAG1vY2sucGF0Y2guc3RvcGFsbHEJiFgXAAAAZGphbmdvIHNldHR0aW5ncyBvYmplY3RxCohYEwAAAG1vY2sucGF0Y2gubXVsdGlwbGVxC4hYGAAAAG5lc3RpbmcgcGF0Y2ggZGVjb3JhdG9yc3EMTlgRAAAAbW9jay5wYXRjaC5vYmplY3RxDYhYCgAAAHBhdGNoLmRpY3RxDk5YCwAAAHRlc3RfcHJlZml4cQ9OWBAAAABwYXRjaCBkZWNvcmF0b3JzcRBOWB0AAABwYXRjaCBtZXRob2RzOiBzdGFydCBhbmQgc3RvcHERTlgFAAAAcGF0Y2hxEk5YDAAAAHBhdGNoLm9iamVjdHETTlgOAAAAcGF0Y2gubXVsdGlwbGVxFE5YDgAAAHdoZXJlIHRvIHBhdGNocRVOWA8AAABtb2NrLnBhdGNoLmRpY3RxFohYCQAAAHVuaXR0ZXN0MnEXiFgOAAAAc3RhcnQtYW5kLXN0b3BxGIh1VRFzdWJzdGl0dXRpb25fZGVmc3EZfXEaVQ5wYXJzZV9tZXNzYWdlc3EbXXEcVQ5jdXJyZW50X3NvdXJjZXEdTlUKZGVjb3JhdGlvbnEeTlUSYXV0b2Zvb3Rub3RlX3N0YXJ0cR9LAVUHbmFtZWlkc3EgfXEhKGgGaAZoB1UmcGF0Y2hpbmctZGVzY3JpcHRvcnMtYW5kLXByb3h5LW9iamVjdHNxImgIVQ53aGVyZS10by1wYXRjaHEjaAloCWgKVRdkamFuZ28tc2V0dHRpbmdzLW9iamVjdHEkaAtoC2gMVRhuZXN0aW5nLXBhdGNoLWRlY29yYXRvcnNxJWgNaA1oDlUKcGF0Y2gtZGljdHEmaA9VC3Rlc3QtcHJlZml4cSdoEFUQcGF0Y2gtZGVjb3JhdG9yc3EoaBFVHHBhdGNoLW1ldGhvZHMtc3RhcnQtYW5kLXN0b3BxKWgSVQVwYXRjaHEqaBNVDHBhdGNoLW9iamVjdHEraBRVDnBhdGNoLW11bHRpcGxlcSxoFVUDaWQxcS1oFmgWaBdVCXVuaXR0ZXN0MnEuaBhVDnN0YXJ0LWFuZC1zdG9wcS91VQhjaGlsZHJlbnEwXXExY2RvY3V0aWxzLm5vZGVzCnNlY3Rpb24KcTIpgXEzfXE0KFUJcmF3c291cmNlcTVVAFUGcGFyZW50cTZoAlUGc291cmNlcTdjZG9jdXRpbHMubm9kZXMKcmVwcnVuaWNvZGUKcThYHAAAAC9jb21waWxlL21vY2svZG9jcy9wYXRjaC50eHRxOYWBcTp9cTtiVQd0YWduYW1lcTxVB3NlY3Rpb25xPVUKYXR0cmlidXRlc3E+fXE/KFUIZHVwbmFtZXNxQF1xQVUHY2xhc3Nlc3FCXXFDVQhiYWNrcmVmc3FEXXFFVQNpZHNxRl1xR2goYVUFbmFtZXNxSF1xSWgQYXVVBGxpbmVxSksDVQhkb2N1bWVudHFLaAJoMF1xTChjZG9jdXRpbHMubm9kZXMKdGl0bGUKcU0pgXFOfXFPKGg1WBAAAABQYXRjaCBEZWNvcmF0b3JzcVBoNmgzaDdoOmg8VQV0aXRsZXFRaD59cVIoaEBdcVNoQl1xVGhEXXFVaEZdcVZoSF1xV3VoSksDaEtoAmgwXXFYY2RvY3V0aWxzLm5vZGVzClRleHQKcVlYEAAAAFBhdGNoIERlY29yYXRvcnNxWoWBcVt9cVwoaDVoUGg2aE51YmF1YmNkb2N1dGlscy5ub2Rlcwpjb21tZW50CnFdKYFxXn1xXyhoNViAAQAAY2xhc3MgU29tZUNsYXNzKG9iamVjdCk6CiAgICBzdGF0aWNfbWV0aG9kID0gTm9uZQogICAgY2xhc3NfbWV0aG9kID0gTm9uZQogICAgYXR0cmlidXRlID0gTm9uZQoKc3lzLm1vZHVsZXNbJ3BhY2thZ2UnXSA9IHBhY2thZ2UgPSBNb2NrKG5hbWU9J3BhY2thZ2UnKQpzeXMubW9kdWxlc1sncGFja2FnZS5tb2R1bGUnXSA9IHBhY2thZ2UubW9kdWxlCgpjbGFzcyBUZXN0Q2FzZSh1bml0dGVzdDIuVGVzdENhc2UpOgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICByZXN1bHQgPSB1bml0dGVzdDIuVGVzdFJlc3VsdCgpCiAgICAgICAgc3VwZXIodW5pdHRlc3QyLlRlc3RDYXNlLCBzZWxmKS5ydW4ocmVzdWx0KQogICAgICAgIGFzc2VydCByZXN1bHQud2FzU3VjY2Vzc2Z1bCgpcWBoNmgzaDdoOmg8VQdjb21tZW50cWFoPn1xYihVDHRlc3Rub2RldHlwZXFjWAkAAAB0ZXN0c2V0dXBxZFUJeG1sOnNwYWNlcWVVCHByZXNlcnZlcWZoRl1xZ2hEXXFoaEBdcWloQl1xamhIXXFrVQZncm91cHNxbF1xbVUHZGVmYXVsdHFuYVUHb3B0aW9uc3FvfXFwdWhKSwhoS2gCaDBdcXFoWViAAQAAY2xhc3MgU29tZUNsYXNzKG9iamVjdCk6CiAgICBzdGF0aWNfbWV0aG9kID0gTm9uZQogICAgY2xhc3NfbWV0aG9kID0gTm9uZQogICAgYXR0cmlidXRlID0gTm9uZQoKc3lzLm1vZHVsZXNbJ3BhY2thZ2UnXSA9IHBhY2thZ2UgPSBNb2NrKG5hbWU9J3BhY2thZ2UnKQpzeXMubW9kdWxlc1sncGFja2FnZS5tb2R1bGUnXSA9IHBhY2thZ2UubW9kdWxlCgpjbGFzcyBUZXN0Q2FzZSh1bml0dGVzdDIuVGVzdENhc2UpOgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICByZXN1bHQgPSB1bml0dGVzdDIuVGVzdFJlc3VsdCgpCiAgICAgICAgc3VwZXIodW5pdHRlc3QyLlRlc3RDYXNlLCBzZWxmKS5ydW4ocmVzdWx0KQogICAgICAgIGFzc2VydCByZXN1bHQud2FzU3VjY2Vzc2Z1bCgpcXKFgXFzfXF0KGg1VQBoNmhedWJhdWJoXSmBcXV9cXYoaDVYGgAAAHBhdGNoLlRFU1RfUFJFRklYID0gJ3Rlc3QncXdoNmgzaDdoOmg8aGFoPn1xeChVDHRlc3Rub2RldHlwZXF5WAsAAAB0ZXN0Y2xlYW51cHF6aGVoZmhGXXF7aERdcXxoQF1xfWhCXXF+aEhdcX9VBmdyb3Vwc3GAXXGBaG5haG99cYJ1aEpLGGhLaAJoMF1xg2hZWBoAAABwYXRjaC5URVNUX1BSRUZJWCA9ICd0ZXN0J3GEhYFxhX1xhihoNVUAaDZodXViYXViY2RvY3V0aWxzLm5vZGVzCnBhcmFncmFwaApx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dG8gcmVwbGFjZSBhdHRyaWJ1dGVzIHRoYXQgZG9uJ3QgZXhpc3QuIElmCnlvdSBwYXNzIGluIHJjBAAAhYFyZAQAAH1yZQQAAChoNVhCAAAAIHdpbGwgZmFpbCB0byByZXBsYWNlIGF0dHJpYnV0ZXMgdGhhdCBkb24ndCBleGlzdC4gSWYKeW91IHBhc3MgaW4gcmYEAABoNmpIBAAAdWJowymBcmcEAAB9cmgEAAAoaDVYDQAAAGBjcmVhdGU9VHJ1ZWByaQQAAGg+fXJqBAAAKGhAXXJrBAAAaEJdcmwEAABoRF1ybQQAAGhGXXJuBAAAaEhdcm8EAAB1aDZqSAQAAGgwXXJwBAAAaFlYCwAAAGNyZWF0ZT1UcnVlcnEEAACFgXJyBAAAfXJzBAAAKGg1VQBoNmpnBAAAdWJhaDxo0XViaFlYfgEAACwgYW5kIHRoZSBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdCwgcGF0Y2ggd2lsbApjcmVhdGUgdGhlIGF0dHJpYnV0ZSBmb3IgeW91IHdoZW4gdGhlIHBhdGNoZWQgZnVuY3Rpb24gaXMgY2FsbGVkLCBhbmQKZGVsZXRlIGl0IGFnYWluIGFmdGVyd2FyZHMuIFRoaXMgaXMgdXNlZnVsIGZvciB3cml0aW5nIHRlc3RzIGFnYWluc3QKYXR0cmlidXRlcyB0aGF0IHlvdXIgcHJvZHVjdGlvbiBjb2RlIGNyZWF0ZXMgYXQgcnVudGltZS4gSXQgaXMgb2ZmIGJ5IGJ5CmRlZmF1bHQgYmVjYXVzZSBpdCBjYW4gYmUgZGFuZ2Vyb3VzLiBXaXRoIGl0IHN3aXRjaGVkIG9uIHlvdSBjYW4gd3JpdGUKcGFzc2luZyB0ZXN0cyBhZ2FpbnN0IEFQSXMgdGhhdCBkb24ndCBhY3R1YWxseSBleGlzdCFydAQAAIWBcnUEAAB9cnYEAAAoaDVYfgEAACwgYW5kIHRoZSBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdCwgcGF0Y2ggd2lsbApjcmVhdGUgdGhlIGF0dHJpYnV0ZSBmb3IgeW91IHdoZW4gdGhlIHBhdGNoZWQgZnVuY3Rpb24gaXMgY2FsbGVkLCBhbmQKZGVsZXRlIGl0IGFnYWluIGFmdGVyd2FyZHMuIFRoaXMgaXMgdXNlZnVsIGZvciB3cml0aW5nIHRlc3RzIGFnYWluc3QKYXR0cmlidXRlcyB0aGF0IHlvdXIgcHJvZHVjdGlvbiBjb2RlIGNyZWF0ZXMgYXQgcnVudGltZS4gSXQgaXMgb2ZmIGJ5IGJ5CmRlZmF1bHQgYmVjYXVzZSBpdCBjYW4gYmUgZGFuZ2Vyb3VzLiBXaXRoIGl0IHN3aXRjaGVkIG9uIHlvdSBjYW4gd3JpdGUKcGFzc2luZyB0ZXN0cyBhZ2FpbnN0IEFQSXMgdGhhdCBkb24ndCBhY3R1YWxseSBleGlzdCFydwQAAGg2akgEAAB1YmV1YmiHKYFyeAQAAH1yeQQAAChoNVijAQAAUGF0Y2ggY2FuIGJlIHVzZWQgYXMgYSBgVGVzdENhc2VgIGNsYXNzIGRlY29yYXRvci4gSXQgd29ya3MgYnkKZGVjb3JhdGluZyBlYWNoIHRlc3QgbWV0aG9kIGluIHRoZSBjbGFzcy4gVGhpcyByZWR1Y2VzIHRoZSBib2lsZXJwbGF0ZQpjb2RlIHdoZW4geW91ciB0ZXN0IG1ldGhvZHMgc2hhcmUgYSBjb21tb24gcGF0Y2hpbmdzIHNldC4gYHBhdGNoYCBmaW5kcwp0ZXN0cyBieSBsb29raW5nIGZvciBtZXRob2QgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGBwYXRjaC5URVNUX1BSRUZJWGAuCkJ5IGRlZmF1bHQgdGhpcyBpcyBgdGVzdGAsIHdoaWNoIG1hdGNoZXMgdGhlIHdheSBgdW5pdHRlc3RgIGZpbmRzIHRlc3RzLgpZb3UgY2FuIHNwZWNpZnkgYW4gYWx0ZXJuYXRpdmUgcHJlZml4IGJ5IHNldHRpbmcgYHBhdGNoLlRFU1RfUFJFRklYYC5yegQAAGg2aqEBAABoN2g6aDxoi2g+fXJ7BAAAKGhAXXJ8BAAAaEJdcn0EAABoRF1yfgQAAGhGXXJ/BAAAaEhdcoAEAAB1aEpLXWhLaAJoMF1ygQQAAChoWVgXAAAAUGF0Y2ggY2FuIGJlIHVzZWQgYXMgYSByggQAAIWBcoMEAAB9coQEAAAoaDVYFwAAAFBhdGNoIGNhbiBiZSB1c2VkIGFzIGEgcoUEAABoNmp4BAAAdWJowymBcoYEAAB9cocEAAAoaDVYCgAAAGBUZXN0Q2FzZWByiAQAAGg+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ciwgY3JlYXRpbmcgdGhlIG1vY2sgZm9yIHlvdSBhbmQgcGFzc2luZyBpdCBpbnRvCnRoZSBkZWNvcmF0ZWQgZnVuY3Rpb246cpoFAACFgXKbBQAAfXKcBQAAKGg1WF0AAAAgYXMgZnVuY3Rpb24gZGVjb3JhdG9yLCBjcmVhdGluZyB0aGUgbW9jayBmb3IgeW91IGFuZCBwYXNzaW5nIGl0IGludG8KdGhlIGRlY29yYXRlZCBmdW5jdGlvbjpynQUAAGg2aoMFAAB1YmV1YmNkb2N1dGlscy5ub2RlcwpsaXRlcmFsX2Jsb2NrCnKeBQAAKYFynwUAAH1yoAUAAChoNViRAAAAPj4+IEBwYXRjaCgnX19tYWluX18uU29tZUNsYXNzJykKLi4uIGRlZiBmdW5jdGlvbihub3JtYWxfYXJndW1lbnQsIG1vY2tfY2xhc3MpOgouLi4gICAgIHByaW50IG1vY2tfY2xhc3MgaXMgU29tZUNsYXNzCi4uLgo+Pj4gZnVuY3Rpb24oTm9uZSkKVHJ1ZXKhBQAAaDZolmg3aDpoPFUNbGl0ZXJhbF9ibG9ja3KiBQAAaD59cqMFAAAoVQx0ZXN0bm9kZXR5cGVypAUAAFgHAAAAZG9jdGVzdHKlBQAAaGVoZmhGXXKmBQAAaERdcqcFAABoQF1yqAUAAGhCXXKpBQAAaEhdcqoFAABVBmdyb3Vwc3KrBQAAXXKsBQAAaG5haG99cq0FAAB1aEpLcmhLaAJoMF1yrgUAAGhZWJEAAAA+Pj4gQHBhdGNoKCdfX21haW5fXy5Tb21lQ2xhc3MnKQouLi4gZGVmIGZ1bmN0aW9uKG5vcm1hbF9hcmd1bWVudCwgbW9ja19jbGFzcyk6Ci4uLiAgICAgcHJpbnQgbW9ja19jbGFzcyBpcyBTb21lQ2xhc3MKLi4uCj4+PiBmdW5jdGlvbihOb25lKQpUcnVlcq8FAACFgXKwBQAAfXKxBQAAKGg1VQBoNmqfBQAAdWJhdWJohymBcrIFAAB9crMFAAAoaDVYxAAAAFBhdGNoaW5nIGEgY2xhc3MgcmVwbGFjZXMgdGhlIGNsYXNzIHdpdGggYSBgTWFnaWNNb2NrYCAqaW5zdGFuY2UqLiBJZiB0aGUKY2xhc3MgaXMgaW5zdGFudGlhdGVkIGluIHRoZSBjb2RlIHVu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aW4gdGhlIGRpY3Rpb25hcnk6cpAMAACFgXKRDAAAfXKSDAAAKGg1WCYAAAAgY2FsbCB0byBzZXQgdmFsdWVzIGluIHRoZSBkaWN0aW9uYXJ5OnKTDAAAaDZqdQwAAHViZXViap4FAAApgXKUDAAAfXKVDAAAKGg1WMoAAAA+Pj4gbXltb2R1bGUgPSBNYWdpY01vY2soKQo+Pj4gbXltb2R1bGUuZnVuY3Rpb24ucmV0dXJuX3ZhbHVlID0gJ2Zpc2gnCj4+PiB3aXRoIHBhdGNoLmRpY3QoJ3N5cy5tb2R1bGVzJywgbXltb2R1bGU9bXltb2R1bGUpOgouLi4gICAgIGltcG9ydCBteW1vZHVsZQouLi4gICAgIG15bW9kdWxlLmZ1bmN0aW9uKCdzb21lJywgJ2FyZ3MnKQouLi4KJ2Zpc2gncpYMAABoNmq4CgAAaDdoOmg8aqIFAABoPn1ylwwAAChVDHRlc3Rub2RldHlwZXKYDAAAWAcAAABkb2N0ZXN0cpkMAABoZWhmaEZdcpoMAABoRF1ymwwAAGhAXXKcDAAAaEJdcp0MAABoSF1yngwAAFUGZ3JvdXBzcp8MAABdcqAMAABobmFob31yoQwAAHVoSk03AWhLaAJoMF1yogwAAGhZWMoAAAA+Pj4gbXltb2R1bGUgPSBNYWdpY01vY2soKQo+Pj4gbXltb2R1bGUuZnVuY3Rpb24ucmV0dXJuX3ZhbHVlID0gJ2Zpc2gnCj4+PiB3aXRoIHBhdGNoLmRpY3QoJ3N5cy5tb2R1bGVzJywgbXltb2R1bGU9bXltb2R1bGUpOgouLi4gICAgIGltcG9ydCBteW1vZHVsZQouLi4gICAgIG15bW9kdWxlLmZ1bmN0aW9uKCdzb21lJywgJ2FyZ3MnKQouLi4KJ2Zpc2gncqMMAACFgXKkDAAAfXKlDAAAKGg1VQBoNmqUDAAAdWJhdWJohymBcqYMAAB9cqcMAAAoaDVYQgEAAGBwYXRjaC5kaWN0YCBjYW4gYmUgdXNlZCB3aXRoIGRpY3Rpb25hcnkgbGlrZSBvYmplY3RzIHRoYXQgYXJlbid0IGFjdHVhbGx5CmRpY3Rpb25hcmllcy4gQXQgdGhlIHZlcnkgbWluaW11bSB0aGV5IG11c3Qgc3VwcG9ydCBpdGVtIGdldHRpbmcsIHNldHRpbmcsCmRlbGV0aW5nIGFuZCBlaXRoZXIgaXRlcmF0aW9uIG9yIG1lbWJlcnNoaXAgdGVzdC4gVGhpcyBjb3JyZXNwb25kcyB0byB0aGUKbWFnaWMgbWV0aG9kcyBgX19nZXRpdGVtX19gLCBgX19zZXRpdGVtX19gLCBgX19kZWxpdGVtX19gIGFuZCBlaXRoZXIKYF9faXRlcl9fYCBvciBgX19jb250YWluc19fYC5yqAwAAGg2argKAABoN2g6aDxoi2g+fXKpDAAAKGhAXXKqDAAAaEJdcqsMAABoRF1yrAwAAGhGXXKtDAAAaEhdcq4MAAB1aEpNQQFoS2gCaDBdcq8MAAAoaMMpgXKwDAAAfXKxDAAAKGg1WAwAAABgcGF0Y2guZGljdGBysgwAAGg+fXKzDAAAKGhAXXK0DAAAaEJdcrUMAABoRF1ytgwAAGhGXXK3DAAAaEhdcrgMAAB1aDZqpgwAAGgwXXK5DAAAaFlYCgAAAHBhdGNoLmRpY3RyugwAAIWBcrsMAAB9crwMAAAoaDVVAGg2arAMAAB1YmFoPGjRdWJoWVjiAAAAIGNhbiBiZSB1c2VkIHdpdGggZGljdGlvbmFyeSBsaWtlIG9iamVjdHMgdGhhdCBhcmVuJ3QgYWN0dWFsbHkKZGljdGlvbmFyaWVzLiBBdCB0aGUgdmVyeSBtaW5pbXVtIHRoZXkgbXVzdCBzdXBwb3J0IGl0ZW0gZ2V0dGluZywgc2V0dGluZywKZGVsZXRpbmcgYW5kIGVpdGhlciBpdGVyYXRpb24gb3IgbWVtYmVyc2hpcCB0ZXN0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZQptYWdpYyBtZXRob2RzIHK9DAAAhYFyvgwAAH1yvwwAAChoNVjiAAAAIGNhbiBiZSB1c2VkIHdpdGggZGljdGlvbmFyeSBsaWtlIG9iamVjdHMgdGhhdCBhcmVuJ3QgYWN0dWFsbHkKZGljdGlvbmFyaWVzLiBBdCB0aGUgdmVyeSBtaW5pbXVtIHRoZXkgbXVzdCBzdXBwb3J0IGl0ZW0gZ2V0dGluZywgc2V0dGluZywKZGVsZXRpbmcgYW5kIGVpdGhlciBpdGVyYXRpb24gb3IgbWVtYmVyc2hpcCB0ZXN0LiBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZQptYWdp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AGhEXXJlEQAAaEBdcmYRAABoQl1yZxEAAGhIXXJoEQAAVQZncm91cHNyaREAAF1yahEAAGhuYWhvfXJrEQAAdWhKTcMBaEtoAmgwXXJsEQAAaFlYOQIAAD4+PiBjbGFzcyBNeVRlc3QoVGVzdENhc2UpOgouLi4gICAgIGRlZiBzZXRVcChzZWxmKToKLi4uICAgICAgICAgc2VsZi5wYXRjaGVyMSA9IHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5DbGFzczEnKQouLi4gICAgICAgICBzZWxmLnBhdGNoZXIyID0gcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzMicpCi4uLiAgICAgICAgIHNlbGYuTW9ja0NsYXNzMSA9IHNlbGYucGF0Y2hlcjEuc3RhcnQoKQouLi4gICAgICAgICBzZWxmLk1vY2tDbGFzczIgPSBzZWxmLnBhdGNoZXIyLnN0YXJ0KCkKLi4uCi4uLiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgouLi4gICAgICAgICBzZWxmLnBhdGNoZXIxLnN0b3AoKQouLi4gICAgICAgICBzZWxmLnBhdGNoZXIyLnN0b3AoKQouLi4KLi4uICAgICBkZWYgdGVzdF9zb21ldGhpbmcoc2VsZik6Ci4uLiAgICAgICAgIGFzc2VydCBwYWNrYWdlLm1vZHVsZS5DbGFzczEgaXMgc2VsZi5Nb2NrQ2xhc3MxCi4uLiAgICAgICAgIGFzc2VydCBwYWNrYWdlLm1vZHVsZS5DbGFzczIgaXMgc2VsZi5Nb2NrQ2xhc3MyCi4uLgo+Pj4gTXlUZXN0KCd0ZXN0X3NvbWV0aGluZycpLnJ1bigpcm0RAACFgXJuEQAAfXJvEQAAKGg1VQBoNmpeEQAAdWJhdWJjZG9jdXRpbHMubm9kZXMKY2F1dGlvbgpycBEAACmBcnERAAB9cnIRAAAoaDVY+wIAAElmIHlvdSB1c2UgdGhpcyB0ZWNobmlxdWUgeW91IG11c3QgZW5zdXJlIHRoYXQgdGhlIHBhdGNoaW5nIGlzICJ1bmRvbmUiIGJ5CmNhbGxpbmcgYHN0b3BgLiBUaGlzIGNhbiBiZSBmaWRkbGllciB0aGFuIHlvdSBtaWdodCB0aGluaywgYmVjYXVzZSBpZiBhbgpleGNlcHRpb24gaXMgcmFpc2VkIGluIHRoZSBzZXRVcCB0aGVuIHRlYXJEb3duIGlzIG5vdCBjYWxsZWQuIGB1bml0dGVzdDIKPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS91bml0dGVzdDI+YF8gY2xlYW51cCBmdW5jdGlvbnMgbWFrZSB0aGlzCmVhc2llci4KCi4uIGRvY3Rlc3Q6OgoKICAgID4+PiBjbGFzcyBNeVRlc3QoVGVzdENhc2UpOgogICAgLi4uICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAuLi4gICAgICAgICBwYXRjaGVyID0gcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzJykKICAgIC4uLiAgICAgICAgIHNlbGYuTW9ja0NsYXNzID0gcGF0Y2hlci5zdGFydCgpCiAgICAuLi4gICAgICAgICBzZWxmLmFkZENsZWFudXAocGF0Y2hlci5zdG9wKQogICAgLi4uCiAgICAuLi4gICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmKToKICAgIC4uLiAgICAgICAgIGFzc2VydCBwYWNrYWdlLm1vZHVsZS5DbGFzcyBpcyBzZWxmLk1vY2tDbGFzcwogICAgLi4uCiAgICA+Pj4gTXlUZXN0KCd0ZXN0X3NvbWV0aGluZycpLnJ1bigpCgpBcyBhbiBhZGRlZCBib251cyB5b3Ugbm8gbG9uZ2VyIG5lZWQgdG8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgYHBhdGNoZXJgCm9iamVjdC5ycxEAAGg2aiEQAABoN2g6aDxVB2NhdXRpb25ydBEAAGg+fXJ1EQAAKGhAXXJ2EQAAaEJdcncRAABoRF1yeBEAAGhGXXJ5EQAAaEhdcnoRAAB1aEpOaEtoAmgwXXJ7EQAAKGiHKYFyfBEAAH1yfREAAChoNVgqAQAASWYgeW91IHVzZSB0aGlzIHRlY2huaXF1ZSB5b3UgbXVzdCBlbnN1cmUgdGhhdCB0aGUgcGF0Y2hpbmcgaXMgInVuZG9uZSIgYnkKY2FsbGluZyBgc3RvcGAuIFRoaXMgY2FuIGJlIGZpZGRsaWVyIHRoYW4geW91IG1pZ2h0IHRoaW5rLCBiZWNhdXNlIGlmIGFuCmV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gdGhl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JhMAAGhuYWhvfXInEwAAdWhKTR4CaEtoAmgwXXIoEwAAaFlYrgEAAD4+PiBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgJ2NsYXNzX21ldGhvZCcpCi4uLiBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgJ3N0YXRpY19tZXRob2QnKQouLi4gZGVmIHRlc3QobW9jazEsIG1vY2syKToKLi4uICAgICBhc3NlcnQgU29tZUNsYXNzLnN0YXRpY19tZXRob2QgaXMgbW9jazEKLi4uICAgICBhc3NlcnQgU29tZUNsYXNzLmNsYXNzX21ldGhvZCBpcyBtb2NrMgouLi4gICAgIFNvbWVDbGFzcy5zdGF0aWNfbWV0aG9kKCdmb28nKQouLi4gICAgIFNvbWVDbGFzcy5jbGFzc19tZXRob2QoJ2JhcicpCi4uLiAgICAgcmV0dXJuIG1vY2sxLCBtb2NrMgouLi4KPj4+IG1vY2sxLCBtb2NrMiA9IHRlc3QoKQo+Pj4gbW9jazEuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ2ZvbycpCj4+PiBtb2NrMi5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnYmFyJylyKRMAAIWBcioTAAB9cisTAAAoaDVVAGg2ahoTAAB1YmF1YmiHKYFyLBMAAH1yLRMAAChoNVjIAAAATm90ZSB0aGF0IHRoZSBkZWNvcmF0b3JzIGFyZSBhcHBsaWVkIGZyb20gdGhlIGJvdHRvbSB1cHdhcmRzLiBUaGlzIGlzIHRoZQpzdGFuZGFyZCB3YXkgdGhhdCBQeXRob24gYXBwbGllcyBkZWNvcmF0b3JzLiBUaGUgb3JkZXIgb2YgdGhlIGNyZWF0ZWQgbW9ja3MKcGFzc2VkIGludG8geW91ciB0ZXN0IGZ1bmN0aW9uIG1hdGNoZXMgdGhpcyBvcmRlci5yLhMAAGg2auoSAABoN2g6aDxoi2g+fXIvEwAAKGhAXXIwEwAAaEJdcjETAABoRF1yMhMAAGhGXXIzEwAAaEhdcjQTAAB1aEpNLgJoS2gCaDBdcjUTAABoWVjIAAAATm90ZSB0aGF0IHRoZSBkZWNvcmF0b3JzIGFyZSBhcHBsaWVkIGZyb20gdGhlIGJvdHRvbSB1cHdhcmRzLiBUaGlzIGlzIHRoZQpzdGFuZGFyZCB3YXkgdGhhdCBQeXRob24gYXBwbGllcyBkZWNvcmF0b3JzLiBUaGUgb3JkZXIgb2YgdGhlIGNyZWF0ZWQgbW9ja3MKcGFzc2VkIGludG8geW91ciB0ZXN0IGZ1bmN0aW9uIG1hdGNoZXMgdGhpcyBvcmRlci5yNhMAAIWBcjcTAAB9cjgTAAAoaDVqLhMAAGg2aiwTAAB1YmF1YmiHKYFyORMAAH1yOhMAAChoNViJAAAATGlrZSBhbGwgY29udGV4dC1tYW5hZ2VycyBwYXRjaGVzIGNhbiBiZSBuZXN0ZWQgdXNpbmcgY29udGV4dGxpYidzIG5lc3RlZApmdW5jdGlvbjsgKmV2ZXJ5KiBwYXRjaGluZyB3aWxsIGFwcGVhciBpbiB0aGUgdHVwbGUgYWZ0ZXIgImFzIjpyOxMAAGg2auoSAABoN2g6aDxoi2g+fXI8EwAAKGhAXXI9EwAAaEJdcj4TAABoRF1yPxMAAGhGXXJAEwAAaEhdckETAAB1aEpNMgJoS2gCaDBdckITAAAoaFlYVAAAAExpa2UgYWxsIGNvbnRleHQtbWFuYWdlcnMgcGF0Y2hlcyBjYW4gYmUgbmVzdGVkIHVzaW5nIGNvbnRleHRsaWIncyBuZXN0ZWQKZnVuY3Rpb247IHJDEwAAhYFyRBMAAH1yRRMAAChoNVhUAAAATGlrZSBhbGwgY29udGV4dC1tYW5hZ2VycyBwYXRjaGVzIGNhbiBiZSBuZXN0ZWQgdXNpbmcgY29udGV4dGxpYidzIG5lc3RlZApmdW5jdGlvbjsgckYTAABoNmo5EwAAdWJqBwQAACmBckcTAAB9ckgTAAAoaDVYBwAAACpldmVyeSpySRMAAGg+fXJKEwAAKGhAXXJLEwAAaEJdckwTAABoRF1yTRMAAGhGXXJOEwAAaEhdck8TAAB1aDZqORMAAGgwXXJQEwAAaFlYBQAAAGV2ZXJ5clETAACFgXJSEwAAfXJTEwAAKGg1VQBoNmpHEwAAdWJhaDxqFQQAAHViaFlYLgAAACBwYXRjaGluZyB3aWxsIGFwcGVhciBpbiB0aGUgdHVwbGUgYWZ0ZXIgImFzIjpyVBMAAIWBclUTAAB9clYTAAAoaDVYLgAAACBwYXRjaGluZyB3aWxsIGFwcGVhciBpbiB0aGUgdHVwbGUgYWZ0ZXIgImFzIjpyVxMAAGg2ajkTAAB1YmV1YmqeBQAAKYFyWBMAAH1yWRMAAChoNVgqAQAAPj4+IGZyb20gY29udGV4dGxpYiBpbXBvcnQgbmVzdGVkCj4+PiB3aXRoIG5lc3RlZCgKLi4uICAgICAgICAgcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTEnKSwKLi4uICAgICAgICAgcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTInKQouLi4gICAgICkgYXMgKE1vY2tDbGFzczEsIE1vY2tDbGFzczIpOgouLi4gICAgIGFzc2VydCBwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUxIGlzIE1vY2tDbGFzczEKLi4uICAgICBhc3NlcnQgcGFja2FnZS5tb2R1bGUuQ2xhc3NOYW1lMiBpcyBNb2NrQ2xhc3MyCi4uLnJaEwAAaDZq6hIAAGg3aDpoPGqiBQAAaD59clsTAAAoVQx0ZXN0bm9kZXR5cGVyXBMAAFgHAAAAZG9jdGVzdHJdEwAAaGVoZmhGXXJeEwAAaERdcl8TAABoQF1yYBMAAGhCXXJhEwAAaEhdcmITAABVBmdyb3Vwc3JjEwAAXXJkEwAAaG5haG99cmUTAAB1aEpNNQJoS2gCaDBdcmYTAABoWVgqAQAAPj4+IGZyb20gY29udGV4dGxpYiBpbXBvcnQgbmVzdGVkCj4+PiB3aXRoIG5lc3RlZCgKLi4uICAgICAgICAgcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTEnKSwKLi4uICAgICAgICAgcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTInKQouLi4gICAgICkgYXMgKE1vY2tDbGFzczEsIE1vY2tDbGFzczIpOgouLi4gICAgIGFzc2VydCBwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUxIGlzIE1vY2tDbGFzczEKLi4uICAgICBhc3NlcnQgcGFja2FnZS5tb2R1bGUuQ2xhc3NOYW1lMiBpcyBNb2NrQ2xhc3MyCi4uLnJnEwAAhYFyaBMAAH1yaRMAAChoNVUAaDZqWBMAAHViYXViahUQAAApgXJqEwAAfXJrEwAAKGg1WBMAAAAuLiBfd2hlcmUtdG8tcGF0Y2g6cmwTAABoNmrq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aEZdct4TAABoSF1y3xMAAHVoSk1PAmhLaAJoMF1y4BMAAGhZWEwAAABJbWFnaW5lIHdlIGhhdmUgYSBwcm9qZWN0IHRoYXQgd2Ugd2FudCB0byB0ZXN0IHdpdGggdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6cuETAACFgXLiEwAAfXLjEwAAKGg1WEwAAABJbWFnaW5lIHdlIGhhdmUgYSBwcm9qZWN0IHRoYXQgd2Ugd2FudCB0byB0ZXN0IHdpdGggdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6cuQTAABoNmrXEwAAdWJhdWJqngUAACmBcuUTAAB9cuYTAAAoaDVYbgAAAGEucHkKICAgIC0+IERlZmluZXMgU29tZUNsYXNzCgpiLnB5CiAgICAtPiBmcm9tIGEgaW1wb3J0IFNvbWVDbGFzcwogICAgLT4gc29tZV9mdW5jdGlvbiBpbnN0YW50aWF0ZXMgU29tZUNsYXNzcucTAABoNmp0EwAAaDdoOmg8aqIFAABoPn1y6BMAAChoZWhmaEZdcukTAABoRF1y6hMAAGhAXXLrEwAAaEJdcuwTAABoSF1y7RMAAHVoSk1RAmhLaAJoMF1y7hMAAGhZWG4AAABhLnB5CiAgICAtPiBEZWZpbmVzIFNvbWVDbGFzcwoKYi5weQogICAgLT4gZnJvbSBhIGltcG9ydCBTb21lQ2xhc3MKICAgIC0+IHNvbWVfZnVuY3Rpb24gaW5zdGFudGlhdGVzIFNvbWVDbGFzc3LvEwAAhYFy8BMAAH1y8RMAAChoNVUAaDZq5RMAAHViYXViaIcpgXLyEwAAfXLzEwAAKGg1WIUBAABOb3cgd2Ugd2FudCB0byB0ZXN0IGBzb21lX2Z1bmN0aW9uYCBidXQgd2Ugd2FudCB0byBtb2NrIG91dCBgU29tZUNsYXNzYCB1c2luZwpgcGF0Y2hgLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gd2UgaW1wb3J0IG1vZHVsZSBiLCB3aGljaCB3ZSB3aWxsIGhhdmUgdG8KZG8gdGhlbiBpdCBpbXBvcnRzIGBTb21lQ2xhc3NgIGZyb20gbW9kdWxlIGEuIElmIHdlIHVzZSBgcGF0Y2hgIHRvIG1vY2sgb3V0CmBhLlNvbWVDbGFzc2AgdGhlbiBpdCB3aWxsIGhh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i3ViYWg8aoEWAAB1YmVVCHJlcG9ydGVycpsWAABOVQhpZF9zdGFydHKcFgAASwJVDWF1dG9mb290bm90ZXNynRYAAF1ynhYAAFUNY2l0YXRpb25fcmVmc3KfFgAAfXKgFgAAVRBpbmRpcmVjdF90YXJnZXRzcqEWAABdcqIWAABVCHNldHRpbmdzcqMWAAAoY2RvY3V0aWxzLmZyb250ZW5kClZhbHVlcwpypBYAAG9ypRYAAH1yphYAAChVEmZvb3Rub3RlX2JhY2tsaW5rc3KnFgAASwFVE3JlY29yZF9kZXBlbmRlbmNpZXNyqBYAAE5VDHJmY19iYXNlX3VybHKpFgAAVRtodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yqhYAAFUJdHJhY2ViYWNrcqsWAACIVQ5wZXBfcmVmZXJlbmNlc3KsFgAATlUOc3RyaXBfY29tbWVudHNyrRYAAE5VDXRvY19iYWNrbGlua3NyrhYAAFUFZW50cnlyrxYAAFUNbGFuZ3VhZ2VfY29kZXKwFgAAVQJlbnKxFgAAVQlkYXRlc3RhbXByshYAAE5VDHJlcG9ydF9sZXZlbHKzFgAASwJVDF9kZXN0aW5hdGlvbnK0FgAATlUKaGFsdF9sZXZlbHK1FgAASwVVDXN0cmlwX2NsYXNzZXNythYAAE5oUU5VHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXJytxYAAFUQYmFja3NsYXNocmVwbGFjZXK4FgAAVQVkZWJ1Z3K5FgAATlUQZW1iZWRfc3R5bGVzaGVldHK6FgAAiVUdb3V0cHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXJyuxYAAFUGc3RyaWN0crwWAABVDXNlY3RudW1feGZvcm1yvRYAAEsBVQ9kdW1wX3RyYW5zZm9ybXNyvhYAAE5VDWRvY2luZm9feGZvcm1yvxYAAEsBVQ53YXJuaW5nX3N0cmVhbXLAFgAATlUVcGVwX2ZpbGVfdXJsX3RlbXBsYXRlcsEWAABVCHBlcC0lMDRkcsIWAABVEWV4aXRfc3RhdHVzX2xldmVscsMWAABLBVUGY29uZmlncsQWAABOVQ5zdHJpY3RfdmlzaXRvcnLFFgAATlUVY2xvYWtfZW1haWxfYWRkcmVzc2VzcsYWAACIVR10cmltX2Zvb3Rub3RlX3JlZmVyZW5jZV9zcGFjZXLHFgAAiVUDZW52csgWAABOVQ9kdW1wX3BzZXVkb194bWxyyRYAAE5VEGV4cG9zZV9pbnRlcm5hbHNyyhYAAE5VEnNlY3RzdWJ0aXRsZV94Zm9ybXLLFgAAiVULc291cmNlX2xpbmtyzBYAAE5VDnJmY19yZWZlcmVuY2Vzcs0WAABOVQ9vdXRwdXRfZW5jb2RpbmdyzhYAAFUFdXRmLThyzxYAAFUKc291cmNlX3VybHLQFgAATlUOaW5wdXRfZW5jb2Rpbmdy0RYAAFUJdXRmLTgtc2lnctIWAABVD19kaXNhYmxlX2NvbmZpZ3LTFgAATlUJaWRfcHJlZml4ctQWAABVAFUJdGFiX3dpZHRoctUWAABLCFUOZXJyb3JfZW5jb2Rpbmdy1hYAAFUJbWFjLXJvbWFuctcWAABVB19zb3VyY2Vy2BYAAFUcL2NvbXBpbGUvbW9jay9kb2NzL3BhdGNoLnR4dHLZFgAAVQ9nZXR0ZXh0X2NvbXBhY3Ry2hYAAIhVCWdlbmVyYXRvcnLbFgAATlUOZHVtcF9pbnRlcm5hbHNy3BYAAE5VDHBlcF9iYXNlX3VybHLdFgAAVR9odHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvct4WAABVEHN5bnRheF9oaWdobGlnaHRy3xYAAFUFc2hvcnRy4BYAAFUcaW5wdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcnLhFgAAarwWAABVDmF1dG9faWRfcHJlZml4cuIWAABVAmlkcuMWAABVDmRvY3RpdGxlX3hmb3JtcuQWAACJVRtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXNy5RYAAE5VDV9jb25maWdfZmlsZXNy5hYAAF1y5xYAAFUWZmlsZV9pbnNlcnRpb25fZW5hYmxlZHLoFgAASwFVC3Jhd19lbmFibGVkcukWAABLAVUNZHVtcF9zZXR0aW5nc3LqFgAATnViVRVzeW1ib2xfZm9vdG5vdGVfc3RhcnRy6xYAAEsAVQNpZHNy7BYAAH1y7RYAAChoBmoMAQAAaChoM2gjanQTAABoCWogEgAAaAtqUw0AAGglauoSAABoLGomDQAAaC1qdBMAAGgNamsIAABoKWohEAAAaCtqPggAAGgqaJZoJmq4CgAAaCJqahUAAGgkagkWAABoFmrlCgAAaC5qrBEAAGgnanUSAABoL2ohEAAAdVUSc3Vic3RpdHV0aW9uX25hbWVzcu4WAAB9cu8WAABoPGhLaD59cvAWAAAoaEBdcvEWAABoRl1y8hYAAGhEXXLzFgAAVQZzb3VyY2Vy9BYAAGg6aEJdcvUWAABoSF1y9hYAAHVVCWZvb3Rub3Rlc3L3FgAAXXL4FgAAVQZyZWZpZHNy+RYAAH1y+hYAAChoI11y+xYAAGpqEwAAYWgvXXL8FgAAahYQAABhdXViLg==