A/MNCktcrFFjAAAAAAAAAAADAAAAQAAAAHNeAAAAZAAAWgAAZAEAZwEAWgEAZAIAZQIAZgEAZAMAhAAAgwAAWVoDAGQEAIQAAFoEAGQBAGUDAGYBAGQFAIQAAIMAAFlaBQBkBgBkBwBsBgBtBwBaBwBtCABaCAABZAgAUygJAAAAc/gMAABUaHJlYWQtbG9jYWwgb2JqZWN0cy4KCihOb3RlIHRoYXQgdGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBQeXRob24gdmVyc2lvbiBvZiB0aGUgdGhyZWFkaW5nLmxvY2FsCiBjbGFzcy4gIERlcGVuZGluZyBvbiB0aGUgdmVyc2lvbiBvZiBQeXRob24geW91J3JlIHVzaW5nLCB0aGVyZSBtYXkgYmUgYQogZmFzdGVyIG9uZSBhdmFpbGFibGUuICBZb3Ugc2hvdWxkIGFsd2F5cyBpbXBvcnQgdGhlIGBsb2NhbGAgY2xhc3MgZnJvbQogYHRocmVhZGluZ2AuKQoKVGhyZWFkLWxvY2FsIG9iamVjdHMgc3VwcG9ydCB0aGUgbWFuYWdlbWVudCBvZiB0aHJlYWQtbG9jYWwgZGF0YS4KSWYgeW91IGhhdmUgZGF0YSB0aGF0IHlvdSB3YW50IHRvIGJlIGxvY2FsIHRvIGEgdGhyZWFkLCBzaW1wbHkgY3JlYXRlCmEgdGhyZWFkLWxvY2FsIG9iamVjdCBhbmQgdXNlIGl0cyBhdHRyaWJ1dGVzOgoKICA+Pj4gbXlkYXRhID0gbG9jYWwoKQogID4+PiBteWRhdGEubnVtYmVyID0gNDIKICA+Pj4gbXlkYXRhLm51bWJlcgogIDQyCgpZb3UgY2FuIGFsc28gYWNjZXNzIHRoZSBsb2NhbC1vYmplY3QncyBkaWN0aW9uYXJ5OgoKICA+Pj4gbXlkYXRhLl9fZGljdF9fCiAgeydudW1iZXInOiA0Mn0KICA+Pj4gbXlkYXRhLl9fZGljdF9fLnNldGRlZmF1bHQoJ3dpZGdldHMnLCBbXSkKICBbXQogID4+PiBteWRhdGEud2lkZ2V0cwogIFtdCgpXaGF0J3MgaW1wb3J0YW50IGFib3V0IHRocmVhZC1sb2NhbCBvYmplY3RzIGlzIHRoYXQgdGhlaXIgZGF0YSBhcmUKbG9jYWwgdG8gYSB0aHJlYWQuIElmIHdlIGFjY2VzcyB0aGUgZGF0YSBpbiBhIGRpZmZlcmVudCB0aHJlYWQ6CgogID4+PiBsb2cgPSBbXQogID4+PiBkZWYgZigpOgogIC4uLiAgICAgaXRlbXMgPSBteWRhdGEuX19kaWN0X18uaXRlbXMoKQogIC4uLiAgICAgaXRlbXMuc29ydCgpCiAgLi4uICAgICBsb2cuYXBwZW5kKGl0ZW1zKQogIC4uLiAgICAgbXlkYXRhLm51bWJlciA9IDExCiAgLi4uICAgICBsb2cuYXBwZW5kKG15ZGF0YS5udW1iZXIpCgogID4+PiBpbXBvcnQgdGhyZWFkaW5nCiAgPj4+IHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWYpCiAgPj4+IHRocmVhZC5zdGFydCgpCiAgPj4+IHRocmVhZC5qb2luKCkKICA+Pj4gbG9nCiAgW1tdLCAxMV0KCndlIGdldCBkaWZmZXJlbnQgZGF0YS4gIEZ1cnRoZXJtb3JlLCBjaGFuZ2VzIG1hZGUgaW4gdGhlIG90aGVyIHRocmVhZApkb24ndCBhZmZlY3QgZGF0YSBzZWVuIGluIHRoaXMgdGhyZWFkOgoKICA+Pj4gbXlkYXRhLm51bWJlcgogIDQyCgpPZiBjb3Vyc2UsIHZhbHVlcyB5b3UgZ2V0IGZyb20gYSBsb2NhbCBvYmplY3QsIGluY2x1ZGluZyBhIF9fZGljdF9fCmF0dHJpYnV0ZSwgYXJlIGZvciB3aGF0ZXZlciB0aHJlYWQgd2FzIGN1cnJlbnQgYXQgdGhlIHRpbWUgdGhlCmF0dHJpYnV0ZSB3YXMgcmVhZC4gIEZvciB0aGF0IHJlYXNvbiwgeW91IGdlbmVyYWxseSBkb24ndCB3YW50IHRvIHNhdmUKdGhlc2UgdmFsdWVzIGFjcm9zcyB0aHJlYWRzLCBhcyB0aGV5IGFwcGx5IG9ubHkgdG8gdGhlIHRocmVhZCB0aGV5CmNhbWUgZnJvbS4KCllvdSBjYW4gY3JlYXRlIGN1c3RvbSBsb2NhbCBvYmplY3RzIGJ5IHN1YmNsYXNzaW5nIHRoZSBsb2NhbCBjbGFzczoKCiAgPj4+IGNsYXNzIE15TG9jYWwobG9jYWwpOgogIC4uLiAgICAgbnVtYmVyID0gMgogIC4uLiAgICAgaW5pdGlhbGl6ZWQgPSBGYWxzZQogIC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3cpOgogIC4uLiAgICAgICAgIGlmIHNlbGYuaW5pdGlhbGl6ZWQ6CiAgLi4uICAgICAgICAgICAgIHJhaXNlIFN5c3RlbUVycm9yKCdfX2luaXRfXyBjYWxsZWQgdG9vIG1hbnkgdGltZXMnKQogIC4uLiAgICAgICAgIHNlbGYuaW5pdGlhbGl6ZWQgPSBUcnVlCiAgLi4uICAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoa3cpCiAgLi4uICAgICBkZWYgc3F1YXJlZChzZWxmKToKICAuLi4gICAgICAgICByZXR1cm4gc2VsZi5udW1iZXIgKiogMgoKVGhpcyBjYW4gYmUgdXNlZnVsIHRvIHN1cHBvcnQgZGVmYXVsdCB2YWx1ZXMsIG1ldGhvZHMgYW5kCmluaXRpYWxpemF0aW9uLiAgTm90ZSB0aGF0IGlmIHlvdSBkZWZpbmUgYW4gX19pbml0X18gbWV0aG9kLCBpdCB3aWxsIGJlCmNhbGxlZCBlYWNoIHRpbWUgdGhlIGxvY2FsIG9iamVjdCBpcyB1c2VkIGluIGEgc2VwYXJhdGUgdGhyZWFkLiAgVGhpcwppcyBuZWNlc3NhcnkgdG8gaW5pdGlhbGl6ZSBlYWNoIHRocmVhZCdzIGRpY3Rpb25hcnkuCgpOb3cgaWYgd2UgY3JlYXRlIGEgbG9jYWwgb2JqZWN0OgoKICA+Pj4gbXlkYXRhID0gTXlMb2NhbChjb2xvcj0ncmVkJykKCk5vdyB3ZSBoYXZlIGEgZGVmYXVsdCBudW1iZXI6CgogID4+PiBteWRhdGEubnVtYmVyCiAgMgoKYW4gaW5pdGlhbCBjb2xvcjoKCiAgPj4+IG15ZGF0YS5jb2xvcgogICdyZWQnCiAgPj4+IGRlbCBteWRhdGEuY29sb3IKCkFuZCBhIG1ldGhvZCB0aGF0IG9wZXJhdGVzIG9uIHRoZSBkYXRhOgoKICA+Pj4gbXlkYXRhLnNxdWFyZWQoKQogIDQKCkFzIGJlZm9yZSwgd2UgY2FuIGFjY2VzcyB0aGUgZGF0YSBpbiBhIHNlcGFyYXRlIHRocmVhZDoKCiAgPj4+IGxvZyA9IFtdCiAgPj4+IHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWYpCiAgPj4+IHRocmVhZC5zdGFydCgpCiAgPj4+IHRocmVhZC5qb2luKCkKICA+Pj4gbG9nCiAgW1soJ2NvbG9yJywgJ3JlZCcpLCAoJ2luaXRpYWxpemVkJywgVHJ1ZSldLCAxMV0KCndpdGhvdXQgYWZmZWN0aW5nIHRoaXMgdGhyZWFkJ3MgZGF0YToKCiAgPj4+IG15ZGF0YS5udW1iZXIKICAyCiAgPj4+IG15ZGF0YS5jb2xvcgogIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAuLi4KICBBdHRyaWJ1dGVFcnJvcjogJ015TG9jYWwnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdjb2xvcicKCk5vdGUgdGhhdCBzdWJjbGFzc2VzIGNhbiBkZWZpbmUgc2xvdHMsIGJ1dCB0aGV5IGFyZSBub3QgdGhyZWFkCmxvY2FsLiBUaGV5IGFyZSBzaGFyZWQgYWNyb3NzIHRocmVhZHM6CgogID4+PiBjbGFzcyBNeUxvY2FsKGxvY2FsKToKICAuLi4gICAgIF9fc2xvdHNfXyA9ICdudW1iZXInCgogID4+PiBteWRhdGEgPSBNeUxvY2FsKCkKICA+Pj4gbXlkYXRhLm51bWJlciA9IDQyCiAgPj4+IG15ZGF0YS5jb2xvciA9ICdyZWQnCgpTbywgdGhlIHNlcGFyYXRlIHRocmVhZDoKCiAgPj4+IHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWYpCiAgPj4+IHRocmVhZC5zdGFydCgpCiAgPj4+IHRocmVhZC5qb2luKCkKCmFmZmVjdHMgd2hhdCB3ZSBzZWU6CgogID4+PiBteWRhdGEubnVtYmVyCiAgMTEKCj4+PiBkZWwgbXlkYXRhCnQFAAAAbG9jYWx0CgAAAF9sb2NhbGJhc2VjAAAAAAAAAAADAAAAQgAAAHMXAAAAZQAAWgEAZAQAWgIAZAMAhAAAWgMAUlMoBQAAAHQLAAAAX2xvY2FsX19rZXl0DAAAAF9sb2NhbF9fYXJnc3QMAAAAX2xvY2FsX19sb2NrYwEAAAAGAAAABQAAAE8AAABzwAAA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