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ICBvYmplY3RzIGRlY29kZWQgYnkgdGhpcyBpbnN0YW5jZSAodXRmLTggYnkgZGVmYXVsdCkuICBJdCBoYXMgbm8KICAgICAgICBlZmZlY3Qgd2hlbiBkZWNvZGluZyBgYHVuaWNvZGVgYCBvYmplY3RzLgoKICAgICAgICBOb3RlIHRoYXQgY3VycmVudGx5IG9ubHkgZW5jb2RpbmdzIHRoYXQgYXJlIGEgc3VwZXJzZXQgb2YgQVNDSUkgd29yaywKICAgICAgICBzdHJpbmdzIG9mIG90aGVyIGVuY29kaW5ncyBzaG91bGQgYmUgcGFzc2VkIGluIGFzIGBgdW5pY29kZWBgLgoKICAgICAgICBgYG9iamVjdF9ob29rYGAsIGlmIHNwZWNpZmllZCwgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgcmVzdWx0CiAgICAgICAgb2YgZXZlcnkgSlNPTiBvYmplY3QgZGVjb2RlZCBhbmQgaXRzIHJldHVybiB2YWx1ZSB3aWxsIGJlIHVzZWQgaW4KICAgICAgICBwbGFjZSBvZiB0aGUgZ2l2ZW4gYGBkaWN0YGAuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgY3VzdG9tCiAgICAgICAgZGVzZXJpYWxpemF0aW9ucyAoZS5nLiB0byBzdXBwb3J0IEpTT04tUlBDIGNsYXNzIGhpbnRpbmcpLgoKICAgICAgICBgYG9iamVjdF9wYWlyc19ob29rYGAsIGlmIHNwZWNpZmllZCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSByZXN1bHQgb2YKICAgICAgICBldmVyeSBKU09OIG9iamVjdCBkZWNvZGVkIHdpdGggYW4gb3JkZXJlZCBsaXN0IG9mIHBhaXJzLiAgVGhlIHJldHVybgogICAgICAgIHZhbHVlIG9mIGBgb2JqZWN0X3BhaXJzX2hvb2tgYCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgYGBkaWN0YGAuCiAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBjdXN0b20gZGVjb2RlcnMgdGhhdCByZWx5IG9uIHRoZQogICAgICAgIG9yZGVyIHRoYXQgdGhlIGtleSBhbmQgdmFsdWUgcGFpcnMgYXJlIGRlY29kZWQgKGZvciBleGFtcGxlLAogICAgICAgIGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0IHdpbGwgcmVtZW1iZXIgdGhlIG9yZGVyIG9mIGluc2VydGlvbikuIElmCiAgICAgICAgYGBvYmplY3RfaG9va2BgIGlzIGFsc28gZGVmaW5lZCwgdGhlIGBgb2JqZWN0X3BhaXJzX2hvb2tgYCB0YWtlcwogICAgICAgIHByaW9yaXR5LgoKICAgICAgICBgYHBhcnNlX2Zsb2F0YGAsIGlmIHNwZWNpZmllZCwgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgc3RyaW5nCiAgICAgICAgb2YgZXZlcnkgSlNPTiBmbG9hdCB0byBiZSBkZWNvZGVkLiBCeSBkZWZhdWx0IHRoaXMgaXMgZXF1aXZhbGVudCB0bwogICAgICAgIGZsb2F0KG51bV9zdHIpLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHVzZSBhbm90aGVyIGRhdGF0eXBlIG9yIHBhcnNlcgogICAgICAgIGZvciBKU09OIGZsb2F0cyAoZS5nLiBkZWNpbWFsLkRlY2ltYWwpLgoKICAgICAgICBgYHBhcnNlX2ludGBgLCBpZiBzcGVjaWZpZWQsIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHN0cmluZwogICAgICAgIG9mIGV2ZXJ5IEpTT04gaW50IHRvIGJlIGRlY29kZWQuIEJ5IGRlZmF1bHQgdGhpcyBpcyBlcXVpdmFsZW50IHRvCiAgICAgICAgaW50KG51bV9zdHIpLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHVzZSBhbm90aGVyIGRhdGF0eXBlIG9yIHBhcnNlcgogICAgICAgIGZvciBKU09OIGludGVnZXJzIChlLmcuIGZsb2F0KS4KCiAgICAgICAgYGBwYXJzZV9jb25zdGFudGBgLCBpZiBzcGVjaWZpZWQsIHdpbGwgYmUgY2FsbGVkIHdpdGggb25lIG9mIHRoZQogICAgICAgIGZvbGxvd2luZyBzdHJpbmdzOiAtSW5maW5pdHksIEluZmluaXR5LCBOYU4uCiAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCB0byByYWlzZSBhbiBleGNlcHRpb24gaWYg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L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvanNvbi9kZWNvZGVyLnB5Um0AAABzAQAAcwoAAAAACQMBHAENARABTigKAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QHAAAAX19kb2NfX1IXAAAAUk0AAABSawAAAHQKAAAAV0hJVEVTUEFDRXQFAAAAbWF0Y2hSBwAAAFJtAAAAKAAAAAAoAAAAACgAAAAAc1MAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2pzb24vZGVjb2Rlci5weVICAAAAEQEAAHMMAAAABhwGAgkBCQEMNw8LKCQAAABScQAAAHQCAAAAcmVSCAAAAFIKAAAAdAQAAABqc29uUgAAAAB0BQAAAF9qc29uUgEAAAB0DAAAAGNfc2NhbnN0cmluZ3QLAAAASW1wb3J0RXJyb3JSFwAAAHQHAAAAX19hbGxfX3QHAAAAVkVSQk9TRXQJAAAATVVMVElMSU5FdAYAAABET1RBTEx0BQAAAEZMQUdTUg8AAABSIAAAAHQGAAAAUG9zSW5mdAYAAABOZWdJbmZSFgAAAFIeAAAAUmMAAAB0BwAAAGNvbXBpbGV0CwAAAFNUUklOR0NIVU5LdAkAAABCQUNLU0xBU0hSKQAAAFJNAAAAUnMAAABSSAAAAFJyAAAAdA4AAABXSElURVNQQUNFX1NUUlJcAAAAUl8AAAB0BgAAAG9iamVjdFICAAAAKAAAAAAoAAAAACgAAAAAc1MAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2pzb24vZGVjb2Rlci5weXQIAAAAPG1vZHVsZT4CAAAAcz4AAAAGAQwBDAEMAhABAwEUAQ0BCgIJAhcCCQcSAwkJDA8DAQcBBwEKAxIBAwEVASYDBgIGARJODAISAQYDElcSJA==