@paraspell/descriptors 14.2.1 → 14.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +0,0 @@
1
- const binMeta = "bWV0YRDxDQAIHGFjY291bnQsQWNjb3VudElkMjAAAAQABAEgW3U4OyAyMF0AAAQAAAMUAAAACAAIAAAFAwAMCEBtb29uYmVhbV9ydW50aW1lLFJ1bnRpbWVDYWxsAAGkGFN5c3RlbQQAEAGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQANAHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQApAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUaW1lc3RhbXAsIFJ1bnRpbWU+AAMALFJvb3RUZXN0aW5nBACsAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJvb3RUZXN0aW5nLCBSdW50aW1lPgAFACBCYWxhbmNlcwQAtAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ACgBAUGFyYWNoYWluU3Rha2luZwQAzAHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TdGFraW5nLCBSdW50aW1lPgAUADhBdXRob3JJbmhlcmVudAQA6AHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBdXRob3JJbmhlcmVudCwgUnVudGltZT4AFQAwQXV0aG9yRmlsdGVyBADsAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEF1dGhvckZpbHRlciwgUnVudGltZT4AFgA0QXV0aG9yTWFwcGluZwQA9AHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBdXRob3JNYXBwaW5nLCBSdW50aW1lPgAXAEBNb29uYmVhbU9yYml0ZXJzBAD8AdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1vb25iZWFtT3JiaXRlcnMsIFJ1bnRpbWU+ABgAHFV0aWxpdHkEAAEBAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFV0aWxpdHksIFJ1bnRpbWU+AB4AFFByb3h5BAB1AQGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcm94eSwgUnVudGltZT4AHwA8TWFpbnRlbmFuY2VNb2RlBACBAQHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNYWludGVuYW5jZU1vZGUsIFJ1bnRpbWU+ACAAIElkZW50aXR5BACFAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AIQAgTXVsdGlzaWcEADUCAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgAkAFhNb29uYmVhbUxhenlNaWdyYXRpb25zBABBAgHtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNb29uYmVhbUxhenlNaWdyYXRpb25zLCBSdW50aW1lPgAlAChQYXJhbWV0ZXJzBABFAgG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhbWV0ZXJzLCBSdW50aW1lPgAmAAxFVk0EAH0CAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVWTSwgUnVudGltZT4AMwAgRXRoZXJldW0EAKUCAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEV0aGVyZXVtLCBSdW50aW1lPgA0ACRTY2hlZHVsZXIEANUCAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNjaGVkdWxlciwgUnVudGltZT4APAAgUHJlaW1hZ2UEAOECAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByZWltYWdlLCBSdW50aW1lPgA+AEBDb252aWN0aW9uVm90aW5nBADlAgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb252aWN0aW9uVm90aW5nLCBSdW50aW1lPgA/ACRSZWZlcmVuZGEEAPkCAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVyZW5kYSwgUnVudGltZT4AQAAkV2hpdGVsaXN0BAARAwG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxXaGl0ZWxpc3QsIFJ1bnRpbWU+AEIAZFRyZWFzdXJ5Q291bmNpbENvbGxlY3RpdmUEABUDAfkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5Q291bmNpbENvbGxlY3RpdmUsIFJ1bnRpbWU+AEgAbE9wZW5UZWNoQ29tbWl0dGVlQ29sbGVjdGl2ZQQAHQMBAQJzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T3BlblRlY2hDb21taXR0ZWVDb2xsZWN0aXZlLCBSdW50aW1lPgBJACBUcmVhc3VyeQQAIQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VHJlYXN1cnksIFJ1bnRpbWU+AFAAQENyb3dkbG9hblJld2FyZHMEACkDAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENyb3dkbG9hblJld2FyZHMsIFJ1bnRpbWU+AFoALFBvbGthZG90WGNtBAA9AwHBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQb2xrYWRvdFhjbSwgUnVudGltZT4AZwA0WGNtVHJhbnNhY3RvcgQAAQUByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WGNtVHJhbnNhY3RvciwgUnVudGltZT4AawAsRXRoZXJldW1YY20EACkFAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEV0aGVyZXVtWGNtLCBSdW50aW1lPgBtADBNZXNzYWdlUXVldWUEAFUFAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AbwBARXZtRm9yZWlnbkFzc2V0cwQAXQUB1QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RXZtRm9yZWlnbkFzc2V0cywgUnVudGltZT4AcgA8WGNtV2VpZ2h0VHJhZGVyBABlBQHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxYY21XZWlnaHRUcmFkZXIsIFJ1bnRpbWU+AHMAQEVtZXJnZW5jeVBhcmFYY20EAGkFAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVtZXJnZW5jeVBhcmFYY20sIFJ1bnRpbWU+AHQAUE11bHRpQmxvY2tNaWdyYXRpb25zBABtBQHlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aUJsb2NrTWlncmF0aW9ucywgUnVudGltZT4AdQAoUmFuZG9tbmVzcwQAjQUBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmFuZG9tbmVzcywgUnVudGltZT4AeABMQnJpZGdlS3VzYW1hR3JhbmRwYQQAkQUB4QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QnJpZGdlS3VzYW1hR3JhbmRwYSwgUnVudGltZT4AggBYQnJpZGdlS3VzYW1hUGFyYWNoYWlucwQAwQUB7QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QnJpZGdlS3VzYW1hUGFyYWNoYWlucywgUnVudGltZT4AgwBQQnJpZGdlS3VzYW1hTWVzc2FnZXMEANkFAeUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJyaWRnZUt1c2FtYU1lc3NhZ2VzLCBSdW50aW1lPgCEAFhCcmlkZ2VYY21PdmVyTW9vbnJpdmVyBADxBQHtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCcmlkZ2VYY21PdmVyTW9vbnJpdmVyLCBSdW50aW1lPgCFAAAQDDBmcmFtZV9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAASwYcmVtYXJrBAEYcmVtYXJrFAEcVmVjPHU4PgAADGhNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLgCIQ2FuIGJlIGV4ZWN1dGVkIGJ5IGV2ZXJ5IGBvcmlnaW5gLjhzZXRfaGVhcF9wYWdlcwQBFHBhZ2VzGAEMdTY0AAEE+FNldCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBXZWJBc3NlbWJseSBlbnZpcm9ubWVudCdzIGhlYXAuIHNldF9jb2RlBAEQY29kZRQBHFZlYzx1OD4AAgRkU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlLlxzZXRfY29kZV93aXRob3V0X2NoZWNrcwQBEGNvZGUUARxWZWM8dTg+AAMQGQFTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUgd2l0aG91dCBkb2luZyBhbnkgY2hlY2tzIG9mIHRoZSBnaXZlbiBgY29kZWAuAFEBTm90ZSB0aGF0IHJ1bnRpbWUgdXBncmFkZXMgd2lsbCBub3QgcnVuIGlmIHRoaXMgaXMgY2FsbGVkIHdpdGggYSBub3QtaW5jcmVhc2luZyBzcGVjIHZlcnNpb24hLHNldF9zdG9yYWdlBAEUaXRlbXMcATRWZWM8S2V5VmFsdWU+AAQEaFNldCBzb21lIGl0ZW1zIG9mIHN0b3JhZ2UuMGtpbGxfc3RvcmFnZQQBEGtleXMkASBWZWM8S2V5PgAFBHRLaWxsIHNvbWUgaXRlbXMgZnJvbSBzdG9yYWdlLixraWxsX3ByZWZpeAgBGHByZWZpeBQBDEtleQABHHN1YmtleXMoAQx1MzIABhARAUtpbGwgYWxsIHN0b3JhZ2UgaXRlbXMgd2l0aCBhIGtleSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguADkBKipOT1RFOioqIFdlIHJlbHkgb24gdGhlIFJvb3Qgb3JpZ2luIHRvIHByb3ZpZGUgdXMgdGhlIG51bWJlciBvZiBzdWJrZXlzIHVuZGVyPQF0aGUgcHJlZml4IHdlIGFyZSByZW1vdmluZyB0byBhY2N1cmF0ZWx5IGNhbGN1bGF0ZSB0aGUgd2VpZ2h0IG9mIHRoaXMgZnVuY3Rpb24uRHJlbWFya193aXRoX2V2ZW50BAEYcmVtYXJrFAEcVmVjPHU4PgAHBKRNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrIGFuZCBlbWl0IGV2ZW50LkRhdXRob3JpemVfdXBncmFkZQQBJGNvZGVfaGFzaCwBHFQ6Okhhc2gACRBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4ugGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzBAEkY29kZV9oYXNoLAEcVDo6SGFzaAAKIGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AXQFXQVJOSU5HOiBUaGlzIGF1dGhvcml6ZXMgYW4gdXBncmFkZSB0aGF0IHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0IGFueSBzYWZldHkgY2hlY2tzLCBmb3JZAWV4YW1wbGUgdGhhdCB0aGUgc3BlYyBuYW1lIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVyIGluY3JlYXNlcy4gTm908HJlY29tbWVuZGVkIGZvciBub3JtYWwgdXNlLiBVc2UgYGF1dGhvcml6ZV91cGdyYWRlYCBpbnN0ZWFkLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLmBhcHBseV9hdXRob3JpemVkX3VwZ3JhZGUEARBjb2RlFAEcVmVjPHU4PgALJFUBUHJvdmlkZSB0aGUgcHJlaW1hZ2UgKHJ1bnRpbWUgYmluYXJ5KSBgY29kZWAgZm9yIGFuIHVwZ3JhZGUgdGhhdCBoYXMgYmVlbiBhdXRob3JpemVkLgBJAUlmIHRoZSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIGEgdmVyc2lvbiBjaGVjaywgdGhpcyBjYWxsIHdpbGwgZW5zdXJlIHRoZSBzcGVjIG5hbWXocmVtYWlucyB1bmNoYW5nZWQgYW5kIHRoYXQgdGhlIHNwZWMgdmVyc2lvbiBoYXMgaW5jcmVhc2VkLgBZAURlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGBPblNldENvZGVgIGNvbmZpZ3VyYXRpb24sIHRoaXMgZnVuY3Rpb24gbWF5IGRpcmVjdGx5IGFwcGx5EQF0aGUgbmV3IGBjb2RlYCBpbiB0aGUgc2FtZSBibG9jayBvciBhdHRlbXB0IHRvIHNjaGVkdWxlIHRoZSB1cGdyYWRlLgBgQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhQAAAIIABgAAAUGABwAAAIgACAAAAQIFBQAJAAAAhQAKAAABQUALAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQAMAEgW3U4OyAzMl0AADAAAAMgAAAACAA0DHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBBDYWxsBARUAAEITHNldF92YWxpZGF0aW9uX2RhdGEIARBkYXRhOAFoQmFzaWNQYXJhY2hhaW5JbmhlcmVudERhdGEAAVRpbmJvdW5kX21lc3NhZ2VzX2RhdGFwAUxJbmJvdW5kTWVzc2FnZXNEYXRhAAAkgFNldCB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGRhdGEuAEEBVGhpcyBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb26IcGhhc2UgaWYgdGhlIGNhbGwgd2FzIG5vdCBpbnZva2VkLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYEluaGVyZW50YAAhAUFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gdXBncmFkZXMgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBmdW5jdGlvboRpZiB0aGUgYXBwcm9wcmlhdGUgdGltZSBoYXMgY29tZS5gc3Vkb19zZW5kX3Vwd2FyZF9tZXNzYWdlBAEcbWVzc2FnZRQBNFVwd2FyZE1lc3NhZ2UAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnRoQmFzaWNQYXJhY2hhaW5JbmhlcmVudERhdGEAABABPHZhbGlkYXRpb25fZGF0YTwBXFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhAAFEcmVsYXlfY2hhaW5fc3RhdGVEAVRzcF90cmllOjpTdG9yYWdlUHJvb2YAAWByZWxheV9wYXJlbnRfZGVzY2VuZGFudHNMAUBWZWM8UmVsYXlIZWFkZXI+AAFAY29sbGF0b3JfcGVlcl9pZGgBWE9wdGlvbjxBcHByb3ZlZFBlZXJJZD4AADwMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEIBEgBLAROASgAEAEscGFyZW50X2hlYWRAASBIZWFkRGF0YQABTHJlbGF5X3BhcmVudF9udW1iZXIoAQROAAFkcmVsYXlfcGFyZW50X3N0b3JhZ2Vfcm9vdCwBBEgAATBtYXhfcG92X3NpemUoAQx1MzIAAEAMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXMgSGVhZERhdGEAAAQAFAEcVmVjPHU4PgAARAwcc3BfdHJpZTRzdG9yYWdlX3Byb29mMFN0b3JhZ2VQcm9vZgAABAEodHJpZV9ub2Rlc0gBREJUcmVlU2V0PFZlYzx1OD4+AABIBCBCVHJlZVNldAQEVAEUAAQAJAAAAEwAAAJQAFAQKHNwX3J1bnRpbWUcZ2VuZXJpYxhoZWFkZXIYSGVhZGVyCBhOdW1iZXIBKBBIYXNoAAAUASxwYXJlbnRfaGFzaCwBMEhhc2g6Ok91dHB1dAABGG51bWJlclQBGE51bWJlcgABKHN0YXRlX3Jvb3QsATBIYXNoOjpPdXRwdXQAATxleHRyaW5zaWNzX3Jvb3QsATBIYXNoOjpPdXRwdXQAARhkaWdlc3RYARhEaWdlc3QAAFQAAAYoAFgQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QYRGlnZXN0AAAEARBsb2dzXAE8VmVjPERpZ2VzdEl0ZW0+AABcAAACYABgEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgAZAFEQ29uc2Vuc3VzRW5naW5lSWQAABQBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCABkAURDb25zZW5zdXNFbmdpbmVJZAAAFAEcVmVjPHU4PgAEABBTZWFsCABkAURDb25zZW5zdXNFbmdpbmVJZAAAFAEcVmVjPHU4PgAFABRPdGhlcgQAFAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAGQAAAMEAAAACABoBBhPcHRpb24EBFQBbAEIEE5vbmUAAAAQU29tZQQAbAAAAQAAbAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAHAMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IcGFyYWNoYWluX2luaGVyZW50TEluYm91bmRNZXNzYWdlc0RhdGEAAAgBRGRvd253YXJkX21lc3NhZ2VzdAF8QWJyaWRnZWRJbmJvdW5kRG93bndhcmRNZXNzYWdlcwABTGhvcml6b250YWxfbWVzc2FnZXOIAWxBYnJpZGdlZEluYm91bmRIcm1wTWVzc2FnZXMAAHQMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IcGFyYWNoYWluX2luaGVyZW50hEFicmlkZ2VkSW5ib3VuZE1lc3NhZ2VzQ29sbGVjdGlvbgQcTWVzc2FnZQF4AAgBNGZ1bGxfbWVzc2FnZXN8ATBWZWM8TWVzc2FnZT4AATxoYXNoZWRfbWVzc2FnZXOAAXxWZWM8TWVzc2FnZTo6Q29tcHJlc3NlZE1lc3NhZ2U+AAB4CGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNYSW5ib3VuZERvd253YXJkTWVzc2FnZQQsQmxvY2tOdW1iZXIBKAAIARxzZW50X2F0KAEsQmxvY2tOdW1iZXIAAQxtc2cUATxEb3dud2FyZE1lc3NhZ2UAAHwAAAJ4AIAAAAKEAIQIlGN1bXVsdXNfcHJpbWl0aXZlc19wYXJhY2hhaW5faW5oZXJlbnQ0SGFzaGVkTWVzc2FnZQAACAEcc2VudF9hdCgBVFJlbGF5Q2hhaW5CbG9ja051bWJlcgABIG1zZ19oYXNoLAE0c3BfY29yZTo6SDI1NgAAiAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnSEQWJyaWRnZWRJbmJvdW5kTWVzc2FnZXNDb2xsZWN0aW9uBBxNZXNzYWdlAYwACAE0ZnVsbF9tZXNzYWdlc5gBMFZlYzxNZXNzYWdlPgABPGhhc2hlZF9tZXNzYWdlc5wBfFZlYzxNZXNzYWdlOjpDb21wcmVzc2VkTWVzc2FnZT4AAIwAAAQIkJQAkAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcwhJZAAABAAoAQx1MzIAAJQIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc0hJbmJvdW5kSHJtcE1lc3NhZ2UELEJsb2NrTnVtYmVyASgACAEcc2VudF9hdCgBLEJsb2NrTnVtYmVyAAEQZGF0YRQBTGFsbG9jOjp2ZWM6OlZlYzx1OD4AAJgAAAKMAJwAAAKgAKAAAAQIkIQApAxAcGFsbGV0X3RpbWVzdGFtcBhwYWxsZXQQQ2FsbAQEVAABBAxzZXQEAQxub3eoASRUOjpNb21lbnQAAExUU2V0IHRoZSBjdXJyZW50IHRpbWUuAFUBVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtRwaGFzZSwgaWYgdGhpcyBjYWxsIGhhc24ndCBiZWVuIGludm9rZWQgYnkgdGhhdCB0aW1lLgBBAVRoZSB0aW1lc3RhbXAgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lIGJ5IHRoZSBhbW91bnQgc3BlY2lmaWVkIGJ5aFtgQ29uZmlnOjpNaW5pbXVtUGVyaW9kYF0uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFEBVGhpcyBkaXNwYXRjaCBjbGFzcyBpcyBfTWFuZGF0b3J5XyB0byBlbnN1cmUgaXQgZ2V0cyBleGVjdXRlZCBpbiB0aGUgYmxvY2suIEJlIGF3YXJlUQF0aGF0IGNoYW5naW5nIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgY2FsbCBjb3VsZCByZXN1bHQgZXhoYXVzdGluZyB0aGUgcmVzb3VyY2VzIGluIGGEYmxvY2sgdG8gZXhlY3V0ZSBhbnkgb3RoZXIgY2FsbHMuADQjIyBDb21wbGV4aXR5MQEtIGBPKDEpYCAoTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBgT25UaW1lc3RhbXBTZXRgIG11c3QgYWxzbyBiZSBgTygxKWApVQEtIDEgc3RvcmFnZSByZWFkIGFuZCAxIHN0b3JhZ2UgbXV0YXRpb24gKGNvZGVjIGBPKDEpYCBiZWNhdXNlIG9mIGBEaWRVcGRhdGU6OnRha2VgIGluQCAgYG9uX2ZpbmFsaXplYCnULSAxIGV2ZW50IGhhbmRsZXIgYG9uX3RpbWVzdGFtcF9zZXRgLiBNdXN0IGJlIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqAAABhgArAxMcGFsbGV0X3Jvb3RfdGVzdGluZxhwYWxsZXQQQ2FsbAQEVAABCChmaWxsX2Jsb2NrBAEUcmF0aW+wARxQZXJiaWxsAAAEBQFBIGRpc3BhdGNoIHRoYXQgd2lsbCBmaWxsIHRoZSBibG9jayB3ZWlnaHQgdXAgdG8gdGhlIGdpdmVuIHJhdGlvLkR0cmlnZ2VyX2RlZmVuc2l2ZQABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6wDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyYmlsbAAABAAoAQx1MzIAALQMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVluAEoVDo6QmFsYW5jZQAAHNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgA1AWB0cmFuc2Zlcl9hbGxvd19kZWF0aGAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIuEQFJZiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdLBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLjhmb3JjZV90cmFuc2ZlcgwBGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWW4AShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZbgBKFQ6OkJhbGFuY2UAAxhZAVNhbWUgYXMgdGhlIFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBjYWxsLCBidXQgd2l0aCBhIGNoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHdpbGwgbm90YGtpbGwgdGhlIG9yaWdpbiBhY2NvdW50LgDoOTklIG9mIHRoZSB0aW1lIHlvdSB3YW50IFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBpbnN0ZWFkLgDwW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdOiBzdHJ1Y3QuUGFsbGV0Lmh0bWwjbWV0aG9kLnRyYW5zZmVyMHRyYW5zZmVyX2FsbAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmXAARBib29sAAQ8BQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0YQFhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwgZGVwb3NpdHMgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvclkBICB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuPGZvcmNlX3VucmVzZXJ2ZQgBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50vAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG/EAURWZWM8VDo6QWNjb3VudElkPgAGIHBVcGdyYWRlIGEgc3BlY2lmaWVkIGFjY291bnQuAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1cGdyYWRlZC4AVQFUaGlzIHdpbGwgd2FpdmUgdGhlIHRyYW5zYWN0aW9uIGZlZSBpZiBhdCBsZWFzdCBhbGwgYnV0IDEwJSBvZiB0aGUgYWNjb3VudHMgbmVlZGVkIHRvQQFiZSB1cGdyYWRlZC4gKFdlIGxldCBzb21lIG5vdCBoYXZlIHRvIGJlIHVwZ3JhZGVkIGp1c3QgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZVhwb3NzaWJpbGl0eSBvZiBjaHVybikuRGZvcmNlX3NldF9iYWxhbmNlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZbgBKFQ6OkJhbGFuY2UACAysU2V0IHRoZSByZWd1bGFyIGJhbGFuY2Ugb2YgYSBnaXZlbiBhY2NvdW50LgCwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIGlzIGByb290YC5sZm9yY2VfYWRqdXN0X3RvdGFsX2lzc3VhbmNlCAEkZGlyZWN0aW9uyAFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRhuAEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWW4AShUOjpCYWxhbmNlAAEoa2VlcF9hbGl2ZcABEGJvb2wAChz8QnVybiB0aGUgc3BlY2lmaWVkIGxpcXVpZCBmcmVlIGJhbGFuY2UgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQuACUBSWYgdGhlIG9yaWdpbidzIGFjY291bnQgZW5kcyB1cCBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdAkBb2YgdGhlIGJ1cm4gYW5kIGBrZWVwX2FsaXZlYCBpcyBmYWxzZSwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuAFEBVW5saWtlIHNlbmRpbmcgZnVuZHMgdG8gYSBfYnVybl8gYWRkcmVzcywgd2hpY2ggbWVyZWx5IG1ha2VzIHRoZSBmdW5kcyBpbmFjY2Vzc2libGUsIQF0aGlzIGBidXJuYCBvcGVyYXRpb24gd2lsbCByZWR1Y2UgdG90YWwgaXNzdWFuY2UgYnkgdGhlIGFtb3VudCBfYnVybmVkXy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuuAAABrwAvAAABQcAwAAABQAAxAAAAgAAyAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzTEFkanVzdG1lbnREaXJlY3Rpb24AAQggSW5jcmVhc2UAAAAgRGVjcmVhc2UAAQAAzAxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nGHBhbGxldBBDYWxsBARUAAFoYHNldF9zdGFraW5nX2V4cGVjdGF0aW9ucwQBMGV4cGVjdGF0aW9uc9ABTFJhbmdlPEJhbGFuY2VPZjxUPj4AAAhRAVNldCB0aGUgZXhwZWN0YXRpb25zIGZvciB0b3RhbCBzdGFrZWQuIFRoZXNlIGV4cGVjdGF0aW9ucyBkZXRlcm1pbmUgdGhlIGlzc3VhbmNlIGZvctR0aGUgcm91bmQgYWNjb3JkaW5nIHRvIGxvZ2ljIGluIGBmbiBjb21wdXRlX2lzc3VhbmNlYDRzZXRfaW5mbGF0aW9uBAEgc2NoZWR1bGXUAThSYW5nZTxQZXJiaWxsPgABBOxTZXQgdGhlIGFubnVhbCBpbmZsYXRpb24gcmF0ZSB0byBkZXJpdmUgcGVyLXJvdW5kIGluZmxhdGlvbkhzZXRfdG90YWxfc2VsZWN0ZWQEAQxuZXcoAQx1MzIABAj4U2V0IHRoZSB0b3RhbCBudW1iZXIgb2YgY29sbGF0b3IgY2FuZGlkYXRlcyBzZWxlY3RlZCBwZXIgcm91bmTsLSBjaGFuZ2VzIGFyZSBub3QgYXBwbGllZCB1bnRpbCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgcm91bmRcc2V0X2NvbGxhdG9yX2NvbW1pc3Npb24EAQxuZXewARxQZXJiaWxsAAUEkFNldCB0aGUgY29tbWlzc2lvbiBmb3IgYWxsIGNvbGxhdG9yc1BzZXRfYmxvY2tzX3Blcl9yb3VuZAQBDG5ldygBDHUzMgAGEFBTZXQgYmxvY2tzIHBlciByb3VuZFUBLSBpZiBjYWxsZWQgd2l0aCBgbmV3YCBsZXNzIHRoYW4gbGVuZ3RoIG9mIGN1cnJlbnQgcm91bmQsIHdpbGwgdHJhbnNpdGlvbiBpbW1lZGlhdGVseURpbiB0aGUgbmV4dCBibG9ja6QtIGFsc28gdXBkYXRlcyBwZXItcm91bmQgaW5mbGF0aW9uIGNvbmZpZzxqb2luX2NhbmRpZGF0ZXMIARBib25kvAEwQmFsYW5jZU9mPFQ+AAE8Y2FuZGlkYXRlX2NvdW50KAEMdTMyAAcEjEpvaW4gdGhlIHNldCBvZiBjb2xsYXRvciBjYW5kaWRhdGVzZHNjaGVkdWxlX2xlYXZlX2NhbmRpZGF0ZXMEATxjYW5kaWRhdGVfY291bnQoAQx1MzIACAhFAVJlcXVlc3QgdG8gbGVhdmUgdGhlIHNldCBvZiBjYW5kaWRhdGVzLiBJZiBzdWNjZXNzZnVsLCB0aGUgYWNjb3VudCBpcyBpbW1lZGlhdGVseQ0BcmVtb3ZlZCBmcm9tIHRoZSBjYW5kaWRhdGUgcG9vbCB0byBwcmV2ZW50IHNlbGVjdGlvbiBhcyBhIGNvbGxhdG9yLmBleGVjdXRlX2xlYXZlX2NhbmRpZGF0ZXMIASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAAWhjYW5kaWRhdGVfZGVsZWdhdGlvbl9jb3VudCgBDHUzMgAJBIBFeGVjdXRlIGxlYXZlIGNhbmRpZGF0ZXMgcmVxdWVzdFxjYW5jZWxfbGVhdmVfY2FuZGlkYXRlcwQBPGNhbmRpZGF0ZV9jb3VudCgBDHUzMgAKDJxDYW5jZWwgb3BlbiByZXF1ZXN0IHRvIGxlYXZlIGNhbmRpZGF0ZXOMLSBvbmx5IGNhbGxhYmxlIGJ5IGNvbGxhdG9yIGFjY291bnQ5AS0gcmVzdWx0IHVwb24gc3VjY2Vzc2Z1bCBjYWxsIGlzIHRoZSBjYW5kaWRhdGUgaXMgYWN0aXZlIGluIHRoZSBjYW5kaWRhdGUgcG9vbChnb19vZmZsaW5lAAsECQFUZW1wb3JhcmlseSBsZWF2ZSB0aGUgc2V0IG9mIGNvbGxhdG9yIGNhbmRpZGF0ZXMgd2l0aG91dCB1bmJvbmRpbmckZ29fb25saW5lAAwELQFSZWpvaW4gdGhlIHNldCBvZiBjb2xsYXRvciBjYW5kaWRhdGVzIGlmIHByZXZpb3VzbHkgaGFkIGNhbGxlZCBgZ29fb2ZmbGluZWBMY2FuZGlkYXRlX2JvbmRfbW9yZQQBEG1vcmW8ATBCYWxhbmNlT2Y8VD4ADQS8SW5jcmVhc2UgY29sbGF0b3IgY2FuZGlkYXRlIHNlbGYgYm9uZCBieSBgbW9yZWBwc2NoZWR1bGVfY2FuZGlkYXRlX2JvbmRfbGVzcwQBEGxlc3O8ATBCYWxhbmNlT2Y8VD4ADgT0UmVxdWVzdCBieSBjb2xsYXRvciBjYW5kaWRhdGUgdG8gZGVjcmVhc2Ugc2VsZiBib25kIGJ5IGBsZXNzYGxleGVjdXRlX2NhbmRpZGF0ZV9ib25kX2xlc3MEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQADwQJAUV4ZWN1dGUgcGVuZGluZyByZXF1ZXN0IHRvIGFkanVzdCB0aGUgY29sbGF0b3IgY2FuZGlkYXRlIHNlbGYgYm9uZGhjYW5jZWxfY2FuZGlkYXRlX2JvbmRfbGVzcwAQBAUBQ2FuY2VsIHBlbmRpbmcgcmVxdWVzdCB0byBhZGp1c3QgdGhlIGNvbGxhdG9yIGNhbmRpZGF0ZSBzZWxmIGJvbmRsZGVsZWdhdGVfd2l0aF9hdXRvX2NvbXBvdW5kGAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEwQmFsYW5jZU9mPFQ+AAE0YXV0b19jb21wb3VuZNgBHFBlcmNlbnQAAWhjYW5kaWRhdGVfZGVsZWdhdGlvbl9jb3VudCgBDHUzMgABrGNhbmRpZGF0ZV9hdXRvX2NvbXBvdW5kaW5nX2RlbGVnYXRpb25fY291bnQoAQx1MzIAAUBkZWxlZ2F0aW9uX2NvdW50KAEMdTMyABIMQQFJZiBjYWxsZXIgaXMgbm90IGEgZGVsZWdhdG9yIGFuZCBub3QgYSBjb2xsYXRvciwgdGhlbiBqb2luIHRoZSBzZXQgb2YgZGVsZWdhdG9yc0EBSWYgY2FsbGVyIGlzIGEgZGVsZWdhdG9yLCB0aGVuIG1ha2VzIGRlbGVnYXRpb24gdG8gY2hhbmdlIHRoZWlyIGRlbGVnYXRpb24gc3RhdGXAU2V0cyB0aGUgYXV0by1jb21wb3VuZCBjb25maWcgZm9yIHRoZSBkZWxlZ2F0aW9uaHNjaGVkdWxlX3Jldm9rZV9kZWxlZ2F0aW9uBAEgY29sbGF0b3IAATBUOjpBY2NvdW50SWQAFhBRAVJlcXVlc3QgdG8gcmV2b2tlIGFuIGV4aXN0aW5nIGRlbGVnYXRpb24uIElmIHN1Y2Nlc3NmdWwsIHRoZSBkZWxlZ2F0aW9uIGlzIHNjaGVkdWxlZC0BdG8gYmUgYWxsb3dlZCB0byBiZSByZXZva2VkIHZpYSB0aGUgYGV4ZWN1dGVfZGVsZWdhdGlvbl9yZXF1ZXN0YCBleHRyaW5zaWMuMQFUaGUgZGVsZWdhdGlvbiByZWNlaXZlcyBubyByZXdhcmRzIGZvciB0aGUgcm91bmRzIHdoaWxlIGEgcmV2b2tlIGlzIHBlbmRpbmcuIQFBIHJldm9rZSBtYXkgbm90IGJlIHBlcmZvcm1lZCBpZiBhbnkgb3RoZXIgc2NoZWR1bGVkIHJlcXVlc3QgaXMgcGVuZGluZy5MZGVsZWdhdG9yX2JvbmRfbW9yZQgBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABEG1vcmW8ATBCYWxhbmNlT2Y8VD4AFwTsQm9uZCBtb3JlIGZvciBkZWxlZ2F0b3JzIHdydCBhIHNwZWNpZmljIGNvbGxhdG9yIGNhbmRpZGF0ZS5wc2NoZWR1bGVfZGVsZWdhdG9yX2JvbmRfbGVzcwgBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABEGxlc3O8ATBCYWxhbmNlT2Y8VD4AGAxRAVJlcXVlc3QgYm9uZCBsZXNzIGZvciBkZWxlZ2F0b3JzIHdydCBhIHNwZWNpZmljIGNvbGxhdG9yIGNhbmRpZGF0ZS4gVGhlIGRlbGVnYXRpb24nczkBcmV3YXJkcyBmb3Igcm91bmRzIHdoaWxlIHRoZSByZXF1ZXN0IGlzIHBlbmRpbmcgdXNlIHRoZSByZWR1Y2VkIGJvbmRlZCBhbW91bnQuYQFBIGJvbmQgbGVzcyBtYXkgbm90IGJlIHBlcmZvcm1lZCBpZiBhIHJldm9rZSByZXF1ZXN0IGlzIHBlbmRpbmcgZm9yIHRoZSBzYW1lIGRlbGVnYXRpb24uaGV4ZWN1dGVfZGVsZWdhdGlvbl9yZXF1ZXN0CAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkABkE4EV4ZWN1dGUgcGVuZGluZyByZXF1ZXN0IHRvIGNoYW5nZSBhbiBleGlzdGluZyBkZWxlZ2F0aW9uZGNhbmNlbF9kZWxlZ2F0aW9uX3JlcXVlc3QEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAGgTAQ2FuY2VsIHJlcXVlc3QgdG8gY2hhbmdlIGFuIGV4aXN0aW5nIGRlbGVnYXRpb24uRHNldF9hdXRvX2NvbXBvdW5kEAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEUdmFsdWXYARxQZXJjZW50AAHAY2FuZGlkYXRlX2F1dG9fY29tcG91bmRpbmdfZGVsZWdhdGlvbl9jb3VudF9oaW50KAEMdTMyAAFUZGVsZWdhdGlvbl9jb3VudF9oaW50KAEMdTMyABsE9FNldHMgdGhlIGF1dG8tY29tcG91bmRpbmcgcmV3YXJkIHBlcmNlbnRhZ2UgZm9yIGEgZGVsZWdhdGlvbi5gbm90aWZ5X2luYWN0aXZlX2NvbGxhdG9yBAEgY29sbGF0b3IAATBUOjpBY2NvdW50SWQAHQTUTm90aWZ5IGEgY29sbGF0b3IgaXMgaW5hY3RpdmUgZHVyaW5nIE1heE9mZmxpbmVSb3VuZHNYZW5hYmxlX21hcmtpbmdfb2ZmbGluZQQBFHZhbHVlwAEQYm9vbAAeBJhFbmFibGUvRGlzYWJsZSBtYXJraW5nIG9mZmxpbmUgZmVhdHVyZVRmb3JjZV9qb2luX2NhbmRpZGF0ZXMMARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEQYm9uZLwBMEJhbGFuY2VPZjxUPgABPGNhbmRpZGF0ZV9jb3VudCgBDHUzMgAfCKhGb3JjZSBqb2luIHRoZSBzZXQgb2YgY29sbGF0b3IgY2FuZGlkYXRlcy60SXQgd2lsbCBza2lwIHRoZSBtaW5pbXVtIHJlcXVpcmVkIGJvbmQgY2hlY2suhHNldF9pbmZsYXRpb25fZGlzdHJpYnV0aW9uX2NvbmZpZwQBDG5ld9wBpEluZmxhdGlvbkRpc3RyaWJ1dGlvbkNvbmZpZzxUOjpBY2NvdW50SWQ+ACAEtFNldCB0aGUgaW5mbGF0aW9uIGRpc3RyaWJ1dGlvbiBjb25maWd1cmF0aW9uLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7QDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmckaW5mbGF0aW9uFFJhbmdlBARUAbwADAEMbWluvAEEVAABFGlkZWFsvAEEVAABDG1heLwBBFQAANQMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZyRpbmZsYXRpb24UUmFuZ2UEBFQBsAAMAQxtaW6wAQRUAAEUaWRlYWywAQRUAAEMbWF4sAEEVAAA2Aw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmNlbnQAAAQACAEIdTgAANwMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZxR0eXBlc2xJbmZsYXRpb25EaXN0cmlidXRpb25Db25maWcEJEFjY291bnRJZAEAAAQA4AGwW0luZmxhdGlvbkRpc3RyaWJ1dGlvbkFjY291bnQ8QWNjb3VudElkPjsgMl0AAOAAAAMCAAAA5ADkDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcUdHlwZXNwSW5mbGF0aW9uRGlzdHJpYnV0aW9uQWNjb3VudAQkQWNjb3VudElkAQAACAEcYWNjb3VudAABJEFjY291bnRJZAABHHBlcmNlbnTYARxQZXJjZW50AADoDFhwYWxsZXRfYXV0aG9yX2luaGVyZW50GHBhbGxldBBDYWxsBARUAAEEeGtpY2tfb2ZmX2F1dGhvcnNoaXBfdmFsaWRhdGlvbgAACE0BVGhpcyBpbmhlcmVudCBpcyBhIHdvcmthcm91bmQgdG8gcnVuIGNvZGUgYWZ0ZXIgdGhlICJyZWFsIiBpbmhlcmVudHMgaGF2ZSBleGVjdXRlZCyUYnV0IGJlZm9yZSB0cmFuc2FjdGlvbnMgYXJlIGV4ZWN1dGVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7sDGRwYWxsZXRfYXV0aG9yX3Nsb3RfZmlsdGVyGHBhbGxldBBDYWxsBARUAAEEMHNldF9lbGlnaWJsZQQBDG5ld/ABQEVsaWdpYmlsaXR5VmFsdWUAAAT8VXBkYXRlIHRoZSBlbGlnaWJsZSBjb3VudC4gSW50ZW5kZWQgdG8gYmUgY2FsbGVkIGJ5IGdvdmVybmFuY2UuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvAMZHBhbGxldF9hdXRob3Jfc2xvdF9maWx0ZXIMbnVtKE5vblplcm9VMzIAAAQAKAEMdTMyAAD0DFRwYWxsZXRfYXV0aG9yX21hcHBpbmcYcGFsbGV0EENhbGwEBFQAARQ8YWRkX2Fzc29jaWF0aW9uBAEkbmltYnVzX2lk+AEgTmltYnVzSWQAABBVAVJlZ2lzdGVyIHlvdXIgTmltYnVzSWQgb25jaGFpbiBzbyBibG9ja3MgeW91IGF1dGhvciBhcmUgYXNzb2NpYXRlZCB3aXRoIHlvdXIgYWNjb3VudC4AKQFVc2VycyB3aG8gaGF2ZSBiZWVuIChvciB3aWxsIHNvb24gYmUpIGVsZWN0ZWQgYWN0aXZlIGNvbGxhdG9ycyBpbiBzdGFraW5nLDEBc2hvdWxkIHN1Ym1pdCB0aGlzIGV4dHJpbnNpYyB0byBoYXZlIHRoZWlyIGJsb2NrcyBhY2NlcHRlZCBhbmQgZWFybiByZXdhcmRzLkh1cGRhdGVfYXNzb2NpYXRpb24IATRvbGRfbmltYnVzX2lk+AEgTmltYnVzSWQAATRuZXdfbmltYnVzX2lk+AEgTmltYnVzSWQAARRQQ2hhbmdlIHlvdXIgTWFwcGluZy4AXQFUaGlzIGlzIHVzZWZ1bCBmb3Igbm9ybWFsIGtleSByb3RhdGlvbiBvciBmb3Igd2hlbiBzd2l0Y2hpbmcgZnJvbSBvbmUgcGh5c2ljYWwgY29sbGF0b3LgbWFjaGluZSB0byBhbm90aGVyLiBObyBuZXcgc2VjdXJpdHkgZGVwb3NpdCBpcyByZXF1aXJlZC7IVGhpcyBzZXRzIGtleXMgdG8gbmV3X25pbWJ1c19pZC5pbnRvKCkgYnkgZGVmYXVsdC5EY2xlYXJfYXNzb2NpYXRpb24EASRuaW1idXNfaWT4ASBOaW1idXNJZAACEExDbGVhciB5b3VyIE1hcHBpbmcuAGEBVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3UgYXJlIG5vIGxvbmdlciBhbiBhdXRob3IgYW5kIHdvdWxkIGxpa2UgdG8gcmUtY2xhaW0geW91ciBzZWN1cml0eSBkZXBvc2l0LixyZW1vdmVfa2V5cwADEFBSZW1vdmUgeW91ciBNYXBwaW5nLgBhAVRoaXMgaXMgdXNlZnVsIHdoZW4geW91IGFyZSBubyBsb25nZXIgYW4gYXV0aG9yIGFuZCB3b3VsZCBsaWtlIHRvIHJlLWNsYWltIHlvdXIgc2VjdXJpdHkgZGVwb3NpdC4gc2V0X2tleXMEARBrZXlzFAEcVmVjPHU4PgAEFKRTZXQgYXNzb2NpYXRpb24gYW5kIHNlc3Npb24ga2V5cyBhdCBvbmNlLgApAVRoaXMgaXMgdXNlZnVsIGZvciBrZXkgcm90YXRpb24gdG8gdXBkYXRlIE5pbWJ1cyBhbmQgVlJGIGtleXMgaW4gb25lIGNhbGwuUQFObyBuZXcgc2VjdXJpdHkgZGVwb3NpdCBpcyByZXF1aXJlZC4gV2lsbCByZXBsYWNlIGB1cGRhdGVfYXNzb2NpYXRpb25gIHdoaWNoIGlzIGtlcHSgbm93IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy74DERuaW1idXNfcHJpbWl0aXZlczRuaW1idXNfY3J5cHRvGFB1YmxpYwAABAAwATxzcjI1NTE5OjpQdWJsaWMAAPwMYHBhbGxldF9tb29uYmVhbV9vcmJpdGVycxhwYWxsZXQQQ2FsbAQEVAABHFBjb2xsYXRvcl9hZGRfb3JiaXRlcgQBHG9yYml0ZXIAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQAABIRBZGQgYW4gb3JiaXRlciBpbiBhIGNvbGxhdG9yIHBvb2xcY29sbGF0b3JfcmVtb3ZlX29yYml0ZXIEARxvcmJpdGVyAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAAQS8UmVtb3ZlIGFuIG9yYml0ZXIgZnJvbSB0aGUgY2FsbGVyIGNvbGxhdG9yIHBvb2xsb3JiaXRlcl9sZWF2ZV9jb2xsYXRvcl9wb29sBAEgY29sbGF0b3IAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQACBMhSZW1vdmUgdGhlIGNhbGxlciBmcm9tIHRoZSBzcGVjaWZpZWQgY29sbGF0b3IgcG9vbEBvcmJpdGVyX3JlZ2lzdGVyAAMEZFJlZ2lzdGVyaW5nIGFzIGFuIG9yYml0ZXJIb3JiaXRlcl91bnJlZ2lzdGVyBAFQY29sbGF0b3JzX3Bvb2xfY291bnQoAQx1MzIABARsRGVyZWdpc3RlcmluZyBmcm9tIG9yYml0ZXJzMGFkZF9jb2xsYXRvcgQBIGNvbGxhdG9yAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UABQSMQWRkIGEgY29sbGF0b3IgdG8gb3JiaXRlcnMgcHJvZ3JhbS48cmVtb3ZlX2NvbGxhdG9yBAEgY29sbGF0b3IAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQAGBKBSZW1vdmUgYSBjb2xsYXRvciBmcm9tIG9yYml0ZXJzIHByb2dyYW0uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgEBDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQQQ2FsbAQEVAABIBRiYXRjaAQBFGNhbGxzBQEBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAEh8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLgBVAVRoaXMgd2lsbCByZXR1cm4gYE9rYCBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gVG8gZGV0ZXJtaW5lIHRoZSBzdWNjZXNzIG9mIHRoZSBiYXRjaCwgYW4xAWV2ZW50IGlzIGRlcG9zaXRlZC4gSWYgYSBjYWxsIGZhaWxlZCBhbmQgdGhlIGJhdGNoIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiB0aGVVAWBCYXRjaEludGVycnVwdGVkYCBldmVudCBpcyBkZXBvc2l0ZWQsIGFsb25nIHdpdGggdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIGNhbGxzIG1hZGVNAWFuZCB0aGUgZXJyb3Igb2YgdGhlIGZhaWxlZCBjYWxsLiBJZiBhbGwgd2VyZSBzdWNjZXNzZnVsLCB0aGVuIHRoZSBgQmF0Y2hDb21wbGV0ZWRgTGV2ZW50IGlzIGRlcG9zaXRlZC40YXNfZGVyaXZhdGl2ZQgBFGluZGV4CQEBDHUxNgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAE03FNlbmQgYSBjYWxsIHRocm91Z2ggYW4gaW5kZXhlZCBwc2V1ZG9ueW0gb2YgdGhlIHNlbmRlci4AVQFGaWx0ZXIgZnJvbSBvcmlnaW4gYXJlIHBhc3NlZCBhbG9uZy4gVGhlIGNhbGwgd2lsbCBiZSBkaXNwYXRjaGVkIHdpdGggYW4gb3JpZ2luIHdoaWNovHVzZSB0aGUgc2FtZSBmaWx0ZXIgYXMgdGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwuAEUBTk9URTogSWYgeW91IG5lZWQgdG8gZW5zdXJlIHRoYXQgYW55IGFjY291bnQtYmFzZWQgZmlsdGVyaW5nIGlzIG5vdCBob25vcmVkIChpLmUuYQFiZWNhdXNlIHlvdSBleHBlY3QgYHByb3h5YCB0byBoYXZlIGJlZW4gdXNlZCBwcmlvciBpbiB0aGUgY2FsbCBzdGFjayBhbmQgeW91IGRvIG5vdCB3YW50UQF0aGUgY2FsbCByZXN0cmljdGlvbnMgdG8gYXBwbHkgdG8gYW55IHN1Yi1hY2NvdW50cyksIHRoZW4gdXNlIGBhc19tdWx0aV90aHJlc2hvbGRfMWB8aW4gdGhlIE11bHRpc2lnIHBhbGxldCBpbnN0ZWFkLgD0Tk9URTogUHJpb3IgdG8gdmVyc2lvbiAqMTIsIHRoaXMgd2FzIGNhbGxlZCBgYXNfbGltaXRlZF9zdWJgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uJGJhdGNoX2FsbAQBFGNhbGxzBQEBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAjTsU2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzIGFuZCBhdG9taWNhbGx5IGV4ZWN1dGUgdGhlbS4hAVRoZSB3aG9sZSB0cmFuc2FjdGlvbiB3aWxsIHJvbGxiYWNrIGFuZCBmYWlsIGlmIGFueSBvZiB0aGUgY2FsbHMgZmFpbGVkLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLixkaXNwYXRjaF9hcwgBJGFzX29yaWdpbg0BAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADGMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuLGZvcmNlX2JhdGNoBAEUY2FsbHMFAQF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h0cQEBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4caWZfZWxzZQgBEG1haW4MAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEgZmFsbGJhY2sMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAZcFQFEaXNwYXRjaCBhIGZhbGxiYWNrIGNhbGwgaW4gdGhlIGV2ZW50IHRoZSBtYWluIGNhbGwgZmFpbHMgdG8gZXhlY3V0ZS6wTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4A5FRoaXMgZnVuY3Rpb24gZmlyc3QgYXR0ZW1wdHMgdG8gZGlzcGF0Y2ggdGhlIGBtYWluYCBjYWxsLtRJZiB0aGUgYG1haW5gIGNhbGwgZmFpbHMsIHRoZSBgZmFsbGJhY2tgIGlzIGF0dGVtdGVkLhUBaWYgdGhlIGZhbGxiYWNrIGlzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLCB0aGUgd2VpZ2h0cyBvZiBib3RoIGNhbGxzJQFhcmUgYWNjdW11bGF0ZWQgYW5kIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG1haW4gY2FsbCBlcnJvciBpcyBkZXBvc2l0ZWQuANxJbiB0aGUgZXZlbnQgb2YgYSBmYWxsYmFjayBmYWlsdXJlIHRoZSB3aG9sZSBjYWxsIGZhaWxzaHdpdGggdGhlIHdlaWdodHMgcmV0dXJuZWQuAEEBLSBgbWFpbmA6IFRoZSBtYWluIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSBhY3Rpb24gdG8gZXhlY3V0ZS49AS0gYGZhbGxiYWNrYDogVGhlIGZhbGxiYWNrIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZCBpbiBjYXNlIHRoZSBgbWFpbmAgY2FsbCBmYWlscy4ARCMjIERpc3BhdGNoIExvZ2ljQQEtIElmIHRoZSBvcmlnaW4gaXMgYHJvb3RgLCBib3RoIHRoZSBtYWluIGFuZCBmYWxsYmFjayBjYWxscyBhcmUgZXhlY3V0ZWQgd2l0aG91dHggIGFwcGx5aW5nIGFueSBvcmlnaW4gZmlsdGVycy5JAS0gSWYgdGhlIG9yaWdpbiBpcyBub3QgYHJvb3RgLCB0aGUgb3JpZ2luIGZpbHRlciBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIGBtYWluYCBhbmRMICBgZmFsbGJhY2tgIGNhbGxzLgAsIyMgVXNlIENhc2VZAS0gU29tZSB1c2UgY2FzZXMgbWlnaHQgaW52b2x2ZSBzdWJtaXR0aW5nIGEgYGJhdGNoYCB0eXBlIGNhbGwgaW4gZWl0aGVyIG1haW4sIGZhbGxiYWNrKCAgb3IgYm90aC5QZGlzcGF0Y2hfYXNfZmFsbGlibGUIASRhc19vcmlnaW4NAQFUQm94PFQ6OlBhbGxldHNPcmlnaW4+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABxTIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AUQFBbG1vc3QgdGhlIHNhbWUgYXMgW2BQYWxsZXQ6OmRpc3BhdGNoX2FzYF0gYnV0IGZvcndhcmRzIGFueSBlcnJvciBvZiB0aGUgaW5uZXIgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuBQEAAAIMAAkBAAAFBAANAQhAbW9vbmJlYW1fcnVudGltZTBPcmlnaW5DYWxsZXIAASAYc3lzdGVtBAARAQF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAAAgRXRoZXJldW0EABUBAVxwYWxsZXRfZXRoZXJldW06Ok9yaWdpbgA0ABxPcmlnaW5zBAAdAQGIZ292ZXJuYW5jZTo6Y3VzdG9tX29yaWdpbnM6Ok9yaWdpbgBBAGRUcmVhc3VyeUNvdW5jaWxDb2xsZWN0aXZlBAAhAQEBAXBhbGxldF9jb2xsZWN0aXZlOjpPcmlnaW48UnVudGltZSwgcGFsbGV0X2NvbGxlY3RpdmU6Okluc3RhbmNlMz4ASABsT3BlblRlY2hDb21taXR0ZWVDb2xsZWN0aXZlBAAlAQEBAXBhbGxldF9jb2xsZWN0aXZlOjpPcmlnaW48UnVudGltZSwgcGFsbGV0X2NvbGxlY3RpdmU6Okluc3RhbmNlND4ASQAoQ3VtdWx1c1hjbQQAKQEBaGN1bXVsdXNfcGFsbGV0X3hjbTo6T3JpZ2luAGUALFBvbGthZG90WGNtBAAtAQFIcGFsbGV0X3hjbTo6T3JpZ2luAGcALEV0aGVyZXVtWGNtBABtAQFscGFsbGV0X2V0aGVyZXVtX3hjbTo6T3JpZ2luAG0AABEBDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoJFJhd09yaWdpbgQkQWNjb3VudElkAQABEBBSb290AAAAGFNpZ25lZAQAAAEkQWNjb3VudElkAAEAEE5vbmUAAgAoQXV0aG9yaXplZAADAAAVAQg8cGFsbGV0X2V0aGVyZXVtJFJhd09yaWdpbgABBExFdGhlcmV1bVRyYW5zYWN0aW9uBAAZAQEQSDE2MAAAAAAZAQg8cHJpbWl0aXZlX3R5cGVzEEgxNjAAAAQABAEgW3U4OyAyMF0AAB0BFEBtb29uYmVhbV9ydW50aW1lKGdvdmVybmFuY2Ucb3JpZ2luczhjdXN0b21fb3JpZ2lucxhPcmlnaW4AARREV2hpdGVsaXN0ZWRDYWxsZXIAAAAwR2VuZXJhbEFkbWluAAEATFJlZmVyZW5kdW1DYW5jZWxsZXIAAgBAUmVmZXJlbmR1bUtpbGxlcgADAEBGYXN0R2VuZXJhbEFkbWluAAQAACEBCERwYWxsZXRfY29sbGVjdGl2ZSRSYXdPcmlnaW4IJEFjY291bnRJZAEABEkAAQwcTWVtYmVycwgAKAEsTWVtYmVyQ291bnQAACgBLE1lbWJlckNvdW50AAAAGE1lbWJlcgQAAAEkQWNjb3VudElkAAEAIF9QaGFudG9tAAIAACUBCERwYWxsZXRfY29sbGVjdGl2ZSRSYXdPcmlnaW4IJEFjY291bnRJZAEABEkAAQwcTWVtYmVycwgAKAEsTWVtYmVyQ291bnQAACgBLE1lbWJlckNvdW50AAAAGE1lbWJlcgQAAAEkQWNjb3VudElkAAEAIF9QaGFudG9tAAIAACkBDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCBRSZWxheQAAAEBTaWJsaW5nUGFyYWNoYWluBACQARhQYXJhSWQAAQAALQEMKHBhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCAxYY20EADEBASBMb2NhdGlvbgAAACBSZXNwb25zZQQAMQEBIExvY2F0aW9uAAEAADEBECxzdGFnaW5nX3hjbQh2NSBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3I1AQEkSnVuY3Rpb25zAAA1ARAsc3RhZ2luZ194Y20IdjUkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBAA5AQFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBABRAQFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBABVAQFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BABZAQFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BABdAQFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BABhAQFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BABlAQFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BABpAQFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAADkBAAADAQAAAD0BAD0BECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAFQBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmtBAQFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZDABIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya0EBAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4qAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmtBAQFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXkEASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAC4ARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEwASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWRJAQEYQm9keUlkAAEQcGFydE0BASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAEUBASROZXR3b3JrSWQACQAAQQEEGE9wdGlvbgQEVAFFAQEIEE5vbmUAAAAQU29tZQQARQEAAAEAAEUBECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiROZXR3b3JrSWQAASAkQnlHZW5lc2lzBAAwASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIYAQx1NjQAAShibG9ja19oYXNoMAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAIEV0aGVyZXVtBAEgY2hhaW5faWSoAQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAABJARAMeGNtCHYzIGp1bmN0aW9uGEJvZHlJZAABKBBVbml0AAAAHE1vbmlrZXIEAGQBHFt1ODsgNF0AAQAUSW5kZXgEAFQBDHUzMgACACRFeGVjdXRpdmUAAwAkVGVjaG5pY2FsAAQALExlZ2lzbGF0aXZlAAUAIEp1ZGljaWFsAAYAHERlZmVuc2UABwA4QWRtaW5pc3RyYXRpb24ACAAgVHJlYXN1cnkACQAATQEQDHhjbQh2MyBqdW5jdGlvbiBCb2R5UGFydAABFBRWb2ljZQAAABxNZW1iZXJzBAEUY291bnRUAQx1MzIAAQAgRnJhY3Rpb24IAQxub21UAQx1MzIAARRkZW5vbVQBDHUzMgACAERBdExlYXN0UHJvcG9ydGlvbggBDG5vbVQBDHUzMgABFGRlbm9tVAEMdTMyAAMASE1vcmVUaGFuUHJvcG9ydGlvbggBDG5vbVQBDHUzMgABFGRlbm9tVAEMdTMyAAQAAFEBAAADAgAAAD0BAFUBAAADAwAAAD0BAFkBAAADBAAAAD0BAF0BAAADBQAAAD0BAGEBAAADBgAAAD0BAGUBAAADBwAAAD0BAGkBAAADCAAAAD0BAG0BCExwYWxsZXRfZXRoZXJldW1feGNtJFJhd09yaWdpbgABBFhYY21FdGhlcmV1bVRyYW5zYWN0aW9uBAAZAQEQSDE2MAAAAABxAQwoc3Bfd2VpZ2h0cyR3ZWlnaHRfdjIYV2VpZ2h0AAAIASByZWZfdGltZagBDHU2NAABKHByb29mX3NpemWoAQx1NjQAAHUBDDBwYWxsZXRfcHJveHkYcGFsbGV0EENhbGwEBFQAASwUcHJveHkMARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBleQEBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AACRNAURpc3BhdGNoIHRoZSBnaXZlbiBgY2FsbGAgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoMGBhZGRfcHJveHlgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLmEBLSBgZm9yY2VfcHJveHlfdHlwZWA6IFNwZWNpZnkgdGhlIGV4YWN0IHByb3h5IHR5cGUgdG8gYmUgdXNlZCBhbmQgY2hlY2tlZCBmb3IgdGhpcyBjYWxsLtAtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuJGFkZF9wcm94eQwBIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlfQEBMFQ6OlByb3h5VHlwZQABFGRlbGF5KAFEQmxvY2tOdW1iZXJGb3I8VD4AASRFAVJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOhEBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIG1ha2UgYSBwcm94eS78LSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBhbGxvd2VkIGZvciB0aGlzIHByb3h5IGFjY291bnQuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLjByZW1vdmVfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZX0BATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAIcqFVucmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOiUBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIHJlbW92ZSBhcyBhIHByb3h5LkEBLSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBjdXJyZW50bHkgZW5hYmxlZCBmb3IgdGhlIHJlbW92ZWQgcHJveHkgYWNjb3VudC44cmVtb3ZlX3Byb3hpZXMAAxi0VW5yZWdpc3RlciBhbGwgcHJveHkgYWNjb3VudHMgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AXQFXQVJOSU5HOiBUaGlzIG1heSBiZSBjYWxsZWQgb24gYWNjb3VudHMgY3JlYXRlZCBieSBgY3JlYXRlX3B1cmVgLCBob3dldmVyIGlmIGRvbmUsIHRoZW5ZAXRoZSB1bnJlc2VydmVkIGZlZXMgd2lsbCBiZSBpbmFjY2Vzc2libGUuICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqLGNyZWF0ZV9wdXJlDAEocHJveHlfdHlwZX0BATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgJAQEMdTE2AARIOQFTcGF3biBhIGZyZXNoIG5ldyBhY2NvdW50IHRoYXQgaXMgZ3VhcmFudGVlZCB0byBiZSBvdGhlcndpc2UgaW5hY2Nlc3NpYmxlLCBhbmT8aW5pdGlhbGl6ZSBpdCB3aXRoIGEgcHJveHkgb2YgYHByb3h5X3R5cGVgIGZvciBgb3JpZ2luYCBzZW5kZXIuAGxSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbi4AUQEtIGBwcm94eV90eXBlYDogVGhlIHR5cGUgb2YgdGhlIHByb3h5IHRoYXQgdGhlIHNlbmRlciB3aWxsIGJlIHJlZ2lzdGVyZWQgYXMgb3ZlciB0aGVNAW5ldyBhY2NvdW50LiBUaGlzIHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB0aGUgbW9zdCBwZXJtaXNzaXZlIGBQcm94eVR5cGVgIHBvc3NpYmxlIHRveGFsbG93IGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LlEBLSBgaW5kZXhgOiBBIGRpc2FtYmlndWF0aW9uIGluZGV4LCBpbiBjYXNlIHRoaXMgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBzYW1lXQF0cmFuc2FjdGlvbiAoZS5nLiB3aXRoIGB1dGlsaXR5OjpiYXRjaGApLiBVbmxlc3MgeW91J3JlIHVzaW5nIGBiYXRjaGAgeW91IHByb2JhYmx5IGp1c3RAd2FudCB0byB1c2UgYDBgLk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4AUQFGYWlscyB3aXRoIGBEdXBsaWNhdGVgIGlmIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgaW4gdGhpcyB0cmFuc2FjdGlvbiwgZnJvbSB0aGWYc2FtZSBzZW5kZXIsIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycy4A5EZhaWxzIGlmIHRoZXJlIGFyZSBpbnN1ZmZpY2llbnQgZnVuZHMgdG8gcGF5IGZvciBkZXBvc2l0LiRraWxsX3B1cmUUARxzcGF3bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlfQEBMFQ6OlByb3h5VHlwZQABFGluZGV4CQEBDHUxNgABGGhlaWdodFQBREJsb2NrTnVtYmVyRm9yPFQ+AAEkZXh0X2luZGV4VAEMdTMyAAVAoFJlbW92ZXMgYSBwcmV2aW91c2x5IHNwYXduZWQgcHVyZSBwcm94eS4ASQFXQVJOSU5HOiAqKkFsbCBhY2Nlc3MgdG8gdGhpcyBhY2NvdW50IHdpbGwgYmUgbG9zdC4qKiBBbnkgZnVuZHMgaGVsZCBpbiBpdCB3aWxsIGJlNGluYWNjZXNzaWJsZS4AWQFSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbiwgYW5kIHRoZSBzZW5kZXIgYWNjb3VudCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGEgY2FsbCB0b7BgY3JlYXRlX3B1cmVgIHdpdGggY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLgBVAS0gYHNwYXduZXJgOiBUaGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY2FsbGVkIGBjcmVhdGVfcHVyZWAgdG8gY3JlYXRlIHRoaXMgYWNjb3VudC5VAS0gYGluZGV4YDogVGhlIGRpc2FtYmlndWF0aW9uIGluZGV4IG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBjcmVhdGVfcHVyZWAuIFByb2JhYmx5IGAwYC4JAS0gYHByb3h5X3R5cGVgOiBUaGUgcHJveHkgdHlwZSBvcmlnaW5hbGx5IHBhc3NlZCB0byBgY3JlYXRlX3B1cmVgLkUBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgY3JlYXRlX3B1cmVgIHdhcyBwcm9jZXNzZWQuUQEtIGBleHRfaW5kZXhgOiBUaGUgZXh0cmluc2ljIGluZGV4IGluIHdoaWNoIHRoZSBjYWxsIHRvIGBjcmVhdGVfcHVyZWAgd2FzIHByb2Nlc3NlZC4ANQFGYWlscyB3aXRoIGBOb1Blcm1pc3Npb25gIGluIGNhc2UgdGhlIGNhbGxlciBpcyBub3QgYSBwcmV2aW91c2x5IGNyZWF0ZWQgcHVyZfhhY2NvdW50IHdob3NlIGBjcmVhdGVfcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2gsATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGV5AQFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAJLE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAKhSZW1vdmVzIGFueSBjb3JyZXNwb25kaW5nIGFubm91bmNlbWVudChzKS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LjBwb2tlX2RlcG9zaXQACiBJAVBva2UgLyBBZGp1c3QgZGVwb3NpdHMgbWFkZSBmb3IgcHJveGllcyBhbmQgYW5ub3VuY2VtZW50cyBiYXNlZCBvbiBjdXJyZW50IHZhbHVlcy4NAVRoaXMgY2FuIGJlIHVzZWQgYnkgYWNjb3VudHMgdG8gcG9zc2libHkgbG93ZXIgdGhlaXIgbG9ja2VkIGFtb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnkBBBhPcHRpb24EBFQBfQEBCBBOb25lAAAAEFNvbWUEAH0BAAABAAB9AQhAbW9vbmJlYW1fcnVudGltZSRQcm94eVR5cGUAASAMQW55AAAALE5vblRyYW5zZmVyAAEAKEdvdmVybmFuY2UAAgAcU3Rha2luZwADACxDYW5jZWxQcm94eQAEACBCYWxhbmNlcwAFADRBdXRob3JNYXBwaW5nAAYARElkZW50aXR5SnVkZ2VtZW50AAcAAIEBDFxwYWxsZXRfbWFpbnRlbmFuY2VfbW9kZRhwYWxsZXQQQ2FsbAQEVAABCFhlbnRlcl9tYWludGVuYW5jZV9tb2RlAAAUjFBsYWNlIHRoZSBjaGFpbiBpbiBtYWludGVuYW5jZSBtb2RlADxXZWlnaHQgY29zdCBpczr0KiBPbmUgREIgcmVhZCB0byBlbnN1cmUgd2UncmUgbm90IGFscmVhZHkgaW4gbWFpbnRlbmFuY2UgbW9kZU0BKiBUaHJlZSBEQiB3cml0ZXMgLSAxIGZvciB0aGUgbW9kZSwgMSBmb3Igc3VzcGVuZGluZyB4Y20gZXhlY3V0aW9uLCAxIGZvciB0aGUgZXZlbnRccmVzdW1lX25vcm1hbF9vcGVyYXRpb24AARSkUmV0dXJuIHRoZSBjaGFpbiB0byBub3JtYWwgb3BlcmF0aW5nIG1vZGUAPFdlaWdodCBjb3N0IGlzOsQqIE9uZSBEQiByZWFkIHRvIGVuc3VyZSB3ZSdyZSBpbiBtYWludGVuYW5jZSBtb2RlRQEqIFRocmVlIERCIHdyaXRlcyAtIDEgZm9yIHRoZSBtb2RlLCAxIGZvciByZXN1bWluZyB4Y20gZXhlY3V0aW9uLCAxIGZvciB0aGUgZXZlbnQEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuhQEMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQQQ2FsbAQEVAABYDRhZGRfcmVnaXN0cmFyBAEcYWNjb3VudAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAAceEFkZCBhIHJlZ2lzdHJhciB0byB0aGUgc3lzdGVtLgD8VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFQ6OlJlZ2lzdHJhck9yaWdpbmAuAKgtIGBhY2NvdW50YDogdGhlIGFjY291bnQgb2YgdGhlIHJlZ2lzdHJhci4AlEVtaXRzIGBSZWdpc3RyYXJBZGRlZGAgaWYgc3VjY2Vzc2Z1bC4wc2V0X2lkZW50aXR5BAEQaW5mb4kBAWxCb3g8VDo6SWRlbnRpdHlJbmZvcm1hdGlvbj4AASgpAVNldCBhbiBhY2NvdW50J3MgaWRlbnRpdHkgaW5mb3JtYXRpb24gYW5kIHJlc2VydmUgdGhlIGFwcHJvcHJpYXRlIGRlcG9zaXQuAFUBSWYgdGhlIGFjY291bnQgYWxyZWFkeSBoYXMgaWRlbnRpdHkgaW5mb3JtYXRpb24sIHRoZSBkZXBvc2l0IGlzIHRha2VuIGFzIHBhcnQgcGF5bWVudFBmb3IgdGhlIG5ldyBkZXBvc2l0LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAIwtIGBpbmZvYDogVGhlIGlkZW50aXR5IGluZm9ybWF0aW9uLgCIRW1pdHMgYElkZW50aXR5U2V0YCBpZiBzdWNjZXNzZnVsLiBzZXRfc3VicwQBEHN1YnMZAgFkVmVjPChUOjpBY2NvdW50SWQsIERhdGEpPgACJIxTZXQgdGhlIHN1Yi1hY2NvdW50cyBvZiB0aGUgc2VuZGVyLgBVAVBheW1lbnQ6IEFueSBhZ2dyZWdhdGUgYmFsYW5jZSByZXNlcnZlZCBieSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGxzIHdpbGwgYmUgcmV0dXJuZWQtAWFuZCBhbiBhbW91bnQgYFN1YkFjY291bnREZXBvc2l0YCB3aWxsIGJlIHJlc2VydmVkIGZvciBlYWNoIGl0ZW0gaW4gYHN1YnNgLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQkaWRlbnRpdHkuALAtIGBzdWJzYDogVGhlIGlkZW50aXR5J3MgKG5ldykgc3ViLWFjY291bnRzLjhjbGVhcl9pZGVudGl0eQADIDkBQ2xlYXIgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm8gYW5kIGFsbCBzdWItYWNjb3VudHMgYW5kIHJldHVybiBhbGwgZGVwb3NpdHMuAOxQYXltZW50OiBBbGwgcmVzZXJ2ZWQgYmFsYW5jZXMgb24gdGhlIGFjY291bnQgYXJlIHJldHVybmVkLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQkaWRlbnRpdHkuAJhFbWl0cyBgSWRlbnRpdHlDbGVhcmVkYCBpZiBzdWNjZXNzZnVsLkRyZXF1ZXN0X2p1ZGdlbWVudAgBJHJlZ19pbmRleFQBOFJlZ2lzdHJhckluZGV4AAEcbWF4X2ZlZbgBMEJhbGFuY2VPZjxUPgAEQJRSZXF1ZXN0IGEganVkZ2VtZW50IGZyb20gYSByZWdpc3RyYXIuAFUBUGF5bWVudDogQXQgbW9zdCBgbWF4X2ZlZWAgd2lsbCBiZSByZXNlcnZlZCBmb3IgcGF5bWVudCB0byB0aGUgcmVnaXN0cmFyIGlmIGp1ZGdlbWVudBhnaXZlbi4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgAdAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyByZXF1ZXN0ZWQuVQEtIGBtYXhfZmVlYDogVGhlIG1heGltdW0gZmVlIHRoYXQgbWF5IGJlIHBhaWQuIFRoaXMgc2hvdWxkIGp1c3QgYmUgYXV0by1wb3B1bGF0ZWQgYXM6ADBgYGBub2NvbXBpbGXIUmVnaXN0cmFyczo6PFQ+OjpnZXQoKS5nZXQocmVnX2luZGV4KS51bndyYXAoKS5mZWUMYGBgAKRFbWl0cyBgSnVkZ2VtZW50UmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLjhjYW5jZWxfcmVxdWVzdAQBJHJlZ19pbmRleCgBOFJlZ2lzdHJhckluZGV4AAUoaENhbmNlbCBhIHByZXZpb3VzIHJlcXVlc3QuAPhQYXltZW50OiBBIHByZXZpb3VzbHkgcmVzZXJ2ZWQgZGVwb3NpdCBpcyByZXR1cm5lZCBvbiBzdWNjZXNzLgA1AVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhUHJlZ2lzdGVyZWQgaWRlbnRpdHkuAEUBLSBgcmVnX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIG5vIGxvbmdlciByZXF1ZXN0ZWQuAKxFbWl0cyBgSnVkZ2VtZW50VW5yZXF1ZXN0ZWRgIGlmIHN1Y2Nlc3NmdWwuHHNldF9mZWUIARRpbmRleFQBOFJlZ2lzdHJhckluZGV4AAEMZmVluAEwQmFsYW5jZU9mPFQ+AAYcGQFTZXQgdGhlIGZlZSByZXF1aXJlZCBmb3IgYSBqdWRnZW1lbnQgdG8gYmUgcmVxdWVzdGVkIGZyb20gYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQuVC0gYGZlZWA6IHRoZSBuZXcgZmVlLjhzZXRfYWNjb3VudF9pZAgBFGluZGV4VAE4UmVnaXN0cmFySW5kZXgAAQxuZXcAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAHHLxDaGFuZ2UgdGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LnAtIGBuZXdgOiB0aGUgbmV3IGFjY291bnQgSUQuKHNldF9maWVsZHMIARRpbmRleFQBOFJlZ2lzdHJhckluZGV4AAEYZmllbGRzGAEpATxUOjpJZGVudGl0eUluZm9ybWF0aW9uIGFzIElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcj46OgpGaWVsZHNJZGVudGlmaWVyAAgcqFNldCB0aGUgZmllbGQgaW5mb3JtYXRpb24gZm9yIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0Lg0BLSBgZmllbGRzYDogdGhlIGZpZWxkcyB0aGF0IHRoZSByZWdpc3RyYXIgY29uY2VybnMgdGhlbXNlbHZlcyB3aXRoLkRwcm92aWRlX2p1ZGdlbWVudBABJHJlZ19pbmRleFQBOFJlZ2lzdHJhckluZGV4AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRqdWRnZW1lbnQhAgFcSnVkZ2VtZW50PEJhbGFuY2VPZjxUPj4AASBpZGVudGl0eSwBHFQ6Okhhc2gACTy4UHJvdmlkZSBhIGp1ZGdlbWVudCBmb3IgYW4gYWNjb3VudCdzIGlkZW50aXR5LgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSwb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgcmVnX2luZGV4YC4AIQEtIGByZWdfaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgYmVpbmcgbWFkZS5VAS0gYHRhcmdldGA6IHRoZSBhY2NvdW50IHdob3NlIGlkZW50aXR5IHRoZSBqdWRnZW1lbnQgaXMgdXBvbi4gVGhpcyBtdXN0IGJlIGFuIGFjY291bnR0ICB3aXRoIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS5JAS0gYGp1ZGdlbWVudGA6IHRoZSBqdWRnZW1lbnQgb2YgdGhlIHJlZ2lzdHJhciBvZiBpbmRleCBgcmVnX2luZGV4YCBhYm91dCBgdGFyZ2V0YC5dAS0gYGlkZW50aXR5YDogVGhlIGhhc2ggb2YgdGhlIFtgSWRlbnRpdHlJbmZvcm1hdGlvblByb3ZpZGVyYF0gZm9yIHRoYXQgdGhlIGp1ZGdlbWVudCBpcywgIHByb3ZpZGVkLgCwTm90ZTogSnVkZ2VtZW50cyBkbyBub3QgYXBwbHkgdG8gYSB1c2VybmFtZS4AlEVtaXRzIGBKdWRnZW1lbnRHaXZlbmAgaWYgc3VjY2Vzc2Z1bC40a2lsbF9pZGVudGl0eQQBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAowQQFSZW1vdmUgYW4gYWNjb3VudCdzIGlkZW50aXR5IGFuZCBzdWItYWNjb3VudCBpbmZvcm1hdGlvbiBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgBhAVBheW1lbnQ6IFJlc2VydmVkIGJhbGFuY2VzIGZyb20gYHNldF9zdWJzYCBhbmQgYHNldF9pZGVudGl0eWAgYXJlIHNsYXNoZWQgYW5kIGhhbmRsZWQgYnlFAWBTbGFzaGAuIFZlcmlmaWNhdGlvbiByZXF1ZXN0IGRlcG9zaXRzIGFyZSBub3QgcmV0dXJuZWQ7IHRoZXkgc2hvdWxkIGJlIGNhbmNlbGxlZIBtYW51YWxseSB1c2luZyBgY2FuY2VsX3JlcXVlc3RgLgD4VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgbWF0Y2ggYFQ6OkZvcmNlT3JpZ2luYC4AVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuAJRFbWl0cyBgSWRlbnRpdHlLaWxsZWRgIGlmIHN1Y2Nlc3NmdWwuHGFkZF9zdWIIAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGGVAQEQRGF0YQALHKxBZGQgdGhlIGdpdmVuIGFjY291bnQgdG8gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbmFtZV9zdWIIAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGGVAQEQRGF0YQAMEMxBbHRlciB0aGUgYXNzb2NpYXRlZCBuYW1lIG9mIHRoZSBnaXZlbiBzdWItYWNjb3VudC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4ocmVtb3ZlX3N1YgQBDHN1YgABUEFjY291bnRJZExvb2t1cE9mPFQ+AA0cwFJlbW92ZSB0aGUgZ2l2ZW4gYWNjb3VudCBmcm9tIHRoZSBzZW5kZXIncyBzdWJzLgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZDh0byB0aGUgc2VuZGVyLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWRYc3ViIGlkZW50aXR5IG9mIGBzdWJgLiBxdWl0X3N1YgAOKIxSZW1vdmUgdGhlIHNlbmRlciBhcyBhIHN1Yi1hY2NvdW50LgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZLR0byB0aGUgc2VuZGVyICgqbm90KiB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yKS4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkPHN1cGVyLWlkZW50aXR5LgBFAU5PVEU6IFRoaXMgc2hvdWxkIG5vdCBub3JtYWxseSBiZSB1c2VkLCBidXQgaXMgcHJvdmlkZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGUgbm9uLREBY29udHJvbGxlciBvZiBhbiBhY2NvdW50IGlzIG1hbGljaW91c2x5IHJlZ2lzdGVyZWQgYXMgYSBzdWItYWNjb3VudC5YYWRkX3VzZXJuYW1lX2F1dGhvcml0eQwBJGF1dGhvcml0eQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYc3VmZml4FAEcVmVjPHU4PgABKGFsbG9jYXRpb24oAQx1MzIADxRVAUFkZCBhbiBgQWNjb3VudElkYCB3aXRoIHBlcm1pc3Npb24gdG8gZ3JhbnQgdXNlcm5hbWVzIHdpdGggYSBnaXZlbiBgc3VmZml4YCBhcHBlbmRlZC4ARQFUaGUgYXV0aG9yaXR5IGNhbiBncmFudCB1cCB0byBgYWxsb2NhdGlvbmAgdXNlcm5hbWVzLiBUbyB0b3AgdXAgdGhlIGFsbG9jYXRpb24gb3JJAWNoYW5nZSB0aGUgYWNjb3VudCB1c2VkIHRvIGdyYW50IHVzZXJuYW1lcywgdGhpcyBjYWxsIGNhbiBiZSB1c2VkIHdpdGggdGhlIHVwZGF0ZWTMcGFyYW1ldGVycyB0byBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24uZHJlbW92ZV91c2VybmFtZV9hdXRob3JpdHkIARhzdWZmaXgUARxWZWM8dTg+AAEkYXV0aG9yaXR5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AEATEUmVtb3ZlIGBhdXRob3JpdHlgIGZyb20gdGhlIHVzZXJuYW1lIGF1dGhvcml0aWVzLkBzZXRfdXNlcm5hbWVfZm9yEAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASB1c2VybmFtZRQBHFZlYzx1OD4AASRzaWduYXR1cmUlAgFwT3B0aW9uPFQ6Ok9mZmNoYWluU2lnbmF0dXJlPgABOHVzZV9hbGxvY2F0aW9uwAEQYm9vbAARNA0BU2V0IHRoZSB1c2VybmFtZSBmb3IgYHdob2AuIE11c3QgYmUgY2FsbGVkIGJ5IGEgdXNlcm5hbWUgYXV0aG9yaXR5LgBZAUlmIGB1c2VfYWxsb2NhdGlvbmAgaXMgc2V0LCB0aGUgYXV0aG9yaXR5IG11c3QgaGF2ZSBhIHVzZXJuYW1lIGFsbG9jYXRpb24gYXZhaWxhYmxlIHRvRQFzcGVuZC4gT3RoZXJ3aXNlLCB0aGUgYXV0aG9yaXR5IHdpbGwgbmVlZCB0byBwdXQgdXAgYSBkZXBvc2l0IGZvciByZWdpc3RlcmluZyB0aGUkdXNlcm5hbWUuALBVc2VycyBjYW4gZWl0aGVyIHByZS1zaWduIHRoZWlyIHVzZXJuYW1lcyBvckhhY2NlcHQgdGhlbSBsYXRlci4APFVzZXJuYW1lcyBtdXN0OtggIC0gT25seSBjb250YWluIGxvd2VyY2FzZSBBU0NJSSBjaGFyYWN0ZXJzIG9yIGRpZ2l0cy41ASAgLSBXaGVuIGNvbWJpbmVkIHdpdGggdGhlIHN1ZmZpeCBvZiB0aGUgaXNzdWluZyBhdXRob3JpdHkgYmUgX2xlc3MgdGhhbl8gdGhlYCAgICBgTWF4VXNlcm5hbWVMZW5ndGhgLjxhY2NlcHRfdXNlcm5hbWUEASB1c2VybmFtZTECASxVc2VybmFtZTxUPgASCE0BQWNjZXB0IGEgZ2l2ZW4gdXNlcm5hbWUgdGhhdCBhbiBgYXV0aG9yaXR5YCBncmFudGVkLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlIGZ1bGyIdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlxyZW1vdmVfZXhwaXJlZF9hcHByb3ZhbAQBIHVzZXJuYW1lMQIBLFVzZXJuYW1lPFQ+ABMMYQFSZW1vdmUgYW4gZXhwaXJlZCB1c2VybmFtZSBhcHByb3ZhbC4gVGhlIHVzZXJuYW1lIHdhcyBhcHByb3ZlZCBieSBhbiBhdXRob3JpdHkgYnV0IG5ldmVyVQFhY2NlcHRlZCBieSB0aGUgdXNlciBhbmQgbXVzdCBub3cgYmUgYmV5b25kIGl0cyBleHBpcmF0aW9uLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlnGZ1bGwgdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlBzZXRfcHJpbWFyeV91c2VybmFtZQQBIHVzZXJuYW1lMQIBLFVzZXJuYW1lPFQ+ABQEMQFTZXQgYSBnaXZlbiB1c2VybmFtZSBhcyB0aGUgcHJpbWFyeS4gVGhlIHVzZXJuYW1lIHNob3VsZCBpbmNsdWRlIHRoZSBzdWZmaXguPHVuYmluZF91c2VybmFtZQQBIHVzZXJuYW1lMQIBLFVzZXJuYW1lPFQ+ABUMWQFTdGFydCB0aGUgcHJvY2VzcyBvZiByZW1vdmluZyBhIHVzZXJuYW1lIGJ5IHBsYWNpbmcgaXQgaW4gdGhlIHVuYmluZGluZyB1c2VybmFtZXMgbWFwLiEBT25jZSB0aGUgZ3JhY2UgcGVyaW9kIGhhcyBwYXNzZWQsIHRoZSB1c2VybmFtZSBjYW4gYmUgZGVsZXRlZCBieSBjYWxsaW5nwFtyZW1vdmVfdXNlcm5hbWVdKGNyYXRlOjpDYWxsOjpyZW1vdmVfdXNlcm5hbWUpLjxyZW1vdmVfdXNlcm5hbWUEASB1c2VybmFtZTECASxVc2VybmFtZTxUPgAWCGEBUGVybWFuZW50bHkgZGVsZXRlIGEgdXNlcm5hbWUgd2hpY2ggaGFzIGJlZW4gdW5iaW5kaW5nIGZvciBsb25nZXIgdGhhbiB0aGUgZ3JhY2UgcGVyaW9kLkkBQ2FsbGVyIGlzIHJlZnVuZGVkIHRoZSBmZWUgaWYgdGhlIHVzZXJuYW1lIGV4cGlyZWQgYW5kIHRoZSByZW1vdmFsIHdhcyBzdWNjZXNzZnVsLjRraWxsX3VzZXJuYW1lBAEgdXNlcm5hbWUxAgEsVXNlcm5hbWU8VD4AFwhdAUNhbGwgd2l0aCBbRm9yY2VPcmlnaW5dKGNyYXRlOjpDb25maWc6OkZvcmNlT3JpZ2luKSBwcml2aWxlZ2VzIHdoaWNoIGRlbGV0ZXMgYSB1c2VybmFtZaxhbmQgc2xhc2hlcyBhbnkgZGVwb3NpdCBhc3NvY2lhdGVkIHdpdGggaXQuBHBJZGVudGl0eSBwYWxsZXQgZGVjbGFyYXRpb24uiQEMPHBhbGxldF9pZGVudGl0eRhsZWdhY3kwSWRlbnRpdHlJbmZvBChGaWVsZExpbWl0AAAkAShhZGRpdGlvbmFsjQEBkEJvdW5kZWRWZWM8KERhdGEsIERhdGEpLCBGaWVsZExpbWl0PgABHGRpc3BsYXmVAQEQRGF0YQABFGxlZ2FslQEBEERhdGEAAQx3ZWKVAQEQRGF0YQABEHJpb3SVAQEQRGF0YQABFGVtYWlslQEBEERhdGEAATxwZ3BfZmluZ2VycHJpbnQVAgFAT3B0aW9uPFt1ODsgMjBdPgABFGltYWdllQEBEERhdGEAARx0d2l0dGVylQEBEERhdGEAAI0BDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBkQEEUwAABAARAgEYVmVjPFQ+AACRAQAABAiVAZUBAJUBDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXMQRGF0YQABmBBOb25lAAAAEFJhdzAEAJkBAAABABBSYXcxBACdAQAAAgAQUmF3MgQAoQEAAAMAEFJhdzMEAKUBAAAEABBSYXc0BABkAAAFABBSYXc1BACpAQAABgAQUmF3NgQArQEAAAcAEFJhdzcEALEBAAAIABBSYXc4BAC1AQAACQAQUmF3OQQAuQEAAAoAFFJhdzEwBAC9AQAACwAUUmF3MTEEAMEBAAAMABRSYXcxMgQAxQEAAA0AFFJhdzEzBADJAQAADgAUUmF3MTQEAM0BAAAPABRSYXcxNQQA0QEAABAAFFJhdzE2BADVAQAAEQAUUmF3MTcEANkBAAASABRSYXcxOAQA3QEAABMAFFJhdzE5BADhAQAAFAAUUmF3MjAEAAQAABUAFFJhdzIxBADlAQAAFgAUUmF3MjIEAOkBAAAXABRSYXcyMwQA7QEAABgAFFJhdzI0BADxAQAAGQAUUmF3MjUEAPUBAAAaABRSYXcyNgQA+QEAABsAFFJhdzI3BAD9AQAAHAAUUmF3MjgEAAECAAAdABRSYXcyOQQABQIAAB4AFFJhdzMwBAAJAgAAHwAUUmF3MzEEAA0CAAAgABRSYXczMgQAMAAAIQAsQmxha2VUd28yNTYEADAAACIAGFNoYTI1NgQAMAAAIwAkS2VjY2FrMjU2BAAwAAAkACxTaGFUaHJlZTI1NgQAMAAAJQAAmQEAAAMAAAAACACdAQAAAwEAAAAIAKEBAAADAgAAAAgApQEAAAMDAAAACACpAQAAAwUAAAAIAK0BAAADBgAAAAgAsQEAAAMHAAAACAC1AQAAAwgAAAAIALkBAAADCQAAAAgAvQEAAAMKAAAACADBAQAAAwsAAAAIAMUBAAADDAAAAAgAyQEAAAMNAAAACADNAQAAAw4AAAAIANEBAAADDwAAAAgA1QEAAAMQAAAACADZAQAAAxEAAAAIAN0BAAADEgAAAAgA4QEAAAMTAAAACADlAQAAAxUAAAAIAOkBAAADFgAAAAgA7QEAAAMXAAAACADxAQAAAxgAAAAIAPUBAAADGQAAAAgA+QEAAAMaAAAACAD9AQAAAxsAAAAIAAECAAADHAAAAAgABQIAAAMdAAAACAAJAgAAAx4AAAAIAA0CAAADHwAAAAgAEQIAAAKRAQAVAgQYT3B0aW9uBARUAQQBCBBOb25lAAAAEFNvbWUEAAQAAAEAABkCAAACHQIAHQIAAAQIAJUBACECDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXMkSnVkZ2VtZW50BBxCYWxhbmNlAbwBHBxVbmtub3duAAAAHEZlZVBhaWQEALwBHEJhbGFuY2UAAQAoUmVhc29uYWJsZQACACRLbm93bkdvb2QAAwAkT3V0T2ZEYXRlAAQAKExvd1F1YWxpdHkABQAkRXJyb25lb3VzAAYAACUCBBhPcHRpb24EBFQBKQIBCBBOb25lAAAAEFNvbWUEACkCAAABAAApAggcYWNjb3VudERFdGhlcmV1bVNpZ25hdHVyZQAABAAtAgFAZWNkc2E6OlNpZ25hdHVyZQAALQIAAANBAAAACAAxAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AADUCDDxwYWxsZXRfbXVsdGlzaWcYcGFsbGV0EENhbGwEBFQAARRQYXNfbXVsdGlfdGhyZXNob2xkXzEIAURvdGhlcl9zaWduYXRvcmllc8QBRFZlYzxUOjpBY2NvdW50SWQ+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AADBRAUltbWVkaWF0ZWx5IGRpc3BhdGNoIGEgbXVsdGktc2lnbmF0dXJlIGNhbGwgdXNpbmcgYSBzaW5nbGUgYXBwcm92YWwgZnJvbSB0aGUgY2FsbGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAD0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZQEBbXVsdGktc2lnbmF0dXJlLCBidXQgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSBhcHByb3ZhbCBwcm9jZXNzLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuALhSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQuADQjIyBDb21wbGV4aXR5GQFPKFogKyBDKSB3aGVyZSBaIGlzIHRoZSBsZW5ndGggb2YgdGhlIGNhbGwgYW5kIEMgaXRzIGV4ZWN1dGlvbiB3ZWlnaHQuIGFzX211bHRpFAEkdGhyZXNob2xkCQEBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzxAFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnQ5AgGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAShtYXhfd2VpZ2h0cQEBGFdlaWdodAABnFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgCwSWYgdGhlcmUgYXJlIGVub3VnaCwgdGhlbiBkaXNwYXRjaCB0aGUgY2FsbC4ALQFQYXltZW50OiBgRGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHBsdXM9AWB0aHJlc2hvbGRgIHRpbWVzIGBEZXBvc2l0RmFjdG9yYC4gSXQgaXMgcmV0dXJuZWQgb25jZSB0aGlzIGRpc3BhdGNoIGhhcHBlbnMgb3I0aXMgY2FuY2VsbGVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuWQEtIGBtYXliZV90aW1lcG9pbnRgOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiB0aGlzIG11c3QgYmUgYE5vbmVgLiBJZiBpdCBpc1EBbm90IHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiBpdCBtdXN0IGJlIGBTb21lYCwgd2l0aCB0aGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5k1HRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWwgdHJhbnNhY3Rpb24uiC0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBleGVjdXRlZC4AHQFOT1RFOiBVbmxlc3MgdGhpcyBpcyB0aGUgZmluYWwgYXBwcm92YWwsIHlvdSB3aWxsIGdlbmVyYWxseSB3YW50IHRvIHVzZRkBYGFwcHJvdmVfYXNfbXVsdGlgIGluc3RlYWQsIHNpbmNlIGl0IG9ubHkgcmVxdWlyZXMgYSBoYXNoIG9mIHRoZSBjYWxsLgBZAVJlc3VsdCBpcyBlcXVpdmFsZW50IHRvIHRoZSBkaXNwYXRjaGVkIHJlc3VsdCBpZiBgdGhyZXNob2xkYCBpcyBleGFjdGx5IGAxYC4gT3RoZXJ3aXNlVQFvbiBzdWNjZXNzLCByZXN1bHQgaXMgYE9rYCBhbmQgdGhlIHJlc3VsdCBmcm9tIHRoZSBpbnRlcmlvciBjYWxsLCBpZiBpdCB3YXMgZXhlY3V0ZWQs3G1heSBiZSBmb3VuZCBpbiB0aGUgZGVwb3NpdGVkIGBNdWx0aXNpZ0V4ZWN1dGVkYCBldmVudC4ANCMjIENvbXBsZXhpdHlQLSBgTyhTICsgWiArIENhbGwpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC4hAS0gT25lIGNhbGwgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFopYCB3aGVyZSBgWmAgaXMgdHgtbGVuLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLtQtIFVwIHRvIG9uZSBiaW5hcnkgc2VhcmNoIGFuZCBpbnNlcnQgKGBPKGxvZ1MgKyBTKWApLvgtIEkvTzogMSByZWFkIGBPKFMpYCwgdXAgdG8gMSBtdXRhdGUgYE8oUylgLiBVcCB0byBvbmUgcmVtb3ZlLjAtIE9uZSBldmVudC5sLSBUaGUgd2VpZ2h0IG9mIHRoZSBgY2FsbGAuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLkBhcHByb3ZlX2FzX211bHRpFAEkdGhyZXNob2xkCQEBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzxAFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnQ5AgGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEkY2FsbF9oYXNoMAEgW3U4OyAzMl0AAShtYXhfd2VpZ2h0cQEBGFdlaWdodAACeFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi7MLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuADUBTk9URTogSWYgdGhpcyBpcyB0aGUgZmluYWwgYXBwcm92YWwsIHlvdSB3aWxsIHdhbnQgdG8gdXNlIGBhc19tdWx0aWAgaW5zdGVhZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50Lk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC48Y2FuY2VsX2FzX211bHRpEAEkdGhyZXNob2xkCQEBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzxAFEVmVjPFQ6OkFjY291bnRJZD4AASR0aW1lcG9pbnQ9AgFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABJGNhbGxfaGFzaDABIFt1ODsgMzJdAANUVQFDYW5jZWwgYSBwcmUtZXhpc3RpbmcsIG9uLWdvaW5nIG11bHRpc2lnIHRyYW5zYWN0aW9uLiBBbnkgZGVwb3NpdCByZXNlcnZlZCBwcmV2aW91c2x5xGZvciB0aGlzIG9wZXJhdGlvbiB3aWxsIGJlIHVucmVzZXJ2ZWQgb24gc3VjY2Vzcy4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5Ll0BLSBgdGltZXBvaW50YDogVGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZCB0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFseHRyYW5zYWN0aW9uIGZvciB0aGlzIGRpc3BhdGNoLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAuMC0gT25lIGV2ZW50LoQtIEkvTzogMSByZWFkIGBPKFMpYCwgb25lIHJlbW92ZS5wLSBTdG9yYWdlOiByZW1vdmVzIG9uZSBpdGVtLjBwb2tlX2RlcG9zaXQMASR0aHJlc2hvbGQJAQEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPEAURWZWM8VDo6QWNjb3VudElkPgABJGNhbGxfaGFzaDABIFt1ODsgMzJdAAQ09FBva2UgdGhlIGRlcG9zaXQgcmVzZXJ2ZWQgZm9yIGFuIGV4aXN0aW5nIG11bHRpc2lnIG9wZXJhdGlvbi4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yIG9mXHRoZSBtdWx0aXNpZyBvcGVyYXRpb24uAAEBVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyB3YWl2ZWQgaWYgdGhlIGRlcG9zaXQgYW1vdW50IGhhcyBjaGFuZ2VkLgAZAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIG5lZWRlZCBmb3IgdGhpcyBtdWx0aXNpZy49AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUsICBtdWx0aXNpZy4FAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRoaXMgZGVwb3NpdCBpcyByZXNlcnZlZCBmb3IuAIxFbWl0cyBgRGVwb3NpdFBva2VkYCBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy45AgQYT3B0aW9uBARUAT0CAQgQTm9uZQAAABBTb21lBAA9AgAAAQAAPQIIPHBhbGxldF9tdWx0aXNpZyRUaW1lcG9pbnQELEJsb2NrTnVtYmVyASgACAEYaGVpZ2h0KAEsQmxvY2tOdW1iZXIAARRpbmRleCgBDHUzMgAAQQIMfHBhbGxldF9tb29uYmVhbV9sYXp5X21pZ3JhdGlvbnMYcGFsbGV0EENhbGwEBFQAAQRgY3JlYXRlX2NvbnRyYWN0X21ldGFkYXRhBAEcYWRkcmVzcxkBARBIMTYwAAIABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkUCDERwYWxsZXRfcGFyYW1ldGVycxhwYWxsZXQQQ2FsbAQEVAABBDRzZXRfcGFyYW1ldGVyBAEka2V5X3ZhbHVlSQIBUFQ6OlJ1bnRpbWVQYXJhbWV0ZXJzAAAQdFNldCB0aGUgdmFsdWUgb2YgYSBwYXJhbWV0ZXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgQWRtaW5PcmlnaW5gIGZvciB0aGUgZ2l2ZW4gYGtleWAuIFZhbHVlcyBiZYhkZWxldGVkIGJ5IHNldHRpbmcgdGhlbSB0byBgTm9uZWAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkkCDEBtb29uYmVhbV9ydW50aW1lOHJ1bnRpbWVfcGFyYW1zRFJ1bnRpbWVQYXJhbWV0ZXJzAAEMNFJ1bnRpbWVDb25maWcEAE0CAahkeW5hbWljX3BhcmFtczo6cnVudGltZV9jb25maWc6OlBhcmFtZXRlcnMAAABAUGFsbGV0UmFuZG9tbmVzcwQAYQIBtGR5bmFtaWNfcGFyYW1zOjpwYWxsZXRfcmFuZG9tbmVzczo6UGFyYW1ldGVycwABACRYY21Db25maWcEAHECAZhkeW5hbWljX3BhcmFtczo6eGNtX2NvbmZpZzo6UGFyYW1ldGVycwACAABNAhRAbW9vbmJlYW1fcnVudGltZThydW50aW1lX3BhcmFtczhkeW5hbWljX3BhcmFtczhydW50aW1lX2NvbmZpZyhQYXJhbWV0ZXJzAAEIWEZlZXNUcmVhc3VyeVByb3BvcnRpb24IAFECAVhGZWVzVHJlYXN1cnlQcm9wb3J0aW9uAABVAgE8T3B0aW9uPFBlcmJpbGw+AAAAXE1heFRyYW5zYWN0aW9uc1BlckJsb2NrCABZAgFcTWF4VHJhbnNhY3Rpb25zUGVyQmxvY2sAAF0CASxPcHRpb248dTMyPgABAABRAhRAbW9vbmJlYW1fcnVudGltZThydW50aW1lX3BhcmFtczhkeW5hbWljX3BhcmFtczhydW50aW1lX2NvbmZpZ1hGZWVzVHJlYXN1cnlQcm9wb3J0aW9uAAAAAFUCBBhPcHRpb24EBFQBsAEIEE5vbmUAAAAQU29tZQQAsAAAAQAAWQIUQG1vb25iZWFtX3J1bnRpbWU4cnVudGltZV9wYXJhbXM4ZHluYW1pY19wYXJhbXM4cnVudGltZV9jb25maWdcTWF4VHJhbnNhY3Rpb25zUGVyQmxvY2sAAAAAXQIEGE9wdGlvbgQEVAEoAQgQTm9uZQAAABBTb21lBAAoAAABAABhAhRAbW9vbmJlYW1fcnVudGltZThydW50aW1lX3BhcmFtczhkeW5hbWljX3BhcmFtc0RwYWxsZXRfcmFuZG9tbmVzcyhQYXJhbWV0ZXJzAAEEHERlcG9zaXQIAGUCARxEZXBvc2l0AABpAgHxAU9wdGlvbjxCb3VuZGVkVTEyODx7IDEgKiBjdXJyZW5jeTo6R0xNUiAqIGN1cnJlbmN5OjpTVVBQTFlfRkFDVE9SIH0sCnsgMV8wMDAgKiBjdXJyZW5jeTo6R0xNUiAqIGN1cnJlbmN5OjpTVVBQTFlfRkFDVE9SIH0sPj4AAAAAZQIUQG1vb25iZWFtX3J1bnRpbWU4cnVudGltZV9wYXJhbXM4ZHluYW1pY19wYXJhbXNEcGFsbGV0X3JhbmRvbW5lc3McRGVwb3NpdAAAAABpAgQYT3B0aW9uBARUAW0CAQgQTm9uZQAAABBTb21lBABtAgAAAQAAbQIMXG1vb25iZWFtX3J1bnRpbWVfY29tbW9uFHR5cGVzLEJvdW5kZWRVMTI4AAAEALwBEHUxMjgAAHECFEBtb29uYmVhbV9ydW50aW1lOHJ1bnRpbWVfcGFyYW1zOGR5bmFtaWNfcGFyYW1zKHhjbV9jb25maWcoUGFyYW1ldGVycwABBGxGb3JlaWduQXNzZXRDcmVhdGlvbkRlcG9zaXQIAHUCAWxGb3JlaWduQXNzZXRDcmVhdGlvbkRlcG9zaXQAAHkCATBPcHRpb248dTEyOD4AAAAAdQIUQG1vb25iZWFtX3J1bnRpbWU4cnVudGltZV9wYXJhbXM4ZHluYW1pY19wYXJhbXMoeGNtX2NvbmZpZ2xGb3JlaWduQXNzZXRDcmVhdGlvbkRlcG9zaXQAAAAAeQIEGE9wdGlvbgQEVAG8AQgQTm9uZQAAABBTb21lBAC8AAABAAB9AgwocGFsbGV0X2V2bRhwYWxsZXQQQ2FsbAQEVAABECB3aXRoZHJhdwgBHGFkZHJlc3MZAQEQSDE2MAABFHZhbHVlvAEwQmFsYW5jZU9mPFQ+AAAE4FdpdGhkcmF3IGJhbGFuY2UgZnJvbSBFVk0gaW50byBjdXJyZW5jeS9iYWxhbmNlcyBwYWxsZXQuEGNhbGwoARhzb3VyY2UZAQEQSDE2MAABGHRhcmdldBkBARBIMTYwAAEUaW5wdXQUARxWZWM8dTg+AAEUdmFsdWWBAgEQVTI1NgABJGdhc19saW1pdBgBDHU2NAABPG1heF9mZWVfcGVyX2dhc4ECARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FziQIBME9wdGlvbjxVMjU2PgABFG5vbmNliQIBME9wdGlvbjxVMjU2PgABLGFjY2Vzc19saXN0jQIBWFZlYzwoSDE2MCwgVmVjPEgyNTY+KT4AAUhhdXRob3JpemF0aW9uX2xpc3SZAgFEQXV0aG9yaXphdGlvbkxpc3QAAQRdAUlzc3VlIGFuIEVWTSBjYWxsIG9wZXJhdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGEgbWVzc2FnZSBjYWxsIHRyYW5zYWN0aW9uIGluIEV0aGVyZXVtLhhjcmVhdGUkARhzb3VyY2UZAQEQSDE2MAABEGluaXQUARxWZWM8dTg+AAEUdmFsdWWBAgEQVTI1NgABJGdhc19saW1pdBgBDHU2NAABPG1heF9mZWVfcGVyX2dhc4ECARBVMjU2AAFgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FziQIBME9wdGlvbjxVMjU2PgABFG5vbmNliQIBME9wdGlvbjxVMjU2PgABLGFjY2Vzc19saXN0jQIBWFZlYzwoSDE2MCwgVmVjPEgyNTY+KT4AAUhhdXRob3JpemF0aW9uX2xpc3SZAgFEQXV0aG9yaXphdGlvbkxpc3QAAghRAUlzc3VlIGFuIEVWTSBjcmVhdGUgb3BlcmF0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8gYSBjb250cmFjdCBjcmVhdGlvbiB0cmFuc2FjdGlvbiBpbiRFdGhlcmV1bS4cY3JlYXRlMigBGHNvdXJjZRkBARBIMTYwAAEQaW5pdBQBHFZlYzx1OD4AARBzYWx0LAEQSDI1NgABFHZhbHVlgQIBEFUyNTYAASRnYXNfbGltaXQYAQx1NjQAATxtYXhfZmVlX3Blcl9nYXOBAgEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc4kCATBPcHRpb248VTI1Nj4AARRub25jZYkCATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdI0CAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN0mQIBREF1dGhvcml6YXRpb25MaXN0AAMEfElzc3VlIGFuIEVWTSBjcmVhdGUyIG9wZXJhdGlvbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMugQIIPHByaW1pdGl2ZV90eXBlcxBVMjU2AAAEAIUCASBbdTY0OyA0XQAAhQIAAAMEAAAAGACJAgQYT3B0aW9uBARUAYECAQgQTm9uZQAAABBTb21lBACBAgAAAQAAjQIAAAKRAgCRAgAABAgZAZUCAJUCAAACLACZAgAAAp0CAJ0CECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXA3NzAyVEF1dGhvcml6YXRpb25MaXN0SXRlbQAAEAEgY2hhaW5faWQYAQx1NjQAARxhZGRyZXNzGQEBHEFkZHJlc3MAARRub25jZYECARBVMjU2AAEkc2lnbmF0dXJloQIBdE1hbGxlYWJsZVRyYW5zYWN0aW9uU2lnbmF0dXJlAAChAhAgZXRoZXJldW0sdHJhbnNhY3Rpb24cZWlwMjkzMHRNYWxsZWFibGVUcmFuc2FjdGlvblNpZ25hdHVyZQAADAEwb2RkX3lfcGFyaXR5wAEQYm9vbAABBHIsARBIMjU2AAEEcywBEEgyNTYAAKUCDDxwYWxsZXRfZXRoZXJldW0YcGFsbGV0EENhbGwEBFQAAQQgdHJhbnNhY3QEASx0cmFuc2FjdGlvbqkCASxUcmFuc2FjdGlvbgAABIRUcmFuc2FjdCBhbiBFdGhlcmV1bSB0cmFuc2FjdGlvbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqQIMIGV0aGVyZXVtLHRyYW5zYWN0aW9uNFRyYW5zYWN0aW9uVjMAARAYTGVnYWN5BACtAgFETGVnYWN5VHJhbnNhY3Rpb24AAAAcRUlQMjkzMAQAvQIBSEVJUDI5MzBUcmFuc2FjdGlvbgABABxFSVAxNTU5BADNAgFIRUlQMTU1OVRyYW5zYWN0aW9uAAIAHEVJUDc3MDIEANECAUhFSVA3NzAyVHJhbnNhY3Rpb24AAwAArQIQIGV0aGVyZXVtLHRyYW5zYWN0aW9uGGxlZ2FjeURMZWdhY3lUcmFuc2FjdGlvbgAAHAEUbm9uY2WBAgEQVTI1NgABJGdhc19wcmljZYECARBVMjU2AAEkZ2FzX2xpbWl0gQIBEFUyNTYAARhhY3Rpb26xAgFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZYECARBVMjU2AAEUaW5wdXQUARRCeXRlcwABJHNpZ25hdHVyZbUCAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAAsQIQIGV0aGVyZXVtLHRyYW5zYWN0aW9uGGxlZ2FjeURUcmFuc2FjdGlvbkFjdGlvbgABCBBDYWxsBAAZAQEQSDE2MAAAABhDcmVhdGUAAQAAtQIQIGV0aGVyZXVtLHRyYW5zYWN0aW9uGGxlZ2FjeVBUcmFuc2FjdGlvblNpZ25hdHVyZQAADAEEdrkCAVRUcmFuc2FjdGlvblJlY292ZXJ5SWQAAQRyLAEQSDI1NgABBHMsARBIMjU2AAC5AhAgZXRoZXJldW0sdHJhbnNhY3Rpb24YbGVnYWN5VFRyYW5zYWN0aW9uUmVjb3ZlcnlJZAAABAAYAQx1NjQAAL0CECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXAyOTMwSEVJUDI5MzBUcmFuc2FjdGlvbgAAJAEgY2hhaW5faWQYAQx1NjQAARRub25jZYECARBVMjU2AAEkZ2FzX3ByaWNlgQIBEFUyNTYAASRnYXNfbGltaXSBAgEQVTI1NgABGGFjdGlvbrECAURUcmFuc2FjdGlvbkFjdGlvbgABFHZhbHVlgQIBEFUyNTYAARRpbnB1dBQBFEJ5dGVzAAEsYWNjZXNzX2xpc3TBAgEoQWNjZXNzTGlzdAABJHNpZ25hdHVyZckCAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAAwQIAAALFAgDFAhAgZXRoZXJldW0sdHJhbnNhY3Rpb24cZWlwMjkzMDhBY2Nlc3NMaXN0SXRlbQAACAEcYWRkcmVzcxkBARxBZGRyZXNzAAEwc3RvcmFnZV9rZXlzlQIBJFZlYzxIMjU2PgAAyQIQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzBQVHJhbnNhY3Rpb25TaWduYXR1cmUAAAwBMG9kZF95X3Bhcml0ecABEGJvb2wAAQRyLAEQSDI1NgABBHMsARBIMjU2AADNAhAgZXRoZXJldW0sdHJhbnNhY3Rpb24cZWlwMTU1OUhFSVAxNTU5VHJhbnNhY3Rpb24AACgBIGNoYWluX2lkGAEMdTY0AAEUbm9uY2WBAgEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc4ECARBVMjU2AAE8bWF4X2ZlZV9wZXJfZ2FzgQIBEFUyNTYAASRnYXNfbGltaXSBAgEQVTI1NgABGGFjdGlvbrECAURUcmFuc2FjdGlvbkFjdGlvbgABFHZhbHVlgQIBEFUyNTYAARRpbnB1dBQBFEJ5dGVzAAEsYWNjZXNzX2xpc3TBAgEoQWNjZXNzTGlzdAABJHNpZ25hdHVyZckCAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAA0QIQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDc3MDJIRUlQNzcwMlRyYW5zYWN0aW9uAAAsASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlgQIBEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXOBAgEQVTI1NgABPG1heF9mZWVfcGVyX2dhc4ECARBVMjU2AAEkZ2FzX2xpbWl0gQIBEFUyNTYAASxkZXN0aW5hdGlvbrECAURUcmFuc2FjdGlvbkFjdGlvbgABFHZhbHVlgQIBEFUyNTYAARBkYXRhFAEUQnl0ZXMAASxhY2Nlc3NfbGlzdMECAShBY2Nlc3NMaXN0AAFIYXV0aG9yaXphdGlvbl9saXN0mQIBREF1dGhvcml6YXRpb25MaXN0AAEkc2lnbmF0dXJlyQIBUFRyYW5zYWN0aW9uU2lnbmF0dXJlAADVAgxAcGFsbGV0X3NjaGVkdWxlchhwYWxsZXQQQ2FsbAQEVAABKCBzY2hlZHVsZRABEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj2QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAEcEFub255bW91c2x5IHNjaGVkdWxlIGEgdGFzay4YY2FuY2VsCAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgoAQx1MzIAAQSUQ2FuY2VsIGFuIGFub255bW91c2x5IHNjaGVkdWxlZCB0YXNrLjhzY2hlZHVsZV9uYW1lZBQBCGlkMAEgVGFza05hbWUAARB3aGVuKAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY9kCAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACBFhTY2hlZHVsZSBhIG5hbWVkIHRhc2suMGNhbmNlbF9uYW1lZAQBCGlkMAEgVGFza05hbWUAAwR4Q2FuY2VsIGEgbmFtZWQgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX2FmdGVyEAEUYWZ0ZXIoAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj2QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAQEqEFub255bW91c2x5IHNjaGVkdWxlIGEgdGFzayBhZnRlciBhIGRlbGF5LlBzY2hlZHVsZV9uYW1lZF9hZnRlchQBCGlkMAEgVGFza05hbWUAARRhZnRlcigBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPZAgGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABQSQU2NoZWR1bGUgYSBuYW1lZCB0YXNrIGFmdGVyIGEgZGVsYXkuJHNldF9yZXRyeQwBEHRhc2vdAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEccmV0cmllcwgBCHU4AAEYcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4ABjBZAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdCB3aWxsVQFiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsIGl0JHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC48c2V0X3JldHJ5X25hbWVkDAEIaWQwASBUYXNrTmFtZQABHHJldHJpZXMIAQh1OAABGHBlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAcwXQFTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBhIG5hbWVkIHRhc2sgc28gdGhhdCwgaW4gY2FzZSBpdHMgc2NoZWR1bGVkIHJ1biBmYWlscywgaXRdAXdpbGwgYmUgcmV0cmllZCBhZnRlciBgcGVyaW9kYCBibG9ja3MsIGZvciBhIHRvdGFsIGFtb3VudCBvZiBgcmV0cmllc2AgcmV0cmllcyBvciB1bnRpbDBpdCBzdWNjZWVkcy4AVQFUYXNrcyB3aGljaCBuZWVkIHRvIGJlIHNjaGVkdWxlZCBmb3IgYSByZXRyeSBhcmUgc3RpbGwgc3ViamVjdCB0byB3ZWlnaHQgbWV0ZXJpbmcgYW5kUQFhZ2VuZGEgc3BhY2UsIHNhbWUgYXMgYSByZWd1bGFyIHRhc2suIElmIGEgcGVyaW9kaWMgdGFzayBmYWlscywgaXQgd2lsbCBiZSBzY2hlZHVsZWSQbm9ybWFsbHkgd2hpbGUgdGhlIHRhc2sgaXMgcmV0cnlpbmcuAFEBVGFza3Mgc2NoZWR1bGVkIGFzIGEgcmVzdWx0IG9mIGEgcmV0cnkgZm9yIGEgcGVyaW9kaWMgdGFzayBhcmUgdW5uYW1lZCwgbm9uLXBlcmlvZGljPQFjbG9uZXMgb2YgdGhlIG9yaWdpbmFsIHRhc2suIFRoZWlyIHJldHJ5IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlTQFvcmlnaW5hbCB0YXNrJ3MgY29uZmlndXJhdGlvbiwgYnV0IHdpbGwgaGF2ZSBhIGxvd2VyIHZhbHVlIGZvciBgcmVtYWluaW5nYCB0aGFuIHRoZWRvcmlnaW5hbCBgdG90YWxfcmV0cmllc2AuMGNhbmNlbF9yZXRyeQQBEHRhc2vdAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAgEqFJlbW92ZXMgdGhlIHJldHJ5IGNvbmZpZ3VyYXRpb24gb2YgYSB0YXNrLkhjYW5jZWxfcmV0cnlfbmFtZWQEAQhpZDABIFRhc2tOYW1lAAkEvENhbmNlbCB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIG5hbWVkIHRhc2suBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtkCBBhPcHRpb24EBFQB3QIBCBBOb25lAAAAEFNvbWUEAN0CAAABAADdAgAABAgoKADhAgw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBBDYWxsBARUAAEUNG5vdGVfcHJlaW1hZ2UEARRieXRlcxQBHFZlYzx1OD4AABB0UmVnaXN0ZXIgYSBwcmVpbWFnZSBvbi1jaGFpbi4AVQFJZiB0aGUgcHJlaW1hZ2Ugd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkLCBubyBmZWVzIG9yIGRlcG9zaXRzIGFyZSB0YWtlbiBmb3IgcHJvdmlkaW5nVQF0aGUgcHJlaW1hZ2UuIE90aGVyd2lzZSwgYSBkZXBvc2l0IGlzIHRha2VuIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJlaW1hZ2UuPHVubm90ZV9wcmVpbWFnZQQBEGhhc2gsARxUOjpIYXNoAAEY3ENsZWFyIGFuIHVucmVxdWVzdGVkIHByZWltYWdlIGZyb20gdGhlIHJ1bnRpbWUgc3RvcmFnZS4A/ElmIGBsZW5gIGlzIHByb3ZpZGVkLCB0aGVuIGl0IHdpbGwgYmUgYSBtdWNoIGNoZWFwZXIgb3BlcmF0aW9uLgABAS0gYGhhc2hgOiBUaGUgaGFzaCBvZiB0aGUgcHJlaW1hZ2UgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yZS64LSBgbGVuYDogVGhlIGxlbmd0aCBvZiB0aGUgcHJlaW1hZ2Ugb2YgYGhhc2hgLkByZXF1ZXN0X3ByZWltYWdlBAEQaGFzaCwBHFQ6Okhhc2gAAhBBAVJlcXVlc3QgYSBwcmVpbWFnZSBiZSB1cGxvYWRlZCB0byB0aGUgY2hhaW4gd2l0aG91dCBwYXlpbmcgYW55IGZlZXMgb3IgZGVwb3NpdHMuAFUBSWYgdGhlIHByZWltYWdlIHJlcXVlc3RzIGhhcyBhbHJlYWR5IGJlZW4gcHJvdmlkZWQgb24tY2hhaW4sIHdlIHVucmVzZXJ2ZSBhbnkgZGVwb3NpdDkBYSB1c2VyIG1heSBoYXZlIHBhaWQsIGFuZCB0YWtlIHRoZSBjb250cm9sIG9mIHRoZSBwcmVpbWFnZSBvdXQgb2YgdGhlaXIgaGFuZHMuSHVucmVxdWVzdF9wcmVpbWFnZQQBEGhhc2gsARxUOjpIYXNoAAMMvENsZWFyIGEgcHJldmlvdXNseSBtYWRlIHJlcXVlc3QgZm9yIGEgcHJlaW1hZ2UuAC0BTk9URTogVEhJUyBNVVNUIE5PVCBCRSBDQUxMRUQgT04gYGhhc2hgIE1PUkUgVElNRVMgVEhBTiBgcmVxdWVzdF9wcmVpbWFnZWAuOGVuc3VyZV91cGRhdGVkBAEYaGFzaGVzlQIBMFZlYzxUOjpIYXNoPgAEDLxFbnN1cmUgdGhhdCB0aGUgYnVsayBvZiBwcmUtaW1hZ2VzIGlzIHVwZ3JhZGVkLgA9AVRoZSBjYWxsZXIgcGF5cyBubyBmZWUgaWYgYXQgbGVhc3QgOTAlIG9mIHByZS1pbWFnZXMgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu5QIMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQQQ2FsbAgEVAAESQABGBB2b3RlCAEocG9sbF9pbmRleFQBRFBvbGxJbmRleE9mPFQsIEk+AAEQdm90ZekCAXBBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VCwgST4+AAAkGQFWb3RlIGluIGEgcG9sbC4gSWYgYHZvdGUuaXNfYXllKClgLCB0aGUgdm90ZSBpcyB0byBlbmFjdCB0aGUgcHJvcG9zYWw7uG90aGVyd2lzZSBpdCBpcyBhIHZvdGUgdG8ga2VlcCB0aGUgc3RhdHVzIHF1by4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAMgtIGBwb2xsX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSBwb2xsIHRvIHZvdGUgZm9yLoQtIGB2b3RlYDogVGhlIHZvdGUgY29uZmlndXJhdGlvbi4AFQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhlIHZvdGVyIGhhcyB2b3RlZCBvbi4gZGVsZWdhdGUQARRjbGFzcwkBATRDbGFzc09mPFQsIEk+AAEIdG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGNvbnZpY3Rpb27xAgEoQ29udmljdGlvbgABHGJhbGFuY2W8ATxCYWxhbmNlT2Y8VCwgST4AAVxNAURlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgKHdpdGggc29tZSBnaXZlbiBjb252aWN0aW9uKSBvZiB0aGUgc2VuZGluZyBhY2NvdW50IGZvciBhaHBhcnRpY3VsYXIgY2xhc3Mgb2YgcG9sbHMuAFUBVGhlIGJhbGFuY2UgZGVsZWdhdGVkIGlzIGxvY2tlZCBmb3IgYXMgbG9uZyBhcyBpdCdzIGRlbGVnYXRlZCwgYW5kIHRoZXJlYWZ0ZXIgZm9yIHRoZch0aW1lIGFwcHJvcHJpYXRlIGZvciB0aGUgY29udmljdGlvbidzIGxvY2sgcGVyaW9kLgBdAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8sIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgZWl0aGVyOnQgIC0gYmUgZGVsZWdhdGluZyBhbHJlYWR5OyBvckUBICAtIGhhdmUgbm8gdm90aW5nIGFjdGl2aXR5IChpZiB0aGVyZSBpcywgdGhlbiBpdCB3aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZCB0aHJvdWdoTCAgICBgcmVtb3ZlX3ZvdGVgKS4ARQEtIGB0b2A6IFRoZSBhY2NvdW50IHdob3NlIHZvdGluZyB0aGUgYHRhcmdldGAgYWNjb3VudCdzIHZvdGluZyBwb3dlciB3aWxsIGZvbGxvdy5dAS0gYGNsYXNzYDogVGhlIGNsYXNzIG9mIHBvbGxzIHRvIGRlbGVnYXRlLiBUbyBkZWxlZ2F0ZSBtdWx0aXBsZSBjbGFzc2VzLCBtdWx0aXBsZSBjYWxsc4AgIHRvIHRoaXMgZnVuY3Rpb24gYXJlIHJlcXVpcmVkLlUBLSBgY29udmljdGlvbmA6IFRoZSBjb252aWN0aW9uIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgZGVsZWdhdGVkIHZvdGVzLiBXaGVuIHRoZUEBICBhY2NvdW50IGlzIHVuZGVsZWdhdGVkLCB0aGUgZnVuZHMgd2lsbCBiZSBsb2NrZWQgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBlcmlvZC5hAS0gYGJhbGFuY2VgOiBUaGUgYW1vdW50IG9mIHRoZSBhY2NvdW50J3MgYmFsYW5jZSB0byBiZSB1c2VkIGluIGRlbGVnYXRpbmcuIFRoaXMgbXVzdCBub3S0ICBiZSBtb3JlIHRoYW4gdGhlIGFjY291bnQncyBjdXJyZW50IGJhbGFuY2UuAEhFbWl0cyBgRGVsZWdhdGVkYC4AJQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhlIHZvdGVyIGRlbGVnYXRpbmcgdG8gaGFzTQEgIHZvdGVkIG9uLiBXZWlnaHQgaXMgaW5pdGlhbGx5IGNoYXJnZWQgYXMgaWYgbWF4aW11bSB2b3RlcywgYnV0IGlzIHJlZnVuZGVkIGxhdGVyLih1bmRlbGVnYXRlBAEUY2xhc3MJAQE0Q2xhc3NPZjxULCBJPgACOE0BVW5kZWxlZ2F0ZSB0aGUgdm90aW5nIHBvd2VyIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGEgcGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AXQFUb2tlbnMgbWF5IGJlIHVubG9ja2VkIGZvbGxvd2luZyBvbmNlIGFuIGFtb3VudCBvZiB0aW1lIGNvbnNpc3RlbnQgd2l0aCB0aGUgbG9jayBwZXJpb2QJAW9mIHRoZSBjb252aWN0aW9uIHdpdGggd2hpY2ggdGhlIGRlbGVnYXRpb24gd2FzIGlzc3VlZCBoYXMgcGFzc2VkLgBFAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBiZVRjdXJyZW50bHkgZGVsZWdhdGluZy4A8C0gYGNsYXNzYDogVGhlIGNsYXNzIG9mIHBvbGxzIHRvIHJlbW92ZSB0aGUgZGVsZWdhdGlvbiBmcm9tLgBQRW1pdHMgYFVuZGVsZWdhdGVkYC4AJQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhlIHZvdGVyIGRlbGVnYXRpbmcgdG8gaGFzTQEgIHZvdGVkIG9uLiBXZWlnaHQgaXMgaW5pdGlhbGx5IGNoYXJnZWQgYXMgaWYgbWF4aW11bSB2b3RlcywgYnV0IGlzIHJlZnVuZGVkIGxhdGVyLhh1bmxvY2sIARRjbGFzcwkBATRDbGFzc09mPFQsIEk+AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyRdAVJlbW92ZSB0aGUgbG9jayBjYXVzZWQgYnkgcHJpb3Igdm90aW5nL2RlbGVnYXRpbmcgd2hpY2ggaGFzIGV4cGlyZWQgd2l0aGluIGEgcGFydGljdWxhchhjbGFzcy4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAKAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byB1bmxvY2suuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlCAEUY2xhc3P1AgFUT3B0aW9uPENsYXNzT2Y8VCwgST4+AAEUaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgAEdGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAAxJZjpwLSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBvcmQtIHRoZSBwb2xsIGlzIG9uZ29pbmcsIG9yeC0gdGhlIHBvbGwgaGFzIGVuZGVkIHN1Y2ggdGhhdPwgIC0gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQgd2FzIGluIG9wcG9zaXRpb24gdG8gdGhlIHJlc3VsdDsgb3LUICAtIHRoZXJlIHdhcyBubyBjb252aWN0aW9uIHRvIHRoZSBhY2NvdW50J3Mgdm90ZTsgb3KEICAtIHRoZSBhY2NvdW50IG1hZGUgYSBzcGxpdCB2b3RlXQEuLi50aGVuIHRoZSB2b3RlIGlzIHJlbW92ZWQgY2xlYW5seSBhbmQgYSBmb2xsb3dpbmcgY2FsbCB0byBgdW5sb2NrYCBtYXkgcmVzdWx0IGluIG1vcmVYZnVuZHMgYmVpbmcgYXZhaWxhYmxlLgCQSWYsIGhvd2V2ZXIsIHRoZSBwb2xsIGhhcyBlbmRlZCBhbmQ67C0gaXQgZmluaXNoZWQgY29ycmVzcG9uZGluZyB0byB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCwgYW5k3C0gdGhlIGFjY291bnQgbWFkZSBhIHN0YW5kYXJkIHZvdGUgd2l0aCBjb252aWN0aW9uLCBhbmS8LSB0aGUgbG9jayBwZXJpb2Qgb2YgdGhlIGNvbnZpY3Rpb24gaXMgbm90IG92ZXJZAS4uLnRoZW4gdGhlIGxvY2sgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG8gdGhlIG92ZXJhbGwgYWNjb3VudCdzIGxvY2ssIHdoaWNoIG1heSBpbnZvbHZlWQEqb3ZlcmxvY2tpbmcqICh3aGVyZSB0aGUgdHdvIGxvY2tzIGFyZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIGxvY2sgdGhhdCBpcyB0aGUgbWF4aW11beRvZiBib3RoIHRoZSBhbW91bnQgbG9ja2VkIGFuZCB0aGUgdGltZSBpcyBpdCBsb2NrZWQgZm9yKS4ASQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25lciBtdXN0IGhhdmUgYSB2b3RlcHJlZ2lzdGVyZWQgZm9yIHBvbGwgYGluZGV4YC4A3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC5VAS0gYGNsYXNzYDogT3B0aW9uYWwgcGFyYW1ldGVyLCBpZiBnaXZlbiBpdCBpbmRpY2F0ZXMgdGhlIGNsYXNzIG9mIHRoZSBwb2xsLiBGb3IgcG9sbHPwICB3aGljaCBoYXZlIGZpbmlzaGVkIG9yIGFyZSBjYW5jZWxsZWQsIHRoaXMgbXVzdCBiZSBgU29tZWAuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLkRyZW1vdmVfb3RoZXJfdm90ZQwBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUY2xhc3MJAQE0Q2xhc3NPZjxULCBJPgABFGluZGV4KAFEUG9sbEluZGV4T2Y8VCwgST4ABUBkUmVtb3ZlIGEgdm90ZSBmb3IgYSBwb2xsLgBNAUlmIHRoZSBgdGFyZ2V0YCBpcyBlcXVhbCB0byB0aGUgc2lnbmVyLCB0aGVuIHRoaXMgZnVuY3Rpb24gaXMgZXhhY3RseSBlcXVpdmFsZW50IHRvLQFgcmVtb3ZlX3ZvdGVgLiBJZiBub3QgZXF1YWwgdG8gdGhlIHNpZ25lciwgdGhlbiB0aGUgdm90ZSBtdXN0IGhhdmUgZXhwaXJlZCwlAWVpdGhlciBiZWNhdXNlIHRoZSBwb2xsIHdhcyBjYW5jZWxsZWQsIGJlY2F1c2UgdGhlIHZvdGVyIGxvc3QgdGhlIHBvbGwgb3KYYmVjYXVzZSB0aGUgY29udmljdGlvbiBwZXJpb2QgaXMgb3Zlci4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAGEBLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZDsgdGhpcyBhY2NvdW50IG11c3QgaGF2ZSB2b3RlZCBmb3IgcG9sbCggIGBpbmRleGAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC6ELSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgdGhlIHBvbGwuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7pAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUsQWNjb3VudFZvdGUEHEJhbGFuY2UBvAEMIFN0YW5kYXJkCAEQdm90Ze0CARBWb3RlAAEcYmFsYW5jZbwBHEJhbGFuY2UAAAAUU3BsaXQIAQxheWW8ARxCYWxhbmNlAAEMbmF5vAEcQmFsYW5jZQABADBTcGxpdEFic3RhaW4MAQxheWW8ARxCYWxhbmNlAAEMbmF5vAEcQmFsYW5jZQABHGFic3RhaW68ARxCYWxhbmNlAAIAAO0CDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRBWb3RlAAAEAAgAAADxAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nKGNvbnZpY3Rpb24oQ29udmljdGlvbgABHBBOb25lAAAAIExvY2tlZDF4AAEAIExvY2tlZDJ4AAIAIExvY2tlZDN4AAMAIExvY2tlZDR4AAQAIExvY2tlZDV4AAUAIExvY2tlZDZ4AAYAAPUCBBhPcHRpb24EBFQBCQEBCBBOb25lAAAAEFNvbWUEAAkBAAABAAD5AgxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQQQ2FsbAgEVAAESQABJBhzdWJtaXQMATxwcm9wb3NhbF9vcmlnaW4NAQFcQm94PFBhbGxldHNPcmlnaW5PZjxUPj4AASBwcm9wb3NhbP0CAUxCb3VuZGVkQ2FsbE9mPFQsIEk+AAFAZW5hY3RtZW50X21vbWVudAkDAYhEaXNwYXRjaFRpbWU8QmxvY2tOdW1iZXJGb3I8VCwgST4+AAAksFByb3Bvc2UgYSByZWZlcmVuZHVtIG9uIGEgcHJpdmlsZWdlZCBhY3Rpb24uAFkBLSBgb3JpZ2luYDogbXVzdCBiZSBgU3VibWl0T3JpZ2luYCBhbmQgdGhlIGFjY291bnQgbXVzdCBoYXZlIGBTdWJtaXNzaW9uRGVwb3NpdGAgZnVuZHMwICBhdmFpbGFibGUuLQEtIGBwcm9wb3NhbF9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIHByb3Bvc2FsIHNob3VsZCBiZSBleGVjdXRlZC5sLSBgcHJvcG9zYWxgOiBUaGUgcHJvcG9zYWwuFQEtIGBlbmFjdG1lbnRfbW9tZW50YDogVGhlIG1vbWVudCB0aGF0IHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZW5hY3RlZC4ASEVtaXRzIGBTdWJtaXR0ZWRgLlhwbGFjZV9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAASCsUG9zdCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSByZWZlcmVuZHVtLgA5AS0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBmdW5kcyBhdmFpbGFibGUgZm9yIHRoZaAgIHJlZmVyZW5kdW0ncyB0cmFjaydzIERlY2lzaW9uIERlcG9zaXQuUQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgc3VibWl0dGVkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBpcyB5ZXQgdG8gYmUkICBwb3N0ZWQuAHhFbWl0cyBgRGVjaXNpb25EZXBvc2l0UGxhY2VkYC5ccmVmdW5kX2RlY2lzaW9uX2RlcG9zaXQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAACHCkBUmVmdW5kIHRoZSBEZWNpc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLk0BLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBEZWNpc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AgEVtaXRzIGBEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZGAuGGNhbmNlbAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AAMYdENhbmNlbCBhbiBvbmdvaW5nIHJlZmVyZW5kdW0uAJwtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgQ2FuY2VsT3JpZ2luYC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gYmUgY2FuY2VsbGVkLgBIRW1pdHMgYENhbmNlbGxlZGAuEGtpbGwEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAAEGNBDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAJQtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgS2lsbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4AkEVtaXRzIGBLaWxsZWRgIGFuZCBgRGVwb3NpdFNsYXNoZWRgLkBudWRnZV9yZWZlcmVuZHVtBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgABRAdAUFkdmFuY2UgYSByZWZlcmVuZHVtIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6kLSBgaW5kZXhgOiB0aGUgcmVmZXJlbmR1bSB0byBiZSBhZHZhbmNlZC5Ib25lX2Zld2VyX2RlY2lkaW5nBAEUdHJhY2sJAQE8VHJhY2tJZE9mPFQsIEk+AAYkCQFBZHZhbmNlIGEgdHJhY2sgb250byBpdHMgbmV4dCBsb2dpY2FsIHN0YXRlLiBPbmx5IHVzZWQgaW50ZXJuYWxseS4AbC0gYG9yaWdpbmA6IG11c3QgYmUgYFJvb3RgLpAtIGB0cmFja2A6IHRoZSB0cmFjayB0byBiZSBhZHZhbmNlZC4AUQFBY3Rpb24gaXRlbSBmb3Igd2hlbiB0aGVyZSBpcyBub3cgb25lIGZld2VyIHJlZmVyZW5kdW0gaW4gdGhlIGRlY2lkaW5nIHBoYXNlIGFuZCB0aGUVAWBEZWNpZGluZ0NvdW50YCBpcyBub3QgeWV0IHVwZGF0ZWQuIFRoaXMgbWVhbnMgdGhhdCB3ZSBzaG91bGQgZWl0aGVyOiUBLSBiZWdpbiBkZWNpZGluZyBhbm90aGVyIHJlZmVyZW5kdW0gKGFuZCBsZWF2ZSBgRGVjaWRpbmdDb3VudGAgYWxvbmUpOyBvcnAtIGRlY3JlbWVudCBgRGVjaWRpbmdDb3VudGAuZHJlZnVuZF9zdWJtaXNzaW9uX2RlcG9zaXQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAAHHDEBUmVmdW5kIHRoZSBTdWJtaXNzaW9uIERlcG9zaXQgZm9yIGEgY2xvc2VkIHJlZmVyZW5kdW0gYmFjayB0byB0aGUgZGVwb3NpdG9yLgCcLSBgb3JpZ2luYDogbXVzdCBiZSBgU2lnbmVkYCBvciBgUm9vdGAuVQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiBhIGNsb3NlZCByZWZlcmVuZHVtIHdob3NlIFN1Ym1pc3Npb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIhFbWl0cyBgU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZGAuMHNldF9tZXRhZGF0YQgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AAEobWF5YmVfaGFzaA0DATxPcHRpb248VDo6SGFzaD4ACByYU2V0IG9yIGNsZWFyIG1ldGFkYXRhIG9mIGEgcmVmZXJlbmR1bS4ALFBhcmFtZXRlcnM6RQEtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgIGJ5IGEgY3JlYXRvciBvZiBhIHJlZmVyZW5kdW0gb3IgYnkgYW55b25lIHRvIGNsZWFyIGGQICBtZXRhZGF0YSBvZiBhIGZpbmlzaGVkIHJlZmVyZW5kdW0uDQEtIGBpbmRleGA6ICBUaGUgaW5kZXggb2YgYSByZWZlcmVuZHVtIHRvIHNldCBvciBjbGVhciBtZXRhZGF0YSBmb3IuUQEtIGBtYXliZV9oYXNoYDogVGhlIGhhc2ggb2YgYW4gb24tY2hhaW4gc3RvcmVkIHByZWltYWdlLiBgTm9uZWAgdG8gY2xlYXIgYSBtZXRhZGF0YS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu/QIQNGZyYW1lX3N1cHBvcnQYdHJhaXRzJHByZWltYWdlcxxCb3VuZGVkCARUAQwESAEBAwEMGExlZ2FjeQQBEGhhc2gsASRIOjpPdXRwdXQAAAAYSW5saW5lBAAFAwE0Qm91bmRlZElubGluZQABABhMb29rdXAIARBoYXNoLAEkSDo6T3V0cHV0AAEMbGVuKAEMdTMyAAIAAAEDDChzcF9ydW50aW1lGHRyYWl0cyxCbGFrZVR3bzI1NgAAAAAFAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAAkDEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBzY2hlZHVsZTBEaXNwYXRjaFRpbWUELEJsb2NrTnVtYmVyASgBCAhBdAQAKAEsQmxvY2tOdW1iZXIAAAAUQWZ0ZXIEACgBLEJsb2NrTnVtYmVyAAEAAA0DBBhPcHRpb24EBFQBLAEIEE5vbmUAAAAQU29tZQQALAAAAQAAEQMMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0EENhbGwEBFQAARA4d2hpdGVsaXN0X2NhbGwEASRjYWxsX2hhc2gsARxUOjpIYXNoAAAAXHJlbW92ZV93aGl0ZWxpc3RlZF9jYWxsBAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABAGRkaXNwYXRjaF93aGl0ZWxpc3RlZF9jYWxsDAEkY2FsbF9oYXNoLAEcVDo6SGFzaAABQGNhbGxfZW5jb2RlZF9sZW4oAQx1MzIAAUxjYWxsX3dlaWdodF93aXRuZXNzcQEBGFdlaWdodAACAJxkaXNwYXRjaF93aGl0ZWxpc3RlZF9jYWxsX3dpdGhfcHJlaW1hZ2UEARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4VAwxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0EENhbGwIBFQABEkAASAsc2V0X21lbWJlcnMMASxuZXdfbWVtYmVyc8QBRFZlYzxUOjpBY2NvdW50SWQ+AAEUcHJpbWUZAwFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRvbGRfY291bnQoASxNZW1iZXJDb3VudAAAYIBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwLgBFAS0gYG5ld19tZW1iZXJzYDogVGhlIG5ldyBtZW1iZXIgbGlzdC4gQmUgbmljZSB0byB0aGUgY2hhaW4gYW5kIHByb3ZpZGUgaXQgc29ydGVkLuAtIGBwcmltZWA6IFRoZSBwcmltZSBtZW1iZXIgd2hvc2Ugdm90ZSBzZXRzIHRoZSBkZWZhdWx0LlkBLSBgb2xkX2NvdW50YDogVGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgcHJldmlvdXMgbnVtYmVyIG9mIG1lbWJlcnMgaW4gc3RvcmFnZS4gVXNlZCBmb3JQICB3ZWlnaHQgZXN0aW1hdGlvbi4A1FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgU2V0TWVtYmVyc09yaWdpbmAuAFEBTk9URTogRG9lcyBub3QgZW5mb3JjZSB0aGUgZXhwZWN0ZWQgYE1heE1lbWJlcnNgIGxpbWl0IG9uIHRoZSBhbW91bnQgb2YgbWVtYmVycywgYnV0IQEgICAgICB0aGUgd2VpZ2h0IGVzdGltYXRpb25zIHJlbHkgb24gaXQgdG8gZXN0aW1hdGUgZGlzcGF0Y2hhYmxlIHdlaWdodC4AKCMgV0FSTklORzoAWQFUaGUgYHBhbGxldC1jb2xsZWN0aXZlYCBjYW4gYWxzbyBiZSBtYW5hZ2VkIGJ5IGxvZ2ljIG91dHNpZGUgb2YgdGhlIHBhbGxldCB0aHJvdWdoIHRoZbhpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhaXQgW2BDaGFuZ2VNZW1iZXJzYF0uVQFBbnkgY2FsbCB0byBgc2V0X21lbWJlcnNgIG11c3QgYmUgY2FyZWZ1bCB0aGF0IHRoZSBtZW1iZXIgc2V0IGRvZXNuJ3QgZ2V0IG91dCBvZiBzeW5jpHdpdGggb3RoZXIgbG9naWMgbWFuYWdpbmcgdGhlIG1lbWJlciBzZXQuADgjIyBDb21wbGV4aXR5OlAtIGBPKE1QICsgTilgIHdoZXJlOuAgIC0gYE1gIG9sZC1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKeAgIC0gYE5gIG5ldy1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKZggIC0gYFBgIHByb3Bvc2Fscy1jb3VudCAoY29kZS1ib3VuZGVkKRxleGVjdXRlCAEgcHJvcG9zYWwMAXxCb3g8PFQgYXMgQ29uZmlnPEk+Pjo6UHJvcG9zYWw+AAEwbGVuZ3RoX2JvdW5kVAEMdTMyAAEk8ERpc3BhdGNoIGEgcHJvcG9zYWwgZnJvbSBhIG1lbWJlciB1c2luZyB0aGUgYE1lbWJlcmAgb3JpZ2luLgCoT3JpZ2luIG11c3QgYmUgYSBtZW1iZXIgb2YgdGhlIGNvbGxlY3RpdmUuADgjIyBDb21wbGV4aXR5OlwtIGBPKEIgKyBNICsgUClgIHdoZXJlOtgtIGBCYCBpcyBgcHJvcG9zYWxgIHNpemUgaW4gYnl0ZXMgKGxlbmd0aC1mZWUtYm91bmRlZCmILSBgTWAgbWVtYmVycy1jb3VudCAoY29kZS1ib3VuZGVkKagtIGBQYCBjb21wbGV4aXR5IG9mIGRpc3BhdGNoaW5nIGBwcm9wb3NhbGAccHJvcG9zZQwBJHRocmVzaG9sZFQBLE1lbWJlckNvdW50AAEgcHJvcG9zYWwMAXxCb3g8PFQgYXMgQ29uZmlnPEk+Pjo6UHJvcG9zYWw+AAEwbGVuZ3RoX2JvdW5kVAEMdTMyAAI4+EFkZCBhIG5ldyBwcm9wb3NhbCB0byBlaXRoZXIgYmUgdm90ZWQgb24gb3IgZXhlY3V0ZWQgZGlyZWN0bHkuAIRSZXF1aXJlcyB0aGUgc2VuZGVyIHRvIGJlIG1lbWJlci4AQQFgdGhyZXNob2xkYCBkZXRlcm1pbmVzIHdoZXRoZXIgYHByb3Bvc2FsYCBpcyBleGVjdXRlZCBkaXJlY3RseSAoYHRocmVzaG9sZCA8IDJgKVRvciBwdXQgdXAgZm9yIHZvdGluZy4ANCMjIENvbXBsZXhpdHmsLSBgTyhCICsgTSArIFAxKWAgb3IgYE8oQiArIE0gKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpxCAgLSBicmFuY2hpbmcgaXMgaW5mbHVlbmNlZCBieSBgdGhyZXNob2xkYCB3aGVyZTr0ICAgIC0gYFAxYCBpcyBwcm9wb3NhbCBleGVjdXRpb24gY29tcGxleGl0eSAoYHRocmVzaG9sZCA8IDJgKfwgICAgLSBgUDJgIGlzIHByb3Bvc2Fscy1jb3VudCAoY29kZS1ib3VuZGVkKSAoYHRocmVzaG9sZCA+PSAyYCkQdm90ZQwBIHByb3Bvc2FsLAEcVDo6SGFzaAABFGluZGV4VAE0UHJvcG9zYWxJbmRleAABHGFwcHJvdmXAARBib29sAAMk8EFkZCBhbiBheWUgb3IgbmF5IHZvdGUgZm9yIHRoZSBzZW5kZXIgdG8gdGhlIGdpdmVuIHByb3Bvc2FsLgCMUmVxdWlyZXMgdGhlIHNlbmRlciB0byBiZSBhIG1lbWJlci4ASQFUcmFuc2FjdGlvbiBmZWVzIHdpbGwgYmUgd2FpdmVkIGlmIHRoZSBtZW1iZXIgaXMgdm90aW5nIG9uIGFueSBwYXJ0aWN1bGFyIHByb3Bvc2FsUQFmb3IgdGhlIGZpcnN0IHRpbWUgYW5kIHRoZSBjYWxsIGlzIHN1Y2Nlc3NmdWwuIFN1YnNlcXVlbnQgdm90ZSBjaGFuZ2VzIHdpbGwgY2hhcmdlIGEQZmVlLjQjIyBDb21wbGV4aXR5CQEtIGBPKE0pYCB3aGVyZSBgTWAgaXMgbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZClMZGlzYXBwcm92ZV9wcm9wb3NhbAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAUoWQFEaXNhcHByb3ZlIGEgcHJvcG9zYWwsIGNsb3NlLCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHN5c3RlbSwgcmVnYXJkbGVzcyBvZiBpdHMgY3VycmVudBhzdGF0ZS4AiE11c3QgYmUgY2FsbGVkIGJ5IHRoZSBSb290IG9yaWdpbi4ALFBhcmFtZXRlcnM6HQEqIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsIHRoYXQgc2hvdWxkIGJlIGRpc2FwcHJvdmVkLgA0IyMgQ29tcGxleGl0eaxPKFApIHdoZXJlIFAgaXMgdGhlIG51bWJlciBvZiBtYXggcHJvcG9zYWxzFGNsb3NlEAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARRpbmRleFQBNFByb3Bvc2FsSW5kZXgAAVRwcm9wb3NhbF93ZWlnaHRfYm91bmRxAQEYV2VpZ2h0AAEwbGVuZ3RoX2JvdW5kVAEMdTMyAAZgTQFDbG9zZSBhIHZvdGUgdGhhdCBpcyBlaXRoZXIgYXBwcm92ZWQsIGRpc2FwcHJvdmVkIG9yIHdob3NlIHZvdGluZyBwZXJpb2QgaGFzIGVuZGVkLgBVAU1heSBiZSBjYWxsZWQgYnkgYW55IHNpZ25lZCBhY2NvdW50IGluIG9yZGVyIHRvIGZpbmlzaCB2b3RpbmcgYW5kIGNsb3NlIHRoZSBwcm9wb3NhbC4ASQFJZiBjYWxsZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgaXQgd2lsbCBvbmx5IGNsb3NlIHRoZSB2b3RlIGlmIGl0IGlzvGhhcyBlbm91Z2ggdm90ZXMgdG8gYmUgYXBwcm92ZWQgb3IgZGlzYXBwcm92ZWQuAEkBSWYgY2FsbGVkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgYWJzdGVudGlvbnMgYXJlIGNvdW50ZWQgYXMgcmVqZWN0aW9ucyUBdW5sZXNzIHRoZXJlIGlzIGEgcHJpbWUgbWVtYmVyIHNldCBhbmQgdGhlIHByaW1lIG1lbWJlciBjYXN0IGFuIGFwcHJvdmFsLgBhAUlmIHRoZSBjbG9zZSBvcGVyYXRpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSB3aXRoIGRpc2FwcHJvdmFsLCB0aGUgdHJhbnNhY3Rpb24gZmVlIHdpbGxdAWJlIHdhaXZlZC4gT3RoZXJ3aXNlIGV4ZWN1dGlvbiBvZiB0aGUgYXBwcm92ZWQgb3BlcmF0aW9uIHdpbGwgYmUgY2hhcmdlZCB0byB0aGUgY2FsbGVyLgBhASsgYHByb3Bvc2FsX3dlaWdodF9ib3VuZGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgY29uc3VtZWQgYnkgZXhlY3V0aW5nIHRoZSBjbG9zZWQkcHJvcG9zYWwuYQErIGBsZW5ndGhfYm91bmRgOiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHByb3Bvc2FsIGluIHN0b3JhZ2UuIENoZWNrZWQgdmlhNQFgc3RvcmFnZTo6cmVhZGAgc28gaXQgaXMgYHNpemVfb2Y6Ojx1MzI+KCkgPT0gNGAgbGFyZ2VyIHRoYW4gdGhlIHB1cmUgbGVuZ3RoLgA0IyMgQ29tcGxleGl0eXQtIGBPKEIgKyBNICsgUDEgKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpyCAgLSBgUDFgIGlzIHRoZSBjb21wbGV4aXR5IG9mIGBwcm9wb3NhbGAgcHJlaW1hZ2UupCAgLSBgUDJgIGlzIHByb3Bvc2FsLWNvdW50IChjb2RlLWJvdW5kZWQpEGtpbGwEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAHHCUBRGlzYXBwcm92ZSB0aGUgcHJvcG9zYWwgYW5kIGJ1cm4gdGhlIGNvc3QgaGVsZCBmb3Igc3RvcmluZyB0aGlzIHByb3Bvc2FsLgAsUGFyYW1ldGVyczqULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLgkBLSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCB0aGF0IHNob3VsZCBiZSBraWxsZWQuAEkBRW1pdHMgYEtpbGxlZGAgYW5kIGBQcm9wb3NhbENvc3RCdXJuZWRgIGlmIGFueSBjb3N0IHdhcyBoZWxkIGZvciBhIGdpdmVuIHByb3Bvc2FsLlRyZWxlYXNlX3Byb3Bvc2FsX2Nvc3QEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAIJEkBUmVsZWFzZSB0aGUgY29zdCBoZWxkIGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgb25jZSB0aGUgZ2l2ZW4gcHJvcG9zYWwgaXMgY29tcGxldGVkLgBVAUlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29zdCBmb3IgdGhlIGdpdmVuIHByb3Bvc2FsLCB0aGlzIGNhbGwgd2lsbCBoYXZlIG5vIGVmZmVjdC4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLrAtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsLgANAUVtaXRzIGBQcm9wb3NhbENvc3RSZWxlYXNlZGAgaWYgYW55IGNvc3QgaGVsZCBmb3IgYSBnaXZlbiBwcm9wb3NhbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuGQMEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAAAdAwxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0EENhbGwIBFQABEkAASAsc2V0X21lbWJlcnMMASxuZXdfbWVtYmVyc8QBRFZlYzxUOjpBY2NvdW50SWQ+AAEUcHJpbWUZAwFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRvbGRfY291bnQoASxNZW1iZXJDb3VudAAAYIBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwLgBFAS0gYG5ld19tZW1iZXJzYDogVGhlIG5ldyBtZW1iZXIgbGlzdC4gQmUgbmljZSB0byB0aGUgY2hhaW4gYW5kIHByb3ZpZGUgaXQgc29ydGVkLuAtIGBwcmltZWA6IFRoZSBwcmltZSBtZW1iZXIgd2hvc2Ugdm90ZSBzZXRzIHRoZSBkZWZhdWx0LlkBLSBgb2xkX2NvdW50YDogVGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgcHJldmlvdXMgbnVtYmVyIG9mIG1lbWJlcnMgaW4gc3RvcmFnZS4gVXNlZCBmb3JQICB3ZWlnaHQgZXN0aW1hdGlvbi4A1FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgU2V0TWVtYmVyc09yaWdpbmAuAFEBTk9URTogRG9lcyBub3QgZW5mb3JjZSB0aGUgZXhwZWN0ZWQgYE1heE1lbWJlcnNgIGxpbWl0IG9uIHRoZSBhbW91bnQgb2YgbWVtYmVycywgYnV0IQEgICAgICB0aGUgd2VpZ2h0IGVzdGltYXRpb25zIHJlbHkgb24gaXQgdG8gZXN0aW1hdGUgZGlzcGF0Y2hhYmxlIHdlaWdodC4AKCMgV0FSTklORzoAWQFUaGUgYHBhbGxldC1jb2xsZWN0aXZlYCBjYW4gYWxzbyBiZSBtYW5hZ2VkIGJ5IGxvZ2ljIG91dHNpZGUgb2YgdGhlIHBhbGxldCB0aHJvdWdoIHRoZbhpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhaXQgW2BDaGFuZ2VNZW1iZXJzYF0uVQFBbnkgY2FsbCB0byBgc2V0X21lbWJlcnNgIG11c3QgYmUgY2FyZWZ1bCB0aGF0IHRoZSBtZW1iZXIgc2V0IGRvZXNuJ3QgZ2V0IG91dCBvZiBzeW5jpHdpdGggb3RoZXIgbG9naWMgbWFuYWdpbmcgdGhlIG1lbWJlciBzZXQuADgjIyBDb21wbGV4aXR5OlAtIGBPKE1QICsgTilgIHdoZXJlOuAgIC0gYE1gIG9sZC1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKeAgIC0gYE5gIG5ldy1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKZggIC0gYFBgIHByb3Bvc2Fscy1jb3VudCAoY29kZS1ib3VuZGVkKRxleGVjdXRlCAEgcHJvcG9zYWwMAXxCb3g8PFQgYXMgQ29uZmlnPEk+Pjo6UHJvcG9zYWw+AAEwbGVuZ3RoX2JvdW5kVAEMdTMyAAEk8ERpc3BhdGNoIGEgcHJvcG9zYWwgZnJvbSBhIG1lbWJlciB1c2luZyB0aGUgYE1lbWJlcmAgb3JpZ2luLgCoT3JpZ2luIG11c3QgYmUgYSBtZW1iZXIgb2YgdGhlIGNvbGxlY3RpdmUuADgjIyBDb21wbGV4aXR5OlwtIGBPKEIgKyBNICsgUClgIHdoZXJlOtgtIGBCYCBpcyBgcHJvcG9zYWxgIHNpemUgaW4gYnl0ZXMgKGxlbmd0aC1mZWUtYm91bmRlZCmILSBgTWAgbWVtYmVycy1jb3VudCAoY29kZS1ib3VuZGVkKagtIGBQYCBjb21wbGV4aXR5IG9mIGRpc3BhdGNoaW5nIGBwcm9wb3NhbGAccHJvcG9zZQwBJHRocmVzaG9sZFQBLE1lbWJlckNvdW50AAEgcHJvcG9zYWwMAXxCb3g8PFQgYXMgQ29uZmlnPEk+Pjo6UHJvcG9zYWw+AAEwbGVuZ3RoX2JvdW5kVAEMdTMyAAI4+EFkZCBhIG5ldyBwcm9wb3NhbCB0byBlaXRoZXIgYmUgdm90ZWQgb24gb3IgZXhlY3V0ZWQgZGlyZWN0bHkuAIRSZXF1aXJlcyB0aGUgc2VuZGVyIHRvIGJlIG1lbWJlci4AQQFgdGhyZXNob2xkYCBkZXRlcm1pbmVzIHdoZXRoZXIgYHByb3Bvc2FsYCBpcyBleGVjdXRlZCBkaXJlY3RseSAoYHRocmVzaG9sZCA8IDJgKVRvciBwdXQgdXAgZm9yIHZvdGluZy4ANCMjIENvbXBsZXhpdHmsLSBgTyhCICsgTSArIFAxKWAgb3IgYE8oQiArIE0gKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpxCAgLSBicmFuY2hpbmcgaXMgaW5mbHVlbmNlZCBieSBgdGhyZXNob2xkYCB3aGVyZTr0ICAgIC0gYFAxYCBpcyBwcm9wb3NhbCBleGVjdXRpb24gY29tcGxleGl0eSAoYHRocmVzaG9sZCA8IDJgKfwgICAgLSBgUDJgIGlzIHByb3Bvc2Fscy1jb3VudCAoY29kZS1ib3VuZGVkKSAoYHRocmVzaG9sZCA+PSAyYCkQdm90ZQwBIHByb3Bvc2FsLAEcVDo6SGFzaAABFGluZGV4VAE0UHJvcG9zYWxJbmRleAABHGFwcHJvdmXAARBib29sAAMk8EFkZCBhbiBheWUgb3IgbmF5IHZvdGUgZm9yIHRoZSBzZW5kZXIgdG8gdGhlIGdpdmVuIHByb3Bvc2FsLgCMUmVxdWlyZXMgdGhlIHNlbmRlciB0byBiZSBhIG1lbWJlci4ASQFUcmFuc2FjdGlvbiBmZWVzIHdpbGwgYmUgd2FpdmVkIGlmIHRoZSBtZW1iZXIgaXMgdm90aW5nIG9uIGFueSBwYXJ0aWN1bGFyIHByb3Bvc2FsUQFmb3IgdGhlIGZpcnN0IHRpbWUgYW5kIHRoZSBjYWxsIGlzIHN1Y2Nlc3NmdWwuIFN1YnNlcXVlbnQgdm90ZSBjaGFuZ2VzIHdpbGwgY2hhcmdlIGEQZmVlLjQjIyBDb21wbGV4aXR5CQEtIGBPKE0pYCB3aGVyZSBgTWAgaXMgbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZClMZGlzYXBwcm92ZV9wcm9wb3NhbAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAUoWQFEaXNhcHByb3ZlIGEgcHJvcG9zYWwsIGNsb3NlLCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHN5c3RlbSwgcmVnYXJkbGVzcyBvZiBpdHMgY3VycmVudBhzdGF0ZS4AiE11c3QgYmUgY2FsbGVkIGJ5IHRoZSBSb290IG9yaWdpbi4ALFBhcmFtZXRlcnM6HQEqIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsIHRoYXQgc2hvdWxkIGJlIGRpc2FwcHJvdmVkLgA0IyMgQ29tcGxleGl0eaxPKFApIHdoZXJlIFAgaXMgdGhlIG51bWJlciBvZiBtYXggcHJvcG9zYWxzFGNsb3NlEAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARRpbmRleFQBNFByb3Bvc2FsSW5kZXgAAVRwcm9wb3NhbF93ZWlnaHRfYm91bmRxAQEYV2VpZ2h0AAEwbGVuZ3RoX2JvdW5kVAEMdTMyAAZgTQFDbG9zZSBhIHZvdGUgdGhhdCBpcyBlaXRoZXIgYXBwcm92ZWQsIGRpc2FwcHJvdmVkIG9yIHdob3NlIHZvdGluZyBwZXJpb2QgaGFzIGVuZGVkLgBVAU1heSBiZSBjYWxsZWQgYnkgYW55IHNpZ25lZCBhY2NvdW50IGluIG9yZGVyIHRvIGZpbmlzaCB2b3RpbmcgYW5kIGNsb3NlIHRoZSBwcm9wb3NhbC4ASQFJZiBjYWxsZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgaXQgd2lsbCBvbmx5IGNsb3NlIHRoZSB2b3RlIGlmIGl0IGlzvGhhcyBlbm91Z2ggdm90ZXMgdG8gYmUgYXBwcm92ZWQgb3IgZGlzYXBwcm92ZWQuAEkBSWYgY2FsbGVkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgYWJzdGVudGlvbnMgYXJlIGNvdW50ZWQgYXMgcmVqZWN0aW9ucyUBdW5sZXNzIHRoZXJlIGlzIGEgcHJpbWUgbWVtYmVyIHNldCBhbmQgdGhlIHByaW1lIG1lbWJlciBjYXN0IGFuIGFwcHJvdmFsLgBhAUlmIHRoZSBjbG9zZSBvcGVyYXRpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSB3aXRoIGRpc2FwcHJvdmFsLCB0aGUgdHJhbnNhY3Rpb24gZmVlIHdpbGxdAWJlIHdhaXZlZC4gT3RoZXJ3aXNlIGV4ZWN1dGlvbiBvZiB0aGUgYXBwcm92ZWQgb3BlcmF0aW9uIHdpbGwgYmUgY2hhcmdlZCB0byB0aGUgY2FsbGVyLgBhASsgYHByb3Bvc2FsX3dlaWdodF9ib3VuZGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgY29uc3VtZWQgYnkgZXhlY3V0aW5nIHRoZSBjbG9zZWQkcHJvcG9zYWwuYQErIGBsZW5ndGhfYm91bmRgOiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHByb3Bvc2FsIGluIHN0b3JhZ2UuIENoZWNrZWQgdmlhNQFgc3RvcmFnZTo6cmVhZGAgc28gaXQgaXMgYHNpemVfb2Y6Ojx1MzI+KCkgPT0gNGAgbGFyZ2VyIHRoYW4gdGhlIHB1cmUgbGVuZ3RoLgA0IyMgQ29tcGxleGl0eXQtIGBPKEIgKyBNICsgUDEgKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpyCAgLSBgUDFgIGlzIHRoZSBjb21wbGV4aXR5IG9mIGBwcm9wb3NhbGAgcHJlaW1hZ2UupCAgLSBgUDJgIGlzIHByb3Bvc2FsLWNvdW50IChjb2RlLWJvdW5kZWQpEGtpbGwEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAHHCUBRGlzYXBwcm92ZSB0aGUgcHJvcG9zYWwgYW5kIGJ1cm4gdGhlIGNvc3QgaGVsZCBmb3Igc3RvcmluZyB0aGlzIHByb3Bvc2FsLgAsUGFyYW1ldGVyczqULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLgkBLSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCB0aGF0IHNob3VsZCBiZSBraWxsZWQuAEkBRW1pdHMgYEtpbGxlZGAgYW5kIGBQcm9wb3NhbENvc3RCdXJuZWRgIGlmIGFueSBjb3N0IHdhcyBoZWxkIGZvciBhIGdpdmVuIHByb3Bvc2FsLlRyZWxlYXNlX3Byb3Bvc2FsX2Nvc3QEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAIJEkBUmVsZWFzZSB0aGUgY29zdCBoZWxkIGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgb25jZSB0aGUgZ2l2ZW4gcHJvcG9zYWwgaXMgY29tcGxldGVkLgBVAUlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29zdCBmb3IgdGhlIGdpdmVuIHByb3Bvc2FsLCB0aGlzIGNhbGwgd2lsbCBoYXZlIG5vIGVmZmVjdC4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLrAtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsLgANAUVtaXRzIGBQcm9wb3NhbENvc3RSZWxlYXNlZGAgaWYgYW55IGNvc3QgaGVsZCBmb3IgYSBnaXZlbiBwcm9wb3NhbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuIQMMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQQQ2FsbAgEVAAESQABGCxzcGVuZF9sb2NhbAgBGGFtb3VudLgBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AA0S4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAEUBTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3QgYGFtb3VudGAuACwjIyMgRGV0YWlsc0UBTk9URTogRm9yIHJlY29yZC1rZWVwaW5nIHB1cnBvc2VzLCB0aGUgcHJvcG9zZXIgaXMgZGVlbWVkIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhlMGJlbmVmaWNpYXJ5LgA4IyMjIFBhcmFtZXRlcnNBAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAu6C0gYGJlbmVmaWNpYXJ5YDogVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSB0cmFuc2Zlci4AJCMjIEV2ZW50cwC0RW1pdHMgW2BFdmVudDo6U3BlbmRBcHByb3ZlZGBdIGlmIHN1Y2Nlc3NmdWwuPHJlbW92ZV9hcHByb3ZhbAQBLHByb3Bvc2FsX2lkVAE0UHJvcG9zYWxJbmRleAAEVC0BRm9yY2UgYSBwcmV2aW91c2x5IGFwcHJvdmVkIHByb3Bvc2FsIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgYXBwcm92YWwgcXVldWUuAEgjIyBEaXNwYXRjaCBPcmlnaW4AhE11c3QgYmUgW2BDb25maWc6OlJlamVjdE9yaWdpbmBdLgAoIyMgRGV0YWlscwDAVGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBubyBsb25nZXIgYmUgcmV0dXJuZWQuADgjIyMgUGFyYW1ldGVyc6AtIGBwcm9wb3NhbF9pZGA6IFRoZSBpbmRleCBvZiBhIHByb3Bvc2FsADgjIyMgQ29tcGxleGl0eawtIE8oQSkgd2hlcmUgYEFgIGlzIHRoZSBudW1iZXIgb2YgYXBwcm92YWxzACgjIyMgRXJyb3JzRQEtIFtgRXJyb3I6OlByb3Bvc2FsTm90QXBwcm92ZWRgXTogVGhlIGBwcm9wb3NhbF9pZGAgc3VwcGxpZWQgd2FzIG5vdCBmb3VuZCBpbiB0aGVRASAgYXBwcm92YWwgcXVldWUsIGkuZS4sIHRoZSBwcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuIFRoaXMgY291bGQgYWxzbyBtZWFuIHRoZVkBICBwcm9wb3NhbCBkb2VzIG5vdCBleGlzdCBhbHRvZ2V0aGVyLCB0aHVzIHRoZXJlIGlzIG5vIHdheSBpdCB3b3VsZCBoYXZlIGJlZW4gYXBwcm92ZWRUICBpbiB0aGUgZmlyc3QgcGxhY2UuFHNwZW5kEAEoYXNzZXRfa2luZCUDAURCb3g8VDo6QXNzZXRLaW5kPgABGGFtb3VudLgBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAXhCb3g8QmVuZWZpY2lhcnlMb29rdXBPZjxULCBJPj4AASh2YWxpZF9mcm9tXQIBcE9wdGlvbjxCbG9ja051bWJlckZvcjxULCBJPj4ABWi4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAB0BTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3RVAWBhbW91bnRgIG9mIGBhc3NldF9raW5kYCBpbiB0aGUgbmF0aXZlIGFzc2V0LiBUaGUgYW1vdW50IG9mIGBhc3NldF9raW5kYCBpcyBjb252ZXJ0ZWTUZm9yIGFzc2VydGlvbiB1c2luZyB0aGUgW2BDb25maWc6OkJhbGFuY2VDb252ZXJ0ZXJgXS4AKCMjIERldGFpbHMASQFDcmVhdGUgYW4gYXBwcm92ZWQgc3BlbmQgZm9yIHRyYW5zZmVycmluZyBhIHNwZWNpZmljIGBhbW91bnRgIG9mIGBhc3NldF9raW5kYCB0byBhYQFkZXNpZ25hdGVkIGJlbmVmaWNpYXJ5LiBUaGUgc3BlbmQgbXVzdCBiZSBjbGFpbWVkIHVzaW5nIHRoZSBgcGF5b3V0YCBkaXNwYXRjaGFibGUgd2l0aGludHRoZSBbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0uADgjIyMgUGFyYW1ldGVycxUBLSBgYXNzZXRfa2luZGA6IEFuIGluZGljYXRvciBvZiB0aGUgc3BlY2lmaWMgYXNzZXQgY2xhc3MgdG8gYmUgc3BlbnQuQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLrgtIGBiZW5lZmljaWFyeWA6IFRoZSBiZW5lZmljaWFyeSBvZiB0aGUgc3BlbmQuVQEtIGB2YWxpZF9mcm9tYDogVGhlIGJsb2NrIG51bWJlciBmcm9tIHdoaWNoIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZC4gSXQgY2FuIHJlZmVyIHRvGQEgIHRoZSBwYXN0IGlmIHRoZSByZXN1bHRpbmcgc3BlbmQgaGFzIG5vdCB5ZXQgZXhwaXJlZCBhY2NvcmRpbmcgdG8gdGhlRQEgIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4gSWYgYE5vbmVgLCB0aGUgc3BlbmQgY2FuIGJlIGNsYWltZWQgaW1tZWRpYXRlbHkgYWZ0ZXIsICBhcHByb3ZhbC4AJCMjIEV2ZW50cwDIRW1pdHMgW2BFdmVudDo6QXNzZXRTcGVuZEFwcHJvdmVkYF0gaWYgc3VjY2Vzc2Z1bC4YcGF5b3V0BAEUaW5kZXgoAShTcGVuZEluZGV4AAZMOENsYWltIGEgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AOE11c3QgYmUgc2lnbmVkACgjIyBEZXRhaWxzAFUBU3BlbmRzIG11c3QgYmUgY2xhaW1lZCB3aXRoaW4gc29tZSB0ZW1wb3JhbCBib3VuZHMuIEEgc3BlbmQgbWF5IGJlIGNsYWltZWQgd2l0aGluIG9uZdRbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0gZnJvbSB0aGUgYHZhbGlkX2Zyb21gIGJsb2NrLlUBSW4gY2FzZSBvZiBhIHBheW91dCBmYWlsdXJlLCB0aGUgc3BlbmQgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZSBgY2hlY2tfc3RhdHVzYNxkaXNwYXRjaGFibGUgYmVmb3JlIHJldHJ5aW5nIHdpdGggdGhlIGN1cnJlbnQgZnVuY3Rpb24uADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwCQRW1pdHMgW2BFdmVudDo6UGFpZGBdIGlmIHN1Y2Nlc3NmdWwuMGNoZWNrX3N0YXR1cwQBFGluZGV4KAEoU3BlbmRJbmRleAAHTCkBQ2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgc3BlbmQgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzdG9yYWdlIGlmIHByb2Nlc3NlZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAAEBVGhlIHN0YXR1cyBjaGVjayBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgcmV0cnlpbmcgYSBmYWlsZWQgcGF5b3V0LkkBSWYgYSBzcGVuZCBoYXMgZWl0aGVyIHN1Y2NlZWRlZCBvciBleHBpcmVkLCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UgYnkgdGhpc+xmdW5jdGlvbi4gSW4gc3VjaCBpbnN0YW5jZXMsIHRyYW5zYWN0aW9uIGZlZXMgYXJlIHJlZnVuZGVkLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMA+EVtaXRzIFtgRXZlbnQ6OlBheW1lbnRGYWlsZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBmYWlsZWQuAQFFbWl0cyBbYEV2ZW50OjpTcGVuZFByb2Nlc3NlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIHN1Y2NlZWQuKHZvaWRfc3BlbmQEARRpbmRleCgBKFNwZW5kSW5kZXgACEB8Vm9pZCBwcmV2aW91c2x5IGFwcHJvdmVkIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAHQFBIHNwZW5kIHZvaWQgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcGF5b3V0IGhhcyBub3QgYmVlbiBhdHRlbXB0ZWQgeWV0LgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAwEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRWb2lkZWRgXSBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4lAxg0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zIGZ1bmdpYmxlIHVuaW9uX29mOE5hdGl2ZU9yV2l0aElkBBxBc3NldElkAbwBCBhOYXRpdmUAAAAYV2l0aElkBAC8ARxBc3NldElkAAEAACkDDGBwYWxsZXRfY3Jvd2Rsb2FuX3Jld2FyZHMYcGFsbGV0EENhbGwEBFQAARRkYXNzb2NpYXRlX25hdGl2ZV9pZGVudGl0eQwBOHJld2FyZF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAE0cmVsYXlfYWNjb3VudDABWFQ6OlJlbGF5Q2hhaW5BY2NvdW50SWQAARRwcm9vZi0DAThNdWx0aVNpZ25hdHVyZQAAFDkBQXNzb2NpYXRlIGEgbmF0aXZlIHJld2FyZHNfZGVzdGluYXRpb24gaWRlbnRpdHkgd2l0aCBhIGNyb3dkbG9hbiBjb250cmlidXRpb24uAEUBVGhlIGNhbGxlciBuZWVkcyB0byBwcm92aWRlIHRoZSB1bmFzc29jaWF0ZWQgcmVsYXkgYWNjb3VudCBhbmQgYSBwcm9vZiB0byBzdWNjZWVkUHdpdGggdGhlIGFzc29jaWF0aW9uRQFUaGUgcHJvb2YgaXMgbm90aGluZyBidXQgYSBzaWduYXR1cmUgb3ZlciB0aGUgcmV3YXJkX2FkZHJlc3MgdXNpbmcgdGhlIHJlbGF5IGtleXOIY2hhbmdlX2Fzc29jaWF0aW9uX3dpdGhfcmVsYXlfa2V5cwwBOHJld2FyZF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAFAcHJldmlvdXNfYWNjb3VudAABMFQ6OkFjY291bnRJZAABGHByb29mczUDAbRWZWM8KFQ6OlJlbGF5Q2hhaW5BY2NvdW50SWQsIE11bHRpU2lnbmF0dXJlKT4AART4Q2hhbmdlIHJld2FyZCBhY2NvdW50IGJ5IHN1Ym1pdHRpbmcgcHJvb2ZzIGZyb20gcmVsYXkgYWNjb3VudHMAUQFUaGUgbnVtYmVyIG9mIHZhbGlkIHByb29mcyBuZWVkcyB0byBiZSBiaWdnZXIgdGhhbiAnUmV3YXJkQWRkcmVzc1JlbGF5Vm90ZVRocmVzaG9sZCcVAVRoZSBhY2NvdW50IHRvIGJlIGNoYW5nZWQgbmVlZHMgdG8gYmUgc3VibWl0dGVkIGFzICdwcmV2aW91c19hY2NvdW50J6BPcmlnaW4gbXVzdCBiZSBSZXdhcmRBZGRyZXNzQ2hhbmdlT3JpZ2luFGNsYWltAAIE9ENvbGxlY3Qgd2hhdGV2ZXIgcG9ydGlvbiBvZiB5b3VyIHJld2FyZCBhcmUgY3VycmVudGx5IHZlc3RlZC5UdXBkYXRlX3Jld2FyZF9hZGRyZXNzBAFIbmV3X3Jld2FyZF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAMEKQFVcGRhdGUgcmV3YXJkIGFkZHJlc3MsIHByb3ZpbmcgdGhhdCB0aGUgY2FsbGVyIG93bnMgdGhlIGN1cnJlbnQgbmF0aXZlIGtleWhjb21wbGV0ZV91bmNsYWltZWRfcmV3YXJkcwQBGHRhcmdldAABMFQ6OkFjY291bnRJZAAEFD0BUGVybWlzc2lvbmxlc3Mgc2V0dGxlLWFuZC1kcmFpbiBvZiBhbnkgcmVtYWluaW5nIHVuY2xhaW1lZCByZXdhcmQgZm9yIGB0YXJnZXRgLgBNAVBheXMgdGhlIGZ1bGwgb3V0c3RhbmRpbmcgYHRvdGFsX3Jld2FyZCAtIGNsYWltZWRfcmV3YXJkYCByZWdhcmRsZXNzIG9mIHRoZSB2ZXN0aW5nRQFzY2hlZHVsZSwgdHJhbnNmZXJzIGl0IHRvIGB0YXJnZXRgLCBhbmQgcmVtb3ZlcyB0aGUgZW50cnkgZnJvbSBgQWNjb3VudHNQYXlhYmxlYC4NAUludGVuZGVkIGFzIGEgb25lLXNob3QgbWlncmF0aW9uIHN0ZXAgYmVmb3JlIHRoZSBwYWxsZXQgaXMgcmVtb3ZlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuLQMIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAARAcRWQyNTUxOQQAMQMBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BAAxAwFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBAAtAgFAZWNkc2E6OlNpZ25hdHVyZQACAAxFdGgEAC0CAVhlY2RzYTo6S2VjY2FrU2lnbmF0dXJlAAMAADEDAAADQAAAAAgANQMAAAI5AwA5AwAABAgwLQMAPQMMKHBhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAUQQc2VuZAgBEGRlc3RBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2WNAwFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAAPHRlbGVwb3J0X2Fzc2V0cxABEGRlc3RBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5QQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPFBAFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbSgBDHUzMgABSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AHQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzEAEQZGVzdEEDAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c8UEAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtKAEMdTMyAAJ4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4APQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy4cZXhlY3V0ZQgBHG1lc3NhZ2XJBAG0Qm94PFZlcnNpb25lZFhjbTw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4+AAEobWF4X3dlaWdodHEBARhXZWlnaHQAAyDQRXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSBmcm9tIGEgbG9jYWwsIHNpZ25lZCwgb3JpZ2luLgBNAUFuIGV2ZW50IGlzIGRlcG9zaXRlZCBpbmRpY2F0aW5nIHdoZXRoZXIgYG1zZ2AgY291bGQgYmUgZXhlY3V0ZWQgY29tcGxldGVseSBvciBvbmx5KHBhcnRpYWxseS4AXQFObyBtb3JlIHRoYW4gYG1heF93ZWlnaHRgIHdpbGwgYmUgdXNlZCBpbiBpdHMgYXR0ZW1wdGVkIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBsZXNzIHRoYW5BAXRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgdGhhdCB0aGUgbWVzc2FnZSBjb3VsZCB0YWtlIHRvIGJlIGV4ZWN1dGVkLCB0aGVuIG5vfGV4ZWN1dGlvbiBhdHRlbXB0IHdpbGwgYmUgbWFkZS5EZm9yY2VfeGNtX3ZlcnNpb24IASBsb2NhdGlvbjEBATRCb3g8TG9jYXRpb24+AAEcdmVyc2lvbigBKFhjbVZlcnNpb24ABBhJAUV4dG9sbCB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBjYW4gYmUgY29tbXVuaWNhdGVkIHdpdGggdGhyb3VnaCBhIHBhcnRpY3VsYXI8dmVyc2lvbiBvZiBYQ00uANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u2C0gYGxvY2F0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLhEBLSBgeGNtX3ZlcnNpb25gOiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgWENNIHRoYXQgYGxvY2F0aW9uYCBzdXBwb3J0cy5kZm9yY2VfZGVmYXVsdF94Y21fdmVyc2lvbgQBRG1heWJlX3hjbV92ZXJzaW9uXQIBSE9wdGlvbjxYY21WZXJzaW9uPgAFFFkBU2V0IGEgc2FmZSBYQ00gdmVyc2lvbiAodGhlIHZlcnNpb24gdGhhdCBYQ00gc2hvdWxkIGJlIGVuY29kZWQgd2l0aCBpZiB0aGUgbW9zdCByZWNlbnS0dmVyc2lvbiBhIGRlc3RpbmF0aW9uIGNhbiBhY2NlcHQgaXMgdW5rbm93bikuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uOQEtIGBtYXliZV94Y21fdmVyc2lvbmA6IFRoZSBkZWZhdWx0IFhDTSBlbmNvZGluZyB2ZXJzaW9uLCBvciBgTm9uZWAgdG8gZGlzYWJsZS54Zm9yY2Vfc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb25BAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAGEDkBQXNrIGEgbG9jYXRpb24gdG8gbm90aWZ5IHVzIHJlZ2FyZGluZyB0aGVpciBYQ00gdmVyc2lvbiBhbmQgYW55IGNoYW5nZXMgdG8gaXQuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uWQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBzaG91bGQgc3Vic2NyaWJlIGZvciBYQ00gdmVyc2lvbiBub3RpZmljYXRpb25zLoBmb3JjZV91bnN1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9uQQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABxhJAVJlcXVpcmUgdGhhdCBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gc2hvdWxkIG5vIGxvbmdlciBub3RpZnkgdXMgcmVnYXJkaW5nIGFueSBYQ01AdmVyc2lvbiBjaGFuZ2VzLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLj0BLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2UgYXJlIGN1cnJlbnRseSBzdWJzY3JpYmVkIGZvciBYQ00gdmVyc2lvbqggIG5vdGlmaWNhdGlvbnMgd2hpY2ggd2Ugbm8gbG9uZ2VyIGRlc2lyZS58bGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0cxQBEGRlc3RBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5QQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPFBAFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbSgBDHUzMgABMHdlaWdodF9saW1pdPkDASxXZWlnaHRMaW1pdAAIeF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWwseGRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLgA9AWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gYW5kIG1heSBub3QgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC5NASAtIGBhc3NldHNgIGhhdmUgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5VASAtIGBhc3NldHNgIGhhdmUgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLmEBIC0gYGFzc2V0c2AgaGF2ZSByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZWEBICAgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YPQgICB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLlxsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0cxQBEGRlc3RBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5QQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPFBAFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbSgBDHUzMgABMHdlaWdodF9saW1pdPkDASxXZWlnaHRMaW1pdAAJSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZWggIGZlZSBvbiB0aGUgYGRlc3RgIGNoYWluLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuQGZvcmNlX3N1c3BlbnNpb24EASRzdXNwZW5kZWTAARBib29sAAoQ9FNldCBvciB1bnNldCB0aGUgZ2xvYmFsIHN1c3BlbnNpb24gc3RhdGUgb2YgdGhlIFhDTSBleGVjdXRvci4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7QLSBgc3VzcGVuZGVkYDogYHRydWVgIHRvIHN1c3BlbmQsIGBmYWxzZWAgdG8gcmVzdW1lLjx0cmFuc2Zlcl9hc3NldHMUARBkZXN0QQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeUEDAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzxQQBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAATB3ZWlnaHRfbGltaXT5AwEsV2VpZ2h0TGltaXQAC4RdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLNBkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZSwgb3IgdGhyb3VnaCB0ZWxlcG9ydHMuAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mNQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gIChoZW5jZSByZWZlcnJlZCB0byBhcyBgZmVlc2ApLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvckEBYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodCBpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGXcb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgBhAWBhc3NldHNgIChleGNsdWRpbmcgYGZlZXNgKSBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG90aGVyd2lzZSBiZSB0ZWxlcG9ydGFibGWwdG8gYGRlc3RgLCBubyBsaW1pdGF0aW9ucyBpbXBvc2VkIG9uIGBmZWVzYC5NASAtIGZvciBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb24gY2hhaW4gYW5kTQEgICBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0b0QgICBgYmVuZWZpY2lhcnlgLmEBIC0gZm9yIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvIGBkZXN0YCBjaGFpblkBICAgdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZCBkZXBvc2l0IHRoZW1QICAgdG8gYGJlbmVmaWNpYXJ5YC5dASAtIGZvciByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZSByZXNlcnZlc10BICAgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YCB0byBtaW501CAgIGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuUQEgLSBmb3IgdGVsZXBvcnRzOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBYQ00gdG8gYGRlc3RgIGNoYWluIHRvIG1pbnQvdGVsZXBvcnSwICAgYXNzZXRzIGFuZCBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLi0BLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBYMihQYXJlbnQsVQEgIFBhcmFjaGFpbiguLikpYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFgxKFBhcmFjaGFpbiguLikpYCB0byBzZW5kaCAgZnJvbSByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuMGNsYWltX2Fzc2V0cwgBGGFzc2V0c8UEAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABLGJlbmVmaWNpYXJ5QQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ADBhVAUNsYWltcyBhc3NldHMgdHJhcHBlZCBvbiB0aGlzIHBhbGxldCBiZWNhdXNlIG9mIGxlZnRvdmVyIGFzc2V0cyBkdXJpbmcgWENNIGV4ZWN1dGlvbi4ArC0gYG9yaWdpbmA6IEFueW9uZSBjYW4gY2FsbCB0aGlzIGV4dHJpbnNpYy5dAS0gYGFzc2V0c2A6IFRoZSBleGFjdCBhc3NldHMgdGhhdCB3ZXJlIHRyYXBwZWQuIFVzZSB0aGUgdmVyc2lvbiB0byBzcGVjaWZ5IHdoYXQgdmVyc2lvbph3YXMgdGhlIGxhdGVzdCB3aGVuIHRoZXkgd2VyZSB0cmFwcGVkLkUBLSBgYmVuZWZpY2lhcnlgOiBUaGUgbG9jYXRpb24vYWNjb3VudCB3aGVyZSB0aGUgY2xhaW1lZCBhc3NldHMgd2lsbCBiZSBkZXBvc2l0ZWQujHRyYW5zZmVyX2Fzc2V0c191c2luZ190eXBlX2FuZF90aGVuHAEQZGVzdEEDAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzxQQBUEJveDxWZXJzaW9uZWRBc3NldHM+AAFQYXNzZXRzX3RyYW5zZmVyX3R5cGX1BAFEQm94PFRyYW5zZmVyVHlwZT4AAThyZW1vdGVfZmVlc19pZPkEAVRCb3g8VmVyc2lvbmVkQXNzZXRJZD4AAUhmZWVzX3RyYW5zZmVyX3R5cGX1BAFEQm94PFRyYW5zZmVyVHlwZT4AAUhjdXN0b21feGNtX29uX2Rlc3SNAwFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAEwd2VpZ2h0X2xpbWl0+QMBLFdlaWdodExpbWl0AA3AVQFUcmFuc2ZlciBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHVzaW5nIGV4cGxpY2l0IHRyYW5zZmVyaHR5cGVzIGZvciBhc3NldHMgYW5kIGZlZXMuAFkBYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBvciBtYXkgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC4gQ2FsbGVyIG11c3TscHJvdmlkZSB0aGUgYGFzc2V0c190cmFuc2Zlcl90eXBlYCB0byBiZSB1c2VkIGZvciBgYXNzZXRzYDpRASAtIGBUcmFuc2ZlclR5cGU6OkxvY2FsUmVzZXJ2ZWA6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuWQEgLSBgVHJhbnNmZXJUeXBlOjpEZXN0aW5hdGlvblJlc2VydmVgOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuWQEgLSBgVHJhbnNmZXJUeXBlOjpSZW1vdGVSZXNlcnZlKHJlc2VydmUpYDogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIGByZXNlcnZlYGEBICAgY2hhaW4gdG8gbW92ZSByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlclUBICAgWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuIFR5cGljYWxseZQgICB0aGUgcmVtb3RlIGByZXNlcnZlYCBpcyBBc3NldCBIdWIuRQEgLSBgVHJhbnNmZXJUeXBlOjpUZWxlcG9ydGA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG/oICAgbWludC90ZWxlcG9ydCBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgBVAU9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiwgYXMgd2VsbCBhcyBhbnkgaW50ZXJtZWRpYXJ5IGhvcHMsIGBCdXlFeGVjdXRpb25gIGlzIHVzZWQgdG8hAWJ1eSBleGVjdXRpb24gdXNpbmcgdHJhbnNmZXJyZWQgYGFzc2V0c2AgaWRlbnRpZmllZCBieSBgcmVtb3RlX2ZlZXNfaWRgLlkBTWFrZSBzdXJlIGVub3VnaCBvZiB0aGUgc3BlY2lmaWVkIGByZW1vdGVfZmVlc19pZGAgYXNzZXQgaXMgaW5jbHVkZWQgaW4gdGhlIGdpdmVuIGxpc3RhAW9mIGBhc3NldHNgLiBgcmVtb3RlX2ZlZXNfaWRgIHNob3VsZCBiZSBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAEUBYHJlbW90ZV9mZWVzX2lkYCBtYXkgdXNlIGRpZmZlcmVudCB0cmFuc2ZlciB0eXBlIHRoYW4gcmVzdCBvZiBgYXNzZXRzYCBhbmQgY2FuIGJlnHNwZWNpZmllZCB0aHJvdWdoIGBmZWVzX3RyYW5zZmVyX3R5cGVgLgBhAVRoZSBjYWxsZXIgbmVlZHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBoYXBwZW4gdG8gdGhlIHRyYW5zZmVycmVkIGFzc2V0cyBvbmNlIHRoZXkgcmVhY2hBAXRoZSBgZGVzdGAgY2hhaW4uIFRoaXMgaXMgZG9uZSB0aHJvdWdoIHRoZSBgY3VzdG9tX3hjbV9vbl9kZXN0YCBwYXJhbWV0ZXIsIHdoaWNo/GNvbnRhaW5zIHRoZSBpbnN0cnVjdGlvbnMgdG8gZXhlY3V0ZSBvbiBgZGVzdGAgYXMgYSBmaW5hbCBzdGVwLnwgIFRoaXMgaXMgdXN1YWxseSBhcyBzaW1wbGUgYXM6UQEgIGBYY20odmVjIVtEZXBvc2l0QXNzZXQgeyBhc3NldHM6IFdpbGQoQWxsQ291bnRlZChhc3NldHMubGVuKCkpKSwgYmVuZWZpY2lhcnkgfV0pYCwxASAgYnV0IGNvdWxkIGJlIHNvbWV0aGluZyBtb3JlIGV4b3RpYyBsaWtlIHNlbmRpbmcgdGhlIGBhc3NldHNgIGV2ZW4gZnVydGhlci4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbT0BICByZWxheSB0byBwYXJhY2hhaW4sIG9yIGAocGFyZW50czogMiwgKEdsb2JhbENvbnNlbnN1cyguLiksIC4uKSlgIHRvIHNlbmQgZnJvbfQgIHBhcmFjaGFpbiBhY3Jvc3MgYSBicmlkZ2UgdG8gYW5vdGhlciBlY29zeXN0ZW0gZGVzdGluYXRpb24uWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLj0BLSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgOiBUaGUgWENNIGBUcmFuc2ZlclR5cGVgIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGBhc3NldHNgLiEBLSBgcmVtb3RlX2ZlZXNfaWRgOiBPbmUgb2YgdGhlIGluY2x1ZGVkIGBhc3NldHNgIHRvIGJlIHVzZWQgdG8gcGF5IGZlZXMuSQEtIGBmZWVzX3RyYW5zZmVyX3R5cGVgOiBUaGUgWENNIGBUcmFuc2ZlclR5cGVgIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGBmZWVzYCBhc3NldHMuWQEtIGBjdXN0b21feGNtX29uX2Rlc3RgOiBUaGUgWENNIHRvIGJlIGV4ZWN1dGVkIG9uIGBkZXN0YCBjaGFpbiBhcyB0aGUgbGFzdCBzdGVwIG9mIHRoZVkBICB0cmFuc2Zlciwgd2hpY2ggYWxzbyBkZXRlcm1pbmVzIHdoYXQgaGFwcGVucyB0byB0aGUgYXNzZXRzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLlBhZGRfYXV0aG9yaXplZF9hbGlhcwgBHGFsaWFzZXJBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHGV4cGlyZXP9BAEsT3B0aW9uPHU2ND4ADixdAUF1dGhvcml6ZSBhbm90aGVyIGBhbGlhc2VyYCBsb2NhdGlvbiB0byBhbGlhcyBpbnRvIHRoZSBsb2NhbCBgb3JpZ2luYCBtYWtpbmcgdGhpcyBjYWxsLikBVGhlIGBhbGlhc2VyYCBpcyBvbmx5IGF1dGhvcml6ZWQgdW50aWwgdGhlIHByb3ZpZGVkIGBleHBpcnlgIGJsb2NrIG51bWJlci5JAVRoZSBjYWxsIGNhbiBhbHNvIGJlIHVzZWQgZm9yIGEgcHJldmlvdXNseSBhdXRob3JpemVkIGFsaWFzIGluIG9yZGVyIHRvIHVwZGF0ZSBpdHNYYGV4cGlyeWAgYmxvY2sgbnVtYmVyLgBRAVVzdWFsbHkgdXNlZnVsIHRvIGFsbG93IHlvdXIgbG9jYWwgYWNjb3VudCB0byBiZSBhbGlhc2VkIGludG8gZnJvbSBhIHJlbW90ZSBsb2NhdGlvbvRhbHNvIHVuZGVyIHlvdXIgY29udHJvbCAobGlrZSB5b3VyIGFjY291bnQgb24gYW5vdGhlciBjaGFpbikuAFEBV0FSTklORzogbWFrZSBzdXJlIHRoZSBjYWxsZXIgYG9yaWdpbmAgKHlvdSkgdHJ1c3RzIHRoZSBgYWxpYXNlcmAgbG9jYXRpb24gdG8gYWN0IGluWQF0aGVpci95b3VyIG5hbWUuIE9uY2UgYXV0aG9yaXplZCB1c2luZyB0aGlzIGNhbGwsIHRoZSBgYWxpYXNlcmAgY2FuIGZyZWVseSBpbXBlcnNvbmF0ZdRgb3JpZ2luYCBpbiBYQ00gcHJvZ3JhbXMgZXhlY3V0ZWQgb24gdGhlIGxvY2FsIGNoYWluLlxyZW1vdmVfYXV0aG9yaXplZF9hbGlhcwQBHGFsaWFzZXJBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAPCF0BUmVtb3ZlIGEgcHJldmlvdXNseSBhdXRob3JpemVkIGBhbGlhc2VyYCBmcm9tIHRoZSBsaXN0IG9mIGxvY2F0aW9ucyB0aGF0IGNhbiBhbGlhcyBpbnRvkHRoZSBsb2NhbCBgb3JpZ2luYCBtYWtpbmcgdGhpcyBjYWxsLnRyZW1vdmVfYWxsX2F1dGhvcml6ZWRfYWxpYXNlcwAQCEkBUmVtb3ZlIGFsbCBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYGFsaWFzZXJgcyB0aGF0IGNhbiBhbGlhcyBpbnRvIHRoZSBsb2NhbCBgb3JpZ2luYERtYWtpbmcgdGhpcyBjYWxsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5BAwgMeGNtRFZlcnNpb25lZExvY2F0aW9uAAEMCFYzBABFAwFEdjM6Ok11bHRpTG9jYXRpb24AAwAIVjQEAFkDATB2NDo6TG9jYXRpb24ABAAIVjUEADEBATB2NTo6TG9jYXRpb24ABQAARQMQLHN0YWdpbmdfeGNtCHYzNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3JJAwEkSnVuY3Rpb25zAABJAxAMeGNtCHYzJGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQATQMBIEp1bmN0aW9uAAEACFgyCABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgACAAhYMwwATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgADAAhYNBAATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAAQACFg1FABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAFAAhYNhgATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAGAAhYNxwATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAAcACFg4IABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAATQMBIEp1bmN0aW9uAABNAwEgSnVuY3Rpb24AAE0DASBKdW5jdGlvbgAIAABNAxAMeGNtCHYzIGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAVAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya1EDAURPcHRpb248TmV0d29ya0lkPgABCGlkMAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JrUQMBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXioAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya1EDAURPcHRpb248TmV0d29ya0lkPgABDGtleQQBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEALgBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YTABIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZEkBARhCb2R5SWQAARBwYXJ0TQEBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAVQMBJE5ldHdvcmtJZAAJAABRAwQYT3B0aW9uBARUAVUDAQgQTm9uZQAAABBTb21lBABVAwAAAQAAVQMQDHhjbQh2MyBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAwASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIYAQx1NjQAAShibG9ja19oYXNoMAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lkqAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAWQMQLHN0YWdpbmdfeGNtCHY0IGxvY2F0aW9uIExvY2F0aW9uAAAIARxwYXJlbnRzCAEIdTgAASBpbnRlcmlvcl0DASRKdW5jdGlvbnMAAF0DECxzdGFnaW5nX3hjbQh2NCRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAGEDAUhBcmM8W0p1bmN0aW9uOyAxXT4AAQAIWDIEAHEDAUhBcmM8W0p1bmN0aW9uOyAyXT4AAgAIWDMEAHUDAUhBcmM8W0p1bmN0aW9uOyAzXT4AAwAIWDQEAHkDAUhBcmM8W0p1bmN0aW9uOyA0XT4ABAAIWDUEAH0DAUhBcmM8W0p1bmN0aW9uOyA1XT4ABQAIWDYEAIEDAUhBcmM8W0p1bmN0aW9uOyA2XT4ABgAIWDcEAIUDAUhBcmM8W0p1bmN0aW9uOyA3XT4ABwAIWDgEAIkDAUhBcmM8W0p1bmN0aW9uOyA4XT4ACAAAYQMAAAMBAAAAZQMAZQMQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAVAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya2kDAURPcHRpb248TmV0d29ya0lkPgABCGlkMAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JraQMBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXioAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya2kDAURPcHRpb248TmV0d29ya0lkPgABDGtleQQBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEALgBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YTABIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZEkBARhCb2R5SWQAARBwYXJ0TQEBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAbQMBJE5ldHdvcmtJZAAJAABpAwQYT3B0aW9uBARUAW0DAQgQTm9uZQAAABBTb21lBABtAwAAAQAAbQMQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEADABIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlchgBDHU2NAABKGJsb2NrX2hhc2gwASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWSoAQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAABxAwAAAwIAAABlAwB1AwAAAwMAAABlAwB5AwAAAwQAAABlAwB9AwAAAwUAAABlAwCBAwAAAwYAAABlAwCFAwAAAwcAAABlAwCJAwAAAwgAAABlAwCNAwgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAJEDAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQA/QMBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BABJBAFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAAkQMMDHhjbQh2MwxYY20EEENhbGwAAAQAlQMBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAJUDAAACmQMAmQMMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BACdAwEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBACdAwEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAnQMBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZKgBHFF1ZXJ5SWQAASByZXNwb25zZbUDASBSZXNwb25zZQABKG1heF93ZWlnaHRxAQEYV2VpZ2h0AAEccXVlcmllct0DAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c50DASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5RQMBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHOdAwEsTXVsdGlBc3NldHMAARBkZXN0RQMBNE11bHRpTG9jYXRpb24AAQx4Y22RAwEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k4QMBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0cQEBGFdlaWdodAABEGNhbGzlAwFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyVAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZVQBDHUzMgABMG1heF9jYXBhY2l0eVQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50VAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvclQBDHUzMgABGHNlbmRlclQBDHUzMgABJHJlY2lwaWVudFQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABJAwFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBADpAwFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRz7QMBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeUUDATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPtAwFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RFAwE0TXVsdGlMb2NhdGlvbgABDHhjbZEDARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZl7QMBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50nQMBLE11bHRpQXNzZXRzAAEcbWF4aW1hbMABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPtAwFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmVFAwE0TXVsdGlMb2NhdGlvbgABDHhjbZEDARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPtAwFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RFAwE0TXVsdGlMb2NhdGlvbgABDHhjbZEDARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv6QMBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRz7QMBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc6UDAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0+QMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACRAwEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACRAwEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c50DASxNdWx0aUFzc2V0cwABGHRpY2tldEUDATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEAKgBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWSoARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodHEBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAnQMBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BACdAwEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADdAwFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAC5AwFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEANUDAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/pAwFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhUAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9yVAEMdTMyAAE8bWluX2NyYXRlX21pbm9yVAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBADpAwFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAE0DASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya1UDASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbkkDAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y22RAwEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldKUDAShNdWx0aUFzc2V0AAEgdW5sb2NrZXJFAwE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0pQMBKE11bHRpQXNzZXQAARh0YXJnZXRFAwE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0pQMBKE11bHRpQXNzZXQAARRvd25lckUDATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldKUDAShNdWx0aUFzc2V0AAEYbG9ja2VyRQMBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfAARBib29sACsAIFNldFRvcGljBAAwASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBABFAwE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXT5AwEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7dAwFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAJ0DEAx4Y20IdjMobXVsdGlhc3NldCxNdWx0aUFzc2V0cwAABAChAwE8VmVjPE11bHRpQXNzZXQ+AAChAwAAAqUDAKUDEAx4Y20IdjMobXVsdGlhc3NldChNdWx0aUFzc2V0AAAIAQhpZKkDARxBc3NldElkAAEMZnVurQMBLEZ1bmdpYmlsaXR5AACpAxAMeGNtCHYzKG11bHRpYXNzZXQcQXNzZXRJZAABCCBDb25jcmV0ZQQARQMBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEADABIFt1ODsgMzJdAAEAAK0DEAx4Y20IdjMobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAuAEQdTEyOAAAACxOb25GdW5naWJsZQQAsQMBNEFzc2V0SW5zdGFuY2UAAQAAsQMQDHhjbQh2MyhtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BAC4ARB1MTI4AAEAGEFycmF5NAQAZAEcW3U4OyA0XQACABhBcnJheTgEALUBARxbdTg7IDhdAAMAHEFycmF5MTYEANUBASBbdTg7IDE2XQAEABxBcnJheTMyBAAwASBbdTg7IDMyXQAFAAC1AwwMeGNtCHYzIFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBACdAwEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAC5AwFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAKAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAMUDAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQA1QMBOE1heWJlRXJyb3JDb2RlAAUAALkDBBhPcHRpb24EBFQBvQMBCBBOb25lAAAAEFNvbWUEAL0DAAABAAC9AwAABAgowQMAwQMQDHhjbQh2Mxh0cmFpdHMURXJyb3IAAaAgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAGAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIATFVuaGFuZGxlZFhjbVZlcnNpb24AIwBIV2VpZ2h0TGltaXRSZWFjaGVkBABxAQEYV2VpZ2h0ACQAHEJhcnJpZXIAJQBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAmAERFeGNlZWRzU3RhY2tMaW1pdAAnAADFAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAckDBFMAAAQA0QMBGFZlYzxUPgAAyQMMDHhjbQh2MyhQYWxsZXRJbmZvAAAYARRpbmRleFQBDHUzMgABEG5hbWXNAwGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZc0DAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yVAEMdTMyAAEUbWlub3JUAQx1MzIAARRwYXRjaFQBDHUzMgAAzQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AADRAwAAAskDANUDDAx4Y20IdjM4TWF5YmVFcnJvckNvZGUAAQwcU3VjY2VzcwAAABRFcnJvcgQA2QMBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAEAOFRydW5jYXRlZEVycm9yBADZAwGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAgAA2QMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AADdAwQYT3B0aW9uBARUAUUDAQgQTm9uZQAAABBTb21lBABFAwAAAQAA4QMMDHhjbQh2MyhPcmlnaW5LaW5kAAEQGE5hdGl2ZQAAAEBTb3ZlcmVpZ25BY2NvdW50AAEAJFN1cGVydXNlcgACAAxYY20AAwAA5QMMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkFAEcVmVjPHU4PgAA6QMMDHhjbQh2M0RRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb25FAwE0TXVsdGlMb2NhdGlvbgABIHF1ZXJ5X2lkqAEcUXVlcnlJZAABKG1heF93ZWlnaHRxAQEYV2VpZ2h0AADtAxAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQAnQMBLE11bHRpQXNzZXRzAAAAEFdpbGQEAPEDAThXaWxkTXVsdGlBc3NldAABAADxAxAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWSpAwEcQXNzZXRJZAABDGZ1bvUDATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAVAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkqQMBHEFzc2V0SWQAAQxmdW71AwE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRUAQx1MzIAAwAA9QMQDHhjbQh2MyhtdWx0aWFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAD5AwwMeGNtCHYzLFdlaWdodExpbWl0AAEIJFVubGltaXRlZAAAABxMaW1pdGVkBABxAQEYV2VpZ2h0AAEAAP0DDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQAAQQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAAEEAAACBQQABQQMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAAkEARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAJBAEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAAkEARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkqAEcUXVlcnlJZAABIHJlc3BvbnNlIQQBIFJlc3BvbnNlAAEobWF4X3dlaWdodHEBARhXZWlnaHQAARxxdWVyaWVyNQQBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cwkEARhBc3NldHMAASxiZW5lZmljaWFyeVkDASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cwkEARhBc3NldHMAARBkZXN0WQMBIExvY2F0aW9uAAEMeGNt/QMBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZOEDAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdHEBARhXZWlnaHQAARBjYWxs5QMBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlclQBDHUzMgABQG1heF9tZXNzYWdlX3NpemVUAQx1MzIAATBtYXhfY2FwYWNpdHlUAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudFQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JUAQx1MzIAARhzZW5kZXJUAQx1MzIAASRyZWNpcGllbnRUAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAXQMBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEADkEAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHM9BAEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeVkDASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzPQQBLEFzc2V0RmlsdGVyAAEQZGVzdFkDASBMb2NhdGlvbgABDHhjbf0DARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlPQQBLEFzc2V0RmlsdGVyAAEQd2FudAkEARhBc3NldHMAARxtYXhpbWFswAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cz0EASxBc3NldEZpbHRlcgABHHJlc2VydmVZAwEgTG9jYXRpb24AAQx4Y239AwEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzPQQBLEFzc2V0RmlsdGVyAAEQZGVzdFkDASBMb2NhdGlvbgABDHhjbf0DARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvOQQBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzPQQBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMRBAEUQXNzZXQAATB3ZWlnaHRfbGltaXT5AwEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAP0DASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAP0DASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzCQQBGEFzc2V0cwABGHRpY2tldFkDASBMb2NhdGlvbgAYABBUcmFwBACoAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkqAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHRxAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAAkEARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAAkEARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAA1BAFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAuQMBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADVAwE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvOQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4VAEMdTMyAAEQbmFtZRQBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AASxjcmF0ZV9tYWpvclQBDHUzMgABPG1pbl9jcmF0ZV9taW5vclQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAOQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABlAwEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmttAwEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25dAwFASW50ZXJpb3JMb2NhdGlvbgABDHhjbf0DARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0EQQBFEFzc2V0AAEgdW5sb2NrZXJZAwEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldBEEARRBc3NldAABGHRhcmdldFkDASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0EQQBFEFzc2V0AAEUb3duZXJZAwEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0EQQBFEFzc2V0AAEYbG9ja2VyWQMBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3wAEQYm9vbAArACBTZXRUb3BpYwQAMAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAWQMBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdPkDASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbjUEAUBPcHRpb248TG9jYXRpb24+AC8AAAkEECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQADQQBKFZlYzxBc3NldD4AAA0EAAACEQQAEQQQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZBUEARxBc3NldElkAAEMZnVuGQQBLEZ1bmdpYmlsaXR5AAAVBBAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABABZAwEgTG9jYXRpb24AABkEECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAuAEQdTEyOAAAACxOb25GdW5naWJsZQQAHQQBNEFzc2V0SW5zdGFuY2UAAQAAHQQQLHN0YWdpbmdfeGNtCHY0FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BAC4ARB1MTI4AAEAGEFycmF5NAQAZAEcW3U4OyA0XQACABhBcnJheTgEALUBARxbdTg7IDhdAAMAHEFycmF5MTYEANUBASBbdTg7IDE2XQAEABxBcnJheTMyBAAwASBbdTg7IDMyXQAFAAAhBAwsc3RhZ2luZ194Y20IdjQgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAAkEARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAC5AwFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAKAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EACUEAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQA1QMBOE1heWJlRXJyb3JDb2RlAAUAACUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKQQEUwAABAAxBAEYVmVjPFQ+AAApBAwsc3RhZ2luZ194Y20IdjQoUGFsbGV0SW5mbwAAGAEUaW5kZXhUAQx1MzIAARBuYW1lLQQBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWUtBAGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvclQBDHUzMgABFG1pbm9yVAEMdTMyAAEUcGF0Y2hUAQx1MzIAAC0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAMQQAAAIpBAA1BAQYT3B0aW9uBARUAVkDAQgQTm9uZQAAABBTb21lBABZAwAAAQAAOQQMLHN0YWdpbmdfeGNtCHY0RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvblkDASBMb2NhdGlvbgABIHF1ZXJ5X2lkqAEcUXVlcnlJZAABKG1heF93ZWlnaHRxAQEYV2VpZ2h0AAA9BBAsc3RhZ2luZ194Y20IdjQUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAAkEARhBc3NldHMAAAAQV2lsZAQAQQQBJFdpbGRBc3NldAABAABBBBAsc3RhZ2luZ194Y20IdjQUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkFQQBHEFzc2V0SWQAAQxmdW5FBAE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAFQBDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZBUEARxBc3NldElkAAEMZnVuRQQBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50VAEMdTMyAAMAAEUEECxzdGFnaW5nX3hjbQh2NBRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAASQQMLHN0YWdpbmdfeGNtCHY1DFhjbQQQQ2FsbAAABABNBAFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAATQQAAAJRBABRBAwsc3RhZ2luZ194Y20IdjUsSW5zdHJ1Y3Rpb24EEENhbGwAAdA0V2l0aGRyYXdBc3NldAQAVQQBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAFUEARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAVQQBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWSoARxRdWVyeUlkAAEgcmVzcG9uc2VtBAEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0cQEBGFdlaWdodAABHHF1ZXJpZXKNBAFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzVQQBGEFzc2V0cwABLGJlbmVmaWNpYXJ5MQEBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzVQQBGEFzc2V0cwABEGRlc3QxAQEgTG9jYXRpb24AAQx4Y21JBAEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k4QMBKE9yaWdpbktpbmQAAUxmYWxsYmFja19tYXhfd2VpZ2h0kQQBOE9wdGlvbjxXZWlnaHQ+AAEQY2FsbOUDAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJUAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplVAEMdTMyAAEwbWF4X2NhcGFjaXR5VAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRUAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yVAEMdTMyAAEYc2VuZGVyVAEMdTMyAAEkcmVjaXBpZW50VAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EADUBAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBACVBAFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzmQQBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnkxAQEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c5kEASxBc3NldEZpbHRlcgABEGRlc3QxAQEgTG9jYXRpb24AAQx4Y21JBAEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZZkEASxBc3NldEZpbHRlcgABEHdhbnRVBAEYQXNzZXRzAAEcbWF4aW1hbMABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHOZBAEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlMQEBIExvY2F0aW9uAAEMeGNtSQQBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c5kEASxBc3NldEZpbHRlcgABEGRlc3QxAQEgTG9jYXRpb24AAQx4Y21JBAEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb5UEAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c5kEASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzXQQBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0+QMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABJBAEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABJBAEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c1UEARhBc3NldHMAARh0aWNrZXQxAQEgTG9jYXRpb24AGAAQVHJhcAQAqAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZKgBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0cQEBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BABVBAEYQXNzZXRzABwALEV4cGVjdEFzc2V0BABVBAEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAjQQBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAHEEAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQA1QMBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb5UEAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleFQBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JUAQx1MzIAATxtaW5fY3JhdGVfbWlub3JUAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAJUEAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAPQEBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrRQEBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uNQEBQEludGVyaW9yTG9jYXRpb24AAQx4Y21JBAEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldF0EARRBc3NldAABIHVubG9ja2VyMQEBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXRdBAEUQXNzZXQAARh0YXJnZXQxAQEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldF0EARRBc3NldAABFG93bmVyMQEBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldF0EARRBc3NldAABGGxvY2tlcjEBASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd8ABEGJvb2wAKwAgU2V0VG9waWMEADABIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EADEBASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXT5AwEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW6NBAFAT3B0aW9uPExvY2F0aW9uPgAvABxQYXlGZWVzBAEUYXNzZXRdBAEUQXNzZXQAMABASW5pdGlhdGVUcmFuc2ZlchQBLGRlc3RpbmF0aW9uMQEBIExvY2F0aW9uAAEscmVtb3RlX2ZlZXOlBAFsT3B0aW9uPEFzc2V0VHJhbnNmZXJGaWx0ZXI+AAE8cHJlc2VydmVfb3JpZ2luwAEQYm9vbAABGGFzc2V0c60EAeBCb3VuZGVkVmVjPEFzc2V0VHJhbnNmZXJGaWx0ZXIsIE1heEFzc2V0VHJhbnNmZXJGaWx0ZXJzPgABKHJlbW90ZV94Y21JBAEcWGNtPCgpPgAxAERFeGVjdXRlV2l0aE9yaWdpbggBRGRlc2NlbmRhbnRfb3JpZ2lutQQBYE9wdGlvbjxJbnRlcmlvckxvY2F0aW9uPgABDHhjbUkEASRYY208Q2FsbD4AMgAgU2V0SGludHMEARRoaW50c7kEAYRCb3VuZGVkVmVjPEhpbnQsIEhpbnROdW1WYXJpYW50cz4AMwAAVQQQLHN0YWdpbmdfeGNtCHY1FGFzc2V0GEFzc2V0cwAABABZBAEoVmVjPEFzc2V0PgAAWQQAAAJdBABdBBAsc3RhZ2luZ194Y20IdjUUYXNzZXQUQXNzZXQAAAgBCGlkYQQBHEFzc2V0SWQAAQxmdW5lBAEsRnVuZ2liaWxpdHkAAGEEECxzdGFnaW5nX3hjbQh2NRRhc3NldBxBc3NldElkAAAEADEBASBMb2NhdGlvbgAAZQQQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAC4ARB1MTI4AAAALE5vbkZ1bmdpYmxlBABpBAE0QXNzZXRJbnN0YW5jZQABAABpBBAsc3RhZ2luZ194Y20IdjUUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEALgBEHUxMjgAAQAYQXJyYXk0BABkARxbdTg7IDRdAAIAGEFycmF5OAQAtQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQA1QEBIFt1ODsgMTZdAAQAHEFycmF5MzIEADABIFt1ODsgMzJdAAUAAG0EDCxzdGFnaW5nX3hjbQh2NSBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAVQQBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAHEEAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAoAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAfQQBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BADVAwE4TWF5YmVFcnJvckNvZGUABQAAcQQEGE9wdGlvbgQEVAF1BAEIEE5vbmUAAAAQU29tZQQAdQQAAAEAAHUEAAAECCh5BAB5BBAMeGNtCHY1GHRyYWl0cxRFcnJvcgABpCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAYAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAQAcQEBGFdlaWdodAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAfQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGBBARTAAAEAIkEARhWZWM8VD4AAIEEDCxzdGFnaW5nX3hjbQh2NShQYWxsZXRJbmZvAAAYARRpbmRleFQBDHUzMgABEG5hbWWFBAGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZYUEAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yVAEMdTMyAAEUbWlub3JUAQx1MzIAARRwYXRjaFQBDHUzMgAAhQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACJBAAAAoEEAI0EBBhPcHRpb24EBFQBMQEBCBBOb25lAAAAEFNvbWUEADEBAAABAACRBAQYT3B0aW9uBARUAXEBAQgQTm9uZQAAABBTb21lBABxAQAAAQAAlQQMLHN0YWdpbmdfeGNtCHY1RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbjEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkqAEcUXVlcnlJZAABKG1heF93ZWlnaHRxAQEYV2VpZ2h0AACZBBAsc3RhZ2luZ194Y20IdjUUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAFUEARhBc3NldHMAAAAQV2lsZAQAnQQBJFdpbGRBc3NldAABAACdBBAsc3RhZ2luZ194Y20IdjUUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkYQQBHEFzc2V0SWQAAQxmdW6hBAE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAFQBDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZGEEARxBc3NldElkAAEMZnVuoQQBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50VAEMdTMyAAMAAKEEECxzdGFnaW5nX3hjbQh2NRRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAApQQEGE9wdGlvbgQEVAGpBAEIEE5vbmUAAAAQU29tZQQAqQQAAAEAAKkEECxzdGFnaW5nX3hjbQh2NRRhc3NldExBc3NldFRyYW5zZmVyRmlsdGVyAAEMIFRlbGVwb3J0BACZBAEsQXNzZXRGaWx0ZXIAAAA4UmVzZXJ2ZURlcG9zaXQEAJkEASxBc3NldEZpbHRlcgABADxSZXNlcnZlV2l0aGRyYXcEAJkEASxBc3NldEZpbHRlcgACAACtBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAakEBFMAAAQAsQQBGFZlYzxUPgAAsQQAAAKpBAC1BAQYT3B0aW9uBARUATUBAQgQTm9uZQAAABBTb21lBAA1AQAAAQAAuQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG9BARTAAAEAMEEARhWZWM8VD4AAL0EDCxzdGFnaW5nX3hjbQh2NRBIaW50AAEEMEFzc2V0Q2xhaW1lcgQBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAAAAMEEAAACvQQAxQQIDHhjbTxWZXJzaW9uZWRBc3NldHMAAQwIVjMEAJ0DATx2Mzo6TXVsdGlBc3NldHMAAwAIVjQEAAkEASh2NDo6QXNzZXRzAAQACFY1BABVBAEodjU6OkFzc2V0cwAFAADJBAgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAM0EAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQA3QQBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BADpBAFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAAzQQMDHhjbQh2MwxYY20EEENhbGwAAAQA0QQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AANEEAAAC1QQA1QQMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BACdAwEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBACdAwEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAnQMBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZKgBHFF1ZXJ5SWQAASByZXNwb25zZbUDASBSZXNwb25zZQABKG1heF93ZWlnaHRxAQEYV2VpZ2h0AAEccXVlcmllct0DAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c50DASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5RQMBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHOdAwEsTXVsdGlBc3NldHMAARBkZXN0RQMBNE11bHRpTG9jYXRpb24AAQx4Y22RAwEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k4QMBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0cQEBGFdlaWdodAABEGNhbGzZBAFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyVAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZVQBDHUzMgABMG1heF9jYXBhY2l0eVQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50VAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvclQBDHUzMgABGHNlbmRlclQBDHUzMgABJHJlY2lwaWVudFQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABJAwFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBADpAwFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRz7QMBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeUUDATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPtAwFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RFAwE0TXVsdGlMb2NhdGlvbgABDHhjbZEDARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZl7QMBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50nQMBLE11bHRpQXNzZXRzAAEcbWF4aW1hbMABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPtAwFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmVFAwE0TXVsdGlMb2NhdGlvbgABDHhjbZEDARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPtAwFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RFAwE0TXVsdGlMb2NhdGlvbgABDHhjbZEDARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv6QMBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRz7QMBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc6UDAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0+QMBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADNBAEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADNBAEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c50DASxNdWx0aUFzc2V0cwABGHRpY2tldEUDATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEAKgBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWSoARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodHEBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAnQMBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BACdAwEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADdAwFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAC5AwFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEANUDAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/pAwFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhUAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9yVAEMdTMyAAE8bWluX2NyYXRlX21pbm9yVAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBADpAwFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAE0DASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya1UDASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbkkDAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y22RAwEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldKUDAShNdWx0aUFzc2V0AAEgdW5sb2NrZXJFAwE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0pQMBKE11bHRpQXNzZXQAARh0YXJnZXRFAwE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0pQMBKE11bHRpQXNzZXQAARRvd25lckUDATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldKUDAShNdWx0aUFzc2V0AAEYbG9ja2VyRQMBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfAARBib29sACsAIFNldFRvcGljBAAwASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBABFAwE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXT5AwEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7dAwFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AANkEDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBQBHFZlYzx1OD4AAN0EDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQA4QQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAOEEAAAC5QQA5QQMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAAkEARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAJBAEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAAkEARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkqAEcUXVlcnlJZAABIHJlc3BvbnNlIQQBIFJlc3BvbnNlAAEobWF4X3dlaWdodHEBARhXZWlnaHQAARxxdWVyaWVyNQQBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cwkEARhBc3NldHMAASxiZW5lZmljaWFyeVkDASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cwkEARhBc3NldHMAARBkZXN0WQMBIExvY2F0aW9uAAEMeGNt/QMBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZOEDAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdHEBARhXZWlnaHQAARBjYWxs2QQBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlclQBDHUzMgABQG1heF9tZXNzYWdlX3NpemVUAQx1MzIAATBtYXhfY2FwYWNpdHlUAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudFQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JUAQx1MzIAARhzZW5kZXJUAQx1MzIAASRyZWNpcGllbnRUAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAXQMBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEADkEAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHM9BAEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeVkDASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzPQQBLEFzc2V0RmlsdGVyAAEQZGVzdFkDASBMb2NhdGlvbgABDHhjbf0DARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlPQQBLEFzc2V0RmlsdGVyAAEQd2FudAkEARhBc3NldHMAARxtYXhpbWFswAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cz0EASxBc3NldEZpbHRlcgABHHJlc2VydmVZAwEgTG9jYXRpb24AAQx4Y239AwEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzPQQBLEFzc2V0RmlsdGVyAAEQZGVzdFkDASBMb2NhdGlvbgABDHhjbf0DARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvOQQBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzPQQBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMRBAEUQXNzZXQAATB3ZWlnaHRfbGltaXT5AwEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAN0EASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAN0EASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzCQQBGEFzc2V0cwABGHRpY2tldFkDASBMb2NhdGlvbgAYABBUcmFwBACoAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkqAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHRxAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAAkEARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAAkEARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAA1BAFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAuQMBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADVAwE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvOQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4VAEMdTMyAAEQbmFtZRQBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AASxjcmF0ZV9tYWpvclQBDHUzMgABPG1pbl9jcmF0ZV9taW5vclQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAOQQBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABlAwEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmttAwEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25dAwFASW50ZXJpb3JMb2NhdGlvbgABDHhjbf0DARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0EQQBFEFzc2V0AAEgdW5sb2NrZXJZAwEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldBEEARRBc3NldAABGHRhcmdldFkDASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0EQQBFEFzc2V0AAEUb3duZXJZAwEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0EQQBFEFzc2V0AAEYbG9ja2VyWQMBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3wAEQYm9vbAArACBTZXRUb3BpYwQAMAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAWQMBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdPkDASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbjUEAUBPcHRpb248TG9jYXRpb24+AC8AAOkEDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQA7QQBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAO0EAAAC8QQA8QQMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAFUEARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBABVBAEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAFUEARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkqAEcUXVlcnlJZAABIHJlc3BvbnNlbQQBIFJlc3BvbnNlAAEobWF4X3dlaWdodHEBARhXZWlnaHQAARxxdWVyaWVyjQQBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c1UEARhBc3NldHMAASxiZW5lZmljaWFyeTEBASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c1UEARhBc3NldHMAARBkZXN0MQEBIExvY2F0aW9uAAEMeGNtSQQBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZOEDAShPcmlnaW5LaW5kAAFMZmFsbGJhY2tfbWF4X3dlaWdodJEEAThPcHRpb248V2VpZ2h0PgABEGNhbGzZBAFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyVAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZVQBDHUzMgABMG1heF9jYXBhY2l0eVQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50VAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvclQBDHUzMgABGHNlbmRlclQBDHUzMgABJHJlY2lwaWVudFQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAA1AQFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAlQQBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c5kEASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5MQEBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHOZBAEsQXNzZXRGaWx0ZXIAARBkZXN0MQEBIExvY2F0aW9uAAEMeGNtSQQBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWZBAEsQXNzZXRGaWx0ZXIAARB3YW50VQQBGEFzc2V0cwABHG1heGltYWzAARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzmQQBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZTEBASBMb2NhdGlvbgABDHhjbUkEARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOZBAEsQXNzZXRGaWx0ZXIAARBkZXN0MQEBIExvY2F0aW9uAAEMeGNtSQQBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm+VBAFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHOZBAEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc10EARRBc3NldAABMHdlaWdodF9saW1pdPkDASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA6QQBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQA6QQBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHNVBAEYQXNzZXRzAAEYdGlja2V0MQEBIExvY2F0aW9uABgAEFRyYXAEAKgBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWSoARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodHEBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAVQQBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAVQQBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAI0EAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABxBAFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEANUDAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+VBAFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhUAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9yVAEMdTMyAAE8bWluX2NyYXRlX21pbm9yVAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBACVBAFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAD0BASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya0UBASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbjUBAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtSQQBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXRdBAEUQXNzZXQAASB1bmxvY2tlcjEBASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0XQQBFEFzc2V0AAEYdGFyZ2V0MQEBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXRdBAEUQXNzZXQAARRvd25lcjEBASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXRdBAEUQXNzZXQAARhsb2NrZXIxAQEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfAARBib29sACsAIFNldFRvcGljBAAwASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBAAxAQEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0+QMBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lujQQBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0XQQBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbjEBASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzpQQBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbsABEGJvb2wAARhhc3NldHOtBAHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNtSQQBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbrUEAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y23pBAEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHO5BAGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAPUEEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQAQQMBRFZlcnNpb25lZExvY2F0aW9uAAMAAPkECAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABDAhWMwQAqQMBLHYzOjpBc3NldElkAAMACFY0BAAVBAEsdjQ6OkFzc2V0SWQABAAIVjUEAGEEASx2NTo6QXNzZXRJZAAFAAD9BAQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAAAEFDFRwYWxsZXRfeGNtX3RyYW5zYWN0b3IYcGFsbGV0EENhbGwEBFQAASAgcmVnaXN0ZXIIAQx3aG8AATBUOjpBY2NvdW50SWQAARRpbmRleAkBAQx1MTYAACD4UmVnaXN0ZXIgYSBkZXJpdmF0aXZlIGluZGV4IGZvciBhbiBhY2NvdW50IGlkLiBEaXNwYXRjaGFibGUgYnmMRGVyaXZhdGl2ZUFkZHJlc3NSZWdpc3RyYXRpb25PcmlnaW4ATQFXZSBkbyBub3Qgc3RvcmUgdGhlIGRlcml2YXRpdmUgYWRkcmVzcywgYnV0IG9ubHkgdGhlIGluZGV4LiBXZSBkbyBub3QgbmVlZCB0byBzdG9yZfx0aGUgZGVyaXZhdGl2ZSBhZGRyZXNzIHRvIGlzc3VlIGNhbGxzLCBvbmx5IHRoZSBpbmRleCBpcyBlbm91Z2gAVQFGb3Igbm93IGFuIGluZGV4IGlzIHJlZ2lzdGVyZWQgZm9yIGFsbCBwb3NzaWJsZSBkZXN0aW5hdGlvbnMgYW5kIG5vdCBwZXItZGVzdGluYXRpb24uUQFXZSBjYW4gY2hhbmdlIHRoaXMgaW4gdGhlIGZ1dHVyZSBhbHRob3VnaCBpdCB3b3VsZCBqdXN0IG1ha2UgdGhpbmdzIG1vcmUgY29tcGxpY2F0ZWQoZGVyZWdpc3RlcgQBFGluZGV4CQEBDHUxNgABCFEBRGUtUmVnaXN0ZXIgYSBkZXJpdmF0aXZlIGluZGV4LiBUaGlzIHByZXZlbnRzIGFuIGFjY291bnQgdG8gdXNlIGEgZGVyaXZhdGl2ZSBhZGRyZXNzEQEocmVwcmVzZW50ZWQgYnkgYW4gaW5kZXgpIGZyb20gb3VyIG9mIG91ciBzb3ZlcmVpZ24gYWNjb3VudHMgYW55bW9yZWx0cmFuc2FjdF90aHJvdWdoX2Rlcml2YXRpdmUYARBkZXN0BQUBNFQ6OlRyYW5zYWN0b3IAARRpbmRleAkBAQx1MTYAAQxmZWUJBQGAQ3VycmVuY3lQYXltZW50PEN1cnJlbmN5SWRPZjxUPj4AAShpbm5lcl9jYWxsFAEcVmVjPHU4PgABLHdlaWdodF9pbmZvFQUBPFRyYW5zYWN0V2VpZ2h0cwABGHJlZnVuZMABEGJvb2wAAhQxAVRyYW5zYWN0IHRoZSBpbm5lciBjYWxsIHRocm91Z2ggYSBkZXJpdmF0aXZlIGFjY291bnQgaW4gYSBkZXN0aW5hdGlvbiBjaGFpbixdAXVzaW5nICdmZWVfbG9jYXRpb24nIHRvIHBheSBmb3IgdGhlIGZlZXMuIFRoaXMgZmVlX2xvY2F0aW9uIGlzIGdpdmVuIGFzIGEgbXVsdGlsb2NhdGlvbgBZAVRoZSBjYWxsZXIgbmVlZHMgdG8gaGF2ZSB0aGUgaW5kZXggcmVnaXN0ZXJlZCBpbiB0aGlzIHBhbGxldC4gVGhlIGZlZSBtdWx0aWFzc2V0IG5lZWRzEQF0byBiZSBhIHJlc2VydmUgYXNzZXQgZm9yIHRoZSBkZXN0aW5hdGlvbiB0cmFuc2FjdG9yOjptdWx0aWxvY2F0aW9uLmh0cmFuc2FjdF90aHJvdWdoX3NvdmVyZWlnbhwBEGRlc3RBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABJGZlZV9wYXllchkDAVBPcHRpb248VDo6QWNjb3VudElkPgABDGZlZQkFAYBDdXJyZW5jeVBheW1lbnQ8Q3VycmVuY3lJZE9mPFQ+PgABEGNhbGwUARxWZWM8dTg+AAEsb3JpZ2luX2tpbmThAwEoT3JpZ2luS2luZAABLHdlaWdodF9pbmZvFQUBPFRyYW5zYWN0V2VpZ2h0cwABGHJlZnVuZMABEGJvb2wAAxAdAVRyYW5zYWN0IHRoZSBjYWxsIHRocm91Z2ggdGhlIHNvdmVyZWlnbiBhY2NvdW50IGluIGEgZGVzdGluYXRpb24gY2hhaW4scCdmZWVfcGF5ZXInIHBheXMgZm9yIHRoZSBmZWUAuFNvdmVyZWlnbkFjY291bnREaXNwYXRjaGVyT3JpZ2luIGNhbGxhYmxlIG9ubHlEc2V0X3RyYW5zYWN0X2luZm8QASBsb2NhdGlvbkEDAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFUdHJhbnNhY3RfZXh0cmFfd2VpZ2h0cQEBGFdlaWdodAABKG1heF93ZWlnaHRxAQEYV2VpZ2h0AAFwdHJhbnNhY3RfZXh0cmFfd2VpZ2h0X3NpZ25lZJEEAThPcHRpb248V2VpZ2h0PgAEBJhDaGFuZ2UgdGhlIHRyYW5zYWN0IGluZm8gb2YgYSBsb2NhdGlvblByZW1vdmVfdHJhbnNhY3RfaW5mbwQBIGxvY2F0aW9uQQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABQSYUmVtb3ZlIHRoZSB0cmFuc2FjdCBpbmZvIG9mIGEgbG9jYXRpb25cdHJhbnNhY3RfdGhyb3VnaF9zaWduZWQUARBkZXN0QQMBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAQxmZWUJBQGAQ3VycmVuY3lQYXltZW50PEN1cnJlbmN5SWRPZjxUPj4AARBjYWxsFAEcVmVjPHU4PgABLHdlaWdodF9pbmZvFQUBPFRyYW5zYWN0V2VpZ2h0cwABGHJlZnVuZMABEGJvb2wABhTcVHJhbnNhY3QgdGhlIGNhbGwgdGhyb3VnaCBhIHNpZ25lZCBvcmlnaW4gaW4gdGhpcyBjaGFpbk0BdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvIGEgdHJhbnNhY3Rpb24gZGlzcGF0Y2ggYWNjb3VudCBpbiB0aGUgZGVzdGluYXRpb24gY2hhaW7sYnkgYW55IG1ldGhvZCBpbXBsZW1lbnRlZCBpbiB0aGUgZGVzdGluYXRpb24gY2hhaW5zIHJ1bnRpbWUANQFUaGlzIHRpbWUgd2UgYXJlIGdpdmluZyB0aGUgY3VycmVuY3kgYXMgYSBjdXJyZW5jeUlkIGluc3RlYWQgb2YgbXVsdGlsb2NhdGlvbixocm1wX21hbmFnZQwBGGFjdGlvbh0FATRIcm1wT3BlcmF0aW9uAAEMZmVlCQUBgEN1cnJlbmN5UGF5bWVudDxDdXJyZW5jeUlkT2Y8VD4+AAEsd2VpZ2h0X2luZm8VBQE8VHJhbnNhY3RXZWlnaHRzAAkEWE1hbmFnZSBIUk1QIG9wZXJhdGlvbnMEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuBQUMQG1vb25iZWFtX3J1bnRpbWUoeGNtX2NvbmZpZyxUcmFuc2FjdG9ycwABCBRSZWxheQAAACBBc3NldEh1YgABAAAJBQxUcGFsbGV0X3hjbV90cmFuc2FjdG9yGHBhbGxldDxDdXJyZW5jeVBheW1lbnQEKEN1cnJlbmN5SWQBDQUACAEgY3VycmVuY3kRBQFQQ3VycmVuY3k8Q3VycmVuY3lJZD4AAShmZWVfYW1vdW50eQIBME9wdGlvbjx1MTI4PgAADQUMQG1vb25iZWFtX3J1bnRpbWUoeGNtX2NvbmZpZyhDdXJyZW5jeUlkAAEMLFNlbGZSZXNlcnZlAAAAMEZvcmVpZ25Bc3NldAQAvAEcQXNzZXRJZAABABRFcmMyMAQBQGNvbnRyYWN0X2FkZHJlc3MZAQEQSDE2MAACAAARBQxUcGFsbGV0X3hjbV90cmFuc2FjdG9yGHBhbGxldCBDdXJyZW5jeQQoQ3VycmVuY3lJZAENBQEIMEFzQ3VycmVuY3lJZAQADQUBKEN1cnJlbmN5SWQAAAA8QXNNdWx0aUxvY2F0aW9uBABBAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABAAAVBQxUcGFsbGV0X3hjbV90cmFuc2FjdG9yGHBhbGxldDxUcmFuc2FjdFdlaWdodHMAAAgBgHRyYW5zYWN0X3JlcXVpcmVkX3dlaWdodF9hdF9tb3N0cQEBGFdlaWdodAABOG92ZXJhbGxfd2VpZ2h0GQUBTE9wdGlvbjxXZWlnaHRMaW1pdD4AABkFBBhPcHRpb24EBFQB+QMBCBBOb25lAAAAEFNvbWUEAPkDAAABAAAdBQxUcGFsbGV0X3hjbV90cmFuc2FjdG9yGHBhbGxldDRIcm1wT3BlcmF0aW9uAAEQIEluaXRPcGVuBAAhBQE4SHJtcEluaXRQYXJhbXMAAAAYQWNjZXB0BAEccGFyYV9pZJABGFBhcmFJZAABABRDbG9zZQQAJQUBNEhybXBDaGFubmVsSWQAAgAYQ2FuY2VsCAEoY2hhbm5lbF9pZCUFATRIcm1wQ2hhbm5lbElkAAE0b3Blbl9yZXF1ZXN0cygBDHUzMgADAAAhBQxUcGFsbGV0X3hjbV90cmFuc2FjdG9yGHBhbGxldDhIcm1wSW5pdFBhcmFtcwAADAEccGFyYV9pZJABGFBhcmFJZAABVHByb3Bvc2VkX21heF9jYXBhY2l0eSgBDHUzMgABZHByb3Bvc2VkX21heF9tZXNzYWdlX3NpemUoAQx1MzIAACUFDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzNEhybXBDaGFubmVsSWQAAAgBGHNlbmRlcpABCElkAAEkcmVjaXBpZW50kAEISWQAACkFDExwYWxsZXRfZXRoZXJldW1feGNtGHBhbGxldBBDYWxsBARUAAEUIHRyYW5zYWN0BAE8eGNtX3RyYW5zYWN0aW9uLQUBWEV0aGVyZXVtWGNtVHJhbnNhY3Rpb24AAAiUWGNtIFRyYW5zYWN0IGFuIEV0aGVyZXVtIHRyYW5zYWN0aW9uLgUBV2VpZ2h0OiBHYXMgbGltaXQgcGx1cyB0aGUgZGIgcmVhZCBpbnZvbHZpbmcgdGhlIHN1c3BlbnNpb24gY2hlY2tYdHJhbnNhY3RfdGhyb3VnaF9wcm94eQgBLHRyYW5zYWN0X2FzGQEBEEgxNjAAATx4Y21fdHJhbnNhY3Rpb24tBQFYRXRoZXJldW1YY21UcmFuc2FjdGlvbgABCMxYY20gVHJhbnNhY3QgYW4gRXRoZXJldW0gdHJhbnNhY3Rpb24gdGhyb3VnaCBwcm94eS41AVdlaWdodDogR2FzIGxpbWl0IHBsdXMgdGhlIGRiIHJlYWRzIGludm9sdmluZyB0aGUgc3VzcGVuc2lvbiBhbmQgcHJveHkgY2hlY2tzeHN1c3BlbmRfZXRoZXJldW1feGNtX2V4ZWN1dGlvbgACDKhTdXNwZW5kcyBhbGwgRXRoZXJldW0gZXhlY3V0aW9ucyBmcm9tIFhDTS4ApC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgQ29udHJvbGxlck9yaWdpbmAudHJlc3VtZV9ldGhlcmV1bV94Y21fZXhlY3V0aW9uAAMMpFJlc3VtZXMgYWxsIEV0aGVyZXVtIGV4ZWN1dGlvbnMgZnJvbSBYQ00uAKQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYENvbnRyb2xsZXJPcmlnaW5gLkRmb3JjZV90cmFuc2FjdF9hcwwBLHRyYW5zYWN0X2FzGQEBEEgxNjAAATx4Y21fdHJhbnNhY3Rpb24tBQFYRXRoZXJldW1YY21UcmFuc2FjdGlvbgABUGZvcmNlX2NyZWF0ZV9hZGRyZXNzUQUBME9wdGlvbjxIMTYwPgAEDF0BWGNtIFRyYW5zYWN0IGFuIEV0aGVyZXVtIHRyYW5zYWN0aW9uLCBidXQgYWxsb3cgdG8gZm9yY2UgdGhlIGNhbGxlciBhbmQgY3JlYXRlIGFkZHJlc3MuMQFUaGlzIGNhbGwgc2hvdWxkIGJlIHJlc3RyaWN0ZWQgKGNhbGxhYmxlIG9ubHkgYnkgdGhlIHJ1bnRpbWUgb3IgZ292ZXJuYW5jZSkuNQFXZWlnaHQ6IEdhcyBsaW1pdCBwbHVzIHRoZSBkYiByZWFkcyBpbnZvbHZpbmcgdGhlIHN1c3BlbnNpb24gYW5kIHByb3h5IGNoZWNrcwQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4tBQw4eGNtX3ByaW1pdGl2ZXMwZXRoZXJldW1feGNtWEV0aGVyZXVtWGNtVHJhbnNhY3Rpb24AAQwIVjEEADEFAWBFdGhlcmV1bVhjbVRyYW5zYWN0aW9uVjEAAAAIVjIEAEUFAWBFdGhlcmV1bVhjbVRyYW5zYWN0aW9uVjIAAQAIVjMEAEkFAWBFdGhlcmV1bVhjbVRyYW5zYWN0aW9uVjMAAgAAMQUMOHhjbV9wcmltaXRpdmVzMGV0aGVyZXVtX3hjbWBFdGhlcmV1bVhjbVRyYW5zYWN0aW9uVjEAABgBJGdhc19saW1pdIECARBVMjU2AAEsZmVlX3BheW1lbnQ1BQE4RXRoZXJldW1YY21GZWUAARhhY3Rpb26xAgFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZYECARBVMjU2AAEUaW5wdXQ9BQHUQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0VUSEVSRVVNX1hDTV9JTlBVVF9TSVpFPj4AASxhY2Nlc3NfbGlzdEEFAXhPcHRpb248VmVjPChIMTYwLCBWZWM8SDI1Nj4pPj4AADUFDDh4Y21fcHJpbWl0aXZlczBldGhlcmV1bV94Y204RXRoZXJldW1YY21GZWUAAQgYTWFudWFsBAA5BQFQTWFudWFsRXRoZXJldW1YY21GZWUAAAAQQXV0bwABAAA5BQw4eGNtX3ByaW1pdGl2ZXMwZXRoZXJldW1feGNtUE1hbnVhbEV0aGVyZXVtWGNtRmVlAAAIASRnYXNfcHJpY2WJAgEwT3B0aW9uPFUyNTY+AAE8bWF4X2ZlZV9wZXJfZ2FziQIBME9wdGlvbjxVMjU2PgAAPQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABBBQQYT3B0aW9uBARUAY0CAQgQTm9uZQAAABBTb21lBACNAgAAAQAARQUMOHhjbV9wcmltaXRpdmVzMGV0aGVyZXVtX3hjbWBFdGhlcmV1bVhjbVRyYW5zYWN0aW9uVjIAABQBJGdhc19saW1pdIECARBVMjU2AAEYYWN0aW9usQIBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWWBAgEQVTI1NgABFGlucHV0PQUB1EJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9FVEhFUkVVTV9YQ01fSU5QVVRfU0laRT4+AAEsYWNjZXNzX2xpc3RBBQF4T3B0aW9uPFZlYzwoSDE2MCwgVmVjPEgyNTY+KT4+AABJBQw4eGNtX3ByaW1pdGl2ZXMwZXRoZXJldW1feGNtYEV0aGVyZXVtWGNtVHJhbnNhY3Rpb25WMwAAGAEkZ2FzX2xpbWl0gQIBEFUyNTYAARhhY3Rpb26xAgFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZYECARBVMjU2AAEUaW5wdXQ9BQHUQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0VUSEVSRVVNX1hDTV9JTlBVVF9TSVpFPj4AASxhY2Nlc3NfbGlzdEEFAXhPcHRpb248VmVjPChIMTYwLCBWZWM8SDI1Nj4pPj4AAUhhdXRob3JpemF0aW9uX2xpc3RNBQFkT3B0aW9uPEF1dGhvcml6YXRpb25MaXN0PgAATQUEGE9wdGlvbgQEVAGZAgEIEE5vbmUAAAAQU29tZQQAmQIAAAEAAFEFBBhPcHRpb24EBFQBGQEBCBBOb25lAAAAEFNvbWUEABkBAAABAABVBQxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0EENhbGwEBFQAAQgkcmVhcF9wYWdlCAE4bWVzc2FnZV9vcmlnaW5ZBQFITWVzc2FnZU9yaWdpbk9mPFQ+AAEocGFnZV9pbmRleCgBJFBhZ2VJbmRleAAABD0BUmVtb3ZlIGEgcGFnZSB3aGljaCBoYXMgbm8gbW9yZSBtZXNzYWdlcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIG9yIGlzIHN0YWxlLkhleGVjdXRlX292ZXJ3ZWlnaHQQAThtZXNzYWdlX29yaWdpblkFAUhNZXNzYWdlT3JpZ2luT2Y8VD4AARBwYWdlKAEkUGFnZUluZGV4AAEUaW5kZXgoARxUOjpTaXplAAEwd2VpZ2h0X2xpbWl0cQEBGFdlaWdodAABNHhFeGVjdXRlIGFuIG92ZXJ3ZWlnaHQgbWVzc2FnZS4ATQFUZW1wb3JhcnkgcHJvY2Vzc2luZyBlcnJvcnMgd2lsbCBiZSBwcm9wYWdhdGVkIHdoZXJlYXMgcGVybWFuZW50IGVycm9ycyBhcmUgdHJlYXRlZFRhcyBzdWNjZXNzIGNvbmRpdGlvbi4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAuNQEtIGBtZXNzYWdlX29yaWdpbmA6IFRoZSBvcmlnaW4gZnJvbSB3aGljaCB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZCBhcnJpdmVkLj0BLSBgcGFnZWA6IFRoZSBwYWdlIGluIHRoZSBxdWV1ZSBpbiB3aGljaCB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZCBpcyBzaXR0aW5nLgkBLSBgaW5kZXhgOiBUaGUgaW5kZXggaW50byB0aGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQuWQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IGFsbG93ZWQgdG8gYmUgY29uc3VtZWQgaW4gdGhlIGV4ZWN1dGlvbkQgIG9mIHRoZSBtZXNzYWdlLgD0QmVuY2htYXJrIGNvbXBsZXhpdHkgY29uc2lkZXJhdGlvbnM6IE8oaW5kZXggKyB3ZWlnaHRfbGltaXQpLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5ZBQhcY3VtdWx1c19wcmltaXRpdmVzX2NvcmVYQWdncmVnYXRlTWVzc2FnZU9yaWdpbgABDBBIZXJlAAAAGFBhcmVudAABABxTaWJsaW5nBACQARhQYXJhSWQAAgAAXQUMeHBhbGxldF9tb29uYmVhbV9mb3JlaWduX2Fzc2V0cxhwYWxsZXQQQ2FsbAQEVAABFFBjcmVhdGVfZm9yZWlnbl9hc3NldBQBIGFzc2V0X2lkvAEcQXNzZXRJZAABSGFzc2V0X3hjbV9sb2NhdGlvbjEBASBMb2NhdGlvbgABIGRlY2ltYWxzCAEIdTgAARhzeW1ib2xhBQF0Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MjU2Pj4AARBuYW1lYQUBdEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPDI1Nj4+AAAEtENyZWF0ZSBuZXcgYXNzZXQgd2l0aCB0aGUgRm9yZWlnbkFzc2V0Q3JlYXRvckxjaGFuZ2VfeGNtX2xvY2F0aW9uCAEgYXNzZXRfaWS8ARxBc3NldElkAAFAbmV3X3hjbV9sb2NhdGlvbjEBASBMb2NhdGlvbgABDLxDaGFuZ2UgdGhlIHhjbSB0eXBlIG1hcHBpbmcgZm9yIGEgZ2l2ZW4gYXNzZXRJZDkBV2UgYWxzbyBjaGFuZ2UgdGhpcyBpZiB0aGUgcHJldmlvdXMgdW5pdHMgcGVyIHNlY29uZCB3aGVyZSBwb2ludGluZyBhdCB0aGUgb2xkJGFzc2V0VHlwZVBmcmVlemVfZm9yZWlnbl9hc3NldAgBIGFzc2V0X2lkvAEcQXNzZXRJZAABRGFsbG93X3hjbV9kZXBvc2l0wAEQYm9vbAACBHhGcmVlemUgYSBnaXZlbiBmb3JlaWduIGFzc2V0SWRYdW5mcmVlemVfZm9yZWlnbl9hc3NldAQBIGFzc2V0X2lkvAEcQXNzZXRJZAADBIBVbmZyZWV6ZSBhIGdpdmVuIGZvcmVpZ24gYXNzZXRJZFRjbGFpbV9wZW5kaW5nX2RlcG9zaXQIASBhc3NldF9pZLwBHEFzc2V0SWQAASxiZW5lZmljaWFyeRkBARBIMTYwAAQM6ENsYWltIGEgcGVuZGluZyBkZXBvc2l0IGZvciBhIGdpdmVuIGFzc2V0IGFuZCBiZW5lZmljaWFyeS4hAUNhbGxhYmxlIGJ5IGFueSBzaWduZWQgb3JpZ2luIChwZXJtaXNzaW9ubGVzcykuIFRva2VucyBhcmUgbWludGVkIHRvIHRoZSEBYmVuZWZpY2lhcnksIG5vdCB0aGUgY2FsbGVyLiBSZXF1aXJlcyB0aGUgYXNzZXQgdG8gYmUgYWN0aXZlICh1bmZyb3plbikuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLmEFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAZQUMYHBhbGxldF94Y21fd2VpZ2h0X3RyYWRlchhwYWxsZXQQQ2FsbAQEVAABFCRhZGRfYXNzZXQIASBsb2NhdGlvbjEBASBMb2NhdGlvbgABOHJlbGF0aXZlX3ByaWNlvAEQdTEyOAAAAChlZGl0X2Fzc2V0CAEgbG9jYXRpb24xAQEgTG9jYXRpb24AAThyZWxhdGl2ZV9wcmljZbwBEHUxMjgAAQBMcGF1c2VfYXNzZXRfc3VwcG9ydAQBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAIAUHJlc3VtZV9hc3NldF9zdXBwb3J0BAEgbG9jYXRpb24xAQEgTG9jYXRpb24AAwAwcmVtb3ZlX2Fzc2V0BAEgbG9jYXRpb24xAQEgTG9jYXRpb24ABAAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuaQUMZHBhbGxldF9lbWVyZ2VuY3lfcGFyYV94Y20YcGFsbGV0EENhbGwEBFQAAQhAcGF1c2VkX3RvX25vcm1hbAAABFBSZXN1bWUgYE5vcm1hbGAgbW9kZVhmYXN0X2F1dGhvcml6ZV91cGdyYWRlBAEkY29kZV9oYXNoLAEcVDo6SGFzaAABBOxBdXRob3JpemUgYSBydW50aW1lIHVwZ3JhZGUuIE9ubHkgY2FsbGFibGUgaW4gYFBhdXNlZGAgbW9kZQQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBQxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0EENhbGwEBFQAARBAZm9yY2Vfc2V0X2N1cnNvcgQBGGN1cnNvcnEFAUxPcHRpb248Q3Vyc29yT2Y8VD4+AAAUXQFBbGxvd3Mgcm9vdCB0byBzZXQgYSBjdXJzb3IgdG8gZm9yY2VmdWxseSBzdGFydCwgc3RvcCBvciBmb3J3YXJkIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4ASQFTaG91bGQgbm9ybWFsbHkgbm90IGJlIG5lZWRlZCBhbmQgaXMgb25seSBpbiBwbGFjZSBhcyBlbWVyZ2VuY3kgbWVhc3VyZS4gTm90ZSB0aGF0BQFyZXN0YXJ0aW5nIHRoZSBtaWdyYXRpb24gcHJvY2VzcyBpbiB0aGlzIG1hbm5lciB3aWxsIG5vdCBjYWxsIHRoZS0BW2BNaWdyYXRpb25TdGF0dXNIYW5kbGVyOjpzdGFydGVkYF0gaG9vayBvciBlbWl0IGFuIGBVcGdyYWRlU3RhcnRlZGAgZXZlbnQuXGZvcmNlX3NldF9hY3RpdmVfY3Vyc29yDAEUaW5kZXgoAQx1MzIAATBpbm5lcl9jdXJzb3J9BQFYT3B0aW9uPFJhd0N1cnNvck9mPFQ+PgABKHN0YXJ0ZWRfYXRdAgFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABGFkBQWxsb3dzIHJvb3QgdG8gc2V0IGFuIGFjdGl2ZSBjdXJzb3IgdG8gZm9yY2VmdWxseSBzdGFydC9mb3J3YXJkIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4ARQFUaGlzIGlzIGFuIGVkZ2UtY2FzZSB2ZXJzaW9uIG9mIFtgU2VsZjo6Zm9yY2Vfc2V0X2N1cnNvcmBdIHRoYXQgYWxsb3dzIHRvIHNldCB0aGVhAWBzdGFydGVkX2F0YCB2YWx1ZSB0byB0aGUgbmV4dCBibG9jayBudW1iZXIuIE90aGVyd2lzZSB0aGlzIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSwgc2luY2VFAWBmb3JjZV9zZXRfY3Vyc29yYCB0YWtlcyBhbiBhYnNvbHV0ZSBibG9jayBudW1iZXIuIFNldHRpbmcgYHN0YXJ0ZWRfYXRgIHRvIGBOb25lYAEBaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgYmxvY2sgbnVtYmVyIHBsdXMgb25lIHNob3VsZCBiZSB1c2VkLkhmb3JjZV9vbmJvYXJkX21ibXMAAhCgRm9yY2VzIHRoZSBvbmJvYXJkaW5nIG9mIHRoZSBtaWdyYXRpb25zLgBdAVRoaXMgcHJvY2VzcyBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgb24gYSBydW50aW1lIHVwZ3JhZGUuIEl0IGlzIGluIHBsYWNlIGFzIGFuIGVtZXJnZW5jefxtZWFzdXJlbWVudC4gVGhlIGN1cnNvciBuZWVkcyB0byBiZSBgTm9uZWAgZm9yIHRoaXMgdG8gc3VjY2VlZC44Y2xlYXJfaGlzdG9yaWMEASBzZWxlY3RvcoEFAaBIaXN0b3JpY0NsZWFudXBTZWxlY3RvcjxJZGVudGlmaWVyT2Y8VD4+AAMUaENsZWFycyB0aGUgYEhpc3RvcmljYCBzZXQuAA0BYG1hcF9jdXJzb3JgIG11c3QgYmUgc2V0IHRvIHRoZSBsYXN0IHZhbHVlIHRoYXQgd2FzIHJldHVybmVkIGJ5IHRoZV0BYEhpc3RvcmljQ2xlYXJlZGAgZXZlbnQuIFRoZSBmaXJzdCB0aW1lIGBOb25lYCBjYW4gYmUgdXNlZC4gYGxpbWl0YCBtdXN0IGJlIGNob3NlbiBpbiBhqHdheSB0aGF0IHdpbGwgcmVzdWx0IGluIGEgc2Vuc2libGUgd2VpZ2h0LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5xBQQYT3B0aW9uBARUAXUFAQgQTm9uZQAAABBTb21lBAB1BQAAAQAAdQUIRHBhbGxldF9taWdyYXRpb25zPE1pZ3JhdGlvbkN1cnNvcggYQ3Vyc29yAT0FLEJsb2NrTnVtYmVyASgBCBhBY3RpdmUEAHkFAYRBY3RpdmVDdXJzb3I8Q3Vyc29yLCBCbG9ja051bWJlcj4AAAAUU3R1Y2sAAQAAeQUIRHBhbGxldF9taWdyYXRpb25zMEFjdGl2ZUN1cnNvcggYQ3Vyc29yAT0FLEJsb2NrTnVtYmVyASgADAEUaW5kZXgoAQx1MzIAATBpbm5lcl9jdXJzb3J9BQE4T3B0aW9uPEN1cnNvcj4AAShzdGFydGVkX2F0KAEsQmxvY2tOdW1iZXIAAH0FBBhPcHRpb24EBFQBPQUBCBBOb25lAAAAEFNvbWUEAD0FAAABAACBBQhEcGFsbGV0X21pZ3JhdGlvbnNcSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3IECElkAWEFAQggU3BlY2lmaWMEAIUFARxWZWM8SWQ+AAAAIFdpbGRjYXJkCAEUbGltaXRdAgEsT3B0aW9uPHUzMj4AATxwcmV2aW91c19jdXJzb3KJBQE8T3B0aW9uPFZlYzx1OD4+AAEAAIUFAAACYQUAiQUEGE9wdGlvbgQEVAEUAQgQTm9uZQAAABBTb21lBAAUAAABAACNBQxEcGFsbGV0X3JhbmRvbW5lc3MYcGFsbGV0EENhbGwEBFQAAQRsc2V0X2JhYmVfcmFuZG9tbmVzc19yZXN1bHRzAAAEHQFQb3B1bGF0ZXMgYFJhbmRvbW5lc3NSZXN1bHRzYCBkdWUgdGhpcyBlcG9jaCB3aXRoIEJBQkUgZXBvY2ggcmFuZG9tbmVzcwQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6RBQxUcGFsbGV0X2JyaWRnZV9ncmFuZHBhGHBhbGxldBBDYWxsCARUAARJAAEYVHN1Ym1pdF9maW5hbGl0eV9wcm9vZggBPGZpbmFsaXR5X3RhcmdldFABYEJveDxCcmlkZ2VkSGVhZGVyPFQsIEk+PgABNGp1c3RpZmljYXRpb26VBQGkR3JhbmRwYUp1c3RpZmljYXRpb248QnJpZGdlZEhlYWRlcjxULCBJPj4AAAwRAVRoaXMgY2FsbCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgYXJvdW5kIE1heSAyMDI0LiBVc2UgdGhlTQFgc3VibWl0X2ZpbmFsaXR5X3Byb29mX2V4YCBpbnN0ZWFkLiBTZW1hbnRpY2FsbHksIHRoaXMgY2FsbCBpcyBhbiBlcXVpdmFsZW50IG9mIHRoZR0BYHN1Ym1pdF9maW5hbGl0eV9wcm9vZl9leGAgY2FsbCB3aXRob3V0IGN1cnJlbnQgYXV0aG9yaXR5IHNldCBpZCBjaGVjay4oaW5pdGlhbGl6ZQQBJGluaXRfZGF0YbEFAbhzdXBlcjo6SW5pdGlhbGl6YXRpb25EYXRhPEJyaWRnZWRIZWFkZXI8VCwgST4+AAEkYQFCb290c3RyYXAgdGhlIGJyaWRnZSBwYWxsZXQgd2l0aCBhbiBpbml0aWFsIGhlYWRlciBhbmQgYXV0aG9yaXR5IHNldCBmcm9tIHdoaWNoIHRvIHN5bmMuAGEBVGhlIGluaXRpYWwgY29uZmlndXJhdGlvbiBwcm92aWRlZCBkb2VzIG5vdCBuZWVkIHRvIGJlIHRoZSBnZW5lc2lzIGhlYWRlciBvZiB0aGUgYnJpZGdlZEkBY2hhaW4sIGl0IGNhbiBiZSBhbnkgYXJiaXRyYXJ5IGhlYWRlci4gWW91IGNhbiBhbHNvIHByb3ZpZGUgdGhlIG5leHQgc2NoZWR1bGVkIHNldHRjaGFuZ2UgaWYgaXQgaXMgYWxyZWFkeSBrbm93LgBZAVRoaXMgZnVuY3Rpb24gaXMgb25seSBhbGxvd2VkIHRvIGJlIGNhbGxlZCBmcm9tIGEgdHJ1c3RlZCBvcmlnaW4gYW5kIHdyaXRlcyB0byBzdG9yYWdlVQF3aXRoIHByYWN0aWNhbGx5IG5vIGNoZWNrcyBpbiB0ZXJtcyBvZiB0aGUgdmFsaWRpdHkgb2YgdGhlIGRhdGEuIEl0IGlzIGltcG9ydGFudCB0aGF0uHlvdSBlbnN1cmUgdGhhdCB2YWxpZCBkYXRhIGlzIGJlaW5nIHBhc3NlZCBpbi4kc2V0X293bmVyBAEkbmV3X293bmVyGQMBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAIMVENoYW5nZSBgUGFsbGV0T3duZXJgLgDcTWF5IG9ubHkgYmUgY2FsbGVkIGVpdGhlciBieSByb290LCBvciBieSBgUGFsbGV0T3duZXJgLkhzZXRfb3BlcmF0aW5nX21vZGUEAThvcGVyYXRpbmdfbW9kZb0FAUhCYXNpY09wZXJhdGluZ01vZGUAAwyUSGFsdCBvciByZXN1bWUgYWxsIHBhbGxldCBvcGVyYXRpb25zLgDcTWF5IG9ubHkgYmUgY2FsbGVkIGVpdGhlciBieSByb290LCBvciBieSBgUGFsbGV0T3duZXJgLmBzdWJtaXRfZmluYWxpdHlfcHJvb2ZfZXgQATxmaW5hbGl0eV90YXJnZXRQAWBCb3g8QnJpZGdlZEhlYWRlcjxULCBJPj4AATRqdXN0aWZpY2F0aW9ulQUBpEdyYW5kcGFKdXN0aWZpY2F0aW9uPEJyaWRnZWRIZWFkZXI8VCwgST4+AAE4Y3VycmVudF9zZXRfaWQYAWxzcF9jb25zZW5zdXNfZ3JhbmRwYTo6U2V0SWQAAWhpc19mcmVlX2V4ZWN1dGlvbl9leHBlY3RlZMABEGJvb2wABGxRAVZlcmlmeSBhIHRhcmdldCBoZWFkZXIgaXMgZmluYWxpemVkIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZmluYWxpdHkgcHJvb2YuIFRoZSBwcm9vZjEBaXMgYXNzdW1lZCB0byBiZSBzaWduZWQgYnkgR1JBTkRQQSBhdXRob3JpdGllcyBzZXQgd2l0aCBgY3VycmVudF9zZXRfaWRgIGlkLgBBAUl0IHdpbGwgdXNlIHRoZSB1bmRlcmx5aW5nIHN0b3JhZ2UgcGFsbGV0IHRvIGZldGNoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50WQFhdXRob3JpdGllcyBhbmQgYmVzdCBmaW5hbGl6ZWQgaGVhZGVyIGluIG9yZGVyIHRvIHZlcmlmeSB0aGF0IHRoZSBoZWFkZXIgaXMgZmluYWxpemVkLgBhAUlmIHN1Y2Nlc3NmdWwgaW4gdmVyaWZpY2F0aW9uLCBpdCB3aWxsIHdyaXRlIHRoZSB0YXJnZXQgaGVhZGVyIHRvIHRoZSB1bmRlcmx5aW5nIHN0b3JhZ2UccGFsbGV0LgBIVGhlIGNhbGwgZmFpbHMgaWY6AFwtIHRoZSBwYWxsZXQgaXMgaGFsdGVkOwDwLSB0aGUgcGFsbGV0IGtub3dzIGJldHRlciBoZWFkZXIgdGhhbiB0aGUgYGZpbmFsaXR5X3RhcmdldGA7AD0BLSB0aGUgaWQgb2YgYmVzdCBHUkFORFBBIGF1dGhvcml0eSBzZXQsIGtub3duIHRvIHRoZSBwYWxsZXQgaXMgbm90IGVxdWFsIHRvIHRoZUwgIGBjdXJyZW50X3NldF9pZGA7AKwtIHZlcmlmaWNhdGlvbiBpcyBub3Qgb3B0aW1pemVkIG9yIGludmFsaWQ7ADkBLSBoZWFkZXIgY29udGFpbnMgZm9yY2VkIGF1dGhvcml0aWVzIHNldCBjaGFuZ2Ugb3IgY2hhbmdlIHdpdGggbm9uLXplcm8gZGVsYXkuAFEBVGhlIGBpc19mcmVlX2V4ZWN1dGlvbl9leHBlY3RlZGAgcGFyYW1ldGVyIGlzIG5vdCByZWFsbHkgdXNlZCBpbnNpZGUgdGhlIGNhbGwuIEl0IGlzWQF1c2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiBleHRlbnNpb24sIHdoaWNoIHNob3VsZCBiZSByZWdpc3RlcmVkIGF0IHRoZSBydW50aW1lIGxldmVsLiBJZl0BdGhpcyBwYXJhbWV0ZXIgaXMgYHRydWVgLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSB0cmVhdGVkIGFzIGludmFsaWQsIGlmIHRoZSBjYWxsIHdvbid0PQFiZSBleGVjdXRlZCBmb3IgZnJlZS4gSWYgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIGlzIG5vdCB1c2VkIGJ5IHRoZSBydW50aW1lLCB0aGlzdHBhcmFtZXRlciBpcyBub3QgdXNlZCBhdCBhbGwuWGZvcmNlX3NldF9wYWxsZXRfc3RhdGUMAUhuZXdfY3VycmVudF9zZXRfaWQYARRTZXRJZAABPG5ld19hdXRob3JpdGllc7UFATRBdXRob3JpdHlMaXN0AAE8bmV3X2Jlc3RfaGVhZGVyUAFgQm94PEJyaWRnZWRIZWFkZXI8VCwgST4+AAUkNQFTZXQgY3VycmVudCBhdXRob3JpdGllcyBzZXQgYW5kIGJlc3QgZmluYWxpemVkIGJyaWRnZWQgaGVhZGVyIHRvIGdpdmVuIHZhbHVlc+AoYWxtb3N0KSB3aXRob3V0IGFueSBjaGVja3MuIFRoaXMgY2FsbCBjYW4gZmFpbCBvbmx5IGlmOgDILSB0aGUgY2FsbCBvcmlnaW4gaXMgbm90IGEgcm9vdCBvciBhIHBhbGxldCBvd25lcjsAwC0gdGhlcmUgYXJlIHRvbyBtYW55IGF1dGhvcml0aWVzIGluIHRoZSBuZXcgc2V0LgA1AU5vIG90aGVyIGNoZWNrcyBhcmUgbWFkZS4gUHJldmlvdXNseSBpbXBvcnRlZCBoZWFkZXJzIHN0YXkgaW4gdGhlIHN0b3JhZ2UgYW5kkGFyZSBzdGlsbCBhY2Nlc3NpYmxlIGFmdGVyIHRoZSBjYWxsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6VBQw8YnBfaGVhZGVyX2NoYWluNGp1c3RpZmljYXRpb25QR3JhbmRwYUp1c3RpZmljYXRpb24EGEhlYWRlcgFQAAwBFHJvdW5kGAEMdTY0AAEYY29tbWl0mQUBXQFmaW5hbGl0eV9ncmFuZHBhOjpDb21taXQ8SGVhZGVyOjpIYXNoLCBIZWFkZXI6Ok51bWJlciwKQXV0aG9yaXR5U2lnbmF0dXJlLCBBdXRob3JpdHlJZD4AAUB2b3Rlc19hbmNlc3RyaWVzTAEsVmVjPEhlYWRlcj4AAJkFCEBmaW5hbGl0eV9ncmFuZHBhGENvbW1pdBAESAEsBE4BKARTAZ0FCElkAaEFAAwBLHRhcmdldF9oYXNoLAEESAABNHRhcmdldF9udW1iZXIoAQROAAEocHJlY29tbWl0c6UFAYRWZWM8U2lnbmVkUHJlY29tbWl0PEgsIE4sIFMsIElkPj4AAJ0FDFBzcF9jb25zZW5zdXNfZ3JhbmRwYQxhcHAkU2lnbmF0dXJlAAAEADEDAUhlZDI1NTE5OjpTaWduYXR1cmUAAKEFDFBzcF9jb25zZW5zdXNfZ3JhbmRwYQxhcHAYUHVibGljAAAEADABPGVkMjU1MTk6OlB1YmxpYwAApQUAAAKpBQCpBQhAZmluYWxpdHlfZ3JhbmRwYTxTaWduZWRQcmVjb21taXQQBEgBLAROASgEUwGdBQhJZAGhBQAMASRwcmVjb21taXStBQE8UHJlY29tbWl0PEgsIE4+AAEkc2lnbmF0dXJlnQUBBFMAAQhpZKEFAQhJZAAArQUIQGZpbmFsaXR5X2dyYW5kcGEkUHJlY29tbWl0CARIASwETgEoAAgBLHRhcmdldF9oYXNoLAEESAABNHRhcmdldF9udW1iZXIoAQROAACxBQg8YnBfaGVhZGVyX2NoYWluSEluaXRpYWxpemF0aW9uRGF0YQQESAFQABABGGhlYWRlclABGEJveDxIPgABOGF1dGhvcml0eV9saXN0tQUBNEF1dGhvcml0eUxpc3QAARhzZXRfaWQYARRTZXRJZAABOG9wZXJhdGluZ19tb2RlvQUBSEJhc2ljT3BlcmF0aW5nTW9kZQAAtQUAAAK5BQC5BQAABAihBRgAvQUIKGJwX3J1bnRpbWVIQmFzaWNPcGVyYXRpbmdNb2RlAAEIGE5vcm1hbAAAABhIYWx0ZWQAAQAAwQUMYHBhbGxldF9icmlkZ2VfcGFyYWNoYWlucxhwYWxsZXQQQ2FsbAgEVAAESQABEFhzdWJtaXRfcGFyYWNoYWluX2hlYWRzDAE4YXRfcmVsYXlfYmxvY2vFBQGIKFJlbGF5QmxvY2tOdW1iZXIsIFJlbGF5QmxvY2tIYXNoKQABKHBhcmFjaGFpbnPJBQFcVmVjPChQYXJhSWQsIFBhcmFIYXNoKT4AAVRwYXJhY2hhaW5faGVhZHNfcHJvb2bVBQE4UGFyYUhlYWRzUHJvb2YAAEC8U3VibWl0IHByb29mIG9mIG9uZSBvciBzZXZlcmFsIHBhcmFjaGFpbiBoZWFkcy4ACQFUaGUgcHJvb2YgaXMgc3VwcG9zZWQgdG8gYmUgcHJvb2Ygb2Ygc29tZSBgSGVhZHNgIGVudHJpZXMgZnJvbSB0aGVRAWBwb2xrYWRvdC1ydW50aW1lLXBhcmFjaGFpbnM6OnBhcmFzYCBwYWxsZXQgaW5zdGFuY2UsIGRlcGxveWVkIGF0IHRoZSBicmlkZ2VkIGNoYWluLk0BVGhlIHByb29mIGlzIHN1cHBvc2VkIHRvIGJlIGNyYWZ0ZWQgYXQgdGhlIGByZWxheV9oZWFkZXJfaGFzaGAgdGhhdCBtdXN0IGFscmVhZHkgYmXcaW1wb3J0ZWQgYnkgY29ycmVzcG9uZGluZyBHUkFORFBBIHBhbGxldCBhdCB0aGlzIGNoYWluLgBIVGhlIGNhbGwgZmFpbHMgaWY6AFwtIHRoZSBwYWxsZXQgaXMgaGFsdGVkOwBFAS0gdGhlIHJlbGF5IGNoYWluIGJsb2NrIGBhdF9yZWxheV9ibG9ja2AgaXMgbm90IGltcG9ydGVkIGJ5IHRoZSBhc3NvY2lhdGVkIGJyaWRnZUQgIEdSQU5EUEEgcGFsbGV0LgBFAVRoZSBjYWxsIG1heSBzdWNjZWVkLCBidXQgc29tZSBoZWFkcyBtYXkgbm90IGJlIHVwZGF0ZWQgZS5nLiBiZWNhdXNlIHBhbGxldCBrbm93c7hiZXR0ZXIgaGVhZCBvciBpdCBpc24ndCB0cmFja2VkIGJ5IHRoZSBwYWxsZXQuJHNldF9vd25lcgQBJG5ld19vd25lchkDAVBPcHRpb248VDo6QWNjb3VudElkPgABDFRDaGFuZ2UgYFBhbGxldE93bmVyYC4A3E1heSBvbmx5IGJlIGNhbGxlZCBlaXRoZXIgYnkgcm9vdCwgb3IgYnkgYFBhbGxldE93bmVyYC5Ic2V0X29wZXJhdGluZ19tb2RlBAE4b3BlcmF0aW5nX21vZGW9BQFIQmFzaWNPcGVyYXRpbmdNb2RlAAIMlEhhbHQgb3IgcmVzdW1lIGFsbCBwYWxsZXQgb3BlcmF0aW9ucy4A3E1heSBvbmx5IGJlIGNhbGxlZCBlaXRoZXIgYnkgcm9vdCwgb3IgYnkgYFBhbGxldE93bmVyYC5kc3VibWl0X3BhcmFjaGFpbl9oZWFkc19leBABOGF0X3JlbGF5X2Jsb2NrxQUBiChSZWxheUJsb2NrTnVtYmVyLCBSZWxheUJsb2NrSGFzaCkAAShwYXJhY2hhaW5zyQUBXFZlYzwoUGFyYUlkLCBQYXJhSGFzaCk+AAFUcGFyYWNoYWluX2hlYWRzX3Byb29m1QUBOFBhcmFIZWFkc1Byb29mAAFoaXNfZnJlZV9leGVjdXRpb25fZXhwZWN0ZWTAARBib29sAANYvFN1Ym1pdCBwcm9vZiBvZiBvbmUgb3Igc2V2ZXJhbCBwYXJhY2hhaW4gaGVhZHMuAAkBVGhlIHByb29mIGlzIHN1cHBvc2VkIHRvIGJlIHByb29mIG9mIHNvbWUgYEhlYWRzYCBlbnRyaWVzIGZyb20gdGhlUQFgcG9sa2Fkb3QtcnVudGltZS1wYXJhY2hhaW5zOjpwYXJhc2AgcGFsbGV0IGluc3RhbmNlLCBkZXBsb3llZCBhdCB0aGUgYnJpZGdlZCBjaGFpbi5NAVRoZSBwcm9vZiBpcyBzdXBwb3NlZCB0byBiZSBjcmFmdGVkIGF0IHRoZSBgcmVsYXlfaGVhZGVyX2hhc2hgIHRoYXQgbXVzdCBhbHJlYWR5IGJl3GltcG9ydGVkIGJ5IGNvcnJlc3BvbmRpbmcgR1JBTkRQQSBwYWxsZXQgYXQgdGhpcyBjaGFpbi4ASFRoZSBjYWxsIGZhaWxzIGlmOgBcLSB0aGUgcGFsbGV0IGlzIGhhbHRlZDsARQEtIHRoZSByZWxheSBjaGFpbiBibG9jayBgYXRfcmVsYXlfYmxvY2tgIGlzIG5vdCBpbXBvcnRlZCBieSB0aGUgYXNzb2NpYXRlZCBicmlkZ2VEICBHUkFORFBBIHBhbGxldC4ARQFUaGUgY2FsbCBtYXkgc3VjY2VlZCwgYnV0IHNvbWUgaGVhZHMgbWF5IG5vdCBiZSB1cGRhdGVkIGUuZy4gYmVjYXVzZSBwYWxsZXQga25vd3O4YmV0dGVyIGhlYWQgb3IgaXQgaXNuJ3QgdHJhY2tlZCBieSB0aGUgcGFsbGV0LgBRAVRoZSBgaXNfZnJlZV9leGVjdXRpb25fZXhwZWN0ZWRgIHBhcmFtZXRlciBpcyBub3QgcmVhbGx5IHVzZWQgaW5zaWRlIHRoZSBjYWxsLiBJdCBpc1kBdXNlZCBieSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uLCB3aGljaCBzaG91bGQgYmUgcmVnaXN0ZXJlZCBhdCB0aGUgcnVudGltZSBsZXZlbC4gSWZdAXRoaXMgcGFyYW1ldGVyIGlzIGB0cnVlYCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgYmUgdHJlYXRlZCBhcyBpbnZhbGlkLCBpZiB0aGUgY2FsbCB3b24ndD0BYmUgZXhlY3V0ZWQgZm9yIGZyZWUuIElmIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBpcyBub3QgdXNlZCBieSB0aGUgcnVudGltZSwgdGhpc3RwYXJhbWV0ZXIgaXMgbm90IHVzZWQgYXQgYWxsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7FBQAABAgoLADJBQAAAs0FAM0FAAAECNEFLADRBQxAYnBfcG9sa2Fkb3RfY29yZShwYXJhY2hhaW5zGFBhcmFJZAAABAAoAQx1MzIAANUFDEBicF9wb2xrYWRvdF9jb3JlKHBhcmFjaGFpbnM4UGFyYUhlYWRzUHJvb2YAAAQBNHN0b3JhZ2VfcHJvb2YkATxSYXdTdG9yYWdlUHJvb2YAANkFDFhwYWxsZXRfYnJpZGdlX21lc3NhZ2VzGHBhbGxldBBDYWxsCARUAARJAAEQJHNldF9vd25lcgQBJG5ld19vd25lchkDAVBPcHRpb248VDo6QWNjb3VudElkPgAADFRDaGFuZ2UgYFBhbGxldE93bmVyYC4A3E1heSBvbmx5IGJlIGNhbGxlZCBlaXRoZXIgYnkgcm9vdCwgb3IgYnkgYFBhbGxldE93bmVyYC5Ic2V0X29wZXJhdGluZ19tb2RlBAE4b3BlcmF0aW5nX21vZGXdBQFUTWVzc2FnZXNPcGVyYXRpbmdNb2RlAAEMqEhhbHQgb3IgcmVzdW1lIGFsbC9zb21lIHBhbGxldCBvcGVyYXRpb25zLgDcTWF5IG9ubHkgYmUgY2FsbGVkIGVpdGhlciBieSByb290LCBvciBieSBgUGFsbGV0T3duZXJgLlhyZWNlaXZlX21lc3NhZ2VzX3Byb29mEAFscmVsYXllcl9pZF9hdF9icmlkZ2VkX2NoYWluAAGEQWNjb3VudElkT2Y8QnJpZGdlZENoYWluT2Y8VCwgST4+AAEUcHJvb2bhBQExAUJveDxGcm9tQnJpZGdlZENoYWluTWVzc2FnZXNQcm9vZjxIYXNoT2Y8QnJpZGdlZENoYWluT2Y8VCwgST4+LCBUCjo6TGFuZUlkPj4AAThtZXNzYWdlc19jb3VudCgBDHUzMgABPGRpc3BhdGNoX3dlaWdodHEBARhXZWlnaHQAAlSoUmVjZWl2ZSBtZXNzYWdlcyBwcm9vZiBmcm9tIGJyaWRnZWQgY2hhaW4uAD0BVGhlIHdlaWdodCBvZiB0aGUgY2FsbCBhc3N1bWVzIHRoYXQgdGhlIHRyYW5zYWN0aW9uIGFsd2F5cyBicmluZ3Mgb3V0Ym91bmQgbGFuZVkBc3RhdGUgdXBkYXRlLiBCZWNhdXNlIG9mIHRoYXQsIHRoZSBzdWJtaXR0ZXIgKHJlbGF5ZXIpIGhhcyBubyBiZW5lZml0IG9mIG5vdCBpbmNsdWRpbmc1AXRoaXMgZGF0YSBpbiB0aGUgdHJhbnNhY3Rpb24sIHNvIHJld2FyZCBjb25maXJtYXRpb25zIGxhZ3Mgc2hvdWxkIGJlIG1pbmltYWwuAEhUaGUgY2FsbCBmYWlscyBpZjoAXC0gdGhlIHBhbGxldCBpcyBoYWx0ZWQ7AJQtIHRoZSBjYWxsIG9yaWdpbiBpcyBub3QgYFNpZ25lZChfKWA7AKwtIHRoZXJlIGFyZSB0b28gbWFueSBtZXNzYWdlcyBpbiB0aGUgcHJvb2Y7AF0BLSB0aGUgcHJvb2YgdmVyaWZpY2F0aW9uIHByb2NlZHVyZSByZXR1cm5zIGFuIGVycm9yIC0gZS5nLiBiZWNhdXNlIGhlYWRlciB1c2VkIHRvIGNyYWZ06CAgcHJvb2YgaXMgbm90IGltcG9ydGVkIGJ5IHRoZSBhc3NvY2lhdGVkIGZpbmFsaXR5IHBhbGxldDsAUQEtIHRoZSBgZGlzcGF0Y2hfd2VpZ2h0YCBhcmd1bWVudCBpcyBub3Qgc3VmZmljaWVudCB0byBkaXNwYXRjaCBhbGwgYnVuZGxlZCBtZXNzYWdlcy4AVQFUaGUgY2FsbCBtYXkgc3VjY2VlZCwgYnV0IHNvbWUgbWVzc2FnZXMgbWF5IG5vdCBiZSBkZWxpdmVyZWQgZS5nLiBpZiB0aGV5IGFyZSBub3QgZml0kGludG8gdGhlIHVucmV3YXJkZWQgcmVsYXllcnMgdmVjdG9yLnxyZWNlaXZlX21lc3NhZ2VzX2RlbGl2ZXJ5X3Byb29mCAEUcHJvb2bpBQE9AUZyb21CcmlkZ2VkQ2hhaW5NZXNzYWdlc0RlbGl2ZXJ5UHJvb2Y8SGFzaE9mPEJyaWRnZWRDaGFpbk9mPFQsIEk+PiwgVAo6OkxhbmVJZD4AAThyZWxheWVyc19zdGF0Ze0FAVxVbnJld2FyZGVkUmVsYXllcnNTdGF0ZQADBMxSZWNlaXZlIG1lc3NhZ2VzIGRlbGl2ZXJ5IHByb29mIGZyb20gYnJpZGdlZCBjaGFpbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu3QUILGJwX21lc3NhZ2VzVE1lc3NhZ2VzT3BlcmF0aW5nTW9kZQABCBRCYXNpYwQAvQUBSEJhc2ljT3BlcmF0aW5nTW9kZQAAAGRSZWplY3RpbmdPdXRib3VuZE1lc3NhZ2VzAAEAAOEFDCxicF9tZXNzYWdlczB0YXJnZXRfY2hhaW50RnJvbUJyaWRnZWRDaGFpbk1lc3NhZ2VzUHJvb2YIREJyaWRnZWRIZWFkZXJIYXNoASwQTGFuZQHlBQAUAUxicmlkZ2VkX2hlYWRlcl9oYXNoLAFEQnJpZGdlZEhlYWRlckhhc2gAATRzdG9yYWdlX3Byb29mJAE8UmF3U3RvcmFnZVByb29mAAEQbGFuZeUFARBMYW5lAAEwbm9uY2VzX3N0YXJ0GAEwTWVzc2FnZU5vbmNlAAEobm9uY2VzX2VuZBgBME1lc3NhZ2VOb25jZQAA5QUMLGJwX21lc3NhZ2VzEGxhbmUwSGFzaGVkTGFuZUlkAAAEACwBEEgyNTYAAOkFDCxicF9tZXNzYWdlczBzb3VyY2VfY2hhaW6URnJvbUJyaWRnZWRDaGFpbk1lc3NhZ2VzRGVsaXZlcnlQcm9vZghEQnJpZGdlZEhlYWRlckhhc2gBLBhMYW5lSWQB5QUADAFMYnJpZGdlZF9oZWFkZXJfaGFzaCwBREJyaWRnZWRIZWFkZXJIYXNoAAE0c3RvcmFnZV9wcm9vZiQBPFJhd1N0b3JhZ2VQcm9vZgABEGxhbmXlBQEYTGFuZUlkAADtBQgsYnBfbWVzc2FnZXNcVW5yZXdhcmRlZFJlbGF5ZXJzU3RhdGUAABABaHVucmV3YXJkZWRfcmVsYXllcl9lbnRyaWVzGAEwTWVzc2FnZU5vbmNlAAFgbWVzc2FnZXNfaW5fb2xkZXN0X2VudHJ5GAEwTWVzc2FnZU5vbmNlAAE4dG90YWxfbWVzc2FnZXMYATBNZXNzYWdlTm9uY2UAAVBsYXN0X2RlbGl2ZXJlZF9ub25jZRgBME1lc3NhZ2VOb25jZQAA8QUMVHBhbGxldF94Y21fYnJpZGdlX2h1YhhwYWxsZXQQQ2FsbAgEVAAESQABCCxvcGVuX2JyaWRnZQQBlGJyaWRnZV9kZXN0aW5hdGlvbl91bml2ZXJzYWxfbG9jYXRpb271BQF4Qm94PFZlcnNpb25lZEludGVyaW9yTG9jYXRpb24+AAAskE9wZW4gYSBicmlkZ2UgYmV0d2VlbiB0d28gbG9jYXRpb25zLgBFAVRoZSBjYWxsZXIgbXVzdCBiZSB3aXRoaW4gdGhlIGBUOjpPcGVuQnJpZGdlT3JpZ2luYCBmaWx0ZXIgKHByZXN1bWFibHk6IGEgc2libGluZ10BcGFyYWNoYWluIG9yIGEgcGFyZW50IHJlbGF5IGNoYWluKS4gVGhlIGBicmlkZ2VfZGVzdGluYXRpb25fdW5pdmVyc2FsX2xvY2F0aW9uYCBtdXN0IGJlGQFhIGRlc3RpbmF0aW9uIHdpdGhpbiB0aGUgY29uc2Vuc3VzIG9mIHRoZSBgVDo6QnJpZGdlZE5ldHdvcmtgIG5ldHdvcmsuACkBVGhlIGBCcmlkZ2VEZXBvc2l0YCBhbW91bnQgaXMgcmVzZXJ2ZWQgb24gdGhlIGNhbGxlciBhY2NvdW50LiBUaGlzIGRlcG9zaXSUaXMgdW5yZXNlcnZlZCBhZnRlciBicmlkZ2UgaXMgY2xvc2VkLgBdAVRoZSBzdGF0ZXMgYWZ0ZXIgdGhpcyBjYWxsOiBicmlkZ2UgaXMgYE9wZW5lZGAsIG91dGJvdW5kIGxhbmUgaXMgYE9wZW5lZGAsIGluYm91bmQgbGFuZTBpcyBgT3BlbmVkYC4wY2xvc2VfYnJpZGdlCAGUYnJpZGdlX2Rlc3RpbmF0aW9uX3VuaXZlcnNhbF9sb2NhdGlvbvUFAXhCb3g8VmVyc2lvbmVkSW50ZXJpb3JMb2NhdGlvbj4AAUhtYXlfcHJ1bmVfbWVzc2FnZXMYATBNZXNzYWdlTm9uY2UAAURgVHJ5IHRvIGNsb3NlIHRoZSBicmlkZ2UuADkBQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSAib3duZXIiIG9mIHRoaXMgc2lkZSBvZiB0aGUgYnJpZGdlLCBtZWFuaW5nIHRoYXQgdGhl7GluYm91bmQgWENNIGNoYW5uZWwgd2l0aCB0aGUgbG9jYWwgb3JpZ2luIGNoYWluIGlzIHdvcmtpbmcuAE0BQ2xvc2VkIGJyaWRnZSBpcyBhIGJyaWRnZSB3aXRob3V0IGFueSB0cmFjZXMgaW4gdGhlIHJ1bnRpbWUgc3RvcmFnZS4gU28gdGhpcyBtZXRob2RBAWZpcnN0IHRyaWVzIHRvIHBydW5lIGFsbCBxdWV1ZWQgbWVzc2FnZXMgYXQgdGhlIG91dGJvdW5kIGxhbmUuIFdoZW4gdGhlcmUgYXJlIG5vQQFvdXRib3VuZCBtZXNzYWdlcyBsZWZ0LCBvdXRib3VuZCBhbmQgaW5ib3VuZCBsYW5lcyBhcmUgcHVyZ2VkLiBBZnRlciB0aGF0LCBmdW5kc+hhcmUgcmV0dXJuZWQgYmFjayB0byB0aGUgb3duZXIgb2YgdGhpcyBzaWRlIG9mIHRoZSBicmlkZ2UuAC0BVGhlIG51bWJlciBvZiBtZXNzYWdlcyB0aGF0IHdlIG1heSBwcnVuZSBpbiBhIHNpbmdsZSBjYWxsIGlzIGxpbWl0ZWQgYnkgdGhlSQFgbWF5X3BydW5lX21lc3NhZ2VzYCBhcmd1bWVudC4gSWYgdGhlcmUgYXJlIG1vcmUgbWVzc2FnZXMgaW4gdGhlIHF1ZXVlLCB0aGUgbWV0aG9kRQFwcnVuZXMgZXhhY3RseSBgbWF5X3BydW5lX21lc3NhZ2VzYCBhbmQgZXhpdHMgZWFybHkuIFRoZSBjYWxsZXIgbWF5IGNhbGwgaXQgYWdhaW7gdW50aWwgb3V0Ym91bmQgcXVldWUgaXMgZGVwbGV0ZWQgYW5kIGdldCBoaXMgZnVuZHMgYmFjay4ANQFUaGUgc3RhdGVzIGFmdGVyIHRoaXMgY2FsbDogZXZlcnl0aGluZyBpcyBlaXRoZXIgYENsb3NlZGAsIG9yIHB1cmdlZCBmcm9tIHRoZUBydW50aW1lIHN0b3JhZ2UuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvUFCAx4Y21kVmVyc2lvbmVkSW50ZXJpb3JMb2NhdGlvbgABDAhWMwQASQMBZHYzOjpJbnRlcmlvck11bHRpTG9jYXRpb24AAwAIVjQEAF0DAVB2NDo6SW50ZXJpb3JMb2NhdGlvbgAEAAhWNQQANQEBUHY1OjpJbnRlcmlvckxvY2F0aW9uAAUAAPkFEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc1RjaGVja19ub25femVyb19zZW5kZXJIQ2hlY2tOb25aZXJvU2VuZGVyBARUAAAAAP0FAAAEAAABBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNIY2hlY2tfc3BlY192ZXJzaW9uQENoZWNrU3BlY1ZlcnNpb24EBFQAAAAABQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zQGNoZWNrX3R4X3ZlcnNpb244Q2hlY2tUeFZlcnNpb24EBFQAAAAACQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zNGNoZWNrX2dlbmVzaXMwQ2hlY2tHZW5lc2lzBARUAAAAAA0GEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczxjaGVja19tb3J0YWxpdHk4Q2hlY2tNb3J0YWxpdHkEBFQAAAQAEQYBDEVyYQAAEQYQKHNwX3J1bnRpbWUcZ2VuZXJpYwxlcmEMRXJhAAEBBCBJbW1vcnRhbAAAABxNb3J0YWwxBAAIAAABABxNb3J0YWwyBAAIAAACABxNb3J0YWwzBAAIAAADABxNb3J0YWw0BAAIAAAEABxNb3J0YWw1BAAIAAAFABxNb3J0YWw2BAAIAAAGABxNb3J0YWw3BAAIAAAHABxNb3J0YWw4BAAIAAAIABxNb3J0YWw5BAAIAAAJACBNb3J0YWwxMAQACAAACgAgTW9ydGFsMTEEAAgAAAsAIE1vcnRhbDEyBAAIAAAMACBNb3J0YWwxMwQACAAADQAgTW9ydGFsMTQEAAgAAA4AIE1vcnRhbDE1BAAIAAAPACBNb3J0YWwxNgQACAAAEAAgTW9ydGFsMTcEAAgAABEAIE1vcnRhbDE4BAAIAAASACBNb3J0YWwxOQQACAAAEwAgTW9ydGFsMjAEAAgAABQAIE1vcnRhbDIxBAAIAAAVACBNb3J0YWwyMgQACAAAFgAgTW9ydGFsMjMEAAgAABcAIE1vcnRhbDI0BAAIAAAYACBNb3J0YWwyNQQACAAAGQAgTW9ydGFsMjYEAAgAABoAIE1vcnRhbDI3BAAIAAAbACBNb3J0YWwyOAQACAAAHAAgTW9ydGFsMjkEAAgAAB0AIE1vcnRhbDMwBAAIAAAeACBNb3J0YWwzMQQACAAAHwAgTW9ydGFsMzIEAAgAACAAIE1vcnRhbDMzBAAIAAAhACBNb3J0YWwzNAQACAAAIgAgTW9ydGFsMzUEAAgAACMAIE1vcnRhbDM2BAAIAAAkACBNb3J0YWwzNwQACAAAJQAgTW9ydGFsMzgEAAgAACYAIE1vcnRhbDM5BAAIAAAnACBNb3J0YWw0MAQACAAAKAAgTW9ydGFsNDEEAAgAACkAIE1vcnRhbDQyBAAIAAAqACBNb3J0YWw0MwQACAAAKwAgTW9ydGFsNDQEAAgAACwAIE1vcnRhbDQ1BAAIAAAtACBNb3J0YWw0NgQACAAALgAgTW9ydGFsNDcEAAgAAC8AIE1vcnRhbDQ4BAAIAAAwACBNb3J0YWw0OQQACAAAMQAgTW9ydGFsNTAEAAgAADIAIE1vcnRhbDUxBAAIAAAzACBNb3J0YWw1MgQACAAANAAgTW9ydGFsNTMEAAgAADUAIE1vcnRhbDU0BAAIAAA2ACBNb3J0YWw1NQQACAAANwAgTW9ydGFsNTYEAAgAADgAIE1vcnRhbDU3BAAIAAA5ACBNb3J0YWw1OAQACAAAOgAgTW9ydGFsNTkEAAgAADsAIE1vcnRhbDYwBAAIAAA8ACBNb3J0YWw2MQQACAAAPQAgTW9ydGFsNjIEAAgAAD4AIE1vcnRhbDYzBAAIAAA/ACBNb3J0YWw2NAQACAAAQAAgTW9ydGFsNjUEAAgAAEEAIE1vcnRhbDY2BAAIAABCACBNb3J0YWw2NwQACAAAQwAgTW9ydGFsNjgEAAgAAEQAIE1vcnRhbDY5BAAIAABFACBNb3J0YWw3MAQACAAARgAgTW9ydGFsNzEEAAgAAEcAIE1vcnRhbDcyBAAIAABIACBNb3J0YWw3MwQACAAASQAgTW9ydGFsNzQEAAgAAEoAIE1vcnRhbDc1BAAIAABLACBNb3J0YWw3NgQACAAATAAgTW9ydGFsNzcEAAgAAE0AIE1vcnRhbDc4BAAIAABOACBNb3J0YWw3OQQACAAATwAgTW9ydGFsODAEAAgAAFAAIE1vcnRhbDgxBAAIAABRACBNb3J0YWw4MgQACAAAUgAgTW9ydGFsODMEAAgAAFMAIE1vcnRhbDg0BAAIAABUACBNb3J0YWw4NQQACAAAVQAgTW9ydGFsODYEAAgAAFYAIE1vcnRhbDg3BAAIAABXACBNb3J0YWw4OAQACAAAWAAgTW9ydGFsODkEAAgAAFkAIE1vcnRhbDkwBAAIAABaACBNb3J0YWw5MQQACAAAWwAgTW9ydGFsOTIEAAgAAFwAIE1vcnRhbDkzBAAIAABdACBNb3J0YWw5NAQACAAAXgAgTW9ydGFsOTUEAAgAAF8AIE1vcnRhbDk2BAAIAABgACBNb3J0YWw5NwQACAAAYQAgTW9ydGFsOTgEAAgAAGIAIE1vcnRhbDk5BAAIAABjACRNb3J0YWwxMDAEAAgAAGQAJE1vcnRhbDEwMQQACAAAZQAkTW9ydGFsMTAyBAAIAABmACRNb3J0YWwxMDMEAAgAAGcAJE1vcnRhbDEwNAQACAAAaAAkTW9ydGFsMTA1BAAIAABpACRNb3J0YWwxMDYEAAgAAGoAJE1vcnRhbDEwNwQACAAAawAkTW9ydGFsMTA4BAAIAABsACRNb3J0YWwxMDkEAAgAAG0AJE1vcnRhbDExMAQACAAAbgAkTW9ydGFsMTExBAAIAABvACRNb3J0YWwxMTIEAAgAAHAAJE1vcnRhbDExMwQACAAAcQAkTW9ydGFsMTE0BAAIAAByACRNb3J0YWwxMTUEAAgAAHMAJE1vcnRhbDExNgQACAAAdAAkTW9ydGFsMTE3BAAIAAB1ACRNb3J0YWwxMTgEAAgAAHYAJE1vcnRhbDExOQQACAAAdwAkTW9ydGFsMTIwBAAIAAB4ACRNb3J0YWwxMjEEAAgAAHkAJE1vcnRhbDEyMgQACAAAegAkTW9ydGFsMTIzBAAIAAB7ACRNb3J0YWwxMjQEAAgAAHwAJE1vcnRhbDEyNQQACAAAfQAkTW9ydGFsMTI2BAAIAAB+ACRNb3J0YWwxMjcEAAgAAH8AJE1vcnRhbDEyOAQACAAAgAAkTW9ydGFsMTI5BAAIAACBACRNb3J0YWwxMzAEAAgAAIIAJE1vcnRhbDEzMQQACAAAgwAkTW9ydGFsMTMyBAAIAACEACRNb3J0YWwxMzMEAAgAAIUAJE1vcnRhbDEzNAQACAAAhgAkTW9ydGFsMTM1BAAIAACHACRNb3J0YWwxMzYEAAgAAIgAJE1vcnRhbDEzNwQACAAAiQAkTW9ydGFsMTM4BAAIAACKACRNb3J0YWwxMzkEAAgAAIsAJE1vcnRhbDE0MAQACAAAjAAkTW9ydGFsMTQxBAAIAACNACRNb3J0YWwxNDIEAAgAAI4AJE1vcnRhbDE0MwQACAAAjwAkTW9ydGFsMTQ0BAAIAACQACRNb3J0YWwxNDUEAAgAAJEAJE1vcnRhbDE0NgQACAAAkgAkTW9ydGFsMTQ3BAAIAACTACRNb3J0YWwxNDgEAAgAAJQAJE1vcnRhbDE0OQQACAAAlQAkTW9ydGFsMTUwBAAIAACWACRNb3J0YWwxNTEEAAgAAJcAJE1vcnRhbDE1MgQACAAAmAAkTW9ydGFsMTUzBAAIAACZACRNb3J0YWwxNTQEAAgAAJoAJE1vcnRhbDE1NQQACAAAmwAkTW9ydGFsMTU2BAAIAACcACRNb3J0YWwxNTcEAAgAAJ0AJE1vcnRhbDE1OAQACAAAngAkTW9ydGFsMTU5BAAIAACfACRNb3J0YWwxNjAEAAgAAKAAJE1vcnRhbDE2MQQACAAAoQAkTW9ydGFsMTYyBAAIAACiACRNb3J0YWwxNjMEAAgAAKMAJE1vcnRhbDE2NAQACAAApAAkTW9ydGFsMTY1BAAIAAClACRNb3J0YWwxNjYEAAgAAKYAJE1vcnRhbDE2NwQACAAApwAkTW9ydGFsMTY4BAAIAACoACRNb3J0YWwxNjkEAAgAAKkAJE1vcnRhbDE3MAQACAAAqgAkTW9ydGFsMTcxBAAIAACrACRNb3J0YWwxNzIEAAgAAKwAJE1vcnRhbDE3MwQACAAArQAkTW9ydGFsMTc0BAAIAACuACRNb3J0YWwxNzUEAAgAAK8AJE1vcnRhbDE3NgQACAAAsAAkTW9ydGFsMTc3BAAIAACxACRNb3J0YWwxNzgEAAgAALIAJE1vcnRhbDE3OQQACAAAswAkTW9ydGFsMTgwBAAIAAC0ACRNb3J0YWwxODEEAAgAALUAJE1vcnRhbDE4MgQACAAAtgAkTW9ydGFsMTgzBAAIAAC3ACRNb3J0YWwxODQEAAgAALgAJE1vcnRhbDE4NQQACAAAuQAkTW9ydGFsMTg2BAAIAAC6ACRNb3J0YWwxODcEAAgAALsAJE1vcnRhbDE4OAQACAAAvAAkTW9ydGFsMTg5BAAIAAC9ACRNb3J0YWwxOTAEAAgAAL4AJE1vcnRhbDE5MQQACAAAvwAkTW9ydGFsMTkyBAAIAADAACRNb3J0YWwxOTMEAAgAAMEAJE1vcnRhbDE5NAQACAAAwgAkTW9ydGFsMTk1BAAIAADDACRNb3J0YWwxOTYEAAgAAMQAJE1vcnRhbDE5NwQACAAAxQAkTW9ydGFsMTk4BAAIAADGACRNb3J0YWwxOTkEAAgAAMcAJE1vcnRhbDIwMAQACAAAyAAkTW9ydGFsMjAxBAAIAADJACRNb3J0YWwyMDIEAAgAAMoAJE1vcnRhbDIwMwQACAAAywAkTW9ydGFsMjA0BAAIAADMACRNb3J0YWwyMDUEAAgAAM0AJE1vcnRhbDIwNgQACAAAzgAkTW9ydGFsMjA3BAAIAADPACRNb3J0YWwyMDgEAAgAANAAJE1vcnRhbDIwOQQACAAA0QAkTW9ydGFsMjEwBAAIAADSACRNb3J0YWwyMTEEAAgAANMAJE1vcnRhbDIxMgQACAAA1AAkTW9ydGFsMjEzBAAIAADVACRNb3J0YWwyMTQEAAgAANYAJE1vcnRhbDIxNQQACAAA1wAkTW9ydGFsMjE2BAAIAADYACRNb3J0YWwyMTcEAAgAANkAJE1vcnRhbDIxOAQACAAA2gAkTW9ydGFsMjE5BAAIAADbACRNb3J0YWwyMjAEAAgAANwAJE1vcnRhbDIyMQQACAAA3QAkTW9ydGFsMjIyBAAIAADeACRNb3J0YWwyMjMEAAgAAN8AJE1vcnRhbDIyNAQACAAA4AAkTW9ydGFsMjI1BAAIAADhACRNb3J0YWwyMjYEAAgAAOIAJE1vcnRhbDIyNwQACAAA4wAkTW9ydGFsMjI4BAAIAADkACRNb3J0YWwyMjkEAAgAAOUAJE1vcnRhbDIzMAQACAAA5gAkTW9ydGFsMjMxBAAIAADnACRNb3J0YWwyMzIEAAgAAOgAJE1vcnRhbDIzMwQACAAA6QAkTW9ydGFsMjM0BAAIAADqACRNb3J0YWwyMzUEAAgAAOsAJE1vcnRhbDIzNgQACAAA7AAkTW9ydGFsMjM3BAAIAADtACRNb3J0YWwyMzgEAAgAAO4AJE1vcnRhbDIzOQQACAAA7wAkTW9ydGFsMjQwBAAIAADwACRNb3J0YWwyNDEEAAgAAPEAJE1vcnRhbDI0MgQACAAA8gAkTW9ydGFsMjQzBAAIAADzACRNb3J0YWwyNDQEAAgAAPQAJE1vcnRhbDI0NQQACAAA9QAkTW9ydGFsMjQ2BAAIAAD2ACRNb3J0YWwyNDcEAAgAAPcAJE1vcnRhbDI0OAQACAAA+AAkTW9ydGFsMjQ5BAAIAAD5ACRNb3J0YWwyNTAEAAgAAPoAJE1vcnRhbDI1MQQACAAA+wAkTW9ydGFsMjUyBAAIAAD8ACRNb3J0YWwyNTMEAAgAAP0AJE1vcnRhbDI1NAQACAAA/gAkTW9ydGFsMjU1BAAIAAD/AAAVBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMsY2hlY2tfbm9uY2UoQ2hlY2tOb25jZQQEVAAABABUASBUOjpOb25jZQAAGQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zMGNoZWNrX3dlaWdodCxDaGVja1dlaWdodAQEVAAAAAAdBghocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnRgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW50BARUAAAEALgBMEJhbGFuY2VPZjxUPgAAIQYIQG1vb25iZWFtX3J1bnRpbWWYQnJpZGdlUmVqZWN0T2Jzb2xldGVIZWFkZXJzQW5kTWVzc2FnZXMAAAAAJQYIdGZyYW1lX21ldGFkYXRhX2hhc2hfZXh0ZW5zaW9uRENoZWNrTWV0YWRhdGFIYXNoBARUAAAEARBtb2RlKQYBEE1vZGUAACkGCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbhBNb2RlAAEIIERpc2FibGVkAAAAHEVuYWJsZWQAAQAALQYEGE9wdGlvbgQEVAEwAQgQTm9uZQAAABBTb21lBAAwAAABAAAxBggwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEoLEFjY291bnREYXRhATUGABQBFG5vbmNlKAEUTm9uY2UAASRjb25zdW1lcnMoASBSZWZDb3VudAABJHByb3ZpZGVycygBIFJlZkNvdW50AAEsc3VmZmljaWVudHMoASBSZWZDb3VudAABEGRhdGE1BgEsQWNjb3VudERhdGEAADUGDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBvAAQARBmcmVlvAEcQmFsYW5jZQABIHJlc2VydmVkvAEcQmFsYW5jZQABGGZyb3plbrwBHEJhbGFuY2UAARRmbGFnczkGAShFeHRyYUZsYWdzAAA5Bgw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzKEV4dHJhRmxhZ3MAAAQAvAEQdTEyOAAAPQYMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAFxAQAMARhub3JtYWxxAQEEVAABLG9wZXJhdGlvbmFscQEBBFQAASRtYW5kYXRvcnlxAQEEVAAAQQYAAAJFBgBFBggwZnJhbWVfc3lzdGVtLEV2ZW50UmVjb3JkCARFAUkGBFQBLAAMARRwaGFzZdkHARRQaGFzZQABFGV2ZW50SQYBBEUAARh0b3BpY3OVAgEYVmVjPFQ+AABJBghAbW9vbmJlYW1fcnVudGltZTBSdW50aW1lRXZlbnQAAaQYU3lzdGVtBABNBgFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EAHUGAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFdmVudDxSdW50aW1lPgABACxSb290VGVzdGluZwQAeQYBjHBhbGxldF9yb290X3Rlc3Rpbmc6OkV2ZW50PFJ1bnRpbWU+AAUAIEJhbGFuY2VzBAB9BgF8cGFsbGV0X2JhbGFuY2VzOjpFdmVudDxSdW50aW1lPgAKAEhUcmFuc2FjdGlvblBheW1lbnQEAJUGAahwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudDo6RXZlbnQ8UnVudGltZT4ACwBAUGFyYWNoYWluU3Rha2luZwQAmQYBoHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZzo6RXZlbnQ8UnVudGltZT4AFAAwQXV0aG9yRmlsdGVyBACpBgGAcGFsbGV0X2F1dGhvcl9zbG90X2ZpbHRlcjo6RXZlbnQAFgA0QXV0aG9yTWFwcGluZwQArQYBlHBhbGxldF9hdXRob3JfbWFwcGluZzo6RXZlbnQ8UnVudGltZT4AFwBATW9vbmJlYW1PcmJpdGVycwQAtQYBoHBhbGxldF9tb29uYmVhbV9vcmJpdGVyczo6RXZlbnQ8UnVudGltZT4AGAAcVXRpbGl0eQQAuQYBVHBhbGxldF91dGlsaXR5OjpFdmVudAAeABRQcm94eQQAwQYBcHBhbGxldF9wcm94eTo6RXZlbnQ8UnVudGltZT4AHwA8TWFpbnRlbmFuY2VNb2RlBADJBgF4cGFsbGV0X21haW50ZW5hbmNlX21vZGU6OkV2ZW50ACAAIElkZW50aXR5BADNBgF8cGFsbGV0X2lkZW50aXR5OjpFdmVudDxSdW50aW1lPgAhACBNdWx0aXNpZwQA0QYBfHBhbGxldF9tdWx0aXNpZzo6RXZlbnQ8UnVudGltZT4AJAAoUGFyYW1ldGVycwQA1QYBhHBhbGxldF9wYXJhbWV0ZXJzOjpFdmVudDxSdW50aW1lPgAmAAxFVk0EAP0GAWhwYWxsZXRfZXZtOjpFdmVudDxSdW50aW1lPgAzACBFdGhlcmV1bQQABQcBWHBhbGxldF9ldGhlcmV1bTo6RXZlbnQANAAkU2NoZWR1bGVyBAApBwGAcGFsbGV0X3NjaGVkdWxlcjo6RXZlbnQ8UnVudGltZT4APAAgUHJlaW1hZ2UEAC0HAXxwYWxsZXRfcHJlaW1hZ2U6OkV2ZW50PFJ1bnRpbWU+AD4AQENvbnZpY3Rpb25Wb3RpbmcEADEHAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkV2ZW50PFJ1bnRpbWU+AD8AJFJlZmVyZW5kYQQANQcBgHBhbGxldF9yZWZlcmVuZGE6OkV2ZW50PFJ1bnRpbWU+AEAAJFdoaXRlbGlzdAQAPQcBgHBhbGxldF93aGl0ZWxpc3Q6OkV2ZW50PFJ1bnRpbWU+AEIAZFRyZWFzdXJ5Q291bmNpbENvbGxlY3RpdmUEAE0HAfxwYWxsZXRfY29sbGVjdGl2ZTo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2NvbGxlY3RpdmU6Okluc3RhbmNlMz4ASABsT3BlblRlY2hDb21taXR0ZWVDb2xsZWN0aXZlBABRBwH8cGFsbGV0X2NvbGxlY3RpdmU6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTQ+AEkAIFRyZWFzdXJ5BABVBwF8cGFsbGV0X3RyZWFzdXJ5OjpFdmVudDxSdW50aW1lPgBQAEBDcm93ZGxvYW5SZXdhcmRzBABZBwGgcGFsbGV0X2Nyb3dkbG9hbl9yZXdhcmRzOjpFdmVudDxSdW50aW1lPgBaACRYY21wUXVldWUEAF0HAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFdmVudDxSdW50aW1lPgBkAChDdW11bHVzWGNtBABhBwGIY3VtdWx1c19wYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgBlACxQb2xrYWRvdFhjbQQAbQcBaHBhbGxldF94Y206OkV2ZW50PFJ1bnRpbWU+AGcANFhjbVRyYW5zYWN0b3IEAHUHAZRwYWxsZXRfeGNtX3RyYW5zYWN0b3I6OkV2ZW50PFJ1bnRpbWU+AGsALEV0aGVyZXVtWGNtBAB9BwGMcGFsbGV0X2V0aGVyZXVtX3hjbTo6RXZlbnQ8UnVudGltZT4AbQAwTWVzc2FnZVF1ZXVlBACBBwGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AG8AQEV2bUZvcmVpZ25Bc3NldHMEAIkHAbhwYWxsZXRfbW9vbmJlYW1fZm9yZWlnbl9hc3NldHM6OkV2ZW50PFJ1bnRpbWU+AHIAPFhjbVdlaWdodFRyYWRlcgQAjQcBoHBhbGxldF94Y21fd2VpZ2h0X3RyYWRlcjo6RXZlbnQ8UnVudGltZT4AcwBARW1lcmdlbmN5UGFyYVhjbQQAkQcBgHBhbGxldF9lbWVyZ2VuY3lfcGFyYV94Y206OkV2ZW50AHQAUE11bHRpQmxvY2tNaWdyYXRpb25zBACVBwGEcGFsbGV0X21pZ3JhdGlvbnM6OkV2ZW50PFJ1bnRpbWU+AHUAKFJhbmRvbW5lc3MEAJkHAYRwYWxsZXRfcmFuZG9tbmVzczo6RXZlbnQ8UnVudGltZT4AeABMQnJpZGdlS3VzYW1hR3JhbmRwYQQAnQcBHQFwYWxsZXRfYnJpZGdlX2dyYW5kcGE6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9icmlkZ2VfZ3JhbmRwYTo6SW5zdGFuY2UxPgCCAFhCcmlkZ2VLdXNhbWFQYXJhY2hhaW5zBACtBwE5AXBhbGxldF9icmlkZ2VfcGFyYWNoYWluczo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2JyaWRnZV9wYXJhY2hhaW5zOjoKSW5zdGFuY2UxPgCDAFBCcmlkZ2VLdXNhbWFNZXNzYWdlcwQAsQcBKQFwYWxsZXRfYnJpZGdlX21lc3NhZ2VzOjpFdmVudDxSdW50aW1lLCBwYWxsZXRfYnJpZGdlX21lc3NhZ2VzOjpJbnN0YW5jZTEKPgCEAFhCcmlkZ2VYY21PdmVyTW9vbnJpdmVyBADRBwH8cGFsbGV0X3hjbV9icmlkZ2U6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF94Y21fYnJpZGdlOjpJbnN0YW5jZTE+AIUAAE0GDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEgQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvUQYBRERpc3BhdGNoRXZlbnRJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvcl0GATREaXNwYXRjaEVycm9yAAE0ZGlzcGF0Y2hfaW5mb1EGAUREaXNwYXRjaEV2ZW50SW5mbwABBFBBbiBleHRyaW5zaWMgZmFpbGVkLixDb2RlVXBkYXRlZAACBFBgOmNvZGVgIHdhcyB1cGRhdGVkLihOZXdBY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAADBGhBIG5ldyBhY2NvdW50IHdhcyBjcmVhdGVkLjRLaWxsZWRBY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAEBFhBbiBhY2NvdW50IHdhcyByZWFwZWQuIFJlbWFya2VkCAEYc2VuZGVyAAEwVDo6QWNjb3VudElkAAEQaGFzaCwBHFQ6Okhhc2gABQRwT24gb24tY2hhaW4gcmVtYXJrIGhhcHBlbmVkLkRVcGdyYWRlQXV0aG9yaXplZAgBJGNvZGVfaGFzaCwBHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uwAEQYm9vbAAGBGhBbiB1cGdyYWRlIHdhcyBhdXRob3JpemVkLoBSZWplY3RlZEludmFsaWRBdXRob3JpemVkVXBncmFkZQgBJGNvZGVfaGFzaCwBHFQ6Okhhc2gAARRlcnJvcl0GATREaXNwYXRjaEVycm9yAAcEEQFBbiBpbnZhbGlkIGF1dGhvcml6ZWQgdXBncmFkZSB3YXMgcmVqZWN0ZWQgd2hpbGUgdHJ5aW5nIHRvIGFwcGx5IGl0LgRwRXZlbnQgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0LlEGCDBmcmFtZV9zeXN0ZW1ERGlzcGF0Y2hFdmVudEluZm8AAAwBGHdlaWdodHEBARhXZWlnaHQAARRjbGFzc1UGATREaXNwYXRjaENsYXNzAAEgcGF5c19mZWVZBgEQUGF5cwAAVQYMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2g0RGlzcGF0Y2hDbGFzcwABDBhOb3JtYWwAAAAsT3BlcmF0aW9uYWwAAQAkTWFuZGF0b3J5AAIAAFkGDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoEFBheXMAAQgMWWVzAAAACE5vAAEAAF0GCChzcF9ydW50aW1lNERpc3BhdGNoRXJyb3IAATwUT3RoZXIAAAAwQ2Fubm90TG9va3VwAAEAJEJhZE9yaWdpbgACABhNb2R1bGUEAGEGASxNb2R1bGVFcnJvcgADAERDb25zdW1lclJlbWFpbmluZwAEACxOb1Byb3ZpZGVycwAFAEBUb29NYW55Q29uc3VtZXJzAAYAFFRva2VuBABlBgEoVG9rZW5FcnJvcgAHAChBcml0aG1ldGljBABpBgE8QXJpdGhtZXRpY0Vycm9yAAgANFRyYW5zYWN0aW9uYWwEAG0GAUhUcmFuc2FjdGlvbmFsRXJyb3IACQAkRXhoYXVzdGVkAAoAKENvcnJ1cHRpb24ACwAsVW5hdmFpbGFibGUADAA4Um9vdE5vdEFsbG93ZWQADQAQVHJpZQQAcQYBJFRyaWVFcnJvcgAOAABhBggoc3BfcnVudGltZSxNb2R1bGVFcnJvcgAACAEUaW5kZXgIAQh1OAABFGVycm9yZAGMW3U4OyBNQVhfTU9EVUxFX0VSUk9SX0VOQ09ERURfU0laRV0AAGUGCChzcF9ydW50aW1lKFRva2VuRXJyb3IAAShARnVuZHNVbmF2YWlsYWJsZQAAADBPbmx5UHJvdmlkZXIAAQAwQmVsb3dNaW5pbXVtAAIAMENhbm5vdENyZWF0ZQADADBVbmtub3duQXNzZXQABAAYRnJvemVuAAUALFVuc3VwcG9ydGVkAAYAQENhbm5vdENyZWF0ZUhvbGQABwA0Tm90RXhwZW5kYWJsZQAIABxCbG9ja2VkAAkAAGkGCDRzcF9hcml0aG1ldGljPEFyaXRobWV0aWNFcnJvcgABDCRVbmRlcmZsb3cAAAAgT3ZlcmZsb3cAAQA4RGl2aXNpb25CeVplcm8AAgAAbQYIKHNwX3J1bnRpbWVIVHJhbnNhY3Rpb25hbEVycm9yAAEIMExpbWl0UmVhY2hlZAAAABxOb0xheWVyAAEAAHEGDChzcF9ydW50aW1lMHByb3ZpbmdfdHJpZSRUcmllRXJyb3IAAThASW52YWxpZFN0YXRlUm9vdAAAAEhJbmNvbXBsZXRlRGF0YWJhc2UAAQBQVmFsdWVBdEluY29tcGxldGVLZXkAAgAwRGVjb2RlckVycm9yAAMALEludmFsaWRIYXNoAAQAMER1cGxpY2F0ZUtleQAFADhFeHRyYW5lb3VzTm9kZQAGADxFeHRyYW5lb3VzVmFsdWUABwBcRXh0cmFuZW91c0hhc2hSZWZlcmVuY2UACABUSW52YWxpZENoaWxkUmVmZXJlbmNlAAkANFZhbHVlTWlzbWF0Y2gACgA8SW5jb21wbGV0ZVByb29mAAsAMFJvb3RNaXNtYXRjaAAMACxEZWNvZGVFcnJvcgANAAB1Bgx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQURXZlbnQEBFQAARhgVmFsaWRhdGlvbkZ1bmN0aW9uU3RvcmVkAAAE0FRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGhhcyBiZWVuIHNjaGVkdWxlZCB0byBhcHBseS5kVmFsaWRhdGlvbkZ1bmN0aW9uQXBwbGllZAQBVHJlbGF5X2NoYWluX2Jsb2NrX251bSgBVFJlbGF5Q2hhaW5CbG9ja051bWJlcgABBEUBVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gd2FzIGFwcGxpZWQgYXMgb2YgdGhlIGNvbnRhaW5lZCByZWxheSBjaGFpbiBibG9jayBudW1iZXIubFZhbGlkYXRpb25GdW5jdGlvbkRpc2NhcmRlZAACBLBUaGUgcmVsYXktY2hhaW4gYWJvcnRlZCB0aGUgdXBncmFkZSBwcm9jZXNzLmBEb3dud2FyZE1lc3NhZ2VzUmVjZWl2ZWQEARRjb3VudCgBDHUzMgADBAEBU29tZSBkb3dud2FyZCBtZXNzYWdlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLmREb3dud2FyZE1lc3NhZ2VzUHJvY2Vzc2VkCAEsd2VpZ2h0X3VzZWRxAQEYV2VpZ2h0AAEgZG1xX2hlYWQsAURyZWxheV9jaGFpbjo6SGFzaAAEBOBEb3dud2FyZCBtZXNzYWdlcyB3ZXJlIHByb2Nlc3NlZCB1c2luZyB0aGUgZ2l2ZW4gd2VpZ2h0LkRVcHdhcmRNZXNzYWdlU2VudAQBMG1lc3NhZ2VfaGFzaC0GATxPcHRpb248WGNtSGFzaD4ABQS4QW4gdXB3YXJkIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gdGhlIHJlbGF5IGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkGDExwYWxsZXRfcm9vdF90ZXN0aW5nGHBhbGxldBRFdmVudAQEVAABBEREZWZlbnNpdmVUZXN0Q2FsbAAABAEBRXZlbnQgZGlzcGF0Y2hlZCB3aGVuIHRoZSB0cmlnZ2VyX2RlZmVuc2l2ZSBleHRyaW5zaWMgaXMgY2FsbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldH0GDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAF4HEVuZG93ZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlvAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARBmcmVlvAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnS8AShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzgQYBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnS8AShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnS8AShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuME1pbnRlZENyZWRpdAQBGGFtb3VudLwBKFQ6OkJhbGFuY2UACwTgU29tZSBjcmVkaXQgd2FzIGJhbGFuY2VkIGFuZCBhZGRlZCB0byB0aGUgVG90YWxJc3N1YW5jZS4YQnVybmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEoVDo6QmFsYW5jZQAMBJxTb21lIGFtb3VudCB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC4oQnVybmVkRGVidAQBGGFtb3VudLwBKFQ6OkJhbGFuY2UADQTMU29tZSBkZWJ0IGhhcyBiZWVuIGRyb3BwZWQgZnJvbSB0aGUgVG90YWwgSXNzdWFuY2UuJFN1c3BlbmRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UADgQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UADwSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQAEARgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudLwBKFQ6OkJhbGFuY2UAEQQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnS8AShUOjpCYWxhbmNlABIEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UAEwRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEoVDo6QmFsYW5jZQAUBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnS8AShUOjpCYWxhbmNlABUEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnS8AShUOjpCYWxhbmNlABYEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkvAEoVDo6QmFsYW5jZQABDG5ld7wBKFQ6OkJhbGFuY2UAFwSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLhBIZWxkDAEYcmVhc29uhQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEoVDo6QmFsYW5jZQAYBIBTb21lIGJhbGFuY2Ugd2FzIHBsYWNlZCBvbiBob2xkLihCdXJuZWRIZWxkDAEYcmVhc29uhQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEoVDo6QmFsYW5jZQAZBKBIZWxkIGJhbGFuY2Ugd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuOFRyYW5zZmVyT25Ib2xkEAEYcmVhc29uhQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYc291cmNlAAEwVDo6QWNjb3VudElkAAEQZGVzdAABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBKFQ6OkJhbGFuY2UAGgQVAUEgdHJhbnNmZXIgb2YgYGFtb3VudGAgb24gaG9sZCBmcm9tIGBzb3VyY2VgIHRvIGBkZXN0YCB3YXMgaW5pdGlhdGVkLjxUcmFuc2ZlckFuZEhvbGQQARhyZWFzb26FBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhzb3VyY2UAATBUOjpBY2NvdW50SWQAARBkZXN0AAEwVDo6QWNjb3VudElkAAEsdHJhbnNmZXJyZWS8AShUOjpCYWxhbmNlABsECQFUaGUgYHRyYW5zZmVycmVkYCBiYWxhbmNlIGlzIHBsYWNlZCBvbiBob2xkIGF0IHRoZSBgZGVzdGAgYWNjb3VudC4gUmVsZWFzZWQMARhyZWFzb26FBgFQVDo6UnVudGltZUhvbGRSZWFzb24AAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnS8AShUOjpCYWxhbmNlABwEkFNvbWUgYmFsYW5jZSB3YXMgcmVsZWFzZWQgZnJvbSBob2xkLihVbmV4cGVjdGVkBACRBgE4VW5leHBlY3RlZEtpbmQAHQSwQW4gdW5leHBlY3RlZC9kZWZlbnNpdmUgZXZlbnQgd2FzIHRyaWdnZXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSBBhQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2M0QmFsYW5jZVN0YXR1cwABCBBGcmVlAAAAIFJlc2VydmVkAAEAAIUGCEBtb29uYmVhbV9ydW50aW1lRFJ1bnRpbWVIb2xkUmVhc29uAAEIIFByZWltYWdlBACJBgFscGFsbGV0X3ByZWltYWdlOjpIb2xkUmVhc29uAD4AWEJyaWRnZVhjbU92ZXJNb29ucml2ZXIEAI0GAexwYWxsZXRfeGNtX2JyaWRnZTo6SG9sZFJlYXNvbjxwYWxsZXRfeGNtX2JyaWRnZTo6SW5zdGFuY2UxPgCFAACJBgw8cGFsbGV0X3ByZWltYWdlGHBhbGxldChIb2xkUmVhc29uAAEEIFByZWltYWdlAAAAAI0GDFRwYWxsZXRfeGNtX2JyaWRnZV9odWIYcGFsbGV0KEhvbGRSZWFzb24EBEkAAQQ0QnJpZGdlRGVwb3NpdAAAAACRBgw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldDhVbmV4cGVjdGVkS2luZAABCDhCYWxhbmNlVXBkYXRlZAAAAFRGYWlsZWRUb011dGF0ZUFjY291bnQAAQAAlQYMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlvAEwQmFsYW5jZU9mPFQ+AAEMdGlwvAEwQmFsYW5jZU9mPFQ+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLFxoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJkGDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcYcGFsbGV0FEV2ZW50BARUAAGIIE5ld1JvdW5kEAE4c3RhcnRpbmdfYmxvY2soAURCbG9ja051bWJlckZvcjxUPgABFHJvdW5kKAEoUm91bmRJbmRleAABZHNlbGVjdGVkX2NvbGxhdG9yc19udW1iZXIoAQx1MzIAATR0b3RhbF9iYWxhbmNlvAEwQmFsYW5jZU9mPFQ+AAAESFN0YXJ0ZWQgbmV3IHJvdW5kLmBKb2luZWRDb2xsYXRvckNhbmRpZGF0ZXMMARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE0YW1vdW50X2xvY2tlZLwBMEJhbGFuY2VPZjxUPgABUG5ld190b3RhbF9hbXRfbG9ja2VkvAEwQmFsYW5jZU9mPFQ+AAEEuEFjY291bnQgam9pbmVkIHRoZSBzZXQgb2YgY29sbGF0b3IgY2FuZGlkYXRlcy44Q29sbGF0b3JDaG9zZW4MARRyb3VuZCgBKFJvdW5kSW5kZXgAAUBjb2xsYXRvcl9hY2NvdW50AAEwVDo6QWNjb3VudElkAAFQdG90YWxfZXhwb3NlZF9hbW91bnS8ATBCYWxhbmNlT2Y8VD4AAgRBAUNhbmRpZGF0ZSBzZWxlY3RlZCBmb3IgY29sbGF0b3JzLiBUb3RhbCBFeHBvc2VkIEFtb3VudCBpbmNsdWRlcyBhbGwgZGVsZWdhdGlvbnMuaENhbmRpZGF0ZUJvbmRMZXNzUmVxdWVzdGVkDAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAFIYW1vdW50X3RvX2RlY3JlYXNlvAEwQmFsYW5jZU9mPFQ+AAE0ZXhlY3V0ZV9yb3VuZCgBKFJvdW5kSW5kZXgAAwSwQ2FuZGlkYXRlIHJlcXVlc3RlZCB0byBkZWNyZWFzZSBhIHNlbGYgYm9uZC5MQ2FuZGlkYXRlQm9uZGVkTW9yZQwBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBMEJhbGFuY2VPZjxUPgABOG5ld190b3RhbF9ib25kvAEwQmFsYW5jZU9mPFQ+AAQEkENhbmRpZGF0ZSBoYXMgaW5jcmVhc2VkIGEgc2VsZiBib25kLkxDYW5kaWRhdGVCb25kZWRMZXNzDAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEwQmFsYW5jZU9mPFQ+AAEgbmV3X2JvbmS8ATBCYWxhbmNlT2Y8VD4ABQSQQ2FuZGlkYXRlIGhhcyBkZWNyZWFzZWQgYSBzZWxmIGJvbmQuUENhbmRpZGF0ZVdlbnRPZmZsaW5lBAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAYENQFDYW5kaWRhdGUgdGVtcG9yYXJpbHkgbGVhdmUgdGhlIHNldCBvZiBjb2xsYXRvciBjYW5kaWRhdGVzIHdpdGhvdXQgdW5ib25kaW5nLkxDYW5kaWRhdGVCYWNrT25saW5lBAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAcExENhbmRpZGF0ZSByZWpvaW5zIHRoZSBzZXQgb2YgY29sbGF0b3IgY2FuZGlkYXRlcy5YQ2FuZGlkYXRlU2NoZWR1bGVkRXhpdAwBSGV4aXRfYWxsb3dlZF9yb3VuZCgBKFJvdW5kSW5kZXgAASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAAThzY2hlZHVsZWRfZXhpdCgBKFJvdW5kSW5kZXgACATcQ2FuZGlkYXRlIGhhcyByZXF1ZXN0ZWQgdG8gbGVhdmUgdGhlIHNldCBvZiBjYW5kaWRhdGVzLlhDYW5jZWxsZWRDYW5kaWRhdGVFeGl0BAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAkExENhbmNlbGxlZCByZXF1ZXN0IHRvIGxlYXZlIHRoZSBzZXQgb2YgY2FuZGlkYXRlcy5oQ2FuY2VsbGVkQ2FuZGlkYXRlQm9uZExlc3MMASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAARhhbW91bnS8ATBCYWxhbmNlT2Y8VD4AATRleGVjdXRlX3JvdW5kKAEoUm91bmRJbmRleAAKBLxDYW5jZWxsZWQgcmVxdWVzdCB0byBkZWNyZWFzZSBjYW5kaWRhdGUncyBib25kLjRDYW5kaWRhdGVMZWZ0DAEwZXhfY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAE8dW5sb2NrZWRfYW1vdW50vAEwQmFsYW5jZU9mPFQ+AAFQbmV3X3RvdGFsX2FtdF9sb2NrZWS8ATBCYWxhbmNlT2Y8VD4ACwSkQ2FuZGlkYXRlIGhhcyBsZWZ0IHRoZSBzZXQgb2YgY2FuZGlkYXRlcy5sRGVsZWdhdGlvbkRlY3JlYXNlU2NoZWR1bGVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAFIYW1vdW50X3RvX2RlY3JlYXNlvAEwQmFsYW5jZU9mPFQ+AAE0ZXhlY3V0ZV9yb3VuZCgBKFJvdW5kSW5kZXgADAQJAURlbGVnYXRvciByZXF1ZXN0ZWQgdG8gZGVjcmVhc2UgYSBib25kIGZvciB0aGUgY29sbGF0b3IgY2FuZGlkYXRlLkxEZWxlZ2F0aW9uSW5jcmVhc2VkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEwQmFsYW5jZU9mPFQ+AAEYaW5fdG9wwAEQYm9vbAANAExEZWxlZ2F0aW9uRGVjcmVhc2VkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEYYW1vdW50vAEwQmFsYW5jZU9mPFQ+AAEYaW5fdG9wwAEQYm9vbAAOAFhEZWxlZ2F0b3JFeGl0U2NoZWR1bGVkDAEUcm91bmQoAShSb3VuZEluZGV4AAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAE4c2NoZWR1bGVkX2V4aXQoAShSb3VuZEluZGV4AA8EzERlbGVnYXRvciByZXF1ZXN0ZWQgdG8gbGVhdmUgdGhlIHNldCBvZiBkZWxlZ2F0b3JzLnREZWxlZ2F0aW9uUmV2b2NhdGlvblNjaGVkdWxlZBABFHJvdW5kKAEoUm91bmRJbmRleAABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABOHNjaGVkdWxlZF9leGl0KAEoUm91bmRJbmRleAAQBKREZWxlZ2F0b3IgcmVxdWVzdGVkIHRvIHJldm9rZSBkZWxlZ2F0aW9uLjREZWxlZ2F0b3JMZWZ0CAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAE8dW5zdGFrZWRfYW1vdW50vAEwQmFsYW5jZU9mPFQ+ABEEpERlbGVnYXRvciBoYXMgbGVmdCB0aGUgc2V0IG9mIGRlbGVnYXRvcnMuRERlbGVnYXRpb25SZXZva2VkDAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAE8dW5zdGFrZWRfYW1vdW50vAEwQmFsYW5jZU9mPFQ+ABIETERlbGVnYXRpb24gcmV2b2tlZC5ARGVsZWdhdGlvbktpY2tlZAwBJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABPHVuc3Rha2VkX2Ftb3VudLwBMEJhbGFuY2VPZjxUPgATBEhEZWxlZ2F0aW9uIGtpY2tlZC5YRGVsZWdhdG9yRXhpdENhbmNlbGxlZAQBJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAAUBOhDYW5jZWxsZWQgYSBwZW5kaW5nIHJlcXVlc3QgdG8gZXhpdCB0aGUgc2V0IG9mIGRlbGVnYXRvcnMuaENhbmNlbGxlZERlbGVnYXRpb25SZXF1ZXN0DAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAFEY2FuY2VsbGVkX3JlcXVlc3SdBgGcQ2FuY2VsbGVkU2NoZWR1bGVkUmVxdWVzdDxCYWxhbmNlT2Y8VD4+AAEgY29sbGF0b3IAATBUOjpBY2NvdW50SWQAFQTMQ2FuY2VsbGVkIHJlcXVlc3QgdG8gY2hhbmdlIGFuIGV4aXN0aW5nIGRlbGVnYXRpb24uKERlbGVnYXRpb24UASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAATRsb2NrZWRfYW1vdW50vAEwQmFsYW5jZU9mPFQ+AAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAFIZGVsZWdhdG9yX3Bvc2l0aW9upQYBcERlbGVnYXRvckFkZGVkPEJhbGFuY2VPZjxUPj4AATRhdXRvX2NvbXBvdW5k2AEcUGVyY2VudAAWBLhOZXcgZGVsZWdhdGlvbiAoaW5jcmVhc2Ugb2YgdGhlIGV4aXN0aW5nIG9uZSkuWERlbGVnYXRvckxlZnRDYW5kaWRhdGUQASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAATx1bnN0YWtlZF9hbW91bnS8ATBCYWxhbmNlT2Y8VD4AAVh0b3RhbF9jYW5kaWRhdGVfc3Rha2VkvAEwQmFsYW5jZU9mPFQ+ABcExERlbGVnYXRpb24gZnJvbSBjYW5kaWRhdGUgc3RhdGUgaGFzIGJlZW4gcmVtb3ZlZC4gUmV3YXJkZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEccmV3YXJkc7wBMEJhbGFuY2VPZjxUPgAYBB0BUGFpZCB0aGUgYWNjb3VudCAoZGVsZWdhdG9yIG9yIGNvbGxhdG9yKSB0aGUgYmFsYW5jZSBhcyBsaXF1aWQgcmV3YXJkcy5QSW5mbGF0aW9uRGlzdHJpYnV0ZWQMARRpbmRleCgBDHUzMgABHGFjY291bnQAATBUOjpBY2NvdW50SWQAARR2YWx1ZbwBMEJhbGFuY2VPZjxUPgAZBBUBVHJhbnNmZXJyZWQgdG8gYWNjb3VudCB3aGljaCBob2xkcyBmdW5kcyByZXNlcnZlZCBmb3IgcGFyYWNoYWluIGJvbmQuiEluZmxhdGlvbkRpc3RyaWJ1dGlvbkNvbmZpZ1VwZGF0ZWQIAQxvbGTcAaRJbmZsYXRpb25EaXN0cmlidXRpb25Db25maWc8VDo6QWNjb3VudElkPgABDG5ld9wBpEluZmxhdGlvbkRpc3RyaWJ1dGlvbkNvbmZpZzxUOjpBY2NvdW50SWQ+ABoAMEluZmxhdGlvblNldBgBKGFubnVhbF9taW6wARxQZXJiaWxsAAEwYW5udWFsX2lkZWFssAEcUGVyYmlsbAABKGFubnVhbF9tYXiwARxQZXJiaWxsAAEkcm91bmRfbWlusAEcUGVyYmlsbAABLHJvdW5kX2lkZWFssAEcUGVyYmlsbAABJHJvdW5kX21heLABHFBlcmJpbGwAGwRRAUFubnVhbCBpbmZsYXRpb24gaW5wdXQgKGZpcnN0IDMpIHdhcyB1c2VkIHRvIGRlcml2ZSBuZXcgcGVyLXJvdW5kIGluZmxhdGlvbiAobGFzdCAzKVBTdGFrZUV4cGVjdGF0aW9uc1NldAwBKGV4cGVjdF9taW68ATBCYWxhbmNlT2Y8VD4AATBleHBlY3RfaWRlYWy8ATBCYWxhbmNlT2Y8VD4AAShleHBlY3RfbWF4vAEwQmFsYW5jZU9mPFQ+ABwEZFN0YWtpbmcgZXhwZWN0YXRpb25zIHNldC5AVG90YWxTZWxlY3RlZFNldAgBDG9sZCgBDHUzMgABDG5ldygBDHUzMgAdBLBTZXQgdG90YWwgc2VsZWN0ZWQgY2FuZGlkYXRlcyB0byB0aGlzIHZhbHVlLlRDb2xsYXRvckNvbW1pc3Npb25TZXQIAQxvbGSwARxQZXJiaWxsAAEMbmV3sAEcUGVyYmlsbAAeBJhTZXQgY29sbGF0b3IgY29tbWlzc2lvbiB0byB0aGlzIHZhbHVlLkRCbG9ja3NQZXJSb3VuZFNldBwBNGN1cnJlbnRfcm91bmQoAShSb3VuZEluZGV4AAEsZmlyc3RfYmxvY2soAURCbG9ja051bWJlckZvcjxUPgABDG9sZCgBDHUzMgABDG5ldygBDHUzMgABbG5ld19wZXJfcm91bmRfaW5mbGF0aW9uX21pbrABHFBlcmJpbGwAAXRuZXdfcGVyX3JvdW5kX2luZmxhdGlvbl9pZGVhbLABHFBlcmJpbGwAAWxuZXdfcGVyX3JvdW5kX2luZmxhdGlvbl9tYXiwARxQZXJiaWxsAB8EUFNldCBibG9ja3MgcGVyIHJvdW5kPEF1dG9Db21wb3VuZFNldAwBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABFHZhbHVl2AEcUGVyY2VudAAgBORBdXRvLWNvbXBvdW5kaW5nIHJld2FyZCBwZXJjZW50IHdhcyBzZXQgZm9yIGEgZGVsZWdhdGlvbi4oQ29tcG91bmRlZAwBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABGGFtb3VudLwBMEJhbGFuY2VPZjxUPgAhBNxDb21wb3VuZGVkIGEgcG9ydGlvbiBvZiByZXdhcmRzIHRvd2FyZHMgdGhlIGRlbGVnYXRpb24uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0nQYMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZ0xkZWxlZ2F0aW9uX3JlcXVlc3RzZENhbmNlbGxlZFNjaGVkdWxlZFJlcXVlc3QEHEJhbGFuY2UBvAAIATx3aGVuX2V4ZWN1dGFibGUoAShSb3VuZEluZGV4AAEYYWN0aW9uoQYBZERlbGVnYXRpb25BY3Rpb248QmFsYW5jZT4AAKEGDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmdMZGVsZWdhdGlvbl9yZXF1ZXN0c0BEZWxlZ2F0aW9uQWN0aW9uBBxCYWxhbmNlAbwBCBhSZXZva2UEALwBHEJhbGFuY2UAAAAgRGVjcmVhc2UEALwBHEJhbGFuY2UAAQAApQYMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZxR0eXBlczhEZWxlZ2F0b3JBZGRlZAQEQgG8AQgoQWRkZWRUb1RvcAQBJG5ld190b3RhbLwBBEIAAAA0QWRkZWRUb0JvdHRvbQABAACpBgxkcGFsbGV0X2F1dGhvcl9zbG90X2ZpbHRlchhwYWxsZXQURXZlbnQAAQQ8RWxpZ2libGVVcGRhdGVkBADwAUBFbGlnaWJpbGl0eVZhbHVlAAAEJQFUaGUgYW1vdW50IG9mIGVsaWdpYmxlIGF1dGhvcnMgZm9yIHRoZSBmaWx0ZXIgdG8gc2VsZWN0IGhhcyBiZWVuIGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0rQYMVHBhbGxldF9hdXRob3JfbWFwcGluZxhwYWxsZXQURXZlbnQEBFQAAQw4S2V5c1JlZ2lzdGVyZWQMASRuaW1idXNfaWT4ASBOaW1idXNJZAABKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAARBrZXlzsQYBHFQ6OktleXMAAAToQSBOaW1idXNJZCBoYXMgYmVlbiByZWdpc3RlcmVkIGFuZCBtYXBwZWQgdG8gYW4gQWNjb3VudElkLixLZXlzUmVtb3ZlZAwBJG5pbWJ1c19pZPgBIE5pbWJ1c0lkAAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABEGtleXOxBgEcVDo6S2V5cwABBBkBQW4gTmltYnVzSWQgaGFzIGJlZW4gZGUtcmVnaXN0ZXJlZCwgYW5kIGl0cyBBY2NvdW50SWQgbWFwcGluZyByZW1vdmVkLixLZXlzUm90YXRlZAwBNG5ld19uaW1idXNfaWT4ASBOaW1idXNJZAABKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAASBuZXdfa2V5c7EGARxUOjpLZXlzAAIETQFBbiBOaW1idXNJZCBoYXMgYmVlbiByZWdpc3RlcmVkLCByZXBsYWNpbmcgYSBwcmV2aW91cyByZWdpc3RyYXRpb24gYW5kIGl0cyBtYXBwaW5nLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLEGEFxzZXNzaW9uX2tleXNfcHJpbWl0aXZlcwx2cmYodnJmX2NyeXB0bxhQdWJsaWMAAAQAMAE8c3IyNTUxOTo6UHVibGljAAC1BgxgcGFsbGV0X21vb25iZWFtX29yYml0ZXJzGHBhbGxldBRFdmVudAQEVAABGFxPcmJpdGVySm9pbkNvbGxhdG9yUG9vbAgBIGNvbGxhdG9yAAEwVDo6QWNjb3VudElkAAEcb3JiaXRlcgABMFQ6OkFjY291bnRJZAAABHxBbiBvcmJpdGVyIGpvaW4gYSBjb2xsYXRvciBwb29sYE9yYml0ZXJMZWF2ZUNvbGxhdG9yUG9vbAgBIGNvbGxhdG9yAAEwVDo6QWNjb3VudElkAAEcb3JiaXRlcgABMFQ6OkFjY291bnRJZAABBIBBbiBvcmJpdGVyIGxlYXZlIGEgY29sbGF0b3IgcG9vbDxPcmJpdGVyUmV3YXJkZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEccmV3YXJkc7wBMEJhbGFuY2VPZjxUPgACBNxQYWlkIHRoZSBvcmJpdGVyIGFjY291bnQgdGhlIGJhbGFuY2UgYXMgbGlxdWlkIHJld2FyZHMuPE9yYml0ZXJSb3RhdGlvbgwBIGNvbGxhdG9yAAEwVDo6QWNjb3VudElkAAEsb2xkX29yYml0ZXIZAwFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASxuZXdfb3JiaXRlchkDAVBPcHRpb248VDo6QWNjb3VudElkPgADAERPcmJpdGVyUmVnaXN0ZXJlZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARxkZXBvc2l0vAEwQmFsYW5jZU9mPFQ+AAQEZEFuIG9yYml0ZXIgaGFzIHJlZ2lzdGVyZWRMT3JiaXRlclVucmVnaXN0ZXJlZAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQABQRsQW4gb3JiaXRlciBoYXMgdW5yZWdpc3RlcmVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0uQYMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFdmVudAABIEBCYXRjaEludGVycnVwdGVkCAEUaW5kZXgoAQx1MzIAARRlcnJvcl0GATREaXNwYXRjaEVycm9yAAAIVQFCYXRjaCBvZiBkaXNwYXRjaGVzIGRpZCBub3QgY29tcGxldGUgZnVsbHkuIEluZGV4IG9mIGZpcnN0IGZhaWxpbmcgZGlzcGF0Y2ggZ2l2ZW4sIGFzSHdlbGwgYXMgdGhlIGVycm9yLjhCYXRjaENvbXBsZXRlZAABBMhCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBmdWxseSB3aXRoIG5vIGVycm9yLmBCYXRjaENvbXBsZXRlZFdpdGhFcnJvcnMAAgS0QmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgYnV0IGhhcyBlcnJvcnMuNEl0ZW1Db21wbGV0ZWQAAwQdAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggbm8gZXJyb3IuKEl0ZW1GYWlsZWQEARRlcnJvcl0GATREaXNwYXRjaEVycm9yAAQEEQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIGVycm9yLjBEaXNwYXRjaGVkQXMEARhyZXN1bHS9BgE4RGlzcGF0Y2hSZXN1bHQABQRYQSBjYWxsIHdhcyBkaXNwYXRjaGVkLkRJZkVsc2VNYWluU3VjY2VzcwAGBGRNYWluIGNhbGwgd2FzIGRpc3BhdGNoZWQuUElmRWxzZUZhbGxiYWNrQ2FsbGVkBAEobWFpbl9lcnJvcl0GATREaXNwYXRjaEVycm9yAAcEhFRoZSBmYWxsYmFjayBjYWxsIHdhcyBkaXNwYXRjaGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldL0GBBhSZXN1bHQIBFQB/QUERQFdBgEICE9rBAD9BQAAAAAMRXJyBABdBgAAAQAAwQYMMHBhbGxldF9wcm94eRhwYWxsZXQURXZlbnQEBFQAARw0UHJveHlFeGVjdXRlZAQBGHJlc3VsdL0GAThEaXNwYXRjaFJlc3VsdAAABLxBIHByb3h5IHdhcyBleGVjdXRlZCBjb3JyZWN0bHksIHdpdGggdGhlIGdpdmVuLixQdXJlQ3JlYXRlZBgBEHB1cmUAATBUOjpBY2NvdW50SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlfQEBMFQ6OlByb3h5VHlwZQABUGRpc2FtYmlndWF0aW9uX2luZGV4CQEBDHUxNgABCGF0KAFEQmxvY2tOdW1iZXJGb3I8VD4AATxleHRyaW5zaWNfaW5kZXgoAQx1MzIAAQjcQSBwdXJlIGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZCBieSBuZXcgcHJveHkgd2l0aCBnaXZlbpBkaXNhbWJpZ3VhdGlvbiBpbmRleCBhbmQgcHJveHkgdHlwZS4oUHVyZUtpbGxlZBABEHB1cmUAATBUOjpBY2NvdW50SWQAARxzcGF3bmVyAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZX0BATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleAkBAQx1MTYAAgScQSBwdXJlIHByb3h5IHdhcyBraWxsZWQgYnkgaXRzIHNwYXduZXIuJEFubm91bmNlZAwBEHJlYWwAATBUOjpBY2NvdW50SWQAARRwcm94eQABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4AAwTgQW4gYW5ub3VuY2VtZW50IHdhcyBwbGFjZWQgdG8gbWFrZSBhIGNhbGwgaW4gdGhlIGZ1dHVyZS4oUHJveHlBZGRlZBABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGV9AQEwVDo6UHJveHlUeXBlAAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgAEBEhBIHByb3h5IHdhcyBhZGRlZC4wUHJveHlSZW1vdmVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZX0BATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAUEUEEgcHJveHkgd2FzIHJlbW92ZWQuMERlcG9zaXRQb2tlZBABDHdobwABMFQ6OkFjY291bnRJZAABEGtpbmTFBgEsRGVwb3NpdEtpbmQAASxvbGRfZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0vAEwQmFsYW5jZU9mPFQ+AAYECQFBIGRlcG9zaXQgc3RvcmVkIGZvciBwcm94aWVzIG9yIGFubm91bmNlbWVudHMgd2FzIHBva2VkIC8gdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTFBggwcGFsbGV0X3Byb3h5LERlcG9zaXRLaW5kAAEIHFByb3hpZXMAAAA0QW5ub3VuY2VtZW50cwABAADJBgxccGFsbGV0X21haW50ZW5hbmNlX21vZGUYcGFsbGV0FEV2ZW50AAEQWEVudGVyZWRNYWludGVuYW5jZU1vZGUAAAScVGhlIGNoYWluIHdhcyBwdXQgaW50byBNYWludGVuYW5jZSBNb2RlWE5vcm1hbE9wZXJhdGlvblJlc3VtZWQAAQTAVGhlIGNoYWluIHJldHVybmVkIHRvIGl0cyBub3JtYWwgb3BlcmF0aW5nIHN0YXRlfEZhaWxlZFRvU3VzcGVuZElkbGVYY21FeGVjdXRpb24EARRlcnJvcl0GATREaXNwYXRjaEVycm9yAAIEBQFUaGUgY2FsbCB0byBzdXNwZW5kIG9uX2lkbGUgWENNIGV4ZWN1dGlvbiBmYWlsZWQgd2l0aCBpbm5lciBlcnJvcnhGYWlsZWRUb1Jlc3VtZUlkbGVYY21FeGVjdXRpb24EARRlcnJvcl0GATREaXNwYXRjaEVycm9yAAMEAQFUaGUgY2FsbCB0byByZXN1bWUgb25faWRsZSBYQ00gZXhlY3V0aW9uIGZhaWxlZCB3aXRoIGlubmVyIGVycm9yBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0zQYMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQURXZlbnQEBFQAAVgsSWRlbnRpdHlTZXQEAQx3aG8AATBUOjpBY2NvdW50SWQAAATsQSBuYW1lIHdhcyBzZXQgb3IgcmVzZXQgKHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBqdWRnZW1lbnRzKS48SWRlbnRpdHlDbGVhcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgABBMxBIG5hbWUgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSByZXR1cm5lZC44SWRlbnRpdHlLaWxsZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0vAEwQmFsYW5jZU9mPFQ+AAIExEEgbmFtZSB3YXMgcmVtb3ZlZCBhbmQgdGhlIGdpdmVuIGJhbGFuY2Ugc2xhc2hlZC5ISnVkZ2VtZW50UmVxdWVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4KAE4UmVnaXN0cmFySW5kZXgAAwScQSBqdWRnZW1lbnQgd2FzIGFza2VkIGZyb20gYSByZWdpc3RyYXIuUEp1ZGdlbWVudFVucmVxdWVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4KAE4UmVnaXN0cmFySW5kZXgABASIQSBqdWRnZW1lbnQgcmVxdWVzdCB3YXMgcmV0cmFjdGVkLjhKdWRnZW1lbnRHaXZlbggBGHRhcmdldAABMFQ6OkFjY291bnRJZAABPHJlZ2lzdHJhcl9pbmRleCgBOFJlZ2lzdHJhckluZGV4AAUElEEganVkZ2VtZW50IHdhcyBnaXZlbiBieSBhIHJlZ2lzdHJhci44UmVnaXN0cmFyQWRkZWQEATxyZWdpc3RyYXJfaW5kZXgoAThSZWdpc3RyYXJJbmRleAAGBFhBIHJlZ2lzdHJhciB3YXMgYWRkZWQuQFN1YklkZW50aXR5QWRkZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgAHBPRBIHN1Yi1pZGVudGl0eSB3YXMgYWRkZWQgdG8gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IHBhaWQuQFN1YklkZW50aXRpZXNTZXQMARBtYWluAAEwVDo6QWNjb3VudElkAAE4bnVtYmVyX29mX3N1YnMoAQx1MzIAASxuZXdfZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgAIBLxBbiBhY2NvdW50J3Mgc3ViLWlkZW50aXRpZXMgd2VyZSBzZXQgKGluIGJ1bGspLkhTdWJJZGVudGl0eVJlbmFtZWQIAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAkEIQFBIGdpdmVuIHN1Yi1hY2NvdW50J3MgYXNzb2NpYXRlZCBuYW1lIHdhcyBjaGFuZ2VkIGJ5IGl0cyBzdXBlci1pZGVudGl0eS5IU3ViSWRlbnRpdHlSZW1vdmVkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXS8ATBCYWxhbmNlT2Y8VD4ACgQJAUEgc3ViLWlkZW50aXR5IHdhcyByZW1vdmVkIGZyb20gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IGZyZWVkLkhTdWJJZGVudGl0eVJldm9rZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgALCBkBQSBzdWItaWRlbnRpdHkgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gZGVwb3NpdCByZXBhdHJpYXRlZCBmcm9tIHRoZchtYWluIGlkZW50aXR5IGFjY291bnQgdG8gdGhlIHN1Yi1pZGVudGl0eSBhY2NvdW50LjhBdXRob3JpdHlBZGRlZAQBJGF1dGhvcml0eQABMFQ6OkFjY291bnRJZAAMBHxBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgYWRkZWQuQEF1dGhvcml0eVJlbW92ZWQEASRhdXRob3JpdHkAATBUOjpBY2NvdW50SWQADQSEQSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIHJlbW92ZWQuLFVzZXJuYW1lU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWUxAgEsVXNlcm5hbWU8VD4ADgR0QSB1c2VybmFtZSB3YXMgc2V0IGZvciBgd2hvYC44VXNlcm5hbWVRdWV1ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZTECASxVc2VybmFtZTxUPgABKGV4cGlyYXRpb24oAURCbG9ja051bWJlckZvcjxUPgAPBBkBQSB1c2VybmFtZSB3YXMgcXVldWVkLCBidXQgYHdob2AgbXVzdCBhY2NlcHQgaXQgcHJpb3IgdG8gYGV4cGlyYXRpb25gLkhQcmVhcHByb3ZhbEV4cGlyZWQEARR3aG9zZQABMFQ6OkFjY291bnRJZAAQBDkBQSBxdWV1ZWQgdXNlcm5hbWUgcGFzc2VkIGl0cyBleHBpcmF0aW9uIHdpdGhvdXQgYmVpbmcgY2xhaW1lZCBhbmQgd2FzIHJlbW92ZWQuSFByaW1hcnlVc2VybmFtZVNldAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lMQIBLFVzZXJuYW1lPFQ+ABEEAQFBIHVzZXJuYW1lIHdhcyBzZXQgYXMgYSBwcmltYXJ5IGFuZCBjYW4gYmUgbG9va2VkIHVwIGZyb20gYHdob2AuXERhbmdsaW5nVXNlcm5hbWVSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWUxAgEsVXNlcm5hbWU8VD4AEghdAUEgZGFuZ2xpbmcgdXNlcm5hbWUgKGFzIGluLCBhIHVzZXJuYW1lIGNvcnJlc3BvbmRpbmcgdG8gYW4gYWNjb3VudCB0aGF0IGhhcyByZW1vdmVkIGl0c2xpZGVudGl0eSkgaGFzIGJlZW4gcmVtb3ZlZC48VXNlcm5hbWVVbmJvdW5kBAEgdXNlcm5hbWUxAgEsVXNlcm5hbWU8VD4AEwRwQSB1c2VybmFtZSBoYXMgYmVlbiB1bmJvdW5kLjxVc2VybmFtZVJlbW92ZWQEASB1c2VybmFtZTECASxVc2VybmFtZTxUPgAUBHBBIHVzZXJuYW1lIGhhcyBiZWVuIHJlbW92ZWQuOFVzZXJuYW1lS2lsbGVkBAEgdXNlcm5hbWUxAgEsVXNlcm5hbWU8VD4AFQRsQSB1c2VybmFtZSBoYXMgYmVlbiBraWxsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV00QYMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXZlbnQEBFQAARQsTmV3TXVsdGlzaWcMASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaDABIENhbGxIYXNoAAAEjEEgbmV3IG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVndW4uQE11bHRpc2lnQXBwcm92YWwQASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnQ9AgFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoMAEgQ2FsbEhhc2gAAQTIQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQgYnkgc29tZW9uZS5ATXVsdGlzaWdFeGVjdXRlZBQBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludD0CAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gwASBDYWxsSGFzaAABGHJlc3VsdL0GAThEaXNwYXRjaFJlc3VsdAACBJxBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBleGVjdXRlZC5ETXVsdGlzaWdDYW5jZWxsZWQQAShjYW5jZWxsaW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50PQIBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaDABIENhbGxIYXNoAAMEoEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZC4wRGVwb3NpdFBva2VkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoMAEgQ2FsbEhhc2gAASxvbGRfZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0vAEwQmFsYW5jZU9mPFQ+AAQE8FRoZSBkZXBvc2l0IGZvciBhIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkL3Bva2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNUGDERwYWxsZXRfcGFyYW1ldGVycxhwYWxsZXQURXZlbnQEBFQAAQQcVXBkYXRlZAwBDGtledkGAcQ8VDo6UnVudGltZVBhcmFtZXRlcnMgYXMgQWdncmVnYXRlZEtleVZhbHVlPjo6S2V5BGRUaGUga2V5IHRoYXQgd2FzIHVwZGF0ZWQuASRvbGRfdmFsdWXpBgHsT3B0aW9uPDxUOjpSdW50aW1lUGFyYW1ldGVycyBhcyBBZ2dyZWdhdGVkS2V5VmFsdWU+OjpWYWx1ZT4EfFRoZSBvbGQgdmFsdWUgYmVmb3JlIHRoaXMgY2FsbC4BJG5ld192YWx1ZekGAexPcHRpb248PFQ6OlJ1bnRpbWVQYXJhbWV0ZXJzIGFzIEFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlPgR4VGhlIG5ldyB2YWx1ZSBhZnRlciB0aGlzIGNhbGwuAAxQQSBQYXJhbWV0ZXIgd2FzIHNldC4AvElzIGFsc28gZW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSB3YXMgbm90IGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV02QYMQG1vb25iZWFtX3J1bnRpbWU4cnVudGltZV9wYXJhbXNQUnVudGltZVBhcmFtZXRlcnNLZXkAAQw0UnVudGltZUNvbmZpZwQA3QYBvQE8ZHluYW1pY19wYXJhbXM6OnJ1bnRpbWVfY29uZmlnOjpQYXJhbWV0ZXJzIGFzIGZyYW1lX3N1cHBvcnQ6OnRyYWl0czo6CmR5bmFtaWNfcGFyYW1zOjpBZ2dyZWdhdGVkS2V5VmFsdWU+OjpLZXkAAABAUGFsbGV0UmFuZG9tbmVzcwQA4QYByQE8ZHluYW1pY19wYXJhbXM6OnBhbGxldF9yYW5kb21uZXNzOjpQYXJhbWV0ZXJzIGFzIGZyYW1lX3N1cHBvcnQ6OnRyYWl0cwo6OmR5bmFtaWNfcGFyYW1zOjpBZ2dyZWdhdGVkS2V5VmFsdWU+OjpLZXkAAQAkWGNtQ29uZmlnBADlBgGtATxkeW5hbWljX3BhcmFtczo6eGNtX2NvbmZpZzo6UGFyYW1ldGVycyBhcyBmcmFtZV9zdXBwb3J0Ojp0cmFpdHM6OgpkeW5hbWljX3BhcmFtczo6QWdncmVnYXRlZEtleVZhbHVlPjo6S2V5AAIAAN0GFEBtb29uYmVhbV9ydW50aW1lOHJ1bnRpbWVfcGFyYW1zOGR5bmFtaWNfcGFyYW1zOHJ1bnRpbWVfY29uZmlnNFBhcmFtZXRlcnNLZXkAAQhYRmVlc1RyZWFzdXJ5UHJvcG9ydGlvbgQAUQIBWEZlZXNUcmVhc3VyeVByb3BvcnRpb24AAABcTWF4VHJhbnNhY3Rpb25zUGVyQmxvY2sEAFkCAVxNYXhUcmFuc2FjdGlvbnNQZXJCbG9jawABAADhBhRAbW9vbmJlYW1fcnVudGltZThydW50aW1lX3BhcmFtczhkeW5hbWljX3BhcmFtc0RwYWxsZXRfcmFuZG9tbmVzczRQYXJhbWV0ZXJzS2V5AAEEHERlcG9zaXQEAGUCARxEZXBvc2l0AAAAAOUGFEBtb29uYmVhbV9ydW50aW1lOHJ1bnRpbWVfcGFyYW1zOGR5bmFtaWNfcGFyYW1zKHhjbV9jb25maWc0UGFyYW1ldGVyc0tleQABBGxGb3JlaWduQXNzZXRDcmVhdGlvbkRlcG9zaXQEAHUCAWxGb3JlaWduQXNzZXRDcmVhdGlvbkRlcG9zaXQAAAAA6QYEGE9wdGlvbgQEVAHtBgEIEE5vbmUAAAAQU29tZQQA7QYAAAEAAO0GDEBtb29uYmVhbV9ydW50aW1lOHJ1bnRpbWVfcGFyYW1zWFJ1bnRpbWVQYXJhbWV0ZXJzVmFsdWUAAQw0UnVudGltZUNvbmZpZwQA8QYBxQE8ZHluYW1pY19wYXJhbXM6OnJ1bnRpbWVfY29uZmlnOjpQYXJhbWV0ZXJzIGFzIGZyYW1lX3N1cHBvcnQ6OnRyYWl0czo6CmR5bmFtaWNfcGFyYW1zOjpBZ2dyZWdhdGVkS2V5VmFsdWU+OjpWYWx1ZQAAAEBQYWxsZXRSYW5kb21uZXNzBAD1BgHRATxkeW5hbWljX3BhcmFtczo6cGFsbGV0X3JhbmRvbW5lc3M6OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzCjo6ZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlAAEAJFhjbUNvbmZpZwQA+QYBtQE8ZHluYW1pY19wYXJhbXM6OnhjbV9jb25maWc6OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlAAIAAPEGFEBtb29uYmVhbV9ydW50aW1lOHJ1bnRpbWVfcGFyYW1zOGR5bmFtaWNfcGFyYW1zOHJ1bnRpbWVfY29uZmlnPFBhcmFtZXRlcnNWYWx1ZQABCFhGZWVzVHJlYXN1cnlQcm9wb3J0aW9uBACwARxQZXJiaWxsAAAAXE1heFRyYW5zYWN0aW9uc1BlckJsb2NrBAAoAQx1MzIAAQAA9QYUQG1vb25iZWFtX3J1bnRpbWU4cnVudGltZV9wYXJhbXM4ZHluYW1pY19wYXJhbXNEcGFsbGV0X3JhbmRvbW5lc3M8UGFyYW1ldGVyc1ZhbHVlAAEEHERlcG9zaXQEAG0CAdEBQm91bmRlZFUxMjg8eyAxICogY3VycmVuY3k6OkdMTVIgKiBjdXJyZW5jeTo6U1VQUExZX0ZBQ1RPUiB9LAp7IDFfMDAwICogY3VycmVuY3k6OkdMTVIgKiBjdXJyZW5jeTo6U1VQUExZX0ZBQ1RPUiB9LD4AAAAA+QYUQG1vb25iZWFtX3J1bnRpbWU4cnVudGltZV9wYXJhbXM4ZHluYW1pY19wYXJhbXMoeGNtX2NvbmZpZzxQYXJhbWV0ZXJzVmFsdWUAAQRsRm9yZWlnbkFzc2V0Q3JlYXRpb25EZXBvc2l0BAC8ARB1MTI4AAAAAP0GDChwYWxsZXRfZXZtGHBhbGxldBRFdmVudAQEVAABFAxMb2cEAQxsb2cBBwEMTG9nAAAEfEV0aGVyZXVtIGV2ZW50cyBmcm9tIGNvbnRyYWN0cy4cQ3JlYXRlZAQBHGFkZHJlc3MZAQEQSDE2MAABBLRBIGNvbnRyYWN0IGhhcyBiZWVuIGNyZWF0ZWQgYXQgZ2l2ZW4gYWRkcmVzcy40Q3JlYXRlZEZhaWxlZAQBHGFkZHJlc3MZAQEQSDE2MAACBAUBQSBjb250cmFjdCB3YXMgYXR0ZW1wdGVkIHRvIGJlIGNyZWF0ZWQsIGJ1dCB0aGUgZXhlY3V0aW9uIGZhaWxlZC4gRXhlY3V0ZWQEARxhZGRyZXNzGQEBEEgxNjAAAwT4QSBjb250cmFjdCBoYXMgYmVlbiBleGVjdXRlZCBzdWNjZXNzZnVsbHkgd2l0aCBzdGF0ZXMgYXBwbGllZC44RXhlY3V0ZWRGYWlsZWQEARxhZGRyZXNzGQEBEEgxNjAABARlAUEgY29udHJhY3QgaGFzIGJlZW4gZXhlY3V0ZWQgd2l0aCBlcnJvcnMuIFN0YXRlcyBhcmUgcmV2ZXJ0ZWQgd2l0aCBvbmx5IGdhcyBmZWVzIGFwcGxpZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0AQcMIGV0aGVyZXVtDGxvZwxMb2cAAAwBHGFkZHJlc3MZAQEQSDE2MAABGHRvcGljc5UCASRWZWM8SDI1Nj4AARBkYXRhFAEUQnl0ZXMAAAUHDDxwYWxsZXRfZXRoZXJldW0YcGFsbGV0FEV2ZW50AAEEIEV4ZWN1dGVkFAEQZnJvbRkBARBIMTYwAAEIdG8ZAQEQSDE2MAABQHRyYW5zYWN0aW9uX2hhc2gsARBIMjU2AAEsZXhpdF9yZWFzb24JBwEoRXhpdFJlYXNvbgABKGV4dHJhX2RhdGEUARxWZWM8dTg+AAAEyEFuIGV0aGVyZXVtIHRyYW5zYWN0aW9uIHdhcyBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0CQcMIGV2bV9jb3JlFGVycm9yKEV4aXRSZWFzb24AARAcU3VjY2VlZAQADQcBLEV4aXRTdWNjZWVkAAAAFEVycm9yBAARBwEkRXhpdEVycm9yAAEAGFJldmVydAQAIQcBKEV4aXRSZXZlcnQAAgAURmF0YWwEACUHASRFeGl0RmF0YWwAAwAADQcMIGV2bV9jb3JlFGVycm9yLEV4aXRTdWNjZWVkAAEMHFN0b3BwZWQAAAAgUmV0dXJuZWQAAQAgU3VpY2lkZWQAAgAAEQcMIGV2bV9jb3JlFGVycm9yJEV4aXRFcnJvcgABQDhTdGFja1VuZGVyZmxvdwAAADRTdGFja092ZXJmbG93AAEALEludmFsaWRKdW1wAAIAMEludmFsaWRSYW5nZQADAEREZXNpZ25hdGVkSW52YWxpZAAEACxDYWxsVG9vRGVlcAAFADxDcmVhdGVDb2xsaXNpb24ABgBMQ3JlYXRlQ29udHJhY3RMaW1pdAAHACxJbnZhbGlkQ29kZQQAFQcBGE9wY29kZQAPACxPdXRPZk9mZnNldAAIACBPdXRPZkdhcwAJACRPdXRPZkZ1bmQACgAsUENVbmRlcmZsb3cACwAsQ3JlYXRlRW1wdHkADAAUT3RoZXIEABkHAURDb3c8J3N0YXRpYywgc3RyPgANACBNYXhOb25jZQAOAAAVBwwgZXZtX2NvcmUYb3Bjb2RlGE9wY29kZQAABAAIAQh1OAAAGQcEDENvdwQEVAEdBwAEAB0HAAAAHQcAAAUCACEHDCBldm1fY29yZRRlcnJvcihFeGl0UmV2ZXJ0AAEEIFJldmVydGVkAAAAACUHDCBldm1fY29yZRRlcnJvciRFeGl0RmF0YWwAARAwTm90U3VwcG9ydGVkAAAASFVuaGFuZGxlZEludGVycnVwdAABAEBDYWxsRXJyb3JBc0ZhdGFsBAARBwEkRXhpdEVycm9yAAIAFE90aGVyBAAZBwFEQ293PCdzdGF0aWMsIHN0cj4AAwAAKQcMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEV2ZW50BARUAAEoJFNjaGVkdWxlZAgBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4KAEMdTMyAAAEUFNjaGVkdWxlZCBzb21lIHRhc2suIENhbmNlbGVkCAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgoAQx1MzIAAQRMQ2FuY2VsZWQgc29tZSB0YXNrLihEaXNwYXRjaGVkDAEQdGFza90CAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZC0GAUBPcHRpb248VGFza05hbWU+AAEYcmVzdWx0vQYBOERpc3BhdGNoUmVzdWx0AAIEVERpc3BhdGNoZWQgc29tZSB0YXNrLiBSZXRyeVNldBABEHRhc2vdAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWQtBgFAT3B0aW9uPFRhc2tOYW1lPgABGHBlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEccmV0cmllcwgBCHU4AAMEoFNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHNvbWUgdGFzay44UmV0cnlDYW5jZWxsZWQIARB0YXNr3QIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkLQYBQE9wdGlvbjxUYXNrTmFtZT4ABASsQ2FuY2VsIGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjxDYWxsVW5hdmFpbGFibGUIARB0YXNr3QIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkLQYBQE9wdGlvbjxUYXNrTmFtZT4ABQQpAVRoZSBjYWxsIGZvciB0aGUgcHJvdmlkZWQgaGFzaCB3YXMgbm90IGZvdW5kIHNvIHRoZSB0YXNrIGhhcyBiZWVuIGFib3J0ZWQuOFBlcmlvZGljRmFpbGVkCAEQdGFza90CAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZC0GAUBPcHRpb248VGFza05hbWU+AAYEPQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJlbmV3ZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2suLFJldHJ5RmFpbGVkCAEQdGFza90CAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZC0GAUBPcHRpb248VGFza05hbWU+AAcIXQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJldHJpZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2sgb3IgdGhlcmWcd2FzIG5vdCBlbm91Z2ggd2VpZ2h0IHRvIHJlc2NoZWR1bGUgaXQuVFBlcm1hbmVudGx5T3ZlcndlaWdodAgBEHRhc2vdAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWQtBgFAT3B0aW9uPFRhc2tOYW1lPgAIBPBUaGUgZ2l2ZW4gdGFzayBjYW4gbmV2ZXIgYmUgZXhlY3V0ZWQgc2luY2UgaXQgaXMgb3ZlcndlaWdodC5AQWdlbmRhSW5jb21wbGV0ZQQBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgAJBIRBZ2VuZGEgaXMgaW5jb21wbGV0ZSBmcm9tIGB3aGVuYC4EMEV2ZW50cyB0eXBlLi0HDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0FEV2ZW50BARUAAEMFE5vdGVkBAEQaGFzaCwBHFQ6Okhhc2gAAARoQSBwcmVpbWFnZSBoYXMgYmVlbiBub3RlZC4kUmVxdWVzdGVkBAEQaGFzaCwBHFQ6Okhhc2gAAQR4QSBwcmVpbWFnZSBoYXMgYmVlbiByZXF1ZXN0ZWQuHENsZWFyZWQEARBoYXNoLAEcVDo6SGFzaAACBGxBIHByZWltYWdlIGhhcyBiZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQxBwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nGHBhbGxldBRFdmVudAgEVAAESQABFCREZWxlZ2F0ZWQMAAABMFQ6OkFjY291bnRJZAAAAAEwVDo6QWNjb3VudElkAAAJAQE0Q2xhc3NPZjxULCBJPgAABB0BQW4gYWNjb3VudCBoYXMgZGVsZWdhdGVkIHRoZWlyIHZvdGUgdG8gYW5vdGhlciBhY2NvdW50LiBcW3dobywgdGFyZ2V0XF0sVW5kZWxlZ2F0ZWQIAAABMFQ6OkFjY291bnRJZAAACQEBNENsYXNzT2Y8VCwgST4AAQT0QW4gXFthY2NvdW50XF0gaGFzIGNhbmNlbGxlZCBhIHByZXZpb3VzIGRlbGVnYXRpb24gb3BlcmF0aW9uLhRWb3RlZAwBDHdobwABMFQ6OkFjY291bnRJZAABEHZvdGXpAgFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgABKHBvbGxfaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgACBFBBbiBhY2NvdW50IGhhcyB2b3RlZCxWb3RlUmVtb3ZlZAwBDHdobwABMFQ6OkFjY291bnRJZAABEHZvdGXpAgFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgABKHBvbGxfaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgADBFxBIHZvdGUgaGFzIGJlZW4gcmVtb3ZlZDBWb3RlVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARRjbGFzcwkBATRDbGFzc09mPFQsIEk+AAQERQFUaGUgbG9ja3VwIHBlcmlvZCBvZiBhIGNvbnZpY3Rpb24gdm90ZSBleHBpcmVkLCBhbmQgdGhlIGZ1bmRzIGhhdmUgYmVlbiB1bmxvY2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ1BwxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXZlbnQIBFQABEkAAUAkU3VibWl0dGVkDAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2sJAQE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWz9AgFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4ABIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gc3VibWl0dGVkLlREZWNpc2lvbkRlcG9zaXRQbGFjZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnS8ATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgEElFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHBsYWNlZC5cRGVjaXNpb25EZXBvc2l0UmVmdW5kZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnS8ATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgIEnFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHJlZnVuZGVkLjhEZXBvc2l0U2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudLwBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAwRsQSBkZXBvc2l0IGhhcyBiZWVuIHNsYXNoZWQuPERlY2lzaW9uU3RhcnRlZBABFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRyYWNrCQEBPFRyYWNrSWRPZjxULCBJPgQlAVRoZSB0cmFjayAoYW5kIGJ5IGV4dGVuc2lvbiBwcm9wb3NhbCBkaXNwYXRjaCBvcmlnaW4pIG9mIHRoaXMgcmVmZXJlbmR1bS4BIHByb3Bvc2Fs/QIBTEJvdW5kZWRDYWxsT2Y8VCwgST4EgFRoZSBwcm9wb3NhbCBmb3IgdGhlIHJlZmVyZW5kdW0uARR0YWxseTkHASBUOjpUYWxseQS4VGhlIGN1cnJlbnQgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgQEvEEgcmVmZXJlbmR1bSBoYXMgbW92ZWQgaW50byB0aGUgZGVjaWRpbmcgcGhhc2UuOENvbmZpcm1TdGFydGVkBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgUAOENvbmZpcm1BYm9ydGVkBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgYAJENvbmZpcm1lZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5OQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgcEIQFBIHJlZmVyZW5kdW0gaGFzIGVuZGVkIGl0cyBjb25maXJtYXRpb24gcGhhc2UgYW5kIGlzIHJlYWR5IGZvciBhcHByb3ZhbC4gQXBwcm92ZWQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uCAQNAUEgcmVmZXJlbmR1bSBoYXMgYmVlbiBhcHByb3ZlZCBhbmQgaXRzIHByb3Bvc2FsIGhhcyBiZWVuIHNjaGVkdWxlZC4gUmVqZWN0ZWQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseTkHASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4JBKxBIHByb3Bvc2FsIGhhcyBiZWVuIHJlamVjdGVkIGJ5IHJlZmVyZW5kdW0uIFRpbWVkT3V0CAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHk5BwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCgTYQSByZWZlcmVuZHVtIGhhcyBiZWVuIHRpbWVkIG91dCB3aXRob3V0IGJlaW5nIGRlY2lkZWQuJENhbmNlbGxlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5OQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgsEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjYW5jZWxsZWQuGEtpbGxlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5OQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgwEdEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBraWxsZWQuZFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnS8ATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50Lg0EpFRoZSBzdWJtaXNzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuLE1ldGFkYXRhU2V0CAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaCwBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDgScTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzZXQuPE1ldGFkYXRhQ2xlYXJlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BEGhhc2gsARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg8ErE1ldGFkYXRhIGZvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ5BwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzFFRhbGx5CBRWb3RlcwG8FFRvdGFsAAAMARBheWVzvAEUVm90ZXMAARBuYXlzvAEUVm90ZXMAARxzdXBwb3J0vAEUVm90ZXMAAD0HDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFdmVudAQEVAABDDxDYWxsV2hpdGVsaXN0ZWQEASRjYWxsX2hhc2gsARxUOjpIYXNoAAAAWFdoaXRlbGlzdGVkQ2FsbFJlbW92ZWQEASRjYWxsX2hhc2gsARxUOjpIYXNoAAEAZFdoaXRlbGlzdGVkQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0QQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0QQcEGFJlc3VsdAgEVAFFBwRFAUkHAQgIT2sEAEUHAAAAAAxFcnIEAEkHAAABAABFBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQb3N0RGlzcGF0Y2hJbmZvAAAIATRhY3R1YWxfd2VpZ2h0kQQBOE9wdGlvbjxXZWlnaHQ+AAEgcGF5c19mZWVZBgEQUGF5cwAASQcIKHNwX3J1bnRpbWVkRGlzcGF0Y2hFcnJvcldpdGhQb3N0SW5mbwQQSW5mbwFFBwAIASRwb3N0X2luZm9FBwEQSW5mbwABFGVycm9yXQYBNERpc3BhdGNoRXJyb3IAAE0HDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQURXZlbnQIBFQABEkAASggUHJvcG9zZWQQARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE4cHJvcG9zYWxfaW5kZXgoATRQcm9wb3NhbEluZGV4AAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAASR0aHJlc2hvbGQoASxNZW1iZXJDb3VudAAACEkBQSBtb3Rpb24gKGdpdmVuIGhhc2gpIGhhcyBiZWVuIHByb3Bvc2VkIChieSBnaXZlbiBhY2NvdW50KSB3aXRoIGEgdGhyZXNob2xkIChnaXZlbjxgTWVtYmVyQ291bnRgKS4UVm90ZWQUARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARR2b3RlZMABEGJvb2wAAQx5ZXMoASxNZW1iZXJDb3VudAABCG5vKAEsTWVtYmVyQ291bnQAAQgFAUEgbW90aW9uIChnaXZlbiBoYXNoKSBoYXMgYmVlbiB2b3RlZCBvbiBieSBnaXZlbiBhY2NvdW50LCBsZWF2aW5nFQFhIHRhbGx5ICh5ZXMgdm90ZXMgYW5kIG5vIHZvdGVzIGdpdmVuIHJlc3BlY3RpdmVseSBhcyBgTWVtYmVyQ291bnRgKS4gQXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAACBMBBIG1vdGlvbiB3YXMgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4sRGlzYXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAADBNBBIG1vdGlvbiB3YXMgbm90IGFwcHJvdmVkIGJ5IHRoZSByZXF1aXJlZCB0aHJlc2hvbGQuIEV4ZWN1dGVkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHS9BgE4RGlzcGF0Y2hSZXN1bHQABAQhAUEgbW90aW9uIHdhcyBleGVjdXRlZDsgcmVzdWx0IHdpbGwgYmUgYE9rYCBpZiBpdCByZXR1cm5lZCB3aXRob3V0IGVycm9yLjhNZW1iZXJFeGVjdXRlZAgBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0vQYBOERpc3BhdGNoUmVzdWx0AAUESQFBIHNpbmdsZSBtZW1iZXIgZGlkIHNvbWUgYWN0aW9uOyByZXN1bHQgd2lsbCBiZSBgT2tgIGlmIGl0IHJldHVybmVkIHdpdGhvdXQgZXJyb3IuGENsb3NlZAwBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEMeWVzKAEsTWVtYmVyQ291bnQAAQhubygBLE1lbWJlckNvdW50AAYEVQFBIHByb3Bvc2FsIHdhcyBjbG9zZWQgYmVjYXVzZSBpdHMgdGhyZXNob2xkIHdhcyByZWFjaGVkIG9yIGFmdGVyIGl0cyBkdXJhdGlvbiB3YXMgdXAuGEtpbGxlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAcEWEEgcHJvcG9zYWwgd2FzIGtpbGxlZC5IUHJvcG9zYWxDb3N0QnVybmVkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAQx3aG8AATBUOjpBY2NvdW50SWQACASwU29tZSBjb3N0IGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgd2FzIGJ1cm5lZC5QUHJvcG9zYWxDb3N0UmVsZWFzZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABDHdobwABMFQ6OkFjY291bnRJZAAJBLhTb21lIGNvc3QgZm9yIHN0b3JpbmcgYSBwcm9wb3NhbCB3YXMgcmVsZWFzZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0UQcMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBRFdmVudAgEVAAESQABKCBQcm9wb3NlZBABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAThwcm9wb3NhbF9pbmRleCgBNFByb3Bvc2FsSW5kZXgAATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABJHRocmVzaG9sZCgBLE1lbWJlckNvdW50AAAISQFBIG1vdGlvbiAoZ2l2ZW4gaGFzaCkgaGFzIGJlZW4gcHJvcG9zZWQgKGJ5IGdpdmVuIGFjY291bnQpIHdpdGggYSB0aHJlc2hvbGQgKGdpdmVuPGBNZW1iZXJDb3VudGApLhRWb3RlZBQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABFHZvdGVkwAEQYm9vbAABDHllcygBLE1lbWJlckNvdW50AAEIbm8oASxNZW1iZXJDb3VudAABCAUBQSBtb3Rpb24gKGdpdmVuIGhhc2gpIGhhcyBiZWVuIHZvdGVkIG9uIGJ5IGdpdmVuIGFjY291bnQsIGxlYXZpbmcVAWEgdGFsbHkgKHllcyB2b3RlcyBhbmQgbm8gdm90ZXMgZ2l2ZW4gcmVzcGVjdGl2ZWx5IGFzIGBNZW1iZXJDb3VudGApLiBBcHByb3ZlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAIEwEEgbW90aW9uIHdhcyBhcHByb3ZlZCBieSB0aGUgcmVxdWlyZWQgdGhyZXNob2xkLixEaXNhcHByb3ZlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAME0EEgbW90aW9uIHdhcyBub3QgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4gRXhlY3V0ZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdL0GAThEaXNwYXRjaFJlc3VsdAAEBCEBQSBtb3Rpb24gd2FzIGV4ZWN1dGVkOyByZXN1bHQgd2lsbCBiZSBgT2tgIGlmIGl0IHJldHVybmVkIHdpdGhvdXQgZXJyb3IuOE1lbWJlckV4ZWN1dGVkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHS9BgE4RGlzcGF0Y2hSZXN1bHQABQRJAUEgc2luZ2xlIG1lbWJlciBkaWQgc29tZSBhY3Rpb247IHJlc3VsdCB3aWxsIGJlIGBPa2AgaWYgaXQgcmV0dXJuZWQgd2l0aG91dCBlcnJvci4YQ2xvc2VkDAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAQx5ZXMoASxNZW1iZXJDb3VudAABCG5vKAEsTWVtYmVyQ291bnQABgRVAUEgcHJvcG9zYWwgd2FzIGNsb3NlZCBiZWNhdXNlIGl0cyB0aHJlc2hvbGQgd2FzIHJlYWNoZWQgb3IgYWZ0ZXIgaXRzIGR1cmF0aW9uIHdhcyB1cC4YS2lsbGVkBAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gABwRYQSBwcm9wb3NhbCB3YXMga2lsbGVkLkhQcm9wb3NhbENvc3RCdXJuZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABDHdobwABMFQ6OkFjY291bnRJZAAIBLBTb21lIGNvc3QgZm9yIHN0b3JpbmcgYSBwcm9wb3NhbCB3YXMgYnVybmVkLlBQcm9wb3NhbENvc3RSZWxlYXNlZAgBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEMd2hvAAEwVDo6QWNjb3VudElkAAkEuFNvbWUgY29zdCBmb3Igc3RvcmluZyBhIHByb3Bvc2FsIHdhcyByZWxlYXNlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRVBww8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABMCBTcGVuZGluZwQBQGJ1ZGdldF9yZW1haW5pbme8ATxCYWxhbmNlT2Y8VCwgST4AAATkV2UgaGF2ZSBlbmRlZCBhIHNwZW5kIHBlcmlvZCBhbmQgd2lsbCBub3cgYWxsb2NhdGUgZnVuZHMuHEF3YXJkZWQMAThwcm9wb3NhbF9pbmRleCgBNFByb3Bvc2FsSW5kZXgAARRhd2FyZLwBPEJhbGFuY2VPZjxULCBJPgABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAQR8U29tZSBmdW5kcyBoYXZlIGJlZW4gYWxsb2NhdGVkLhRCdXJudAQBLGJ1cm50X2Z1bmRzvAE8QmFsYW5jZU9mPFQsIEk+AAIEiFNvbWUgb2Ygb3VyIGZ1bmRzIGhhdmUgYmVlbiBidXJudC4gUm9sbG92ZXIEAUByb2xsb3Zlcl9iYWxhbmNlvAE8QmFsYW5jZU9mPFQsIEk+AAMELQFTcGVuZGluZyBoYXMgZmluaXNoZWQ7IHRoaXMgaXMgdGhlIGFtb3VudCB0aGF0IHJvbGxzIG92ZXIgdW50aWwgbmV4dCBzcGVuZC4cRGVwb3NpdAQBFHZhbHVlvAE8QmFsYW5jZU9mPFQsIEk+AAQEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGRlcG9zaXRlZC40U3BlbmRBcHByb3ZlZAwBOHByb3Bvc2FsX2luZGV4KAE0UHJvcG9zYWxJbmRleAABGGFtb3VudLwBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAUEnEEgbmV3IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLjxVcGRhdGVkSW5hY3RpdmUIASxyZWFjdGl2YXRlZLwBPEJhbGFuY2VPZjxULCBJPgABLGRlYWN0aXZhdGVkvAE8QmFsYW5jZU9mPFQsIEk+AAYEzFRoZSBpbmFjdGl2ZSBmdW5kcyBvZiB0aGUgcGFsbGV0IGhhdmUgYmVlbiB1cGRhdGVkLkhBc3NldFNwZW5kQXBwcm92ZWQYARRpbmRleCgBKFNwZW5kSW5kZXgAAShhc3NldF9raW5kJQMBMFQ6OkFzc2V0S2luZAABGGFtb3VudLwBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAThUOjpCZW5lZmljaWFyeQABKHZhbGlkX2Zyb20oAVBCbG9ja051bWJlckZvcjxULCBJPgABJGV4cGlyZV9hdCgBUEJsb2NrTnVtYmVyRm9yPFQsIEk+AAcEtEEgbmV3IGFzc2V0IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLkBBc3NldFNwZW5kVm9pZGVkBAEUaW5kZXgoAShTcGVuZEluZGV4AAgEdEFuIGFwcHJvdmVkIHNwZW5kIHdhcyB2b2lkZWQuEFBhaWQIARRpbmRleCgBKFNwZW5kSW5kZXgAAShwYXltZW50X2lk/QUBZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACQRMQSBwYXltZW50IGhhcHBlbmVkLjRQYXltZW50RmFpbGVkCAEUaW5kZXgoAShTcGVuZEluZGV4AAEocGF5bWVudF9pZP0FAWQ8VDo6UGF5bWFzdGVyIGFzIFBheT46OklkAAoEkEEgcGF5bWVudCBmYWlsZWQgYW5kIGNhbiBiZSByZXRyaWVkLjhTcGVuZFByb2Nlc3NlZAQBFGluZGV4KAEoU3BlbmRJbmRleAALCE0BQSBzcGVuZCB3YXMgcHJvY2Vzc2VkIGFuZCByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UuIEl0IG1pZ2h0IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHlwcGFpZCBvciBpdCBtYXkgaGF2ZSBleHBpcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFkHDGBwYWxsZXRfY3Jvd2Rsb2FuX3Jld2FyZHMYcGFsbGV0FEV2ZW50BARUAAEYSEluaXRpYWxQYXltZW50TWFkZQgAAAEwVDo6QWNjb3VudElkAAC8ATBCYWxhbmNlT2Y8VD4AAATcVGhlIGluaXRpYWwgcGF5bWVudCBvZiBJbml0aWFsaXphdGlvblBheW1lbnQgJSB3YXMgcGFpZGBOYXRpdmVJZGVudGl0eUFzc29jaWF0ZWQMADABWFQ6OlJlbGF5Q2hhaW5BY2NvdW50SWQAAAABMFQ6OkFjY291bnRJZAAAvAEwQmFsYW5jZU9mPFQ+AAEIVQFTb21lb25lIGhhcyBwcm92ZW4gdGhleSBtYWRlIGEgY29udHJpYnV0aW9uIGFuZCBhc3NvY2lhdGVkIGEgbmF0aXZlIGlkZW50aXR5IHdpdGggaXQueQFEYXRhIGlzIHRoZSByZWxheSBhY2NvdW50LCAgbmF0aXZlIGFjY291bnQgYW5kIHRoZSB0b3RhbCBhbW91bnQgb2YgX3Jld2FyZHNfIHRoYXQgd2lsbCBiZSBwYWlkLFJld2FyZHNQYWlkCAAAATBUOjpBY2NvdW50SWQAALwBMEJhbGFuY2VPZjxUPgACCJxBIGNvbnRyaWJ1dG9yIGhhcyBjbGFpbWVkIHNvbWUgcmV3YXJkcy4BAURhdGEgaXMgdGhlIGFjY291bnQgZ2V0dGluZyBwYWlkIGFuZCB0aGUgYW1vdW50IG9mIHJld2FyZHMgcGFpZC5QUmV3YXJkQWRkcmVzc1VwZGF0ZWQIAAABMFQ6OkFjY291bnRJZAAAAAEwVDo6QWNjb3VudElkAAMEtEEgY29udHJpYnV0b3IgaGFzIHVwZGF0ZWQgdGhlIHJld2FyZCBhZGRyZXNzLpBJbml0aWFsaXplZEFscmVhZHlJbml0aWFsaXplZEFjY291bnQMADABWFQ6OlJlbGF5Q2hhaW5BY2NvdW50SWQAABkDAVBPcHRpb248VDo6QWNjb3VudElkPgAAvAEwQmFsYW5jZU9mPFQ+AAQEJQFXaGVuIGluaXRpYWxpemluZyB0aGUgcmV3YXJkIHZlYyBhbiBhbHJlYWR5IGluaXRpYWxpemVkIGFjY291bnQgd2FzIGZvdW5krEluaXRpYWxpemVkQWNjb3VudFdpdGhOb3RFbm91Z2hDb250cmlidXRpb24MADABWFQ6OlJlbGF5Q2hhaW5BY2NvdW50SWQAABkDAVBPcHRpb248VDo6QWNjb3VudElkPgAAvAEwQmFsYW5jZU9mPFQ+AAUEJQFXaGVuIGluaXRpYWxpemluZyB0aGUgcmV3YXJkIHZlYyBhbiBhbHJlYWR5IGluaXRpYWxpemVkIGFjY291bnQgd2FzIGZvdW5kBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0XQcMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEEPFhjbXBNZXNzYWdlU2VudAQBMG1lc3NhZ2VfaGFzaDABHFhjbUhhc2gAAATAQW4gSFJNUCBtZXNzYWdlIHdhcyBzZW50IHRvIGEgc2libGluZyBwYXJhY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0YQcMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAQw0SW52YWxpZEZvcm1hdAQAMAEgW3U4OyAzMl0AAAiARG93bndhcmQgbWVzc2FnZSBpcyBpbnZhbGlkIFhDTS4gXFsgaWQgXF1IVW5zdXBwb3J0ZWRWZXJzaW9uBAAwASBbdTg7IDMyXQABCLxEb3dud2FyZCBtZXNzYWdlIGlzIHVuc3VwcG9ydGVkIHZlcnNpb24gb2YgWENNLiBcWyBpZCBcXUBFeGVjdXRlZERvd253YXJkCAAwASBbdTg7IDMyXQAAZQcBHE91dGNvbWUAAgjERG93bndhcmQgbWVzc2FnZSBleGVjdXRlZCB3aXRoIHRoZSBnaXZlbiBvdXRjb21lLkRcWyBpZCwgb3V0Y29tZSBcXQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGUHECxzdGFnaW5nX3hjbQh2NRh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWRxAQEYV2VpZ2h0AAAAKEluY29tcGxldGUIARB1c2VkcQEBGFdlaWdodAABFGVycm9yaQcBQEluc3RydWN0aW9uRXJyb3IAAQAURXJyb3IEAGkHAUBJbnN0cnVjdGlvbkVycm9yAAIAAGkHECxzdGFnaW5nX3hjbQh2NRh0cmFpdHNASW5zdHJ1Y3Rpb25FcnJvcgAACAEUaW5kZXgIAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3J5BAEURXJyb3IAAG0HDChwYWxsZXRfeGNtGHBhbGxldBRFdmVudAQEVAABdCRBdHRlbXB0ZWQEARxvdXRjb21lZQcBUHhjbTo6bGF0ZXN0OjpPdXRjb21lAAAEqEV4ZWN1dGlvbiBvZiBhbiBYQ00gbWVzc2FnZSB3YXMgYXR0ZW1wdGVkLhBTZW50EAEYb3JpZ2luMQEBIExvY2F0aW9uAAEsZGVzdGluYXRpb24xAQEgTG9jYXRpb24AARxtZXNzYWdlSQQBHFhjbTwoKT4AAShtZXNzYWdlX2lkMAEcWGNtSGFzaAABBGBBbiBYQ00gbWVzc2FnZSB3YXMgc2VudC4oU2VuZEZhaWxlZBABGG9yaWdpbjEBASBMb2NhdGlvbgABLGRlc3RpbmF0aW9uMQEBIExvY2F0aW9uAAEUZXJyb3JxBwEkU2VuZEVycm9yAAEobWVzc2FnZV9pZDABHFhjbUhhc2gAAgR4QW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHNlbmQuPFByb2Nlc3NYY21FcnJvcgwBGG9yaWdpbjEBASBMb2NhdGlvbgABFGVycm9yeQQBIFhjbUVycm9yAAEobWVzc2FnZV9pZDABHFhjbUhhc2gAAwSEQW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHByb2Nlc3MuSFVuZXhwZWN0ZWRSZXNwb25zZQgBGG9yaWdpbjEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAAEDFkBUXVlcnkgcmVzcG9uc2UgcmVjZWl2ZWQgd2hpY2ggZG9lcyBub3QgbWF0Y2ggYSByZWdpc3RlcmVkIHF1ZXJ5LiBUaGlzIG1heSBiZSBiZWNhdXNlIGFVAW1hdGNoaW5nIHF1ZXJ5IHdhcyBuZXZlciByZWdpc3RlcmVkLCBpdCBtYXkgYmUgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZSByZXNwb25zZSwgb3JwYmVjYXVzZSB0aGUgcXVlcnkgdGltZWQgb3V0LjRSZXNwb25zZVJlYWR5CAEgcXVlcnlfaWQYARxRdWVyeUlkAAEgcmVzcG9uc2VtBAEgUmVzcG9uc2UABQhdAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBpcyByZWFkeSBmb3IgdGFraW5nIHdpdGggYHRha2VfcmVzcG9uc2VgLiBUaGVyZSBpc4BubyByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBjYWxsLiBOb3RpZmllZAwBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAYIWQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uIGhhc6hiZWVuIGRpc3BhdGNoZWQgYW5kIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseS5ATm90aWZ5T3ZlcndlaWdodBQBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAE0YWN0dWFsX3dlaWdodHEBARhXZWlnaHQAAUxtYXhfYnVkZ2V0ZWRfd2VpZ2h0cQEBGFdlaWdodAAHDEkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvblkBY291bGQgbm90IGJlIGRpc3BhdGNoZWQgYmVjYXVzZSB0aGUgZGlzcGF0Y2ggd2VpZ2h0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSB3ZWlnaHTkb3JpZ2luYWxseSBidWRnZXRlZCBieSB0aGlzIHJ1bnRpbWUgZm9yIHRoZSBxdWVyeSByZXN1bHQuTE5vdGlmeURpc3BhdGNoRXJyb3IMASBxdWVyeV9pZBgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAICFUBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZXJlIHdhcyBhIGdlbmVyYWwgZXJyb3Igd2l0aIhkaXNwYXRjaGluZyB0aGUgbm90aWZpY2F0aW9uIGNhbGwuSE5vdGlmeURlY29kZUZhaWxlZAwBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAkMUQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIGRpc3BhdGNoIHdhcyB1bmFibGUgdG8gYmVZAWRlY29kZWQgaW50byBhIGBDYWxsYDsgdGhpcyBtaWdodCBiZSBkdWUgdG8gZGlzcGF0Y2ggZnVuY3Rpb24gaGF2aW5nIGEgc2lnbmF0dXJlIHdoaWNolGlzIG5vdCBgKG9yaWdpbiwgUXVlcnlJZCwgUmVzcG9uc2UpYC5ASW52YWxpZFJlc3BvbmRlcgwBGG9yaWdpbjEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAABRGV4cGVjdGVkX2xvY2F0aW9ujQQBQE9wdGlvbjxMb2NhdGlvbj4ACgxZAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgb3JpZ2luIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzVQFub3QgbWF0Y2ggdGhhdCBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlxJbnZhbGlkUmVzcG9uZGVyVmVyc2lvbggBGG9yaWdpbjEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAALHFEBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBvcmlnaW4gbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjRSZXNwb25zZVRha2VuBAEgcXVlcnlfaWQYARxRdWVyeUlkAAwEyFJlY2VpdmVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlYWQgYW5kIHJlbW92ZWQuNEFzc2V0c1RyYXBwZWQMARBoYXNoLAEQSDI1NgABGG9yaWdpbjEBASBMb2NhdGlvbgABGGFzc2V0c8UEATxWZXJzaW9uZWRBc3NldHMADQS4U29tZSBhc3NldHMgaGF2ZSBiZWVuIHBsYWNlZCBpbiBhbiBhc3NldCB0cmFwLlRWZXJzaW9uQ2hhbmdlTm90aWZpZWQQASxkZXN0aW5hdGlvbjEBASBMb2NhdGlvbgABGHJlc3VsdCgBKFhjbVZlcnNpb24AARBjb3N0VQQBGEFzc2V0cwABKG1lc3NhZ2VfaWQwARxYY21IYXNoAA4MJQFBbiBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2UgaGFzIGJlZW4gYXR0ZW1wdGVkIHRvIGJlIHNlbnQuAOBUaGUgY29zdCBvZiBzZW5kaW5nIGl0IChib3JuZSBieSB0aGUgY2hhaW4pIGlzIGluY2x1ZGVkLlxTdXBwb3J0ZWRWZXJzaW9uQ2hhbmdlZAgBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAEcdmVyc2lvbigBKFhjbVZlcnNpb24ADwg5AVRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBhIGxvY2F0aW9uIGhhcyBiZWVuIGNoYW5nZWQuIFRoaXMgbWlnaHQgYmUgdGhyb3VnaCBhbsBhdXRvbWF0aWMgbm90aWZpY2F0aW9uIG9yIGEgbWFudWFsIGludGVydmVudGlvbi5QTm90aWZ5VGFyZ2V0U2VuZEZhaWwMASBsb2NhdGlvbjEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAABFGVycm9yeQQBIFhjbUVycm9yABAIWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcnxzZW5kaW5nIHRoZSBub3RpZmljYXRpb24gdG8gaXQuZE5vdGlmeVRhcmdldE1pZ3JhdGlvbkZhaWwIASBsb2NhdGlvbkEDAURWZXJzaW9uZWRMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAARCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3K0bWlncmF0aW5nIHRoZSBsb2NhdGlvbiB0byBvdXIgbmV3IFhDTSBmb3JtYXQuVEludmFsaWRRdWVyaWVyVmVyc2lvbggBGG9yaWdpbjEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAASHFUBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBxdWVyaWVyIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC44SW52YWxpZFF1ZXJpZXIQARhvcmlnaW4xAQEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAAUBleHBlY3RlZF9xdWVyaWVyMQEBIExvY2F0aW9uAAFQbWF5YmVfYWN0dWFsX3F1ZXJpZXKNBAFAT3B0aW9uPExvY2F0aW9uPgATDF0BRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBxdWVyaWVyIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzUQFub3QgbWF0Y2ggdGhlIGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uUFZlcnNpb25Ob3RpZnlTdGFydGVkDAEsZGVzdGluYXRpb24xAQEgTG9jYXRpb24AARBjb3N0VQQBGEFzc2V0cwABKG1lc3NhZ2VfaWQwARxYY21IYXNoABQIWQFBIHJlbW90ZSBoYXMgcmVxdWVzdGVkIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gZnJvbSB1cyBhbmQgd2UgaGF2ZSBob25vcmVkIGl0Lh0BQSB2ZXJzaW9uIGluZm9ybWF0aW9uIG1lc3NhZ2UgaXMgc2VudCB0byB0aGVtIGFuZCBpdHMgY29zdCBpcyBpbmNsdWRlZC5YVmVyc2lvbk5vdGlmeVJlcXVlc3RlZAwBLGRlc3RpbmF0aW9uMQEBIExvY2F0aW9uAAEQY29zdFUEARhBc3NldHMAAShtZXNzYWdlX2lkMAEcWGNtSGFzaAAVBD0BV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzZW5kIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb25zLmBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbjEBASBMb2NhdGlvbgABEGNvc3RVBAEYQXNzZXRzAAEobWVzc2FnZV9pZDABHFhjbUhhc2gAFgglAVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc3RvcHMgc2VuZGluZyB1cyBYQ00gdmVyc2lvbiBjaGFuZ2U4bm90aWZpY2F0aW9ucy4gRmVlc1BhaWQIARhwYXlpbmcxAQEgTG9jYXRpb24AARBmZWVzVQQBGEFzc2V0cwAXBDEBRmVlcyB3ZXJlIHBhaWQgZnJvbSBhIGxvY2F0aW9uIGZvciBhbiBvcGVyYXRpb24gKG9mdGVuIGZvciB1c2luZyBgU2VuZFhjbWApLjRBc3NldHNDbGFpbWVkDAEQaGFzaCwBEEgyNTYAARhvcmlnaW4xAQEgTG9jYXRpb24AARhhc3NldHPFBAE8VmVyc2lvbmVkQXNzZXRzABgEwFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBjbGFpbWVkIGZyb20gYW4gYXNzZXQgdHJhcGBWZXJzaW9uTWlncmF0aW9uRmluaXNoZWQEARx2ZXJzaW9uKAEoWGNtVmVyc2lvbgAZBIRBIFhDTSB2ZXJzaW9uIG1pZ3JhdGlvbiBmaW5pc2hlZC48QWxpYXNBdXRob3JpemVkDAEcYWxpYXNlcjEBASBMb2NhdGlvbgABGHRhcmdldDEBASBMb2NhdGlvbgABGGV4cGlyef0EASxPcHRpb248dTY0PgAaCF0BQW4gYGFsaWFzZXJgIGxvY2F0aW9uIHdhcyBhdXRob3JpemVkIGJ5IGB0YXJnZXRgIHRvIGFsaWFzIGl0LCBhdXRob3JpemF0aW9uIHZhbGlkIHVudGlsWGBleHBpcnlgIGJsb2NrIG51bWJlci5kQWxpYXNBdXRob3JpemF0aW9uUmVtb3ZlZAgBHGFsaWFzZXIxAQEgTG9jYXRpb24AARh0YXJnZXQxAQEgTG9jYXRpb24AGwTMYHRhcmdldGAgcmVtb3ZlZCBhbGlhcyBhdXRob3JpemF0aW9uIGZvciBgYWxpYXNlcmAucEFsaWFzZXNBdXRob3JpemF0aW9uc1JlbW92ZWQEARh0YXJnZXQxAQEgTG9jYXRpb24AHASoYHRhcmdldGAgcmVtb3ZlZCBhbGwgYWxpYXMgYXV0aG9yaXphdGlvbnMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0cQcQDHhjbQh2Mxh0cmFpdHMkU2VuZEVycm9yAAEcNE5vdEFwcGxpY2FibGUAAAAkVHJhbnNwb3J0AAEAKFVucm91dGFibGUAAgBYRGVzdGluYXRpb25VbnN1cHBvcnRlZAADAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUABAA8TWlzc2luZ0FyZ3VtZW50AAUAEEZlZXMABgAAdQcMVHBhbGxldF94Y21fdHJhbnNhY3RvchhwYWxsZXQURXZlbnQEBFQAASRQVHJhbnNhY3RlZERlcml2YXRpdmUQAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEQZGVzdDEBASBMb2NhdGlvbgABEGNhbGwUARxWZWM8dTg+AAEUaW5kZXgJAQEMdTE2AAAEOQFUcmFuc2FjdGVkIHRoZSBpbm5lciBjYWxsIHRocm91Z2ggYSBkZXJpdmF0aXZlIGFjY291bnQgaW4gYSBkZXN0aW5hdGlvbiBjaGFpbi5MVHJhbnNhY3RlZFNvdmVyZWlnbgwBJGZlZV9wYXllchkDAVBPcHRpb248VDo6QWNjb3VudElkPgABEGRlc3QxAQEgTG9jYXRpb24AARBjYWxsFAEcVmVjPHU4PgABBCUBVHJhbnNhY3RlZCB0aGUgY2FsbCB0aHJvdWdoIHRoZSBzb3ZlcmVpZ24gYWNjb3VudCBpbiBhIGRlc3RpbmF0aW9uIGNoYWluLkBUcmFuc2FjdGVkU2lnbmVkDAEkZmVlX3BheWVyAAEwVDo6QWNjb3VudElkAAEQZGVzdDEBASBMb2NhdGlvbgABEGNhbGwUARxWZWM8dTg+AAIEEQFUcmFuc2FjdGVkIHRoZSBjYWxsIHRocm91Z2ggYSBzaWduZWQgYWNjb3VudCBpbiBhIGRlc3RpbmF0aW9uIGNoYWluLlBSZWdpc3RlcmVkRGVyaXZhdGl2ZQgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAARRpbmRleAkBAQx1MTYAAwTAUmVnaXN0ZXJlZCBhIGRlcml2YXRpdmUgaW5kZXggZm9yIGFuIGFjY291bnQgaWQuWERlUmVnaXN0ZXJlZERlcml2YXRpdmUEARRpbmRleAkBAQx1MTYABAA4VHJhbnNhY3RGYWlsZWQEARRlcnJvcnkEASBYY21FcnJvcgAFBDxUcmFuc2FjdCBmYWlsZWRMVHJhbnNhY3RJbmZvQ2hhbmdlZAgBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAEscmVtb3RlX2luZm95BwF8UmVtb3RlVHJhbnNhY3RJbmZvV2l0aE1heFdlaWdodAAGBJxDaGFuZ2VkIHRoZSB0cmFuc2FjdCBpbmZvIG9mIGEgbG9jYXRpb25MVHJhbnNhY3RJbmZvUmVtb3ZlZAQBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAcEnFJlbW92ZWQgdGhlIHRyYW5zYWN0IGluZm8gb2YgYSBsb2NhdGlvbkhIcm1wTWFuYWdlbWVudFNlbnQEARhhY3Rpb24dBQE0SHJtcE9wZXJhdGlvbgAKBIxIUk1QIG1hbmFnZSBhY3Rpb24gc3VjY2VzZnVsbHkgc2VudAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkHDFRwYWxsZXRfeGNtX3RyYW5zYWN0b3IYcGFsbGV0fFJlbW90ZVRyYW5zYWN0SW5mb1dpdGhNYXhXZWlnaHQAAAwBVHRyYW5zYWN0X2V4dHJhX3dlaWdodHEBARhXZWlnaHQAAShtYXhfd2VpZ2h0cQEBGFdlaWdodAABcHRyYW5zYWN0X2V4dHJhX3dlaWdodF9zaWduZWSRBAE4T3B0aW9uPFdlaWdodD4AAH0HDExwYWxsZXRfZXRoZXJldW1feGNtGHBhbGxldBRFdmVudAQEVAABBDxFeGVjdXRlZEZyb21YY20IATB4Y21fbXNnX2hhc2gsARBIMjU2AAEsZXRoX3R4X2hhc2gsARBIMjU2AAAEmEV0aGVyZXVtIHRyYW5zYWN0aW9uIGV4ZWN1dGVkIGZyb20gWENNBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0gQcMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFdmVudAQEVAABEEBQcm9jZXNzaW5nRmFpbGVkDAEIaWQsARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5ZBQFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuARRlcnJvcoUHAUxQcm9jZXNzTWVzc2FnZUVycm9yEGBUaGUgZXJyb3IgdGhhdCBvY2N1cnJlZC4ASQFUaGlzIGVycm9yIGlzIHByZXR0eSBvcGFxdWUuIE1vcmUgZmluZS1ncmFpbmVkIGVycm9ycyBuZWVkIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAARVAU1lc3NhZ2UgZGlzY2FyZGVkIGR1ZSB0byBhbiBlcnJvciBpbiB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgICh1c3VhbGx5IGEgZm9ybWF0IGVycm9yKS4kUHJvY2Vzc2VkEAEIaWQsARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5ZBQFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuASx3ZWlnaHRfdXNlZHEBARhXZWlnaHQEwEhvdyBtdWNoIHdlaWdodCB3YXMgdXNlZCB0byBwcm9jZXNzIHRoZSBtZXNzYWdlLgEcc3VjY2Vzc8ABEGJvb2wYiFdoZXRoZXIgdGhlIG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZC4ASQFOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHVuZGVybHlpbmcgYE1lc3NhZ2VQcm9jZXNzb3JgIHdhcyBpbnRlcm5hbGx5NQFzdWNjZXNzZnVsLiBJdCAqc29sZWx5KiBtZWFucyB0aGF0IHRoZSBNUSBwYWxsZXQgd2lsbCB0cmVhdCB0aGlzIGFzIGEgc3VjY2Vzc00BY29uZGl0aW9uIGFuZCBkaXNjYXJkIHRoZSBtZXNzYWdlLiBBbnkgaW50ZXJuYWwgZXJyb3IgbmVlZHMgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4BBFRNZXNzYWdlIGlzIHByb2Nlc3NlZC5IT3ZlcndlaWdodEVucXVldWVkEAEIaWQwASBbdTg7IDMyXQSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2luWQUBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEocGFnZV9pbmRleCgBJFBhZ2VJbmRleARgVGhlIHBhZ2Ugb2YgdGhlIG1lc3NhZ2UuATRtZXNzYWdlX2luZGV4KAEcVDo6U2l6ZQSkVGhlIGluZGV4IG9mIHRoZSBtZXNzYWdlIHdpdGhpbiB0aGUgcGFnZS4CBIxNZXNzYWdlIHBsYWNlZCBpbiBvdmVyd2VpZ2h0IHF1ZXVlLihQYWdlUmVhcGVkCAEYb3JpZ2luWQUBSE1lc3NhZ2VPcmlnaW5PZjxUPgRYVGhlIHF1ZXVlIG9mIHRoZSBwYWdlLgEUaW5kZXgoASRQYWdlSW5kZXgEWFRoZSBpbmRleCBvZiB0aGUgcGFnZS4DBFRUaGlzIHBhZ2Ugd2FzIHJlYXBlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSFBxA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMgbWVzc2FnZXNMUHJvY2Vzc01lc3NhZ2VFcnJvcgABGCRCYWRGb3JtYXQAAAAcQ29ycnVwdAABACxVbnN1cHBvcnRlZAACAChPdmVyd2VpZ2h0BABxAQEYV2VpZ2h0AAMAFFlpZWxkAAQARFN0YWNrTGltaXRSZWFjaGVkAAUAAIkHDHhwYWxsZXRfbW9vbmJlYW1fZm9yZWlnbl9hc3NldHMYcGFsbGV0FEV2ZW50BARUAAEcTEZvcmVpZ25Bc3NldENyZWF0ZWQQAUBjb250cmFjdF9hZGRyZXNzGQEBEEgxNjAAASBhc3NldF9pZLwBHEFzc2V0SWQAATB4Y21fbG9jYXRpb24xAQEgTG9jYXRpb24AARxkZXBvc2l0eQIBUE9wdGlvbjxCYWxhbmNlT2Y8VD4+AAAEuE5ldyBhc3NldCB3aXRoIHRoZSBhc3NldCBtYW5hZ2VyIGlzIHJlZ2lzdGVyZWR4Rm9yZWlnbkFzc2V0WGNtTG9jYXRpb25DaGFuZ2VkDAEgYXNzZXRfaWS8ARxBc3NldElkAAFUcHJldmlvdXNfeGNtX2xvY2F0aW9uMQEBIExvY2F0aW9uAAFAbmV3X3hjbV9sb2NhdGlvbjEBASBMb2NhdGlvbgABBMRDaGFuZ2VkIHRoZSB4Y20gdHlwZSBtYXBwaW5nIGZvciBhIGdpdmVuIGFzc2V0IGlkSEZvcmVpZ25Bc3NldEZyb3plbggBIGFzc2V0X2lkvAEcQXNzZXRJZAABMHhjbV9sb2NhdGlvbjEBASBMb2NhdGlvbgACAFBGb3JlaWduQXNzZXRVbmZyb3plbggBIGFzc2V0X2lkvAEcQXNzZXRJZAABMHhjbV9sb2NhdGlvbjEBASBMb2NhdGlvbgADADBUb2tlbnNMb2NrZWQMAAABMFQ6OkFjY291bnRJZAAAvAEcQXNzZXRJZAAAgQIBMEFzc2V0QmFsYW5jZQAEBKhUb2tlbnMgaGF2ZSBiZWVuIGxvY2tlZCBmb3IgYXNzZXQgY3JlYXRpb25YUGVuZGluZ0RlcG9zaXRSZWNvcmRlZBABIGFzc2V0X2lkvAEcQXNzZXRJZAABLGJlbmVmaWNpYXJ5GQEBEEgxNjAAARhhbW91bnSBAgEQVTI1NgABNHRvdGFsX3BlbmRpbmeBAgEQVTI1NgAFBPRBIGRlcG9zaXQgd2FzIHJlY29yZGVkIGFzIHBlbmRpbmcgYmVjYXVzZSB0aGUgYXNzZXQgaXMgZnJvemVuVFBlbmRpbmdEZXBvc2l0Q2xhaW1lZAwBIGFzc2V0X2lkvAEcQXNzZXRJZAABLGJlbmVmaWNpYXJ5GQEBEEgxNjAAARhhbW91bnSBAgEQVTI1NgAGBKBBIHBlbmRpbmcgZGVwb3NpdCB3YXMgY2xhaW1lZCBhbmQgbWludGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0jQcMYHBhbGxldF94Y21fd2VpZ2h0X3RyYWRlchhwYWxsZXQURXZlbnQEBFQAARRMU3VwcG9ydGVkQXNzZXRBZGRlZAgBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAE4cmVsYXRpdmVfcHJpY2W8ARB1MTI4AAAEhE5ldyBzdXBwb3J0ZWQgYXNzZXQgaXMgcmVnaXN0ZXJlZFBTdXBwb3J0ZWRBc3NldEVkaXRlZAgBIGxvY2F0aW9uMQEBIExvY2F0aW9uAAE4cmVsYXRpdmVfcHJpY2W8ARB1MTI4AAEESQFDaGFuZ2VkIHRoZSBhbW91bnQgb2YgdW5pdHMgd2UgYXJlIGNoYXJnaW5nIHBlciBleGVjdXRpb24gc2Vjb25kIGZvciBhIGdpdmVuIGFzc2V0RFBhdXNlQXNzZXRTdXBwb3J0BAEgbG9jYXRpb24xAQEgTG9jYXRpb24AAgR8UGF1c2Ugc3VwcG9ydCBmb3IgYSBnaXZlbiBhc3NldEhSZXN1bWVBc3NldFN1cHBvcnQEASBsb2NhdGlvbjEBASBMb2NhdGlvbgADBIBSZXN1bWUgc3VwcG9ydCBmb3IgYSBnaXZlbiBhc3NldFRTdXBwb3J0ZWRBc3NldFJlbW92ZWQEASBsb2NhdGlvbjEBASBMb2NhdGlvbgAEBLBTdXBwb3J0ZWQgYXNzZXQgdHlwZSBmb3IgZmVlIHBheW1lbnQgcmVtb3ZlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJEHDGRwYWxsZXRfZW1lcmdlbmN5X3BhcmFfeGNtGHBhbGxldBRFdmVudAABCFBFbnRlcmVkUGF1c2VkWGNtTW9kZQAABJRUaGUgWENNIGluY29taW5nIGV4ZWN1dGlvbiB3YXMgUGF1c2VkZE5vcm1hbFhjbU9wZXJhdGlvblJlc3VtZWQAAQTcVGhlIFhDTSBpbmNvbWluZyBleGVjdXRpb24gcmV0dXJuZWQgdG8gbm9ybWFsIG9wZXJhdGlvbgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJUHDERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQURXZlbnQEBFQAASA4VXBncmFkZVN0YXJ0ZWQEAShtaWdyYXRpb25zKAEMdTMyENBUaGUgbnVtYmVyIG9mIG1pZ3JhdGlvbnMgdGhhdCB0aGlzIHVwZ3JhZGUgY29udGFpbnMuAEEBVGhpcyBjYW4gYmUgdXNlZCB0byBkZXNpZ24gYSBwcm9ncmVzcyBpbmRpY2F0b3IgaW4gY29tYmluYXRpb24gd2l0aCBjb3VudGluZyB0aGXMYE1pZ3JhdGlvbkNvbXBsZXRlZGAgYW5kIGBNaWdyYXRpb25Ta2lwcGVkYCBldmVudHMuAAxoQSBSdW50aW1lIHVwZ3JhZGUgc3RhcnRlZC4A+El0cyBlbmQgaXMgaW5kaWNhdGVkIGJ5IGBVcGdyYWRlQ29tcGxldGVkYCBvciBgVXBncmFkZUZhaWxlZGAuQFVwZ3JhZGVDb21wbGV0ZWQAAQyYVGhlIGN1cnJlbnQgcnVudGltZSB1cGdyYWRlIGNvbXBsZXRlZC4AHQFUaGlzIGltcGxpZXMgdGhhdCBhbGwgb2YgaXRzIG1pZ3JhdGlvbnMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBhcyB3ZWxsLjRVcGdyYWRlRmFpbGVkAAIMXFJ1bnRpbWUgdXBncmFkZSBmYWlsZWQuAOhUaGlzIGlzIHZlcnkgYmFkIGFuZCB3aWxsIHJlcXVpcmUgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24uQE1pZ3JhdGlvblNraXBwZWQEARRpbmRleCgBDHUzMgQpAVRoZSBpbmRleCBvZiB0aGUgc2tpcHBlZCBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuAwQJAUEgbWlncmF0aW9uIHdhcyBza2lwcGVkIHNpbmNlIGl0IHdhcyBhbHJlYWR5IGV4ZWN1dGVkIGluIHRoZSBwYXN0LkRNaWdyYXRpb25BZHZhbmNlZAgBFGluZGV4KAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rKAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBARcQSBtaWdyYXRpb24gcHJvZ3Jlc3NlZC5ITWlncmF0aW9uQ29tcGxldGVkCAEUaW5kZXgoAQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2soAURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4FBFhBIE1pZ3JhdGlvbiBjb21wbGV0ZWQuPE1pZ3JhdGlvbkZhaWxlZAgBFGluZGV4KAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rKAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBgxMQSBNaWdyYXRpb24gZmFpbGVkLgBNAVRoaXMgaW1wbGllcyB0aGF0IHRoZSB3aG9sZSB1cGdyYWRlIGZhaWxlZCBhbmQgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcmVxdWlyZWQuPEhpc3RvcmljQ2xlYXJlZAQBLG5leHRfY3Vyc29yiQUBPE9wdGlvbjxWZWM8dTg+PgToU2hvdWxkIGJlIHBhc3NlZCB0byBgY2xlYXJfaGlzdG9yaWNgIGluIGEgc3VjY2Vzc2l2ZSBjYWxsLgcEyFRoZSBzZXQgb2YgaGlzdG9yaWNhbCBtaWdyYXRpb25zIGhhcyBiZWVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0mQcMRHBhbGxldF9yYW5kb21uZXNzGHBhbGxldBRFdmVudAQEVAABFHBSYW5kb21uZXNzUmVxdWVzdGVkQmFiZUVwb2NoIAEIaWQYASRSZXF1ZXN0SWQAAThyZWZ1bmRfYWRkcmVzcxkBARBIMTYwAAFAY29udHJhY3RfYWRkcmVzcxkBARBIMTYwAAEMZmVlvAEwQmFsYW5jZU9mPFQ+AAEkZ2FzX2xpbWl0GAEMdTY0AAEkbnVtX3dvcmRzCAEIdTgAARBzYWx0LAEQSDI1NgABOGVhcmxpZXN0X2Vwb2NoGAEMdTY0AAAAYFJhbmRvbW5lc3NSZXF1ZXN0ZWRMb2NhbCABCGlkGAEkUmVxdWVzdElkAAE4cmVmdW5kX2FkZHJlc3MZAQEQSDE2MAABQGNvbnRyYWN0X2FkZHJlc3MZAQEQSDE2MAABDGZlZbwBMEJhbGFuY2VPZjxUPgABJGdhc19saW1pdBgBDHU2NAABJG51bV93b3JkcwgBCHU4AAEQc2FsdCwBEEgyNTYAAThlYXJsaWVzdF9ibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAEAQFJlcXVlc3RGdWxmaWxsZWQEAQhpZBgBJFJlcXVlc3RJZAACAExSZXF1ZXN0RmVlSW5jcmVhc2VkCAEIaWQYASRSZXF1ZXN0SWQAARxuZXdfZmVlvAEwQmFsYW5jZU9mPFQ+AAMAZFJlcXVlc3RFeHBpcmF0aW9uRXhlY3V0ZWQEAQhpZBgBJFJlcXVlc3RJZAAEAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJ0HDFRwYWxsZXRfYnJpZGdlX2dyYW5kcGEYcGFsbGV0FEV2ZW50CARUAARJAAEEaFVwZGF0ZWRCZXN0RmluYWxpemVkSGVhZGVyDAEYbnVtYmVyKAFgQnJpZGdlZEJsb2NrTnVtYmVyPFQsIEk+BKBOdW1iZXIgb2YgdGhlIG5ldyBiZXN0IGZpbmFsaXplZCBoZWFkZXIuARBoYXNoLAFYQnJpZGdlZEJsb2NrSGFzaDxULCBJPgSYSGFzaCBvZiB0aGUgbmV3IGJlc3QgZmluYWxpemVkIGhlYWRlci4BMGdyYW5kcGFfaW5mb6EHAbBTdG9yZWRIZWFkZXJHcmFuZHBhSW5mbzxCcmlkZ2VkSGVhZGVyPFQsIEk+PgT0VGhlIEdyYW5kcGEgaW5mbyBhc3NvY2lhdGVkIHRvIHRoZSBuZXcgYmVzdCBmaW5hbGl6ZWQgaGVhZGVyLgAEWQFCZXN0IGZpbmFsaXplZCBjaGFpbiBoZWFkZXIgaGFzIGJlZW4gdXBkYXRlZCB0byB0aGUgaGVhZGVyIHdpdGggZ2l2ZW4gbnVtYmVyIGFuZCBoYXNoLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKEHCDxicF9oZWFkZXJfY2hhaW5ISGVhZGVyRmluYWxpdHlJbmZvCDRGaW5hbGl0eVByb29mAZUFbEZpbmFsaXR5VmVyaWZpY2F0aW9uQ29udGV4dAGlBwAIAThmaW5hbGl0eV9wcm9vZpUFATRGaW5hbGl0eVByb29mAAFgbmV3X3ZlcmlmaWNhdGlvbl9jb250ZXh0qQcBjE9wdGlvbjxGaW5hbGl0eVZlcmlmaWNhdGlvbkNvbnRleHQ+AAClBwg8YnBfaGVhZGVyX2NoYWluMEF1dGhvcml0eVNldAAACAEsYXV0aG9yaXRpZXO1BQE0QXV0aG9yaXR5TGlzdAABGHNldF9pZBgBFFNldElkAACpBwQYT3B0aW9uBARUAaUHAQgQTm9uZQAAABBTb21lBAClBwAAAQAArQcMYHBhbGxldF9icmlkZ2VfcGFyYWNoYWlucxhwYWxsZXQURXZlbnQIBFQABEkAARhoVW50cmFja2VkUGFyYWNoYWluUmVqZWN0ZWQEASRwYXJhY2hhaW7RBQEYUGFyYUlkBPhJZGVudGlmaWVyIG9mIHRoZSBwYXJhY2hhaW4gdGhhdCBpcyBub3QgdHJhY2tlZCBieSB0aGUgcGFsbGV0LgAEVQFUaGUgY2FsbGVyIGhhcyBwcm92aWRlZCBoZWFkIG9mIHBhcmFjaGFpbiB0aGF0IHRoZSBwYWxsZXQgaXMgbm90IGNvbmZpZ3VyZWQgdG8gdHJhY2suUE1pc3NpbmdQYXJhY2hhaW5IZWFkBAEkcGFyYWNoYWlu0QUBGFBhcmFJZAS4SWRlbnRpZmllciBvZiB0aGUgcGFyYWNoYWluIHdpdGggbWlzc2luZyBoZWFkLgEIUQFUaGUgY2FsbGVyIGhhcyBkZWNsYXJlZCB0aGF0IGhlIGhhcyBwcm92aWRlZCBnaXZlbiBwYXJhY2hhaW4gaGVhZCwgYnV0IGl0IGlzIG1pc3NpbmdcZnJvbSB0aGUgc3RvcmFnZSBwcm9vZi5oSW5jb3JyZWN0UGFyYWNoYWluSGVhZEhhc2gMASRwYXJhY2hhaW7RBQEYUGFyYUlkBNRJZGVudGlmaWVyIG9mIHRoZSBwYXJhY2hhaW4gd2l0aCBpbmNvcnJlY3QgaGVhZCBoYXN0LgFMcGFyYWNoYWluX2hlYWRfaGFzaCwBIFBhcmFIYXNoBHhTcGVjaWZpZWQgcGFyYWNoYWluIGhlYWQgaGFzaC4BaGFjdHVhbF9wYXJhY2hhaW5faGVhZF9oYXNoLAEgUGFyYUhhc2gEbEFjdHVhbCBwYXJhY2hhaW4gaGVhZCBoYXNoLgIIXQFUaGUgY2FsbGVyIGhhcyBwcm92aWRlZCBwYXJhY2hhaW4gaGVhZCBoYXNoIHRoYXQgaXMgbm90IG1hdGNoaW5nIHRoZSBoYXNoIHJlYWQgZnJvbSB0aGU4c3RvcmFnZSBwcm9vZi50UmVqZWN0ZWRPYnNvbGV0ZVBhcmFjaGFpbkhlYWQIASRwYXJhY2hhaW7RBQEYUGFyYUlkBLxJZGVudGlmaWVyIG9mIHRoZSBwYXJhY2hhaW4gd2l0aCBvYnNvbGV0ZSBoZWFkLgFMcGFyYWNoYWluX2hlYWRfaGFzaCwBIFBhcmFIYXNoBHRPYnNvbGV0ZSBwYXJhY2hhaW4gaGVhZCBoYXNoLgMEWQFUaGUgY2FsbGVyIGhhcyBwcm92aWRlZCBvYnNvbGV0ZSBwYXJhY2hhaW4gaGVhZCwgd2hpY2ggaXMgYWxyZWFkeSBrbm93biB0byB0aGUgcGFsbGV0LmhSZWplY3RlZExhcmdlUGFyYWNoYWluSGVhZAwBJHBhcmFjaGFpbtEFARhQYXJhSWQEvElkZW50aWZpZXIgb2YgdGhlIHBhcmFjaGFpbiB3aXRoIHJlamVjdGVkIGhlYWQuAUxwYXJhY2hhaW5faGVhZF9oYXNoLAEgUGFyYUhhc2gEUFBhcmFjaGFpbiBoZWFkIGhhc2guAUxwYXJhY2hhaW5faGVhZF9zaXplKAEMdTMyBFBQYXJhY2hhaW4gaGVhZCBzaXplLgQEVQFUaGUgY2FsbGVyIGhhcyBwcm92aWRlZCBwYXJhY2hhaW4gaGVhZCB0aGF0IGV4Y2VlZHMgdGhlIG1heGltYWwgY29uZmlndXJlZCBoZWFkIHNpemUuUFVwZGF0ZWRQYXJhY2hhaW5IZWFkCAEkcGFyYWNoYWlu0QUBGFBhcmFJZATISWRlbnRpZmllciBvZiB0aGUgcGFyYWNoYWluIHRoYXQgaGFzIGJlZW4gdXBkYXRlZC4BTHBhcmFjaGFpbl9oZWFkX2hhc2gsASBQYXJhSGFzaARQUGFyYWNoYWluIGhlYWQgaGFzaC4FBIBQYXJhY2hhaW4gaGVhZCBoYXMgYmVlbiB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLEHDFhwYWxsZXRfYnJpZGdlX21lc3NhZ2VzGHBhbGxldBRFdmVudAgEVAAESQABDDxNZXNzYWdlQWNjZXB0ZWQIARxsYW5lX2lk5QUBJFQ6OkxhbmVJZASUTGFuZSwgd2hpY2ggaGFzIGFjY2VwdGVkIHRoZSBtZXNzYWdlLgEUbm9uY2UYATBNZXNzYWdlTm9uY2UEaE5vbmNlIG9mIGFjY2VwdGVkIG1lc3NhZ2UuAATkTWVzc2FnZSBoYXMgYmVlbiBhY2NlcHRlZCBhbmQgaXMgd2FpdGluZyB0byBiZSBkZWxpdmVyZWQuQE1lc3NhZ2VzUmVjZWl2ZWQEALUHAW0BUmVjZWl2ZWRNZXNzYWdlczw8VDo6TWVzc2FnZURpc3BhdGNoIGFzIE1lc3NhZ2VEaXNwYXRjaD46OgpEaXNwYXRjaExldmVsUmVzdWx0LCBUOjpMYW5lSWQsPgSUUmVzdWx0IG9mIHJlY2VpdmVkIG1lc3NhZ2VzIGRpc3BhdGNoLgEEzE1lc3NhZ2VzIGhhdmUgYmVlbiByZWNlaXZlZCBmcm9tIHRoZSBicmlkZ2VkIGNoYWluLkRNZXNzYWdlc0RlbGl2ZXJlZAgBHGxhbmVfaWTlBQEkVDo6TGFuZUlkBLxMYW5lIGZvciB3aGljaCB0aGUgZGVsaXZlcnkgaGFzIGJlZW4gY29uZmlybWVkLgEgbWVzc2FnZXPNBwFERGVsaXZlcmVkTWVzc2FnZXMETERlbGl2ZXJlZCBtZXNzYWdlcy4CBCUBTWVzc2FnZXMgaW4gdGhlIGluY2x1c2l2ZSByYW5nZSBoYXZlIGJlZW4gZGVsaXZlcmVkIHRvIHRoZSBicmlkZ2VkIGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLUHCCxicF9tZXNzYWdlc0BSZWNlaXZlZE1lc3NhZ2VzCExEaXNwYXRjaExldmVsUmVzdWx0AbkHGExhbmVJZAHlBQAIARBsYW5l5QUBGExhbmVJZAABPHJlY2VpdmVfcmVzdWx0c70HAeRWZWM8KE1lc3NhZ2VOb25jZSwgUmVjZXB0aW9uUmVzdWx0PERpc3BhdGNoTGV2ZWxSZXN1bHQ+KT4AALkHDFRwYWxsZXRfeGNtX2JyaWRnZV9odWIoZGlzcGF0Y2hlcnBYY21CbG9iTWVzc2FnZURpc3BhdGNoUmVzdWx0AAEMOEludmFsaWRQYXlsb2FkAAAAKERpc3BhdGNoZWQAAQA0Tm90RGlzcGF0Y2hlZAACAAC9BwAAAsEHAMEHAAAECBjFBwDFBwgsYnBfbWVzc2FnZXM8UmVjZXB0aW9uUmVzdWx0BExEaXNwYXRjaExldmVsUmVzdWx0AbkHARAoRGlzcGF0Y2hlZAQAyQcBqE1lc3NhZ2VEaXNwYXRjaFJlc3VsdDxEaXNwYXRjaExldmVsUmVzdWx0PgAAADBJbnZhbGlkTm9uY2UAAQBkVG9vTWFueVVucmV3YXJkZWRSZWxheWVycwACAGhUb29NYW55VW5jb25maXJtZWRNZXNzYWdlcwADAADJBwwoYnBfcnVudGltZSBtZXNzYWdlc1RNZXNzYWdlRGlzcGF0Y2hSZXN1bHQETERpc3BhdGNoTGV2ZWxSZXN1bHQBuQcACAE4dW5zcGVudF93ZWlnaHRxAQEYV2VpZ2h0AAFUZGlzcGF0Y2hfbGV2ZWxfcmVzdWx0uQcBTERpc3BhdGNoTGV2ZWxSZXN1bHQAAM0HCCxicF9tZXNzYWdlc0REZWxpdmVyZWRNZXNzYWdlcwAACAEUYmVnaW4YATBNZXNzYWdlTm9uY2UAAQxlbmQYATBNZXNzYWdlTm9uY2UAANEHDFRwYWxsZXRfeGNtX2JyaWRnZV9odWIYcGFsbGV0FEV2ZW50CARUAARJAAEMMEJyaWRnZU9wZW5lZBQBJGJyaWRnZV9pZNUHASBCcmlkZ2VJZARIQnJpZGdlIGlkZW50aWZpZXIuAThicmlkZ2VfZGVwb3NpdLwBcEJhbGFuY2VPZjxUaGlzQ2hhaW5PZjxULCBJPj4EXEFtb3VudCBvZiBkZXBvc2l0IGhlbGQuAThsb2NhbF9lbmRwb2ludDUBAVRCb3g8SW50ZXJpb3JMb2NhdGlvbj4EsFVuaXZlcnNhbCBsb2NhdGlvbiBvZiBsb2NhbCBicmlkZ2UgZW5kcG9pbnQuATxyZW1vdGVfZW5kcG9pbnQ1AQFUQm94PEludGVyaW9yTG9jYXRpb24+BLRVbml2ZXJzYWwgbG9jYXRpb24gb2YgcmVtb3RlIGJyaWRnZSBlbmRwb2ludC4BHGxhbmVfaWTlBQEkVDo6TGFuZUlkBEBMYW5lIGlkZW50aWZpZXIuAATEVGhlIGJyaWRnZSBiZXR3ZWVuIHR3byBsb2NhdGlvbnMgaGFzIGJlZW4gb3BlbmVkLjRDbG9zaW5nQnJpZGdlEAEkYnJpZGdlX2lk1QcBIEJyaWRnZUlkBEhCcmlkZ2UgaWRlbnRpZmllci4BHGxhbmVfaWTlBQEkVDo6TGFuZUlkBEBMYW5lIGlkZW50aWZpZXIuATxwcnVuZWRfbWVzc2FnZXMYATBNZXNzYWdlTm9uY2UEwE51bWJlciBvZiBwcnVuZWQgbWVzc2FnZXMgZHVyaW5nIHRoZSBjbG9zZSBjYWxsLgFEZW5xdWV1ZWRfbWVzc2FnZXMYATBNZXNzYWdlTm9uY2UEGQFOdW1iZXIgb2YgZW5xdWV1ZWQgbWVzc2FnZXMgdGhhdCBuZWVkIHRvIGJlIHBydW5lZCBpbiBmb2xsb3cgdXAgY2FsbHMuAQRBAUJyaWRnZSBpcyBnb2luZyB0byBiZSBjbG9zZWQsIGJ1dCBub3QgeWV0IGZ1bGx5IHBydW5lZCBmcm9tIHRoZSBydW50aW1lIHN0b3JhZ2UuMEJyaWRnZVBydW5lZBABJGJyaWRnZV9pZNUHASBCcmlkZ2VJZARIQnJpZGdlIGlkZW50aWZpZXIuARxsYW5lX2lk5QUBJFQ6OkxhbmVJZARATGFuZSBpZGVudGlmaWVyLgE4YnJpZGdlX2RlcG9zaXS8AXBCYWxhbmNlT2Y8VGhpc0NoYWluT2Y8VCwgST4+BGxBbW91bnQgb2YgZGVwb3NpdCByZWxlYXNlZC4BPHBydW5lZF9tZXNzYWdlcxgBME1lc3NhZ2VOb25jZQTATnVtYmVyIG9mIHBydW5lZCBtZXNzYWdlcyBkdXJpbmcgdGhlIGNsb3NlIGNhbGwuAghJAUJyaWRnZSBoYXMgYmVlbiBjbG9zZWQgYW5kIHBydW5lZCBmcm9tIHRoZSBydW50aW1lIHN0b3JhZ2UuIEl0IG5vdyBtYXkgYmUgcmVvcGVuZWRkYWdhaW4gYnkgYW55IHBhcnRpY2lwYW50LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNUHCERicF94Y21fYnJpZGdlX2h1YiBCcmlkZ2VJZAAABAAsARBIMjU2AADZBwgwZnJhbWVfc3lzdGVtFFBoYXNlAAEMOEFwcGx5RXh0cmluc2ljBAAoAQx1MzIAAAAwRmluYWxpemF0aW9uAAEAOEluaXRpYWxpemF0aW9uAAIAAN0HAAAC3QIA4QcIMGZyYW1lX3N5c3RlbVhMYXN0UnVudGltZVVwZ3JhZGVJbmZvAAAIATBzcGVjX3ZlcnNpb25UAUxjb2RlYzo6Q29tcGFjdDx1MzI+AAEkc3BlY19uYW1lGQcBRENvdzwnc3RhdGljLCBzdHI+AADlBwgwZnJhbWVfc3lzdGVtYENvZGVVcGdyYWRlQXV0aG9yaXphdGlvbgQEVAAACAEkY29kZV9oYXNoLAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb27AARBib29sAADpBwwwZnJhbWVfc3lzdGVtGGxpbWl0czBCbG9ja1dlaWdodHMAAAwBKGJhc2VfYmxvY2txAQEYV2VpZ2h0AAEkbWF4X2Jsb2NrcQEBGFdlaWdodAABJHBlcl9jbGFzc+0HAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAO0HDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQB8QcADAEYbm9ybWFs8QcBBFQAASxvcGVyYXRpb25hbPEHAQRUAAEkbWFuZGF0b3J58QcBBFQAAPEHDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWNxAQEYV2VpZ2h0AAE0bWF4X2V4dHJpbnNpY5EEAThPcHRpb248V2VpZ2h0PgABJG1heF90b3RhbJEEAThPcHRpb248V2VpZ2h0PgABIHJlc2VydmVkkQQBOE9wdGlvbjxXZWlnaHQ+AAD1BwwwZnJhbWVfc3lzdGVtGGxpbWl0cyxCbG9ja0xlbmd0aAAABAEMbWF4+QcBVFBlckRpc3BhdGNoQ2xhc3M8dTMyPgAA+QcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAD9Bwgoc3Bfd2VpZ2h0czxSdW50aW1lRGJXZWlnaHQAAAgBEHJlYWQYAQx1NjQAARR3cml0ZRgBDHU2NAAAAQgIKHNwX3ZlcnNpb244UnVudGltZVZlcnNpb24AACABJHNwZWNfbmFtZRkHAURDb3c8J3N0YXRpYywgc3RyPgABJGltcGxfbmFtZRkHAURDb3c8J3N0YXRpYywgc3RyPgABRGF1dGhvcmluZ192ZXJzaW9uKAEMdTMyAAEwc3BlY192ZXJzaW9uKAEMdTMyAAEwaW1wbF92ZXJzaW9uKAEMdTMyAAEQYXBpcwUIARxBcGlzVmVjAAFMdHJhbnNhY3Rpb25fdmVyc2lvbigBDHUzMgABOHN5c3RlbV92ZXJzaW9uCAEIdTgAAAUIBAxDb3cEBFQBCQgABAAJCAAAAAkIAAACDQgADQgAAAQItQEoABEIDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEkPEludmFsaWRTcGVjTmFtZQAACBEBVGhlIG5hbWUgb2Ygc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBtYXRjaCBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS5oU3BlY1ZlcnNpb25OZWVkc1RvSW5jcmVhc2UAAQhBAVRoZSBzcGVjaWZpY2F0aW9uIHZlcnNpb24gaXMgbm90IGFsbG93ZWQgdG8gZGVjcmVhc2UgYmV0d2VlbiB0aGUgY3VycmVudCBydW50aW1lUGFuZCB0aGUgbmV3IHJ1bnRpbWUudEZhaWxlZFRvRXh0cmFjdFJ1bnRpbWVWZXJzaW9uAAIM7EZhaWxlZCB0byBleHRyYWN0IHRoZSBydW50aW1lIHZlcnNpb24gZnJvbSB0aGUgbmV3IHJ1bnRpbWUuAAkBRWl0aGVyIGNhbGxpbmcgYENvcmVfdmVyc2lvbmAgb3IgZGVjb2RpbmcgYFJ1bnRpbWVWZXJzaW9uYCBmYWlsZWQuTE5vbkRlZmF1bHRDb21wb3NpdGUAAwT8U3VpY2lkZSBjYWxsZWQgd2hlbiB0aGUgYWNjb3VudCBoYXMgbm9uLWRlZmF1bHQgY29tcG9zaXRlIGRhdGEuPE5vblplcm9SZWZDb3VudAAEBDUBVGhlcmUgaXMgYSBub24temVybyByZWZlcmVuY2UgY291bnQgcHJldmVudGluZyB0aGUgYWNjb3VudCBmcm9tIGJlaW5nIHB1cmdlZC4wQ2FsbEZpbHRlcmVkAAUE0FRoZSBvcmlnaW4gZmlsdGVyIHByZXZlbnQgdGhlIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC5sTXVsdGlCbG9ja01pZ3JhdGlvbnNPbmdvaW5nAAYEVQFBIG11bHRpLWJsb2NrIG1pZ3JhdGlvbiBpcyBvbmdvaW5nIGFuZCBwcmV2ZW50cyB0aGUgY3VycmVudCBjb2RlIGZyb20gYmVpbmcgcmVwbGFjZWQuRE5vdGhpbmdBdXRob3JpemVkAAcEWE5vIHVwZ3JhZGUgYXV0aG9yaXplZC4wVW5hdXRob3JpemVkAAgElFRoZSBzdWJtaXR0ZWQgY29kZSBpcyBub3QgYXV0aG9yaXplZC4EbEVycm9yIGZvciB0aGUgU3lzdGVtIHBhbGxldBUIEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2sUQmxvY2sIGEhlYWRlcgFQJEV4dHJpbnNpYwEZCAAIARhoZWFkZXJQARhIZWFkZXIAAShleHRyaW5zaWNzKQgBOFZlYzxFeHRyaW5zaWM+AAAZCAxEZnBfc2VsZl9jb250YWluZWRMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBABBDYWxsAQwkU2lnbmF0dXJlASkCJEV4dGVuc2lvbgEdCAAEACUIAQEBZ2VuZXJpYzo6VW5jaGVja2VkRXh0cmluc2ljPEFkZHJlc3MsIENhbGwsIFNpZ25hdHVyZSwgRXh0ZW5zaW9uPgAAHQgIdGN1bXVsdXNfcGFsbGV0X3dlaWdodF9yZWNsYWltUFN0b3JhZ2VXZWlnaHRSZWNsYWltCARUAARTASEIAAQAIQgBBFMAACEIAAAEKPkFAQYFBgkGDQYVBhkGHQYhBiUGACUIEChzcF9ydW50aW1lHGdlbmVyaWNMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBABBDYWxsAQwkU2lnbmF0dXJlASkCFEV4dHJhAR0IAAQAFAAAACkIAAACGQgALQgAAAIxCAAxCAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBLAAMATh1c2VkX2JhbmR3aWR0aDUIATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2gNAwEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsSQgBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AAA1CAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudCgBDHUzMgABPHVtcF90b3RhbF9ieXRlcygBDHUzMgABNGhybXBfb3V0Z29pbmc5CAGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AADkIBCBCVHJlZU1hcAgESwGQBFYBPQgABABBCAAAAD0IDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudERIcm1wQ2hhbm5lbFVwZGF0ZQAACAEkbXNnX2NvdW50KAEMdTMyAAEsdG90YWxfYnl0ZXMoAQx1MzIAAEEIAAACRQgARQgAAAQIkD0IAEkIBBhPcHRpb24EBFQBTQgBCBBOb25lAAAAEFNvbWUEAE0IAAABAABNCAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OThVcGdyYWRlR29BaGVhZAABCBRBYm9ydAAAABxHb0FoZWFkAAEAAFEIDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDhTZWdtZW50VHJhY2tlcgQESAEsAAwBOHVzZWRfYmFuZHdpZHRoNQgBNFVzZWRCYW5kd2lkdGgAAThocm1wX3dhdGVybWFya10CAYBPcHRpb248cmVsYXlfY2hhaW46OkJsb2NrTnVtYmVyPgABYGNvbnN1bWVkX2dvX2FoZWFkX3NpZ25hbEkIAYxPcHRpb248cmVsYXlfY2hhaW46OlVwZ3JhZGVHb0FoZWFkPgAAVQgEGE9wdGlvbgQEVAFZCAEIEE5vbmUAAAAQU29tZQQAWQgAAAEAAFkIDExwb2xrYWRvdF9wcmltaXRpdmVzCHY5SFVwZ3JhZGVSZXN0cmljdGlvbgABBBxQcmVzZW50AAAAAF0IDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtUHJlbGF5X3N0YXRlX3NuYXBzaG90WE1lc3NhZ2luZ1N0YXRlU25hcHNob3QAABABMGRtcV9tcWNfaGVhZCwBRHJlbGF5X2NoYWluOjpIYXNoAAGccmVsYXlfZGlzcGF0Y2hfcXVldWVfcmVtYWluaW5nX2NhcGFjaXR5YQgBjFJlbGF5RGlzcGF0Y2hRdWV1ZVJlbWFpbmluZ0NhcGFjaXR5AAFAaW5ncmVzc19jaGFubmVsc2UIAYhWZWM8KFBhcmFJZCwgQWJyaWRnZWRIcm1wQ2hhbm5lbCk+AAE8ZWdyZXNzX2NoYW5uZWxzZQgBiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AAGEIDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtUHJlbGF5X3N0YXRlX3NuYXBzaG90jFJlbGF5RGlzcGF0Y2hRdWV1ZVJlbWFpbmluZ0NhcGFjaXR5AAAIATxyZW1haW5pbmdfY291bnQoAQx1MzIAAThyZW1haW5pbmdfc2l6ZSgBDHUzMgAAZQgAAAJpCABpCAAABAiQbQgAbQgMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlMQWJyaWRnZWRIcm1wQ2hhbm5lbAAAGAEwbWF4X2NhcGFjaXR5KAEMdTMyAAE4bWF4X3RvdGFsX3NpemUoAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplKAEMdTMyAAEkbXNnX2NvdW50KAEMdTMyAAEodG90YWxfc2l6ZSgBDHUzMgABIG1xY19oZWFkDQMBME9wdGlvbjxIYXNoPgAAcQgMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlkQWJyaWRnZWRIb3N0Q29uZmlndXJhdGlvbgAAKAE0bWF4X2NvZGVfc2l6ZSgBDHUzMgABSG1heF9oZWFkX2RhdGFfc2l6ZSgBDHUzMgABWG1heF91cHdhcmRfcXVldWVfY291bnQoAQx1MzIAAVRtYXhfdXB3YXJkX3F1ZXVlX3NpemUoAQx1MzIAAVxtYXhfdXB3YXJkX21lc3NhZ2Vfc2l6ZSgBDHUzMgABkG1heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZSgBDHUzMgABiGhybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUoAQx1MzIAAWx2YWxpZGF0aW9uX3VwZ3JhZGVfY29vbGRvd24oASxCbG9ja051bWJlcgABYHZhbGlkYXRpb25fdXBncmFkZV9kZWxheSgBLEJsb2NrTnVtYmVyAAFQYXN5bmNfYmFja2luZ19wYXJhbXN1CAFIQXN5bmNCYWNraW5nUGFyYW1zAAB1CBBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OTRhc3luY19iYWNraW5nSEFzeW5jQmFja2luZ1BhcmFtcwAACAFMbWF4X2NhbmRpZGF0ZV9kZXB0aCgBDHUzMgABUGFsbG93ZWRfYW5jZXN0cnlfbGVuKAEMdTMyAAB5CAiUY3VtdWx1c19wcmltaXRpdmVzX3BhcmFjaGFpbl9pbmhlcmVudERNZXNzYWdlUXVldWVDaGFpbgAABAAsASRSZWxheUhhc2gAAH0IBCBCVHJlZU1hcAgESwGQBFYBeQgABACBCAAAAIEIAAAChQgAhQgAAAQIkHkIAIkIDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudEBJbmJvdW5kTWVzc2FnZUlkAAAIARxzZW50X2F0KAEsQmxvY2tOdW1iZXIAASxyZXZlcnNlX2lkeCgBDHUzMgAAjQgAAAKRCACRCAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAZAACAEkcmVjaXBpZW50kAEISWQAARBkYXRhFAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAAlQgMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEALwBEHUxMjgAAJkIDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBRFcnJvcgQEVAABGExPdmVybGFwcGluZ1VwZ3JhZGVzAAAEGQFBdHRlbXB0IHRvIHVwZ3JhZGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB3aGlsZSBleGlzdGluZyB1cGdyYWRlIHBlbmRpbmcuUFByb2hpYml0ZWRCeVBvbGthZG90AAEETQFQb2xrYWRvdCBjdXJyZW50bHkgcHJvaGliaXRzIHRoaXMgcGFyYWNoYWluIGZyb20gdXBncmFkaW5nIGl0cyB2YWxpZGF0aW9uIGZ1bmN0aW9uLhhUb29CaWcAAghFAVRoZSBzdXBwbGllZCB2YWxpZGF0aW9uIGZ1bmN0aW9uIGhhcyBjb21waWxlZCBpbnRvIGEgYmxvYiBsYXJnZXIgdGhhbiBQb2xrYWRvdCBpczx3aWxsaW5nIHRvIHJ1bi5oVmFsaWRhdGlvbkRhdGFOb3RBdmFpbGFibGUAAwQdAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgdmFsaWRhdGlvbiBkYXRhIGRpZCBub3QgcnVuIHRoaXMgYmxvY2sudEhvc3RDb25maWd1cmF0aW9uTm90QXZhaWxhYmxlAAQEKQFUaGUgaW5oZXJlbnQgd2hpY2ggc3VwcGxpZXMgdGhlIGhvc3QgY29uZmlndXJhdGlvbiBkaWQgbm90IHJ1biB0aGlzIGJsb2NrLjBOb3RTY2hlZHVsZWQABQTYTm8gdmFsaWRhdGlvbiBmdW5jdGlvbiB1cGdyYWRlIGlzIGN1cnJlbnRseSBzY2hlZHVsZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lp0IDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBoQgEUwAABACpCAEYVmVjPFQ+AAChCAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEJhbGFuY2VMb2NrBBxCYWxhbmNlAbwADAEIaWS1AQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnS8ARxCYWxhbmNlAAEccmVhc29uc6UIARxSZWFzb25zAAClCAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzHFJlYXNvbnMAAQwMRmVlAAAAEE1pc2MAAQAMQWxsAAIAAKkIAAACoQgArQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGxCARTAAAEALUIARhWZWM8VD4AALEIDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyAWQcQmFsYW5jZQG8AAgBCGlkZAFEUmVzZXJ2ZUlkZW50aWZpZXIAARhhbW91bnS8ARxCYWxhbmNlAAC1CAAAArEIALkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBvQgEUwAABADBCAEYVmVjPFQ+AAC9CBQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAYUGHEJhbGFuY2UBvAAIAQhpZIUGAQhJZAABGGFtb3VudLwBHEJhbGFuY2UAAMEIAAACvQgAxQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHJCARTAAAEANUIARhWZWM8VD4AAMkIFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBzQgcQmFsYW5jZQG8AAgBCGlkzQgBCElkAAEYYW1vdW50vAEcQmFsYW5jZQAAzQgIQG1vb25iZWFtX3J1bnRpbWVMUnVudGltZUZyZWV6ZVJlYXNvbgABBEBQYXJhY2hhaW5TdGFraW5nBADRCAGYcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nOjpGcmVlemVSZWFzb24AFAAA0QgMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZxhwYWxsZXQwRnJlZXplUmVhc29uAAEIPFN0YWtpbmdDb2xsYXRvcgAAAEBTdGFraW5nRGVsZWdhdG9yAAEAANUIAAACyQgA2QgMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQURXJyb3IIBFQABEkAATA4VmVzdGluZ0JhbGFuY2UAAAScVmVzdGluZyBiYWxhbmNlIHRvbyBoaWdoIHRvIHNlbmQgdmFsdWUuVExpcXVpZGl0eVJlc3RyaWN0aW9ucwABBMhBY2NvdW50IGxpcXVpZGl0eSByZXN0cmljdGlvbnMgcHJldmVudCB3aXRoZHJhd2FsLkxJbnN1ZmZpY2llbnRCYWxhbmNlAAIEeEJhbGFuY2UgdG9vIGxvdyB0byBzZW5kIHZhbHVlLkhFeGlzdGVudGlhbERlcG9zaXQAAwTsVmFsdWUgdG9vIGxvdyB0byBjcmVhdGUgYWNjb3VudCBkdWUgdG8gZXhpc3RlbnRpYWwgZGVwb3NpdC40RXhwZW5kYWJpbGl0eQAEBJBUcmFuc2Zlci9wYXltZW50IHdvdWxkIGtpbGwgYWNjb3VudC5cRXhpc3RpbmdWZXN0aW5nU2NoZWR1bGUABQTMQSB2ZXN0aW5nIHNjaGVkdWxlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIGFjY291bnQuLERlYWRBY2NvdW50AAYEjEJlbmVmaWNpYXJ5IGFjY291bnQgbXVzdCBwcmUtZXhpc3QuPFRvb01hbnlSZXNlcnZlcwAHBLhOdW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgZXhjZWVkIGBNYXhSZXNlcnZlc2AuMFRvb01hbnlIb2xkcwAIBPhOdW1iZXIgb2YgaG9sZHMgZXhjZWVkIGBWYXJpYW50Q291bnRPZjxUOjpSdW50aW1lSG9sZFJlYXNvbj5gLjhUb29NYW55RnJlZXplcwAJBJhOdW1iZXIgb2YgZnJlZXplcyBleGNlZWQgYE1heEZyZWV6ZXNgLkxJc3N1YW5jZURlYWN0aXZhdGVkAAoEAQFUaGUgaXNzdWFuY2UgY2Fubm90IGJlIG1vZGlmaWVkIHNpbmNlIGl0IGlzIGFscmVhZHkgZGVhY3RpdmF0ZWQuJERlbHRhWmVybwALBGRUaGUgZGVsdGEgY2Fubm90IGJlIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lt0ICGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudCBSZWxlYXNlcwABCCRWMUFuY2llbnQAAAAIVjIAAQAA4QgQNGZyYW1lX3N1cHBvcnQYdHJhaXRzHHN0b3JhZ2UYTm9Ecm9wBARUAeUIAAQA5QgBBFQAAOUIGDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGUkaW1iYWxhbmNlJEltYmFsYW5jZQwEQgG8GE9uRHJvcAA4T3Bwb3NpdGVPbkRyb3AAAAQBGGFtb3VudLwBBEIAAOkIDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcUdHlwZXMkUm91bmRJbmZvBCxCbG9ja051bWJlcgEoABABHGN1cnJlbnQoAShSb3VuZEluZGV4AAEUZmlyc3QoASxCbG9ja051bWJlcgABGGxlbmd0aCgBDHUzMgABKGZpcnN0X3Nsb3QYAQx1NjQAAO0IDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcUdHlwZXMkRGVsZWdhdG9yCCRBY2NvdW50SWQBABxCYWxhbmNlAbwAFAEIaWQAASRBY2NvdW50SWQAASxkZWxlZ2F0aW9uc/EIAZBPcmRlcmVkU2V0PEJvbmQ8QWNjb3VudElkLCBCYWxhbmNlPj4AARR0b3RhbLwBHEJhbGFuY2UAAShsZXNzX3RvdGFsvAEcQmFsYW5jZQABGHN0YXR1c/0IATxEZWxlZ2F0b3JTdGF0dXMAAPEIDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcMc2V0KE9yZGVyZWRTZXQEBFQB9QgABAD5CAEYVmVjPFQ+AAD1CAxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nFHR5cGVzEEJvbmQIJEFjY291bnRJZAEAHEJhbGFuY2UBvAAIARRvd25lcgABJEFjY291bnRJZAABGGFtb3VudLwBHEJhbGFuY2UAAPkIAAAC9QgA/QgMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZxR0eXBlczxEZWxlZ2F0b3JTdGF0dXMAAQgYQWN0aXZlAAAAHExlYXZpbmcEACgBKFJvdW5kSW5kZXgAAQAAAQkMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZxR0eXBlc0RDYW5kaWRhdGVNZXRhZGF0YQQcQmFsYW5jZQG8ACgBEGJvbmS8ARxCYWxhbmNlAAFAZGVsZWdhdGlvbl9jb3VudCgBDHUzMgABNHRvdGFsX2NvdW50ZWS8ARxCYWxhbmNlAAFwbG93ZXN0X3RvcF9kZWxlZ2F0aW9uX2Ftb3VudLwBHEJhbGFuY2UAAYBoaWdoZXN0X2JvdHRvbV9kZWxlZ2F0aW9uX2Ftb3VudLwBHEJhbGFuY2UAAXxsb3dlc3RfYm90dG9tX2RlbGVnYXRpb25fYW1vdW50vAEcQmFsYW5jZQABMHRvcF9jYXBhY2l0eQUJAThDYXBhY2l0eVN0YXR1cwABPGJvdHRvbV9jYXBhY2l0eQUJAThDYXBhY2l0eVN0YXR1cwABHHJlcXVlc3QJCQGkT3B0aW9uPENhbmRpZGF0ZUJvbmRMZXNzUmVxdWVzdDxCYWxhbmNlPj4AARhzdGF0dXMRCQE4Q29sbGF0b3JTdGF0dXMAAAUJDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcUdHlwZXM4Q2FwYWNpdHlTdGF0dXMAAQwQRnVsbAAAABRFbXB0eQABABxQYXJ0aWFsAAIAAAkJBBhPcHRpb24EBFQBDQkBCBBOb25lAAAAEFNvbWUEAA0JAAABAAANCQxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nFHR5cGVzYENhbmRpZGF0ZUJvbmRMZXNzUmVxdWVzdAQcQmFsYW5jZQG8AAgBGGFtb3VudLwBHEJhbGFuY2UAATx3aGVuX2V4ZWN1dGFibGUoAShSb3VuZEluZGV4AAARCQxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nFHR5cGVzOENvbGxhdG9yU3RhdHVzAAEMGEFjdGl2ZQAAABBJZGxlAAEAHExlYXZpbmcEACgBKFJvdW5kSW5kZXgAAgAAFQkAAAQIAAAAGQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEdCQRTAAAEACEJARhWZWM8VD4AAB0JDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmdMZGVsZWdhdGlvbl9yZXF1ZXN0c0BTY2hlZHVsZWRSZXF1ZXN0BBxCYWxhbmNlAbwACAE8d2hlbl9leGVjdXRhYmxlKAEoUm91bmRJbmRleAABGGFjdGlvbqEGAWREZWxlZ2F0aW9uQWN0aW9uPEJhbGFuY2U+AAAhCQAAAh0JACUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKQkEUwAABAAtCQEYVmVjPFQ+AAApCQxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nNGF1dG9fY29tcG91bmRIQXV0b0NvbXBvdW5kQ29uZmlnBCRBY2NvdW50SWQBAAAIASRkZWxlZ2F0b3IAASRBY2NvdW50SWQAARR2YWx1ZdgBHFBlcmNlbnQAAC0JAAACKQkAMQkMYHBhbGxldF9wYXJhY2hhaW5fc3Rha2luZxR0eXBlcyxEZWxlZ2F0aW9ucwgkQWNjb3VudElkAQAcQmFsYW5jZQG8AAgBLGRlbGVnYXRpb25z+QgBdFZlYzxCb25kPEFjY291bnRJZCwgQmFsYW5jZT4+AAEUdG90YWy8ARxCYWxhbmNlAAA1CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABADEARhWZWM8VD4AADkJDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcMc2V0REJvdW5kZWRPcmRlcmVkU2V0CARUAfUIBFMAAAQAPQkBQEJvdW5kZWRWZWM8VCwgUz4AAD0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB9QgEUwAABAD5CAEYVmVjPFQ+AABBCQAABAgoAABFCQxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nFHR5cGVzQENvbGxhdG9yU25hcHNob3QIJEFjY291bnRJZAEAHEJhbGFuY2UBvAAMARBib25kvAEcQmFsYW5jZQABLGRlbGVnYXRpb25zSQkBtFZlYzxCb25kV2l0aEF1dG9Db21wb3VuZDxBY2NvdW50SWQsIEJhbGFuY2U+PgABFHRvdGFsvAEcQmFsYW5jZQAASQkAAAJNCQBNCQxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nFHR5cGVzUEJvbmRXaXRoQXV0b0NvbXBvdW5kCCRBY2NvdW50SWQBABxCYWxhbmNlAbwADAEUb3duZXIAASRBY2NvdW50SWQAARhhbW91bnS8ARxCYWxhbmNlAAE0YXV0b19jb21wb3VuZNgBHFBlcmNlbnQAAFEJDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcUdHlwZXM0RGVsYXllZFBheW91dAQcQmFsYW5jZQG8AAwBOHJvdW5kX2lzc3VhbmNlvAEcQmFsYW5jZQABUHRvdGFsX3N0YWtpbmdfcmV3YXJkvAEcQmFsYW5jZQABTGNvbGxhdG9yX2NvbW1pc3Npb26wARxQZXJiaWxsAABVCQxgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nJGluZmxhdGlvbjRJbmZsYXRpb25JbmZvBBxCYWxhbmNlAbwADAEYZXhwZWN00AE4UmFuZ2U8QmFsYW5jZT4AARhhbm51YWzUAThSYW5nZTxQZXJiaWxsPgABFHJvdW5k1AE4UmFuZ2U8UGVyYmlsbD4AAFkJDGBwYWxsZXRfcGFyYWNoYWluX3N0YWtpbmcYcGFsbGV0FEVycm9yBARUAAHgMERlbGVnYXRvckRORQAAAGhEZWxlZ2F0b3JETkVpblRvcE5vckJvdHRvbQABAGhEZWxlZ2F0b3JETkVJbkRlbGVnYXRvclNldAACADBDYW5kaWRhdGVETkUAAwA0RGVsZWdhdGlvbkRORQAEADxEZWxlZ2F0b3JFeGlzdHMABQA8Q2FuZGlkYXRlRXhpc3RzAAYAVENhbmRpZGF0ZUJvbmRCZWxvd01pbgAHAExJbnN1ZmZpY2llbnRCYWxhbmNlAAgAVERlbGVnYXRvckJvbmRCZWxvd01pbgAJAEhEZWxlZ2F0aW9uQmVsb3dNaW4ACgA4QWxyZWFkeU9mZmxpbmUACwA0QWxyZWFkeUFjdGl2ZQAMAFxEZWxlZ2F0b3JBbHJlYWR5TGVhdmluZwANAExEZWxlZ2F0b3JOb3RMZWF2aW5nAA4AXERlbGVnYXRvckNhbm5vdExlYXZlWWV0AA8AXENhbm5vdERlbGVnYXRlSWZMZWF2aW5nABAAXENhbmRpZGF0ZUFscmVhZHlMZWF2aW5nABEATENhbmRpZGF0ZU5vdExlYXZpbmcAEgBcQ2FuZGlkYXRlQ2Fubm90TGVhdmVZZXQAEwBcQ2Fubm90R29PbmxpbmVJZkxlYXZpbmcAFACARXhjZWVkTWF4RGVsZWdhdGlvbnNQZXJEZWxlZ2F0b3IAFQBkQWxyZWFkeURlbGVnYXRlZENhbmRpZGF0ZQAWADxJbnZhbGlkU2NoZWR1bGUAFwBEQ2Fubm90U2V0QmVsb3dNaW4AGADIUm91bmRMZW5ndGhNdXN0QmVHcmVhdGVyVGhhblRvdGFsU2VsZWN0ZWRDb2xsYXRvcnMAGQBITm9Xcml0aW5nU2FtZVZhbHVlABoArFRvdGFsSW5mbGF0aW9uRGlzdHJpYnV0aW9uUGVyY2VudEV4Y2VlZHMxMDAAGwCwVG9vTG93Q2FuZGlkYXRlQ291bnRXZWlnaHRIaW50Sm9pbkNhbmRpZGF0ZXMAHADMVG9vTG93Q2FuZGlkYXRlQ291bnRXZWlnaHRIaW50Q2FuY2VsTGVhdmVDYW5kaWRhdGVzAB0AlFRvb0xvd0NhbmRpZGF0ZUNvdW50VG9MZWF2ZUNhbmRpZGF0ZXMAHgB8VG9vTG93RGVsZWdhdGlvbkNvdW50VG9EZWxlZ2F0ZQAfAKBUb29Mb3dDYW5kaWRhdGVEZWxlZ2F0aW9uQ291bnRUb0RlbGVnYXRlACAAvFRvb0xvd0NhbmRpZGF0ZURlbGVnYXRpb25Db3VudFRvTGVhdmVDYW5kaWRhdGVzACEAmFRvb0xvd0RlbGVnYXRpb25Db3VudFRvTGVhdmVEZWxlZ2F0b3JzACIAbFBlbmRpbmdDYW5kaWRhdGVSZXF1ZXN0c0RORQAjAJBQZW5kaW5nQ2FuZGlkYXRlUmVxdWVzdEFscmVhZHlFeGlzdHMAJACAUGVuZGluZ0NhbmRpZGF0ZVJlcXVlc3ROb3REdWVZZXQAJQBsUGVuZGluZ0RlbGVnYXRpb25SZXF1ZXN0RE5FACYAlFBlbmRpbmdEZWxlZ2F0aW9uUmVxdWVzdEFscmVhZHlFeGlzdHMAJwCEUGVuZGluZ0RlbGVnYXRpb25SZXF1ZXN0Tm90RHVlWWV0ACgAzENhbm5vdERlbGVnYXRlTGVzc1RoYW5PckVxdWFsVG9Mb3dlc3RCb3R0b21XaGVuRnVsbAApAFxQZW5kaW5nRGVsZWdhdGlvblJldm9rZQAqAIxUb29Mb3dEZWxlZ2F0aW9uQ291bnRUb0F1dG9Db21wb3VuZAArAOxUb29Mb3dDYW5kaWRhdGVBdXRvQ29tcG91bmRpbmdEZWxlZ2F0aW9uQ291bnRUb0F1dG9Db21wb3VuZAAsANxUb29Mb3dDYW5kaWRhdGVBdXRvQ29tcG91bmRpbmdEZWxlZ2F0aW9uQ291bnRUb0RlbGVnYXRlAC0AlFRvb0xvd0NvbGxhdG9yQ291bnRUb05vdGlmeUFzSW5hY3RpdmUALgBoQ2Fubm90QmVOb3RpZmllZEFzSW5hY3RpdmUALwD4VG9vTG93Q2FuZGlkYXRlQXV0b0NvbXBvdW5kaW5nRGVsZWdhdGlvbkNvdW50VG9MZWF2ZUNhbmRpZGF0ZXMAMAB4VG9vTG93Q2FuZGlkYXRlQ291bnRXZWlnaHRIaW50ADEAnFRvb0xvd0NhbmRpZGF0ZUNvdW50V2VpZ2h0SGludEdvT2ZmbGluZQAyAFRDYW5kaWRhdGVMaW1pdFJlYWNoZWQAMwBsQ2Fubm90U2V0QWJvdmVNYXhDYW5kaWRhdGVzADQAYE1hcmtpbmdPZmZsaW5lTm90RW5hYmxlZAA1AEhDdXJyZW50Um91bmRUb29Mb3cANgBMRW1wdHlNaWdyYXRpb25CYXRjaAA3AASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5dCQxYcGFsbGV0X2F1dGhvcl9pbmhlcmVudBhwYWxsZXQURXJyb3IEBFQAAQxAQXV0aG9yQWxyZWFkeVNldAAABHBBdXRob3IgYWxyZWFkeSBzZXQgaW4gYmxvY2suLE5vQWNjb3VudElkAAEE4E5vIEFjY291bnRJZCB3YXMgZm91bmQgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXV0aG9yOENhbm5vdEJlQXV0aG9yAAIE1FRoZSBhdXRob3IgaW4gdGhlIGluaGVyZW50IGlzIG5vdCBhbiBlbGlnaWJsZSBhdXRob3IuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmEJDFRwYWxsZXRfYXV0aG9yX21hcHBpbmcYcGFsbGV0QFJlZ2lzdHJhdGlvbkluZm8EBFQAAAwBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARxkZXBvc2l0vAEwQmFsYW5jZU9mPFQ+AAEQa2V5c7EGARxUOjpLZXlzAABlCQxUcGFsbGV0X2F1dGhvcl9tYXBwaW5nGHBhbGxldBRFcnJvcgQEVAABIExBc3NvY2lhdGlvbk5vdEZvdW5kAAAE5FRoZSBhc3NvY2lhdGlvbiBjYW4ndCBiZSBjbGVhcmVkIGJlY2F1c2UgaXQgaXMgbm90IGZvdW5kLkhOb3RZb3VyQXNzb2NpYXRpb24AAQQdAVRoZSBhc3NvY2lhdGlvbiBjYW4ndCBiZSBjbGVhcmVkIGJlY2F1c2UgaXQgYmVsb25ncyB0byBhbm90aGVyIGFjY291bnQubENhbm5vdEFmZm9yZFNlY3VyaXR5RGVwb3NpdAACBD0BVGhpcyBhY2NvdW50IGNhbm5vdCBzZXQgYW4gYXV0aG9yIGJlY2F1c2UgaXQgY2Fubm9uIGFmZm9yZCB0aGUgc2VjdXJpdHkgZGVwb3NpdERBbHJlYWR5QXNzb2NpYXRlZAADBCEBVGhlIE5pbWJ1c0lkIGluIHF1ZXN0aW9uIGlzIGFscmVhZHkgYXNzb2NpYXRlZCBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuTE9sZEF1dGhvcklkTm90Rm91bmQABATETm8gZXhpc3RpbmcgTmltYnVzSWQgY2FuIGJlIGZvdW5kIGZvciB0aGUgYWNjb3VudDBXcm9uZ0tleVNpemUABQRQS2V5cyBoYXZlIHdyb25nIHNpemVIRGVjb2RlTmltYnVzRmFpbGVkAAYEoEZhaWxlZCB0byBkZWNvZGUgTmltYnVzSWQgZm9yIGBzZXRfa2V5c2BARGVjb2RlS2V5c0ZhaWxlZAAHBJxGYWlsZWQgdG8gZGVjb2RlIFQ6OktleXMgZm9yIGBzZXRfa2V5c2AEDQFBbiBlcnJvciB0aGF0IGNhbiBvY2N1ciB3aGlsZSBleGVjdXRpbmcgdGhlIG1hcHBpbmcgcGFsbGV0J3MgbG9naWMuaQkMYHBhbGxldF9tb29uYmVhbV9vcmJpdGVycxR0eXBlc0BDb2xsYXRvclBvb2xJbmZvBCRBY2NvdW50SWQBAAAMASBvcmJpdGVyc8QBOFZlYzxBY2NvdW50SWQ+AAFUbWF5YmVfY3VycmVudF9vcmJpdGVybQkBhE9wdGlvbjxDdXJyZW50T3JiaXRlcjxBY2NvdW50SWQ+PgABMG5leHRfb3JiaXRlcigBDHUzMgAAbQkEGE9wdGlvbgQEVAFxCQEIEE5vbmUAAAAQU29tZQQAcQkAAAEAAHEJDGBwYWxsZXRfbW9vbmJlYW1fb3JiaXRlcnMUdHlwZXM4Q3VycmVudE9yYml0ZXIEJEFjY291bnRJZAEAAAgBKGFjY291bnRfaWQAASRBY2NvdW50SWQAARxyZW1vdmVkwAEQYm9vbAAAdQkMYHBhbGxldF9tb29uYmVhbV9vcmJpdGVycxhwYWxsZXQURXJyb3IEBFQAASRQQ29sbGF0b3JBbHJlYWR5QWRkZWQAAATIVGhlIGNvbGxhdG9yIGlzIGFscmVhZHkgYWRkZWQgaW4gb3JiaXRlcnMgcHJvZ3JhbS5AQ29sbGF0b3JOb3RGb3VuZAABBKRUaGlzIGNvbGxhdG9yIGlzIG5vdCBpbiBvcmJpdGVycyBwcm9ncmFtLlBDb2xsYXRvclBvb2xUb29MYXJnZQACBAkBVGhlcmUgYXJlIGFscmVhZHkgdG9vIG1hbnkgb3JiaXRlcnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sbGF0b3IuYENvbGxhdG9yc1Bvb2xDb3VudFRvb0xvdwADBCUBVGhlcmUgYXJlIG1vcmUgY29sbGF0b3IgcG9vbHMgdGhhbiB0aGUgbnVtYmVyIHNwZWNpZmllZCBpbiB0aGUgcGFyYW1ldGVyLlxNaW5PcmJpdGVyRGVwb3NpdE5vdFNldAAECF0BVGhlIG1pbmltdW0gZGVwb3NpdCByZXF1aXJlZCB0byByZWdpc3RlciBhcyBhbiBvcmJpdGVyIGhhcyBub3QgeWV0IGJlZW4gaW5jbHVkZWQgaW4gdGhlPG9uY2hhaW4gc3RvcmFnZVBPcmJpdGVyQWxyZWFkeUluUG9vbAAFBNhUaGlzIG9yYml0ZXIgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2xsYXRvci5YT3JiaXRlckRlcG9zaXROb3RGb3VuZAAGBIxUaGlzIG9yYml0ZXIgaGFzIG5vdCBtYWRlIGEgZGVwb3NpdDxPcmJpdGVyTm90Rm91bmQABwRkVGhpcyBvcmJpdGVyIGlzIG5vdCBmb3VuZExPcmJpdGVyU3RpbGxJbkFQb29sAAgEpFRoZSBvcmJpdGVyIGlzIHN0aWxsIGF0IGxlYXN0IGluIG9uZSBwb29sBAUBQW4gZXJyb3IgdGhhdCBjYW4gb2NjdXIgd2hpbGUgZXhlY3V0aW5nIHRoaXMgcGFsbGV0J3MgZXh0cmluc2ljcy55CQAABAh9CSgAfQkISHNwX2NvbnNlbnN1c19zbG90cxBTbG90AAAEABgBDHU2NAAAgQkMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuhQkAAAQIiQm8AIkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBjQkEUwAABACRCQEYVmVjPFQ+AACNCQgwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQAkUHJveHlUeXBlAX0BLEJsb2NrTnVtYmVyASgADAEgZGVsZWdhdGUAASRBY2NvdW50SWQAAShwcm94eV90eXBlfQEBJFByb3h5VHlwZQABFGRlbGF5KAEsQmxvY2tOdW1iZXIAAJEJAAACjQkAlQkAAAQImQm8AJkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBnQkEUwAABAChCQEYVmVjPFQ+AACdCQgwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQAQSGFzaAEsLEJsb2NrTnVtYmVyASgADAEQcmVhbAABJEFjY291bnRJZAABJGNhbGxfaGFzaCwBEEhhc2gAARhoZWlnaHQoASxCbG9ja051bWJlcgAAoQkAAAKdCQClCQwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuqQkMXHBhbGxldF9tYWludGVuYW5jZV9tb2RlGHBhbGxldBRFcnJvcgQEVAABCGBBbHJlYWR5SW5NYWludGVuYW5jZU1vZGUAAARFAVRoZSBjaGFpbiBjYW5ub3QgZW50ZXIgbWFpbnRlbmFuY2UgbW9kZSBiZWNhdXNlIGl0IGlzIGFscmVhZHkgaW4gbWFpbnRlbmFuY2UgbW9kZVBOb3RJbk1haW50ZW5hbmNlTW9kZQABBDkBVGhlIGNoYWluIGNhbm5vdCByZXN1bWUgbm9ybWFsIG9wZXJhdGlvbiBiZWNhdXNlIGl0IGlzIG5vdCBpbiBtYWludGVuYW5jZSBtb2RlBAUBQW4gZXJyb3IgdGhhdCBjYW4gb2NjdXIgd2hpbGUgZXhlY3V0aW5nIHRoaXMgcGFsbGV0J3MgZXh0cmluc2ljcy6tCQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzMFJlZ2lzdHJhdGlvbgwcQmFsYW5jZQG8NE1heEp1ZGdlbWVudHMAMElkZW50aXR5SW5mbwGJAQAMAShqdWRnZW1lbnRzsQkB/EJvdW5kZWRWZWM8KFJlZ2lzdHJhckluZGV4LCBKdWRnZW1lbnQ8QmFsYW5jZT4pLCBNYXhKdWRnZW1lbnRzPgABHGRlcG9zaXS8ARxCYWxhbmNlAAEQaW5mb4kBATBJZGVudGl0eUluZm8AALEJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBtQkEUwAABAC5CQEYVmVjPFQ+AAC1CQAABAgoIQIAuQkAAAK1CQC9CQAABAi8wQkAwQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQAxAEYVmVjPFQ+AADFCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAckJBFMAAAQA0QkBGFZlYzxUPgAAyQkEGE9wdGlvbgQEVAHNCQEIEE5vbmUAAAAQU29tZQQAzQkAAAEAAM0JDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXM0UmVnaXN0cmFySW5mbwwcQmFsYW5jZQG8JEFjY291bnRJZAEAHElkRmllbGQBGAAMARxhY2NvdW50AAEkQWNjb3VudElkAAEMZmVlvAEcQmFsYW5jZQABGGZpZWxkcxgBHElkRmllbGQAANEJAAACyQkA1QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AADZCQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzTEF1dGhvcml0eVByb3BlcnRpZXMEHEFjY291bnQBAAAIAShhY2NvdW50X2lkAAEcQWNjb3VudAABKGFsbG9jYXRpb24oAShBbGxvY2F0aW9uAADdCQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzTFVzZXJuYW1lSW5mb3JtYXRpb24IHEFjY291bnQBABxCYWxhbmNlAbwACAEUb3duZXIAARxBY2NvdW50AAEgcHJvdmlkZXLhCQFEUHJvdmlkZXI8QmFsYW5jZT4AAOEJDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXMgUHJvdmlkZXIEHEJhbGFuY2UBvAEMKEFsbG9jYXRpb24AAABAQXV0aG9yaXR5RGVwb3NpdAQAvAEcQmFsYW5jZQABABhTeXN0ZW0AAgAA5QkAAAQMACjhCQDpCQw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBRFcnJvcgQEVAABeEhUb29NYW55U3ViQWNjb3VudHMAAARcVG9vIG1hbnkgc3Vicy1hY2NvdW50cy4gTm90Rm91bmQAAQRQQWNjb3VudCBpc24ndCBmb3VuZC4gTm90TmFtZWQAAgRQQWNjb3VudCBpc24ndCBuYW1lZC4oRW1wdHlJbmRleAADBDBFbXB0eSBpbmRleC4oRmVlQ2hhbmdlZAAEBDxGZWUgaXMgY2hhbmdlZC4oTm9JZGVudGl0eQAFBEhObyBpZGVudGl0eSBmb3VuZC48U3RpY2t5SnVkZ2VtZW50AAYERFN0aWNreSBqdWRnZW1lbnQuOEp1ZGdlbWVudEdpdmVuAAcEQEp1ZGdlbWVudCBnaXZlbi5ASW52YWxpZEp1ZGdlbWVudAAIBEhJbnZhbGlkIGp1ZGdlbWVudC4wSW52YWxpZEluZGV4AAkEVFRoZSBpbmRleCBpcyBpbnZhbGlkLjRJbnZhbGlkVGFyZ2V0AAoEWFRoZSB0YXJnZXQgaXMgaW52YWxpZC5EVG9vTWFueVJlZ2lzdHJhcnMACwToTWF4aW11bSBhbW91bnQgb2YgcmVnaXN0cmFycyByZWFjaGVkLiBDYW5ub3QgYWRkIGFueSBtb3JlLjhBbHJlYWR5Q2xhaW1lZAAMBHBBY2NvdW50IElEIGlzIGFscmVhZHkgbmFtZWQuGE5vdFN1YgANBHBTZW5kZXIgaXMgbm90IGEgc3ViLWFjY291bnQuIE5vdE93bmVkAA4EiFN1Yi1hY2NvdW50IGlzbid0IG93bmVkIGJ5IHNlbmRlci50SnVkZ2VtZW50Rm9yRGlmZmVyZW50SWRlbnRpdHkADwTQVGhlIHByb3ZpZGVkIGp1ZGdlbWVudCB3YXMgZm9yIGEgZGlmZmVyZW50IGlkZW50aXR5LlhKdWRnZW1lbnRQYXltZW50RmFpbGVkABAE+EVycm9yIHRoYXQgb2NjdXJzIHdoZW4gdGhlcmUgaXMgYW4gaXNzdWUgcGF5aW5nIGZvciBqdWRnZW1lbnQuNEludmFsaWRTdWZmaXgAEQSAVGhlIHByb3ZpZGVkIHN1ZmZpeCBpcyB0b28gbG9uZy5QTm90VXNlcm5hbWVBdXRob3JpdHkAEgTgVGhlIHNlbmRlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gaXNzdWUgYSB1c2VybmFtZS4wTm9BbGxvY2F0aW9uABMExFRoZSBhdXRob3JpdHkgY2Fubm90IGFsbG9jYXRlIGFueSBtb3JlIHVzZXJuYW1lcy5ASW52YWxpZFNpZ25hdHVyZQAUBKhUaGUgc2lnbmF0dXJlIG9uIGEgdXNlcm5hbWUgd2FzIG5vdCB2YWxpZC5EUmVxdWlyZXNTaWduYXR1cmUAFQQJAVNldHRpbmcgdGhpcyB1c2VybmFtZSByZXF1aXJlcyBhIHNpZ25hdHVyZSwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkLjxJbnZhbGlkVXNlcm5hbWUAFgSwVGhlIHVzZXJuYW1lIGRvZXMgbm90IG1lZXQgdGhlIHJlcXVpcmVtZW50cy40VXNlcm5hbWVUYWtlbgAXBHhUaGUgdXNlcm5hbWUgaXMgYWxyZWFkeSB0YWtlbi4oTm9Vc2VybmFtZQAYBJhUaGUgcmVxdWVzdGVkIHVzZXJuYW1lIGRvZXMgbm90IGV4aXN0LihOb3RFeHBpcmVkABkELQFUaGUgdXNlcm5hbWUgY2Fubm90IGJlIGZvcmNlZnVsbHkgcmVtb3ZlZCBiZWNhdXNlIGl0IGNhbiBzdGlsbCBiZSBhY2NlcHRlZC4gVG9vRWFybHkAGgQZAVRoZSB1c2VybmFtZSBjYW5ub3QgYmUgcmVtb3ZlZCBiZWNhdXNlIGl0J3Mgc3RpbGwgaW4gdGhlIGdyYWNlIHBlcmlvZC4wTm90VW5iaW5kaW5nABsE7FRoZSB1c2VybmFtZSBjYW5ub3QgYmUgcmVtb3ZlZCBiZWNhdXNlIGl0IGlzIG5vdCB1bmJpbmRpbmcuQEFscmVhZHlVbmJpbmRpbmcAHAT8VGhlIHVzZXJuYW1lIGNhbm5vdCBiZSB1bmJvdW5kIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSB1bmJpbmRpbmcuWEluc3VmZmljaWVudFByaXZpbGVnZXMAHQhFAVRoZSBhY3Rpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBiZWNhdXNlIG9mIGluc3VmZmljaWVudCBwcml2aWxlZ2VzIChlLmcuIGF1dGhvcml0edB0cnlpbmcgdG8gdW5iaW5kIGEgdXNlcm5hbWUgcHJvdmlkZWQgYnkgdGhlIHN5c3RlbSkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lu0JAAAECAAwAPEJCDxwYWxsZXRfbXVsdGlzaWcgTXVsdGlzaWcQLEJsb2NrTnVtYmVyASgcQmFsYW5jZQG8JEFjY291bnRJZAEAME1heEFwcHJvdmFscwAAEAEQd2hlbj0CAVhUaW1lcG9pbnQ8QmxvY2tOdW1iZXI+AAEcZGVwb3NpdLwBHEJhbGFuY2UAASRkZXBvc2l0b3IAASRBY2NvdW50SWQAASRhcHByb3ZhbHP1CQGMQm91bmRlZFZlYzxBY2NvdW50SWQsIE1heEFwcHJvdmFscz4AAPUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAMQBGFZlYzxUPgAA+QkMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwSgTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCBpbiBzdG9yYWdlLiBOb3RPd25lcgAICFEBT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQgb3IgdXBkYXRlNGl0cyBkZXBvc2l0cy4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC79CQx8cGFsbGV0X21vb25iZWFtX2xhenlfbWlncmF0aW9ucxhwYWxsZXQURXJyb3IEBFQAAQhoQ29udHJhY3RNZXRhZGF0YUFscmVhZHlTZXQAAASIVGhlIGNvbnRyYWN0IGFscmVhZHkgaGF2ZSBtZXRhZGF0YUBDb250cmFjdE5vdEV4aXN0AAEESENvbnRyYWN0IG5vdCBleGlzdASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4BCggocGFsbGV0X2V2bTBDb2RlTWV0YWRhdGEAAAgBEHNpemUYAQx1NjQAARBoYXNoLAEQSDI1NgAABQoAAAQIGQEsAAkKDChwYWxsZXRfZXZtGHBhbGxldBRFcnJvcgQEVAABPChCYWxhbmNlTG93AAAEkE5vdCBlbm91Z2ggYmFsYW5jZSB0byBwZXJmb3JtIGFjdGlvbixGZWVPdmVyZmxvdwABBIBDYWxjdWxhdGluZyB0b3RhbCBmZWUgb3ZlcmZsb3dlZDxQYXltZW50T3ZlcmZsb3cAAgSQQ2FsY3VsYXRpbmcgdG90YWwgcGF5bWVudCBvdmVyZmxvd2VkOFdpdGhkcmF3RmFpbGVkAAMETFdpdGhkcmF3IGZlZSBmYWlsZWQ4R2FzUHJpY2VUb29Mb3cABARUR2FzIHByaWNlIGlzIHRvbyBsb3cuMEludmFsaWROb25jZQAFBEBOb25jZSBpcyBpbnZhbGlkOEdhc0xpbWl0VG9vTG93AAYEVEdhcyBsaW1pdCBpcyB0b28gbG93LmRHYXNMaW1pdEV4Y2VlZHNCbG9ja0xpbWl0AAcEiEdhcyBsaW1pdCBleGNlZWRzIGJsb2NrIGdhcyBsaW1pdC44SW52YWxpZENoYWluSWQACARgVGhlIGNoYWluIGlkIGlzIGludmFsaWQuQEludmFsaWRTaWduYXR1cmUACQRkdGhlIHNpZ25hdHVyZSBpcyBpbnZhbGlkLihSZWVudHJhbmN5AAoEOEVWTSByZWVudHJhbmN5aFRyYW5zYWN0aW9uTXVzdENvbWVGcm9tRU9BAAsEJEVJUC0zNjA3LCRVbmRlZmluZWQADARAVW5kZWZpbmVkIGVycm9yLlhDcmVhdGVPcmlnaW5Ob3RBbGxvd2VkAA0EKQFBZGRyZXNzIG5vdCBhbGxvd2VkIHRvIGRlcGxveSBjb250cmFjdHMgZWl0aGVyIHZpYSBDUkVBVEUgb3IgQ0FMTChDUkVBVEUpLnRUcmFuc2FjdGlvbkdhc0xpbWl0RXhjZWVkc0NhcAAOBPBFSVAtNzgyNTogVHJhbnNhY3Rpb24gZ2FzIGxpbWl0IGV4Y2VlZHMgcHJvdG9jb2wgY2FwICgyXjI0KS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuDQoAAAQMqQIRCiEKABEKCBhmcF9ycGNEVHJhbnNhY3Rpb25TdGF0dXMAABwBQHRyYW5zYWN0aW9uX2hhc2gsARBIMjU2AAFEdHJhbnNhY3Rpb25faW5kZXgoAQx1MzIAARBmcm9tGQEBHEFkZHJlc3MAAQh0b1EFATxPcHRpb248QWRkcmVzcz4AAUBjb250cmFjdF9hZGRyZXNzUQUBPE9wdGlvbjxBZGRyZXNzPgABEGxvZ3MVCgEgVmVjPExvZz4AAShsb2dzX2Jsb29tGQoBFEJsb29tAAAVCgAAAgEHABkKCCBldGhibG9vbRRCbG9vbQAABAAdCgFAW3U4OyBCTE9PTV9TSVpFXQAAHQoAAAMAAQAACAAhCgwgZXRoZXJldW0ccmVjZWlwdCRSZWNlaXB0VjQAARAYTGVnYWN5BAAlCgFERUlQNjU4UmVjZWlwdERhdGEAAAAcRUlQMjkzMAQAJQoBSEVJUDI5MzBSZWNlaXB0RGF0YQABABxFSVAxNTU5BAAlCgFIRUlQMTU1OVJlY2VpcHREYXRhAAIAHEVJUDc3MDIEACUKAUhFSVA3NzAyUmVjZWlwdERhdGEAAwAAJQoMIGV0aGVyZXVtHHJlY2VpcHRERUlQNjU4UmVjZWlwdERhdGEAABABLHN0YXR1c19jb2RlCAEIdTgAASB1c2VkX2dhc4ECARBVMjU2AAEobG9nc19ibG9vbRkKARRCbG9vbQABEGxvZ3MVCgEgVmVjPExvZz4AACkKDCBldGhlcmV1bRRibG9jaxRCbG9jawQEVAGpAgAMARhoZWFkZXItCgEYSGVhZGVyAAEwdHJhbnNhY3Rpb25zNQoBGFZlYzxUPgABGG9tbWVyczkKASxWZWM8SGVhZGVyPgAALQoMIGV0aGVyZXVtGGhlYWRlchhIZWFkZXIAADwBLHBhcmVudF9oYXNoLAEQSDI1NgABLG9tbWVyc19oYXNoLAEQSDI1NgABLGJlbmVmaWNpYXJ5GQEBEEgxNjAAAShzdGF0ZV9yb290LAEQSDI1NgABRHRyYW5zYWN0aW9uc19yb290LAEQSDI1NgABNHJlY2VpcHRzX3Jvb3QsARBIMjU2AAEobG9nc19ibG9vbRkKARRCbG9vbQABKGRpZmZpY3VsdHmBAgEQVTI1NgABGG51bWJlcoECARBVMjU2AAEkZ2FzX2xpbWl0gQIBEFUyNTYAASBnYXNfdXNlZIECARBVMjU2AAEkdGltZXN0YW1wGAEMdTY0AAEoZXh0cmFfZGF0YRQBFEJ5dGVzAAEgbWl4X2hhc2gsARBIMjU2AAEUbm9uY2UxCgEMSDY0AAAxCgw4ZXRoZXJldW1fdHlwZXMQaGFzaAxINjQAAAQAtQEBHFt1ODsgOF0AADUKAAACqQIAOQoAAAItCgA9CgAAAiEKAEEKAAACEQoARQoMPHBhbGxldF9ldGhlcmV1bRhwYWxsZXQURXJyb3IEBFQAAQhASW52YWxpZFNpZ25hdHVyZQAABFRTaWduYXR1cmUgaXMgaW52YWxpZC4wUHJlTG9nRXhpc3RzAAEE2FByZS1sb2cgaXMgcHJlc2VudCwgdGhlcmVmb3JlIHRyYW5zYWN0IGlzIG5vdCBhbGxvd2VkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5JCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAU0KBFMAAAQAVQoBGFZlYzxUPgAATQoEGE9wdGlvbgQEVAFRCgEIEE5vbmUAAAAQU29tZQQAUQoAAAEAAFEKCEBwYWxsZXRfc2NoZWR1bGVyJFNjaGVkdWxlZBQQTmFtZQEwEENhbGwB/QIsQmxvY2tOdW1iZXIBKDRQYWxsZXRzT3JpZ2luAQ0BJEFjY291bnRJZAEAABQBIG1heWJlX2lkLQYBME9wdGlvbjxOYW1lPgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbP0CARBDYWxsAAE4bWF5YmVfcGVyaW9kaWPZAgGUT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXI+PgABGG9yaWdpbg0BATRQYWxsZXRzT3JpZ2luAABVCgAAAk0KAFkKCEBwYWxsZXRfc2NoZWR1bGVyLFJldHJ5Q29uZmlnBBhQZXJpb2QBKAAMATR0b3RhbF9yZXRyaWVzCAEIdTgAASRyZW1haW5pbmcIAQh1OAABGHBlcmlvZCgBGFBlcmlvZAAAXQoMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEVycm9yBARUAAEUQEZhaWxlZFRvU2NoZWR1bGUAAARkRmFpbGVkIHRvIHNjaGVkdWxlIGEgY2FsbCBOb3RGb3VuZAABBHxDYW5ub3QgZmluZCB0aGUgc2NoZWR1bGVkIGNhbGwuXFRhcmdldEJsb2NrTnVtYmVySW5QYXN0AAIEpEdpdmVuIHRhcmdldCBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuSFJlc2NoZWR1bGVOb0NoYW5nZQADBPBSZXNjaGVkdWxlIGZhaWxlZCBiZWNhdXNlIGl0IGRvZXMgbm90IGNoYW5nZSBzY2hlZHVsZWQgdGltZS4UTmFtZWQABATQQXR0ZW1wdCB0byB1c2UgYSBub24tbmFtZWQgZnVuY3Rpb24gb24gYSBuYW1lZCB0YXNrLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5hCgg8cGFsbGV0X3ByZWltYWdlQE9sZFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAHEJhbGFuY2UBvAEILFVucmVxdWVzdGVkCAEcZGVwb3NpdGUKAVAoQWNjb3VudElkLCBCYWxhbmNlKQABDGxlbigBDHUzMgAAACRSZXF1ZXN0ZWQMARxkZXBvc2l0aQoBcE9wdGlvbjwoQWNjb3VudElkLCBCYWxhbmNlKT4AARRjb3VudCgBDHUzMgABDGxlbl0CASxPcHRpb248dTMyPgABAABlCgAABAgAvABpCgQYT3B0aW9uBARUAWUKAQgQTm9uZQAAABBTb21lBABlCgAAAQAAbQoIPHBhbGxldF9wcmVpbWFnZTRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBABhUaWNrZXQBcQoBCCxVbnJlcXVlc3RlZAgBGHRpY2tldHUKAUwoQWNjb3VudElkLCBUaWNrZXQpAAEMbGVuKAEMdTMyAAAAJFJlcXVlc3RlZAwBMG1heWJlX3RpY2tldHkKAWxPcHRpb248KEFjY291bnRJZCwgVGlja2V0KT4AARRjb3VudCgBDHUzMgABJG1heWJlX2xlbl0CASxPcHRpb248dTMyPgABAABxChQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zIGZ1bmdpYmxlREhvbGRDb25zaWRlcmF0aW9uFARBAARGAARSAAREAAhGcAAABAC8AShGOjpCYWxhbmNlAAB1CgAABAgAcQoAeQoEGE9wdGlvbgQEVAF1CgEIEE5vbmUAAAAQU29tZQQAdQoAAAEAAH0KAAAECCwoAIEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAhQoMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQURXJyb3IEBFQAASAYVG9vQmlnAAAEoFByZWltYWdlIGlzIHRvbyBsYXJnZSB0byBzdG9yZSBvbi1jaGFpbi4wQWxyZWFkeU5vdGVkAAEEpFByZWltYWdlIGhhcyBhbHJlYWR5IGJlZW4gbm90ZWQgb24tY2hhaW4uNE5vdEF1dGhvcml6ZWQAAgTIVGhlIHVzZXIgaXMgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4gTm90Tm90ZWQAAwT8VGhlIHByZWltYWdlIGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIGl0IGhhcyBub3QgeWV0IGJlZW4gbm90ZWQuJFJlcXVlc3RlZAAEBAkBQSBwcmVpbWFnZSBtYXkgbm90IGJlIHJlbW92ZWQgd2hlbiB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgcmVxdWVzdHMuME5vdFJlcXVlc3RlZAAFBC0BVGhlIHByZWltYWdlIHJlcXVlc3QgY2Fubm90IGJlIHJlbW92ZWQgc2luY2Ugbm8gb3V0c3RhbmRpbmcgcmVxdWVzdHMgZXhpc3QuHFRvb01hbnkABgRVAU1vcmUgdGhhbiBgTUFYX0hBU0hfVVBHUkFERV9CVUxLX0NPVU5UYCBoYXNoZXMgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdXBncmFkZWQgYXQgb25jZS4YVG9vRmV3AAcE5FRvbyBmZXcgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIChpLmUuIHplcm8pLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6JCgAABAgACQEAjQoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlGFZvdGluZxQcQmFsYW5jZQG8JEFjY291bnRJZAEALEJsb2NrTnVtYmVyASgkUG9sbEluZGV4ASggTWF4Vm90ZXMAAQgcQ2FzdGluZwQAkQoByENhc3Rpbmc8QmFsYW5jZSwgQmxvY2tOdW1iZXIsIFBvbGxJbmRleCwgTWF4Vm90ZXM+AAAAKERlbGVnYXRpbmcEAKkKAaxEZWxlZ2F0aW5nPEJhbGFuY2UsIEFjY291bnRJZCwgQmxvY2tOdW1iZXI+AAEAAJEKDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRxDYXN0aW5nEBxCYWxhbmNlAbwsQmxvY2tOdW1iZXIBKCRQb2xsSW5kZXgBKCBNYXhWb3RlcwAADAEUdm90ZXOVCgHcQm91bmRlZFZlYzwoUG9sbEluZGV4LCBBY2NvdW50Vm90ZTxCYWxhbmNlPiksIE1heFZvdGVzPgABLGRlbGVnYXRpb25zoQoBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3KlCgF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgAAlQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGZCgRTAAAEAJ0KARhWZWM8VD4AAJkKAAAECCjpAgCdCgAAApkKAKEKDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcUdHlwZXMsRGVsZWdhdGlvbnMEHEJhbGFuY2UBvAAIARR2b3Rlc7wBHEJhbGFuY2UAARxjYXBpdGFsvAEcQmFsYW5jZQAApQoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlJFByaW9yTG9jawgsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAbwACAAoASxCbG9ja051bWJlcgAAvAEcQmFsYW5jZQAAqQoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlKERlbGVnYXRpbmcMHEJhbGFuY2UBvCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoABQBHGJhbGFuY2W8ARxCYWxhbmNlAAEYdGFyZ2V0AAEkQWNjb3VudElkAAEoY29udmljdGlvbvECAShDb252aWN0aW9uAAEsZGVsZWdhdGlvbnOhCgFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvcqUKAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AACtCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbEKBFMAAAQAtQoBGFZlYzxUPgAAsQoAAAQICQG8ALUKAAACsQoAuQoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQURXJyb3IIBFQABEkAATAoTm90T25nb2luZwAABFBQb2xsIGlzIG5vdCBvbmdvaW5nLiBOb3RWb3RlcgABBKxUaGUgZ2l2ZW4gYWNjb3VudCBkaWQgbm90IHZvdGUgb24gdGhlIHBvbGwuME5vUGVybWlzc2lvbgACBMhUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uLjxOb1Blcm1pc3Npb25ZZXQAAwRZAVRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24gcmlnaHQgbm93IGJ1dCB3aWxsIGRvIGluIHRoZSBmdXR1cmUuREFscmVhZHlEZWxlZ2F0aW5nAAQEiFRoZSBhY2NvdW50IGlzIGFscmVhZHkgZGVsZWdhdGluZy40QWxyZWFkeVZvdGluZwAFCFUBVGhlIGFjY291bnQgY3VycmVudGx5IGhhcyB2b3RlcyBhdHRhY2hlZCB0byBpdCBhbmQgdGhlIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCB1bnRpbKB0aGVzZSBhcmUgcmVtb3ZlZCB0aHJvdWdoIGByZW1vdmVfdm90ZWAuREluc3VmZmljaWVudEZ1bmRzAAYE/FRvbyBoaWdoIGEgYmFsYW5jZSB3YXMgcHJvdmlkZWQgdGhhdCB0aGUgYWNjb3VudCBjYW5ub3QgYWZmb3JkLjROb3REZWxlZ2F0aW5nAAcEoFRoZSBhY2NvdW50IGlzIG5vdCBjdXJyZW50bHkgZGVsZWdhdGluZy4gTm9uc2Vuc2UACASURGVsZWdhdGlvbiB0byBvbmVzZWxmIG1ha2VzIG5vIHNlbnNlLjxNYXhWb3Rlc1JlYWNoZWQACQSATWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgcmVhY2hlZC4sQ2xhc3NOZWVkZWQACgQ5AVRoZSBjbGFzcyBtdXN0IGJlIHN1cHBsaWVkIHNpbmNlIGl0IGlzIG5vdCBlYXNpbHkgZGV0ZXJtaW5hYmxlIGZyb20gdGhlIHN0YXRlLiBCYWRDbGFzcwALBIRUaGUgY2xhc3MgSUQgc3VwcGxpZWQgaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuvQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4UmVmZXJlbmR1bUluZm8gHFRyYWNrSWQBCQE0UnVudGltZU9yaWdpbgENARhNb21lbnQBKBBDYWxsAf0CHEJhbGFuY2UBvBRUYWxseQE5ByRBY2NvdW50SWQBADxTY2hlZHVsZUFkZHJlc3MB3QIBGBxPbmdvaW5nBADBCgGNAVJlZmVyZW5kdW1TdGF0dXM8VHJhY2tJZCwgUnVudGltZU9yaWdpbiwgTW9tZW50LCBDYWxsLCBCYWxhbmNlLCBUYWxseSwKQWNjb3VudElkLCBTY2hlZHVsZUFkZHJlc3MsPgAAACBBcHByb3ZlZAwAKAEYTW9tZW50AADJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAMkKAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgABACBSZWplY3RlZAwAKAEYTW9tZW50AADJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAMkKAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgACACRDYW5jZWxsZWQMACgBGE1vbWVudAAAyQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AADJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAwAgVGltZWRPdXQMACgBGE1vbWVudAAAyQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AADJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4ABAAYS2lsbGVkBAAoARhNb21lbnQABQAAwQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXNAUmVmZXJlbmR1bVN0YXR1cyAcVHJhY2tJZAEJATRSdW50aW1lT3JpZ2luAQ0BGE1vbWVudAEoEENhbGwB/QIcQmFsYW5jZQG8FFRhbGx5ATkHJEFjY291bnRJZAEAPFNjaGVkdWxlQWRkcmVzcwHdAgAsARR0cmFjawkBARxUcmFja0lkAAEYb3JpZ2luDQEBNFJ1bnRpbWVPcmlnaW4AASBwcm9wb3NhbP0CARBDYWxsAAEkZW5hY3RtZW50CQMBUERpc3BhdGNoVGltZTxNb21lbnQ+AAEkc3VibWl0dGVkKAEYTW9tZW50AAFIc3VibWlzc2lvbl9kZXBvc2l0xQoBbERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPgABQGRlY2lzaW9uX2RlcG9zaXTJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AASBkZWNpZGluZ80KAXhPcHRpb248RGVjaWRpbmdTdGF0dXM8TW9tZW50Pj4AARR0YWxseTkHARRUYWxseQABIGluX3F1ZXVlwAEQYm9vbAABFGFsYXJt1QoBhE9wdGlvbjwoTW9tZW50LCBTY2hlZHVsZUFkZHJlc3MpPgAAxQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMcRGVwb3NpdAgkQWNjb3VudElkAQAcQmFsYW5jZQG8AAgBDHdobwABJEFjY291bnRJZAABGGFtb3VudLwBHEJhbGFuY2UAAMkKBBhPcHRpb24EBFQBxQoBCBBOb25lAAAAEFNvbWUEAMUKAAABAADNCgQYT3B0aW9uBARUAdEKAQgQTm9uZQAAABBTb21lBADRCgAAAQAA0QoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4RGVjaWRpbmdTdGF0dXMELEJsb2NrTnVtYmVyASgACAEUc2luY2UoASxCbG9ja051bWJlcgABKGNvbmZpcm1pbmddAgFMT3B0aW9uPEJsb2NrTnVtYmVyPgAA1QoEGE9wdGlvbgQEVAHZCgEIEE5vbmUAAAAQU29tZQQA2QoAAAEAANkKAAAECCjdAgDdCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeEKBFMAAAQA5QoBGFZlYzxUPgAA4QoAAAQIKLwA5QoAAALhCgDpCgAAAu0KAO0KAAAECAkB8QoA8QoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMwVHJhY2tEZXRhaWxzDBxCYWxhbmNlAbwYTW9tZW50ASgQTmFtZQEdBwAkARBuYW1lHQcBEE5hbWUAATBtYXhfZGVjaWRpbmcoAQx1MzIAAUBkZWNpc2lvbl9kZXBvc2l0vAEcQmFsYW5jZQABOHByZXBhcmVfcGVyaW9kKAEYTW9tZW50AAE8ZGVjaXNpb25fcGVyaW9kKAEYTW9tZW50AAE4Y29uZmlybV9wZXJpb2QoARhNb21lbnQAAVBtaW5fZW5hY3RtZW50X3BlcmlvZCgBGE1vbWVudAABMG1pbl9hcHByb3ZhbPUKARRDdXJ2ZQABLG1pbl9zdXBwb3J09QoBFEN1cnZlAAD1CgxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlcxRDdXJ2ZQABDEBMaW5lYXJEZWNyZWFzaW5nDAEYbGVuZ3RosAEcUGVyYmlsbAABFGZsb29ysAEcUGVyYmlsbAABEGNlaWywARxQZXJiaWxsAAAARFN0ZXBwZWREZWNyZWFzaW5nEAEUYmVnaW6wARxQZXJiaWxsAAEMZW5ksAEcUGVyYmlsbAABEHN0ZXCwARxQZXJiaWxsAAEYcGVyaW9ksAEcUGVyYmlsbAABAChSZWNpcHJvY2FsDAEYZmFjdG9y+QoBIEZpeGVkSTY0AAEgeF9vZmZzZXT5CgEgRml4ZWRJNjQAASB5X29mZnNldPkKASBGaXhlZEk2NAACAAD5Cgw0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCBGaXhlZEk2NAAABAD9CgEMaTY0AAD9CgAABQwAAQsMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEVycm9yCARUAARJAAE4KE5vdE9uZ29pbmcAAARoUmVmZXJlbmR1bSBpcyBub3Qgb25nb2luZy4oSGFzRGVwb3NpdAABBLhSZWZlcmVuZHVtJ3MgZGVjaXNpb24gZGVwb3NpdCBpcyBhbHJlYWR5IHBhaWQuIEJhZFRyYWNrAAIEnFRoZSB0cmFjayBpZGVudGlmaWVyIGdpdmVuIHdhcyBpbnZhbGlkLhBGdWxsAAMEMQFUaGVyZSBhcmUgYWxyZWFkeSBhIGZ1bGwgY29tcGxlbWVudCBvZiByZWZlcmVuZGEgaW4gcHJvZ3Jlc3MgZm9yIHRoaXMgdHJhY2suKFF1ZXVlRW1wdHkABASAVGhlIHF1ZXVlIG9mIHRoZSB0cmFjayBpcyBlbXB0eS40QmFkUmVmZXJlbmR1bQAFBORUaGUgcmVmZXJlbmR1bSBpbmRleCBwcm92aWRlZCBpcyBpbnZhbGlkIGluIHRoaXMgY29udGV4dC4sTm90aGluZ1RvRG8ABgSsVGhlcmUgd2FzIG5vdGhpbmcgdG8gZG8gaW4gdGhlIGFkdmFuY2VtZW50LhxOb1RyYWNrAAcEoE5vIHRyYWNrIGV4aXN0cyBmb3IgdGhlIHByb3Bvc2FsIG9yaWdpbi4oVW5maW5pc2hlZAAIBAEBQW55IGRlcG9zaXQgY2Fubm90IGJlIHJlZnVuZGVkIHVudGlsIGFmdGVyIHRoZSBkZWNpc2lvbiBpcyBvdmVyLjBOb1Blcm1pc3Npb24ACQSoVGhlIGRlcG9zaXQgcmVmdW5kZXIgaXMgbm90IHRoZSBkZXBvc2l0b3IuJE5vRGVwb3NpdAAKBMxUaGUgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgc2luY2Ugbm9uZSB3YXMgbWFkZS4kQmFkU3RhdHVzAAsE0FRoZSByZWZlcmVuZHVtIHN0YXR1cyBpcyBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbi5AUHJlaW1hZ2VOb3RFeGlzdAAMBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuhFByZWltYWdlU3RvcmVkV2l0aERpZmZlcmVudExlbmd0aAANBBUBVGhlIHByZWltYWdlIGlzIHN0b3JlZCB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIHRoZSBvbmUgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgULDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFcnJvcgQEVAABFExVbmF2YWlsYWJsZVByZUltYWdlAAAEyFRoZSBwcmVpbWFnZSBvZiB0aGUgY2FsbCBoYXNoIGNvdWxkIG5vdCBiZSBsb2FkZWQuPFVuZGVjb2RhYmxlQ2FsbAABBHhUaGUgY2FsbCBjb3VsZCBub3QgYmUgZGVjb2RlZC5gSW52YWxpZENhbGxXZWlnaHRXaXRuZXNzAAIE7FRoZSB3ZWlnaHQgb2YgdGhlIGRlY29kZWQgY2FsbCB3YXMgaGlnaGVyIHRoYW4gdGhlIHdpdG5lc3MuUENhbGxJc05vdFdoaXRlbGlzdGVkAAMEdFRoZSBjYWxsIHdhcyBub3Qgd2hpdGVsaXN0ZWQuWENhbGxBbHJlYWR5V2hpdGVsaXN0ZWQABASgVGhlIGNhbGwgd2FzIGFscmVhZHkgd2hpdGVsaXN0ZWQ7IE5vLU9wLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4JCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASwEUwAABACVAgEYVmVjPFQ+AAANCwAABAgA/QUAEQsIRHBhbGxldF9jb2xsZWN0aXZlFFZvdGVzCCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoABQBFGluZGV4KAE0UHJvcG9zYWxJbmRleAABJHRocmVzaG9sZCgBLE1lbWJlckNvdW50AAEQYXllc8QBOFZlYzxBY2NvdW50SWQ+AAEQbmF5c8QBOFZlYzxBY2NvdW50SWQ+AAEMZW5kKAEsQmxvY2tOdW1iZXIAABULDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQURXJyb3IIBFQABEkAATAkTm90TWVtYmVyAAAEXEFjY291bnQgaXMgbm90IGEgbWVtYmVyRER1cGxpY2F0ZVByb3Bvc2FsAAEEfER1cGxpY2F0ZSBwcm9wb3NhbHMgbm90IGFsbG93ZWQ8UHJvcG9zYWxNaXNzaW5nAAIETFByb3Bvc2FsIG11c3QgZXhpc3QoV3JvbmdJbmRleAADBEBNaXNtYXRjaGVkIGluZGV4NER1cGxpY2F0ZVZvdGUABARYRHVwbGljYXRlIHZvdGUgaWdub3JlZEhBbHJlYWR5SW5pdGlhbGl6ZWQABQSATWVtYmVycyBhcmUgYWxyZWFkeSBpbml0aWFsaXplZCEgVG9vRWFybHkABgQBAVRoZSBjbG9zZSBjYWxsIHdhcyBtYWRlIHRvbyBlYXJseSwgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZy5AVG9vTWFueVByb3Bvc2FscwAHBPxUaGVyZSBjYW4gb25seSBiZSBhIG1heGltdW0gb2YgYE1heFByb3Bvc2Fsc2AgYWN0aXZlIHByb3Bvc2Fscy5MV3JvbmdQcm9wb3NhbFdlaWdodAAIBNBUaGUgZ2l2ZW4gd2VpZ2h0IGJvdW5kIGZvciB0aGUgcHJvcG9zYWwgd2FzIHRvbyBsb3cuTFdyb25nUHJvcG9zYWxMZW5ndGgACQTQVGhlIGdpdmVuIGxlbmd0aCBib3VuZCBmb3IgdGhlIHByb3Bvc2FsIHdhcyB0b28gbG93LlRQcmltZUFjY291bnROb3RNZW1iZXIACgR0UHJpbWUgYWNjb3VudCBpcyBub3QgYSBtZW1iZXI4UHJvcG9zYWxBY3RpdmUACwRkUHJvcG9zYWwgaXMgc3RpbGwgYWN0aXZlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4ZCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASwEUwAABACVAgEYVmVjPFQ+AAAdCwxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0FEVycm9yCARUAARJAAEwJE5vdE1lbWJlcgAABFxBY2NvdW50IGlzIG5vdCBhIG1lbWJlckREdXBsaWNhdGVQcm9wb3NhbAABBHxEdXBsaWNhdGUgcHJvcG9zYWxzIG5vdCBhbGxvd2VkPFByb3Bvc2FsTWlzc2luZwACBExQcm9wb3NhbCBtdXN0IGV4aXN0KFdyb25nSW5kZXgAAwRATWlzbWF0Y2hlZCBpbmRleDREdXBsaWNhdGVWb3RlAAQEWER1cGxpY2F0ZSB2b3RlIGlnbm9yZWRIQWxyZWFkeUluaXRpYWxpemVkAAUEgE1lbWJlcnMgYXJlIGFscmVhZHkgaW5pdGlhbGl6ZWQhIFRvb0Vhcmx5AAYEAQFUaGUgY2xvc2UgY2FsbCB3YXMgbWFkZSB0b28gZWFybHksIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB2b3RpbmcuQFRvb01hbnlQcm9wb3NhbHMABwT8VGhlcmUgY2FuIG9ubHkgYmUgYSBtYXhpbXVtIG9mIGBNYXhQcm9wb3NhbHNgIGFjdGl2ZSBwcm9wb3NhbHMuTFdyb25nUHJvcG9zYWxXZWlnaHQACATQVGhlIGdpdmVuIHdlaWdodCBib3VuZCBmb3IgdGhlIHByb3Bvc2FsIHdhcyB0b28gbG93LkxXcm9uZ1Byb3Bvc2FsTGVuZ3RoAAkE0FRoZSBnaXZlbiBsZW5ndGggYm91bmQgZm9yIHRoZSBwcm9wb3NhbCB3YXMgdG9vIGxvdy5UUHJpbWVBY2NvdW50Tm90TWVtYmVyAAoEdFByaW1lIGFjY291bnQgaXMgbm90IGEgbWVtYmVyOFByb3Bvc2FsQWN0aXZlAAsEZFByb3Bvc2FsIGlzIHN0aWxsIGFjdGl2ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuIQsIPHBhbGxldF90cmVhc3VyeSBQcm9wb3NhbAgkQWNjb3VudElkAQAcQmFsYW5jZQG8ABABIHByb3Bvc2VyAAEkQWNjb3VudElkAAEUdmFsdWW8ARxCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASRBY2NvdW50SWQAARBib25kvAEcQmFsYW5jZQAAJQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEoBFMAAAQAKQsBGFZlYzxUPgAAKQsAAAIoAC0LCDxwYWxsZXRfdHJlYXN1cnksU3BlbmRTdGF0dXMUJEFzc2V0S2luZAElAzBBc3NldEJhbGFuY2UBvCxCZW5lZmljaWFyeQEALEJsb2NrTnVtYmVyASgkUGF5bWVudElkAf0FABgBKGFzc2V0X2tpbmQlAwEkQXNzZXRLaW5kAAEYYW1vdW50vAEwQXNzZXRCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASxCZW5lZmljaWFyeQABKHZhbGlkX2Zyb20oASxCbG9ja051bWJlcgABJGV4cGlyZV9hdCgBLEJsb2NrTnVtYmVyAAEYc3RhdHVzMQsBXFBheW1lbnRTdGF0ZTxQYXltZW50SWQ+AAAxCwg8cGFsbGV0X3RyZWFzdXJ5MFBheW1lbnRTdGF0ZQQISWQB/QUBDBxQZW5kaW5nAAAAJEF0dGVtcHRlZAQBCGlk/QUBCElkAAEAGEZhaWxlZAACAAA1Cww0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcm1pbGwAAAQAKAEMdTMyAAA5Cwg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABAC1AQEcW3U4OyA4XQAAPQsMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXJyb3IIBFQABEkAASwwSW52YWxpZEluZGV4AAAErE5vIHByb3Bvc2FsLCBib3VudHkgb3Igc3BlbmQgYXQgdGhhdCBpbmRleC5AVG9vTWFueUFwcHJvdmFscwABBIBUb28gbWFueSBhcHByb3ZhbHMgaW4gdGhlIHF1ZXVlLlhJbnN1ZmZpY2llbnRQZXJtaXNzaW9uAAIIRQFUaGUgc3BlbmQgb3JpZ2luIGlzIHZhbGlkIGJ1dCB0aGUgYW1vdW50IGl0IGlzIGFsbG93ZWQgdG8gc3BlbmQgaXMgbG93ZXIgdGhhbiB0aGVMYW1vdW50IHRvIGJlIHNwZW50LkxQcm9wb3NhbE5vdEFwcHJvdmVkAAMEfFByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC5YRmFpbGVkVG9Db252ZXJ0QmFsYW5jZQAEBFEBVGhlIGJhbGFuY2Ugb2YgdGhlIGFzc2V0IGtpbmQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHRoZSBiYWxhbmNlIG9mIHRoZSBuYXRpdmUgYXNzZXQuMFNwZW5kRXhwaXJlZAAFBLBUaGUgc3BlbmQgaGFzIGV4cGlyZWQgYW5kIGNhbm5vdCBiZSBjbGFpbWVkLixFYXJseVBheW91dAAGBKRUaGUgc3BlbmQgaXMgbm90IHlldCBlbGlnaWJsZSBmb3IgcGF5b3V0LkBBbHJlYWR5QXR0ZW1wdGVkAAcEnFRoZSBwYXltZW50IGhhcyBhbHJlYWR5IGJlZW4gYXR0ZW1wdGVkLixQYXlvdXRFcnJvcgAIBMxUaGVyZSB3YXMgc29tZSBpc3N1ZSB3aXRoIHRoZSBtZWNoYW5pc20gb2YgcGF5bWVudC4wTm90QXR0ZW1wdGVkAAkEpFRoZSBwYXlvdXQgd2FzIG5vdCB5ZXQgYXR0ZW1wdGVkL2NsYWltZWQuMEluY29uY2x1c2l2ZQAKBMRUaGUgcGF5bWVudCBoYXMgbmVpdGhlciBmYWlsZWQgbm9yIHN1Y2NlZWRlZCB5ZXQuBHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC5BCwxgcGFsbGV0X2Nyb3dkbG9hbl9yZXdhcmRzGHBhbGxldChSZXdhcmRJbmZvBARUAAAMATB0b3RhbF9yZXdhcmS8ATBCYWxhbmNlT2Y8VD4AAThjbGFpbWVkX3Jld2FyZLwBMEJhbGFuY2VPZjxUPgABbGNvbnRyaWJ1dGVkX3JlbGF5X2FkZHJlc3Nlc0ULAWxWZWM8VDo6UmVsYXlDaGFpbkFjY291bnRJZD4AAEULAAACMABJCwxgcGFsbGV0X2Nyb3dkbG9hbl9yZXdhcmRzGHBhbGxldBRFcnJvcgQEVAABPERBbHJlYWR5QXNzb2NpYXRlZAAACFEBVXNlciB0cnlpbmcgdG8gYXNzb2NpYXRlIGEgbmF0aXZlIGlkZW50aXR5IHdpdGggYSByZWxheSBjaGFpbiBpZGVudGl0eSBmb3IgcG9zdGVyaW9yDQFyZXdhcmQgY2xhaW1pbmcgcHJvdmlkZWQgYW4gYWxyZWFkeSBhc3NvY2lhdGVkIHJlbGF5IGNoYWluIGlkZW50aXR5SEJhdGNoQmV5b25kRnVuZFBvdAABBBEBVHJ5aW5nIHRvIGludHJvZHVjZSBhIGJhdGNoIHRoYXQgZ29lcyBiZXlvbmQgdGhlIGxpbWl0cyBvZiB0aGUgZnVuZHNURmlyc3RDbGFpbUFscmVhZHlEb25lAAIEYEZpcnN0IGNsYWltIGFscmVhZHkgZG9uZUxSZXdhcmROb3RIaWdoRW5vdWdoAAME+FRoZSBjb250cmlidXRpb24gaXMgbm90IGhpZ2ggZW5vdWdoIHRvIGJlIGVsaWdpYmxlIGZvciByZXdhcmRzVEludmFsaWRDbGFpbVNpZ25hdHVyZQAECFEBVXNlciB0cnlpbmcgdG8gYXNzb2NpYXRlIGEgbmF0aXZlIGlkZW50aXR5IHdpdGggYSByZWxheSBjaGFpbiBpZGVudGl0eSBmb3IgcG9zdGVyaW9yqHJld2FyZCBjbGFpbWluZyBwcm92aWRlZCBhIHdyb25nIHNpZ25hdHVyZWRJbnZhbGlkRnJlZUNsYWltU2lnbmF0dXJlAAUEHQFVc2VyIHRyeWluZyB0byBjbGFpbSB0aGUgZmlyc3QgZnJlZSByZXdhcmQgcHJvdmlkZWQgdGhlIHdyb25nIHNpZ25hdHVyZUROb0Fzc29jaWF0ZWRDbGFpbQAGDFUBVXNlciB0cnlpbmcgdG8gY2xhaW0gYW4gYXdhcmQgZGlkIG5vdCBoYXZlIGFuIGNsYWltIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhpcyBtYXkgbWVhblUBdGhleSBkaWQgbm90IGNvbnRyaWJ1dGUgdG8gdGhlIGNyb3dkbG9hbiwgb3IgdGhleSBoYXZlIG5vdCB5ZXQgYXNzb2NpYXRlZCBhIG5hdGl2ZSBpZFx3aXRoIHRoZWlyIGNvbnRyaWJ1dGlvblRSZXdhcmRzQWxyZWFkeUNsYWltZWQABwhBAVVzZXIgdHJ5aW5nIHRvIGNsYWltIHJld2FyZHMgaGFzIGFscmVhZHkgY2xhaW1lZCBhbGwgcmV3YXJkcyBhc3NvY2lhdGVkIHdpdGggaXRzZGlkZW50aXR5IGFuZCBjb250cmlidXRpb25sUmV3YXJkVmVjQWxyZWFkeUluaXRpYWxpemVkAAgEnFJld2FyZCB2ZWMgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZHxSZXdhcmRWZWNOb3RGdWxseUluaXRpYWxpemVkWWV0AAkEtFJld2FyZCB2ZWMgaGFzIG5vdCB5ZXQgYmVlbiBmdWxseSBpbml0aWFsaXplZFRSZXdhcmRzRG9Ob3RNYXRjaEZ1bmQACgSgUmV3YXJkcyBzaG91bGQgbWF0Y2ggZnVuZHMgb2YgdGhlIHBhbGxldExUb29NYW55Q29udHJpYnV0b3JzAAsE0EluaXRpYWxpemVfcmV3YXJkX3ZlYyByZWNlaXZlZCB0b28gbWFueSBjb250cmlidXRvcnNUVmVzdGluZ1BlcmlvZE5vblZhbGlkAAwEkFByb3ZpZGVkIHZlc3RpbmcgcGVyaW9kIGlzIG5vdCB2YWxpZHROb25Db250cmlidXRlZEFkZHJlc3NQcm92aWRlZAANBPhVc2VyIHByb3ZpZGVkIGEgc2lnbmF0dXJlIGZyb20gYSBub24tY29udHJpYnV0b3IgcmVsYXkgYWNjb3VudHxJbnN1ZmZpY2llbnROdW1iZXJPZlZhbGlkUHJvb2ZzAA4EMQFVc2VyIHN1Ym1pdHRlZCBhbiB1bnNpZmZpY2llbnQgbnVtYmVyIG9mIHByb29mcyB0byBjaGFuZ2UgdGhlIHJld2FyZCBhZGRyZXNzBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lk0LDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfc2V0PEJvdW5kZWRCVHJlZVNldAgEVAGQBFMAAAQAUQsBLEJUcmVlU2V0PFQ+AABRCwQgQlRyZWVTZXQEBFQBkAAEAFULAAAAVQsAAAKQAFkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBXQsEUwAABABlCwEYVmVjPFQ+AABdCwhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZVhPdXRib3VuZENoYW5uZWxEZXRhaWxzAAAUASRyZWNpcGllbnSQARhQYXJhSWQAARRzdGF0ZWELATRPdXRib3VuZFN0YXRlAAE0c2lnbmFsc19leGlzdMABEGJvb2wAASxmaXJzdF9pbmRleAkBAQx1MTYAAShsYXN0X2luZGV4CQEBDHUxNgAAYQsIZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU0T3V0Ym91bmRTdGF0ZQABCAhPawAAACRTdXNwZW5kZWQAAQAAZQsAAAJdCwBpCwAABAiQCQEAbQsMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABxCwhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTxRdWV1ZUNvbmZpZ0RhdGEAAAwBRHN1c3BlbmRfdGhyZXNob2xkKAEMdTMyAAE4ZHJvcF90aHJlc2hvbGQoAQx1MzIAAUByZXN1bWVfdGhyZXNob2xkKAEMdTMyAAB1CwxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXJyb3IEBFQAARQ4QmFkUXVldWVDb25maWcAAAQRAVNldHRpbmcgdGhlIHF1ZXVlIGNvbmZpZyBmYWlsZWQgc2luY2Ugb25lIG9mIGl0cyB2YWx1ZXMgd2FzIGludmFsaWQuQEFscmVhZHlTdXNwZW5kZWQAAQSMVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHN1c3BlbmRlZC44QWxyZWFkeVJlc3VtZWQAAgSEVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHJlc3VtZWQudFRvb01hbnlBY3RpdmVPdXRib3VuZENoYW5uZWxzAAMEsFRoZXJlIGFyZSB0b28gbWFueSBhY3RpdmUgb3V0Ym91bmQgY2hhbm5lbHMuGFRvb0JpZwAEBFxUaGUgbWVzc2FnZSBpcyB0b28gYmlnLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC55CwwocGFsbGV0X3hjbRhwYWxsZXQsUXVlcnlTdGF0dXMELEJsb2NrTnVtYmVyASgBDBxQZW5kaW5nEAEkcmVzcG9uZGVyQQMBRFZlcnNpb25lZExvY2F0aW9uAAFMbWF5YmVfbWF0Y2hfcXVlcmllcn0LAWRPcHRpb248VmVyc2lvbmVkTG9jYXRpb24+AAEwbWF5YmVfbm90aWZ5gQsBQE9wdGlvbjwodTgsIHU4KT4AARx0aW1lb3V0KAEsQmxvY2tOdW1iZXIAAAA8VmVyc2lvbk5vdGlmaWVyCAEYb3JpZ2luQQMBRFZlcnNpb25lZExvY2F0aW9uAAEkaXNfYWN0aXZlwAEQYm9vbAABABRSZWFkeQgBIHJlc3BvbnNliQsBRFZlcnNpb25lZFJlc3BvbnNlAAEIYXQoASxCbG9ja051bWJlcgACAAB9CwQYT3B0aW9uBARUAUEDAQgQTm9uZQAAABBTb21lBABBAwAAAQAAgQsEGE9wdGlvbgQEVAGFCwEIEE5vbmUAAAAQU29tZQQAhQsAAAEAAIULAAAECAgIAIkLCAx4Y21EVmVyc2lvbmVkUmVzcG9uc2UAAQwIVjMEALUDATB2Mzo6UmVzcG9uc2UAAwAIVjQEACEEATB2NDo6UmVzcG9uc2UABAAIVjUEAG0EATB2NTo6UmVzcG9uc2UABQAAjQsAAAQIKEEDAJELAAAEDBhxASgAlQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGZCwRTAAAEAJ0LARhWZWM8VD4AAJkLAAAECEEDKACdCwAAApkLAKELDChwYWxsZXRfeGNtGHBhbGxldFRWZXJzaW9uTWlncmF0aW9uU3RhZ2UAARBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAABcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQBQTm90aWZ5Q3VycmVudFRhcmdldHMEAIkFATxPcHRpb248VmVjPHU4Pj4AAgBoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAwAApQsAAAQMKAD5BACpCwwocGFsbGV0X3hjbRhwYWxsZXRoUmVtb3RlTG9ja2VkRnVuZ2libGVSZWNvcmQISENvbnN1bWVySWRlbnRpZmllcgH9BTBNYXhDb25zdW1lcnMAABABGGFtb3VudLwBEHUxMjgAARRvd25lckEDAURWZXJzaW9uZWRMb2NhdGlvbgABGGxvY2tlckEDAURWZXJzaW9uZWRMb2NhdGlvbgABJGNvbnN1bWVyc60LAdBCb3VuZGVkVmVjPChDb25zdW1lcklkZW50aWZpZXIsIHUxMjgpLCBNYXhDb25zdW1lcnM+AACtCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbELBFMAAAQAtQsBGFZlYzxUPgAAsQsAAAQI/QW8ALULAAACsQsAuQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG9CwRTAAAEAMELARhWZWM8VD4AAL0LAAAECLxBAwDBCwAAAr0LAMULCChwYWxsZXRfeGNtWEF1dGhvcml6ZWRBbGlhc2VzRW50cnkIGFRpY2tldAHJCwxNQVgBzQsACAEgYWxpYXNlcnPRCwF4Qm91bmRlZFZlYzxPcmlnaW5BbGlhc2VyLCBNQVg+AAEYdGlja2V0yQsBGFRpY2tldAAAyQsQNGZyYW1lX3N1cHBvcnQYdHJhaXRzHHN0b3JhZ2UgRGlzYWJsZWQAAAAAzQsMKHBhbGxldF94Y20YcGFsbGV0UE1heEF1dGhvcml6ZWRBbGlhc2VzAAAAANELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB1QsEUwAABADZCwEYVmVjPFQ+AADVCwxAeGNtX3J1bnRpbWVfYXBpc0hhdXRob3JpemVkX2FsaWFzZXM0T3JpZ2luQWxpYXNlcgAACAEgbG9jYXRpb25BAwFEVmVyc2lvbmVkTG9jYXRpb24AARhleHBpcnn9BAEsT3B0aW9uPHU2ND4AANkLAAAC1QsA3QsMKHBhbGxldF94Y20YcGFsbGV0FEVycm9yBARUAAFwLFVucmVhY2hhYmxlAAAIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuLFNlbmRGYWlsdXJlAAEIQQFUaGVyZSB3YXMgc29tZSBvdGhlciBpc3N1ZSAoaS5lLiBub3QgdG8gZG8gd2l0aCByb3V0aW5nKSBpbiBzZW5kaW5nIHRoZSBtZXNzYWdlLshQZXJoYXBzIGEgbGFjayBvZiBzcGFjZSBmb3IgYnVmZmVyaW5nIHRoZSBtZXNzYWdlLiBGaWx0ZXJlZAACBJxUaGUgbWVzc2FnZSBleGVjdXRpb24gZmFpbHMgdGhlIGZpbHRlci5IVW53ZWlnaGFibGVNZXNzYWdlAAMEtFRoZSBtZXNzYWdlJ3Mgd2VpZ2h0IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLmBEZXN0aW5hdGlvbk5vdEludmVydGlibGUABATcVGhlIGRlc3RpbmF0aW9uIGBMb2NhdGlvbmAgcHJvdmlkZWQgY2Fubm90IGJlIGludmVydGVkLhRFbXB0eQAFBIBUaGUgYXNzZXRzIHRvIGJlIHNlbnQgYXJlIGVtcHR5LjhDYW5ub3RSZWFuY2hvcgAGBDUBQ291bGQgbm90IHJlLWFuY2hvciB0aGUgYXNzZXRzIHRvIGRlY2xhcmUgdGhlIGZlZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi40VG9vTWFueUFzc2V0cwAHBMRUb28gbWFueSBhc3NldHMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuNEludmFsaWRPcmlnaW4ACAR4T3JpZ2luIGlzIGludmFsaWQgZm9yIHNlbmRpbmcuKEJhZFZlcnNpb24ACQQhAVRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlIGludGVycHJldGVkLixCYWRMb2NhdGlvbgAKCEEBVGhlIGdpdmVuIGxvY2F0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIChlLmcuIGJlY2F1c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZCBpbiB0aGVgZGVzaXJlZCB2ZXJzaW9uIG9mIFhDTSkuOE5vU3Vic2NyaXB0aW9uAAsEvFRoZSByZWZlcmVuY2VkIHN1YnNjcmlwdGlvbiBjb3VsZCBub3QgYmUgZm91bmQuREFscmVhZHlTdWJzY3JpYmVkAAwEEQFUaGUgbG9jYXRpb24gaXMgaW52YWxpZCBzaW5jZSBpdCBhbHJlYWR5IGhhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHVzLlhDYW5ub3RDaGVja091dFRlbGVwb3J0AA0EKQFDb3VsZCBub3QgY2hlY2stb3V0IHRoZSBhc3NldHMgZm9yIHRlbGVwb3J0YXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluLihMb3dCYWxhbmNlAA4EQQFUaGUgb3duZXIgZG9lcyBub3Qgb3duIChhbGwpIG9mIHRoZSBhc3NldCB0aGF0IHRoZXkgd2lzaCB0byBkbyB0aGUgb3BlcmF0aW9uIG9uLjBUb29NYW55TG9ja3MADwTAVGhlIGFzc2V0IG93bmVyIGhhcyB0b28gbWFueSBsb2NrcyBvbiB0aGUgYXNzZXQuTEFjY291bnROb3RTb3ZlcmVpZ24AEAQxAVRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBhbiBpZGVudGlmaWFibGUgc292ZXJlaWduIGFjY291bnQgZm9yIGFueSBsb2NhdGlvbi4oRmVlc05vdE1ldAARBCkBVGhlIG9wZXJhdGlvbiByZXF1aXJlZCBmZWVzIHRvIGJlIHBhaWQgd2hpY2ggdGhlIGluaXRpYXRvciBjb3VsZCBub3QgbWVldC4wTG9ja05vdEZvdW5kABIE9EEgcmVtb3RlIGxvY2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZC4USW5Vc2UAEwRJAVRoZSB1bmxvY2sgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIGNvbnN1bWVycyBvZiB0aGUgbG9jay5oSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAFQTwSW52YWxpZCBhc3NldCwgcmVzZXJ2ZSBjaGFpbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgaXQueEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQAWBEUBSW52YWxpZCBhc3NldCwgZG8gbm90IHN1cHBvcnQgcmVtb3RlIGFzc2V0IHJlc2VydmVzIHdpdGggZGlmZmVyZW50IGZlZXMgcmVzZXJ2ZXMuPFRvb01hbnlSZXNlcnZlcwAXBEkBVG9vIG1hbnkgYXNzZXRzIHdpdGggZGlmZmVyZW50IHJlc2VydmUgbG9jYXRpb25zIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLmBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAGAR8TG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlLmBUb29NYW55QXV0aG9yaXplZEFsaWFzZXMAGQS4VG9vIG1hbnkgbG9jYXRpb25zIGF1dGhvcml6ZWQgdG8gYWxpYXMgb3JpZ2luLjRFeHBpcmVzSW5QYXN0ABoEjEV4cGlyeSBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuNEFsaWFzTm90Rm91bmQAGwTQVGhlIGFsaWFzIHRvIHJlbW92ZSBhdXRob3JpemF0aW9uIGZvciB3YXMgbm90IGZvdW5kLoRMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3IIARRpbmRleAgBQEluc3RydWN0aW9uSW5kZXgAARRlcnJvcuELAThFeGVjdXRpb25FcnJvcgAcCDUBTG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlIHdpdGggdGhlIGFjdHVhbCBYQ00gZXJyb3IgYW5kIHRoZSBpbmRleCBvZiB0aGWIaW5zdHJ1Y3Rpb24gdGhhdCBjYXVzZWQgdGhlIGVycm9yLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7hCwwocGFsbGV0X3hjbRhlcnJvcnM4RXhlY3V0aW9uRXJyb3IAAaQgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiADRUb29NYW55QXNzZXRzACMATFVuaGFuZGxlZFhjbVZlcnNpb24AJABIV2VpZ2h0TGltaXRSZWFjaGVkACUAHEJhcnJpZXIAJgBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAnAERFeGNlZWRzU3RhY2tMaW1pdAAoAADlCwxUcGFsbGV0X3hjbV90cmFuc2FjdG9yNHJlbGF5X2luZGljZXNEUmVsYXlDaGFpbkluZGljZXMAAEgBHHN0YWtpbmcIAQh1OAABHHV0aWxpdHkIAQh1OAABEGhybXAIAQh1OAABEGJvbmQIAQh1OAABKGJvbmRfZXh0cmEIAQh1OAABGHVuYm9uZAgBCHU4AAFEd2l0aGRyYXdfdW5ib25kZWQIAQh1OAABIHZhbGlkYXRlCAEIdTgAASBub21pbmF0ZQgBCHU4AAEUY2hpbGwIAQh1OAABJHNldF9wYXllZQgBCHU4AAE4c2V0X2NvbnRyb2xsZXIIAQh1OAABGHJlYm9uZAgBCHU4AAE0YXNfZGVyaXZhdGl2ZQgBCHU4AAFEaW5pdF9vcGVuX2NoYW5uZWwIAQh1OAABTGFjY2VwdF9vcGVuX2NoYW5uZWwIAQh1OAABNGNsb3NlX2NoYW5uZWwIAQh1OAABTGNhbmNlbF9vcGVuX3JlcXVlc3QIAQh1OAAA6QsMVHBhbGxldF94Y21fdHJhbnNhY3RvchhwYWxsZXQURXJyb3IEBFQAAWhMSW5kZXhBbHJlYWR5Q2xhaW1lZAAAADhVbmNsYWltZWRJbmRleAABACBOb3RPd25lcgACAEhVbndlaWdoYWJsZU1lc3NhZ2UAAwA4Q2Fubm90UmVhbmNob3IABABEQXNzZXRIYXNOb1Jlc2VydmUABQAsSW52YWxpZERlc3QABgBUTm90Q3Jvc3NDaGFpblRyYW5zZmVyAAcAeEFzc2V0SXNOb3RSZXNlcnZlSW5EZXN0aW5hdGlvbgAIAGBEZXN0aW5hdGlvbk5vdEludmVydGlibGUACQA8RXJyb3JEZWxpdmVyaW5nAAoAjERpc3BhdGNoV2VpZ2h0QmlnZ2VyVGhhblRvdGFsV2VpZ2h0AAsAOFdlaWdodE92ZXJmbG93AAwAOEFtb3VudE92ZXJmbG93AA0AUFRyYW5zYWN0b3JJbmZvTm90U2V0AA4AhE5vdENyb3NzQ2hhaW5UcmFuc2ZlcmFibGVDdXJyZW5jeQAPADxYY21FeGVjdXRlRXJyb3IAEAAoQmFkVmVyc2lvbgARAGBNYXhXZWlnaHRUcmFuc2FjdFJlYWNoZWQAEgBUVW5hYmxlVG9XaXRoZHJhd0Fzc2V0ABMAmFNpZ25lZFRyYW5zYWN0Tm90QWxsb3dlZEZvckRlc3RpbmF0aW9uABUAdEZhaWxlZE11bHRpTG9jYXRpb25Ub0p1bmN0aW9uABYAZEhybXBIYW5kbGVyTm90SW1wbGVtZW50ZWQAFwA4VG9vTXVjaEZlZVVzZWQAGAA8RXJyb3JWYWxpZGF0aW5nABkAiFJlZnVuZE5vdFN1cHBvcnRlZFdpdGhUcmFuc2FjdEluZm8AGgAEDQFBbiBlcnJvciB0aGF0IGNhbiBvY2N1ciB3aGlsZSBleGVjdXRpbmcgdGhlIG1hcHBpbmcgcGFsbGV0J3MgbG9naWMu7QsMTHBhbGxldF9ldGhlcmV1bV94Y20YcGFsbGV0FEVycm9yBARUAAEEdEV0aGVyZXVtWGNtRXhlY3V0aW9uU3VzcGVuZGVkAAAEmFhjbSB0byBFdGhlcmV1bSBleGVjdXRpb24gaXMgc3VzcGVuZGVkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvELCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZSRCb29rU3RhdGUENE1lc3NhZ2VPcmlnaW4BWQUAGAEUYmVnaW4oASRQYWdlSW5kZXgAAQxlbmQoASRQYWdlSW5kZXgAARRjb3VudCgBJFBhZ2VJbmRleAABQHJlYWR5X25laWdoYm91cnP1CwGET3B0aW9uPE5laWdoYm91cnM8TWVzc2FnZU9yaWdpbj4+AAE0bWVzc2FnZV9jb3VudBgBDHU2NAABEHNpemUYAQx1NjQAAPULBBhPcHRpb24EBFQB+QsBCBBOb25lAAAAEFNvbWUEAPkLAAABAAD5CwhQcGFsbGV0X21lc3NhZ2VfcXVldWUoTmVpZ2hib3VycwQ0TWVzc2FnZU9yaWdpbgFZBQAIARBwcmV2WQUBNE1lc3NhZ2VPcmlnaW4AARBuZXh0WQUBNE1lc3NhZ2VPcmlnaW4AAP0LAAAECFkFKAABDAhQcGFsbGV0X21lc3NhZ2VfcXVldWUQUGFnZQgQU2l6ZQEoIEhlYXBTaXplAAAYASRyZW1haW5pbmcoARBTaXplAAE4cmVtYWluaW5nX3NpemUoARBTaXplAAEsZmlyc3RfaW5kZXgoARBTaXplAAEUZmlyc3QoARBTaXplAAEQbGFzdCgBEFNpemUAARBoZWFwBQwBnEJvdW5kZWRWZWM8dTgsIEludG9VMzI8SGVhcFNpemUsIFNpemU+PgAABQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAAJDAxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEVycm9yBARUAAEkLE5vdFJlYXBhYmxlAAAISQFQYWdlIGlzIG5vdCByZWFwYWJsZSBiZWNhdXNlIGl0IGhhcyBpdGVtcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIGFuZCBpcyBub3Qgb2xkHGVub3VnaC4YTm9QYWdlAAEEhFBhZ2UgdG8gYmUgcmVhcGVkIGRvZXMgbm90IGV4aXN0LiROb01lc3NhZ2UAAgSoVGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBjb3VsZCBub3QgYmUgZm91bmQuQEFscmVhZHlQcm9jZXNzZWQAAwQBAVRoZSBtZXNzYWdlIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZCBhZ2Fpbi4YUXVldWVkAAQErFRoZSBtZXNzYWdlIGlzIHF1ZXVlZCBmb3IgZnV0dXJlIGV4ZWN1dGlvbi5ISW5zdWZmaWNpZW50V2VpZ2h0AAUEGQFUaGVyZSBpcyB0ZW1wb3JhcmlseSBub3QgZW5vdWdoIHdlaWdodCB0byBjb250aW51ZSBzZXJ2aWNpbmcgbWVzc2FnZXMuYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQAGEKhUaGlzIG1lc3NhZ2UgaXMgdGVtcG9yYXJpbHkgdW5wcm9jZXNzYWJsZS4AWQFTdWNoIGVycm9ycyBhcmUgZXhwZWN0ZWQsIGJ1dCBub3QgZ3VhcmFudGVlZCwgdG8gcmVzb2x2ZSB0aGVtc2VsdmVzIGV2ZW50dWFsbHkgdGhyb3VnaCRyZXRyeWluZy4sUXVldWVQYXVzZWQABwzsVGhlIHF1ZXVlIGlzIHBhdXNlZCBhbmQgbm8gbWVzc2FnZSBjYW4gYmUgZXhlY3V0ZWQgZnJvbSBpdC4AHQFUaGlzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgYW5kIG1heSByZXNvbHZlIGluIHRoZSBmdXR1cmUgYnkgcmUtdHJ5aW5nLkxSZWN1cnNpdmVEaXNhbGxvd2VkAAgEMQFBbm90aGVyIGNhbGwgaXMgaW4gcHJvZ3Jlc3MgYW5kIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgdGhpcyBjYWxsIGNhbiBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lg0MAAAECLwRDAARDAh4cGFsbGV0X21vb25iZWFtX2ZvcmVpZ25fYXNzZXRzLEFzc2V0U3RhdHVzAAEMGEFjdGl2ZQAAAFxGcm96ZW5YY21EZXBvc2l0QWxsb3dlZAABAGRGcm96ZW5YY21EZXBvc2l0Rm9yYmlkZGVuAAIAABUMDHhwYWxsZXRfbW9vbmJlYW1fZm9yZWlnbl9hc3NldHMYcGFsbGV0TEFzc2V0RGVwb3NpdERldGFpbHMEBFQBGQwACAE8ZGVwb3NpdF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdLwBMEJhbGFuY2VPZjxUPgAAGQwIQG1vb25iZWFtX3J1bnRpbWUcUnVudGltZQAAAAAdDAAABAi8GQEAIQwMeHBhbGxldF9tb29uYmVhbV9mb3JlaWduX2Fzc2V0cxhwYWxsZXQURXJyb3IEBFQAAVhIQXNzZXRBbHJlYWR5RXhpc3RzAAAASEFzc2V0QWxyZWFkeUZyb3plbgABAERBc3NldERvZXNOb3RFeGlzdAACADxBc3NldElkRmlsdGVyZWQAAwA4QXNzZXROb3RGcm96ZW4ABAB4Q29ycnVwdGVkU3RvcmFnZU9ycGhhbkxvY2F0aW9uAAUAZEVyYzIwQ29udHJhY3RDcmVhdGlvbkZhaWwABgBARXZtQ2FsbFBhdXNlRmFpbAAHAEhFdm1DYWxsVW5wYXVzZUZhaWwACABMRXZtQ2FsbE1pbnRJbnRvRmFpbAAJAExFdm1DYWxsVHJhbnNmZXJGYWlsAAoAQEV2bUludGVybmFsRXJyb3IACwBMSW5zdWZmaWNpZW50QmFsYW5jZQAMBLBBY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBmb3IgbG9ja2luZ3hDYW5ub3RDb252ZXJ0TG9jYXRpb25Ub0FjY291bnQADQBcTG9jYXRpb25PdXRzaWRlT2ZPcmlnaW4ADgBUQXNzZXROb3RJblNpYmxpbmdQYXJhAA8ANEludmFsaWRTeW1ib2wAEABASW52YWxpZFRva2VuTmFtZQARAFRMb2NhdGlvbkFscmVhZHlFeGlzdHMAEgBATm9QZW5kaW5nRGVwb3NpdAATADhBc3NldE5vdEFjdGl2ZQAUAFBUb29NYW55Rm9yZWlnbkFzc2V0cwAVAAQNAUFuIGVycm9yIHRoYXQgY2FuIG9jY3VyIHdoaWxlIGV4ZWN1dGluZyB0aGUgbWFwcGluZyBwYWxsZXQncyBsb2dpYy4lDAAABAjAvAApDAxgcGFsbGV0X3hjbV93ZWlnaHRfdHJhZGVyGHBhbGxldBRFcnJvcgQEVAABHERBc3NldEFscmVhZHlBZGRlZAAABIRUaGUgZ2l2ZW4gYXNzZXQgd2FzIGFscmVhZHkgYWRkZWRIQXNzZXRBbHJlYWR5UGF1c2VkAAEEiFRoZSBnaXZlbiBhc3NldCB3YXMgYWxyZWFkeSBwYXVzZWQ0QXNzZXROb3RGb3VuZAACBHRUaGUgZ2l2ZW4gYXNzZXQgd2FzIG5vdCBmb3VuZDhBc3NldE5vdFBhdXNlZAADBHRUaGUgZ2l2ZW4gYXNzZXQgaXMgbm90IHBhdXNlZExYY21Mb2NhdGlvbkZpbHRlcmVkAAQEVFhDTSBsb2NhdGlvbiBmaWx0ZXJlZERQcmljZUNhbm5vdEJlWmVybwAFBIRUaGUgcmVsYXRpdmUgcHJpY2UgY2Fubm90IGJlIHplcm80UHJpY2VPdmVyZmxvdwAGBKRUaGUgcmVsYXRpdmUgcHJpY2UgY2FsY3VsYXRpb24gb3ZlcmZsb3dlZASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tDAhkcGFsbGV0X2VtZXJnZW5jeV9wYXJhX3hjbRxYY21Nb2RlAAEIGE5vcm1hbAAAABhQYXVzZWQAAQAAMQwMZHBhbGxldF9lbWVyZ2VuY3lfcGFyYV94Y20YcGFsbGV0FEVycm9yBARUAAEEPE5vdEluUGF1c2VkTW9kZQAABIhUaGUgY3VycmVudCBYQ00gTW9kZSBpcyBub3QgUGF1c2VkBAUBQW4gZXJyb3IgdGhhdCBjYW4gb2NjdXIgd2hpbGUgZXhlY3V0aW5nIHRoaXMgcGFsbGV0J3MgZXh0cmluc2ljcy41DAxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEVycm9yBARUAAEEHE9uZ29pbmcAAAToVGhlIG9wZXJhdGlvbiBjYW5ub3QgY29tcGxldGUgc2luY2Ugc29tZSBNQk1zIGFyZSBvbmdvaW5nLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC45DAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAApCwEYVmVjPFQ+AAA9DAxEcGFsbGV0X3JhbmRvbW5lc3MUdHlwZXMwUmVxdWVzdFN0YXRlBARUAAAIARxyZXF1ZXN0QQwBlFJlcXVlc3Q8QmFsYW5jZU9mPFQ+LCBSZXF1ZXN0SW5mbzxUPj4AARxkZXBvc2l0vAEwQmFsYW5jZU9mPFQ+AABBDAxEcGFsbGV0X3JhbmRvbW5lc3MUdHlwZXMcUmVxdWVzdAgcQmFsYW5jZQG8EEluZm8BRQwAHAE4cmVmdW5kX2FkZHJlc3MZAQEQSDE2MAABQGNvbnRyYWN0X2FkZHJlc3MZAQEQSDE2MAABDGZlZbwBHEJhbGFuY2UAASRnYXNfbGltaXQYAQx1NjQAASRudW1fd29yZHMIAQh1OAABEHNhbHQsARBIMjU2AAEQaW5mb0UMARBJbmZvAABFDAxEcGFsbGV0X3JhbmRvbW5lc3MUdHlwZXMsUmVxdWVzdEluZm8EBFQAAQgkQmFiZUVwb2NoCAAYAQx1NjQAABgBDHU2NAAAABRMb2NhbAgAKAFEQmxvY2tOdW1iZXJGb3I8VD4AACgBREJsb2NrTnVtYmVyRm9yPFQ+AAEAAEkMDERwYWxsZXRfcmFuZG9tbmVzcxR0eXBlcyxSZXF1ZXN0VHlwZQQEVAABCCRCYWJlRXBvY2gEABgBDHU2NAAAABRMb2NhbAQAKAFEQmxvY2tOdW1iZXJGb3I8VD4AAQAATQwMRHBhbGxldF9yYW5kb21uZXNzFHR5cGVzQFJhbmRvbW5lc3NSZXN1bHQEEEhhc2gBLAAIAShyYW5kb21uZXNzDQMBME9wdGlvbjxIYXNoPgABNHJlcXVlc3RfY291bnQYAQx1NjQAAFEMDERwYWxsZXRfcmFuZG9tbmVzcxhwYWxsZXQURXJyb3IEBFQAATBgUmVxdWVzdENvdW50ZXJPdmVyZmxvd2VkAAAAUFJlcXVlc3RGZWVPdmVyZmxvd2VkAAEAZE11c3RSZXF1ZXN0QXRMZWFzdE9uZVdvcmQAAgB0Q2Fubm90UmVxdWVzdE1vcmVXb3Jkc1RoYW5NYXgAAwCQQ2Fubm90UmVxdWVzdFJhbmRvbW5lc3NBZnRlck1heERlbGF5AAQAlENhbm5vdFJlcXVlc3RSYW5kb21uZXNzQmVmb3JlTWluRGVsYXkABQAoUmVxdWVzdERORQAGAGxSZXF1ZXN0Q2Fubm90WWV0QmVGdWxmaWxsZWQABwBsT25seVJlcXVlc3RlckNhbkluY3JlYXNlRmVlAAgAUFJlcXVlc3RIYXNOb3RFeHBpcmVkAAkATFJhbmRvbW5lc3NSZXN1bHRETkUACgBkUmFuZG9tbmVzc1Jlc3VsdE5vdEZpbGxlZAALAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5VDAgoYnBfcnVudGltZSBIZWFkZXJJZAgQSGFzaAEsGE51bWJlcgEoAAgAKAEYTnVtYmVyAAAsARBIYXNoAABZDAg8YnBfaGVhZGVyX2NoYWluQFN0b3JlZEhlYWRlckRhdGEIGE51bWJlcgEoEEhhc2gBLAAIARhudW1iZXIoARhOdW1iZXIAAShzdGF0ZV9yb290LAEQSGFzaAAAXQwMVHBhbGxldF9icmlkZ2VfZ3JhbmRwYTRzdG9yYWdlX3R5cGVzSFN0b3JlZEF1dGhvcml0eVNldAgEVAAESQAACAEsYXV0aG9yaXRpZXNhDAHMU3RvcmVkQXV0aG9yaXR5TGlzdDxTdG9yZWRBdXRob3JpdHlMaXN0TGltaXQ8VCwgST4+AAEYc2V0X2lkGAEUU2V0SWQAAGEMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBuQUEUwAABAC1BQEYVmVjPFQ+AABlDAxUcGFsbGV0X2JyaWRnZV9ncmFuZHBhGHBhbGxldBRFcnJvcggEVAAESQABMFBJbnZhbGlkSnVzdGlmaWNhdGlvbgAABOBUaGUgZ2l2ZW4ganVzdGlmaWNhdGlvbiBpcyBpbnZhbGlkIGZvciB0aGUgZ2l2ZW4gaGVhZGVyLkxJbnZhbGlkQXV0aG9yaXR5U2V0AAEE+FRoZSBhdXRob3JpdHkgc2V0IGZyb20gdGhlIHVuZGVybHlpbmcgaGVhZGVyIGNoYWluIGlzIGludmFsaWQuJE9sZEhlYWRlcgACBFkBVGhlIGhlYWRlciBiZWluZyBpbXBvcnRlZCBpcyBvbGRlciB0aGFuIHRoZSBiZXN0IGZpbmFsaXplZCBoZWFkZXIga25vd24gdG8gdGhlIHBhbGxldC5oVW5zdXBwb3J0ZWRTY2hlZHVsZWRDaGFuZ2UAAwxRAVRoZSBzY2hlZHVsZWQgYXV0aG9yaXR5IHNldCBjaGFuZ2UgZm91bmQgaW4gdGhlIGhlYWRlciBpcyB1bnN1cHBvcnRlZCBieSB0aGUgcGFsbGV0LgAVAVRoaXMgaXMgdGhlIGNhc2UgZm9yIG5vbi1zdGFuZGFyZCAoZS5nIGZvcmNlZCkgYXV0aG9yaXR5IHNldCBjaGFuZ2VzLjhOb3RJbml0aWFsaXplZAAEBIhUaGUgcGFsbGV0IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQuSEFscmVhZHlJbml0aWFsaXplZAAFBKBUaGUgcGFsbGV0IGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuXFRvb01hbnlBdXRob3JpdGllc0luU2V0AAYEgFRvbyBtYW55IGF1dGhvcml0aWVzIGluIHRoZSBzZXQuMEJyaWRnZU1vZHVsZQQAaQwBiGJwX3J1bnRpbWU6Ok93bmVkQnJpZGdlTW9kdWxlRXJyb3IABwTERXJyb3IgZ2VuZXJhdGVkIGJ5IHRoZSBgT3duZWRCcmlkZ2VNb2R1bGVgIHRyYWl0LlRJbnZhbGlkQXV0aG9yaXR5U2V0SWQACAg1AVRoZSBgY3VycmVudF9zZXRfaWRgIGFyZ3VtZW50IG9mIHRoZSBgc3VibWl0X2ZpbmFsaXR5X3Byb29mX2V4YCBkb2Vzbid0IG1hdGNovHRoZSBpZCBvZiB0aGUgY3VycmVudCBzZXQsIGtub3duIHRvIHRoZSBwYWxsZXQuXEZyZWVIZWFkZXJzTGltaXRFeGNlZGVkAAkIMQFUaGUgc3VibWl0dGVyIHdhbnRlZCBmcmVlIGV4ZWN1dGlvbiwgYnV0IHdlIGNhbid0IGZpdCBtb3JlIGZyZWUgdHJhbnNhY3Rpb25zNHRvIHRoZSBibG9jay5cQmVsb3dGcmVlSGVhZGVySW50ZXJ2YWwACgg5AVRoZSBzdWJtaXR0ZXIgd2FudGVkIGZyZWUgZXhlY3V0aW9uLCBidXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBiZXN0IGtub3duIGFuZOhidW5kbGVkIGhlYWRlciBudW1iZXJzIGlzIGJlbG93IHRoZSBgRnJlZUhlYWRlcnNJbnRlcnZhbGAuUEhlYWRlck92ZXJmbG93TGltaXRzAAsIPQFUaGUgaGVhZGVyIChhbmQgaXRzIGZpbmFsaXR5KSBzdWJtaXNzaW9uIG92ZXJmbG93cyBoYXJkY29kZWQgY2hhaW4gbGltaXRzOiBzaXplnGFuZC9vciB3ZWlnaHQgYXJlIGxhcmdlciB0aGFuIGV4cGVjdGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5pDAgoYnBfcnVudGltZVhPd25lZEJyaWRnZU1vZHVsZUVycm9yAAEEGEhhbHRlZAAAAABtDAg0YnBfcGFyYWNoYWlucyBQYXJhSW5mbwAACAE4YmVzdF9oZWFkX2hhc2hxDAFAQmVzdFBhcmFIZWFkSGFzaAABbG5leHRfaW1wb3J0ZWRfaGFzaF9wb3NpdGlvbigBDHUzMgAAcQwINGJwX3BhcmFjaGFpbnNAQmVzdFBhcmFIZWFkSGFzaAAACAFUYXRfcmVsYXlfYmxvY2tfbnVtYmVyKAFAUmVsYXlCbG9ja051bWJlcgABJGhlYWRfaGFzaCwBIFBhcmFIYXNoAAB1DAg0YnBfcGFyYWNoYWluc1BQYXJhU3RvcmVkSGVhZGVyRGF0YQAABAAUARxWZWM8dTg+AAB5DAAABAjRBSgAfQwMYHBhbGxldF9icmlkZ2VfcGFyYWNoYWlucxhwYWxsZXQURXJyb3IIBFQABEkAARBYVW5rbm93blJlbGF5Q2hhaW5CbG9jawAABKBSZWxheSBjaGFpbiBibG9jayBoYXNoIGlzIHVua25vd24gdG8gdXMucEludmFsaWRSZWxheUNoYWluQmxvY2tOdW1iZXIAAQRFAVRoZSBudW1iZXIgb2Ygc3RvcmVkIHJlbGF5IGJsb2NrIGlzIGRpZmZlcmVudCBmcm9tIHdoYXQgdGhlIHJlbGF5ZXIgaGFzIHByb3ZpZGVkLlxIZWFkZXJDaGFpblN0b3JhZ2VQcm9vZgQAgQwBQEhlYWRlckNoYWluRXJyb3IAAgSkUGFyYWNoYWluIGhlYWRzIHN0b3JhZ2UgcHJvb2YgaXMgaW52YWxpZC4wQnJpZGdlTW9kdWxlBABpDAGIYnBfcnVudGltZTo6T3duZWRCcmlkZ2VNb2R1bGVFcnJvcgADBMRFcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGBPd25lZEJyaWRnZU1vZHVsZWAgdHJhaXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LoEMCDxicF9oZWFkZXJfY2hhaW5ASGVhZGVyQ2hhaW5FcnJvcgABCDRVbmtub3duSGVhZGVyAAAAMFN0b3JhZ2VQcm9vZgQAhQwBRFN0b3JhZ2VQcm9vZkVycm9yAAEAAIUMDChicF9ydW50aW1lNHN0b3JhZ2VfcHJvb2ZEU3RvcmFnZVByb29mRXJyb3IAAShkVW5hYmxlVG9HZW5lcmF0ZVRyaWVQcm9vZgAAADBJbnZhbGlkUHJvb2YAAQA8VW5zb3J0ZWRFbnRyaWVzAAIAOFVuYXZhaWxhYmxlS2V5AAMAIEVtcHR5VmFsAAQALERlY29kZUVycm9yAAUAJFVudXNlZEtleQAGAExTdG9yYWdlUm9vdE1pc21hdGNoAAcAXFN0b3JhZ2VWYWx1ZVVuYXZhaWxhYmxlAAgAOER1cGxpY2F0ZU5vZGVzAAkAAIkMCCxicF9tZXNzYWdlczxJbmJvdW5kTGFuZURhdGEEJFJlbGF5ZXJJZAEAAAwBIHJlbGF5ZXJzjQwBmFZlY0RlcXVlPFVucmV3YXJkZWRSZWxheWVyPFJlbGF5ZXJJZD4+AAFQbGFzdF9jb25maXJtZWRfbm9uY2UYATBNZXNzYWdlTm9uY2UAARRzdGF0ZZUMASRMYW5lU3RhdGUAAI0MAAACkQwAkQwILGJwX21lc3NhZ2VzRFVucmV3YXJkZWRSZWxheWVyBCRSZWxheWVySWQBAAAIARxyZWxheWVyAAEkUmVsYXllcklkAAEgbWVzc2FnZXPNBwFERGVsaXZlcmVkTWVzc2FnZXMAAJUMDCxicF9tZXNzYWdlcxBsYW5lJExhbmVTdGF0ZQABCBhPcGVuZWQAAAAYQ2xvc2VkAAEAAJkMCCxicF9tZXNzYWdlc0BPdXRib3VuZExhbmVEYXRhAAAQAVRvbGRlc3RfdW5wcnVuZWRfbm9uY2UYATBNZXNzYWdlTm9uY2UAAVRsYXRlc3RfcmVjZWl2ZWRfbm9uY2UYATBNZXNzYWdlTm9uY2UAAVhsYXRlc3RfZ2VuZXJhdGVkX25vbmNlGAEwTWVzc2FnZU5vbmNlAAEUc3RhdGWVDAEkTGFuZVN0YXRlAACdDAgsYnBfbWVzc2FnZXMoTWVzc2FnZUtleQQYTGFuZUlkAeUFAAgBHGxhbmVfaWTlBQEYTGFuZUlkAAEUbm9uY2UYATBNZXNzYWdlTm9uY2UAAKEMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAApQwMWHBhbGxldF9icmlkZ2VfbWVzc2FnZXMYcGFsbGV0FEVycm9yCARUAARJAAEoUE5vdE9wZXJhdGluZ05vcm1hbGx5AAAEnFBhbGxldCBpcyBub3QgaW4gTm9ybWFsIG9wZXJhdGluZyBtb2RlLjBMYW5lc01hbmFnZXIEAKkMAURMYW5lc01hbmFnZXJFcnJvcgABBLBFcnJvciB0aGF0IGlzIHJlcG9ydGVkIGJ5IHRoZSBsYW5lcyBtYW5hZ2VyLlxNZXNzYWdlUmVqZWN0ZWRCeVBhbGxldAQArQwBRFZlcmlmaWNhdGlvbkVycm9yAAIE4E1lc3NhZ2UgaGFzIGJlZW4gdHJlYXRlZCBhcyBpbnZhbGlkIGJ5IHRoZSBwYWxsZXQgbG9naWMuZFRvb01hbnlNZXNzYWdlc0luVGhlUHJvb2YAAwSkVGhlIHRyYW5zYWN0aW9uIGJyaW5ncyB0b28gbWFueSBtZXNzYWdlcy5QSW52YWxpZE1lc3NhZ2VzUHJvb2YABASQSW52YWxpZCBtZXNzYWdlcyBoYXMgYmVlbiBzdWJtaXR0ZWQucEludmFsaWRNZXNzYWdlc0RlbGl2ZXJ5UHJvb2YABQTMSW52YWxpZCBtZXNzYWdlcyBkZWxpdmVyeSBwcm9vZiBoYXMgYmVlbiBzdWJtaXR0ZWQueEludmFsaWRVbnJld2FyZGVkUmVsYXllcnNTdGF0ZQAGCAUBVGhlIHJlbGF5ZXIgaGFzIGRlY2xhcmVkIGludmFsaWQgdW5yZXdhcmRlZCByZWxheWVycyBzdGF0ZSBpbiB0aGWcYHJlY2VpdmVfbWVzc2FnZXNfZGVsaXZlcnlfcHJvb2ZgIGNhbGwuaEluc3VmZmljaWVudERpc3BhdGNoV2VpZ2h0AAcIRQFUaGUgY3VtdWxhdGl2ZSBkaXNwYXRjaCB3ZWlnaHQsIHBhc3NlZCBieSByZWxheWVyIGlzIG5vdCBlbm91Z2ggdG8gY292ZXIgZGlzcGF0Y2hgb2YgYWxsIGJ1bmRsZWQgbWVzc2FnZXMuVFJlY2VwdGlvbkNvbmZpcm1hdGlvbgQAsQwBaFJlY2VwdGlvbkNvbmZpcm1hdGlvbkVycm9yAAgEjEVycm9yIGNvbmZpcm1pbmcgbWVzc2FnZXMgcmVjZWl2YWwuMEJyaWRnZU1vZHVsZQQAaQwBiGJwX3J1bnRpbWU6Ok93bmVkQnJpZGdlTW9kdWxlRXJyb3IACQTERXJyb3IgZ2VuZXJhdGVkIGJ5IHRoZSBgT3duZWRCcmlkZ2VNb2R1bGVgIHRyYWl0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6pDAxYcGFsbGV0X2JyaWRnZV9tZXNzYWdlczRsYW5lc19tYW5hZ2VyRExhbmVzTWFuYWdlckVycm9yAAEcYEluYm91bmRMYW5lQWxyZWFkeUV4aXN0cwAAAGRPdXRib3VuZExhbmVBbHJlYWR5RXhpc3RzAAEASFVua25vd25JbmJvdW5kTGFuZQACAExVbmtub3duT3V0Ym91bmRMYW5lAAMARENsb3NlZEluYm91bmRMYW5lAAQASENsb3NlZE91dGJvdW5kTGFuZQAFAFhMYW5lRGlzcGF0Y2hlckluYWN0aXZlAAYAAK0MCCxicF9tZXNzYWdlc0RWZXJpZmljYXRpb25FcnJvcgABKERFbXB0eU1lc3NhZ2VQcm9vZgAAACxIZWFkZXJDaGFpbgQAgQwBQEhlYWRlckNoYWluRXJyb3IAAQBISW5ib3VuZExhbmVTdG9yYWdlBACFDAFEU3RvcmFnZVByb29mRXJyb3IAAgBQSW52YWxpZE1lc3NhZ2VXZWlnaHQAAwBUTWVzc2FnZXNDb3VudE1pc21hdGNoAAQAOE1lc3NhZ2VTdG9yYWdlBACFDAFEU3RvcmFnZVByb29mRXJyb3IABQA8TWVzc2FnZVRvb0xhcmdlAAYATE91dGJvdW5kTGFuZVN0b3JhZ2UEAIUMAURTdG9yYWdlUHJvb2ZFcnJvcgAHADBTdG9yYWdlUHJvb2YEAIUMAURTdG9yYWdlUHJvb2ZFcnJvcgAIABRPdGhlcgAJAACxDAxYcGFsbGV0X2JyaWRnZV9tZXNzYWdlczRvdXRib3VuZF9sYW5laFJlY2VwdGlvbkNvbmZpcm1hdGlvbkVycm9yAAEQdEZhaWxlZFRvQ29uZmlybUZ1dHVyZU1lc3NhZ2VzAAAAbEVtcHR5VW5yZXdhcmRlZFJlbGF5ZXJFbnRyeQABAJhOb25Db25zZWN1dGl2ZVVucmV3YXJkZWRSZWxheWVyRW50cmllcwACAJxUcnlpbmdUb0NvbmZpcm1Nb3JlTWVzc2FnZXNUaGFuRXhwZWN0ZWQAAwAAtQwIRGJwX3hjbV9icmlkZ2VfaHViGEJyaWRnZQgkVGhpc0NoYWluABhMYW5lSWQAABwBfGJyaWRnZV9vcmlnaW5fcmVsYXRpdmVfbG9jYXRpb25BAwFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABgGJyaWRnZV9vcmlnaW5fdW5pdmVyc2FsX2xvY2F0aW9u9QUBeEJveDxWZXJzaW9uZWRJbnRlcmlvckxvY2F0aW9uPgABlGJyaWRnZV9kZXN0aW5hdGlvbl91bml2ZXJzYWxfbG9jYXRpb271BQF4Qm94PFZlcnNpb25lZEludGVyaW9yTG9jYXRpb24+AAEUc3RhdGW5DAEsQnJpZGdlU3RhdGUAAVBicmlkZ2Vfb3duZXJfYWNjb3VudAABWEFjY291bnRJZE9mPFRoaXNDaGFpbj4AARxkZXBvc2l0vAFQQmFsYW5jZU9mPFRoaXNDaGFpbj4AARxsYW5lX2lk5QUBGExhbmVJZAAAuQwIRGJwX3hjbV9icmlkZ2VfaHViLEJyaWRnZVN0YXRlAAEMGE9wZW5lZAAAACRTdXNwZW5kZWQAAQAYQ2xvc2VkAAIAAL0MDFRwYWxsZXRfeGNtX2JyaWRnZV9odWIYcGFsbGV0FEVycm9yCARUAARJAAEkPEJyaWRnZUxvY2F0aW9ucwQAwQwBUEJyaWRnZUxvY2F0aW9uc0Vycm9yAAAEXEJyaWRnZSBsb2NhdGlvbnMgZXJyb3IuaEludmFsaWRCcmlkZ2VPcmlnaW5BY2NvdW50AAEEkEludmFsaWQgbG9jYWwgYnJpZGdlIG9yaWdpbiBhY2NvdW50LkxCcmlkZ2VBbHJlYWR5RXhpc3RzAAIEwFRoZSBicmlkZ2UgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGluIHRoaXMgcGFsbGV0LnBUb29NYW55QnJpZGdlc0ZvckxvY2FsT3JpZ2luAAME6FRoZSBsb2NhbCBvcmlnaW4gYWxyZWFkeSBvd25zIGEgbWF4aW1hbCBudW1iZXIgb2YgYnJpZGdlcy5MQnJpZGdlQWxyZWFkeUNsb3NlZAAEBJhUcnlpbmcgdG8gY2xvc2UgYWxyZWFkeSBjbG9zZWQgYnJpZGdlLjBMYW5lc01hbmFnZXIEAKkMAURMYW5lc01hbmFnZXJFcnJvcgAFBFBMYW5lcyBtYW5hZ2VyIGVycm9yLjRVbmtub3duQnJpZGdlAAYEgFRyeWluZyB0byBhY2Nlc3MgdW5rbm93biBicmlkZ2UucEZhaWxlZFRvUmVzZXJ2ZUJyaWRnZURlcG9zaXQABwQdAVRoZSBicmlkZ2Ugb3JpZ2luIGNhbid0IHBheSB0aGUgcmVxdWlyZWQgYW1vdW50IGZvciBvcGVuaW5nIHRoZSBicmlkZ2UuVFVuc3VwcG9ydGVkWGNtVmVyc2lvbgAIBNBUaGUgdmVyc2lvbiBvZiBYQ00gbG9jYXRpb24gYXJndW1lbnQgaXMgdW5zdXBwb3J0ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsEMCERicF94Y21fYnJpZGdlX2h1YlBCcmlkZ2VMb2NhdGlvbnNFcnJvcgABIFBOb25Vbml2ZXJzYWxMb2NhdGlvbgAAAExJbnZhbGlkQnJpZGdlT3JpZ2luAAEAYEludmFsaWRCcmlkZ2VEZXN0aW5hdGlvbgACAEhEZXN0aW5hdGlvbklzTG9jYWwAAwBYVW5yZWFjaGFibGVEZXN0aW5hdGlvbgAEAHhVbnN1cHBvcnRlZERlc3RpbmF0aW9uTG9jYXRpb24ABQBUVW5zdXBwb3J0ZWRYY21WZXJzaW9uAAYAVFVuc3VwcG9ydGVkTGFuZUlkVHlwZQAHAADFDAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAAMkMBBhSZXN1bHQIBFQBzQwERQHRDAEICE9rBADNDAAAAAAMRXJyBADRDAAAAQAAzQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkYAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5GAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGXAARBib29sAADRDAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eWBUcmFuc2FjdGlvblZhbGlkaXR5RXJyb3IAAQgcSW52YWxpZAQA1QwBSEludmFsaWRUcmFuc2FjdGlvbgAAABxVbmtub3duBADZDAFIVW5rbm93blRyYW5zYWN0aW9uAAEAANUMDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5SEludmFsaWRUcmFuc2FjdGlvbgABNBBDYWxsAAAAHFBheW1lbnQAAQAYRnV0dXJlAAIAFFN0YWxlAAMAIEJhZFByb29mAAQAREFuY2llbnRCaXJ0aEJsb2NrAAUAREV4aGF1c3RzUmVzb3VyY2VzAAYAGEN1c3RvbQQACAEIdTgABwAwQmFkTWFuZGF0b3J5AAgATE1hbmRhdG9yeVZhbGlkYXRpb24ACQAkQmFkU2lnbmVyAAoAVEluZGV0ZXJtaW5hdGVJbXBsaWNpdAALADRVbmtub3duT3JpZ2luAAwAANkMDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5SFVua25vd25UcmFuc2FjdGlvbgABDDBDYW5ub3RMb29rdXAAAABMTm9VbnNpZ25lZFZhbGlkYXRvcgABABhDdXN0b20EAAgBCHU4AAIAAN0MBBhPcHRpb24EBFQBVQwBCBBOb25lAAAAEFNvbWUEAFUMAAABAADhDAAAAqEHAOUMAAAC6QwA6QwILGJwX21lc3NhZ2VzWE91dGJvdW5kTWVzc2FnZURldGFpbHMAAAwBFG5vbmNlGAEwTWVzc2FnZU5vbmNlAAE8ZGlzcGF0Y2hfd2VpZ2h0cQEBGFdlaWdodAABEHNpemUoAQx1MzIAAO0MAAAC8QwA8QwAAAQIFOkMAPUMAAAC+QwA+QwILGJwX21lc3NhZ2VzVEluYm91bmRNZXNzYWdlRGV0YWlscwAABAE8ZGlzcGF0Y2hfd2VpZ2h0cQEBGFdlaWdodAAA/QwQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jayRMYXp5QmxvY2sIGEhlYWRlcgFQJEV4dHJpbnNpYwEZCAAIARhoZWFkZXJQARhIZWFkZXIAAShleHRyaW5zaWNzAQ0BUFZlYzxPcGFxdWVFeHRyaW5zaWM+AAABDQAAAgUNAAUNCChzcF9ydW50aW1lPE9wYXF1ZUV4dHJpbnNpYwAABAAUARxWZWM8dTg+AAAJDQgoc3BfcnVudGltZVhFeHRyaW5zaWNJbmNsdXNpb25Nb2RlAAEINEFsbEV4dHJpbnNpY3MAAAA0T25seUluaGVyZW50cwABAAANDQgcc3BfY29yZThPcGFxdWVNZXRhZGF0YQAABAAUARxWZWM8dTg+AAARDQQYT3B0aW9uBARUAQ0NAQgQTm9uZQAAABBTb21lBAANDQAAAQAAFQ0EGFJlc3VsdAgEVAG9BgRFAdEMAQgIT2sEAL0GAAAAAAxFcnIEANEMAAABAAAZDQgwc3BfaW5oZXJlbnRzMEluaGVyZW50RGF0YQAABAEQZGF0YR0NAZRCVHJlZU1hcDxJbmhlcmVudElkZW50aWZpZXIsIFZlYzx1OD4+AAAdDQQgQlRyZWVNYXAIBEsBtQEEVgEUAAQAIQ0AAAAhDQAAAiUNACUNAAAECLUBFAApDQgwc3BfaW5oZXJlbnRzUENoZWNrSW5oZXJlbnRzUmVzdWx0AAAMARBva2F5wAEQYm9vbAABLGZhdGFsX2Vycm9ywAEQYm9vbAABGGVycm9ycxkNATBJbmhlcmVudERhdGEAAC0NBBhPcHRpb24EBFQBMQ0BCBBOb25lAAAAEFNvbWUEADENAAABAAAxDQAAAjUNADUNAAAECBQ5DQA5DQwcc3BfY29yZRhjcnlwdG8kS2V5VHlwZUlkAAAEAGQBHFt1ODsgNF0AAD0NBBhSZXN1bHQIBFQB/QUERQEdBwEICE9rBAD9BQAAAAAMRXJyBAAdBwAAAQAAQQ0EGE9wdGlvbgQEVAEdBwEIEE5vbmUAAAAQU29tZQQAHQcAAAEAAEUNAAACHQcASQ0IeG1vb25iZWFtX3JwY19wcmltaXRpdmVzX3R4cG9vbDhUeFBvb2xSZXNwb25zZQAACAEUcmVhZHk1CgFAVmVjPFRyYW5zYWN0aW9uPgABGGZ1dHVyZTUKAUBWZWM8VHJhbnNhY3Rpb24+AABNDQwMZXZtHGJhY2tlbmQUQmFzaWMAAAgBHGJhbGFuY2WBAgEQVTI1NgABFG5vbmNlgQIBEFUyNTYAAFENBBhSZXN1bHQIBFQBVQ0ERQFdBgEICE9rBABVDQAAAAAMRXJyBABdBgAAAQAAVQ0IGGZwX2V2bTxFeGVjdXRpb25JbmZvVjIEBFQBFAAUASxleGl0X3JlYXNvbgkHAShFeGl0UmVhc29uAAEUdmFsdWUUAQRUAAEgdXNlZF9nYXNZDQEcVXNlZEdhcwABLHdlaWdodF9pbmZvXQ0BSE9wdGlvbjxXZWlnaHRJbmZvPgABEGxvZ3MVCgEgVmVjPExvZz4AAFkNCBhmcF9ldm0cVXNlZEdhcwAACAEgc3RhbmRhcmSBAgEQVTI1NgABJGVmZmVjdGl2ZYECARBVMjU2AABdDQQYT3B0aW9uBARUAWENAQgQTm9uZQAAABBTb21lBABhDQAAAQAAYQ0IGGZwX2V2bShXZWlnaHRJbmZvAAAQAThyZWZfdGltZV9saW1pdP0EASxPcHRpb248dTY0PgABQHByb29mX3NpemVfbGltaXT9BAEsT3B0aW9uPHU2ND4AAThyZWZfdGltZV91c2FnZf0EASxPcHRpb248dTY0PgABQHByb29mX3NpemVfdXNhZ2X9BAEsT3B0aW9uPHU2ND4AAGUNBBhSZXN1bHQIBFQBaQ0ERQFdBgEICE9rBABpDQAAAAAMRXJyBABdBgAAAQAAaQ0IGGZwX2V2bTxFeGVjdXRpb25JbmZvVjIEBFQBGQEAFAEsZXhpdF9yZWFzb24JBwEoRXhpdFJlYXNvbgABFHZhbHVlGQEBBFQAASB1c2VkX2dhc1kNARxVc2VkR2FzAAEsd2VpZ2h0X2luZm9dDQFIT3B0aW9uPFdlaWdodEluZm8+AAEQbG9ncxUKASBWZWM8TG9nPgAAbQ0EGE9wdGlvbgQEVAEpCgEIEE5vbmUAAAAQU29tZQQAKQoAAAEAAHENBBhPcHRpb24EBFQBPQoBCBBOb25lAAAAEFNvbWUEAD0KAAABAAB1DQQYT3B0aW9uBARUAUEKAQgQTm9uZQAAABBTb21lBABBCgAAAQAAeQ0AAAQMbQ1xDXUNAH0NBBhPcHRpb24EBFQBNQsBCBBOb25lAAAAEFNvbWUEADULAAABAACBDQAABAhtDXUNAIUNDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlc0xSdW50aW1lRGlzcGF0Y2hJbmZvCBxCYWxhbmNlAbwYV2VpZ2h0AXEBAAwBGHdlaWdodHEBARhXZWlnaHQAARRjbGFzc1UGATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWW8ARxCYWxhbmNlAACJDQxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQG8AAgBNGluY2x1c2lvbl9mZWWNDQF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXC8ARxCYWxhbmNlAACNDQQYT3B0aW9uBARUAZENAQgQTm9uZQAAABBTb21lBACRDQAAAQAAkQ0MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQG8AAwBIGJhc2VfZmVlvAEcQmFsYW5jZQABHGxlbl9mZWW8ARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZbwBHEJhbGFuY2UAAJUNCFxjdW11bHVzX3ByaW1pdGl2ZXNfY29yZTRDb2xsYXRpb25JbmZvAAAYATx1cHdhcmRfbWVzc2FnZXMkAUhWZWM8VXB3YXJkTWVzc2FnZT4AAUxob3Jpem9udGFsX21lc3NhZ2VzjQgBYFZlYzxPdXRib3VuZEhybXBNZXNzYWdlPgABTG5ld192YWxpZGF0aW9uX2NvZGWZDQGMT3B0aW9uPHJlbGF5X2NoYWluOjpWYWxpZGF0aW9uQ29kZT4AAWxwcm9jZXNzZWRfZG93bndhcmRfbWVzc2FnZXMoAQx1MzIAAThocm1wX3dhdGVybWFyaygBYHJlbGF5X2NoYWluOjpCbG9ja051bWJlcgABJGhlYWRfZGF0YUABIEhlYWREYXRhAACZDQQYT3B0aW9uBARUAZ0NAQgQTm9uZQAAABBTb21lBACdDQAAAQAAnQ0MdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXM4VmFsaWRhdGlvbkNvZGUAAAQAFAEcVmVjPHU4PgAAoQ0EGE9wdGlvbgQEVAGxBgEIEE5vbmUAAAAQU29tZQQAsQYAAAEAAKUNBBhSZXN1bHQIBFQBqQ0ERQGtDQEICE9rBACpDQAAAAAMRXJyBACtDQAAAQAAqQ0AAAL5BACtDQxAeGNtX3J1bnRpbWVfYXBpcxBmZWVzFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAALENBBhSZXN1bHQIBFQBcQEERQGtDQEICE9rBABxAQAAAAAMRXJyBACtDQAAAQAAtQ0EGFJlc3VsdAgEVAG8BEUBrQ0BCAhPawQAvAAAAAAMRXJyBACtDQAAAQAAuQ0EGFJlc3VsdAgEVAHFBARFAa0NAQgIT2sEAMUEAAAAAAxFcnIEAK0NAAABAAC9DQQYUmVzdWx0CARUAcENBEUB2Q0BCAhPawQAwQ0AAAAADEVycgQA2Q0AAAEAAMENDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW5EQ2FsbERyeVJ1bkVmZmVjdHMEFEV2ZW50AUkGABABQGV4ZWN1dGlvbl9yZXN1bHRBBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAThlbWl0dGVkX2V2ZW50c8UNAShWZWM8RXZlbnQ+AAEkbG9jYWxfeGNtyQ0BYE9wdGlvbjxWZXJzaW9uZWRYY208KCk+PgABOGZvcndhcmRlZF94Y21zzQ0BvFZlYzwoVmVyc2lvbmVkTG9jYXRpb24sIFZlYzxWZXJzaW9uZWRYY208KCk+Pik+AADFDQAAAkkGAMkNBBhPcHRpb24EBFQBjQMBCBBOb25lAAAAEFNvbWUEAI0DAAABAADNDQAAAtENANENAAAECEED1Q0A1Q0AAAKNAwDZDQxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuFEVycm9yAAEINFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAADdDQQYUmVzdWx0CARUAeENBEUB2Q0BCAhPawQA4Q0AAAAADEVycgQA2Q0AAAEAAOENDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW5AWGNtRHJ5UnVuRWZmZWN0cwQURXZlbnQBSQYADAFAZXhlY3V0aW9uX3Jlc3VsdGUHARxPdXRjb21lAAE4ZW1pdHRlZF9ldmVudHPFDQEoVmVjPEV2ZW50PgABOGZvcndhcmRlZF94Y21zzQ0BvFZlYzwoVmVyc2lvbmVkTG9jYXRpb24sIFZlYzxWZXJzaW9uZWRYY208KCk+Pik+AADlDQQYUmVzdWx0CARUAQAERQHpDQEICE9rBAAAAAAAAAxFcnIEAOkNAAABAADpDQxAeGNtX3J1bnRpbWVfYXBpcyxjb252ZXJzaW9ucxRFcnJvcgABCCxVbnN1cHBvcnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAAO0NCEBtb29uYmVhbV9ydW50aW1lMFJ1bnRpbWVFcnJvcgABmBhTeXN0ZW0EABEIAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAmQgBvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAEAIEJhbGFuY2VzBADZCAF8cGFsbGV0X2JhbGFuY2VzOjpFcnJvcjxSdW50aW1lPgAKAEBQYXJhY2hhaW5TdGFraW5nBABZCQGgcGFsbGV0X3BhcmFjaGFpbl9zdGFraW5nOjpFcnJvcjxSdW50aW1lPgAUADhBdXRob3JJbmhlcmVudAQAXQkBmHBhbGxldF9hdXRob3JfaW5oZXJlbnQ6OkVycm9yPFJ1bnRpbWU+ABUANEF1dGhvck1hcHBpbmcEAGUJAZRwYWxsZXRfYXV0aG9yX21hcHBpbmc6OkVycm9yPFJ1bnRpbWU+ABcAQE1vb25iZWFtT3JiaXRlcnMEAHUJAaBwYWxsZXRfbW9vbmJlYW1fb3JiaXRlcnM6OkVycm9yPFJ1bnRpbWU+ABgAHFV0aWxpdHkEAIEJAXhwYWxsZXRfdXRpbGl0eTo6RXJyb3I8UnVudGltZT4AHgAUUHJveHkEAKUJAXBwYWxsZXRfcHJveHk6OkVycm9yPFJ1bnRpbWU+AB8APE1haW50ZW5hbmNlTW9kZQQAqQkBnHBhbGxldF9tYWludGVuYW5jZV9tb2RlOjpFcnJvcjxSdW50aW1lPgAgACBJZGVudGl0eQQA6QkBfHBhbGxldF9pZGVudGl0eTo6RXJyb3I8UnVudGltZT4AIQAgTXVsdGlzaWcEAPkJAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+ACQAWE1vb25iZWFtTGF6eU1pZ3JhdGlvbnMEAP0JAbxwYWxsZXRfbW9vbmJlYW1fbGF6eV9taWdyYXRpb25zOjpFcnJvcjxSdW50aW1lPgAlAAxFVk0EAAkKAWhwYWxsZXRfZXZtOjpFcnJvcjxSdW50aW1lPgAzACBFdGhlcmV1bQQARQoBfHBhbGxldF9ldGhlcmV1bTo6RXJyb3I8UnVudGltZT4ANAAkU2NoZWR1bGVyBABdCgGAcGFsbGV0X3NjaGVkdWxlcjo6RXJyb3I8UnVudGltZT4APAAgUHJlaW1hZ2UEAIUKAXxwYWxsZXRfcHJlaW1hZ2U6OkVycm9yPFJ1bnRpbWU+AD4AQENvbnZpY3Rpb25Wb3RpbmcEALkKAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkVycm9yPFJ1bnRpbWU+AD8AJFJlZmVyZW5kYQQAAQsBgHBhbGxldF9yZWZlcmVuZGE6OkVycm9yPFJ1bnRpbWU+AEAAJFdoaXRlbGlzdAQABQsBgHBhbGxldF93aGl0ZWxpc3Q6OkVycm9yPFJ1bnRpbWU+AEIAZFRyZWFzdXJ5Q291bmNpbENvbGxlY3RpdmUEABULAfxwYWxsZXRfY29sbGVjdGl2ZTo6RXJyb3I8UnVudGltZSwgcGFsbGV0X2NvbGxlY3RpdmU6Okluc3RhbmNlMz4ASABsT3BlblRlY2hDb21taXR0ZWVDb2xsZWN0aXZlBAAdCwH8cGFsbGV0X2NvbGxlY3RpdmU6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTQ+AEkAIFRyZWFzdXJ5BAA9CwF8cGFsbGV0X3RyZWFzdXJ5OjpFcnJvcjxSdW50aW1lPgBQAEBDcm93ZGxvYW5SZXdhcmRzBABJCwGgcGFsbGV0X2Nyb3dkbG9hbl9yZXdhcmRzOjpFcnJvcjxSdW50aW1lPgBaACRYY21wUXVldWUEAHULAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgBkACxQb2xrYWRvdFhjbQQA3QsBaHBhbGxldF94Y206OkVycm9yPFJ1bnRpbWU+AGcANFhjbVRyYW5zYWN0b3IEAOkLAZRwYWxsZXRfeGNtX3RyYW5zYWN0b3I6OkVycm9yPFJ1bnRpbWU+AGsALEV0aGVyZXVtWGNtBADtCwGMcGFsbGV0X2V0aGVyZXVtX3hjbTo6RXJyb3I8UnVudGltZT4AbQAwTWVzc2FnZVF1ZXVlBAAJDAGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkVycm9yPFJ1bnRpbWU+AG8AQEV2bUZvcmVpZ25Bc3NldHMEACEMAbhwYWxsZXRfbW9vbmJlYW1fZm9yZWlnbl9hc3NldHM6OkVycm9yPFJ1bnRpbWU+AHIAPFhjbVdlaWdodFRyYWRlcgQAKQwBoHBhbGxldF94Y21fd2VpZ2h0X3RyYWRlcjo6RXJyb3I8UnVudGltZT4AcwBARW1lcmdlbmN5UGFyYVhjbQQAMQwBpHBhbGxldF9lbWVyZ2VuY3lfcGFyYV94Y206OkVycm9yPFJ1bnRpbWU+AHQAUE11bHRpQmxvY2tNaWdyYXRpb25zBAA1DAGEcGFsbGV0X21pZ3JhdGlvbnM6OkVycm9yPFJ1bnRpbWU+AHUAKFJhbmRvbW5lc3MEAFEMAYRwYWxsZXRfcmFuZG9tbmVzczo6RXJyb3I8UnVudGltZT4AeABMQnJpZGdlS3VzYW1hR3JhbmRwYQQAZQwBHQFwYWxsZXRfYnJpZGdlX2dyYW5kcGE6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF9icmlkZ2VfZ3JhbmRwYTo6SW5zdGFuY2UxPgCCAFhCcmlkZ2VLdXNhbWFQYXJhY2hhaW5zBAB9DAE5AXBhbGxldF9icmlkZ2VfcGFyYWNoYWluczo6RXJyb3I8UnVudGltZSwgcGFsbGV0X2JyaWRnZV9wYXJhY2hhaW5zOjoKSW5zdGFuY2UxPgCDAFBCcmlkZ2VLdXNhbWFNZXNzYWdlcwQApQwBKQFwYWxsZXRfYnJpZGdlX21lc3NhZ2VzOjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfYnJpZGdlX21lc3NhZ2VzOjpJbnN0YW5jZTEKPgCEAFhCcmlkZ2VYY21PdmVyTW9vbnJpdmVyBAC9DAH8cGFsbGV0X3hjbV9icmlkZ2U6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF94Y21fYnJpZGdlOjpJbnN0YW5jZTE+AIUAAMwYU3lzdGVtARhTeXN0ZW1MHEFjY291bnQBAQQCADEGQQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAToIFRoZSBmdWxsIGFjY291bnQgaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxhciBhY2NvdW50IElELgA4RXh0cmluc2ljQ291bnQAACgEAAS4IFRvdGFsIGV4dHJpbnNpY3MgY291bnQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgBASW5oZXJlbnRzQXBwbGllZAEAwAQABKQgV2hldGhlciBhbGwgaW5oZXJlbnRzIGhhdmUgYmVlbiBhcHBsaWVkLgAsQmxvY2tXZWlnaHQBAD0GGAAAAAAAAASIIFRoZSBjdXJyZW50IHdlaWdodCBmb3IgdGhlIGJsb2NrLgBAQWxsRXh0cmluc2ljc0xlbgAAKAQABEEBIFRvdGFsIGxlbmd0aCAoaW4gYnl0ZXMpIGZvciBhbGwgZXh0cmluc2ljcyBwdXQgdG9nZXRoZXIsIGZvciB0aGUgY3VycmVudCBibG9jay4AJEJsb2NrSGFzaAEBBAUoLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy4ANEV4dHJpbnNpY0RhdGEBAQQFKBQEAAQ9ASBFeHRyaW5zaWNzIGRhdGEgZm9yIHRoZSBjdXJyZW50IGJsb2NrIChtYXBzIGFuIGV4dHJpbnNpYydzIGluZGV4IHRvIGl0cyBkYXRhKS4AGE51bWJlcgEAKBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuAChQYXJlbnRIYXNoAQAsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suABhEaWdlc3QBAFgEAATwIERpZ2VzdCBvZiB0aGUgY3VycmVudCBibG9jaywgYWxzbyBwYXJ0IG9mIHRoZSBibG9jayBoZWFkZXIuABhFdmVudHMBAEEGBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLgAoRXZlbnRDb3VudAEAKBAAAAAABLggVGhlIG51bWJlciBvZiBldmVudHMgaW4gdGhlIGBFdmVudHM8VD5gIGxpc3QuACxFdmVudFRvcGljcwEBBAIs3QcEACglASBNYXBwaW5nIGJldHdlZW4gYSB0b3BpYyAocmVwcmVzZW50ZWQgYnkgVDo6SGFzaCkgYW5kIGEgdmVjdG9yIG9mIGluZGV4ZXOUIG9mIGV2ZW50cyBpbiB0aGUgYDxFdmVudHM8VD4+YCBsaXN0LgBRASBBbGwgdG9waWMgdmVjdG9ycyBoYXZlIGRldGVybWluaXN0aWMgc3RvcmFnZSBsb2NhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSB0b3BpYy4gVGhpc0UBIGFsbG93cyBsaWdodC1jbGllbnRzIHRvIGxldmVyYWdlIHRoZSBjaGFuZ2VzIHRyaWUgc3RvcmFnZSB0cmFja2luZyBtZWNoYW5pc20gYW5k5CBpbiBjYXNlIG9mIGNoYW5nZXMgZmV0Y2ggdGhlIGxpc3Qgb2YgZXZlbnRzIG9mIGludGVyZXN0LgBZASBUaGUgdmFsdWUgaGFzIHRoZSB0eXBlIGAoQmxvY2tOdW1iZXJGb3I8VD4sIEV2ZW50SW5kZXgpYCBiZWNhdXNlIGlmIHdlIHVzZWQgb25seSBqdXN0TQEgdGhlIGBFdmVudEluZGV4YCB0aGVuIGluIGNhc2UgaWYgdGhlIHRvcGljIGhhcyB0aGUgc2FtZSBjb250ZW50cyBvbiB0aGUgbmV4dCBibG9jawEBIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCB0aHVzIHRoZSBldmVudCBtaWdodCBiZSBsb3N0LgBITGFzdFJ1bnRpbWVVcGdyYWRlAADhBwQABFUBIFN0b3JlcyB0aGUgYHNwZWNfdmVyc2lvbmAgYW5kIGBzcGVjX25hbWVgIG9mIHdoZW4gdGhlIGxhc3QgcnVudGltZSB1cGdyYWRlIGhhcHBlbmVkLgBUVXBncmFkZWRUb1UzMlJlZkNvdW50AQDABAAETQEgVHJ1ZSBpZiB3ZSBoYXZlIHVwZ3JhZGVkIHNvIHRoYXQgYHR5cGUgUmVmQ291bnRgIGlzIGB1MzJgLiBGYWxzZSAoZGVmYXVsdCkgaWYgbm90LgBgVXBncmFkZWRUb1RyaXBsZVJlZkNvdW50AQDABAAIXQEgVHJ1ZSBpZiB3ZSBoYXZlIHVwZ3JhZGVkIHNvIHRoYXQgQWNjb3VudEluZm8gY29udGFpbnMgdGhyZWUgdHlwZXMgb2YgYFJlZkNvdW50YC4gRmFsc2VIIChkZWZhdWx0KSBpZiBub3QuADhFeGVjdXRpb25QaGFzZQAA2QcEAASIIFRoZSBleGVjdXRpb24gcGhhc2Ugb2YgdGhlIGJsb2NrLgBEQXV0aG9yaXplZFVwZ3JhZGUAAOUHBAAEuCBgU29tZWAgaWYgYSBjb2RlIHVwZ3JhZGUgaGFzIGJlZW4gYXV0aG9yaXplZC4AYEV4dHJpbnNpY1dlaWdodFJlY2xhaW1lZAEAcQEIAAAcoCBUaGUgd2VpZ2h0IHJlY2xhaW1lZCBmb3IgdGhlIGV4dHJpbnNpYy4AIQEgVGhpcyBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgZXh0cmluc2ljIGV4ZWN1dGlvbi4hASBNb3JlIHByZWNpc2VseSB0aGlzIGluZm9ybWF0aW9uIGlzIHJlbW92ZWQgaW4gYG5vdGVfYXBwbGllZF9leHRyaW5zaWNgLgBxASBMb2dpYyBkb2luZyBzb21lIHBvc3QgZGlzcGF0Y2ggd2VpZ2h0IHJlZHVjdGlvbiBtdXN0IHVwZGF0ZSB0aGlzIHN0b3JhZ2UgdG8gYXZvaWQgZHVwbGljYXRlLCByZWR1Y3Rpb24uAAEQAAFNBgAYMEJsb2NrV2VpZ2h0c+kHgQHCoOdmAAsAIEqp0QECAIACAsqaOwABC4AVI58uAQIAoAEBCwCY9z5dAQIA4AEBAAAiYckZAAELuPfpEaMBAgBAAgELACBKqdEBAgCAAgEHAIhSanQCAKAAImHJGQAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4ALEJsb2NrTGVuZ3Ro9QcwAAA8AAAAUAAAAFAABKggVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgYmxvY2sgKGluIGJ5dGVzKS4AOEJsb2NrSGFzaENvdW50KBAAAQAABFUBIE1heGltdW0gbnVtYmVyIG9mIGJsb2NrIG51bWJlciB0byBibG9jayBoYXNoIG1hcHBpbmdzIHRvIGtlZXAgKG9sZGVzdCBwcnVuZWQgZmlyc3QpLgAgRGJXZWlnaHT9B0BolIcDAAAAAHimvQUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuABxWZXJzaW9uAQhxBSBtb29uYmVhbSBtb29uYmVhbQMAAAAxEQAAAAAAAGjSvJiX7tCPFQMAAADQOZzQU63aKwEAAADdXFYX5SCWTQEAAABZcgbdF2NwKQEAAACtjpl+BBVq1AEAAACs7tVyPlJHcwEAAADfastomQdgmwUAAAAE5wUhoNPS+AEAAAA345f8fJH15AIAAABA/jrUAfiVmgYAAAD3iyeL5T9FTAIAAADurd+XrbIXFAEAAACrPAVyKR/riwEAAAD7xXe510fv1gEAAAC8nYmQT1uSPwEAAAC9eCVdT+7qHwcAAACjPUP1hzGthAIAAABYIhH2W7FLiQYAAADmWwDkbO3QqgIAAAA3yLsTUKmiqAQAAAAqpiEgBJ3S0gEAAADqk+Pxbz1pYgMAAAC6gXO/I7Lm+AEAAABv9S7oWObFvQIAAACRscixYyjrkgIAAACf+1BapzjWnAEAAAADAAAAAQSEIEdldCB0aGUgY2hhaW4ncyBpbi1jb2RlIHZlcnNpb24uAChTUzU4UHJlZml4CQEIBAUUqCBUaGUgZGVzaWduYXRlZCBTUzU4IHByZWZpeCBvZiB0aGlzIGNoYWluLgA5ASBUaGlzIHJlcGxhY2VzIHRoZSAic3M1OEZvcm1hdCIgcHJvcGVydHkgZGVjbGFyZWQgaW4gdGhlIGNoYWluIHNwZWMuIFJlYXNvbiBpczEBIHRoYXQgdGhlIHJ1bnRpbWUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIHByZWZpeCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiBpdCBhc3AgYW4gaWRlbnRpZmllciBvZiB0aGUgY2hhaW4uAAERCAAcLFJ1bnRpbWVDYWxsDASMIFRoZSBhZ2dyZWdhdGVkIGBSdW50aW1lQ2FsbGAgdHlwZS4UTm9uY2UoBEkBIFRoaXMgc3RvcmVzIHRoZSBudW1iZXIgb2YgcHJldmlvdXMgdHJhbnNhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIHNlbmRlciBhY2NvdW50LhBIYXNoLASYIFRoZSBvdXRwdXQgb2YgdGhlIGBIYXNoaW5nYCBmdW5jdGlvbi4cSGFzaGluZwEDBCEBIFRoZSBoYXNoaW5nIHN5c3RlbSAoYWxnb3JpdGhtKSBiZWluZyB1c2VkIGluIHRoZSBydW50aW1lIChlLmcuIEJsYWtlMikuJEFjY291bnRJZAAEyCBUaGUgdXNlciBhY2NvdW50IGlkZW50aWZpZXIgdHlwZSBmb3IgdGhlIHJ1bnRpbWUuFEJsb2NrFQgIYQEgVGhlIEJsb2NrIHR5cGUgdXNlZCBieSB0aGUgcnVudGltZS4gVGhpcyBpcyB1c2VkIGJ5IGBjb25zdHJ1Y3RfcnVudGltZWAgdG8gcmV0cmlldmUgdGhlzCBleHRyaW5zaWNzIG9yIG90aGVyIGJsb2NrIHNwZWNpZmljIGRhdGEgYXMgbmVlZGVkLixBY2NvdW50RGF0YTUGCGEBIERhdGEgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFuIGFjY291bnQgKG90aGVyIHRoYW4gbm9uY2UvdHJhbnNhY3Rpb24gY291bnRlciwgd2hpY2ggdGhpc2QgcGFsbGV0IGRvZXMgcmVnYXJkbGVzcykuAAAAADxQYXJhY2hhaW5TeXN0ZW0BPFBhcmFjaGFpblN5c3RlbWxEVW5pbmNsdWRlZFNlZ21lbnQBAC0IBAAYSQEgTGF0ZXN0IGluY2x1ZGVkIGJsb2NrIGRlc2NlbmRhbnRzIHRoZSBydW50aW1lIGFjY2VwdGVkLiBJbiBvdGhlciB3b3JkcywgdGhlc2UgYXJlYQEgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGJsb2NrIHdoaWNoIGhhdmUgbm90IGJlZW4gaW5jbHVkZWQgaW4gdGhlIG9ic2VydmVkTCByZWxheS1jaGFpbiBzdGF0ZS4AdQEgVGhlIHNlZ21lbnQgbGVuZ3RoIGlzIGxpbWl0ZWQgYnkgdGhlIGNhcGFjaXR5IHJldHVybmVkIGZyb20gdGhlIFtgQ29uc2Vuc3VzSG9va2BdIGNvbmZpZ3VyZWQ8IGluIHRoZSBwYWxsZXQuAGxBZ2dyZWdhdGVkVW5pbmNsdWRlZFNlZ21lbnQAAFEIBAAMaQEgU3RvcmFnZSBmaWVsZCB0aGF0IGtlZXBzIHRyYWNrIG9mIGJhbmR3aWR0aCB1c2VkIGJ5IHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgYWxvbmcgd2l0aCB0aGUtASBsYXRlc3QgSFJNUCB3YXRlcm1hcmsuIFVzZWQgZm9yIGxpbWl0aW5nIHRoZSBhY2NlcHRhbmNlIG9mIG5ldyBibG9ja3Mgd2l0aJAgcmVzcGVjdCB0byByZWxheSBjaGFpbiBjb25zdHJhaW50cy4AVFBlbmRpbmdWYWxpZGF0aW9uQ29kZQEAFAQAGFkBIEluIGNhc2Ugb2YgYSBzY2hlZHVsZWQgdXBncmFkZSwgdGhpcyBzdG9yYWdlIGZpZWxkIGNvbnRhaW5zIHRoZSB2YWxpZGF0aW9uIGNvZGUgdG8gYmUkIGFwcGxpZWQuAD0BIEFzIHNvb24gYXMgdGhlIHJlbGF5IGNoYWluIGdpdmVzIHVzIHRoZSBnby1haGVhZCBzaWduYWwsIHdlIHdpbGwgb3ZlcndyaXRlIHRoZXEBIFtgOmNvZGVgXVtzcF9jb3JlOjpzdG9yYWdlOjp3ZWxsX2tub3duX2tleXM6OkNPREVdIHdoaWNoIHdpbGwgcmVzdWx0IHRoZSBuZXh0IGJsb2NrIHByb2Nlc3MJASB3aXRoIHRoZSBuZXcgdmFsaWRhdGlvbiBjb2RlLiBUaGlzIGNvbmNsdWRlcyB0aGUgdXBncmFkZSBwcm9jZXNzLgBETmV3VmFsaWRhdGlvbkNvZGUAABQEABRdASBWYWxpZGF0aW9uIGNvZGUgdGhhdCBpcyBzZXQgYnkgdGhlIHBhcmFjaGFpbiBhbmQgaXMgdG8gYmUgY29tbXVuaWNhdGVkIHRvIGNvbGxhdG9yIGFuZHggY29uc2VxdWVudGx5IHRoZSByZWxheS1jaGFpbi4AZQEgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrIGlmIG5vIG90aGVyIHBhbGxldCBhbHJlYWR5IHNldCwgdGhlIHZhbHVlLgA4VmFsaWRhdGlvbkRhdGEAADwEAAzQIFRoZSBbYFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhYF0gc2V0IGZvciB0aGlzIGJsb2NrLgBxASBUaGlzIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBvbmx5IG9uY2UgYnkgdGhlIFtgUGFsbGV0OjpzZXRfdmFsaWRhdGlvbl9kYXRhYF0gaW5oZXJlbnQuAFBEaWRTZXRWYWxpZGF0aW9uQ29kZQEAwAQABOAgV2VyZSB0aGUgdmFsaWRhdGlvbiBkYXRhIHNldCB0byBub3RpZnkgdGhlIHJlbGF5IGNoYWluPwBkTGFzdFJlbGF5Q2hhaW5CbG9ja051bWJlcgEAKBAAAAAADB0BIFRoZSByZWxheSBjaGFpbiBibG9jayBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBsYXN0IHBhcmFjaGFpbiBibG9jay4AiCBUaGlzIGlzIHVwZGF0ZWQgaW4gYG9uX2ZpbmFsaXplYC4AYFVwZ3JhZGVSZXN0cmljdGlvblNpZ25hbAEAVQgEABx1ASBBbiBvcHRpb24gd2hpY2ggaW5kaWNhdGVzIGlmIHRoZSByZWxheS1jaGFpbiByZXN0cmljdHMgc2lnbmFsbGluZyBhIHZhbGlkYXRpb24gY29kZSB1cGdyYWRlLmEBIEluIG90aGVyIHdvcmRzLCBpZiB0aGlzIGlzIGBTb21lYCBhbmQgW2BOZXdWYWxpZGF0aW9uQ29kZWBdIGlzIGBTb21lYCB0aGVuIHRoZSBwcm9kdWNlZGwgY2FuZGlkYXRlIHdpbGwgYmUgaW52YWxpZC4AcQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgYSBtaXJyb3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZm9yIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBmcm9tIHRoZW0BIHJlbGF5LWNoYWluLiBUaGlzIHZhbHVlIGlzIGVwaGVtZXJhbCB3aGljaCBtZWFucyBpdCBkb2Vzbid0IGhpdCB0aGUgc3RvcmFnZS4gVGhpcyB2YWx1ZSBpc2Agc2V0IGFmdGVyIHRoZSBpbmhlcmVudC4AOFVwZ3JhZGVHb0FoZWFkAQBJCAQAFNwgT3B0aW9uYWwgdXBncmFkZSBnby1haGVhZCBzaWduYWwgZnJvbSB0aGUgcmVsYXktY2hhaW4uAHEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIGEgbWlycm9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gZnJvbSB0aGVtASByZWxheS1jaGFpbi4gVGhpcyB2YWx1ZSBpcyBlcGhlbWVyYWwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBoaXQgdGhlIHN0b3JhZ2UuIFRoaXMgdmFsdWUgaXNgIHNldCBhZnRlciB0aGUgaW5oZXJlbnQuADxSZWxheVN0YXRlUHJvb2YAAEQEABjEIFRoZSBzdGF0ZSBwcm9vZiBmb3IgdGhlIGxhc3QgcmVsYXkgcGFyZW50IGJsb2NrLgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuAFhSZWxldmFudE1lc3NhZ2luZ1N0YXRlAABdCAQAHGUBIFRoZSBzbmFwc2hvdCBvZiBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gbWVzc2FnaW5nIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBhcyBwZXJIIHRoZSByZWxheSBwYXJlbnQuAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AREhvc3RDb25maWd1cmF0aW9uAABxCAQAGCkBIFRoZSBwYXJhY2hhaW4gaG9zdCBjb25maWd1cmF0aW9uIHRoYXQgd2FzIG9idGFpbmVkIGZyb20gdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgA4TGFzdERtcU1xY0hlYWQBAHkIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPQgVGhlIGxhc3QgZG93bndhcmQgbWVzc2FnZSBxdWV1ZSBjaGFpbiBoZWFkIHdlIGhhdmUgb2JzZXJ2ZWQuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAEBMYXN0SHJtcE1xY0hlYWRzAQB9CAQAEEkBIFRoZSBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWRzIHdlIGhhdmUgb2JzZXJ2ZWQgcGVyIGVhY2ggY2hhbm5lbCBpbmNvbWluZyBjaGFubmVsLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LgBkUHJvY2Vzc2VkRG93bndhcmRNZXNzYWdlcwEAKBAAAAAADMggTnVtYmVyIG9mIGRvd253YXJkIG1lc3NhZ2VzIHByb2Nlc3NlZCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AcExhc3RQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2UAAIkIBAAMlCBUaGUgbGFzdCBwcm9jZXNzZWQgZG93bndhcmQgbWVzc2FnZS4AXQEgV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgdG8gZmlsdGVyIHRoZSBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZC4ANEhybXBXYXRlcm1hcmsBACgQAAAAAASgIEhSTVAgd2F0ZXJtYXJrIHRoYXQgd2FzIHNldCBpbiBhIGJsb2NrLgBgTGFzdFByb2Nlc3NlZEhybXBNZXNzYWdlAACJCAQADIQgVGhlIGxhc3QgcHJvY2Vzc2VkIEhSTVAgbWVzc2FnZS4AXQEgV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgdG8gZmlsdGVyIHRoZSBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZC4AUEhybXBPdXRib3VuZE1lc3NhZ2VzAQCNCAQADKQgSFJNUCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AOFVwd2FyZE1lc3NhZ2VzAQAkBAAMrCBVcHdhcmQgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A8CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgZm9yIGVhY2ggbmV3IGJsb2NrLgBUUGVuZGluZ1Vwd2FyZE1lc3NhZ2VzAQAkBAAEMQEgVXB3YXJkIG1lc3NhZ2VzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgYW5kIG5vdCB5ZXQgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uAFBQZW5kaW5nVXB3YXJkU2lnbmFscwEAJAQADC0BIFVwd2FyZCBzaWduYWxzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgYW5kIG5vdCB5ZXQgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uANggVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2ZpbmFsaXplYCBmb3IgZWFjaCBibG9jay4AXFVwd2FyZERlbGl2ZXJ5RmVlRmFjdG9yAQCVCEAAAGSns7bgDQAAAAAAAAAABOQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkgZm9yIFVNUC4AhEFubm91bmNlZEhybXBNZXNzYWdlc1BlckNhbmRpZGF0ZQEAKBAAAAAACGUBIFRoZSBudW1iZXIgb2YgSFJNUCBtZXNzYWdlcyB3ZSBvYnNlcnZlZCBpbiBgb25faW5pdGlhbGl6ZWAgYW5kIHRodXMgdXNlZCB0aGF0IG51bWJlciBmb3LwIGFubm91bmNpbmcgdGhlIHdlaWdodCBvZiBgb25faW5pdGlhbGl6ZWAgYW5kIGBvbl9maW5hbGl6ZWAuAGhSZXNlcnZlZFhjbXBXZWlnaHRPdmVycmlkZQAAcQEEAAhdASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgWENNUCBtZXNzYWdlcy4gVGhpc7ggb3ZlcnJpZGVzIHRoZSBhbW91bnQgc2V0IGluIHRoZSBDb25maWcgdHJhaXQuAGRSZXNlcnZlZERtcFdlaWdodE92ZXJyaWRlAABxAQQACFkBIFRoZSB3ZWlnaHQgd2UgcmVzZXJ2ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jayBmb3IgcHJvY2Vzc2luZyBETVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LgBgQ3VzdG9tVmFsaWRhdGlvbkhlYWREYXRhAAAUBAAMKQEgQSBjdXN0b20gaGVhZCBkYXRhIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIGFzIHJlc3VsdCBvZiBgdmFsaWRhdGVfYmxvY2tgLgARASBTZWUgYFBhbGxldDo6c2V0X2N1c3RvbV92YWxpZGF0aW9uX2hlYWRfZGF0YWAgZm9yIG1vcmUgaW5mb3JtYXRpb24uAAE0AAF1BgAEKFNlbGZQYXJhSWSQENQHAAAEuCBSZXR1cm5zIHRoZSBwYXJhY2hhaW4gSUQgd2UgYXJlIHJ1bm5pbmcgd2l0aC4AAZkIAAAAAQAAJFRpbWVzdGFtcAEkVGltZXN0YW1wCAxOb3cBABggAAAAAAAAAAAEoCBUaGUgY3VycmVudCB0aW1lIGZvciB0aGUgY3VycmVudCBibG9jay4AJERpZFVwZGF0ZQEAwAQAENggV2hldGhlciB0aGUgdGltZXN0YW1wIGhhcyBiZWVuIHVwZGF0ZWQgaW4gdGhpcyBibG9jay4AVQEgVGhpcyB2YWx1ZSBpcyB1cGRhdGVkIHRvIGB0cnVlYCB1cG9uIHN1Y2Nlc3NmdWwgc3VibWlzc2lvbiBvZiBhIHRpbWVzdGFtcCBieSBhIG5vZGUuRQEgSXQgaXMgdGhlbiBjaGVja2VkIGF0IHRoZSBlbmQgb2YgZWFjaCBibG9jayBleGVjdXRpb24gaW4gdGhlIGBvbl9maW5hbGl6ZWAgaG9vay4AAaQAAAQ0TWluaW11bVBlcmlvZBgguAsAAAAAAAAYjCBUaGUgbWluaW11bSBwZXJpb2QgYmV0d2VlbiBibG9ja3MuAE0BIEJlIGF3YXJlIHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlICpleHBlY3RlZCogcGVyaW9kIHRoYXQgdGhlIGJsb2NrIHByb2R1Y3Rpb25JASBhcHBhcmF0dXMgcHJvdmlkZXMuIFlvdXIgY2hvc2VuIGNvbnNlbnN1cyBzeXN0ZW0gd2lsbCBnZW5lcmFsbHkgd29yayB3aXRoIHRoaXMgdG9hASBkZXRlcm1pbmUgYSBzZW5zaWJsZSBibG9jayB0aW1lLiBGb3IgZXhhbXBsZSwgaW4gdGhlIEF1cmEgcGFsbGV0IGl0IHdpbGwgYmUgZG91YmxlIHRoaXNwIHBlcmlvZCBvbiBkZWZhdWx0IHNldHRpbmdzLgAABBhNb21lbnQYBJggVHlwZSB1c2VkIGZvciBleHByZXNzaW5nIGEgdGltZXN0YW1wLgADAAA0UGFyYWNoYWluSW5mbwE0UGFyYWNoYWluSW5mbwQsUGFyYWNoYWluSWQBAJAQZAAAAAAAAAAAAAAABAAALFJvb3RUZXN0aW5nASxSb290VGVzdGluZwABrAABeQYAAAAAAAUAACBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBALxAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS4AQEluYWN0aXZlSXNzdWFuY2UBALxAAAAAAAAAAAAAAAAAAAAAAAQJASBUaGUgdG90YWwgdW5pdHMgb2Ygb3V0c3RhbmRpbmcgZGVhY3RpdmF0ZWQgYmFsYW5jZSBpbiB0aGUgc3lzdGVtLgAcQWNjb3VudAEBBAIANQYBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4AFExvY2tzAQEEAgCdCAQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAIFJlc2VydmVzAQEEAgCtCAQADKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAUSG9sZHMBAQQCALkIBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLgAcRnJlZXplcwEBBAIAxQgEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgABtAABfQYAEEhFeGlzdGVudGlhbERlcG9zaXS8QAAAAAAAAAAAAAAAAAAAAAAgQQEgVGhlIG1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIGtlZXAgYW4gYWNjb3VudCBvcGVuLiBNVVNUIEJFIEdSRUFURVIgVEhBTiBaRVJPIQBZASBJZiB5b3UgKnJlYWxseSogbmVlZCBpdCB0byBiZSB6ZXJvLCB5b3UgY2FuIGVuYWJsZSB0aGUgZmVhdHVyZSBgaW5zZWN1cmVfemVyb19lZGAgZm9yYQEgdGhpcyBwYWxsZXQuIEhvd2V2ZXIsIHlvdSBkbyBzbyBhdCB5b3VyIG93biByaXNrOiB0aGlzIHdpbGwgb3BlbiB1cCBhIG1ham9yIERvUyB2ZWN0b3IuWQEgSW4gY2FzZSB5b3UgaGF2ZSBtdWx0aXBsZSBzb3VyY2VzIG9mIHByb3ZpZGVyIHJlZmVyZW5jZXMsIHlvdSBtYXkgYWxzbyBnZXQgdW5leHBlY3RlZIwgYmVoYXZpb3VyIGlmIHlvdSBzZXQgdGhpcyB0byB6ZXJvLgDwIEJvdHRvbSBsaW5lOiBEbyB5b3Vyc2VsZiBhIGZhdm91ciBhbmQgbWFrZSBpdCBhdCBsZWFzdCBvbmUhACBNYXhMb2NrcygQMgAAABD0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NrcyB0aGF0IHNob3VsZCBleGlzdCBvbiBhbiBhY2NvdW50LtwgTm90IHN0cmljdGx5IGVuZm9yY2VkLCBidXQgdXNlZCBmb3Igd2VpZ2h0IGVzdGltYXRpb24uAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AALE1heFJlc2VydmVzKBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAoTWF4RnJlZXplcygQAgAAAARhASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5kaXZpZHVhbCBmcmVlemUgbG9ja3MgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4AAdkIABBEUnVudGltZUhvbGRSZWFzb26FBgR0IFRoZSBvdmVyYXJjaGluZyBob2xkIHJlYXNvbi4cQmFsYW5jZbwEbCBUaGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LkRSZXNlcnZlSWRlbnRpZmllcmQMaCBUaGUgSUQgdHlwZSBmb3IgcmVzZXJ2ZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gQEZyZWV6ZUlkZW50aWZpZXLNCARkIFRoZSBJRCB0eXBlIGZvciBmcmVlemVzLgAKAABIVHJhbnNhY3Rpb25QYXltZW50AUhUcmFuc2FjdGlvblBheW1lbnQMRE5leHRGZWVNdWx0aXBsaWVyAQCVCEAAAGSns7bgDQAAAAAAAAAAAAA4U3RvcmFnZVZlcnNpb24BAN0IBAAAADxUeFBheW1lbnRDcmVkaXQAAOEIBAAM8CBUaGUgYE9uQ2hhcmdlVHJhbnNhY3Rpb25gIHN0b3JlcyB0aGUgd2l0aGRyYXduIHR4IGZlZSBoZXJlLgA1ASBVc2UgYHdpdGhkcmF3X3R4ZmVlYCBhbmQgYHJlbWFpbmluZ190eGZlZWAgdG8gYWNjZXNzIGZyb20gb3V0c2lkZSB0aGUgY3JhdGUuAAABlQYABGBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXIIBAVUWQEgQSBmZWUgbXVsdGlwbGllciBmb3IgYE9wZXJhdGlvbmFsYCBleHRyaW5zaWNzIHRvIGNvbXB1dGUgInZpcnR1YWwgdGlwIiB0byBib29zdCB0aGVpciwgYHByaW9yaXR5YABRASBUaGlzIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGBmaW5hbF9mZWVgIHRvIG9idGFpbiBhICJ2aXJ0dWFsIHRpcCIgdGhhdCBpcyBsYXRlcvQgYWRkZWQgdG8gYSB0aXAgY29tcG9uZW50IGluIHJlZ3VsYXIgYHByaW9yaXR5YCBjYWxjdWxhdGlvbnMuTQEgSXQgbWVhbnMgdGhhdCBhIGBOb3JtYWxgIHRyYW5zYWN0aW9uIGNhbiBmcm9udC1ydW4gYSBzaW1pbGFybHktc2l6ZWQgYE9wZXJhdGlvbmFsYEEBIGV4dHJpbnNpYyAod2l0aCBubyB0aXApLCBieSBpbmNsdWRpbmcgYSB0aXAgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSB2aXJ0dWFsIHRpcC4APCBgYGBydXN0LGlnbm9yZUAgLy8gRm9yIGBOb3JtYWxgjCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCk7AFQgLy8gRm9yIGBPcGVyYXRpb25hbGARASBsZXQgdmlydHVhbF90aXAgPSAoaW5jbHVzaW9uX2ZlZSArIHRpcCkgKiBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXI7xCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCArIHZpcnR1YWxfdGlwKTsQIGBgYABRASBOb3RlIHRoYXQgc2luY2Ugd2UgdXNlIGBmaW5hbF9mZWVgIHRoZSBtdWx0aXBsaWVyIGFwcGxpZXMgYWxzbyB0byB0aGUgcmVndWxhciBgdGlwYF0BIHNlbnQgd2l0aCB0aGUgdHJhbnNhY3Rpb24uIFNvLCBub3Qgb25seSBkb2VzIHRoZSB0cmFuc2FjdGlvbiBnZXQgYSBwcmlvcml0eSBidW1wIGJhc2VkYQEgb24gdGhlIGBpbmNsdXNpb25fZmVlYCwgYnV0IHdlIGFsc28gYW1wbGlmeSB0aGUgaW1wYWN0IG9mIHRpcHMgYXBwbGllZCB0byBgT3BlcmF0aW9uYWxgOCB0cmFuc2FjdGlvbnMuAAAAAAsAAEBQYXJhY2hhaW5TdGFraW5nAUBQYXJhY2hhaW5TdGFraW5nWEhDb2xsYXRvckNvbW1pc3Npb24BALAQAAAAAAToIENvbW1pc3Npb24gcGVyY2VudCB0YWtlbiBvZmYgb2YgcmV3YXJkcyBmb3IgYWxsIGNvbGxhdG9ycwA0VG90YWxTZWxlY3RlZAEAKBAAAAAABKggVGhlIHRvdGFsIGNhbmRpZGF0ZXMgc2VsZWN0ZWQgZXZlcnkgcm91bmQAZEluZmxhdGlvbkRpc3RyaWJ1dGlvbkluZm8BANyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF0BIEluZmxhdGlvbiBkaXN0cmlidXRpb24gY29uZmlndXJhdGlvbiwgaW5jbHVkaW5nIGFjY291bnRzIHRoYXQgc2hvdWxkIHJlY2VpdmUgaW5mbGF0aW9u2CBiZWZvcmUgaXQgaXMgZGlzdHJpYnV0ZWQgdG8gY29sbGF0b3JzIGFuZCBkZWxlZ2F0b3JzLgAhASBUaGUgc3VtIG9mIHRoZSBkaXN0cmlidXRpb24gcGVyY2VudHMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTAwLgAUUm91bmQBAOkIUAEAAAABAAAAFAAAAAAAAAAAAAAABOAgQ3VycmVudCByb3VuZCBpbmRleCBhbmQgbmV4dCByb3VuZCBzY2hlZHVsZWQgdHJhbnNpdGlvbgA4RGVsZWdhdG9yU3RhdGUAAQQFAO0IBAAESQEgR2V0IGRlbGVnYXRvciBzdGF0ZSBhc3NvY2lhdGVkIHdpdGggYW4gYWNjb3VudCBpZiBhY2NvdW50IGlzIGRlbGVnYXRpbmcgZWxzZSBOb25lADRDYW5kaWRhdGVJbmZvAAEEBQABCQQABGUBIEdldCBjb2xsYXRvciBjYW5kaWRhdGUgaW5mbyBhc3NvY2lhdGVkIHdpdGggYW4gYWNjb3VudCBpZiBhY2NvdW50IGlzIGNhbmRpZGF0ZSBlbHNlIE5vbmUAbERlbGVnYXRpb25TY2hlZHVsZWRSZXF1ZXN0cwEBCAICFQkZCQQAFAUBIFN0b3JlcyBvdXRzdGFuZGluZyBkZWxlZ2F0aW9uIHJlcXVlc3RzIHBlciBjb2xsYXRvciAmIGRlbGVnYXRvci4AxCBFYWNoIGAoY29sbGF0b3IsIGRlbGVnYXRvcilgIHBhaXIgY2FuIGhhdmUgdXAgdG/oIGBUOjpNYXhTY2hlZHVsZWRSZXF1ZXN0c1BlckRlbGVnYXRvcmAgc2NoZWR1bGVkIHJlcXVlc3RzLOQgd2hpY2ggYXJlIGFsd2F5cyBpbnRlcnByZXRlZCBhbmQgZXhlY3V0ZWQgaW4gRklGTyBvcmRlci4AmERlbGVnYXRpb25TY2hlZHVsZWRSZXF1ZXN0c1BlckNvbGxhdG9yAQEEAgAoEAAAAAAUeQEgVHJhY2tzIGhvdyBtYW55IGRlbGVnYXRvcnMgaGF2ZSBhdCBsZWFzdCBvbmUgcGVuZGluZyBkZWxlZ2F0aW9uIHJlcXVlc3QgZm9yIGEgZ2l2ZW4gY29sbGF0b3IuAGUBIFRoaXMgaXMgdXNlZCB0byBlbmZvcmNlIHRoYXQgdGhlIG51bWJlciBvZiBkZWxlZ2F0b3JzIHdpdGggcGVuZGluZyByZXF1ZXN0cyBwZXIgY29sbGF0b3JtASBkb2VzIG5vdCBleGNlZWQgYE1heFRvcERlbGVnYXRpb25zUGVyQ2FuZGlkYXRlICsgTWF4Qm90dG9tRGVsZWdhdGlvbnNQZXJDYW5kaWRhdGVgIHdpdGhvdXS8IGhhdmluZyB0byBpdGVyYXRlIG92ZXIgYWxsIHNjaGVkdWxlZCByZXF1ZXN0cy4AlERlbGVnYXRpb25TY2hlZHVsZWRSZXF1ZXN0c1N1bW1hcnlNYXAAAQgCAhUJoQYEABghASBTdW1tYXJ5IG9mIHBlbmRpbmcgZGVsZWdhdGlvbiBhY3Rpb25zIGZvciBhIChjb2xsYXRvciwgZGVsZWdhdG9yKSBwYWlyLgAlASBTdG9yZXMgYERlbGVnYXRpb25BY3Rpb246OlJldm9rZShib25kKWAgd2hlbiBhIHJldm9jYXRpb24gaXMgcGVuZGluZywgb3ItASBgRGVsZWdhdGlvbkFjdGlvbjo6RGVjcmVhc2UodG90YWwpYCB3aXRoIHRoZSBhZ2dyZWdhdGVkIHN1bSBvZiBhbGwgcGVuZGluZwUBIGRlY3JlYXNlIGFtb3VudHMuIFVzZWQgZHVyaW5nIHJvdW5kIHRyYW5zaXRpb25zIHRvIGFkanVzdCByZXdhcmQVASBjYWxjdWxhdGlvbnMgd2l0aG91dCByZWFkaW5nIHRoZSBmdWxsIGBEZWxlZ2F0aW9uU2NoZWR1bGVkUmVxdWVzdHNgLgBoQXV0b0NvbXBvdW5kaW5nRGVsZWdhdGlvbnMBAQQCACUJBAAE0CBTdG9yZXMgYXV0by1jb21wb3VuZGluZyBjb25maWd1cmF0aW9uIHBlciBjb2xsYXRvci4AOFRvcERlbGVnYXRpb25zAAEEBQAxCQQABJwgVG9wIGRlbGVnYXRpb25zIGZvciBjb2xsYXRvciBjYW5kaWRhdGUAREJvdHRvbURlbGVnYXRpb25zAAEEBQAxCQQABKggQm90dG9tIGRlbGVnYXRpb25zIGZvciBjb2xsYXRvciBjYW5kaWRhdGUASFNlbGVjdGVkQ2FuZGlkYXRlcwEANQkEAATcIFRoZSBjb2xsYXRvciBjYW5kaWRhdGVzIHNlbGVjdGVkIGZvciB0aGUgY3VycmVudCByb3VuZAAUVG90YWwBALxAAAAAAAAAAAAAAAAAAAAAAASwIFRvdGFsIGNhcGl0YWwgbG9ja2VkIGJ5IHRoaXMgc3Rha2luZyBwYWxsZXQANENhbmRpZGF0ZVBvb2wBADkJBAAEFQEgVGhlIHBvb2wgb2YgY29sbGF0b3IgY2FuZGlkYXRlcywgZWFjaCB3aXRoIHRoZWlyIHRvdGFsIGJhY2tpbmcgc3Rha2UAHEF0U3Rha2UAAQgFBUEJRQkEAAQBASBTbmFwc2hvdCBvZiBjb2xsYXRvciBkZWxlZ2F0aW9uIHN0YWtlIGF0IHRoZSBzdGFydCBvZiB0aGUgcm91bmQALFdhc0luYWN0aXZlAAEIBQVBCf0FBAAIfCBSZWNvcmRzIGNvbGxhdG9ycycgaW5hY3Rpdml0eS4NASBEYXRhIHBlcnNpc3RzIGZvciBNYXhPZmZsaW5lUm91bmRzICsgMSByb3VuZHMgYmVmb3JlIGJlaW5nIHBydW5lZC4AOERlbGF5ZWRQYXlvdXRzAAEEBShRCQQABEAgRGVsYXllZCBwYXlvdXRzADxJbmZsYXRpb25Db25maWcBAFUJIQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYCBJbmZsYXRpb24gY29uZmlndXJhdGlvbgAYUG9pbnRzAQEEBSgoEAAAAAAEEQEgVG90YWwgcG9pbnRzIGF3YXJkZWQgdG8gY29sbGF0b3JzIGZvciBibG9jayBwcm9kdWN0aW9uIGluIHRoZSByb3VuZAAoQXdhcmRlZFB0cwEBCAUFQQkoEAAAAAAEjCBQb2ludHMgZm9yIGVhY2ggY29sbGF0b3IgcGVyIHJvdW5kAFBFbmFibGVNYXJraW5nT2ZmbGluZQEAwAQABNggS2lsbHN3aXRjaCB0byBlbmFibGUvZGlzYWJsZSBtYXJraW5nIG9mZmxpbmUgZmVhdHVyZS4AAcwAAZkGAExETWluQmxvY2tzUGVyUm91bmQoEAoAAAAEjCBNaW5pbXVtIG51bWJlciBvZiBibG9ja3MgcGVyIHJvdW5kAEBNYXhPZmZsaW5lUm91bmRzKBABAAAACHkBIElmIGEgY29sbGF0b3IgZG9lc24ndCBwcm9kdWNlIGFueSBibG9jayBvbiB0aGlzIG51bWJlciBvZiByb3VuZHMsIGl0IGlzIG5vdGlmaWVkIGFzIGluYWN0aXZlLvQgVGhpcyB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBSZXdhcmRQYXltZW50RGVsYXkuAFBMZWF2ZUNhbmRpZGF0ZXNEZWxheSgQHAAAAARFASBOdW1iZXIgb2Ygcm91bmRzIHRoYXQgY2FuZGlkYXRlcyByZW1haW4gYm9uZGVkIGJlZm9yZSBleGl0IHJlcXVlc3QgaXMgZXhlY3V0YWJsZQBYQ2FuZGlkYXRlQm9uZExlc3NEZWxheSgQHAAAAARVASBOdW1iZXIgb2Ygcm91bmRzIGNhbmRpZGF0ZSByZXF1ZXN0cyB0byBkZWNyZWFzZSBzZWxmLWJvbmQgbXVzdCB3YWl0IHRvIGJlIGV4ZWN1dGFibGUAUExlYXZlRGVsZWdhdG9yc0RlbGF5KBAcAAAABEUBIE51bWJlciBvZiByb3VuZHMgdGhhdCBkZWxlZ2F0b3JzIHJlbWFpbiBib25kZWQgYmVmb3JlIGV4aXQgcmVxdWVzdCBpcyBleGVjdXRhYmxlAFRSZXZva2VEZWxlZ2F0aW9uRGVsYXkoEBwAAAAEYQEgTnVtYmVyIG9mIHJvdW5kcyB0aGF0IGRlbGVnYXRpb25zIHJlbWFpbiBib25kZWQgYmVmb3JlIHJldm9jYXRpb24gcmVxdWVzdCBpcyBleGVjdXRhYmxlAFxEZWxlZ2F0aW9uQm9uZExlc3NEZWxheSgQHAAAAAQtASBOdW1iZXIgb2Ygcm91bmRzIHRoYXQgZGVsZWdhdGlvbiBsZXNzIHJlcXVlc3RzIG11c3Qgd2FpdCBiZWZvcmUgZXhlY3V0YWJsZQBIUmV3YXJkUGF5bWVudERlbGF5KBACAAAABOAgTnVtYmVyIG9mIHJvdW5kcyBhZnRlciB3aGljaCBibG9jayBhdXRob3JzIGFyZSByZXdhcmRlZABUTWluU2VsZWN0ZWRDYW5kaWRhdGVzKBAIAAAABMggTWluaW11bSBudW1iZXIgb2Ygc2VsZWN0ZWQgY2FuZGlkYXRlcyBldmVyeSByb3VuZAB0TWF4VG9wRGVsZWdhdGlvbnNQZXJDYW5kaWRhdGUoECwBAAAEuCBNYXhpbXVtIHRvcCBkZWxlZ2F0aW9ucyBjb3VudGVkIHBlciBjYW5kaWRhdGUAgE1heEJvdHRvbURlbGVnYXRpb25zUGVyQ2FuZGlkYXRlKBAyAAAABNwgTWF4aW11bSBib3R0b20gZGVsZWdhdGlvbnMgKG5vdCBjb3VudGVkKSBwZXIgY2FuZGlkYXRlAGhNYXhEZWxlZ2F0aW9uc1BlckRlbGVnYXRvcigQZAAAAASIIE1heGltdW0gZGVsZWdhdGlvbnMgcGVyIGRlbGVnYXRvcgCATWF4U2NoZWR1bGVkUmVxdWVzdHNQZXJEZWxlZ2F0b3IoEDIAAAAELQEgTWF4aW11bSBudW1iZXIgb2Ygc2NoZWR1bGVkIGRlbGVnYXRpb24gcmVxdWVzdHMgcGVyIChjb2xsYXRvciwgZGVsZWdhdG9yKS4APE1pbkNhbmRpZGF0ZVN0a7xAAACA9krhxwItFQAAAAAAAAQJASBNaW5pbXVtIHN0YWtlIHJlcXVpcmVkIGZvciBhbnkgYWNjb3VudCB0byBiZSBhIGNvbGxhdG9yIGNhbmRpZGF0ZQA0TWluRGVsZWdhdGlvbrxAAACIsRav47UCAAAAAAAAAAT4IE1pbmltdW0gc3Rha2UgZm9yIGFueSByZWdpc3RlcmVkIG9uLWNoYWluIGFjY291bnQgdG8gZGVsZWdhdGUAMFNsb3REdXJhdGlvbhggcBcAAAAAAAAEmCBHZXQgdGhlIHNsb3QgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzACRCbG9ja1RpbWUYIHAXAAAAAAAABNggR2V0IHRoZSBhdmVyYWdlIHRpbWUgYmV0d2VlbiAyIGJsb2NrcyBpbiBtaWxsaXNlY29uZHMANE1heENhbmRpZGF0ZXMoEMgAAAAETCBNYXhpbXVtIGNhbmRpZGF0ZXMAYExpbmVhckluZmxhdGlvblRocmVzaG9sZHkCRAEAAACw4plgWeKd4AMAAAAACLggVGhyZXNob2xkIGFmdGVyIHdoaWNoIGluZmxhdGlvbiBiZWNvbWUgbGluZWFysCBJZiB5b3UgZG9uJ3Qgd2FudCB0byB1c2UgaXQsIHNldCBpdCB0byBgKClgAAFZCQAAABQAADhBdXRob3JJbmhlcmVudAE4QXV0aG9ySW5oZXJlbnQIGEF1dGhvcgAAAAQABGQgQXV0aG9yIG9mIGN1cnJlbnQgYmxvY2suAEBJbmhlcmVudEluY2x1ZGVkAQDABAAEjCBDaGVjayBpZiB0aGUgaW5oZXJlbnQgd2FzIGluY2x1ZGVkAAHoAAAAAV0JAAQgQXV0aG9ySWQABJggVHlwZSB1c2VkIHRvIHJlZmVyIHRvIGEgYmxvY2sgYXV0aG9yLgAVAAAwQXV0aG9yRmlsdGVyATBBdXRob3JGaWx0ZXIINEVsaWdpYmxlUmF0aW8BANgEMgACjHVzZSBgcGFsbGV0OjpFbGlnaWJsZUNvdW50YCBpbnN0ZWFkADRFbGlnaWJsZUNvdW50AQDwEDIAAAAEDQEgVGhlIG51bWJlciBvZiBhY3RpdmUgYXV0aG9ycyB0aGF0IHdpbGwgYmUgZWxpZ2libGUgYXQgZWFjaCBoZWlnaHQuAAHsAAGpBgAAAAAAFgAANEF1dGhvck1hcHBpbmcBNEF1dGhvck1hcHBpbmcISE1hcHBpbmdXaXRoRGVwb3NpdAABBAL4YQkEAAgVASBXZSBtYWludGFpbiBhIG1hcHBpbmcgZnJvbSB0aGUgTmltYnVzSWRzIHVzZWQgaW4gdGhlIGNvbnNlbnN1cyBsYXllcmwgdG8gdGhlIEFjY291bnRJZHMgcnVudGltZS4AME5pbWJ1c0xvb2t1cAABBAIA+AQABOwgV2UgbWFpbnRhaW4gYSByZXZlcnNlIG1hcHBpbmcgZnJvbSBBY2NvdW50SWRzIHRvIE5pbWJ1c0lEUwAB9AABrQYAAAFlCQAEEEtleXOxBghAIEFkZGl0aW9uYWwga2V5c1EBIENvbnZlcnRpYmxlIEZyb208TmltYnVzSWQ+IHRvIGdldCBkZWZhdWx0IGtleXMgZm9yIGVhY2ggbWFwcGluZyAoZm9yIHRoZSBtaWdyYXRpb24pABcAAEBNb29uYmVhbU9yYml0ZXJzAUBNb29uYmVhbU9yYml0ZXJzIFRBY2NvdW50TG9va3VwT3ZlcnJpZGUAAQQCABkDBAAEYCBBY2NvdW50IGxvb2t1cCBvdmVycmlkZQA0Q29sbGF0b3JzUG9vbAABBAIAaQkEAAS8IEN1cnJlbnQgb3JiaXRlcnMsIHdpdGggdGhlaXIgInBhcmVudCIgY29sbGF0b3IAXENvdW50ZXJGb3JDb2xsYXRvcnNQb29sAQAoEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAMEN1cnJlbnRSb3VuZAEAKBAAAAAABFAgQ3VycmVudCByb3VuZCBpbmRleAA0Rm9yY2VSb3RhdGlvbgEAwAQADMwgSWYgdHJ1ZSwgaXQgZm9yY2VzIHRoZSByb3RhdGlvbiBhdCB0aGUgbmV4dCByb3VuZC5pASBBIHVzZSBjYXNlOiB3aGVuIGNoYW5naW5nIFJvdGF0ZVBlcmlvZCwgeW91IG5lZWQgYSBtaWdyYXRpb24gY29kZSB0aGF0IHNldHMgdGhpcyB2YWx1ZSB0b6AgdHJ1ZSB0byBhdm9pZCBob2xlcyBpbiBPcmJpdGVyUGVyUm91bmQuAERNaW5PcmJpdGVyRGVwb3NpdAAAvAQABOAgTWluaW11bSBkZXBvc2l0IHJlcXVpcmVkIHRvIGJlIHJlZ2lzdGVyZWQgYXMgYW4gb3JiaXRlcgA8T3JiaXRlclBlclJvdW5kAAEIBQJBCQAEAATcIFN0b3JlIGFjdGl2ZSBvcmJpdGVyIHBlciByb3VuZCBhbmQgcGVyIHBhcmVudCBjb2xsYXRvcgBEUmVnaXN0ZXJlZE9yYml0ZXIAAQQCAMAEAAR8IENoZWNrIGlmIGFjY291bnQgaXMgYW4gb3JiaXRlcgAB/AABtQYADCxNYXhQb29sU2l6ZSgQCAAAAASkIE1heGltdW0gbnVtYmVyIG9mIG9yYml0ZXJzIHBlciBjb2xsYXRvci4APE1heFJvdW5kQXJjaGl2ZSgQBAAAAASwIE1heGltdW0gbnVtYmVyIG9mIHJvdW5kIHRvIGtlZXAgb24gc3RvcmFnZS4AMFJvdGF0ZVBlcmlvZCgQAQAAAAzcIE51bWJlciBvZiByb3VuZHMgYmVmb3JlIGNoYW5naW5nIHRoZSBzZWxlY3RlZCBvcmJpdGVyLi0BIFdBUk5JTkc6IHdoZW4gY2hhbmdpbmcgYFJvdGF0ZVBlcmlvZGAsIHlvdSBuZWVkIGEgbWlncmF0aW9uIGNvZGUgdGhhdCBzZXRz9CBgRm9yY2VSb3RhdGlvbmAgdG8gdHJ1ZSB0byBhdm9pZCBob2xlcyBpbiBgT3JiaXRlclBlclJvdW5kYC4AAXUJAAQoUm91bmRJbmRleCgESCBSb3VuZCBpbmRleCB0eXBlLgAYAAAwQXN5bmNCYWNraW5nATBBc3luY0JhY2tpbmcEIFNsb3RJbmZvAAB5CQQAEAkBIEN1cnJlbnQgcmVsYXkgY2hhaW4gc2xvdCBwYWlyZWQgd2l0aCBhIG51bWJlciBvZiBhdXRob3JlZCBibG9ja3MuAGUBIFRoaXMgaXMgdXBkYXRlZCBpbiBbYEZpeGVkVmVsb2NpdHlDb25zZW5zdXNIb29rOjpvbl9zdGF0ZV9wcm9vZmBdIHdpdGggdGhlIGN1cnJlbnQgcmVsYXncIGNoYWluIHNsb3QgYXMgcHJvdmlkZWQgYnkgdGhlIHJlbGF5IGNoYWluIHN0YXRlIHByb29mLgAAAAgwU2xvdER1cmF0aW9uGCBwFwAAAAAAAAgVASBUaGUgc2xvdCBkdXJhdGlvbiBOaW1idXMgc2hvdWxkIHJ1biB3aXRoLCBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzLj0BIFRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhpcyB0eXBlIHNob3VsZCBub3QgY2hhbmdlIHdoaWxlIHRoZSBjaGFpbiBpcyBydW5uaW5nLgBERXhwZWN0ZWRCbG9ja1RpbWUYIHAXAAAAAAAAFPAgVE9ETzogUmVtb3ZlIHRoaXMgY29uc3RhbnQgb25jZSBjaG9wc3RpY2tzIGhhcyBiZWVuIHVwZGF0ZWQFAiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9BY2FsYU5ldHdvcmsvY2hvcHN0aWNrcy9ibG9iLzFhODRiNTUwOTdkMmVmZGZhZWU2NDk2NGI0YjM2YWY3Yzc0MWQ4NTQvcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvaW5kZXgudHMjTDEzMgBtASBQdXJlbHkgaW5mb3JtYXRpdmUsIGJ1dCB1c2VkIGJ5IG1vY2tpbmcgdG9vbHMgbGlrZSBjaG9zcHRpY2tzIHRvIGFsbG93IGtub3dpbmcgaG93IHRvIG1vY2scIGJsb2NrcwAAAAAZAAAcVXRpbGl0eQABAQEAAbkGAARMYmF0Y2hlZF9jYWxsc19saW1pdCgQqioAAASoIFRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIGJhdGNoZWQgY2FsbHMuAAGBCQAILFJ1bnRpbWVDYWxsDARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuNFBhbGxldHNPcmlnaW4NAQTwIFRoZSBjYWxsZXIgb3JpZ2luLCBvdmVyYXJjaGluZyB0eXBlIG9mIGFsbCBwYWxsZXRzIG9yaWdpbnMuAB4AABRQcm94eQEUUHJveHkIHFByb3hpZXMBAQQFAIUJRAAAAAAAAAAAAAAAAAAAAAAACEUBIFRoZSBzZXQgb2YgYWNjb3VudCBwcm94aWVzLiBNYXBzIHRoZSBhY2NvdW50IHdoaWNoIGhhcyBkZWxlZ2F0ZWQgdG8gdGhlIGFjY291bnRzIQEgd2hpY2ggYXJlIGJlaW5nIGRlbGVnYXRlZCB0bywgdG9nZXRoZXIgd2l0aCB0aGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdC4ANEFubm91bmNlbWVudHMBAQQFAJUJRAAAAAAAAAAAAAAAAAAAAAAABKwgVGhlIGFubm91bmNlbWVudHMgbWFkZSBieSB0aGUgcHJveHkgKGtleSkuAAF1AQABwQYAGEBQcm94eURlcG9zaXRCYXNlvEAAAPAHmFrjiwAAAAAAAAAAEBEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBwcm94eS4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzJQEgYHNpemVvZihCYWxhbmNlKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzIGBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuAEhQcm94eURlcG9zaXRGYWN0b3K8QAAA1SrjEeoCAAAAAAAAAAAUvCBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgcHJveHkgYWRkZWQuADUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIHBsdXMgYW4gaW5zdGFuY2Ugb2YgYFByb3h5VHlwZWAgbW9yZSBpbnRvIGFhASBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4gVGh1cywgd2hlbiBjb25maWd1cmluZyBgUHJveHlEZXBvc2l0RmFjdG9yYCBvbmUgc2hvdWxkIHRha2X0IGludG8gYWNjb3VudCBgMzIgKyBwcm94eV90eXBlLmVuY29kZSgpLmxlbigpYCBieXRlcyBvZiBkYXRhLgAoTWF4UHJveGllcygQIAAAAATwIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBwcm94aWVzIGFsbG93ZWQgZm9yIGEgc2luZ2xlIGFjY291bnQuAChNYXhQZW5kaW5nKBAgAAAABEUBIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLWRlbGF5ZWQgYW5ub3VuY2VtZW50cyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBlbmRpbmcuAFxBbm5vdW5jZW1lbnREZXBvc2l0QmFzZbxAAADwB5ha44sAAAAAAAAAABAxASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGFuIGFubm91bmNlbWVudC4ASQEgVGhpcyBpcyBoZWxkIHdoZW4gYSBuZXcgc3RvcmFnZSBpdGVtIGhvbGRpbmcgYSBgQmFsYW5jZWAgaXMgY3JlYXRlZCAodHlwaWNhbGx5IDE2ICBieXRlcykuAGRBbm5vdW5jZW1lbnREZXBvc2l0RmFjdG9yvEAAADhyCIXFBwAAAAAAAAAAENQgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIGFubm91bmNlbWVudCBtYWRlLgBZASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyBhbiBgQWNjb3VudElkYCwgYEhhc2hgIGFuZCBgQmxvY2tOdW1iZXJgICh0eXBpY2FsbHkgNjggYnl0ZXMpjCBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuAAGlCQAILFJ1bnRpbWVDYWxsDARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuJFByb3h5VHlwZX0BEFUBIEEga2luZCBvZiBwcm94eTsgc3BlY2lmaWVkIHdpdGggdGhlIHByb3h5IGFuZCBwYXNzZWQgaW4gdG8gdGhlIGBJc1Byb3h5YWJsZWAgZmlsdGVyLlEBIFRoZSBpbnN0YW5jZSBmaWx0ZXIgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gY2FsbCBtYXkgYmUgcHJveGllZCB1bmRlciB0aGlzIHR5cGUuAE0BIElNUE9SVEFOVDogYERlZmF1bHRgIG11c3QgYmUgcHJvdmlkZWQgYW5kIE1VU1QgQkUgdGhlIHRoZSAqbW9zdCBwZXJtaXNzaXZlKiB2YWx1ZS4IGAnXg0Zyeg71jA+gO6+jI8vFFIjZKhqnE3sDv7UO/BdEY2hlY2tfcGVybWlzc2lvbnMIEGNhbGwMKHByb3h5X3R5cGV9AcAE9CBDaGVjayBpZiBhIGBSdW50aW1lQ2FsbGAgaXMgYWxsb3dlZCBmb3IgYSBnaXZlbiBgUHJveHlUeXBlYC4AGAnXg0Zyeg71jA+gO6+jIxcUsGB9Yq8KOzsK0sXVXFgsaXNfc3VwZXJzZXQIIHRvX2NoZWNrfQEcYWdhaW5zdH0BwAT0IENoZWNrIGlmIG9uZSBgUHJveHlUeXBlYCBpcyBhIHN1YnNldCBvZiBhbm90aGVyIGBQcm94eVR5cGVgLgAfAAA8TWFpbnRlbmFuY2VNb2RlATxNYWludGVuYW5jZU1vZGUEPE1haW50ZW5hbmNlTW9kZQEAwAQABKAgV2hldGhlciB0aGUgc2l0ZSBpcyBpbiBtYWludGVuYW5jZSBtb2RlAAGBAQAByQYAAAGpCQAAACAAACBJZGVudGl0eQEgSWRlbnRpdHkkKElkZW50aXR5T2YAAQQFAK0JBAAQaQEgSW5mb3JtYXRpb24gdGhhdCBpcyBwZXJ0aW5lbnQgdG8gaWRlbnRpZnkgdGhlIGVudGl0eSBiZWhpbmQgYW4gYWNjb3VudC4gRmlyc3QgaXRlbSBpcyB0aGXgIHJlZ2lzdHJhdGlvbiwgc2Vjb25kIGlzIHRoZSBhY2NvdW50J3MgcHJpbWFyeSB1c2VybmFtZS4AwCBUV09YLU5PVEU6IE9LIOKAlSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLgAoVXNlcm5hbWVPZgABBAUAMQIEAAS8IElkZW50aWZpZXMgdGhlIHByaW1hcnkgdXNlcm5hbWUgb2YgYW4gYWNjb3VudC4AHFN1cGVyT2YAAQQCAB0CBAAIYQEgVGhlIHN1cGVyLWlkZW50aXR5IG9mIGFuIGFsdGVybmF0aXZlICJzdWIiIGlkZW50aXR5IHRvZ2V0aGVyIHdpdGggaXRzIG5hbWUsIHdpdGhpbiB0aGF0UQEgY29udGV4dC4gSWYgdGhlIGFjY291bnQgaXMgbm90IHNvbWUgb3RoZXIgYWNjb3VudCdzIHN1Yi1pZGVudGl0eSwgdGhlbiBqdXN0IGBOb25lYC4AGFN1YnNPZgEBBAUAvQlEAAAAAAAAAAAAAAAAAAAAAAAUuCBBbHRlcm5hdGl2ZSAic3ViIiBpZGVudGl0aWVzIG9mIHRoaXMgYWNjb3VudC4AHQEgVGhlIGZpcnN0IGl0ZW0gaXMgdGhlIGRlcG9zaXQsIHRoZSBzZWNvbmQgaXMgYSB2ZWN0b3Igb2YgdGhlIGFjY291bnRzLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAChSZWdpc3RyYXJzAQDFCQQAEE0BIFRoZSBzZXQgb2YgcmVnaXN0cmFycy4gTm90IGV4cGVjdGVkIHRvIGdldCB2ZXJ5IGJpZyBhcyBjYW4gb25seSBiZSBhZGRlZCB0aHJvdWdoIGGoIHNwZWNpYWwgb3JpZ2luIChsaWtlbHkgYSBjb3VuY2lsIG1vdGlvbikuACkBIFRoZSBpbmRleCBpbnRvIHRoaXMgY2FuIGJlIGNhc3QgdG8gYFJlZ2lzdHJhckluZGV4YCB0byBnZXQgYSB2YWxpZCB2YWx1ZS4ALEF1dGhvcml0eU9mAAEEBdUJ2QkEAAT0IEEgbWFwIG9mIHRoZSBhY2NvdW50cyB3aG8gYXJlIGF1dGhvcml6ZWQgdG8gZ3JhbnQgdXNlcm5hbWVzLgA4VXNlcm5hbWVJbmZvT2YAAQQCMQLdCQQAGHUBIFJldmVyc2UgbG9va3VwIGZyb20gYHVzZXJuYW1lYCB0byB0aGUgYEFjY291bnRJZGAgdGhhdCBoYXMgcmVnaXN0ZXJlZCBpdCBhbmQgdGhlIHByb3ZpZGVyIG9mbQEgdGhlIHVzZXJuYW1lLiBUaGUgYG93bmVyYCB2YWx1ZSBzaG91bGQgYmUgYSBrZXkgaW4gdGhlIGBVc2VybmFtZU9mYCBtYXAsIGJ1dCBpdCBtYXkgbm90IGlm8CB0aGUgdXNlciBoYXMgY2xlYXJlZCB0aGVpciB1c2VybmFtZSBvciBpdCBoYXMgYmVlbiByZW1vdmVkLgBpASBNdWx0aXBsZSB1c2VybmFtZXMgbWF5IG1hcCB0byB0aGUgc2FtZSBgQWNjb3VudElkYCwgYnV0IGBVc2VybmFtZU9mYCB3aWxsIG9ubHkgbWFwIHRvIG9uZUggcHJpbWFyeSB1c2VybmFtZS4AQFBlbmRpbmdVc2VybmFtZXMAAQQCMQLlCQQAGG0BIFVzZXJuYW1lcyB0aGF0IGFuIGF1dGhvcml0eSBoYXMgZ3JhbnRlZCwgYnV0IHRoYXQgdGhlIGFjY291bnQgY29udHJvbGxlciBoYXMgbm90IGNvbmZpcm1lZHEBIHRoYXQgdGhleSB3YW50IGl0LiBVc2VkIHByaW1hcmlseSBpbiBjYXNlcyB3aGVyZSB0aGUgYEFjY291bnRJZGAgY2Fubm90IHByb3ZpZGUgYSBzaWduYXR1cmVdASBiZWNhdXNlIHRoZXkgYXJlIGEgcHVyZSBwcm94eSwgbXVsdGlzaWcsIGV0Yy4gSW4gb3JkZXIgdG8gY29uZmlybSBpdCwgdGhleSBzaG91bGQgY2FsbLAgW2FjY2VwdF91c2VybmFtZV0oYENhbGw6OmFjY2VwdF91c2VybmFtZWApLgAdASBGaXJzdCB0dXBsZSBpdGVtIGlzIHRoZSBhY2NvdW50IGFuZCBzZWNvbmQgaXMgdGhlIGFjY2VwdGFuY2UgZGVhZGxpbmUuAEhVbmJpbmRpbmdVc2VybmFtZXMAAQQCMQIoBAAQXQEgVXNlcm5hbWVzIGZvciB3aGljaCB0aGUgYXV0aG9yaXR5IHRoYXQgZ3JhbnRlZCB0aGVtIGhhcyBzdGFydGVkIHRoZSByZW1vdmFsIHByb2Nlc3MgYnlxASB1bmJpbmRpbmcgdGhlbS4gRWFjaCB1bmJpbmRpbmcgdXNlcm5hbWUgbWFwcyB0byBpdHMgZ3JhY2UgcGVyaW9kIGV4cGlyeSwgd2hpY2ggaXMgdGhlIGZpcnN03CBibG9jayBpbiB3aGljaCB0aGUgdXNlcm5hbWUgY291bGQgYmUgZGVsZXRlZCB0aHJvdWdoIGHEIFtyZW1vdmVfdXNlcm5hbWVdKGBDYWxsOjpyZW1vdmVfdXNlcm5hbWVgKSBjYWxsLgABhQEAAc0GACgwQmFzaWNEZXBvc2l0vEAAAGoqWSOVrgAAAAAAAAAABNggVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4ALEJ5dGVEZXBvc2l0vEAAAMFv8oYjAAAAAAAAAAAABB0BIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IHBlciBlbmNvZGVkIGJ5dGUgZm9yIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4APFVzZXJuYW1lRGVwb3NpdLxAAAAg+E3ecAQAAAAAAAAAAAhVASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgcmVnaXN0ZXJlZCB1c2VybmFtZS4gVGhpcyB2YWx1ZSBzaG91bGQgY2hhbmdlIG9ubHkgaW70IHJ1bnRpbWUgdXBncmFkZXMgd2l0aCBwcm9wZXIgbWlncmF0aW9uIG9mIGV4aXN0aW5nIGRlcG9zaXRzLgBEU3ViQWNjb3VudERlcG9zaXS8QAAA3aw1EyKSAAAAAAAAAAAMZQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIGEgcmVnaXN0ZXJlZCBzdWJhY2NvdW50LiBUaGlzIHNob3VsZCBhY2NvdW50IGZvciB0aGUgZmFjdGUBIHRoYXQgb25lIHN0b3JhZ2UgaXRlbSdzIHZhbHVlIHdpbGwgaW5jcmVhc2UgYnkgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCwgYW5kIHRoZXJlIHdpbGw1ASBiZSBhbm90aGVyIHRyaWUgaXRlbSB3aG9zZSB2YWx1ZSBpcyB0aGUgc2l6ZSBvZiBhbiBhY2NvdW50IElEIHBsdXMgMzIgYnl0ZXMuADhNYXhTdWJBY2NvdW50cygQZAAAAAQNASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3ViLWFjY291bnRzIGFsbG93ZWQgcGVyIGlkZW50aWZpZWQgYWNjb3VudC4ANE1heFJlZ2lzdHJhcnMoEBQAAAAITQEgTWF4aW11bSBudW1iZXIgb2YgcmVnaXN0cmFycyBhbGxvd2VkIGluIHRoZSBzeXN0ZW0uIE5lZWRlZCB0byBib3VuZCB0aGUgY29tcGxleGl0eXwgb2YsIGUuZy4sIHVwZGF0aW5nIGp1ZGdlbWVudHMuAGRQZW5kaW5nVXNlcm5hbWVFeHBpcmF0aW9uKBDAiQEABBUBIFRoZSBudW1iZXIgb2YgYmxvY2tzIHdpdGhpbiB3aGljaCBhIHVzZXJuYW1lIGdyYW50IG11c3QgYmUgYWNjZXB0ZWQuAExVc2VybmFtZUdyYWNlUGVyaW9kKBCAlwYACFkBIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgbXVzdCBwYXNzIHRvIGVuYWJsZSB0aGUgcGVybWFuZW50IGRlbGV0aW9uIG9mIGEgdXNlcm5hbWUgYnloIGl0cyByZXNwZWN0aXZlIGF1dGhvcml0eS4APE1heFN1ZmZpeExlbmd0aCgQBwAAAASAIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHN1ZmZpeC4ARE1heFVzZXJuYW1lTGVuZ3RoKBAgAAAABGEBIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLCBpbmNsdWRpbmcgaXRzIHN1ZmZpeCBhbmQgYW55IHN5c3RlbS1hZGRlZCBkZWxpbWl0ZXJzLgAB6QkABERPZmZjaGFpblNpZ25hdHVyZSkCDOAgU2lnbmF0dXJlIHR5cGUgZm9yIHByZS1hdXRob3JpemluZyB1c2VybmFtZXMgb2ZmLWNoYWluLgARASBDYW4gdmVyaWZ5IHdoZXRoZXIgYW4gYFNlbGY6OlNpZ25pbmdQdWJsaWNLZXlgIGNyZWF0ZWQgYSBzaWduYXR1cmUuACEAAFRQcm94eUdlbmVzaXNDb21wYW5pb24AAAAAAAAAIwAAIE11bHRpc2lnASBNdWx0aXNpZwQkTXVsdGlzaWdzAAEIBQLtCfEJBAAElCBUaGUgc2V0IG9mIG9wZW4gbXVsdGlzaWcgb3BlcmF0aW9ucy4AATUCAAHRBgAMLERlcG9zaXRCYXNlvEAAAEhy7r0ZmAAAAAAAAAAAGFkBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24gb3IgdG+EIHN0b3JlIGEgZGlzcGF0Y2ggY2FsbCBmb3IgbGF0ZXIuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpczEBIGA0ICsgc2l6ZW9mKChCbG9ja051bWJlciwgQmFsYW5jZSwgQWNjb3VudElkKSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpc4AgYDMyICsgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLgA0RGVwb3NpdEZhY3RvcrxAAAAUu/CKxgIAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuADhNYXhTaWduYXRvcmllcygQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4AAfkJAAQsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AJAAAWE1vb25iZWFtTGF6eU1pZ3JhdGlvbnMBWE1vb25iZWFtTGF6eU1pZ3JhdGlvbnMAAUECAAAAAf0JAAAAJQAAKFBhcmFtZXRlcnMBKFBhcmFtZXRlcnMEKFBhcmFtZXRlcnMAAQQC2QbtBgQABEwgU3RvcmVkIHBhcmFtZXRlcnMuAAFFAgAB1QYAAAAAACYAADxFdGhlcmV1bUNoYWluSWQBPEV0aGVyZXVtQ2hhaW5JZAQcQ2hhaW5JZAEAGCAAAAAAAAAAAARIIFRoZSBFVk0gY2hhaW4gSUQuAAAAAAAAADIAAAxFVk0BDEVWTQwwQWNjb3VudENvZGVzAQEEAhkBFAQAAABQQWNjb3VudENvZGVzTWV0YWRhdGEAAQQCGQEBCgQAAAA8QWNjb3VudFN0b3JhZ2VzAQEIAgIFCiyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9AgAB/QYAAAEJCgAAADMAACBFdGhlcmV1bQEgRXRoZXJldW0YHFBlbmRpbmcAAQQGKA0KBAAENQEgTWFwcGluZyBmcm9tIHRyYW5zYWN0aW9uIGluZGV4IHRvIHRyYW5zYWN0aW9uIGluIHRoZSBjdXJyZW50IGJ1aWxkaW5nIGJsb2NrLgBEQ291bnRlckZvclBlbmRpbmcBACgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAAwQ3VycmVudEJsb2NrAAApCgQABHAgVGhlIGN1cnJlbnQgRXRoZXJldW0gYmxvY2suADxDdXJyZW50UmVjZWlwdHMAAD0KBAAEfCBUaGUgY3VycmVudCBFdGhlcmV1bSByZWNlaXB0cy4AaEN1cnJlbnRUcmFuc2FjdGlvblN0YXR1c2VzAABBCgQABIggVGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gc3RhdHVzZXMuACRCbG9ja0hhc2gBAQQFgQIsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpQIAAQUHAAABRQoAAAA0AAAkU2NoZWR1bGVyASRTY2hlZHVsZXIQPEluY29tcGxldGVTaW5jZQAAKAQABPQgQmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZSBhZ2VuZGEgYmVnYW4gaW5jb21wbGV0ZSBleGVjdXRpb24uABhBZ2VuZGEBAQQFKEkKBAAETQEgSXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGhlIGJsb2NrIG51bWJlciB0aGF0IHRoZXkgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uLgAcUmV0cmllcwABBALdAlkKBAAEIQEgUmV0cnkgY29uZmlndXJhdGlvbnMgZm9yIGl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRhc2sgYWRkcmVzcy4AGExvb2t1cAABBAUw3QIEABD4IExvb2t1cCBmcm9tIGEgbmFtZSB0byB0aGUgYmxvY2sgbnVtYmVyIGFuZCBpbmRleCBvZiB0aGUgdGFzay4AWQEgRm9yIHYzIC0+IHY0IHRoZSBwcmV2aW91c2x5IHVuYm91bmRlZCBpZGVudGl0aWVzIGFyZSBCbGFrZTItMjU2IGhhc2hlZCB0byBmb3JtIHRoZSB2NDAgaWRlbnRpdGllcy4AAdUCAAEpBwAINE1heGltdW1XZWlnaHRxASwLAJj3Pl0BAgDgAQQpASBUaGUgbWF4aW11bSB3ZWlnaHQgdGhhdCBtYXkgYmUgc2NoZWR1bGVkIHBlciBibG9jayBmb3IgYW55IGRpc3BhdGNoYWJsZXMuAFBNYXhTY2hlZHVsZWRQZXJCbG9jaygQMgAAABQdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2NoZWR1bGVkIGNhbGxzIGluIHRoZSBxdWV1ZSBmb3IgYSBzaW5nbGUgYmxvY2suABggTk9URTpRASArIERlcGVuZGVudCBwYWxsZXRzJyBiZW5jaG1hcmtzIG1pZ2h0IHJlcXVpcmUgYSBoaWdoZXIgbGltaXQgZm9yIHRoZSBzZXR0aW5nLiBTZXQgYcQgaGlnaGVyIGxpbWl0IHVuZGVyIGBydW50aW1lLWJlbmNobWFya3NgIGZlYXR1cmUuAAFdCgAELFJ1bnRpbWVDYWxsDARoIFRoZSBhZ2dyZWdhdGVkIGNhbGwgdHlwZS4APAAAIFByZWltYWdlASBQcmVpbWFnZQwkU3RhdHVzRm9yAAEEBixhCgQABJAgVGhlIHJlcXVlc3Qgc3RhdHVzIG9mIGEgZ2l2ZW4gaGFzaC4CQFJlcXVlc3RTdGF0dXNGb3IAQFJlcXVlc3RTdGF0dXNGb3IAAQQGLG0KBAAEkCBUaGUgcmVxdWVzdCBzdGF0dXMgb2YgYSBnaXZlbiBoYXNoLgAsUHJlaW1hZ2VGb3IAAQQGfQqBCgQAAAAB4QIAAS0HAAABhQoAAAA+AABAQ29udmljdGlvblZvdGluZwFAQ29udmljdGlvblZvdGluZwgkVm90aW5nRm9yAQEIBQWJCo0K2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh1ASBBbGwgdm90aW5nIGZvciBhIHBhcnRpY3VsYXIgdm90ZXIgaW4gYSBwYXJ0aWN1bGFyIHZvdGluZyBjbGFzcy4gV2Ugc3RvcmUgdGhlIGJhbGFuY2UgZm9yIHRoZZwgbnVtYmVyIG9mIHZvdGVzIHRoYXQgd2UgaGF2ZSByZWNvcmRlZC4ANENsYXNzTG9ja3NGb3IBAQQFAK0KBAAMaQEgVGhlIHZvdGluZyBjbGFzc2VzIHdoaWNoIGhhdmUgYSBub24temVybyBsb2NrIHJlcXVpcmVtZW50IGFuZCB0aGUgbG9jayBhbW91bnRzIHdoaWNoIHRoZXltASByZXF1aXJlLiBUaGUgYWN0dWFsIGFtb3VudCBsb2NrZWQgb24gYmVoYWxmIG9mIHRoaXMgcGFsbGV0IHNob3VsZCBhbHdheXMgYmUgdGhlIG1heGltdW0gb2YsIHRoaXMgbGlzdC4AAeUCAAExBwAIIE1heFZvdGVzKBAUAAAAEPAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdm90ZXMgYW4gYWNjb3VudCBtYXkgaGF2ZS4AVQEgQWxzbyB1c2VkIHRvIGNvbXB1dGUgd2VpZ2h0LCBhbiBvdmVybHkgbGFyZ2UgdmFsdWUgY2FuIGxlYWQgdG8gZXh0cmluc2ljcyB3aXRoIGxhcmdlwCB3ZWlnaHQgZXN0aW1hdGlvbjogc2VlIGBkZWxlZ2F0ZWAgZm9yIGluc3RhbmNlLgBEVm90ZUxvY2tpbmdQZXJpb2QoEEA4AAAQkCBUaGUgbWluaW11bSBwZXJpb2Qgb2Ygdm90ZSBsb2NraW5nLgBlASBJdCBzaG91bGQgYmUgbm8gc2hvcnRlciB0aGFuIGVuYWN0bWVudCBwZXJpb2QgdG8gZW5zdXJlIHRoYXQgaW4gdGhlIGNhc2Ugb2YgYW4gYXBwcm92YWwsSQEgdGhvc2Ugc3VjY2Vzc2Z1bCB2b3RlcnMgYXJlIGxvY2tlZCBpbnRvIHRoZSBjb25zZXF1ZW5jZXMgdGhhdCB0aGVpciB2b3RlcyBlbnRhaWwuAAG5CgAAAD8AACRSZWZlcmVuZGEBJFJlZmVyZW5kYRQ8UmVmZXJlbmR1bUNvdW50AQAoEAAAAAAEMQEgVGhlIG5leHQgZnJlZSByZWZlcmVuZHVtIGluZGV4LCBha2EgdGhlIG51bWJlciBvZiByZWZlcmVuZGEgc3RhcnRlZCBzbyBmYXIuAERSZWZlcmVuZHVtSW5mb0ZvcgABBAIovQoEAAS0IEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgYW55IGdpdmVuIHJlZmVyZW5kdW0uAChUcmFja1F1ZXVlAQEEBQkB3QoEABBdASBUaGUgc29ydGVkIGxpc3Qgb2YgcmVmZXJlbmRhIHJlYWR5IHRvIGJlIGRlY2lkZWQgYnV0IG5vdCB5ZXQgYmVpbmcgZGVjaWRlZCwgb3JkZXJlZCBieXwgY29udmljdGlvbi13ZWlnaHRlZCBhcHByb3ZhbHMuAEEBIFRoaXMgc2hvdWxkIGJlIGVtcHR5IGlmIGBEZWNpZGluZ0NvdW50YCBpcyBsZXNzIHRoYW4gYFRyYWNrSW5mbzo6bWF4X2RlY2lkaW5nYC4ANERlY2lkaW5nQ291bnQBAQQFCQEoEAAAAAAExCBUaGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBiZWluZyBkZWNpZGVkIGN1cnJlbnRseS4AKE1ldGFkYXRhT2YAAQQCKCwEABgFASBUaGUgbWV0YWRhdGEgaXMgYSBnZW5lcmFsIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcgdGhlIHJlZmVyZW5kdW0uSQEgVGhlIGBIYXNoYCByZWZlcnMgdG8gdGhlIHByZWltYWdlIG9mIHRoZSBgUHJlaW1hZ2VzYCBwcm92aWRlciB3aGljaCBjYW4gYmUgYSBKU09OiCBkdW1wIG9yIElQRlMgaGFzaCBvZiBhIEpTT04gZmlsZS4AdQEgQ29uc2lkZXIgYSBnYXJiYWdlIGNvbGxlY3Rpb24gZm9yIGEgbWV0YWRhdGEgb2YgZmluaXNoZWQgcmVmZXJlbmR1bXMgdG8gYHVucmVxdWVzdGAgKHJlbW92ZSlEIGxhcmdlIHByZWltYWdlcy4AAfkCAAE1BwAURFN1Ym1pc3Npb25EZXBvc2l0vEAAAKDexa3JNTYAAAAAAAAABDUBIFRoZSBtaW5pbXVtIGFtb3VudCB0byBiZSB1c2VkIGFzIGEgZGVwb3NpdCBmb3IgYSBwdWJsaWMgcmVmZXJlbmR1bSBwcm9wb3NhbC4AJE1heFF1ZXVlZCgQZAAAAATkIE1heGltdW0gc2l6ZSBvZiB0aGUgcmVmZXJlbmR1bSBxdWV1ZSBmb3IgYSBzaW5nbGUgdHJhY2suAERVbmRlY2lkaW5nVGltZW91dCgQQJ0EAAhVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBhZnRlciBzdWJtaXNzaW9uIHRoYXQgYSByZWZlcmVuZHVtIG11c3QgYmVnaW4gYmVpbmcgZGVjaWRlZCBieS7kIE9uY2UgdGhpcyBwYXNzZXMsIHRoZW4gYW55b25lIG1heSBjYW5jZWwgdGhlIHJlZmVyZW5kdW0uADRBbGFybUludGVydmFsKBABAAAADF0BIFF1YW50aXphdGlvbiBsZXZlbCBmb3IgdGhlIHJlZmVyZW5kdW0gd2FrZXVwIHNjaGVkdWxlci4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgcmVzdWx0IGluXQEgZmV3ZXIgc3RvcmFnZSByZWFkcy93cml0ZXMgbmVlZGVkIGZvciBzbWFsbGVyIHZvdGVycywgYnV0IGFsc28gcmVzdWx0IGluIGRlbGF5cyB0byB0aGVVASBhdXRvbWF0aWMgcmVmZXJlbmR1bSBzdGF0dXMgY2hhbmdlcy4gRXhwbGljaXQgc2VydmljaW5nIGluc3RydWN0aW9ucyBhcmUgdW5hZmZlY3RlZC4AGFRyYWNrc+kKhQoYAABkcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAABC25mdN4SnAQAAAAAAQDgAAIATAwBAOAAAQDgAAAL/yZo7AAAAAP/JmjsAAAAAAAAAAAAAAAAAAMqaO0BLTACAsuYOAQBkd2hpdGVsaXN0ZWRfY2FsbGVyAAAAAAAAAGQAAAAAAADtlcKPBVoqAAAAAAAAZAAAAIATAwBkAAAALAEAAAL/yZo7AAAAAP/JmjsAAAAAAAAAAAAAAAACneoAAAAAAADmry0AAAAAABYW////////AgBkZ2VuZXJhbF9hZG1pbgAAAAAAAAAAAAAAAAoAAAAAAECyusngGR4CAAAAAAAAWAIAAIATAwBAOAAAQDgAAAL/yZo7AAAAAP/JmjsAAAAAAAAAAAAAAAACkNc+DQAAAABXQ94TAAAAAFTeEPb/////AwBkcmVmZXJlbmR1bV9jYW5jZWxsZXIAAAAAABQAAAAAAADtlcKPBVoqAAAAAAAAWAIAAIATAwAIBwAAZAAAAAL/yZo7AAAAAP/JmjsAAAAAAAAAAAAAAAACfUQNAAAAAACIioMAAAAAAIvY8v//////BABkcmVmZXJlbmR1bV9raWxsZXIAAAAAAAAAAGQAAAAAAADaK4UfC7RUAAAAAAAAWAIAAIATAwAIBwAAZAAAAAL/yZo7AAAAAP/JmjsAAAAAAAAAAAAAAAACfUQNAAAAAACIioMAAAAAAIvY8v//////BQBkZmFzdF9nZW5lcmFsX2FkbWluAAAAAAAAAAoAAAAAAECyusngGR4CAAAAAAAAWAIAAIATAwAIBwAAZAAAAAL/yZo7AAAAAP/JmjsAAAAAAAAAAAAAAAACFn9YAAAAAABz/K4AAAAAAMaBqP//////DEggQSBsaXN0IG9mIHRyYWNrcy4AXQEgTm90ZTogaWYgdGhlIHRyYWNrcyBhcmUgZHluYW1pYywgdGhlIHZhbHVlIGluIHRoZSBzdGF0aWMgbWV0YWRhdGEgbWlnaHQgYmUgaW5hY2N1cmF0ZS4AAQELAAwsUnVudGltZUNhbGwMABRWb3Rlc7wEzCBUaGUgY291bnRpbmcgdHlwZSBmb3Igdm90ZXMuIFVzdWFsbHkganVzdCBiYWxhbmNlLhRUYWxseTkHBEwgVGhlIHRhbGx5aW5nIHR5cGUuAEAAACRXaGl0ZWxpc3QBJFdoaXRlbGlzdAQ8V2hpdGVsaXN0ZWRDYWxsAAEEBSz9BQQAAAABEQMAAT0HAAABBQsABCxSdW50aW1lQ2FsbAwEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLgBCAABkVHJlYXN1cnlDb3VuY2lsQ29sbGVjdGl2ZQFkVHJlYXN1cnlDb3VuY2lsQ29sbGVjdGl2ZRwkUHJvcG9zYWxzAQAJCwQABJAgVGhlIGhhc2hlcyBvZiB0aGUgYWN0aXZlIHByb3Bvc2Fscy4AKFByb3Bvc2FsT2YAAQQGLAwEAATMIEFjdHVhbCBwcm9wb3NhbCBmb3IgYSBnaXZlbiBoYXNoLCBpZiBpdCdzIGN1cnJlbnQuABhDb3N0T2YAAQQGLA0LBAAQCQEgQ29uc2lkZXJhdGlvbiBjb3N0IGNyZWF0ZWQgZm9yIHB1Ymxpc2hpbmcgYW5kIHN0b3JpbmcgYSBwcm9wb3NhbC4AcQEgRGV0ZXJtaW5lZCBieSBbQ29uZmlnOjpDb25zaWRlcmF0aW9uXSBhbmQgbWF5IGJlIG5vdCBwcmVzZW50IGZvciBjZXJ0YWluIHByb3Bvc2FscyAoZS5nLiBpZg0BIHRoZSBwcm9wb3NhbCBjb3VudCBhdCB0aGUgdGltZSBvZiBjcmVhdGlvbiB3YXMgYmVsb3cgdGhyZXNob2xkIE4pLgAYVm90aW5nAAEEBiwRCwQABLQgVm90ZXMgb24gYSBnaXZlbiBwcm9wb3NhbCwgaWYgaXQgaXMgb25nb2luZy4ANFByb3Bvc2FsQ291bnQBACgQAAAAAARIIFByb3Bvc2FscyBzbyBmYXIuABxNZW1iZXJzAQDEBAAEOQEgVGhlIGN1cnJlbnQgbWVtYmVycyBvZiB0aGUgY29sbGVjdGl2ZS4gVGhpcyBpcyBzdG9yZWQgc29ydGVkIChqdXN0IGJ5IHZhbHVlKS4AFFByaW1lAAAABAAEYQEgVGhlIHByaW1lIG1lbWJlciB0aGF0IGhlbHBzIGRldGVybWluZSB0aGUgZGVmYXVsdCB2b3RlIGJlaGF2aW9yIGluIGNhc2Ugb2YgYWJzdGVudGlvbnMuAAEVAwABTQcABERNYXhQcm9wb3NhbFdlaWdodHEBKAcAEKXU6AIAQAEEJQEgVGhlIG1heGltdW0gd2VpZ2h0IG9mIGEgZGlzcGF0Y2ggY2FsbCB0aGF0IGNhbiBiZSBwcm9wb3NlZCBhbmQgZXhlY3V0ZWQuAAEVCwAEIFByb3Bvc2FsDASAIFRoZSBydW50aW1lIGNhbGwgZGlzcGF0Y2ggdHlwZS4ASAAAbE9wZW5UZWNoQ29tbWl0dGVlQ29sbGVjdGl2ZQFsT3BlblRlY2hDb21taXR0ZWVDb2xsZWN0aXZlHCRQcm9wb3NhbHMBABkLBAAEkCBUaGUgaGFzaGVzIG9mIHRoZSBhY3RpdmUgcHJvcG9zYWxzLgAoUHJvcG9zYWxPZgABBAYsDAQABMwgQWN0dWFsIHByb3Bvc2FsIGZvciBhIGdpdmVuIGhhc2gsIGlmIGl0J3MgY3VycmVudC4AGENvc3RPZgABBAYsDQsEABAJASBDb25zaWRlcmF0aW9uIGNvc3QgY3JlYXRlZCBmb3IgcHVibGlzaGluZyBhbmQgc3RvcmluZyBhIHByb3Bvc2FsLgBxASBEZXRlcm1pbmVkIGJ5IFtDb25maWc6OkNvbnNpZGVyYXRpb25dIGFuZCBtYXkgYmUgbm90IHByZXNlbnQgZm9yIGNlcnRhaW4gcHJvcG9zYWxzIChlLmcuIGlmDQEgdGhlIHByb3Bvc2FsIGNvdW50IGF0IHRoZSB0aW1lIG9mIGNyZWF0aW9uIHdhcyBiZWxvdyB0aHJlc2hvbGQgTikuABhWb3RpbmcAAQQGLBELBAAEtCBWb3RlcyBvbiBhIGdpdmVuIHByb3Bvc2FsLCBpZiBpdCBpcyBvbmdvaW5nLgA0UHJvcG9zYWxDb3VudAEAKBAAAAAABEggUHJvcG9zYWxzIHNvIGZhci4AHE1lbWJlcnMBAMQEAAQ5ASBUaGUgY3VycmVudCBtZW1iZXJzIG9mIHRoZSBjb2xsZWN0aXZlLiBUaGlzIGlzIHN0b3JlZCBzb3J0ZWQgKGp1c3QgYnkgdmFsdWUpLgAUUHJpbWUAAAAEAARhASBUaGUgcHJpbWUgbWVtYmVyIHRoYXQgaGVscHMgZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IHZvdGUgYmVoYXZpb3IgaW4gY2FzZSBvZiBhYnN0ZW50aW9ucy4AAR0DAAFRBwAERE1heFByb3Bvc2FsV2VpZ2h0cQEoBwAQpdToAgBAAQQlASBUaGUgbWF4aW11bSB3ZWlnaHQgb2YgYSBkaXNwYXRjaCBjYWxsIHRoYXQgY2FuIGJlIHByb3Bvc2VkIGFuZCBleGVjdXRlZC4AAR0LAAQgUHJvcG9zYWwMBIAgVGhlIHJ1bnRpbWUgY2FsbCBkaXNwYXRjaCB0eXBlLgBJAAAgVHJlYXN1cnkBIFRyZWFzdXJ5HDRQcm9wb3NhbENvdW50AQAoEAAAAAAQQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuAKQgTnVtYmVyIG9mIHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLgAkUHJvcG9zYWxzAAEEBSghCwQAEEEBIERFUFJFQ0FURUQ6IGFzc29jaWF0ZWQgd2l0aCBgc3BlbmRfbG9jYWxgIGNhbGwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBNYXkgMjAyNS5pASBSZWZlciB0byA8aHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvcG9sa2Fkb3Qtc2RrL3B1bGwvNTk2MT4gZm9yIG1pZ3JhdGlvbiB0byBgc3BlbmRgLgB8IFByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLgAsRGVhY3RpdmF0ZWQBALxAAAAAAAAAAAAAAAAAAAAAAATwIFRoZSBhbW91bnQgd2hpY2ggaGFzIGJlZW4gcmVwb3J0ZWQgYXMgaW5hY3RpdmUgdG8gQ3VycmVuY3kuACRBcHByb3ZhbHMBACULBAAQQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuAPggUHJvcG9zYWwgaW5kaWNlcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBidXQgbm90IHlldCBhd2FyZGVkLgAoU3BlbmRDb3VudAEAKBAAAAAABKQgVGhlIGNvdW50IG9mIHNwZW5kcyB0aGF0IGhhdmUgYmVlbiBtYWRlLgAYU3BlbmRzAAEEBSgtCwQABNAgU3BlbmRzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGFuZCBiZWluZyBwcm9jZXNzZWQuADxMYXN0U3BlbmRQZXJpb2QAACgEAATUIFRoZSBibG9ja251bWJlciBmb3IgdGhlIGxhc3QgdHJpZ2dlcmVkIHNwZW5kIHBlcmlvZC4AASEDCAMClQFUaGUgYHNwZW5kX2xvY2FsYCBjYWxsIHdpbGwgYmUgcmVtb3ZlZCBieSBNYXkgMjAyNS4gTWlncmF0ZSB0byB0aGUgbmV3IGZsb3cgYW5kIHVzZSB0aGUgYHNwZW5kYCBjYWxsLgAEArUBVGhlIGByZW1vdmVfYXBwcm92YWxgIGNhbGwgd2lsbCBiZSByZW1vdmVkIGJ5IE1heSAyMDI1LiBJdCBhc3NvY2lhdGVkIHdpdGggdGhlIGRlcHJlY2F0ZWQgYHNwZW5kX2xvY2FsYCBjYWxsLgABVQcAGCxTcGVuZFBlcmlvZCgQgFEBAASIIFBlcmlvZCBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc3BlbmRzLgAQQnVybjULEAAAAAAEEQEgUGVyY2VudGFnZSBvZiBzcGFyZSBmdW5kcyAoaWYgYW55KSB0aGF0IGFyZSBidXJudCBwZXIgc3BlbmQgcGVyaW9kLgAgUGFsbGV0SWQ5CyBweS90cnNyeQQZASBUaGUgdHJlYXN1cnkncyBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4AME1heEFwcHJvdmFscygQZAAAABhBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4AFQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGFwcHJvdmFscyB0aGF0IGNhbiB3YWl0IGluIHRoZSBzcGVuZGluZyBxdWV1ZS4ATQEgTk9URTogVGhpcyBwYXJhbWV0ZXIgaXMgYWxzbyB1c2VkIHdpdGhpbiB0aGUgQm91bnRpZXMgUGFsbGV0IGV4dGVuc2lvbiBpZiBlbmFibGVkLgAwUGF5b3V0UGVyaW9kKBCAlwYABBkBIFRoZSBwZXJpb2QgZHVyaW5nIHdoaWNoIGFuIGFwcHJvdmVkIHRyZWFzdXJ5IHNwZW5kIGhhcyB0byBiZSBjbGFpbWVkLgAscG90X2FjY291bnQAUG1vZGxweS90cnNyeQAAAAAAAAAABKAgR2V0cyB0aGlzIHBhbGxldCdzIGRlcml2ZWQgcG90IGFjY291bnQuAAE9CwAIJEFzc2V0S2luZCUDBC0BIFR5cGUgcGFyYW1ldGVyIHJlcHJlc2VudGluZyB0aGUgYXNzZXQga2luZHMgdG8gYmUgc3BlbnQgZnJvbSB0aGUgdHJlYXN1cnkuLEJlbmVmaWNpYXJ5AARdASBUeXBlIHBhcmFtZXRlciB1c2VkIHRvIGlkZW50aWZ5IHRoZSBiZW5lZmljaWFyaWVzIGVsaWdpYmxlIHRvIHJlY2VpdmUgdHJlYXN1cnkgc3BlbmRzLgBQAABAQ3Jvd2Rsb2FuUmV3YXJkcwFAQ3Jvd2Rsb2FuUmV3YXJkcyA8QWNjb3VudHNQYXlhYmxlAAEEAgBBCwQAAABQQ2xhaW1lZFJlbGF5Q2hhaW5JZHMAAQQCMP0FBAAAAGRVbmFzc29jaWF0ZWRDb250cmlidXRpb25zAAEEAjBBCwQAAAAsSW5pdGlhbGl6ZWQBAMAEAAAAOEluaXRSZWxheUJsb2NrAQAoEAAAAAAE5CBWZXN0aW5nIGJsb2NrIGhlaWdodCBhdCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBhbGxldAA0RW5kUmVsYXlCbG9jawEAKBAAAAAABOQgVmVzdGluZyBibG9jayBoZWlnaHQgYXQgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBwYWxsZXQAXEluaXRpYWxpemVkUmV3YXJkQW1vdW50AQC8QAAAAAAAAAAAAAAAAAAAAAAIbQEgVG90YWwgaW5pdGlhbGl6ZWQgYW1vdW50IHNvIGZhci4gV2Ugc3RvcmUgdGhpcyB0byBtYWtlIHBhbGxldCBmdW5kcyA9PSBjb250cmlidXRvcnMgcmV3YXJkgCBjaGVjayBlYXNpZXIgYW5kIG1vcmUgZWZmaWNpZW50AERUb3RhbENvbnRyaWJ1dG9ycwEAKBAAAAAABOQgVG90YWwgbnVtYmVyIG9mIGNvbnRyaWJ1dG9ycyB0byBhaWQgaGludGluZyBiZW5jaG1hcmtpbmcAASkDAAFZBwAQVEluaXRpYWxpemF0aW9uUGF5bWVudLAQAKPhEQSkIFBlcmNlbnRhZ2UgdG8gYmUgcGF5ZWQgYXQgaW5pdGlhbGl6YXRpb24ATE1heEluaXRDb250cmlidXRvcnMoEPQBAAAAAHxSZXdhcmRBZGRyZXNzUmVsYXlWb3RlVGhyZXNob2xksBAAypo7CMQgQSBmcmFjdGlvbiByZXByZXNlbnRpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgcHJvb2ZzMQEgdGhhdCBuZWVkIHRvIGJlIHByZXNlbnRlZCB0byBjaGFuZ2UgYSByZXdhcmQgYWRkcmVzcyB0aHJvdWdoIHRoZSByZWxheSBrZXlzAGhTaWduYXR1cmVOZXR3b3JrSWRlbnRpZmllchQoJG1vb25iZWFtLQhxASBOZXR3b3JrIElkZW50aWZpZXIgdG8gYmUgYXBwZW5kZWQgaW50byB0aGUgc2lnbmF0dXJlcyBmb3IgcmV3YXJkIGFkZHJlc3MgY2hhbmdlL2Fzc29jaWF0aW9u2CBQcmV2ZW50cyByZXBsYXkgYXR0YWNrcyBmcm9tIG9uZSBuZXR3b3JrIHRvIHRoZSBvdGhlcgABSQsACExSZWxheUNoYWluQWNjb3VudElkMATkIFRoZSBBY2NvdW50SWQgdHlwZSBjb250cmlidXRvcnMgdXNlZCBvbiB0aGUgcmVsYXkgY2hhaW4uSFZlc3RpbmdCbG9ja051bWJlcigE1CBUaGUgdHlwZSB0aGF0IHdpbGwgYmUgdXNlZCB0byB0cmFjayB2ZXN0aW5nIHByb2dyZXNzAFoAACRYY21wUXVldWUBJFhjbXBRdWV1ZRxQSW5ib3VuZFhjbXBTdXNwZW5kZWQBAE0LBAAgDQEgVGhlIHN1c3BlbmRlZCBpbmJvdW5kIFhDTVAgY2hhbm5lbHMuIEFsbCBvdGhlcnMgYXJlIG5vdCBzdXNwZW5kZWQuAHEBIFRoaXMgaXMgYSBgU3RvcmFnZVZhbHVlYCBpbnN0ZWFkIG9mIGEgYFN0b3JhZ2VNYXBgIHNpbmNlIHdlIGV4cGVjdCBtdWx0aXBsZSByZWFkcyBwZXIgYmxvY2tpASB0byBkaWZmZXJlbnQga2V5cyB3aXRoIGEgb25lIGJ5dGUgcGF5bG9hZC4gVGhlIGFjY2VzcyB0byBgQm91bmRlZEJUcmVlU2V0YCB3aWxsIGJlIGNhY2hlZBUBIHdpdGhpbiB0aGUgYmxvY2sgYW5kIHRoZXJlZm9yZSBvbmx5IGluY2x1ZGVkIG9uY2UgaW4gdGhlIHByb29mIHNpemUuAGUBIE5PVEU6IFRoZSBQb1YgYmVuY2htYXJraW5nIGNhbm5vdCBrbm93IHRoaXMgYW5kIHdpbGwgb3Zlci1lc3RpbWF0ZSwgYnV0IHRoZSBhY3R1YWwgcHJvb2ZEIHdpbGwgYmUgc21hbGxlci4ASE91dGJvdW5kWGNtcFN0YXR1cwEAWQsEABhdASBUaGUgbm9uLWVtcHR5IFhDTVAgY2hhbm5lbHMgaW4gb3JkZXIgb2YgYmVjb21pbmcgbm9uLWVtcHR5LCBhbmQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdFEBIGFuZCBsYXN0IG91dGJvdW5kIG1lc3NhZ2UuIElmIHRoZSB0d28gaW5kaWNlcyBhcmUgZXF1YWwsIHRoZW4gaXQgaW5kaWNhdGVzIGFuIGVtcHR5WQEgcXVldWUgYW5kIHRoZXJlIG11c3QgYmUgYSBub24tYE9rYCBgT3V0Ym91bmRTdGF0dXNgLiBXZSBhc3N1bWUgcXVldWVzIGdyb3cgbm8gZ3JlYXRlclkBIHRoYW4gNjU1MzUgaXRlbXMuIFF1ZXVlIGluZGljZXMgZm9yIG5vcm1hbCBtZXNzYWdlcyBiZWdpbiBhdCBvbmU7IHplcm8gaXMgcmVzZXJ2ZWQgaW4RASBjYXNlIG9mIHRoZSBuZWVkIHRvIHNlbmQgYSBoaWdoLXByaW9yaXR5IHNpZ25hbCBtZXNzYWdlIHRoaXMgYmxvY2suCQEgVGhlIGJvb2wgaXMgdHJ1ZSBpZiB0aGVyZSBpcyBhIHNpZ25hbCBtZXNzYWdlIHdhaXRpbmcgdG8gYmUgc2VudC4AUE91dGJvdW5kWGNtcE1lc3NhZ2VzAQEIAgVpC20LBAAEvCBUaGUgbWVzc2FnZXMgb3V0Ym91bmQgaW4gYSBnaXZlbiBYQ01QIGNoYW5uZWwuADhTaWduYWxNZXNzYWdlcwEBBAKQbQsEAASgIEFueSBzaWduYWwgbWVzc2FnZXMgd2FpdGluZyB0byBiZSBzZW50LgAsUXVldWVDb25maWcBAHELMCAAAAAwAAAACAAAAAQVASBUaGUgY29uZmlndXJhdGlvbiB3aGljaCBjb250cm9scyB0aGUgZHluYW1pY3Mgb2YgdGhlIG91dGJvdW5kIHF1ZXVlLgA4UXVldWVTdXNwZW5kZWQBAMAEAARBASBXaGV0aGVyIG9yIG5vdCB0aGUgWENNUCBxdWV1ZSBpcyBzdXNwZW5kZWQgZnJvbSBleGVjdXRpbmcgaW5jb21pbmcgWENNcyBvciBub3QuAEREZWxpdmVyeUZlZUZhY3RvcgEBBAWQlQhAAABkp7O24A0AAAAAAAAAAATEIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5LgAAAV0HAAxMTWF4SW5ib3VuZFN1c3BlbmRlZCgQ6AMAABRJASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5ib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGJlIHN1c3BlbmRlZCBzaW11bHRhbmVvdXNseS4AXQEgQW55IGZ1cnRoZXIgY2hhbm5lbCBzdXNwZW5zaW9ucyB3aWxsIGZhaWwgYW5kIG1lc3NhZ2VzIG1heSBnZXQgZHJvcHBlZCB3aXRob3V0IGZ1cnRoZXJFASBub3RpY2UuIENob29zaW5nIGEgaGlnaCB2YWx1ZSAoMTAwMCkgaXMgb2theTsgdGhlIHRyYWRlLW9mZiB0aGF0IGlzIGRlc2NyaWJlZCBpbtggW2BJbmJvdW5kWGNtcFN1c3BlbmRlZGBdIHN0aWxsIGFwcGxpZXMgYXQgdGhhdCBzY2FsZS4AZE1heEFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMoEIAAAAAgZQEgTWF4aW1hbCBudW1iZXIgb2Ygb3V0Ym91bmQgWENNUCBjaGFubmVscyB0aGF0IGNhbiBoYXZlIG1lc3NhZ2VzIHF1ZXVlZCBhdCB0aGUgc2FtZSB0aW1lLgBVASBJZiB0aGlzIGlzIHJlYWNoZWQsIHRoZW4gbm8gZnVydGhlciBtZXNzYWdlcyBjYW4gYmUgc2VudCB0byBjaGFubmVscyB0aGF0IGRvIG5vdCB5ZXRdASBoYXZlIGEgbWVzc2FnZSBxdWV1ZWQuIFRoaXMgc2hvdWxkIGJlIHNldCB0byB0aGUgZXhwZWN0ZWQgbWF4aW11bSBvZiBvdXRib3VuZCBjaGFubmVsc2EBIHdoaWNoIGlzIGRldGVybWluZWQgYnkgW2BTZWxmOjpDaGFubmVsSW5mb2BdLiBJdCBpcyBpbXBvcnRhbnQgdG8gc2V0IHRoaXMgbGFyZ2UgZW5vdWdoLF0BIHNpbmNlIG90aGVyd2lzZSB0aGUgY29uZ2VzdGlvbiBjb250cm9sIHByb3RvY29sIHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQgYW5kIG1lc3NhZ2VzUQEgbWF5IGJlIGRyb3BwZWQuIFRoaXMgdmFsdWUgaW5jcmVhc2VzIHRoZSBQb1YgYW5kIHNob3VsZCB0aGVyZWZvcmUgbm90IGJlIHBpY2tlZCB0b29NASBoaWdoLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIHBheSBhdHRlbnRpb24gdG8gbm90IG9wZW4gbW9yZSBjaGFubmVscyB0aGFuIHRoaXMgdmFsdWUuACxNYXhQYWdlU2l6ZSgQAJwBABS4IFRoZSBtYXhpbWFsIHBhZ2Ugc2l6ZSBmb3IgSFJNUCBtZXNzYWdlIHBhZ2VzLgBhASBBIGxvd2VyIGxpbWl0IGNhbiBiZSBzZXQgZHluYW1pY2FsbHksIGJ1dCB0aGlzIGlzIHRoZSBoYXJkLWxpbWl0IGZvciB0aGUgUG9WIHdvcnN0IGNhc2VVASBiZW5jaG1hcmtpbmcuIFRoZSBsaW1pdCBmb3IgdGhlIHNpemUgb2YgYSBtZXNzYWdlIGlzIHNsaWdodGx5IGJlbG93IHRoaXMsIHNpbmNlIHNvbWW4IG92ZXJoZWFkIGlzIGluY3VycmVkIGZvciBlbmNvZGluZyB0aGUgZm9ybWF0LgABdQsAAABkAAAoQ3VtdWx1c1hjbQAAAWEHAAAAAABlAAAsUG9sa2Fkb3RYY20BLFBvbGthZG90WGNtPDBRdWVyeUNvdW50ZXIBABggAAAAAAAAAAAEiCBUaGUgbGF0ZXN0IGF2YWlsYWJsZSBxdWVyeSBpbmRleC4AHFF1ZXJpZXMAAQQCGHkLBAAEVCBUaGUgb25nb2luZyBxdWVyaWVzLgAoQXNzZXRUcmFwcwEBBAYsKBAAAAAAEGggVGhlIGV4aXN0aW5nIGFzc2V0IHRyYXBzLgBhASBLZXkgaXMgdGhlIGJsYWtlMiAyNTYgaGFzaCBvZiAob3JpZ2luLCB2ZXJzaW9uZWQgYEFzc2V0c2ApIHBhaXIuIFZhbHVlIGlzIHRoZSBudW1iZXIgb2YdASB0aW1lcyB0aGlzIHBhaXIgaGFzIGJlZW4gdHJhcHBlZCAodXN1YWxseSBqdXN0IDEgaWYgaXQgZXhpc3RzIGF0IGFsbCkuADhTYWZlWGNtVmVyc2lvbgAAKAQACGEBIERlZmF1bHQgdmVyc2lvbiB0byBlbmNvZGUgWENNIHdoZW4gbGF0ZXN0IHZlcnNpb24gb2YgZGVzdGluYXRpb24gaXMgdW5rbm93bi4gSWYgYE5vbmVgLD0BIHRoZW4gdGhlIGRlc3RpbmF0aW9ucyB3aG9zZSBYQ00gdmVyc2lvbiBpcyB1bmtub3duIGFyZSBjb25zaWRlcmVkIHVucmVhY2hhYmxlLgBAU3VwcG9ydGVkVmVyc2lvbgABCAUCjQsoBAAE8CBUaGUgTGF0ZXN0IHZlcnNpb25zIHRoYXQgd2Uga25vdyB2YXJpb3VzIGxvY2F0aW9ucyBzdXBwb3J0LgBAVmVyc2lvbk5vdGlmaWVycwABCAUCjQsYBAAEBQEgQWxsIGxvY2F0aW9ucyB0aGF0IHdlIGhhdmUgcmVxdWVzdGVkIHZlcnNpb24gbm90aWZpY2F0aW9ucyBmcm9tLgBQVmVyc2lvbk5vdGlmeVRhcmdldHMAAQgFAo0LkQsEAAhxASBUaGUgdGFyZ2V0IGxvY2F0aW9ucyB0aGF0IGFyZSBzdWJzY3JpYmVkIHRvIG91ciB2ZXJzaW9uIGNoYW5nZXMsIGFzIHdlbGwgYXMgdGhlIG1vc3QgcmVjZW50lCBvZiBvdXIgdmVyc2lvbnMgd2UgaW5mb3JtZWQgdGhlbSBvZi4AVFZlcnNpb25EaXNjb3ZlcnlRdWV1ZQEAlQsEAAxlASBEZXN0aW5hdGlvbnMgd2hvc2UgbGF0ZXN0IFhDTSB2ZXJzaW9uIHdlIHdvdWxkIGxpa2UgdG8ga25vdy4gRHVwbGljYXRlcyBub3QgYWxsb3dlZCwgYW5kcQEgdGhlIGB1MzJgIGNvdW50ZXIgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IGEgc2VuZCB0byB0aGUgZGVzdGluYXRpb24gaGFzIGJlZW4gYXR0ZW1wdGVkLIwgd2hpY2ggaXMgdXNlZCBhcyBhIHByaW9yaXRpemF0aW9uLgBAQ3VycmVudE1pZ3JhdGlvbgAAoQsEAAScIFRoZSBjdXJyZW50IG1pZ3JhdGlvbidzIHN0YWdlLCBpZiBhbnkuAFRSZW1vdGVMb2NrZWRGdW5naWJsZXMAAQwFAgKlC6kLBAAE8CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIGEgcmVtb3RlIGNoYWluLgA8TG9ja2VkRnVuZ2libGVzAAEEAgC5CwQABOAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiB0aGlzIGNoYWluLgBUWGNtRXhlY3V0aW9uU3VzcGVuZGVkAQDABAAEtCBHbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgA8U2hvdWxkUmVjb3JkWGNtAQDABAAcWQEgV2hldGhlciBvciBub3QgaW5jb21pbmcgWENNcyAoYm90aCBleGVjdXRlZCBsb2NhbGx5IGFuZCByZWNlaXZlZCkgc2hvdWxkIGJlIHJlY29yZGVkLsQgT25seSBvbmUgWENNIHByb2dyYW0gd2lsbCBiZSByZWNvcmRlZCBhdCBhIHRpbWUuKQEgVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGluIHJ1bnRpbWUgQVBJcywgYW5kIGl0J3MgYWR2aXNlZCBpdCBzdGF5cyBmYWxzZQ0BIGZvciBhbGwgb3RoZXIgdXNlIGNhc2VzLCBzbyBhcyB0byBub3QgZGVncmFkZSByZWd1bGFyIHBlcmZvcm1hbmNlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uACxSZWNvcmRlZFhjbQAASQQEABhJASBJZiBbYFNob3VsZFJlY29yZFhjbWBdIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoZSBsYXN0IFhDTSBwcm9ncmFtIGV4ZWN1dGVkIGxvY2FsbHlUIHdpbGwgYmUgc3RvcmVkIGhlcmUuKQEgUnVudGltZSBBUElzIGNhbiBmZXRjaCB0aGUgWENNIHRoYXQgd2FzIGV4ZWN1dGVkIGJ5IGFjY2Vzc2luZyB0aGlzIHZhbHVlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uAERBdXRob3JpemVkQWxpYXNlcwABBAJBA8ULBAAMZQEgTWFwIG9mIGF1dGhvcml6ZWQgYWxpYXNlcnMgb2YgbG9jYWwgb3JpZ2lucy4gRWFjaCBsb2NhbCBsb2NhdGlvbiBjYW4gYXV0aG9yaXplIGEgbGlzdCBvZlkBIG90aGVyIGxvY2F0aW9ucyB0byBhbGlhcyBpbnRvIGl0LiBFYWNoIGFsaWFzZXIgaXMgb25seSB2YWxpZCB1bnRpbCBpdHMgaW5uZXIgYGV4cGlyeWA4IGJsb2NrIG51bWJlci4AAT0DCAECuQFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAACAtkBVGhpcyBleHRyaW5zaWMgdXNlcyBgV2VpZ2h0TGltaXQ6OlVubGltaXRlZGAsIHBsZWFzZSBtaWdyYXRlIHRvIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAABbQcAEERVbml2ZXJzYWxMb2NhdGlvbjUBGAIJAgBRHwSEIFRoaXMgY2hhaW4ncyBVbml2ZXJzYWwgTG9jYXRpb24uAFBBZHZlcnRpc2VkWGNtVmVyc2lvbigQBQAAAAglASBUaGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9uIHRoYXQgd2UgYWR2ZXJ0aXNlLiBHZW5lcmFsbHkganVzdCBzZXQgaXQgdG+EIGBwYWxsZXRfeGNtOjpDdXJyZW50WGNtVmVyc2lvbmAuAChNYXhMb2NrZXJzKBAIAAAABBkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NhbCBYQ00gbG9ja3MgdGhhdCBhIHNpbmdsZSBhY2NvdW50IG1heSBoYXZlLgBYTWF4UmVtb3RlTG9ja0NvbnN1bWVycygQAAAAAAT8IFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zdW1lcnMgYSBzaW5nbGUgcmVtb3RlIGxvY2sgbWF5IGhhdmUuAAHdCwQYArxVc2UgYExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZVdpdGhFcnJvcmAgaW5zdGVhZAEYMjAuMC4wCCxSdW50aW1lQ2FsbAwEZCBUaGUgcnVudGltZSBgQ2FsbGAgdHlwZS5wUmVtb3RlTG9ja0NvbnN1bWVySWRlbnRpZmllcv0FBMQgVGhlIElEIHR5cGUgZm9yIGxvY2FsIGNvbnN1bWVycyBvZiByZW1vdGUgbG9ja3MuAGcAADRYY21UcmFuc2FjdG9yATRYY21UcmFuc2FjdG9yDDhJbmRleFRvQWNjb3VudAABBAIJAQAEAAxFASBTaW5jZSB3ZSBhcmUgdXNpbmcgcGFsbGV0LXV0aWxpdHkgZm9yIGFjY291bnQgZGVyaXZhdGlvbiAodGhyb3VnaCBBc0Rlcml2YXRpdmUpLG0BIHdlIG5lZWQgdG8gcHJvdmlkZSBhbiBpbmRleCBmb3IgdGhlIGFjY291bnQgZGVyaXZhdGlvbi4gVGhpcyBzdG9yYWdlIGl0ZW0gc3RvcmVzIHRoZSBpbmRleHkBIGFzc2lnbmVkIGZvciBhIGdpdmVuIGxvY2FsIGFjY291bnQuIFRoZXNlIGluZGljZXMgYXJlIHVzYWJsZSBhcyBkZXJpdmF0aXZlIGluIHRoZSByZWxheSBjaGFpbgBsVHJhbnNhY3RJbmZvV2l0aFdlaWdodExpbWl0AAEEAjEBeQcEAAxZASBTdG9yZXMgdGhlIHRyYW5zYWN0IGluZm8gb2YgYSBMb2NhdGlvbi4gVGhpcyBkZWZpbmVzIGhvdyBtdWNoIGV4dHJhIHdlaWdodCB3ZSBuZWVkIHRvbQEgYWRkIHdoZW4gd2Ugd2FudCB0byB0cmFuc2FjdCBpbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gYW5kIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCBhbGxvd2VkZCBieSB0aGUgZGVzdGluYXRpb24gY2hhaW4AMFJlbGF5SW5kaWNlcwEA5QtIAAAAAAAAAAAAAAAAAAAAAAAABKggU3RvcmVzIHRoZSBpbmRpY2VzIG9mIHJlbGF5IGNoYWluIHBhbGxldHMAAQEFAAF1BwAIMFNlbGZMb2NhdGlvbjEBCAAABFQgU2VsZiBjaGFpbiBsb2NhdGlvbi4ANEJhc2VYY21XZWlnaHRxARQCCK8vAAwA8CBUaGUgYWN0dWFsIHdlaWdodCBmb3IgYW4gWENNIG1lc3NhZ2UgaXMgYFQ6OkJhc2VYY21XZWlnaHQgK2wgVDo6V2VpZ2hlcjo6d2VpZ2h0KCZtc2cpYC4AAekLAAwcQmFsYW5jZbwESCBUaGUgYmFsYW5jZSB0eXBlLihDdXJyZW5jeUlkDQUENCBDdXJyZW5jeSBJZC4oVHJhbnNhY3RvcgUFAABrAAAsRXRoZXJldW1YY20BLEV0aGVyZXVtWGNtCBROb25jZQEAgQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9CBHbG9iYWwgbm9uY2UgdXNlZCBmb3IgYnVpbGRpbmcgRXRoZXJldW0gdHJhbnNhY3Rpb24gcGF5bG9hZC4AUEV0aGVyZXVtWGNtU3VzcGVuZGVkAQDABAAE4CBXaGV0aGVyIG9yIG5vdCBFdGhlcmV1bS1YQ00gaXMgc3VzcGVuZGVkIGZyb20gZXhlY3V0aW5nAAEpBQABfQcAAAHtCwAAAG0AADhFcmMyMFhjbUJyaWRnZQAAAAAAAABuAAAwTWVzc2FnZVF1ZXVlATBNZXNzYWdlUXVldWUMMEJvb2tTdGF0ZUZvcgEBBAVZBfELdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMwgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBhbmQgbGFzdCAobm9uLWVtcHR5KSBwYWdlcy4ALFNlcnZpY2VIZWFkAABZBQQABLwgVGhlIG9yaWdpbiBhdCB3aGljaCB3ZSBzaG91bGQgYmVnaW4gc2VydmljaW5nLgAUUGFnZXMAAQgFBf0LAQwEAASIIFRoZSBtYXAgb2YgcGFnZSBpbmRpY2VzIHRvIHBhZ2VzLgABVQUAAYEHABAgSGVhcFNpemUoEACcAQAUPQEgVGhlIHNpemUgb2YgdGhlIHBhZ2U7IHRoaXMgaW1wbGllcyB0aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgd2hpY2ggY2FuIGJlIHNlbnQuAFkBIEEgZ29vZCB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBleHBlY3RlZCBtZXNzYWdlIHNpemVzLCB0aGVpciB3ZWlnaHRzLCB0aGUgd2VpZ2h0IHRoYXQgaXNdASBhdmFpbGFibGUgZm9yIHByb2Nlc3NpbmcgdGhlbSBhbmQgdGhlIG1heGltYWwgbmVlZGVkIG1lc3NhZ2Ugc2l6ZS4gVGhlIG1heGltYWwgbWVzc2FnZREBIHNpemUgaXMgc2xpZ2h0bHkgbG93ZXIgdGhhbiB0aGlzIGFzIGRlZmluZWQgYnkgW2BNYXhNZXNzYWdlTGVuT2ZgXS4AIE1heFN0YWxlKBAIAAAADF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdGFsZSBwYWdlcyAoaS5lLiBvZiBvdmVyd2VpZ2h0IG1lc3NhZ2VzKSBhbGxvd2VkIGJlZm9yZSBjdWxsaW5nUQEgY2FuIGhhcHBlbi4gT25jZSB0aGVyZSBhcmUgbW9yZSBzdGFsZSBwYWdlcyB0aGFuIHRoaXMsIHRoZW4gaGlzdG9yaWNhbCBwYWdlcyBtYXkgYmX8IGRyb3BwZWQsIGV2ZW4gaWYgdGhleSBjb250YWluIHVucHJvY2Vzc2VkIG92ZXJ3ZWlnaHQgbWVzc2FnZXMuADRTZXJ2aWNlV2VpZ2h0kQQsAQcAiFJqdAIAoAAYQQEgVGhlIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgd2hpY2ggc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvcqggc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pbml0aWFsaXplYC4A/CBUaGlzIG1heSBiZSBsZWdpdGltYXRlbHkgYE5vbmVgIGluIHRoZSBjYXNlIHRoYXQgeW91IHdpbGwgY2FsbF0BIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgbWFudWFsbHkgb3Igc2V0IFtgU2VsZjo6SWRsZU1heFNlcnZpY2VXZWlnaHRgXSB0byBoYXZlVCBpdCBydW4gaW4gYG9uX2lkbGVgLgBQSWRsZU1heFNlcnZpY2VXZWlnaHSRBCwBBwCIUmp0AgCgABRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgABCQwABBBTaXplKARUIFBhZ2UvaGVhcCBzaXplIHR5cGUuAG8AAEBFdm1Gb3JlaWduQXNzZXRzAUBFdm1Gb3JlaWduQXNzZXRzFChBc3NldHNCeUlkAAEEArwxAQQADMggTWFwcGluZyBmcm9tIGFuIGFzc2V0IGlkIHRvIGEgRm9yZWlnbiBhc3NldCB0eXBlLjUBIFRoaXMgaXMgbW9zdGx5IHVzZWQgd2hlbiByZWNlaXZpbmcgdHJhbnNhY3Rpb24gc3BlY2lmeWluZyBhbiBhc3NldCBkaXJlY3RseSzcIGxpa2UgdHJhbnNmZXJyaW5nIGFuIGFzc2V0IGZyb20gdGhpcyBjaGFpbiB0byBhbm90aGVyLgBQQ291bnRlckZvckFzc2V0c0J5SWQBACgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcABAQXNzZXRzQnlMb2NhdGlvbgABBAIxAQ0MBAAMMQEgUmV2ZXJzZSBtYXBwaW5nIG9mIEFzc2V0c0J5SWQuIE1hcHBpbmcgZnJvbSBhIGZvcmVpZ24gYXNzZXQgdG8gYW4gYXNzZXQgaWQuLQEgVGhpcyBpcyBtb3N0bHkgdXNlZCB3aGVuIHJlY2VpdmluZyBhIG11bHRpbG9jYXRpb24gWENNIG1lc3NhZ2UgdG8gcmV0cmlldmXoIHRoZSBjb3JyZXNwb25kaW5nIGFzc2V0IGluIHdoaWNoIHRva2VucyBzaG91bGQgbWUgbWludGVkLgBUQXNzZXRzQ3JlYXRpb25EZXRhaWxzAAEEArwVDAQABMQgTWFwcGluZyBmcm9tIGFuIGFzc2V0IGlkIHRvIGl0cyBjcmVhdGlvbiBkZXRhaWxzADxQZW5kaW5nRGVwb3NpdHMAAQgCAh0MgQIEAAgZASBQZW5kaW5nIGRlcG9zaXRzIGZvciBmcm96ZW4gYXNzZXRzLCBrZXllZCBieSAoYXNzZXRfaWQsIGJlbmVmaWNpYXJ5KS4pASBEZXBvc2l0cyBmb3IgdGhlIHNhbWUgKGFzc2V0X2lkLCBiZW5lZmljaWFyeSkgYWNjdW11bGF0ZSB2aWEgY2hlY2tlZF9hZGQuAAFdBQABiQcAAAEhDAAEHEJhbGFuY2W8BIwgVGhlIGJhbGFuY2UgdHlwZSBmb3IgbG9ja2luZyBmdW5kcwByAAA8WGNtV2VpZ2h0VHJhZGVyATxYY21XZWlnaHRUcmFkZXIEPFN1cHBvcnRlZEFzc2V0cwABBAIxASUMBAAMuCBTdG9yZXMgYWxsIHN1cHBvcnRlZCBhc3NldHMgcGVyIFhDTSBMb2NhdGlvbi4ZASBUaGUgdTEyOCBpcyB0aGUgYXNzZXQgcHJpY2UgcmVsYXRpdmUgdG8gbmF0aXZlIGFzc2V0IHdpdGggMTggZGVjaW1hbHPwIFRoZSBib29sZWFuIHNwZWNpZnkgaWYgdGhlIHN1cHBvcnQgZm9yIHRoaXMgYXNzZXQgaXMgYWN0aXZlAAFlBQABjQcAAAEpDAAAAHMAAEBFbWVyZ2VuY3lQYXJhWGNtAUBFbWVyZ2VuY3lQYXJhWGNtBBBNb2RlAQAtDAQABKggV2hldGhlciBpbmNvbWluZyBYQ00gaXMgZW5hYmxlZCBvciBwYXVzZWQAAWkFAAGRBwAAATEMAAAAdAAAUE11bHRpQmxvY2tNaWdyYXRpb25zAVBNdWx0aUJsb2NrTWlncmF0aW9ucwgYQ3Vyc29yAAB1BQQADNggVGhlIGN1cnJlbnRseSBhY3RpdmUgbWlncmF0aW9uIHRvIHJ1biBhbmQgaXRzIGN1cnNvci4AvCBgTm9uZWAgaW5kaWNhdGVzIHRoYXQgbm8gbWlncmF0aW9uIGlzIHJ1bm5pbmcuACBIaXN0b3JpYwABBAVhBf0FBAAQtCBTZXQgb2YgYWxsIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCBtaWdyYXRpb25zLgBxASBUaGlzIGlzIHVzZWQgYXMgYmxhY2tsaXN0LCB0byBub3QgcmUtZXhlY3V0ZSBtaWdyYXRpb25zIHRoYXQgaGF2ZSBub3QgYmVlbiByZW1vdmVkIGZyb20gdGhlMQEgY29kZWJhc2UgeWV0LiBHb3Zlcm5hbmNlIGNhbiByZWd1bGFybHkgY2xlYXIgdGhpcyBvdXQgdmlhIGBjbGVhcl9oaXN0b3JpY2AuAAFtBQABlQcACDBDdXJzb3JNYXhMZW4oEAAAAQAQpCBUaGUgbWF4aW1hbCBsZW5ndGggb2YgYW4gZW5jb2RlZCBjdXJzb3IuAGUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYSBjdXJzb3Igd2l0aCBNRUwJASBhYm92ZSB0aGlzIGxpbWl0LiBUaGlzIGlzIHN0YXRpY2FsbHkgY2hlY2tlZCBpbiBgaW50ZWdyaXR5X3Rlc3RgLgBASWRlbnRpZmllck1heExlbigQAAEAABC0IFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGlkZW50aWZpZXIuAFUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYW4gaWRlbnRpZmllci0BIHdpdGggTUVMIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAAE1DAAAAHUAADRXZWlnaHRSZWNsYWltAAAAAAAAAHYIgQEgUGFsbGV0IHRvIHVzZSBhbG9uZ3NpZGUgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBbYFN0b3JhZ2VXZWlnaHRSZWNsYWltYF0sIHRoZSBwYWxsZXQgcHJvdmlkZXOMIHdlaWdodCBpbmZvcm1hdGlvbiBhbmQgYmVuY2htYXJrcy4ARFJlbGF5U3RvcmFnZVJvb3RzAURSZWxheVN0b3JhZ2VSb290cwhAUmVsYXlTdG9yYWdlUm9vdAABBAUoLAQABMAgTWFwIG9mIHJlbGF5IGJsb2NrIG51bWJlciB0byByZWxheSBzdG9yYWdlIHJvb3QAUFJlbGF5U3RvcmFnZVJvb3RLZXlzAQA5DAQACLAgTGlzdCBvZiBhbGwgdGhlIGtleXMgaW4gYFJlbGF5U3RvcmFnZVJvb3RgLikBIFVzZWQgdG8gcmVtb3ZlIHRoZSBvbGRlc3Qga2V5IHdpdGhvdXQgaGF2aW5nIHRvIGl0ZXJhdGUgb3ZlciBhbGwgb2YgdGhlbS4AAAAEPE1heFN0b3JhZ2VSb290cygQHgAAABD0IExpbWl0IHRoZSBudW1iZXIgb2YgcmVsYXkgc3RvcmFnZSByb290cyB0aGF0IHdpbGwgYmUgc3RvcmVkLlUBIFRoaXMgbGltaXQgYXBwbGllcyB0byB0aGUgbnVtYmVyIG9mIGl0ZW1zLCBub3QgdG8gdGhlaXIgYWdlLiBEZWNyZWFzaW5nIHRoZSB2YWx1ZSBvZikBIGBNYXhTdG9yYWdlUm9vdHNgIGlzIGEgYnJlYWtpbmcgY2hhbmdlIGFuZCBuZWVkcyBhIG1pZ3JhdGlvbiB0byBjbGVhbiB0aGV0IGBSZWxheVN0b3JhZ2VSb290c2AgbWFwcGluZy4AAAAAcAAAKFJhbmRvbW5lc3MBKFJhbmRvbW5lc3MgIFJlcXVlc3RzAAEEBRg9DAQABMAgUmFuZG9tbmVzcyByZXF1ZXN0cyBub3QgeWV0IGZ1bGZpbGxlZCBvciBwdXJnZWQAMFJlcXVlc3RDb3VudAEAGCAAAAAAAAAAAARNASBOdW1iZXIgb2YgcmFuZG9tbmVzcyByZXF1ZXN0cyBtYWRlIHNvIGZhciwgdXNlZCB0byBnZW5lcmF0ZSB0aGUgbmV4dCByZXF1ZXN0J3MgdWlkADhMb2NhbFZyZk91dHB1dAEADQMEAAicIEN1cnJlbnQgbG9jYWwgcGVyLWJsb2NrIFZSRiByYW5kb21uZXNzXCBTZXQgaW4gYG9uX2luaXRpYWxpemVgAChSZWxheUVwb2NoAQAYIAAAAAAAAAAABDAgUmVsYXkgZXBvY2gAQEluaGVyZW50SW5jbHVkZWQAAP0FBAAE5CBFbnN1cmVzIHRoZSBtYW5kYXRvcnkgaW5oZXJlbnQgd2FzIGluY2x1ZGVkIGluIHRoZSBibG9jawA0Tm90Rmlyc3RCbG9jawAA/QUEAAQVASBSZWNvcmRzIHdoZXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgYmxvY2sgKGdlbmVzaXMgb3IgcnVudGltZSB1cGdyYWRlKQBEUmFuZG9tbmVzc1Jlc3VsdHMAAQQFSQxNDAQACFEBIFNuYXBzaG90IG9mIHJhbmRvbW5lc3MgdG8gZnVsZmlsbCBhbGwgcmVxdWVzdHMgdGhhdCBhcmUgZm9yIHRoZSBzYW1lIHJhdyByYW5kb21uZXNznCBSZW1vdmVkIG9uY2UgJHZhbHVlLnJlcXVlc3RfY291bnQgPT0gMABYUHJldmlvdXNMb2NhbFZyZk91dHB1dAEALIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAigIFByZXZpb3VzIGxvY2FsIHBlci1ibG9jayBWUkYgcmFuZG9tbmVzc4wgU2V0IGluIGBvbl9maW5hbGl6ZWAgb2YgbGFzdCBibG9jawABjQUAAZkHABgcRGVwb3NpdLxAAAAQYy1ex2sFAAAAAAAAAARJASBUaGUgYW1vdW50IHRoYXQgc2hvdWxkIGJlIHRha2VuIGFzIGEgc2VjdXJpdHkgZGVwb3NpdCB3aGVuIHJlcXVlc3RpbmcgcmFuZG9tbmVzcy4AOE1heFJhbmRvbVdvcmRzCARkBAUBIE1heGltdW0gbnVtYmVyIG9mIHJhbmRvbSB3b3JkcyB0aGF0IGNhbiBiZSByZXF1ZXN0ZWQgcGVyIHJlcXVlc3QANE1pbkJsb2NrRGVsYXkoEAIAAAAIYQEgTG9jYWwgcGVyLWJsb2NrIFZSRiByZXF1ZXN0cyBtdXN0IGJlIGF0IGxlYXN0IHRoaXMgbWFueSBibG9ja3MgYWZ0ZXIgdGhlIGJsb2NrIGluIHdoaWNoUCB0aGV5IHdlcmUgcmVxdWVzdGVkADRNYXhCbG9ja0RlbGF5KBDQBwAACF0BIExvY2FsIHBlci1ibG9jayBWUkYgcmVxdWVzdHMgbXVzdCBiZSBhdCBtb3N0IHRoaXMgbWFueSBibG9ja3MgYWZ0ZXIgdGhlIGJsb2NrIGluIHdoaWNoUCB0aGV5IHdlcmUgcmVxdWVzdGVkAFBCbG9ja0V4cGlyYXRpb25EZWxheSgQECcAAARNASBMb2NhbCByZXF1ZXN0cyBleHBpcmUgYW5kIGNhbiBiZSBwdXJnZWQgZnJvbSBzdG9yYWdlIGFmdGVyIHRoaXMgbWFueSBibG9ja3MvZXBvY2hzAFBFcG9jaEV4cGlyYXRpb25EZWxheRggECcAAAAAAAAESQEgQmFiZSByZXF1ZXN0cyBleHBpcmUgYW5kIGNhbiBiZSBwdXJnZWQgZnJvbSBzdG9yYWdlIGFmdGVyIHRoaXMgbWFueSBibG9ja3MvZXBvY2hzAAFRDAAAAHgAAExCcmlkZ2VLdXNhbWFHcmFuZHBhAUxCcmlkZ2VLdXNhbWFHcmFuZHBhJFBGcmVlSGVhZGVyc1JlbWFpbmluZwAAKAQAID0BIE51bWJlciBvZiBmcmVlIGhlYWRlciBzdWJtaXNzaW9ucyB0aGF0IHdlIG1heSB5ZXQgYWNjZXB0IGluIHRoZSBjdXJyZW50IGJsb2NrLgBBASBJZiB0aGUgYEZyZWVIZWFkZXJzUmVtYWluaW5nYCBoaXRzIHplcm8sIGFsbCBmb2xsb3dpbmcgbWFuZGF0b3J5IGhlYWRlcnMgaW4gdGhl/CBjdXJyZW50IGJsb2NrIGFyZSBhY2NlcHRlZCB3aXRoIGZlZSAoYFBheXM6Olllc2AgaXMgcmV0dXJuZWQpLgABASBUaGUgYEZyZWVIZWFkZXJzUmVtYWluaW5nYCBpcyBhbiBlcGhlbWVyYWwgdmFsdWUgdGhhdCBpcyBzZXQgdG81ASBgTWF4RnJlZUhlYWRlcnNQZXJCbG9ja2AgYXQgZWFjaCBibG9jayBpbml0aWFsaXphdGlvbiBhbmQgaXMga2lsbGVkIG9uIGJsb2Nr3CBmaW5hbGl6YXRpb24uIFNvIGl0IG5ldmVyIGVuZHMgdXAgaW4gdGhlIHN0b3JhZ2UgdHJpZS4ALEluaXRpYWxIYXNoAQAsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMQgSGFzaCBvZiB0aGUgaGVhZGVyIHVzZWQgdG8gYm9vdHN0cmFwIHRoZSBwYWxsZXQuADRCZXN0RmluYWxpemVkAABVDAQABIwgSGFzaCBvZiB0aGUgYmVzdCBmaW5hbGl6ZWQgaGVhZGVyLgA4SW1wb3J0ZWRIYXNoZXMAAQQGKCwEAAQFASBBIHJpbmcgYnVmZmVyIG9mIGltcG9ydGVkIGhhc2hlcy4gT3JkZXJlZCBieSB0aGUgaW5zZXJ0aW9uIHRpbWUuAFRJbXBvcnRlZEhhc2hlc1BvaW50ZXIBACgQAAAAAAR4IEN1cnJlbnQgcmluZyBidWZmZXIgcG9zaXRpb24uADxJbXBvcnRlZEhlYWRlcnMAAQQGLFkMBAAElCBSZWxldmFudCBmaWVsZHMgb2YgaW1wb3J0ZWQgaGVhZGVycy4ATEN1cnJlbnRBdXRob3JpdHlTZXQBAF0MJAAAAAAAAAAAAASMIFRoZSBjdXJyZW50IEdSQU5EUEEgQXV0aG9yaXR5IHNldC4ALFBhbGxldE93bmVyAAAABAAYXCBPcHRpb25hbCBwYWxsZXQgb3duZXIuAFEBIFBhbGxldCBvd25lciBoYXMgYSByaWdodCB0byBoYWx0IGFsbCBwYWxsZXQgb3BlcmF0aW9ucyBhbmQgdGhlbiByZXN1bWUgaXQuIElmIGl0IGlzSQEgYE5vbmVgLCB0aGVuIHRoZXJlIGFyZSBubyBkaXJlY3Qgd2F5cyB0byBoYWx0L3Jlc3VtZSBwYWxsZXQgb3BlcmF0aW9ucywgYnV0IG90aGVyYQEgcnVudGltZSBtZXRob2RzIG1heSBzdGlsbCBiZSB1c2VkIHRvIGRvIHRoYXQgKGkuZS4gZGVtb2NyYWN5OjpyZWZlcmVuZHVtIHRvIHVwZGF0ZSBoYWx0xCBmbGFnIGRpcmVjdGx5IG9yIGNhbGwgdGhlIGBzZXRfb3BlcmF0aW5nX21vZGVgKS4ATFBhbGxldE9wZXJhdGluZ01vZGUBAL0FBAAMqCBUaGUgY3VycmVudCBvcGVyYXRpbmcgbW9kZSBvZiB0aGUgcGFsbGV0LgAZASBEZXBlbmRpbmcgb24gdGhlIG1vZGUgZWl0aGVyIGFsbCwgb3Igbm8gdHJhbnNhY3Rpb25zIHdpbGwgYmUgYWxsb3dlZC4AAZEFBAACcQFgc3VibWl0X2ZpbmFsaXR5X3Byb29mYCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjQuIFVzZSBgc3VibWl0X2ZpbmFsaXR5X3Byb29mX2V4YCBpbnN0ZWFkLgABnQcADFhNYXhGcmVlSGVhZGVyc1BlckJsb2NrKBAEAAAAPOAgTWF4aW1hbCBudW1iZXIgb2YgImZyZWUiIGhlYWRlciB0cmFuc2FjdGlvbnMgcGVyIGJsb2NrLgBBASBUbyBiZSBhYmxlIHRvIHRyYWNrIHRoZSBicmlkZ2VkIGNoYWluLCB0aGUgcGFsbGV0IHJlcXVpcmVzIGFsbCBoZWFkZXJzIHRoYXQgYXJlQQEgY2hhbmdpbmcgR1JBTkRQQSBhdXRob3JpdGllcyBzZXQgYXQgdGhlIGJyaWRnZWQgY2hhaW4gKHdlIGNhbGwgdGhlbSBtYW5kYXRvcnkpLh0BIFNvIGl0IGlzIGEgY29tbW9uIGdvb2QgZGVlZCB0byBzdWJtaXQgbWFuZGF0b3J5IGhlYWRlcnMgdG8gdGhlIHBhbGxldC4AQQEgVGhlIHBhbGxldCBtYXkgYmUgY29uZmlndXJlZCAoc2VlIGBbU2VsZjo6RnJlZUhlYWRlcnNJbnRlcnZhbF1gKSB0byBpbXBvcnQgc29tZUEBIG5vbi1tYW5kYXRvcnkgaGVhZGVycyBmb3IgZnJlZSBhcyB3ZWxsLiBJdCBhbHNvIG1heSBiZSB0cmVhdGVkIGFzIGEgY29tbW9uIGdvb2RFASBkZWVkLCBiZWNhdXNlIGl0IG1heSBoZWxwIHRvIHJlZHVjZSBicmlkZ2UgZmVlcyAtIHRoaXMgY29zdCBtYXkgYmUgZGVkdWN0ZWQgZnJvbZggYnJpZGdlIGZlZXMsIHBhaWQgYnkgbWVzc2FnZSBzZW5kZXJzLgBRASBIb3dldmVyLCBpZiB0aGUgYnJpZGdlZCBjaGFpbiBnZXRzIGNvbXByb21pc2VkLCBpdHMgdmFsaWRhdG9ycyBtYXkgZ2VuZXJhdGUgYXMgbWFueU0BICJmcmVlIiBoZWFkZXJzIGFzIHRoZXkgd2FudC4gQW5kIHRoZXkgbWF5IGZpbGwgdGhlIHdob2xlIGJsb2NrIChhdCB0aGlzIGNoYWluKSBmb3JFASBmcmVlLiBUaGlzIGNvbnN0YW50IGxpbWl0cyBudW1iZXIgb2YgY2FsbHMgdGhhdCB3ZSBtYXkgcmVmdW5kIGluIGEgc2luZ2xlIGJsb2NrLvwgQWxsIGNhbGxzIGFib3ZlIHRoaXMgbGltaXQgYXJlIGFjY2VwdGVkLCBidXQgYXJlIG5vdCByZWZ1bmRlZC4ATEZyZWVIZWFkZXJzSW50ZXJ2YWxdAhQBBQAAABRBASBUaGUgZGlzdGFuY2UgYmV0d2VlbiBicmlkZ2VkIGNoYWluIGhlYWRlcnMsIHRoYXQgbWF5IGJlIHN1Ym1pdHRlZCBmb3IgZnJlZS4gVGhlHQEgZmlyc3QgZnJlZSBoZWFkZXIgaXMgaGVhZGVyIG51bWJlciB6ZXJvLCB0aGUgbmV4dCBvbmUgaXMgaGVhZGVyIG51bWJlcjUBIGBGcmVlSGVhZGVyc0ludGVydmFsOjpnZXQoKWAgb3IgYW55IG9mIGl0cyBkZXNjZW5kYW50IGlmIHRoYXQgaGVhZGVyIGhhcyBub3RFASBiZWVuIHN1Ym1pdHRlZC4gSW4gb3RoZXIgd29yZHMsIGludGVydmFsIGJldHdlZW4gZnJlZSBoZWFkZXJzIHNob3VsZCBiZSBhdCBsZWFzdFwgYEZyZWVIZWFkZXJzSW50ZXJ2YWxgLgA0SGVhZGVyc1RvS2VlcCgQAAQAABzwIE1heGltYWwgbnVtYmVyIG9mIGZpbmFsaXplZCBoZWFkZXJzIHRvIGtlZXAgaW4gdGhlIHN0b3JhZ2UuADkBIFRoZSBzZXR0aW5nIGlzIHRoZXJlIHRvIHByZXZlbnQgZ3Jvd2luZyB0aGUgb24tY2hhaW4gc3RhdGUgaW5kZWZpbml0ZWx5LiBOb3RlRQEgdGhlIHNldHRpbmcgZG9lcyBub3QgcmVsYXRlIHRvIGJsb2NrIG51bWJlcnMgLSB3ZSB3aWxsIHNpbXBseSBrZWVwIGFzIG11Y2ggaXRlbXNJASBpbiB0aGUgc3RvcmFnZSwgc28gaXQgZG9lc24ndCBndWFyYW50ZWUgYW55IGZpeGVkIHRpbWVmcmFtZSBmb3IgZmluYWxpdHkgaGVhZGVycy4AWQEgSW5jYXV0aW91cyBjaGFuZ2Ugb2YgdGhpcyBjb25zdGFudCBtYXkgbGVhZCB0byBvcnBoYW4gZW50cmllcyBpbiB0aGUgcnVudGltZSBzdG9yYWdlLgABZQwAAACCAABYQnJpZGdlS3VzYW1hUGFyYWNoYWlucwFYQnJpZGdlS3VzYW1hUGFyYWNoYWlucxQsUGFsbGV0T3duZXIAAAAEABhcIE9wdGlvbmFsIHBhbGxldCBvd25lci4AWQEgUGFsbGV0IG93bmVyIGhhcyBhIHJpZ2h0IHRvIGhhbHQgYWxsIHBhbGxldCBvcGVyYXRpb25zIGFuZCB0aGVuIHJlc3VtZSB0aGVtLiBJZiBpdCBpc0kBIGBOb25lYCwgdGhlbiB0aGVyZSBhcmUgbm8gZGlyZWN0IHdheXMgdG8gaGFsdC9yZXN1bWUgcGFsbGV0IG9wZXJhdGlvbnMsIGJ1dCBvdGhlcmEBIHJ1bnRpbWUgbWV0aG9kcyBtYXkgc3RpbGwgYmUgdXNlZCB0byBkbyB0aGF0IChpLmUuIGRlbW9jcmFjeTo6cmVmZXJlbmR1bSB0byB1cGRhdGUgaGFsdMQgZmxhZyBkaXJlY3RseSBvciBjYWxsIHRoZSBgc2V0X29wZXJhdGluZ19tb2RlYCkuAExQYWxsZXRPcGVyYXRpbmdNb2RlAQC9BQQADKggVGhlIGN1cnJlbnQgb3BlcmF0aW5nIG1vZGUgb2YgdGhlIHBhbGxldC4AGQEgRGVwZW5kaW5nIG9uIHRoZSBtb2RlIGVpdGhlciBhbGwsIG9yIG5vIHRyYW5zYWN0aW9ucyB3aWxsIGJlIGFsbG93ZWQuACRQYXJhc0luZm8AAQQC0QVtDAQAFEQgUGFyYWNoYWlucyBpbmZvLgB0IENvbnRhaW5zIHRoZSBmb2xsb3dpbmcgaW5mbzpsIC0gYmVzdCBwYXJhY2hhaW4gaGVhZCBoYXNozCAtIHRoZSBoZWFkIG9mIHRoZSBgSW1wb3J0ZWRQYXJhSGFzaGVzYCByaW5nIGJ1ZmZlcgBESW1wb3J0ZWRQYXJhSGVhZHMAAQgCAs0FdQwEAAQlASBTdGF0ZSByb290cyBvZiBwYXJhY2hhaW4gaGVhZHMgd2hpY2ggaGF2ZSBiZWVuIGltcG9ydGVkIGludG8gdGhlIHBhbGxldC4ASEltcG9ydGVkUGFyYUhhc2hlcwABCAIFeQwsBAAEQQEgQSByaW5nIGJ1ZmZlciBvZiBpbXBvcnRlZCBwYXJhY2hhaW4gaGVhZCBoYXNoZXMuIE9yZGVyZWQgYnkgdGhlIGluc2VydGlvbiB0aW1lLgABwQUAAa0HAAw8UGFyYXNQYWxsZXROYW1lHQcYFFBhcmFzFFkBIE5hbWUgb2YgdGhlIG9yaWdpbmFsIGBwYXJhc2AgcGFsbGV0IGluIHRoZSBgY29uc3RydWN0X3J1bnRpbWUhKClgIGNhbGwgYXQgdGhlIGJyaWRnZWQcIGNoYWluLgBRASBQbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgdGhpcyBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGBydW50aW1lX3BhcmFjaGFpbnM6OnBhcmFzYBUBIHBhbGxldCBmcm9tIHBvbGthZG90IHJlcG9zaXRvcnksIG5vdCB0aGUgYHBhbGxldC1icmlkZ2UtcGFyYWNoYWluc2AuACxIZWFkc1RvS2VlcCgQQAAAABwFASBNYXhpbWFsIG51bWJlciBvZiBzaW5nbGUgcGFyYWNoYWluIGhlYWRzIHRvIGtlZXAgaW4gdGhlIHN0b3JhZ2UuADkBIFRoZSBzZXR0aW5nIGlzIHRoZXJlIHRvIHByZXZlbnQgZ3Jvd2luZyB0aGUgb24tY2hhaW4gc3RhdGUgaW5kZWZpbml0ZWx5LiBOb3RlVQEgdGhlIHNldHRpbmcgZG9lcyBub3QgcmVsYXRlIHRvIHBhcmFjaGFpbiBibG9jayBudW1iZXJzIC0gd2Ugd2lsbCBzaW1wbHkga2VlcCBhcyBtdWNoNQEgaXRlbXMgaW4gdGhlIHN0b3JhZ2UsIHNvIGl0IGRvZXNuJ3QgZ3VhcmFudGVlIGFueSBmaXhlZCB0aW1lZnJhbWUgZm9yIGhlYWRzLgBZASBJbmNhdXRpb3VzIGNoYW5nZSBvZiB0aGlzIGNvbnN0YW50IG1heSBsZWFkIHRvIG9ycGhhbiBlbnRyaWVzIGluIHRoZSBydW50aW1lIHN0b3JhZ2UuAExNYXhQYXJhSGVhZERhdGFTaXplKBCAAAAAJAUBIE1heGltYWwgc2l6ZSAoaW4gYnl0ZXMpIG9mIHRoZSBTQ0FMRS1lbmNvZGVkIHBhcmFjaGFpbiBoZWFkIGRhdGGkIChgYnBfcGFyYWNoYWluczo6UGFyYVN0b3JlZEhlYWRlckRhdGFgKS4AVQEgS2VlcCBpbiBtaW5kIHRoYXQgdGhlIHNpemUgb2YgYW55IHRyYWNrZWQgcGFyYWNoYWluIGhlYWRlciBkYXRhIG11c3Qgbm90IGV4Y2VlZCB0aGlzUQEgdmFsdWUuIFNvIGlmIHlvdSdyZSBnb2luZyB0byB0cmFjayBtdWx0aXBsZSBwYXJhY2hhaW5zLCBvbmUgb2Ygd2hpY2ggaXMgdXNpbmcgbGFyZ2W0IGhhc2hlcywgeW91IHNoYWxsIGNob29zZSB0aGlzIG1heGltYWwgdmFsdWUuAFkBIFRoZXJlJ3Mgbm8gbWFuZGF0b3J5IGhlYWRlcnMgaW4gdGhpcyBwYWxsZXQsIHNvIGl0IGNhbid0IHN0YWxsIGlmIHRoZXJlJ3Mgc29tZSBoZWFkZXJkIHRoYXQgZXhjZWVkcyB0aGlzIGJvdW5kLgABfQwAAACDAABQQnJpZGdlS3VzYW1hTWVzc2FnZXMBUEJyaWRnZUt1c2FtYU1lc3NhZ2VzFCxQYWxsZXRPd25lcgAAAAQAGFwgT3B0aW9uYWwgcGFsbGV0IG93bmVyLgBRASBQYWxsZXQgb3duZXIgaGFzIGEgcmlnaHQgdG8gaGFsdCBhbGwgcGFsbGV0IG9wZXJhdGlvbnMgYW5kIHRoZW4gcmVzdW1lIGl0LiBJZiBpdCBpc0kBIGBOb25lYCwgdGhlbiB0aGVyZSBhcmUgbm8gZGlyZWN0IHdheXMgdG8gaGFsdC9yZXN1bWUgcGFsbGV0IG9wZXJhdGlvbnMsIGJ1dCBvdGhlcmEBIHJ1bnRpbWUgbWV0aG9kcyBtYXkgc3RpbGwgYmUgdXNlZCB0byBkbyB0aGF0IChpLmUuIGRlbW9jcmFjeTo6cmVmZXJlbmR1bSB0byB1cGRhdGUgaGFsdMQgZmxhZyBkaXJlY3RseSBvciBjYWxsIHRoZSBgc2V0X29wZXJhdGluZ19tb2RlYCkuAExQYWxsZXRPcGVyYXRpbmdNb2RlAQDdBQgAAAyoIFRoZSBjdXJyZW50IG9wZXJhdGluZyBtb2RlIG9mIHRoZSBwYWxsZXQuADEBIERlcGVuZGluZyBvbiB0aGUgbW9kZSBlaXRoZXIgYWxsLCBzb21lLCBvciBubyB0cmFuc2FjdGlvbnMgd2lsbCBiZSBhbGxvd2VkLgAwSW5ib3VuZExhbmVzAAEEAuUFiQwEAASUIE1hcCBvZiBsYW5lIGlkID0+IGluYm91bmQgbGFuZSBkYXRhLgA0T3V0Ym91bmRMYW5lcwABBALlBZkMBAAEmCBNYXAgb2YgbGFuZSBpZCA9PiBvdXRib3VuZCBsYW5lIGRhdGEuAEBPdXRib3VuZE1lc3NhZ2VzAAEEAp0MoQwEAAR4IEFsbCBxdWV1ZWQgb3V0Ym91bmQgbWVzc2FnZXMuAAHZBQABsQcAAAGlDAAEPE91dGJvdW5kUGF5bG9hZBQEUQEgUGF5bG9hZCB0eXBlIG9mIG91dGJvdW5kIG1lc3NhZ2VzLiBUaGlzIHBheWxvYWQgaXMgZGlzcGF0Y2hlZCBvbiB0aGUgYnJpZGdlZCBjaGFpbi4AhAAAWEJyaWRnZVhjbU92ZXJNb29ucml2ZXIBWEJyaWRnZVhjbU92ZXJNb29ucml2ZXIIHEJyaWRnZXMAAQQG1Qe1DAQABGAgQWxsIHJlZ2lzdGVyZWQgYnJpZGdlcy4AMExhbmVUb0JyaWRnZQABBAblBdUHBAAEzCBBbGwgcmVnaXN0ZXJlZCBgbGFuZV9pZGAgYW5kIGBicmlkZ2VfaWRgIG1hcHBpbmdzLgAB8QUAAdEHAAg4QnJpZGdlZE5ldHdvcmsxARACAQkDBA0BIEJyaWRnZWQgbmV0d29yayBhcyByZWxhdGl2ZSBsb2NhdGlvbiBvZiBicmlkZ2VkIGBHbG9iYWxDb25zZW5zdXNgLgA0QnJpZGdlRGVwb3NpdLxAAAAAAAAAAAAAAAAAAAAAAAhVASBBbW91bnQgb2YgdGhpcyBjaGFpbiBuYXRpdmUgdG9rZW5zIHRoYXQgaXMgcmVzZXJ2ZWQgb24gdGhlIHNpYmxpbmcgcGFyYWNoYWluIGFjY291bnSgIHdoZW4gYnJpZGdlIG9wZW4gcmVxdWVzdCBpcyByZWdpc3RlcmVkLgABvQwAAACFAAAIBAUADCkCBAAsAAQIDBAUGBwgJCgsSENoZWNrTm9uWmVyb1NlbmRlcvkF/QVAQ2hlY2tTcGVjVmVyc2lvbgEGKDhDaGVja1R4VmVyc2lvbgUGKDBDaGVja0dlbmVzaXMJBiw4Q2hlY2tNb3J0YWxpdHkNBiwoQ2hlY2tOb25jZRUG/QUsQ2hlY2tXZWlnaHQZBv0FYENoYXJnZVRyYW5zYWN0aW9uUGF5bWVudB0G/QWYQnJpZGdlUmVqZWN0T2Jzb2xldGVIZWFkZXJzQW5kTWVzc2FnZXMhBv0FRENoZWNrTWV0YWRhdGFIYXNoJQYtBlBTdG9yYWdlV2VpZ2h0UmVjbGFpbf0F/QVoWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2XFDAh0eBkIKGJsb2NrX2hhc2gsyQwkaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgAETQEgVGhlIGBUYWdnZWRUcmFuc2FjdGlvblF1ZXVlYCBhcGkgdHJhaXQgZm9yIGludGVyZmVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIHF1ZXVlLgwAUFVuaW5jbHVkZWRTZWdtZW50QXBpBDhjYW5fYnVpbGRfdXBvbgg0aW5jbHVkZWRfaGFzaCwQc2xvdH0JwCg5ASBXaGV0aGVyIGl0IGlzIGxlZ2FsIHRvIGV4dGVuZCB0aGUgY2hhaW4sIGFzc3VtaW5nIHRoZSBnaXZlbiBibG9jayBpcyB0aGUgbW9zdDUBIHJlY2VudGx5IGluY2x1ZGVkIG9uZSBhcy1vZiB0aGUgcmVsYXkgcGFyZW50IHRoYXQgd2lsbCBiZSBidWlsdCBhZ2FpbnN0LCBhbmRAIHRoZSBnaXZlbiBzbG90LgBRASBUaGlzIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvZ2ljIHRoZSBydW50aW1lIHVzZXMgd2hlbiB2YWxpZGF0aW5nIGJsb2NrcyB0bzggYXZvaWQgaXNzdWVzLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgZW1wdHksIGkuZS4gYGluY2x1ZGVkX2hhc2ggPT0gYXRgLCB3aGVyZSBhdCBpcyB0aGUgYmxvY2thASB3aG9zZSBzdGF0ZSB3ZSBhcmUgcXVlcnlpbmcgYWdhaW5zdCwgdGhpcyBtdXN0IGFsd2F5cyByZXR1cm4gYHRydWVgIGFzIGxvbmcgYXMgdGhlIHNsb3S8IGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlIGluY2x1ZGVkIGJsb2NrIGl0c2VsZi4AKDUBIFRoaXMgcnVudGltZSBBUEkgaXMgdXNlZCB0byBpbmZvcm0gcG90ZW50aWFsIGJsb2NrIGF1dGhvcnMgd2hldGhlciB0aGV5IHdpbGwlASBoYXZlIHRoZSByaWdodCB0byBhdXRob3IgYXQgYSBzbG90LCBhc3N1bWluZyB0aGV5IGhhdmUgY2xhaW1lZCB0aGUgc2xvdC4ASQEgSW4gcGFydGljdWxhciwgdGhpcyBBUEkgYWxsb3dzIHBhcmFjaGFpbnMgdG8gcmVndWxhdGUgdGhlaXIgInVuaW5jbHVkZWQgc2VnbWVudCIsbQEgd2hpY2ggaXMgdGhlIHNlY3Rpb24gb2YgdGhlIGhlYWQgb2YgdGhlIGNoYWluIHdoaWNoIGhhcyBub3QgeWV0IGJlZW4gbWFkZSBhdmFpbGFibGUgaW4gdGhlNCByZWxheSBjaGFpbi4AXQEgV2hlbiB0aGUgdW5pbmNsdWRlZCBzZWdtZW50IGlzIHNob3J0LCBwYXJhY2hhaW5zIHdpbGwgYWxsb3cgYXV0aG9ycyB0byBjcmVhdGUgbXVsdGlwbGVdASBibG9ja3MgcGVyIHNsb3QgaW4gb3JkZXIgdG8gYnVpbGQgYSBiYWNrbG9nLiBXaGVuIGl0IGlzIHNhdHVyYXRlZCwgdGhpcyBBUEkgd2lsbCBsaW1pdKggdGhlIGFtb3VudCBvZiBibG9ja3MgdGhhdCBjYW4gYmUgY3JlYXRlZC4EAERLdXNhbWFGaW5hbGl0eUFwaQw4YmVzdF9maW5hbGl6ZWQA3QwERQEgUmV0dXJucyBudW1iZXIgYW5kIGhhc2ggb2YgdGhlIGJlc3QgZmluYWxpemVkIGhlYWRlciBrbm93biB0byB0aGUgYnJpZGdlIG1vZHVsZS4AVGZyZWVfaGVhZGVyc19pbnRlcnZhbABdAhQNASBSZXR1cm5zIGZyZWUgaGVhZGVycyBpbnRlcnZhbCwgaWYgaXQgaXMgY29uZmlndXJlZCBpbiB0aGUgcnVudGltZS4ZASBUaGUgY2FsbGVyIGV4cGVjdHMgdGhhdCBpZiBoaXMgdHJhbnNhY3Rpb24gaW1wcm92ZXMgYmVzdCBrbm93biBoZWFkZXL0IGF0IGxlYXN0IGJ5IHRoZSBmcmVlX2hlYWRlcnNfaW50ZXJ2YWxgLCBpdCB3aWxsIGJlIGZlZS1mcmVlLgAhASBTZWUgW2BwYWxsZXRfYnJpZGdlX2dyYW5kcGE6OkNvbmZpZzo6RnJlZUhlYWRlcnNJbnRlcnZhbGBdIGZvciBkZXRhaWxzLgBsc3luY2VkX2hlYWRlcnNfZ3JhbmRwYV9pbmZvAOEMBOggUmV0dXJucyB0aGUganVzdGlmaWNhdGlvbnMgYWNjZXB0ZWQgaW4gdGhlIGN1cnJlbnQgYmxvY2suABABASBBUEkgZm9yIHF1ZXJ5aW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmaW5hbGl6ZWQgY2hhaW4gaGVhZGVycy4AdQEgVGhpcyBBUEkgaXMgaW1wbGVtZW50ZWQgYnkgcnVudGltZXMgdGhhdCBhcmUgcmVjZWl2aW5nIG1lc3NhZ2VzIGZyb20gdGhpcyBjaGFpbiwgbm90IGJ5IHRoaXNgIGNoYWluJ3MgcnVudGltZSBpdHNlbGYuBABoTW9vbnJpdmVyS3VzYW1hRmluYWxpdHlBcGkIOGJlc3RfZmluYWxpemVkAN0MBEUBIFJldHVybnMgbnVtYmVyIGFuZCBoYXNoIG9mIHRoZSBiZXN0IGZpbmFsaXplZCBoZWFkZXIga25vd24gdG8gdGhlIGJyaWRnZSBtb2R1bGUuAFRmcmVlX2hlYWRlcnNfaW50ZXJ2YWwAXQIUDQEgUmV0dXJucyBmcmVlIGhlYWRlcnMgaW50ZXJ2YWwsIGlmIGl0IGlzIGNvbmZpZ3VyZWQgaW4gdGhlIHJ1bnRpbWUuGQEgVGhlIGNhbGxlciBleHBlY3RzIHRoYXQgaWYgaGlzIHRyYW5zYWN0aW9uIGltcHJvdmVzIGJlc3Qga25vd24gaGVhZGVy9CBhdCBsZWFzdCBieSB0aGUgZnJlZV9oZWFkZXJzX2ludGVydmFsYCwgaXQgd2lsbCBiZSBmZWUtZnJlZS4AIQEgU2VlIFtgcGFsbGV0X2JyaWRnZV9ncmFuZHBhOjpDb25maWc6OkZyZWVIZWFkZXJzSW50ZXJ2YWxgXSBmb3IgZGV0YWlscy4AEAEBIEFQSSBmb3IgcXVlcnlpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbmFsaXplZCBjaGFpbiBoZWFkZXJzLgB1ASBUaGlzIEFQSSBpcyBpbXBsZW1lbnRlZCBieSBydW50aW1lcyB0aGF0IGFyZSByZWNlaXZpbmcgbWVzc2FnZXMgZnJvbSB0aGlzIGNoYWluLCBub3QgYnkgdGhpc2AgY2hhaW4ncyBydW50aW1lIGl0c2VsZi4EAIBUb01vb25yaXZlckt1c2FtYU91dGJvdW5kTGFuZUFwaQQ8bWVzc2FnZV9kZXRhaWxzDBBsYW5l5QUUYmVnaW4YDGVuZBjlDBQ9ASBSZXR1cm5zIGRpc3BhdGNoIHdlaWdodCwgZW5jb2RlZCBwYXlsb2FkIHNpemUgYW5kIGRlbGl2ZXJ5K2Rpc3BhdGNoIGZlZSBvZiBhbGyMIG1lc3NhZ2VzIGluIGdpdmVuIGluY2x1c2l2ZSByYW5nZS4AKQEgSWYgc29tZSAob3IgYWxsKSBtZXNzYWdlcyBhcmUgbWlzc2luZyBmcm9tIHRoZSBzdG9yYWdlLCB0aGV5J2xsIGFsc28gd2lsbCkBIGJlIG1pc3NpbmcgZnJvbSB0aGUgcmVzdWx0aW5nIHZlY3Rvci4gVGhlIHZlY3RvciBpcyBvcmRlcmVkIGJ5IHRoZSBub25jZS4AEBEBIE91dGJvdW5kIG1lc3NhZ2UgbGFuZSBBUEkgZm9yIG1lc3NhZ2VzIHRoYXQgYXJlIHNlbnQgdG8gdGhpcyBjaGFpbi4AdQEgVGhpcyBBUEkgaXMgaW1wbGVtZW50ZWQgYnkgcnVudGltZXMgdGhhdCBhcmUgcmVjZWl2aW5nIG1lc3NhZ2VzIGZyb20gdGhpcyBjaGFpbiwgbm90IGJ5IHRoaXNgIGNoYWluJ3MgcnVudGltZSBpdHNlbGYuBACERnJvbU1vb25yaXZlckt1c2FtYUluYm91bmRMYW5lQXBpBDxtZXNzYWdlX2RldGFpbHMIEGxhbmXlBSBtZXNzYWdlc+0M9QwEqCBSZXR1cm4gZGV0YWlscyBvZiBnaXZlbiBpbmJvdW5kIG1lc3NhZ2VzLgAc6CBJbmJvdW5kIG1lc3NhZ2UgbGFuZSBBUEkgZm9yIG1lc3NhZ2VzIHNlbnQgYnkgdGhpcyBjaGFpbi4AdQEgVGhpcyBBUEkgaXMgaW1wbGVtZW50ZWQgYnkgcnVudGltZXMgdGhhdCBhcmUgcmVjZWl2aW5nIG1lc3NhZ2VzIGZyb20gdGhpcyBjaGFpbiwgbm90IGJ5IHRoaXNgIGNoYWluJ3MgcnVudGltZSBpdHNlbGYuAHkBIEVudHJpZXMgb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IgYXJlIG1hdGNoaW5nIGVudHJpZXMgb2YgdGhlIGBtZXNzYWdlc2AgdmVjdG9yLiBFbnRyaWVzIG9mIHRoZY0BIGBtZXNzYWdlc2AgdmVjdG9yIG1heSAoYW5kIG5lZWQgdG8pIGJlIHJlYWQgdXNpbmcgYFRvPFRoaXNDaGFpbj5PdXRib3VuZExhbmVBcGk6Om1lc3NhZ2VfZGV0YWlsc2AuBAAQQ29yZQwcdmVyc2lvbgABCASQIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuADRleGVjdXRlX2Jsb2NrBBRibG9ja/0M/QUEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay4AQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlclAJDQRBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuAAQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LhQAUFJlbGF5UGFyZW50T2Zmc2V0QXBpBExyZWxheV9wYXJlbnRfb2Zmc2V0ACgE9CBGZXRjaCB0aGUgc2xvdCBvZmZzZXQgdGhhdCBpcyBleHBlY3RlZCBmcm9tIHRoZSByZWxheSBjaGFpbi4AEAUBIEFQSSB0byB0ZWxsIHRoZSBub2RlIHNpZGUgaG93IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIGJlIGNob3Nlbi4AaQEgQSBsYXJnZXIgb2Zmc2V0IGluZGljYXRlcyB0aGF0IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIG5vdCBiZSB0aGUgdGlwIG9mIHRoZSByZWxheSBjaGFpbiwxASBidXQgYE5gIGJsb2NrcyBiZWhpbmQgdGhlIHRpcC4gVGhpcyBvZmZzZXQgaXMgdGhlbiBlbmZvcmNlZCBieSB0aGUgcnVudGltZS4EACBNZXRhZGF0YQwgbWV0YWRhdGEADQ0EjCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBvZiBhIHJ1bnRpbWUuAExtZXRhZGF0YV9hdF92ZXJzaW9uBBx2ZXJzaW9uKBENEKQgUmV0dXJucyB0aGUgbWV0YWRhdGEgYXQgYSBnaXZlbiB2ZXJzaW9uLgAFASBJZiB0aGUgZ2l2ZW4gYHZlcnNpb25gIGlzbid0IHN1cHBvcnRlZCwgdGhpcyB3aWxsIHJldHVybiBgTm9uZWAudQEgVXNlIFtgU2VsZjo6bWV0YWRhdGFfdmVyc2lvbnNgXSB0byBmaW5kIG91dCBhYm91dCBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbiBvZiB0aGUgcnVudGltZS4ARG1ldGFkYXRhX3ZlcnNpb25zACkLDKQgUmV0dXJucyB0aGUgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb25zLgDAIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsbCBgbWV0YWRhdGFfYXRfdmVyc2lvbmAuAAQBASBUaGUgYE1ldGFkYXRhYCBhcGkgdHJhaXQgdGhhdCByZXR1cm5zIG1ldGFkYXRhIGZvciB0aGUgcnVudGltZS4IADBCbG9ja0J1aWxkZXIQPGFwcGx5X2V4dHJpbnNpYwQkZXh0cmluc2ljGQgVDRBsIEFwcGx5IHRoZSBnaXZlbiBleHRyaW5zaWMuADkBIFJldHVybnMgYW4gaW5jbHVzaW9uIG91dGNvbWUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoaXMgZXh0cmluc2ljIGlzIGluY2x1ZGVkIGluTCB0aGlzIGJsb2NrIG9yIG5vdC4AOGZpbmFsaXplX2Jsb2NrAFAEaCBGaW5pc2ggdGhlIGN1cnJlbnQgYmxvY2suAExpbmhlcmVudF9leHRyaW5zaWNzBCBpbmhlcmVudBkNKQgEPQEgR2VuZXJhdGUgaW5oZXJlbnQgZXh0cmluc2ljcy4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uADxjaGVja19pbmhlcmVudHMIFGJsb2Nr/QwQZGF0YRkNKQ0EVQEgQ2hlY2sgdGhhdCB0aGUgaW5oZXJlbnRzIGFyZSB2YWxpZC4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uAARxASBUaGUgYEJsb2NrQnVpbGRlcmAgYXBpIHRyYWl0IHRoYXQgcHJvdmlkZXMgdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkgZm9yIGJ1aWxkaW5nIGEgYmxvY2suGABET2ZmY2hhaW5Xb3JrZXJBcGkEPG9mZmNoYWluX3dvcmtlcgQYaGVhZGVyUP0FBMggU3RhcnRzIHRoZSBvZmYtY2hhaW4gdGFzayBmb3IgZ2l2ZW4gYmxvY2sgaGVhZGVyLgAEZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS4IAExBdXRob3JpbmdSdW50aW1lQXBpBGhtYXhfdHJhbnNhY3Rpb25zX3Blcl9ibG9jawAoAAAABAAsU2Vzc2lvbktleXMIVGdlbmVyYXRlX3Nlc3Npb25fa2V5cwQQc2VlZIkFFBwVASBHZW5lcmF0ZSBhIHNldCBvZiBzZXNzaW9uIGtleXMgd2l0aCBvcHRpb25hbGx5IHVzaW5nIHRoZSBnaXZlbiBzZWVkLgkBIFRoZSBrZXlzIHNob3VsZCBiZSBzdG9yZWQgd2l0aGluIHRoZSBrZXlzdG9yZSBleHBvc2VkIHZpYSBydW50aW1lPCBleHRlcm5hbGl0aWVzLgCwIFRoZSBzZWVkIG5lZWRzIHRvIGJlIGEgdmFsaWQgYHV0ZjhgIHN0cmluZy4A0CBSZXR1cm5zIHRoZSBjb25jYXRlbmF0ZWQgU0NBTEUgZW5jb2RlZCBwdWJsaWMga2V5cy4ATGRlY29kZV9zZXNzaW9uX2tleXMEHGVuY29kZWQULQ0MmCBEZWNvZGUgdGhlIGdpdmVuIHB1YmxpYyBzZXNzaW9uIGtleXMuANwgUmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWMgcmF3IHB1YmxpYyBrZXlzICsga2V5IHR5cGUuAARoIFNlc3Npb24ga2V5cyBydW50aW1lIGFwaS4EADhHZW5lc2lzQnVpbGRlcgwsYnVpbGRfc3RhdGUEEGpzb24UPQ0oZQEgQnVpbGQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIGEgSlNPTiBibG9iIG5vdCB1c2luZyBhbnkgZGVmYXVsdHMgYW5kIHN0b3JlIGl0IGluIHRoZSQgc3RvcmFnZS4AKQEgSW4gdGhlIGNhc2Ugb2YgYSBGUkFNRS1iYXNlZCBydW50aW1lLCB0aGlzIGZ1bmN0aW9uIGRlc2VyaWFsaXplcyB0aGUgZnVsbFUBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBibG9iIGFuZCBwdXRzIGl0IGludG8gdGhlIHN0b3JhZ2UuIElmIHRoZVUBIHByb3ZpZGVkIEpTT04gYmxvYiBpcyBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSBvciB0aGUgZGVzZXJpYWxpemF0aW9uIGZhaWxzLCBhbiBlcnJvcjQgaXMgcmV0dXJuZWQuAF0BIFBsZWFzZSBub3RlIHRoYXQgcHJvdmlkZWQgSlNPTiBibG9iIG11c3QgY29udGFpbiBhbGwgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmaWVsZHMsIG5vXCBkZWZhdWx0cyB3aWxsIGJlIHVzZWQuAChnZXRfcHJlc2V0BAhpZEENiQU4YQEgUmV0dXJucyBhIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVpbHQtaW4gYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBpZGVudGlmaWVkIGJ5GCBgaWRgLgBVASBJZiBgaWRgIGlzIGBOb25lYCB0aGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlZmF1bHRJASBgUnVudGltZUdlbmVzaXNDb25maWdgIHN0cnVjdCBvZiB0aGUgcnVudGltZS4gSW1wbGVtZW50YXRpb24gbXVzdCBwcm92aWRlIGRlZmF1bHRgIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AuACEBIE90aGVyd2lzZSBmdW5jdGlvbiByZXR1cm5zIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVpbHQtaW4sIG5hbWVkUQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBwcmVzZXQgaWRlbnRpZmllZCBieSBgaWRgLCBvciBgTm9uZWAgaWYgc3VjaCBwcmVzZXQgZG9lcyBub3RhASBleGlzdC4gUmV0dXJuZWQgYFZlYzx1OD5gIGNvbnRhaW5zIGJ5dGVzIG9mIEpTT04gYmxvYiAocGF0Y2gpIHdoaWNoIGNvbXByaXNlcyBhIGxpc3Qgb2ZNASAocG90ZW50aWFsbHkgbmVzdGVkKSBrZXktdmFsdWUgcGFpcnMgdGhhdCBhcmUgaW50ZW5kZWQgZm9yIGN1c3RvbWl6aW5nIHRoZSBkZWZhdWx0ZQEgcnVudGltZSBnZW5lc2lzIGNvbmZpZy4gVGhlIHBhdGNoIHNoYWxsIGJlIG1lcmdlZCAocmZjNzM4Nikgd2l0aCB0aGUgSlNPTiByZXByZXNlbnRhdGlvbmEBIG9mIHRoZSBkZWZhdWx0IGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBnZW5lc2lzIGNvbmZpZyB0aGF0IGNhboQgYmUgdXNlZCBpbiBgYnVpbGRfc3RhdGVgIG1ldGhvZC4AMHByZXNldF9uYW1lcwBFDRBRASBSZXR1cm5zIGEgbGlzdCBvZiBpZGVudGlmaWVycyBmb3IgYXZhaWxhYmxlIGJ1aWx0aW4gYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBwcmVzZXRzLgBhASBUaGUgcHJlc2V0cyBmcm9tIHRoZSBsaXN0IGNhbiBiZSBxdWVyaWVkIHdpdGggW2BHZW5lc2lzQnVpbGRlcjo6Z2V0X3ByZXNldGBdIG1ldGhvZC4gSWYBASBubyBuYW1lZCBwcmVzZXRzIGFyZSBwcm92aWRlZCBieSB0aGUgcnVudGltZSB0aGUgbGlzdCBpcyBlbXB0eS4ABPAgQVBJIHRvIGludGVyYWN0IHdpdGggYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmb3IgdGhlIHJ1bnRpbWUEADxBY2NvdW50Tm9uY2VBcGkENGFjY291bnRfbm9uY2UEHGFjY291bnQAKATAIEdldCBjdXJyZW50IGFjY291bnQgbm9uY2Ugb2YgZ2l2ZW4gYEFjY291bnRJZGAuAASAIFRoZSBBUEkgdG8gcXVlcnkgYWNjb3VudCBub25jZS4EADxEZWJ1Z1J1bnRpbWVBcGkMRHRyYWNlX3RyYW5zYWN0aW9uDChleHRyaW5zaWNzKQgsdHJhbnNhY3Rpb26pAhhoZWFkZXJQvQYAACx0cmFjZV9ibG9jawwoZXh0cmluc2ljcykISGtub3duX3RyYW5zYWN0aW9uc5UCGGhlYWRlclC9BgAAKHRyYWNlX2NhbGwsGGhlYWRlclAQZnJvbRkBCHRvGQEQZGF0YRQUdmFsdWWBAiRnYXNfbGltaXSBAjxtYXhfZmVlX3Blcl9nYXOJAmBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXOJAhRub25jZYkCLGFjY2Vzc19saXN0QQVIYXV0aG9yaXphdGlvbl9saXN0TQW9BgAAABwAQFR4UG9vbFJ1bnRpbWVBcGkEQGV4dHJpbnNpY19maWx0ZXIIIHh0X3JlYWR5KQgkeHRfZnV0dXJlKQhJDQAAAAgAVEV0aGVyZXVtUnVudGltZVJQQ0FwaUQgY2hhaW5faWQAGAS0IFJldHVybnMgcnVudGltZSBkZWZpbmVkIHBhbGxldF9ldm06OkNoYWluSWQuADRhY2NvdW50X2Jhc2ljBBxhZGRyZXNzGQFNDQSkIFJldHVybnMgcGFsbGV0X2V2bTo6QWNjb3VudHMgYnkgYWRkcmVzcy4AJGdhc19wcmljZQCBAgSUIFJldHVybnMgRml4ZWRHYXNQcmljZTo6bWluX2dhc19wcmljZQA8YWNjb3VudF9jb2RlX2F0BBxhZGRyZXNzGQEUBPwgRm9yIGEgZ2l2ZW4gYWNjb3VudCBhZGRyZXNzLCByZXR1cm5zIHBhbGxldF9ldm06OkFjY291bnRDb2Rlcy4AGGF1dGhvcgAZAQTwIFJldHVybnMgdGhlIGNvbnZlcnRlZCBGaW5kQXV0aG9yOjpmaW5kX2F1dGhvciBhdXRob3JpdHkgaWQuAChzdG9yYWdlX2F0CBxhZGRyZXNzGQEUaW5kZXiBAiwEMQEgRm9yIGEgZ2l2ZW4gYWNjb3VudCBhZGRyZXNzIGFuZCBpbmRleCwgcmV0dXJucyBwYWxsZXRfZXZtOjpBY2NvdW50U3RvcmFnZXMuABBjYWxsLBBmcm9tGQEIdG8ZARBkYXRhFBR2YWx1ZYECJGdhc19saW1pdIECPG1heF9mZWVfcGVyX2dhc4kCYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc4kCFG5vbmNliQIgZXN0aW1hdGXALGFjY2Vzc19saXN0QQVIYXV0aG9yaXphdGlvbl9saXN0TQVRDQAAGGNyZWF0ZSgQZnJvbRkBEGRhdGEUFHZhbHVlgQIkZ2FzX2xpbWl0gQI8bWF4X2ZlZV9wZXJfZ2FziQJgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2FziQIUbm9uY2WJAiBlc3RpbWF0ZcAsYWNjZXNzX2xpc3RBBUhhdXRob3JpemF0aW9uX2xpc3RNBWUNAAA0Y3VycmVudF9ibG9jawBtDQRoIFJldHVybiB0aGUgY3VycmVudCBibG9jay4AQGN1cnJlbnRfcmVjZWlwdHMAcQ0EcCBSZXR1cm4gdGhlIGN1cnJlbnQgcmVjZWlwdC4AcGN1cnJlbnRfdHJhbnNhY3Rpb25fc3RhdHVzZXMAdQ0EnCBSZXR1cm4gdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gc3RhdHVzLgAsY3VycmVudF9hbGwAeQ0AAEBleHRyaW5zaWNfZmlsdGVyBAx4dHMpCDUKBDUBIFJlY2VpdmVzIGEgYFZlYzxPcGFxdWVFeHRyaW5zaWM+YCBhbmQgZmlsdGVycyBhbGwgdGhlIGV0aGVyZXVtIHRyYW5zYWN0aW9ucy4AKGVsYXN0aWNpdHkAfQ0EiCBSZXR1cm4gdGhlIGVsYXN0aWNpdHkgbXVsdGlwbGllci4AcGdhc19saW1pdF9tdWx0aXBsaWVyX3N1cHBvcnQA/QUIdQEgVXNlZCB0byBkZXRlcm1pbmUgaWYgZ2FzIGxpbWl0IG11bHRpcGxpZXIgZm9yIG5vbi10cmFuc2FjdGlvbmFsIGNhbGxzIChldGhfY2FsbC9lc3RpbWF0ZUdhcyk4IGlzIHN1cHBvcnRlZC4ANHBlbmRpbmdfYmxvY2sEDHh0cykIgQ0EaCBSZXR1cm4gdGhlIHBlbmRpbmcgYmxvY2suAGBpbml0aWFsaXplX3BlbmRpbmdfYmxvY2sEGGhlYWRlclD9BRR4IEluaXRpYWxpemUgdGhlIHBlbmRpbmcgYmxvY2suNQEgVGhlIGJlaGF2aW9yIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgcnVudGltZSBhcGkgQ29yZV9pbml0aWFsaXplX2Jsb2NrIGJ1dFwgZm9yIGEgInBlbmRpbmciIGJsb2NrLmEBIElmIHlvdXIgcHJvamVjdCBkb24ndCBuZWVkIHRvIGhhdmUgYSBkaWZmZXJlbnQgYmVoYXZpb3IgdG8gaW5pdGlhbGl6ZSAicGVuZGluZyIgYmxvY2tzLOAgeW91IGNhbiBjb3B5IHlvdXIgQ29yZV9pbml0aWFsaXplX2Jsb2NrIGltcGxlbWVudGF0aW9uLgAEwCBBUEkgbmVjZXNzYXJ5IGZvciBFdGhlcmV1bS1jb21wYXRpYmlsaXR5IGxheWVyLhgAcENvbnZlcnRUcmFuc2FjdGlvblJ1bnRpbWVBcGkETGNvbnZlcnRfdHJhbnNhY3Rpb24ELHRyYW5zYWN0aW9uqQIZCAAAAAgAVFRyYW5zYWN0aW9uUGF5bWVudEFwaRAocXVlcnlfaW5mbwgMdXh0GQgMbGVuKIUNAABEcXVlcnlfZmVlX2RldGFpbHMIDHV4dBkIDGxlbiiJDQAATHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodHEBvAAATHF1ZXJ5X2xlbmd0aF90b19mZWUEGGxlbmd0aCi8AAAAEAAkTmltYnVzQXBpBChjYW5fYXV0aG9yDBhhdXRob3L4MHJlbGF5X3BhcmVudCg0cGFyZW50X2hlYWRlclDAAAAEbQEgVGhlIHJ1bnRpbWUgYXBpIHVzZWQgdG8gcHJlZGljdCB3aGV0aGVyIGEgTmltYnVzIGF1dGhvciB3aWxsIGJlIGVsaWdpYmxlIGluIHRoZSBnaXZlbiBzbG90BABQQ29sbGVjdENvbGxhdGlvbkluZm8EWGNvbGxlY3RfY29sbGF0aW9uX2luZm8EGGhlYWRlclCVDRCcIENvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uAPQgVGhlIGdpdmVuIGBoZWFkZXJgIGlzIHRoZSBoZWFkZXIgb2YgdGhlIGJ1aWx0IGJsb2NrIGZvciB0aGF0qCB3ZSBhcmUgY29sbGVjdGluZyB0aGUgY29sbGF0aW9uIGluZm8gZm9yLgAU2CBSdW50aW1lIGFwaSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgBEIFZlcnNpb24gaGlzdG9yeToBASAtIFZlcnNpb24gMjogQ2hhbmdlZCBbYFNlbGY6OmNvbGxlY3RfY29sbGF0aW9uX2luZm9gXSBzaWduYXR1cmU1ASAtIFZlcnNpb24gMzogU2lnbmFscyB0byB0aGUgbm9kZSB0byB1c2UgdmVyc2lvbiAxIG9mIFtgUGFyYWNoYWluQmxvY2tEYXRhYF0uDAAYVnJmQXBpCExnZXRfbGFzdF92cmZfb3V0cHV0AA0DAAA4dnJmX2tleV9sb29rdXAEJG5pbWJ1c19pZPihDQAAAAQANFhjbVBheW1lbnRBcGkQfHF1ZXJ5X2FjY2VwdGFibGVfcGF5bWVudF9hc3NldHMELHhjbV92ZXJzaW9uKKUNFLQgUmV0dXJucyBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwYXltZW50IGFzc2V0cy4AMCAjIEFyZ3VtZW50cwBoICogYHhjbV92ZXJzaW9uYDogVmVyc2lvbi4AQHF1ZXJ5X3hjbV93ZWlnaHQEHG1lc3NhZ2WNA7ENFKggUmV0dXJucyBhIHdlaWdodCBuZWVkZWQgdG8gZXhlY3V0ZSBhIFhDTS4AMCAjIEFyZ3VtZW50cwB0ICogYG1lc3NhZ2VgOiBgVmVyc2lvbmVkWGNtYC4AZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodHEBFGFzc2V0+QS1DRjoIENvbnZlcnRzIGEgd2VpZ2h0IGludG8gYSBmZWUgZm9yIHRoZSBzcGVjaWZpZWQgYEFzc2V0SWRgLgAwICMgQXJndW1lbnRzAIggKiBgd2VpZ2h0YDogY29udmVydGlibGUgYFdlaWdodGAufCAqIGBhc3NldGA6IGBWZXJzaW9uZWRBc3NldElkYC4ATHF1ZXJ5X2RlbGl2ZXJ5X2ZlZXMMLGRlc3RpbmF0aW9uQQMcbWVzc2FnZY0DIGFzc2V0X2lk+QS5DShgIFF1ZXJ5IGRlbGl2ZXJ5IGZlZXMgVjIuAB0BIEdldCBkZWxpdmVyeSBmZWVzIGZvciBzZW5kaW5nIGEgc3BlY2lmaWMgYG1lc3NhZ2VgIHRvIGEgYGRlc3RpbmF0aW9uYC70IFRoZXNlIGFsd2F5cyBjb21lIGluIGEgc3BlY2lmaWMgYXNzZXQsIGRlZmluZWQgYnkgdGhlIGNoYWluLgAwICMgQXJndW1lbnRzgQEgKiBgbWVzc2FnZWA6IFRoZSBtZXNzYWdlIHRoYXQnbGwgYmUgc2VudCwgbmVjZXNzYXJ5IGJlY2F1c2UgbW9zdCBkZWxpdmVyeSBmZWVzIGFyZSBiYXNlZCBvbiB0aGVcICAgc2l6ZSBvZiB0aGUgbWVzc2FnZS5hASAqIGBkZXN0aW5hdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0byBzZW5kIHRoZSBtZXNzYWdlIHRvLiBEaWZmZXJlbnQgZGVzdGluYXRpb25zIG1heSB1c2XAICAgZGlmZmVyZW50IHNlbmRlcnMgdGhhdCBjaGFyZ2UgZGlmZmVyZW50IGZlZXMuACxwIEEgdHJhaXQgb2YgWENNIHBheW1lbnQgQVBJLgCoIEFQSSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciBvYnRhaW5pbmc6AMQgKiB0aGUgd2VpZ2h0IHJlcXVpcmVkIHRvIGV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UsBQEgKiBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBgQXNzZXRJZGBzIGZvciBtZXNzYWdlIGV4ZWN1dGlvbiBwYXltZW50LAEBICogdGhlIGNvc3Qgb2YgdGhlIHdlaWdodCBpbiB0aGUgc3BlY2lmaWVkIGFjY2VwdGFibGUgYEFzc2V0SWRgLqAgKiB0aGUgZmVlcyBmb3IgYW4gWENNIG1lc3NhZ2UgZGVsaXZlcnkuAPAgVG8gZGV0ZXJtaW5lIHRoZSBleGVjdXRpb24gd2VpZ2h0IG9mIHRoZSBjYWxscyByZXF1aXJlZCBmb3J1ASBbYHhjbTo6bGF0ZXN0OjpJbnN0cnVjdGlvbjo6VHJhbnNhY3RgXSBpbnN0cnVjdGlvbiwgYFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGlgIGNhbiBiZSB1c2VkLggAJERyeVJ1bkFwaQgwZHJ5X3J1bl9jYWxsDBhvcmlnaW4NARBjYWxsDExyZXN1bHRfeGNtc192ZXJzaW9uKL0NBEQgRHJ5IHJ1biBjYWxsIFYyLgAsZHJ5X3J1bl94Y20IPG9yaWdpbl9sb2NhdGlvbkEDDHhjbckE3Q0EUCBEcnkgcnVuIFhDTSBwcm9ncmFtACSxASBBUEkgZm9yIGRyeS1ydW5uaW5nIGV4dHJpbnNpY3MgYW5kIFhDTSBwcm9ncmFtcyB0byBnZXQgdGhlIHByb2dyYW1zIHRoYXQgbmVlZCB0byBiZSBwYXNzZWQgdG8gdGhlIGZlZXMgQVBJLgCBASBBbGwgY2FsbHMgcmV0dXJuIGEgdmVjdG9yIG9mIHR1cGxlcyAobG9jYXRpb24sIHhjbSkgd2hlcmUgZWFjaCAieGNtIiBpcyBleGVjdXRlZCBpbiAibG9jYXRpb24iLuQgSWYgdGhlcmUncyBsb2NhbCBleGVjdXRpb24sIHRoZSBsb2NhdGlvbiB3aWxsIGJlICJIZXJlIi4dASBUaGlzIHZlY3RvciBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgYm90aCBleGVjdXRpb24gYW5kIGRlbGl2ZXJ5IGZlZXMuAJkBIENhbGxzIG9yIFhDTXMgbWlnaHQgZmFpbCB3aGVuIGV4ZWN1dGVkLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgcmVzdWx0IG9mIHRoZXNlIGNhbGxzIHdpbGwgYmUgYW4gYEVycmAuZQEgSW4gdGhvc2UgY2FzZXMsIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIGEgdmFsaWQgcmVzdWx0LCB3aXRoIHRoZSBleGVjdXRpb24gZXJyb3IgaW5zaWRlIGl0LmUBIFRoZSBvbmx5IHJlYXNvbnMgd2h5IHRoZXNlIGNhbGxzIG1pZ2h0IHJldHVybiBhbiBlcnJvciBhcmUgbGlzdGVkIGluIHRoZSBbYEVycm9yYF0gZW51bS4IAFBMb2NhdGlvblRvQWNjb3VudEFwaQRAY29udmVydF9sb2NhdGlvbgQgbG9jYXRpb25BA+UNBJAgQ29udmVydHMgYExvY2F0aW9uYCB0byBgQWNjb3VudElkYC4ABA0BIEFQSSBmb3IgdXNlZnVsIGNvbnZlcnNpb25zIGJldHdlZW4gWENNIGBMb2NhdGlvbmAgYW5kIGBBY2NvdW50SWRgLgQADEkG7Q0A";
2
-
3
- export { binMeta as default };