A/MNCktcrFFjAAAAAAAAAAAEAAAAQAAAAHOQAAAAZAAAWgAAZAEAZAIAbAEAbQIAWgIAAWUCAGQDAGQEAGQFAIMBAQFbAgBkBgBkBwBnAgBaAwBkAQBkCABsBABtBQBaBQABZAYAZA8AZAkAhAAAgwAAWVoGAGQKAIQAAGQOAGUGAGQLAIQDAFoIAGQMAIQAAFoJAGUKAGQNAGsCAHKMAGUJAIMAAAFuAABkDgBTKBAAAABz1AQAAEJhc3Rpb25pZmljYXRpb24gdXRpbGl0eS4KCkEgYmFzdGlvbiAoZm9yIGFub3RoZXIgb2JqZWN0IC0tIHRoZSAnb3JpZ2luYWwnKSBpcyBhbiBvYmplY3QgdGhhdCBoYXMKdGhlIHNhbWUgbWV0aG9kcyBhcyB0aGUgb3JpZ2luYWwgYnV0IGRvZXMgbm90IGdpdmUgYWNjZXNzIHRvIGl0cwppbnN0YW5jZSB2YXJpYWJsZXMuICBCYXN0aW9ucyBoYXZlIGEgbnVtYmVyIG9mIHVzZXMsIGJ1dCB0aGUgbW9zdApvYnZpb3VzIG9uZSBpcyB0byBwcm92aWRlIGNvZGUgZXhlY3V0aW5nIGluIHJlc3RyaWN0ZWQgbW9kZSB3aXRoIGEKc2FmZSBpbnRlcmZhY2UgdG8gYW4gb2JqZWN0IGltcGxlbWVudGVkIGluIHVucmVzdHJpY3RlZCBtb2RlLgoKVGhlIGJhc3Rpb25pZmljYXRpb24gcm91dGluZSBoYXMgYW4gb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IHdoaWNoIGlzCmEgZmlsdGVyIGZ1bmN0aW9uLiAgT25seSB0aG9zZSBtZXRob2RzIGZvciB3aGljaCB0aGUgZmlsdGVyIG1ldGhvZAooY2FsbGVkIHdpdGggdGhlIG1ldGhvZCBuYW1lIGFzIGFyZ3VtZW50KSByZXR1cm5zIHRydWUgYXJlIGFjY2Vzc2libGUuClRoZSBkZWZhdWx0IGZpbHRlciBtZXRob2QgcmV0dXJucyB0cnVlIHVubGVzcyB0aGUgbWV0aG9kIG5hbWUgYmVnaW5zCndpdGggYW4gdW5kZXJzY29yZS4KClRoZXJlIGFyZSBhIG51bWJlciBvZiBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbnMgb2YgYmFzdGlvbnMuICBXZSB1c2UgYQonbGF6eScgYXBwcm9hY2ggd2hlcmUgdGhlIGJhc3Rpb24ncyBfX2dldGF0dHJfXygpIGRpc2NpcGxpbmUgZG9lcyBhbGwKdGhlIHdvcmsgZm9yIGEgcGFydGljdWxhciBtZXRob2QgdGhlIGZpcnN0IHRpbWUgaXQgaXMgdXNlZC4gIFRoaXMgaXMKdXN1YWxseSBmYXN0ZXN0LCBlc3BlY2lhbGx5IGlmIHRoZSB1c2VyIGRvZXNuJ3QgY2FsbCBhbGwgYXZhaWxhYmxlCm1ldGhvZHMuICBUaGUgcmV0cmlldmVkIG1ldGhvZHMgYXJlIHN0b3JlZCBhcyBpbnN0YW5jZSB2YXJpYWJsZXMgb2YKdGhlIGJhc3Rpb24sIHNvIHRoZSBvdmVyaGVhZCBpcyBvbmx5IG9jY3VycmVkIG9uIHRoZSBmaXJzdCB1c2Ugb2YgZWFjaAptZXRob2QuCgpEZXRhaWw6IHRoZSBiYXN0aW9uIGNsYXNzIGhhcyBhIF9fcmVwcl9fKCkgZGlzY2lwbGluZSB3aGljaCBpbmNsdWRlcwp0aGUgcmVwcigpIG9mIHRoZSBvcmlnaW5hbCBvYmplY3QuICBUaGlzIGlzIHByZWNvbXB1dGVkIHdoZW4gdGhlCmJhc3Rpb24gaXMgY3JlYXRlZC4KCmn/////KAEAAAB0CAAAAHdhcm5weTNrczEAAAB0aGUgQmFzdGlvbiBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCBpbiBQeXRob24gMy4wdAoAAABzdGFja2xldmVsaQIAAAB0DAAAAEJhc3Rpb25DbGFzc3QHAAAAQmFzdGlvbigBAAAAdAoAAABNZXRob2RUeXBlYwAAAAAAAAAAAQAAAEIAAABzKQAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAGQCAIQAAFoEAGQDAIQAAFoFAFJTKAQAAABzBQEAAEhlbHBlciBjbGFzcyB1c2VkIGJ5IHRoZSBCYXN0aW9uKCkgZnVuY3Rpb24uCgogICAgWW91IGNvdWxkIHN1YmNsYXNzIHRoaXMgYW5kIHBhc3MgdGhlIHN1YmNsYXNzIGFzIHRoZSBiYXN0aW9uY2xhc3MKICAgIGFyZ3VtZW50IHRvIHRoZSBCYXN0aW9uKCkgZnVuY3Rpb24sIGFzIGxvbmcgYXMgdGhlIGNvbnN0cnVjdG9yIGhhcwogICAgdGhlIHNhbWUgc2lnbmF0dXJlIChhIGdldCgpIGZ1bmN0aW9uIGFuZCBhIG5hbWUgZm9yIHRoZSBvYmplY3QpLgoKICAgIGMDAAAAAwAAAAIAAABDAAAAcxYAAAB8AQB8AABfAAB8AgB8AABfAQBkAQBTKAIAAABz1wAAAENvbnN0cnVjdG9yLgoKICAgICAgICBBcmd1bWVudHM6CgogICAgICAgIGdldCAtIGEgZnVuY3Rpb24gdGhhdCBnZXRzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKGJ5IG5hbWUpCiAgICAgICAgbmFtZSAtIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yaWdpbmFsIG9iamVjdAogICAgICAgICAgICAgICAoc3VnZ2VzdGlvbjogdXNlIHJlcHIob2JqZWN0KSkKCiAgICAgICAgTigCAAAAdAUAAABfZ2V0X3QGAAAAX25hbWVfKAMAAAB0BAAAAHNlbGZ0AwAAAGdldHQEAAAAbmFtZSgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHl0CAAAAF9faW5pdF9fLwAAAHMEAAAAAAoJAWMBAAAAAQAAAAIAAABDAAAAcwsAAABkAQB8AABqAAAWUygCAAAAc9UAAABSZXR1cm4gYSByZXByZXNlbnRhdGlvbiBzdHJpbmcuCgogICAgICAgIFRoaXMgaW5jbHVkZXMgdGhlIG5hbWUgcGFzc2VkIGluIHRvIHRoZSBjb25zdHJ1Y3Rvciwgc28gdGhhdAogICAgICAgIGlmIHlvdSBwcmludCB0aGUgYmFzdGlvbiBkdXJpbmcgZGVidWdnaW5nLCBhdCBsZWFzdCB5b3UgaGF2ZQogICAgICAgIHNvbWUgaWRlYSBvZiB3aGF0IGl0IGlzLgoKICAgICAgICBzEAAAADxCYXN0aW9uIGZvciAlcz4oAQAAAFIGAAAAKAEAAABSBwAAACgAAAAAKAAAAABzTwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHl0CAAAAF9fcmVwcl9fPAAAAHMCAAAAAAhjAgAAAAMAAAADAAAAQwAAAHMgAAAAfAAAagAAfAEAgwEAfQIAfAIAfAAAagEAfAEAPHwCAFMoAQAAAHONAQAAR2V0IGFuIGFzLXlldCB1bmRlZmluZWQgYXR0cmlidXRlIHZhbHVlLgoKICAgICAgICBUaGlzIGNhbGxzIHRoZSBnZXQoKSBmdW5jdGlvbiB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlCiAgICAgICAgY29uc3RydWN0b3IuICBUaGUgcmVzdWx0IGlzIHN0b3JlZCBhcyBhbiBpbnN0YW5jZSB2YXJpYWJsZSBzbwogICAgICAgIHRoYXQgdGhlIG5leHQgdGltZSB0aGUgc2FtZSBhdHRyaWJ1dGUgaXMgcmVxdWVzdGVkLAogICAgICAgIF9fZ2V0YXR0cl9fKCkgd29uJ3QgYmUgaW52b2tlZC4KCiAgICAgICAgSWYgdGhlIGdldCgpIGZ1bmN0aW9uIHJhaXNlcyBhbiBleGNlcHRpb24sIHRoaXMgaXMgc2ltcGx5CiAgICAgICAgcGFzc2VkIG9uIC0tIGV4Y2VwdGlvbnMgYXJlIG5vdCBjYWNoZWQuCgogICAgICAgICgCAAAAUgUAAAB0CAAAAF9fZGljdF9fKAMAAABSBwAAAFIJAAAAdAkAAABhdHRyaWJ1dGUoAAAAACgAAAAAc08AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9CYXN0aW9uLnB5dAsAAABfX2dldGF0dHJfX0YAAABzBgAAAAAMDwENASgGAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QHAAAAX19kb2NfX1IKAAAAUgsAAABSDgAAACgAAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvQmFzdGlvbi5weVICAAAAJQAAAHMIAAAABggGAgkNCQpjAQAAAAEAAAACAAAAQwAAAHMO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AABzCAAAAAYBCQIJAgkCc9wBAABpZiAxOgogICAgYi5hZGQoODEpCiAgICBiLmFkZCgxOCkKICAgIHByaW50ICJiLnRvdGFsKCkgPSIsIGIudG90YWwoKQogICAgdHJ5OgogICAgICAgIHByaW50ICJiLnN1bSA9IiwgYi5zdW0sCiAgICBleGNlcHQ6CiAgICAgICAgcHJpbnQgImluYWNjZXNzaWJsZSIKICAgIGVsc2U6CiAgICAgICAgcHJpbnQgImFjY2Vzc2libGUiCiAgICB0cnk6CiAgICAgICAgcHJpbnQgImIuX2FkZCA9IiwgYi5fYWRkLAogICAgZXhjZXB0OgogICAgICAgIHByaW50ICJpbmFjY2Vzc2libGUiCiAgICBlbHNlOgogICAgICAgIHByaW50ICJhY2Nlc3NpYmxlIgogICAgdHJ5OgogICAgICAgIHByaW50ICJiLl9nZXRfLmZ1bmNfZGVmYXVsdHMgPSIsIG1hcCh0eXBlLCBiLl9nZXRfLmZ1bmNfZGVmYXVsdHMpLAogICAgZXhjZXB0OgogICAgICAgIHByaW50ICJpbmFjY2Vzc2libGUiCiAgICBlbHNlOgogICAgICAgIHByaW50ICJhY2Nlc3NpYmxlIgogICAgCk50AQAAAD1pFAAAAHMMAAAAVXNpbmcgcmV4ZWM6af////90CAAAAF9fbWFpbl9fKAAAAABzFAAAAD09PT09PT09PT09PT09PT09PT09cxQAAAA9PT09PT09PT09PT09PT09PT09PSgGAAAAUgMAAAB0BQAAAHJleGVjdAUAAABSRXhlY3QKAAAAYWRkX21vZHVsZXQBAAAAYnQGAAAAcl9leGVjKAcAAABSHwAAAHQBAAAAb1IqAAAAdAgAAAB0ZXN0Y29kZVInAAAAdAEAAABydAEAAABtKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvQmFzdGlvbi5weXQFAAAAX3Rlc3SGAAAAcxYAAAAAAhMJCQEMFwYBCAENAQwBDAEPAQkBUiYAAABOKAAAAAAoCwAAAFIRAAAAdAgAAAB3YXJuaW5nc1IAAAAAdAcAAABfX2FsbF9fdAUAAAB0eXBlc1IEAAAAUgIAAABSHAAAAFIDAAAAUjAAAABSDwAAACgAAAAAKAAAAAAoAAAAAHNPAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvQmFzdGlvbi5weXQIAAAAPG1vZHVsZT4bAAAAcxYAAAAGARABEAEDAgwCEAMTMgYBDy4JLQwB