A/MNCmL5IVRjAAAAAAAAAAAEAAAAQAAAAHOQAAAAZAAAWgAAZAEAZAIAbAEAbQIAWgIAAWUCAGQDAGQEAGQFAIMBAQFbAgBkBgBkBwBnAgBaAwBkAQBkCABsBABtBQBaBQABZAYAZA8AZAkAhAAAgwAAWVoGAGQKAIQAAGQOAGUGAGQLAIQDAFoIAGQMAIQAAFoJAGUKAGQNAGsCAHKMAGUJAIMAAAFuAABkDgBTKBAAAABz1AQAAEJhc3Rpb25pZmljYXRpb24gdXRpbGl0eS4KCkEgYmFzdGlvbiAoZm9yIGFub3RoZXIgb2JqZWN0IC0tIHRoZSAnb3JpZ2luYWwnKSBpcyBhbiBvYmplY3QgdGhhdCBoYXMKdGhlIHNhbWUgbWV0aG9kcyBhcyB0aGUgb3JpZ2luYWwgYnV0IGRvZXMgbm90IGdpdmUgYWNjZXNzIHRvIGl0cwppbnN0YW5jZSB2YXJpYWJsZXMuICBCYXN0aW9ucyBoYXZlIGEgbnVtYmVyIG9mIHVzZXMsIGJ1dCB0aGUgbW9zdApvYnZpb3VzIG9uZSBpcyB0byBwcm92aWRlIGNvZGUgZXhlY3V0aW5nIGluIHJlc3RyaWN0ZWQgbW9kZSB3aXRoIGEKc2FmZSBpbnRlcmZhY2UgdG8gYW4gb2JqZWN0IGltcGxlbWVudGVkIGluIHVucmVzdHJpY3RlZCBtb2RlLgoKVGhlIGJhc3Rpb25pZmljYXRpb24gcm91dGluZSBoYXMgYW4gb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IHdoaWNoIGlzCmEgZmlsdGVyIGZ1bmN0aW9uLiAgT25seSB0aG9zZSBtZXRob2RzIGZvciB3aGljaCB0aGUgZmlsdGVyIG1ldGhvZAooY2FsbGVkIHdpdGggdGhlIG1ldGhvZCBuYW1lIGFzIGFyZ3VtZW50KSByZXR1cm5zIHRydWUgYXJlIGFjY2Vzc2libGUuClRoZSBkZWZhdWx0IGZpbHRlciBtZXRob2QgcmV0dXJucyB0cnVlIHVubGVzcyB0aGUgbWV0aG9kIG5hbWUgYmVnaW5zCndpdGggYW4gdW5kZXJzY29yZS4KClRoZXJlIGFyZSBhIG51bWJlciBvZiBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbnMgb2YgYmFzdGlvbnMuICBXZSB1c2UgYQonbGF6eScgYXBwcm9hY2ggd2hlcmUgdGhlIGJhc3Rpb24ncyBfX2dldGF0dHJfXygpIGRpc2NpcGxpbmUgZG9lcyBhbGwKdGhlIHdvcmsgZm9yIGEgcGFydGljdWxhciBtZXRob2QgdGhlIGZpcnN0IHRpbWUgaXQgaXMgdXNlZC4gIFRoaXMgaXMKdXN1YWxseSBmYXN0ZXN0LCBlc3BlY2lhbGx5IGlmIHRoZSB1c2VyIGRvZXNuJ3QgY2FsbCBhbGwgYXZhaWxhYmxlCm1ldGhvZHMuICBUaGUgcmV0cmlldmVkIG1ldGhvZHMgYXJlIHN0b3JlZCBhcyBpbnN0YW5jZSB2YXJpYWJsZXMgb2YKdGhlIGJhc3Rpb24sIHNvIHRoZSBvdmVyaGVhZCBpcyBvbmx5IG9jY3VycmVkIG9uIHRoZSBmaXJzdCB1c2Ugb2YgZWFjaAptZXRob2QuCgpEZXRhaWw6IHRoZSBiYXN0aW9uIGNsYXNzIGhhcyBhIF9fcmVwcl9fKCkgZGlzY2lwbGluZSB3aGljaCBpbmNsdWRlcwp0aGUgcmVwcigpIG9mIHRoZSBvcmlnaW5hbCBvYmplY3QuICBUaGlzIGlzIHByZWNvbXB1dGVkIHdoZW4gdGhlCmJhc3Rpb24gaXMgY3JlYXRlZC4KCmn/////KAEAAAB0CAAAAHdhcm5weTNrczEAAAB0aGUgQmFzdGlvbiBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCBpbiBQeXRob24gMy4wdAoAAABzdGFja2xldmVsaQIAAAB0DAAAAEJhc3Rpb25DbGFzc3QHAAAAQmFzdGlvbigBAAAAdAoAAABNZXRob2RUeXBlYwAAAAAAAAAAAQAAAEIAAABzKQAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAGQCAIQAAFoEAGQDAIQAAFoFAFJTKAQAAABzBQEAAEhlbHBlciBjbGFzcyB1c2VkIGJ5IHRoZSBCYXN0aW9uKCkgZnVuY3Rpb24uCgogICAgWW91IGNvdWxkIHN1YmNsYXNzIHRoaXMgYW5kIHBhc3MgdGhlIHN1YmNsYXNzIGFzIHRoZSBiYXN0aW9uY2xhc3MKICAgIGFyZ3VtZW50IHRvIHRoZSBCYXN0aW9uKCkgZnVuY3Rpb24sIGFzIGxvbmcgYXMgdGhlIGNvbnN0cnVjdG9yIGhhcwogICAgdGhlIHNhbWUgc2lnbmF0dXJlIChhIGdldCgpIGZ1bmN0aW9uIGFuZCBhIG5hbWUgZm9yIHRoZSBvYmplY3QpLgoKICAgIGMDAAAAAwAAAAIAAABDAAAAcxYAAAB8AQB8AABfAAB8AgB8AABfAQBkAQBTKAIAAABz1wAAAENvbnN0cnVjdG9yLgoKICAgICAgICBBcmd1bWVudHM6CgogICAgICAgIGdldCAtIGEgZnVuY3Rpb24gdGhhdCBnZXRzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgKGJ5IG5hbWUpCiAgICAgICAgbmFtZSAtIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yaWdpbmFsIG9iamVjdAogICAgICAgICAgICAgICAoc3VnZ2VzdGlvbjogdXNlIHJlcHIob2JqZWN0KSkKCiAgICAgICAgTigCAAAAdAUAAABfZ2V0X3QGAAAAX25hbWVfKAMAAAB0BAAAAHNlbGZ0AwAAAGdldHQEAAAAbmFtZSgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvQmFzdGlvbi5weXQIAAAAX19pbml0X18vAAAAcwQAAAAACgkBYwEAAAABAAAAAgAAAEMAAABzCwAAAGQBAHwAAGoAABZTKAIAAABz1QAAAFJldHVybiBhIHJlcHJlc2VudGF0aW9uIHN0cmluZy4KCiAgICAgICAgVGhpcyBpbmNsdWRlcyB0aGUgbmFtZSBwYXNzZWQgaW4gdG8gdGhlIGNvbnN0cnVjdG9yLCBzbyB0aGF0CiAgICAgICAgaWYgeW91IHByaW50IHRoZSBiYXN0aW9uIGR1cmluZyBkZWJ1Z2dpbmcsIGF0IGxlYXN0IHlvdSBoYXZlCiAgICAgICAgc29tZSBpZGVhIG9mIHdoYXQgaXQgaXMuCgogICAgICAgIHMQAAAAPEJhc3Rpb24gZm9yICVzPigBAAAAUgYAAAAoAQAAAFIHAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9CYXN0aW9uLnB5dAgAAABfX3JlcHJfXzwAAABzAgAAAAAIYwIAAAADAAAAAwAAAEMAAABzIAAAAHwAAGoAAHwBAIMBAH0CAHwCAHwAAGoBAHwBADx8AgBTKAEAAABzjQEAAEdldCBhbiBhcy15ZXQgdW5kZWZpbmVkIGF0dHJpYnV0ZSB2YWx1ZS4KCiAgICAgICAgVGhpcyBjYWxscyB0aGUgZ2V0KCkgZnVuY3Rpb24gdGhhdCB3YXMgcGFzc2VkIHRvIHRoZQogICAgICAgIGNvbnN0cnVjdG9yLiAgVGhlIHJlc3VsdCBpcyBzdG9yZWQgYXMgYW4gaW5zdGFuY2UgdmFyaWFibGUgc28KICAgICAgICB0aGF0IHRoZSBuZXh0IHRpbWUgdGhlIHNhbWUgYXR0cmlidXRlIGlzIHJlcXVlc3RlZCwKICAgICAgICBfX2dldGF0dHJfXygpIHdvbid0IGJlIGludm9rZWQuCgogICAgICAgIElmIHRoZSBnZXQoKSBmdW5jdGlvbiByYWlzZXMgYW4gZXhjZXB0aW9uLCB0aGlzIGlzIHNpbXBseQogICAgICAgIHBhc3NlZCBvbiAtLSBleGNlcHRpb25zIGFyZSBub3QgY2FjaGVkLgoKICAgICAgICAoAgAAAFIFAAAAdAgAAABfX2RpY3RfXygDAAAAUgcAAABSCQAAAHQJAAAAYXR0cmlidXRlKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9CYXN0aW9uLnB5dAsAAABfX2dldGF0dHJfX0YAAABzBgAAAAAMDwENASgGAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QHAAAAX19kb2NfX1IKAAAAUgsAAABSDgAAACgAAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9CYXN0aW9uLnB5UgIAAAAlAAAAcwgAAAAGCAYCCQ0JCmMBAAAAAQAAAAIAAABDAAAAcw4AAAB8AABkAQAgZAIAawMAUygDAAAATmkBAAAAdAEAAABfKAAAAAAoAQAAAFIJAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9CYXN0aW9uLnB5dAgAAAA8bGFtYmRhPlcAAABzAAAAAGMEAAAABgAAAAMAAABDAAAAc0wAAAB0AABkAQCCAgB8AAB8AQBkAgCEAgB9BAB8BABkAwCEAQB9BQB8AgBkBABrCAByPwB0AgB8AACDAQB9AgBuAAB8AwB8BQB8AgCDAgBTKAUAAABztwEAAENyZWF0ZSBhIGJhc3Rpb24gZm9yIGFuIG9iamVjdCwgdXNpbmcgYW4gb3B0aW9uYWwgZmlsdGVyLgoKICAgIFNlZSB0aGUgQmFzdGlvbiBtb2R1bGUncyBkb2N1bWVudGF0aW9uIGZvciBiYWNrZ3JvdW5kLgoKICAgIEFyZ3VtZW50czoKCiAgICBvYmplY3QgLSB0aGUgb3JpZ2luYWwgb2JqZWN0CiAgICBmaWx0ZXIgLSBhIHByZWRpY2F0ZSB0aGF0IGRlY2lkZXMgd2hldGhlciBhIGZ1bmN0aW9uIG5hbWUgaXMgT0s7CiAgICAgICAgICAgICBieSBkZWZhdWx0IGFsbCBuYW1lcyBhcmUgT0sgdGhhdCBkb24ndCBzdGFydCB3aXRoICdfJwogICAgbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBvYmplY3Q7IGRlZmF1bHQgcmVwcihvYmplY3QpCiAgICBiYXN0aW9uY2xhc3MgLSBjbGFzcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYmFzdGlvbjsgZGVmYXVsdCBCYXN0aW9uQ2xhc3MKCiAgICBzLwAAAFRoaXMgY29kZSBpcyBub3Qgc2VjdXJlIGluIFB5dGhvbiAyLjIgYW5kIGxhdGVyYwMAAAAEAAAAAwAAAFMAAABzQQAAAHwCAHwAAIMBAHI0AHQAAHwBAHwAAIMCAH0DAHQBAHwDAIMBAHQCAGsCAHI0AHwDAFNuAAB0AwB8AACCAgBkAQBTKAIAAABzNgAAAEludGVybmFsIGZ1bmN0aW9uIGZvciBCYXN0aW9uKCkuICBTZWUgc291cmNlIGNvbW1lbnRzLk4oBAAAAHQHAAAAZ2V0YXR0cnQEAAAAdHlwZVIEAAAAdA4AAABBdHRyaWJ1dGVFcnJvcigEAAAAUgkAAAB0BgAAAG9iamVjdHQGAAAAZmlsdGVyUg0AAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHl0BAAAAGdldDF1AAAAcwoAAAAAAgwBDwESAQcBYwIAAAACAAAAAgAAAFMAAABzCgAAAHwBAHwAAIMBAFMoAQAAAHM2AAAASW50ZXJuYWwgZnVuY3Rpb24gZm9yIEJhc3Rpb24oKS4gIFNlZSBzb3VyY2UgY29tbWVudHMuKAAAAAAoAgAAAFIJAAAAUhkAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHl0BAAAAGdldDJ9AAAAcwIAAAAAAk4oAwAAAHQMAAAAUnVudGltZUVycm9ydAQAAABOb25ldAQAAAByZXByKAYAAABSFwAAAFIYAAAAUgkAAAB0DAAAAGJhc3Rpb25jbGFzc1IZAAAAUhoAAAAoAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHlSAwAAAFcAAABzDAAAAAAQCQ4PCAwEDAEPAWMAAAAABwAAAAMAAABCAAAAc4QAAABkAQBkCgBkAgCEAACDAABZfQAAfAAAgwAAfQEAZQAAfAEAgwEAfQIAZAMAfQMAfAMAZAQABFVkCwBHZAcAR2QMAEdIZAgAZAQAbAEAfQQAfAQAagIAgwAAfQUAfAUAagMAZAkAgwEAfQYAfAIAfAYAXwQAfAUAagUAfAMAgwEAAWQEAFMoDQAAAHMcAAAAVGVzdCB0aGUgQmFzdGlvbigpIGZ1bmN0aW9uLnQIAAAAT3JpZ2luYWxjAAAAAAAAAAABAAAAQgAAAHMsAAAAZQAAWgEAZAAAhAAAWgIAZAEAhAAAWgMAZAIAhAAAWgQAZAMAhAAAWgUAUlMoBAAAAGMBAAAAAQAAAAIAAABTAAAAcw0AAABkAQB8AABfAABkAABTKAIAAABOaQAAAAAoAQAAAHQDAAAAc3VtKAEAAABSBwAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvQmFzdGlvbi5weVIKAAAAiQAAAHMCAAAAAAFjAgAAAAIAAAACAAAAUwAAAHMRAAAAfAAAagAAfAEAgwEAAWQAAFMoAQAAAE4oAQAAAHQEAAAAX2FkZCgCAAAAUgcAAAB0AQAAAG4oAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHl0AwAAAGFkZIsAAABzAgAAAAABYwIAAAACAAAAAgAAAFMAAABzFAAAAHwAAGoAAHwBABd8AABfAABkAABTKAEAAABOKAEAAABSIAAAACgCAAAAUgcAAABSIgAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvQmFzdGlvbi5weVIhAAAAjQAAAHMCAAAAAAFjAQAAAAEAAAABAAAAUwAAAHMHAAAAfAAAagAAUygBAAAATigBAAAAUiAAAAAoAQAAAFIHAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9CYXN0aW9uLnB5dAUAAAB0b3RhbI8AAABzAgAAAAABKAYAAABSDwAAAFIQAAAAUgoAAABSIwAAAFIhAAAAUiQAAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvQmFzdGlvbi5weVIfAAAAiAAAAHMIAAAABgEJAgkCCQJz3AEAAGlmIDE6CiAgICBiLmFkZCg4MSkKICAgIGIuYWRkKDE4KQogICAgcHJpbnQgImIudG90YWwoKSA9IiwgYi50b3RhbCgpCiAgICB0cnk6CiAgICAgICAgcHJpbnQgImIuc3VtID0iLCBiLnN1bSwKICAgIGV4Y2VwdDoKICAgICAgICBwcmludCAiaW5hY2Nlc3NpYmxlIgogICAgZWxzZToKICAgICAgICBwcmludCAiYWNjZXNzaWJsZSIKICAgIHRyeToKICAgICAgICBwcmludCAiYi5fYWRkID0iLCBiLl9hZGQsCiAgICBleGNlcHQ6CiAgICAgICAgcHJpbnQgImluYWNjZXNzaWJsZSIKICAgIGVsc2U6CiAgICAgICAgcHJpbnQgImFjY2Vzc2libGUiCiAgICB0cnk6CiAgICAgICAgcHJpbnQgImIuX2dldF8uZnVuY19kZWZhdWx0cyA9IiwgbWFwKHR5cGUsIGIuX2dldF8uZnVuY19kZWZhdWx0cyksCiAgICBleGNlcHQ6CiAgICAgICAgcHJpbnQgImluYWNjZXNzaWJsZSIKICAgIGVsc2U6CiAgICAgICAgcHJpbnQgImFjY2Vzc2libGUiCiAgICAKTnQBAAAAPWkUAAAAcwwAAABVc2luZyByZXhlYzpp/////3QIAAAAX19tYWluX18oAAAAAHMUAAAAPT09PT09PT09PT09PT09PT09PT1zFAAAAD09PT09PT09PT09PT09PT09PT09KAYAAABSAwAAAHQFAAAAcmV4ZWN0BQAAAFJFeGVjdAoAAABhZGRfbW9kdWxldAEAAABidAYAAAByX2V4ZWMoBwAAAFIfAAAAdAEAAABvUioAAAB0CAAAAHRlc3Rjb2RlUicAAAB0AQAAAHJ0AQAAAG0oAAAAACgAAAAAc3IAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L0Jhc3Rpb24ucHl0BQAAAF90ZXN0hgAAAHMWAAAAAAITCQkBDBcGAQgBDQEMAQwBDwEJAVImAAAATigAAAAAKAsAAABSEQAAAHQIAAAAd2FybmluZ3NSAAAAAHQHAAAAX19hbGxfX3QFAAAAdHlwZXNSBAAAAFICAAAAUhwAAABSAwAAAFIwAAAAUg8AAAAoAAAAACgAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvQmFzdGlvbi5weXQIAAAAPG1vZHVsZT4bAAAAcxYAAAAGARABEAEDAgwCEAMTMgYBDy4JLQwB