@parity/product-sdk-descriptors 0.5.1 → 0.6.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.
- package/README.md +3 -0
- package/chains/paseo-asset-hub/.papi/polkadot-api.json +1 -1
- package/chains/paseo-asset-hub/generated/dist/common-types.d.ts +215 -169
- package/chains/paseo-asset-hub/generated/dist/descriptors-DhUtfABq.js +25 -0
- package/chains/paseo-asset-hub/generated/dist/index.js +4 -4
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-D0TOPqAM.js +3 -0
- package/chains/paseo-asset-hub/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub.d.ts +121 -82
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-Bwy-Np0G.js +3 -0
- package/chains/paseo-individuality/.papi/polkadot-api.json +1 -1
- package/chains/paseo-individuality/generated/dist/common-types.d.ts +665 -1059
- package/chains/paseo-individuality/generated/dist/descriptors-BPDSgyWs.js +25 -0
- package/chains/paseo-individuality/generated/dist/index.d.ts +1 -1
- package/chains/paseo-individuality/generated/dist/index.js +5 -6
- package/chains/paseo-individuality/generated/dist/metadataTypes-B3fJT8lX.js +3 -0
- package/chains/paseo-individuality/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-individuality/generated/dist/paseo_individuality.d.ts +566 -901
- package/chains/paseo-individuality/generated/dist/paseo_individuality_metadata-CoVMbneS.js +3 -0
- package/chains/summit-asset-hub/.papi/polkadot-api.json +12 -0
- package/chains/summit-asset-hub/generated/dist/common-types.d.ts +16940 -0
- package/chains/summit-asset-hub/generated/dist/common.d.ts +1 -0
- package/chains/summit-asset-hub/generated/dist/descriptors-B8WL4bSQ.js +25 -0
- package/chains/summit-asset-hub/generated/dist/descriptors.d.ts +1 -0
- package/chains/summit-asset-hub/generated/dist/index.d.ts +10 -0
- package/chains/summit-asset-hub/generated/dist/index.js +116 -0
- package/chains/summit-asset-hub/generated/dist/metadataTypes-D0TOPqAM.js +3 -0
- package/chains/summit-asset-hub/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/summit-asset-hub/generated/dist/summit_asset_hub.d.ts +16379 -0
- package/chains/summit-asset-hub/generated/dist/summit_asset_hub_metadata-Bwy-Np0G.js +3 -0
- package/chains/summit-asset-hub/generated/dist/summit_asset_hub_metadata.d.ts +2 -0
- package/chains/summit-bulletin/.papi/polkadot-api.json +12 -0
- package/chains/summit-bulletin/generated/dist/common-types.d.ts +4594 -0
- package/chains/summit-bulletin/generated/dist/common.d.ts +1 -0
- package/chains/summit-bulletin/generated/dist/descriptors-BDn18GWW.js +25 -0
- package/chains/summit-bulletin/generated/dist/descriptors.d.ts +1 -0
- package/chains/summit-bulletin/generated/dist/index.d.ts +10 -0
- package/chains/summit-bulletin/generated/dist/index.js +88 -0
- package/chains/summit-bulletin/generated/dist/metadataTypes-GA7L2eXx.js +3 -0
- package/chains/summit-bulletin/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/summit-bulletin/generated/dist/summit_bulletin.d.ts +3976 -0
- package/chains/summit-bulletin/generated/dist/summit_bulletin_metadata-B9gNyCCl.js +3 -0
- package/chains/summit-bulletin/generated/dist/summit_bulletin_metadata.d.ts +2 -0
- package/chains/summit-individuality/.papi/polkadot-api.json +12 -0
- package/chains/summit-individuality/generated/dist/common-types.d.ts +11466 -0
- package/chains/summit-individuality/generated/dist/common.d.ts +1 -0
- package/chains/summit-individuality/generated/dist/descriptors-DihYusb9.js +25 -0
- package/chains/summit-individuality/generated/dist/descriptors.d.ts +1 -0
- package/chains/summit-individuality/generated/dist/index.d.ts +10 -0
- package/chains/summit-individuality/generated/dist/index.js +88 -0
- package/chains/summit-individuality/generated/dist/metadataTypes-CCylAJ0h.js +3 -0
- package/chains/summit-individuality/generated/dist/metadataTypes.d.ts +2 -0
- package/chains/summit-individuality/generated/dist/summit_individuality.d.ts +10952 -0
- package/chains/summit-individuality/generated/dist/summit_individuality_metadata-CFgPN8CP.js +3 -0
- package/chains/summit-individuality/generated/dist/summit_individuality_metadata.d.ts +2 -0
- package/package.json +14 -2
- package/chains/paseo-asset-hub/generated/dist/descriptors-CA_gMfTv.js +0 -25
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-CYGvJR-Y.js +0 -3
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-PRGpfPsz.js +0 -3
- package/chains/paseo-individuality/generated/dist/descriptors-CNt9InDi.js +0 -25
- package/chains/paseo-individuality/generated/dist/metadataTypes-WcLaeOWG.js +0 -3
- package/chains/paseo-individuality/generated/dist/paseo_individuality_metadata-DOr2Tv6T.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const binMeta = "bWV0YRC1DQAMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQQwQWNjb3VudEluZGV4ARABFAhJZAQABAEkQWNjb3VudElkAAAAFEluZGV4BAAUATBBY2NvdW50SW5kZXgAAQAMUmF3BAAYARxWZWM8dTg+AAIAJEFkZHJlc3MzMgQACAEgW3U4OyAzMl0AAwAkQWRkcmVzczIwBAAcASBbdTg7IDIwXQAEAAAEDBxzcF9jb3JlGGNyeXB0byxBY2NvdW50SWQzMgAABAAIASBbdTg7IDMyXQAACAAAAyAAAAAMAAwAAAUDABAAAAQAABQAAAYQABgAAAIMABwAAAMUAAAADAAgCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lLFJ1bnRpbWVDYWxsAAGIGFN5c3RlbQQAJAGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAQAHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQAsAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUaW1lc3RhbXAsIFJ1bnRpbWU+AAIANFBhcmFjaGFpbkluZm8EALgByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluSW5mbywgUnVudGltZT4AAwAgQmFsYW5jZXMEALwBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFsYW5jZXMsIFJ1bnRpbWU+AAoARE9yaWdpblJlc3RyaWN0aW9uBADUAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9yaWdpblJlc3RyaWN0aW9uLCBSdW50aW1lPgANABhBc3NldHMEANwBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRzLCBSdW50aW1lPgAOACRBc3NldFJhdGUEACkBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEFzc2V0UmF0ZSwgUnVudGltZT4AEABEQ29sbGF0b3JTZWxlY3Rpb24EADEBAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbGxhdG9yU2VsZWN0aW9uLCBSdW50aW1lPgAVABxTZXNzaW9uBAA1AQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTZXNzaW9uLCBSdW50aW1lPgAWACRYY21wUXVldWUEAEEBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbXBRdWV1ZSwgUnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAEUBAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgAfAChDdW11bHVzWGNtBAAZAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgAgADBNZXNzYWdlUXVldWUEAB0DAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AIgAcVXRpbGl0eQQAJQMBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VXRpbGl0eSwgUnVudGltZT4AKAAgTXVsdGlzaWcEAJEDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgApABBTdWRvBACdAwGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdWRvLCBSdW50aW1lPgAqABRQcm94eQQAoQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+ACwAIElkZW50aXR5BACtAwG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AMgAYUGVvcGxlBABZBAGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQZW9wbGUsIFJ1bnRpbWU+ADMAHE1vYlJ1bGUEAGkEAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1vYlJ1bGUsIFJ1bnRpbWU+ADQAKFByb29mT2ZJbmsEAHEEAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByb29mT2ZJbmssIFJ1bnRpbWU+ADUAEEdhbWUEAI0EAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEdhbWUsIFJ1bnRpbWU+ADcAFFNjb3JlBADJBAGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTY29yZSwgUnVudGltZT4AOAAgRHVtbXlEaW0EAO0EAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER1bW15RGltLCBSdW50aW1lPgA7AChQZW9wbGVMaXRlBAAFBQG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQZW9wbGVMaXRlLCBSdW50aW1lPgA+ACRSZXNvdXJjZXMEABUFAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlc291cmNlcywgUnVudGltZT4APwA0Q2h1bmtzTWFuYWdlcgQAIQUByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q2h1bmtzTWFuYWdlciwgUnVudGltZT4AQAAcTWVtYmVycwQAMQUBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TWVtYmVycywgUnVudGltZT4AQwAcQ29pbmFnZQQANQUBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29pbmFnZSwgUnVudGltZT4ARAA8TWVtYmVyc05vdGlmaWVyBAB1BQHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNZW1iZXJzTm90aWZpZXIsIFJ1bnRpbWU+AEUAHEFpcmRyb3AEAI0FAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEFpcmRyb3AsIFJ1bnRpbWU+AEYAGEhvbm91cgQAlQUBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SG9ub3VyLCBSdW50aW1lPgBHAFBNdWx0aUJsb2NrTWlncmF0aW9ucwQAoQUB5QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlCbG9ja01pZ3JhdGlvbnMsIFJ1bnRpbWU+AGIAACQMMGZyYW1lX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABLBhyZW1hcmsEARhyZW1hcmsYARxWZWM8dTg+AAAMaE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsuAIhDYW4gYmUgZXhlY3V0ZWQgYnkgZXZlcnkgYG9yaWdpbmAuOHNldF9oZWFwX3BhZ2VzBAEUcGFnZXMoAQx1NjQAAQT4U2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEARBjb2RlGAEcVmVjPHU4PgACBGRTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUuXHNldF9jb2RlX3dpdGhvdXRfY2hlY2tzBAEQY29kZRgBHFZlYzx1OD4AAxAZAVNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZSB3aXRob3V0IGRvaW5nIGFueSBjaGVja3Mgb2YgdGhlIGdpdmVuIGBjb2RlYC4AUQFOb3RlIHRoYXQgcnVudGltZSB1cGdyYWRlcyB3aWxsIG5vdCBydW4gaWYgdGhpcyBpcyBjYWxsZWQgd2l0aCBhIG5vdC1pbmNyZWFzaW5nIHNwZWMgdmVyc2lvbiEsc2V0X3N0b3JhZ2UEARRpdGVtcywBNFZlYzxLZXlWYWx1ZT4ABARoU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBAEQa2V5czQBIFZlYzxLZXk+AAUEdEtpbGwgc29tZSBpdGVtcyBmcm9tIHN0b3JhZ2UuLGtpbGxfcHJlZml4CAEYcHJlZml4GAEMS2V5AAEcc3Via2V5czgBDHUzMgAGEBEBS2lsbCBhbGwgc3RvcmFnZSBpdGVtcyB3aXRoIGEga2V5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHByZWZpeC4AOQEqKk5PVEU6KiogV2UgcmVseSBvbiB0aGUgUm9vdCBvcmlnaW4gdG8gcHJvdmlkZSB1cyB0aGUgbnVtYmVyIG9mIHN1YmtleXMgdW5kZXI9AXRoZSBwcmVmaXggd2UgYXJlIHJlbW92aW5nIHRvIGFjY3VyYXRlbHkgY2FsY3VsYXRlIHRoZSB3ZWlnaHQgb2YgdGhpcyBmdW5jdGlvbi5EcmVtYXJrX3dpdGhfZXZlbnQEARhyZW1hcmsYARxWZWM8dTg+AAcEpE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsgYW5kIGVtaXQgZXZlbnQuRGF1dGhvcml6ZV91cGdyYWRlBAEkY29kZV9oYXNoPAEcVDo6SGFzaAAJEGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi6AYXV0aG9yaXplX3VwZ3JhZGVfd2l0aG91dF9jaGVja3MEASRjb2RlX2hhc2g8ARxUOjpIYXNoAAogYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgBdAVdBUk5JTkc6IFRoaXMgYXV0aG9yaXplcyBhbiB1cGdyYWRlIHRoYXQgd2lsbCB0YWtlIHBsYWNlIHdpdGhvdXQgYW55IHNhZmV0eSBjaGVja3MsIGZvclkBZXhhbXBsZSB0aGF0IHRoZSBzcGVjIG5hbWUgcmVtYWlucyB0aGUgc2FtZSBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaW5jcmVhc2VzLiBOb3TwcmVjb21tZW5kZWQgZm9yIG5vcm1hbCB1c2UuIFVzZSBgYXV0aG9yaXplX3VwZ3JhZGVgIGluc3RlYWQuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4uYGFwcGx5X2F1dGhvcml6ZWRfdXBncmFkZQQBEGNvZGUYARxWZWM8dTg+AAskVQFQcm92aWRlIHRoZSBwcmVpbWFnZSAocnVudGltZSBiaW5hcnkpIGBjb2RlYCBmb3IgYW4gdXBncmFkZSB0aGF0IGhhcyBiZWVuIGF1dGhvcml6ZWQuAEkBSWYgdGhlIGF1dGhvcml6YXRpb24gcmVxdWlyZWQgYSB2ZXJzaW9uIGNoZWNrLCB0aGlzIGNhbGwgd2lsbCBlbnN1cmUgdGhlIHNwZWMgbmFtZehyZW1haW5zIHVuY2hhbmdlZCBhbmQgdGhhdCB0aGUgc3BlYyB2ZXJzaW9uIGhhcyBpbmNyZWFzZWQuAFkBRGVwZW5kaW5nIG9uIHRoZSBydW50aW1lJ3MgYE9uU2V0Q29kZWAgY29uZmlndXJhdGlvbiwgdGhpcyBmdW5jdGlvbiBtYXkgZGlyZWN0bHkgYXBwbHkRAXRoZSBuZXcgYGNvZGVgIGluIHRoZSBzYW1lIGJsb2NrIG9yIGF0dGVtcHQgdG8gc2NoZWR1bGUgdGhlIHVwZ3JhZGUuAGBBbGwgb3JpZ2lucyBhcmUgYWxsb3dlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuKAAABQYALAAAAjAAMAAABAgYGAA0AAACGAA4AAAFBQA8CDxwcmltaXRpdmVfdHlwZXMQSDI1NgAABAAIASBbdTg7IDMyXQAAQAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABCExzZXRfdmFsaWRhdGlvbl9kYXRhCAEQZGF0YUQBaEJhc2ljUGFyYWNoYWluSW5oZXJlbnREYXRhAAFUaW5ib3VuZF9tZXNzYWdlc19kYXRhfAFMSW5ib3VuZE1lc3NhZ2VzRGF0YQAAJIBTZXQgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBkYXRhLgBBAVRoaXMgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9uiHBoYXNlIGlmIHRoZSBjYWxsIHdhcyBub3QgaW52b2tlZC4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBJbmhlcmVudGAAIQFBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIHVwZ3JhZGVzIHRoZSBjdXJyZW50IHZhbGlkYXRpb24gZnVuY3Rpb26EaWYgdGhlIGFwcHJvcHJpYXRlIHRpbWUgaGFzIGNvbWUuYHN1ZG9fc2VuZF91cHdhcmRfbWVzc2FnZQQBHG1lc3NhZ2UYATRVcHdhcmRNZXNzYWdlAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkQMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IcGFyYWNoYWluX2luaGVyZW50aEJhc2ljUGFyYWNoYWluSW5oZXJlbnREYXRhAAAQATx2YWxpZGF0aW9uX2RhdGFIAVxQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQABRHJlbGF5X2NoYWluX3N0YXRlUAFUc3BfdHJpZTo6U3RvcmFnZVByb29mAAFgcmVsYXlfcGFyZW50X2Rlc2NlbmRhbnRzWAFAVmVjPFJlbGF5SGVhZGVyPgABQGNvbGxhdG9yX3BlZXJfaWR0AVhPcHRpb248QXBwcm92ZWRQZWVySWQ+AABIDExwb2xrYWRvdF9wcmltaXRpdmVzCHY5XFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhCARIATwETgE4ABABLHBhcmVudF9oZWFkTAEgSGVhZERhdGEAAUxyZWxheV9wYXJlbnRfbnVtYmVyOAEETgABZHJlbGF5X3BhcmVudF9zdG9yYWdlX3Jvb3Q8AQRIAAEwbWF4X3Bvdl9zaXplOAEMdTMyAABMDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzIEhlYWREYXRhAAAEABgBHFZlYzx1OD4AAFAMHHNwX3RyaWU0c3RvcmFnZV9wcm9vZjBTdG9yYWdlUHJvb2YAAAQBKHRyaWVfbm9kZXNUAURCVHJlZVNldDxWZWM8dTg+PgAAVAQgQlRyZWVTZXQEBFQBGAAEADQAAABYAAACXABcEChzcF9ydW50aW1lHGdlbmVyaWMYaGVhZGVyGEhlYWRlcggYTnVtYmVyATgQSGFzaAAAFAEscGFyZW50X2hhc2g8ATBIYXNoOjpPdXRwdXQAARhudW1iZXJgARhOdW1iZXIAAShzdGF0ZV9yb290PAEwSGFzaDo6T3V0cHV0AAE8ZXh0cmluc2ljc19yb290PAEwSGFzaDo6T3V0cHV0AAEYZGlnZXN0ZAEYRGlnZXN0AABgAAAGOABkEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0GERpZ2VzdAAABAEQbG9nc2gBPFZlYzxEaWdlc3RJdGVtPgAAaAAAAmwAbBAoc3BfcnVudGltZRxnZW5lcmljGGRpZ2VzdChEaWdlc3RJdGVtAAEUKFByZVJ1bnRpbWUIAHABRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAYAJENvbnNlbnN1cwgAcAFEQ29uc2Vuc3VzRW5naW5lSWQAABgBHFZlYzx1OD4ABAAQU2VhbAgAcAFEQ29uc2Vuc3VzRW5naW5lSWQAABgBHFZlYzx1OD4ABQAUT3RoZXIEABgBHFZlYzx1OD4AAABkUnVudGltZUVudmlyb25tZW50VXBkYXRlZAAIAABwAAADBAAAAAwAdAQYT3B0aW9uBARUAXgBCBBOb25lAAAAEFNvbWUEAHgAAAEAAHgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AAB8DHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudExJbmJvdW5kTWVzc2FnZXNEYXRhAAAIAURkb3dud2FyZF9tZXNzYWdlc4ABfEFicmlkZ2VkSW5ib3VuZERvd253YXJkTWVzc2FnZXMAAUxob3Jpem9udGFsX21lc3NhZ2VzlAFsQWJyaWRnZWRJbmJvdW5kSHJtcE1lc3NhZ2VzAACADHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudIRBYnJpZGdlZEluYm91bmRNZXNzYWdlc0NvbGxlY3Rpb24EHE1lc3NhZ2UBhAAIATRmdWxsX21lc3NhZ2VziAEwVmVjPE1lc3NhZ2U+AAE8aGFzaGVkX21lc3NhZ2VzjAF8VmVjPE1lc3NhZ2U6OkNvbXByZXNzZWRNZXNzYWdlPgAAhAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzWEluYm91bmREb3dud2FyZE1lc3NhZ2UELEJsb2NrTnVtYmVyATgACAEcc2VudF9hdDgBLEJsb2NrTnVtYmVyAAEMbXNnGAE8RG93bndhcmRNZXNzYWdlAACIAAAChACMAAACkACQCJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50NEhhc2hlZE1lc3NhZ2UAAAgBHHNlbnRfYXQ4AVRSZWxheUNoYWluQmxvY2tOdW1iZXIAASBtc2dfaGFzaDwBNHNwX2NvcmU6OkgyNTYAAJQMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IcGFyYWNoYWluX2luaGVyZW50hEFicmlkZ2VkSW5ib3VuZE1lc3NhZ2VzQ29sbGVjdGlvbgQcTWVzc2FnZQGYAAgBNGZ1bGxfbWVzc2FnZXOkATBWZWM8TWVzc2FnZT4AATxoYXNoZWRfbWVzc2FnZXOoAXxWZWM8TWVzc2FnZTo6Q29tcHJlc3NlZE1lc3NhZ2U+AACYAAAECJygAJwMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXMISWQAAAQAOAEMdTMyAACgCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNISW5ib3VuZEhybXBNZXNzYWdlBCxCbG9ja051bWJlcgE4AAgBHHNlbnRfYXQ4ASxCbG9ja051bWJlcgABEGRhdGEYAUxhbGxvYzo6dmVjOjpWZWM8dTg+AACkAAACmACoAAACrACsAAAECJyQALAMQHBhbGxldF90aW1lc3RhbXAYcGFsbGV0EENhbGwEBFQAAQQMc2V0BAEMbm93tAEkVDo6TW9tZW50AABMVFNldCB0aGUgY3VycmVudCB0aW1lLgBVAVRoaXMgY2FsbCBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb27UcGhhc2UsIGlmIHRoaXMgY2FsbCBoYXNuJ3QgYmVlbiBpbnZva2VkIGJ5IHRoYXQgdGltZS4AQQFUaGUgdGltZXN0YW1wIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZSBieSB0aGUgYW1vdW50IHNwZWNpZmllZCBieWhbYENvbmZpZzo6TWluaW11bVBlcmlvZGBdLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX05vbmVfLgBRAVRoaXMgZGlzcGF0Y2ggY2xhc3MgaXMgX01hbmRhdG9yeV8gdG8gZW5zdXJlIGl0IGdldHMgZXhlY3V0ZWQgaW4gdGhlIGJsb2NrLiBCZSBhd2FyZVEBdGhhdCBjaGFuZ2luZyB0aGUgY29tcGxleGl0eSBvZiB0aGlzIGNhbGwgY291bGQgcmVzdWx0IGV4aGF1c3RpbmcgdGhlIHJlc291cmNlcyBpbiBhhGJsb2NrIHRvIGV4ZWN1dGUgYW55IG90aGVyIGNhbGxzLgA0IyMgQ29tcGxleGl0eTEBLSBgTygxKWAgKE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgYE9uVGltZXN0YW1wU2V0YCBtdXN0IGFsc28gYmUgYE8oMSlgKVUBLSAxIHN0b3JhZ2UgcmVhZCBhbmQgMSBzdG9yYWdlIG11dGF0aW9uIChjb2RlYyBgTygxKWAgYmVjYXVzZSBvZiBgRGlkVXBkYXRlOjp0YWtlYCBpbkAgIGBvbl9maW5hbGl6ZWAp1C0gMSBldmVudCBoYW5kbGVyIGBvbl90aW1lc3RhbXBfc2V0YC4gTXVzdCBiZSBgTygxKWAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrQAAAYoALgMWHN0YWdpbmdfcGFyYWNoYWluX2luZm8YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuvAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBBDYWxsCARUAARJAAEkUHRyYW5zZmVyX2FsbG93X2RlYXRoCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXAAShUOjpCYWxhbmNlAAAc1FRyYW5zZmVyIHNvbWUgbGlxdWlkIGZyZWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQuADUBYHRyYW5zZmVyX2FsbG93X2RlYXRoYCB3aWxsIHNldCB0aGUgYEZyZWVCYWxhbmNlYCBvZiB0aGUgc2VuZGVyIGFuZCByZWNlaXZlci4RAUlmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0sG9mIHRoZSB0cmFuc2ZlciwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIHRyYW5zYWN0b3IuOGZvcmNlX3RyYW5zZmVyDAEYc291cmNlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZcABKFQ6OkJhbGFuY2UAAghhAUV4YWN0bHkgYXMgYHRyYW5zZmVyX2FsbG93X2RlYXRoYCwgZXhjZXB0IHRoZSBvcmlnaW4gbXVzdCBiZSByb290IGFuZCB0aGUgc291cmNlIGFjY291bnREbWF5IGJlIHNwZWNpZmllZC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlwAEoVDo6QmFsYW5jZQADGFkBU2FtZSBhcyB0aGUgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Rga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuAOg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGluc3RlYWQuAPBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF06IHN0cnVjdC5QYWxsZXQuaHRtbCNtZXRob2QudHJhbnNmZXIwdHJhbnNmZXJfYWxsCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZcgBEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnTEAShUOjpCYWxhbmNlAAUMsFVucmVzZXJ2ZSBzb21lIGJhbGFuY2UgZnJvbSBhIHVzZXIgYnkgZm9yY2UuAGxDYW4gb25seSBiZSBjYWxsZWQgYnkgUk9PVC5AdXBncmFkZV9hY2NvdW50cwQBDHdob8wBRFZlYzxUOjpBY2NvdW50SWQ+AAYgcFVwZ3JhZGUgYSBzcGVjaWZpZWQgYWNjb3VudC4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVwZ3JhZGVkLgBVAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIGF0IGxlYXN0IGFsbCBidXQgMTAlIG9mIHRoZSBhY2NvdW50cyBuZWVkZWQgdG9BAWJlIHVwZ3JhZGVkLiAoV2UgbGV0IHNvbWUgbm90IGhhdmUgdG8gYmUgdXBncmFkZWQganVzdCBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlWHBvc3NpYmlsaXR5IG9mIGNodXJuKS5EZm9yY2Vfc2V0X2JhbGFuY2UIAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVlwAEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb27QAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGHAAShUOjpCYWxhbmNlAAkUuEFkanVzdCB0aGUgdG90YWwgaXNzdWFuY2UgaW4gYSBzYXR1cmF0aW5nIHdheS4A/ENhbiBvbmx5IGJlIGNhbGxlZCBieSByb290IGFuZCBhbHdheXMgbmVlZHMgYSBwb3NpdGl2ZSBgZGVsdGFgLgAkIyBFeGFtcGxlEGJ1cm4IARR2YWx1ZcABKFQ6OkJhbGFuY2UAAShrZWVwX2FsaXZlyAEQYm9vbAAKHPxCdXJuIHRoZSBzcGVjaWZpZWQgbGlxdWlkIGZyZWUgYmFsYW5jZSBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudC4AJQFJZiB0aGUgb3JpZ2luJ3MgYWNjb3VudCBlbmRzIHVwIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0CQFvZiB0aGUgYnVybiBhbmQgYGtlZXBfYWxpdmVgIGlzIGZhbHNlLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AUQFVbmxpa2Ugc2VuZGluZyBmdW5kcyB0byBhIF9idXJuXyBhZGRyZXNzLCB3aGljaCBtZXJlbHkgbWFrZXMgdGhlIGZ1bmRzIGluYWNjZXNzaWJsZSwhAXRoaXMgYGJ1cm5gIG9wZXJhdGlvbiB3aWxsIHJlZHVjZSB0b3RhbCBpc3N1YW5jZSBieSB0aGUgYW1vdW50IF9idXJuZWRfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7AAAAGxADEAAAFBwDIAAAFAADMAAACBADQDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXNMQWRqdXN0bWVudERpcmVjdGlvbgABCCBJbmNyZWFzZQAAACBEZWNyZWFzZQABAADUDHxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uGHBhbGxldBBDYWxsBARUAAEELGNsZWFuX3VzYWdlBAEYZW50aXR52AFMVDo6UmVzdHJpY3RlZEVudGl0eQABCEkBQWxsb3cgdG8gY2xlYW4gdXNhZ2UgYXNzb2NpYXRlZCB3aXRoIGFuIGVudGl0eSB3aGVuIGl0IGlzIHplcm8gb3Igd2hlbiB0aGVyZSBpcyBub5Bsb25nZXIgYW55IGFsbG93YW5jZSBmb3IgdGhlIG9yaWdpbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu2AhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZUBSZXN0cmljdGVkRW50aXR5AAEYNFBlcnNvbmFsQWxpYXMEAAgBFEFsaWFzAAAAQFBlcnNvbmFsSWRlbnRpdHkEACgBDHU2NAABAERSZWZlcnJlZENhbmRpZGF0ZQQABAEkQWNjb3VudElkAAIASEFjY291bnRQYXJ0aWNpcGFudAQABAEkQWNjb3VudElkAAMAQEludml0ZWRDYW5kaWRhdGUEAAQBJEFjY291bnRJZAAEAChMaXRlUGVyc29uBAAEASRBY2NvdW50SWQABQAA3Aw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQQQ2FsbAgEVAAESQABiBhjcmVhdGUMAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsbWluX2JhbGFuY2XEAShUOjpCYWxhbmNlAABM6Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHVibGljIG9yaWdpbi4AJQFUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgC8RnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBieSBgQXNzZXREZXBvc2l0YC4ALFBhcmFtZXRlcnM6WQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBhZG1pbiBpcyB0aGUgaW5pdGlhbCBhZGRyZXNzIG9mIGVhY2icbWVtYmVyIG9mIHRoZSBhc3NldCBjbGFzcydzIGFkbWluIHRlYW0uTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZRABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATRpc19zdWZmaWNpZW50yAEQYm9vbAABLG1pbl9iYWxhbmNlwAEoVDo6QmFsYW5jZQABTPhJc3N1ZSBhIG5ldyBjbGFzcyBvZiBmdW5naWJsZSBhc3NldHMgZnJvbSBhIHByaXZpbGVnZWQgb3JpZ2luLgC0VGhpcyBuZXcgYXNzZXQgY2xhc3MgaGFzIG5vIGFzc2V0cyBpbml0aWFsbHkuAKRUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gLgCcVW5saWtlIGBjcmVhdGVgLCBubyBmdW5kcyBhcmUgcmVzZXJ2ZWQuAFkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0LiBUaGlzIG11c3Qgbm90IGJlIGN1cnJlbnRseSBpbiB1c2UgdG8gaWRlbnRpZnkxAWFuIGV4aXN0aW5nIGFzc2V0LiBJZiBbYE5leHRBc3NldElkYF0gaXMgc2V0LCB0aGVuIHRoaXMgbXVzdCBiZSBlcXVhbCB0byBpdC5ZAS0gYG93bmVyYDogVGhlIG93bmVyIG9mIHRoaXMgY2xhc3Mgb2YgYXNzZXRzLiBUaGUgb3duZXIgaGFzIGZ1bGwgc3VwZXJ1c2VyIHBlcm1pc3Npb25zJQFvdmVyIHRoaXMgYXNzZXQsIGJ1dCBtYXkgbGF0ZXIgY2hhbmdlIGFuZCBjb25maWd1cmUgdGhlIHBlcm1pc3Npb25zIHVzaW5nkGB0cmFuc2Zlcl9vd25lcnNoaXBgIGFuZCBgc2V0X3RlYW1gLk0BLSBgbWluX2JhbGFuY2VgOiBUaGUgbWluaW11bSBiYWxhbmNlIG9mIHRoaXMgbmV3IGFzc2V0IHRoYXQgYW55IHNpbmdsZSBhY2NvdW50IG11c3Q9AWhhdmUuIElmIGFuIGFjY291bnQncyBiYWxhbmNlIGlzIHJlZHVjZWQgYmVsb3cgdGhpcywgdGhlbiBpdCBjb2xsYXBzZXMgdG8gemVyby4ArEVtaXRzIGBGb3JjZUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgNHN0YXJ0X2Rlc3Ryb3kEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAjDcU3RhcnQgdGhlIHByb2Nlc3Mgb2YgZGVzdHJveWluZyBhIGZ1bmdpYmxlIGFzc2V0IGNsYXNzLgBZAWBzdGFydF9kZXN0cm95YCBpcyB0aGUgZmlyc3QgaW4gYSBzZXJpZXMgb2YgZXh0cmluc2ljcyB0aGF0IHNob3VsZCBiZSBjYWxsZWQsIHRvIGFsbG93eGRlc3RydWN0aW9uIG9mIGFuIGFzc2V0IGNsYXNzLgBRAVRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAgb3IgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgYXNzZXQncyBgb3duZXJgLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZrhhbiBhY2NvdW50IGNvbnRhaW5zIGhvbGRzIG9yIGZyZWV6ZXMgaW4gcGxhY2UuQGRlc3Ryb3lfYWNjb3VudHMEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAzDMRGVzdHJveSBhbGwgYWNjb3VudHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYXNzZXQuAF0BYGRlc3Ryb3lfYWNjb3VudHNgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlhGFzc2V0IGlzIGluIGEgYERlc3Ryb3lpbmdgIHN0YXRlLgBdAUR1ZSB0byB3ZWlnaHQgcmVzdHJpY3Rpb25zLCB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBmdWxseTEBZGVzdHJveSBhbGwgYWNjb3VudHMuIEl0IHdpbGwgZGVzdHJveSBgUmVtb3ZlSXRlbXNMaW1pdGAgYWNjb3VudHMgYXQgYSB0aW1lLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuANRFYWNoIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkQWNjb3VudHNgIGV2ZW50LkRkZXN0cm95X2FwcHJvdmFscwQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgAEMGEBRGVzdHJveSBhbGwgYXBwcm92YWxzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFzc2V0IHVwIHRvIHRoZSBtYXggKFQ6OlJlbW92ZUl0ZW1zTGltaXQpLgBhAWBkZXN0cm95X2FwcHJvdmFsc2Agc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGBzdGFydF9kZXN0cm95YCBoYXMgYmVlbiBjYWxsZWQsIGFuZCB0aGWEYXNzZXQgaXMgaW4gYSBgRGVzdHJveWluZ2Agc3RhdGUuAF0BRHVlIHRvIHdlaWdodCByZXN0cmljdGlvbnMsIHRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIGZ1bGx5OQFkZXN0cm95IGFsbCBhcHByb3ZhbHMuIEl0IHdpbGwgZGVzdHJveSBgUmVtb3ZlSXRlbXNMaW1pdGAgYXBwcm92YWxzIGF0IGEgdGltZS4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDYRWFjaCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZEFwcHJvdmFsc2AgZXZlbnQuOGZpbmlzaF9kZXN0cm95BAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAUoxENvbXBsZXRlIGRlc3Ryb3lpbmcgYXNzZXQgYW5kIHVucmVzZXJ2ZSBjdXJyZW5jeS4AVQFgZmluaXNoX2Rlc3Ryb3lgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlWQFhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4gQWxsIGFjY291bnRzIG9yIGFwcHJvdmFscyBzaG91bGQgYmUgZGVzdHJveWVkIGJlZm9yZRRoYW5kLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAOBFYWNoIHN1Y2Nlc3NmdWwgY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRgIGV2ZW50LhBtaW50DAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEsYmVuZWZpY2lhcnkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UABjCITWludCBhc3NldHMgb2YgYSBwYXJ0aWN1bGFyIGNsYXNzLgA5AVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgSXNzdWVyIG9mIHRoZSBhc3NldCBgaWRgLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBtaW50ZWQuDQEtIGBiZW5lZmljaWFyeWA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkIHdpdGggdGhlIG1pbnRlZCBhc3NldHMuxC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgdGhlIGFzc2V0IHRvIGJlIG1pbnRlZC4AlEVtaXRzIGBJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgVQFNb2RlczogUHJlLWV4aXN0aW5nIGJhbGFuY2Ugb2YgYGJlbmVmaWNpYXJ5YDsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mIGBiZW5lZmljaWFyeWAuEGJ1cm4MAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UABzxFAVJlZHVjZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBieSBhcyBtdWNoIGFzIHBvc3NpYmxlIHVwIHRvIGBhbW91bnRgIGFzc2V0cyBvZiBgaWRgLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE1hbmFnZXIgb2YgdGhlIGFzc2V0IGBpZGAuANBCYWlscyB3aXRoIGBOb0FjY291bnRgIGlmIHRoZSBgd2hvYCBpcyBhbHJlYWR5IGRlYWQuAPwtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IGJ1cm5lZC6gLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZCBmcm9tLikBLSBgYW1vdW50YDogVGhlIG1heGltdW0gYW1vdW50IGJ5IHdoaWNoIGB3aG9gJ3MgYmFsYW5jZSBzaG91bGQgYmUgcmVkdWNlZC4AUQFFbWl0cyBgQnVybmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IGJ1cm5lZC4gSWYgdGhpcyB0YWtlcyB0aGUgYmFsYW5jZSB0byBiZWxvdyB0aGU5AW1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IGJ1cm5lZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWAJAU1vZGVzOiBQb3N0LWV4aXN0ZW5jZSBvZiBgd2hvYDsgUHJlICYgcG9zdCBab21iaWUtc3RhdHVzIG9mIGB3aG9gLiB0cmFuc2ZlcgwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50wAEoVDo6QmFsYW5jZQAISNBNb3ZlIHNvbWUgYXNzZXRzIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIuAFhPcmlnaW4gbXVzdCBiZSBTaWduZWQuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6cLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuUQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBzZW5kZXIncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRhAWB0YXJnZXRgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5dAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBzZW5kZXIgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dCBiZWxvd7x0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGB0YXJnZXRgOyBQb3N0LWV4aXN0ZW5jZSBvZiBzZW5kZXI7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiRgdGFyZ2V0YC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50wAEoVDo6QmFsYW5jZQAJSFkBTW92ZSBzb21lIGFzc2V0cyBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLCBrZWVwaW5nIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZS4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpwtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5RAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHNlbmRlcidzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZGEBYHRhcmdldGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbl0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNlbmRlciBiYWxhbmNlIGFib3ZlIHplcm8gYnV0IGJlbG93vHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYHRhcmdldGA7IFBvc3QtZXhpc3RlbmNlIG9mIHNlbmRlcjsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mJGB0YXJnZXRgLjhmb3JjZV90cmFuc2ZlchABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50wAEoVDo6QmFsYW5jZQAKTLRNb3ZlIHNvbWUgYXNzZXRzIGZyb20gb25lIGFjY291bnQgdG8gYW5vdGhlci4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZiB0aGUgYXNzZXQgYGlkYC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpgtIGBzb3VyY2VgOiBUaGUgYWNjb3VudCB0byBiZSBkZWJpdGVkLpQtIGBkZXN0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuWQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBgc291cmNlYCdzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZFkBYGRlc3RgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5NAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBgc291cmNlYCBiYWxhbmNlIGFib3ZlIHplcm8gYnV01GJlbG93IHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYGRlc3RgOyBQb3N0LWV4aXN0ZW5jZSBvZiBgc291cmNlYDsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mHGBkZXN0YC4YZnJlZXplCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ACzBVAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIGZyb20gYW4gYWNjb3VudCBgd2hvYC4gYHdob2BNAW11c3QgYWxyZWFkeSBleGlzdCBhcyBhbiBlbnRyeSBpbiBgQWNjb3VudGBzIG9mIHRoZSBhc3NldC4gSWYgeW91IHdhbnQgdG8gZnJlZXplIGFu9GFjY291bnQgdGhhdCBkb2VzIG5vdCBoYXZlIGFuIGVudHJ5LCB1c2UgYHRvdWNoX290aGVyYCBmaXJzdC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLogtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgEHRoYXcIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAMKOhBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4ukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVuZnJvemVuLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYDBmcmVlemVfYXNzZXQEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIADSTwRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciB0aGUgYXNzZXQgY2xhc3MuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAodGhhd19hc3NldAQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgAOJMRBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciB0aGUgYXNzZXQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSB0aGF3ZWQuADxFbWl0cyBgVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgSHRyYW5zZmVyX293bmVyc2hpcAgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADyh0Q2hhbmdlIHRoZSBPd25lciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC4AVEVtaXRzIGBPd25lckNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWAgc2V0X3RlYW0QAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AEDDEQ2hhbmdlIHRoZSBJc3N1ZXIsIEFkbWluIGFuZCBGcmVlemVyIG9mIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLqQtIGBpc3N1ZXJgOiBUaGUgbmV3IElzc3VlciBvZiB0aGlzIGFzc2V0LpwtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBhc3NldC6sLSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGFzc2V0LgBQRW1pdHMgYFRlYW1DaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgMHNldF9tZXRhZGF0YRABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABEG5hbWUYARxWZWM8dTg+AAEYc3ltYm9sGAEcVmVjPHU4PgABIGRlY2ltYWxzDAEIdTgAEUB4U2V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGFzc2V0IGBpZGAuANhGdW5kcyBvZiBzZW5kZXIgYXJlIHJlc2VydmVkIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTpRAWBNZXRhZGF0YURlcG9zaXRCYXNlICsgTWV0YWRhdGFEZXBvc2l0UGVyQnl0ZSAqIChuYW1lLmxlbiArIHN5bWJvbC5sZW4pYCB0YWtpbmcgaW50b4xhY2NvdW50IGFueSBhbHJlYWR5IHJlc2VydmVkIGZ1bmRzLgC4LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gdXBkYXRlLk0BLSBgbmFtZWA6IFRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC5NAS0gYHN5bWJvbGA6IFRoZSBleGNoYW5nZSBzeW1ib2wgZm9yIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuLQEtIGBkZWNpbWFsc2A6IFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhpcyBhc3NldCB1c2VzIHRvIHJlcHJlc2VudCBvbmUgdW5pdC4AUEVtaXRzIGBNZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYDhjbGVhcl9tZXRhZGF0YQQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgASLIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgCkQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBhc3NldCBvd25lci4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9zZXRfbWV0YWRhdGEUAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBuYW1lGAEcVmVjPHU4PgABGHN5bWJvbBgBHFZlYzx1OD4AASBkZWNpbWFscwwBCHU4AAEkaXNfZnJvemVuyAEQYm9vbAATOLhGb3JjZSB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0IHRvIHNvbWUgdmFsdWUuAGxPcmlnaW4gbXVzdCBiZSBGb3JjZU9yaWdpbi4AaEFueSBkZXBvc2l0IGlzIGxlZnQgYWxvbmUuALgtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byB1cGRhdGUuTQEtIGBuYW1lYDogVGhlIHVzZXIgZnJpZW5kbHkgbmFtZSBvZiB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLk0BLSBgc3ltYm9sYDogVGhlIGV4Y2hhbmdlIHN5bWJvbCBmb3IgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC4tAS0gYGRlY2ltYWxzYDogVGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGlzIGFzc2V0IHVzZXMgdG8gcmVwcmVzZW50IG9uZSB1bml0LgBQRW1pdHMgYE1ldGFkYXRhU2V0YC4AUQFXZWlnaHQ6IGBPKE4gKyBTKWAgd2hlcmUgTiBhbmQgUyBhcmUgdGhlIGxlbmd0aCBvZiB0aGUgbmFtZSBhbmQgc3ltYm9sIHJlc3BlY3RpdmVseS5QZm9yY2VfY2xlYXJfbWV0YWRhdGEEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAFCyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4AbE9yaWdpbiBtdXN0IGJlIEZvcmNlT3JpZ2luLgBgQW55IGRlcG9zaXQgaXMgcmV0dXJuZWQuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2VfYXNzZXRfc3RhdHVzIAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGlzc3VlcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGZyZWV6ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1pbl9iYWxhbmNlwAEoVDo6QmFsYW5jZQABNGlzX3N1ZmZpY2llbnTIARBib29sAAEkaXNfZnJvemVuyAEQYm9vbAAVWJhBbHRlciB0aGUgYXR0cmlidXRlcyBvZiBhIGdpdmVuIGFzc2V0LgB0T3JpZ2luIG11c3QgYmUgYEZvcmNlT3JpZ2luYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uUQEtIGBpc19zdWZmaWNpZW50YDogV2hldGhlciBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhpcyBhc3NldCBpcyBkZXBvc2l0IG9mIHN1ZmZpY2llbnRNAXZhbHVlIHRvIGFjY291bnQgZm9yIHRoZSBzdGF0ZSBibG9hdCBhc3NvY2lhdGVkIHdpdGggaXRzIGJhbGFuY2Ugc3RvcmFnZS4gSWYgc2V0IHRvVQFgdHJ1ZWAsIHRoZW4gbm9uLXplcm8gYmFsYW5jZXMgbWF5IGJlIHN0b3JlZCB3aXRob3V0IGEgYGNvbnN1bWVyYCByZWZlcmVuY2UgKGFuZCB0aHVzTQFhbiBFRCBpbiB0aGUgQmFsYW5jZXMgcGFsbGV0IG9yIHdoYXRldmVyIGVsc2UgaXMgdXNlZCB0byBjb250cm9sIHVzZXItYWNjb3VudCBzdGF0ZSBncm93dGgpLj0BLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGlzIGFzc2V0IGNsYXNzIGlzIGZyb3plbiBleGNlcHQgZm9yIHBlcm1pc3Npb25lZC9hZG1pbjRpbnN0cnVjdGlvbnMuAOhFbWl0cyBgQXNzZXRTdGF0dXNDaGFuZ2VkYCB3aXRoIHRoZSBpZGVudGl0eSBvZiB0aGUgYXNzZXQuADhXZWlnaHQ6IGBPKDEpYEBhcHByb3ZlX3RyYW5zZmVyDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UAFlAtAUFwcHJvdmUgYW4gYW1vdW50IG9mIGFzc2V0IGZvciB0cmFuc2ZlciBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgBNAUVuc3VyZXMgdGhhdCBgQXBwcm92YWxEZXBvc2l0YCB3b3J0aCBvZiBgQ3VycmVuY3lgIGlzIHJlc2VydmVkIGZyb20gc2lnbmluZyBhY2NvdW50VQFmb3IgdGhlIHB1cnBvc2Ugb2YgaG9sZGluZyB0aGUgYXBwcm92YWwuIElmIHNvbWUgbm9uLXplcm8gYW1vdW50IG9mIGFzc2V0cyBpcyBhbHJlYWR5SQFhcHByb3ZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudCB0byBgZGVsZWdhdGVgLCB0aGVuIGl0IGlzIHRvcHBlZCB1cCBvciB1bnJlc2VydmVkIHRvVG1lZXQgdGhlIHJpZ2h0IHZhbHVlLgBFAU5PVEU6IFRoZSBzaWduaW5nIGFjY291bnQgZG9lcyBub3QgbmVlZCB0byBvd24gYGFtb3VudGAgb2YgYXNzZXRzIGF0IHRoZSBwb2ludCBvZkRtYWtpbmcgdGhpcyBjYWxsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuDQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuSQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0IHRoYXQgbWF5IGJlIHRyYW5zZmVycmVkIGJ5IGBkZWxlZ2F0ZWAuIElmIHRoZXJlIGlz4GFscmVhZHkgYW4gYXBwcm92YWwgaW4gcGxhY2UsIHRoZW4gdGhpcyBhY3RzIGFkZGl0aXZlbHkuAJBFbWl0cyBgQXBwcm92ZWRUcmFuc2ZlcmAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgPGNhbmNlbF9hcHByb3ZhbAgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AFzRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZXJlIG11c3QgYmUgYW4gYXBwcm92YWwgaW4gcGxhY2UgYmV0d2VlbiBzaWduZXIgYW5kLGBkZWxlZ2F0ZWAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBUZm9yY2VfY2FuY2VsX2FwcHJvdmFsDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AGDRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgRm9yY2VPcmlnaW4gb3IgU2lnbmVkIG9yaWdpbiB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluaGFjY291bnQgb2YgdGhlIGFzc2V0IGBpZGAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBEdHJhbnNmZXJfYXBwcm92ZWQQAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsZGVzdGluYXRpb24AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UAGUhNAVRyYW5zZmVyIHNvbWUgYXNzZXQgYmFsYW5jZSBmcm9tIGEgcHJldmlvdXNseSBkZWxlZ2F0ZWQgYWNjb3VudCB0byBzb21lIHRoaXJkLXBhcnR5IGFjY291bnQuAEkBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGVyZSBtdXN0IGJlIGFuIGFwcHJvdmFsIGluIHBsYWNlIGJ5IHRoZSBgb3duZXJgIHRvIHRoZRxzaWduZXIuAFkBSWYgdGhlIGVudGlyZSBhbW91bnQgYXBwcm92ZWQgZm9yIHRyYW5zZmVyIGlzIHRyYW5zZmVycmVkLCB0aGVuIGFueSBkZXBvc2l0IHByZXZpb3VzbHm0cmVzZXJ2ZWQgYnkgYGFwcHJvdmVfdHJhbnNmZXJgIGlzIHVucmVzZXJ2ZWQuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC5hAS0gYG93bmVyYDogVGhlIGFjY291bnQgd2hpY2ggcHJldmlvdXNseSBhcHByb3ZlZCBmb3IgYSB0cmFuc2ZlciBvZiBhdCBsZWFzdCBgYW1vdW50YCBhbmS8ZnJvbSB3aGljaCB0aGUgYXNzZXQgYmFsYW5jZSB3aWxsIGJlIHdpdGhkcmF3bi5hAS0gYGRlc3RpbmF0aW9uYDogVGhlIGFjY291bnQgdG8gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugb2YgYGFtb3VudGAgd2lsbCBiZSB0cmFuc2ZlcnJlZC60LSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBhc3NldHMgdG8gdHJhbnNmZXIuAJxFbWl0cyBgVHJhbnNmZXJyZWRBcHByb3ZlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgFHRvdWNoBAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyABokwENyZWF0ZSBhbiBhc3NldCBhY2NvdW50IGZvciBub24tcHJvdmlkZXIgYXNzZXRzLgDAQSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc2lnbmVyIGFjY291bnQuAF0BLSBgb3JpZ2luYDogTXVzdCBiZSBTaWduZWQ7IHRoZSBzaWduZXIgYWNjb3VudCBtdXN0IGhhdmUgc3VmZmljaWVudCBmdW5kcyBmb3IgYSBkZXBvc2l0OCAgdG8gYmUgdGFrZW4uCQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZC4AmEVtaXRzIGBUb3VjaGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuGHJlZnVuZAgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABKGFsbG93X2J1cm7IARBib29sABs0WQFSZXR1cm4gdGhlIGRlcG9zaXQgKGlmIGFueSkgb2YgYW4gYXNzZXQgYWNjb3VudCBvciBhIGNvbnN1bWVyIHJlZmVyZW5jZSAoaWYgYW55KSBvZiBhbiBhY2NvdW50LgBoVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZC4APQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3Igd2hpY2ggdGhlIGNhbGxlciB3b3VsZCBsaWtlIHRoZSBkZXBvc2l0LCAgcmVmdW5kZWQuXQEtIGBhbGxvd19idXJuYDogSWYgYHRydWVgIHRoZW4gYXNzZXRzIG1heSBiZSBkZXN0cm95ZWQgaW4gb3JkZXIgdG8gY29tcGxldGUgdGhlIHJlZnVuZC4ASQFJdCB3aWxsIGZhaWwgd2l0aCBlaXRoZXIgW2BFcnJvcjo6Q29udGFpbnNIb2xkc2BdIG9yIFtgRXJyb3I6OkNvbnRhaW5zRnJlZXplc2BdIGlm1HRoZSBhc3NldCBhY2NvdW50IGNvbnRhaW5zIGhvbGRzIG9yIGZyZWV6ZXMgaW4gcGxhY2UuAJxFbWl0cyBgUmVmdW5kZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC48c2V0X21pbl9iYWxhbmNlCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEsbWluX2JhbGFuY2XEAShUOjpCYWxhbmNlABwwlFNldHMgdGhlIG1pbmltdW0gYmFsYW5jZSBvZiBhbiBhc3NldC4AIQFPbmx5IHdvcmtzIGlmIHRoZXJlIGFyZW4ndCBhbnkgYWNjb3VudHMgdGhhdCBhcmUgaG9sZGluZyB0aGUgYXNzZXQgb3IgaWbgdGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgIGlzIGxlc3MgdGhhbiB0aGUgb2xkIG9uZS4A/E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBoYXMgdG8gYmUgdGhlIE93bmVyIG9mIHRoZSxhc3NldCBgaWRgLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuwC0gYG1pbl9iYWxhbmNlYDogVGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4sdG91Y2hfb3RoZXIIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAdLIhDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3IgYHdob2AuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi5hAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLCB0aGUgYXNzZXQgc3RhdHVzIG11c3QoICBiZSBsaXZlLowtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wcmVmdW5kX290aGVyCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHjRdAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhIHRhcmdldCBhc3NldCBhY2NvdW50LiBVc2VmdWwgaWYgeW91IGFyZSB0aGUgZGVwb3NpdG9yLgBdAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIGVpdGhlciB0aGUgYWNjb3VudCBvd25lciwgZGVwb3NpdG9yLCBvciBhc3NldCBgQWRtaW5gLiBJbmEBb3JkZXIgdG8gYnVybiBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhlIGFzc2V0LCB0aGUgY2FsbGVyIG11c3QgYmUgdGhlIGFjY291bnQgYW5kIHNob3VsZDR1c2UgYHJlZnVuZGAuABkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IGhvbGRpbmcgYSBkZXBvc2l0LnwtIGB3aG9gOiBUaGUgYWNjb3VudCB0byByZWZ1bmQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZtR0aGUgYXNzZXQgYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuFGJsb2NrCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHyhZAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYHdob2AuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjY291bnQncyBhc3NldC6ULSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdW5ibG9ja2VkLgBARW1pdHMgYEJsb2NrZWRgLgA4V2VpZ2h0OiBgTygxKWAwdHJhbnNmZXJfYWxsDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZcgBEGJvb2wAIEAdAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFzc2V0IGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXQ9AWFueSBoZWxkLCBmcm96ZW4sIG9yIG1pbmltdW0gYmFsYW5jZSAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgAZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCBob2xkaW5nIGEgZGVwb3NpdC6gLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhc3NldCBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFzc2V0IGFjY291bnQgdG8gYmUga2lsbGVkRQEgIChmYWxzZSksIG9yIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJhbGFuY2UsIHdoaWNoIHdpbGzoICBndWFyYW50ZWUgdG8ga2VlcCB0aGUgc2VuZGVyIGFzc2V0IGFjY291bnQgYWxpdmUgKHRydWUpLjBzZXRfcmVzZXJ2ZXMIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASByZXNlcnZlcx0BAchCb3VuZGVkVmVjPFQ6OlJlc2VydmVEYXRhLCBDb25zdFUzMjxNQVhfUkVTRVJWRVM+PgAhJMRTZXRzIHRoZSB0cnVzdGVkIHJlc2VydmUgaW5mb3JtYXRpb24gb2YgYW4gYXNzZXQuAFUBT3JpZ2luIG11c3QgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLiBUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byB0aGUgY29uZmlndXJlZCUBYENyZWF0ZU9yaWdpbmAgb3IgYmUgdGhlIHNpZ25lZCBgb3duZXJgIGNvbmZpZ3VyZWQgZHVyaW5nIGFzc2V0IGNyZWF0aW9uLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQu8C0gYHJlc2VydmVzYDogVGhlIGZ1bGwgbGlzdCBvZiB0cnVzdGVkIHJlc2VydmVzIGluZm9ybWF0aW9uLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu4BAsc3RhZ2luZ194Y20IdjUgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9y5AEkSnVuY3Rpb25zAADkECxzdGFnaW5nX3hjbQh2NSRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAOgBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQAAQEBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQABQEBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQACQEBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQADQEBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQAEQEBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQAFQEBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQAGQEBSEFyYzxbSnVuY3Rpb247IDhdPgAIAADoAAADAQAAAOwA7BAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABgAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3Jr8AFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAgBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya/ABRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXi0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya/ABRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAwAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoDAEIdTgAARBkYXRhCAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlk+AEYQm9keUlkAAEQcGFydPwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQA9AEkTmV0d29ya0lkAAkAAPAEGE9wdGlvbgQEVAH0AQgQTm9uZQAAABBTb21lBAD0AAABAAD0ECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiROZXR3b3JrSWQAASAkQnlHZW5lc2lzBAAIASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIoAQx1NjQAAShibG9ja19oYXNoCAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAIEV0aGVyZXVtBAEgY2hhaW5faWS0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAD4EAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQAcAEcW3U4OyA0XQABABRJbmRleAQAYAEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAAD8EAx4Y20IdjMganVuY3Rpb24gQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW50YAEMdTMyAAEAIEZyYWN0aW9uCAEMbm9tYAEMdTMyAAEUZGVub21gAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub21gAQx1MzIAARRkZW5vbWABDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub21gAQx1MzIAARRkZW5vbWABDHUzMgAEAAABAQAAAwIAAADsAAUBAAADAwAAAOwACQEAAAMEAAAA7AANAQAAAwUAAADsABEBAAADBgAAAOwAFQEAAAMHAAAA7AAZAQAAAwgAAADsAB0BDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBIQEEUwAABAAlAQEYVmVjPFQ+AAAhAQw0YXNzZXRzX2NvbW1vbmBsb2NhbF9hbmRfZm9yZWlnbl9hc3NldHNcRm9yZWlnbkFzc2V0UmVzZXJ2ZURhdGEAAAgBHHJlc2VydmXgASBMb2NhdGlvbgABMHRlbGVwb3J0YWJsZcgBEGJvb2wAACUBAAACIQEAKQEMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBBDYWxsBARUAAEMGGNyZWF0ZQgBKGFzc2V0X2tpbmTgAURCb3g8VDo6QXNzZXRLaW5kPgABEHJhdGUtAQEkRml4ZWRVMTI4AAAQDQFJbml0aWFsaXplIGEgY29udmVyc2lvbiByYXRlIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQuADQjIyBDb21wbGV4aXR5GC0gTygxKRh1cGRhdGUIAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRlLQEBJEZpeGVkVTEyOAABEAUBVXBkYXRlIHRoZSBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgZm9yIHRoZSBnaXZlbiBhc3NldC4ANCMjIENvbXBsZXhpdHkYLSBPKDEpGHJlbW92ZQQBKGFzc2V0X2tpbmTgAURCb3g8VDo6QXNzZXRLaW5kPgACECUBUmVtb3ZlIGFuIGV4aXN0aW5nIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuLQEMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEAMQBEHUxMjgAADEBDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBBDYWxsBARUAAEkRHNldF9pbnZ1bG5lcmFibGVzBAEMbmV3zAFEVmVjPFQ6OkFjY291bnRJZD4AADQxAVNldCB0aGUgbGlzdCBvZiBpbnZ1bG5lcmFibGUgKGZpeGVkKSBjb2xsYXRvcnMuIFRoZXNlIGNvbGxhdG9ycyBtdXN0IGRvIHNvbWXQcHJlcGFyYXRpb24sIG5hbWVseSB0byBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLgBZAVRoZSBjYWxsIHdpbGwgcmVtb3ZlIGFueSBhY2NvdW50cyB0aGF0IGhhdmUgbm90IHJlZ2lzdGVyZWQga2V5cyBmcm9tIHRoZSBzZXQuIFRoYXQgaXMsXQFpdCBpcyBub24tYXRvbWljOyB0aGUgY2FsbGVyIGFjY2VwdHMgYWxsIGBBY2NvdW50SWRgcyBwYXNzZWQgaW4gYG5ld2AgX2luZGl2aWR1YWxseV8gYXMxAWFjY2VwdGFibGUgSW52dWxuZXJhYmxlcywgYW5kIGlzIG5vdCBwcm9wb3NpbmcgYSBfc2V0XyBvZiBuZXcgSW52dWxuZXJhYmxlcy4AWQFUaGlzIGNhbGwgZG9lcyBub3QgbWFpbnRhaW4gbXV0dWFsIGV4Y2x1c2l2aXR5IG9mIGBJbnZ1bG5lcmFibGVzYCBhbmQgYENhbmRpZGF0ZXNgLiBJdGEBaXMgcmVjb21tZW5kZWQgdG8gdXNlIGEgYmF0Y2ggb2YgYGFkZF9pbnZ1bG5lcmFibGVgIGFuZCBgcmVtb3ZlX2ludnVsbmVyYWJsZWAgaW5zdGVhZC4gQVEBYGJhdGNoX2FsbGAgY2FuIGFsc28gYmUgdXNlZCB0byBlbmZvcmNlIGF0b21pY2l0eS4gSWYgYW55IGNhbmRpZGF0ZXMgYXJlIGluY2x1ZGVkIGluTQFgbmV3YCwgdGhleSBzaG91bGQgYmUgcmVtb3ZlZCB3aXRoIGByZW1vdmVfaW52dWxuZXJhYmxlX2NhbmRpZGF0ZWAgYWZ0ZXIgZXhlY3V0aW9uLgCUTXVzdCBiZSBjYWxsZWQgYnkgdGhlIGBVcGRhdGVPcmlnaW5gLlhzZXRfZGVzaXJlZF9jYW5kaWRhdGVzBAEMbWF4OAEMdTMyAAEUVQFTZXQgdGhlIGlkZWFsIG51bWJlciBvZiBub24taW52dWxuZXJhYmxlIGNvbGxhdG9ycy4gSWYgbG93ZXJpbmcgdGhpcyBudW1iZXIsIHRoZW4gdGhlYQFudW1iZXIgb2YgcnVubmluZyBjb2xsYXRvcnMgY291bGQgYmUgaGlnaGVyIHRoYW4gdGhpcyBmaWd1cmUuIEFzaWRlIGZyb20gdGhhdCBlZGdlIGNhc2UsNQF0aGVyZSBzaG91bGQgYmUgbm8gb3RoZXIgd2F5IHRvIGhhdmUgbW9yZSBjYW5kaWRhdGVzIHRoYW4gdGhlIGRlc2lyZWQgbnVtYmVyLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLkhzZXRfY2FuZGlkYWN5X2JvbmQEARBib25kxAEwQmFsYW5jZU9mPFQ+AAIceFNldCB0aGUgY2FuZGlkYWN5IGJvbmQgYW1vdW50LgBRAUlmIHRoZSBjYW5kaWRhY3kgYm9uZCBpcyBpbmNyZWFzZWQgYnkgdGhpcyBjYWxsLCBhbGwgY3VycmVudCBjYW5kaWRhdGVzIHdoaWNoIGhhdmUgYU0BZGVwb3NpdCBsb3dlciB0aGFuIHRoZSBuZXcgYm9uZCB3aWxsIGJlIGtpY2tlZCBmcm9tIHRoZSBsaXN0IGFuZCBnZXQgdGhlaXIgZGVwb3NpdHMUYmFjay4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5UcmVnaXN0ZXJfYXNfY2FuZGlkYXRlAAMQQQFSZWdpc3RlciB0aGlzIGFjY291bnQgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIFRoZSBhY2NvdW50IG11c3QgKGEpIGFscmVhZHkgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMgYW5kIChiKSBiZSBhYmxlIHRvIHJlc2VydmUgdGhlIGBDYW5kaWRhY3lCb25kYC4A3FRoaXMgY2FsbCBpcyBub3QgYXZhaWxhYmxlIHRvIGBJbnZ1bG5lcmFibGVgIGNvbGxhdG9ycy4wbGVhdmVfaW50ZW50AAQUVQFEZXJlZ2lzdGVyIGBvcmlnaW5gIGFzIGEgY29sbGF0b3IgY2FuZGlkYXRlLiBOb3RlIHRoYXQgdGhlIGNvbGxhdG9yIGNhbiBvbmx5IGxlYXZlIG9uDQFzZXNzaW9uIGNoYW5nZS4gVGhlIGBDYW5kaWRhY3lCb25kYCB3aWxsIGJlIHVucmVzZXJ2ZWQgaW1tZWRpYXRlbHkuABkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGNhbmRpZGF0ZXMgd291bGQgZHJvcCBiZWxvd1xgTWluRWxpZ2libGVDb2xsYXRvcnNgLkBhZGRfaW52dWxuZXJhYmxlBAEMd2hvBAEwVDo6QWNjb3VudElkAAUQRQFBZGQgYSBuZXcgYWNjb3VudCBgd2hvYCB0byB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgd2hvYCBtdXN0IGhhdmUdAXJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLiBJZiBgd2hvYCBpcyBhIGNhbmRpZGF0ZSwgdGhleSB3aWxsIGJlIHJlbW92ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuTHJlbW92ZV9pbnZ1bG5lcmFibGUEAQx3aG8EATBUOjpBY2NvdW50SWQABhBhAVJlbW92ZSBhbiBhY2NvdW50IGB3aG9gIGZyb20gdGhlIGxpc3Qgb2YgYEludnVsbmVyYWJsZXNgIGNvbGxhdG9ycy4gYEludnVsbmVyYWJsZXNgIG11c3QoYmUgc29ydGVkLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLix1cGRhdGVfYm9uZAQBLG5ld19kZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAccXQFVcGRhdGUgdGhlIGNhbmRpZGFjeSBib25kIG9mIGNvbGxhdG9yIGNhbmRpZGF0ZSBgb3JpZ2luYCB0byBhIG5ldyBhbW91bnQgYG5ld19kZXBvc2l0YC4AQQFTZXR0aW5nIGEgYG5ld19kZXBvc2l0YCB0aGF0IGlzIGxvd2VyIHRoYW4gdGhlIGN1cnJlbnQgZGVwb3NpdCB3aGlsZSBgb3JpZ2luYCBpc+BvY2N1cHlpbmcgYSB0b3AtYERlc2lyZWRDYW5kaWRhdGVzYCBzbG90IGlzIG5vdCBhbGxvd2VkLgBZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgYG9yaWdpbmAgaXMgbm90IGEgY29sbGF0b3IgY2FuZGlkYXRlLCB0aGUgdXBkYXRlZCBib25kIGlzIGxvd2VyGQF0aGFuIHRoZSBtaW5pbXVtIGNhbmRpZGFjeSBib25kLCBhbmQvb3IgdGhlIGFtb3VudCBjYW5ub3QgYmUgcmVzZXJ2ZWQuTHRha2VfY2FuZGlkYXRlX3Nsb3QIARxkZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAEYdGFyZ2V0BAEwVDo6QWNjb3VudElkAAgcTQFUaGUgY2FsbGVyIGBvcmlnaW5gIHJlcGxhY2VzIGEgY2FuZGlkYXRlIGB0YXJnZXRgIGluIHRoZSBjb2xsYXRvciBjYW5kaWRhdGUgbGlzdCBieVUBcmVzZXJ2aW5nIGBkZXBvc2l0YC4gVGhlIGFtb3VudCBgZGVwb3NpdGAgcmVzZXJ2ZWQgYnkgdGhlIGNhbGxlciBtdXN0IGJlIGdyZWF0ZXIgdGhhbuB0aGUgZXhpc3RpbmcgYm9uZCBvZiB0aGUgdGFyZ2V0IGl0IGlzIHRyeWluZyB0byByZXBsYWNlLgBZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIGNhbGxlciBpcyBhbHJlYWR5IGEgY29sbGF0b3IgY2FuZGlkYXRlIG9yIGludnVsbmVyYWJsZSwgdGhlVQFjYWxsZXIgZG9lcyBub3QgaGF2ZSByZWdpc3RlcmVkIHNlc3Npb24ga2V5cywgdGhlIHRhcmdldCBpcyBub3QgYSBjb2xsYXRvciBjYW5kaWRhdGUsvGFuZC9vciB0aGUgYGRlcG9zaXRgIGFtb3VudCBjYW5ub3QgYmUgcmVzZXJ2ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjUBDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQQQ2FsbAQEVAABCCBzZXRfa2V5cwgBEGtleXM5AQEcVDo6S2V5cwABFHByb29mGAEcVmVjPHU4PgAALORTZXRzIHRoZSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyIHRvIGBrZXlzYC4AHQFBbGxvd3MgYW4gYWNjb3VudCB0byBzZXQgaXRzIHNlc3Npb24ga2V5IHByaW9yIHRvIGJlY29taW5nIGEgdmFsaWRhdG9yLsBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AAQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuVQEtIGBrZXlzYDogVGhlIG5ldyBzZXNzaW9uIGtleXMgdG8gc2V0LiBUaGVzZSBhcmUgdGhlIHB1YmxpYyBrZXlzIG9mIGFsbCBzZXNzaW9ucyBrZXlzXCAgc2V0dXAgaW4gdGhlIHJ1bnRpbWUuQQEtIGBwcm9vZmA6IFRoZSBwcm9vZiB0aGF0IGBvcmlnaW5gIGhhcyBhY2Nlc3MgdG8gdGhlIHByaXZhdGUga2V5cyBvZiBga2V5c2AuIFNlZU0BICBbYGltcGxfb3BhcXVlX2tleXNgXShzcF9ydW50aW1lOjppbXBsX29wYXF1ZV9rZXlzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGU8ICBwcm9vZiBmb3JtYXQuKHB1cmdlX2tleXMAASDIUmVtb3ZlcyBhbnkgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlci4AwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIGFjY291bnQgbXVzdCBiZSBlaXRoZXIgYmVdAWNvbnZlcnRpYmxlIHRvIGEgdmFsaWRhdG9yIElEIHVzaW5nIHRoZSBjaGFpbidzIHR5cGljYWwgYWRkcmVzc2luZyBzeXN0ZW0gKHRoaXMgdXN1YWxseVEBbWVhbnMgYmVpbmcgYSBjb250cm9sbGVyIGFjY291bnQpIG9yIGRpcmVjdGx5IGNvbnZlcnRpYmxlIGludG8gYSB2YWxpZGF0b3IgSUQgKHdoaWNolHVzdWFsbHkgbWVhbnMgYmVpbmcgYSBzdGFzaCBhY2NvdW50KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQEIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUsU2Vzc2lvbktleXMAAAQBEGF1cmE9AQHEPEF1cmEgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAAPQEQRHNwX2NvbnNlbnN1c19hdXJhHHNyMjU1MTksYXBwX3NyMjU1MTkYUHVibGljAAAEAAgBPHNyMjU1MTk6OlB1YmxpYwAAQQEMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0EENhbGwEBFQAARRUc3VzcGVuZF94Y21fZXhlY3V0aW9uAAEMSQFTdXNwZW5kcyBhbGwgWENNIGV4ZWN1dGlvbnMgZm9yIHRoZSBYQ01QIHF1ZXVlLCByZWdhcmRsZXNzIG9mIHRoZSBzZW5kZXIncyBvcmlnaW4uAKQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYENvbnRyb2xsZXJPcmlnaW5gLlByZXN1bWVfeGNtX2V4ZWN1dGlvbgACFLhSZXN1bWVzIGFsbCBYQ00gZXhlY3V0aW9ucyBmb3IgdGhlIFhDTVAgcXVldWUuAD0BTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHN0YXR1cyBvZiB0aGUgaW4vb3V0IGJvdW5kIGNoYW5uZWxzLgCkLSBgb3JpZ2luYDogTXVzdCBwYXNzIGBDb250cm9sbGVyT3JpZ2luYC5gdXBkYXRlX3N1c3BlbmRfdGhyZXNob2xkBAEMbmV3OAEMdTMyAAMUSQFPdmVyd3JpdGVzIHRoZSBudW1iZXIgb2YgcGFnZXMgd2hpY2ggbXVzdCBiZSBpbiB0aGUgcXVldWUgZm9yIHRoZSBvdGhlciBzaWRlIHRvIGJleHRvbGQgdG8gc3VzcGVuZCB0aGVpciBzZW5kaW5nLgB0LSBgb3JpZ2luYDogTXVzdCBwYXNzIGBSb290YC7oLSBgbmV3YDogRGVzaXJlZCB2YWx1ZSBmb3IgYFF1ZXVlQ29uZmlnRGF0YS5zdXNwZW5kX3ZhbHVlYFR1cGRhdGVfZHJvcF90aHJlc2hvbGQEAQxuZXc4AQx1MzIABBRFAU92ZXJ3cml0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyB3aGljaCBtdXN0IGJlIGluIHRoZSBxdWV1ZSBhZnRlciB3aGljaCB3ZSBkcm9wIGFueYhmdXJ0aGVyIG1lc3NhZ2VzIGZyb20gdGhlIGNoYW5uZWwuAHQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYFJvb3RgLuwtIGBuZXdgOiBEZXNpcmVkIHZhbHVlIGZvciBgUXVldWVDb25maWdEYXRhLmRyb3BfdGhyZXNob2xkYFx1cGRhdGVfcmVzdW1lX3RocmVzaG9sZAQBDG5ldzgBDHUzMgAFFE0BT3ZlcndyaXRlcyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIHRoZSBxdWV1ZSBtdXN0IGJlIHJlZHVjZWQgdG8gYmVmb3JlIGl0IHNpZ25hbHMBAXRoYXQgbWVzc2FnZSBzZW5kaW5nIG1heSByZWNvbW1lbmNlIGFmdGVyIGl0IGhhcyBiZWVuIHN1c3BlbmRlZC4AdC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgUm9vdGAu9C0gYG5ld2A6IERlc2lyZWQgdmFsdWUgZm9yIGBRdWV1ZUNvbmZpZ0RhdGEucmVzdW1lX3RocmVzaG9sZGAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQEMKHBhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAUQQc2VuZAgBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2WVAQFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAAPHRlbGVwb3J0X2Fzc2V0cxABEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AHQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzEAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAJ4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4APQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy4cZXhlY3V0ZQgBHG1lc3NhZ2XdAgG0Qm94PFZlcnNpb25lZFhjbTw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4+AAEobWF4X3dlaWdodNUBARhXZWlnaHQAAyDQRXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSBmcm9tIGEgbG9jYWwsIHNpZ25lZCwgb3JpZ2luLgBNAUFuIGV2ZW50IGlzIGRlcG9zaXRlZCBpbmRpY2F0aW5nIHdoZXRoZXIgYG1zZ2AgY291bGQgYmUgZXhlY3V0ZWQgY29tcGxldGVseSBvciBvbmx5KHBhcnRpYWxseS4AXQFObyBtb3JlIHRoYW4gYG1heF93ZWlnaHRgIHdpbGwgYmUgdXNlZCBpbiBpdHMgYXR0ZW1wdGVkIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBsZXNzIHRoYW5BAXRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgdGhhdCB0aGUgbWVzc2FnZSBjb3VsZCB0YWtlIHRvIGJlIGV4ZWN1dGVkLCB0aGVuIG5vfGV4ZWN1dGlvbiBhdHRlbXB0IHdpbGwgYmUgbWFkZS5EZm9yY2VfeGNtX3ZlcnNpb24IASBsb2NhdGlvbuABNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uOAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb24JAwFIT3B0aW9uPFhjbVZlcnNpb24+AAUUWQFTZXQgYSBzYWZlIFhDTSB2ZXJzaW9uICh0aGUgdmVyc2lvbiB0aGF0IFhDTSBzaG91bGQgYmUgZW5jb2RlZCB3aXRoIGlmIHRoZSBtb3N0IHJlY2VudLR2ZXJzaW9uIGEgZGVzdGluYXRpb24gY2FuIGFjY2VwdCBpcyB1bmtub3duKS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi45AS0gYG1heWJlX3hjbV92ZXJzaW9uYDogVGhlIGRlZmF1bHQgWENNIGVuY29kaW5nIHZlcnNpb24sIG9yIGBOb25lYCB0byBkaXNhYmxlLnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbkkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAYQOQFBc2sgYSBsb2NhdGlvbiB0byBub3RpZnkgdXMgcmVnYXJkaW5nIHRoZWlyIFhDTSB2ZXJzaW9uIGFuZCBhbnkgY2hhbmdlcyB0byBpdC4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi5ZAS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIHNob3VsZCBzdWJzY3JpYmUgZm9yIFhDTSB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMugGZvcmNlX3Vuc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb25JAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAHGEkBUmVxdWlyZSB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBzaG91bGQgbm8gbG9uZ2VyIG5vdGlmeSB1cyByZWdhcmRpbmcgYW55IFhDTUB2ZXJzaW9uIGNoYW5nZXMuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uPQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgZm9yIFhDTSB2ZXJzaW9uqCAgbm90aWZpY2F0aW9ucyB3aGljaCB3ZSBubyBsb25nZXIgZGVzaXJlLnxsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzFAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAh4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzFAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAlIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5AZm9yY2Vfc3VzcGVuc2lvbgQBJHN1c3BlbmRlZMgBEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRz2QIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZQ0DAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkEQMBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZQ0DAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdJUBAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuUGFkZF9hdXRob3JpemVkX2FsaWFzCAEcYWxpYXNlckkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcZXhwaXJlcxUDASxPcHRpb248dTY0PgAOLF0BQXV0aG9yaXplIGFub3RoZXIgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwuKQFUaGUgYGFsaWFzZXJgIGlzIG9ubHkgYXV0aG9yaXplZCB1bnRpbCB0aGUgcHJvdmlkZWQgYGV4cGlyeWAgYmxvY2sgbnVtYmVyLkkBVGhlIGNhbGwgY2FuIGFsc28gYmUgdXNlZCBmb3IgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYWxpYXMgaW4gb3JkZXIgdG8gdXBkYXRlIGl0c1hgZXhwaXJ5YCBibG9jayBudW1iZXIuAFEBVXN1YWxseSB1c2VmdWwgdG8gYWxsb3cgeW91ciBsb2NhbCBhY2NvdW50IHRvIGJlIGFsaWFzZWQgaW50byBmcm9tIGEgcmVtb3RlIGxvY2F0aW9u9GFsc28gdW5kZXIgeW91ciBjb250cm9sIChsaWtlIHlvdXIgYWNjb3VudCBvbiBhbm90aGVyIGNoYWluKS4AUQFXQVJOSU5HOiBtYWtlIHN1cmUgdGhlIGNhbGxlciBgb3JpZ2luYCAoeW91KSB0cnVzdHMgdGhlIGBhbGlhc2VyYCBsb2NhdGlvbiB0byBhY3QgaW5ZAXRoZWlyL3lvdXIgbmFtZS4gT25jZSBhdXRob3JpemVkIHVzaW5nIHRoaXMgY2FsbCwgdGhlIGBhbGlhc2VyYCBjYW4gZnJlZWx5IGltcGVyc29uYXRl1GBvcmlnaW5gIGluIFhDTSBwcm9ncmFtcyBleGVjdXRlZCBvbiB0aGUgbG9jYWwgY2hhaW4uXHJlbW92ZV9hdXRob3JpemVkX2FsaWFzBAEcYWxpYXNlckkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AA8IXQFSZW1vdmUgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYGFsaWFzZXJgIGZyb20gdGhlIGxpc3Qgb2YgbG9jYXRpb25zIHRoYXQgY2FuIGFsaWFzIGludG+QdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwudHJlbW92ZV9hbGxfYXV0aG9yaXplZF9hbGlhc2VzABAISQFSZW1vdmUgYWxsIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmBzIHRoYXQgY2FuIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gRG1ha2luZyB0aGlzIGNhbGwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkkBCAx4Y21EVmVyc2lvbmVkTG9jYXRpb24AAQwIVjMEAE0BAUR2Mzo6TXVsdGlMb2NhdGlvbgADAAhWNAQAYQEBMHY0OjpMb2NhdGlvbgAEAAhWNQQA4AEwdjU6OkxvY2F0aW9uAAUAAE0BECxzdGFnaW5nX3hjbQh2MzRtdWx0aWxvY2F0aW9uNE11bHRpTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9yUQEBJEp1bmN0aW9ucwAAUQEQDHhjbQh2MyRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAFUBASBKdW5jdGlvbgABAAhYMggAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAgAIWDMMAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAwAIWDQQAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAEAAhYNRQAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABQAIWDYYAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABgAIWDccAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAHAAhYOCAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ACAAAVQEQDHhjbQh2MyBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAGABDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmtZAQFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAgBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya1kBAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4tAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmtZAQFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXkcASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQADAEIdTgABAAwR2VuZXJhbEluZGV4BADAARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgMAQh1OAABEGRhdGEIASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWT4ARhCb2R5SWQAARBwYXJ0/AEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBABdAQEkTmV0d29ya0lkAAkAAFkBBBhPcHRpb24EBFQBXQEBCBBOb25lAAAAEFNvbWUEAF0BAAABAABdARAMeGNtCHYzIGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAgBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcigBDHU2NAABKGJsb2NrX2hhc2gIASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWS0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAABhARAsc3RhZ2luZ194Y20IdjQgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9yZQEBJEp1bmN0aW9ucwAAZQEQLHN0YWdpbmdfeGNtCHY0JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAaQEBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQAeQEBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQAfQEBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQAgQEBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQAhQEBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQAiQEBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQAjQEBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQAkQEBSEFyYzxbSnVuY3Rpb247IDhdPgAIAABpAQAAAwEAAABtAQBtARAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABgAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrcQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmtxAQFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleLQBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrcQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAwAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoDAEIdTgAARBkYXRhCAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlk+AEYQm9keUlkAAEQcGFydPwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAdQEBJE5ldHdvcmtJZAAJAABxAQQYT3B0aW9uBARUAXUBAQgQTm9uZQAAABBTb21lBAB1AQAAAQAAdQEQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAgBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcigBDHU2NAABKGJsb2NrX2hhc2gIASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWS0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAB5AQAAAwIAAABtAQB9AQAAAwMAAABtAQCBAQAAAwQAAABtAQCFAQAAAwUAAABtAQCJAQAAAwYAAABtAQCNAQAAAwcAAABtAQCRAQAAAwgAAABtAQCVAQgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAJkBAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAEQIBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BABdAgFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAAmQEMDHhjbQh2MwxYY20EEENhbGwAAAQAnQEBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAJ0BAAACoQEAoQEMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAClAQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAClAQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQApQEBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZcUBASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllcvEBAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5TQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHOlAQEsTXVsdGlBc3NldHMAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k9QEBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N01QEBGFdlaWdodAABEGNhbGz5AQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyYAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWABDHUzMgABMG1heF9jYXBhY2l0eWABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50YAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmABDHUzMgABGHNlbmRlcmABDHUzMgABJHJlY2lwaWVudGABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABRAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAD9AQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlAQIBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50pQEBLE11bHRpQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmVNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc60BAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACZAQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACZAQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABGHRpY2tldE0BATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEALQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodNUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQApQEBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAClAQEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADxAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADJAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAOkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/9AQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhgAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yYAEMdTMyAAE8bWluX2NyYXRlX21pbm9yYAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAD9AQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAFUBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya10BASROZXR3b3JrSWQAASxkZXN0aW5hdGlvblEBAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldK0BAShNdWx0aUFzc2V0AAEgdW5sb2NrZXJNAQE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARh0YXJnZXRNAQE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARRvd25lck0BATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldK0BAShNdWx0aUFzc2V0AAEYbG9ja2VyTQEBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBABNAQE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7xAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAKUBEAx4Y20IdjMobXVsdGlhc3NldCxNdWx0aUFzc2V0cwAABACpAQE8VmVjPE11bHRpQXNzZXQ+AACpAQAAAq0BAK0BEAx4Y20IdjMobXVsdGlhc3NldChNdWx0aUFzc2V0AAAIAQhpZLEBARxBc3NldElkAAEMZnVutQEBLEZ1bmdpYmlsaXR5AACxARAMeGNtCHYzKG11bHRpYXNzZXQcQXNzZXRJZAABCCBDb25jcmV0ZQQATQEBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEAAgBIFt1ODsgMzJdAAEAALUBEAx4Y20IdjMobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAwAEQdTEyOAAAACxOb25GdW5naWJsZQQAuQEBNEFzc2V0SW5zdGFuY2UAAQAAuQEQDHhjbQh2MyhtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADAARB1MTI4AAEAGEFycmF5NAQAcAEcW3U4OyA0XQACABhBcnJheTgEAL0BARxbdTg7IDhdAAMAHEFycmF5MTYEAMEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAAC9AQAAAwgAAAAMAMEBAAADEAAAAAwAxQEMDHhjbQh2MyBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQApQEBLE11bHRpQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EADgBOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBADZAQGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAOkBAThNYXliZUVycm9yQ29kZQAFAADJAQQYT3B0aW9uBARUAc0BAQgQTm9uZQAAABBTb21lBADNAQAAAQAAzQEAAAQIONEBANEBEAx4Y20IdjMYdHJhaXRzFEVycm9yAAGgIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAEACgBDHU2NAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiAExVbmhhbmRsZWRYY21WZXJzaW9uACMASFdlaWdodExpbWl0UmVhY2hlZAQA1QEBGFdlaWdodAAkABxCYXJyaWVyACUATFdlaWdodE5vdENvbXB1dGFibGUAJgBERXhjZWVkc1N0YWNrTGltaXQAJwAA1QEMKHNwX3dlaWdodHMkd2VpZ2h0X3YyGFdlaWdodAAACAEgcmVmX3RpbWW0AQx1NjQAAShwcm9vZl9zaXpltAEMdTY0AADZAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAd0BBFMAAAQA5QEBGFZlYzxUPgAA3QEMDHhjbQh2MyhQYWxsZXRJbmZvAAAYARRpbmRleGABDHUzMgABEG5hbWXhAQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZeEBAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yYAEMdTMyAAEUbWlub3JgAQx1MzIAARRwYXRjaGABDHUzMgAA4QEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADlAQAAAt0BAOkBDAx4Y20IdjM4TWF5YmVFcnJvckNvZGUAAQwcU3VjY2VzcwAAABRFcnJvcgQA7QEBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAEAOFRydW5jYXRlZEVycm9yBADtAQGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAgAA7QEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADxAQQYT3B0aW9uBARUAU0BAQgQTm9uZQAAABBTb21lBABNAQAAAQAA9QEMDHhjbQh2MyhPcmlnaW5LaW5kAAEQGE5hdGl2ZQAAAEBTb3ZlcmVpZ25BY2NvdW50AAEAJFN1cGVydXNlcgACAAxYY20AAwAA+QEMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkGAEcVmVjPHU4PgAA/QEMDHhjbQh2M0RRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb25NAQE0TXVsdGlMb2NhdGlvbgABIHF1ZXJ5X2lktAEcUXVlcnlJZAABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAABAhAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQApQEBLE11bHRpQXNzZXRzAAAAEFdpbGQEAAUCAThXaWxkTXVsdGlBc3NldAABAAAFAhAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWSxAQEcQXNzZXRJZAABDGZ1bgkCATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAYAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlksQEBHEFzc2V0SWQAAQxmdW4JAgE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRgAQx1MzIAAwAACQIQDHhjbQh2MyhtdWx0aWFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAANAgwMeGNtCHYzLFdlaWdodExpbWl0AAEIJFVubGltaXRlZAAAABxMaW1pdGVkBADVAQEYV2VpZ2h0AAEAABECDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQAFQIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AABUCAAACGQIAGQIMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAB0CARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAdAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAB0CARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlNQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVySQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cx0CARhBc3NldHMAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cx0CARhBc3NldHMAARBkZXN0YQEBIExvY2F0aW9uAAEMeGNtEQIBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdNUBARhXZWlnaHQAARBjYWxs+QEBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAZQEBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAE0CAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNRAgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlUQIBLEFzc2V0RmlsdGVyAAEQd2FudB0CARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABHHJlc2VydmVhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMlAgEUQXNzZXQAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEABECASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEABECASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzHQIBGEFzc2V0cwABGHRpY2tldGEBASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAB0CARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAB0CARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABJAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQATQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABtAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmt1AQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25lAQFASW50ZXJpb3JMb2NhdGlvbgABDHhjbRECARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0JQIBFEFzc2V0AAEgdW5sb2NrZXJhAQEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldCUCARRBc3NldAABGHRhcmdldGEBASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0JQIBFEFzc2V0AAEUb3duZXJhAQEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0JQIBFEFzc2V0AAEYbG9ja2VyYQEBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAYQEBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkkCAUBPcHRpb248TG9jYXRpb24+AC8AAB0CECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAIQIBKFZlYzxBc3NldD4AACECAAACJQIAJQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZCkCARxBc3NldElkAAEMZnVuLQIBLEZ1bmdpYmlsaXR5AAApAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABABhAQEgTG9jYXRpb24AAC0CECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAwAEQdTEyOAAAACxOb25GdW5naWJsZQQAMQIBNEFzc2V0SW5zdGFuY2UAAQAAMQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADAARB1MTI4AAEAGEFycmF5NAQAcAEcW3U4OyA0XQACABhBcnJheTgEAL0BARxbdTg7IDhdAAMAHEFycmF5MTYEAMEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAAA1Agwsc3RhZ2luZ194Y20IdjQgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAB0CARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BADJAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAOAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EADkCAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQA6QEBOE1heWJlRXJyb3JDb2RlAAUAADkCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQIEUwAABABFAgEYVmVjPFQ+AAA9Agwsc3RhZ2luZ194Y20IdjQoUGFsbGV0SW5mbwAAGAEUaW5kZXhgAQx1MzIAARBuYW1lQQIBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWVBAgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmABDHUzMgABFG1pbm9yYAEMdTMyAAEUcGF0Y2hgAQx1MzIAAEECDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAARQIAAAI9AgBJAgQYT3B0aW9uBARUAWEBAQgQTm9uZQAAABBTb21lBABhAQAAAQAATQIMLHN0YWdpbmdfeGNtCHY0RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbmEBASBMb2NhdGlvbgABIHF1ZXJ5X2lktAEcUXVlcnlJZAABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AABRAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAB0CARhBc3NldHMAAAAQV2lsZAQAVQIBJFdpbGRBc3NldAABAABVAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkKQIBHEFzc2V0SWQAAQxmdW5ZAgE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGABDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZCkCARxBc3NldElkAAEMZnVuWQIBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50YAEMdTMyAAMAAFkCECxzdGFnaW5nX3hjbQh2NBRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAXQIMLHN0YWdpbmdfeGNtCHY1DFhjbQQQQ2FsbAAABABhAgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAYQIAAAJlAgBlAgwsc3RhZ2luZ194Y20IdjUsSW5zdHJ1Y3Rpb24EEENhbGwAAdA0V2l0aGRyYXdBc3NldAQAaQIBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAGkCARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAaQIBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWS0ARxRdWVyeUlkAAEgcmVzcG9uc2WBAgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h01QEBGFdlaWdodAABHHF1ZXJpZXKhAgFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzaQIBGEFzc2V0cwABLGJlbmVmaWNpYXJ54AEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHNpAgEYQXNzZXRzAAEQZGVzdOABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFMZmFsbGJhY2tfbWF4X3dlaWdodKUCAThPcHRpb248V2VpZ2h0PgABEGNhbGz5AQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyYAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWABDHUzMgABMG1heF9jYXBhY2l0eWABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50YAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmABDHUzMgABGHNlbmRlcmABDHUzMgABJHJlY2lwaWVudGABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBADkAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBACpAgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnngASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEQZGVzdOABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWtAgEsQXNzZXRGaWx0ZXIAARB3YW50aQIBGEFzc2V0cwABHG1heGltYWzIARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZeABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXNxAgEUQXNzZXQAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAF0CASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAF0CASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzaQIBGEFzc2V0cwABGHRpY2tldOABIExvY2F0aW9uABgAEFRyYXAEALQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodNUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAaQIBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAaQIBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAKECAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBACFAgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAOkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+pAgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhgAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yYAEMdTMyAAE8bWluX2NyYXRlX21pbm9yYAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBACpAgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAOwBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr9AEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27kAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXRxAgEUQXNzZXQAASB1bmxvY2tlcuABIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXRxAgEUQXNzZXQAARh0YXJnZXTgASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0cQIBFEFzc2V0AAEUb3duZXLgASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXRxAgEUQXNzZXQAARhsb2NrZXLgASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd8gBEGJvb2wAKwAgU2V0VG9waWMEAAgBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAOABIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbqECAUBPcHRpb248TG9jYXRpb24+AC8AHFBheUZlZXMEARRhc3NldHECARRBc3NldAAwAEBJbml0aWF0ZVRyYW5zZmVyFAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzuQIBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbsgBEGJvb2wAARhhc3NldHPBAgHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNtXQIBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbskCAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y21dAgEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHPNAgGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAGkCECxzdGFnaW5nX3hjbQh2NRRhc3NldBhBc3NldHMAAAQAbQIBKFZlYzxBc3NldD4AAG0CAAACcQIAcQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0FEFzc2V0AAAIAQhpZHUCARxBc3NldElkAAEMZnVueQIBLEZ1bmdpYmlsaXR5AAB1AhAsc3RhZ2luZ194Y20IdjUUYXNzZXQcQXNzZXRJZAAABADgASBMb2NhdGlvbgAAeQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBADAARB1MTI4AAAALE5vbkZ1bmdpYmxlBAB9AgE0QXNzZXRJbnN0YW5jZQABAAB9AhAsc3RhZ2luZ194Y20IdjUUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAMABEHUxMjgAAQAYQXJyYXk0BABwARxbdTg7IDRdAAIAGEFycmF5OAQAvQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAwQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAgBIFt1ODsgMzJdAAUAAIECDCxzdGFnaW5nX3hjbQh2NSBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAaQIBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAIUCAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAA4AThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAkQIBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BADpAQE4TWF5YmVFcnJvckNvZGUABQAAhQIEGE9wdGlvbgQEVAGJAgEIEE5vbmUAAAAQU29tZQQAiQIAAAEAAIkCAAAECDiNAgCNAhAMeGNtCHY1GHRyYWl0cxRFcnJvcgABpCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAoAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAQA1QEBGFdlaWdodAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAkQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVAgRTAAAEAJ0CARhWZWM8VD4AAJUCDCxzdGFnaW5nX3hjbQh2NShQYWxsZXRJbmZvAAAYARRpbmRleGABDHUzMgABEG5hbWWZAgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZZkCAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yYAEMdTMyAAEUbWlub3JgAQx1MzIAARRwYXRjaGABDHUzMgAAmQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AACdAgAAApUCAKECBBhPcHRpb24EBFQB4AEIEE5vbmUAAAAQU29tZQQA4AAAAQAApQIEGE9wdGlvbgQEVAHVAQEIEE5vbmUAAAAQU29tZQQA1QEAAAEAAKkCDCxzdGFnaW5nX3hjbQh2NURRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABIHF1ZXJ5X2lktAEcUXVlcnlJZAABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AACtAhAsc3RhZ2luZ194Y20IdjUUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAGkCARhBc3NldHMAAAAQV2lsZAQAsQIBJFdpbGRBc3NldAABAACxAhAsc3RhZ2luZ194Y20IdjUUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkdQIBHEFzc2V0SWQAAQxmdW61AgE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGABDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZHUCARxBc3NldElkAAEMZnVutQIBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50YAEMdTMyAAMAALUCECxzdGFnaW5nX3hjbQh2NRRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAuQIEGE9wdGlvbgQEVAG9AgEIEE5vbmUAAAAQU29tZQQAvQIAAAEAAL0CECxzdGFnaW5nX3hjbQh2NRRhc3NldExBc3NldFRyYW5zZmVyRmlsdGVyAAEMIFRlbGVwb3J0BACtAgEsQXNzZXRGaWx0ZXIAAAA4UmVzZXJ2ZURlcG9zaXQEAK0CASxBc3NldEZpbHRlcgABADxSZXNlcnZlV2l0aGRyYXcEAK0CASxBc3NldEZpbHRlcgACAADBAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAb0CBFMAAAQAxQIBGFZlYzxUPgAAxQIAAAK9AgDJAgQYT3B0aW9uBARUAeQBCBBOb25lAAAAEFNvbWUEAOQAAAEAAM0CDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB0QIEUwAABADVAgEYVmVjPFQ+AADRAgwsc3RhZ2luZ194Y20IdjUQSGludAABBDBBc3NldENsYWltZXIEASBsb2NhdGlvbuABIExvY2F0aW9uAAAAANUCAAAC0QIA2QIIDHhjbTxWZXJzaW9uZWRBc3NldHMAAQwIVjMEAKUBATx2Mzo6TXVsdGlBc3NldHMAAwAIVjQEAB0CASh2NDo6QXNzZXRzAAQACFY1BABpAgEodjU6OkFzc2V0cwAFAADdAggMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAOECAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQA8QIBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BAD9AgFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAA4QIMDHhjbQh2MwxYY20EEENhbGwAAAQA5QIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAOUCAAAC6QIA6QIMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAClAQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAClAQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQApQEBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZcUBASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllcvEBAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5TQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHOlAQEsTXVsdGlBc3NldHMAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k9QEBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N01QEBGFdlaWdodAABEGNhbGztAgFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyYAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWABDHUzMgABMG1heF9jYXBhY2l0eWABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50YAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmABDHUzMgABGHNlbmRlcmABDHUzMgABJHJlY2lwaWVudGABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABRAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAD9AQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlAQIBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50pQEBLE11bHRpQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmVNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc60BAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADhAgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADhAgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABGHRpY2tldE0BATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEALQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodNUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQApQEBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAClAQEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADxAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADJAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAOkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/9AQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhgAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yYAEMdTMyAAE8bWluX2NyYXRlX21pbm9yYAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAD9AQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAFUBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya10BASROZXR3b3JrSWQAASxkZXN0aW5hdGlvblEBAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldK0BAShNdWx0aUFzc2V0AAEgdW5sb2NrZXJNAQE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARh0YXJnZXRNAQE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARRvd25lck0BATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldK0BAShNdWx0aUFzc2V0AAEYbG9ja2VyTQEBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBABNAQE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7xAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAO0CDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBgBHFZlYzx1OD4AAPECDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQA9QIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAPUCAAAC+QIA+QIMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAB0CARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAdAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAB0CARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlNQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVySQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cx0CARhBc3NldHMAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cx0CARhBc3NldHMAARBkZXN0YQEBIExvY2F0aW9uAAEMeGNtEQIBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdNUBARhXZWlnaHQAARBjYWxs7QIBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAZQEBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAE0CAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNRAgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlUQIBLEFzc2V0RmlsdGVyAAEQd2FudB0CARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABHHJlc2VydmVhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMlAgEUQXNzZXQAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAPECASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAPECASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzHQIBGEFzc2V0cwABGHRpY2tldGEBASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAB0CARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAB0CARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABJAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQATQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABtAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmt1AQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25lAQFASW50ZXJpb3JMb2NhdGlvbgABDHhjbRECARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0JQIBFEFzc2V0AAEgdW5sb2NrZXJhAQEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldCUCARRBc3NldAABGHRhcmdldGEBASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0JQIBFEFzc2V0AAEUb3duZXJhAQEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0JQIBFEFzc2V0AAEYbG9ja2VyYQEBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAYQEBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkkCAUBPcHRpb248TG9jYXRpb24+AC8AAP0CDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQAAQMBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAAEDAAACBQMABQMMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAGkCARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBABpAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAGkCARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlgQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVyoQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c2kCARhBc3NldHMAASxiZW5lZmljaWFyeeABIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzaQIBGEFzc2V0cwABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmT1AQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHSlAgE4T3B0aW9uPFdlaWdodD4AARBjYWxs7QIBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQA5AFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c60CASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ54AEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlrQIBLEFzc2V0RmlsdGVyAAEQd2FudGkCARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABHHJlc2VydmXgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAARBkZXN04AEgTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb6kCAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c60CASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzcQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAD9AgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAD9AgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c2kCARhBc3NldHMAARh0aWNrZXTgASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAGkCARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAGkCARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAChAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAhQIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADsASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya/QBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9u5AFASW50ZXJpb3JMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0cQIBFEFzc2V0AAEgdW5sb2NrZXLgASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0cQIBFEFzc2V0AAEYdGFyZ2V04AEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldHECARRBc3NldAABFG93bmVy4AEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0cQIBFEFzc2V0AAEYbG9ja2Vy4AEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADgASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW6hAgFAT3B0aW9uPExvY2F0aW9uPgAvABxQYXlGZWVzBAEUYXNzZXRxAgEUQXNzZXQAMABASW5pdGlhdGVUcmFuc2ZlchQBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AASxyZW1vdGVfZmVlc7kCAWxPcHRpb248QXNzZXRUcmFuc2ZlckZpbHRlcj4AATxwcmVzZXJ2ZV9vcmlnaW7IARBib29sAAEYYXNzZXRzwQIB4EJvdW5kZWRWZWM8QXNzZXRUcmFuc2ZlckZpbHRlciwgTWF4QXNzZXRUcmFuc2ZlckZpbHRlcnM+AAEocmVtb3RlX3hjbV0CARxYY208KCk+ADEAREV4ZWN1dGVXaXRoT3JpZ2luCAFEZGVzY2VuZGFudF9vcmlnaW7JAgFgT3B0aW9uPEludGVyaW9yTG9jYXRpb24+AAEMeGNt/QIBJFhjbTxDYWxsPgAyACBTZXRIaW50cwQBFGhpbnRzzQIBhEJvdW5kZWRWZWM8SGludCwgSGludE51bVZhcmlhbnRzPgAzAAAJAwQYT3B0aW9uBARUATgBCBBOb25lAAAAEFNvbWUEADgAAAEAAA0DEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQASQEBRFZlcnNpb25lZExvY2F0aW9uAAMAABEDCAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABDAhWMwQAsQEBLHYzOjpBc3NldElkAAMACFY0BAApAgEsdjQ6OkFzc2V0SWQABAAIVjUEAHUCASx2NTo6QXNzZXRJZAAFAAAVAwQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAABkDDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuHQMMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBBDYWxsBARUAAEIJHJlYXBfcGFnZQgBOG1lc3NhZ2Vfb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAAAQ9AVJlbW92ZSBhIHBhZ2Ugd2hpY2ggaGFzIG5vIG1vcmUgbWVzc2FnZXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBvciBpcyBzdGFsZS5IZXhlY3V0ZV9vdmVyd2VpZ2h0EAE4bWVzc2FnZV9vcmlnaW4hAwFITWVzc2FnZU9yaWdpbk9mPFQ+AAEQcGFnZTgBJFBhZ2VJbmRleAABFGluZGV4OAEcVDo6U2l6ZQABMHdlaWdodF9saW1pdNUBARhXZWlnaHQAATR4RXhlY3V0ZSBhbiBvdmVyd2VpZ2h0IG1lc3NhZ2UuAE0BVGVtcG9yYXJ5IHByb2Nlc3NpbmcgZXJyb3JzIHdpbGwgYmUgcHJvcGFnYXRlZCB3aGVyZWFzIHBlcm1hbmVudCBlcnJvcnMgYXJlIHRyZWF0ZWRUYXMgc3VjY2VzcyBjb25kaXRpb24uAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLjUBLSBgbWVzc2FnZV9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgYXJyaXZlZC49AS0gYHBhZ2VgOiBUaGUgcGFnZSBpbiB0aGUgcXVldWUgaW4gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgaXMgc2l0dGluZy4JAS0gYGluZGV4YDogVGhlIGluZGV4IGludG8gdGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkLlkBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCBhbGxvd2VkIHRvIGJlIGNvbnN1bWVkIGluIHRoZSBleGVjdXRpb25EICBvZiB0aGUgbWVzc2FnZS4A9EJlbmNobWFyayBjb21wbGV4aXR5IGNvbnNpZGVyYXRpb25zOiBPKGluZGV4ICsgd2VpZ2h0X2xpbWl0KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuIQMIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQwQSGVyZQAAABhQYXJlbnQAAQAcU2libGluZwQAnAEYUGFyYUlkAAIAACUDDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQQQ2FsbAQEVAABIBRiYXRjaAQBFGNhbGxzKQMBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAEh8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLgBVAVRoaXMgd2lsbCByZXR1cm4gYE9rYCBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gVG8gZGV0ZXJtaW5lIHRoZSBzdWNjZXNzIG9mIHRoZSBiYXRjaCwgYW4xAWV2ZW50IGlzIGRlcG9zaXRlZC4gSWYgYSBjYWxsIGZhaWxlZCBhbmQgdGhlIGJhdGNoIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiB0aGVVAWBCYXRjaEludGVycnVwdGVkYCBldmVudCBpcyBkZXBvc2l0ZWQsIGFsb25nIHdpdGggdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIGNhbGxzIG1hZGVNAWFuZCB0aGUgZXJyb3Igb2YgdGhlIGZhaWxlZCBjYWxsLiBJZiBhbGwgd2VyZSBzdWNjZXNzZnVsLCB0aGVuIHRoZSBgQmF0Y2hDb21wbGV0ZWRgTGV2ZW50IGlzIGRlcG9zaXRlZC40YXNfZGVyaXZhdGl2ZQgBFGluZGV4LQMBDHUxNgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAE03FNlbmQgYSBjYWxsIHRocm91Z2ggYW4gaW5kZXhlZCBwc2V1ZG9ueW0gb2YgdGhlIHNlbmRlci4AVQFGaWx0ZXIgZnJvbSBvcmlnaW4gYXJlIHBhc3NlZCBhbG9uZy4gVGhlIGNhbGwgd2lsbCBiZSBkaXNwYXRjaGVkIHdpdGggYW4gb3JpZ2luIHdoaWNovHVzZSB0aGUgc2FtZSBmaWx0ZXIgYXMgdGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwuAEUBTk9URTogSWYgeW91IG5lZWQgdG8gZW5zdXJlIHRoYXQgYW55IGFjY291bnQtYmFzZWQgZmlsdGVyaW5nIGlzIG5vdCBob25vcmVkIChpLmUuYQFiZWNhdXNlIHlvdSBleHBlY3QgYHByb3h5YCB0byBoYXZlIGJlZW4gdXNlZCBwcmlvciBpbiB0aGUgY2FsbCBzdGFjayBhbmQgeW91IGRvIG5vdCB3YW50UQF0aGUgY2FsbCByZXN0cmljdGlvbnMgdG8gYXBwbHkgdG8gYW55IHN1Yi1hY2NvdW50cyksIHRoZW4gdXNlIGBhc19tdWx0aV90aHJlc2hvbGRfMWB8aW4gdGhlIE11bHRpc2lnIHBhbGxldCBpbnN0ZWFkLgD0Tk9URTogUHJpb3IgdG8gdmVyc2lvbiAqMTIsIHRoaXMgd2FzIGNhbGxlZCBgYXNfbGltaXRlZF9zdWJgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uJGJhdGNoX2FsbAQBFGNhbGxzKQMBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAjTsU2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzIGFuZCBhdG9taWNhbGx5IGV4ZWN1dGUgdGhlbS4hAVRoZSB3aG9sZSB0cmFuc2FjdGlvbiB3aWxsIHJvbGxiYWNrIGFuZCBmYWlsIGlmIGFueSBvZiB0aGUgY2FsbHMgZmFpbGVkLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLixkaXNwYXRjaF9hcwgBJGFzX29yaWdpbjEDAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADGMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuLGZvcmNlX2JhdGNoBAEUY2FsbHMpAwF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h01QEBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4caWZfZWxzZQgBEG1haW4gAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEgZmFsbGJhY2sgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAZcFQFEaXNwYXRjaCBhIGZhbGxiYWNrIGNhbGwgaW4gdGhlIGV2ZW50IHRoZSBtYWluIGNhbGwgZmFpbHMgdG8gZXhlY3V0ZS6wTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4A5FRoaXMgZnVuY3Rpb24gZmlyc3QgYXR0ZW1wdHMgdG8gZGlzcGF0Y2ggdGhlIGBtYWluYCBjYWxsLtRJZiB0aGUgYG1haW5gIGNhbGwgZmFpbHMsIHRoZSBgZmFsbGJhY2tgIGlzIGF0dGVtdGVkLhUBaWYgdGhlIGZhbGxiYWNrIGlzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLCB0aGUgd2VpZ2h0cyBvZiBib3RoIGNhbGxzJQFhcmUgYWNjdW11bGF0ZWQgYW5kIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG1haW4gY2FsbCBlcnJvciBpcyBkZXBvc2l0ZWQuANxJbiB0aGUgZXZlbnQgb2YgYSBmYWxsYmFjayBmYWlsdXJlIHRoZSB3aG9sZSBjYWxsIGZhaWxzaHdpdGggdGhlIHdlaWdodHMgcmV0dXJuZWQuAEEBLSBgbWFpbmA6IFRoZSBtYWluIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSBhY3Rpb24gdG8gZXhlY3V0ZS49AS0gYGZhbGxiYWNrYDogVGhlIGZhbGxiYWNrIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZCBpbiBjYXNlIHRoZSBgbWFpbmAgY2FsbCBmYWlscy4ARCMjIERpc3BhdGNoIExvZ2ljQQEtIElmIHRoZSBvcmlnaW4gaXMgYHJvb3RgLCBib3RoIHRoZSBtYWluIGFuZCBmYWxsYmFjayBjYWxscyBhcmUgZXhlY3V0ZWQgd2l0aG91dHggIGFwcGx5aW5nIGFueSBvcmlnaW4gZmlsdGVycy5JAS0gSWYgdGhlIG9yaWdpbiBpcyBub3QgYHJvb3RgLCB0aGUgb3JpZ2luIGZpbHRlciBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIGBtYWluYCBhbmRMICBgZmFsbGJhY2tgIGNhbGxzLgAsIyMgVXNlIENhc2VZAS0gU29tZSB1c2UgY2FzZXMgbWlnaHQgaW52b2x2ZSBzdWJtaXR0aW5nIGEgYGJhdGNoYCB0eXBlIGNhbGwgaW4gZWl0aGVyIG1haW4sIGZhbGxiYWNrKCAgb3IgYm90aC5QZGlzcGF0Y2hfYXNfZmFsbGlibGUIASRhc19vcmlnaW4xAwFUQm94PFQ6OlBhbGxldHNPcmlnaW4+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABxTIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AUQFBbG1vc3QgdGhlIHNhbWUgYXMgW2BQYWxsZXQ6OmRpc3BhdGNoX2FzYF0gYnV0IGZvcndhcmRzIGFueSBlcnJvciBvZiB0aGUgaW5uZXIgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuKQMAAAIgAC0DAAAFBAAxAwhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZTBPcmlnaW5DYWxsZXIAATAYc3lzdGVtBAA1AwF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAAAsUG9sa2Fkb3RYY20EADkDAUhwYWxsZXRfeGNtOjpPcmlnaW4AHwAoQ3VtdWx1c1hjbQQAPQMBaGN1bXVsdXNfcGFsbGV0X3hjbTo6T3JpZ2luACAAGFBlb3BsZQQAQQMBbGluZGl2X3BhbGxldF9wZW9wbGU6Ok9yaWdpbgAzAChQcm9vZk9mSW5rBABNAwGoaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6T3JpZ2luPFJ1bnRpbWU+ADUAEEdhbWUEAFEDAYhpbmRpdl9wYWxsZXRfZ2FtZTo6T3JpZ2luPFJ1bnRpbWU+ADcAFFNjb3JlBABVAwGMaW5kaXZfcGFsbGV0X3Njb3JlOjpPcmlnaW48UnVudGltZT4AOAAoUGVvcGxlTGl0ZQQAWQMBpGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZTo6T3JpZ2luPFJ1bnRpbWU+AD4AJFJlc291cmNlcwQAXQMBeGluZGl2X3BhbGxldF9yZXNvdXJjZXM6Ok9yaWdpbgA/ABxNZW1iZXJzBABlAwGUaW5kaXZfcGFsbGV0X21lbWJlcnM6Ok9yaWdpbjxSdW50aW1lPgBDABxDb2luYWdlBABtAwGUaW5kaXZfcGFsbGV0X2NvaW5hZ2U6Ok9yaWdpbjxSdW50aW1lPgBEABhIb25vdXIEAIkDAWxpbmRpdl9wYWxsZXRfaG9ub3VyOjpPcmlnaW4ARwAANQMMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBBAEQEFJvb3QAAAAYU2lnbmVkBAAEASRBY2NvdW50SWQAAQAQTm9uZQACAChBdXRob3JpemVkAAMAADkDDChwYWxsZXRfeGNtGHBhbGxldBhPcmlnaW4AAQgMWGNtBADgASBMb2NhdGlvbgAAACBSZXNwb25zZQQA4AEgTG9jYXRpb24AAQAAPQMMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIFFJlbGF5AAAAQFNpYmxpbmdQYXJhY2hhaW4EAJwBGFBhcmFJZAABAABBAwxMaW5kaXZfcGFsbGV0X3Blb3BsZRhwYWxsZXQYT3JpZ2luAAEIQFBlcnNvbmFsSWRlbnRpdHkEACgBKFBlcnNvbmFsSWQAAAA0UGVyc29uYWxBbGlhcwQARQMBWFJldmlzZWRDb250ZXh0dWFsQWxpYXMAAQAARQMQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHlYUmV2aXNlZENvbnRleHR1YWxBbGlhcwAADAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEQcmluZzgBJFJpbmdJbmRleAABCGNhSQMBPENvbnRleHR1YWxBbGlhcwAASQMQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHk8Q29udGV4dHVhbEFsaWFzAAAIARRhbGlhcwgBFEFsaWFzAAEcY29udGV4dAgBHENvbnRleHQAAE0DDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhPcmlnaW4EBFQAAQxYQXV0aG9yaXplZEFwcGx5V2l0aFNpZwQABAEwVDo6QWNjb3VudElkAAAARFJlZmVycmVkQ2FuZGlkYXRlBAAEATBUOjpBY2NvdW50SWQAAQBASW52aXRlZENhbmRpZGF0ZQQABAEwVDo6QWNjb3VudElkAAIAAFEDDERpbmRpdl9wYWxsZXRfZ2FtZRhwYWxsZXQYT3JpZ2luBARUAAEEHEludml0ZWQEAAQBMFQ6OkFjY291bnRJZAAAAABVAwxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBhPcmlnaW4EBFQAAQRIQWNjb3VudFBhcnRpY2lwYW50BAAEATBUOjpBY2NvdW50SWQAAAAAWQMMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRhwYWxsZXQYT3JpZ2luBARUAAEIKExpdGVQZXJzb24EAAQBMFQ6OkFjY291bnRJZAAAACRMaXRlQWxpYXMEAEUDAVhSZXZpc2VkQ29udGV4dHVhbEFsaWFzAAEAAF0DDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzGHBhbGxldBhPcmlnaW4AAQxIRnJpZW5kUmVxdWVzdEFsaWFzBAAIARRBbGlhcwAAADhTdG10U3RvcmVBbGlhcwQACAEUQWxpYXMAAQBQTG9uZ1Rlcm1TdG9yYWdlQ2xhaW0IAAgBFEFsaWFzAABhAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24AAgAAYQMMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXNQTWVtYmVyc2hpcENvbGxlY3Rpb24AAQgYUGVvcGxlAAAAKExpdGVQZW9wbGUAAQAAZQMMUGluZGl2X3BhbGxldF9tZW1iZXJzGHBhbGxldBhPcmlnaW4EBFQBaQMBCCxNZW1iZXJBbGlhcwgACAEoSWRlbnRpZmllcgAARQMBWFJldmlzZWRDb250ZXh0dWFsQWxpYXMAAAAsU2VsZkluY2x1ZGUEAAgBLE1lbWJlck9mPFQ+AAEAAGkDCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lHFJ1bnRpbWUAAAAAbQMMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldBhPcmlnaW4EBFQBaQMBDBBDb2luCAEcY29pbl9pZAQBMFQ6OkFjY291bnRJZAABEGNvaW5xAwEQQ29pbgAAACxVbmxvYWRUb2tlbgwBMGFsaWFzX3Byb29mc3kDAaxCb3VuZGVkVmVjPFByb29mT2Y8VD4sIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEocHJvdmVuX21zZwgBIFt1ODsgMzJdAAEMZmVlhQMBJFVubG9hZEZlZQABAFhJbmZhbGxpYmxlVW5wYWlkU2lnbmVkBAEMd2hvBAEwVDo6QWNjb3VudElkAAIAAHEDDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQQQ29pbgAACAEUdmFsdWV1AwEkQ29pblZhbHVlAAEMYWdlLQMBDHUxNgAAdQMAAAUJAHkDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBfQMEUwAABACBAwEYVmVjPFQ+AAB9AwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAIEDAAACfQMAhQMMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldCRVbmxvYWRGZWUAAQgcUHJlcGFpZAAAAChGcm9tT3V0cHV0CAFIZmVlX3JlY3ljbGVyX3ZhbHVldQMBJENvaW5WYWx1ZQABSGZlZV9yZWN5Y2xlcl9pbmRleDgBJFJpbmdJbmRleAABAACJAwxMaW5kaXZfcGFsbGV0X2hvbm91chhwYWxsZXQYT3JpZ2luAAEEFFZvdGVyBAEcYWxpYXNlc40DASxWb3RlQWxpYXNlcwAAAACNAwxMaW5kaXZfcGFsbGV0X2hvbm91chR0eXBlcyxWb3RlQWxpYXNlcwAACAE0c3ViamVjdF9hbGlhcwgBMFN1YmplY3RBbGlhcwABLHBvaW50X2FsaWFzCAEoUG9pbnRBbGlhcwAAkQMMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQQQ2FsbAQEVAABFFBhc19tdWx0aV90aHJlc2hvbGRfMQgBRG90aGVyX3NpZ25hdG9yaWVzzAFEVmVjPFQ6OkFjY291bnRJZD4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAAMFEBSW1tZWRpYXRlbHkgZGlzcGF0Y2ggYSBtdWx0aS1zaWduYXR1cmUgY2FsbCB1c2luZyBhIHNpbmdsZSBhcHByb3ZhbCBmcm9tIHRoZSBjYWxsZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4APQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gYXJlIHBhcnQgb2YgdGhlAQFtdWx0aS1zaWduYXR1cmUsIGJ1dCBkbyBub3QgcGFydGljaXBhdGUgaW4gdGhlIGFwcHJvdmFsIHByb2Nlc3MuiC0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBleGVjdXRlZC4AuFJlc3VsdCBpcyBlcXVpdmFsZW50IHRvIHRoZSBkaXNwYXRjaGVkIHJlc3VsdC4ANCMjIENvbXBsZXhpdHkZAU8oWiArIEMpIHdoZXJlIFogaXMgdGhlIGxlbmd0aCBvZiB0aGUgY2FsbCBhbmQgQyBpdHMgZXhlY3V0aW9uIHdlaWdodC4gYXNfbXVsdGkUASR0aHJlc2hvbGQtAwEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPMAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludJUDAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAGoVQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuAD0BKipJZiB0aGUgYXBwcm92YWwgdGhyZXNob2xkIGlzIG1ldCAoaW5jbHVkaW5nIHRoZSBzZW5kZXIncyBhcHByb3ZhbCksIHRoaXMgd2lsbEUBaW1tZWRpYXRlbHkgZXhlY3V0ZSB0aGUgY2FsbC4qKiBUaGlzIGlzIHRoZSBvbmx5IHdheSB0byBleGVjdXRlIGEgbXVsdGlzaWcgY2FsbCAtwGBhcHByb3ZlX2FzX211bHRpYCB3aWxsIG5ldmVyIHRyaWdnZXIgZXhlY3V0aW9uLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgBNAU5PVEU6IEZvciBpbnRlcm1lZGlhdGUgYXBwcm92YWxzIChub3QgdGhlIGZpbmFsIGFwcHJvdmFsKSwgeW91IHNob3VsZCBnZW5lcmFsbHkgdXNlRQFgYXBwcm92ZV9hc19tdWx0aWAgaW5zdGVhZCwgc2luY2UgaXQgb25seSByZXF1aXJlcyBhIGhhc2ggb2YgdGhlIGNhbGwgYW5kIGlzIG1vcmUoZWZmaWNpZW50LgBZAVJlc3VsdCBpcyBlcXVpdmFsZW50IHRvIHRoZSBkaXNwYXRjaGVkIHJlc3VsdCBpZiBgdGhyZXNob2xkYCBpcyBleGFjdGx5IGAxYC4gT3RoZXJ3aXNlVQFvbiBzdWNjZXNzLCByZXN1bHQgaXMgYE9rYCBhbmQgdGhlIHJlc3VsdCBmcm9tIHRoZSBpbnRlcmlvciBjYWxsLCBpZiBpdCB3YXMgZXhlY3V0ZWQs3G1heSBiZSBmb3VuZCBpbiB0aGUgZGVwb3NpdGVkIGBNdWx0aXNpZ0V4ZWN1dGVkYCBldmVudC4ANCMjIENvbXBsZXhpdHlQLSBgTyhTICsgWiArIENhbGwpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC4hAS0gT25lIGNhbGwgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFopYCB3aGVyZSBgWmAgaXMgdHgtbGVuLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLtQtIFVwIHRvIG9uZSBiaW5hcnkgc2VhcmNoIGFuZCBpbnNlcnQgKGBPKGxvZ1MgKyBTKWApLvgtIEkvTzogMSByZWFkIGBPKFMpYCwgdXAgdG8gMSBtdXRhdGUgYE8oUylgLiBVcCB0byBvbmUgcmVtb3ZlLjAtIE9uZSBldmVudC5sLSBUaGUgd2VpZ2h0IG9mIHRoZSBgY2FsbGAuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLkBhcHByb3ZlX2FzX211bHRpFAEkdGhyZXNob2xkLQMBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzzAFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnSVAwGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEkY2FsbF9oYXNoCAEgW3U4OyAzMl0AAShtYXhfd2VpZ2h01QEBGFdlaWdodAACmFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgA5ASoqVGhpcyBmdW5jdGlvbiB3aWxsIE5FVkVSIGV4ZWN1dGUgdGhlIGNhbGwsIGV2ZW4gaWYgdGhlIGFwcHJvdmFsIHRocmVzaG9sZCBpc1EBcmVhY2hlZC4qKiBJdCBvbmx5IHJlZ2lzdGVycyBhcHByb3ZhbC4gVG8gYWN0dWFsbHkgZXhlY3V0ZSB0aGUgY2FsbCwgYGFzX211bHRpYCBtdXN08GJlIGNhbGxlZCB3aXRoIHRoZSBmdWxsIGNhbGwgZGF0YSBieSBhbnkgb2YgdGhlIHNpZ25hdG9yaWVzLgBNAVRoaXMgZnVuY3Rpb24gaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBgYXNfbXVsdGlgIGZvciBpbnRlcm1lZGlhdGUgYXBwcm92YWxzIHNpbmNlIGl00G9ubHkgcmVxdWlyZXMgdGhlIGNhbGwgaGFzaCwgbm90IHRoZSBmdWxsIGNhbGwgZGF0YS4ALQFQYXltZW50OiBgRGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHBsdXM9AWB0aHJlc2hvbGRgIHRpbWVzIGBEZXBvc2l0RmFjdG9yYC4gSXQgaXMgcmV0dXJuZWQgb25jZSB0aGlzIGRpc3BhdGNoIGhhcHBlbnMgb3I0aXMgY2FuY2VsbGVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuWQEtIGBtYXliZV90aW1lcG9pbnRgOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiB0aGlzIG11c3QgYmUgYE5vbmVgLiBJZiBpdCBpc1EBbm90IHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiBpdCBtdXN0IGJlIGBTb21lYCwgd2l0aCB0aGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5k1HRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWwgdHJhbnNhY3Rpb24uzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA9AU5PVEU6IFRvIGV4ZWN1dGUgdGhlIGNhbGwgYWZ0ZXIgYXBwcm92YWxzIGFyZSBnYXRoZXJlZCwgYW55IHNpZ25hdG9yeSBtdXN0IGNhbGwpAWBhc19tdWx0aWAgd2l0aCB0aGUgZnVsbCBjYWxsIGRhdGEuIFRoaXMgZnVuY3Rpb24gY2Fubm90IGV4ZWN1dGUgdGhlIGNhbGwuADQjIyBDb21wbGV4aXR5JC0gYE8oUylgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLtQtIFVwIHRvIG9uZSBiaW5hcnkgc2VhcmNoIGFuZCBpbnNlcnQgKGBPKGxvZ1MgKyBTKWApLvgtIEkvTzogMSByZWFkIGBPKFMpYCwgdXAgdG8gMSBtdXRhdGUgYE8oUylgLiBVcCB0byBvbmUgcmVtb3ZlLjAtIE9uZSBldmVudC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuPGNhbmNlbF9hc19tdWx0aRABJHRocmVzaG9sZC0DAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAEkdGltZXBvaW50mQMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASRjYWxsX2hhc2gIASBbdTg7IDMyXQADVFUBQ2FuY2VsIGEgcHJlLWV4aXN0aW5nLCBvbi1nb2luZyBtdWx0aXNpZyB0cmFuc2FjdGlvbi4gQW55IGRlcG9zaXQgcmVzZXJ2ZWQgcHJldmlvdXNsecRmb3IgdGhpcyBvcGVyYXRpb24gd2lsbCBiZSB1bnJlc2VydmVkIG9uIHN1Y2Nlc3MuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5dAS0gYHRpbWVwb2ludGA6IFRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmQgdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbHh0cmFuc2FjdGlvbiBmb3IgdGhpcyBkaXNwYXRjaC7MLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuADQjIyBDb21wbGV4aXR5JC0gYE8oUylgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLjAtIE9uZSBldmVudC6ELSBJL086IDEgcmVhZCBgTyhTKWAsIG9uZSByZW1vdmUucC0gU3RvcmFnZTogcmVtb3ZlcyBvbmUgaXRlbS4wcG9rZV9kZXBvc2l0DAEkdGhyZXNob2xkLQMBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzzAFEVmVjPFQ6OkFjY291bnRJZD4AASRjYWxsX2hhc2gIASBbdTg7IDMyXQAENPRQb2tlIHRoZSBkZXBvc2l0IHJlc2VydmVkIGZvciBhbiBleGlzdGluZyBtdWx0aXNpZyBvcGVyYXRpb24uAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgdGhlIG9yaWdpbmFsIGRlcG9zaXRvciBvZlx0aGUgbXVsdGlzaWcgb3BlcmF0aW9uLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AGQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBuZWVkZWQgZm9yIHRoaXMgbXVsdGlzaWcuPQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gYXJlIHBhcnQgb2YgdGhlLCAgbXVsdGlzaWcuBQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0aGlzIGRlcG9zaXQgaXMgcmVzZXJ2ZWQgZm9yLgCMRW1pdHMgYERlcG9zaXRQb2tlZGAgaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMulQMEGE9wdGlvbgQEVAGZAwEIEE5vbmUAAAAQU29tZQQAmQMAAAEAAJkDCDxwYWxsZXRfbXVsdGlzaWckVGltZXBvaW50BCxCbG9ja051bWJlcgE4AAgBGGhlaWdodDgBLEJsb2NrTnVtYmVyAAEUaW5kZXg4AQx1MzIAAJ0DDCxwYWxsZXRfc3VkbxhwYWxsZXQQQ2FsbAQEVAABFBBzdWRvBAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAAQ1AUF1dGhlbnRpY2F0ZXMgdGhlIHN1ZG8ga2V5IGFuZCBkaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGBSb290YCBvcmlnaW4uVHN1ZG9fdW5jaGVja2VkX3dlaWdodAgBEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h01QEBGFdlaWdodAABFDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi4tAVRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhlIHdlaWdodCBvZiB0aGUgY2FsbCwgYW5kIGluc3RlYWQgYWxsb3dzIHRoZbBTdWRvIHVzZXIgdG8gc3BlY2lmeSB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uHHNldF9rZXkEAQxuZXcAAVBBY2NvdW50SWRMb29rdXBPZjxUPgACCF0BQXV0aGVudGljYXRlcyB0aGUgY3VycmVudCBzdWRvIGtleSBhbmQgc2V0cyB0aGUgZ2l2ZW4gQWNjb3VudElkIChgbmV3YCkgYXMgdGhlIG5ldyBzdWRvEGtleS4cc3Vkb19hcwgBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAxBNAUF1dGhlbnRpY2F0ZXMgdGhlIHN1ZG8ga2V5IGFuZCBkaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGBTaWduZWRgIG9yaWdpbiBmcm9tQGEgZ2l2ZW4gYWNjb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLihyZW1vdmVfa2V5AAQMhFBlcm1hbmVudGx5IHJlbW92ZXMgdGhlIHN1ZG8ga2V5LgBsKipUaGlzIGNhbm5vdCBiZSB1bi1kb25lLioqBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqEDDDBwYWxsZXRfcHJveHkYcGFsbGV0EENhbGwEBFQAASwUcHJveHkMARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBlpQMBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AACRNAURpc3BhdGNoIHRoZSBnaXZlbiBgY2FsbGAgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoMGBhZGRfcHJveHlgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLmEBLSBgZm9yY2VfcHJveHlfdHlwZWA6IFNwZWNpZnkgdGhlIGV4YWN0IHByb3h5IHR5cGUgdG8gYmUgdXNlZCBhbmQgY2hlY2tlZCBmb3IgdGhpcyBjYWxsLtAtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuJGFkZF9wcm94eQwBIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4AASRFAVJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOhEBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIG1ha2UgYSBwcm94eS78LSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBhbGxvd2VkIGZvciB0aGlzIHByb3h5IGFjY291bnQuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLjByZW1vdmVfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAIcqFVucmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOiUBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIHJlbW92ZSBhcyBhIHByb3h5LkEBLSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBjdXJyZW50bHkgZW5hYmxlZCBmb3IgdGhlIHJlbW92ZWQgcHJveHkgYWNjb3VudC44cmVtb3ZlX3Byb3hpZXMAAxi0VW5yZWdpc3RlciBhbGwgcHJveHkgYWNjb3VudHMgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AXQFXQVJOSU5HOiBUaGlzIG1heSBiZSBjYWxsZWQgb24gYWNjb3VudHMgY3JlYXRlZCBieSBgY3JlYXRlX3B1cmVgLCBob3dldmVyIGlmIGRvbmUsIHRoZW5ZAXRoZSB1bnJlc2VydmVkIGZlZXMgd2lsbCBiZSBpbmFjY2Vzc2libGUuICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqLGNyZWF0ZV9wdXJlDAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgtAwEMdTE2AARIOQFTcGF3biBhIGZyZXNoIG5ldyBhY2NvdW50IHRoYXQgaXMgZ3VhcmFudGVlZCB0byBiZSBvdGhlcndpc2UgaW5hY2Nlc3NpYmxlLCBhbmT8aW5pdGlhbGl6ZSBpdCB3aXRoIGEgcHJveHkgb2YgYHByb3h5X3R5cGVgIGZvciBgb3JpZ2luYCBzZW5kZXIuAGxSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbi4AUQEtIGBwcm94eV90eXBlYDogVGhlIHR5cGUgb2YgdGhlIHByb3h5IHRoYXQgdGhlIHNlbmRlciB3aWxsIGJlIHJlZ2lzdGVyZWQgYXMgb3ZlciB0aGVNAW5ldyBhY2NvdW50LiBUaGlzIHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB0aGUgbW9zdCBwZXJtaXNzaXZlIGBQcm94eVR5cGVgIHBvc3NpYmxlIHRveGFsbG93IGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LlEBLSBgaW5kZXhgOiBBIGRpc2FtYmlndWF0aW9uIGluZGV4LCBpbiBjYXNlIHRoaXMgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBzYW1lXQF0cmFuc2FjdGlvbiAoZS5nLiB3aXRoIGB1dGlsaXR5OjpiYXRjaGApLiBVbmxlc3MgeW91J3JlIHVzaW5nIGBiYXRjaGAgeW91IHByb2JhYmx5IGp1c3RAd2FudCB0byB1c2UgYDBgLk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4AUQFGYWlscyB3aXRoIGBEdXBsaWNhdGVgIGlmIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgaW4gdGhpcyB0cmFuc2FjdGlvbiwgZnJvbSB0aGWYc2FtZSBzZW5kZXIsIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycy4A5EZhaWxzIGlmIHRoZXJlIGFyZSBpbnN1ZmZpY2llbnQgZnVuZHMgdG8gcGF5IGZvciBkZXBvc2l0LiRraWxsX3B1cmUUARxzcGF3bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGluZGV4LQMBDHUxNgABGGhlaWdodGABREJsb2NrTnVtYmVyRm9yPFQ+AAEkZXh0X2luZGV4YAEMdTMyAAVAoFJlbW92ZXMgYSBwcmV2aW91c2x5IHNwYXduZWQgcHVyZSBwcm94eS4ASQFXQVJOSU5HOiAqKkFsbCBhY2Nlc3MgdG8gdGhpcyBhY2NvdW50IHdpbGwgYmUgbG9zdC4qKiBBbnkgZnVuZHMgaGVsZCBpbiBpdCB3aWxsIGJlNGluYWNjZXNzaWJsZS4AWQFSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbiwgYW5kIHRoZSBzZW5kZXIgYWNjb3VudCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGEgY2FsbCB0b7BgY3JlYXRlX3B1cmVgIHdpdGggY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLgBVAS0gYHNwYXduZXJgOiBUaGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY2FsbGVkIGBjcmVhdGVfcHVyZWAgdG8gY3JlYXRlIHRoaXMgYWNjb3VudC5VAS0gYGluZGV4YDogVGhlIGRpc2FtYmlndWF0aW9uIGluZGV4IG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBjcmVhdGVfcHVyZWAuIFByb2JhYmx5IGAwYC4JAS0gYHByb3h5X3R5cGVgOiBUaGUgcHJveHkgdHlwZSBvcmlnaW5hbGx5IHBhc3NlZCB0byBgY3JlYXRlX3B1cmVgLkUBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgY3JlYXRlX3B1cmVgIHdhcyBwcm9jZXNzZWQuUQEtIGBleHRfaW5kZXhgOiBUaGUgZXh0cmluc2ljIGluZGV4IGluIHdoaWNoIHRoZSBjYWxsIHRvIGBjcmVhdGVfcHVyZWAgd2FzIHByb2Nlc3NlZC4ANQFGYWlscyB3aXRoIGBOb1Blcm1pc3Npb25gIGluIGNhc2UgdGhlIGNhbGxlciBpcyBub3QgYSBwcmV2aW91c2x5IGNyZWF0ZWQgcHVyZfhhY2NvdW50IHdob3NlIGBjcmVhdGVfcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDwBNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g8ATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDwBNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGWlAwFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAJLE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAKhSZW1vdmVzIGFueSBjb3JyZXNwb25kaW5nIGFubm91bmNlbWVudChzKS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LjBwb2tlX2RlcG9zaXQACiBJAVBva2UgLyBBZGp1c3QgZGVwb3NpdHMgbWFkZSBmb3IgcHJveGllcyBhbmQgYW5ub3VuY2VtZW50cyBiYXNlZCBvbiBjdXJyZW50IHZhbHVlcy4NAVRoaXMgY2FuIGJlIHVzZWQgYnkgYWNjb3VudHMgdG8gcG9zc2libHkgbG93ZXIgdGhlaXIgbG9ja2VkIGFtb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqUDBBhPcHRpb24EBFQBqQMBCBBOb25lAAAAEFNvbWUEAKkDAAABAACpAwhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZSRQcm94eVR5cGUAARgMQW55AAAALE5vblRyYW5zZmVyAAEALENhbmNlbFByb3h5AAIAIElkZW50aXR5AAMARElkZW50aXR5SnVkZ2VtZW50AAQAIENvbGxhdG9yAAUAAK0DDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkYcGFsbGV0EENhbGwEBFQAAXg0YWRkX3JlZ2lzdHJhcgQBHGFjY291bnQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAHHhBZGQgYSByZWdpc3RyYXIgdG8gdGhlIHN5c3RlbS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBUOjpSZWdpc3RyYXJPcmlnaW5gLgCoLSBgYWNjb3VudGA6IHRoZSBhY2NvdW50IG9mIHRoZSByZWdpc3RyYXIuAJRFbWl0cyBgUmVnaXN0cmFyQWRkZWRgIGlmIHN1Y2Nlc3NmdWwuMHNldF9pZGVudGl0eQQBEGluZm+xAwFsQm94PFQ6OklkZW50aXR5SW5mb3JtYXRpb24+AAEoKQFTZXQgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm9ybWF0aW9uIGFuZCByZXNlcnZlIHRoZSBhcHByb3ByaWF0ZSBkZXBvc2l0LgBVAUlmIHRoZSBhY2NvdW50IGFscmVhZHkgaGFzIGlkZW50aXR5IGluZm9ybWF0aW9uLCB0aGUgZGVwb3NpdCBpcyB0YWtlbiBhcyBwYXJ0IHBheW1lbnRQZm9yIHRoZSBuZXcgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgCMLSBgaW5mb2A6IFRoZSBpZGVudGl0eSBpbmZvcm1hdGlvbi4AiEVtaXRzIGBJZGVudGl0eVNldGAgaWYgc3VjY2Vzc2Z1bC4gc2V0X3N1YnMEARBzdWJzLQQBZFZlYzwoVDo6QWNjb3VudElkLCBEYXRhKT4AAiSMU2V0IHRoZSBzdWItYWNjb3VudHMgb2YgdGhlIHNlbmRlci4AVQFQYXltZW50OiBBbnkgYWdncmVnYXRlIGJhbGFuY2UgcmVzZXJ2ZWQgYnkgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxscyB3aWxsIGJlIHJldHVybmVkLQFhbmQgYW4gYW1vdW50IGBTdWJBY2NvdW50RGVwb3NpdGAgd2lsbCBiZSByZXNlcnZlZCBmb3IgZWFjaCBpdGVtIGluIGBzdWJzYC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCwLSBgc3Vic2A6IFRoZSBpZGVudGl0eSdzIChuZXcpIHN1Yi1hY2NvdW50cy44Y2xlYXJfaWRlbnRpdHkAAyA5AUNsZWFyIGFuIGFjY291bnQncyBpZGVudGl0eSBpbmZvIGFuZCBhbGwgc3ViLWFjY291bnRzIGFuZCByZXR1cm4gYWxsIGRlcG9zaXRzLgDsUGF5bWVudDogQWxsIHJlc2VydmVkIGJhbGFuY2VzIG9uIHRoZSBhY2NvdW50IGFyZSByZXR1cm5lZC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCYRW1pdHMgYElkZW50aXR5Q2xlYXJlZGAgaWYgc3VjY2Vzc2Z1bC5EcmVxdWVzdF9qdWRnZW1lbnQIASRyZWdfaW5kZXhgAThSZWdpc3RyYXJJbmRleAABHG1heF9mZWXAATBCYWxhbmNlT2Y8VD4ABECUUmVxdWVzdCBhIGp1ZGdlbWVudCBmcm9tIGEgcmVnaXN0cmFyLgBVAVBheW1lbnQ6IEF0IG1vc3QgYG1heF9mZWVgIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIHBheW1lbnQgdG8gdGhlIHJlZ2lzdHJhciBpZiBqdWRnZW1lbnQYZ2l2ZW4uADUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGFQcmVnaXN0ZXJlZCBpZGVudGl0eS4AHQEtIGByZWdfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgcmVxdWVzdGVkLlUBLSBgbWF4X2ZlZWA6IFRoZSBtYXhpbXVtIGZlZSB0aGF0IG1heSBiZSBwYWlkLiBUaGlzIHNob3VsZCBqdXN0IGJlIGF1dG8tcG9wdWxhdGVkIGFzOgAwYGBgbm9jb21waWxluFNlbGY6OnJlZ2lzdHJhcnMoKS5nZXQocmVnX2luZGV4KS51bndyYXAoKS5mZWUMYGBgAKRFbWl0cyBgSnVkZ2VtZW50UmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLjhjYW5jZWxfcmVxdWVzdAQBJHJlZ19pbmRleDgBOFJlZ2lzdHJhckluZGV4AAUoaENhbmNlbCBhIHByZXZpb3VzIHJlcXVlc3QuAPhQYXltZW50OiBBIHByZXZpb3VzbHkgcmVzZXJ2ZWQgZGVwb3NpdCBpcyByZXR1cm5lZCBvbiBzdWNjZXNzLgA1AVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhUHJlZ2lzdGVyZWQgaWRlbnRpdHkuAEUBLSBgcmVnX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIG5vIGxvbmdlciByZXF1ZXN0ZWQuAKxFbWl0cyBgSnVkZ2VtZW50VW5yZXF1ZXN0ZWRgIGlmIHN1Y2Nlc3NmdWwuHHNldF9mZWUIARRpbmRleGABOFJlZ2lzdHJhckluZGV4AAEMZmVlwAEwQmFsYW5jZU9mPFQ+AAYcGQFTZXQgdGhlIGZlZSByZXF1aXJlZCBmb3IgYSBqdWRnZW1lbnQgdG8gYmUgcmVxdWVzdGVkIGZyb20gYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQuVC0gYGZlZWA6IHRoZSBuZXcgZmVlLjhzZXRfYWNjb3VudF9pZAgBFGluZGV4YAE4UmVnaXN0cmFySW5kZXgAAQxuZXcAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAHHLxDaGFuZ2UgdGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LnAtIGBuZXdgOiB0aGUgbmV3IGFjY291bnQgSUQuKHNldF9maWVsZHMIARRpbmRleGABOFJlZ2lzdHJhckluZGV4AAEYZmllbGRzKAEpATxUOjpJZGVudGl0eUluZm9ybWF0aW9uIGFzIElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcj46OgpGaWVsZHNJZGVudGlmaWVyAAgcqFNldCB0aGUgZmllbGQgaW5mb3JtYXRpb24gZm9yIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0Lg0BLSBgZmllbGRzYDogdGhlIGZpZWxkcyB0aGF0IHRoZSByZWdpc3RyYXIgY29uY2VybnMgdGhlbXNlbHZlcyB3aXRoLkRwcm92aWRlX2p1ZGdlbWVudBABJHJlZ19pbmRleGABOFJlZ2lzdHJhckluZGV4AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRqdWRnZW1lbnQ1BAFcSnVkZ2VtZW50PEJhbGFuY2VPZjxUPj4AASBpZGVudGl0eTwBHFQ6Okhhc2gACTy4UHJvdmlkZSBhIGp1ZGdlbWVudCBmb3IgYW4gYWNjb3VudCdzIGlkZW50aXR5LgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSwb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgcmVnX2luZGV4YC4AIQEtIGByZWdfaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgYmVpbmcgbWFkZS5VAS0gYHRhcmdldGA6IHRoZSBhY2NvdW50IHdob3NlIGlkZW50aXR5IHRoZSBqdWRnZW1lbnQgaXMgdXBvbi4gVGhpcyBtdXN0IGJlIGFuIGFjY291bnR0ICB3aXRoIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS5JAS0gYGp1ZGdlbWVudGA6IHRoZSBqdWRnZW1lbnQgb2YgdGhlIHJlZ2lzdHJhciBvZiBpbmRleCBgcmVnX2luZGV4YCBhYm91dCBgdGFyZ2V0YC5dAS0gYGlkZW50aXR5YDogVGhlIGhhc2ggb2YgdGhlIFtgSWRlbnRpdHlJbmZvcm1hdGlvblByb3ZpZGVyYF0gZm9yIHRoYXQgdGhlIGp1ZGdlbWVudCBpcywgIHByb3ZpZGVkLgCwTm90ZTogSnVkZ2VtZW50cyBkbyBub3QgYXBwbHkgdG8gYSB1c2VybmFtZS4AlEVtaXRzIGBKdWRnZW1lbnRHaXZlbmAgaWYgc3VjY2Vzc2Z1bC40a2lsbF9pZGVudGl0eQQBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAowQQFSZW1vdmUgYW4gYWNjb3VudCdzIGlkZW50aXR5IGFuZCBzdWItYWNjb3VudCBpbmZvcm1hdGlvbiBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgBhAVBheW1lbnQ6IFJlc2VydmVkIGJhbGFuY2VzIGZyb20gYHNldF9zdWJzYCBhbmQgYHNldF9pZGVudGl0eWAgYXJlIHNsYXNoZWQgYW5kIGhhbmRsZWQgYnlFAWBTbGFzaGAuIFZlcmlmaWNhdGlvbiByZXF1ZXN0IGRlcG9zaXRzIGFyZSBub3QgcmV0dXJuZWQ7IHRoZXkgc2hvdWxkIGJlIGNhbmNlbGxlZIBtYW51YWxseSB1c2luZyBgY2FuY2VsX3JlcXVlc3RgLgD4VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgbWF0Y2ggYFQ6OkZvcmNlT3JpZ2luYC4AVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuAJRFbWl0cyBgSWRlbnRpdHlLaWxsZWRgIGlmIHN1Y2Nlc3NmdWwuHGFkZF9zdWIIAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGG1AwEQRGF0YQALHKxBZGQgdGhlIGdpdmVuIGFjY291bnQgdG8gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbmFtZV9zdWIIAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGG1AwEQRGF0YQAMEMxBbHRlciB0aGUgYXNzb2NpYXRlZCBuYW1lIG9mIHRoZSBnaXZlbiBzdWItYWNjb3VudC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4ocmVtb3ZlX3N1YgQBDHN1YgABUEFjY291bnRJZExvb2t1cE9mPFQ+AA0cwFJlbW92ZSB0aGUgZ2l2ZW4gYWNjb3VudCBmcm9tIHRoZSBzZW5kZXIncyBzdWJzLgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZDh0byB0aGUgc2VuZGVyLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWRYc3ViIGlkZW50aXR5IG9mIGBzdWJgLiBxdWl0X3N1YgAOKIxSZW1vdmUgdGhlIHNlbmRlciBhcyBhIHN1Yi1hY2NvdW50LgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZLR0byB0aGUgc2VuZGVyICgqbm90KiB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yKS4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkPHN1cGVyLWlkZW50aXR5LgBFAU5PVEU6IFRoaXMgc2hvdWxkIG5vdCBub3JtYWxseSBiZSB1c2VkLCBidXQgaXMgcHJvdmlkZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGUgbm9uLREBY29udHJvbGxlciBvZiBhbiBhY2NvdW50IGlzIG1hbGljaW91c2x5IHJlZ2lzdGVyZWQgYXMgYSBzdWItYWNjb3VudC5YYWRkX3VzZXJuYW1lX2F1dGhvcml0eQwBJGF1dGhvcml0eQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYc3VmZml4GAEcVmVjPHU4PgABKGFsbG9jYXRpb244AQx1MzIADxRVAUFkZCBhbiBgQWNjb3VudElkYCB3aXRoIHBlcm1pc3Npb24gdG8gZ3JhbnQgdXNlcm5hbWVzIHdpdGggYSBnaXZlbiBgc3VmZml4YCBhcHBlbmRlZC4ARQFUaGUgYXV0aG9yaXR5IGNhbiBncmFudCB1cCB0byBgYWxsb2NhdGlvbmAgdXNlcm5hbWVzLiBUbyB0b3AgdXAgdGhlIGFsbG9jYXRpb24gb3JJAWNoYW5nZSB0aGUgYWNjb3VudCB1c2VkIHRvIGdyYW50IHVzZXJuYW1lcywgdGhpcyBjYWxsIGNhbiBiZSB1c2VkIHdpdGggdGhlIHVwZGF0ZWTMcGFyYW1ldGVycyB0byBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24uZHJlbW92ZV91c2VybmFtZV9hdXRob3JpdHkIARhzdWZmaXgYARxWZWM8dTg+AAEkYXV0aG9yaXR5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AEATEUmVtb3ZlIGBhdXRob3JpdHlgIGZyb20gdGhlIHVzZXJuYW1lIGF1dGhvcml0aWVzLkBzZXRfdXNlcm5hbWVfZm9yEAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASB1c2VybmFtZRgBHFZlYzx1OD4AASRzaWduYXR1cmU5BAFwT3B0aW9uPFQ6Ok9mZmNoYWluU2lnbmF0dXJlPgABOHVzZV9hbGxvY2F0aW9uyAEQYm9vbAARNA0BU2V0IHRoZSB1c2VybmFtZSBmb3IgYHdob2AuIE11c3QgYmUgY2FsbGVkIGJ5IGEgdXNlcm5hbWUgYXV0aG9yaXR5LgBZAUlmIGB1c2VfYWxsb2NhdGlvbmAgaXMgc2V0LCB0aGUgYXV0aG9yaXR5IG11c3QgaGF2ZSBhIHVzZXJuYW1lIGFsbG9jYXRpb24gYXZhaWxhYmxlIHRvRQFzcGVuZC4gT3RoZXJ3aXNlLCB0aGUgYXV0aG9yaXR5IHdpbGwgbmVlZCB0byBwdXQgdXAgYSBkZXBvc2l0IGZvciByZWdpc3RlcmluZyB0aGUkdXNlcm5hbWUuALBVc2VycyBjYW4gZWl0aGVyIHByZS1zaWduIHRoZWlyIHVzZXJuYW1lcyBvckhhY2NlcHQgdGhlbSBsYXRlci4APFVzZXJuYW1lcyBtdXN0OtggIC0gT25seSBjb250YWluIGxvd2VyY2FzZSBBU0NJSSBjaGFyYWN0ZXJzIG9yIGRpZ2l0cy41ASAgLSBXaGVuIGNvbWJpbmVkIHdpdGggdGhlIHN1ZmZpeCBvZiB0aGUgaXNzdWluZyBhdXRob3JpdHkgYmUgX2xlc3MgdGhhbl8gdGhlYCAgICBgTWF4VXNlcm5hbWVMZW5ndGhgLjxhY2NlcHRfdXNlcm5hbWUEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgASDE0BQWNjZXB0IGEgZ2l2ZW4gdXNlcm5hbWUgdGhhdCBhbiBgYXV0aG9yaXR5YCBncmFudGVkLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlIGZ1bGxVAXVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC4gQXV0aG9yaXRpZXMgY2Fubm90IGdyYW50IHVzZXJuYW1lcyB0byBwZW9wbGUsIG9ubHlQdG8gcmVndWxhciBhY2NvdW50cy5ccmVtb3ZlX2V4cGlyZWRfYXBwcm92YWwEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgATDGEBUmVtb3ZlIGFuIGV4cGlyZWQgdXNlcm5hbWUgYXBwcm92YWwuIFRoZSB1c2VybmFtZSB3YXMgYXBwcm92ZWQgYnkgYW4gYXV0aG9yaXR5IGJ1dCBuZXZlclUBYWNjZXB0ZWQgYnkgdGhlIHVzZXIgYW5kIG11c3Qgbm93IGJlIGJleW9uZCBpdHMgZXhwaXJhdGlvbi4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZZxmdWxsIHVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC5Qc2V0X3ByaW1hcnlfdXNlcm5hbWUEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgAUDEUBU2V0IGEgZ2l2ZW4gdXNlcm5hbWUgYXMgdGhlIHByaW1hcnkuIFRoZSB1c2VybmFtZSBzaG91bGQgaW5jbHVkZSB0aGUgc3VmZml4LiBPbmx5WQFyZWd1bGFyIGFjY291bnRzIGNhbiBzZXQgdGhlaXIgcHJpbWFyeSB1c2VybmFtZSwgYXMgcGVvcGxlIGNhbiBvbmx5IGhhdmUgb25lIHVzZXJuYW1lLJBncmFudGVkIHRocm91Z2ggYSBzeXN0ZW0gYWxsb2NhdGlvbi48dW5iaW5kX3VzZXJuYW1lBAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4AFQxZAVN0YXJ0IHRoZSBwcm9jZXNzIG9mIHJlbW92aW5nIGEgdXNlcm5hbWUgYnkgcGxhY2luZyBpdCBpbiB0aGUgdW5iaW5kaW5nIHVzZXJuYW1lcyBtYXAuIQFPbmNlIHRoZSBncmFjZSBwZXJpb2QgaGFzIHBhc3NlZCwgdGhlIHVzZXJuYW1lIGNhbiBiZSBkZWxldGVkIGJ5IGNhbGxpbmfAW3JlbW92ZV91c2VybmFtZV0oY3JhdGU6OkNhbGw6OnJlbW92ZV91c2VybmFtZSkuPHJlbW92ZV91c2VybmFtZQQBIHVzZXJuYW1lSQQBLFVzZXJuYW1lPFQ+ABYIYQFQZXJtYW5lbnRseSBkZWxldGUgYSB1c2VybmFtZSB3aGljaCBoYXMgYmVlbiB1bmJpbmRpbmcgZm9yIGxvbmdlciB0aGFuIHRoZSBncmFjZSBwZXJpb2QuSQFDYWxsZXIgaXMgcmVmdW5kZWQgdGhlIGZlZSBpZiB0aGUgdXNlcm5hbWUgZXhwaXJlZCBhbmQgdGhlIHJlbW92YWwgd2FzIHN1Y2Nlc3NmdWwuNGtpbGxfdXNlcm5hbWUEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgAXCF0BQ2FsbCB3aXRoIFtGb3JjZU9yaWdpbl0oY3JhdGU6OkNvbmZpZzo6Rm9yY2VPcmlnaW4pIHByaXZpbGVnZXMgd2hpY2ggZGVsZXRlcyBhIHVzZXJuYW1lrGFuZCBzbGFzaGVzIGFueSBkZXBvc2l0IGFzc29jaWF0ZWQgd2l0aCBpdC5Uc2V0X3BlcnNvbmFsX2lkZW50aXR5DAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABJHNpZ25hdHVyZT0EAVBUOjpPZmZjaGFpblNpZ25hdHVyZQABIHVzZXJuYW1lSQQBLFVzZXJuYW1lPFQ+ABgsXQFTZXRzIHRoZSB1c2VybmFtZSBhbmQgb24tY2hhaW4gYWNjb3VudCBmb3IgYSBwZXJzb24sIGFsb25nIHdpdGggYW4gZW1wdHkgaWRlbnRpdHkgd2hpY2hhAWNhbiBvbmx5IGJlIHBvcHVsYXRlZCB1c2luZyBhbiBvcmFjbGUgdGhyb3VnaCB0aGUgc29jaWFsIGNyZWRlbnRpYWwgdmVyaWZpY2F0aW9uIHN5c3RlbS6cVGhlIGNob3NlbiB1c2VybmFtZSBtdXN0IGJlIGRvbWFpbmxlc3MuAEkBVGhlIHNlbmRlciBtdXN0IHNpZ24gdGhlIGFsaWFzIHVzaW5nIHRoZSBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBvbi1jaGFpbmxhY2NvdW50IHRvIHByb3ZlIG93bmVyc2hpcC4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY29udGV4dHVhbCBhbGlhcyBvZiB0aGUgcGVyc29uIGFuZCB0aGURAXNlbmRlciBtdXN0IG5vdCBoYXZlIGFscmVhZHkgcmVnaXN0ZXJlZCB0aGVpciBpZGVudGl0eSBhbmQgdXNlcm5hbWUuAKhFbWl0cyBgUGVyc29uYWxJZGVudGl0eVNldGAgaWYgc3VjY2Vzc2Z1bC6Mc3VibWl0X3BlcnNvbmFsX2NyZWRlbnRpYWxfZXZpZGVuY2UEAShjcmVkZW50aWFsTQQBGFNvY2lhbAAZGA0BT3BlbiBhIGNhc2UgZm9yIGFuIG9yYWNsZSB0byBqdWRnZSBhIHNvY2lhbCBjcmVkZW50aWFsIG9mIGEgcGVyc29uLgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBjb250ZXh0dWFsIGFsaWFzIG9mIHRoZSBwZXJzb24gYW5kIHRoZZxzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4AoEVtaXRzIGBFdmlkZW5jZVN1Ym1pdHRlZGAgaWYgc3VjY2Vzc2Z1bC5ocGVyc29uYWxfY3JlZGVudGlhbF9qdWRnZWQMARh0aWNrZXQ4AURPcmFjbGVUaWNrZXRPZjxUPgABHGNvbnRleHR4AUBKdWRnZW1lbnRDb250ZXh0AAEkanVkZ2VtZW50UQQBPE9yYWNsZUp1ZGdlbWVudAAaCFkBQ2FsbGJhY2sgdG8gZW5mb3JjZSB0aGUganVkZ2VtZW50IG9mIGEgc29jaWFsIGNyZWRlbnRpYWwuIFRoaXMgaXMgdG8gYmUgY2FsbGVkIG9ubHkgYnmAdGhlIG9yYWNsZSB0aGF0IGp1ZGdlZCB0aGUgY2FzZS5cY2xlYXJfcGVyc29uYWxfaWRlbnRpdHkAGxxRAUNsZWFyIGEgcGVyc29uJ3MgaWRlbnRpdHkgaW5mby4gVGhlIHNlbmRlciBtdXN0IHBheSBhIHBlbmFsdHkgdGhyb3VnaCB0aGUgYXNzb2NpYXRlZKBhbGlhcyBhY2NvdW50IGZvciByZW1vdmluZyB0aGUgaWRlbnRpdHkuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGNvbnRleHR1YWwgYWxpYXMgb2YgdGhlIHBlcnNvbiBhbmQgdGhlnHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkIGlkZW50aXR5LgC4RW1pdHMgYElkZW50aXR5UGVyc29uYWxDbGVhcmVkYCBpZiBzdWNjZXNzZnVsLjxyZXBvcnRfdXNlcm5hbWUEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgAcFOxSZXBvcnQgYSB1c2VybmFtZSBhcyBpbnZhbGlkL29mZmVuc2l2ZS93cm9uZy9hbnl0aGluZyBlbHNlLgD0VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYSBzaWduZWQgZXh0cmluc2ljLgCoLSBgdXNlcm5hbWVgOiBUaGUgdXNlcm5hbWUgdG8gYmUgcmVwb3J0ZWQuYHJlcG9ydGVkX3VzZXJuYW1lX2p1ZGdlZAwBGHRpY2tldDgBYGNyYXRlOjpPcmFjbGVUaWNrZXRPZjxUPgABHGNvbnRleHR4AUBKdWRnZW1lbnRDb250ZXh0AAEkanVkZ2VtZW50UQQBPE9yYWNsZUp1ZGdlbWVudAAdJORHaXZlbiBqdWRnZW1lbnQgb24gYSBwcmV2aW91c2x5IHJlcG9ydGVkIHVzZXJuYW1lIGVpdGhlcjqQMS4gSW4gY2FzZSB1c2VybmFtZSB3YXMgZm91bmQgdmFsaWQ6vC0gc2xhc2hlcyB0aGUgYW1vdW50IGRlcG9zaXRlZCBieSB0aGUgcmVwb3J0ZXIs8C0gZG9lcyBub3RoaW5nIHRvIHRoZSBpZGVudGl0eSBiZWhpbmQgdGhlIHJlcG9ydGVkIHVzZXJuYW1lLJgyLiBJbiBjYXNlIHVzZXJuYW1lIHdhcyBmb3VuZCBpbnZhbGlkOrgtIHJldHVybnMgdGhlIGRlcG9zaXRlZCBmdW5kcyB0byB0aGUgcmVwb3J0ZXIsxC0gYmFucyB0aGUgaWRlbnRpdHkgYmVoaW5kIHRoZSByZXBvcnRlZCB1c2VybmFtZS78U2VydmVzIGFzIGEgY2FsbGJhY2sgdXNlZCB1cG9uIGp1ZGdlbWVudCByZXF1ZXN0IHRvIHRoZSBvcmFjbGUuqE11c3Qgb25seSBiZSB1c2VkIGJ5IHRoZSBzdGF0ZW1lbnQgb3JhY2xlLgRwSWRlbnRpdHkgcGFsbGV0IGRlY2xhcmF0aW9uLrEDDGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lGHBlb3BsZTBJZGVudGl0eUluZm8AACgBHGRpc3BsYXm1AwEQRGF0YQABFGxlZ2FstQMBEERhdGEAAQx3ZWK1AwEQRGF0YQABGG1hdHJpeLUDARBEYXRhAAEUZW1haWy1AwEQRGF0YQABPHBncF9maW5nZXJwcmludCkEAUBPcHRpb248W3U4OyAyMF0+AAEUaW1hZ2W1AwEQRGF0YQABHHR3aXR0ZXK1AwEQRGF0YQABGGdpdGh1YrUDARBEYXRhAAEcZGlzY29yZLUDARBEYXRhAAC1AwxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzEERhdGEAAZgQTm9uZQAAABBSYXcwBAC5AwAAAQAQUmF3MQQAvQMAAAIAEFJhdzIEAMEDAAADABBSYXczBADFAwAABAAQUmF3NAQAcAAABQAQUmF3NQQAyQMAAAYAEFJhdzYEAM0DAAAHABBSYXc3BADRAwAACAAQUmF3OAQAvQEAAAkAEFJhdzkEANUDAAAKABRSYXcxMAQA2QMAAAsAFFJhdzExBADdAwAADAAUUmF3MTIEAOEDAAANABRSYXcxMwQA5QMAAA4AFFJhdzE0BADpAwAADwAUUmF3MTUEAO0DAAAQABRSYXcxNgQAwQEAABEAFFJhdzE3BADxAwAAEgAUUmF3MTgEAPUDAAATABRSYXcxOQQA+QMAABQAFFJhdzIwBAAcAAAVABRSYXcyMQQA/QMAABYAFFJhdzIyBAABBAAAFwAUUmF3MjMEAAUEAAAYABRSYXcyNAQACQQAABkAFFJhdzI1BAANBAAAGgAUUmF3MjYEABEEAAAbABRSYXcyNwQAFQQAABwAFFJhdzI4BAAZBAAAHQAUUmF3MjkEAB0EAAAeABRSYXczMAQAIQQAAB8AFFJhdzMxBAAlBAAAIAAUUmF3MzIEAAgAACEALEJsYWtlVHdvMjU2BAAIAAAiABhTaGEyNTYEAAgAACMAJEtlY2NhazI1NgQACAAAJAAsU2hhVGhyZWUyNTYEAAgAACUAALkDAAADAAAAAAwAvQMAAAMBAAAADADBAwAAAwIAAAAMAMUDAAADAwAAAAwAyQMAAAMFAAAADADNAwAAAwYAAAAMANEDAAADBwAAAAwA1QMAAAMJAAAADADZAwAAAwoAAAAMAN0DAAADCwAAAAwA4QMAAAMMAAAADADlAwAAAw0AAAAMAOkDAAADDgAAAAwA7QMAAAMPAAAADADxAwAAAxEAAAAMAPUDAAADEgAAAAwA+QMAAAMTAAAADAD9AwAAAxUAAAAMAAEEAAADFgAAAAwABQQAAAMXAAAADAAJBAAAAxgAAAAMAA0EAAADGQAAAAwAEQQAAAMaAAAADAAVBAAAAxsAAAAMABkEAAADHAAAAAwAHQQAAAMdAAAADAAhBAAAAx4AAAAMACUEAAADHwAAAAwAKQQEGE9wdGlvbgQEVAEcAQgQTm9uZQAAABBTb21lBAAcAAABAAAtBAAAAjEEADEEAAAECAS1AwA1BAxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzJEp1ZGdlbWVudAQcQmFsYW5jZQHEASAcVW5rbm93bgAAABxGZWVQYWlkBADEARxCYWxhbmNlAAEAKFJlYXNvbmFibGUAAgAkS25vd25Hb29kAAMAJE91dE9mRGF0ZQAEAChMb3dRdWFsaXR5AAUAJEVycm9uZW91cwAGACBFeHRlcm5hbAAHAAA5BAQYT3B0aW9uBARUAT0EAQgQTm9uZQAAABBTb21lBAA9BAAAAQAAPQQIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAARAcRWQyNTUxOQQAQQQBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BABBBAFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBABFBAFAZWNkc2E6OlNpZ25hdHVyZQACAAxFdGgEAEUEAVhlY2RzYTo6S2VjY2FrU2lnbmF0dXJlAAMAAEEEAAADQAAAAAwARQQAAANBAAAADABJBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAE0EFDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5IGlkZW50aXR5GFNvY2lhbAABDBxUd2l0dGVyBAEgdXNlcm5hbWVJBAEQRGF0YQAAABhHaXRodWIEASB1c2VybmFtZUkEARBEYXRhAAEAHERpc2NvcmQEATxkaXNwbGF5X2FuZF90YWdJBAEQRGF0YQACAABRBBA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eSRKdWRnZW1lbnQAAQgUVHJ1dGgEAFUEARRUcnV0aAAAACBDb250ZW1wdAABAABVBBA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eRRUcnV0aAABCBBUcnVlAAAAFEZhbHNlAAEAAFkEDExpbmRpdl9wYWxsZXRfcGVvcGxlGHBhbGxldBBDYWxsBARUAAEgLHVuZGVyX2FsaWFzBAEQY2FsbCABtEJveDw8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OlJ1bnRpbWVDYWxsPgAAEBUBRGlzcGF0Y2ggYSBjYWxsIHVuZGVyIGFuIGFsaWFzIHVzaW5nIHRoZSBgYWNjb3VudCA8LT4gYWxpYXNgIG1hcHBpbmcuAEUBVGhpcyBpcyBhIGNhbGwgdmVyc2lvbiBvZiB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIGBBc1BlcnNvbmFsQWxpYXNXaXRoQWNjb3VudGAuJQFJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBpbnN0ZWFkIHdoZW4gc3VpdGFibGUuRHNldF9hbGlhc19hY2NvdW50CAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABNGNhbGxfdmFsaWRfYXQ4AURCbG9ja051bWJlckZvcjxUPgABJC0BVGhpcyB0cmFuc2FjdGlvbiBpcyByZWZ1bmRlZCBpZiBzdWNjZXNzZnVsIGFuZCBubyBhbGlhcyB3YXMgcHJldmlvdXNseSBzZXQuALBUaGUgY2FsbCBpcyB2YWxpZCBmcm9tIGBjYWxsX3ZhbGlkX2F0YCB1bnRpbLxgY2FsbF92YWxpZF9hdCArIGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2VgLh0BYGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2VgIGlzIGEgY29uc3RhbnQgYXZhaWxhYmxlIGluIHRoZSBtZXRhZGF0YS4ALFBhcmFtZXRlcnM6uC0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byBzZXQgdGhlIGFsaWFzIGZvci4BAS0gYGNhbGxfdmFsaWRfYXRgOiBUaGUgYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGNhbGwgYmVjb21lcyB2YWxpZC5MdW5zZXRfYWxpYXNfYWNjb3VudAACBBUBUmVtb3ZlIHRoZSBtYXBwaW5nIGZyb20gYSBwYXJ0aWN1bGFyIGFsaWFzIHRvIGl0cyByZWdpc3RlcmVkIGFjY291bnQuaGZvcmNlX3JlY29nbml6ZV9wZXJzb25ob29kBAEYcGVvcGxlXQQBQFZlYzxNZW1iZXJPZjxUPj4AAxDgUmVjb2duaXplIGEgc2V0IG9mIHBlb3BsZSB3aXRob3V0IGFueSBhZGRpdGlvbmFsIGNoZWNrcy4AUQFUaGUgcGVvcGxlIGFyZSBpZGVudGlmaWVkIGJ5IHRoZSBwcm92aWRlZCBsaXN0IG9mIGtleXMgYW5kIHdpbGwgZWFjaCBiZSBhc3NpZ25lZCwgaW6Yb3JkZXIsIHRoZSBuZXh0IGF2YWlsYWJsZSBwZXJzb25hbCBJRC5cc2V0X3BlcnNvbmFsX2lkX2FjY291bnQIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAE0Y2FsbF92YWxpZF9hdDgBREJsb2NrTnVtYmVyRm9yPFQ+AAQ8aFNldCBhIHBlcnNvbmFsIGlkIGFjY291bnQuAE0BVGhlIGFjY291bnQgY2FuIHRoZW4gYmUgdXNlZCB0byBzaWduIHRyYW5zYWN0aW9ucyBvbiBiZWhhbGYgb2YgdGhlIHBlcnNvbmFsIGlkLCBhbmSkcHJvdmlkZSByZXBsYXkgcHJvdGVjdGlvbiB3aXRoIHRoZSBub25jZS4AUQFUaGlzIHRyYW5zYWN0aW9uIGlzIHJlZnVuZGVkIGlmIHN1Y2Nlc3NmdWwgYW5kIG5vIGFjY291bnQgd2FzIHByZXZpb3VzbHkgc2V0IGZvciB0aGUwcGVyc29uYWwgaWQuALBUaGUgY2FsbCBpcyB2YWxpZCBmcm9tIGBjYWxsX3ZhbGlkX2F0YCB1bnRpbLxgY2FsbF92YWxpZF9hdCArIGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2VgLh0BYGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2VgIGlzIGEgY29uc3RhbnQgYXZhaWxhYmxlIGluIHRoZSBtZXRhZGF0YS4ALFBhcmFtZXRlcnM6uC0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byBzZXQgdGhlIGFsaWFzIGZvci4BAS0gYGNhbGxfdmFsaWRfYXRgOiBUaGUgYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGNhbGwgYmVjb21lcyB2YWxpZC5kdW5zZXRfcGVyc29uYWxfaWRfYWNjb3VudAAFBHhVbnNldCB0aGUgcGVyc29uYWwgaWQgYWNjb3VudC5gY3JlYXRlX3Blb3BsZV9jb2xsZWN0aW9uAAYodENyZWF0ZSB0aGUgcGVvcGxlIGNvbGxlY3Rpb24uACkBVGhpcyBjYWxsIGlzIHZhbGlkIG9ubHkgaWYgdGhlIGNvbGxlY3Rpb24gZG9lc24ndCBleGlzdCB5ZXQuIE9uY2UgY3JlYXRlZCyMdGhpcyBjYWxsIGNhbm5vdCBiZSBleGVjdXRlZCBhZ2Fpbi4A1FRoZSBjb2xsZWN0aW9uIGlzIGNyZWF0ZWQgd2l0aCBhIGZpeGVkIGNvbmZpZ3VyYXRpb246uC0gT3duZXI6IENvbmZpZ3VyZWQgdmlhIGBDb2xsZWN0aW9uT3duZXJgIHR5cGXALSBPbmJvYXJkaW5nIHNpemU6IGBQRU9QTEVfT05CT0FSRElOR19TSVpFYCAoMTApSC0gTW9kZTogYEZsZXhpYmxlYEwtIFJpbmcgc2l6ZTogYFIyZTlgWGNsZWFuX3VwX3N0YWxlX2FsaWFzZXMEARxhbGlhc2VzYQQB3EJvdW5kZWRWZWM8Q29udGV4dHVhbEFsaWFzLCBDb25zdFUzMjxNQVhfQlVMS19DTEVBTlVQPj4AB1CgUmVtb3ZlIHN0YWxlIGFsaWFzIDwtPiBhY2NvdW50IG1hcHBpbmdzLgBgQSBtYXBwaW5nIGlzIHN0YWxlIHdoZW46LQEtIGl0cyBjb250ZXh0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBbYENvbmZpZzo6QWNjb3VudENvbnRleHRzYF0gKGdvdmVybmFuY2WoICByZWNvbmZpZ3VyYXRpb24sIGVuZGVkIGFpcmRyb3AgZXRjLiksIG9ycC0gaXRzIHJpbmcgaGFzIGJlZW4gZGVsZXRlZC4AHQFSZXZpc2lvbiBtaXNtYXRjaGVzIGRvIG5vdCByZW5kZXIgYW4gYWxpYXMgc3RhbGUuIFRoZSB1c2VyIGNhbiBjb250aW51ZRUBdHJhbnNhY3RpbmcgdmlhIGBBc1BlcnNvbmFsQWxpYXNXaXRoQWNjb3VudFJldmlzZWRgIHdpdGhvdXQgaGF2aW5nIHRvTHJlZG8gYWNjb3VudCBzZXR1cC4A/FR5cGljYWxseSBzdWJtaXR0ZWQgYnkgdGhlIE9DVywgYnV0IHRoZSBkaXNwYXRjaCBkb2VzIG5vdCB0cnVzdKh0aGUgY2FsbGVyLiBFYWNoIGFsaWFzIGlzIHJlLXZhbGlkYXRlZCB2aWH0W2BTZWxmOjplbnN1cmVfYWxpYXNfaXNfc3RhbGVgXTsgdGhvc2UgdGhhdCBhcmUgbm90IHN0YWxlIGFyZSBza2lwcGVkLgDwQXQgbW9zdCBbYE1BWF9CVUxLX0NMRUFOVVBgXSBhbGlhc2VzIGFyZSBwcm9jZXNzZWQgcGVyIGNhbGwuAAEBVGhlIHRyYW5zYWN0aW9uIHNvdXJjZSBtdXN0IGJlIGxvY2FsIG9yIGluLWJsb2NrLiBUaHVzLCBleHRlcm5hbHhpbnZvY2F0aW9ucyBhcmUgbm90IHBlcm1pdHRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuXQQAAAIIAGEEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBSQMEUwAABABlBAEYVmVjPFQ+AABlBAAAAkkDAGkEDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0EENhbGwEBFQAAUQQdm90ZQgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgAARxvcGluaW9uUQQBJEp1ZGdlbWVudAAABOBGZWVsZXNzIG9uIHN1Y2Nlc3MgKGRldGVybWluZWQgb25seSBieSB0b3AgdGhyZWUgbGluZXMpLihjbG9zZV9jYXNlBAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAABAChjbGVhbl92b3RlCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAABFHZvdGVyCAEUQWxpYXMAAgwlAU9yaWdpbiBtdXN0IGJlIGBOb25lYC4gVGhlIHRyYW5zYWN0aW9uIGlzIHZhbGlkYXRlZCBpbiBgVmFsaWRhdGVVbnNpZ25lZGBhAXdoZW4gdGhlIHNvdXJjZSBpcyBsb2NhbCAoZS5nLiBmcm9tIHRoZSBvZmZjaGFpbiB3b3JrZXIpLiBGb3IgZXh0ZXJuYWwgdHJhbnNhY3Rpb25zLCB1c2VQYGNsZWFuX3ZvdGVfc2lnbmVkYC4kcmVhcF9jYXNlBAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAADACRpbnRlcnZlbmUIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AAEcdmVyZGljdFEEASRKdWRnZW1lbnQABAAoY2xhaW1fdm90ZQQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgABQghAUEgcGVyc29uIGNsYWltcyB0aGUgbW9iIGNyZWRpdCBhc3NvY2lhdGVkIHdpdGggYSBjb3JyZWN0IHZvdGUgb24gYSBjYXNlLmBUaGUgY2FzZSBtdXN0IGJlIGBEb25lYC44cGF5b3V0X3Jld2FyZHMEASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAAGBAkBQSBwZXJzb24gY29udmVydHMgdGhlaXIgY2xhaW1lZCBtb2IgY3JlZGl0IGludG8gYSBkaXJlY3QgdHJhbnNmZXIuLGNsYWltX3ZvdGVzBAEwY2FzZV9pbmRpY2VzbQQBOFZlYzxDYXNlSW5kZXg+AAcINQFBIHBlcnNvbiBjbGFpbXMgbXVsdGlwbGUgbW9iIGNyZWRpdHMgYXNzb2NpYXRlZCBhIGNvcnJlY3Qgdm90ZSBvbiBhIGNhc2UuIFRoZVBjYXNlIG11c3QgYmUgYERvbmVgLkhzdGFydF9wYXlvdXRfcm91bmQACABYc2NoZWR1bGVfcGF5b3V0X3JvdW5kcwwBGGFtb3VudMQBMEJhbGFuY2VPZjxUPgABFGNvdW50OAEMdTMyAAEYcGVyaW9kOAFEQmxvY2tOdW1iZXJGb3I8VD4ACQBYcmVtb3ZlX3BheW91dF9zY2hlZHVsZQQBFGluZGV4OAEMdTMyAAoAMGNsYWltX2NyZWRpdAALADBjbGVhbl9wb2ludHMIARRyb3VuZDgBKFJvdW5kSW5kZXgAARR2b3RlcggBFEFsaWFzAAwAQGZvcmNlX3JpcGVuX2Nhc2UEAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AA0AKHRvdWNoX2Nhc2UEAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AA4AUGNsZWFyX3ZvdGluZ19wZW5hbHR5AA8ARGNsZWFuX3ZvdGVfc2lnbmVkCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAABFHZvdGVyCAEUQWxpYXMAEARYT3JpZ2luIG11c3QgYmUgc2lnbmVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBAAAAjgAcQQMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0EENhbGwEBFQAAVgUYXBwbHkAAAyQLSBEZWNsYXJlIGludGVudGlvbiB0byBnZXQgYSB0YXR0b28uTC0gRGVwb3NpdCBpcyB0YWtlbi64LSBgSW5rVHlwZWAgbWF5IG5vdCBiZSBgUHJvY2VkdXJhbERlcml2YXRpdmVgLjxzdWJtaXRfZXZpZGVuY2UEASBldmlkZW5jZQgBMEV2aWRlbmNlSGFzaAABELwtIE9wZW4gYSBqdWRpY2lhbCBjYXNlIHRvIGp1ZGdlIHRoZSBgZXZpZGVuY2VgLtQtIENhbGxzIEp1ZGljaWFsL2BKdWRnZVN0YXRlbWVudChQT0lfSEFTSCwgZXZpZGVuY2UpYFEBLSBOZWVkcyBgU2lnbmVkRXh0ZW5zaW9uYCB0byBhdm9pZCB1cGZyb250IHJlcXVpcmVtZW50IGZvciBmZWUgaWYgYGp1ZGdlbWVudHMgPT0gMGAuOQEtIElmIGBqdWRnZW1lbnRzID4gMGAsIHRoZW4gYW4gYWRkaXRpb25hbCBmZWUgc2hvdWxkIGJlIGNoYXJnZWQgaW50byBUcmVhc3VyeS4YanVkZ2VkDAEYdGlja2V0OAFET3JhY2xlVGlja2V0T2Y8VD4AARxjb250ZXh0eAFASnVkZ2VtZW50Q29udGV4dAABJGp1ZGdlbWVudFEEASRKdWRnZW1lbnQAAgToSXMgY2FsbGVkIGJ5IHRoZSBPcmFjbGUgd2hlbiB0aGUgZXZpZGVuY2UgaGFzIGJlZW4ganVkZ2VkLkRyZWdpc3Rlcl9yZWZlcnJlZAwBDGtleQgBLE1lbWJlck9mPFQ+AAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQAAUhwcm9vZl9vZl9vd25lcnNoaXBBBAGwPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUAAyRQLSBHZXRzIGEgbmV3IGBpbmRleGB4LSBQdXRzIGFuIGVudHJ5IGludG8gYFBlb3BsZWAumC0gQ2FsbHMgUGVvcGxlL2BuZXdQZXJzb24oaW5kZXgsIGtleSlgACwjIEFyZ3VtZW50c7AqIGBrZXlgIC0gVGhlIHBlcnNvbmFsIGlkZW50aXR5IHRvIHJlZ2lzdGVyLiEBKiBgZGVzdGluYXRpb25gIC0gVGhlIGFjY291bnQgcmVjZWl2aW5nIHRoZSBjYW5kaWRhdGUncyByZWZlcnJhbCByZXdhcmQuSQEqIGBwcm9vZl9vZl9vd25lcmhzaXBgIC0gVGhlIHNpZ25hdHVyZSBvZiBwcmVkZWZpbmVkIHByZWZpeCBgInBvcCByZWdpc3RlciB1c2luZyJgqCAgY29uY2F0ZW5hdGVkIHdpdGggdGhlIHNlbmRlciBhY2NvdW50IGlkLlRyZWdpc3Rlcl9ub25fcmVmZXJyZWQMAQxrZXkIASxNZW1iZXJPZjxUPgABLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAAFIcHJvb2Zfb2Zfb3duZXJzaGlwQQQBsDxUOjpDcnlwdG8gYXMgR2VuZXJhdGVWZXJpZmlhYmxlPjo6U2lnbmF0dXJlAAQ4UC0gR2V0cyBhIG5ldyBgaW5kZXhgeC0gUHV0cyBhbiBlbnRyeSBpbnRvIGBQZW9wbGVgLpgtIENhbGxzIFBlb3BsZS9gbmV3UGVyc29uKGluZGV4LCBrZXkpYAAsIyBBcmd1bWVudHOwKiBga2V5YCAtIFRoZSBwZXJzb25hbCBpZGVudGl0eSB0byByZWdpc3Rlci7AKiBgZGVzdGluYXRpb25gIC0gVGhlIGFjY291bnQgcmVjZWl2aW5nIHJld2FyZHMuSQEqIGBwcm9vZl9vZl9vd25lcmhzaXBgIC0gVGhlIHNpZ25hdHVyZSBvZiBwcmVkZWZpbmVkIHByZWZpeCBgInBvcCByZWdpc3RlciB1c2luZyJgqCAgY29uY2F0ZW5hdGVkIHdpdGggdGhlIHNlbmRlciBhY2NvdW50IGlkLgAoIyBXYXJuaW5nOgA5AVRoaXMgY2FsbCBjYW4gcGF5IHR3byByZXdhcmRzIHRvIHRoZSBzYW1lIGFjY291bnQgZm9yIG5vbi1yZWZlcnJlZCBjYW5kaWRhdGVzLikBVGhlIGFwcCBpcyByZXNwb25zaWJsZSBmb3IgYW55IGFkZGl0aW9uYWwgcHJpdmFjeSBoYW5kbGluZyBhZnRlciB0cmFuc2Zlci4YcmVyb2xsAAUAGGNvbW1pdAgBGGNob2ljZXUEASRJbmtDaG9pY2UAAShyZXF1aXJlX2lkFQMBSE9wdGlvbjxQZXJzb25hbElkPgAGFEkBQ29tbWl0IHRvIGEgZGVzaWduIGFuZCBhdXRob3JpemUgdGhlIHN0b3JhZ2UgZm9yIChwb3NzaWJseSBqdXN0IGluaXRpYWwpIGV2aWRlbmNlLgBVAUlmIGEgc3BlY2lmaWMgcGVyc29uYWwgaWRlbnRpdHkgaXMgcmVxdWlyZWQsIHRoZW4gdGhpcyBjYW4gYmUgcGxhY2VkIGluIGByZXF1aXJlX2lkYC5BAVRoaXMgY2FuIGJlIGFueSB1bnVzZWQvdW5yZXNlcnZlZCBwZXJzb25hbCBpZGVudGl0eSBubyBncmVhdGVyIHRoYW4gdGhlIGBOZXh0SWRgIGNvdW50ZXIuNGFsbG9jYXRlX2Z1bGwABwAcdGltZW91dAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQACAw5AU9uY2UgYSB0aW1lb3V0IHBhc3NlcywgcmVtb3ZlcyBhIGNhbmRpZGF0ZSB3aG8gaXMgc2VsZWN0ZWQgYnV0IG5vdCB5ZXQgcHJvdmVuLlkBSWYgdGhlIGNhbmRpZGF0ZSB3YXMgcmVmZXJyZWQgdGhlbiByZWZlcnJhbCBpcyBiYWQsIGlmIGNhbmRpZGF0ZSBhcHBsaWVkIHdpdGggZGVwb3NpdCxMZGVwb3NpdCBpcyBzbGFzaGVkLiBmbGFrZW91dAAJBLRSZW1vdmUgYSBjYW5kaWRhdGUgd2hvIGhhcyBub3QgeWV0IGNvbW1pdHRlZC5QYXBwbHlfd2l0aF9zaWduYXR1cmUMASByZWZlcnJlcigBKFBlcnNvbmFsSWQAASRzaWduYXR1cmU9BAFIVDo6VGlja2V0U2lnbmF0dXJlAAEYdGlja2V0BAEkVDo6VGlja2V0AAoQdFV0aWxpemUgYSByZWZlcnJhbCBzaWduYXR1cmUuAF0BVGhlIHBheWxvYWQgdG8gYmUgc2lnbmVkIGJ5IHRoZSByZWZlcnJlciB1c2luZyB0aGVpciByZWdpc3RlcmVkIGtleSBwYWlyIGlzIHRoZSBlbmNvZGVkpGJ5dGVzIG9mIHRoZSBhY2NvdW50IElEIG9mIHRoZSBjYW5kaWRhdGUuVGFwcGx5X3dpdGhfaW52aXRhdGlvbgwBHGludml0ZXIEATBUOjpBY2NvdW50SWQAARh0aWNrZXQEASxUaWNrZXRPZjxUPgABJHNpZ25hdHVyZT0EAUhUOjpUaWNrZXRTaWduYXR1cmUAExDUQXBwbHkgdG8gdGhlIFByb29mLW9mLUluayBwcm9jZXNzIHdpdGggYW4gaW52aXRhdGlvbi4AWQFUaGUgcGF5bG9hZCB0byBiZSBzaWduZWQgYnkgdGhlIGludml0ZXIgdXNpbmcgdGhlaXIgcmVnaXN0ZXJlZCBrZXkgcGFpciBpcyB0aGUgZW5jb2RlZKRieXRlcyBvZiB0aGUgYWNjb3VudCBJRCBvZiB0aGUgY2FuZGlkYXRlLkRhZGRfZGVzaWduX2ZhbWlseQwBFGluZGV4LQMBLEZhbWlseUluZGV4AAEQa2luZHkEAShGYW1pbHlLaW5kAAEIaWQIASBGYW1pbHlJZAALBPBBZGQgYSBkZXNpZ24gZmFtaWx5LiBNdXN0IGhhdmUgcHJpdmlsZWdlZCBhY2Nlc3MgdG8gZG8gdGhpcy5Mc2V0X3JlZmVycmFsX3RpY2tldAQBGHRpY2tldAQBJFQ6OlRpY2tldAAMGLxBZGQgYSByZWZlcnJhbCB0aWNrZXQgYXNzb2NpYXRlZCB3aXRoIGEgcGVyc29uLgBVAU9ubHkgb25lIHJlZmVycmFsIHRpY2tldCBtYXkgYmUgYWN0aXZlIGF0IGFueSBnaXZlbiB0aW1lIGZvciBvbmUgcGVyc29uLiBDYWxsaW5nIHRoaXMlAWV4dHJpbnNpYyB3aGlsZSBhIHZhbGlkIHRpY2tldCBpcyBzZXQgd2lsbCBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIHRpY2tldC4AOQFJZiBhbnkgcGVuZGluZyByZWZlcnJhbCByZXdhcmRzIGFyZSBwcmVzZW50LCB0aGV5IG5lZWQgdG8gYmUgcmVnaXN0ZXJlZCBmaXJzdC5YY2FuY2VsX3JlZmVycmFsX3RpY2tldAQBGHRpY2tldAQBJFQ6OlRpY2tldAANBMhDYW5jZWwgYSByZWZlcnJhbCB0aWNrZXQgYXNzb2NpYXRlZCB3aXRoIGEgcGVyc29uLoxyZWdpc3Rlcl9zdWNjZXNzZnVsX3JlZmVycmFsX3Jld2FyZAQBLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAA4ANGdyYW50X2ludml0ZXMIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEUY291bnQ4AQx1MzIADxjkR3JhbnRzIGludml0ZXMgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBkaXN0cmlidXRlIHRoZW0uAJhUaGUgb3JpZ2luIG11c3QgYmUgYEludml0YXRpb25zT3JpZ2luLgCwLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIGdpdmUgaW52aXRlcyB0by6kLSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGludml0ZXMgdG8gZ2l2ZS6QcmVtb3ZlX2F2YWlsYWJsZV9hbmRfcGVuZGluZ19pbnZpdGVzCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFGxpbWl0OAEMdTMyABAYnFJlbW92ZSBhbGwgaW52aXRlcyBnaXZlbiB0byBhbiBhY2NvdW50LgCcVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGF0aW9uc09yaWdpbmAuANAtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gcmVtb3ZlIGFsbCBpbnZpdGVzIGZyb20u7C0gYGxpbWl0YDogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBlbmRpbmcgaW52aXRlcyB0byByZW1vdmUuRHNldF9pbnZpdGVfdGlja2V0BAEYdGlja2V0BAEsVGlja2V0T2Y8VD4AERRISW52aXRlIGFuIGFjY291bnQuAA0BVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCBoYXZlIHNvbWUgaW52aXRlcyBsZWZ0LgCULSBgdGlja2V0YDogVGhlIGludml0ZSB0aWNrZXQgdG8gc2V0LlBjYW5jZWxfaW52aXRlX3RpY2tldAQBGHRpY2tldAQBLFRpY2tldE9mPFQ+ABIUVENhbmNlbCBhbiBpbnZpdGF0aW9uLgAhAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgdGhlIGFjY291bnQgdGhhdCBvd25zIHRoZSB0aWNrZXQgdG8gY2FuY2VsLgCgLSBgdGlja2V0YDogVGhlIGludml0ZSB0aWNrZXQgdG8gY2FuY2VsLkRzZXRfY29uZmlndXJhdGlvbgQBGGNvbmZpZ30EAXxDb25maWdSZWNvcmQ8QmxvY2tOdW1iZXJGb3I8VD4+ADIEFQFTZXQgdGhlIGNvbmZpZ3VyYXRpb24gcmVjb3JkLiBNdXN0IGhhdmUgcHJpdmlsZWdlZCBhY2Nlc3MgdG8gZG8gdGhpcy5gc2V0X3JlaW1idXJzZW1lbnRfdmFsdWVzCAE8cmVmZXJyZWRfdmFsdWVzgQQB6EJvdW5kZWRWZWM8KEJhbGFuY2VPZjxUPiwgdTMyKSwgVDo6TWF4UmVpbWJ1cnNlbWVudFZhbHVlcz4AATxyZWZlcnJlcl92YWx1ZXOBBAHoQm91bmRlZFZlYzwoQmFsYW5jZU9mPFQ+LCB1MzIpLCBUOjpNYXhSZWltYnVyc2VtZW50VmFsdWVzPgAzKE0BU2V0IHRoZSB2YWx1ZXMgb2YgdGhlIHJlaW1idXJzZW1lbnQgYXdhcmRlZCB0byByZWZlcnJlZCBjYW5kaWRhdGVzIGFzIHdlbGwgYXMgdGhlaXJNAXJlZmVycmVycywgYWxvbmcgd2l0aCB0aGUgbnVtYmVyIG9mIHJlaW1idXJzZW1lbnRzIGZvciBlYWNoIHZhbHVlLiBUaGVzZSB2YWx1ZXMgYXJlJHN0b3JlZCBpblEBcmV2ZXJzZSBvcmRlciBvZiB0aGVpciBwcmlvcml0eSwgc28gdGhlIGxhc3QgdmFsdWUgaW4gdGhlIGxpc3Qgd2lsbCBiZSB0aGUgZmlyc3Qgb25lSQF0byBiZSB1c2VkIGJ5IHRoZSByZWltYnVyc2VtZW50IHN5c3RlbS4gVGhlIGxlbmd0aCBvZiB0aGUgdHdvIGxpc3RzIG11c3QgYmUgZXF1YWwuACBXQVJOSU5HIQBNAUFmdGVyIHRoZSBudW1iZXIgb2YgcmVpbWJ1cnNlbWVudHMgaXMgZXhoYXVzdGVkIGZvciBhIHZhbHVlIGluIHRoZSBsaXN0LCB0aGUgcGFsbGV09HN0YXJ0cyB1c2luZyB0aGUgbmV4dCB2YWx1ZSBpbW1lZGlhdGVseSBmb3IgZnV0dXJlIHRyYW5zZmVycy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMudQQMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0JElua0Nob2ljZQABFEBEZXNpZ25lZEVsZWN0aXZlCAAtAwEsRmFtaWx5SW5kZXgAAC0DASxEZXNpZ25JbmRleAAAAERQcm9jZWR1cmFsQWNjb3VudAQALQMBLEZhbWlseUluZGV4AAEASFByb2NlZHVyYWxQZXJzb25hbAQALQMBLEZhbWlseUluZGV4AAIAKFByb2NlZHVyYWwIAC0DASxGYW1pbHlJbmRleAAADAEwVmFyaWFudEluZGV4AAMAUFByb2NlZHVyYWxEZXJpdmF0aXZlCAAoAShQZXJzb25hbElkAAAVAwFIT3B0aW9uPFBlcnNvbmFsSWQ+AAQAAHkEDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldChGYW1pbHlLaW5kAAEQIERlc2lnbmVkBAEUY291bnQtAwEsRGVzaWduSW5kZXgAAABEUHJvY2VkdXJhbEFjY291bnQAAQBIUHJvY2VkdXJhbFBlcnNvbmFsAAIAKFByb2NlZHVyYWwEARRyYW5nZQwBMFZhcmlhbnRJbmRleAADAAB9BAxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQwQ29uZmlnUmVjb3JkBCxCbG9ja051bWJlcgE4ACABOHJlcm9sbF90aW1lb3V0OAEsQmxvY2tOdW1iZXIAATxmYXN0dHJhY2tfY291bnQ4AQx1MzIAARxtYXhpbXVtOAEMdTMyAAE4ZnVsbF9hbGxvY19sZW4oAQx1NjQAAUBmdWxsX2FsbG9jX2NvdW50OAEMdTMyAAE4aW5pdF9hbGxvY19sZW4oAQx1NjQAAUBpbml0X2FsbG9jX2NvdW50OAEMdTMyAAEcdGltZW91dDgBLEJsb2NrTnVtYmVyAACBBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAYUEBFMAAAQAiQQBGFZlYzxUPgAAhQQAAAQIxDgAiQQAAAKFBACNBAxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0EENhbGwEBFQAAUhMc2lnbl91cF93aXRoX2ludml0ZQgBOGlkZW50aWZpZXJfa2V5RQQBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEcYWlyZHJvcJEEAZRPcHRpb248QWlyZHJvcFZyZjxBaXJkcm9wUHJvb2ZPZjxUPj4+AAA40FNpZ24gdXAgZm9yIHRoZSBnYW1lIHVzaW5nIGFuIGFjY291bnQgYW5kIGFuIGludml0ZS4AFQFUaGlzIGlzIGZvciBuZXcgcGxheWVycyBvciBhcmNoaXZlZCBwbGF5ZXJzLCBvdGhlciBwbGF5ZXJzIHNob3VsZCB1c2WoW2BQYWxsZXQ6OnNpZ25fdXBfd2l0aF9hY2NvdW50YF0gZm9yIGZyZWUuANRBIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVnaXN0cmF0aW9uIHBoYXNlLgBRAWBhaXJkcm9wYCBvcHRpb25hbGx5IGVudGVycyB0aGUgcGxheWVyIGludG8gdGhpcyBnYW1lJ3MgYWlyZHJvcCBkcmF3LiBQYXNzIGBOb25lYCB0b0kBc2tpcCBpdC4gV2hlbiBgU29tZWAsIGl0IGlzIHRoZSBwbGF5ZXIncyBWUkYsIHdoaWNoIGJvdGggc2VlZHMgdGhlaXIgZHJhdyBzbG90IGFuZF0BcHJvdmVzIHRoZWlyIGlkZW50aXR5IHBhdGg6IHRoZSBhbGlhcyB2YXJpYW50IGlmIHRoZSBwbGF5ZXIgaXMgcmVjb2duaXplZCAocGFsbGV0LXNjb3JlYQFgcmVjb2duaXRpb25gIGlzIGBSZWNvZ25pemVkYCBvciBgRXh0ZXJuYWxseVJlY29nbml6ZWRgKSwgb3RoZXJ3aXNlIHRoZSBhY2NvdW50IHZhcmlhbnQu5FNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBbYEFpcmRyb3BWcmZgXSBmb3IgbW9yZSBkZXRhaWxzLgBBAVRoZSBvcmlnaW4gbXVzdCBiZSBhIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCB1c2UgdGhlIGBHYW1lQXNJbnZpdGVkYCBleHRlbnNpb24uUHNpZ25fdXBfd2l0aF9hY2NvdW50CAE4aWRlbnRpZmllcl9rZXlFBAFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAARxhaXJkcm9wkQQBlE9wdGlvbjxBaXJkcm9wVnJmPEFpcmRyb3BQcm9vZk9mPFQ+Pj4AATyYU2lnbiB1cCBmb3IgdGhlIGdhbWUgdXNpbmcgYW4gYWNjb3VudC4APQFJZiB0aGUgcGxheWVyIGlzIG5ldyBvciBhcmNoaXZlZCwgdGhlbiBhIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIubE90aGVyd2lzZSB0aGUgY2FsbCBpcyBmcmVlLgDUQSBnYW1lIG11c3QgYmUgb25nb2luZyBhbmQgaW4gaXRzIHJlZ2lzdHJhdGlvbiBwaGFzZS4AUQFgYWlyZHJvcGAgb3B0aW9uYWxseSBlbnRlcnMgdGhlIHBsYXllciBpbnRvIHRoaXMgZ2FtZSdzIGFpcmRyb3AgZHJhdy4gUGFzcyBgTm9uZWAgdG9JAXNraXAgaXQuIFdoZW4gYFNvbWVgLCBpdCBpcyB0aGUgcGxheWVyJ3MgVlJGLCB3aGljaCBib3RoIHNlZWRzIHRoZWlyIGRyYXcgc2xvdCBhbmRdAXByb3ZlcyB0aGVpciBpZGVudGl0eSBwYXRoOiB0aGUgYWxpYXMgdmFyaWFudCBpZiB0aGUgcGxheWVyIGlzIHJlY29nbml6ZWQgKHBhbGxldC1zY29yZWEBYHJlY29nbml0aW9uYCBpcyBgUmVjb2duaXplZGAgb3IgYEV4dGVybmFsbHlSZWNvZ25pemVkYCksIG90aGVyd2lzZSB0aGUgYWNjb3VudCB2YXJpYW50LuRTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgW2BBaXJkcm9wVnJmYF0gZm9yIG1vcmUgZGV0YWlscy4AMQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yLCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgdXNlfGBTY29yZUFzUGFydGljaXBhbnRgIGV4dGVuc2lvbi5Ic2lnbl91cF93aXRoX2FsaWFzEAE4aWRlbnRpZmllcl9rZXlFBAFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAAURzdGF0ZW1lbnRfYWNjb3VudAQBMFQ6OkFjY291bnRJZAABDHNpZz0EAUxUOjpBY2NvdW50U2lnbmF0dXJlAAEcYWlyZHJvcJEEAZRPcHRpb248QWlyZHJvcFZyZjxBaXJkcm9wUHJvb2ZPZjxUPj4+AAJcVFNpZ24gdXAgZm9yIHRoZSBnYW1lLgBVAUlmIGEgcGxheWVyIGlzIGFscmVhZHkgcmVjb2duaXplZCBieSBhbm90aGVyIERJTSwgdGhleSBjYW4gc2lnbiB1c2luZyB0aGVpciBhbGlhcyBhbmQRAWRvbid0IG5lZWQgYW55IGRlcG9zaXQgb3IgaW52aXRlIHRvIHByb3ZlIHRoZWlyIGluaXRpYWwgY3JlZGliaWxpdHkuYQFPbiB0b3Agb2YgdGhpcyB0aGVpciBzY29yZSBpcyBuZXZlciBnb2luZyBiZWxvdyBwZXJzb25ob29kIHRocmVzaG9sZCBhbmQgdGhlIHBsYXllciB3aWxsTG5ldmVyIGdldCBhcmNoaXZlZC4A1EEgZ2FtZSBtdXN0IGJlIG9uZ29pbmcgYW5kIGluIGl0cyByZWdpc3RyYXRpb24gcGhhc2UuAJBUaGUgb3JpZ2luIG11c3QgYmUgYSBwZXJzb25hbCBhbGlhcy4ALFBhcmFtZXRlcnM6YQEtIGBzdGF0ZW1lbnRfYWNjb3VudGA6IHRoZSBhY2NvdW50IGlkIHRvIHVzZSB0byBpbnRlcmFjdCB3aXRoIHRoZSBzdGF0ZW1lbnQgc3RvcmUgZHVyaW5nLCAgdGhlIGdhbWUuVQEtIGBzaWdgOiB0aGUgcHJvb2Ygb2Ygb3duZXJzaGlwIG9mIHRoZSBhY2NvdW50IGBzdGF0ZW1lbnRfYWNjb3VudGAgYnkgYW4gYWxpYXMsIGl0IGlzXQEgIHRoZSBzaWduYXR1cmUgb2YgdGhlIG1lc3NhZ2UgYCJwb3A6Z2FtZTpzdG10X2FjY291bnRfZm9yX2FsaWFzOiJgIGNvbmNhdGVuYXRlZCB0byB0aGVJASAgYWxpYXMsIGFuZCB0aGVuIGhhc2hlZCB3aXRoIGBibGFrZTJfMjU2YCAoYmxha2UyIDI1NmJpdCBvdXRwdXQpLiBUaGUgYmFzZSBvZiB0aGUZASAgbWVzc2FnZSBjYW4gYmUgZm91bmQgaW4gdGhlIGNvbnN0YW50OiBgcHJvb2Zfb2Zfb3duZXJzaGlwX21zZ19iYXNlYC5dAS0gYGFpcmRyb3BgOiBvcHRpb25hbGx5IGVudGVycyB0aGUgcGxheWVyIGludG8gdGhpcyBnYW1lJ3MgYWlyZHJvcCBkcmF3LCBQYXNzIGBOb25lYCB0b1EBICBza2lwIGl0LiBXaGVuIGBTb21lYCwgaXQgaXMgdGhlIHBsYXllcidzIFZSRiwgd2hpY2ggYm90aCBzZWVkcyB0aGVpciBkcmF3IHNsb3QgYW5kWQEgIHByb3ZlcyB0aGVpciBpZGVudGl0eSBwYXRoOiB0aGUgYWxpYXMgVlJGIG11c3QgYmUgdXNlZCBmb3IgYWxpYXMtYmFzZWQgcGxheWVycyBnaXZlbl0BICB0aGV5IGFyZSByZWNvZ25pemVkIGluIHBhbGxldC1zY29yZSBwYXJ0aWNpcGFudCBpbmZvcm1hdGlvbi4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mgCAgYEFpcmRyb3BWcmZgIGZvciBtb3JlIGRldGFpbHMuGHJlcG9ydAQBLGZ1bGxfcmVwb3J0nQQBNEZ1bGxSZXBvcnQ8VD4AAyyUQWZ0ZXIgdGhlIGdhbWUsIHNlbmQgdGhlIGZ1bGwgcmVwb3J0LgDQVGhlIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVwb3J0aW5nIHBoYXNlLgBVAVRoZSBvcmlnaW4gbXVzdCBiZSBhbiBhbGlhcywgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCB1c2V8YFNjb3JlQXNQYXJ0aWNpcGFudGAgZXh0ZW5zaW9uLgBJAUFmdGVyIHRoZSB2b3RlcyBmcm9tIHRoZSByZXBvcnQgYXJlIGNvdW50ZWQsIHRoZSByZXBvcnRlciBhbmQgZWFjaCBvZiB0aGUgcmVwb3J0ZWRFAXBsYXllcnMgd2hvc2UgYXR0ZW5kYW5jZSBjYW4gbm93IGJlIGRldGVybWluZWQgYXJlIHByb2Nlc3NlZCBlYXJseS4gVGhpcyBsZXRzIHRoZU0BZ2FtZSBza2lwIHRoZSBwbGF5ZXItcHJvY2VzcyBwaGFzZSBlbnRpcmVseSB3aGVuIGV2ZXJ5IHBsYXllciBoYXMgYmVlbiBwcm9jZXNzZWQgYnlUdGhlIGVuZCBvZiByZXBvcnRpbmcuIG9mZmJvYXJkAAQcgE9mZmJvYXJkIGEgcGxheWVyIGZyb20gdGhlIGdhbWUuAFUBVGhlIG9yaWdpbiBtdXN0IGJlIGFuIGFsaWFzLCBvciBzaWduZWQgYnkgYW4gYWNjb3VudCwgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIHVzZXxgU2NvcmVBc1BhcnRpY2lwYW50YCBleHRlbnNpb24uAF0BVGhlcmUgbXVzdCBiZSBubyBnYW1lIG9yIHRoZSBleGlzdGluZyBnYW1lIG11c3QgYmUgaW4gcmVnaXN0cmF0aW9uIHBoYXNlIGFuZCB0aGUgcGxheWVylG11c3QgaGF2ZSBub3Qgc2lnbmVkIHVwIGZvciB0aGUgZ2FtZS4ca2lja291dAQBGHBsYXllcgQBMFQ6OkFjY291bnRJZAAFGDEBS2lja291dCBhIGtpY2thYmxlIHBsYXllciB0aGF0IGlzIG5vdCBwbGF5aW5nIGFmdGVyIGBOb25QbGF5aW5nS2lja291dFRpbWVgLgCgVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSBhbiBhY2NvdW50LgAhAS0gYHBsYXllcmA6IFRoZSBwbGF5ZXIgdG8ga2lja291dC4gSXQgbXVzdCBiZSBhcmNoaXZlZCBhbmQga2lja2FibGUgd2l0aNggIGBhcmNoaXZlZF9zaW5jZWAgb2xkZXIgdGhhbiBgTm9uUGxheWluZ0tpY2tvdXRUaW1lYC40Z3JhbnRfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAGGPRHcmFudCBzb21lIGludml0ZXMgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBkaXN0cmlidXRlIHRoZW0uAIhUaGUgb3JpZ2luIG11c3QgYmUgYEludml0ZUlzc3VlcmAuALQtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gZ3JhbnQgaW52aXRlcyB0by6oLSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGludml0ZXMgdG8gZ3JhbnQukHJlbW92ZV9hdmFpbGFibGVfYW5kX3BlbmRpbmdfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRsaW1pdDgBDHUzMgAHGJhDbGVhciBhbGwgaW52aXRlcyBnaXZlbiB0byBhbiBhY2NvdW50LgCIVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGVJc3N1ZXJgLgDQLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgaW52aXRlcyBmcm9tLuwtIGBsaW1pdGA6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIGludml0ZXMgdG8gcmVtb3ZlLkRzZXRfaW52aXRlX3RpY2tldAQBGHRpY2tldAQBLFRpY2tldE9mPFQ+AAgUSEludml0ZSBhbiBhY2NvdW50LgANAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGludml0ZXMgbGVmdC4AlC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIHNldC5QY2FuY2VsX2ludml0ZV90aWNrZXQEARh0aWNrZXQEASxUaWNrZXRPZjxUPgAJFERDYW5jZWwgYW4gaW52aXRlLgAhAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgdGhlIGFjY291bnQgdGhhdCBvd25zIHRoZSB0aWNrZXQgdG8gY2FuY2VsLgCgLSBgdGlja2V0YDogVGhlIGludml0ZSB0aWNrZXQgdG8gY2FuY2VsLjhzY2hlZHVsZV9nYW1lcwQBPGdhbWVzX3NjaGVkdWxlc7EEAVhWZWM8R2FtZVNjaGVkdWxlT2Y8VD4+AAoI0FNjaGVkdWxlcyBuZXcgZ2FtZXMgYWNjb3JkaW5nIHRvIHByb3ZpZGVkIHNjaGVkdWxlcy5dAVNjaGVkdWxlcyBtdXN0IGJlIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIsIGFuZCBhZnRlciB0aGUgb25nb2luZyBnYW1lIChpZiB0aGVyZSBpcyBhbnkpLlRyZW1vdmVfc2NoZWR1bGVkX2dhbWUEAThnYW1lX3BsYXlfdGltZTgBDHUzMgALAEBzZXRfcGxheV9kZXBvc2l0BAEYYW1vdW50xAFITmF0aXZlQmFsYW5jZU9mPFQ+ABAEFQFVcGRhdGUgdGhlIGNvbmZpZ3VyZWQgcGxheSBkZXBvc2l0IGFtb3VudCBmb3IgZnV0dXJlIGFjY291bnQgc2lnbnVwcy40Y2xhaW1fYWlyZHJvcAgBKGdhbWVfaW5kZXg4AQx1MzIAASxiZW5lZmljaWFyeQQBMFQ6OkFjY291bnRJZAARMAEBQ2xhaW0gYSBwcml6ZSBmcm9tIHRoZSBhaXJkcm9wIGV2ZW50IHNjaGVkdWxlZCBmb3IgYGdhbWVfaW5kZXhgLgBhAUVsaWdpYmlsaXR5IHJlcXVpcmVzIDIgY29uZGl0aW9ucyBvbiB0aGUgY2xhaW1hbnQgdG8gYmUgcmVjb2duaXplZCBhbmQgaGF2ZSBhdHRlbmRlZCB0aGVYZ2FtZS4gSW4gbW9yZSBkZXRhaWxzOlEBKiB0byBiZSBlaXRoZXIgcmVjb2duaXplZCBpbiBwYWxsZXQtc2NvcmUgKGByZWNvZ25pdGlvbi5pc19yZWNvZ25pemVkKClgKSBvciB0byBoYXZl2CAgcmVhY2hlZCB0aGUgcGVyc29uaG9vZCBzY29yZSAoYHJlYWNoZWRfcGVyc29uaG9vZGApLGEBKiBBTkQgZm9yIGBnYW1lX2luZGV4YCB0byBtYXRjaCB0aGUgcGFydGljaXBhbnQncyBgbGFzdF9hdHRlbmRlZF9nYW1lYCDigJQgaS5lLiB0aGUgbW9zdFEBICByZWNlbnQgZ2FtZSB0aGUgY2xhaW1hbnQgYWN0dWFsbHkgYXR0ZW5kZWQgbXVzdCBiZSBleGFjdGx5IHRoZSBnYW1lIHRoZSBhaXJkcm9wIGlzVQEgIHRpZWQgdG8uIFN1YnNlcXVlbnQgZ2FtZSBhdHRlbmRhbmNlIG92ZXJyaWRlcyB0aGlzIGluZm9ybWF0aW9uIHNvIHRoZSBjbGFpbSBtdXN0IGJllCAgbWFkZSBiZWZvcmUgYXR0ZW5kaW5nIGFub3RoZXIgZ2FtZS4AtENsYWltcyBhZ2FpbnN0IGEgY2FuY2VsbGVkIGdhbWUgYXJlIHJlamVjdGVkLmx0ZXN0bmV0X2ZvcmNlX3N0YXJ0X3NodWZmbGUAZQzURm9yY2Ugc3RhcnQgdGhlIHNodWZmbGUgYmVmb3JlIGl0cyBub3JtYWwgc3RhcnQgdGltZS4ATQFUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgdGhlIHJvb3Qgb3JpZ2luIGFuZCBpcyBvbmx5IG1lYW50IGZvciB0ZXN0aW5nLmx0ZXN0bmV0X2ZvcmNlX2VuZF9yZXBvcnRpbmcAZgz4Rm9yY2UgZW5kIGEgZ2FtZSdzIHJlcG9ydGluZyBwaGFzZSBiZWZvcmUgaXRzIG5vcm1hbCBlbmQgdGltZS4ATQFUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgdGhlIHJvb3Qgb3JpZ2luIGFuZCBpcyBvbmx5IG1lYW50IGZvciB0ZXN0aW5nLjxzZXRfZ2FtZV9waGFzZXMEARhwaGFzZXPFBAFMUGhhc2VEdXJhdGlvblZhbHVlcwAOLIhPdmVycmlkZSB0aGUgZ2FtZSBwaGFzZSBkdXJhdGlvbnMuACkBUmVzdHJpY3RlZCB0byBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdIChvciByb290KS4gVW50aWwgcmVzZXQsIGFsbCBmdXR1cmU1AWdhbWUgc2NoZWR1bGVzIHVzZSB0aGVzZSBwaGFzZXMgaW5zdGVhZCBvZiBbYENvbmZpZzo6RGVmYXVsdFBoYXNlRHVyYXRpb25zYF0uDQFUbyByZXZlcnQsIHRoZSBtYW5hZ2VyIHJlLWlzc3VlcyB0aGUgY2FsbCB3aXRoIHRoZSBkZXNpcmVkIGV4cGxpY2l0wHZhbHVlcyDigJQgdGhlcmUgaXMgbm8gc2VwYXJhdGUgY2xlYXIgZXh0cmluc2ljLgAZAU9ubHkgY2FsbGFibGUgd2hpbGUgbm8gZ2FtZSBleGlzdHMgb3IgdGhlIGN1cnJlbnQgZ2FtZSBpcyBzdGlsbCBpbiBpdHMpAVJlZ2lzdHJhdGlvbiBwaGFzZTsgb3RoZXJ3aXNlIGZhaWxzIHdpdGggW2BFcnJvcjo6SW52YWxpZEdhbWVTdGF0ZWBdLiBUaGlzHQFwcmV2ZW50cyBjaGFuZ2luZyBwaGFzZSBkdXJhdGlvbnMgb25jZSBwbGF5ZXJzIGhhdmUgY29tbWl0dGVkIHRvIGEgZ2FtZYh3aG9zZSB0aW1pbmcgaXMgYWxyZWFkeSBsb2NrZWQgaW4uRGtpbGxfY3VycmVudF9nYW1lAA8Q6EtpbGwgdGhlIGN1cnJlbnQgZ2FtZSwgcmVnYXJkbGVzcyBvZiB3aGljaCBwaGFzZSBpdCBpcyBpbi4ALQFSZXN0cmljdGVkIHRvIFtgQ29uZmlnOjpNYW5hZ2VyT3JpZ2luYF0gKG9yIHJvb3QpLiBJbnRlbmRlZCBhcyBhbiBlbWVyZ2VuY3kRAXJlY292ZXJ5IGxldmVyIHdoZW4gYSBnYW1lIGlzIHN0dWNrIG9yIGl0cyBzdGF0ZSBoYXMgYmVlbiBjb3JydXB0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpEEBBhPcHRpb24EBFQBlQQBCBBOb25lAAAAEFNvbWUEAJUEAAABAACVBAxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMoQWlyZHJvcFZyZgQEUAABCBxBY2NvdW50BACZBAEwVnJmU2lnbmF0dXJlAAAAFEFsaWFzDAEUcHJvb2Z9AwEEUAABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAAQAAmQQQHHNwX2NvcmUcc3IyNTUxOQx2cmYwVnJmU2lnbmF0dXJlAAAIAShwcmVfb3V0cHV0CAEwVnJmUHJlT3V0cHV0AAEUcHJvb2ZBBAEgVnJmUHJvb2YAAJ0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBoQQEUwAABACtBAEYVmVjPFQ+AAChBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaUEBFMAAAQAqQQBGFZlYzxUPgAApQQMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzGFJlcG9ydAABCBhQZXJzb24AAAAkTm90UGVyc29uAAEAAKkEAAACpQQArQQAAAKhBACxBAAAArUEALUEDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlczBHYW1lU2NoZWR1bGUIHEFzc2V0SWQB4BxCYWxhbmNlAcQAEAE4Z2FtZV9wbGF5X3RpbWU4AQx1MzIAARhyb3VuZHMMAQh1OAABOG1heF9ncm91cF9zaXplOAEMdTMyAAE0YWlyZHJvcF9wcml6ZbkEAZhPcHRpb248QWlyZHJvcFByaXplPEFzc2V0SWQsIEJhbGFuY2U+PgAAuQQEGE9wdGlvbgQEVAG9BAEIEE5vbmUAAAAQU29tZQQAvQQAAAEAAL0EDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBR0eXBlczBBaXJkcm9wUHJpemUIHEFzc2V0SWQB4DBBc3NldEJhbGFuY2UBxAAQASBhc3NldF9pZOABHEFzc2V0SWQAATBhc3NldF9hbW91bnTEATBBc3NldEJhbGFuY2UAASxtYXhfd2lubmVyczgBDHUzMgABKHdpbm5lcl9jYXDBBAEcUGVybWlsbAAAwQQMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJtaWxsAAAEADgBDHUzMgAAxQQMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzTFBoYXNlRHVyYXRpb25WYWx1ZXMAABgBMHJlZ2lzdHJhdGlvbjgBDHUzMgABHHNodWZmbGU4AQx1MzIAAUxwb3N0X3NodWZmbGVfbWFyZ2luOAEMdTMyAAEkcmVwb3J0aW5nOAEMdTMyAAE4cGxheWVyX3Byb2Nlc3M4AQx1MzIAAVBhaXJkcm9wX2NsYWltX3dpbmRvdzgBDHUzMgAAyQQMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQQQ2FsbAQEVAABJFhzY2hlZHVsZV9wYXlvdXRfcm91bmRzDAEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+AAEUY291bnQ4AQx1MzIAASBkdXJhdGlvbjgBREJsb2NrTnVtYmVyRm9yPFQ+AAEMXFNjaGVkdWxlIHBheW91dCByb3VuZHMuAJBDYWxsZWQgZnJvbSBgTWFuYWdlck9yaWdpbmAgb3Igcm9vdC5YcmVtb3ZlX3BheW91dF9zY2hlZHVsZQQBFGluZGV4OAEMdTMyAAIMgFJlbW92ZSBhIHNjaGVkdWxlZCBwYXlvdXQgcm91bmQuAJBDYWxsZWQgZnJvbSBgTWFuYWdlck9yaWdpbmAgb3Igcm9vdC5AdHJhbnNpdGlvbl9yb3VuZAQBLHJvdW5kX2luZGV4OAEMdTMyAAMYSFN0YXJ0IGEgbmV3IHJvdW5kLgBRAVRoaXMgaXMgdmFsaWQgaWYgdGhlIGN1cnJlbnQgcm91bmQgaXMgZmluaXNoZWQsIG9yIGlmIHRoZSBjdXJyZW50IHJvdW5kIGRvZXNuJ3QgaGF2ZahwbGFubmluZyBhbmQgYSBzY2hlZHVsZSBleGlzdHMgdG8gcGxhbiBpdC4AvFRoaXMgaXMgYSB0YXNrLCBhbmQgY2FuIGJlIGNhbGxlZCBmcm9tIGFueWJvZHkuUG9wZXJhdGVfcGF5b3V0X3JvdW5kCAEscm91bmRfaW5kZXg4AShSb3VuZEluZGV4AAEUbGltaXQ4AQx1MzIABDx4T3BlcmF0ZSBzb21lIHJvdW5kIHBheWluZyBvdXQuAFEBRHJhaW5zIHJvdW5kJ3MgcGFydGljaXBhbnRzLCB1cCB0byBhIGxpbWl0LiBGb3IgZWFjaCBwYXJ0aWNpcGFudCwgYWRkIHRoZSBjYWxjdWxhdGVkFQFyZXdhcmQgKGBiYXNlX3Jld2FyZCArIHJlbWFpbmRlcl9wb3J0aW9uYCkgdG8gdGhlaXIgYGNyZWRpdGAgYmFsYW5jZS4AYQFUaGVuLCBtb3ZlcyBmdW5kcyBvbiB0aGUgcG90IGFjY291bnQgZnJvbSBQYXlvdXQgdG8gQ3JlZGl0LCBzbyB0aGV5IGFyZSBvd2VkIHRvIHNwZWNpZmljoHBhcnRpY2lwYW50cyByYXRoZXIgdGhhbiB0aGUgcm91bmQgcG9vbC4ARQFGaW5hbGx5LCByZWxlYXNlIHRoZSBsZWZ0b3ZlciBmcm9tIHRoZSBQYXlvdXQgaG9sZCBiYWNrIHRvIHRoZSBwb3QncyBmcmVlIGJhbGFuY2VUKGZ1bmRzIGFyZSByZWN5Y2xlZCkuALxUaGlzIGlzIGEgdGFzaywgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBhbnlib2R5LgDEKiByb3VuZF9pbmRleDogVGhlIGluZGV4IG9mIHRoZSByb3VuZCB0byBvcGVyYXRlLhEBKiBsaW1pdDogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpY2lwYW50cyB0byBvcGVyYXRlIGluIHRoaXMgY2FsbC4gY2FzaF9vdXQABSRZAUNhc2ggb3V0IGhhbGYgb2YgdGhlIHNjb3JlLCByb3VuZGVkIHVwLiBDb252ZXJ0cyB0aGUgc2NvcmUgaW50byBwb2ludHMgZm9yIHRoZSBjdXJyZW50JQFwYXlvdXQgcm91bmQuIENhbGxlciBtdXN0IGhhdmUgbmV2ZXIgcmVhY2hlZCBwZXJzb25ob29kIHNpbmNlIG9uYm9hcmRpbmcuALRJdCBjYW4gYmUgY2FsbGVkIG9uY2UgcGVyIGdhbWUgc2Vzc2lvbiAoZXJhKS4APQFPcmlnaW4gbXVzdCBiZSBzaWduZWQgb3IgcGFydGljaXBhbnQgKHNpZ25lZCBleHRyaW5zaWMgdXNpbmcgU2NvcmVBc1BhcnRpY2lwYW50WHRyYW5zYWN0aW9uIGV4dGVuc2lvbikAzEFsaWFzIG9yaWdpbiBpcyBub3QgYWxsb3dlZCBhcyB0aGV5IGNhbid0IGNhc2ggb3V0LjRyZWRlZW1fY3JlZGl0BAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQABhhRAVJlZGVlbSBmdWxsIGFjY3VtdWxhdGVkIGNyZWRpdCwgdHJhbnNmZXJyaW5nIGl0IHRvIHRoZSBwcm92aWRlZCBkZXN0aW5hdGlvbiBhY2NvdW50LgDkQ3JlZGl0IGlzIGNvbnZlcnRlZCBmcm9tIHBvaW50cyBkdXJpbmcgcGF5b3V0IHByb2Nlc3NpbmcuAEkBT3JpZ2luIG11c3QgYmUgYSBwZXJzb24gYWxpYXMsIGEgc2lnbmVkIGFjY291bnQgb3IgYSBwYXJ0aWNpcGFudCAoc2lnbmVkIGV4dHJpbnNpY8B1c2luZyBTY29yZUFzUGFydGljaXBhbnQgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uKS4gcmVnaXN0ZXIEAQxrZXnNBAENAU9wdGlvbjwoTWVtYmVyT2Y8VD4sPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUpCj4ABzTwUmVnaXN0ZXIgYXMgYSBwZXJzb24sIG9yIHJlc3VtZSBwZXJzb25ob29kIGFmdGVyIHN1c3BlbnNpb24uACUBUmVxdWlyZXMgc2NvcmUgPj0gcGVyc29uaG9vZCB0aHJlc2hvbGQgKG9yIGhhdmluZyBwcmV2aW91c2x5IHJlYWNoZWQgaXQpLgBhAUlmIHRoZSBwYXJ0aWNpcGFudCB3YXMgcHJldmlvdXNseSByZWNvZ25pc2VkIGFuZCBpcyBub3cgc3VzcGVuZGVkLCB0aGV5IG11c3Qgbm90IHByb3ZpZGWIYSBrZXkuIFRoZSBleGlzdGluZyBrZXkgaXMgcmV1c2VkLgA9AUlmIHRoZSBwYXJ0aWNpcGFudCB3YXMgbmV2ZXIgcmVjb2duaXNlZCwgdGhleSBtdXN0IHByb3ZpZGUgYSBrZXkgYW5kIGEgcHJvb2Ygb2YZAW93bmVyc2hpcCAoYGtleWAgcGFyYW1ldGVyKTogYSBzaWduYXR1cmUgb3ZlciBgInBvcCByZWdpc3RlciB1c2luZyIgfHxMc2VuZGVyX2FjY291bnRfaWRgLgBFAU9yaWdpbiBtdXN0IGJlIHNpZ25lZCBvciBhIHBhcnRpY2lwYW50IChzaWduZWQgZXh0cmluc2ljIHVzaW5nIFNjb3JlQXNQYXJ0aWNpcGFudFx0cmFuc2FjdGlvbiBleHRlbnNpb24pLmhzZXRfYWJzZW5jZV9ncmFjZV9zY2hlZHVsZQQBIHNjaGVkdWxl1QQBREFic2VuY2VHcmFjZVRpZXJzAAg4fFNldCB0aGUgYWJzZW5jZSBncmFjZSBzY2hlZHVsZS4AKQFFdmVyeSB0aWVyIG11c3Qgc2F0aXNmeTogYDAgPD0gd2luZG93IDw9IDhgIGFuZCBgYWxsb3dlZF9taXNzZXMgPCB3aW5kb3dgLhUBYGFsbG93ZWRfbWlzc2VzID0gMGAgZGlzYWJsZXMgZ3JhY2UgZW50aXJlbHkgKGFueSBhYnNlbmNlIGltbWVkaWF0ZWx5KHN1c3BlbmRzKS4AJQFUaWVycyBtdXN0IGJlIHByb3ZpZGVkIGluIGFzY2VuZGluZyBvcmRlciBvZiBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAuAPxBbiBlbXB0eSBzY2hlZHVsZSBkaXNhYmxlcyB0aGUgZ3JhY2UgcGVyaW9kIGVudGlyZWx5IChpbW1lZGlhdGUdAXN1c3BlbnNpb24gb24gYW55IG1pc3NlZCBnYW1lKS4gVGhlIG5ldyByYXRpbyB0YWtlcyBlZmZlY3QgYXQgdGhlIHN0YXJ0CQFvZiB0aGUgbmV4dCByZXBvcnQgc2Vzc2lvbiB3aGVuIGB1cGRhdGVfdGhyZXNob2xkcygpYCByZWNhbGN1bGF0ZXNQYEFic2VuY2VHcmFjZVJhdGlvYC4AkENhbGxlZCBmcm9tIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LoRzZXRfcGVyc29uaG9vZF90aHJlc2hvbGRfc2NoZWR1bGUEASBzY2hlZHVsZeEEAWBQZXJzb25ob29kVGhyZXNob2xkVGllcnMACUCYU2V0IHRoZSBwZXJzb25ob29kLXRocmVzaG9sZCBzY2hlZHVsZS4AOFRpZXJzIG11c3QgYmU6MC0gbm9uLWVtcHR5LMgtIHNvcnRlZCBhc2NlbmRpbmcgYnkgYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGRgLBkBLSBjYXBwZWQgYnkgYSBmaW5hbCB0aWVyIHdpdGggYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQgPT0gdTMyOjpNQVhgLBUBLSBwZXItdGllcjogYDAgPCBzY29yZV90aHJlc2hvbGQgPD0gTUFYX1BFUlNPTkhPT0RfVEhSRVNIT0xEYCAoPSAyMSks1C0gaGF2ZSBub24tZGVjcmVhc2luZyBgc2NvcmVfdGhyZXNob2xkYCBhY3Jvc3MgdGllcnMuAAkBVGhlIG5ldyBjdXJ2ZSB0YWtlcyBlZmZlY3QgYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IHJlcG9ydCBzZXNzaW9u+HdoZW4gYHVwZGF0ZV90aHJlc2hvbGRzKClgIHJlY2FsY3VsYXRlcyBgUGVyc29uaG9vZFRocmVzaG9sZGAuAAEBQWxyZWFkeS1yZWNvZ25pemVkIHBhcnRpY2lwYW50cyBhcmUgTk9UIHJldHJvYWN0aXZlbHkgc3VzcGVuZGVkOhEBdGhlIG5ldyBiYXIgb25seSBnYXRlcyBmdXR1cmUgc2NvcmUgZXZhbHVhdGlvbnMgaW4gYHNldF9hdHRlbmRhbmNlYC4AkENhbGxlZCBmcm9tIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7NBAQYT3B0aW9uBARUAdEEAQgQTm9uZQAAABBTb21lBADRBAAAAQAA0QQAAAQICEEEANUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB2QQEUwAABADdBAEYVmVjPFQ+AADZBAxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzQEFic2VuY2VHcmFjZVRpZXIAAAwBZHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQ4AQx1MzIAARh3aW5kb3cMAQh1OAABOGFsbG93ZWRfbWlzc2VzDAEIdTgAAN0EAAAC2QQA4QQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHlBARTAAAEAOkEARhWZWM8VD4AAOUEDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXNcUGVyc29uaG9vZFRocmVzaG9sZFRpZXIAAAgBZHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQ4AQx1MzIAATxzY29yZV90aHJlc2hvbGQ4AQx1MzIAAOkEAAAC5QQA7QQMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0EENhbGwEBFQAASAscmVzZXJ2ZV9pZHMEARRjb3VudDgBDHUzMgAABIRSZXNlcnZlIGEgbnVtYmVyIG9mIHBlcnNvbmFsIElEcy5QcmVuZXdfaWRfcmVzZXJ2YXRpb24EAQhpZCgBKFBlcnNvbmFsSWQAAQS8UmVuZXcgYSBwZXJzb25hbCBJRC4gVGhlIElEIG11c3Qgbm90IGJlIGluIHVzZS5UY2FuY2VsX2lkX3Jlc2VydmF0aW9uBAEIaWQoAShQZXJzb25hbElkAAIEhENhbmNlbCBhIHBlcnNvbmFsIElEIHJlc2VydmF0aW9uLlByZWNvZ25pemVfcGVyc29uaG9vZAQBMGlkc19hbmRfa2V5c/EEAfBCb3VuZGVkVmVjPChQZXJzb25hbElkLCBNZW1iZXJPZjxUPiksIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4AAwQpAUdyYW50IHBlcnNvbmhvb2QgZm9yIGEgbGlzdCBvZiBjYW5kaWRhdGVzIHRoYXQgaGF2ZSByZXNlcnZlZCBwZXJzb25hbCBJRHMuSHN1c3BlbmRfcGVyc29uaG9vZAQBDGlkc/0EAbRCb3VuZGVkVmVjPFBlcnNvbmFsSWQsIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4ABAhdAVN1c3BlbmQgdGhlIHBlcnNvbmhvb2Qgb2YgYSBsaXN0IG9mIHJlY29nbml6ZWQgcGVvcGxlLiBUaGUgcGVvcGxlIG11c3Qgbm90IGN1cnJlbnRseSBiZShzdXNwZW5kZWQuRHJlc3VtZV9wZXJzb25ob29kBAEIaWQoAShQZXJzb25hbElkAAUEEQFSZXN1bWUgc29tZW9uZSdzIHBlcnNvbmhvb2QuIFRoZSBwZXJzb24gbXVzdCBjdXJyZW50bHkgYmUgc3VzcGVuZGVkLlhzdGFydF9tdXRhdGlvbl9zZXNzaW9uAAYIXQFTdGFydCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgZG9lcyBub3QgY2hlY2slAXdoZXRoZXIgYSBtdXRhdGlvbiBzZXNzaW9uIGlzIGFscmVhZHkgb25nb2luZyBhbmQgY2FuIHN0YXJ0IG5ldyBzZXNzaW9ucy5QZW5kX211dGF0aW9uX3Nlc3Npb24ABxBdAUVuZCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgY2FuIGVuZCBtdWx0aXBsZeBtdXRhdGlvbiBzZXNzaW9ucywgZXZlbiBvbmVzIG5vdCBzdGFydGVkIGJ5IHRoaXMgcGFsbGV0LgDYVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBubyBtdXRhdGlvbiBzZXNzaW9uIGlzIG9uZ29pbmcuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvEEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB9QQEUwAABAD5BAEYVmVjPFQ+AAD1BAAABAgoCAD5BAAAAvUEAP0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKARTAAAEAAEFARhWZWM8VD4AAAEFAAACKAAFBQxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlGHBhbGxldBBDYWxsBARUAAEYeGluY3JlYXNlX2F0dGVzdGF0aW9uX2FsbG93YW5jZQgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAAGCUBR3JhbnQgc29tZSBhdHRlc3RhdGlvbiBhbGxvd2FuY2UgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBhdHRlc3QgcGVvcGxlLgDEVGhlIG9yaWdpbiBtdXN0IGJlIGBBdHRlc3RhdGlvbkFsbG93YW5jZU1hbmFnZXJgLgDILSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIGdyYW50IGF0dGVzdGF0aW9ucyB0by68LSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGF0dGVzdGF0aW9ucyB0byBncmFudC5sY2xlYXJfYXR0ZXN0YXRpb25fYWxsb3dhbmNlBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFLxDbGVhciBhbGwgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIGZvciBhbiBhY2NvdW50LgDEVGhlIG9yaWdpbiBtdXN0IGJlIGBBdHRlc3RhdGlvbkFsbG93YW5jZU1hbmFnZXJgLgDkLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgYXR0ZXN0YXRpb25zIGZyb20uGGF0dGVzdBQBJGNhbmRpZGF0ZQQBMFQ6OkFjY291bnRJZAABTGNhbmRpZGF0ZV9zaWduYXR1cmU9BAFcVDo6QXR0ZXN0YXRpb25TaWduYXR1cmUAATByaW5nX3ZyZl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcEEEAThTaWduYXR1cmVPZjxUPgABVGNvbnN1bWVyX3JlZ2lzdHJhdGlvbgkFAaxPcHRpb248TGl0ZUNvbnN1bWVyUmVnaXN0cmF0aW9uUGFyYW1zT2Y8VD4+AAKESEF0dGVzdCBhbiBhY2NvdW50LgBFAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGF0dGVzdGF0aW9uIGFsbG93YW5jZSBsZWZ0LgDwVGhlIGF1dGhvcml0eSB3aWxsIGhhdmUgdG8gZ2V0IHR3byBzaWduYXR1cmVzIGZyb20gdGhlIHVzZXI6TQEtIG9uZSBjcmVhdGVkIHVzaW5nIHRoZWlyIGFjY291bnQga2V5IGF0dGVzdGluZyB0byB0aGUgb3duZXJzaGlwIG9mIHRoZSBgY2FuZGlkYXRlYCggIGFjY291bnQ7XQEtIG9uZSBjcmVhdGVkIHVzaW5nIHRoZWlyIHJpbmctdnJmIGtleSBhdHRlc3RpbmcgdG8gdGhlIG93bmVyc2hpcCBvZiB0aGUgYHJpbmdfdnJmX2tleWAYICBrZXkuAGEBVGhlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkIGJ5IGJvdGgga2V5cyBmcm9tIHdoaWNoIHRoZSBzaWduYXR1cmVzIGFyZSBnZW5lcmF0ZWQgaXMgY3JlYXRlZFUBYnkgY29uY2F0ZW5hdGluZyB0aGUgYnl0ZXMgInBvcDpwZW9wbGUtbGl0ZTpyZWdpc3RlciB1c2luZyIgd2l0aCB0aGUgZW5jb2RlZCBieXRlcyBvZi0BdGhlIHVzZXIncyBhY2NvdW50IChgY2FuZGlkYXRlYCksIGFuZCB0aGUgZW5jb2RlZCBieXRlcyBvZiB0aGUgcmluZyBWUkYga2V5RChgcmluZ192cmZfa2V5YCkuAFhPbiBzdWNjZXNzLCB0aGlzIGNhbGw6wC0gc3RvcmVzIGxpdGUgcmVnaXN0cmF0aW9uIGRhdGEgaW4gYExpdGVQZW9wbGVgLPQtIGFkZHMgdGhlIHVzZXIncyByaW5nIFZSRiBrZXkgdG8gdGhlIGxpdGUgbWVtYmVyIGNvbGxlY3Rpb24uAC0BVGhlIGxpdGUgbWVtYmVyIGNvbGxlY3Rpb24gbXVzdCBhbHJlYWR5IGhhdmUgYmVlbiBpbml0aWFsaXplZCBieSBgb25fcG9sbGAuAPwtIGBjYW5kaWRhdGVgOiBUaGUgY2FuZGlkYXRlIHRvIGJlIHJlY29nbml6ZWQgYXMgYSBsaXRlIHBlcnNvbi5hAS0gYGNhbmRpZGF0ZV9zaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlLCBwcm92aWRlZCBieSB0aGUgY2FuZGlkYXRlLCB0byBhbGxvdyB0aGUgYXR0ZXN0ZXLcICB0byBjb21wbGV0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3Mgb24gdGhlaXIgYmVoYWxmLiUBLSBgcmluZ192cmZfa2V5YDogVGhlIHJpbmcgVlJGIGtleSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpdGUgcGVyc29uLl0BLSBgcmluZ192cmZfa2V5X3NpZ25hdHVyZWA6IFRoZSByaW5nIFZSRiBzaWduYXR1cmUsIHByb3ZpZGVkIGJ5IHRoZSBjYW5kaWRhdGUsIHRvIGFsbG93VQEgIHRoZSBhdHRlc3RlciB0byBjb21wbGV0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuIFRoaXMgYWxzbyBwcm92ZSB0aGUgb3duZXJzaGlwIG9mkCAgdGhlIHJpbmcgVlJGIGtleSBieSB0aGUgY2FuZGlkYXRlLl0BLSBjb25zdW1lcl9yZWdpc3RyYXRpb246IE9wdGlvbmFsIHBhcmFtZXRlciB3aGljaCBjYW4gY29udGFpbiB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uXQEgIHRvIGZvcndhcmQgYSBjb25zdW1lciByZWdpc3RyYXRpb24gcmVxdWVzdCB0byB0aGUgYExpdGVDb25zdW1lclJlZ2lzdHJhcmAgc2VydmljZS4gSWZRASAgcHJlc2VudCwgaXQgYWxzbyBjb250YWlucyBhIHNpZ25hdHVyZSBjcmVhdGVkIGJ5IHRoZSB1c2VyIGluIG9yZGVyIHRvIHZhbGlkYXRlIHRoZSUBICBpbnRlbnQuIE1vcmUgaW5mb3JtYXRpb24gb24gdGhlIHNpZ25pbmcgcGF5bG9hZCBnZW5lcmF0aW9uIGF2YWlsYWJsZSBpbuwgIFt0eXBlczo6TGl0ZUNvbnN1bWVyUmVnaXN0cmF0aW9uUGFyYW1zOjpzaWduaW5nX3BheWxvYWRdLkhkaXNwYXRjaF9hc19zaWduZXIEARBjYWxsIAFMQm94PFQ6OlJ1bnRpbWVDYWxsPgAFAERzZXRfYWxpYXNfYWNjb3VudAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAATh2YWxpZF9hdF9ibG9jazgBREJsb2NrTnVtYmVyRm9yPFQ+AAYQtFNldCB0aGUgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggYSBsaXRlIGFsaWFzLgC0VGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgdmFsaWRfYXRfYmxvY2tgIHVudGlsxGB2YWxpZF9hdF9ibG9jayArIGFjY291bnRfc2V0dXBfYmxvY2tfdG9sZXJhbmNlYC5MdW5zZXRfYWxpYXNfYWNjb3VudAAHAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4JBQQYT3B0aW9uBARUAQ0FAQgQTm9uZQAAABBTb21lBAANBQAAAQAADQUMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRR0eXBlc3hMaXRlQ29uc3VtZXJSZWdpc3RyYXRpb25QYXJhbXMIJEFjY291bnRJZAEEJFNpZ25hdHVyZQE9BAAUASRzaWduYXR1cmU9BAEkU2lnbmF0dXJlAAEcYWNjb3VudAQBJEFjY291bnRJZAABOGlkZW50aWZpZXJfa2V5RQQBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEgdXNlcm5hbWVJBAEgVXNlcm5hbWUAAURyZXNlcnZlZF91c2VybmFtZREFAUBPcHRpb248VXNlcm5hbWU+AAARBQQYT3B0aW9uBARUAUkEAQgQTm9uZQAAABBTb21lBABJBAAAAQAAFQUMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMYcGFsbGV0EENhbGwEBFQAATRQcmVnaXN0ZXJfbGl0ZV9wZXJzb24MAThpZGVudGlmaWVyX2tleUUEAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABIHVzZXJuYW1lSQQBIFVzZXJuYW1lAAFEcmVzZXJ2ZWRfdXNlcm5hbWURBQFAT3B0aW9uPFVzZXJuYW1lPgAABJRSZWdpc3RlciBhIGxpdGUgcGVyc29uIGFzIGEgY29uc3VtZXIuPHJlZ2lzdGVyX3BlcnNvbgwBUGxpbmtlZF9saXRlX2lkZW50aXR5BAEwVDo6QWNjb3VudElkAAFMbGl0ZV9pZGVudGl0eV9wcm9vZj0EAVBUOjpPZmZjaGFpblNpZ25hdHVyZQABPHVzZXJuYW1lX2Nob2ljZRkFAVhQZXJzb25hbFVzZXJuYW1lQ2hvaWNlAAEknFJlZ2lzdGVyIGEgcHJvdmVuIHBlcnNvbiBhcyBhIGNvbnN1bWVyLgBdAVRoZSBwZXJzb24gbXVzdCBsaW5rIGEgcHJldmlvdXNseSByZWNvZ25pemVkIGxpdGUgaWRlbnRpdHksIHdoaWNoIHdpbGwgYmUgdXBncmFkZWQgdG8gYVkBZnVsbCBwZXJzb24gY29uc3VtZXIuIEluIG9yZGVyIHRvIHByb3ZlIHRoZXkgaG9sZCB0aGUgbGl0ZSBpZGVudGl0eSB0aGV5IHdhbnQgdG8gbGluayxhAXVzZXJzIG11c3QgcHJvdmlkZSBhIGBsaXRlX2lkZW50aXR5X3Byb29mYCBzaWduYXR1cmUsIGNyZWF0ZWQgYnkgc2lnbmluZyB0aGUgYWxpYXMgYnl0ZXOIdXNpbmcgdGhlaXIgbGl0ZSBjb25zdW1lciBhY2NvdW50LgA5AVRoZSBjb25zdW1lciBjYW4gY2hvb3NlIGlmIHRoZXkgd2FudCB0byBoYXZlIGEgbmV3IHVzZXJuYW1lIG9yIHVzZSBhbiBleGlzdGluZxUBcmVzZXJ2YXRpb24gbWFkZSBpbiB0aGUgbmFtZSBvZiB0aGUgbGl0ZSBjb25zdW1lciB3aG8gd2lsbCBiZSBsaW5rZWQuaHRvdWNoX3BlcnNvbl9hdXRob3JpemF0aW9uAAIQSQFVcGRhdGUgYSBwZXJzb24ncyBhdXRob3JpemF0aW9uIGJ5IGVuc3VyaW5nIHRoZXkgY2FuIHN0aWxsIGF1dGhlbnRpY2F0ZSBhcyBwZW9wbGUuAFEBVGhpcyBjYWxsIG11c3QgYmUgcGVyZm9ybWVkIGF0IGxlYXN0IGBNaW5QZXJzb25BdXRoVXBkYXRlSW50ZXJ2YWxgIHNlY29uZHMgYWZ0ZXIgdGhllGxhc3QgdXBkYXRlIGluIG9yZGVyIHRvIHByZXZlbnQgc3BhbS6McmVtb3ZlX2V4cGlyZWRfdXNlcm5hbWVfcmVzZXJ2YXRpb24IASB1c2VybmFtZUkEASBVc2VybmFtZQABHGFjY291bnQEATBUOjpBY2NvdW50SWQAAyA5AVJlbW92ZSBhbiBleHBpcmVkIGVudHJ5IGZyb20gYSB1c2VybmFtZSByZXNlcnZhdGlvbiBxdWV1ZS4gVGhlIHRhcmdldCBlbnRyeSBpcwEBaWRlbnRpZmllZCBieSBgYWNjb3VudGAgYW5kIGNhbiBiZSBhdCBhbnkgcG9zaXRpb24gaW4gdGhlIHF1ZXVlLh0BRWFjaCBjYWxsIHJlbW92ZXMgZXhhY3RseSBvbmUgZW50cnksIHNvIGl0IG11c3QgYmUgY2FsbGVkIHJlcGVhdGVkbHkgdG+QY2xlYXIgbXVsdGlwbGUgZXhwaXJlZCByZXNlcnZhdGlvbnMuAC0BVGhpcyBpcyBhIHBlcm1pc3Npb25sZXNzIGNhbGw7IHRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkLiBUaGUgYGFjY291bnRgMQFwYXJhbWV0ZXIgaXMgYWxzbyB1c2VkIGZvciB0cmFuc2FjdGlvbiBwb29sIGRlZHVwbGljYXRpb24sIGFsbG93aW5nIHBhcmFsbGVsEQFzdWJtaXNzaW9ucyB0aGF0IHRhcmdldCBkaWZmZXJlbnQgZXhwaXJlZCBlbnRyaWVzIGluIHRoZSBzYW1lIHF1ZXVlLlR1cGRhdGVfaWRlbnRpZmllcl9rZXkEAThpZGVudGlmaWVyX2tleUUEAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgAEENhVcGRhdGUgdGhlIGNvbW11bmljYXRpb24gaWRlbnRpZmllciBrZXkgb2YgYSBjb25zdW1lci4AQQFUaGUgb3JpZ2luIG11c3QgYmUgdGhlIGFjY291bnQgcmVnaXN0ZXJlZCBmb3IgdGhhdCBjb25zdW1lciwgcmVnYXJkbGVzcyBvZiB0aGVpcjBjcmVkaWJpbGl0eS6Ec2V0X3VzZXJuYW1lX3Jlc2VydmF0aW9uX2R1cmF0aW9uBAEgZHVyYXRpb24oAQx1NjQABQwdAVNldCB0aGUgZHVyYXRpb24gZm9yIHdoaWNoIGEgdXNlcm5hbWUgcmVzZXJ2YXRpb24gaXMgdmFsaWQsIGluIHNlY29uZHMuAGBUaGUgb3JpZ2luIG11c3QgYmUgcm9vdC5MZGVtb3RlX2F1dGhfZXhwaXJlZAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQABwwxAURlbW90ZSBhIGZ1bGwgcGVyc29uIHRvIGEgbGl0ZSBwZXJzb24gYWZ0ZXIgdGhlaXIgYXV0aG9yaXphdGlvbiBoYXMgZXhwaXJlZC4A9FRoaXMgaXMgYSBwZXJtaXNzaW9ubGVzcyBjYWxsOyB0aGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZC7Ec2V0X2ZyaWVuZF9yZXF1ZXN0X3N0YXRlbWVudF9hY2NvdW50X2Zvcl9zZXF1ZW5jZQgBJHJlZmVyZW5jZR0FAVhGcmllbmRSZXF1ZXN0UmVmZXJlbmNlAAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAIQBUBQXNzb2NpYXRlIGEgc3RhdGVtZW50IGFjY291bnQgd2l0aCBhIGZyaWVuZCByZXF1ZXN0IGNvbnRleHQgc2VxdWVuY2UuAFkBVGhlIGFzc29jaWF0ZWQgYWNjb3VudCBjYW4gc3VibWl0IHN0YXRlbWVudHMgd2hpbGUgdGhpcyBmcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gaXMcYWN0aXZlLjUBVGhlIG9yaWdpbiBtdXN0IGJlIGBPcmlnaW46OkZyaWVuZFJlcXVlc3RBbGlhc2AsIGNyZWF0ZWQgYnkgdGhlIGBBc1Jlc291cmNlc2BRAShgUmVnaXN0ZXJGcmllbmRSZXF1ZXN0V2l0aFByb29mKC4uKWApIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBhZnRlciBwcm9vZiB2YWxpZGF0aW9uLh0BT24gc3VjY2VzcywgaW5jcmVhc2VzIHN0YXRlbWVudCBhbGxvd2FuY2UgYW5kIHN0b3JlcyByZWdpc3RyYXRpb24gc3RhdGVoYHthY2NvdW50X2lkLCByZWZlcmVuY2V9YC4ALFBhcmFtZXRlcnM6zCogYHJlZmVyZW5jZWA6IGZyaWVuZCByZXF1ZXN0IHBlcmlvZC9zZXF1ZW5jZSBwYWlyLjEBICAtIGByZWZlcmVuY2UucGVyaW9kYCBtdXN0IGJlIGluIHRoZSBhY2NlcHRlZCBwZXJpb2Qgd2luZG93OiBgW3BlcmlvZChub3cgLbQgICAgRnJpZW5kUmVxdWVzdEdyYWNlV2luZG93KSwgcGVyaW9kKG5vdyldYC4FASAgLSBgcmVmZXJlbmNlLnNlcWAgbXVzdCBiZSBpbiBgMC4uPUZyaWVuZFJlcXVlc3RTbG90c1BlclBlcmlvZGAuTQEqIGBhY2NvdW50X2lkYDogc3RhdGVtZW50IGFjY291bnQgdG8gYXV0aG9yaXplLiBNdXN0IG5vdCBhbHJlYWR5IGJlIHVzZWQgYnkgYW5vdGhlcnggIGZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbi6UY2xlYXJfZXhwaXJlZF9mcmllbmRfcmVxdWVzdF9zZXF1ZW5jZQgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAQxzZXEMAQh1OAAJKDUBQ2xlYXIgYSBzdGFsZSBmcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gYW5kIHJldm9rZSBpdHMgc3RhdGVtZW50IGFsbG93YW5jZS4A9FRoaXMgaXMgYSBwZXJtaXNzaW9ubGVzcyBjYWxsOyB0aGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZC4hAVN1Y2NlZWRzIG9ubHkgd2hlbiB0aGUgcmVnaXN0cmF0aW9uJ3MgcGVyaW9kLWRlcml2ZWQgZXhwaXJ5IGhhcyBlbGFwc2VkLmEBT24gc3VjY2VzcywgcmVtb3ZlcyBmcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gc3RhdGUgYW5kIGRlY3JlYXNlcyBzdGF0ZW1lbnQgYWxsb3dhbmNlLgAsUGFyYW1ldGVyczphASogYGFjY291bnRgOiBzdGF0ZW1lbnQgYWNjb3VudCBwcmV2aW91c2x5IGFzc29jaWF0ZWQgd2l0aCBhIGZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbi5ZASogYHNlcWA6IGZyaWVuZCByZXF1ZXN0IHNlcXVlbmNlIHRvIGNsZWFyLiBNdXN0IG1hdGNoIHN0b3JlZCByZWdpc3RyYXRpb24gc2VxdWVuY2UgYW5kqCAgYmUgaW4gYDAuLj1GcmllbmRSZXF1ZXN0U2xvdHNQZXJQZXJpb2RgLmxzZXRfc3RhdGVtZW50X3N0b3JlX2FjY291bnQMARhwZXJpb2Q4AQx1MzIAAQxzZXE4AQx1MzIAATh0YXJnZXRfYWNjb3VudAQBMFQ6OkFjY291bnRJZAAKLAkBQ2xhaW0gYW4gYW5vbnltb3VzIHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2UgZm9yIGEgdGFyZ2V0IGFjY291bnQuACkBVGhlIG9yaWdpbiBtdXN0IGJlIGBPcmlnaW46OlN0bXRTdG9yZUFsaWFzYCwgcHJvZHVjZWQgYnkgdGhlIGBBc1Jlc291cmNlc2BVAShgUmVnaXN0ZXJTdGF0ZW1lbnRTdG9yZUFsbG93YW5jZSguLilgKSB0cmFuc2FjdGlvbiBleHRlbnNpb24gYWZ0ZXIgcHJvb2YgdmFsaWRhdGlvbi5FAU9uIHN1Y2Nlc3MsIGluY3JlYXNlcyB0aGUgc3RhdGVtZW50IGFsbG93YW5jZSBmb3IgYHRhcmdldF9hY2NvdW50YCBhbmQgc3RvcmVzIHRoZZhtYXBwaW5nIGluIGBTdGF0ZW1lbnRTdG9yZUFsbG93YW5jZXNgLgAsUGFyYW1ldGVyczo9ASogYHBlcmlvZGA6IGRheSBudW1iZXIgc2luY2UgVW5peCBlcG9jaC4gTXVzdCBiZSBpbiB0aGUgYWNjZXB0ZWQgcGVyaW9kIHdpbmRvdy5FASogYHNlcWA6IHNsb3QgbnVtYmVyIHdpdGhpbiB0aGUgcGVyaW9kLCBib3VuZGVkIGJ5IHRoZSBjb2xsZWN0aW9uLXNwZWNpZmljIGxpbWl0LswqIGB0YXJnZXRfYWNjb3VudGA6IHN0YXRlbWVudCBhY2NvdW50IHRvIGF1dGhvcml6ZS6MY2xlYXJfZXhwaXJlZF9zdG10X3N0b3JlX2FsbG93YW5jZXMIARhwZXJpb2Q4AQx1MzIAASxmaXJzdF9lbnRyeQgBFEFsaWFzAAsU8FJlbW92ZSBleHBpcmVkIHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2VzIGZvciBhIHBhc3QgcGVyaW9kLgD0VGhpcyBpcyBhIHBlcm1pc3Npb25sZXNzIGNhbGw7IHRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkLkUBUmVtb3ZlcyB1cCB0byBgU3RtdFN0b3JlQ2xlYW51cExpbWl0YCBlbnRyaWVzIGZyb20gYFN0YXRlbWVudFN0b3JlQWxsb3dhbmNlc2AgZm9yQQF0aGUgZ2l2ZW4gYHBlcmlvZGAsIGRlY3JlYXNpbmcgdGhlIHN0YXRlbWVudCBhbGxvd2FuY2UgZm9yIGVhY2ggcmVtb3ZlZCBhY2NvdW50LlxjbGFpbV9sb25nX3Rlcm1fc3RvcmFnZQwBGHBlcmlvZDgBDHUzMgABHGNvdW50ZXIMAQh1OAABKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQADDA5AUNsYWltIGxvbmctdGVybSBzdG9yYWdlIG9uIGEgcmVtb3RlIGNoYWluIHVzaW5nIGFuIGFub255bW91cyBtZW1iZXJzaGlwIHByb29mLgBRAVRoZSBvcmlnaW4gbXVzdCBiZSBgT3JpZ2luOjpMb25nVGVybVN0b3JhZ2VDbGFpbShhbGlhcywgY29sbGVjdGlvbilgLCBjcmVhdGVkIGJ5IHRoZVUBYEFzUmVzb3VyY2VzYCAoYENsYWltTG9uZ1Rlcm1TdG9yYWdlKC4uKWApIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBhZnRlciByaW5nLVZSRiBwcm9vZix2YWxpZGF0aW9uLgAsUGFyYW1ldGVyczpJASogYHBlcmlvZGA6IHRoZSBjbGFpbWluZyBwZXJpb2QuIE11c3QgYmUgdGhlIGN1cnJlbnQgcGVyaW9kIG9yIHRoZSBwcmV2aW91cyBvbmUgaWZoICB3aXRoaW4gdGhlIGdyYWNlIHdpbmRvdy4NASogYGNvdW50ZXJgOiB0aGUgY2xhaW0gY291bnRlciB3aXRoaW4gdGhlIHBlcmlvZC4gTXVzdCBiZSBsZXNzIHRoYW4tASAgYExvbmdUZXJtU3RvcmFnZUNsYWltc1BlclBlcmlvZGAuIEVhY2ggY291bnRlciBwcm9kdWNlcyBhIGRpc3RpbmN0IGFsaWFzLiUBKiBgYWNjb3VudF9pZGA6IHRoZSBhY2NvdW50IHRvIGF1dGhvcml6ZSBmb3Igc3RvcmFnZSBvbiB0aGUgcmVtb3RlIGNoYWluLpxjbGVhcl9leHBpcmVkX2xvbmdfdGVybV9zdG9yYWdlX2FsaWFzZXMIARhwZXJpb2Q4AQx1MzIAARRsaW1pdDgBDHUzMgANIPBDbGVhciBzcGVudCBsb25nLXRlcm0gc3RvcmFnZSBhbGlhc2VzIGZvciBhbiBleHBpcmVkIHBlcmlvZC4ARQFUaGlzIGlzIGEgcGVybWlzc2lvbmxlc3MgY2FsbCBhdXRob3JpemVkIHZpYSB0aGUgYGF1dGhvcml6ZWAgYXR0cmlidXRlLiBJdCBjYW4gYmUlAWNhbGxlZCBieSBhbnlvbmUgb25jZSBhIHBlcmlvZCBoYXMgZnVsbHkgZXhwaXJlZCAocGFzdCB0aGUgZ3JhY2Ugd2luZG93KS4ALFBhcmFtZXRlcnM60CogYHBlcmlvZGA6IHRoZSBleHBpcmVkIHBlcmlvZCB0byBjbGVhciBhbGlhc2VzIGZvci4BASogYGxpbWl0YDogdGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgdG8gcmVtb3ZlIGluIHRoaXMgY2FsbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuGQUMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXNYUGVyc29uYWxVc2VybmFtZUNob2ljZQABCChTdGFuZGFsb25lBABJBAEgVXNlcm5hbWUAAAAsUmVzZXJ2YXRpb24EAEkEASBVc2VybmFtZQABAAAdBQxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc1hGcmllbmRSZXF1ZXN0UmVmZXJlbmNlAAAIARhwZXJpb2Q4AQx1MzIAAQxzZXEMAQh1OAAAIQUMbGluZGl2X3BhbGxldF9jaHVua3NfbWFuYWdlchhwYWxsZXQQQ2FsbAQEVAABCChhZGRfY2h1bmtzDAE0cmluZ19leHBvbmVudCUFATBSaW5nRXhwb25lbnQAAShwYWdlX2luZGV4OAEkUGFnZUluZGV4AAE4ZW5jb2RlZF9jaHVua3MpBQGYQm91bmRlZFZlYzx1OCwgTWF4RW5jb2RlZENodW5rc0xlbjxUPj4AABBoQWRkcyBhIG5ldyBwYWdlIG9mIGNodW5rcy4AQQFUaGUgaGFzaCBvZiB0aGUgY2h1bmtzIG11c3QgbWF0Y2ggdGhlIGhhc2ggc3RvcmVkIG9uLWNoYWluIGluIGBDaHVua1BhZ2VIYXNoZXNgLtxUaGUgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIHBhZ2UgYWxyZWFkeSBleGlzdHMgb24tY2hhaW4uVHNldF9jaHVua19wYWdlX2hhc2hlcwgBNHJpbmdfZXhwb25lbnQlBQEwUmluZ0V4cG9uZW50AAEscGFnZV9oYXNoZXMtBQHMQm91bmRlZFZlYzxDaHVua1BhZ2VIYXNoLCBDb25zdFUzMjxNQVhfUEFHRV9DT1VOVD4+AAEYDQFTZXRzIHRoZSBleHBlY3RlZCBoYXNoZXMgZm9yIGNodW5rIHBhZ2VzIGZvciBhIGdpdmVuIHJpbmcgZXhwb25lbnQuACEBQWxsb3dzIHNldHRpbmcgdGhlIGV4cGVjdGVkIGhhc2hlcyB0aGF0IGNodW5rcyBtdXN0IG1hdGNoIHdoZW4gYWRkZWQgdmlhNGBhZGRfY2h1bmtzYC4ArFRoZSBvcmlnaW4gbXVzdCBiZSBgTWFuYWdlck9yaWdpbmAgb3Igcm9vdC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuJQUQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkwUmluZ0V4cG9uZW50AAEMEFIyZTkACQAUUjJlMTAACgAUUjJlMTQADgAAKQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AAAtBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABABdBAEYVmVjPFQ+AAAxBQxQaW5kaXZfcGFsbGV0X21lbWJlcnMYcGFsbGV0EENhbGwEBFQAATQsbWVyZ2VfcmluZ3MMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABPGJhc2VfcmluZ19pbmRleDgBJFJpbmdJbmRleAABRHRhcmdldF9yaW5nX2luZGV4OAEkUmluZ0luZGV4AAAMUQFNZXJnZSB0aGUgbWVtYmVycyBpbiB0d28gcmluZ3MgaW50byBhIHNpbmdsZSwgbmV3IHJpbmcuIEluIG9yZGVyIGZvciB0aGUgcmluZ3MgdG8gYmU1AWVsaWdpYmxlIGZvciBtZXJnaW5nLCB0aGV5IG11c3QgYmUgYmVsb3cgMS8yIG9mIG1heCBjYXBhY2l0eSwgaGF2ZSBubyBwZW5kaW5n4HN1c3BlbnNpb25zIGFuZCBub3QgYmUgdGhlIHRvcCByaW5nIHVzZWQgZm9yIG9uYm9hcmRpbmcuTHNldF9vbmJvYXJkaW5nX3NpemUIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABPG9uYm9hcmRpbmdfc2l6ZTgBDHUzMgABBE0BRm9yY2Ugc2V0IHRoZSBvbmJvYXJkaW5nIHNpemUgZm9yIGEgY29sbGVjdGlvbi4gVGhpcyBjYWxsIHJlcXVpcmVzIHJvb3QgcHJpdmlsZWdlcy4wc2VsZl9pbmNsdWRlDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAARhtZW1iZXIIASxNZW1iZXJPZjxUPgABNGNhbGxfdmFsaWRfYXQoAQx1NjQAAihBAUFsbG93IGEgbWVtYmVyIHdhaXRpbmcgaW4gdGhlIG9uYm9hcmRpbmcgcXVldWUgdG8gaW5jbHVkZSB0aGVtc2VsdmVzIGludG8gYSByaW5nTQFhZnRlciBlbm91Z2ggdGltZSBoYXMgcGFzc2VkLiBUaGlzIGJ5cGFzc2VzIHRoZSBub3JtYWwgY29ob3J0LWJhc2VkIG9uYm9hcmRpbmcgc2l6ZTByZXF1aXJlbWVudC4AOQFUaGlzIGNhbGwgbXVzdCBiZSBkaXNwYXRjaGVkIHdpdGggYSBgU2VsZkluY2x1ZGVgIG9yaWdpbiwgYXV0aGVudGljYXRlZCBieSB0aGUhAWBBc01lbWJlcmAgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uLiBUaGUgcmluZ3MgbXVzdCBiZSBpbiBhcHBlbmQtb25seSBtb2RlLgBNAVRoZSBgY2FsbF92YWxpZF9hdGAgcGFyYW1ldGVyIGRpY3RhdGVzIHRoZSB0aW1lIHdpbmRvdyBpbiB3aGljaCB0aGlzIHRyYW5zYWN0aW9uIGlzTQF2YWxpZCBhbmQgcmVwcmVzZW50cyB0aGUgdGltZXN0YW1wIChpbiBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoKSB3aGVuIHRoaXMgY2FsbDhiZWNvbWVzIHZhbGlkLlRidWlsZF9yaW5nX2F1dGhvcml6ZWQUAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAATRyaW5nX2V4cG9uZW50JQUBMFJpbmdFeHBvbmVudAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABKHRvX2luY2x1ZGU4AQx1MzIAZBjYQnVpbGQgYSByaW5nIHJvb3QgZm9yIGEgc3BlY2lmaWMgcmluZyBpbiBhIGNvbGxlY3Rpb24uANhTdWJtaXR0ZWQgYnkgdGhlIE9DVyB3aXRoIGEgYHRvX2luY2x1ZGVgIHNuYXBzaG90IGZyb20pAVtgU2VsZjo6c2hvdWxkX2J1aWxkX3JpbmdgXS4gTGVmdG92ZXJzIGZyb20gbGF0ZXIgb25ib2FyZGluZyBhcmUgcGlja2VkIHVwGQFvbiB0aGUgbmV4dCBPQ1cgdGljaywgb3IgYnkgdGhlIG1lbWJlciB2aWEgW2BTZWxmOjpzZWxmX2luY2x1ZGVgXSB3aGVugGNvaG9ydCBnYXRpbmcgc3RhbGxzIG9uYm9hcmRpbmcuaG9uYm9hcmRfbWVtYmVyc19hdXRob3JpemVkDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEQaGVhZDgBJFBhZ2VJbmRleABlDBEBT25ib2FyZCBtZW1iZXJzIGZyb20gdGhlIG9uYm9hcmRpbmcgcXVldWUgZm9yIGEgc3BlY2lmaWMgY29sbGVjdGlvbi4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLnBtZXJnZV9xdWV1ZV9wYWdlc19hdXRob3JpemVkDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAATBpbml0aWFsX2hlYWQ4ASRQYWdlSW5kZXgAASBuZXdfaGVhZDgBJFBhZ2VJbmRleABmDA0BTWVyZ2UgdGhlIHRvcCB0d28gb25ib2FyZGluZyBxdWV1ZSBwYWdlcyBmb3IgYSBzcGVjaWZpYyBjb2xsZWN0aW9uLgCEU3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIugHJlbW92ZV9zdXNwZW5kZWRfa2V5c19hdXRob3JpemVkCAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AGcM7FJlbW92ZSBzdXNwZW5kZWQga2V5cyBmcm9tIGEgc3BlY2lmaWMgcmluZyBpbiBhIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci5sZGVsZXRlX3JpbmdfcGFnZV9hdXRob3JpemVkDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEocGFnZV9pbmRleDgBJFBhZ2VJbmRleABoDMhEZWxldGUgYSBwYWdlIGZvciBhIHNwZWNpZmljIHJpbmcgaW4gYSBjb2xsZWN0aW9uLgCEU3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIugGVucXVldWVfcmluZ19kZWxldGlvbl9hdXRob3JpemVkCAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AGkc7EVucXVldWUgYSByaW5nIGZvciBkZWxldGlvbiBhcyBwYXJ0IG9mIGNvbGxlY3Rpb24gZGVsZXRpb24uACEBQXJjaGl2ZXMgdGhlIHJpbmcgcm9vdCwgbm90aWZpZXMgc3Vic2NyaWJlcnMsIHJlbW92ZXMgcmluZyBtZXRhZGF0YSwgYW5k+GVucXVldWVzIHJpbmcgcGFnZXMgaW50byBgUmluZ0RlbGV0aW9uUXVldWVgIGZvciBwcm9jZXNzaW5nIGJ5eGBkZWxldGVfcmluZ19wYWdlX2F1dGhvcml6ZWRgLgCEU3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIunGRlbGV0ZV9vbmJvYXJkaW5nX3F1ZXVlX3BhZ2VfYXV0aG9yaXplZAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocGFnZV9pbmRleDgBJFBhZ2VJbmRleABqHPxEZWxldGUgYW4gb25ib2FyZGluZyBxdWV1ZSBwYWdlIGFzIHBhcnQgb2YgY29sbGVjdGlvbiBkZWxldGlvbi4AHQFSZW1vdmVzIGFsbCBgTWVtYmVyc2AgZW50cmllcyBmb3IgdGhlIG1lbWJlcnMgaW4gdGhlIHBhZ2UsIHRoZW4gcmVtb3ZlcyUBdGhlIHBhZ2UgaXRzZWxmLiBDYW4gb25seSBwcm9jZWVkIHdoZW4gYWxsIHJpbmdzIGFuZCByaW5nIHBhZ2VzIGhhdmUgYmVlbjhmdWxseSBkZWxldGVkLgCEU3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIunGZpbmFsaXplX2NvbGxlY3Rpb25fZGVsZXRpb25fYXV0aG9yaXplZAQBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAGscdEZpbmFsaXplIGNvbGxlY3Rpb24gZGVsZXRpb24uAB0BUmVtb3ZlcyBhbGwgcmVtYWluaW5nIHBlci1jb2xsZWN0aW9uIHN0b3JhZ2UgYW5kIHRoZSBvd25lcidzIGlkZW50aWZpZXIZAXJlZmVyZW5jZS4gQ2FuIG9ubHkgcHJvY2VlZCB3aGVuIGFsbCByaW5ncywgcmluZyBwYWdlcywgYW5kIG9uYm9hcmRpbmeQcXVldWUgcGFnZXMgaGF2ZSBiZWVuIGZ1bGx5IGRlbGV0ZWQuAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci5obWFya19yaW5nX3N0YWxlX2F1dGhvcml6ZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAbBjwTWFyayBhIHJpbmcgYXMgc3RhbGUgc28gdGhlIG9mZmNoYWluIHdvcmtlciB3aWxsIHJlYnVpbGQgaXQuAB0BQW55b25lIGNhbiBzdWJtaXQgdGhpcyB0cmFuc2FjdGlvbiBpZiB0aGUgcmluZyBoYXMgbWVtYmVycyB0aGF0IGFyZSBub3QlAXlldCBpbmNsdWRlZCBpbiB0aGUgcm9vdCAoYHRvdGFsID4gaW5jbHVkZWRgKSBhbmQgdGhlIHJpbmcgaXMgbm90IGFscmVhZHklAW1hcmtlZCBzdGFsZS4gVGhpcyBpcyBhIHJlY292ZXJ5IG1lY2hhbmlzbSBpbiBjYXNlIHRoZSBgU3RhbGVSaW5nc2AgZW50cnlsd2FzIGxvc3Qgb3IgbmV2ZXIgaW5zZXJ0ZWQudGNsZWFuX3VwX29sZF9yb290c19hdXRob3JpemVkDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEUbGltaXQ4AQx1MzIAbSCAQ2xlYW4gdXAgZXhwaXJlZCBvbGQgcmluZyByb290cy4AEQFSZW1vdmVzIHVwIHRvIGBsaW1pdGAgb2xkIHJpbmcgcm9vdHMgZm9yIHRoZSBnaXZlbiByaW5nIGluIHRoZSBnaXZlbixjb2xsZWN0aW9uLgDQVGhlIHRyYW5zYWN0aW9uIHNvdXJjZSBtdXN0IGJlIGBMb2NhbGAgb3IgYEluQmxvY2tgLgD0VGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41BQxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0EENhbGwEBFQAAVwUc3BsaXQEAShzcGxpdF9pbnRvOQUBaQFCb3VuZGVkVmVjPChDb2luVmFsdWUsIEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhTcGxpdE91dHB1dHM+KSwKVDo6TWF4U3BsaXRPdXRwdXRzLD4AAFCEU3BsaXQgYSBjb2luIGludG8gbXVsdGlwbGUgY29pbnMuAD0BVGhlIG9yaWdpbiBtdXN0IGJlIGEgW09yaWdpbjo6Q29pbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uANRUaGUgY2FsbCBpcyBmcmVlIGFuZCBhZ2VzIHRoZSByZXN1bHRpbmcgY29pbnMgYnkgb25lLgBJAVRoZSBgc3BsaXRfaW50b2AgcGFyYW1ldGVyIGNvbnRhaW5zIGEgdmVjdG9yIG9mIHBhaXJzLCBlYWNoIHBhaXIgY29udGFpbmluZyBhIGNvaW5VAXZhbHVlIGFuZCBhIGxpc3Qgb2YgZGVzdGluYXRpb24gYWNjb3VudCBpZHMuIEZvciBlYWNoIHBhaXIsIGEgbmV3IGNvaW4gd2l0aCB0aGUgZ2l2ZW7EdmFsdWUgaXMgY3JlYXRlZCBmb3IgZWFjaCBkZXN0aW5hdGlvbiBhY2NvdW50IGlkLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKeAqIFRoZSBjb2luJ3MgYWdlIG11c3QgYmUgbGVzcyB0aGFuIFtDb25maWc6Ok1heGltdW1BZ2VdLk0BKiBUaGUgY29pbiB2YWx1ZSBtdXN0IGJlIHdpdGhpbiB0aGUgYm91bmRzIGRlZmluZWQgYnkgW0NvbmZpZzo6TWluaW11bUV4cG9uZW50XSBhbmRwICBbQ29uZmlnOjpNYXhpbXVtRXhwb25lbnRdLi0BKiBUaGUgdG90YWwgdmFsdWUgb2YgdGhlIG5ldyBjb2lucyBtdXN0IGVxdWFsIHRoZSB2YWx1ZSBvZiB0aGUgb3JpZ2luIGNvaW4uCQEqIFRoZSBudW1iZXIgb2Ygb3V0cHV0cyBtdXN0IG5vdCBleGNlZWQgW0NvbmZpZzo6TWF4U3BsaXRPdXRwdXRzXS4lASogVGhlIGFnZSBvZiB0aGUgbmV3IGNvaW5zIGlzIHNldCB0byB0aGUgYWdlIG9mIHRoZSBvcmlnaW4gY29pbiBwbHVzIG9uZS7gKiBFYWNoIGRlc3RpbmF0aW9uIGFjY291bnQgbXVzdCBub3QgYWxyZWFkeSBoYXZlIGEgY29pbi4gdHJhbnNmZXIEAQh0bwQBMFQ6OkFjY291bnRJZAABLIxUcmFuc2ZlciBhIGNvaW4gdG8gYW5vdGhlciBhY2NvdW50LgA9AVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OkNvaW5dLCB3aGljaCBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgdHJhbnNhY3Rpb25YZXh0ZW5zaW9uIFtBc0NvaW5hZ2VdLgDQVGhlIGNhbGwgaXMgZnJlZSBhbmQgYWdlcyB0aGUgcmVzdWx0aW5nIGNvaW4gYnkgb25lLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKdwqIFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IG11c3Qgbm90IGFscmVhZHkgaGF2ZSBhIGNvaW4u4CogVGhlIGNvaW4ncyBhZ2UgbXVzdCBiZSBsZXNzIHRoYW4gW0NvbmZpZzo6TWF4aW11bUFnZV0uXGxvYWRfcmVjeWNsZXJfd2l0aF9jb2luCAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlwQQQBOFNpZ25hdHVyZU9mPFQ+AAJEaExvYWQgY29pbiBpbnRvIGEgcmVjeWNsZXIuAD0BVGhlIG9yaWdpbiBtdXN0IGJlIGEgW09yaWdpbjo6Q29pbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uAERUaGUgY2FsbCBpcyBmcmVlLgBZAVRoZSBgbWVtYmVyX2tleWAgcGFyYW1ldGVyIGlzIHRoZSBtZW1iZXIga2V5IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZWN5Y2xlciwgYW5kIHdob3NlqGFsaWFzIGlzIHVzZWQgdG8gdW5sb2FkIGZyb20gdGhlIHJlY3ljbGVyLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKQEBKiBUaGUgYG1lbWJlcl9rZXlgIG11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBpbiBhbm90aGVyIHJlY3ljbGVyLtAqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCAoaS5lLiB3ZWxsIGZvcm1lZCkuUQEqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIGEgdmFsaWQgc2lnbmF0dXJlIG9mIHRoZSBjb2luJ3MgYWNjb3VudCBpZCBieSB0aGU8ICBgbWVtYmVyX2tleWAuBQEqIFRoZSByZWN5Y2xlciBjb2xsZWN0aW9uIGZvciB0aGUgY29pbidzIHZhbHVlIG11c3QgYWxyZWFkeSBleGlzdIRsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXQQATBwcmVzZXJ2YXRpb25JBQFEQ29kZWNQcmVzZXJ2YXRpb24AARR2YWx1ZXUDASRDb2luVmFsdWUAAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXBBBAE4U2lnbmF0dXJlT2Y8VD4AA3CQTG9hZCBleHRlcm5hbCBhc3NldCBpbnRvIGEgcmVjeWNsZXIuAIxUaGUgb3JpZ2luIG11c3QgYmUgYSBzaWduZWQgb3JpZ2luLgCAVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyByZWZ1bmRlZC4ARQFUaGUgYHByZXNlcnZhdGlvbmAgcGFyYW1ldGVyIGluZGljYXRlcyBob3cgdGhlIGFzc2V0IHRyYW5zZmVyIHNob3VsZCBwcmVzZXJ2ZSB0aGVEc2lnbmVyJ3MgYWNjb3VudC4AOQFUaGUgYHZhbHVlYCBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSBjb2luIHZhbHVlIHRvIGJlIGxvYWRlZCBpbnRvIHRoZSByZWN5Y2xlci49AVRoZSBlcXVpdmFsZW50IGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldCBpcyB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBzaWduZXIgdG9MdGhlIHBhbGxldCBhY2NvdW50LgBZAVRoZSBgbWVtYmVyX2tleWAgcGFyYW1ldGVyIGlzIHRoZSBtZW1iZXIga2V5IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZWN5Y2xlciwgYW5kIHdob3NlqGFsaWFzIGlzIHVzZWQgdG8gdW5sb2FkIGZyb20gdGhlIHJlY3ljbGVyLgBVAVRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBwYXJhbWV0ZXIgaXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgc2lnbmVyJ3MgYWNjb3VudCBpZCBieSB0aGU0YG1lbWJlcl9rZXlgLgA0UmVxdWlyZW1lbnRzOgEBKiBUaGUgYG1lbWJlcl9rZXlgIG11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBpbiBhbm90aGVyIHJlY3ljbGVyLtAqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCAoaS5lLiB3ZWxsIGZvcm1lZCkuQQEqIFRoZSBgdmFsdWVgIG11c3QgYmUgd2l0aGluIHRoZSBib3VuZHMgZGVmaW5lZCBieSBbQ29uZmlnOjpNaW5pbXVtRXhwb25lbnRdIGFuZHAgIFtDb25maWc6Ok1heGltdW1FeHBvbmVudF0uVQEqIFRoZSBzaWduZXIgbXVzdCBoYXZlIGVub3VnaCBiYWxhbmNlIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0IHRvIGNvdmVyIHRoZSBlcXVpdmFsZW50iCAgYW1vdW50IGZvciB0aGUgZ2l2ZW4gY29pbiB2YWx1ZS5ZASogVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIG11c3QgYmUgYSB2YWxpZCBzaWduYXR1cmUgb2YgdGhlIHNpZ25lcidzIGFjY291bnQgaWQgYnkgdGhlNGBtZW1iZXJfa2V5YC6gbG9hZF9yZWN5Y2xlcl93aXRoX2V4dGVybmFsX2Fzc2V0X3VucGFpZBABMHByZXNlcnZhdGlvbkkFAURDb2RlY1ByZXNlcnZhdGlvbgABFHZhbHVldQMBJENvaW5WYWx1ZQABKG1lbWJlcl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcEEEAThTaWduYXR1cmVPZjxUPgAPRC0BTG9hZCBleHRlcm5hbCBhc3NldCBpbnRvIGEgcmVjeWNsZXIgKGluZmFsbGlibGUsIHZhbGlkYXRlZCB1bnBhaWQgdmFyaWFudCkuAE0BVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OkluZmFsbGlibGVVbnBhaWRTaWduZWRdLCB3aGljaCBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUJAXRyYW5zYWN0aW9uIGV4dGVuc2lvbiB2YXJpYW50IFtBc0NvaW5hZ2U6OkluZmFsbGlibGVVbnBhaWRTaWduZWRdLgDcVGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiB2YWxpZGF0aW9uIHBoYXNlIG11c3QgZW5zdXJlOhUBLSBUaGUgYG1lbWJlcl9rZXlgIGlzIHZhbGlkIGFuZCBub3QgYWxyZWFkeSB1c2VkIGluIGFub3RoZXIgcmVjeWNsZXIuRQEtIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBpcyBhIHZhbGlkIHNpZ25hdHVyZSBvZiB0aGUgc2lnbmVyJ3MgYWNjb3VudCBpZCBieSB0aGU8ICBgbWVtYmVyX2tleWAuLQEtIFRoZSBgdmFsdWVgIGlzIHdpdGhpbiB0aGUgYm91bmRzIGRlZmluZWQgYnkgW0NvbmZpZzo6TWluaW11bUV4cG9uZW50XSBhbmRBASAgW0NvbmZpZzo6TWF4aW11bUV4cG9uZW50XSwgYW5kIGNhbiBiZSBsb3NzbGVzc2x5IGNvbnZlcnRlZCB0byBhbiBhc3NldCBhbW91bnQuWQEtIFRoZSBzaWduZXIgaGFzIGVub3VnaCBiYWxhbmNlIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0IHRvIGNvdmVyIHRoZSBlcXVpdmFsZW50IGFtb3VudNwgIGZvciB0aGUgZ2l2ZW4gY29pbiB2YWx1ZSAocmVzcGVjdGluZyBgcHJlc2VydmF0aW9uYCkurC0gVGhlIG5vbmNlIGlzIHZhbGlkIGZvciByZXBsYXkgcHJvdGVjdGlvbi7ULSBUaGUgcmVjeWNsZXIgY29sbGVjdGlvbiBmb3IgYHZhbHVlYCBhbHJlYWR5IGV4aXN0cy4ARFRoZSBjYWxsIGlzIGZyZWUuuGxvYWRfcmVjeWNsZXJfd2l0aF9leHRlcm5hbF9hc3NldF91bnBhaWRfYmF0Y2gEARRpdGVtc00FAdRCb3VuZGVkVmVjPFVucGFpZExvYWRJbnB1dDxUPiwgVDo6TWF4QmF0Y2hVbnBhaWRMb2FkPgAQNBkBQmF0Y2hlZCB2YXJpYW50IG9mIFtgU2VsZjo6bG9hZF9yZWN5Y2xlcl93aXRoX2V4dGVybmFsX2Fzc2V0X3VucGFpZGBdLgBNAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlQQF0cmFuc2FjdGlvbiBleHRlbnNpb24gdmFyaWFudCBbQXNDb2luYWdlOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkXS4gVGhlIGV4dGVuc2lvblEBdmFsaWRhdGVzIGVhY2ggaW5uZXIgaXRlbSBhbmQgYWRkaXRpb25hbGx5IGNoZWNrcyB3aXRoaW4tYmF0Y2ggbWVtYmVyLWtleSB1bmlxdWVuZXNzIQFhbmQgdGhhdCB0aGUgc2lnbmVyJ3MgYmFsYW5jZSBjb3ZlcnMgdGhlIHN1bSBvZiBhbGwgaW5uZXIgYXNzZXQgYW1vdW50cy4AQQFUaGlzIGNhbGwgZGlzcGF0Y2hlcyBlYWNoIGlubmVyIGxvYWQgYnkgcmUtcnVubmluZyB0aGUgc2FtZSBjaGVja3MgdGhlIGV4dGVuc2lvblEBanVzdCBwZXJmb3JtZWQgKHNlZSBbYFJlY3ljbGVyTWFuYWdlcjo6bG9hZGBdKS4gVGhlIHJlZHVuZGFuY3kgbWF0Y2hlcyB0aGUgZGVmZW5zaXZlTQFwYXR0ZXJuIHVzZWQgYnkgW2BTZWxmOjpsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXRfdW5wYWlkYF06IGEgZGlzcGF0Y2ggcGF0aEUBdGhhdCBmYWlscyBhbnkgb2YgdGhlc2UgY2hlY2tzIGlzIGEgbG9naWMgYnVnIGluIHRoZSBleHRlbnNpb24sIG5vdCBhIHVzZXIgZXJyb3IuAERUaGUgY2FsbCBpcyBmcmVlLmR1bmxvYWRfcmVjeWNsZXJfaW50b19jb2luFAEcYWxpYXNlc1kFAZhCb3VuZGVkVmVjPEFsaWFzLCBUOjpNYXhDb25zb2xpZGF0aW9uPgABFHZhbHVldQMBJENvaW5WYWx1ZQABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEIdG8EATBUOjpBY2NvdW50SWQABGSUVW5sb2FkIGEgcmVjeWNsZXIgdG8gbWludCBhIG5ldyBjb2luLgBdAVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OlVubG9hZFRva2VuXSB3aXRoIGBmZWU6IFVubG9hZEZlZTo6UHJlcGFpZGAsIHdoaWNoIGNhbiBiZUEBb2J0YWluZWQgZnJvbSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtBc0NvaW5hZ2VdIHVzaW5nIGBBc1VubG9hZFRva2VuUGVvcGxlYCzsYEFzVW5sb2FkVG9rZW5MaXRlUGVvcGxlYCwgb3IgYEFzVW5sb2FkVG9rZW5QYWlkYCB2YXJpYW50cy4ASQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIHVzZXIgdG8gcHJvdmUgdGhleSBvd24gb25lIG9yIG1vcmUgY29pbnMgaW4gYSByZWN5Y2xlciByaW5nXQF3aXRob3V0IHJldmVhbGluZyB3aGljaCBzcGVjaWZpYyBjb2lucyB0aGV5IG93bi4gSXQgY29uc29saWRhdGVzIG9uZSBvciBtdWx0aXBsZSBpbnB1dHNoaW50byBhIHNpbmdsZSBvdXRwdXQgY29pbi4ALFBhcmFtZXRlcnM6RQEqIGBhbGlhc2VzYDogdGhlIGxpc3Qgb2YgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZW1iZXIga2V5cyBpbmNsdWRlZCBpbiB0aGUVASAgcmVjeWNsZXIuIFRoZSBwcm9vZnMgZm9yIHRoZXNlIGFsaWFzZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgb3JpZ2luLvgqIGB2YWx1ZWAgYW5kIGBpbmRleGA6IGlkZW50aWZpZXMgdGhlIHJlY3ljbGVyIGJlaW5nIHVubG9hZGVkLvwqIGBfcmV2aXNpb25gOiB0aGUgcmVjeWNsZXIgcmV2aXNpb24gdXNlZCBmb3IgdGhlIGFsaWFzX3Byb29mcy7EKiBgdG9gOiB0aGUgZGVzdGluYXRpb24gYWNjb3VudCBmb3IgdGhlIG5ldyBjb2luLgA0UmVxdWlyZW1lbnRzOikBKiBUaGUgb3JpZ2luIG11c3QgYmUgW09yaWdpbjo6VW5sb2FkVG9rZW5dIHdpdGggYGZlZTogVW5sb2FkRmVlOjpQcmVwYWlkYC7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi4hASogVGhlIGBhbGlhc2VzYCBwcm92aWRlZCBtdXN0IG1hdGNoIHRoZSBhbGlhc2VzIGRlcml2ZWQgZnJvbSB0aGUgcHJvb2ZzLhUBKiBUaGUgYWxpYXNlcyBtdXN0IG5vdCBoYXZlIGJlZW4gYWxyZWFkeSB1bmxvYWRlZCBmcm9tIHRoaXMgcmVjeWNsZXIuvCogVGhlIG51bWJlciBvZiBhbGlhc2VzIG11c3QgYmUgYSBwb3dlciBvZiB0d28uNQEqIFRoZSByZXN1bHRpbmcgY29uc29saWRhdGVkIHZhbHVlIG11c3Qgbm90IGV4Y2VlZCBbQ29uZmlnOjpNYXhpbXVtRXhwb25lbnRdLox1bmxvYWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldBQBHGFsaWFzZXNZBQGYQm91bmRlZFZlYzxBbGlhcywgVDo6TWF4Q29uc29saWRhdGlvbj4AARR2YWx1ZXUDASRDb2luVmFsdWUAARRpbmRleDgBJFJpbmdJbmRleAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABCHRvBAEwVDo6QWNjb3VudElkAAVg8FVubG9hZCBhIHJlY3ljbGVyIHRvIHdpdGhkcmF3IHRoZSB1bmRlcmx5aW5nIGV4dGVybmFsIGFzc2V0LgBRAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uAF0BV2hlbiBgZmVlYCBpcyBbVW5sb2FkRmVlOjpQcmVwYWlkXSAodmlhIGZyZWUgb3IgcGFpZCB1bmxvYWQgdG9rZW4pLCBubyBmZWUgaXMgZGVkdWN0ZWQuUQFXaGVuIGBmZWVgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHVubG9hZGVkIGFzc2V0cy4AMQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIHVzZXIgdG8gd2l0aGRyYXcgdGhlaXIgY29pbnMgYmFjayBpbnRvIHRoZSB1bmRlcmx5aW5nZGFzc2V0IChlLmcuLCBzdGFibGVjb2luKS4ALFBhcmFtZXRlcnM6RQEqIGBhbGlhc2VzYDogdGhlIGxpc3Qgb2YgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZW1iZXIga2V5cyBpbmNsdWRlZCBpbiB0aGUVASAgcmVjeWNsZXIuIFRoZSBwcm9vZnMgZm9yIHRoZXNlIGFsaWFzZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgb3JpZ2luLvgqIGB2YWx1ZWAgYW5kIGBpbmRleGA6IGlkZW50aWZpZXMgdGhlIHJlY3ljbGVyIGJlaW5nIHVubG9hZGVkLvwqIGBfcmV2aXNpb25gOiB0aGUgcmVjeWNsZXIgcmV2aXNpb24gdXNlZCBmb3IgdGhlIGFsaWFzX3Byb29mcy7kKiBgdG9gOiB0aGUgZGVzdGluYXRpb24gYWNjb3VudCBmb3IgdGhlIHVuZGVybHlpbmcgYXNzZXQuADRSZXF1aXJlbWVudHM6rCogVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXS7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi5ZASogVGhlIGFsaWFzZXMgbXVzdCBub3QgaGF2ZSBiZWVuIGFscmVhZHkgdW5sb2FkZWQgKGV4Y2VwdCBmb3IgdGhlIGZpcnN0IG9uZSB3aGVuIGBmZWVgFQEgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB3aGljaCB3YXMgcHJlLW1hcmtlZCBpbiB0aGUgZXh0ZW5zaW9uKS6scGF5X2Zvcl9yZWN5Y2xlcl91bmxvYWRfZmVlX3Rva2VuX3dpdGhfY29pbggBKG1lbWJlcl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcEEEAbg8Q3J5cHRvT2Y8VD4gYXMgR2VuZXJhdGVWZXJpZmlhYmxlPjo6U2lnbmF0dXJlAAZUKQFQYXkgdGhlIGZlZSB0byByZWdpc3RlciBhIG1lbWJlciBrZXkgZm9yIGEgcGFpZCB1bmxvYWQgdG9rZW4gdXNpbmcgYSBjb2luLgA9AVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OkNvaW5dLCB3aGljaCBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgdHJhbnNhY3Rpb25YZXh0ZW5zaW9uIFtBc0NvaW5hZ2VdLgBJAVRoZSBjb2luIGlzIGNvbnN1bWVkLiBUaGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIGNvaW4ncyB2YWx1ZSBhbmQgdHJhbnNmZXJyZWQgdG8dAVtDb25maWc6OkZlZURlc3RpbmF0aW9uXS4gVGhlIHJlbWFpbmluZyB2YWx1ZSBvZiB0aGUgY29pbiBpcyBkZXN0cm95ZWQuANRJZiB0aGUgY2FsbCBmYWlscywgdGhlIG9yaWdpbiBjb2luIGlzIHN0aWxsIGNvbnN1bWVkLgBdAVRvIHByb3RlY3QgdGhlIHVzZXIgYWdhaW5zdCB2YXJ5aW5nIGZlZXMsIGlmIHRoZSBjb2luJ3MgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBmZWUsIHRoZehjYWxsIGlzIGludmFsaWQgKGFuIGludmFsaWQgY2FsbCBuZXZlciBnb2VzIGludG8gYSBibG9jaykuAF0BVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIGlzIGEgc2lnbmF0dXJlIG9mIHRoZSBjYWxsZXIncyBhY2NvdW50IElEIGJ5IHRoZSBgbWVtYmVyX2tleWAuJQFUaGlzIGVuc3VyZXMgdGhlIGNhbGxlciBjb250cm9scyB0aGUgbWVtYmVyIGtleSB0byBwcmV2ZW50IGZyb250LXJ1bm5pbmcuADRSZXF1aXJlbWVudHM64CogVGhlIGNvaW4ncyBhZ2UgbXVzdCBiZSBsZXNzIHRoYW4gW0NvbmZpZzo6TWF4aW11bUFnZV0u1CogVGhlIGNvaW4gdmFsdWUgbXVzdCBiZSBzdWZmaWNpZW50IHRvIGNvdmVyIHRoZSBmZWUu2CogVGhlIGBtZW1iZXJfa2V5YCBtdXN0IGJlIHZhbGlkIGFuZCBub3QgYWxyZWFkeSB1c2VkLqQqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIHZhbGlkLrRwYXlfZm9yX3JlY3ljbGVyX3VubG9hZF9mZWVfdG9rZW5fd2l0aF9uYXRpdmUIAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXBBBAG4PENyeXB0b09mPFQ+IGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZQAHPF0BUGF5IHRoZSBmZWUgdG8gcmVnaXN0ZXIgYSBtZW1iZXIga2V5IGZvciBhIHBhaWQgdW5sb2FkIHRva2VuIHVzaW5nIHRoZSBuYXRpdmUgY3VycmVuY3kuAGhUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkLgBFAVRoaXMgYWRkcyB0aGUgYG1lbWJlcl9rZXlgIHRvIGEgInBhaWQgdW5sb2FkIHRva2VuIHJpbmciLiBCZWluZyBwYXJ0IG9mIHRoaXMgcmluZ0kBYWxsb3dzIHRoZSB1c2VyIHRvIGxhdGVyIGdlbmVyYXRlIGFuIGFub255bW91cyBgVW5sb2FkVG9rZW5gIHRvIHVubG9hZCBhIHJlY3ljbGVyLgANAVRoZSBmZWUgaXMgdHJhbnNmZXJyZWQgZnJvbSB0aGUgY2FsbGVyIHRvIFtDb25maWc6OkZlZURlc3RpbmF0aW9uXS4AXQFUaGUgYHByb29mX29mX293bmVyc2hpcGAgaXMgYSBzaWduYXR1cmUgb2YgdGhlIGNhbGxlcidzIGFjY291bnQgSUQgYnkgdGhlIGBtZW1iZXJfa2V5YC4lAVRoaXMgZW5zdXJlcyB0aGUgY2FsbGVyIGNvbnRyb2xzIHRoZSBtZW1iZXIga2V5IHRvIHByZXZlbnQgZnJvbnQtcnVubmluZy4ANFJlcXVpcmVtZW50czrYKiBUaGUgYG1lbWJlcl9rZXlgIG11c3QgYmUgdmFsaWQgYW5kIG5vdCBhbHJlYWR5IHVzZWQupCogVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIG11c3QgYmUgdmFsaWQutHBheV9mb3JfcmVjeWNsZXJfdW5sb2FkX2ZlZV90b2tlbl93aXRoX3N0YWJsZQgBKG1lbWJlcl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcEEEAbg8Q3J5cHRvT2Y8VD4gYXMgR2VuZXJhdGVWZXJpZmlhYmxlPjo6U2lnbmF0dXJlAAhAXQFQYXkgdGhlIGZlZSB0byByZWdpc3RlciBhIG1lbWJlciBrZXkgZm9yIGEgcGFpZCB1bmxvYWQgdG9rZW4gdXNpbmcgdGhlIHVuZGVybHlpbmcgYXNzZXRQaS5lLiB0aGUgc3RhYmxlY29pbi4AaFRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQuAEUBVGhpcyBhZGRzIHRoZSBgbWVtYmVyX2tleWAgdG8gYSAicGFpZCB1bmxvYWQgdG9rZW4gcmluZyIuIEJlaW5nIHBhcnQgb2YgdGhpcyByaW5nSQFhbGxvd3MgdGhlIHVzZXIgdG8gbGF0ZXIgZ2VuZXJhdGUgYW4gYW5vbnltb3VzIGBVbmxvYWRUb2tlbmAgdG8gdW5sb2FkIGEgcmVjeWNsZXIuAA0BVGhlIGZlZSBpcyB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBjYWxsZXIgdG8gW0NvbmZpZzo6RmVlRGVzdGluYXRpb25dLgBdAVRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBpcyBhIHNpZ25hdHVyZSBvZiB0aGUgY2FsbGVyJ3MgYWNjb3VudCBJRCBieSB0aGUgYG1lbWJlcl9rZXlgLiUBVGhpcyBlbnN1cmVzIHRoZSBjYWxsZXIgY29udHJvbHMgdGhlIG1lbWJlciBrZXkgdG8gcHJldmVudCBmcm9udC1ydW5uaW5nLgA0UmVxdWlyZW1lbnRzOtgqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCBhbmQgbm90IGFscmVhZHkgdXNlZC6kKiBUaGUgYHByb29mX29mX293bmVyc2hpcGAgbXVzdCBiZSB2YWxpZC7AdW5sb2FkX3JlY3ljbGVyX2ludG9fZXh0ZXJuYWxfYXNzZXRfYW5kX3ZvdWNoZXJzHAEcYWxpYXNlc1kFAZhCb3VuZGVkVmVjPEFsaWFzLCBUOjpNYXhDb25zb2xpZGF0aW9uPgABFHZhbHVldQMBJENvaW5WYWx1ZQABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEIdG8EATBUOjpBY2NvdW50SWQAAVRleHRlcm5hbF9hc3NldF9hbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AATBuZXdfdm91Y2hlcnNdBQHgQm91bmRlZFZlYzwoQ29pblZhbHVlLCBNZW1iZXJPZjxUPiksIFQ6Ok1heFNwbGl0T3V0cHV0cz4ACYwJAVVubG9hZCBhIHJlY3ljbGVyIGludG8gYSBtaXggb2YgZXh0ZXJuYWwgYXNzZXQgYW5kIGZyZXNoIHZvdWNoZXJzLgBRAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uAFkBVGhpcyBmdW5jdGlvbiBhbGxvd3MgYSB1c2VyIHRvIG9mZmJvYXJkIHBhcnQgb2YgdGhlIHVubG9hZGVkIHZhbHVlIGludG8gdGhlIHVuZGVybHlpbmfoYXNzZXQgd2hpbGUgcmVtaW50aW5nIHRoZSByZXN0IGFzIGZyZXNoIHJlY3ljbGVyIHZvdWNoZXJzLgBFAVdoZW4gYGZlZWAgaXMgW1VubG9hZEZlZTo6UHJlcGFpZF0sIGBleHRlcm5hbF9hc3NldF9hbW91bnRgIGlzIHRyYW5zZmVycmVkIGFzLWlzLjUBV2hlbiBgZmVlYCBpcyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgdGhlIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBzcGVjaWZpZWQFAWBleHRlcm5hbF9hc3NldF9hbW91bnRgLCBzbyB0aGUgcmVjaXBpZW50IHJlY2VpdmVzIHRoZSByZW1haW5kZXIuACxQYXJhbWV0ZXJzOkUBKiBgYWxpYXNlc2A6IHRoZSBsaXN0IG9mIGFsaWFzZXMgY29ycmVzcG9uZGluZyB0byB0aGUgbWVtYmVyIGtleXMgaW5jbHVkZWQgaW4gdGhlFQEgIHJlY3ljbGVyLiBUaGUgcHJvb2ZzIGZvciB0aGVzZSBhbGlhc2VzIGFyZSBjb250YWluZWQgaW4gdGhlIG9yaWdpbi74KiBgdmFsdWVgIGFuZCBgaW5kZXhgOiBpZGVudGlmaWVzIHRoZSByZWN5Y2xlciBiZWluZyB1bmxvYWRlZC74KiBgcmV2aXNpb25gOiB0aGUgcmVjeWNsZXIgcmV2aXNpb24gdXNlZCBmb3IgdGhlIGFsaWFzIHByb29mcy78KiBgdG9gOiB0aGUgZGVzdGluYXRpb24gYWNjb3VudCBmb3IgdGhlIGV4dGVybmFsIGFzc2V0IHBvcnRpb24uXQEqIGBleHRlcm5hbF9hc3NldF9hbW91bnRgOiB0aGUgZ3Jvc3MgYXNzZXQgcG9ydGlvbiB0byBvZmZib2FyZCBmcm9tIHRoZSB1bmxvYWRlZCB2YWx1ZS5hASogYG5ld192b3VjaGVyc2A6IHRoZSBmcmVzaCByZWN5Y2xlciB2b3VjaGVycyB0byBtaW50IGZyb20gdGhlIHJlbWFpbmluZyB1bmxvYWRlZCB2YWx1ZS4AWQFUaGUgdG90YWwgdW5sb2FkZWQgdmFsdWUgbXVzdCBhbHdheXMgZXF1YWwgdGhlIGFzc2V0IHBvcnRpb24gcGx1cyB0aGUgdm91Y2hlciBwb3J0aW9uLlUBSW4gYEZyb21PdXRwdXRgIG1vZGUsIHRoZSBhc3NldCBwb3J0aW9uIG11c3QgYmUgbGFyZ2UgZW5vdWdoIHRvIGNvdmVyIHRoZSB1bmxvYWQgZmVlLgA0UmVxdWlyZW1lbnRzOqwqIFRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0u8CogVGhlIHJlY3ljbGVyIGlkZW50aWZpZWQgYnkgYHZhbHVlYCBhbmQgYGluZGV4YCBtdXN0IGV4aXN0LlEBKiBUaGUgYWxpYXMgcHJvb2ZzIHByb3ZpZGVkIGluIHRoZSBvcmlnaW4gbXVzdCBiZSB2YWxpZCBmb3IgdGhlIHJlY3ljbGVyJ3MgcmV2aXNpb24uWQEqIFRoZSBhbGlhc2VzIG11c3Qgbm90IGhhdmUgYmVlbiBhbHJlYWR5IHVubG9hZGVkIChleGNlcHQgZm9yIHRoZSBmaXJzdCBvbmUgd2hlbiBgZmVlYBUBICBpcyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgd2hpY2ggd2FzIHByZS1tYXJrZWQgaW4gdGhlIGV4dGVuc2lvbikuRQEqIGBuZXdfdm91Y2hlcnNgIG11c3Qgbm90IGJlIGVtcHR5LCBhbmQgYWxsIHZvdWNoZXIgbWVtYmVyIGtleXMgbXVzdCBiZSB2YWxpZCBhbmQkICB1bnVzZWQuYQEqIFRoZSB0b3RhbCB1bmxvYWRlZCB2YWx1ZSBtdXN0IGVxdWFsIGBleHRlcm5hbF9hc3NldF9hbW91bnRgIHBsdXMgdGhlIHRvdGFsIGFzc2V0IHZhbHVlUCAgb2YgYG5ld192b3VjaGVyc2AuRQEqIFdoZW4gdXNpbmcgW1VubG9hZEZlZTo6RnJvbU91dHB1dF0sIGBleHRlcm5hbF9hc3NldF9hbW91bnRgIG11c3QgY292ZXIgdGhlIGZlZS7EdW5sb2FkX3JlY3ljbGVyX2ludG9fZXh0ZXJuYWxfYXNzZXRfbm9uX2Fub255bW91cxABFGlucHV0aQUBoFVubG9hZFJlY3ljbGVySW5wdXQ8VDo6TWF4Q29uc29saWRhdGlvbj4AATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgABCHRvBAEwVDo6QWNjb3VudElkAAEwZmVlX2N1cnJlbmN5bQUBLEZlZUN1cnJlbmN5AAsYMQFVbmxvYWQgYSByZWN5Y2xlciB0byB3aXRoZHJhdyB0aGUgdW5kZXJseWluZyBleHRlcm5hbCBhc3NldCAobm9uLWFub255bW91cykuAFUBQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgW1NlbGY6OnVubG9hZF9yZWN5Y2xlcnNfaW50b19leHRlcm5hbF9hc3NldF9ub25fYW5vbnltb3VzXXRmb3IgdGhlIHNpbmdsZS1yZWN5Y2xlciBjYXNlLgBZAVNlZSBbU2VsZjo6dW5sb2FkX3JlY3ljbGVyc19pbnRvX2V4dGVybmFsX2Fzc2V0X25vbl9hbm9ueW1vdXNdIGZvciBmdWxsIGRvY3VtZW50YXRpb24uyHVubG9hZF9yZWN5Y2xlcnNfaW50b19leHRlcm5hbF9hc3NldF9ub25fYW5vbnltb3VzEAEYaW5wdXRzcQUBtFZlYzxVbmxvYWRSZWN5Y2xlcklucHV0PFQ6Ok1heENvbnNvbGlkYXRpb24+PgABMGFsaWFzX3Byb29mc3kDAaxCb3VuZGVkVmVjPFByb29mT2Y8VD4sIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEIdG8EATBUOjpBY2NvdW50SWQAATBmZWVfY3VycmVuY3ltBQEsRmVlQ3VycmVuY3kADFhRAVVubG9hZCBtdWx0aXBsZSByZWN5Y2xlcnMgdG8gd2l0aGRyYXcgdGhlIHVuZGVybHlpbmcgZXh0ZXJuYWwgYXNzZXQgKG5vbi1hbm9ueW1vdXMpLgA9AVRoaXMgaXMgYSBub24tYW5vbnltb3VzIHZlcnNpb24gb2YgW1NlbGY6OnVubG9hZF9yZWN5Y2xlcnNfaW50b19leHRlcm5hbF9hc3NldF1BAXdoZXJlIHRoZSBmZWUgaXMgcGFpZCBleHBsaWNpdGx5IGJ5IHRoZSBzaWduZXIgcmF0aGVyIHRoYW4gdGhyb3VnaCB0aGUgYW5vbnltb3VzuHVubG9hZCB0b2tlbiByaW5nLCBhbmQgZm9yIG11bHRpcGxlIHJlY3ljbGVycy4AMQFUaGUgZmVlIGNoYXJnZWQgaXMgb25lIHVubG9hZCB0b2tlbiBmZWUgcGVyIHJlY3ljbGVyIChpLmUuLCBgaW5wdXRzLmxlbigpYCkuACxQYXJhbWV0ZXJzOjEBKiBgaW5wdXRzYDogQSBsaXN0IG9mIGlucHV0cywgc3BlY2lmeWluZyB0aGUgcmVjeWNsZXIgYW5kIGFsaWFzZXMgdG8gdW5sb2FkLlUBKiBgYWxpYXNfcHJvb2ZzYDogdGhlIHByb29mcyBmb3IgYWxsIGFsaWFzZXMgYWNyb3NzIGFsbCBpbnB1dHMsIHNpZ25lZCBvdmVyIGEgbWVzc2FnZVUBICB0aGF0IGluY2x1ZGVzIHRoZSBzaWduZXIuIFRoZSBwcm9vZnMgbXVzdCBjb3JyZXNwb25kIHNlcXVlbnRpYWxseSB0byB0aGUgYWxpYXNlcyBpbiwgIGBpbnB1dHNgLrgqIGB0b2A6IHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgYXNzZXQuMQEqIGBmZWVfY3VycmVuY3lgOiB3aGV0aGVyIHRvIHBheSB0aGUgZmVlIGluIG5hdGl2ZSBjdXJyZW5jeSBvciBzdGFibGUgYXNzZXQuADRSZXF1aXJlbWVudHM6cCogVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZC6UKiBBbGwgc3BlY2lmaWVkIHJlY3ljbGVycyBtdXN0IGV4aXN0Li0BKiBUaGUgYWxpYXMgcHJvb2ZzIG11c3QgY29ycmVzcG9uZCBzZXF1ZW50aWFsbHkgdG8gdGhlIGFsaWFzZXMgaW4gYGlucHV0c2AuOQEqIGBpbnB1dHNgIG11c3Qgbm90IGJlIGVtcHR5IGFuZCBlYWNoIGVsZW1lbnQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBhbGlhcy5BASogVGhlIHNpZ25lciBtdXN0IGhhdmUgc3VmZmljaWVudCBiYWxhbmNlIHRvIHBheSB0aGUgZmVlIChvbmUgZmVlIHBlciByZWN5Y2xlcikuaHVubG9hZF9yZWN5Y2xlcl9pbnRvX2NvaW5zGAEcYWxpYXNlc1kFAZhCb3VuZGVkVmVjPEFsaWFzLCBUOjpNYXhDb25zb2xpZGF0aW9uPgABFHZhbHVldQMBJENvaW5WYWx1ZQABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEoc3BsaXRfaW50bzkFAWkBQm91bmRlZFZlYzwoQ29pblZhbHVlLCBCb3VuZGVkVmVjPFQ6OkFjY291bnRJZCwgVDo6TWF4U3BsaXRPdXRwdXRzPiksClQ6Ok1heFNwbGl0T3V0cHV0cyw+AAEcbWF4X2ZlZcQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgANtNRVbmxvYWQgYSByZWN5Y2xlciB0byBtaW50IG11bHRpcGxlIG5ldyBjb2lucyAoc3BsaXQpLgApAVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OlVubG9hZFRva2VuXSB3aXRoIGBmZWU6IFVubG9hZEZlZTo6UHJlcGFpZGAuAEUBVGhpcyBmdW5jdGlvbiBjb21iaW5lcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBbU2VsZjo6dW5sb2FkX3JlY3ljbGVyX2ludG9fY29pbl0gYW5kRQFbU2VsZjo6c3BsaXRdIGluIGEgc2luZ2xlIGF0b21pYyBvcGVyYXRpb24uIFRoZSByZXN1bHRpbmcgY29pbnMnIGFnZSBpcyAxIGJlY2F1c2VFAXRoZSBhY3Rpb24gb2Ygc3BsaXR0aW5nIGFnZSBjb2lucy4gVGhpcyBpcyBhbHNvIGltcG9ydGFudCBiZWNhdXNlIHJlc3VsdGluZyBjb2luc+hhcmUgbm90IGVudGlyZWx5IGZyZXNoLCB0aGV5IGNhbiBiZSBsaW5rZWQgdG8gb3RoZXIgY29pbnMuAFkBVW5saWtlIFtTZWxmOjp1bmxvYWRfcmVjeWNsZXJfaW50b19jb2luXSwgdGhpcyBjYWxsIGRvZXMgKipub3QqKiByZXF1aXJlIHRoZSBudW1iZXIgb2Z0YWxpYXNlcyB0byBiZSBhIHBvd2VyIG9mIHR3by4ALFBhcmFtZXRlcnM6RQEqIGBhbGlhc2VzYDogdGhlIGxpc3Qgb2YgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZW1iZXIga2V5cyBpbmNsdWRlZCBpbiB0aGUVASAgcmVjeWNsZXIuIFRoZSBwcm9vZnMgZm9yIHRoZXNlIGFsaWFzZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgb3JpZ2luLvgqIGB2YWx1ZWAgYW5kIGBpbmRleGA6IGlkZW50aWZpZXMgdGhlIHJlY3ljbGVyIGJlaW5nIHVubG9hZGVkLvgqIGByZXZpc2lvbmA6IHRoZSByZWN5Y2xlciByZXZpc2lvbiB1c2VkIGZvciB0aGUgYWxpYXNfcHJvb2ZzLkkBKiBgc3BsaXRfaW50b2A6IGEgdmVjdG9yIG9mIHBhaXJzLCBlYWNoIHBhaXIgY29udGFpbmluZyBhIGNvaW4gdmFsdWUgYW5kIGEgbGlzdCBvZmggIGRlc3RpbmF0aW9uIGFjY291bnQgaWRzLlkBKiBgbWF4X2ZlZWA6IHRoZSBtYXhpbXVtIGZlZSB0aGUgY2FsbGVyIGlzIHdpbGxpbmcgdG8gcGF5LCBleHByZXNzZWQgaW4gdGhlIHVuZGVybHlpbmdJASAgYXNzZXQgYmFsYW5jZS4gSXQgbXVzdCBiZSBlcXVhbCB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0b3RhbCB2YWx1ZSBvZiB0aGU5ASAgdW5sb2FkZWQgY29pbnMgYW5kIHRoZSB0b3RhbCB2YWx1ZSBvZiB0aGUgbmV3IGNvaW5zIGRlZmluZWQgaW4gYHNwbGl0X2ludG9gLgDIICBXaGVuIHVzaW5nIFtVbmxvYWRGZWU6OlByZXBhaWRdLCB0aGlzIG11c3QgYmUgMC5FASAgV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgdGhpcyBhbW91bnQgaXMgZGVkdWN0ZWQgZnJvbSB0aGUgaW5wdXQ6IHRoZVUBICBuZXR3b3JrIGZlZSBpcyB0cmFuc2ZlcnJlZCB0byBbQ29uZmlnOjpGZWVEZXN0aW5hdGlvbl0gYW5kIGFueSByZW1haW5kZXIgaXMgYnVybmVkLkEBICBUaGUgY2FsbGVyIGNhbiBxdWVyeSBgZ2V0X3BhaWRfdW5sb2FkX3Rva2VuX2ZlZV9pbl9hc3NldGAgdG8gZXN0aW1hdGUgdGhlIGZlZS4AYQEgIFRoaXMgcGFyYW1ldGVyIHNlcnZlcyBhcyBhIHNhZmVndWFyZDogdGhlIHRyYW5zYWN0aW9uIGlzIHJlamVjdGVkIGF0IHZhbGlkYXRpb24gaWYgdGhlQQEgIGFjdHVhbCBuZXR3b3JrIGZlZSBleGNlZWRzIGBtYXhfZmVlYCwgcHJvdGVjdGluZyB0aGUgY2FsbGVyIGZyb20gZXhjZXNzaXZlIGZlZV0BICBpbmNyZWFzZXMgdGhhdCB3b3VsZCByZW5kZXIgdGhlIGFyZ3VtZW50IGBzcGxpdF9pbnRvYCBpbnZhbGlkICh1bmxvYWRlZCBmdW5kcyBtdXN0IGJlmCAgaGlnaGVyIHRoYW4gdGhlIHNwbGl0IHBsdXMgdGhlIGZlZSkuADRSZXF1aXJlbWVudHM6rCogVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXS7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi4hASogVGhlIGBhbGlhc2VzYCBwcm92aWRlZCBtdXN0IG1hdGNoIHRoZSBhbGlhc2VzIGRlcml2ZWQgZnJvbSB0aGUgcHJvb2ZzLmEBKiBUaGUgdG90YWwgdmFsdWUgb2YgdGhlIG5ldyBjb2lucyBkZWZpbmVkIGluIGBzcGxpdF9pbnRvYCBwbHVzIGBtYXhfZmVlYCBtdXN0IGVxdWFsIHRoZZAgIHRvdGFsIHZhbHVlIG9mIHRoZSB1bmxvYWRlZCBjb2lucy5VASogYG1heF9mZWVgIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGUgbWluaW11bSBjb2luLiAoVGhpcyBpcyBpbXBsaWVkIGJ5IHRoZSBjb25kaXRpb24kICBhYm92ZSku4CogRWFjaCBkZXN0aW5hdGlvbiBhY2NvdW50IG11c3Qgbm90IGFscmVhZHkgaGF2ZSBhIGNvaW4u3CogV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpQcmVwYWlkXSwgYG1heF9mZWVgIG11c3QgYmUgMC4tASogV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgYG1heF9mZWVgIG11c3QgY292ZXIgdGhlIG5ldHdvcmsgZmVlLqBkaXJlY3Rfb2ZmYm9hcmRfY29pbl9pbnRvX2V4dGVybmFsX2Fzc2V0BAEIdG8EATBUOjpBY2NvdW50SWQADjglAURpcmVjdGx5IG9mZmJvYXJkIGEgZnJlc2gsIDAtYWdlIGNvaW4gaW50byB0aGUgdW5kZXJseWluZyBleHRlcm5hbCBhc3NldC4ARQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpDb2luXSwgb2J0YWluZWQgdGhyb3VnaCBbQXNDb2luYWdlXSB1c2luZyBgQXNDb2luYC4ADQFCZWNhdXNlIHRoZSBjb2luIG11c3QgYmUgZnJlc2ggKGBhZ2UgPT0gMGApLCB0aGlzIGNhbGwgYnlwYXNzZXMgdGhlSQFyZWN5Y2xlci91bmxvYWQtdG9rZW4gb2ZmYm9hcmRpbmcgZmxvdyBhbmQgcmVsZWFzZXMgdGhlIHVuZGVybHlpbmcgYXNzZXQgZGlyZWN0bHkuACxQYXJhbWV0ZXJzOj0BKiBgdG9gOiBkZXN0aW5hdGlvbiBhY2NvdW50IHRoYXQgcmVjZWl2ZXMgdGhlIHJlbGVhc2VkIHVuZGVybHlpbmcgYXNzZXQgYW1vdW50LgA0UmVxdWlyZW1lbnRzOpAqIFRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpDb2luXS6oKiBUaGUgY29pbiBtdXN0IGJlIGZyZXNoOiBgY29pbi5hZ2UgPT0gMGAuCQEqIFRoZSBjb2luIHZhbHVlIG11c3QgYmUgcmVwcmVzZW50YWJsZSBhcyB1bmRlcmx5aW5nLWFzc2V0IGFtb3VudC5cc2V0X3VuZGVybHlpbmdfYXNzZXRfaWQEASBhc3NldF9pZOABVEZ1bmdpYmxlc0Fzc2V0SWRPZjxUPgAKJLxTZXQgdGhlIHVuZGVybHlpbmcgYXNzZXQgaWQgdXNlZCBieSB0aGUgcGFsbGV0LgAtAVRoZSBvcmlnaW4gbXVzdCBzYXRpc2Z5IFtgQ29uZmlnOjpVbmRlcmx5aW5nQXNzZXRJZE1hbmFnZXJgXS4gVGhlIHNldHRlciBpcyEBKipzaW5nbGUtdXNlKio6IGNhbGxpbmcgaXQgYWdhaW4gYWZ0ZXIgdGhlIGFzc2V0IGlkIGhhcyBiZWVuIHNldCByZXR1cm5zTQFbYEVycm9yOjpBc3NldElkQWxyZWFkeVNldGBdLiBDaGFuZ2luZyB0aGUgdW5kZXJseWluZyBhc3NldCBhZnRlciBjb2lucyBleGlzdCB3b3VsZDUBb3JwaGFuIHRoZSBoZWxkIGJhbGFuY2VzIG9mIGV2ZXJ5IGluLWZsaWdodCBjb2luLCBzbyB0aGUgb24tY2hhaW4gZGVjaXNpb24gaXNcaW50ZW50aW9uYWxseSBvbmUtc2hvdC4A5FRoZSBhc3NldCBpZCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gW2BDb25maWc6OkZ1bmdpYmxlc2BdLjhjbGVhbl9yZWN5Y2xlcgQBFHZhbHVldQMBJENvaW5WYWx1ZQBlHHRDbGVhbiB1cCBhbiBleHBpcmVkIHJlY3ljbGVyLgBBAVRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBUaGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZCBhbmQgZnJvbSBsb2NhbCBzb3VyY2UuAA0BVGhpcyByZW1vdmVzIGFuIG9sZCByZWN5Y2xlciB0aGF0IGhhcyBleGNlZWRlZCBpdHMgZXhwaXJhdGlvbiB0aW1lLkkBQW55IHJlbWFpbmluZyAobm90IHVubG9hZGVkKSB2YWx1ZSBpbiB0aGUgcmVjeWNsZXIgaXMgY29uc2lkZXJlZCBsb3N0IGFuZCBhZGRlZCB0b3RbVG90YWxWYWx1ZU9mRGVzdHJveWVkQ29pbnNdLmRjbGVhbl9jb25zdW1lZF9mcmVlX3Rva2VuBAEYcGVyaW9kOAEYUGVyaW9kAGYM/ENsZWFudXAgc3RvcmFnZSBmb3IgY29uc3VtZWQgZnJlZSB1bmxvYWQgdG9rZW5zIG9mIG9sZCBwZXJpb2RzLgBBAVRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBUaGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZCBhbmQgZnJvbSBsb2NhbCBzb3VyY2UucGNsZWFuX3BhaWRfdW5sb2FkX3Rva2VuX3JpbmcIARhwZXJpb2Q4ARhQZXJpb2QAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AGgYCQFDbGVhbiB1cCBhIHNpbmdsZSByaW5nIGluIGFuIGV4cGlyZWQgcGFpZCB1bmxvYWQgdG9rZW4gY29sbGVjdGlvbi4AQQFUaGlzIGlzIGEgbWFpbnRlbmFuY2UgY2FsbC4gVGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQgYW5kIGZyb20gbG9jYWwgc291cmNlLikBUmluZ3MgbXVzdCBiZSBjbGVhbmVkIHNlcXVlbnRpYWxseSAocmluZyAwIGZpcnN0LCB0aGVuIDEsIGV0Yy4pIGJlZm9yZSB0aGV0Y29sbGVjdGlvbiBjYW4gYmUgZGVsZXRlZCB2aWGNAVtgZGVsZXRlX2V4cGlyZWRfcGFpZF91bmxvYWRfdG9rZW5fY29sbGVjdGlvbmBdKFNlbGY6OmRlbGV0ZV9leHBpcmVkX3BhaWRfdW5sb2FkX3Rva2VuX2NvbGxlY3Rpb24pLkxjbGVhbl9yZWN5Y2xlcl9kdXN0AGkUcENsZWFuIHVwIGR1c3QgZm9yIHJlY3ljbGVycy4AQQFUaGlzIGlzIGEgbWFpbnRlbmFuY2UgY2FsbC4gVGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQgYW5kIGZyb20gbG9jYWwgc291cmNlLkkBUmVtb3ZlcyB1cCB0byBEVVNUX0NMRUFOVVBfQkFUQ0hfU0laRSB1bmxvYWRlZCBhbGlhcyBlbnRyaWVzIHBlciBjYWxsIHRvIGJvdW5kIHRoZShvcGVyYXRpb24ucGNsZWFuX3BhaWRfdW5sb2FkX3Rva2VuX2R1c3QAagyUQ2xlYW4gdXAgZHVzdCBmb3IgcGFpZCB1bmxvYWQgdG9rZW5zLgBBAVRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBUaGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZCBhbmQgZnJvbSBsb2NhbCBzb3VyY2UurGRlbGV0ZV9leHBpcmVkX3BhaWRfdW5sb2FkX3Rva2VuX2NvbGxlY3Rpb24EARhwZXJpb2Q4ARhQZXJpb2QAaxhFAURlbGV0ZSBhbiBleHBpcmVkIHBhaWQgdW5sb2FkIHRva2VuIGNvbGxlY3Rpb24gYWZ0ZXIgYWxsIHJpbmdzIGhhdmUgYmVlbiBjbGVhbmVkLgBBAVRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBUaGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZCBhbmQgZnJvbSBsb2NhbCBzb3VyY2UukEFsbCByaW5ncyBtdXN0IGhhdmUgYmVlbiBjbGVhbmVkIHZpYUEBW2BjbGVhbl9wYWlkX3VubG9hZF90b2tlbl9yaW5nYF0oU2VsZjo6Y2xlYW5fcGFpZF91bmxvYWRfdG9rZW5fcmluZykgYmVmb3JlIHRoaXM4Y2FuIGJlIGNhbGxlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE9BQRTAAAEAEUFARhWZWM8VD4AAD0FAAAECHUDQQUAQQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAzAEYVmVjPFQ+AABFBQAAAj0FAEkFDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXREQ29kZWNQcmVzZXJ2YXRpb24AAQwoRXhwZW5kYWJsZQAAABxQcm90ZWN0AAEAIFByZXNlcnZlAAIAAE0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBUQUEUwAABABVBQEYVmVjPFQ+AABRBQxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0PFVucGFpZExvYWRJbnB1dAQEVAAAEAEwcHJlc2VydmF0aW9uSQUBRENvZGVjUHJlc2VydmF0aW9uAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlwQQQBOFNpZ25hdHVyZU9mPFQ+AABVBQAAAlEFAFkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEAF0EARhWZWM8VD4AAF0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBYQUEUwAABABlBQEYVmVjPFQ+AABhBQAABAh1AwgAZQUAAAJhBQBpBQxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0TFVubG9hZFJlY3ljbGVySW5wdXQEMEFsaWFzZXNCb3VuZAAAEAEUdmFsdWV1AwEkQ29pblZhbHVlAAEUaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAARxhbGlhc2VzWQUBfEJvdW5kZWRWZWM8QWxpYXMsIEFsaWFzZXNCb3VuZD4AAG0FDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQsRmVlQ3VycmVuY3kAAQgYTmF0aXZlAAAAGFN0YWJsZQABAABxBQAAAmkFAHUFDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchhwYWxsZXQQQ2FsbAQEVAABHCRzdWJzY3JpYmUMAVxzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZJwBGFBhcmFJZAABTG1lbWJlcnNfY29sbGVjdGlvbnN5BQEdAUJvdW5kZWRWZWM8KElkZW50aWZpZXIsIFJpbmdFeHBvbmVudCksIFQ6Ok1heENvbGxlY3Rpb25zUGVyU3Vic2NyaWJlciw+AAEwcGFsbGV0X2luZGV4DAEIdTgAACygUmVnaXN0ZXJzIHRoZSBwYXJhY2hhaW4gYXMgYSBzdWJzY3JpYmVyLtBUaGUgaW5pdGlhbCBzdGF0ZSB3aWxsIGJlIHNlbnQgb3ZlciBzaG9ydGx5IHZpYSBYQ00uACQjIyBPcmlnaW6oUmVxdWlyZXMgYE1hbmFnZU9yaWdpbmAgKGdvdmVybmFuY2Uvcm9vdCkuADQjIyBQYXJhbWV0ZXJzFQEtIGBzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZGA6IFRoZSBQYXJhSWQgb2YgdGhlIHN1YnNjcmliaW5nIHBhcmFjaGFpbi5FAS0gYG1lbWJlcnNfY29sbGVjdGlvbnNgOiBMaXN0IG9mIGNvbGxlY3Rpb24gaWRlbnRpZmllcnMgdG8gc3Vic2NyaWJlIHRvIGFuZCB0aGVpcnAgIHJlc3BlY3RpdmUgcmluZyBleHBvbmVudHMuNQEtIGBwYWxsZXRfaW5kZXhgOiBQYWxsZXQgaW5kZXggb2YgbWVtYmVycy1zdWJzY3JpYmVyIG9uIHRoZSBzdWJzY3JpYmVyIGNoYWluLix1bnN1YnNjcmliZQQBXHN1YnNjcmliZXJfcGFyYWNoYWluX2lkhQUBOE9wdGlvbjxQYXJhSWQ+AAEkZFVuc3Vic2NyaWJlcyBhIHBhcmFjaGFpbi4AJCMjIE9yaWdpbj0BLSAqKlNlbGYtdW5zdWJzY3JpYmUqKjogU3Vic2NyaWJlciBwYXJhY2hhaW4gdmlhIFhDTSAoYEVuc3VyZVN1YnNjcmliZXJPcmlnaW5gKdQtICoqR292ZXJuYW5jZSB1bnN1YnNjcmliZSoqOiBSZXF1aXJlcyBgTWFuYWdlT3JpZ2luYAA0IyMgUGFyYW1ldGVyc2EBLSBgc3Vic2NyaWJlcl9wYXJhY2hhaW5faWRgOiBUaGUgUGFyYUlkIHRvIHVuc3Vic2NyaWJlLiBSZXF1aXJlZCBmb3IgZ292ZXJuYW5jZSwgaWdub3JlZMQgIGZvciBzZWxmLXVuc3Vic2NyaWJlIChkZXJpdmVkIGZyb20gWENNIG9yaWdpbikuOHJlcXVlc3RfcmVwbGF5DAFcc3Vic2NyaWJlcl9wYXJhY2hhaW5faWScARhQYXJhSWQAAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABRHJpbmdfcm9vdF9pbmRpY2VziQUBsEJvdW5kZWRWZWM8UmluZ0luZGV4LCBUOjpNYXhVcGRhdGVzUGVyQmF0Y2g+AAIknFJlcXVlc3RzIHJlcGxheSBvZiBzcGVjaWZpYyByaW5nIHJvb3RzLgA1AVBlcm1pc3Npb25sZXNzIOKAlCBhbnkgc2lnbmVkIG9yaWdpbiBjYW4gcmVxdWVzdCBhIHJlcGxheSBmb3IgYW55IHN1YnNjcmliZXIuSQFUaGUgc3Vic2NyaWJlciBwYXJhY2hhaW4gaXMgaWRlbnRpZmllZCBieSB0aGUgYHN1YnNjcmliZXJfcGFyYWNoYWluX2lkYCBwYXJhbWV0ZXIuACxQYXJhbWV0ZXJzOugtIGBzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZGA6IFRoZSBQYXJhSWQgb2YgdGhlIHN1YnNjcmliZXIumC0gYGlkZW50aWZpZXJgOiBDb2xsZWN0aW9uIGlkZW50aWZpZXIuWQEtIGByaW5nX3Jvb3RfaW5kaWNlc2A6IExpc3Qgb2YgcmluZyByb290IGluZGljZXMsIG11c3QgYmUgaW4gc3RyaWN0bHkgYXNjZW5kaW5nIG9yZGVyLjxlbnF1ZXVlX3VwZGF0ZXMEASRzZW5kX3BhZ2UtAwEMdTE2AAMM+EVucXVldWVzIHBlbmRpbmcgdXBkYXRlcyBpbnRvIGEgc2VhbGVkIGJhdGNoIGZvciBkaXN0cmlidXRpb24uAMRBdXRob3JpemVkIGNhbGwgc3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuKHNlbmRfYmF0Y2gIARxwYXJhX2lknAEYUGFyYUlkAAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgAEDMRTZW5kcyB0aGUgY3VycmVudCBiYXRjaCB0byBhIHNwZWNpZmljIHN1YnNjcmliZXIuAPRBdXRob3JpemVkIG1haW50ZW5hbmNlIGNhbGwgc3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuOHNlbmRfaW5pdF9wYWdlDAEccGFyYV9pZJwBGFBhcmFJZAABYGN1cnJlbnRfY29sbGVjdGlvbl9pbmRleDgBDHUzMgABQGFmdGVyX3JpbmdfaW5kZXgJAwFET3B0aW9uPFJpbmdJbmRleD4ABQzYU2VuZHMgb25lIHBhZ2Ugb2YgaW5pdGlhbGl6YXRpb24gZGF0YSB0byBhIHN1YnNjcmliZXIuAPRBdXRob3JpemVkIG1haW50ZW5hbmNlIGNhbGwgc3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuTGFiYW5kb25fc3R1Y2tfYmF0Y2gABhTkQWJhbmRvbnMgYSBzdHVjayBiYXRjaCB0aGF0IGV4Y2VlZGVkIGBTdHVja0JhdGNoVGltZW91dGAuMQFTdWJzY3JpYmVycyB0aGF0IGRpZCBub3QgcmVjZWl2ZSB0aGUgYmF0Y2ggY2FuIHJlY292ZXIgdmlhIGByZXF1ZXN0X3JlcGxheWAuADUBQXV0aG9yaXplZCBtYWludGVuYW5jZSBjYWxsIHN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyIHdoZW4gYSBiYXRjaCBoYXOwYmVlbiBhY3RpdmUgbG9uZ2VyIHRoYW4gYFN0dWNrQmF0Y2hUaW1lb3V0YC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMueQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAF9BQRTAAAEAIEFARhWZWM8VD4AAH0FAAAECAglBQCBBQAAAn0FAIUFBBhPcHRpb24EBFQBnAEIEE5vbmUAAAAQU29tZQQAnAAAAQAAiQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE4BFMAAAQAbQQBGFZlYzxUPgAAjQUMUGluZGl2X3BhbGxldF9haXJkcm9wGHBhbGxldBBDYWxsBARUAAEwOHNjaGVkdWxlX2V2ZW50CAEgZXZlbnRfaWQIARxFdmVudElkAAEQaW5mb5EFAThFdmVudEluZm9PZjxUPgAAFFUBU2NoZWR1bGUgYSBuZXcgYWlyZHJvcCBldmVudC4gT3JpZ2luIG11c3QgYmUgYE1hbmFnZXJPcmlnaW5gLiBUaGUgcHJpemUgYWxsb2NhdGlvbiBpcxkBaGVsZCBpbiB0aGUgcGFsbGV0J3MgcG90IGFjY291bnQuIFRoZSBwb3QgaXMgYXNzdW1lZCB0byBiZSBwcmUtZnVuZGVkLgBRAUNyb3NzLXBhbGxldCBjYWxsZXJzIHNob3VsZCB1c2UgdGhlIFtgY3JhdGU6OnR5cGVzOjpBaXJkcm9wOjpzY2hlZHVsZWBdIHRyYWl0IG1ldGhvZORpbnN0ZWFkLCB3aGljaCBkZWJpdHMgYSBjYWxsZXItc3VwcGxpZWQgYHNvdXJjZWAgYWNjb3VudC5YcmVtb3ZlX3NjaGVkdWxlZF9ldmVudAQBIGV2ZW50X2lkCAEcRXZlbnRJZAABCBEBUmVtb3ZlIGEgcHJldmlvdXNseSBzY2hlZHVsZWQgZXZlbnQuIFRoZSBldmVudCBtdXN0IG5vdCBoYXZlIGFscmVhZHmcc3RhcnRlZCwgb3RoZXJ3aXNlIHRoaXMgY2FsbCB3aWxsIGZhaWwuMGVuYWJsZV9hc3NldAgBIGFzc2V0X2lk4AEwQXNzZXRJZE9mPFQ+AAEYc291cmNlBAEwVDo6QWNjb3VudElkAAoQTQFFbmFibGUgYW4gYXNzZXQgZm9yIHVzZSBpbiBhaXJkcm9wIGV2ZW50cy4gVGhlIG9yaWdpbiBtdXN0IGJlIGBNYW5hZ2VyT3JpZ2luYCBvbmx5LgBZAVRyYW5zZmVycyB0aGUgYXNzZXQncyBjdXJyZW50IG1pbmltdW0gYmFsYW5jZSBmcm9tIGBzb3VyY2VgIHRvIHRoZSBwYWxsZXQncyBwb3Qgc28gdGhlJQFwb3QncyBhc3NldCBhY2NvdW50IHN0YXlzIGFsaXZlIHdoaWxlIGV2ZW50cyBob2xkIHByaXplIGZ1bmRzIGFnYWluc3QgaXQuNGRpc2FibGVfYXNzZXQIASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABLGJlbmVmaWNpYXJ5BAEwVDo6QWNjb3VudElkAAsUWQFEaXNhYmxlIGFuIGFzc2V0IHByZXZpb3VzbHkgZW5hYmxlZCB3aXRoIGBlbmFibGVfYXNzZXRgLiBSZWZ1bmRzIHRoZSBvcmlnaW5hbGx5LWZ1bmRlZDkBYW1vdW50IGZyb20gdGhlIHBvdCB0byBgYmVuZWZpY2lhcnlgLiBUaGUgb3JpZ2luIG11c3QgYmUgYE1hbmFnZXJPcmlnaW5gIG9ubHkuAE0BVGhlIG1hbmFnZXIgaXMgcmVzcG9uc2libGUgZm9yIGVuc3VyaW5nIG5vIGV2ZW50cyBzdGlsbCByZWZlcmVuY2UgdGhpcyBhc3NldCBiZWZvcmUZAWRpc2FibGluZywgYnV0IHRoaXMgaXMgc2FmZSBzaW5jZSBzY2hlZHVsaW5nIGFuIGV2ZW50IGlzIHBlcm1pc3Npb25lZC50c3RhcnRfcmVnaXN0cmF0aW9uX2F1dGhvcml6ZWQEASBldmVudF9pZAgBHEV2ZW50SWQAAgjcT0NXLWRyaXZlbjogdHJhbnNpdGlvbiBgU2NoZWR1bGVkIOKGkiBSZWdpc3RlcmluZ2Agd2hlboRgcmVnaXN0cmF0aW9uX3N0YXJ0c2AgaXMgcmVhY2hlZC50Y2xvc2VfcmVnaXN0cmF0aW9uX2F1dGhvcml6ZWQEASBldmVudF9pZAgBHEV2ZW50SWQAAyBsT0NXLWRyaXZlbjogYXQgYGRyYXdfdGltZWA6UC0gY2xvc2UgcmVnaXN0cmF0aW9uUC0gY2FwdHVyZSByYW5kb21uZXNzhC0gY29tcHV0ZSB0aGUgdGFyZ2V0IHdpbm5lciBjb3VudMwtIHJlbGVhc2UgdGhlIHVudXNlZC1zbG90IHByaXplIGFsbG9jYXRpb24gdXAtZnJvbnSoLSB0cmFuc2l0aW9uIGBSZWdpc3RlcmluZyDihpIgRHJhd1dpbm5lcnNgABUBVGhlIGRyYXcgaXRzZWxmIGlzIHBlcmZvcm1lZCBpbiBiYXRjaGVzIGJ5IGBkcmF3X3dpbm5lcnNfYXV0aG9yaXplZGAuXGRyYXdfd2lubmVyc19hdXRob3JpemVkBAEgZXZlbnRfaWQIARxFdmVudElkAAQQ0E9DVy1kcml2ZW46IGRyYXcgdXAgdG8gYERyYXdMaW1pdGAgd2lubmVycyBwZXIgY2FsbC4ARQFBZnRlciBhbGwgdGhlIHdpbm5lcnMgYXJlIGRyYXduLCB0aGUgdHJhbnNpdGlvbiB0byBgQ2xhaW1pbmdgIGlzIHBlcmZvcm1lZCBieSB0aGWQc2VwYXJhdGUgYGNsb3NlX2RyYXdpbmdfYXV0aG9yaXplZGAuYGNsb3NlX2RyYXdpbmdfYXV0aG9yaXplZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAAFCFEBT0NXLWRyaXZlbjogb25jZSBgZHJhd193aW5uZXJzX2F1dGhvcml6ZWRgIGhhcyBmaWxsZWQgdGhlIHdpbm5lciBzZXQsIHRyYW5zaXRpb24gdGhlnGV2ZW50IGZyb20gYERyYXdXaW5uZXJzYCB0byBgQ2xhaW1pbmdgLmRjbG9zZV9jbGFpbWluZ19hdXRob3JpemVkBAEgZXZlbnRfaWQIARxFdmVudElkAAYEMQFPQ1ctZHJpdmVuOiBhdCBgZW5kX3RpbWVgIGNsb3NlIGNsYWltaW5nIGFuZCBlbnRlciB0aGUgZmlyc3QgY2xlYW4tdXAgcGhhc2UuhGNsZWFuX3VwX3JlZ2lzdHJhdGlvbnNfYXV0aG9yaXplZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAAHCDkBT0NXLWRyaXZlbjogRmlyc3Qgc3RlcCBvZiBjbGVhbi11cCBpcyB0byBjbGVhciB1cCB0byBgQ2xlYXJMaW1pdGAgZW50cmllcyBmcm9tVQFgUmVnaXN0cmF0aW9uc2AuIFdoZW4gdGhlIHN0b3JhZ2UgaXMgZnVsbHkgZHJhaW5lZCwgdHJhbnNpdGlvbnMgdG8gYENsZWFyaW5nV2lubmVyc2AubGNsZWFuX3VwX3dpbm5lcnNfYXV0aG9yaXplZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAAICD0BT0NXLWRyaXZlbjogU2Vjb25kIHN0ZXAgb2YgY2xlYW4tdXAgaXMgdG8gY2xlYXIgdXAgdG8gYENsZWFyTGltaXRgIGVudHJpZXMgZnJvbSkBYFdpbm5lcnNgLiBXaGVuIHRoZSBzdG9yYWdlIGlzIGZ1bGx5IGRyYWluZWQsIHRyYW5zaXRpb25zIHRvIGBGaW5hbGl6aW5nYC5MZmluYWxpemVfYXV0aG9yaXplZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAAJCE0BT0NXLWRyaXZlbjogVGhpcmQgc3RlcCBvZiBjbGVhbi11cCBpcyB0byByZWxlYXNlIHRoZSB1bmNsYWltZWQgcHJpemUgYWxsb2NhdGlvbiBhbmREcmVtb3ZlIHRoZSBldmVudC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMukQUMUGluZGl2X3BhbGxldF9haXJkcm9wFHR5cGVzJEV2ZW50SW5mbwgcQXNzZXRJZAHgMEFzc2V0QmFsYW5jZQHEABABFHByaXplvQQBjEFpcmRyb3BQcml6ZTxBc3NldElkLCBBc3NldEJhbGFuY2U+AAFMcmVnaXN0cmF0aW9uX3N0YXJ0cygBDHU2NAABJGRyYXdfdGltZSgBDHU2NAABIGVuZF90aW1lKAEMdTY0AACVBQxMaW5kaXZfcGFsbGV0X2hvbm91chhwYWxsZXQQQ2FsbAQEVAABBBhiZXN0b3cIARB2b3RlmQUBIFZvdGVEYXRhAAE8Y2FsbF92YWxpZF9mcm9tKAEcU2Vjb25kcwAAEDhCZXN0b3cgYSB2b3RlLgBVAUFjY2VwdHMgb25seSB0aGUgW2BPcmlnaW46OlZvdGVyYF0gb3JpZ2luLCB3aGljaCBpcyBjcmVhdGVkIGJ5IHZlcmlmeWluZyBhIHJpbmcgcHJvb2YFAWluIHRoZSBbYFZvdGVyQXV0aGBdKGV4dGVuc2lvbjo6Vm90ZXJBdXRoKSB0cmFuc2FjdGlvbiBleHRlbnNpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpkFDExpbmRpdl9wYWxsZXRfaG9ub3VyFHR5cGVzIFZvdGVEYXRhAAAMARxzdWJqZWN0CAEkU3ViamVjdElkAAEUcG9pbnQMARxQb2ludElkAAEkZGlyZWN0aW9unQUBJERpcmVjdGlvbgAAnQUMTGluZGl2X3BhbGxldF9ob25vdXIUdHlwZXMkRGlyZWN0aW9uAAEIKEhvbm91cmFibGUAAAA0RGlzaG9ub3VyYWJsZQABAAChBQxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0EENhbGwEBFQAARBAZm9yY2Vfc2V0X2N1cnNvcgQBGGN1cnNvcqUFAUxPcHRpb248Q3Vyc29yT2Y8VD4+AAAUXQFBbGxvd3Mgcm9vdCB0byBzZXQgYSBjdXJzb3IgdG8gZm9yY2VmdWxseSBzdGFydCwgc3RvcCBvciBmb3J3YXJkIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4ASQFTaG91bGQgbm9ybWFsbHkgbm90IGJlIG5lZWRlZCBhbmQgaXMgb25seSBpbiBwbGFjZSBhcyBlbWVyZ2VuY3kgbWVhc3VyZS4gTm90ZSB0aGF0BQFyZXN0YXJ0aW5nIHRoZSBtaWdyYXRpb24gcHJvY2VzcyBpbiB0aGlzIG1hbm5lciB3aWxsIG5vdCBjYWxsIHRoZS0BW2BNaWdyYXRpb25TdGF0dXNIYW5kbGVyOjpzdGFydGVkYF0gaG9vayBvciBlbWl0IGFuIGBVcGdyYWRlU3RhcnRlZGAgZXZlbnQuXGZvcmNlX3NldF9hY3RpdmVfY3Vyc29yDAEUaW5kZXg4AQx1MzIAATBpbm5lcl9jdXJzb3K1BQFYT3B0aW9uPFJhd0N1cnNvck9mPFQ+PgABKHN0YXJ0ZWRfYXQJAwFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABGFkBQWxsb3dzIHJvb3QgdG8gc2V0IGFuIGFjdGl2ZSBjdXJzb3IgdG8gZm9yY2VmdWxseSBzdGFydC9mb3J3YXJkIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4ARQFUaGlzIGlzIGFuIGVkZ2UtY2FzZSB2ZXJzaW9uIG9mIFtgU2VsZjo6Zm9yY2Vfc2V0X2N1cnNvcmBdIHRoYXQgYWxsb3dzIHRvIHNldCB0aGVhAWBzdGFydGVkX2F0YCB2YWx1ZSB0byB0aGUgbmV4dCBibG9jayBudW1iZXIuIE90aGVyd2lzZSB0aGlzIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSwgc2luY2VFAWBmb3JjZV9zZXRfY3Vyc29yYCB0YWtlcyBhbiBhYnNvbHV0ZSBibG9jayBudW1iZXIuIFNldHRpbmcgYHN0YXJ0ZWRfYXRgIHRvIGBOb25lYAEBaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgYmxvY2sgbnVtYmVyIHBsdXMgb25lIHNob3VsZCBiZSB1c2VkLkhmb3JjZV9vbmJvYXJkX21ibXMAAhCgRm9yY2VzIHRoZSBvbmJvYXJkaW5nIG9mIHRoZSBtaWdyYXRpb25zLgBdAVRoaXMgcHJvY2VzcyBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgb24gYSBydW50aW1lIHVwZ3JhZGUuIEl0IGlzIGluIHBsYWNlIGFzIGFuIGVtZXJnZW5jefxtZWFzdXJlbWVudC4gVGhlIGN1cnNvciBuZWVkcyB0byBiZSBgTm9uZWAgZm9yIHRoaXMgdG8gc3VjY2VlZC44Y2xlYXJfaGlzdG9yaWMEASBzZWxlY3RvcrkFAaBIaXN0b3JpY0NsZWFudXBTZWxlY3RvcjxJZGVudGlmaWVyT2Y8VD4+AAMUaENsZWFycyB0aGUgYEhpc3RvcmljYCBzZXQuAA0BYG1hcF9jdXJzb3JgIG11c3QgYmUgc2V0IHRvIHRoZSBsYXN0IHZhbHVlIHRoYXQgd2FzIHJldHVybmVkIGJ5IHRoZV0BYEhpc3RvcmljQ2xlYXJlZGAgZXZlbnQuIFRoZSBmaXJzdCB0aW1lIGBOb25lYCBjYW4gYmUgdXNlZC4gYGxpbWl0YCBtdXN0IGJlIGNob3NlbiBpbiBhqHdheSB0aGF0IHdpbGwgcmVzdWx0IGluIGEgc2Vuc2libGUgd2VpZ2h0LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6lBQQYT3B0aW9uBARUAakFAQgQTm9uZQAAABBTb21lBACpBQAAAQAAqQUIRHBhbGxldF9taWdyYXRpb25zPE1pZ3JhdGlvbkN1cnNvcggYQ3Vyc29yAa0FLEJsb2NrTnVtYmVyATgBCBhBY3RpdmUEALEFAYRBY3RpdmVDdXJzb3I8Q3Vyc29yLCBCbG9ja051bWJlcj4AAAAUU3R1Y2sAAQAArQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AACxBQhEcGFsbGV0X21pZ3JhdGlvbnMwQWN0aXZlQ3Vyc29yCBhDdXJzb3IBrQUsQmxvY2tOdW1iZXIBOAAMARRpbmRleDgBDHUzMgABMGlubmVyX2N1cnNvcrUFAThPcHRpb248Q3Vyc29yPgABKHN0YXJ0ZWRfYXQ4ASxCbG9ja051bWJlcgAAtQUEGE9wdGlvbgQEVAGtBQEIEE5vbmUAAAAQU29tZQQArQUAAAEAALkFCERwYWxsZXRfbWlncmF0aW9uc1xIaXN0b3JpY0NsZWFudXBTZWxlY3RvcgQISWQBvQUBCCBTcGVjaWZpYwQAwQUBHFZlYzxJZD4AAAAgV2lsZGNhcmQIARRsaW1pdAkDASxPcHRpb248dTMyPgABPHByZXZpb3VzX2N1cnNvcsUFATxPcHRpb248VmVjPHU4Pj4AAQAAvQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADBBQAAAr0FAMUFBBhPcHRpb24EBFQBGAEIEE5vbmUAAAAQU29tZQQAGAAAAQAAyQUMgGluZGl2X3BhbGxldF92YWx1ZV90cmFuc2Zlcl9hdXRoJGV4dGVuc2lvblhBdXRob3JpemVWYWx1ZVRyYW5zZmVyCARUAARQAAAEAM0FAYxPcHRpb248c3BfY29yZTo6ZWQyNTUxOTo6U2lnbmF0dXJlPgAAzQUEGE9wdGlvbgQEVAFBBAEIEE5vbmUAAAAQU29tZQQAQQQAAAEAANEFDFxwYWxsZXRfdmVyaWZ5X3NpZ25hdHVyZSRleHRlbnNpb248VmVyaWZ5U2lnbmF0dXJlBARUAAEIIERpc2FibGVkAAAAGFNpZ25lZAgBJHNpZ25hdHVyZT0EATBUOjpTaWduYXR1cmUAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEAANUFDExpbmRpdl9wYWxsZXRfcGVvcGxlJGV4dGVuc2lvbiBBc1BlcnNvbgQEVAAABADZBQFcT3B0aW9uPEFzUGVyc29uSW5mbzxUPj4AANkFBBhPcHRpb24EBFQB3QUBCBBOb25lAAAAEFNvbWUEAN0FAAABAADdBQxMaW5kaXZfcGFsbGV0X3Blb3BsZSRleHRlbnNpb24wQXNQZXJzb25JbmZvBARUAAEUaEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50BAA4ASBUOjpOb25jZQAAAGBBc1BlcnNvbmFsQWxpYXNXaXRoUHJvb2YMAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAAAgBHENvbnRleHQAAQBsQXNQZXJzb25hbElkZW50aXR5V2l0aFByb29mCABBBAE4U2lnbmF0dXJlT2Y8VD4AACgBKFBlcnNvbmFsSWQAAgB0QXNQZXJzb25hbElkZW50aXR5V2l0aEFjY291bnQEADgBIFQ6Ok5vbmNlAAMAhEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50UmV2aXNlZBAAOAEgVDo6Tm9uY2UAAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAAAgBHENvbnRleHQABAAA4QUMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmskZXh0ZW5zaW9uXEFzUHJvb2ZPZklua1BhcnRpY2lwYW50BARUAAAEAOUFAZhPcHRpb248QXNQcm9vZk9mSW5rUGFydGljaXBhbnRJbmZvPFQ+PgAA5QUEGE9wdGlvbgQEVAHpBQEIEE5vbmUAAAAQU29tZQQA6QUAAAEAAOkFDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rJGV4dGVuc2lvbmxBc1Byb29mT2ZJbmtQYXJ0aWNpcGFudEluZm8EBFQAAQw4QXNBcHBseVdpdGhTaWcEADgBIFQ6Ok5vbmNlAAAAKEFzUmVmZXJyZWQEADgBIFQ6Ok5vbmNlAAEAJEFzSW52aXRlZAQAOAEgVDo6Tm9uY2UAAgAA7QUMSGluZGl2X3BhbGxldF9zY29yZSRleHRlbnNpb25IU2NvcmVBc1BhcnRpY2lwYW50BARUAAAEAPEFAaBPcHRpb248U2NvcmVBc1BhcnRpY2lwYW50RGF0YTxUOjpOb25jZT4+AADxBQQYT3B0aW9uBARUAfUFAQgQTm9uZQAAABBTb21lBAD1BQAAAQAA9QUMSGluZGl2X3BhbGxldF9zY29yZSRleHRlbnNpb25YU2NvcmVBc1BhcnRpY2lwYW50RGF0YQQUTm9uY2UBOAAEARRub25jZTgBFE5vbmNlAAD5BQxEaW5kaXZfcGFsbGV0X2dhbWUkZXh0ZW5zaW9uNEdhbWVBc0ludml0ZWQEBFQAAAQA/QUBcE9wdGlvbjxHYW1lQXNJbnZpdGVkRGF0YTxUPj4AAP0FBBhPcHRpb24EBFQBAQYBCBBOb25lAAAAEFNvbWUEAAEGAAABAAABBgxEaW5kaXZfcGFsbGV0X2dhbWUkZXh0ZW5zaW9uREdhbWVBc0ludml0ZWREYXRhBARUAAAQARRub25jZTgBIFQ6Ok5vbmNlAAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBLFRpY2tldE9mPFQ+AAEkc2lnbmF0dXJlPQQBSFQ6OlRpY2tldFNpZ25hdHVyZQAABQYMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZSRleHRlbnNpb244UGVvcGxlTGl0ZUF1dGgEBFQAAAQACQYBfE9wdGlvbjxQZW9wbGVMaXRlQXV0aERhdGFPZjxUPj4AAAkGBBhPcHRpb24EBFQBDQYBCBBOb25lAAAAEFNvbWUEAA0GAAABAAANBgxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlJGV4dGVuc2lvbkhQZW9wbGVMaXRlQXV0aERhdGEIFE5vbmNlATgUUHJvb2YBfQMBEDBBc0xpdGVQZXJzb24EADgBFE5vbmNlAAAAWEFzTGl0ZUFsaWFzV2l0aEFjY291bnQEADgBFE5vbmNlAAEAUEFzTGl0ZUFsaWFzV2l0aFByb29mDAB9AwEUUHJvb2YAADgBJFJpbmdJbmRleAAACAEcQ29udGV4dAACAHRBc0xpdGVBbGlhc1dpdGhBY2NvdW50UmV2aXNlZBAAOAEUTm9uY2UAAH0DARRQcm9vZgAAOAEkUmluZ0luZGV4AAAIARxDb250ZXh0AAMAABEGDFBpbmRpdl9wYWxsZXRfbWVtYmVycyRleHRlbnNpb24gQXNNZW1iZXIEBFQAAAQAFQYBXE9wdGlvbjxBc01lbWJlckluZm88VD4+AAAVBgQYT3B0aW9uBARUARkGAQgQTm9uZQAAABBTb21lBAAZBgAAAQAAGQYMUGluZGl2X3BhbGxldF9tZW1iZXJzJGV4dGVuc2lvbjBBc01lbWJlckluZm8EBFQAAQQsU2VsZkluY2x1ZGUEAEEEAThTaWduYXR1cmVPZjxUPgAAAAAdBgxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UkZXh0ZW5zaW9uJEFzQ29pbmFnZQQEVAAABAAhBgFgT3B0aW9uPEFzQ29pbmFnZUluZm88VD4+AAAhBgQYT3B0aW9uBARUASUGAQgQTm9uZQAAABBTb21lBAAlBgAAAQAAJQYMUGluZGl2X3BhbGxldF9jb2luYWdlJGV4dGVuc2lvbjRBc0NvaW5hZ2VJbmZvBARUAAEYGEFzQ29pbgAAAExBc1VubG9hZFRva2VuUGVvcGxlEAEUcHJvb2YpBgGgPFQ6OlBlb3BsZVByb29mIGFzIFZhbGlkYXRlUHJvb2Y+OjpQcm9vZgABGHBlcmlvZDgBGFBlcmlvZAABHGNvdW50ZXI4AQx1MzIAATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgABAFxBc1VubG9hZFRva2VuTGl0ZVBlb3BsZRABFHByb29mLQYBsDxUOjpMaXRlUGVvcGxlUHJvb2YgYXMgVmFsaWRhdGVQcm9vZj46OlByb29mAAEYcGVyaW9kOAEYUGVyaW9kAAEcY291bnRlcjgBDHUzMgABMGFsaWFzX3Byb29mc3kDAaxCb3VuZGVkVmVjPFByb29mT2Y8VD4sIFQ6Ok1heENvbnNvbGlkYXRpb24+AAIAREFzVW5sb2FkVG9rZW5QYWlkFAEUcHJvb2Z9AwEoUHJvb2ZPZjxUPgABGHBlcmlvZDgBGFBlcmlvZAABVHBhaWRfdG9rZW5fcmluZ19pbmRleDgBDHUzMgABYHBhaWRfdG9rZW5fcmluZ19yZXZpc2lvbjgBDHUzMgABMGFsaWFzX3Byb29mc3kDAaxCb3VuZGVkVmVjPFByb29mT2Y8VD4sIFQ6Ok1heENvbnNvbGlkYXRpb24+AAMAXEFzVW5sb2FkVG9rZW5Gcm9tT3V0cHV0EAFIZmVlX3JlY3ljbGVyX3ZhbHVldQMBJENvaW5WYWx1ZQABSGZlZV9yZWN5Y2xlcl9pbmRleDgBJFJpbmdJbmRleAABVGZlZV9yZWN5Y2xlcl9yZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgAEAFhJbmZhbGxpYmxlVW5wYWlkU2lnbmVkBAEUbm9uY2U4ASBUOjpOb25jZQAFAAApBgxkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZRhwZW9wbGUsUGVvcGxlUHJvb2YAAAgBFHByb29mfQMB4DxCYW5kZXJzbmF0Y2hWcmZWZXJpZmlhYmxlIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlByb29mAAEQcmluZzgBJFJpbmdJbmRleAAALQYMZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUYcGVvcGxlPExpdGVQZW9wbGVQcm9vZgAACAEUcHJvb2Z9AwHgPEJhbmRlcnNuYXRjaFZyZlZlcmlmaWFibGUgYXMgR2VuZXJhdGVWZXJpZmlhYmxlPjo6UHJvb2YAARByaW5nOAEkUmluZ0luZGV4AAAxBgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcyRleHRlbnNpb24sQXNSZXNvdXJjZXMEBFQAAAQANQYBaE9wdGlvbjxBc1Jlc291cmNlc0luZm88VD4+AAA1BgQYT3B0aW9uBARUATkGAQgQTm9uZQAAABBTb21lBAA5BgAAAQAAOQYMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMkZXh0ZW5zaW9uPEFzUmVzb3VyY2VzSW5mbwQEVAABEHhSZWdpc3RlckZyaWVuZFJlcXVlc3RXaXRoUHJvb2YIAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAAACIUmVnaXN0ZXJGcmllbmRSZXF1ZXN0Rm9yQ29sbGVjdGlvbgwAfQMBKFByb29mT2Y8VD4AADgBJFJpbmdJbmRleAAAYQMBUE1lbWJlcnNoaXBDb2xsZWN0aW9uAAEAfFJlZ2lzdGVyU3RhdGVtZW50U3RvcmVBbGxvd2FuY2UMAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAAGEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgACAFBDbGFpbUxvbmdUZXJtU3RvcmFnZRAAfQMBKFByb29mT2Y8VD4AADgBJFJpbmdJbmRleAAAOAE0UmV2aXNpb25JbmRleAAAYQMBUE1lbWJlcnNoaXBDb2xsZWN0aW9uAAMAAD0GDExpbmRpdl9wYWxsZXRfaG9ub3VyJGV4dGVuc2lvbiRWb3RlckF1dGgEBFQAAAQAQQYBYE9wdGlvbjxWb3RlckF1dGhEYXRhPFQ+PgAAQQYEGE9wdGlvbgQEVAFFBgEIEE5vbmUAAAAQU29tZQQARQYAAAEAAEUGDExpbmRpdl9wYWxsZXRfaG9ub3VyJGV4dGVuc2lvbjRWb3RlckF1dGhEYXRhBARUAAAMARRwcm9vZn0DAThSaW5nUHJvb2ZPZjxUPgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAAEkGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczhhdXRob3JpemVfY2FsbDRBdXRob3JpemVDYWxsBARUAAAAAE0GCHxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uOFJlc3RyaWN0T3JpZ2luBARUAAAEAMgBEGJvb2wAAFEGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc1RjaGVja19ub25femVyb19zZW5kZXJIQ2hlY2tOb25aZXJvU2VuZGVyBARUAAAAAFUGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0hjaGVja19zcGVjX3ZlcnNpb25AQ2hlY2tTcGVjVmVyc2lvbgQEVAAAAABZBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNAY2hlY2tfdHhfdmVyc2lvbjhDaGVja1R4VmVyc2lvbgQEVAAAAABdBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM0Y2hlY2tfZ2VuZXNpczBDaGVja0dlbmVzaXMEBFQAAAAAYQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zPGNoZWNrX21vcnRhbGl0eThDaGVja01vcnRhbGl0eQQEVAAABABlBgEMRXJhAABlBhAoc3BfcnVudGltZRxnZW5lcmljDGVyYQxFcmEAAQEEIEltbW9ydGFsAAAAHE1vcnRhbDEEAAwAAAEAHE1vcnRhbDIEAAwAAAIAHE1vcnRhbDMEAAwAAAMAHE1vcnRhbDQEAAwAAAQAHE1vcnRhbDUEAAwAAAUAHE1vcnRhbDYEAAwAAAYAHE1vcnRhbDcEAAwAAAcAHE1vcnRhbDgEAAwAAAgAHE1vcnRhbDkEAAwAAAkAIE1vcnRhbDEwBAAMAAAKACBNb3J0YWwxMQQADAAACwAgTW9ydGFsMTIEAAwAAAwAIE1vcnRhbDEzBAAMAAANACBNb3J0YWwxNAQADAAADgAgTW9ydGFsMTUEAAwAAA8AIE1vcnRhbDE2BAAMAAAQACBNb3J0YWwxNwQADAAAEQAgTW9ydGFsMTgEAAwAABIAIE1vcnRhbDE5BAAMAAATACBNb3J0YWwyMAQADAAAFAAgTW9ydGFsMjEEAAwAABUAIE1vcnRhbDIyBAAMAAAWACBNb3J0YWwyMwQADAAAFwAgTW9ydGFsMjQEAAwAABgAIE1vcnRhbDI1BAAMAAAZACBNb3J0YWwyNgQADAAAGgAgTW9ydGFsMjcEAAwAABsAIE1vcnRhbDI4BAAMAAAcACBNb3J0YWwyOQQADAAAHQAgTW9ydGFsMzAEAAwAAB4AIE1vcnRhbDMxBAAMAAAfACBNb3J0YWwzMgQADAAAIAAgTW9ydGFsMzMEAAwAACEAIE1vcnRhbDM0BAAMAAAiACBNb3J0YWwzNQQADAAAIwAgTW9ydGFsMzYEAAwAACQAIE1vcnRhbDM3BAAMAAAlACBNb3J0YWwzOAQADAAAJgAgTW9ydGFsMzkEAAwAACcAIE1vcnRhbDQwBAAMAAAoACBNb3J0YWw0MQQADAAAKQAgTW9ydGFsNDIEAAwAACoAIE1vcnRhbDQzBAAMAAArACBNb3J0YWw0NAQADAAALAAgTW9ydGFsNDUEAAwAAC0AIE1vcnRhbDQ2BAAMAAAuACBNb3J0YWw0NwQADAAALwAgTW9ydGFsNDgEAAwAADAAIE1vcnRhbDQ5BAAMAAAxACBNb3J0YWw1MAQADAAAMgAgTW9ydGFsNTEEAAwAADMAIE1vcnRhbDUyBAAMAAA0ACBNb3J0YWw1MwQADAAANQAgTW9ydGFsNTQEAAwAADYAIE1vcnRhbDU1BAAMAAA3ACBNb3J0YWw1NgQADAAAOAAgTW9ydGFsNTcEAAwAADkAIE1vcnRhbDU4BAAMAAA6ACBNb3J0YWw1OQQADAAAOwAgTW9ydGFsNjAEAAwAADwAIE1vcnRhbDYxBAAMAAA9ACBNb3J0YWw2MgQADAAAPgAgTW9ydGFsNjMEAAwAAD8AIE1vcnRhbDY0BAAMAABAACBNb3J0YWw2NQQADAAAQQAgTW9ydGFsNjYEAAwAAEIAIE1vcnRhbDY3BAAMAABDACBNb3J0YWw2OAQADAAARAAgTW9ydGFsNjkEAAwAAEUAIE1vcnRhbDcwBAAMAABGACBNb3J0YWw3MQQADAAARwAgTW9ydGFsNzIEAAwAAEgAIE1vcnRhbDczBAAMAABJACBNb3J0YWw3NAQADAAASgAgTW9ydGFsNzUEAAwAAEsAIE1vcnRhbDc2BAAMAABMACBNb3J0YWw3NwQADAAATQAgTW9ydGFsNzgEAAwAAE4AIE1vcnRhbDc5BAAMAABPACBNb3J0YWw4MAQADAAAUAAgTW9ydGFsODEEAAwAAFEAIE1vcnRhbDgyBAAMAABSACBNb3J0YWw4MwQADAAAUwAgTW9ydGFsODQEAAwAAFQAIE1vcnRhbDg1BAAMAABVACBNb3J0YWw4NgQADAAAVgAgTW9ydGFsODcEAAwAAFcAIE1vcnRhbDg4BAAMAABYACBNb3J0YWw4OQQADAAAWQAgTW9ydGFsOTAEAAwAAFoAIE1vcnRhbDkxBAAMAABbACBNb3J0YWw5MgQADAAAXAAgTW9ydGFsOTMEAAwAAF0AIE1vcnRhbDk0BAAMAABeACBNb3J0YWw5NQQADAAAXwAgTW9ydGFsOTYEAAwAAGAAIE1vcnRhbDk3BAAMAABhACBNb3J0YWw5OAQADAAAYgAgTW9ydGFsOTkEAAwAAGMAJE1vcnRhbDEwMAQADAAAZAAkTW9ydGFsMTAxBAAMAABlACRNb3J0YWwxMDIEAAwAAGYAJE1vcnRhbDEwMwQADAAAZwAkTW9ydGFsMTA0BAAMAABoACRNb3J0YWwxMDUEAAwAAGkAJE1vcnRhbDEwNgQADAAAagAkTW9ydGFsMTA3BAAMAABrACRNb3J0YWwxMDgEAAwAAGwAJE1vcnRhbDEwOQQADAAAbQAkTW9ydGFsMTEwBAAMAABuACRNb3J0YWwxMTEEAAwAAG8AJE1vcnRhbDExMgQADAAAcAAkTW9ydGFsMTEzBAAMAABxACRNb3J0YWwxMTQEAAwAAHIAJE1vcnRhbDExNQQADAAAcwAkTW9ydGFsMTE2BAAMAAB0ACRNb3J0YWwxMTcEAAwAAHUAJE1vcnRhbDExOAQADAAAdgAkTW9ydGFsMTE5BAAMAAB3ACRNb3J0YWwxMjAEAAwAAHgAJE1vcnRhbDEyMQQADAAAeQAkTW9ydGFsMTIyBAAMAAB6ACRNb3J0YWwxMjMEAAwAAHsAJE1vcnRhbDEyNAQADAAAfAAkTW9ydGFsMTI1BAAMAAB9ACRNb3J0YWwxMjYEAAwAAH4AJE1vcnRhbDEyNwQADAAAfwAkTW9ydGFsMTI4BAAMAACAACRNb3J0YWwxMjkEAAwAAIEAJE1vcnRhbDEzMAQADAAAggAkTW9ydGFsMTMxBAAMAACDACRNb3J0YWwxMzIEAAwAAIQAJE1vcnRhbDEzMwQADAAAhQAkTW9ydGFsMTM0BAAMAACGACRNb3J0YWwxMzUEAAwAAIcAJE1vcnRhbDEzNgQADAAAiAAkTW9ydGFsMTM3BAAMAACJACRNb3J0YWwxMzgEAAwAAIoAJE1vcnRhbDEzOQQADAAAiwAkTW9ydGFsMTQwBAAMAACMACRNb3J0YWwxNDEEAAwAAI0AJE1vcnRhbDE0MgQADAAAjgAkTW9ydGFsMTQzBAAMAACPACRNb3J0YWwxNDQEAAwAAJAAJE1vcnRhbDE0NQQADAAAkQAkTW9ydGFsMTQ2BAAMAACSACRNb3J0YWwxNDcEAAwAAJMAJE1vcnRhbDE0OAQADAAAlAAkTW9ydGFsMTQ5BAAMAACVACRNb3J0YWwxNTAEAAwAAJYAJE1vcnRhbDE1MQQADAAAlwAkTW9ydGFsMTUyBAAMAACYACRNb3J0YWwxNTMEAAwAAJkAJE1vcnRhbDE1NAQADAAAmgAkTW9ydGFsMTU1BAAMAACbACRNb3J0YWwxNTYEAAwAAJwAJE1vcnRhbDE1NwQADAAAnQAkTW9ydGFsMTU4BAAMAACeACRNb3J0YWwxNTkEAAwAAJ8AJE1vcnRhbDE2MAQADAAAoAAkTW9ydGFsMTYxBAAMAAChACRNb3J0YWwxNjIEAAwAAKIAJE1vcnRhbDE2MwQADAAAowAkTW9ydGFsMTY0BAAMAACkACRNb3J0YWwxNjUEAAwAAKUAJE1vcnRhbDE2NgQADAAApgAkTW9ydGFsMTY3BAAMAACnACRNb3J0YWwxNjgEAAwAAKgAJE1vcnRhbDE2OQQADAAAqQAkTW9ydGFsMTcwBAAMAACqACRNb3J0YWwxNzEEAAwAAKsAJE1vcnRhbDE3MgQADAAArAAkTW9ydGFsMTczBAAMAACtACRNb3J0YWwxNzQEAAwAAK4AJE1vcnRhbDE3NQQADAAArwAkTW9ydGFsMTc2BAAMAACwACRNb3J0YWwxNzcEAAwAALEAJE1vcnRhbDE3OAQADAAAsgAkTW9ydGFsMTc5BAAMAACzACRNb3J0YWwxODAEAAwAALQAJE1vcnRhbDE4MQQADAAAtQAkTW9ydGFsMTgyBAAMAAC2ACRNb3J0YWwxODMEAAwAALcAJE1vcnRhbDE4NAQADAAAuAAkTW9ydGFsMTg1BAAMAAC5ACRNb3J0YWwxODYEAAwAALoAJE1vcnRhbDE4NwQADAAAuwAkTW9ydGFsMTg4BAAMAAC8ACRNb3J0YWwxODkEAAwAAL0AJE1vcnRhbDE5MAQADAAAvgAkTW9ydGFsMTkxBAAMAAC/ACRNb3J0YWwxOTIEAAwAAMAAJE1vcnRhbDE5MwQADAAAwQAkTW9ydGFsMTk0BAAMAADCACRNb3J0YWwxOTUEAAwAAMMAJE1vcnRhbDE5NgQADAAAxAAkTW9ydGFsMTk3BAAMAADFACRNb3J0YWwxOTgEAAwAAMYAJE1vcnRhbDE5OQQADAAAxwAkTW9ydGFsMjAwBAAMAADIACRNb3J0YWwyMDEEAAwAAMkAJE1vcnRhbDIwMgQADAAAygAkTW9ydGFsMjAzBAAMAADLACRNb3J0YWwyMDQEAAwAAMwAJE1vcnRhbDIwNQQADAAAzQAkTW9ydGFsMjA2BAAMAADOACRNb3J0YWwyMDcEAAwAAM8AJE1vcnRhbDIwOAQADAAA0AAkTW9ydGFsMjA5BAAMAADRACRNb3J0YWwyMTAEAAwAANIAJE1vcnRhbDIxMQQADAAA0wAkTW9ydGFsMjEyBAAMAADUACRNb3J0YWwyMTMEAAwAANUAJE1vcnRhbDIxNAQADAAA1gAkTW9ydGFsMjE1BAAMAADXACRNb3J0YWwyMTYEAAwAANgAJE1vcnRhbDIxNwQADAAA2QAkTW9ydGFsMjE4BAAMAADaACRNb3J0YWwyMTkEAAwAANsAJE1vcnRhbDIyMAQADAAA3AAkTW9ydGFsMjIxBAAMAADdACRNb3J0YWwyMjIEAAwAAN4AJE1vcnRhbDIyMwQADAAA3wAkTW9ydGFsMjI0BAAMAADgACRNb3J0YWwyMjUEAAwAAOEAJE1vcnRhbDIyNgQADAAA4gAkTW9ydGFsMjI3BAAMAADjACRNb3J0YWwyMjgEAAwAAOQAJE1vcnRhbDIyOQQADAAA5QAkTW9ydGFsMjMwBAAMAADmACRNb3J0YWwyMzEEAAwAAOcAJE1vcnRhbDIzMgQADAAA6AAkTW9ydGFsMjMzBAAMAADpACRNb3J0YWwyMzQEAAwAAOoAJE1vcnRhbDIzNQQADAAA6wAkTW9ydGFsMjM2BAAMAADsACRNb3J0YWwyMzcEAAwAAO0AJE1vcnRhbDIzOAQADAAA7gAkTW9ydGFsMjM5BAAMAADvACRNb3J0YWwyNDAEAAwAAPAAJE1vcnRhbDI0MQQADAAA8QAkTW9ydGFsMjQyBAAMAADyACRNb3J0YWwyNDMEAAwAAPMAJE1vcnRhbDI0NAQADAAA9AAkTW9ydGFsMjQ1BAAMAAD1ACRNb3J0YWwyNDYEAAwAAPYAJE1vcnRhbDI0NwQADAAA9wAkTW9ydGFsMjQ4BAAMAAD4ACRNb3J0YWwyNDkEAAwAAPkAJE1vcnRhbDI1MAQADAAA+gAkTW9ydGFsMjUxBAAMAAD7ACRNb3J0YWwyNTIEAAwAAPwAJE1vcnRhbDI1MwQADAAA/QAkTW9ydGFsMjU0BAAMAAD+ACRNb3J0YWwyNTUEAAwAAP8AAGkGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9ucyxjaGVja19ub25jZShDaGVja05vbmNlBARUAAAEAGABIFQ6Ok5vbmNlAABtBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMwY2hlY2tfd2VpZ2h0LENoZWNrV2VpZ2h0BARUAAAAAHEGCFxwYWxsZXRfYXNzZXRfdHhfcGF5bWVudFBDaGFyZ2VBc3NldFR4UGF5bWVudAQEVAAACAEMdGlwwAEwQmFsYW5jZU9mPFQ+AAEgYXNzZXRfaWShAgFoT3B0aW9uPENoYXJnZUFzc2V0SWRPZjxUPj4AAHUGCDBmcmFtZV9zeXN0ZW0sQWNjb3VudEluZm8IFE5vbmNlATgsQWNjb3VudERhdGEBeQYAFAEUbm9uY2U4ARROb25jZQABJGNvbnN1bWVyczgBIFJlZkNvdW50AAEkcHJvdmlkZXJzOAEgUmVmQ291bnQAASxzdWZmaWNpZW50czgBIFJlZkNvdW50AAEQZGF0YXkGASxBY2NvdW50RGF0YQAAeQYMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxBY2NvdW50RGF0YQQcQmFsYW5jZQHEABABEGZyZWXEARxCYWxhbmNlAAEgcmVzZXJ2ZWTEARxCYWxhbmNlAAEYZnJvemVuxAEcQmFsYW5jZQABFGZsYWdzfQYBKEV4dHJhRmxhZ3MAAH0GDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMoRXh0cmFGbGFncwAABADEARB1MTI4AACBBgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUAdUBAAwBGG5vcm1hbNUBAQRUAAEsb3BlcmF0aW9uYWzVAQEEVAABJG1hbmRhdG9yedUBAQRUAACFBgAAAokGAIkGCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBjQYEVAE8AAwBFHBoYXNlpQcBFFBoYXNlAAEUZXZlbnSNBgEERQABGHRvcGljc6kHARhWZWM8VD4AAI0GCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lMFJ1bnRpbWVFdmVudAABlBhTeXN0ZW0EAJEGAXBmcmFtZV9zeXN0ZW06OkV2ZW50PFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAuQYBvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkV2ZW50PFJ1bnRpbWU+AAEAIEJhbGFuY2VzBADBBgF8cGFsbGV0X2JhbGFuY2VzOjpFdmVudDxSdW50aW1lPgAKAEhUcmFuc2FjdGlvblBheW1lbnQEAPEGAahwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudDo6RXZlbnQ8UnVudGltZT4ACwBIU2tpcEZlZWxlc3NQYXltZW50BAD1BgGscGFsbGV0X3NraXBfZmVlbGVzc19wYXltZW50OjpFdmVudDxSdW50aW1lPgAMAERPcmlnaW5SZXN0cmljdGlvbgQA+QYBvGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb246OkV2ZW50PFJ1bnRpbWU+AA0AGEFzc2V0cwQA/QYBdHBhbGxldF9hc3NldHM6OkV2ZW50PFJ1bnRpbWU+AA4AMEFzc2V0c0hvbGRlcgQAAQcBkHBhbGxldF9hc3NldHNfaG9sZGVyOjpFdmVudDxSdW50aW1lPgAPACRBc3NldFJhdGUEAAUHAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXZlbnQ8UnVudGltZT4AEAA4QXNzZXRUeFBheW1lbnQEAAkHAZxwYWxsZXRfYXNzZXRfdHhfcGF5bWVudDo6RXZlbnQ8UnVudGltZT4AEQBEQ29sbGF0b3JTZWxlY3Rpb24EAA0HAaRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uOjpFdmVudDxSdW50aW1lPgAVABxTZXNzaW9uBAARBwF4cGFsbGV0X3Nlc3Npb246OkV2ZW50PFJ1bnRpbWU+ABYAJFhjbXBRdWV1ZQQAFQcBpGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AB4ALFBvbGthZG90WGNtBAAZBwFocGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AHwAoQ3VtdWx1c1hjbQQAKQcBiGN1bXVsdXNfcGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AIAAwTWVzc2FnZVF1ZXVlBAAtBwGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkV2ZW50PFJ1bnRpbWU+ACIAHFV0aWxpdHkEADUHAVRwYWxsZXRfdXRpbGl0eTo6RXZlbnQAKAAgTXVsdGlzaWcEAD0HAXxwYWxsZXRfbXVsdGlzaWc6OkV2ZW50PFJ1bnRpbWU+ACkAEFN1ZG8EAEEHAWxwYWxsZXRfc3Vkbzo6RXZlbnQ8UnVudGltZT4AKgAUUHJveHkEAEkHAXBwYWxsZXRfcHJveHk6OkV2ZW50PFJ1bnRpbWU+ACwAIElkZW50aXR5BABRBwGUaW5kaXZfcGFsbGV0X2lkZW50aXR5OjpFdmVudDxSdW50aW1lPgAyABhQZW9wbGUEAFUHAYxpbmRpdl9wYWxsZXRfcGVvcGxlOjpFdmVudDxSdW50aW1lPgAzABxNb2JSdWxlBABZBwGUaW5kaXZfcGFsbGV0X21vYl9ydWxlOjpFdmVudDxSdW50aW1lPgA0AChQcm9vZk9mSW5rBABdBwGkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6RXZlbnQ8UnVudGltZT4ANQAQR2FtZQQAYQcBhGluZGl2X3BhbGxldF9nYW1lOjpFdmVudDxSdW50aW1lPgA3ABRTY29yZQQAaQcBiGluZGl2X3BhbGxldF9zY29yZTo6RXZlbnQ8UnVudGltZT4AOAAgRHVtbXlEaW0EAG0HAZhpbmRpdl9wYWxsZXRfZHVtbXlfZGltOjpFdmVudDxSdW50aW1lPgA7AChQZW9wbGVMaXRlBABxBwGgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlOjpFdmVudDxSdW50aW1lPgA+ACRSZXNvdXJjZXMEAHUHAZhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzOjpFdmVudDxSdW50aW1lPgA/ADRDaHVua3NNYW5hZ2VyBAB5BwGsaW5kaXZfcGFsbGV0X2NodW5rc19tYW5hZ2VyOjpFdmVudDxSdW50aW1lPgBAABxNZW1iZXJzBAB9BwGQaW5kaXZfcGFsbGV0X21lbWJlcnM6OkV2ZW50PFJ1bnRpbWU+AEMAHENvaW5hZ2UEAIEHAZBpbmRpdl9wYWxsZXRfY29pbmFnZTo6RXZlbnQ8UnVudGltZT4ARAA8TWVtYmVyc05vdGlmaWVyBACFBwG0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXI6OkV2ZW50PFJ1bnRpbWU+AEUAHEFpcmRyb3AEAIkHAZBpbmRpdl9wYWxsZXRfYWlyZHJvcDo6RXZlbnQ8UnVudGltZT4ARgAYSG9ub3VyBACVBwGMaW5kaXZfcGFsbGV0X2hvbm91cjo6RXZlbnQ8UnVudGltZT4ARwBUU3RvcmFnZUluaXRpYWxpemF0aW9uBACdBwHMaW5kaXZfcGFsbGV0X3N0b3JhZ2VfaW5pdGlhbGl6YXRpb246OkV2ZW50PFJ1bnRpbWU+ADwAUE11bHRpQmxvY2tNaWdyYXRpb25zBAChBwGEcGFsbGV0X21pZ3JhdGlvbnM6OkV2ZW50PFJ1bnRpbWU+AGIAAJEGDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEgQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvlQYBRERpc3BhdGNoRXZlbnRJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvcqEGATREaXNwYXRjaEVycm9yAAE0ZGlzcGF0Y2hfaW5mb5UGAUREaXNwYXRjaEV2ZW50SW5mbwABBFBBbiBleHRyaW5zaWMgZmFpbGVkLixDb2RlVXBkYXRlZAQBEGhhc2g8ARxUOjpIYXNoAAIE0GA6Y29kZWAgd2FzIHVwZGF0ZWQgdG8gdGhlIGNvZGUgd2l0aCB0aGUgZ2l2ZW4gaGFzaC4oTmV3QWNjb3VudAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAwRoQSBuZXcgYWNjb3VudCB3YXMgY3JlYXRlZC40S2lsbGVkQWNjb3VudAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQABARYQW4gYWNjb3VudCB3YXMgcmVhcGVkLiBSZW1hcmtlZAgBGHNlbmRlcgQBMFQ6OkFjY291bnRJZAABEGhhc2g8ARxUOjpIYXNoAAUEcE9uIG9uLWNoYWluIHJlbWFyayBoYXBwZW5lZC5EVXBncmFkZUF1dGhvcml6ZWQIASRjb2RlX2hhc2g8ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbsgBEGJvb2wABgRoQW4gdXBncmFkZSB3YXMgYXV0aG9yaXplZC6AUmVqZWN0ZWRJbnZhbGlkQXV0aG9yaXplZFVwZ3JhZGUIASRjb2RlX2hhc2g8ARxUOjpIYXNoAAEUZXJyb3KhBgE0RGlzcGF0Y2hFcnJvcgAHBBEBQW4gaW52YWxpZCBhdXRob3JpemVkIHVwZ3JhZGUgd2FzIHJlamVjdGVkIHdoaWxlIHRyeWluZyB0byBhcHBseSBpdC4EcEV2ZW50IGZvciB0aGUgU3lzdGVtIHBhbGxldC6VBggwZnJhbWVfc3lzdGVtRERpc3BhdGNoRXZlbnRJbmZvAAAMARh3ZWlnaHTVAQEYV2VpZ2h0AAEUY2xhc3OZBgE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlnQYBEFBheXMAAJkGDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoNERpc3BhdGNoQ2xhc3MAAQwYTm9ybWFsAAAALE9wZXJhdGlvbmFsAAEAJE1hbmRhdG9yeQACAACdBgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAAChBggoc3BfcnVudGltZTREaXNwYXRjaEVycm9yAAE8FE90aGVyAAAAMENhbm5vdExvb2t1cAABACRCYWRPcmlnaW4AAgAYTW9kdWxlBAClBgEsTW9kdWxlRXJyb3IAAwBEQ29uc3VtZXJSZW1haW5pbmcABAAsTm9Qcm92aWRlcnMABQBAVG9vTWFueUNvbnN1bWVycwAGABRUb2tlbgQAqQYBKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQArQYBPEFyaXRobWV0aWNFcnJvcgAIADRUcmFuc2FjdGlvbmFsBACxBgFIVHJhbnNhY3Rpb25hbEVycm9yAAkAJEV4aGF1c3RlZAAKAChDb3JydXB0aW9uAAsALFVuYXZhaWxhYmxlAAwAOFJvb3ROb3RBbGxvd2VkAA0AEFRyaWUEALUGASRUcmllRXJyb3IADgAApQYIKHNwX3J1bnRpbWUsTW9kdWxlRXJyb3IAAAgBFGluZGV4DAEIdTgAARRlcnJvcnABjFt1ODsgTUFYX01PRFVMRV9FUlJPUl9FTkNPREVEX1NJWkVdAACpBggoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAACtBgg0c3BfYXJpdGhtZXRpYzxBcml0aG1ldGljRXJyb3IAAQwkVW5kZXJmbG93AAAAIE92ZXJmbG93AAEAOERpdmlzaW9uQnlaZXJvAAIAALEGCChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAAC1Bgwoc3BfcnVudGltZTBwcm92aW5nX3RyaWUkVHJpZUVycm9yAAE4QEludmFsaWRTdGF0ZVJvb3QAAABISW5jb21wbGV0ZURhdGFiYXNlAAEAUFZhbHVlQXRJbmNvbXBsZXRlS2V5AAIAMERlY29kZXJFcnJvcgADACxJbnZhbGlkSGFzaAAEADBEdXBsaWNhdGVLZXkABQA4RXh0cmFuZW91c05vZGUABgA8RXh0cmFuZW91c1ZhbHVlAAcAXEV4dHJhbmVvdXNIYXNoUmVmZXJlbmNlAAgAVEludmFsaWRDaGlsZFJlZmVyZW5jZQAJADRWYWx1ZU1pc21hdGNoAAoAPEluY29tcGxldGVQcm9vZgALADBSb290TWlzbWF0Y2gADAAsRGVjb2RlRXJyb3IADQAAuQYMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEYYFZhbGlkYXRpb25GdW5jdGlvblN0b3JlZAAABNBUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBoYXMgYmVlbiBzY2hlZHVsZWQgdG8gYXBwbHkuZFZhbGlkYXRpb25GdW5jdGlvbkFwcGxpZWQEAVRyZWxheV9jaGFpbl9ibG9ja19udW04AVRSZWxheUNoYWluQmxvY2tOdW1iZXIAAQRFAVRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdhcyBhcHBsaWVkIGFzIG9mIHRoZSBjb250YWluZWQgcmVsYXkgY2hhaW4gYmxvY2sgbnVtYmVyLmxWYWxpZGF0aW9uRnVuY3Rpb25EaXNjYXJkZWQAAgSwVGhlIHJlbGF5LWNoYWluIGFib3J0ZWQgdGhlIHVwZ3JhZGUgcHJvY2Vzcy5gRG93bndhcmRNZXNzYWdlc1JlY2VpdmVkBAEUY291bnQ4AQx1MzIAAwQBAVNvbWUgZG93bndhcmQgbWVzc2FnZXMgaGF2ZSBiZWVuIHJlY2VpdmVkIGFuZCB3aWxsIGJlIHByb2Nlc3NlZC5kRG93bndhcmRNZXNzYWdlc1Byb2Nlc3NlZAgBLHdlaWdodF91c2Vk1QEBGFdlaWdodAABIGRtcV9oZWFkPAFEcmVsYXlfY2hhaW46Okhhc2gABATgRG93bndhcmQgbWVzc2FnZXMgd2VyZSBwcm9jZXNzZWQgdXNpbmcgdGhlIGdpdmVuIHdlaWdodC5EVXB3YXJkTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2i9BgE8T3B0aW9uPFhjbUhhc2g+AAUEuEFuIHVwd2FyZCBtZXNzYWdlIHdhcyBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS9BgQYT3B0aW9uBARUAQgBCBBOb25lAAAAEFNvbWUEAAgAAAEAAMEGDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAF4HEVuZG93ZWQIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlxAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8EATBUOjpBY2NvdW50SWQAARBmcmVlxAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzxQYBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuME1pbnRlZENyZWRpdAQBGGFtb3VudMQBKFQ6OkJhbGFuY2UACwTgU29tZSBjcmVkaXQgd2FzIGJhbGFuY2VkIGFuZCBhZGRlZCB0byB0aGUgVG90YWxJc3N1YW5jZS4YQnVybmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAMBJxTb21lIGFtb3VudCB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC4oQnVybmVkRGVidAQBGGFtb3VudMQBKFQ6OkJhbGFuY2UADQTMU29tZSBkZWJ0IGhhcyBiZWVuIGRyb3BwZWQgZnJvbSB0aGUgVG90YWwgSXNzdWFuY2UuJFN1c3BlbmRlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UADgQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UADwSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8EATBUOjpBY2NvdW50SWQAEARgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudMQBKFQ6OkJhbGFuY2UAEQQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnTEAShUOjpCYWxhbmNlABIEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAEwRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAUBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABUEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABYEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkxAEoVDo6QmFsYW5jZQABDG5ld8QBKFQ6OkJhbGFuY2UAFwSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLhBIZWxkDAEYcmVhc29uyQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAYBIBTb21lIGJhbGFuY2Ugd2FzIHBsYWNlZCBvbiBob2xkLihCdXJuZWRIZWxkDAEYcmVhc29uyQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAZBKBIZWxkIGJhbGFuY2Ugd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuOFRyYW5zZmVyT25Ib2xkEAEYcmVhc29uyQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYc291cmNlBAEwVDo6QWNjb3VudElkAAEQZGVzdAQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAGgQVAUEgdHJhbnNmZXIgb2YgYGFtb3VudGAgb24gaG9sZCBmcm9tIGBzb3VyY2VgIHRvIGBkZXN0YCB3YXMgaW5pdGlhdGVkLjxUcmFuc2ZlckFuZEhvbGQQARhyZWFzb27JBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhzb3VyY2UEATBUOjpBY2NvdW50SWQAARBkZXN0BAEwVDo6QWNjb3VudElkAAEsdHJhbnNmZXJyZWTEAShUOjpCYWxhbmNlABsECQFUaGUgYHRyYW5zZmVycmVkYCBiYWxhbmNlIGlzIHBsYWNlZCBvbiBob2xkIGF0IHRoZSBgZGVzdGAgYWNjb3VudC4gUmVsZWFzZWQMARhyZWFzb27JBgFQVDo6UnVudGltZUhvbGRSZWFzb24AAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABwEkFNvbWUgYmFsYW5jZSB3YXMgcmVsZWFzZWQgZnJvbSBob2xkLihVbmV4cGVjdGVkBADtBgE4VW5leHBlY3RlZEtpbmQAHQSwQW4gdW5leHBlY3RlZC9kZWZlbnNpdmUgZXZlbnQgd2FzIHRyaWdnZXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTFBhQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2M0QmFsYW5jZVN0YXR1cwABCBBGcmVlAAAAIFJlc2VydmVkAAEAAMkGCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lRFJ1bnRpbWVIb2xkUmVhc29uAAEgHFNlc3Npb24EAM0GAWhwYWxsZXRfc2Vzc2lvbjo6SG9sZFJlYXNvbgAWACxQb2xrYWRvdFhjbQQA0QYBWHBhbGxldF94Y206OkhvbGRSZWFzb24AHwAcTW9iUnVsZQQA1QYBhGluZGl2X3BhbGxldF9tb2JfcnVsZTo6SG9sZFJlYXNvbgA0AChQcm9vZk9mSW5rBADZBgGUaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6SG9sZFJlYXNvbgA1ABBHYW1lBADdBgF0aW5kaXZfcGFsbGV0X2dhbWU6OkhvbGRSZWFzb24ANwAUU2NvcmUEAOEGAXhpbmRpdl9wYWxsZXRfc2NvcmU6OkhvbGRSZWFzb24AOAAcQ29pbmFnZQQA5QYBgGluZGl2X3BhbGxldF9jb2luYWdlOjpIb2xkUmVhc29uAEQAHEFpcmRyb3AEAOkGAYBpbmRpdl9wYWxsZXRfYWlyZHJvcDo6SG9sZFJlYXNvbgBGAADNBgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0KEhvbGRSZWFzb24AAQQQS2V5cwAAAADRBgwocGFsbGV0X3hjbRhwYWxsZXQoSG9sZFJlYXNvbgABBDhBdXRob3JpemVBbGlhcwAAAADVBgxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldChIb2xkUmVhc29uAAEIGFBheW91dAAAABhDcmVkaXQAAQAA2QYMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0KEhvbGRSZWFzb24AAQQoUHJvb2ZPZkluawAAAADdBgxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0KEhvbGRSZWFzb24AAQQsUGxheURlcG9zaXQAAAAA4QYMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQoSG9sZFJlYXNvbgABCBhQYXlvdXQAAAAYQ3JlZGl0AAEAAOUGDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQoSG9sZFJlYXNvbgABBBxXcmFwcGVkAAAAAOkGDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBhwYWxsZXQoSG9sZFJlYXNvbgABBBxBaXJkcm9wAAAAAO0GDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0OFVuZXhwZWN0ZWRLaW5kAAEIOEJhbGFuY2VVcGRhdGVkAAAAVEZhaWxlZFRvTXV0YXRlQWNjb3VudAABAADxBgxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEESFRyYW5zYWN0aW9uRmVlUGFpZAwBDHdobwQBMFQ6OkFjY291bnRJZAABKGFjdHVhbF9mZWXEATBCYWxhbmNlT2Y8VD4AAQx0aXDEATBCYWxhbmNlT2Y8VD4AAAhZAUEgdHJhbnNhY3Rpb24gZmVlIGBhY3R1YWxfZmVlYCwgb2Ygd2hpY2ggYHRpcGAgd2FzIGFkZGVkIHRvIHRoZSBtaW5pbXVtIGluY2x1c2lvbiBmZWUsXGhhcyBiZWVuIHBhaWQgYnkgYHdob2AuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV09QYMbHBhbGxldF9za2lwX2ZlZWxlc3NfcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQQoRmVlU2tpcHBlZAQBGG9yaWdpbjEDAcA8VDo6UnVudGltZU9yaWdpbiBhcyBPcmlnaW5UcmFpdD46OlBhbGxldHNPcmlnaW4AAAR4QSB0cmFuc2FjdGlvbiBmZWUgd2FzIHNraXBwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0+QYMfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb24YcGFsbGV0FEV2ZW50BARUAAEEMFVzYWdlQ2xlYW5lZAQBGGVudGl0edgBTFQ6OlJlc3RyaWN0ZWRFbnRpdHkAAAR8VXNhZ2UgZm9yIGFuIGVudGl0eSBpcyBjbGVhbmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldP0GDDRwYWxsZXRfYXNzZXRzGHBhbGxldBRFdmVudAgEVAAESQABgBxDcmVhdGVkDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEcY3JlYXRvcgQBMFQ6OkFjY291bnRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAAEdFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGNyZWF0ZWQuGElzc3VlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQABBGBTb21lIGFzc2V0cyB3ZXJlIGlzc3VlZC4sVHJhbnNmZXJyZWQQASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAIEdFNvbWUgYXNzZXRzIHdlcmUgdHJhbnNmZXJyZWQuGEJ1cm5lZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEcYmFsYW5jZcQBKFQ6OkJhbGFuY2UAAwRsU29tZSBhc3NldHMgd2VyZSBkZXN0cm95ZWQuLFRlYW1DaGFuZ2VkEAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYaXNzdWVyBAEwVDo6QWNjb3VudElkAAEUYWRtaW4EATBUOjpBY2NvdW50SWQAARxmcmVlemVyBAEwVDo6QWNjb3VudElkAAQEcFRoZSBtYW5hZ2VtZW50IHRlYW0gY2hhbmdlZC4wT3duZXJDaGFuZ2VkCAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQABQRIVGhlIG93bmVyIGNoYW5nZWQuGEZyb3plbggBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAGBHhTb21lIGFjY291bnQgYHdob2Agd2FzIGZyb3plbi4YVGhhd2VkCAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAcEeFNvbWUgYWNjb3VudCBgd2hvYCB3YXMgdGhhd2VkLixBc3NldEZyb3plbgQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAAIBIRTb21lIGFzc2V0IGBhc3NldF9pZGAgd2FzIGZyb3plbi4sQXNzZXRUaGF3ZWQEASBhc3NldF9pZOABKFQ6OkFzc2V0SWQACQSEU29tZSBhc3NldCBgYXNzZXRfaWRgIHdhcyB0aGF3ZWQuREFjY291bnRzRGVzdHJveWVkDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAFIYWNjb3VudHNfZGVzdHJveWVkOAEMdTMyAAFIYWNjb3VudHNfcmVtYWluaW5nOAEMdTMyAAoEoEFjY291bnRzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IQXBwcm92YWxzRGVzdHJveWVkDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAFMYXBwcm92YWxzX2Rlc3Ryb3llZDgBDHUzMgABTGFwcHJvdmFsc19yZW1haW5pbmc4AQx1MzIACwSkQXBwcm92YWxzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IRGVzdHJ1Y3Rpb25TdGFydGVkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAwE0EFuIGFzc2V0IGNsYXNzIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGRlc3Ryb3llZC4kRGVzdHJveWVkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkAA0EdEFuIGFzc2V0IGNsYXNzIHdhcyBkZXN0cm95ZWQuMEZvcmNlQ3JlYXRlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAA4EjFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGZvcmNlLWNyZWF0ZWQuLE1ldGFkYXRhU2V0FAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbsgBEGJvb2wADwScTmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYW4gYXNzZXQuPE1ldGFkYXRhQ2xlYXJlZAQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAAQBJxNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBhc3NldC5AQXBwcm92ZWRUcmFuc2ZlchABIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGHNvdXJjZQQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQARBDEBKEFkZGl0aW9uYWwpIGZ1bmRzIGhhdmUgYmVlbiBhcHByb3ZlZCBmb3IgdHJhbnNmZXIgdG8gYSBkZXN0aW5hdGlvbiBhY2NvdW50LkRBcHByb3ZhbENhbmNlbGxlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQAEgTwQW4gYXBwcm92YWwgZm9yIGFjY291bnQgYGRlbGVnYXRlYCB3YXMgY2FuY2VsbGVkIGJ5IGBvd25lcmAuTFRyYW5zZmVycmVkQXBwcm92ZWQUASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkAAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABMIMQFBbiBgYW1vdW50YCB3YXMgdHJhbnNmZXJyZWQgaW4gaXRzIGVudGlyZXR5IGZyb20gYG93bmVyYCB0byBgZGVzdGluYXRpb25gIGJ5YHRoZSBhcHByb3ZlZCBgZGVsZWdhdGVgLkhBc3NldFN0YXR1c0NoYW5nZWQEASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAFAT4QW4gYXNzZXQgaGFzIGhhZCBpdHMgYXR0cmlidXRlcyBjaGFuZ2VkIGJ5IHRoZSBgRm9yY2VgIG9yaWdpbi5YQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABPG5ld19taW5fYmFsYW5jZcQBKFQ6OkJhbGFuY2UAFQQBAVRoZSBtaW5fYmFsYW5jZSBvZiBhbiBhc3NldCBoYXMgYmVlbiB1cGRhdGVkIGJ5IHRoZSBhc3NldCBvd25lci4cVG91Y2hlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABJGRlcG9zaXRvcgQBMFQ6OkFjY291bnRJZAAWBPxTb21lIGFjY291bnQgYHdob2Agd2FzIGNyZWF0ZWQgd2l0aCBhIGRlcG9zaXQgZnJvbSBgZGVwb3NpdG9yYC4cQmxvY2tlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAXBHxTb21lIGFjY291bnQgYHdob2Agd2FzIGJsb2NrZWQuJERlcG9zaXRlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAGATcU29tZSBhc3NldHMgd2VyZSBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiRXaXRoZHJhd24MASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABkEIQFTb21lIGFzc2V0cyB3ZXJlIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS48UmVzZXJ2ZXNVcGRhdGVkCAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEgcmVzZXJ2ZXMlAQFMVmVjPFQ6OlJlc2VydmVEYXRhPgAaBNhSZXNlcnZlIGluZm9ybWF0aW9uIHdhcyBzZXQgb3IgdXBkYXRlZCBmb3IgYGFzc2V0X2lkYC48UmVzZXJ2ZXNSZW1vdmVkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkABsEvFJlc2VydmUgaW5mb3JtYXRpb24gd2FzIHJlbW92ZWQgZm9yIGBhc3NldF9pZGAuMElzc3VlZENyZWRpdAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAHATEU29tZSBhc3NldHMgd2VyZSBpc3N1ZWQgYXMgQ3JlZGl0IChubyBvd25lciB5ZXQpLjBCdXJuZWRDcmVkaXQIASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAB0EhFNvbWUgYXNzZXRzIENyZWRpdCB3YXMgZGVzdHJveWVkLihJc3N1ZWREZWJ0CAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAeBLxTb21lIGFzc2V0cyB3ZXJlIGJ1cm5lZCBhbmQgYSBEZWJ0IHdhcyBjcmVhdGVkLihCdXJuZWREZWJ0CAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAfBMxTb21lIGFzc2V0cyBEZWJ0IHdhcyBkZXN0cm95ZWQgKGFuZCBhc3NldHMgaXNzdWVkKS4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQBBwxQcGFsbGV0X2Fzc2V0c19ob2xkZXIYcGFsbGV0FEV2ZW50CARUAARJAAEMEEhlbGQQAQx3aG8EATBUOjpBY2NvdW50SWQAASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhyZWFzb27JBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhhbW91bnTEAShUOjpCYWxhbmNlAAAExGB3aG9gcyBiYWxhbmNlIG9uIGhvbGQgd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YC4gUmVsZWFzZWQQAQx3aG8EATBUOjpBY2NvdW50SWQAASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhyZWFzb27JBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhhbW91bnTEAShUOjpCYWxhbmNlAAEExGB3aG9gcyBiYWxhbmNlIG9uIGhvbGQgd2FzIGRlY3JlYXNlZCBieSBgYW1vdW50YC4YQnVybmVkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYcmVhc29uyQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYYW1vdW50xAEoVDo6QmFsYW5jZQACBLhgd2hvYHMgYmFsYW5jZSBvbiBob2xkIHdhcyBidXJuZWQgYnkgYGFtb3VudGAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0BQcMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBRFdmVudAQEVAABDEBBc3NldFJhdGVDcmVhdGVkCAEoYXNzZXRfa2luZOABMFQ6OkFzc2V0S2luZAABEHJhdGUtAQEkRml4ZWRVMTI4AAAAQEFzc2V0UmF0ZVJlbW92ZWQEAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEAQEFzc2V0UmF0ZVVwZGF0ZWQMAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEMb2xkLQEBJEZpeGVkVTEyOAABDG5ldy0BASRGaXhlZFUxMjgAAgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQJBwxccGFsbGV0X2Fzc2V0X3R4X3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEEOEFzc2V0VHhGZWVQYWlkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEoYWN0dWFsX2ZlZcQBREFzc2V0QmFsYW5jZU9mPFQ+AAEMdGlwxAFEQXNzZXRCYWxhbmNlT2Y8VD4AASBhc3NldF9pZKECAWhPcHRpb248Q2hhcmdlQXNzZXRJZE9mPFQ+PgAACFkBQSB0cmFuc2FjdGlvbiBmZWUgYGFjdHVhbF9mZWVgLCBvZiB3aGljaCBgdGlwYCB3YXMgYWRkZWQgdG8gdGhlIG1pbmltdW0gaW5jbHVzaW9uIGZlZSy4aGFzIGJlZW4gcGFpZCBieSBgd2hvYCBpbiBhbiBhc3NldCBgYXNzZXRfaWRgLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldA0HDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFdmVudAQEVAABKEBOZXdJbnZ1bG5lcmFibGVzBAE0aW52dWxuZXJhYmxlc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAAEbE5ldyBJbnZ1bG5lcmFibGVzIHdlcmUgc2V0LkRJbnZ1bG5lcmFibGVBZGRlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAAQR0QSBuZXcgSW52dWxuZXJhYmxlIHdhcyBhZGRlZC5MSW52dWxuZXJhYmxlUmVtb3ZlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAAgRwQW4gSW52dWxuZXJhYmxlIHdhcyByZW1vdmVkLlBOZXdEZXNpcmVkQ2FuZGlkYXRlcwQBSGRlc2lyZWRfY2FuZGlkYXRlczgBDHUzMgADBKRUaGUgbnVtYmVyIG9mIGRlc2lyZWQgY2FuZGlkYXRlcyB3YXMgc2V0LkBOZXdDYW5kaWRhY3lCb25kBAEsYm9uZF9hbW91bnTEATBCYWxhbmNlT2Y8VD4ABARsVGhlIGNhbmRpZGFjeSBib25kIHdhcyBzZXQuOENhbmRpZGF0ZUFkZGVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXTEATBCYWxhbmNlT2Y8VD4ABQRcQSBuZXcgY2FuZGlkYXRlIGpvaW5lZC5QQ2FuZGlkYXRlQm9uZFVwZGF0ZWQIAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAGBHBCb25kIG9mIGEgY2FuZGlkYXRlIHVwZGF0ZWQuQENhbmRpZGF0ZVJlbW92ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAcEYEEgY2FuZGlkYXRlIHdhcyByZW1vdmVkLkRDYW5kaWRhdGVSZXBsYWNlZAwBDG9sZAQBMFQ6OkFjY291bnRJZAABDG5ldwQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXTEATBCYWxhbmNlT2Y8VD4ACAT0QW4gYWNjb3VudCB3YXMgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGJ5IGFub3RoZXIgb25lLmhJbnZhbGlkSW52dWxuZXJhYmxlU2tpcHBlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQACQhVAUFuIGFjY291bnQgd2FzIHVuYWJsZSB0byBiZSBhZGRlZCB0byB0aGUgSW52dWxuZXJhYmxlcyBiZWNhdXNlIHRoZXkgZGlkIG5vdCBoYXZlIGtleXPIcmVnaXN0ZXJlZC4gT3RoZXIgSW52dWxuZXJhYmxlcyBtYXkgaGF2ZSBiZWVuIHNldC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQRBww4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50BARUAAEQKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4OAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuJE5ld1F1ZXVlZAABCEkBVGhlIGBOZXdTZXNzaW9uYCBldmVudCBpbiB0aGUgY3VycmVudCBibG9jayBhbHNvIGltcGxpZXMgYSBuZXcgdmFsaWRhdG9yIHNldCB0byBiZRxxdWV1ZWQuRFZhbGlkYXRvckRpc2FibGVkBAEkdmFsaWRhdG9yBAE4VDo6VmFsaWRhdG9ySWQAAgRwVmFsaWRhdG9yIGhhcyBiZWVuIGRpc2FibGVkLkhWYWxpZGF0b3JSZWVuYWJsZWQEASR2YWxpZGF0b3IEAThUOjpWYWxpZGF0b3JJZAADBHhWYWxpZGF0b3IgaGFzIGJlZW4gcmUtZW5hYmxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQVBwxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAAQQ8WGNtcE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNoCAEcWGNtSGFzaAAABMBBbiBIUk1QIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gYSBzaWJsaW5nIHBhcmFjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQZBwwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAXQkQXR0ZW1wdGVkBAEcb3V0Y29tZR0HAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbuABIExvY2F0aW9uAAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABHG1lc3NhZ2VdAgEcWGNtPCgpPgABKG1lc3NhZ2VfaWQIARxYY21IYXNoAAEEYEFuIFhDTSBtZXNzYWdlIHdhcyBzZW50LihTZW5kRmFpbGVkEAEYb3JpZ2lu4AEgTG9jYXRpb24AASxkZXN0aW5hdGlvbuABIExvY2F0aW9uAAEUZXJyb3IlBwEkU2VuZEVycm9yAAEobWVzc2FnZV9pZAgBHFhjbUhhc2gAAgR4QW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHNlbmQuPFByb2Nlc3NYY21FcnJvcgwBGG9yaWdpbuABIExvY2F0aW9uAAEUZXJyb3KNAgEgWGNtRXJyb3IAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAADBIRBbiBYQ00gbWVzc2FnZSBmYWlsZWQgdG8gcHJvY2Vzcy5IVW5leHBlY3RlZFJlc3BvbnNlCAEYb3JpZ2lu4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQABAxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkKAEcUXVlcnlJZAABIHJlc3BvbnNlgQIBIFJlc3BvbnNlAAUIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAGCFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAABNGFjdHVhbF93ZWlnaHTVAQEYV2VpZ2h0AAFMbWF4X2J1ZGdldGVkX3dlaWdodNUBARhXZWlnaHQABwxJAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb25ZAWNvdWxkIG5vdCBiZSBkaXNwYXRjaGVkIGJlY2F1c2UgdGhlIGRpc3BhdGNoIHdlaWdodCBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gd2VpZ2h05G9yaWdpbmFsbHkgYnVkZ2V0ZWQgYnkgdGhpcyBydW50aW1lIGZvciB0aGUgcXVlcnkgcmVzdWx0LkxOb3RpZnlEaXNwYXRjaEVycm9yDAEgcXVlcnlfaWQoARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgACAhVAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGVyZSB3YXMgYSBnZW5lcmFsIGVycm9yIHdpdGiIZGlzcGF0Y2hpbmcgdGhlIG5vdGlmaWNhdGlvbiBjYWxsLkhOb3RpZnlEZWNvZGVGYWlsZWQMASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAJDFEBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSBkaXNwYXRjaCB3YXMgdW5hYmxlIHRvIGJlWQFkZWNvZGVkIGludG8gYSBgQ2FsbGA7IHRoaXMgbWlnaHQgYmUgZHVlIHRvIGRpc3BhdGNoIGZ1bmN0aW9uIGhhdmluZyBhIHNpZ25hdHVyZSB3aGljaJRpcyBub3QgYChvcmlnaW4sIFF1ZXJ5SWQsIFJlc3BvbnNlKWAuQEludmFsaWRSZXNwb25kZXIMARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAABRGV4cGVjdGVkX2xvY2F0aW9uoQIBQE9wdGlvbjxMb2NhdGlvbj4ACgxZAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgb3JpZ2luIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzVQFub3QgbWF0Y2ggdGhhdCBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlxJbnZhbGlkUmVzcG9uZGVyVmVyc2lvbggBGG9yaWdpbuABIExvY2F0aW9uAAEgcXVlcnlfaWQoARxRdWVyeUlkAAscUQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIGV4cGVjdGVkIG9yaWdpbiBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuNFJlc3BvbnNlVGFrZW4EASBxdWVyeV9pZCgBHFF1ZXJ5SWQADATIUmVjZWl2ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVhZCBhbmQgcmVtb3ZlZC40QXNzZXRzVHJhcHBlZAwBEGhhc2g8ARBIMjU2AAEYb3JpZ2lu4AEgTG9jYXRpb24AARhhc3NldHPZAgE8VmVyc2lvbmVkQXNzZXRzAA0EuFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBwbGFjZWQgaW4gYW4gYXNzZXQgdHJhcC5UVmVyc2lvbkNoYW5nZU5vdGlmaWVkEAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABGHJlc3VsdDgBKFhjbVZlcnNpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoAA4MJQFBbiBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2UgaGFzIGJlZW4gYXR0ZW1wdGVkIHRvIGJlIHNlbnQuAOBUaGUgY29zdCBvZiBzZW5kaW5nIGl0IChib3JuZSBieSB0aGUgY2hhaW4pIGlzIGluY2x1ZGVkLlxTdXBwb3J0ZWRWZXJzaW9uQ2hhbmdlZAgBIGxvY2F0aW9u4AEgTG9jYXRpb24AARx2ZXJzaW9uOAEoWGNtVmVyc2lvbgAPCDkBVGhlIHN1cHBvcnRlZCB2ZXJzaW9uIG9mIGEgbG9jYXRpb24gaGFzIGJlZW4gY2hhbmdlZC4gVGhpcyBtaWdodCBiZSB0aHJvdWdoIGFuwGF1dG9tYXRpYyBub3RpZmljYXRpb24gb3IgYSBtYW51YWwgaW50ZXJ2ZW50aW9uLlBOb3RpZnlUYXJnZXRTZW5kRmFpbAwBIGxvY2F0aW9u4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAARRlcnJvco0CASBYY21FcnJvcgAQCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3J8c2VuZGluZyB0aGUgbm90aWZpY2F0aW9uIHRvIGl0LmROb3RpZnlUYXJnZXRNaWdyYXRpb25GYWlsCAEgbG9jYXRpb25JAQFEVmVyc2lvbmVkTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAEQhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9ytG1pZ3JhdGluZyB0aGUgbG9jYXRpb24gdG8gb3VyIG5ldyBYQ00gZm9ybWF0LlRJbnZhbGlkUXVlcmllclZlcnNpb24IARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAASHFUBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBxdWVyaWVyIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC44SW52YWxpZFF1ZXJpZXIQARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAABQGV4cGVjdGVkX3F1ZXJpZXLgASBMb2NhdGlvbgABUG1heWJlX2FjdHVhbF9xdWVyaWVyoQIBQE9wdGlvbjxMb2NhdGlvbj4AEwxdAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgcXVlcmllciBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1EBbm90IG1hdGNoIHRoZSBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlBWZXJzaW9uTm90aWZ5U3RhcnRlZAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABQIWQFBIHJlbW90ZSBoYXMgcmVxdWVzdGVkIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gZnJvbSB1cyBhbmQgd2UgaGF2ZSBob25vcmVkIGl0Lh0BQSB2ZXJzaW9uIGluZm9ybWF0aW9uIG1lc3NhZ2UgaXMgc2VudCB0byB0aGVtIGFuZCBpdHMgY29zdCBpcyBpbmNsdWRlZC5YVmVyc2lvbk5vdGlmeVJlcXVlc3RlZAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABUEPQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHNlbmQgdXMgWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuYFZlcnNpb25Ob3RpZnlVbnJlcXVlc3RlZAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABYIJQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHN0b3BzIHNlbmRpbmcgdXMgWENNIHZlcnNpb24gY2hhbmdlOG5vdGlmaWNhdGlvbnMuIEZlZXNQYWlkCAEYcGF5aW5n4AEgTG9jYXRpb24AARBmZWVzaQIBGEFzc2V0cwAXBDEBRmVlcyB3ZXJlIHBhaWQgZnJvbSBhIGxvY2F0aW9uIGZvciBhbiBvcGVyYXRpb24gKG9mdGVuIGZvciB1c2luZyBgU2VuZFhjbWApLjRBc3NldHNDbGFpbWVkDAEQaGFzaDwBEEgyNTYAARhvcmlnaW7gASBMb2NhdGlvbgABGGFzc2V0c9kCATxWZXJzaW9uZWRBc3NldHMAGATAU29tZSBhc3NldHMgaGF2ZSBiZWVuIGNsYWltZWQgZnJvbSBhbiBhc3NldCB0cmFwYFZlcnNpb25NaWdyYXRpb25GaW5pc2hlZAQBHHZlcnNpb244AShYY21WZXJzaW9uABkEhEEgWENNIHZlcnNpb24gbWlncmF0aW9uIGZpbmlzaGVkLjxBbGlhc0F1dGhvcml6ZWQMARxhbGlhc2Vy4AEgTG9jYXRpb24AARh0YXJnZXTgASBMb2NhdGlvbgABGGV4cGlyeRUDASxPcHRpb248dTY0PgAaCF0BQW4gYGFsaWFzZXJgIGxvY2F0aW9uIHdhcyBhdXRob3JpemVkIGJ5IGB0YXJnZXRgIHRvIGFsaWFzIGl0LCBhdXRob3JpemF0aW9uIHZhbGlkIHVudGlsWGBleHBpcnlgIGJsb2NrIG51bWJlci5kQWxpYXNBdXRob3JpemF0aW9uUmVtb3ZlZAgBHGFsaWFzZXLgASBMb2NhdGlvbgABGHRhcmdldOABIExvY2F0aW9uABsEzGB0YXJnZXRgIHJlbW92ZWQgYWxpYXMgYXV0aG9yaXphdGlvbiBmb3IgYGFsaWFzZXJgLnBBbGlhc2VzQXV0aG9yaXphdGlvbnNSZW1vdmVkBAEYdGFyZ2V04AEgTG9jYXRpb24AHASoYHRhcmdldGAgcmVtb3ZlZCBhbGwgYWxpYXMgYXV0aG9yaXphdGlvbnMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0HQcQLHN0YWdpbmdfeGNtCHY1GHRyYWl0cxxPdXRjb21lAAEMIENvbXBsZXRlBAEQdXNlZNUBARhXZWlnaHQAAAAoSW5jb21wbGV0ZQgBEHVzZWTVAQEYV2VpZ2h0AAEUZXJyb3IhBwFASW5zdHJ1Y3Rpb25FcnJvcgABABRFcnJvcgQAIQcBQEluc3RydWN0aW9uRXJyb3IAAgAAIQcQLHN0YWdpbmdfeGNtCHY1GHRyYWl0c0BJbnN0cnVjdGlvbkVycm9yAAAIARRpbmRleAwBQEluc3RydWN0aW9uSW5kZXgAARRlcnJvco0CARRFcnJvcgAAJQcQDHhjbQh2Mxh0cmFpdHMkU2VuZEVycm9yAAEcNE5vdEFwcGxpY2FibGUAAAAkVHJhbnNwb3J0AAEAKFVucm91dGFibGUAAgBYRGVzdGluYXRpb25VbnN1cHBvcnRlZAADAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUABAA8TWlzc2luZ0FyZ3VtZW50AAUAEEZlZXMABgAAKQcMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAQw0SW52YWxpZEZvcm1hdAQACAEgW3U4OyAzMl0AAAiARG93bndhcmQgbWVzc2FnZSBpcyBpbnZhbGlkIFhDTS4gXFsgaWQgXF1IVW5zdXBwb3J0ZWRWZXJzaW9uBAAIASBbdTg7IDMyXQABCLxEb3dud2FyZCBtZXNzYWdlIGlzIHVuc3VwcG9ydGVkIHZlcnNpb24gb2YgWENNLiBcWyBpZCBcXUBFeGVjdXRlZERvd253YXJkCAAIASBbdTg7IDMyXQAAHQcBHE91dGNvbWUAAgjERG93bndhcmQgbWVzc2FnZSBleGVjdXRlZCB3aXRoIHRoZSBnaXZlbiBvdXRjb21lLkRcWyBpZCwgb3V0Y29tZSBcXQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldC0HDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAARBAUHJvY2Vzc2luZ0ZhaWxlZAwBCGlkPAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEUZXJyb3IxBwFMUHJvY2Vzc01lc3NhZ2VFcnJvchBgVGhlIGVycm9yIHRoYXQgb2NjdXJyZWQuAEkBVGhpcyBlcnJvciBpcyBwcmV0dHkgb3BhcXVlLiBNb3JlIGZpbmUtZ3JhaW5lZCBlcnJvcnMgbmVlZCB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgAEVQFNZXNzYWdlIGRpc2NhcmRlZCBkdWUgdG8gYW4gZXJyb3IgaW4gdGhlIGBNZXNzYWdlUHJvY2Vzc29yYCAodXN1YWxseSBhIGZvcm1hdCBlcnJvcikuJFByb2Nlc3NlZBABCGlkPAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEsd2VpZ2h0X3VzZWTVAQEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3PIARBib29sGIhXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuAEkBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGBNZXNzYWdlUHJvY2Vzc29yYCB3YXMgaW50ZXJuYWxseTUBc3VjY2Vzc2Z1bC4gSXQgKnNvbGVseSogbWVhbnMgdGhhdCB0aGUgTVEgcGFsbGV0IHdpbGwgdHJlYXQgdGhpcyBhcyBhIHN1Y2Nlc3NNAWNvbmRpdGlvbiBhbmQgZGlzY2FyZCB0aGUgbWVzc2FnZS4gQW55IGludGVybmFsIGVycm9yIG5lZWRzIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAQRUTWVzc2FnZSBpcyBwcm9jZXNzZWQuSE92ZXJ3ZWlnaHRFbnF1ZXVlZBABCGlkCAEgW3U4OyAzMl0ElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgEYFRoZSBwYWdlIG9mIHRoZSBtZXNzYWdlLgE0bWVzc2FnZV9pbmRleDgBHFQ6OlNpemUEpFRoZSBpbmRleCBvZiB0aGUgbWVzc2FnZSB3aXRoaW4gdGhlIHBhZ2UuAgSMTWVzc2FnZSBwbGFjZWQgaW4gb3ZlcndlaWdodCBxdWV1ZS4oUGFnZVJlYXBlZAgBGG9yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4EWFRoZSBxdWV1ZSBvZiB0aGUgcGFnZS4BFGluZGV4OAEkUGFnZUluZGV4BFhUaGUgaW5kZXggb2YgdGhlIHBhZ2UuAwRUVGhpcyBwYWdlIHdhcyByZWFwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0MQcQNGZyYW1lX3N1cHBvcnQYdHJhaXRzIG1lc3NhZ2VzTFByb2Nlc3NNZXNzYWdlRXJyb3IAARgkQmFkRm9ybWF0AAAAHENvcnJ1cHQAAQAsVW5zdXBwb3J0ZWQAAgAoT3ZlcndlaWdodAQA1QEBGFdlaWdodAADABRZaWVsZAAEAERTdGFja0xpbWl0UmVhY2hlZAAFAAA1Bww4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEV2ZW50AAEgQEJhdGNoSW50ZXJydXB0ZWQIARRpbmRleDgBDHUzMgABFGVycm9yoQYBNERpc3BhdGNoRXJyb3IAAAhVAUJhdGNoIG9mIGRpc3BhdGNoZXMgZGlkIG5vdCBjb21wbGV0ZSBmdWxseS4gSW5kZXggb2YgZmlyc3QgZmFpbGluZyBkaXNwYXRjaCBnaXZlbiwgYXNId2VsbCBhcyB0aGUgZXJyb3IuOEJhdGNoQ29tcGxldGVkAAEEyEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGZ1bGx5IHdpdGggbm8gZXJyb3IuYEJhdGNoQ29tcGxldGVkV2l0aEVycm9ycwACBLRCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBidXQgaGFzIGVycm9ycy40SXRlbUNvbXBsZXRlZAADBB0BQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBubyBlcnJvci4oSXRlbUZhaWxlZAQBFGVycm9yoQYBNERpc3BhdGNoRXJyb3IABAQRAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggZXJyb3IuMERpc3BhdGNoZWRBcwQBGHJlc3VsdDkHAThEaXNwYXRjaFJlc3VsdAAFBFhBIGNhbGwgd2FzIGRpc3BhdGNoZWQuRElmRWxzZU1haW5TdWNjZXNzAAYEZE1haW4gY2FsbCB3YXMgZGlzcGF0Y2hlZC5QSWZFbHNlRmFsbGJhY2tDYWxsZWQEAShtYWluX2Vycm9yoQYBNERpc3BhdGNoRXJyb3IABwSEVGhlIGZhbGxiYWNrIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0OQcEGFJlc3VsdAgEVAEQBEUBoQYBCAhPawQAEAAAAAAMRXJyBAChBgAAAQAAPQcMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXZlbnQEBFQAARQsTmV3TXVsdGlzaWcMASRhcHByb3ZpbmcEATBUOjpBY2NvdW50SWQAASBtdWx0aXNpZwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAAEjEEgbmV3IG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVndW4uQE11bHRpc2lnQXBwcm92YWwQASRhcHByb3ZpbmcEATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnSZAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAAQTIQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQgYnkgc29tZW9uZS5ATXVsdGlzaWdFeGVjdXRlZBQBJGFwcHJvdmluZwQBMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludJkDAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gIASBDYWxsSGFzaAABGHJlc3VsdDkHAThEaXNwYXRjaFJlc3VsdAACBJxBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBleGVjdXRlZC5ETXVsdGlzaWdDYW5jZWxsZWQQAShjYW5jZWxsaW5nBAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50mQMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAMEoEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZC4wRGVwb3NpdFBva2VkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAASxvbGRfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAQE8FRoZSBkZXBvc2l0IGZvciBhIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkL3Bva2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldEEHDCxwYWxsZXRfc3VkbxhwYWxsZXQURXZlbnQEBFQAARAUU3VkaWQEASxzdWRvX3Jlc3VsdDkHAThEaXNwYXRjaFJlc3VsdAS0VGhlIHJlc3VsdCBvZiB0aGUgY2FsbCBtYWRlIGJ5IHRoZSBzdWRvIHVzZXIuAARwQSBzdWRvIGNhbGwganVzdCB0b29rIHBsYWNlLihLZXlDaGFuZ2VkCAEMb2xkRQcBUE9wdGlvbjxUOjpBY2NvdW50SWQ+BLRUaGUgb2xkIHN1ZG8ga2V5IChpZiBvbmUgd2FzIHByZXZpb3VzbHkgc2V0KS4BDG5ldwQBMFQ6OkFjY291bnRJZASIVGhlIG5ldyBzdWRvIGtleSAoaWYgb25lIHdhcyBzZXQpLgEEeFRoZSBzdWRvIGtleSBoYXMgYmVlbiB1cGRhdGVkLihLZXlSZW1vdmVkAAIEgFRoZSBrZXkgd2FzIHBlcm1hbmVudGx5IHJlbW92ZWQuKFN1ZG9Bc0RvbmUEASxzdWRvX3Jlc3VsdDkHAThEaXNwYXRjaFJlc3VsdAS0VGhlIHJlc3VsdCBvZiB0aGUgY2FsbCBtYWRlIGJ5IHRoZSBzdWRvIHVzZXIuAwTIQSBbc3Vkb19hc10oUGFsbGV0OjpzdWRvX2FzKSBjYWxsIGp1c3QgdG9vayBwbGFjZS4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRFBwQYT3B0aW9uBARUAQQBCBBOb25lAAAAEFNvbWUEAAQAAAEAAEkHDDBwYWxsZXRfcHJveHkYcGFsbGV0FEV2ZW50BARUAAEcNFByb3h5RXhlY3V0ZWQEARhyZXN1bHQ5BwE4RGlzcGF0Y2hSZXN1bHQAAAS8QSBwcm94eSB3YXMgZXhlY3V0ZWQgY29ycmVjdGx5LCB3aXRoIHRoZSBnaXZlbi4sUHVyZUNyZWF0ZWQYARBwdXJlBAEwVDo6QWNjb3VudElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleC0DAQx1MTYAAQhhdDgBREJsb2NrTnVtYmVyRm9yPFQ+AAE8ZXh0cmluc2ljX2luZGV4OAEMdTMyAAEI3EEgcHVyZSBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgYnkgbmV3IHByb3h5IHdpdGggZ2l2ZW6QZGlzYW1iaWd1YXRpb24gaW5kZXggYW5kIHByb3h5IHR5cGUuKFB1cmVLaWxsZWQQARBwdXJlBAEwVDo6QWNjb3VudElkAAEcc3Bhd25lcgQBMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXgtAwEMdTE2AAIEnEEgcHVyZSBwcm94eSB3YXMga2lsbGVkIGJ5IGl0cyBzcGF3bmVyLiRBbm5vdW5jZWQMARByZWFsBAEwVDo6QWNjb3VudElkAAEUcHJveHkEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2g8ATRDYWxsSGFzaE9mPFQ+AAME4EFuIGFubm91bmNlbWVudCB3YXMgcGxhY2VkIHRvIG1ha2UgYSBjYWxsIGluIHRoZSBmdXR1cmUuKFByb3h5QWRkZWQQASRkZWxlZ2F0b3IEATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUEATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4ABARIQSBwcm94eSB3YXMgYWRkZWQuMFByb3h5UmVtb3ZlZBABJGRlbGVnYXRvcgQBMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQQBMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAEUZGVsYXk4AURCbG9ja051bWJlckZvcjxUPgAFBFBBIHByb3h5IHdhcyByZW1vdmVkLjBEZXBvc2l0UG9rZWQQAQx3aG8EATBUOjpBY2NvdW50SWQAARBraW5kTQcBLERlcG9zaXRLaW5kAAEsb2xkX2RlcG9zaXTEATBCYWxhbmNlT2Y8VD4AASxuZXdfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAGBAkBQSBkZXBvc2l0IHN0b3JlZCBmb3IgcHJveGllcyBvciBhbm5vdW5jZW1lbnRzIHdhcyBwb2tlZCAvIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0TQcIMHBhbGxldF9wcm94eSxEZXBvc2l0S2luZAABCBxQcm94aWVzAAAANEFubm91bmNlbWVudHMAAQAAUQcMVGluZGl2X3BhbGxldF9pZGVudGl0eRhwYWxsZXQURXZlbnQEBFQAAYAsSWRlbnRpdHlTZXQEAQx3aG8EATBUOjpBY2NvdW50SWQAAATsQSBuYW1lIHdhcyBzZXQgb3IgcmVzZXQgKHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBqdWRnZW1lbnRzKS48SWRlbnRpdHlDbGVhcmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgABBMxBIG5hbWUgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSByZXR1cm5lZC44SWRlbnRpdHlLaWxsZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARxkZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAIExEEgbmFtZSB3YXMgcmVtb3ZlZCBhbmQgdGhlIGdpdmVuIGJhbGFuY2Ugc2xhc2hlZC5ISnVkZ2VtZW50UmVxdWVzdGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4OAE4UmVnaXN0cmFySW5kZXgAAwScQSBqdWRnZW1lbnQgd2FzIGFza2VkIGZyb20gYSByZWdpc3RyYXIuUEp1ZGdlbWVudFVucmVxdWVzdGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4OAE4UmVnaXN0cmFySW5kZXgABASIQSBqdWRnZW1lbnQgcmVxdWVzdCB3YXMgcmV0cmFjdGVkLjhKdWRnZW1lbnRHaXZlbggBGHRhcmdldAQBMFQ6OkFjY291bnRJZAABPHJlZ2lzdHJhcl9pbmRleDgBOFJlZ2lzdHJhckluZGV4AAUElEEganVkZ2VtZW50IHdhcyBnaXZlbiBieSBhIHJlZ2lzdHJhci44UmVnaXN0cmFyQWRkZWQEATxyZWdpc3RyYXJfaW5kZXg4AThSZWdpc3RyYXJJbmRleAAGBFhBIHJlZ2lzdHJhciB3YXMgYWRkZWQuQFN1YklkZW50aXR5QWRkZWQMAQxzdWIEATBUOjpBY2NvdW50SWQAARBtYWluBAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAHBPRBIHN1Yi1pZGVudGl0eSB3YXMgYWRkZWQgdG8gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IHBhaWQuQFN1YklkZW50aXRpZXNTZXQMARBtYWluBAEwVDo6QWNjb3VudElkAAE4bnVtYmVyX29mX3N1YnM4AQx1MzIAASxuZXdfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAIBLxBbiBhY2NvdW50J3Mgc3ViLWlkZW50aXRpZXMgd2VyZSBzZXQgKGluIGJ1bGspLkhTdWJJZGVudGl0eVJlbmFtZWQIAQxzdWIEATBUOjpBY2NvdW50SWQAARBtYWluBAEwVDo6QWNjb3VudElkAAkEIQFBIGdpdmVuIHN1Yi1hY2NvdW50J3MgYXNzb2NpYXRlZCBuYW1lIHdhcyBjaGFuZ2VkIGJ5IGl0cyBzdXBlci1pZGVudGl0eS5IU3ViSWRlbnRpdHlSZW1vdmVkDAEMc3ViBAEwVDo6QWNjb3VudElkAAEQbWFpbgQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXTEATBCYWxhbmNlT2Y8VD4ACgQJAUEgc3ViLWlkZW50aXR5IHdhcyByZW1vdmVkIGZyb20gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IGZyZWVkLkhTdWJJZGVudGl0eVJldm9rZWQMAQxzdWIEATBUOjpBY2NvdW50SWQAARBtYWluBAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgALCBkBQSBzdWItaWRlbnRpdHkgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gZGVwb3NpdCByZXBhdHJpYXRlZCBmcm9tIHRoZchtYWluIGlkZW50aXR5IGFjY291bnQgdG8gdGhlIHN1Yi1pZGVudGl0eSBhY2NvdW50LjhBdXRob3JpdHlBZGRlZAQBJGF1dGhvcml0eQQBMFQ6OkFjY291bnRJZAAMBHxBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgYWRkZWQuQEF1dGhvcml0eVJlbW92ZWQEASRhdXRob3JpdHkEATBUOjpBY2NvdW50SWQADQSEQSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIHJlbW92ZWQuLFVzZXJuYW1lU2V0CAEMd2hvBAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4ADgR0QSB1c2VybmFtZSB3YXMgc2V0IGZvciBgd2hvYC44VXNlcm5hbWVRdWV1ZWQMAQx3aG8EATBUOjpBY2NvdW50SWQAASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgABKGV4cGlyYXRpb244AURCbG9ja051bWJlckZvcjxUPgAPBBkBQSB1c2VybmFtZSB3YXMgcXVldWVkLCBidXQgYHdob2AgbXVzdCBhY2NlcHQgaXQgcHJpb3IgdG8gYGV4cGlyYXRpb25gLkhQcmVhcHByb3ZhbEV4cGlyZWQEARR3aG9zZQQBMFQ6OkFjY291bnRJZAAQBDkBQSBxdWV1ZWQgdXNlcm5hbWUgcGFzc2VkIGl0cyBleHBpcmF0aW9uIHdpdGhvdXQgYmVpbmcgY2xhaW1lZCBhbmQgd2FzIHJlbW92ZWQuSFByaW1hcnlVc2VybmFtZVNldAgBDHdobwQBMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lSQQBLFVzZXJuYW1lPFQ+ABEEAQFBIHVzZXJuYW1lIHdhcyBzZXQgYXMgYSBwcmltYXJ5IGFuZCBjYW4gYmUgbG9va2VkIHVwIGZyb20gYHdob2AuXERhbmdsaW5nVXNlcm5hbWVSZW1vdmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4AEghdAUEgZGFuZ2xpbmcgdXNlcm5hbWUgKGFzIGluLCBhIHVzZXJuYW1lIGNvcnJlc3BvbmRpbmcgdG8gYW4gYWNjb3VudCB0aGF0IGhhcyByZW1vdmVkIGl0c2xpZGVudGl0eSkgaGFzIGJlZW4gcmVtb3ZlZC48VXNlcm5hbWVVbmJvdW5kBAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4AEwRwQSB1c2VybmFtZSBoYXMgYmVlbiB1bmJvdW5kLjxVc2VybmFtZVJlbW92ZWQEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgAUBHBBIHVzZXJuYW1lIGhhcyBiZWVuIHJlbW92ZWQuOFVzZXJuYW1lS2lsbGVkBAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4AFQRsQSB1c2VybmFtZSBoYXMgYmVlbiBraWxsZWQuQFVzZXJuYW1lUmVwb3J0ZWQIASByZXBvcnRlcgQBMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lSQQBLFVzZXJuYW1lPFQ+ABYEdEEgdXNlcm5hbWUgaGFzIGJlZW4gcmVwb3J0ZWQuTFBlcnNvbmFsSWRlbnRpdHlTZXQMARRhbGlhcwgBFEFsaWFzAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lSQQBLFVzZXJuYW1lPFQ+ABcEmEFuIGlkZW50aXR5IGZvciBhIHBlcnNvbiBoYXMgYmVlbiBzZXQuREV2aWRlbmNlU3VibWl0dGVkBAEUYWxpYXMIARRBbGlhcwAYBORFdmlkZW5jZSBmb3IgYSBjcmVkZW50aWFsIGhhcyBiZWVkIHN1Ym1pdHRlZCBieSBhIHBlcnNvbi5IQ3JlZGVudGlhbEFjY2VwdGVkBAEUYWxpYXMIARRBbGlhcwAZBJxBIGNyZWRlbnRpYWwgd2FzIGFjY2VwdGVkIGZvciBhIHBlcnNvbi5IQ3JlZGVudGlhbFJlamVjdGVkBAEUYWxpYXMIARRBbGlhcwAaBJxBIGNyZWRlbnRpYWwgd2FzIHJlamVjdGVkIGZvciBhIHBlcnNvbi4wUGVyc29uQmFubmVkBAEUYWxpYXMIARRBbGlhcwAbBNBQZXJzb24gd2FzIGJhbm5lZCBmb3Igc2VuZGluZyBjb250ZW1wdHVvdXMgZXZpZGVuY2UuXFBlcnNvbmFsSWRlbnRpdHlDbGVhcmVkBAEUYWxpYXMIARRBbGlhcwAcBIBBIHBlcnNvbmFsIGlkZW50aXR5IHdhcyBjbGVhcmVkLmxSZXBvcnRlZFVzZXJuYW1lSnVkZ2VkVmFsaWQEASB1c2VybmFtZUkEASxVc2VybmFtZTxUPgAdBJRBIHJlcG9ydGVkIHVzZXJuYW1lIHdhcyBqdWRnZWQgdmFsaWQudFJlcG9ydGVkVXNlcm5hbWVKdWRnZWRJbnZhbGlkBAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4AHgScQSByZXBvcnRlZCB1c2VybmFtZSB3YXMganVkZ2VkIGludmFsaWQumFJlcG9ydGVkVXNlcm5hbWVXZWFrT3JVbmNsZWFySnVkZ2VtZW50CAEgdXNlcm5hbWVJBAEsVXNlcm5hbWU8VD4AASRqdWRnZW1lbnRRBAE8T3JhY2xlSnVkZ2VtZW50AB8EEQFUaGUganVkZ21lbnQgcmVnYXJkaW5nIGEgcmVwb3J0ZWQgdXNlcm5hbWUgd2FzIHVuY2xlYXIgb3IgdW5jZXJ0YWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFUHDExpbmRpdl9wYWxsZXRfcGVvcGxlGHBhbGxldBRFdmVudAQEVAABKFBQZXJzb25ob29kUmVjb2duaXplZAgBDHdobygBKFBlcnNvbmFsSWQAAQxrZXkIASxNZW1iZXJPZjxUPgAABPhBbiBpbmRpdmlkdWFsIGhhcyBoYWQgdGhlaXIgcGVyc29uaG9vZCByZWNvZ25pc2VkIGFuZCBpbmRleGVkLkBQZXJzb25PbmJvYXJkaW5nCAEMd2hvKAEoUGVyc29uYWxJZAABDGtleQgBLE1lbWJlck9mPFQ+AAEEEQFBbiBpbmRpdmlkdWFsIGhhcyBoYWQgdGhlaXIgcGVyc29uaG9vZCByZWNvZ25pc2VkIGFnYWluIGFuZCBpbmRleGVkLjxBbGlhc0Rpc3BhdGNoZWQIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAIElEEgY2FsbCB3YXMgZGlzcGF0Y2hlZCB1bmRlciBhbiBhbGlhcy48QWxpYXNBY2NvdW50U2V0CAEUYWxpYXNJAwE8Q29udGV4dHVhbEFsaWFzAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADBLxBbiBhbGlhcy10by1hY2NvdW50IG1hcHBpbmcgd2FzIHNldCBvciB1cGRhdGVkLkRBbGlhc0FjY291bnRVbnNldAgBFGFsaWFzSQMBPENvbnRleHR1YWxBbGlhcwABHGFjY291bnQEATBUOjpBY2NvdW50SWQABASgQW4gYWxpYXMtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyByZW1vdmVkLlBQZXJzb25hbElkQWNjb3VudFNldAgBDHdobygBKFBlcnNvbmFsSWQAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUE0EEgcGVyc29uYWwgSUQtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyBzZXQgb3IgdXBkYXRlZC5YUGVyc29uYWxJZEFjY291bnRVbnNldAgBDHdobygBKFBlcnNvbmFsSWQAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAYEtEEgcGVyc29uYWwgSUQtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyByZW1vdmVkLkRDb2xsZWN0aW9uQ3JlYXRlZAAHBIhUaGUgcGVvcGxlIGNvbGxlY3Rpb24gd2FzIGNyZWF0ZWQuZEZvcmNlUGVyc29uaG9vZFJlY29nbml6ZWQEARhwZW9wbGVdBAFAVmVjPE1lbWJlck9mPFQ+PgAIBLRQZXJzb25ob29kIHdhcyBmb3JjZWZ1bGx5IHJlY29nbml6ZWQgYnkgcm9vdC44QWxpYXNDbGVhbmVkVXAIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAkErEFuIGFsaWFzLXRvLWFjY291bnQgbWFwcGluZyB3YXMgY2xlYW5lZCB1cC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRZBwxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldBRFdmVudAQEVAABRCxDYXNlQ3JlYXRlZAQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEgFRoZSBjYXNlIGluZGV4IHRoYXQgd2FzIGNyZWF0ZWQuAARgQSBjYXNlIGhhcyBiZWVuIGNyZWF0ZWQuIENhbGxiYWNrBAEYcmVzdWx0OQcBOERpc3BhdGNoUmVzdWx0BGxUaGUgcmVzdWx0IG9mIHRoZSBjYWxsYmFjay4BBJxBIGNhbGxiYWNrIHdhcyB0cmlnZ2VyZWQgZnJvbSBtb2ItcnVsZS40Q2FsbGJhY2tFcnJvcgACBPBUaGVyZSB3YXMgYSBjb2RlYyBlcnJvciB3aGVuIHRyeWluZyB0byBleGVjdXRlIHRoZSBjYWxsYmFjay4oQ2FzZUNsb3NlZAgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEfFRoZSBjYXNlIGluZGV4IHRoYXQgd2FzIGNsb3NlZC4BHHZlcmRpY3RRBAEkSnVkZ2VtZW50BHxUaGUgdmVyZGljdCBvZiB0aGUgY2xvc2VkIGNhc2UuAwTMVGhlIGNhc2UgaGFzIGJlZW4gY2xvc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQuFFZvdGVkDAEoY2FzZV9pbmRleDgBJENhc2VJbmRleARIVGhlIGNhc2Ugdm90ZWQgb24uARR2b3RlcggBFEFsaWFzBFRUaGUgYWxpYXMgdGhhdCB2b3RlZC4BHG9waW5pb25RBAEkSnVkZ2VtZW50BGRUaGUgb3BpbmlvbiBvZiB0aGUgdm90ZXIuBASEQSB2b3RlIGhhcyBiZWVuIHBsYWNlZCBvbiBhIGNhc2UuLFZvdGVDbGVhbmVkCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleARIVGhlIGNhc2Ugdm90ZWQgb24uARR2b3RlcggBFEFsaWFzBFRUaGUgYWxpYXMgdGhhdCB2b3RlZC4FBGBBIHZvdGUgaGFzIGJlZW4gY2xlYW5lZC4sQ2FzZVJlbW92ZWQEAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4BEhUaGUgY2FzZSB2b3RlZCBvbi4GBGBBIGNhc2UgaGFzIGJlZW4gcmVtb3ZlZC44Q2FzZUludGVydmVuZWQIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4BIhUaGUgY2FzZSB0aGF0IGhhcyBiZWVuIGludGVydmVuZWQuARx2ZXJkaWN0UQQBJEp1ZGdlbWVudASAVGhlIHZlcmRpY3QgYXBwbGllZCB0byB0aGUgY2FzZS4HBGxBIGNhc2UgaGFzIGJlZW4gaW50ZXJ2ZW5lZC4wVm90ZXNDbGFpbWVkCAEUdm90ZXIIARRBbGlhcwRUVGhlIGFsaWFzIHRoYXQgdm90ZWQuATBjYXNlX2luZGljZXNtBAE4VmVjPENhc2VJbmRleD4EiFRoZSBjYXNlIHRoYXQgaGFzIGJlZW4gaW50ZXJ2ZW5lZC4IBJBDcmVkaXRzIGZvciB2b3RlcyBoYXZlIGJlZW4gY2xhaW1lZC4wUmV3YXJkUGF5b3V0DAEUdm90ZXIIARRBbGlhcwR8VGhlIGFsaWFzIHRoYXQgZWFybmVkIGEgcmV3YXJkLgEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQEnFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgcGF5b3V0LgEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BJxUaGUgcGF5b3V0IGFtb3VudCB0aGF0IHdhcyB0cmFuc2ZlcnJlZC4JBIBBIHJld2FyZCB0aGF0IGhhcyBiZWVuIHBhaWQgb3V0LkhQYXlvdXRSb3VuZFN0YXJ0ZWQMARRyb3VuZDgBKFJvdW5kSW5kZXgEiFRoZSBpbmRleCBvZiB0aGUgbmV3IHBheW91dCByb3VuZC4BPGluaXRpYWxfYmFsYW5jZcQBMEJhbGFuY2VPZjxUPgSwVGhlIGluaXRpYWwgYmFsYW5jZSBhbGxvY2F0ZWQgZm9yIHRoZSByb3VuZC4BMHRvdGFsX3BvaW50cygBJFZvdGVDb3VudATEVG90YWwgYWNjdW11bGF0ZWQgcG9pbnRzIGNsYWltYWJsZSBpbiB0aGlzIHJvdW5kLgoEkEEgbmV3IHBheW91dCByb3VuZCBoYXMgYmVlbiBzdGFydGVkLlRQYXlvdXRSb3VuZHNTY2hlZHVsZWQMARhhbW91bnTEATBCYWxhbmNlT2Y8VD4EeFRoZSBhbW91bnQgb2YgZnVuZHMgcGVyIHJvdW5kLgEUY291bnQ4AQx1MzIEfFRoZSBudW1iZXIgb2Ygcm91bmRzIHNjaGVkdWxlZC4BGHBlcmlvZDgBREJsb2NrTnVtYmVyRm9yPFQ+BLhUaGUgbWluaW11bSBwZXJpb2QgKGluIGJsb2NrcykgYmV0d2VlbiByb3VuZHMuCwSIUGF5b3V0IHJvdW5kcyBoYXZlIGJlZW4gc2NoZWR1bGVkLlRQYXlvdXRTY2hlZHVsZVJlbW92ZWQEARRpbmRleDgBDHUzMgSIVGhlIGluZGV4IG9mIHRoZSByZW1vdmVkIHNjaGVkdWxlLgwEjEEgcGF5b3V0IHNjaGVkdWxlIGhhcyBiZWVuIHJlbW92ZWQuNENyZWRpdENsYWltZWQIARR2b3RlcggBFEFsaWFzBIxUaGUgYWxpYXMgb2YgdGhlIHZvdGVyIHdobyBjbGFpbWVkLgEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BHRUaGUgYW1vdW50IG9mIGNyZWRpdCBjbGFpbWVkLg0E1ENyZWRpdCBoYXMgYmVlbiBjbGFpbWVkIGZyb20gdGhlIHBheW91dCBkaXN0cmlidXRpb24uNFBvaW50c0NsZWFuZWQIARRyb3VuZDgBKFJvdW5kSW5kZXgEvFRoZSByb3VuZCBpbmRleCBmcm9tIHdoaWNoIHBvaW50cyB3ZXJlIHJlbW92ZWQuARR2b3RlcggBFEFsaWFzBJBUaGUgYWxpYXMgd2hvc2UgcG9pbnRzIHdlcmUgcmVtb3ZlZC4OBJhTdGFsZSB2b3RpbmcgcG9pbnRzIGhhdmUgYmVlbiBjbGVhbmVkLixDYXNlVG91Y2hlZAgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEaFRoZSBjYXNlIHRoYXQgd2FzIHRvdWNoZWQuARxyaXBlbmVkyAEQYm9vbASkV2hldGhlciB0aGUgY2FzZSB3YXMgcmlwZW5lZCBhcyBhIHJlc3VsdC4PBJxBIGNhc2UgaGFzIGJlZW4gdG91Y2hlZCAocmUtZXZhbHVhdGVkKS5QVm90aW5nUGVuYWx0eUNsZWFyZWQEAQx3aG8IARRBbGlhcwSQVGhlIGFsaWFzIHdob3NlIHBlbmFsdHkgd2FzIGNsZWFyZWQuEASIQSB2b3RpbmcgcGVuYWx0eSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldF0HDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBRFdmVudAQEVAABXEBDYW5kaWRhdGVBcHBsaWVkBAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAABIxDYW5kaWRhdGUgYXBwbGllZCBmb3IgdmVyaWZpY2F0aW9uLkhKdWRnZW1lbnRSZXF1ZXN0ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEEBQFDYW5kaWRhdGUgb3BlbmVkIGEganVkaWNpYWwgY2FzZSBmb3IgdGhlaXIgdmVyaWZpY2F0aW9uIGV2aWRlbmNlLkRKdWRnZW1lbnRQcm92aWRlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASRqdWRnZW1lbnRRBAEkSnVkZ2VtZW50AAIE2E9yYWNsZSBoYXMgcHJvdmlkZWQgdGhlIGp1ZGdlbWVudCBmb3IgYSBqdWRpY2lhbCBjYXNlLjBSZXRyeUdyYW50ZWQIAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEgZmFpbHVyZXM4AQx1MzIAAwhFAUEgY2FuZGlkYXRlIGhhcyBiZWVuIGdyYW50ZWQgYSBmcmVlIHJldHJ5IGF0dGVtcHQgYWZ0ZXIgYSBmYWlsdXJlIHRvIHZlcmlmeSB0aGVpciRldmlkZW5jZS5AUGVyc29uUmVnaXN0ZXJlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASxwZXJzb25hbF9pZCgBKFBlcnNvbmFsSWQABASAUmVnaXN0ZXIgYW4gYWNjb3VudCBhcyBhIHBlcnNvbi5EQ2FuZGlkYXRlUmVmZXJyZWQIASByZWZlcnJlcigBKFBlcnNvbmFsSWQAASByZWZlcnJlZAQBMFQ6OkFjY291bnRJZAAFBGxQZXJzb24gcmVmZXJyZWQgYW4gYWNjb3VudC4gUmVyb2xsZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAYEtEVudHJvcHkgZm9yIGEgY2FuZGlkYXRlIGNoYW5nZWQgYWZ0ZXIgZXhwaXJ5LjxEZXNpZ25Db21taXR0ZWQIAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEscmVzZXJ2ZWRfaWQoAShQZXJzb25hbElkAAcElENhbmRpZGF0ZSBjb21taXR0ZWQgdG8gYW4gaW5rIGRlc2lnbi44RnVsbHlBbGxvY2F0ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAgEvFN0b3JhZ2UgZnVsbHkgYWxsb2NhdGVkIGZvciBhIGNvbW1pdHRlZCBkZXNpZ24uIFRpbWVkT3V0BAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAJBIBDYW5kaWRhdGUgcmVtb3ZlZCBhZnRlciB0aW1lb3V0LiRGbGFrZWRPdXQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAoEeFVuY29tbWl0dGVkIGNhbmRpZGF0ZSByZW1vdmVkLjhUaWNrZXRSZWZlcnJlZAgBIHJlZmVycmVyKAEoUGVyc29uYWxJZAABGHRpY2tldAQBJFQ6OlRpY2tldAALBOxSZWZlcnJhbCB0aWNrZXQgY3JlYXRlZCBieSBzdG9yaW5nIHRoZSBwdWJsaWMga2V5IG9uIGNoYWluLjxUaWNrZXRDYW5jZWxsZWQIASByZWZlcnJlcigBKFBlcnNvbmFsSWQAARh0aWNrZXQEASRUOjpUaWNrZXQADAQZAVJlZmVycmFsIHRpY2tldCByZW1vdmVkIGJ5IHJlbW92aW5nIHRoZSBwdWJsaWMga2V5IGZyb20gY2hhaW4gc3RvcmFnZS40VGlja2V0QXBwbGllZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASByZWZlcnJlcigBKFBlcnNvbmFsSWQADQSoQ2FuZGlkYXRlIGFwcGxpZWQgdXNpbmcgYSByZWZlcnJhbCB0aWNrZXQuLEZhbWlseUFkZGVkDAEUaW5kZXgtAwEsRmFtaWx5SW5kZXgAARBraW5keQQBKEZhbWlseUtpbmQAAQhpZAgBIEZhbWlseUlkAA4EUERlc2lnbiBmYW1pbHkgYWRkZWQuREFsbEludml0ZXNSZW1vdmVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAPBLhBbGwgaW52aXRlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIGludml0ZXIuSFNvbWVJbnZpdGVzUmVtb3ZlZAQBHGludml0ZXIEATBUOjpBY2NvdW50SWQAEAQNAVNvbWUgaW52aXRlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIGludml0ZXIsIHNvbWUgYXJlIHJlbWFpbmluZy5cSW52aXRlZENhbmRpZGF0ZUFwcGxpZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARxpbnZpdGVyBAEwVDo6QWNjb3VudElkABEEmENhbmRpZGF0ZSBhcHBsaWVkIHVzaW5nIGFuIGludml0YXRpb24uZFJlZmVycmFsVm91Y2hlclJlZ2lzdGVyZWQEASByZWZlcnJlcigBKFBlcnNvbmFsSWQAEgTAQSByZWZlcnJlcidzIHJld2FyZCB2b3VjaGVyIGhhcyBiZWVuIHJlZ2lzdGVyZWQuOEludml0ZXNHcmFudGVkCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFGNvdW50OAEMdTMyABMEoEludml0ZXMgaGF2ZSBiZWVuIGdyYW50ZWQgdG8gYW4gYWNjb3VudC48SW52aXRlVGlja2V0U2V0CAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBJFQ6OlRpY2tldAAUBHhBbiBpbnZpdGUgdGlja2V0IGhhcyBiZWVuIHNldC5USW52aXRlVGlja2V0Q2FuY2VsbGVkCAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBJFQ6OlRpY2tldAAVBJBBbiBpbnZpdGUgdGlja2V0IGhhcyBiZWVuIGNhbmNlbGxlZC5AQ29uZmlndXJhdGlvblNldAQBGGNvbmZpZ30EAXxDb25maWdSZWNvcmQ8QmxvY2tOdW1iZXJGb3I8VD4+ABYEqFRoZSBwYWxsZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGEHDERpbmRpdl9wYWxsZXRfZ2FtZRhwYWxsZXQURXZlbnQEBFQAAVAcTmV3R2FtZQwBRHJlZ2lzdHJhdGlvbl9lbmRzOAEMdTMyAAEkZ2FtZV9kYXRlOAEMdTMyAAEscmVwb3J0X2VuZHM4AQx1MzIAAARcQSBuZXcgZ2FtZSBpcyBzdGFydGluZy4kR2FtZUVuZGVkBAEUaW5kZXg4AQx1MzIAAQSgVGhlIGdhbWUgYW5kIGl0cyBwb3N0LXByb2Nlc3MgaGFzIGVuZGVkLihHYW1lS2lsbGVkBAEUaW5kZXg4AQx1MzIAAgT8VGhlIGN1cnJlbnQgZ2FtZSB3YXMgZm9yY2Uta2lsbGVkIGJ5IFtgQ29uZmlnOjpNYW5hZ2VyT3JpZ2luYF0uNEdhbWVQaGFzZXNTZXQEARhwaGFzZXPFBAFMUGhhc2VEdXJhdGlvblZhbHVlcwADBBkBVGhlIGdhbWUgcGhhc2UgZHVyYXRpb25zIHdlcmUgb3ZlcnJpZGRlbiBieSBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdLiBTaWduZWRVcAQBDHdob2UHAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgAEBIBBIHBsYXllciBzaWduZWQgdXAgZm9yIHRoZSBnYW1lLjxSZXBvcnRTdWJtaXR0ZWQIAQx3aG9lBwF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4AAShnYW1lX2luZGV4OAEMdTMyAAUEgEEgcGxheWVyIHN1Ym1pdHRlZCB0aGVpciByZXBvcnQuKE9mZmJvYXJkZWQEAQx3aG9lBwF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4ABgSIQSBwbGF5ZXIgb2ZmYm9hcmRlZCBmcm9tIHRoZSBnYW1lLiRLaWNrZWRPdXQEARhwbGF5ZXJlBwF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4ABwSIQW4gYXJjaGl2ZWQgcGxheWVyIHdhcyBraWNrZWQgb3V0LjhJbnZpdGVzR3JhbnRlZAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAIBIxJbnZpdGVzIHdlcmUgZ3JhbnRlZCB0byBhbiBhY2NvdW50LjxJbnZpdGVUaWNrZXRTZXQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAAkEZEFuIGludml0ZSB0aWNrZXQgd2FzIHNldC5USW52aXRlVGlja2V0Q2FuY2VsbGVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAKBHxBbiBpbnZpdGUgdGlja2V0IHdhcyBjYW5jZWxsZWQuOEdhbWVzU2NoZWR1bGVkBAEUY291bnQ4AQx1MzIACwRUR2FtZXMgd2VyZSBzY2hlZHVsZWQuUFNjaGVkdWxlZEdhbWVSZW1vdmVkBAE4Z2FtZV9wbGF5X3RpbWU4AQx1MzIADAR0QSBzY2hlZHVsZWQgZ2FtZSB3YXMgcmVtb3ZlZC5AU3RtdFVzYWdlUmVtb3ZlZAQBDHdobwgBIFt1ODsgMzJdAA0EuFN0YXRlbWVudCBzdG9yZSB1c2FnZSByZW1vdmVkIGZvciB0aGUgYWNjb3VudC5EQWxsSW52aXRlc1JlbW92ZWQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAA4EuEFsbCBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlci5IU29tZUludml0ZXNSZW1vdmVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAPBA0BU29tZSBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlciwgc29tZSBhcmUgcmVtYWluaW5nLjhQbGF5RGVwb3NpdFNldAQBGGFtb3VudMQBSE5hdGl2ZUJhbGFuY2VPZjxUPgAQBKBUaGUgY29uZmlndXJlZCBwbGF5IGRlcG9zaXQgd2FzIHVwZGF0ZWQuQEFpcmRyb3BTY2hlZHVsZWQIAShnYW1lX2luZGV4OAEMdTMyAAEgZXZlbnRfaWQIAThBaXJkcm9wRXZlbnRJZAARBNBBbiBhaXJkcm9wIGV2ZW50IHdhcyBzY2hlZHVsZWQgZm9yIHRoZSBjdXJyZW50IGdhbWUuVEFpcmRyb3BTY2hlZHVsZUZhaWxlZAgBKGdhbWVfaW5kZXg4AQx1MzIAARRlcnJvcqEGATREaXNwYXRjaEVycm9yABIE6FRoZSBhaXJkcm9wIGV2ZW50IGZvciB0aGUgY3VycmVudCBnYW1lIGZhaWxlZCB0byBzY2hlZHVsZS40R2FtZUNhbmNlbGxlZAQBKGdhbWVfaW5kZXg4AQx1MzIAEwSAR2FtZSBgZ2FtZV9pbmRleGAgd2FzIGNhbmNlbGxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRlBwxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzPEFjY291bnRPclBlcnNvbgQkQWNjb3VudElkAQQBCBxBY2NvdW50BAAEASRBY2NvdW50SWQAAAAYUGVyc29uBAAIARRBbGlhcwABAABpBwxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBRFdmVudAQEVAABJDRDcmVkaXRDbGFpbWVkDAEMd2hvZQcBdEFjY291bnRPclBlcnNvbjxUOjpBY2NvdW50SWQ+BHhUaGUgcGVyc29uIHdobyBjbGFpbWVkIGNyZWRpdC4BLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkBLxEZXN0aW5hdGlvbiBhY2NvdW50IHRoYXQgcmVjZWl2ZWQgdGhlIHRyYW5zZmVyLgEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BExBbW91bnQgdHJhbnNmZXJyZWQuAARwQSBwZXJzb24gaGFzIGNsYWltZWQgY3JlZGl0LlBQZXJzb25ob29kUmVjb2duaXplZAgBDHdob2UHAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgSwVGhlIGFjY291bnQgd2hvc2UgcGVyc29uaG9vZCB3YXMgcmVjb2duaXplZC4BHHJlc3VtZWTIARBib29sBBEBV2hldGhlciB0aGlzIHdhcyByZXN1bWluZyBmcm9tIHN1c3BlbnNpb24gb3IgZmlyc3QtdGltZSByZWNvZ25pdGlvbi4BBKRQZXJzb25ob29kIHdhcyByZWNvZ25pemVkIGZvciBhbiBhY2NvdW50LlRQYXlvdXRSb3VuZHNTY2hlZHVsZWQMARhhbW91bnTEATBCYWxhbmNlT2Y8VD4EVFRoZSBhbW91bnQgcGVyIHJvdW5kLgEUY291bnQ4AQx1MzIEVFRoZSBudW1iZXIgb2Ygcm91bmRzLgEgZHVyYXRpb244AURCbG9ja051bWJlckZvcjxUPgSEVGhlIGR1cmF0aW9uIHBlciByb3VuZCBpbiBibG9ja3MuAgSIUGF5b3V0IHJvdW5kcyBoYXZlIGJlZW4gc2NoZWR1bGVkLlRQYXlvdXRTY2hlZHVsZVJlbW92ZWQEARRpbmRleDgBDHUzMgSIVGhlIGluZGV4IG9mIHRoZSByZW1vdmVkIHNjaGVkdWxlLgMEjEEgcGF5b3V0IHNjaGVkdWxlIGhhcyBiZWVuIHJlbW92ZWQuRFJvdW5kVHJhbnNpdGlvbmVkBAEscm91bmRfaW5kZXg4AShSb3VuZEluZGV4BJhUaGUgcm91bmQgaW5kZXggdGhhdCB3YXMgdHJhbnNpdGlvbmVkLgQEeEEgcm91bmQgaGFzIGJlZW4gdHJhbnNpdGlvbmVkLkxQYXlvdXRSb3VuZE9wZXJhdGVkBAEscm91bmRfaW5kZXg4AShSb3VuZEluZGV4BIhUaGUgcm91bmQgaW5kZXggdGhhdCB3YXMgb3BlcmF0ZWQuBQQZAUEgcGF5b3V0IHJvdW5kIGhhcyBiZWVuIG9wZXJhdGVkIChjcmVkaXQgZGlzdHJpYnV0ZWQgdG8gcGFydGljaXBhbnRzKS4kQ2FzaGVkT3V0BAEMd2hvZQcBdEFjY291bnRPclBlcnNvbjxUOjpBY2NvdW50SWQ+BHxUaGUgcGFydGljaXBhbnQgd2hvIGNhc2hlZCBvdXQuBgS4QSBwYXJ0aWNpcGFudCBoYXMgY2FzaGVkIG91dCBzY29yZSBmb3IgcG9pbnRzLnhQZXJzb25ob29kVGhyZXNob2xkU2NoZWR1bGVTZXQABwS8VGhlIHBlcnNvbmhvb2QtdGhyZXNob2xkIHNjaGVkdWxlIGhhcyBiZWVuIHNldC5cQWJzZW5jZUdyYWNlU2NoZWR1bGVTZXQACASgVGhlIGFic2VuY2UtZ3JhY2Ugc2NoZWR1bGUgaGFzIGJlZW4gc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldG0HDFhpbmRpdl9wYWxsZXRfZHVtbXlfZGltGHBhbGxldBRFdmVudAQEVAABICxJZHNSZXNlcnZlZAQBFGNvdW50OAEMdTMyAAAEdEEgbnVtYmVyIG9mIElEcyB3YXMgcmVzZXJ2ZWQuJElkUmVuZXdlZAQBCGlkKAEoUGVyc29uYWxJZAABBEhBbiBJRCB3YXMgcmVuZXdlZC4wSWRVbnJlc2VydmVkBAEIaWQoAShQZXJzb25hbElkAAIEaEEgcmVzZXJ2ZWQgSUQgd2FzIHJlbW92ZWQuQFBlb3BsZVJlZ2lzdGVyZWQEARRjb3VudDgBDHUzMgADBGRSZWdpc3RlciBtdWx0aXBsZSBwZW9wbGUuPFBlb3BsZVN1c3BlbmRlZAQBFGNvdW50OAEMdTMyAAQEbFN1c3BlbmQgYSBudW1iZXIgb2YgcGVvcGxlLkRQZXJzb25ob29kUmVzdW1lZAQBCGlkKAEoUGVyc29uYWxJZAAFBIRTb21lb25lJ3MgcGVyc29uaG9vZCB3YXMgcmVzdW1lZC5IU3VzcGVuc2lvbnNTdGFydGVkAAYEfFRoZSBwYWxsZXQgZW5hYmxlZCBzdXNwZW5zaW9ucy5AU3VzcGVuc2lvbnNFbmRlZAAHBIBUaGUgcGFsbGV0IGRpc2FibGVkIHN1c3BlbnNpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHEHDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUYcGFsbGV0FEV2ZW50BARUAAEYeEFsbEF0dGVzdGF0aW9uQWxsb3dhbmNlQ2xlYXJlZAQBIHZlcmlmaWVyBAEwVDo6QWNjb3VudElkAAAE8EFsbCBhdHRlc3RhdGlvbiBhbGxvd2FuY2UgaGFzIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIHZlcmlmaWVyLnRBdHRlc3RhdGlvbkFsbG93YW5jZUluY3JlYXNlZAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgABBC0BQXR0ZXN0YXRpb24gYWxsb3dhbmNlIHdhcyBpbmNyZWFzZWQgZm9yIGFuIGFjY291bnQgYnkgYGNvdW50YCBhdHRlc3RhdGlvbnMuOFBlcnNvbkF0dGVzdGVkCAEkY2FuZGlkYXRlBAEwVDo6QWNjb3VudElkAAEgdmVyaWZpZXIEATBUOjpBY2NvdW50SWQAAgTUQSBuZXcgbGl0ZSBwZXJzb24gd2FzIHJlZ2lzdGVyZWQgdGhyb3VnaCBhdHRlc3RhdGlvbi5IQ29uc3VtZXJSZWdpc3RlcmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADBKxBIGxpdGUgcGVyc29uIHdhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuPEFsaWFzQWNjb3VudFNldAgBFGFsaWFzSQMBPENvbnRleHR1YWxBbGlhcwABHGFjY291bnQEATBUOjpBY2NvdW50SWQABAS8QW4gYWxpYXMtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyBzZXQgb3IgdXBkYXRlZC5EQWxpYXNBY2NvdW50VW5zZXQIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUEoEFuIGFsaWFzLXRvLWFjY291bnQgbWFwcGluZyB3YXMgcmVtb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR1BwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxhwYWxsZXQURXZlbnQEBFQAAThAUGVyc29uUmVnaXN0ZXJlZAgBFGFsaWFzCAEUQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAAEmEEgcGVyc29uIGhhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuUExpdGVQZXJzb25SZWdpc3RlcmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABBKxBIGxpdGUgcGVyc29uIGhhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuZEZyaWVuZFJlcXVlc3RTdG10VXNhZ2VTZXQQARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEMc2VxDAEIdTgAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAIEAQFGcmllbmQgcmVxdWVzdCBzdGF0ZW1lbnQgdXNhZ2UgaGFzIGJlZW4gYXNzaWduZWQgZm9yIGEgc2VxdWVuY2UudEZyaWVuZFJlcXVlc3RTdG10VXNhZ2VSZW1vdmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADBMBGcmllbmQgcmVxdWVzdCBzdGF0ZW1lbnQgdXNhZ2UgaGFzIGJlZW4gcmVtb3ZlZC5oUGVyc29uQXV0aG9yaXphdGlvblRvdWNoZWQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAQElEEgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiB3YXMgdG91Y2hlZC6ERXhwaXJlZFVzZXJuYW1lUmVzZXJ2YXRpb25SZW1vdmVkCAEgdXNlcm5hbWVJBAEgVXNlcm5hbWUAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUEsEFuIGV4cGlyZWQgdXNlcm5hbWUgcmVzZXJ2YXRpb24gd2FzIHJlbW92ZWQuUElkZW50aWZpZXJLZXlVcGRhdGVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAGBKBBIGNvbnN1bWVyJ3MgaWRlbnRpZmllciBrZXkgd2FzIHVwZGF0ZWQueFVzZXJuYW1lUmVzZXJ2YXRpb25EdXJhdGlvblNldAQBIGR1cmF0aW9uKAEMdTY0AAcEqFRoZSB1c2VybmFtZSByZXNlcnZhdGlvbiBkdXJhdGlvbiB3YXMgc2V0LlRTdG10U3RvcmVBbGxvd2FuY2VTZXQQARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEMc2VxOAEMdTMyAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAIBMxBbiBhbm9ueW1vdXMgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZSB3YXMgZ3JhbnRlZC5oU3RtdFN0b3JlQWxsb3dhbmNlc0NsZWFyZWQMARhwZXJpb2Q4AQx1MzIAASRmaXJzdF9rZXkIARRBbGlhcwABFGNvdW50OAEMdTMyAAkEzEV4cGlyZWQgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZXMgd2VyZSBjbGVhbmVkIHVwLjRQZXJzb25EZW1vdGVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAKBNxBIGZ1bGwgcGVyc29uIHdhcyBkZW1vdGVkIGR1ZSB0byBleHBpcmVkIGF1dGhvcml6YXRpb24uWExvbmdUZXJtU3RvcmFnZUNsYWltZWQUARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEcY291bnRlcgwBCHU4AAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABKGNvbGxlY3Rpb25hAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24ACwTITG9uZy10ZXJtIHN0b3JhZ2UgaGFzIGJlZW4gY2xhaW1lZCBmb3IgYW4gYWNjb3VudC58TG9uZ1Rlcm1TdG9yYWdlQWxsb2NhdGlvbkZhaWxlZBQBFGFsaWFzCAEUQWxpYXMAARhwZXJpb2Q4AQx1MzIAARxjb3VudGVyDAEIdTgAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEoY29sbGVjdGlvbmEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgAMCFkBQSBsb25nLXRlcm0gc3RvcmFnZSBjbGFpbSB3YXMgYWNjZXB0ZWQgYnV0IHRoZSBkb3duc3RyZWFtIGFsbG9jYXRpb24gZmFpbGVkLiBUaGUgYWxpYXOUaXMgc3RpbGwgbWFya2VkIHNwZW50IGZvciB0aGUgcGVyaW9kLnRMb25nVGVybVN0b3JhZ2VBbGlhc2VzQ2xlYXJlZAgBGHBlcmlvZDgBDHUzMgABFGNvdW50OAEMdTMyAA0EBQFFeHBpcmVkIGxvbmctdGVybSBzdG9yYWdlIGFsaWFzZXMgaGF2ZSBiZWVuIGNsZWFyZWQgZm9yIGEgcGVyaW9kLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkHDGxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXIYcGFsbGV0FEV2ZW50BARUAAEIaENodW5rUGFnZUhhc2hlc0luaXRpYWxpemVkCAE0cmluZ19leHBvbmVudCUFATBSaW5nRXhwb25lbnQAASx0b3RhbF9wYWdlczgBDHUzMgAABBkBQSBuZXcgY2h1bmsgcGFnZSBoYXNoIHNldCBoYXMgYmVlbiBpbml0aWFsaXplZCAoZS5nLiwgZHVyaW5nIGdlbmVzaXMpLixDaHVua3NBZGRlZAwBNHJpbmdfZXhwb25lbnQlBQEwUmluZ0V4cG9uZW50AAEsc3RhcnRfaW5kZXg4AQx1MzIAARRjb3VudDgBDHUzMgABBCEBTmV3IGNodW5rcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIGFuIGV4aXN0aW5nIG9yIG5ldyBjaHVuayBzZXQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0fQcMUGluZGl2X3BhbGxldF9tZW1iZXJzGHBhbGxldBRFdmVudAQEVAABKCxNZW1iZXJBZGRlZAQBDGtleQgBLE1lbWJlck9mPFQ+AAAE6EFuIGVudGl0eSBoYXMgaGFkIHRoZWlyIG1lbWJlcnNoaXAgcmVjb2duaXNlZCBhbmQgaW5kZXhlZC40TWVtYmVyUmVtb3ZlZAQBDGtleQgBLE1lbWJlck9mPFQ+AAEErEFuIGVudGl0eSBoYXMgaGFkIHRoZWlyIG1lbWJlcnNoaXAgcmV2b2tlZC5sQ29sbGVjdGlvbk1hcmtlZEZvckRlbGV0aW9uBAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAgSoQSBjb2xsZWN0aW9uIGhhcyBiZWVuIG1hcmtlZCBmb3IgZGVsZXRpb24uRENvbGxlY3Rpb25EZWxldGVkBAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAwSQQSBjb2xsZWN0aW9uIGhhcyBiZWVuIGZ1bGx5IGRlbGV0ZWQuJFJpbmdCdWlsdAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAAEBFhBIHJpbmcgcm9vdCB3YXMgYnVpbHQuQE1lbWJlcnNPbmJvYXJkZWQEAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgAFBFxNZW1iZXJzIHdlcmUgb25ib2FyZGVkLixSaW5nc01lcmdlZAwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8YmFzZV9yaW5nX2luZGV4OAEkUmluZ0luZGV4AAFEdGFyZ2V0X3JpbmdfaW5kZXg4ASRSaW5nSW5kZXgABgRYVHdvIHJpbmdzIHdlcmUgbWVyZ2VkLkRPbmJvYXJkaW5nU2l6ZVNldAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8b25ib2FyZGluZ19zaXplOAEMdTMyAAcEtFRoZSBvbmJvYXJkaW5nIHNpemUgd2FzIHNldCBmb3IgYSBjb2xsZWN0aW9uLkhNZW1iZXJTZWxmSW5jbHVkZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABDGtleQgBLE1lbWJlck9mPFQ+AAgEjEEgbWVtYmVyIHNlbGYtaW5jbHVkZWQgaW50byBhIHJpbmcuQE9sZFJvb3RDbGVhbmVkVXAMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBDHUzMgAJBKRBbiBvbGQgcm9vdCByZXZpc2lvbiBoYXMgYmVlbiBjbGVhbmVkIHVwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIEHDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQURXZlbnQEBFQAAWAkQ29pblNwbGl0BAEwb3V0cHV0X2NvdW50OAEMdTMyAAAAPENvaW5UcmFuc2ZlcnJlZAwBCHRvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEcbmV3X2FnZS0DAQx1MTYAAQBYUmVjeWNsZXJMb2FkZWRXaXRoQ29pbgQBFHZhbHVldQMBJENvaW5WYWx1ZQACAHxSZWN5Y2xlckxvYWRlZFdpdGhFeHRlcm5hbEFzc2V0DAEMd2hvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEYYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAMAYFJlY3ljbGVyVW5sb2FkZWRJbnRvQ29pbhABCHRvBAEwVDo6QWNjb3VudElkAAEsaW5wdXRfdmFsdWV1AwEkQ29pblZhbHVlAAEwb3V0cHV0X3ZhbHVldQMBJENvaW5WYWx1ZQABLGlucHV0X2NvdW50OAEMdTMyAAQAhFJlY3ljbGVyVW5sb2FkZWRJbnRvRXh0ZXJuYWxBc3NldBABCHRvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEsaW5wdXRfY291bnQ4AQx1MzIAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ABQCwUmVjeWNsZXJVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0QW5kVm91Y2hlcnMUAQh0bwQBMFQ6OkFjY291bnRJZAABFHZhbHVldQMBJENvaW5WYWx1ZQABLGlucHV0X2NvdW50OAEMdTMyAAFUZXh0ZXJuYWxfYXNzZXRfYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAE0dm91Y2hlcl9jb3VudDgBDHUzMgAGAIRQYWlkVW5sb2FkVG9rZW5SZWdpc3RlcmVkV2l0aENvaW4IAQxmZWXEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AASRkZXN0cm95ZWTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ABwCMUGFpZFVubG9hZFRva2VuUmVnaXN0ZXJlZFdpdGhOYXRpdmUIAQx3aG8EATBUOjpBY2NvdW50SWQAAQxmZWXEAUhOYXRpdmVCYWxhbmNlT2Y8VD4ACACMUGFpZFVubG9hZFRva2VuUmVnaXN0ZXJlZFdpdGhTdGFibGUIAQx3aG8EATBUOjpBY2NvdW50SWQAAQxmZWXEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ACQB0UGVvcGxlRnJlZVVubG9hZFRva2VuQ29uc3VtZWQEARhwZXJpb2Q4ARhQZXJpb2QACgCETGl0ZVBlb3BsZUZyZWVVbmxvYWRUb2tlbkNvbnN1bWVkBAEYcGVyaW9kOAEYUGVyaW9kAAsAZFJlY3ljbGVyc1VubG9hZGVkSW50b0NvaW4MAQh0bwQBMFQ6OkFjY291bnRJZAABMG91dHB1dF92YWx1ZXUDASRDb2luVmFsdWUAASxpbnB1dF9jb3VudDgBDHUzMgAMAIhSZWN5Y2xlcnNVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0DAEIdG8EATBUOjpBY2NvdW50SWQAASxpbnB1dF9jb3VudDgBDHUzMgABGGFtb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgANALhSZWN5Y2xlcnNVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0Tm9uQW5vbnltb3VzFAEMd2hvBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAASxpbnB1dF9jb3VudDgBDHUzMgABGGFtb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgABMGZlZV9jdXJyZW5jeW0FASxGZWVDdXJyZW5jeQAOAGRSZWN5Y2xlclVubG9hZGVkSW50b0NvaW5zBAEwb3V0cHV0X2NvdW50OAEMdTMyAA8AfENvaW5PZmZib2FyZGVkSW50b0V4dGVybmFsQXNzZXQMAQh0bwQBMFQ6OkFjY291bnRJZAABFHZhbHVldQMBJENvaW5WYWx1ZQABGGFtb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgAQADxSZWN5Y2xlckNsZWFuZWQMARR2YWx1ZXUDASRDb2luVmFsdWUAATxyZW1haW5pbmdfY29pbnM4AQx1MzIAAUBkZXN0cm95ZWRfYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+ABEAZENvbnN1bWVkRnJlZVRva2Vuc0NsZWFuZWQEARhwZXJpb2Q4ARhQZXJpb2QAEgBoUGFpZFVubG9hZFRva2VuUmluZ0NsZWFuZWQIARhwZXJpb2Q4ARhQZXJpb2QAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4ABMATFJlY3ljbGVyRHVzdENsZWFuZWQAFABoUGFpZFVubG9hZFRva2VuRHVzdENsZWFuZWQAFQCcRXhwaXJlZFBhaWRVbmxvYWRUb2tlbkNvbGxlY3Rpb25EZWxldGVkBAEYcGVyaW9kOAEYUGVyaW9kABYAUFVuZGVybHlpbmdBc3NldElkU2V0BAEgYXNzZXRfaWTgAVRGdW5naWJsZXNBc3NldElkT2Y8VD4AFwAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSFBwx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIYcGFsbGV0FEV2ZW50BARUAAEYKFN1YnNjcmliZWQEARxwYXJhX2lknAEYUGFyYUlkAAAEXEEgcGFyYWNoYWluIHN1YnNjcmliZWQuMFVuc3Vic2NyaWJlZAQBHHBhcmFfaWScARhQYXJhSWQAAQRkQSBwYXJhY2hhaW4gdW5zdWJzY3JpYmVkLixVcGRhdGVzU2VudAgBHHBhcmFfaWScARhQYXJhSWQAATB1cGRhdGVfY291bnQ4AQx1MzIAAgSAVXBkYXRlIGJhdGNoIHNlbnQgdG8gc3Vic2NyaWJlci5AVXBkYXRlU2VuZEZhaWxlZAQBHHBhcmFfaWScARhQYXJhSWQAAwTEU2VuZGluZyByaW5nIHJvb3QgdXBkYXRlcyB0byBhIHN1YnNjcmliZXIgZmFpbGVkLjxSZXBsYXlSZXF1ZXN0ZWQMARxwYXJhX2lknAEYUGFyYUlkAAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAATRpbmRpY2VzX2NvdW50OAEMdTMyAAQEvFJlcGxheSBvZiByaW5nIHJvb3RzIHJlcXVlc3RlZCBieSBhIHN1YnNjcmliZXIuOEJhdGNoQWJhbmRvbmVkBAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgAFBMxBIHN0dWNrIGJhdGNoIHdhcyBhYmFuZG9uZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSJBwxQaW5kaXZfcGFsbGV0X2FpcmRyb3AYcGFsbGV0FEV2ZW50BARUAAFAOEV2ZW50U2NoZWR1bGVkBAEgZXZlbnRfaWQIARxFdmVudElkAAAAVFNjaGVkdWxlZEV2ZW50UmVtb3ZlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAABADhFdmVudENhbmNlbGxlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAACAExSZWdpc3RyYXRpb25TdGFydGVkBAEgZXZlbnRfaWQIARxFdmVudElkAAMAPEFsaWFzUmVnaXN0ZXJlZAwBIGV2ZW50X2lkCAEcRXZlbnRJZAABEHNsb3SNBwE0QmlnRW5kaWFuVTI1NgABSHBhcnRpY2lwYW50X29yaWdpbpEHAVhSZWdpc3RyYXRpb25FbnRyeU9mPFQ+AAQAREFjY291bnRSZWdpc3RlcmVkDAEgZXZlbnRfaWQIARxFdmVudElkAAEQc2xvdI0HATRCaWdFbmRpYW5VMjU2AAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAFADhEcmF3aW5nV2lubmVycwgBIGV2ZW50X2lkCAEcRXZlbnRJZAABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAYAPENsYWltaW5nU3RhcnRlZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAcANEV2ZW50Q2FuY2VsZWQEASBldmVudF9pZAgBHEV2ZW50SWQACAAwUHJpemVDbGFpbWVkFAEgZXZlbnRfaWQIARxFdmVudElkAAEQc2xvdI0HATRCaWdFbmRpYW5VMjU2AAEsYmVuZWZpY2lhcnkEATBUOjpBY2NvdW50SWQAASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABGGFtb3VudMQBREFzc2V0QmFsYW5jZU9mPFQ+AAkAVENsZWFyaW5nUmVnaXN0cmF0aW9ucwgBIGV2ZW50X2lkCAEcRXZlbnRJZAABJHVuY2xhaW1lZDgBDHUzMgAKADxDbGVhcmluZ1dpbm5lcnMEASBldmVudF9pZAgBHEV2ZW50SWQACwA8RmluYWxpemluZ0V2ZW50BAEgZXZlbnRfaWQIARxFdmVudElkAAwAOEV2ZW50Q29tcGxldGVkBAEgZXZlbnRfaWQIARxFdmVudElkAA0AMEFzc2V0RW5hYmxlZAgBIGFzc2V0X2lk4AEwQXNzZXRJZE9mPFQ+AAEYZnVuZGVkxAFEQXNzZXRCYWxhbmNlT2Y8VD4ADgA0QXNzZXREaXNhYmxlZAgBIGFzc2V0X2lk4AEwQXNzZXRJZE9mPFQ+AAEgcmVmdW5kZWTEAURBc3NldEJhbGFuY2VPZjxUPgAPAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldI0HDDRpbmRpdl9zdXBwb3J0FHV0aWxzNEJpZ0VuZGlhblUyNTYAAyAAAAAMBB0BQSBVMjU2IGVuY29kZWQgaW4gYmlnLWVuZGlhbiBmb3JtYXQgZm9yIGNvcnJlY3QgbGV4aWNvZ3JhcGhpYyBvcmRlcmluZy6RBwxQaW5kaXZfcGFsbGV0X2FpcmRyb3AUdHlwZXNEUmVnaXN0cmF0aW9uRW50cnkEJEFjY291bnRJZAEEAQgUQWxpYXMEARRhbGlhcwgBFEFsaWFzAAAAHEFjY291bnQEAShhY2NvdW50X2lkBAEkQWNjb3VudElkAAEAAJUHDExpbmRpdl9wYWxsZXRfaG9ub3VyGHBhbGxldBRFdmVudAQEVAABDCBWb3RlQ2FzdAgBHHN1YmplY3QIASRTdWJqZWN0SWQEeFRoZSBzdWJqZWN0IHRoYXQgd2FzIHZvdGVkIG9uLgEkZGlyZWN0aW9unQUBJERpcmVjdGlvbgRoVGhlIGRpcmVjdGlvbiBvZiB0aGUgdm90ZS4ABNhBIHN1YmplY3Qgd2FzIHZvdGVkIG9uIHdpdGggYSBwcmV2aW91c2x5IHVudXNlZCBwb2ludC4oVm90ZVJldXNlZBABLG9sZF9zdWJqZWN0CAEkU3ViamVjdElkBNhUaGUgc3ViamVjdCB0aGF0IHByZXZpb3VzbHkgaGVsZCB0aGUgcmVkaXJlY3RlZCBwb2ludC4BNG9sZF9kaXJlY3Rpb26dBQEkRGlyZWN0aW9uBJBUaGUgcHJldmlvdXMgZGlyZWN0aW9uIG9mIHRoZSBwb2ludC4BLG5ld19zdWJqZWN0CAEkU3ViamVjdElkBMBUaGUgc3ViamVjdCB0aGF0IG5vdyBob2xkcyB0aGUgcmVkaXJlY3RlZCBwb2ludC4BNG5ld19kaXJlY3Rpb26dBQEkRGlyZWN0aW9uBHhUaGUgbmV3IGRpcmVjdGlvbiBvZiB0aGUgdm90ZS4BBMxBIHBvaW50IHdhcyByZWRpcmVjdGVkIGZyb20gb25lIHN1YmplY3QgdG8gYW5vdGhlci40SG9ub3VyQ2hhbmdlZAwBHHN1YmplY3QIASRTdWJqZWN0SWQEnFRoZSBzdWJqZWN0IHdob3NlIGhvbm91ciBzY29yZSBjaGFuZ2VkLgEkb2xkX3ZhbHVlmQcBGEhvbm91cgSMVGhlIGhvbm91ciB2YWx1ZSBiZWZvcmUgdGhlIHVwZGF0ZS4BJG5ld192YWx1ZZkHARhIb25vdXIEiFRoZSBob25vdXIgdmFsdWUgYWZ0ZXIgdGhlIHVwZGF0ZS4CBKhUaGUgaG9ub3VyIHNjb3JlIG9mIGEgc3ViamVjdCBoYXMgY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSZBwAABQsAnQcMjGluZGl2X3BhbGxldF9zdG9yYWdlX2luaXRpYWxpemF0aW9uGHBhbGxldBRFdmVudAQEVAABRDBBc3NldENyZWF0ZWQAAATQVGhlIGZvcmVpZ24gYXNzZXQgd2FzIGNyZWF0ZWQgYW5kIHJlc2VydmVzIHdlcmUgc2V0LlBYY21GdW5kc1RyYW5zZmVyU2VudAABBLBBbiBYQ00gZnVuZHMgdHJhbnNmZXIgd2FzIHNlbnQgdG8gQXNzZXQgSHViLmBYY21GdW5kc1RyYW5zZmVyVGltZWRPdXQAAgS8VGhlIFhDTSB0cmFuc2ZlciB0aW1lZCBvdXQgYW5kIHdpbGwgYmUgcmV0cmllZC40RnVuZHNWZXJpZmllZAADBJRUcmFuc2ZlcnJlZCBmdW5kcyBoYXZlIGJlZW4gdmVyaWZpZWQuKFBvdHNGdW5kZWQABARoQWxsIHBvdHMgaGF2ZSBiZWVuIGZ1bmRlZC6IUGVvcGxlTGl0ZUF0dGVzdGF0aW9uQWxsb3dhbmNlc1NldAAFBMRQZW9wbGUgTGl0ZSBhdHRlc3RhdGlvbiBhbGxvd2FuY2VzIGhhdmUgYmVlbiBzZXQuXE1vYlJ1bGVQYXlvdXRzU2NoZWR1bGVkAAYEmE1vYiBSdWxlIHBheW91dCBzY2hlZHVsZSBoYXMgYmVlbiBzZXQuVFNjb3JlUGF5b3V0c1NjaGVkdWxlZAAHBIxTY29yZSBwYXlvdXQgc2NoZWR1bGUgaGFzIGJlZW4gc2V0LnRPblBvbGxJbml0aWFsaXphdGlvbkNvbXBsZXRlZAAIBMhUaGUgb25lLXRpbWUgb25fcG9sbCBpbml0aWFsaXphdGlvbiBoYXMgY29tcGxldGVkLmRNaWdyYXRpb25QZW9wbGVSZWNvZ25pemVkAAkEvE1pZ3JhdGlvbjogaW5pdGlhbCBwZW9wbGUgaGF2ZSBiZWVuIHJlY29nbml6ZWQuaE1pZ3JhdGlvbk9uYm9hcmRpbmdTaXplU2V0AAoEoE1pZ3JhdGlvbjogb25ib2FyZGluZyBzaXplIGhhcyBiZWVuIHNldC54TWlncmF0aW9uUHJvb2ZPZklua0luaXRpYWxpemVkAAsE0E1pZ3JhdGlvbjogUHJvb2Ytb2YtSW5rIHBhbGxldCBoYXMgYmVlbiBpbml0aWFsaXplZC5cTWlncmF0aW9uR2FtZXNTY2hlZHVsZWQADASUTWlncmF0aW9uOiBnYW1lcyBoYXZlIGJlZW4gc2NoZWR1bGVkLlxNaWdyYXRpb25JbnZpdGVzR3JhbnRlZAANBJRNaWdyYXRpb246IGludml0ZXMgaGF2ZSBiZWVuIGdyYW50ZWQufE1pZ3JhdGlvblJlaW1idXJzZW1lbnRWYWx1ZXNTZXQADgTsTWlncmF0aW9uOiBQcm9vZi1vZi1JbmsgcmVpbWJ1cnNlbWVudCB2YWx1ZXMgaGF2ZSBiZWVuIHNldC6ETWlncmF0aW9uQXR0ZXN0YXRpb25BbGxvd2FuY2VzU2V0AA8E8E1pZ3JhdGlvbjogUGVvcGxlIExpdGUgYXR0ZXN0YXRpb24gYWxsb3dhbmNlcyBoYXZlIGJlZW4gc2V0LkhNaWdyYXRpb25Db21wbGV0ZWQAEAQZAU1pZ3JhdGlvbiBoYXMgY29tcGxldGVkIGFuZCBvbl9wb2xsIGluaXRpYWxpemF0aW9uIGhhcyBiZWVuIHRyaWdnZXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXShBwxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEgOFVwZ3JhZGVTdGFydGVkBAEobWlncmF0aW9uczgBDHUzMhDQVGhlIG51bWJlciBvZiBtaWdyYXRpb25zIHRoYXQgdGhpcyB1cGdyYWRlIGNvbnRhaW5zLgBBAVRoaXMgY2FuIGJlIHVzZWQgdG8gZGVzaWduIGEgcHJvZ3Jlc3MgaW5kaWNhdG9yIGluIGNvbWJpbmF0aW9uIHdpdGggY291bnRpbmcgdGhlzGBNaWdyYXRpb25Db21wbGV0ZWRgIGFuZCBgTWlncmF0aW9uU2tpcHBlZGAgZXZlbnRzLgAMaEEgUnVudGltZSB1cGdyYWRlIHN0YXJ0ZWQuAPhJdHMgZW5kIGlzIGluZGljYXRlZCBieSBgVXBncmFkZUNvbXBsZXRlZGAgb3IgYFVwZ3JhZGVGYWlsZWRgLkBVcGdyYWRlQ29tcGxldGVkAAEMmFRoZSBjdXJyZW50IHJ1bnRpbWUgdXBncmFkZSBjb21wbGV0ZWQuAB0BVGhpcyBpbXBsaWVzIHRoYXQgYWxsIG9mIGl0cyBtaWdyYXRpb25zIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYXMgd2VsbC40VXBncmFkZUZhaWxlZAACDFxSdW50aW1lIHVwZ3JhZGUgZmFpbGVkLgDoVGhpcyBpcyB2ZXJ5IGJhZCBhbmQgd2lsbCByZXF1aXJlIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uLkBNaWdyYXRpb25Ta2lwcGVkBAEUaW5kZXg4AQx1MzIEKQFUaGUgaW5kZXggb2YgdGhlIHNraXBwZWQgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgMECQFBIG1pZ3JhdGlvbiB3YXMgc2tpcHBlZCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBleGVjdXRlZCBpbiB0aGUgcGFzdC5ETWlncmF0aW9uQWR2YW5jZWQIARRpbmRleDgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vazgBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgQEXEEgbWlncmF0aW9uIHByb2dyZXNzZWQuSE1pZ3JhdGlvbkNvbXBsZXRlZAgBFGluZGV4OAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rOAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBQRYQSBNaWdyYXRpb24gY29tcGxldGVkLjxNaWdyYXRpb25GYWlsZWQIARRpbmRleDgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vazgBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgYMTEEgTWlncmF0aW9uIGZhaWxlZC4ATQFUaGlzIGltcGxpZXMgdGhhdCB0aGUgd2hvbGUgdXBncmFkZSBmYWlsZWQgYW5kIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHJlcXVpcmVkLjxIaXN0b3JpY0NsZWFyZWQEASxuZXh0X2N1cnNvcsUFATxPcHRpb248VmVjPHU4Pj4E6FNob3VsZCBiZSBwYXNzZWQgdG8gYGNsZWFyX2hpc3RvcmljYCBpbiBhIHN1Y2Nlc3NpdmUgY2FsbC4HBMhUaGUgc2V0IG9mIGhpc3RvcmljYWwgbWlncmF0aW9ucyBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUHCDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEADgBDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAAqQcAAAI8AK0HAAACsQcAsQcAAAQIODgAtQcIMGZyYW1lX3N5c3RlbVhMYXN0UnVudGltZVVwZ3JhZGVJbmZvAAAIATBzcGVjX3ZlcnNpb25gAUxjb2RlYzo6Q29tcGFjdDx1MzI+AAEkc3BlY19uYW1luQcBRENvdzwnc3RhdGljLCBzdHI+AAC5BwQMQ293BARUAb0HAAQAvQcAAAC9BwAABQIAwQcIMGZyYW1lX3N5c3RlbWBDb2RlVXBncmFkZUF1dGhvcml6YXRpb24EBFQAAAgBJGNvZGVfaGFzaDwBHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uyAEQYm9vbAAAxQcMMGZyYW1lX3N5c3RlbRhsaW1pdHMwQmxvY2tXZWlnaHRzAAAMAShiYXNlX2Jsb2Nr1QEBGFdlaWdodAABJG1heF9ibG9ja9UBARhXZWlnaHQAASRwZXJfY2xhc3PJBwGEUGVyRGlzcGF0Y2hDbGFzczxXZWlnaHRzUGVyQ2xhc3M+AADJBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUAc0HAAwBGG5vcm1hbM0HAQRUAAEsb3BlcmF0aW9uYWzNBwEEVAABJG1hbmRhdG9yec0HAQRUAADNBwwwZnJhbWVfc3lzdGVtGGxpbWl0czxXZWlnaHRzUGVyQ2xhc3MAABABOGJhc2VfZXh0cmluc2lj1QEBGFdlaWdodAABNG1heF9leHRyaW5zaWOlAgE4T3B0aW9uPFdlaWdodD4AASRtYXhfdG90YWylAgE4T3B0aW9uPFdlaWdodD4AASByZXNlcnZlZKUCAThPcHRpb248V2VpZ2h0PgAA0QcMMGZyYW1lX3N5c3RlbRhsaW1pdHMsQmxvY2tMZW5ndGgAAAgBDG1heNUHAVRQZXJEaXNwYXRjaENsYXNzPHUzMj4AATxtYXhfaGVhZGVyX3NpemUJAwEsT3B0aW9uPHUzMj4AANUHDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBOAAMARhub3JtYWw4AQRUAAEsb3BlcmF0aW9uYWw4AQRUAAEkbWFuZGF0b3J5OAEEVAAA2QcIKHNwX3dlaWdodHM8UnVudGltZURiV2VpZ2h0AAAIARByZWFkKAEMdTY0AAEUd3JpdGUoAQx1NjQAAN0HCChzcF92ZXJzaW9uOFJ1bnRpbWVWZXJzaW9uAAAgASRzcGVjX25hbWW5BwFEQ293PCdzdGF0aWMsIHN0cj4AASRpbXBsX25hbWW5BwFEQ293PCdzdGF0aWMsIHN0cj4AAURhdXRob3JpbmdfdmVyc2lvbjgBDHUzMgABMHNwZWNfdmVyc2lvbjgBDHUzMgABMGltcGxfdmVyc2lvbjgBDHUzMgABEGFwaXPhBwEcQXBpc1ZlYwABTHRyYW5zYWN0aW9uX3ZlcnNpb244AQx1MzIAAThzeXN0ZW1fdmVyc2lvbgwBCHU4AADhBwQMQ293BARUAeUHAAQA5QcAAADlBwAAAukHAOkHAAAECL0BOADtBwwwZnJhbWVfc3lzdGVtGHBhbGxldBRFcnJvcgQEVAABJDxJbnZhbGlkU3BlY05hbWUAAAgRAVRoZSBuYW1lIG9mIHNwZWNpZmljYXRpb24gZG9lcyBub3QgbWF0Y2ggYmV0d2VlbiB0aGUgY3VycmVudCBydW50aW1lUGFuZCB0aGUgbmV3IHJ1bnRpbWUuaFNwZWNWZXJzaW9uTmVlZHNUb0luY3JlYXNlAAEIQQFUaGUgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIGlzIG5vdCBhbGxvd2VkIHRvIGRlY3JlYXNlIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLnRGYWlsZWRUb0V4dHJhY3RSdW50aW1lVmVyc2lvbgACDOxGYWlsZWQgdG8gZXh0cmFjdCB0aGUgcnVudGltZSB2ZXJzaW9uIGZyb20gdGhlIG5ldyBydW50aW1lLgAJAUVpdGhlciBjYWxsaW5nIGBDb3JlX3ZlcnNpb25gIG9yIGRlY29kaW5nIGBSdW50aW1lVmVyc2lvbmAgZmFpbGVkLkxOb25EZWZhdWx0Q29tcG9zaXRlAAME/FN1aWNpZGUgY2FsbGVkIHdoZW4gdGhlIGFjY291bnQgaGFzIG5vbi1kZWZhdWx0IGNvbXBvc2l0ZSBkYXRhLjxOb25aZXJvUmVmQ291bnQABAQ1AVRoZXJlIGlzIGEgbm9uLXplcm8gcmVmZXJlbmNlIGNvdW50IHByZXZlbnRpbmcgdGhlIGFjY291bnQgZnJvbSBiZWluZyBwdXJnZWQuMENhbGxGaWx0ZXJlZAAFBNBUaGUgb3JpZ2luIGZpbHRlciBwcmV2ZW50IHRoZSBjYWxsIHRvIGJlIGRpc3BhdGNoZWQubE11bHRpQmxvY2tNaWdyYXRpb25zT25nb2luZwAGBFUBQSBtdWx0aS1ibG9jayBtaWdyYXRpb24gaXMgb25nb2luZyBhbmQgcHJldmVudHMgdGhlIGN1cnJlbnQgY29kZSBmcm9tIGJlaW5nIHJlcGxhY2VkLkROb3RoaW5nQXV0aG9yaXplZAAHBFhObyB1cGdyYWRlIGF1dGhvcml6ZWQuMFVuYXV0aG9yaXplZAAIBJRUaGUgc3VibWl0dGVkIGNvZGUgaXMgbm90IGF1dGhvcml6ZWQuBGxFcnJvciBmb3IgdGhlIFN5c3RlbSBwYWxsZXTxBwwoc3BfcnVudGltZRh0cmFpdHMsQmxha2VUd28yNTYAAAAA9QcQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jaxRCbG9jawgYSGVhZGVyAVwkRXh0cmluc2ljAfkHAAgBGGhlYWRlclwBGEhlYWRlcgABKGV4dHJpbnNpY3MJCAE4VmVjPEV4dHJpbnNpYz4AAPkHEChzcF9ydW50aW1lHGdlbmVyaWNMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBABBDYWxsASAkU2lnbmF0dXJlAT0EFEV4dHJhAf0HAAQAGAAAAP0HCHRjdW11bHVzX3BhbGxldF93ZWlnaHRfcmVjbGFpbVBTdG9yYWdlV2VpZ2h0UmVjbGFpbQgEVAAEUwEBCAAEAAEIAQRTAAABCAAABCgFCE0GUQZVBlkGXQZhBmkGbQZxBgAFCAAABDDJBdEF1QXhBe0F+QUFBhEGHQYxBj0GSQYACQgAAAL5BwANCAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbTBibG9ja193ZWlnaHQ8QmxvY2tXZWlnaHRNb2RlBARUAAEMIEZ1bGxDb3JlBAEcY29udGV4dDgBREJsb2NrTnVtYmVyRm9yPFQ+AAAARFBvdGVudGlhbEZ1bGxDb3JlDAEcY29udGV4dDgBREJsb2NrTnVtYmVyRm9yPFQ+AAFcZmlyc3RfdHJhbnNhY3Rpb25faW5kZXgJAwEsT3B0aW9uPHUzMj4AATR0YXJnZXRfd2VpZ2h01QEBGFdlaWdodAABADhGcmFjdGlvbk9mQ29yZQgBHGNvbnRleHQ4AURCbG9ja051bWJlckZvcjxUPgABXGZpcnN0X3RyYW5zYWN0aW9uX2luZGV4CQMBLE9wdGlvbjx1MzI+AAIAABEIAAAGLQMAFQgAAAIZCAAZCAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBPAAMATh1c2VkX2JhbmR3aWR0aB0IATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2gxCAEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsNQgBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AAAdCAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudDgBDHUzMgABPHVtcF90b3RhbF9ieXRlczgBDHUzMgABNGhybXBfb3V0Z29pbmchCAGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AACEIBCBCVHJlZU1hcAgESwGcBFYBJQgABAApCAAAACUIDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudERIcm1wQ2hhbm5lbFVwZGF0ZQAACAEkbXNnX2NvdW50OAEMdTMyAAEsdG90YWxfYnl0ZXM4AQx1MzIAACkIAAACLQgALQgAAAQInCUIADEIBBhPcHRpb24EBFQBPAEIEE5vbmUAAAAQU29tZQQAPAAAAQAANQgEGE9wdGlvbgQEVAE5CAEIEE5vbmUAAAAQU29tZQQAOQgAAAEAADkIDExwb2xrYWRvdF9wcmltaXRpdmVzCHY5OFVwZ3JhZGVHb0FoZWFkAAEIFEFib3J0AAAAHEdvQWhlYWQAAQAAPQgMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IdW5pbmNsdWRlZF9zZWdtZW50OFNlZ21lbnRUcmFja2VyBARIATwADAE4dXNlZF9iYW5kd2lkdGgdCAE0VXNlZEJhbmR3aWR0aAABOGhybXBfd2F0ZXJtYXJrCQMBgE9wdGlvbjxyZWxheV9jaGFpbjo6QmxvY2tOdW1iZXI+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsNQgBjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABBCAQYT3B0aW9uBARUAUUIAQgQTm9uZQAAABBTb21lBABFCAAAAQAARQgMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAASQgMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3RYTWVzc2FnaW5nU3RhdGVTbmFwc2hvdAAAEAEwZG1xX21xY19oZWFkPAFEcmVsYXlfY2hhaW46Okhhc2gAAZxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHlNCAGMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAUBpbmdyZXNzX2NoYW5uZWxzUQgBiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AATxlZ3Jlc3NfY2hhbm5lbHNRCAGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgAATQgMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3SMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAAgBPHJlbWFpbmluZ19jb3VudDgBDHUzMgABOHJlbWFpbmluZ19zaXplOAEMdTMyAABRCAAAAlUIAFUIAAAECJxZCABZCAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OUxBYnJpZGdlZEhybXBDaGFubmVsAAAYATBtYXhfY2FwYWNpdHk4AQx1MzIAAThtYXhfdG90YWxfc2l6ZTgBDHUzMgABQG1heF9tZXNzYWdlX3NpemU4AQx1MzIAASRtc2dfY291bnQ4AQx1MzIAASh0b3RhbF9zaXplOAEMdTMyAAEgbXFjX2hlYWQxCAEwT3B0aW9uPEhhc2g+AABdCAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OWRBYnJpZGdlZEhvc3RDb25maWd1cmF0aW9uAAAoATRtYXhfY29kZV9zaXplOAEMdTMyAAFIbWF4X2hlYWRfZGF0YV9zaXplOAEMdTMyAAFYbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudDgBDHUzMgABVG1heF91cHdhcmRfcXVldWVfc2l6ZTgBDHUzMgABXG1heF91cHdhcmRfbWVzc2FnZV9zaXplOAEMdTMyAAGQbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlOAEMdTMyAAGIaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZTgBDHUzMgABbHZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bjgBLEJsb2NrTnVtYmVyAAFgdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5OAEsQmxvY2tOdW1iZXIAAVBhc3luY19iYWNraW5nX3BhcmFtc2EIAUhBc3luY0JhY2tpbmdQYXJhbXMAAGEIEExwb2xrYWRvdF9wcmltaXRpdmVzCHY5NGFzeW5jX2JhY2tpbmdIQXN5bmNCYWNraW5nUGFyYW1zAAAIAUxtYXhfY2FuZGlkYXRlX2RlcHRoOAEMdTMyAAFQYWxsb3dlZF9hbmNlc3RyeV9sZW44AQx1MzIAAGUICJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50RE1lc3NhZ2VRdWV1ZUNoYWluAAAEADwBJFJlbGF5SGFzaAAAaQgEIEJUcmVlTWFwCARLAZwEVgFlCAAEAG0IAAAAbQgAAAJxCABxCAAABAicZQgAdQgMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IcGFyYWNoYWluX2luaGVyZW50QEluYm91bmRNZXNzYWdlSWQAAAgBHHNlbnRfYXQ4ASxCbG9ja051bWJlcgABLHJldmVyc2VfaWR4OAEMdTMyAAB5CAAAAn0IAH0ICGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNMT3V0Ym91bmRIcm1wTWVzc2FnZQQISWQBnAAIASRyZWNpcGllbnScAQhJZAABEGRhdGEYAUxhbGxvYzo6dmVjOjpWZWM8dTg+AACBCAh8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbSxQb1ZNZXNzYWdlcwAAGAFocmVsYXlfc3RvcmFnZV9yb290X29yX2hhc2g8AURyZWxheV9jaGFpbjo6SGFzaAABNGNvcmVfc2VsZWN0b3IMAQh1OAABMGJ1bmRsZV9pbmRleAwBCHU4AAE0dW1wX21zZ19jb3VudDgBDHUzMgABTGhybXBfb3V0Ym91bmRfY291bnQ4AQx1MzIAAWBocm1wX291dGJvdW5kX3JlY2lwaWVudHOFCAEsVmVjPFBhcmFJZD4AAIUIAAACnACJCAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAARhMT3ZlcmxhcHBpbmdVcGdyYWRlcwAABBkBQXR0ZW1wdCB0byB1cGdyYWRlIHZhbGlkYXRpb24gZnVuY3Rpb24gd2hpbGUgZXhpc3RpbmcgdXBncmFkZSBwZW5kaW5nLlBQcm9oaWJpdGVkQnlQb2xrYWRvdAABBE0BUG9sa2Fkb3QgY3VycmVudGx5IHByb2hpYml0cyB0aGlzIHBhcmFjaGFpbiBmcm9tIHVwZ3JhZGluZyBpdHMgdmFsaWRhdGlvbiBmdW5jdGlvbi4YVG9vQmlnAAIIRQFUaGUgc3VwcGxpZWQgdmFsaWRhdGlvbiBmdW5jdGlvbiBoYXMgY29tcGlsZWQgaW50byBhIGJsb2IgbGFyZ2VyIHRoYW4gUG9sa2Fkb3QgaXM8d2lsbGluZyB0byBydW4uaFZhbGlkYXRpb25EYXRhTm90QXZhaWxhYmxlAAMEHQFUaGUgaW5oZXJlbnQgd2hpY2ggc3VwcGxpZXMgdGhlIHZhbGlkYXRpb24gZGF0YSBkaWQgbm90IHJ1biB0aGlzIGJsb2NrLnRIb3N0Q29uZmlndXJhdGlvbk5vdEF2YWlsYWJsZQAEBCkBVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSBob3N0IGNvbmZpZ3VyYXRpb24gZGlkIG5vdCBydW4gdGhpcyBibG9jay4wTm90U2NoZWR1bGVkAAUE2E5vIHZhbGlkYXRpb24gZnVuY3Rpb24gdXBncmFkZSBpcyBjdXJyZW50bHkgc2NoZWR1bGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6NCAxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAZEIBFMAAAQAmQgBGFZlYzxUPgAAkQgMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxCYWxhbmNlTG9jawQcQmFsYW5jZQHEAAwBCGlkvQEBOExvY2tJZGVudGlmaWVyAAEYYW1vdW50xAEcQmFsYW5jZQABHHJlYXNvbnOVCAEcUmVhc29ucwAAlQgMPHBhbGxldF9iYWxhbmNlcxR0eXBlcxxSZWFzb25zAAEMDEZlZQAAABBNaXNjAAEADEFsbAACAACZCAAAApEIAJ0IDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBoQgEUwAABAClCAEYVmVjPFQ+AAChCAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLFJlc2VydmVEYXRhCERSZXNlcnZlSWRlbnRpZmllcgG9ARxCYWxhbmNlAcQACAEIaWS9AQFEUmVzZXJ2ZUlkZW50aWZpZXIAARhhbW91bnTEARxCYWxhbmNlAAClCAAAAqEIAKkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBrQgEUwAABACxCAEYVmVjPFQ+AACtCBQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAckGHEJhbGFuY2UBxAAIAQhpZMkGAQhJZAABGGFtb3VudMQBHEJhbGFuY2UAALEIAAACrQgAtQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG5CARTAAAEAL0IARhWZWM8VD4AALkIFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBEBxCYWxhbmNlAcQACAEIaWQQAQhJZAABGGFtb3VudMQBHEJhbGFuY2UAAL0IAAACuQgAwQgMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQURXJyb3IIBFQABEkAATA4VmVzdGluZ0JhbGFuY2UAAAScVmVzdGluZyBiYWxhbmNlIHRvbyBoaWdoIHRvIHNlbmQgdmFsdWUuVExpcXVpZGl0eVJlc3RyaWN0aW9ucwABBMhBY2NvdW50IGxpcXVpZGl0eSByZXN0cmljdGlvbnMgcHJldmVudCB3aXRoZHJhd2FsLkxJbnN1ZmZpY2llbnRCYWxhbmNlAAIEeEJhbGFuY2UgdG9vIGxvdyB0byBzZW5kIHZhbHVlLkhFeGlzdGVudGlhbERlcG9zaXQAAwTsVmFsdWUgdG9vIGxvdyB0byBjcmVhdGUgYWNjb3VudCBkdWUgdG8gZXhpc3RlbnRpYWwgZGVwb3NpdC40RXhwZW5kYWJpbGl0eQAEBJBUcmFuc2Zlci9wYXltZW50IHdvdWxkIGtpbGwgYWNjb3VudC5cRXhpc3RpbmdWZXN0aW5nU2NoZWR1bGUABQTMQSB2ZXN0aW5nIHNjaGVkdWxlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIGFjY291bnQuLERlYWRBY2NvdW50AAYEjEJlbmVmaWNpYXJ5IGFjY291bnQgbXVzdCBwcmUtZXhpc3QuPFRvb01hbnlSZXNlcnZlcwAHBLhOdW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgZXhjZWVkIGBNYXhSZXNlcnZlc2AuMFRvb01hbnlIb2xkcwAIBPhOdW1iZXIgb2YgaG9sZHMgZXhjZWVkIGBWYXJpYW50Q291bnRPZjxUOjpSdW50aW1lSG9sZFJlYXNvbj5gLjhUb29NYW55RnJlZXplcwAJBJhOdW1iZXIgb2YgZnJlZXplcyBleGNlZWQgYE1heEZyZWV6ZXNgLkxJc3N1YW5jZURlYWN0aXZhdGVkAAoEAQFUaGUgaXNzdWFuY2UgY2Fubm90IGJlIG1vZGlmaWVkIHNpbmNlIGl0IGlzIGFscmVhZHkgZGVhY3RpdmF0ZWQuJERlbHRhWmVybwALBGRUaGUgZGVsdGEgY2Fubm90IGJlIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsUICGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudCBSZWxlYXNlcwABCCRWMUFuY2llbnQAAAAIVjIAAQAAyQgQNGZyYW1lX3N1cHBvcnQYdHJhaXRzHHN0b3JhZ2UYTm9Ecm9wBARUAc0IAAQAzQgBBFQAAM0IGDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGUkaW1iYWxhbmNlJEltYmFsYW5jZQwEQgHEGE9uRHJvcAA4T3Bwb3NpdGVPbkRyb3AAAAQBGGFtb3VudMQBBEIAANEIDHxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uGHBhbGxldBRVc2FnZQgcQmFsYW5jZQHELEJsb2NrTnVtYmVyATgACAEQdXNlZMQBHEJhbGFuY2UAASBhdF9ibG9jazgBLEJsb2NrTnVtYmVyAADVCAx8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbhhwYWxsZXQURXJyb3IEBFQAAQgcTm9Vc2FnZQAABIBUaGUgb3JpZ2luIGhhcyBubyB1c2FnZSB0cmFja2VkLhxOb3RaZXJvAAEEWFRoZSB1c2FnZSBpcyBub3QgemVyby4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu2QgMNHBhbGxldF9hc3NldHMUdHlwZXMwQXNzZXREZXRhaWxzDBxCYWxhbmNlAcQkQWNjb3VudElkAQQ4RGVwb3NpdEJhbGFuY2UBxAAwARRvd25lcgQBJEFjY291bnRJZAABGGlzc3VlcgQBJEFjY291bnRJZAABFGFkbWluBAEkQWNjb3VudElkAAEcZnJlZXplcgQBJEFjY291bnRJZAABGHN1cHBsecQBHEJhbGFuY2UAARxkZXBvc2l0xAE4RGVwb3NpdEJhbGFuY2UAASxtaW5fYmFsYW5jZcQBHEJhbGFuY2UAATRpc19zdWZmaWNpZW50yAEQYm9vbAABIGFjY291bnRzOAEMdTMyAAEsc3VmZmljaWVudHM4AQx1MzIAASRhcHByb3ZhbHM4AQx1MzIAARhzdGF0dXPdCAEsQXNzZXRTdGF0dXMAAN0IDDRwYWxsZXRfYXNzZXRzFHR5cGVzLEFzc2V0U3RhdHVzAAEMEExpdmUAAAAYRnJvemVuAAEAKERlc3Ryb3lpbmcAAgAA4QgAAAQI4AQA5QgMNHBhbGxldF9hc3NldHMUdHlwZXMwQXNzZXRBY2NvdW50EBxCYWxhbmNlAcQ4RGVwb3NpdEJhbGFuY2UBxBRFeHRyYQEQJEFjY291bnRJZAEEABABHGJhbGFuY2XEARxCYWxhbmNlAAEYc3RhdHVz6QgBNEFjY291bnRTdGF0dXMAARhyZWFzb27tCAGoRXhpc3RlbmNlUmVhc29uPERlcG9zaXRCYWxhbmNlLCBBY2NvdW50SWQ+AAEUZXh0cmEQARRFeHRyYQAA6QgMNHBhbGxldF9hc3NldHMUdHlwZXM0QWNjb3VudFN0YXR1cwABDBhMaXF1aWQAAAAYRnJvemVuAAEAHEJsb2NrZWQAAgAA7QgMNHBhbGxldF9hc3NldHMUdHlwZXM8RXhpc3RlbmNlUmVhc29uCBxCYWxhbmNlAcQkQWNjb3VudElkAQQBFCBDb25zdW1lcgAAAChTdWZmaWNpZW50AAEALERlcG9zaXRIZWxkBADEARxCYWxhbmNlAAIAPERlcG9zaXRSZWZ1bmRlZAADACxEZXBvc2l0RnJvbQgABAEkQWNjb3VudElkAADEARxCYWxhbmNlAAQAAPEIAAAEDOAEBAD1CAw0cGFsbGV0X2Fzc2V0cxR0eXBlcyBBcHByb3ZhbAgcQmFsYW5jZQHEOERlcG9zaXRCYWxhbmNlAcQACAEYYW1vdW50xAEcQmFsYW5jZQABHGRlcG9zaXTEAThEZXBvc2l0QmFsYW5jZQAA+QgMNHBhbGxldF9hc3NldHMUdHlwZXM0QXNzZXRNZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBxDRCb3VuZGVkU3RyaW5nAf0IABQBHGRlcG9zaXTEAThEZXBvc2l0QmFsYW5jZQABEG5hbWX9CAE0Qm91bmRlZFN0cmluZwABGHN5bWJvbP0IATRCb3VuZGVkU3RyaW5nAAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbsgBEGJvb2wAAP0IDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAAQkMNHBhbGxldF9hc3NldHMYcGFsbGV0FEVycm9yCARUAARJAAFgKEJhbGFuY2VMb3cAAAQVAUFjY291bnQgYmFsYW5jZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdHJhbnNmZXIgYW1vdW50LiROb0FjY291bnQAAQSQVGhlIGFjY291bnQgdG8gYWx0ZXIgZG9lcyBub3QgZXhpc3QuME5vUGVybWlzc2lvbgACBOhUaGUgc2lnbmluZyBhY2NvdW50IGhhcyBubyBwZXJtaXNzaW9uIHRvIGRvIHRoZSBvcGVyYXRpb24uHFVua25vd24AAwR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uGEZyb3plbgAEBHRUaGUgb3JpZ2luIGFjY291bnQgaXMgZnJvemVuLhRJblVzZQAFBHhUaGUgYXNzZXQgSUQgaXMgYWxyZWFkeSB0YWtlbi4oQmFkV2l0bmVzcwAGBGxJbnZhbGlkIHdpdG5lc3MgZGF0YSBnaXZlbi44TWluQmFsYW5jZVplcm8ABwSMTWluaW11bSBiYWxhbmNlIHNob3VsZCBiZSBub24temVyby5MVW5hdmFpbGFibGVDb25zdW1lcgAIDFkBVW5hYmxlIHRvIGluY3JlbWVudCB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIGNvdW50ZXJzIG9uIHRoZSBhY2NvdW50LiBFaXRoZXIgbm8gcHJvdmlkZXJNAXJlZmVyZW5jZSBleGlzdHMgdG8gYWxsb3cgYSBub24temVybyBiYWxhbmNlIG9mIGEgbm9uLXNlbGYtc3VmZmljaWVudCBhc3NldCwgb3Igb25l8GZld2VyIHRoZW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN1bWVycyBoYXMgYmVlbiByZWFjaGVkLixCYWRNZXRhZGF0YQAJBFxJbnZhbGlkIG1ldGFkYXRhIGdpdmVuLihVbmFwcHJvdmVkAAoExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4gV291bGREaWUACwQ1AVRoZSBzb3VyY2UgYWNjb3VudCB3b3VsZCBub3Qgc3Vydml2ZSB0aGUgdHJhbnNmZXIgYW5kIGl0IG5lZWRzIHRvIHN0YXkgYWxpdmUuNEFscmVhZHlFeGlzdHMADASEVGhlIGFzc2V0LWFjY291bnQgYWxyZWFkeSBleGlzdHMuJE5vRGVwb3NpdAANBNRUaGUgYXNzZXQtYWNjb3VudCBkb2Vzbid0IGhhdmUgYW4gYXNzb2NpYXRlZCBkZXBvc2l0LiRXb3VsZEJ1cm4ADgTEVGhlIG9wZXJhdGlvbiB3b3VsZCByZXN1bHQgaW4gZnVuZHMgYmVpbmcgYnVybmVkLiRMaXZlQXNzZXQADwhZAVRoZSBhc3NldCBpcyBhIGxpdmUgYXNzZXQgYW5kIGlzIGFjdGl2ZWx5IGJlaW5nIHVzZWQuIFVzdWFsbHkgZW1pdCBmb3Igb3BlcmF0aW9ucyBzdWNoHQFhcyBgc3RhcnRfZGVzdHJveWAgd2hpY2ggcmVxdWlyZSB0aGUgYXNzZXQgdG8gYmUgaW4gYSBkZXN0cm95aW5nIHN0YXRlLjBBc3NldE5vdExpdmUAEATIVGhlIGFzc2V0IGlzIG5vdCBsaXZlLCBhbmQgbGlrZWx5IGJlaW5nIGRlc3Ryb3llZC48SW5jb3JyZWN0U3RhdHVzABEEsFRoZSBhc3NldCBzdGF0dXMgaXMgbm90IHRoZSBleHBlY3RlZCBzdGF0dXMuJE5vdEZyb3plbgASBNhUaGUgYXNzZXQgc2hvdWxkIGJlIGZyb3plbiBiZWZvcmUgdGhlIGdpdmVuIG9wZXJhdGlvbi44Q2FsbGJhY2tGYWlsZWQAEwSEQ2FsbGJhY2sgYWN0aW9uIHJlc3VsdGVkIGluIGVycm9yKEJhZEFzc2V0SWQAFATIVGhlIGFzc2V0IElEIG11c3QgYmUgZXF1YWwgdG8gdGhlIFtgTmV4dEFzc2V0SWRgXS48Q29udGFpbnNGcmVlemVzABUETQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBmcmVlemVzLjRDb250YWluc0hvbGRzABYERQFUaGUgYXNzZXQgY2Fubm90IGJlIGRlc3Ryb3llZCBiZWNhdXNlIHNvbWUgYWNjb3VudHMgZm9yIHRoaXMgYXNzZXQgY29udGFpbiBob2xkcy48VG9vTWFueVJlc2VydmVzABcEgFRyaWVkIHNldHRpbmcgdG9vIG1hbnkgcmVzZXJ2ZXMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgUJBBhPcHRpb24EBFQB2QgBCBBOb25lAAAAEFNvbWUEANkIAAABAAAJCQQYT3B0aW9uBARUAcQBCBBOb25lAAAAEFNvbWUEAMQAAAEAAA0JBBhPcHRpb24EBFQB+QgBCBBOb25lAAAAEFNvbWUEAPkIAAABAAARCQxQcGFsbGV0X2Fzc2V0c19ob2xkZXIYcGFsbGV0FEVycm9yCARUAARJAAEEMFRvb01hbnlIb2xkcwAABDEBTnVtYmVyIG9mIGhvbGRzIG9uIGFuIGFjY291bnQgd291bGQgZXhjZWVkIHRoZSBjb3VudCBvZiBgUnVudGltZUhvbGRSZWFzb25gLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4VCQxEcGFsbGV0X2Fzc2V0X3JhdGUYcGFsbGV0FEVycm9yBARUAAEMQFVua25vd25Bc3NldEtpbmQAAAR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uNEFscmVhZHlFeGlzdHMAAQRRAVRoZSBnaXZlbiBhc3NldCBJRCBhbHJlYWR5IGhhcyBhbiBhc3NpZ25lZCBjb252ZXJzaW9uIHJhdGUgYW5kIGNhbm5vdCBiZSByZS1jcmVhdGVkLiBPdmVyZmxvdwACBMxPdmVyZmxvdyBvY3VycmVkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGludmVyc2UgcmF0ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuGQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAzAEYVmVjPFQ+AAAdCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASEJBFMAAAQAJQkBGFZlYzxUPgAAIQkMZHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb24YcGFsbGV0NENhbmRpZGF0ZUluZm8IJEFjY291bnRJZAEEHEJhbGFuY2UBxAAIAQx3aG8EASRBY2NvdW50SWQAARxkZXBvc2l0xAEcQmFsYW5jZQAAJQkAAAIhCQApCQg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABAC9AQEcW3U4OyA4XQAALQkMZHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb24YcGFsbGV0FEVycm9yBARUAAFERFRvb01hbnlDYW5kaWRhdGVzAAAEjFRoZSBwYWxsZXQgaGFzIHRvbyBtYW55IGNhbmRpZGF0ZXMuXFRvb0Zld0VsaWdpYmxlQ29sbGF0b3JzAAEErExlYXZpbmcgd291bGQgcmVzdWx0IGluIHRvbyBmZXcgY2FuZGlkYXRlcy5AQWxyZWFkeUNhbmRpZGF0ZQACBHxBY2NvdW50IGlzIGFscmVhZHkgYSBjYW5kaWRhdGUuME5vdENhbmRpZGF0ZQADBGxBY2NvdW50IGlzIG5vdCBhIGNhbmRpZGF0ZS5QVG9vTWFueUludnVsbmVyYWJsZXMABASEVGhlcmUgYXJlIHRvbyBtYW55IEludnVsbmVyYWJsZXMuTEFscmVhZHlJbnZ1bG5lcmFibGUABQSMQWNjb3VudCBpcyBhbHJlYWR5IGFuIEludnVsbmVyYWJsZS48Tm90SW52dWxuZXJhYmxlAAYEfEFjY291bnQgaXMgbm90IGFuIEludnVsbmVyYWJsZS5cTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQABwScQWNjb3VudCBoYXMgbm8gYXNzb2NpYXRlZCB2YWxpZGF0b3IgSUQuWFZhbGlkYXRvck5vdFJlZ2lzdGVyZWQACASMVmFsaWRhdG9yIElEIGlzIG5vdCB5ZXQgcmVnaXN0ZXJlZC5sSW5zZXJ0VG9DYW5kaWRhdGVMaXN0RmFpbGVkAAkEnENvdWxkIG5vdCBpbnNlcnQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0LnRSZW1vdmVGcm9tQ2FuZGlkYXRlTGlzdEZhaWxlZAAKBKRDb3VsZCBub3QgcmVtb3ZlIGZyb20gdGhlIGNhbmRpZGF0ZSBsaXN0LjREZXBvc2l0VG9vTG93AAsE9E5ldyBkZXBvc2l0IGFtb3VudCB3b3VsZCBiZSBiZWxvdyB0aGUgbWluaW11bSBjYW5kaWRhY3kgYm9uZC5kVXBkYXRlQ2FuZGlkYXRlTGlzdEZhaWxlZAAMBJBDb3VsZCBub3QgdXBkYXRlIHRoZSBjYW5kaWRhdGUgbGlzdC5ASW5zdWZmaWNpZW50Qm9uZAANBCkBRGVwb3NpdCBhbW91bnQgaXMgdG9vIGxvdyB0byB0YWtlIHRoZSB0YXJnZXQncyBzbG90IGluIHRoZSBjYW5kaWRhdGUgbGlzdC5QVGFyZ2V0SXNOb3RDYW5kaWRhdGUADgQtAVRoZSB0YXJnZXQgYWNjb3VudCB0byBiZSByZXBsYWNlZCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgaXMgbm90IGEgY2FuZGlkYXRlLkBJZGVudGljYWxEZXBvc2l0AA8EDQFUaGUgdXBkYXRlZCBkZXBvc2l0IGFtb3VudCBpcyBlcXVhbCB0byB0aGUgYW1vdW50IGFscmVhZHkgcmVzZXJ2ZWQuQEludmFsaWRVbnJlc2VydmUAEAQ9AUNhbm5vdCBsb3dlciBjYW5kaWRhY3kgYm9uZCB3aGlsZSBvY2N1cHlpbmcgYSBmdXR1cmUgY29sbGF0b3Igc2xvdCBpbiB0aGUgbGlzdC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuMQkAAAI1CQA1CQAABAgEOQEAOQkAAAI9CQA9CQAABAg4QQkAQQkMKHNwX3N0YWtpbmccb2ZmZW5jZTxPZmZlbmNlU2V2ZXJpdHkAAAQARQkBHFBlcmJpbGwAAEUJDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyYmlsbAAABAA4AQx1MzIAAEkJAAAECE0JGABNCQwcc3BfY29yZRhjcnlwdG8kS2V5VHlwZUlkAAAEAHABHFt1ODsgNF0AAFEJDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQURXJyb3IEBFQAARQwSW52YWxpZFByb29mAAAEYEludmFsaWQgb3duZXJzaGlwIHByb29mLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAABBJxObyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRCBmb3IgYWNjb3VudC40RHVwbGljYXRlZEtleQACBGRSZWdpc3RlcmVkIGR1cGxpY2F0ZSBrZXkuGE5vS2V5cwADBKRObyBrZXlzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY2NvdW50LiROb0FjY291bnQABAQZAUtleSBzZXR0aW5nIGFjY291bnQgaXMgbm90IGxpdmUsIHNvIGl0J3MgaW1wb3NzaWJsZSB0byBhc3NvY2lhdGUga2V5cy4EdEVycm9yIGZvciB0aGUgc2Vzc2lvbiBwYWxsZXQuVQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE9AQRTAAAEAFkJARhWZWM8VD4AAFkJAAACPQEAXQkISHNwX2NvbnNlbnN1c19zbG90cxBTbG90AAAEACgBDHU2NAAAYQkAAAQIXQk4AGUJDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfc2V0PEJvdW5kZWRCVHJlZVNldAgEVAGcBFMAAAQAaQkBLEJUcmVlU2V0PFQ+AABpCQQgQlRyZWVTZXQEBFQBnAAEAIUIAAAAbQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFxCQRTAAAEAH0JARhWZWM8VD4AAHEJCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABgBJHJlY2lwaWVudJwBGFBhcmFJZAABFHN0YXRldQkBNE91dGJvdW5kU3RhdGUAATRzaWduYWxzX2V4aXN0yAEQYm9vbAABLGZpcnN0X2luZGV4LQMBDHUxNgABKGxhc3RfaW5kZXgtAwEMdTE2AAEUZmxhZ3N5CQFQT3V0Ym91bmRDaGFubmVsRmxhZ3MAAHUJCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlNE91dGJvdW5kU3RhdGUAAQgIT2sAAAAkU3VzcGVuZGVkAAEAAHkJCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlUE91dGJvdW5kQ2hhbm5lbEZsYWdzAAAEARBiaXRzOAEMdTMyAAB9CQAAAnEJAIEJAAAECJwtAwCFCQxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAIkJCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlPFF1ZXVlQ29uZmlnRGF0YQAADAFEc3VzcGVuZF90aHJlc2hvbGQ4AQx1MzIAAThkcm9wX3RocmVzaG9sZDgBDHUzMgABQHJlc3VtZV90aHJlc2hvbGQ4AQx1MzIAAI0JDGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABFDhCYWRRdWV1ZUNvbmZpZwAABBEBU2V0dGluZyB0aGUgcXVldWUgY29uZmlnIGZhaWxlZCBzaW5jZSBvbmUgb2YgaXRzIHZhbHVlcyB3YXMgaW52YWxpZC5AQWxyZWFkeVN1c3BlbmRlZAABBIxUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgc3VzcGVuZGVkLjhBbHJlYWR5UmVzdW1lZAACBIRUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgcmVzdW1lZC50VG9vTWFueUFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMAAwSwVGhlcmUgYXJlIHRvbyBtYW55IGFjdGl2ZSBvdXRib3VuZCBjaGFubmVscy4YVG9vQmlnAAQEXFRoZSBtZXNzYWdlIGlzIHRvbyBiaWcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LpEJDChwYWxsZXRfeGNtGHBhbGxldCxRdWVyeVN0YXR1cwQsQmxvY2tOdW1iZXIBOAEMHFBlbmRpbmcQASRyZXNwb25kZXJJAQFEVmVyc2lvbmVkTG9jYXRpb24AAUxtYXliZV9tYXRjaF9xdWVyaWVylQkBZE9wdGlvbjxWZXJzaW9uZWRMb2NhdGlvbj4AATBtYXliZV9ub3RpZnmZCQFAT3B0aW9uPCh1OCwgdTgpPgABHHRpbWVvdXQ4ASxCbG9ja051bWJlcgAAADxWZXJzaW9uTm90aWZpZXIIARhvcmlnaW5JAQFEVmVyc2lvbmVkTG9jYXRpb24AASRpc19hY3RpdmXIARBib29sAAEAFFJlYWR5CAEgcmVzcG9uc2WhCQFEVmVyc2lvbmVkUmVzcG9uc2UAAQhhdDgBLEJsb2NrTnVtYmVyAAIAAJUJBBhPcHRpb24EBFQBSQEBCBBOb25lAAAAEFNvbWUEAEkBAAABAACZCQQYT3B0aW9uBARUAZ0JAQgQTm9uZQAAABBTb21lBACdCQAAAQAAnQkAAAQIDAwAoQkIDHhjbURWZXJzaW9uZWRSZXNwb25zZQABDAhWMwQAxQEBMHYzOjpSZXNwb25zZQADAAhWNAQANQIBMHY0OjpSZXNwb25zZQAEAAhWNQQAgQIBMHY1OjpSZXNwb25zZQAFAAClCQAABAg4SQEAqQkAAAQMKNUBOACtCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbEJBFMAAAQAtQkBGFZlYzxUPgAAsQkAAAQISQE4ALUJAAACsQkAuQkMKHBhbGxldF94Y20YcGFsbGV0VFZlcnNpb25NaWdyYXRpb25TdGFnZQABEFxNaWdyYXRlU3VwcG9ydGVkVmVyc2lvbgAAAFxNaWdyYXRlVmVyc2lvbk5vdGlmaWVycwABAFBOb3RpZnlDdXJyZW50VGFyZ2V0cwQAxQUBPE9wdGlvbjxWZWM8dTg+PgACAGhNaWdyYXRlQW5kTm90aWZ5T2xkVGFyZ2V0cwADAAC9CQAABAw4BBEDAMEJDChwYWxsZXRfeGNtGHBhbGxldGhSZW1vdGVMb2NrZWRGdW5naWJsZVJlY29yZAhIQ29uc3VtZXJJZGVudGlmaWVyARAwTWF4Q29uc3VtZXJzAAAQARhhbW91bnTEARB1MTI4AAEUb3duZXJJAQFEVmVyc2lvbmVkTG9jYXRpb24AARhsb2NrZXJJAQFEVmVyc2lvbmVkTG9jYXRpb24AASRjb25zdW1lcnPFCQHQQm91bmRlZFZlYzwoQ29uc3VtZXJJZGVudGlmaWVyLCB1MTI4KSwgTWF4Q29uc3VtZXJzPgAAxQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHJCQRTAAAEAM0JARhWZWM8VD4AAMkJAAAECBDEAM0JAAACyQkA0QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHVCQRTAAAEANkJARhWZWM8VD4AANUJAAAECMRJAQDZCQAAAtUJAN0JCChwYWxsZXRfeGNtWEF1dGhvcml6ZWRBbGlhc2VzRW50cnkIGFRpY2tldAHhCQxNQVgB5QkACAEgYWxpYXNlcnPpCQF4Qm91bmRlZFZlYzxPcmlnaW5BbGlhc2VyLCBNQVg+AAEYdGlja2V04QkBGFRpY2tldAAA4QkQNGZyYW1lX3N1cHBvcnQYdHJhaXRzHHN0b3JhZ2UgRGlzYWJsZWQAAAAA5QkMKHBhbGxldF94Y20YcGFsbGV0UE1heEF1dGhvcml6ZWRBbGlhc2VzAAAAAOkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB7QkEUwAABADxCQEYVmVjPFQ+AADtCQxAeGNtX3J1bnRpbWVfYXBpc0hhdXRob3JpemVkX2FsaWFzZXM0T3JpZ2luQWxpYXNlcgAACAEgbG9jYXRpb25JAQFEVmVyc2lvbmVkTG9jYXRpb24AARhleHBpcnkVAwEsT3B0aW9uPHU2ND4AAPEJAAAC7QkA9QkMKHBhbGxldF94Y20YcGFsbGV0FEVycm9yBARUAAFwLFVucmVhY2hhYmxlAAAIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuLFNlbmRGYWlsdXJlAAEIQQFUaGVyZSB3YXMgc29tZSBvdGhlciBpc3N1ZSAoaS5lLiBub3QgdG8gZG8gd2l0aCByb3V0aW5nKSBpbiBzZW5kaW5nIHRoZSBtZXNzYWdlLshQZXJoYXBzIGEgbGFjayBvZiBzcGFjZSBmb3IgYnVmZmVyaW5nIHRoZSBtZXNzYWdlLiBGaWx0ZXJlZAACBJxUaGUgbWVzc2FnZSBleGVjdXRpb24gZmFpbHMgdGhlIGZpbHRlci5IVW53ZWlnaGFibGVNZXNzYWdlAAMEtFRoZSBtZXNzYWdlJ3Mgd2VpZ2h0IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLmBEZXN0aW5hdGlvbk5vdEludmVydGlibGUABATcVGhlIGRlc3RpbmF0aW9uIGBMb2NhdGlvbmAgcHJvdmlkZWQgY2Fubm90IGJlIGludmVydGVkLhRFbXB0eQAFBIBUaGUgYXNzZXRzIHRvIGJlIHNlbnQgYXJlIGVtcHR5LjhDYW5ub3RSZWFuY2hvcgAGBDUBQ291bGQgbm90IHJlLWFuY2hvciB0aGUgYXNzZXRzIHRvIGRlY2xhcmUgdGhlIGZlZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi40VG9vTWFueUFzc2V0cwAHBMRUb28gbWFueSBhc3NldHMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuNEludmFsaWRPcmlnaW4ACAR4T3JpZ2luIGlzIGludmFsaWQgZm9yIHNlbmRpbmcuKEJhZFZlcnNpb24ACQQhAVRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlIGludGVycHJldGVkLixCYWRMb2NhdGlvbgAKCEEBVGhlIGdpdmVuIGxvY2F0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIChlLmcuIGJlY2F1c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZCBpbiB0aGVgZGVzaXJlZCB2ZXJzaW9uIG9mIFhDTSkuOE5vU3Vic2NyaXB0aW9uAAsEvFRoZSByZWZlcmVuY2VkIHN1YnNjcmlwdGlvbiBjb3VsZCBub3QgYmUgZm91bmQuREFscmVhZHlTdWJzY3JpYmVkAAwEEQFUaGUgbG9jYXRpb24gaXMgaW52YWxpZCBzaW5jZSBpdCBhbHJlYWR5IGhhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHVzLlhDYW5ub3RDaGVja091dFRlbGVwb3J0AA0EKQFDb3VsZCBub3QgY2hlY2stb3V0IHRoZSBhc3NldHMgZm9yIHRlbGVwb3J0YXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluLihMb3dCYWxhbmNlAA4EQQFUaGUgb3duZXIgZG9lcyBub3Qgb3duIChhbGwpIG9mIHRoZSBhc3NldCB0aGF0IHRoZXkgd2lzaCB0byBkbyB0aGUgb3BlcmF0aW9uIG9uLjBUb29NYW55TG9ja3MADwTAVGhlIGFzc2V0IG93bmVyIGhhcyB0b28gbWFueSBsb2NrcyBvbiB0aGUgYXNzZXQuTEFjY291bnROb3RTb3ZlcmVpZ24AEAQxAVRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBhbiBpZGVudGlmaWFibGUgc292ZXJlaWduIGFjY291bnQgZm9yIGFueSBsb2NhdGlvbi4oRmVlc05vdE1ldAARBCkBVGhlIG9wZXJhdGlvbiByZXF1aXJlZCBmZWVzIHRvIGJlIHBhaWQgd2hpY2ggdGhlIGluaXRpYXRvciBjb3VsZCBub3QgbWVldC4wTG9ja05vdEZvdW5kABIE9EEgcmVtb3RlIGxvY2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZC4USW5Vc2UAEwRJAVRoZSB1bmxvY2sgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIGNvbnN1bWVycyBvZiB0aGUgbG9jay5oSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAFQTwSW52YWxpZCBhc3NldCwgcmVzZXJ2ZSBjaGFpbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgaXQueEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQAWBEUBSW52YWxpZCBhc3NldCwgZG8gbm90IHN1cHBvcnQgcmVtb3RlIGFzc2V0IHJlc2VydmVzIHdpdGggZGlmZmVyZW50IGZlZXMgcmVzZXJ2ZXMuPFRvb01hbnlSZXNlcnZlcwAXBEkBVG9vIG1hbnkgYXNzZXRzIHdpdGggZGlmZmVyZW50IHJlc2VydmUgbG9jYXRpb25zIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLmBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAGAR8TG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlLmBUb29NYW55QXV0aG9yaXplZEFsaWFzZXMAGQS4VG9vIG1hbnkgbG9jYXRpb25zIGF1dGhvcml6ZWQgdG8gYWxpYXMgb3JpZ2luLjRFeHBpcmVzSW5QYXN0ABoEjEV4cGlyeSBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuNEFsaWFzTm90Rm91bmQAGwTQVGhlIGFsaWFzIHRvIHJlbW92ZSBhdXRob3JpemF0aW9uIGZvciB3YXMgbm90IGZvdW5kLoRMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3IIARRpbmRleAwBQEluc3RydWN0aW9uSW5kZXgAARRlcnJvcvkJAThFeGVjdXRpb25FcnJvcgAcCDUBTG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlIHdpdGggdGhlIGFjdHVhbCBYQ00gZXJyb3IgYW5kIHRoZSBpbmRleCBvZiB0aGWIaW5zdHJ1Y3Rpb24gdGhhdCBjYXVzZWQgdGhlIGVycm9yLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC75CQwocGFsbGV0X3hjbRhlcnJvcnM4RXhlY3V0aW9uRXJyb3IAAaQgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiADRUb29NYW55QXNzZXRzACMATFVuaGFuZGxlZFhjbVZlcnNpb24AJABIV2VpZ2h0TGltaXRSZWFjaGVkACUAHEJhcnJpZXIAJgBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAnAERFeGNlZWRzU3RhY2tMaW1pdAAoAAD9CQhQcGFsbGV0X21lc3NhZ2VfcXVldWUkQm9va1N0YXRlBDRNZXNzYWdlT3JpZ2luASEDABgBFGJlZ2luOAEkUGFnZUluZGV4AAEMZW5kOAEkUGFnZUluZGV4AAEUY291bnQ4ASRQYWdlSW5kZXgAAUByZWFkeV9uZWlnaGJvdXJzAQoBhE9wdGlvbjxOZWlnaGJvdXJzPE1lc3NhZ2VPcmlnaW4+PgABNG1lc3NhZ2VfY291bnQoAQx1NjQAARBzaXplKAEMdTY0AAABCgQYT3B0aW9uBARUAQUKAQgQTm9uZQAAABBTb21lBAAFCgAAAQAABQoIUHBhbGxldF9tZXNzYWdlX3F1ZXVlKE5laWdoYm91cnMENE1lc3NhZ2VPcmlnaW4BIQMACAEQcHJldiEDATRNZXNzYWdlT3JpZ2luAAEQbmV4dCEDATRNZXNzYWdlT3JpZ2luAAAJCgAABAghAzgADQoIUHBhbGxldF9tZXNzYWdlX3F1ZXVlEFBhZ2UIEFNpemUBOCBIZWFwU2l6ZQAAGAEkcmVtYWluaW5nOAEQU2l6ZQABOHJlbWFpbmluZ19zaXplOAEQU2l6ZQABLGZpcnN0X2luZGV4OAEQU2l6ZQABFGZpcnN0OAEQU2l6ZQABEGxhc3Q4ARBTaXplAAEQaGVhcBEKAZxCb3VuZGVkVmVjPHU4LCBJbnRvVTMyPEhlYXBTaXplLCBTaXplPj4AABEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAFQoMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABJCxOb3RSZWFwYWJsZQAACEkBUGFnZSBpcyBub3QgcmVhcGFibGUgYmVjYXVzZSBpdCBoYXMgaXRlbXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBhbmQgaXMgbm90IG9sZBxlbm91Z2guGE5vUGFnZQABBIRQYWdlIHRvIGJlIHJlYXBlZCBkb2VzIG5vdCBleGlzdC4kTm9NZXNzYWdlAAIEqFRoZSByZWZlcmVuY2VkIG1lc3NhZ2UgY291bGQgbm90IGJlIGZvdW5kLkBBbHJlYWR5UHJvY2Vzc2VkAAMEAQFUaGUgbWVzc2FnZSB3YXMgYWxyZWFkeSBwcm9jZXNzZWQgYW5kIGNhbm5vdCBiZSBwcm9jZXNzZWQgYWdhaW4uGFF1ZXVlZAAEBKxUaGUgbWVzc2FnZSBpcyBxdWV1ZWQgZm9yIGZ1dHVyZSBleGVjdXRpb24uSEluc3VmZmljaWVudFdlaWdodAAFBBkBVGhlcmUgaXMgdGVtcG9yYXJpbHkgbm90IGVub3VnaCB3ZWlnaHQgdG8gY29udGludWUgc2VydmljaW5nIG1lc3NhZ2VzLmBUZW1wb3JhcmlseVVucHJvY2Vzc2FibGUABhCoVGhpcyBtZXNzYWdlIGlzIHRlbXBvcmFyaWx5IHVucHJvY2Vzc2FibGUuAFkBU3VjaCBlcnJvcnMgYXJlIGV4cGVjdGVkLCBidXQgbm90IGd1YXJhbnRlZWQsIHRvIHJlc29sdmUgdGhlbXNlbHZlcyBldmVudHVhbGx5IHRocm91Z2gkcmV0cnlpbmcuLFF1ZXVlUGF1c2VkAAcM7FRoZSBxdWV1ZSBpcyBwYXVzZWQgYW5kIG5vIG1lc3NhZ2UgY2FuIGJlIGV4ZWN1dGVkIGZyb20gaXQuAB0BVGhpcyBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGFuZCBtYXkgcmVzb2x2ZSBpbiB0aGUgZnV0dXJlIGJ5IHJlLXRyeWluZy5MUmVjdXJzaXZlRGlzYWxsb3dlZAAIBDEBQW5vdGhlciBjYWxsIGlzIGluIHByb2dyZXNzIGFuZCBuZWVkcyB0byBmaW5pc2ggYmVmb3JlIHRoaXMgY2FsbCBjYW4gaGFwcGVuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4ZCgw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEVycm9yBARUAAEEMFRvb01hbnlDYWxscwAABFxUb28gbWFueSBjYWxscyBiYXRjaGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4dCgAABAgECAAhCgg8cGFsbGV0X211bHRpc2lnIE11bHRpc2lnECxCbG9ja051bWJlcgE4HEJhbGFuY2UBxCRBY2NvdW50SWQBBDBNYXhBcHByb3ZhbHMAABABEHdoZW6ZAwFYVGltZXBvaW50PEJsb2NrTnVtYmVyPgABHGRlcG9zaXTEARxCYWxhbmNlAAEkZGVwb3NpdG9yBAEkQWNjb3VudElkAAEkYXBwcm92YWxzJQoBjEJvdW5kZWRWZWM8QWNjb3VudElkLCBNYXhBcHByb3ZhbHM+AAAlCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQQEUwAABADMARhWZWM8VD4AACkKDDxwYWxsZXRfbXVsdGlzaWcYcGFsbGV0FEVycm9yBARUAAE4QE1pbmltdW1UaHJlc2hvbGQAAAR8VGhyZXNob2xkIG11c3QgYmUgMiBvciBncmVhdGVyLjxBbHJlYWR5QXBwcm92ZWQAAQSsQ2FsbCBpcyBhbHJlYWR5IGFwcHJvdmVkIGJ5IHRoaXMgc2lnbmF0b3J5LkROb0FwcHJvdmFsc05lZWRlZAACBJxDYWxsIGRvZXNuJ3QgbmVlZCBhbnkgKG1vcmUpIGFwcHJvdmFscy5EVG9vRmV3U2lnbmF0b3JpZXMAAwSoVGhlcmUgYXJlIHRvbyBmZXcgc2lnbmF0b3JpZXMgaW4gdGhlIGxpc3QuSFRvb01hbnlTaWduYXRvcmllcwAEBKxUaGVyZSBhcmUgdG9vIG1hbnkgc2lnbmF0b3JpZXMgaW4gdGhlIGxpc3QuVFNpZ25hdG9yaWVzT3V0T2ZPcmRlcgAFBA0BVGhlIHNpZ25hdG9yaWVzIHdlcmUgcHJvdmlkZWQgb3V0IG9mIG9yZGVyOyB0aGV5IHNob3VsZCBiZSBvcmRlcmVkLkxTZW5kZXJJblNpZ25hdG9yaWVzAAYEDQFUaGUgc2VuZGVyIHdhcyBjb250YWluZWQgaW4gdGhlIG90aGVyIHNpZ25hdG9yaWVzOyBpdCBzaG91bGRuJ3QgYmUuIE5vdEZvdW5kAAcEoE11bHRpc2lnIG9wZXJhdGlvbiBub3QgZm91bmQgaW4gc3RvcmFnZS4gTm90T3duZXIACAhRAU9ubHkgdGhlIGFjY291bnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhlIG11bHRpc2lnIGlzIGFibGUgdG8gY2FuY2VsIGl0IG9yIHVwZGF0ZTRpdHMgZGVwb3NpdHMuLE5vVGltZXBvaW50AAkEHQFObyB0aW1lcG9pbnQgd2FzIGdpdmVuLCB5ZXQgdGhlIG11bHRpc2lnIG9wZXJhdGlvbiBpcyBhbHJlYWR5IHVuZGVyd2F5LjhXcm9uZ1RpbWVwb2ludAAKBC0BQSBkaWZmZXJlbnQgdGltZXBvaW50IHdhcyBnaXZlbiB0byB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIHRoYXQgaXMgdW5kZXJ3YXkuTFVuZXhwZWN0ZWRUaW1lcG9pbnQACwT0QSB0aW1lcG9pbnQgd2FzIGdpdmVuLCB5ZXQgbm8gbXVsdGlzaWcgb3BlcmF0aW9uIGlzIHVuZGVyd2F5LjxNYXhXZWlnaHRUb29Mb3cADATQVGhlIG1heGltdW0gd2VpZ2h0IGluZm9ybWF0aW9uIHByb3ZpZGVkIHdhcyB0b28gbG93LjRBbHJlYWR5U3RvcmVkAA0EoFRoZSBkYXRhIHRvIGJlIHN0b3JlZCBpcyBhbHJlYWR5IHN0b3JlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuLQoMLHBhbGxldF9zdWRvGHBhbGxldBRFcnJvcgQEVAABBCxSZXF1aXJlU3VkbwAABIBTZW5kZXIgbXVzdCBiZSB0aGUgU3VkbyBhY2NvdW50LgRoRXJyb3IgZm9yIHRoZSBTdWRvIHBhbGxldC4xCgAABAg1CsQANQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE5CgRTAAAEAD0KARhWZWM8VD4AADkKCDBwYWxsZXRfcHJveHk8UHJveHlEZWZpbml0aW9uDCRBY2NvdW50SWQBBCRQcm94eVR5cGUBqQMsQmxvY2tOdW1iZXIBOAAMASBkZWxlZ2F0ZQQBJEFjY291bnRJZAABKHByb3h5X3R5cGWpAwEkUHJveHlUeXBlAAEUZGVsYXk4ASxCbG9ja051bWJlcgAAPQoAAAI5CgBBCgAABAhFCsQARQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFJCgRTAAAEAE0KARhWZWM8VD4AAEkKCDBwYWxsZXRfcHJveHkwQW5ub3VuY2VtZW50DCRBY2NvdW50SWQBBBBIYXNoATwsQmxvY2tOdW1iZXIBOAAMARByZWFsBAEkQWNjb3VudElkAAEkY2FsbF9oYXNoPAEQSGFzaAABGGhlaWdodDgBLEJsb2NrTnVtYmVyAABNCgAAAkkKAFEKDDBwYWxsZXRfcHJveHkYcGFsbGV0FEVycm9yBARUAAEgHFRvb01hbnkAAAQhAVRoZXJlIGFyZSB0b28gbWFueSBwcm94aWVzIHJlZ2lzdGVyZWQgb3IgdG9vIG1hbnkgYW5ub3VuY2VtZW50cyBwZW5kaW5nLiBOb3RGb3VuZAABBHRQcm94eSByZWdpc3RyYXRpb24gbm90IGZvdW5kLiBOb3RQcm94eQACBMxTZW5kZXIgaXMgbm90IGEgcHJveHkgb2YgdGhlIGFjY291bnQgdG8gYmUgcHJveGllZC4sVW5wcm94eWFibGUAAwQhAUEgY2FsbCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgcHJveHkgdHlwZSdzIGZpbHRlciB3YXMgYXR0ZW1wdGVkLiREdXBsaWNhdGUABARsQWNjb3VudCBpcyBhbHJlYWR5IGEgcHJveHkuME5vUGVybWlzc2lvbgAFBBUBQ2FsbCBtYXkgbm90IGJlIG1hZGUgYnkgcHJveHkgYmVjYXVzZSBpdCBtYXkgZXNjYWxhdGUgaXRzIHByaXZpbGVnZXMuLFVuYW5ub3VuY2VkAAYE0EFubm91bmNlbWVudCwgaWYgbWFkZSBhdCBhbGwsIHdhcyBtYWRlIHRvbyByZWNlbnRseS4sTm9TZWxmUHJveHkABwRkQ2Fubm90IGFkZCBzZWxmIGFzIHByb3h5LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5VCgxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzMFJlZ2lzdHJhdGlvbgwcQmFsYW5jZQHENE1heEp1ZGdlbWVudHMAMElkZW50aXR5SW5mbwGxAwAMAShqdWRnZW1lbnRzWQoB/EJvdW5kZWRWZWM8KFJlZ2lzdHJhckluZGV4LCBKdWRnZW1lbnQ8QmFsYW5jZT4pLCBNYXhKdWRnZW1lbnRzPgABHGRlcG9zaXTEARxCYWxhbmNlAAEQaW5mb7EDATBJZGVudGl0eUluZm8AAFkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBXQoEUwAABABhCgEYVmVjPFQ+AABdCgAABAg4NQQAYQoAAAJdCgBlCgAABAjEJQoAaQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFtCgRTAAAEAHUKARhWZWM8VD4AAG0KBBhPcHRpb24EBFQBcQoBCBBOb25lAAAAEFNvbWUEAHEKAAABAABxCgxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzNFJlZ2lzdHJhckluZm8MHEJhbGFuY2UBxCRBY2NvdW50SWQBBBxJZEZpZWxkASgADAEcYWNjb3VudAQBJEFjY291bnRJZAABDGZlZcQBHEJhbGFuY2UAARhmaWVsZHMoARxJZEZpZWxkAAB1CgAAAm0KAHkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAfQoMVGluZGl2X3BhbGxldF9pZGVudGl0eRR0eXBlc0xBdXRob3JpdHlQcm9wZXJ0aWVzBBxBY2NvdW50AQQACAEoYWNjb3VudF9pZAQBHEFjY291bnQAAShhbGxvY2F0aW9uOAEoQWxsb2NhdGlvbgAAgQoMVGluZGl2X3BhbGxldF9pZGVudGl0eRR0eXBlc0xVc2VybmFtZUluZm9ybWF0aW9uCBxBY2NvdW50AQQcQmFsYW5jZQHEAAgBFG93bmVyBAEcQWNjb3VudAABIHByb3ZpZGVyhQoBRFByb3ZpZGVyPEJhbGFuY2U+AACFCgxUaW5kaXZfcGFsbGV0X2lkZW50aXR5FHR5cGVzIFByb3ZpZGVyBBxCYWxhbmNlAcQBDChBbGxvY2F0aW9uAAAAQEF1dGhvcml0eURlcG9zaXQEAMQBHEJhbGFuY2UAAQAYU3lzdGVtAAIAAIkKAAAEDAQ4hQoAjQoMVGluZGl2X3BhbGxldF9pZGVudGl0eRR0eXBlc0BQZXJzb25hbElkZW50aXR5ECRBY2NvdW50SWQBBCxKdWRnZW1lbnRJZAE4NE1heEp1ZGdlbWVudHMALEJsb2NrTnVtYmVyATgAEAEcYWNjb3VudAQBJEFjY291bnRJZAABSHBlbmRpbmdfanVkZ2VtZW50c5EKAcBCb3VuZGVkVmVjPChTb2NpYWwsIEp1ZGdlbWVudElkKSwgTWF4SnVkZ2VtZW50cz4AARhiYW5uZWTIARBib29sAAFkdXNlcm5hbWVfbGFzdF9yZXBvcnRlZF9hdAkDAUxPcHRpb248QmxvY2tOdW1iZXI+AACRCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZUKBFMAAAQAmQoBGFZlYzxUPgAAlQoAAAQITQQ4AJkKAAAClQoAnQoMVGluZGl2X3BhbGxldF9pZGVudGl0eRR0eXBlczhVc2VybmFtZVJlcG9ydAwkQWNjb3VudElkAQQgVXNlcm5hbWUBSQQYVGlja2V0ATgADAEgcmVwb3J0ZXIEASRBY2NvdW50SWQAASB1c2VybmFtZUkEASBVc2VybmFtZQABHGNhc2VfaWQ4ARhUaWNrZXQAAKEKDFRpbmRpdl9wYWxsZXRfaWRlbnRpdHkYcGFsbGV0FEVycm9yBARUAAGkSFRvb01hbnlTdWJBY2NvdW50cwAABFxUb28gbWFueSBzdWJzLWFjY291bnRzLhxOb0FsaWFzAAEEeE5vIGFsaWFzIGZvdW5kIGZvciBhbiBhY2NvdW50LiBOb3RGb3VuZAACBFBBY2NvdW50IGlzbid0IGZvdW5kLiBOb3ROYW1lZAADBFBBY2NvdW50IGlzbid0IG5hbWVkLihFbXB0eUluZGV4AAQEMEVtcHR5IGluZGV4LihGZWVDaGFuZ2VkAAUEPEZlZSBpcyBjaGFuZ2VkLihOb0lkZW50aXR5AAYESE5vIGlkZW50aXR5IGZvdW5kLjxTdGlja3lKdWRnZW1lbnQABwREU3RpY2t5IGp1ZGdlbWVudC44SnVkZ2VtZW50R2l2ZW4ACARASnVkZ2VtZW50IGdpdmVuLkBJbnZhbGlkSnVkZ2VtZW50AAkESEludmFsaWQganVkZ2VtZW50LjBJbnZhbGlkSW5kZXgACgRUVGhlIGluZGV4IGlzIGludmFsaWQuNEludmFsaWRUYXJnZXQACwRYVGhlIHRhcmdldCBpcyBpbnZhbGlkLkRUb29NYW55UmVnaXN0cmFycwAMBOhNYXhpbXVtIGFtb3VudCBvZiByZWdpc3RyYXJzIHJlYWNoZWQuIENhbm5vdCBhZGQgYW55IG1vcmUuOEFscmVhZHlDbGFpbWVkAA0EcEFjY291bnQgSUQgaXMgYWxyZWFkeSBuYW1lZC48QWxyZWFkeVJlcG9ydGVkAA4EjFVzZXJuYW1lIGhhcyBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQuGE5vdFN1YgAPBHBTZW5kZXIgaXMgbm90IGEgc3ViLWFjY291bnQuIE5vdE93bmVkABAEiFN1Yi1hY2NvdW50IGlzbid0IG93bmVkIGJ5IHNlbmRlci50SnVkZ2VtZW50Rm9yRGlmZmVyZW50SWRlbnRpdHkAEQTQVGhlIHByb3ZpZGVkIGp1ZGdlbWVudCB3YXMgZm9yIGEgZGlmZmVyZW50IGlkZW50aXR5LlhKdWRnZW1lbnRQYXltZW50RmFpbGVkABIE+EVycm9yIHRoYXQgb2NjdXJzIHdoZW4gdGhlcmUgaXMgYW4gaXNzdWUgcGF5aW5nIGZvciBqdWRnZW1lbnQuNEludmFsaWRTdWZmaXgAEwSAVGhlIHByb3ZpZGVkIHN1ZmZpeCBpcyB0b28gbG9uZy5QTm90VXNlcm5hbWVBdXRob3JpdHkAFATgVGhlIHNlbmRlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gaXNzdWUgYSB1c2VybmFtZS4wTm9BbGxvY2F0aW9uABUExFRoZSBhdXRob3JpdHkgY2Fubm90IGFsbG9jYXRlIGFueSBtb3JlIHVzZXJuYW1lcy5ASW52YWxpZFNpZ25hdHVyZQAWBKhUaGUgc2lnbmF0dXJlIG9uIGEgdXNlcm5hbWUgd2FzIG5vdCB2YWxpZC5EUmVxdWlyZXNTaWduYXR1cmUAFwQJAVNldHRpbmcgdGhpcyB1c2VybmFtZSByZXF1aXJlcyBhIHNpZ25hdHVyZSwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkLjxJbnZhbGlkVXNlcm5hbWUAGASwVGhlIHVzZXJuYW1lIGRvZXMgbm90IG1lZXQgdGhlIHJlcXVpcmVtZW50cy40VXNlcm5hbWVUYWtlbgAZBHhUaGUgdXNlcm5hbWUgaXMgYWxyZWFkeSB0YWtlbi4oTm9Vc2VybmFtZQAaBJhUaGUgcmVxdWVzdGVkIHVzZXJuYW1lIGRvZXMgbm90IGV4aXN0LmROb3RTeXN0ZW1Qcm92aWRlZFVzZXJuYW1lABsE1FRoZSByZXBvcnRlZCB1c2VybmFtZSB3YXMgbm90IHByb3ZpZGVkIGJ5IHRoZSBzeXN0ZW0uKE5vdEV4cGlyZWQAHAQtAVRoZSB1c2VybmFtZSBjYW5ub3QgYmUgZm9yY2VmdWxseSByZW1vdmVkIGJlY2F1c2UgaXQgY2FuIHN0aWxsIGJlIGFjY2VwdGVkLiBUb29FYXJseQAdBBkBVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSByZW1vdmVkIGJlY2F1c2UgaXQncyBzdGlsbCBpbiB0aGUgZ3JhY2UgcGVyaW9kLjBOb3RVbmJpbmRpbmcAHgTsVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm90IHVuYmluZGluZy5AQWxyZWFkeVVuYmluZGluZwAfBPxUaGUgdXNlcm5hbWUgY2Fubm90IGJlIHVuYm91bmQgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHVuYmluZGluZy5YSW5zdWZmaWNpZW50UHJpdmlsZWdlcwAgCEUBVGhlIGFjdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHByaXZpbGVnZXMgKGUuZy4gYXV0aG9yaXR50HRyeWluZyB0byB1bmJpbmQgYSB1c2VybmFtZSBwcm92aWRlZCBieSB0aGUgc3lzdGVtKS4oQmFkQ29udGV4dAAhBORUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgYWxpYXMgd2FzIHVzZWQgaXMgbm90IHN1cHBvcnRlZC5MVW5leHBlY3RlZEp1ZGdlbWVudAAiBMRObyBhc3NvY2lhdGVkIHJlcXVlc3QgZm9yIHRoZSBqdWRnZW1lbnQgcmVjZWl2ZWQuME5vdFN1cHBvcnRlZAAjBF0BVGhlIHNvY2lhbCBjcmVkZW50aWFsIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGNvbmZpZ3VyZWQgaWRlbnRpdHkgaW5mb3JtYXRpb24gcHJvdmlkZXIuGEJhbm5lZAAkBNhUaGUgcGVyc29uIGlzIGJhbm5lZCBhbmQgY2Fubm90IHBlcmZvcm0gdGhlIG9wZXJhdGlvbi5EQWxyZWFkeVJlZ2lzdGVyZWQAJQQdAVRoZSBwZXJzb24gYWxyZWFkeSBoYXMgYSBwZXJzb25hbCBpZGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlaXIgYWxpYXMuREp1ZGdlbWVudExpc3RGdWxsACYE+FRoZSBsaXN0IG9mIGp1ZGdlbWVudHMgb25nb2luZyBvbiBhIHBlcnNvbmFsIGlkZW50aXR5IGlzIGZ1bGwubExhc3RVc2VybmFtZVJlcG9ydFRvb1JlY2VudAAnBLBUaGUgdXNlcm5hbWUgaGFzIGJlZW4gcmVwb3J0ZWQgdG9vIHJlY2VudGx5LmBVc2VybmFtZUp1ZGdlbWVudE9uZ29pbmcAKAQRAVRoZSB1c2VybmFtZSBoYXMgYmVlbiByZXBvcnRlZCBhbmQgaXMgdW5kZXJnb2luZyB2YWxpZGl0eSBqdWRnZW1lbnQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqUKDExpbmRpdl9wYWxsZXRfcGVvcGxlFHR5cGVzMFBlcnNvblJlY29yZAgYTWVtYmVyAQgkQWNjb3VudElkAQQACAEMa2V5CAEYTWVtYmVyAAEcYWNjb3VudEUHAURPcHRpb248QWNjb3VudElkPgAAqQoMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0FEVycm9yBARUAAGUJE5vdFBlcnNvbgAABNBUaGUgc3VwcGxpZWQgaWRlbnRpZmllciBkb2VzIG5vdCByZXByZXNlbnQgYSBwZXJzb24uFE5vS2V5AAEEnFRoZSBnaXZlbiBwZXJzb24gaGFzIG5vIGFzc29jaWF0ZWQga2V5LjhJbnZhbGlkQ29udGV4dAACBCkBVGhlIGNvbnRleHQgaXMgbm90IGEgbWVtYmVyIG9mIHRob3NlIGFsbG93ZWQgdG8gaGF2ZSBhY2NvdW50IGFsaWFzZXMgaGVsZC44SW52YWxpZEFjY291bnQAAwRkVGhlIGFjY291bnQgaXMgbm90IGtub3duLjBBY2NvdW50SW5Vc2UABATIVGhlIGFjY291bnQgaXMgYWxyZWFkeSBpbiB1c2UgdW5kZXIgYW5vdGhlciBhbGlhcy4wSW52YWxpZFByb29mAAUEVFRoZSBwcm9vZiBpcyBpbnZhbGlkLkBJbnZhbGlkU2lnbmF0dXJlAAYEZFRoZSBzaWduYXR1cmUgaXMgaW52YWxpZC4kTm9NZW1iZXJzAAcE0FRoZXJlIGFyZSBub3QgeWV0IGFueSBtZW1iZXJzIG9mIG91ciBwZXJzb25ob29kIHNldC4oSW5jb21wbGV0ZQAIBAUBVGhlIHJvb3QgY2Fubm90IGJlIGZpbmFsaXplZCBhcyB0aGVyZSBhcmUgc3RpbGwgdW5wdXNoZWQgbWVtYmVycy4oU3RpbGxGcmVzaAAJBGBUaGUgcm9vdCBpcyBzdGlsbCBmcmVzaC44VG9vTWFueU1lbWJlcnMACgSIVG9vIG1hbnkgbWVtYmVycyBoYXZlIGJlZW4gcHVzaGVkLjxLZXlBbHJlYWR5SW5Vc2UACwSUS2V5IGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgcGVyc29uLixLZXlOb3RGb3VuZAAMBKBUaGUgb2xkIGtleSB3YXMgbm90IGZvdW5kIHdoZW4gZXhwZWN0ZWQuMENvdWxkTm90UHVzaAANBJBDb3VsZCBub3QgcHVzaCBtZW1iZXIgaW50byB0aGUgcmluZy4cU2FtZUtleQAOBJRUaGUgcmVjb3JkIGlzIGFscmVhZHkgdXNpbmcgdGhpcyBrZXkuVFBlcnNvbmFsSWROb3RSZXNlcnZlZAAPBHRQZXJzb25hbCBJZCB3YXMgbm90IHJlc2VydmVkLoBQZXJzb25hbElkUmVzZXJ2YXRpb25DYW5ub3RSZW5ldwAQBJBQZXJzb25hbCBJZCBoYXMgbmV2ZXIgYmVlbiByZXNlcnZlZC6QUGVyc29uYWxJZE5vdFJlc2VydmVkT3JOb3RSZWNvZ25pemVkABEE3FBlcnNvbmFsIElkIHdhcyBub3QgcmVzZXJ2ZWQgb3Igbm90IGFscmVhZHkgcmVjb2duaXplZC4sSW52YWxpZFJpbmcAEgSsUmluZyBjYW5ub3QgYmUgbWVyZ2VkIGlmIGl0J3MgdGhlIHRvcCByaW5nLkhTdXNwZW5zaW9uc1BlbmRpbmcAEwTkUmluZyBjYW5ub3QgYmUgYnVpbHQgd2hpbGUgdGhlcmUgYXJlIHN1c3BlbnNpb25zIHBlbmRpbmcuXFJpbmdBYm92ZU1lcmdlVGhyZXNob2xkABQE1FJpbmcgY2Fubm90IGJlIG1lcmdlZCBpZiBpdCdzIG5vdCBiZWxvdyAxLzIgY2FwYWNpdHkuSEludmFsaWRTdXNwZW5zaW9ucwAVBKBTdXNwZW5zaW9uIGluZGljZXMgcHJvdmlkZWQgYXJlIGludmFsaWQuRE5vTXV0YXRpb25TZXNzaW9uABYENQFBbiBtdXRhdGluZyBhY3Rpb24gd2FzIHF1ZXVlZCB3aGVuIHRoZXJlIHdhcyBubyBtdXRhdGlvbiBzZXNzaW9uIGluIHByb2dyZXNzLnBDb3VsZE5vdFN0YXJ0TXV0YXRpb25TZXNzaW9uABcEpEFuIG11dGF0aW5nIHNlc3Npb24gY291bGQgbm90IGJlIHN0YXJ0ZWQubFN1c3BlbnNpb25TZXNzaW9uSW5Qcm9ncmVzcwAYBPRDYW5ub3QgbWVyZ2UgcmluZ3Mgd2hpbGUgYSBzdXNwZW5zaW9uIHNlc3Npb24gaXMgaW4gcHJvZ3Jlc3MuNEFsaWFzTm90U3RhbGUAGQR8VGhlIGFsaWFzIG1hcHBpbmcgaXMgbm90IHN0YWxlLjhUaW1lT3V0T2ZSYW5nZQAaBHhDYWxsIGlzIHRvbyBsYXRlIG9yIHRvbyBlYXJseS5YQWxpYXNBY2NvdW50QWxyZWFkeVNldAAbBMBBbGlhcyA8LT4gQWNjb3VudCBpcyBhbHJlYWR5IHNldCBhbmQgdXAgdG8gZGF0ZS4wTm90U3VzcGVuZGVkABwE0FBlcnNvbmhvb2QgY2Fubm90IGJlIHJlc3VtZWQgaWYgaXQgaXMgbm90IHN1c3BlbmRlZC4kU3VzcGVuZGVkAB0EYFBlcnNvbmhvb2QgaXMgc3VzcGVuZGVkLkxJbnZhbGlkS2V5TWlncmF0aW9uAB4EqEludmFsaWQgc3RhdGUgZm9yIGF0dGVtcHRlZCBrZXkgbWlncmF0aW9uLkxLZXlBbHJlYWR5U3VzcGVuZGVkAB8IVQFJbnZhbGlkIHN1c3BlbnNpb24gb2YgYSBrZXkgYmVsb25naW5nIHRvIGEgcGVyc29uIHdob3NlIGluZGV4IGluIHRoZSByaW5nIGhhcyBhbHJlYWR5uGJlZW4gaW5jbHVkZWQgaW4gdGhlIHBlbmRpbmcgc3VzcGVuc2lvbnMgbGlzdC5USW52YWxpZE9uYm9hcmRpbmdTaXplACAE6FRoZSBvbmJvYXJkaW5nIHNpemUgbXVzdCBub3QgZXhjZWVkIHRoZSBtYXhpbXVtIHJpbmcgc2l6ZS5ASW52YWxpZE1lbWJlcktleQAhBKxUaGUgbWVtYmVyIGtleSBpcyBub3QgdmFsaWQgZm9yIHRoZSBjcnlwdG8udFBlb3BsZUNvbGxlY3Rpb25BbHJlYWR5RXhpc3RzACIEvFRoZSBwZW9wbGUgY29sbGVjdGlvbiBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQuNEFsaWFzTWlzbWF0Y2gAIwQZAVRoZSBwcm92aWRlZCBhbGlhcyBkb2VzIG5vdCBtYXRjaCB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYWxpYXMgbWFwcGluZy44Tm9TdGFsZUFsaWFzZXMAJASgTm9uZSBvZiB0aGUgc3VwcGxpZWQgYWxpYXNlcyB3ZXJlIHN0YWxlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6tCgxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldCRNb2JDcmVkaXQEHEJhbGFuY2UBxAAQARR2b3RlZDgBDHUzMgABHGNsZWFuZWQ4AQx1MzIAARxjb3JyZWN0OAEMdTMyAAEYY3JlZGl0xAEcQmFsYW5jZQAAsQoAAAQIOAgAtQoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgT3BlbkNhc2UELFJ1bnRpbWVDYWxsASAADAEUc2luY2UoAUBTZWNzU2luY2VHZW5lc2lzAAEcZGV0YWlsc7kKAWBDYXNlRGV0YWlsczxSdW50aW1lQ2FsbD4AARR0YWxseckKASRWb3RlVGFsbHkAALkKDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0LENhc2VEZXRhaWxzBCxSdW50aW1lQ2FsbAEgAAwBJHN0YXRlbWVudL0KASRTdGF0ZW1lbnQAARxjb250ZXh0eAFASnVkZ2VtZW50Q29udGV4dAABIGNhbGxiYWNrxQoB/ENhbGxiYWNrPChDYXNlSW5kZXgsIEp1ZGdlbWVudENvbnRleHQsIEp1ZGdlbWVudCksIFJ1bnRpbWVDYWxsPgAAvQoQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkkU3RhdGVtZW50AAEMKFByb29mT2ZJbmsMARhkZXNpZ27BCgFUcHJvb2Zfb2ZfaW5rOjpJbmtTcGVjAAEgZXZpZGVuY2UIATBFdmlkZW5jZUhhc2gAAUxwcm9iYWJsZV9hY2NlcHRhYmxlyAEQYm9vbAAAAEhJZGVudGl0eUNyZWRlbnRpYWwIASBwbGF0Zm9ybU0EAUBpZGVudGl0eTo6U29jaWFsAAEgZXZpZGVuY2VJBAE4aWRlbnRpdHk6OkRhdGEAAQA0VXNlcm5hbWVWYWxpZAQBIHVzZXJuYW1lSQQBOGlkZW50aXR5OjpEYXRhAAIAAMEKFDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5MHByb29mX29mX2luaxxJbmtTcGVjAAEQQERlc2lnbmVkRWxlY3RpdmUIAC0DASxGYW1pbHlJbmRleAAALQMBLERlc2lnbkluZGV4AAAARFByb2NlZHVyYWxBY2NvdW50CAAtAwEsRmFtaWx5SW5kZXgAAAgBJEFjY291bnRJZAABAEhQcm9jZWR1cmFsUGVyc29uYWwIAC0DASxGYW1pbHlJbmRleAAAKAEoUGVyc29uYWxJZAACAChQcm9jZWR1cmFsCAAtAwEsRmFtaWx5SW5kZXgAAHABOFByb2NlZHVyYWxTZWVkAAMAAMUKEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5IENhbGxiYWNrCBhQYXJhbXMALFJ1bnRpbWVDYWxsAAAIATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAAyQoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQkVm90ZVRhbGx5AAAMAQxheWU4AQx1MzIAAQxuYXk4AQx1MzIAASBjb250ZW1wdDgBDHUzMgAAzQoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgUmlwZUNhc2UELFJ1bnRpbWVDYWxsASAACAEcZGV0YWlsc7kKAWBDYXNlRGV0YWlsczxSdW50aW1lQ2FsbD4AARx2ZXJkaWN0UQQBJEp1ZGdlbWVudAAA0QoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgRG9uZUNhc2UAAAgBFHNpbmNlKAFAU2Vjc1NpbmNlR2VuZXNpcwABHHZlcmRpY3RRBAEkSnVkZ2VtZW50AADVCgxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldEhDcmVkaXREaXN0cmlidXRpb24IHEJhbGFuY2UBxCxCbG9ja051bWJlcgE4ABQBFHJvdW5kOAEoUm91bmRJbmRleAABPGluaXRpYWxfYmFsYW5jZcQBHEJhbGFuY2UAAURyZW1haW5pbmdfYmFsYW5jZcQBHEJhbGFuY2UAATB0b3RhbF9wb2ludHMoASRWb3RlQ291bnQAARRzdGFydDgBLEJsb2NrTnVtYmVyAADZCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAd0KBFMAAAQA4QoBGFZlYzxUPgAA3QoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQ4UGF5b3V0U2NoZWR1bGUIHEJhbGFuY2UBxCxCbG9ja051bWJlcgE4AAwBJHJlbWFpbmluZzgBKFJvdW5kSW5kZXgAAUBhbW91bnRfcGVyX3JvdW5kxAEcQmFsYW5jZQABGHBlcmlvZDgBLEJsb2NrTnVtYmVyAADhCgAAAt0KAOUKDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyY2VudAAABAAMAQh1OAAA6QoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQURXJyb3IEBFQAAVAoTm9TdWNoQ2FzZQAABGBUaGUgY2FzZSBkb2VzIG5vdCBleGlzdC4oTm9TdWNoVm90ZQABBGBUaGUgdm90ZSBkb2VzIG5vdCBleGlzdC4cTm90T3BlbgACBFRUaGUgY2FzZSBpcyBub3Qgb3Blbi4cTm90UmlwZQADBFRUaGUgY2FzZSBpcyBub3QgcmlwZS4cTm90RG9uZQAEBGRUaGUgY2FzZSBpcyBub3QgeWV0IGRvbmUuKENvZGVjRXJyb3IABQRVAVRoZSBkZWNvZGUgb2YgdGhlIGNhbGwgZmFpbGVkLiBNYXliZSB0aGVyZSB3YXMgYSBicmVha2luZyBydW50aW1lIHVwZ3JhZGUgaW4gYmV0d2Vlbj80RGlzcGF0Y2hFcnJvcgAGBE0BVGhlIGNhbGwgZmFpbGVkIHRvIGRpc3BhdGNoLiBNYXliZSB0aGVyZSB3YXMgYSBicmVha2luZyBydW50aW1lIHVwZ3JhZGUgaW4gYmV0d2Vlbj8YUmVjZW50AAcEkFRoZSBjYXNlIGlzIHRvbyByZWNlbnQgdG8gYmUgcmVhcGVkLiBOb0NyZWRpdAAIBKBOb3QgZW5vdWdoIGNyZWRpdCB0byBwYXlvdXQgdGhlIHJld2FyZHMuIE5vUmV3YXJkAAkE1E5vIG1vYiBjcmVkaXQgZGlzdHJpYnV0aW9uIGluIHBsYWNlIHRvIHJld2FyZCB2b3RlcnMuIE5vUG9pbnRzAAoEoE5vIHBvaW50cyB0byBiZSBjb252ZXJ0ZWQgdG8gbW9iIGNyZWRpdC40VG9vTWFueUNsYWltcwALBFRUb28gbWFueSB2b3RlIGNsYWltcy4gTm9QYXlvdXQADARYTm8gcGF5b3V0IGluIHByb2dyZXNzLkhBcml0aG1ldGljT3ZlcmZsb3cADQS0VGhlIHBvaW50IGFuZC9vciBjcmVkaXQgYXJpdGhtZXRpYyBvdmVyZmxvd3MuQFRvb01hbnlTY2hlZHVsZXMADgSAVG9vIG1hbnkgcGF5b3V0IHJvdW5kIHNjaGVkdWxlcy4oTm9TY2hlZHVsZQAPBHxObyBwYXlvdXQgcm91bmQgc2NoZWR1bGUgZm91bmQuJE5vUGVuYWx0eQAQBFhObyB2b3RlIHBlbmFsdHkgZm91bmQuFEVhcmx5ABEElFRoZSB2b3RlIHBlbmFsdHkgaGFzIG5vdCBleHBpcmVkIHlldC4wVW5kZXJQZW5hbHR5ABIE6FRoZSB2b3RlIGNhbm5vdCBiZSBjYXN0IGR1ZSB0byBhIHZvdGluZyBwZW5hbHR5IGluIGVmZmVjdC5YQ2FzZUV4cGlyYXRpb25EaXNhYmxlZAATBB0BVGhlIG9wZW4gY2FzZSBleHBpcmF0aW9uIGlzIGRpc2FibGVkIGR1ZSB0byBpbnN1ZmZpY2llbnQgYWN0aXZlIHZvdGVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu7QoMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0JENhbmRpZGF0ZRAsSnVkZ2VtZW50SWQBOBxEZXBvc2l0AfEKLEJsb2NrTnVtYmVyATgkQWNjb3VudElkAQQBDBxBcHBsaWVkDAEQY3JlZPUKAaxDcmVkaWJpbGl0eTxEZXBvc2l0LCBQZXJzb25hbElkLCBBY2NvdW50SWQ+AAEcZW50cm9weQgBHEVudHJvcHkAATRlbnRyb3B5X3NpbmNlOAEsQmxvY2tOdW1iZXIAAAAgU2VsZWN0ZWQgARRzaW5jZTgBLEJsb2NrTnVtYmVyAAEQY3JlZPUKAaxDcmVkaWJpbGl0eTxEZXBvc2l0LCBQZXJzb25hbElkLCBBY2NvdW50SWQ+AAEgcmVzZXJ2ZWQoAShQZXJzb25hbElkAAEcZW50cm9weQgBHEVudHJvcHkAARhkZXNpZ27BCgEcSW5rU3BlYwABKGFsbG9jYXRpb275CgEoQWxsb2NhdGlvbgABHGp1ZGdpbmcJAwFMT3B0aW9uPEp1ZGdlbWVudElkPgABGGZhaWxlZDgBHENvdW50ZXIAAQAYUHJvdmVuEAEYZGVzaWduwQoBHElua1NwZWMAASByZXNlcnZlZCgBKFBlcnNvbmFsSWQAATB3YXNfcmVmZXJyZWTIARBib29sAAEsd2FzX2ludml0ZWTIARBib29sAAIAAPEKFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAMQBKEY6OkJhbGFuY2UAAPUKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldCxDcmVkaWJpbGl0eQwcRGVwb3NpdAHxCihQZXJzb25hbElkASgkQWNjb3VudElkAQQBDCBSZWZlcnJlZAQAKAEoUGVyc29uYWxJZAAAABxEZXBvc2l0BADxCgEcRGVwb3NpdAABABxJbnZpdGVkBAAEASRBY2NvdW50SWQAAgAA+QoMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0KEFsbG9jYXRpb24AAQwcSW5pdGlhbAAAACBJbml0RG9uZQABABBGdWxsAAIAAP0KDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhQZXJzb24EPEJvdW5kZWRBY2NvdW50cwEBCwAkARhkZXNpZ24FCwE8T3B0aW9uPElua1NwZWM+AAFAYWN0aXZlX3JlZmVycmFscwELATxCb3VuZGVkQWNjb3VudHMAAWBhbGxvd2VkX3JlZmVycmFsX3RpY2tldHM4ARxDb3VudGVyAAE0YmFkX3JlZmVycmFsczgBHENvdW50ZXIAAVBzdWNjZXNzZnVsX3JlZmVycmFsczgBHENvdW50ZXIAASRyZWZlcnJhbHM4ARxDb3VudGVyAAEsZGVyaXZhdGl2ZXM4ARxDb3VudGVyAAEYYmFubmVkyAEQYm9vbAABYHBlbmRpbmdfcmVmZXJyYWxfcmV3YXJkczgBHENvdW50ZXIAAAELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAMwBGFZlYzxUPgAABQsEGE9wdGlvbgQEVAHBCgEIEE5vbmUAAAAQU29tZQQAwQoAAAEAAAkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDQsEUwAABAARCwEYVmVjPFQ+AAANCwxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQ4UmVmZXJyYWxUaWNrZXQEGFRpY2tldAEEAAQBGHRpY2tldAQBGFRpY2tldAAAEQsAAAINCwAVCwxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQYRmFtaWx5AAAIARBraW5keQQBKEZhbWlseUtpbmQAAQhpZAgBIEZhbWlseUlkAAAZCwAABAgtAy0DAB0LDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldDBEZXNpZ25TdGF0dXMAAQggUmVzZXJ2ZWQAAAAkQ29tbWl0dGVkAAEAACELAAAECAQEACULDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBRFcnJvcgQEVAABoChJblByb2dyZXNzAAAEzEFjY291bnQgaXMgYWxyZWFkeSBhcHBseWluZyB0byBtYWtlIGEgcHJvb2Ytb2YtaW5rLihOb1JlZmVycmFsAAEEeEFjY291bnQgaGFzIG5vdCBiZWVuIHJlZmVycmVkLihCYWRDb250ZXh0AAIE6FRoZSBjYWxsYmFjayBjb250ZXh0IGlzIGludmFsaWQ7IHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi5MVW5leHBlY3RlZEp1ZGdlbWVudAADBCEBVGhlIGluY29taW5nIGp1ZGdlbWVudCBJRCBpcyBub3Qgd2hhdCB3ZSB3ZXJlIGV4cGVjdGluZyBmb3IgdGhlIGFjY291bnQuGE5vQXJncwAEBLhObyBhcmd1bWVudHMgd2VyZSBzdXBwbGllZCB3aXRoIHRoZSBqdWRnZW1lbnQuKE5vdEFwcGxpZWQABQTMVGhlIGFjY291bnQgaGFzIG5vdCBhcHBsaWVkIHRvIG1ha2UgYSBwcm9vZi1vZi1pbmsuLE5vdFNlbGVjdGVkAAYEsFRoZSBjYW5kaWRhdGUgaGFzIG5vdCBjb21taXR0ZWQgdG8gYSBkZXNpZ24uJE5vdFByb3ZlbgAHBKxUaGUgY2FuZGlkYXRlIGRpZCBub3QgcHJvdmUgdGhlbXNlbHZlcyB5ZXQuOEFscmVhZHlTdGFydGVkAAgEyFRoZSBjYW5kaWRhdGUgaGFzIGFscmVhZHkgc3RhcnRlZCB0aGVpciBqdWRnZW1lbnQuKE91dE9mUmFuZ2UACQSAVGhlIHBlcnNvbmFsIElEIGlzIG5vdCBpbiByYW5nZS4wQWxyZWFkeVRha2VuAAoEnFRoZSBwZXJzb25hbCBJRCBoYXMgYWxyZWFkeSBiZWVuIHRha2VuLjxOb01vcmVSZWZlcnJhbHMACwS4VGhlIHBlcnNvbiBoYXMgbm8gbW9yZSByZWZlcnJhbHMgbGVmdCB0byBnaXZlLiBUb29FYXJseQAMBGBUaGUgcmVyb2xsIGlzIHRvbyBlYXJseS40RGVzaWduSW52YWxpZAANBKBUaGUgcmVmZXJyZXIncyBkZXNpZ24gaXMgbm90IHByb2NlZHVyYWwuLERlc2lnblRha2VuAA4EnFRoZSByZWZlcnJlcidzIGRlc2lnbiBpcyBhbHJlYWR5IHRha2VuLiRCYWRQYXJlbnQADwQVAVRoZSByZWZlcnJlciBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHBlcnNvbi4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiRCYWRGYW1pbHkAEASAVGhlIGRlc2lnbiBmYW1pbHkgZG9lc24ndCBleGlzdC4sV3JvbmdGYW1pbHkAEQS0VGhlIGRlc2lnbiBmYW1pbHkgaXMgaW52YWxpZCBmb3IgdGhpcyBjaG9pY2UuLEluZGV4VG9vQmlnABIEQQFUaGUgaW5kZXggb2YgdGhlIGRlc2lnbiBvciB2YXJpYW50IGlzIGJleW9uZCB0aGUgYWxsb3dlZCBtYXhpbXVtIGZvciB0aGUgZmFtaWx5LhBCdXN5ABME+FRoZSBzeXN0ZW0gaXMgYnVzeSB3aXRoIHRvbyBtYW55IGNvbW1pdG1lbnRzOyB0cnkgYWdhaW4gbGF0ZXIuGEJhbm5lZAAUBKhUaGUgcGVyc29uIGhhcyBiZWVuIGJhbm5lZCBmcm9tIHJlZmVycmluZy4oSW1wcm9iYWJsZQAVBCUBVGhlIGNhbmRpZGF0ZSBoYXMgbm90IGRlbW9uc3RyYXRlZCBwcm9iYWJseSB0aHJvdWdoIHRoZSBpbml0aWFsIGV2aWRlbmNlLihJZFJlc2VydmVkABYEwFRoZSBwZXJzb25hbCBpZGVudGl0eSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVkLhhJZFVzZWQAFwToVGhlIHBlcnNvbmFsIGlkZW50aXR5IGlzIGFscmVhZHkgdGFrZW4gYnkgYSBwcm92ZW4gcGVyc29uLjRJbnZhbGlkVGlja2V0ABgEfFRoZSB0aWNrZXQgcHJvdmlkZWQgaXMgaW52YWxpZC4gTm9UaWNrZXQAGQTwVGhlIGNhbGxlciBoYXMgbm90IHByb3ZpZGVkIGEgcmVmZXJyYWwgb3IgaW52aXRhdGlvbiB0aWNrZXQuNE5vdEF1dGhvcml6ZWQAGgSkVGhlIGFjY291bnQgaXMgbm90IGF1dGhvcml6ZWQgdG8gZG8gdGhpcy4kTm90UGVyc29uABsEkFRoZSBwZXJzb25hbCBpZGVudGl0eSBkb2Vzbid0IGV4aXN0LkRSZWZlcnJlZENhbmRpZGF0ZQAcBF0BVGhlIGNhbmRpZGF0ZSBpcyByZWZlcnJlZC4gQnV0IHRoZSBvcGVyYXRpb24gcmVxdWlyZXMgdGhlIGNhbmRpZGF0ZSB0byBub3QgYmUgcmVmZXJyZWQuUE5vdFJlZmVycmVkQ2FuZGlkYXRlAB0EXQFUaGUgY2FuZGlkYXRlIGlzIG5vdCByZWZlcnJlZC4gQnV0IHRoZSBvcGVyYXRpb24gcmVxdWlyZXMgdGhlIGNhbmRpZGF0ZSB0byBiZSByZWZlcnJlZC5ITm9SZXdhcmRUb1JlZ2lzdGVyAB4EoFRoZXJlIGlzIG5vIHJlZmVycmFsIHJld2FyZCB0byByZWdpc3Rlci5AUmV3YXJkVG9SZWdpc3RlcgAfBAUBVGhlcmUgaXMgYSBwZW5kaW5nIHJlZmVycmFsIHJld2FyZCB0aGF0IG11c3QgYmUgcmVnaXN0ZXJlZCBmaXJzdC4kTm9JbnZpdGVyACAERE5vIGludml0ZXIgZm91bmQuQEludmFsaWRTaWduYXR1cmUAIQRISW52YWxpZCBzaWduYXR1cmUuJE5vSW52aXRlcwAiBFBObyBpbnZpdGUgYXZhaWxhYmxlLjhBbHJlYWR5SW52aXRlZAAjBFhJbnZpdGUgaXMgYWxyZWFkeSBzZXQuKE5vUmVmZXJyZXIAJAR0VGhlIHJlZmVycmVyIGlzIG5vdCBhIHBlcnNvbi4wTm90UG9pUGVyc29uACUE6FRoZSBpbmRpdmlkdWFsIGlzIG5vdCBhIHBlcnNvbiByZWNvZ25pemVkIGJ5IHByb29mIG9mIGluay5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAJgSIVGhlIHByb29mIG9mIG93bmVyc2hpcCBpcyBpbnZhbGlkLmhJbnZhbGlkUmVpbWJ1cnNlbWVudFZhbHVlcwAnBJRUaGUgcmVpbWJ1cnNlbWVudCB2YWx1ZXMgYXJlIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LikLAAAECGUHCAAtCwxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXM4QXJjaGl2ZWRQbGF5ZXIELEJsb2NrTnVtYmVyATgBCCBLaWNrYWJsZQgBKGZpcnN0X2dhbWU4AQx1MzIAAThhcmNoaXZlZF9zaW5jZTgBLEJsb2NrTnVtYmVyAAAAKFVua2lja2FibGUEAShmaXJzdF9nYW1lOAEMdTMyAAEAADELDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcxhQbGF5ZXIELFBsYXlEZXBvc2l0ATULACQBKGZpcnN0X2dhbWU4AQx1MzIAAShyZWdpc3RlcmVkyAEQYm9vbAABLHNlbnRfcmVwb3J0yAEQYm9vbAABaGVhcmx5X2F0dGVuZGFuY2VfZW5hY3RtZW50OQsBgE9wdGlvbjxFYXJseUF0dGVuZGFuY2VFbmFjdG1lbnQ+AAEoeWVzX3BlcnNvbgwBCHU4AAE0bm9fbm90X3BlcnNvbgwBCHU4AAFgZXhwZWN0ZWRfbWF4X3ZvdGVfd2VpZ2h0LQMBDHUxNgABLHZvdGVfd2VpZ2h0DAEIdTgAASxjcmVkaWJpbGl0eUULAXhQbGF5ZXJDcmVkaWJpbGl0eTxQbGF5RGVwb3NpdD4AADULFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAMQBKEY6OkJhbGFuY2UAADkLBBhPcHRpb24EBFQBPQsBCBBOb25lAAAAEFNvbWUEAD0LAAABAAA9CwxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNgRWFybHlBdHRlbmRhbmNlRW5hY3RtZW50AAAIAShhdHRlbmRhbmNlyAEQYm9vbAABLGRpc3Bvc2l0aW9uQQsBRFBsYXllckRpc3Bvc2l0aW9uAABBCwxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNEUGxheWVyRGlzcG9zaXRpb24AAQwQS2VlcAAAADxBcmNoaXZlS2lja2FibGUAAQBEQXJjaGl2ZVVua2lja2FibGUAAgAARQsMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzRFBsYXllckNyZWRpYmlsaXR5BCxQbGF5RGVwb3NpdAE1CwEMHEludml0ZWQAAAAoUmVjb2duaXplZAABABxEZXBvc2l0BAA1CwEsUGxheURlcG9zaXQAAgAASQsMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzIEdhbWVJbmZvBCRBY2NvdW50SWQBBAAoARRpbmRleDgBDHUzMgABRHJlZ2lzdHJhdGlvbl9lbmRzOAEMdTMyAAFAc2h1ZmZsZV9kZWFkbGluZTgBDHUzMgABJGdhbWVfZGF0ZTgBDHUzMgABLHJlcG9ydF9lbmRzOAEMdTMyAAEUc3RhdGVNCwFQR2FtZVN0YXRlPEFjY291bnRJZD4AAThtYXhfZ3JvdXBfc2l6ZTgBDHUzMgABGHJvdW5kcwwBCHU4AAFIcGVuZGluZ19hdHRlbmRhbmNlOAEMdTMyAAFEYWlyZHJvcF9zY2hlZHVsZWTIARBib29sAABNCwxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMkR2FtZVN0YXRlBCRBY2NvdW50SWQBBAEUMFJlZ2lzdHJhdGlvbgQBRG5leHRfcGxheWVyX2luZGV4OAEMdTMyAAAAHFNodWZmbGUEARBzdGVwUQsBWFNodWZmbGVTdGVwPEFjY291bnRJZD4AAQAkUmVwb3J0aW5nBAEwcGxheWVyX2NvdW50OAEMdTMyAAIANFBsYXllclByb2Nlc3MEARBzdGVwWQsBcFBsYXllclByb2Nlc3NTdGVwPEFjY291bnRJZD4AAwAoQ2FuY2VsbGluZwQBOGxhc3RfaXRlcmF0aW9uVQsBiE9wdGlvbjxBY2NvdW50T3JQZXJzb248QWNjb3VudElkPj4ABAAAUQsMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzLFNodWZmbGVTdGVwBCRBY2NvdW50SWQBBAEQLFN0ZXAxSW5zZXJ0BAE4bGFzdF9pdGVyYXRpb25VCwGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgAAADRTdGVwMlJldHJpZXZlCAFEbmV4dF9wbGF5ZXJfaW5kZXg4AQx1MzIAAUxyZWNvZ25pemVkX2ZpbmlzaGVkyAEQYm9vbAABAExTdGVwM0NvbXB1dGVXZWlnaHRzCAE4bGFzdF9pdGVyYXRpb25VCwGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgABMHBsYXllcl9jb3VudDgBDHUzMgACAERTdGVwNEF3YWl0U2Vzc2lvbgQBMHBsYXllcl9jb3VudDgBDHUzMgADAABVCwQYT3B0aW9uBARUAWUHAQgQTm9uZQAAABBTb21lBABlBwAAAQAAWQsMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzRFBsYXllclByb2Nlc3NTdGVwBCRBY2NvdW50SWQBBAEITFN0ZXAxUHJvY2Vzc1BsYXllcnMIAThsYXN0X2l0ZXJhdGlvblULAYhPcHRpb248QWNjb3VudE9yUGVyc29uPEFjY291bnRJZD4+AAEwcGxheWVyX2NvdW50OAEMdTMyAAAARFN0ZXAyQ2xlYXJJbmRpY2VzAAEAAF0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAG0EARhWZWM8VD4AAGELAAAECAw4AGULDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAG0EARhWZWM8VD4AAGkLAAAECAwIAG0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBtQQEUwAABACxBAEYVmVjPFQ+AABxCwxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0FEVycm9yBARUAAF8LEdhbWVPbmdvaW5nAAAENEdhbWUgb25nb2luZy44Tm9SZWdpc3RyYXRpb24AAQR4Tm8gcmVnaXN0cmF0aW9uIHBoYXNlIG9uZ29pbmcuRE91dGRhdGVkR2FtZVNldHVwAAIEWFRoZSBzZXR1cCBpcyBvdXRkYXRlZC5ASW52YWxpZEdhbWVTZXR1cAADBDhJbnZhbGlkIHNldHVwLjRJbnZhbGlkUmVwb3J0AAQEPEludmFsaWQgcmVwb3J0LhhOb0dhbWUABQRATm8gZ2FtZSBvbmdvaW5nLixOb1JlcG9ydGluZwAGBGBObyByZXBvcnQgcGhhc2Ugb25nb2luZy40Tm90UmVnaXN0ZXJlZAAHBDxOb3QgcmVnaXN0ZXJlZC5EQWxyZWFkeVJlZ2lzdGVyZWQACARoUGxheWVyIGFscmVhZHkgcmVnaXN0ZXJlZC5EUmVwb3J0QWxyZWFkeVNlbnQACQRQUmVwb3J0IGFscmVhZHkgc2VudC4URWFybHkACgRsT3BlcmF0aW9uIGlzIG5vdCB2YWxpZCB5ZXQuRE5vdEtpY2thYmxlUGxheWVyAAsEmFRoZSBvcGVyYXRpb24gZXhwZWN0IGEgcGxheWVyIGFjY291bnQuQE5vQXJjaGl2ZWRQbGF5ZXIADARkTm8gYXJjaGl2ZWQgcGxheWVyIGZvdW5kLiBOb1RpY2tldAANBEBObyB0aWNrZXQgZm91bmQuJE5vSW52aXRlcwAOBFBObyBpbnZpdGUgYXZhaWxhYmxlLjhBbHJlYWR5SW52aXRlZAAPBFhJbnZpdGUgaXMgYWxyZWFkeSBzZXQuQE5vdEFjY291bnRQbGF5ZXIAEAT4Tm90IGFuIGFjY291bnQgYmFzZWQgcGxheWVyLCBleHBlY3RlZCBhbiBhY2NvdW50IGJhc2VkIHBsYXllci5oVXNlSW52aXRlQnV0QWxyZWFkeVBsYXlpbmcAEQTIVGhlIHBsYXllciBjYW4ndCB1c2UgYW4gaW52aXRlIGlmIGFscmVhZHkgcGxheWluZy5QVG9vTWFueUdhbWVTY2hlZHVsZXMAEgRBAVRoZSBudW1iZXIgb2YgZXhpc3Rpbmcgc2NoZWR1bGVzIGFuZCBuZXcgc2NoZWR1bGVzIGV4Y2VlZHMgdGhlIGNvbmZpZ3VyZWQgbGltaXQuTE5vU3VjaEdhbWVTY2hlZHVsZWQAEwQpAVRoZSBnYW1lIHRoYXQgd2FzIHN1cHBvc2VkIHRvIGJlIHJlbW92ZWQgd2FzIG5vdCBmb3VuZCBpbiBzY2hlZHVsZWQgZ2FtZXMugEludmFsaWRTdGF0ZW1lbnRBY2NvdW50U2lnbmF0dXJlABQErFRoZSBzdGF0ZW1lbnQgYWNjb3VudCBzaWduYXR1cmUgaXMgaW52YWxpZC5wU3RhdGVtZW50QWNjb3VudEFscmVhZHlJblVzZQAVBOxUaGUgc3RhdGVtZW50IGFjY291bnQgaXMgYWxyZWFkeSBpbiB1c2VkIGJ5IGFub3RoZXIgcGxheWVyLmRJbnRlcm5hbEVycm9ySW52YWxpZFN0YXRlABYEdEludGVybmFsIGVycm9yIGludmFsaWQgc3RhdGUuQEludmFsaWRHYW1lU3RhdGUAFwTwVGhlIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIGluIHRoZSBjdXJyZW50IGdhbWUgc3RhdGUuIE5vUGxheWVyABgEQE5vIHBsYXllciBmb3VuZC6QQ2Fubm90T2ZmYm9hcmRXaGlsZVJlZ2lzdGVyZWRGb3JHYW1lABkE3FRoZSBwbGF5ZXIgY2Fubm90IG9mZmJvYXJkIHdoaWxlIHJlZ2lzdGVyZWQgZm9yIGEgZ2FtZS4wSW52YWxpZFN0YXRlABoENEludmFsaWQgc3RhdGVISW52YWxpZFBsYXlEZXBvc2l0ABsE5GBzZXRfcGxheV9kZXBvc2l0YDogdGhlIHN1cHBsaWVkIGFtb3VudCBtdXN0IGJlIG5vbi16ZXJvLohJbnZhbGlkQWlyZHJvcFZyZlZhcmlhbnRGb3JBY2NvdW50ABwAmEludmFsaWRBaXJkcm9wVnJmVmFyaWFudEZvclJlY29nbml0aW9uAB0AVE5vdEVsaWdpYmxlRm9yQWlyZHJvcAAeCFUBYGNsYWltX2FpcmRyb3BgOiB0aGUgY2xhaW1hbnQgaXMgbm90IHJlY29nbml6ZWQgaW4gcGFsbGV0LXNjb3JlLCBvciB0aGVpciBtb3N0IHJlY2VudPRhdHRlbmRlZCBnYW1lIGRvZXMgbm90IG1hdGNoIHRoZSBgZ2FtZV9pbmRleGAgb2YgdGhlIGFpcmRyb3AuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnULDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMsUGFydGljaXBhbnQEHEJhbGFuY2UBxAAkARRzY29yZTgBDHUzMgABGHN0cmVha3kLARhTdHJlYWsAAUhhdHRlbmRhbmNlX2hpc3Rvcnl9CwFEQXR0ZW5kYW5jZUhpc3RvcnkAARhjcmVkaXTEARxCYWxhbmNlAAEoY2FzaGVkX291dMgBEGJvb2wAAUhyZWFjaGVkX3BlcnNvbmhvb2TIARBib29sAAFsaGFzX2V2ZXJfcmVhY2hlZF9wZXJzb25ob29kyAEQYm9vbAABLHJlY29nbml0aW9ugQsBLFJlY29nbml0aW9uAAFIbGFzdF9hdHRlbmRlZF9nYW1lCQMBLE9wdGlvbjx1MzI+AAB5CwxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzGFN0cmVhawABCCBBdHRlbmRlZAQAOAEMdTMyAAAAGEFic2VudAQAOAEMdTMyAAEAAH0LDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXNEQXR0ZW5kYW5jZUhpc3RvcnkAAAQADAEIdTgAAIELDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMsUmVjb2duaXRpb24AARBQRXh0ZXJuYWxseVJlY29nbml6ZWQAAAA0Tm90UmVjb2duaXplZAABACRTdXNwZW5kZWQEACgBKFBlcnNvbmFsSWQAAgAoUmVjb2duaXplZAQAKAEoUGVyc29uYWxJZAADAACFCwAABAg4ZQcAiQsMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyxSb3VuZFBheW91dAQcQmFsYW5jZQHEABABRHJlbWFpbmluZ19iYWxhbmNlxAEcQmFsYW5jZQABLHBvaW50X3ByaWNlxAEcQmFsYW5jZQABJHJlbWFpbmRlcsQBHEJhbGFuY2UAATB0b3RhbF9wb2ludHM4AQx1MzIAAI0LDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMkUm91bmRJbmZvCCxCbG9ja051bWJlcgE4HEJhbGFuY2UBxAAIASRmaW5pc2hfYXQ4ASxCbG9ja051bWJlcgABGGNyZWRpdMQBHEJhbGFuY2UAAJELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBlQsEUwAABACZCwEYVmVjPFQ+AACVCwxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzOFBheW91dFNjaGVkdWxlCBxCYWxhbmNlAcQsQmxvY2tOdW1iZXIBOAAMASRyZW1haW5pbmc4AQx1MzIAAUBhbW91bnRfcGVyX3JvdW5kxAEcQmFsYW5jZQABIGR1cmF0aW9uOAEsQmxvY2tOdW1iZXIAAJkLAAAClQsAnQsMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQURXJyb3IEBFQAAWwkTm90UGVyc29uAAAEjFRoZSBjYWxsaW5nIG9yaWdpbiBpcyBub3QgYSBwZXJzb24uXEhhc05vdFJlYWNoZWRQZXJzb25ob29kAAEEjFRoZSBwZXJzb24gZGlkbid0IHJlYWNoIHBlcnNvbmhvb2QuIE5vUmV3YXJkAAIEUE5vIHJld2FyZCBhdmFpbGFibGUuHE5vU2NvcmUAAwSMVGhlIHBlcnNvbiBoYXMgbm8gYXNzb2NpYXRlZCBzY29yZS4oTm9TY2hlZHVsZQAEBHRObyBwYXlvdXQgc2NoZWR1bGUgYXZhaWxhYmxlLkBUb29NYW55U2NoZWR1bGVzAAUEtFRvbyBtYW55IHBheW91dCBzY2hlZHVsZXMgYWxyZWFkeSByZWdpc3RlcmVkLihSZWNvZ25pemVkAAYEBQFUaGUgcGFydGljaXBhbnQgaXMgcmVjb2duaXplZCBvciBoYXMgYmVlbiByZWNvZ25pemVkIGFzIGEgcGVyc29uLjxDYXNoT3V0Q29vbGRvd24ABwTMVGhlIHBhcnRpY2lwYW50IGhhcyBhbHJlYWR5IGNhc2hlZCBvdXQgaW4gdGhpcyBlcmEuYFJvdW5kT25Hb2luZ09yTm9TY2hlZHVsZQAIBJRUaGUgcm91bmQgaXMgb24gZ29pbmcgb3Igbm8gc2NoZWR1bGUuHE5vUm91bmQACQSEVGhlIHBheW91dCByb3VuZCBoYXMgbm90IHN0YXJ0ZWQubEJhZE9yaWdpbk5vdFBlcnNvbk5vdFNpZ25lZAAKBNBUaGUgb3JpZ2luIGlzIG5laXRoZXIgYSBwZXJzb24gbm9yIGEgc2lnbmVkIGFjY291bnQuwEJhZE9yaWdpbk5vdFBlcnNvbk5vdFNpZ25lZE5vdEFjY291bnRQYXJ0aWNpcGFudAALBD0BVGhlIG9yaWdpbiBpcyBuZWl0aGVyIGEgcGVyc29uIG5vciBhIHNpZ25lZCBhY2NvdW50IG5vciBhbiBhY2NvdW50IHBhcnRpY2lwYW50LpxCYWRPcmlnaW5Ob3RTaWduZWROb3RBY2NvdW50UGFydGljaXBhbnQADAQJAVRoZSBvcmlnaW4gaXMgbmVpdGhlciBhIHNpZ25lZCBhY2NvdW50IG5vciBhbiBhY2NvdW50IHBhcnRpY2lwYW50LlBBbHJlYWR5UGFydGljaXBhdGluZwANBKRUaGUgcGFydGljaXBhbnQgaXMgYWxyZWFkeSBwYXJ0aWNpcGF0aW5nLkRLZXlNdXN0QmVQcm92aWRlZAAOBGRUaGUga2V5IG11c3QgYmUgcHJvdmlkZWQuUEtleU11c3ROb3RCZVByb3ZpZGVkAA8EdFRoZSBrZXkgbXVzdCBub3QgYmUgcHJvdmlkZWQuUEhhc1JlYWNoZWRQZXJzb25ob29kABAEjEhhcyByZWFjaGVkIHBlcnNvbmhvb2QgaW4gdGhlIHBhc3QuXEludmFsaWRQcm9vZk9mT3duZXJzaGlwABEEiFRoZSBwcm9vZiBvZiBvd25lcnNoaXAgaXMgaW52YWxpZC44V2luZG93VG9vTGFyZ2UAEgQ9AUFuIGFic2VuY2UgZ3JhY2UgdGllciBoYXMgYSB3aW5kb3cgZXhjZWVkaW5nIHRoZSBtYXhpbXVtIHRyYWNrYWJsZSBoaXN0b3J5ICg4KS5UQWxsb3dlZE1pc3Nlc1Rvb0xhcmdlABMEIQFUaGUgYWxsb3dlZCBtaXNzZXMgbXVzdCBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIHdpbmRvdyAob3IgYm90aCB6ZXJvKS5gQWJzZW5jZVNjaGVkdWxlTm90U29ydGVkABQEMQFBYnNlbmNlLWdyYWNlIHRpZXJzIG11c3QgYmUgc29ydGVkIGJ5IGFzY2VuZGluZyBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAuXFBlcnNvbmhvb2RTY2hlZHVsZUVtcHR5ABUEBQFUaGUgcGVyc29uaG9vZC10aHJlc2hvbGQgc2NoZWR1bGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSB0aWVyLnBQZXJzb25ob29kU2NvcmVUaHJlc2hvbGRaZXJvABYE3EEgcGVyc29uaG9vZC10aHJlc2hvbGQgdGllciBoYXMgYHNjb3JlX3RocmVzaG9sZCA9PSAwYC6AUGVyc29uaG9vZFNjb3JlVGhyZXNob2xkVG9vTGFyZ2UAFwT8QSBwZXJzb25ob29kLXRocmVzaG9sZCB0aWVyIGV4Y2VlZHMgYE1BWF9QRVJTT05IT09EX1RIUkVTSE9MRGAubFBlcnNvbmhvb2RTY2hlZHVsZU5vdFNvcnRlZAAYCNhQZXJzb25ob29kLXRocmVzaG9sZCB0aWVycyBtdXN0IGJlIHNvcnRlZCBieSBhc2NlbmRpbmdwYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGRgLnhQZXJzb25ob29kU2NoZWR1bGVOb3RNb25vdG9uaWMAGQgRAVBlcnNvbmhvb2QtdGhyZXNob2xkIGBzY29yZV90aHJlc2hvbGRgIHZhbHVlcyBtdXN0IGJlIG5vbi1kZWNyZWFzaW5n9GFjcm9zcyB0aWVycyAoYSBsYXJnZXIgcG9wdWxhdGlvbiBtdXN0IG5vdCBoYXZlIGEgbG93ZXIgYmFyKS5oUGVyc29uaG9vZFNjaGVkdWxlTm90VG90YWwAGgj0VGhlIGxhc3QgcGVyc29uaG9vZC10aHJlc2hvbGQgdGllciBtdXN0IGNvdmVyIGFsbCBwb3B1bGF0aW9uc6goYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQgPT0gdTMyOjpNQVhgKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuoQsMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0GFJlY29yZAQMS2V5AQgACAEMa2V5CAEMS2V5AAEkc3VzcGVuZGVkyAEQYm9vbAAApQsMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0FEVycm9yBARUAAEQJE5vdFBlcnNvbgAABNxUaGUgcGVyc29uYWwgSUQgZG9lcyBub3QgYmVsb25nIHRvIGEgcmVjb2duaXplZCBwZXJzb24uME5vdFN1c3BlbmRlZAABBNhUaGUgcGVyc29uYWwgSUQgZG9lcyBub3QgYmVsb25nIHRvIGEgc3VzcGVuZGVkIHBlcnNvbi4sTm90UmVzZXJ2ZWQAAgTkVGhlIHBlcnNvbmFsIElEIGlzIG5vdCByZXNlcnZlZCBhbmQgYXdhaXRpbmcgcmVjb2duaXRpb24uNFRvb01hbnlQZW9wbGUAAwTAVGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbWFueSBwZW9wbGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqkLDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUUdHlwZXM4TGl0ZVBlcnNvbkluZm8IGE1lbWJlcgEIGE1ldGhvZAGtCwAIATByaW5nX3ZyZl9rZXkIARhNZW1iZXIAARhtZXRob2StCwEYTWV0aG9kAACtCwxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlFHR5cGVzRFJlY29nbml0aW9uTWV0aG9kBBxBY2NvdW50AQQBBDBVbmlxdWVEZXZpY2UEAAQBHEFjY291bnQAAAAAsQsMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRhwYWxsZXQURXJyb3IEBFQAASxYTm9BdHRlc3RhdGlvbkFsbG93YW5jZQAABGRObyBhdHRlc3RhdGlvbiBhbGxvd2FuY2UubEludmFsaWRBdHRlc3RhdGlvblNpZ25hdHVyZQABBPBUaGUgc2lnbmF0dXJlIGNyZWF0ZWQgYnkgdGhlIGNhbmRpZGF0ZSdzIGFjY291bnQgaXMgaW52YWxpZC5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAAgQFAVRoZSBzaWduYXR1cmUgY3JlYXRlZCBieSB0aGUgY2FuZGlkYXRlJ3MgcmluZyB2cmYga2V5IGlzIGludmFsaWQuREFscmVhZHlSZWdpc3RlcmVkAAMEkFRoZSBjYW5kaWRhdGUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLjxLZXlBbHJlYWR5SW5Vc2UABATwVGhlIHJpbmcgVlJGIGtleSBpcyBhbHJlYWR5IGVucm9sbGVkIGJ5IGFub3RoZXIgbGl0ZSBwZXJzb24uMEFjY291bnRJblVzZQAFBHhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGluIHVzZS5YQWxpYXNBY2NvdW50QWxyZWFkeVNldAAGBORUaGUgYWxpYXMgPC0+IGFjY291bnQgbWFwcGluZyBpcyBhbHJlYWR5IHNldCBhbmQgY3VycmVudC5IQWxpYXNBY2NvdW50Tm90U2V0AAcEpFRoZSBhbGlhcyA8LT4gYWNjb3VudCBtYXBwaW5nIGlzIG5vdCBzZXQuTENhbGxCbG9ja091dE9mUmFuZ2UACAQhAVRoZSByZXF1ZXN0ZWQgYWxpYXMgc2V0dXAgYmxvY2sgd2luZG93IGlzIGludmFsaWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLkxJbnZhbGlkQWxpYXNDb250ZXh0AAkEdFRoZSBhbGlhcyBjb250ZXh0IGlzIGludmFsaWQueExpdGVQZW9wbGVDb2xsZWN0aW9uTm90Q3JlYXRlZAAKBPxUaGUgbGl0ZSBwZW9wbGUgbWVtYmVyIGNvbGxlY3Rpb24gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQutQsMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXMwQ29uc3VtZXJJbmZvAAAQAThpZGVudGlmaWVyX2tleUUEAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABNGZ1bGxfdXNlcm5hbWURBQFAT3B0aW9uPFVzZXJuYW1lPgABNGxpdGVfdXNlcm5hbWVJBAEgVXNlcm5hbWUAASxjcmVkaWJpbGl0ebkLASxDcmVkaWJpbGl0eQAAuQsMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXMsQ3JlZGliaWxpdHkAAQgQTGl0ZQAAABhQZXJzb24MARRhbGlhcwgBFEFsaWFzAAEsbGFzdF91cGRhdGUoAQx1NjQAARxkZW1vdGVkyAEQYm9vbAABAAC9CwAABAjBCwgAwQsMNGluZGl2X3N1cHBvcnQUdXRpbHMwQmlnRW5kaWFuVTMyAAMEAAAADAQZAUEgdTMyIGVuY29kZWQgaW4gYmlnLWVuZGlhbiBmb3JtYXQgZm9yIGNvcnJlY3QgbGV4aWNvZ3JhcGhpYyBvcmRlcmluZy7FCwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc1xTdG10U3RvcmVBbGxvd2FuY2VFbnRyeQQEVAAADAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABDHNlcTgBDHUzMgABFHNpbmNlKAEMdTY0AADJCwAABAgEzQsAzQsAAAQMwQs4CADRCwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc2RGcmllbmRSZXF1ZXN0UmVnaXN0cmF0aW9uBBxBY2NvdW50AQQACAEoYWNjb3VudF9pZAQBHEFjY291bnQAASRyZWZlcmVuY2UdBQFYRnJpZW5kUmVxdWVzdFJlZmVyZW5jZQAA1QsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHZCwRTAAAEAN0LARhWZWM8VD4AANkLDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzVFJlc2VydmF0aW9uUXVldWVFbnRyeQQcQWNjb3VudAEEAAgBHGFjY291bnQEARxBY2NvdW50AAEkam9pbmVkX2F0KAEMdTY0AADdCwAAAtkLAOELCEhzcF9zdGF0ZW1lbnRfc3RvcmVIU3RhdGVtZW50QWxsb3dhbmNlAAAIASRtYXhfY291bnQ4AQx1MzIAASBtYXhfc2l6ZTgBDHUzMgAA5QsMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMYcGFsbGV0FEVycm9yBARUAAFgPEludmFsaWRVc2VybmFtZQAABJxVc2VybmFtZSBkb2VzIG5vdCBmaXQgdGhlIHJlcXVpcmVtZW50cy40VXNlcm5hbWVUYWtlbgABBGhVc2VybmFtZSBpcyBhbHJlYWR5IHRha2VuLkRBbHJlYWR5UmVnaXN0ZXJlZAACBHxDb25zdW1lciBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuXEludmFsaWRQcm9vZk9mT3duZXJzaGlwAAMEnFByb3ZpZGVkIHByb29mIG9mIG93bmVyc2hpcCBpcyBpbnZhbGlkLjROb3RSZWdpc3RlcmVkAAQEnFBlcnNvbiBpcyBub3QgcmVnaXN0ZXJlZCBhcyBhIGNvbnN1bWVyLjROb3RGdWxsUGVyc29uAAUEeENvbnN1bWVyIGlzIG5vdCBhIGZ1bGwgcGVyc29uLjRUb3VjaE5vdFJlYWR5AAYEzEF0dGVtcHRlZCB0byB1cGRhdGUgcGVyc29uIGF1dGhvcml6YXRpb24gdG9vIGVhcmx5LjROb1Jlc2VydmF0aW9uAAcEaFJlc2VydmF0aW9uIGlzIG5vdCBhY3RpdmUuUE5vdFJlc2VydmF0aW9uSG9sZGVyAAgEFQFUaGUgbGlua2VkIGxpdGUgaWRlbnRpdHkgaXMgbm90IHRoZSBhY3RpdmUgaG9sZGVyIG9mIHRoZSByZXNlcnZhdGlvbi5gVXNlcm5hbWVSZXNlcnZhdGlvblRha2VuAAkE5FRoZSB1c2VybmFtZSBpbiB0aGUgcmVzZXJ2YXRpb24gcmVxdWVzdCBpcyBhbHJlYWR5IHRha2VuLkBSZXNlcnZhdGlvbkZyZXNoAAoEgFRoZSByZXNlcnZhdGlvbiBoYXMgbm90IGV4cGlyZWQuQE5vTGlua2VkSWRlbnRpdHkACwScVGhlcmUgaXMgbm8gbGl0ZSBjb25zdW1lciB0byBiZSBsaW5rZWQuNEFscmVhZHlMaW5rZWQADAT4VGhlIGxpdGUgY29uc3VtZXIgaXMgYWxyZWFkeSBsaW5rZWQgdG8gYSBmdWxsIHBlcnNvbiBjb25zdW1lci5QUGVyc29uQXV0aE5vdEV4cGlyZWQADQS8VGhlIHBlcnNvbidzIGF1dGhvcml6YXRpb24gaGFzIG5vdCBleHBpcmVkIHlldC44QWxyZWFkeURlbW90ZWQADgSQVGhlIHBlcnNvbiBoYXMgYWxyZWFkeSBiZWVuIGRlbW90ZWQuJFF1ZXVlRnVsbAAPBIBRdWV1ZSBmb3IgdGhpcyB1c2VybmFtZSBpcyBmdWxsLihOb3RJblF1ZXVlABAEuEFjY291bnQgaXMgbm90IGluIHRoZSBxdWV1ZSBmb3IgdGhpcyB1c2VybmFtZS5UQWxyZWFkeUhhc1Jlc2VydmF0aW9uABEE3EFjY291bnQgYWxyZWFkeSBoYXMgYSByZXNlcnZhdGlvbiBmb3IgYW5vdGhlciB1c2VybmFtZS5wSW52YWxpZEZyaWVuZFJlcXVlc3RTZXF1ZW5jZQASBNBGcmllbmQgcmVxdWVzdCBzZXF1ZW5jZSBpcyBpbnZhbGlkIGZvciB0aGUgY29uc3VtZXIuaEludmFsaWRGcmllbmRSZXF1ZXN0UGVyaW9kABMEwEZyaWVuZCByZXF1ZXN0IHBlcmlvZCBpcyBub3QgdGhlIGN1cnJlbnQgcGVyaW9kLoxGcmllbmRSZXF1ZXN0UmVnaXN0cmF0aW9uTm90RXhwaXJlZAAUBLxGcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gaXMgbm90IGV4cGlyZWQgeWV0LphGcmllbmRSZXF1ZXN0UmVnaXN0cmF0aW9uQWxyZWFkeUV4aXN0cwAVBAUBRnJpZW5kIHJlcXVlc3QgcmVnaXN0cmF0aW9uIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgYWxpYXMvY29udGV4dC5wU3RtdFN0b3JlUmVwbGFjZW1lbnRUb29FYXJseQAWBBkBVGhlIHJlcGxhY2VtZW50IGNvb2xkb3duIGhhcyBub3QgZWxhcHNlZCBzaW5jZSB0aGUgZW50cnkgd2FzIGxhc3Qgc2V0LoxMb25nVGVybVN0b3JhZ2VDbGVhbnVwTGltaXRFeGNlZWRlZAAXBOxUaGUgcHJvdmlkZWQgYGxpbWl0YCBleGNlZWRzIGBMb25nVGVybVN0b3JhZ2VDbGVhbnVwTGltaXRgLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7pCwAABAglBTgA7QsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHxCwRTAAAEAPkLARhWZWM8VD4AAPELDGxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXIYcGFsbGV0OFVuY2hlY2tlZENodW5rBARUAAAEAPULASBUOjpDaHVuawAA9QsMKHZlcmlmaWFibGUQcmluZyxTdGF0aWNDaHVuawADYAAAAAwA+QsAAALxCwD9CwxsaW5kaXZfcGFsbGV0X2NodW5rc19tYW5hZ2VyGHBhbGxldBRFcnJvcgQEVAABDDRDaHVua05vdEZvdW5kAAAEoFRoZSByZXF1ZXN0ZWQgY2h1bmsgaW5kZXggZG9lc24ndCBleGlzdC40SW52YWxpZENodW5rcwABBLBUaGUgcHJvdmlkZWQgY2h1bmsgZGF0YSBjb3VsZG4ndCBiZSBkZWNvZGVkLkRJbnZhbGlkQ2h1bmtSYW5nZQACBNxUaGUgc3RhcnQgaW5kZXggaXNuJ3Qgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBlbmQgaW5kZXguBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgEMDFBpbmRpdl9wYWxsZXRfbWVtYmVycxR0eXBlczhDb2xsZWN0aW9uSW5mbwgcQWNjb3VudAEEIExvY2F0aW9uAeAAEAEUb3duZXIFDAGIQ29sbGVjdGlvbk93bmVyPEFjY291bnQsIExvY2F0aW9uPgABEG1vZGUJDAEgUmluZ01vZGUAASRyaW5nX3NpemUlBQEwUmluZ0V4cG9uZW50AAFQc2VsZl9pbmNsdXNpb25fZGVsYXkVAwEsT3B0aW9uPHU2ND4AAAUMDFBpbmRpdl9wYWxsZXRfbWVtYmVycxR0eXBlczxDb2xsZWN0aW9uT3duZXIIHEFjY291bnQBBCBMb2NhdGlvbgHgAQggRXh0ZXJuYWwEAOABIExvY2F0aW9uAAAAFExvY2FsBAAEARxBY2NvdW50AAEAAAkMEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5IFJpbmdNb2RlAAEIKEFwcGVuZE9ubHkAAAAgRmxleGlibGUAAQAADQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAXQQBGFZlYzxUPgAAEQwAAAQICDgAFQwMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzIFJpbmdSb290BARUAAAMARByb290GQwBME1lbWJlcnNPZjxUPgABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABMGludGVybWVkaWF0ZR0MAURJbnRlcm1lZGlhdGVPZjxUPgAAGQwMKHZlcmlmaWFibGUQcmluZ0RNZW1iZXJzQ29tbWl0bWVudAADAAMAAAwAHQwMKHZlcmlmaWFibGUQcmluZyhNZW1iZXJzU2V0AANQAwAADAAhDAAABAwIOMELACUMDFBpbmRpdl9wYWxsZXRfbWVtYmVycxR0eXBlcxxPbGRSb290BARUAAAIARByb290GQwBME1lbWJlcnNPZjxUPgABLGFyY2hpdmVkX2F0KAEMdTY0AAApDAAABAwIODgALQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAXQQBGFZlYzxUPgAAMQwQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkoUmluZ1N0YXR1cwAADAEUdG90YWw4AQx1MzIAASBpbmNsdWRlZDgBDHUzMgABPGltbXV0YWJsZV9zaW5jZRUDASxPcHRpb248dTY0PgAANQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE4BFMAAAQAbQQBGFZlYzxUPgAAOQwAAAQICAgAPQwQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkwUmluZ1Bvc2l0aW9uAAEMKE9uYm9hcmRpbmcIAShxdWV1ZV9wYWdlOAEkUGFnZUluZGV4AAEkcXVldWVkX2F0KAEMdTY0AAAAIEluY2x1ZGVkDAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABJHJpbmdfcGFnZTgBJFBhZ2VJbmRleAABNHJpbmdfcG9zaXRpb244AQx1MzIAAQAkU3VzcGVuZGVkAAIAAEEMEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5QFJpbmdNZW1iZXJzU3RhdGUAAAQBEG1vZGVFDAFAUmluZ011dGF0aW9uTW9kZQAARQwQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHlAUmluZ011dGF0aW9uTW9kZQABCChBcHBlbmRPbmx5AAAAIE11dGF0aW5nBAAMAQh1OAABAABJDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABABdBAEYVmVjPFQ+AABNDAxQaW5kaXZfcGFsbGV0X21lbWJlcnMYcGFsbGV0FEVycm9yBARUAAFwJE5vdE1lbWJlcgAABNBUaGUgc3VwcGxpZWQgaWRlbnRpZmllciBkb2VzIG5vdCByZXByZXNlbnQgYSBtZW1iZXIuGE5vUm9vdAABBERSaW5nIGhhcyBubyByb290LjBJbnZhbGlkUHJvb2YAAgRUVGhlIHByb29mIGlzIGludmFsaWQuKEluY29tcGxldGUAAwQFAVRoZSByb290IGNhbm5vdCBiZSBmaW5hbGl6ZWQgYXMgdGhlcmUgYXJlIHN0aWxsIHVucHVzaGVkIG1lbWJlcnMuOFRvb01hbnlNZW1iZXJzAAQEiFRvbyBtYW55IG1lbWJlcnMgaGF2ZSBiZWVuIHB1c2hlZC48S2V5QWxyZWFkeUluVXNlAAUElEtleSBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIG1lbWJlci4sS2V5Tm90Rm91bmQABgSgVGhlIG9sZCBrZXkgd2FzIG5vdCBmb3VuZCB3aGVuIGV4cGVjdGVkLjBDb3VsZE5vdFB1c2gABwSQQ291bGQgbm90IHB1c2ggbWVtYmVyIGludG8gdGhlIHJpbmcuLEludmFsaWRSaW5nAAgErFJpbmcgY2Fubm90IGJlIG1lcmdlZCBpZiBpdCdzIHRoZSB0b3AgcmluZy5IU3VzcGVuc2lvbnNQZW5kaW5nAAkE5FJpbmcgY2Fubm90IGJlIGJ1aWx0IHdoaWxlIHRoZXJlIGFyZSBzdXNwZW5zaW9ucyBwZW5kaW5nLlxSaW5nQWJvdmVNZXJnZVRocmVzaG9sZAAKBNRSaW5nIGNhbm5vdCBiZSBtZXJnZWQgaWYgaXQncyBub3QgYmVsb3cgMS8yIGNhcGFjaXR5LkhJbnZhbGlkU3VzcGVuc2lvbnMACwSgU3VzcGVuc2lvbiBpbmRpY2VzIHByb3ZpZGVkIGFyZSBpbnZhbGlkLkBOb1JlbW92YWxTZXNzaW9uAAwELQFBIG11dGF0aW5nIGFjdGlvbiB3YXMgcXVldWVkIHdoZW4gdGhlcmUgd2FzIG5vIHJlbW92YWwgc2Vzc2lvbiBpbiBwcm9ncmVzcy5sQ291bGROb3RTdGFydFJlbW92YWxTZXNzaW9uAA0EnEEgcmVtb3ZhbCBzZXNzaW9uIGNvdWxkIG5vdCBiZSBzdGFydGVkLmBSZW1vdmFsU2Vzc2lvbkluUHJvZ3Jlc3MADgToQ2Fubm90IG1lcmdlIHJpbmdzIHdoaWxlIGEgcmVtb3ZhbCBzZXNzaW9uIGlzIGluIHByb2dyZXNzLkxLZXlBbHJlYWR5U3VzcGVuZGVkAA8IVQFJbnZhbGlkIHN1c3BlbnNpb24gb2YgYSBrZXkgYmVsb25naW5nIHRvIGEgbWVtYmVyIHdob3NlIGluZGV4IGluIHRoZSByaW5nIGhhcyBhbHJlYWR5uGJlZW4gaW5jbHVkZWQgaW4gdGhlIHBlbmRpbmcgc3VzcGVuc2lvbnMgbGlzdC5USW52YWxpZE9uYm9hcmRpbmdTaXplABAE6FRoZSBvbmJvYXJkaW5nIHNpemUgbXVzdCBub3QgZXhjZWVkIHRoZSBtYXhpbXVtIHJpbmcgc2l6ZS5ASW52YWxpZE1lbWJlcktleQARBKxUaGUgbWVtYmVyIGtleSBpcyBub3QgdmFsaWQgZm9yIHRoZSBjcnlwdG8uSENvbGxlY3Rpb25Ob3RGb3VuZAASBHhUaGUgY29sbGVjdGlvbiBkb2VzIG5vdCBleGlzdC5cQ29sbGVjdGlvbkFscmVhZHlFeGlzdHMAEwR4VGhlIGNvbGxlY3Rpb24gYWxyZWFkeSBleGlzdHMuSFRvb01hbnlDb2xsZWN0aW9ucwAUBJBUb28gbWFueSBjb2xsZWN0aW9ucyBmb3IgdGhpcyBvd25lci5oSW52YWxpZFJpbmdTaXplRm9yRmxleGlibGUAFQQRAUZsZXhpYmxlIGNvbGxlY3Rpb25zIG11c3QgdXNlIHRoZSBNYXhGbGV4aWJsZVJpbmdFeHBvbmVudCByaW5nIHNpemUuTEludmFsaWRSaW5nRXhwb25lbnQAFgSMVGhlIHJpbmcgZXhwb25lbnQgaXMgbm90IHN1cHBvcnRlZC5MUHJlbWF0dXJlT25ib2FyZGluZwAXBLRJbnN1ZmZpY2llbnQgbWVtYmVycyBpbiB0aGUgcXVldWUgdG8gb25ib2FyZC5sQ29sbGVjdGlvbk1hcmtlZEZvckRlbGV0aW9uABgE9FRoZSBjb2xsZWN0aW9uIGlzIG1hcmtlZCBmb3IgZGVsZXRpb24gYW5kIGNhbm5vdCBiZSBtb2RpZmllZC5ITm90Q29sbGVjdGlvbk93bmVyABkEuFRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgY29sbGVjdGlvbi40Tm90T25ib2FyZGluZwAaBKhUaGUgbWVtYmVyIGlzIG5vdCBpbiB0aGUgb25ib2FyZGluZyBxdWV1ZS44Tm90aGluZ1RvQnVpbGQAGwR8VGhlcmUgaXMgbm8gcmluZyByb290IHRvIGJ1aWxkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5RDAxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0KExvY2tlZENvaW4AAAgBGHJlYXNvblUMAShMb2NrUmVhc29uAAEUdW50aWwoAQx1NjQAAFUMDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQoTG9ja1JlYXNvbgABBDhGYWlsZWREaXNwYXRjaAQBHHJldHJpZXMMAQh1OAAAAABZDAAABAx1AzgIAF0MAAAECHUDOABhDAxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0FEVycm9yBARUAAGEUE1lbWJlcktleUFscmVhZHlVc2VkAAAAQEludmFsaWRNZW1iZXJLZXkAAQA0SW50ZXJuYWxFcnJvcgACAFxSZWN5Y2xlckFscmVhZHlVbmxvYWRlZAADAFBJbnZhbGlkQ29uc29saWRhdGlvbgAEAExDb25zb2xpZGF0aW9uVG9vQmlnAAUAPENvaW5WYWx1ZVRvb0JpZwAGAERDb2luVmFsdWVUb29TbWFsbAAHAFhDb2luVmFsdWVJc0xlc3NUaGFuRmVlAAgATENvaW5WYWx1ZU91dE9mQm91bmQACQBgTG9zc3lDb2luVmFsdWVDb252ZXJzaW9uAAoIIQFUaGUgY29pbiB2YWx1ZSBjYW5ub3QgYmUgbG9zc2xlc3NseSBjb252ZXJ0ZWQgdG8gYW4gYXNzZXQgYW1vdW50IGJlY2F1c2X0YFVuZGVybHlpbmdBc3NldFVuaXRgIGlzIG5vdCBldmVubHkgZGl2aXNpYmxlIGJ5IGAyXnx2YWx1ZXxgLkRJbnZhbGlkQWxpYXNQcm9vZgALAExOb1VubG9hZGluZ1JlY3ljbGVyAAwAVFByb29mQW5kQWxpYXNNaXNtYXRjaAANADhOb3RoaW5nVG9CdWlsZAAOADBUb29NYW55UmluZ3MADwBUQWRkcmVzc0FscmVhZHlIYXNDb2luABAAXEludmFsaWRQcm9vZk9mT3duZXJzaGlwABEALEVtcHR5SW5wdXRzABIAQFJlY3ljbGVyTWlzbWF0Y2gAEwQJAVRoZSBmZWUgcmVjeWNsZXIgaW4gdGhlIG9yaWdpbiBkb2VzIG5vdCBtYXRjaCB0aGUgY2FsbCdzIHJlY3ljbGVyLmBJbnN1ZmZpY2llbnRVbmxvYWRGb3JGZWUAFAS8VGhlIHRvdGFsIHVubG9hZGVkIGFtb3VudCBpcyBsZXNzIHRoYW4gdGhlIGZlZS5EQWxpYXNOb3RQcmVtYXJrZWQAFQQ5AVRoZSBmaXJzdCBhbGlhcyB3YXMgbm90IHByZS1tYXJrZWQgYnkgZXh0ZW5zaW9uIChyZXF1aXJlZCBmb3IgRnJvbU91dHB1dCBmZWUpLlxJbnZhbGlkUmVjeWNsZXJSZXZpc2lvbgAWBEkBVGhlIHJlY3ljbGVyIHJldmlzaW9uIGRvZXMgbm90IG1hdGNoIChyZWN5Y2xlciBtYXkgbm90IGV4aXN0IG9yIGhhcyBiZWVuIHJlYnVpbHQpLjBJbnZhbGlkU3BsaXQAFwBERnJlc2hDb2luUmVxdWlyZWQAGATIVGhpcyBvcGVyYXRpb24gcmVxdWlyZXMgYSBmcmVzaCBjb2luIChgYWdlID09IDBgKS5oQ2Fubm90Q29udmVydE5hdGl2ZVRvQXNzZXQAGQBoTWF4RmVlTm90QWxsb3dlZEZvclByZXBhaWQAGgS8V2hlbiB1c2luZyBQcmVwYWlkIGZlZSBtb2RlLCBtYXhfZmVlIG11c3QgYmUgMC5ITWF4RmVlRXhjZWVkc0lucHV0ABsEqFRoZSBtYXhfZmVlIGV4Y2VlZHMgdGhlIHRvdGFsIGlucHV0IHZhbHVlLjRJbnZhbGlkTWF4RmVlABwE2FRoZSBtYXggZmVlIGFyZ3VtZW50IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzLnhDYW5ub3RDcmVhdGVSZWN5Y2xlckNvbGxlY3Rpb24AHQQpAVRoZSByZWN5Y2xlciBjb2xsZWN0aW9uIGRvZXMgbm90IGV4aXN0IGFuZCBjb3VsZCBub3QgYmUgY3JlYXRlZCBvbi1kZW1hbmQuNEFzc2V0SWROb3RTZXQAHgS0VGhlIHVuZGVybHlpbmcgYXNzZXQgaWQgaGFzIG5vdCBiZWVuIHNldCB5ZXQuREFzc2V0SWRBbHJlYWR5U2V0AB8EDQFUaGUgdW5kZXJseWluZyBhc3NldCBpZCBoYXMgYWxyZWFkeSBiZWVuIHNldCBhbmQgY2Fubm90IGJlIGNoYW5nZWQuMFVua25vd25Bc3NldAAgBCUBVGhlIHByb3Bvc2VkIHVuZGVybHlpbmcgYXNzZXQgaWQgZG9lcyBub3QgZXhpc3QgaW4gW2BDb25maWc6OkZ1bmdpYmxlc2BdLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5lDAAABAgJAwkDAGkMBBhPcHRpb24EBFQBMQwBCBBOb25lAAAAEFNvbWUEADEMAAABAABtDAQYT3B0aW9uBARUAXEDAQgQTm9uZQAAABBTb21lBABxAwAAAQAAcQwEGE9wdGlvbgQEVAF1AwEIEE5vbmUAAAAQU29tZQQAdQMAAAEAAHUMDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchR0eXBlczhTdWJzY3JpYmVySW5mbwQEVAAADAEsY29sbGVjdGlvbnN5BQEZAUJvdW5kZWRWZWM8KElkZW50aWZpZXIsIFJpbmdFeHBvbmVudCksIFQ6Ok1heENvbGxlY3Rpb25zUGVyU3Vic2NyaWJlcj4AAUhsYXN0X2luaXRfc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgABMHBhbGxldF9pbmRleAwBCHU4AAB5DAx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIUdHlwZXMsUGFnaW5nU3RhdGUELEJsb2NrTnVtYmVyATgADAEod3JpdGVfcGFnZS0DAQx1MTYAASRzZW5kX3BhZ2UtAwEMdTE2AAFEbGFzdF91cGRhdGVfYmxvY2s4ASxCbG9ja051bWJlcgAAfQwAAAQMLQMIOACBDAx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIUdHlwZXNAUGVuZGluZ0luaXRTdGF0ZQQEVAAAGAEsY29sbGVjdGlvbnN5BQEZAUJvdW5kZWRWZWM8KElkZW50aWZpZXIsIFJpbmdFeHBvbmVudCksIFQ6Ok1heENvbGxlY3Rpb25zUGVyU3Vic2NyaWJlcj4AAWBjdXJyZW50X2NvbGxlY3Rpb25faW5kZXg4AQx1MzIAAUBhZnRlcl9yaW5nX2luZGV4CQMBRE9wdGlvbjxSaW5nSW5kZXg+AAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgABLHNvdXJjZV90aW1lKAEMdTY0AAEwcGFsbGV0X2luZGV4DAEIdTgAAIUMDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchR0eXBlc1hCYXRjaERpc3RyaWJ1dGlvblN0YXRlBCxCbG9ja051bWJlcgE4ABABIHNlcXVlbmNlKAE4U2VxdWVuY2VOdW1iZXIAASxzb3VyY2VfdGltZSgBDHU2NAABJHNlYWxlZF9hdDgBLEJsb2NrTnVtYmVyAAFUcmVtYWluaW5nX3N1YnNjcmliZXJzOAEMdTMyAACJDAAABAicCACNDAx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIYcGFsbGV0FEVycm9yBARUAAE0SFN1YnNjcmliZXJOb3RGb3VuZAAABFRTdWJzY3JpYmVyIG5vdCBmb3VuZC5EQWxyZWFkeVN1YnNjcmliZWQAAQRoU3Vic2NyaWJlciBhbHJlYWR5IGV4aXN0cy5IVG9vTWFueVN1YnNjcmliZXJzAAIEcE1heGltdW0gc3Vic2NyaWJlcnMgcmVhY2hlZC5YSW52YWxpZENvbGxlY3Rpb25zTGlzdAADBD0BQ29sbGVjdGlvbnMgbGlzdCBtdXN0IGJlIHNvcnRlZCBpbiBzdHJpY3RseSBhc2NlbmRpbmcgb3JkZXIgd2l0aCBubyBkdXBsaWNhdGVzLjhUb29NYW55VXBkYXRlcwAEBNBUb28gbWFueSByaW5nIHJvb3QgdXBkYXRlcyB0byBmaXQgaW4gYSBzaW5nbGUgYmF0Y2guNFhjbVNlbmRGYWlsZWQABQRAWENNIHNlbmQgZmFpbGVkLmROb3RTdWJzY3JpYmVkVG9Db2xsZWN0aW9uAAYE5FN1YnNjcmliZXIgaXMgbm90IHN1YnNjcmliZWQgdG8gdGhlIHJlcXVlc3RlZCBjb2xsZWN0aW9uLkBJbnZhbGlkUmluZ0luZGV4AAcEgFJpbmcgcm9vdCBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuWEV4Y2VlZHNDaGFubmVsQ2FwYWNpdHkACAQBAVJlcXVlc3RlZCB1cGRhdGVzIGV4Y2VlZCB0aGUgc3Vic2NyaWJlcidzIEhSTVAgY2hhbm5lbCBjYXBhY2l0eS40Tm9CYXRjaEFjdGl2ZQAJBFxObyBhY3RpdmUgYmF0Y2ggZXhpc3RzLjROb1BlbmRpbmdJbml0AAoEuE5vIHBlbmRpbmcgaW5pdGlhbGl6YXRpb24gZm9yIHRoaXMgc3Vic2NyaWJlci5QUmVwbGF5Q29vbGRvd25BY3RpdmUACwQNAVJlcGxheSBjb29sZG93biBoYXMgbm90IGVsYXBzZWQgZm9yIHRoaXMgc3Vic2NyaWJlciBhbmQgY29sbGVjdGlvbi5ARW1wdHlSaW5nSW5kaWNlcwAMBORSZXBsYXkgcmVxdWVzdGVkIHdpdGggYW4gZW1wdHkgbGlzdCBvZiByaW5nIHJvb3QgaW5kaWNlcy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQukQwMUGluZGl2X3BhbGxldF9haXJkcm9wFHR5cGVzLEFjdGl2ZUV2ZW50CBxBc3NldElkAeAwQXNzZXRCYWxhbmNlAcQADAEIaWQIARxFdmVudElkAAEQaW5mb5EFAYBFdmVudEluZm88QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgABGHN0YXR1c5UMARhTdGF0dXMAAJUMDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBR0eXBlcxhTdGF0dXMAARwkU2NoZWR1bGVkAAAALFJlZ2lzdGVyaW5nBAFIdG90YWxfcGFydGljaXBhbnRzOAEMdTMyAAEALERyYXdXaW5uZXJzEAFIdG90YWxfcGFydGljaXBhbnRzOAEMdTMyAAFEZWZmZWN0aXZlX3dpbm5lcnM4AQx1MzIAATR3aW5uZXJzX2FkZGVkOAEMdTMyAAE8ZnJvbV93aW5uZXJfa2V5jQcBNEJpZ0VuZGlhblUyNTYAAgAgQ2xhaW1pbmcMAUh0b3RhbF9wYXJ0aWNpcGFudHM4AQx1MzIAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABHGNsYWltZWQ4AQx1MzIAAwBUQ2xlYXJpbmdSZWdpc3RyYXRpb25zEAFIdG90YWxfcGFydGljaXBhbnRzOAEMdTMyAAFEZWZmZWN0aXZlX3dpbm5lcnM4AQx1MzIAARxjbGFpbWVkOAEMdTMyAAFUY2xlYW5lZF9yZWdpc3RyYXRpb25zOAEMdTMyAAQAPENsZWFyaW5nV2lubmVycxABSHRvdGFsX3BhcnRpY2lwYW50czgBDHUzMgABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAEcY2xhaW1lZDgBDHUzMgABPGNsZWFuZWRfd2lubmVyczgBDHUzMgAFAChGaW5hbGl6aW5nCAFEZWZmZWN0aXZlX3dpbm5lcnM4AQx1MzIAARxjbGFpbWVkOAEMdTMyAAYAAJkMAAAECJ0MCACdDAw0aW5kaXZfc3VwcG9ydBR1dGlsczBCaWdFbmRpYW5VNjQAAwgAAAAMBBkBQSB1NjQgZW5jb2RlZCBpbiBiaWctZW5kaWFuIGZvcm1hdCBmb3IgY29ycmVjdCBsZXhpY29ncmFwaGljIG9yZGVyaW5nLqEMAAAECAiNBwClDAAABAgIkQcAqQwMUGluZGl2X3BhbGxldF9haXJkcm9wGHBhbGxldBRFcnJvcgQEVAABUFBQcml6ZUJlbG93TWluQmFsYW5jZQAAAExOb1dpbm5lcnNDb25maWd1cmVkAAEAOFRvb01hbnlXaW5uZXJzAAIAREludmFsaWRFdmVudFRpbWVzAAMAQER1cGxpY2F0ZUV2ZW50SWQABABATm9TY2hlZHVsZWRFdmVudAAFADBVbmtub3duRXZlbnQABgAsV3JvbmdTdGF0dXMABwTgT3BlcmF0aW9uIHJlcXVpcmVzIGEgc3BlY2lmaWMgc3RhdHVzIHRoZSBldmVudCBpc24ndCBpbi5kTm90QWNjZXB0aW5nUmVnaXN0cmF0aW9ucwAIACxOb3RDbGFpbWluZwAJAFBDbGFpbWluZ1dpbmRvd0Nsb3NlZAAKBLRDbGFpbSBhdHRlbXB0ZWQgYWZ0ZXIgdGhlIGV2ZW50J3MgYGVuZF90aW1lYC5ARW50cm9weVNsb3RUYWtlbgALADxJbnZhbGlkVnJmUHJvb2YADABUVW5zdXBwb3J0ZWRBY2NvdW50S2V5AA0ECQFTdXBwbGllZCBhY2NvdW50IGlkIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW55IHNyMjU1MTkgcHVibGljIGtleS5YSW52YWxpZE1lbWJlcnNoaXBQcm9vZgAOADBOb1N1Y2hXaW5uZXIADwBMUGFydGljaXBhbnRPdmVyZmxvdwAQAFxQcml6ZUFsbG9jYXRpb25PdmVyZmxvdwARADxBc3NldE5vdEVuYWJsZWQAEgTgVGhlIHByaXplIGFzc2V0IGhhcyBub3QgYmVlbiBlbmFibGVkIHZpYSBgZW5hYmxlX2Fzc2V0YC5MQXNzZXRBbHJlYWR5RW5hYmxlZAATBPxgZW5hYmxlX2Fzc2V0YCB3YXMgY2FsbGVkIGZvciBhbiBhc3NldCB0aGF0IGlzIGFscmVhZHkgZW5hYmxlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQurQwMTGluZGl2X3BhbGxldF9ob25vdXIUdHlwZXMkUG9pbnRJbmZvAAAQARxzdWJqZWN0CAEkU3ViamVjdElkAAE0c3ViamVjdF9hbGlhcwgBMFN1YmplY3RBbGlhcwABJGRpcmVjdGlvbp0FASREaXJlY3Rpb24AATBsYXN0X3VzZWRfYXQoARxTZWNvbmRzAACxDAxMaW5kaXZfcGFsbGV0X2hvbm91chhwYWxsZXQURXJyb3IEBFQAAQwoQXJpdGhtZXRpYwAABAkBQXJpdGhtZXRpYyBlcnJvciBsaWtlIG92ZXIvdW5kZXJmbG93LCBkaXZpc2lvbiBieSB6ZXJvIG9yIHNpbWlsYXIuTFN1YmplY3RBbHJlYWR5Vm90ZWQAAQT8VGhlcmUgaXMgYWxyZWFkeSBhIHZvdGUgYnkgdGhlIHNhbWUgdm90ZXIgZm9yIHRoZSBzYW1lIHN1YmplY3QuMEludmFsaWRQcm9vZgACBLBUaGUgcHJvdmlkZWQgcmluZyBwcm9vZiBmYWlsZWQgdmVyaWZpY2F0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC61DAyMaW5kaXZfcGFsbGV0X3N0b3JhZ2VfaW5pdGlhbGl6YXRpb24YcGFsbGV0LE9uUG9sbFN0YXRlAAEkIEluYWN0aXZlAAAANENyZWF0aW5nQXNzZXQAAQBAWGNtRnVuZHNUcmFuc2ZlcgACADhWZXJpZnlpbmdGdW5kcwADACxGdW5kaW5nUG90cwAEAJhTZXR0aW5nUGVvcGxlTGl0ZUF0dGVzdGF0aW9uQWxsb3dhbmNlcwAFAGBTY2hlZHVsaW5nTW9iUnVsZVBheW91dHMABgBYU2NoZWR1bGluZ1Njb3JlUGF5b3V0cwAHABBEb25lAAgAALkMDERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQURXJyb3IEBFQAAQQcT25nb2luZwAABOhUaGUgb3BlcmF0aW9uIGNhbm5vdCBjb21wbGV0ZSBzaW5jZSBzb21lIE1CTXMgYXJlIG9uZ29pbmcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lr0MCERwYWxsZXRfbWlncmF0aW9uczBNYm1Jc09uZ29pbmcAAQwMWWVzAAAACE5vAAEAFFN0dWNrAAIAAMEMBBhPcHRpb24EBFQBxQwBCBBOb25lAAAAEFNvbWUEAMUMAAABAADFDAhEcGFsbGV0X21pZ3JhdGlvbnMsTWJtUHJvZ3Jlc3MAABABRGN1cnJlbnRfbWlncmF0aW9uOAEMdTMyAAFAdG90YWxfbWlncmF0aW9uczgBDHUzMgABXGN1cnJlbnRfbWlncmF0aW9uX3N0ZXBzOAEMdTMyAAFsY3VycmVudF9taWdyYXRpb25fbWF4X3N0ZXBzCQMBLE9wdGlvbjx1MzI+AADJDAhEcGFsbGV0X21pZ3JhdGlvbnMkTWJtU3RhdHVzAAAMARxvbmdvaW5nvQwBME1ibUlzT25nb2luZwABIHByb2dyZXNzwQwBTE9wdGlvbjxNYm1Qcm9ncmVzcz4AASBwcmVmaXhlczQBMFZlYzxWZWM8dTg+PgAAzQwISHNwX2NvbnNlbnN1c19zbG90czBTbG90RHVyYXRpb24AAAQAKAEMdTY0AADRDBAoc3BfcnVudGltZRxnZW5lcmljFGJsb2NrJExhenlCbG9jawgYSGVhZGVyAVwkRXh0cmluc2ljAfkHAAgBGGhlYWRlclwBGEhlYWRlcgABKGV4dHJpbnNpY3PVDAFQVmVjPE9wYXF1ZUV4dHJpbnNpYz4AANUMAAAC2QwA2QwIKHNwX3J1bnRpbWU8T3BhcXVlRXh0cmluc2ljAAAEABgBHFZlYzx1OD4AAN0MCChzcF9ydW50aW1lWEV4dHJpbnNpY0luY2x1c2lvbk1vZGUAAQg0QWxsRXh0cmluc2ljcwAAADRPbmx5SW5oZXJlbnRzAAEAAOEMCBxzcF9jb3JlOE9wYXF1ZU1ldGFkYXRhAAAEABgBHFZlYzx1OD4AAOUMBBhPcHRpb24EBFQB4QwBCBBOb25lAAAAEFNvbWUEAOEMAAABAADpDAw0ZnJhbWVfc3VwcG9ydDh2aWV3X2Z1bmN0aW9uczhWaWV3RnVuY3Rpb25JZAAACAEYcHJlZml4wQEBIFt1ODsgMTZdAAEYc3VmZml4wQEBIFt1ODsgMTZdAADtDAQYUmVzdWx0CARUARgERQHxDAEICE9rBAAYAAAAAAxFcnIEAPEMAAABAADxDAw0ZnJhbWVfc3VwcG9ydDh2aWV3X2Z1bmN0aW9uc2RWaWV3RnVuY3Rpb25EaXNwYXRjaEVycm9yAAEMOE5vdEltcGxlbWVudGVkAAAAIE5vdEZvdW5kBADpDAE4Vmlld0Z1bmN0aW9uSWQAAQAUQ29kZWMAAgAA9QwEGFJlc3VsdAgEVAE5BwRFAfkMAQgIT2sEADkHAAAAAAxFcnIEAPkMAAABAAD5DAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eWBUcmFuc2FjdGlvblZhbGlkaXR5RXJyb3IAAQgcSW52YWxpZAQA/QwBSEludmFsaWRUcmFuc2FjdGlvbgAAABxVbmtub3duBAABDQFIVW5rbm93blRyYW5zYWN0aW9uAAEAAP0MDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5SEludmFsaWRUcmFuc2FjdGlvbgABNBBDYWxsAAAAHFBheW1lbnQAAQAYRnV0dXJlAAIAFFN0YWxlAAMAIEJhZFByb29mAAQAREFuY2llbnRCaXJ0aEJsb2NrAAUAREV4aGF1c3RzUmVzb3VyY2VzAAYAGEN1c3RvbQQADAEIdTgABwAwQmFkTWFuZGF0b3J5AAgATE1hbmRhdG9yeVZhbGlkYXRpb24ACQAkQmFkU2lnbmVyAAoAVEluZGV0ZXJtaW5hdGVJbXBsaWNpdAALADRVbmtub3duT3JpZ2luAAwAAAENDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5SFVua25vd25UcmFuc2FjdGlvbgABDDBDYW5ub3RMb29rdXAAAABMTm9VbnNpZ25lZFZhbGlkYXRvcgABABhDdXN0b20EAAwBCHU4AAIAAAUNCDBzcF9pbmhlcmVudHMwSW5oZXJlbnREYXRhAAAEARBkYXRhCQ0BlEJUcmVlTWFwPEluaGVyZW50SWRlbnRpZmllciwgVmVjPHU4Pj4AAAkNBCBCVHJlZU1hcAgESwG9AQRWARgABAANDQAAAA0NAAACEQ0AEQ0AAAQIvQEYABUNCDBzcF9pbmhlcmVudHNQQ2hlY2tJbmhlcmVudHNSZXN1bHQAAAwBEG9rYXnIARBib29sAAEsZmF0YWxfZXJyb3LIARBib29sAAEYZXJyb3JzBQ0BMEluaGVyZW50RGF0YQAAGQ0MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlEVHJhbnNhY3Rpb25Tb3VyY2UAAQwcSW5CbG9jawAAABRMb2NhbAABACBFeHRlcm5hbAACAAAdDQQYUmVzdWx0CARUASENBEUB+QwBCAhPawQAIQ0AAAAADEVycgQA+QwAAAEAACENDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5QFZhbGlkVHJhbnNhY3Rpb24AABQBIHByaW9yaXR5KAFMVHJhbnNhY3Rpb25Qcmlvcml0eQABIHJlcXVpcmVzNAFMVmVjPFRyYW5zYWN0aW9uVGFnPgABIHByb3ZpZGVzNAFMVmVjPFRyYW5zYWN0aW9uVGFnPgABJGxvbmdldml0eSgBUFRyYW5zYWN0aW9uTG9uZ2V2aXR5AAEkcHJvcGFnYXRlyAEQYm9vbAAAJQ0MKHNwX3Nlc3Npb24scnVudGltZV9hcGloT3BhcXVlR2VuZXJhdGVkU2Vzc2lvbktleXMAAAgBEGtleXMYARxWZWM8dTg+AAEUcHJvb2YYARxWZWM8dTg+AAApDQQYT3B0aW9uBARUAS0NAQgQTm9uZQAAABBTb21lBAAtDQAAAQAALQ0AAAIxDQAxDQAABAgYTQkANQ0MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzTFJ1bnRpbWVEaXNwYXRjaEluZm8IHEJhbGFuY2UBxBhXZWlnaHQB1QEADAEYd2VpZ2h01QEBGFdlaWdodAABFGNsYXNzmQYBNERpc3BhdGNoQ2xhc3MAASxwYXJ0aWFsX2ZlZcQBHEJhbGFuY2UAADkNDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlcyhGZWVEZXRhaWxzBBxCYWxhbmNlAcQACAE0aW5jbHVzaW9uX2ZlZT0NAXRPcHRpb248SW5jbHVzaW9uRmVlPEJhbGFuY2U+PgABDHRpcMQBHEJhbGFuY2UAAD0NBBhPcHRpb24EBFQBQQ0BCBBOb25lAAAAEFNvbWUEAEENAAABAABBDQxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMwSW5jbHVzaW9uRmVlBBxCYWxhbmNlAcQADAEgYmFzZV9mZWXEARxCYWxhbmNlAAEcbGVuX2ZlZcQBHEJhbGFuY2UAAUxhZGp1c3RlZF93ZWlnaHRfZmVlxAEcQmFsYW5jZQAARQ0EGFJlc3VsdAgEVAFJDQRFAU0NAQgIT2sEAEkNAAAAAAxFcnIEAE0NAAABAABJDQAAAhEDAE0NDEB4Y21fcnVudGltZV9hcGlzEGZlZXMURXJyb3IAARg0VW5pbXBsZW1lbnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEATFdlaWdodE5vdENvbXB1dGFibGUAAgBMVW5oYW5kbGVkWGNtVmVyc2lvbgADADRBc3NldE5vdEZvdW5kAAQAKFVucm91dGFibGUABQAAUQ0EGFJlc3VsdAgEVAHVAQRFAU0NAQgIT2sEANUBAAAAAAxFcnIEAE0NAAABAABVDQQYUmVzdWx0CARUAcQERQFNDQEICE9rBADEAAAAAAxFcnIEAE0NAAABAABZDQQYUmVzdWx0CARUAdkCBEUBTQ0BCAhPawQA2QIAAAAADEVycgQATQ0AAAEAAF0NBBhSZXN1bHQIBFQBYQ0ERQGFDQEICE9rBABhDQAAAAAMRXJyBACFDQAAAQAAYQ0MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkRDYWxsRHJ5UnVuRWZmZWN0cwQURXZlbnQBjQYAEAFAZXhlY3V0aW9uX3Jlc3VsdGUNAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwABOGVtaXR0ZWRfZXZlbnRzcQ0BKFZlYzxFdmVudD4AASRsb2NhbF94Y211DQFgT3B0aW9uPFZlcnNpb25lZFhjbTwoKT4+AAE4Zm9yd2FyZGVkX3hjbXN5DQG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AAGUNBBhSZXN1bHQIBFQBaQ0ERQFtDQEICE9rBABpDQAAAAAMRXJyBABtDQAAAQAAaQ0MNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUG9zdERpc3BhdGNoSW5mbwAACAE0YWN0dWFsX3dlaWdodKUCAThPcHRpb248V2VpZ2h0PgABIHBheXNfZmVlnQYBEFBheXMAAG0NCChzcF9ydW50aW1lZERpc3BhdGNoRXJyb3JXaXRoUG9zdEluZm8EEEluZm8BaQ0ACAEkcG9zdF9pbmZvaQ0BEEluZm8AARRlcnJvcqEGATREaXNwYXRjaEVycm9yAABxDQAAAo0GAHUNBBhPcHRpb24EBFQBlQEBCBBOb25lAAAAEFNvbWUEAJUBAAABAAB5DQAAAn0NAH0NAAAECEkBgQ0AgQ0AAAKVAQCFDQxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuFEVycm9yAAEINFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAACJDQQYUmVzdWx0CARUAY0NBEUBhQ0BCAhPawQAjQ0AAAAADEVycgQAhQ0AAAEAAI0NDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW5AWGNtRHJ5UnVuRWZmZWN0cwQURXZlbnQBjQYADAFAZXhlY3V0aW9uX3Jlc3VsdB0HARxPdXRjb21lAAE4ZW1pdHRlZF9ldmVudHNxDQEoVmVjPEV2ZW50PgABOGZvcndhcmRlZF94Y21zeQ0BvFZlYzwoVmVyc2lvbmVkTG9jYXRpb24sIFZlYzxWZXJzaW9uZWRYY208KCk+Pik+AACRDQQYUmVzdWx0CARUAQQERQGVDQEICE9rBAAEAAAAAAxFcnIEAJUNAAABAACVDQxAeGNtX3J1bnRpbWVfYXBpcyxjb252ZXJzaW9ucxRFcnJvcgABCCxVbnN1cHBvcnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAAJkNCFxjdW11bHVzX3ByaW1pdGl2ZXNfY29yZTRDb2xsYXRpb25JbmZvAAAYATx1cHdhcmRfbWVzc2FnZXM0AUhWZWM8VXB3YXJkTWVzc2FnZT4AAUxob3Jpem9udGFsX21lc3NhZ2VzeQgBYFZlYzxPdXRib3VuZEhybXBNZXNzYWdlPgABTG5ld192YWxpZGF0aW9uX2NvZGWdDQGMT3B0aW9uPHJlbGF5X2NoYWluOjpWYWxpZGF0aW9uQ29kZT4AAWxwcm9jZXNzZWRfZG93bndhcmRfbWVzc2FnZXM4AQx1MzIAAThocm1wX3dhdGVybWFyazgBYHJlbGF5X2NoYWluOjpCbG9ja051bWJlcgABJGhlYWRfZGF0YUwBIEhlYWREYXRhAACdDQQYT3B0aW9uBARUAaENAQgQTm9uZQAAABBTb21lBAChDQAAAQAAoQ0MdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXM4VmFsaWRhdGlvbkNvZGUAAAQAGAEcVmVjPHU4PgAApQ0EGFJlc3VsdAgEVAEQBEUBvQcBCAhPawQAEAAAAAAMRXJyBAC9BwAAAQAAqQ0EGE9wdGlvbgQEVAG9BwEIEE5vbmUAAAAQU29tZQQAvQcAAAEAAK0NAAACvQcAsQ0IZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUwUnVudGltZUVycm9yAAGAGFN5c3RlbQQA7QcBcGZyYW1lX3N5c3RlbTo6RXJyb3I8UnVudGltZT4AAAA8UGFyYWNoYWluU3lzdGVtBACJCAG8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbTo6RXJyb3I8UnVudGltZT4AAQAgQmFsYW5jZXMEAMEIAXxwYWxsZXRfYmFsYW5jZXM6OkVycm9yPFJ1bnRpbWU+AAoARE9yaWdpblJlc3RyaWN0aW9uBADVCAG8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbjo6RXJyb3I8UnVudGltZT4ADQAYQXNzZXRzBAABCQF0cGFsbGV0X2Fzc2V0czo6RXJyb3I8UnVudGltZT4ADgAwQXNzZXRzSG9sZGVyBAARCQGQcGFsbGV0X2Fzc2V0c19ob2xkZXI6OkVycm9yPFJ1bnRpbWU+AA8AJEFzc2V0UmF0ZQQAFQkBhHBhbGxldF9hc3NldF9yYXRlOjpFcnJvcjxSdW50aW1lPgAQAERDb2xsYXRvclNlbGVjdGlvbgQALQkBpHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb246OkVycm9yPFJ1bnRpbWU+ABUAHFNlc3Npb24EAFEJAXhwYWxsZXRfc2Vzc2lvbjo6RXJyb3I8UnVudGltZT4AFgAkWGNtcFF1ZXVlBACNCQGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXJyb3I8UnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAPUJAWhwYWxsZXRfeGNtOjpFcnJvcjxSdW50aW1lPgAfADBNZXNzYWdlUXVldWUEABUKAZBwYWxsZXRfbWVzc2FnZV9xdWV1ZTo6RXJyb3I8UnVudGltZT4AIgAcVXRpbGl0eQQAGQoBeHBhbGxldF91dGlsaXR5OjpFcnJvcjxSdW50aW1lPgAoACBNdWx0aXNpZwQAKQoBfHBhbGxldF9tdWx0aXNpZzo6RXJyb3I8UnVudGltZT4AKQAQU3VkbwQALQoBbHBhbGxldF9zdWRvOjpFcnJvcjxSdW50aW1lPgAqABRQcm94eQQAUQoBcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4ALAAgSWRlbnRpdHkEAKEKAZRpbmRpdl9wYWxsZXRfaWRlbnRpdHk6OkVycm9yPFJ1bnRpbWU+ADIAGFBlb3BsZQQAqQoBjGluZGl2X3BhbGxldF9wZW9wbGU6OkVycm9yPFJ1bnRpbWU+ADMAHE1vYlJ1bGUEAOkKAZRpbmRpdl9wYWxsZXRfbW9iX3J1bGU6OkVycm9yPFJ1bnRpbWU+ADQAKFByb29mT2ZJbmsEACULAaRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rOjpFcnJvcjxSdW50aW1lPgA1ABBHYW1lBABxCwGEaW5kaXZfcGFsbGV0X2dhbWU6OkVycm9yPFJ1bnRpbWU+ADcAFFNjb3JlBACdCwGIaW5kaXZfcGFsbGV0X3Njb3JlOjpFcnJvcjxSdW50aW1lPgA4ACBEdW1teURpbQQApQsBmGluZGl2X3BhbGxldF9kdW1teV9kaW06OkVycm9yPFJ1bnRpbWU+ADsAKFBlb3BsZUxpdGUEALELAaBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGU6OkVycm9yPFJ1bnRpbWU+AD4AJFJlc291cmNlcwQA5QsBmGluZGl2X3BhbGxldF9yZXNvdXJjZXM6OkVycm9yPFJ1bnRpbWU+AD8ANENodW5rc01hbmFnZXIEAP0LAaxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXI6OkVycm9yPFJ1bnRpbWU+AEAAHE1lbWJlcnMEAE0MAZBpbmRpdl9wYWxsZXRfbWVtYmVyczo6RXJyb3I8UnVudGltZT4AQwAcQ29pbmFnZQQAYQwBkGluZGl2X3BhbGxldF9jb2luYWdlOjpFcnJvcjxSdW50aW1lPgBEADxNZW1iZXJzTm90aWZpZXIEAI0MAbRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllcjo6RXJyb3I8UnVudGltZT4ARQAcQWlyZHJvcAQAqQwBkGluZGl2X3BhbGxldF9haXJkcm9wOjpFcnJvcjxSdW50aW1lPgBGABhIb25vdXIEALEMAYxpbmRpdl9wYWxsZXRfaG9ub3VyOjpFcnJvcjxSdW50aW1lPgBHAFBNdWx0aUJsb2NrTWlncmF0aW9ucwQAuQwBhHBhbGxldF9taWdyYXRpb25zOjpFcnJvcjxSdW50aW1lPgBiAACwGFN5c3RlbQEYU3lzdGVtUBxBY2NvdW50AQEEAgR1BkEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAE6CBUaGUgZnVsbCBhY2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudCBJRC4AOEV4dHJpbnNpY0NvdW50AAA4BAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay4AQEluaGVyZW50c0FwcGxpZWQBAMgEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4ALEJsb2NrV2VpZ2h0AQCBBhgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay4AJEJsb2NrU2l6ZQAAOAQADLAgVG90YWwgc2l6ZSAoaW4gYnl0ZXMpIG9mIHRoZSBjdXJyZW50IGJsb2NrLgDIIFRyYWNrcyB0aGUgc2l6ZSBvZiB0aGUgaGVhZGVyIGFuZCBhbGwgZXh0cmluc2ljcy4AJEJsb2NrSGFzaAEBBAU4PIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy4ANEV4dHJpbnNpY0RhdGEBAQQFOBgEAAQ9ASBFeHRyaW5zaWNzIGRhdGEgZm9yIHRoZSBjdXJyZW50IGJsb2NrIChtYXBzIGFuIGV4dHJpbnNpYydzIGluZGV4IHRvIGl0cyBkYXRhKS4AGE51bWJlcgEAOBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuAChQYXJlbnRIYXNoAQA8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suABhEaWdlc3QBAGQEAATwIERpZ2VzdCBvZiB0aGUgY3VycmVudCBibG9jaywgYWxzbyBwYXJ0IG9mIHRoZSBibG9jayBoZWFkZXIuABhFdmVudHMBAIUGBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLgAoRXZlbnRDb3VudAEAOBAAAAAABLggVGhlIG51bWJlciBvZiBldmVudHMgaW4gdGhlIGBFdmVudHM8VD5gIGxpc3QuACxFdmVudFRvcGljcwEBBAI8rQcEACglASBNYXBwaW5nIGJldHdlZW4gYSB0b3BpYyAocmVwcmVzZW50ZWQgYnkgVDo6SGFzaCkgYW5kIGEgdmVjdG9yIG9mIGluZGV4ZXOUIG9mIGV2ZW50cyBpbiB0aGUgYDxFdmVudHM8VD4+YCBsaXN0LgBRASBBbGwgdG9waWMgdmVjdG9ycyBoYXZlIGRldGVybWluaXN0aWMgc3RvcmFnZSBsb2NhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSB0b3BpYy4gVGhpc0UBIGFsbG93cyBsaWdodC1jbGllbnRzIHRvIGxldmVyYWdlIHRoZSBjaGFuZ2VzIHRyaWUgc3RvcmFnZSB0cmFja2luZyBtZWNoYW5pc20gYW5k5CBpbiBjYXNlIG9mIGNoYW5nZXMgZmV0Y2ggdGhlIGxpc3Qgb2YgZXZlbnRzIG9mIGludGVyZXN0LgBZASBUaGUgdmFsdWUgaGFzIHRoZSB0eXBlIGAoQmxvY2tOdW1iZXJGb3I8VD4sIEV2ZW50SW5kZXgpYCBiZWNhdXNlIGlmIHdlIHVzZWQgb25seSBqdXN0TQEgdGhlIGBFdmVudEluZGV4YCB0aGVuIGluIGNhc2UgaWYgdGhlIHRvcGljIGhhcyB0aGUgc2FtZSBjb250ZW50cyBvbiB0aGUgbmV4dCBibG9jawEBIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCB0aHVzIHRoZSBldmVudCBtaWdodCBiZSBsb3N0LgBITGFzdFJ1bnRpbWVVcGdyYWRlAAC1BwQABFUBIFN0b3JlcyB0aGUgYHNwZWNfdmVyc2lvbmAgYW5kIGBzcGVjX25hbWVgIG9mIHdoZW4gdGhlIGxhc3QgcnVudGltZSB1cGdyYWRlIGhhcHBlbmVkLgBEQmxvY2tzVGlsbFVwZ3JhZGUAAAwEAATsIE51bWJlciBvZiBibG9ja3MgdGlsbCB0aGUgcGVuZGluZyBjb2RlIHVwZ3JhZGUgaXMgYXBwbGllZC4AVFVwZ3JhZGVkVG9VMzJSZWZDb3VudAEAyAQABE0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IGB0eXBlIFJlZkNvdW50YCBpcyBgdTMyYC4gRmFsc2UgKGRlZmF1bHQpIGlmIG5vdC4AYFVwZ3JhZGVkVG9UcmlwbGVSZWZDb3VudAEAyAQACF0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IEFjY291bnRJbmZvIGNvbnRhaW5zIHRocmVlIHR5cGVzIG9mIGBSZWZDb3VudGAuIEZhbHNlSCAoZGVmYXVsdCkgaWYgbm90LgA4RXhlY3V0aW9uUGhhc2UAAKUHBAAEiCBUaGUgZXhlY3V0aW9uIHBoYXNlIG9mIHRoZSBibG9jay4AREF1dGhvcml6ZWRVcGdyYWRlAADBBwQABLggYFNvbWVgIGlmIGEgY29kZSB1cGdyYWRlIGhhcyBiZWVuIGF1dGhvcml6ZWQuAGBFeHRyaW5zaWNXZWlnaHRSZWNsYWltZWQBANUBCAAAHKAgVGhlIHdlaWdodCByZWNsYWltZWQgZm9yIHRoZSBleHRyaW5zaWMuACEBIFRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIGV4dHJpbnNpYyBleGVjdXRpb24uIQEgTW9yZSBwcmVjaXNlbHkgdGhpcyBpbmZvcm1hdGlvbiBpcyByZW1vdmVkIGluIGBub3RlX2FwcGxpZWRfZXh0cmluc2ljYC4AcQEgTG9naWMgZG9pbmcgc29tZSBwb3N0IGRpc3BhdGNoIHdlaWdodCByZWR1Y3Rpb24gbXVzdCB1cGRhdGUgdGhpcyBzdG9yYWdlIHRvIGF2b2lkIGR1cGxpY2F0ZSwgcmVkdWN0aW9uLgABJAABkQYAGDBCbG9ja1dlaWdodHPFB4kBBwDyBSoBAAsAIEqp0QECAIACAmXNHQABC8BWDe9FAQIAwAEBCwCY9z5dAQIA4AEBAAACZc0dAAELwN5fWboBAgBgAgELACBKqdEBAgCAAgEHAIhSanQCAKAAAmXNHQAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4ALEJsb2NrTGVuZ3Ro0Qc0AAA8AAAAUAAAAFAAAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGJsb2NrIChpbiBieXRlcykuADhCbG9ja0hhc2hDb3VudDgQABAAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4AIERiV2VpZ2h02QdAQHh9AQAAAAAA4fUFAAAAAAQJASBUaGUgd2VpZ2h0IG9mIHJ1bnRpbWUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB0aGUgcnVudGltZSBjYW4gaW52b2tlLgAcVmVyc2lvbt0HyQREbmV4dC1wZW9wbGUtcGFzZW9EbmV4dC1wZW9wbGUtcGFzZW8BAAAAVEIPAAAAAABU3XGNXMUyYtQBAAAABOcFIaDT0vgBAAAA173YonLKDWUCAAAA32rLaJkHYJsFAAAAN+OX/HyR9eQCAAAAzNneY5bImcoBAAAAQP461AH4lZoGAAAA0ryYl+7QjxUDAAAA94sni+U/RUwCAAAAqzwFcikf64sCAAAAvJ2JkE9bkj8BAAAAN8i7E1CpoqgEAAAA8/8U1atScFkDAAAAb/Uu6Fjmxb0CAAAAkbHIsWMo65ICAAAAn/tQWqc41pwBAAAA0LrHvkprCSABAAAAkof7DgIbyFQBAAAAhDtvjOyAmMcBAAAA6pPj8W89aWIDAAAA+8V3uddH79YBAAAAAwAAAAEEhCBHZXQgdGhlIGNoYWluJ3MgaW4tY29kZSB2ZXJzaW9uLgAoU1M1OFByZWZpeC0DCCoAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgAB7QcAHCxSdW50aW1lQ2FsbCAEjCBUaGUgYWdncmVnYXRlZCBgUnVudGltZUNhbGxgIHR5cGUuFE5vbmNlOARJASBUaGlzIHN0b3JlcyB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIHRyYW5zYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBzZW5kZXIgYWNjb3VudC4QSGFzaDwEmCBUaGUgb3V0cHV0IG9mIHRoZSBgSGFzaGluZ2AgZnVuY3Rpb24uHEhhc2hpbmfxBwQhASBUaGUgaGFzaGluZyBzeXN0ZW0gKGFsZ29yaXRobSkgYmVpbmcgdXNlZCBpbiB0aGUgcnVudGltZSAoZS5nLiBCbGFrZTIpLiRBY2NvdW50SWQEBMggVGhlIHVzZXIgYWNjb3VudCBpZGVudGlmaWVyIHR5cGUgZm9yIHRoZSBydW50aW1lLhRCbG9ja/UHCGEBIFRoZSBCbG9jayB0eXBlIHVzZWQgYnkgdGhlIHJ1bnRpbWUuIFRoaXMgaXMgdXNlZCBieSBgY29uc3RydWN0X3J1bnRpbWVgIHRvIHJldHJpZXZlIHRoZcwgZXh0cmluc2ljcyBvciBvdGhlciBibG9jayBzcGVjaWZpYyBkYXRhIGFzIG5lZWRlZC4sQWNjb3VudERhdGF5BghhASBEYXRhIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCBhbiBhY2NvdW50IChvdGhlciB0aGFuIG5vbmNlL3RyYW5zYWN0aW9uIGNvdW50ZXIsIHdoaWNoIHRoaXNkIHBhbGxldCBkb2VzIHJlZ2FyZGxlc3MpLgAAAAA8UGFyYWNoYWluU3lzdGVtATxQYXJhY2hhaW5TeXN0ZW18PEJsb2NrV2VpZ2h0TW9kZQAADQgEABh8IFRoZSBjdXJyZW50IGJsb2NrIHdlaWdodCBtb2RlLgB1ASBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIG1heGltdW0gYWxsb3dlZCBibG9jayB3ZWlnaHQsIGZvciBtb3JlIGluZm9ybWF0aW9uIHNlZUggW2BibG9ja193ZWlnaHRgXS4AJQEgS2lsbGVkIGluIFtgU2VsZjo6b25faW5pdGlhbGl6ZWBdIGFuZCBzZXQgYnkgdGhlIFtgYmxvY2tfd2VpZ2h0YF0gbG9naWMuAERQcmV2aW91c0NvcmVDb3VudAAAEQgEAAwFASBUaGUgY29yZSBjb3VudCBhdmFpbGFibGUgdG8gdGhlIHBhcmFjaGFpbiBpbiB0aGUgcHJldmlvdXMgYmxvY2suAHUBIFRoaXMgaXMgbWFpbmx5IHVzZWQgZm9yIG9mZmNoYWluIGZ1bmN0aW9uYWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBjb3JyZWN0IHRhcmdldCBibG9jayB3ZWlnaHQuAERVbmluY2x1ZGVkU2VnbWVudAEAFQgEABhJASBMYXRlc3QgaW5jbHVkZWQgYmxvY2sgZGVzY2VuZGFudHMgdGhlIHJ1bnRpbWUgYWNjZXB0ZWQuIEluIG90aGVyIHdvcmRzLCB0aGVzZSBhcmVhASBhbmNlc3RvcnMgb2YgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgYmxvY2sgd2hpY2ggaGF2ZSBub3QgYmVlbiBpbmNsdWRlZCBpbiB0aGUgb2JzZXJ2ZWRMIHJlbGF5LWNoYWluIHN0YXRlLgB1ASBUaGUgc2VnbWVudCBsZW5ndGggaXMgbGltaXRlZCBieSB0aGUgY2FwYWNpdHkgcmV0dXJuZWQgZnJvbSB0aGUgW2BDb25zZW5zdXNIb29rYF0gY29uZmlndXJlZDwgaW4gdGhlIHBhbGxldC4AbEFnZ3JlZ2F0ZWRVbmluY2x1ZGVkU2VnbWVudAAAPQgEAAxpASBTdG9yYWdlIGZpZWxkIHRoYXQga2VlcHMgdHJhY2sgb2YgYmFuZHdpZHRoIHVzZWQgYnkgdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBhbG9uZyB3aXRoIHRoZS0BIGxhdGVzdCBIUk1QIHdhdGVybWFyay4gVXNlZCBmb3IgbGltaXRpbmcgdGhlIGFjY2VwdGFuY2Ugb2YgbmV3IGJsb2NrcyB3aXRokCByZXNwZWN0IHRvIHJlbGF5IGNoYWluIGNvbnN0cmFpbnRzLgBUUGVuZGluZ1ZhbGlkYXRpb25Db2RlAQAYBAAYWQEgSW4gY2FzZSBvZiBhIHNjaGVkdWxlZCB1cGdyYWRlLCB0aGlzIHN0b3JhZ2UgZmllbGQgY29udGFpbnMgdGhlIHZhbGlkYXRpb24gY29kZSB0byBiZSQgYXBwbGllZC4APQEgQXMgc29vbiBhcyB0aGUgcmVsYXkgY2hhaW4gZ2l2ZXMgdXMgdGhlIGdvLWFoZWFkIHNpZ25hbCwgd2Ugd2lsbCBvdmVyd3JpdGUgdGhlZQEgW2A6cGVuZGluZ19jb2RlYF1bc3BfY29yZTo6c3RvcmFnZTo6d2VsbF9rbm93bl9rZXlzOjpQRU5ESU5HX0NPREVdIHdoaWNoIHdpbGwgcmVzdWx0IHRoZXUBIG5leHQgYmxvY2sgdG8gYmUgcHJvY2Vzc2VkIHdpdGggdGhlIG5ldyB2YWxpZGF0aW9uIGNvZGUuIFRoaXMgY29uY2x1ZGVzIHRoZSB1cGdyYWRlIHByb2Nlc3MuAEROZXdWYWxpZGF0aW9uQ29kZQAAGAQAFF0BIFZhbGlkYXRpb24gY29kZSB0aGF0IGlzIHNldCBieSB0aGUgcGFyYWNoYWluIGFuZCBpcyB0byBiZSBjb21tdW5pY2F0ZWQgdG8gY29sbGF0b3IgYW5keCBjb25zZXF1ZW50bHkgdGhlIHJlbGF5LWNoYWluLgBlASBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2sgaWYgbm8gb3RoZXIgcGFsbGV0IGFscmVhZHkgc2V0LCB0aGUgdmFsdWUuADhWYWxpZGF0aW9uRGF0YQAASAQADNAgVGhlIFtgUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGFgXSBzZXQgZm9yIHRoaXMgYmxvY2suAHEBIFRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgc2V0IG9ubHkgb25jZSBieSB0aGUgW2BQYWxsZXQ6OnNldF92YWxpZGF0aW9uX2RhdGFgXSBpbmhlcmVudC4AUERpZFNldFZhbGlkYXRpb25Db2RlAQDIBAAE4CBXZXJlIHRoZSB2YWxpZGF0aW9uIGRhdGEgc2V0IHRvIG5vdGlmeSB0aGUgcmVsYXkgY2hhaW4/AGRMYXN0UmVsYXlDaGFpbkJsb2NrTnVtYmVyAQA4EAAAAAAMHQEgVGhlIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIGxhc3QgcGFyYWNoYWluIGJsb2NrLgCIIFRoaXMgaXMgdXBkYXRlZCBpbiBgb25fZmluYWxpemVgLgBgVXBncmFkZVJlc3RyaWN0aW9uU2lnbmFsAQBBCAQAHHUBIEFuIG9wdGlvbiB3aGljaCBpbmRpY2F0ZXMgaWYgdGhlIHJlbGF5LWNoYWluIHJlc3RyaWN0cyBzaWduYWxsaW5nIGEgdmFsaWRhdGlvbiBjb2RlIHVwZ3JhZGUuYQEgSW4gb3RoZXIgd29yZHMsIGlmIHRoaXMgaXMgYFNvbWVgIGFuZCBbYE5ld1ZhbGlkYXRpb25Db2RlYF0gaXMgYFNvbWVgIHRoZW4gdGhlIHByb2R1Y2VkbCBjYW5kaWRhdGUgd2lsbCBiZSBpbnZhbGlkLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LgA4VXBncmFkZUdvQWhlYWQBADUIBAAU3CBPcHRpb25hbCB1cGdyYWRlIGdvLWFoZWFkIHNpZ25hbCBmcm9tIHRoZSByZWxheS1jaGFpbi4AcQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgYSBtaXJyb3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZm9yIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBmcm9tIHRoZW0BIHJlbGF5LWNoYWluLiBUaGlzIHZhbHVlIGlzIGVwaGVtZXJhbCB3aGljaCBtZWFucyBpdCBkb2Vzbid0IGhpdCB0aGUgc3RvcmFnZS4gVGhpcyB2YWx1ZSBpc2Agc2V0IGFmdGVyIHRoZSBpbmhlcmVudC4APFJlbGF5U3RhdGVQcm9vZgAAUAQAGMQgVGhlIHN0YXRlIHByb29mIGZvciB0aGUgbGFzdCByZWxheSBwYXJlbnQgYmxvY2suAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AWFJlbGV2YW50TWVzc2FnaW5nU3RhdGUAAEkIBAAcZQEgVGhlIHNuYXBzaG90IG9mIHNvbWUgc3RhdGUgcmVsYXRlZCB0byBtZXNzYWdpbmcgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgcGFyYWNoYWluIGFzIHBlckggdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgBESG9zdENvbmZpZ3VyYXRpb24AAF0IBAAYKQEgVGhlIHBhcmFjaGFpbiBob3N0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgb2J0YWluZWQgZnJvbSB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuADhMYXN0RG1xTXFjSGVhZAEAZQiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ9CBUaGUgbGFzdCBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWQgd2UgaGF2ZSBvYnNlcnZlZC4AZQEgVGhpcyB2YWx1ZSBpcyBsb2FkZWQgYmVmb3JlIGFuZCBzYXZlZCBhZnRlciBwcm9jZXNzaW5nIGluYm91bmQgZG93bndhcmQgbWVzc2FnZXMgY2FycmllZGAgYnkgdGhlIHN5c3RlbSBpbmhlcmVudC4AQExhc3RIcm1wTXFjSGVhZHMBAGkIBAAQSQEgVGhlIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZHMgd2UgaGF2ZSBvYnNlcnZlZCBwZXIgZWFjaCBjaGFubmVsIGluY29taW5nIGNoYW5uZWwuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAGRQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2VzAQA4EAAAAAAMyCBOdW1iZXIgb2YgZG93bndhcmQgbWVzc2FnZXMgcHJvY2Vzc2VkIGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgBwTGFzdFByb2Nlc3NlZERvd253YXJkTWVzc2FnZQAAdQgEAAyUIFRoZSBsYXN0IHByb2Nlc3NlZCBkb3dud2FyZCBtZXNzYWdlLgBdASBXZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyB0byBmaWx0ZXIgdGhlIG1lc3NhZ2VzIHRoYXQgaGF2ZSBiZWVuIGFscmVhZHkgcHJvY2Vzc2VkLgA0SHJtcFdhdGVybWFyawEAOBAAAAAABKAgSFJNUCB3YXRlcm1hcmsgdGhhdCB3YXMgc2V0IGluIGEgYmxvY2suAGBMYXN0UHJvY2Vzc2VkSHJtcE1lc3NhZ2UAAHUIBAAMhCBUaGUgbGFzdCBwcm9jZXNzZWQgSFJNUCBtZXNzYWdlLgBdASBXZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyB0byBmaWx0ZXIgdGhlIG1lc3NhZ2VzIHRoYXQgaGF2ZSBiZWVuIGFscmVhZHkgcHJvY2Vzc2VkLgBQSHJtcE91dGJvdW5kTWVzc2FnZXMBAHkIBAAMpCBIUk1QIG1lc3NhZ2VzIHRoYXQgd2VyZSBzZW50IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgA4VXB3YXJkTWVzc2FnZXMBADQEAAysIFVwd2FyZCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDwIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBmb3IgZWFjaCBuZXcgYmxvY2suAFRQZW5kaW5nVXB3YXJkTWVzc2FnZXMBADQEAAQxASBVcHdhcmQgbWVzc2FnZXMgdGhhdCBhcmUgc3RpbGwgcGVuZGluZyBhbmQgbm90IHlldCBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4AUFBlbmRpbmdVcHdhcmRTaWduYWxzAQA0BAAMLQEgVXB3YXJkIHNpZ25hbHMgdGhhdCBhcmUgc3RpbGwgcGVuZGluZyBhbmQgbm90IHlldCBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4A2CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25fZmluYWxpemVgIGZvciBlYWNoIGJsb2NrLgBMUGVuZGluZ0FwcHJvdmVkUGVlcgAAeAQABDkBIFRoZSBhcHByb3ZlZCBwZWVyIGlkIHRvIGJlIHNlbnQgYXMgYSBVTVAgc2lnbmFsIG9uIHRoZSBsYXN0IGJsb2NrIG9mIHRoZSBQb1YuAFxVcHdhcmREZWxpdmVyeUZlZUZhY3RvcgEALQFAAABkp7O24A0AAAAAAAAAAATkIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5IGZvciBVTVAuAIRBbm5vdW5jZWRIcm1wTWVzc2FnZXNQZXJDYW5kaWRhdGUBADgQAAAAAAhlASBUaGUgbnVtYmVyIG9mIEhSTVAgbWVzc2FnZXMgd2Ugb2JzZXJ2ZWQgaW4gYG9uX2luaXRpYWxpemVgIGFuZCB0aHVzIHVzZWQgdGhhdCBudW1iZXIgZm9y8CBhbm5vdW5jaW5nIHRoZSB3ZWlnaHQgb2YgYG9uX2luaXRpYWxpemVgIGFuZCBgb25fZmluYWxpemVgLgBoUmVzZXJ2ZWRYY21wV2VpZ2h0T3ZlcnJpZGUAANUBBAAIXQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIFhDTVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LgBkUmVzZXJ2ZWREbXBXZWlnaHRPdmVycmlkZQAA1QEEAAhZASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgRE1QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC4AYEN1c3RvbVZhbGlkYXRpb25IZWFkRGF0YQAAGAQADCkBIEEgY3VzdG9tIGhlYWQgZGF0YSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhcyByZXN1bHQgb2YgYHZhbGlkYXRlX2Jsb2NrYC4AEQEgU2VlIGBQYWxsZXQ6OnNldF9jdXN0b21fdmFsaWRhdGlvbl9oZWFkX2RhdGFgIGZvciBtb3JlIGluZm9ybWF0aW9uLgBIUG9WTWVzc2FnZXNUcmFja2VyAACBCAQADFUBIFRyYWNrcyBjdW11bGF0aXZlIGBVTVBgIGFuZCBgSFJNUGAgbWVzc2FnZXMgc2VudCBhY3Jvc3MgYmxvY2tzIGluIHRoZSBjdXJyZW50IGBQb1ZgLgB1ASBBY3Jvc3MgZGlmZmVyZW50IGNhbmRpZGF0ZXMvUG9WcyB0aGUgYnVkZ2V0cyBhcmUgdHJhY2tlZCBieSBbYEFnZ3JlZ2F0ZWRVbmluY2x1ZGVkU2VnbWVudGBdLgABQAABuQYABChTZWxmUGFyYUlknBDeBQAABLggUmV0dXJucyB0aGUgcGFyYWNoYWluIElEIHdlIGFyZSBydW5uaW5nIHdpdGguAAGJCAAAAAEAACRUaW1lc3RhbXABJFRpbWVzdGFtcAgMTm93AQAoIAAAAAAAAAAABKAgVGhlIGN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACREaWRVcGRhdGUBAMgEABDYIFdoZXRoZXIgdGhlIHRpbWVzdGFtcCBoYXMgYmVlbiB1cGRhdGVkIGluIHRoaXMgYmxvY2suAFUBIFRoaXMgdmFsdWUgaXMgdXBkYXRlZCB0byBgdHJ1ZWAgdXBvbiBzdWNjZXNzZnVsIHN1Ym1pc3Npb24gb2YgYSB0aW1lc3RhbXAgYnkgYSBub2RlLkUBIEl0IGlzIHRoZW4gY2hlY2tlZCBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgZXhlY3V0aW9uIGluIHRoZSBgb25fZmluYWxpemVgIGhvb2suAAGwAAAENE1pbmltdW1QZXJpb2QoIAAAAAAAAAAAGIwgVGhlIG1pbmltdW0gcGVyaW9kIGJldHdlZW4gYmxvY2tzLgBNASBCZSBhd2FyZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IHRvIHRoZSAqZXhwZWN0ZWQqIHBlcmlvZCB0aGF0IHRoZSBibG9jayBwcm9kdWN0aW9uSQEgYXBwYXJhdHVzIHByb3ZpZGVzLiBZb3VyIGNob3NlbiBjb25zZW5zdXMgc3lzdGVtIHdpbGwgZ2VuZXJhbGx5IHdvcmsgd2l0aCB0aGlzIHRvYQEgZGV0ZXJtaW5lIGEgc2Vuc2libGUgYmxvY2sgdGltZS4gRm9yIGV4YW1wbGUsIGluIHRoZSBBdXJhIHBhbGxldCBpdCB3aWxsIGJlIGRvdWJsZSB0aGlzcCBwZXJpb2Qgb24gZGVmYXVsdCBzZXR0aW5ncy4AAAQYTW9tZW50KASYIFR5cGUgdXNlZCBmb3IgZXhwcmVzc2luZyBhIHRpbWVzdGFtcC4AAgAANFBhcmFjaGFpbkluZm8BNFBhcmFjaGFpbkluZm8ELFBhcmFjaGFpbklkAQCcEGQAAAAAAAG4AAAAAAAAAwAANFdlaWdodFJlY2xhaW0AAAAAAAAABAiBASBQYWxsZXQgdG8gdXNlIGFsb25nc2lkZSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtgU3RvcmFnZVdlaWdodFJlY2xhaW1gXSwgdGhlIHBhbGxldCBwcm92aWRlc4wgd2VpZ2h0IGluZm9ybWF0aW9uIGFuZCBiZW5jaG1hcmtzLgAgQmFsYW5jZXMBIEJhbGFuY2VzHDRUb3RhbElzc3VhbmNlAQDEQAAAAAAAAAAAAAAAAAAAAAAEmCBUaGUgdG90YWwgdW5pdHMgaXNzdWVkIGluIHRoZSBzeXN0ZW0uAEBJbmFjdGl2ZUlzc3VhbmNlAQDEQAAAAAAAAAAAAAAAAAAAAAAECQEgVGhlIHRvdGFsIHVuaXRzIG9mIG91dHN0YW5kaW5nIGRlYWN0aXZhdGVkIGJhbGFuY2UgaW4gdGhlIHN5c3RlbS4AHEFjY291bnQBAQQCBHkGAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYAkBIFRoZSBCYWxhbmNlcyBwYWxsZXQgZXhhbXBsZSBvZiBzdG9yaW5nIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7GQIgICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTdG9yYWdlTWFwU2hpbTxTZWxmOjpBY2NvdW50PFJ1bnRpbWU+LCBmcmFtZV9zeXN0ZW06OlByb3ZpZGVyPFJ1bnRpbWU+LCBBY2NvdW50SWQsIFNlbGY6OkFjY291bnREYXRhPEJhbGFuY2U+PgwgIH0QIGBgYAAVASBZb3UgY2FuIGFsc28gc3RvcmUgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudCBpbiB0aGUgYFN5c3RlbWAgcGFsbGV0LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUge3QgICB0eXBlIEFjY291bnRTdG9yZSA9IFN5c3RlbQwgIH0QIGBgYABRASBCdXQgdGhpcyBjb21lcyB3aXRoIHRyYWRlb2Zmcywgc3RvcmluZyBhY2NvdW50IGJhbGFuY2VzIGluIHRoZSBzeXN0ZW0gcGFsbGV0IHN0b3Jlc20BIGBmcmFtZV9zeXN0ZW1gIGRhdGEgYWxvbmdzaWRlIHRoZSBhY2NvdW50IGRhdGEgY29udHJhcnkgdG8gc3RvcmluZyBhY2NvdW50IGJhbGFuY2VzIGluIHRoZSkBIGBCYWxhbmNlc2AgcGFsbGV0LCB3aGljaCB1c2VzIGEgYFN0b3JhZ2VNYXBgIHRvIHN0b3JlIGJhbGFuY2VzIGRhdGEgb25seS5BASBOT1RFOiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0aGUgY2FzZSB0aGF0IHRoaXMgcGFsbGV0IGlzIHVzZWQgdG8gc3RvcmUgYmFsYW5jZXMuABRMb2NrcwEBBAIEjQgEABC4IEFueSBsaXF1aWRpdHkgbG9ja3Mgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLiUBIE5PVEU6IFNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHdoZW4gc2V0dGluZywgY2hhbmdpbmcgYW5kIGZyZWVpbmcgYSBsb2NrLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gACBSZXNlcnZlcwEBBAIEnQgEAAykIE5hbWVkIHJlc2VydmVzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAFEhvbGRzAQEEAgSpCAQABGwgSG9sZHMgb24gYWNjb3VudCBiYWxhbmNlcy4AHEZyZWV6ZXMBAQQCBLUIBAAEiCBGcmVlemUgbG9ja3Mgb24gYWNjb3VudCBiYWxhbmNlcy4AAbwAAcEGABBIRXhpc3RlbnRpYWxEZXBvc2l0xEAAypo7AAAAAAAAAAAAAAAAIEEBIFRoZSBtaW5pbXVtIGFtb3VudCByZXF1aXJlZCB0byBrZWVwIGFuIGFjY291bnQgb3Blbi4gTVVTVCBCRSBHUkVBVEVSIFRIQU4gWkVSTyEAWQEgSWYgeW91ICpyZWFsbHkqIG5lZWQgaXQgdG8gYmUgemVybywgeW91IGNhbiBlbmFibGUgdGhlIGZlYXR1cmUgYGluc2VjdXJlX3plcm9fZWRgIGZvcmEBIHRoaXMgcGFsbGV0LiBIb3dldmVyLCB5b3UgZG8gc28gYXQgeW91ciBvd24gcmlzazogdGhpcyB3aWxsIG9wZW4gdXAgYSBtYWpvciBEb1MgdmVjdG9yLlkBIEluIGNhc2UgeW91IGhhdmUgbXVsdGlwbGUgc291cmNlcyBvZiBwcm92aWRlciByZWZlcmVuY2VzLCB5b3UgbWF5IGFsc28gZ2V0IHVuZXhwZWN0ZWSMIGJlaGF2aW91ciBpZiB5b3Ugc2V0IHRoaXMgdG8gemVyby4A8CBCb3R0b20gbGluZTogRG8geW91cnNlbGYgYSBmYXZvdXIgYW5kIG1ha2UgaXQgYXQgbGVhc3Qgb25lIQAgTWF4TG9ja3M4EDIAAAAQ9CBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9ja3MgdGhhdCBzaG91bGQgZXhpc3Qgb24gYW4gYWNjb3VudC7cIE5vdCBzdHJpY3RseSBlbmZvcmNlZCwgYnV0IHVzZWQgZm9yIHdlaWdodCBlc3RpbWF0aW9uLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gACxNYXhSZXNlcnZlczgQMgAAAAwNASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudC4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAKE1heEZyZWV6ZXM4EAAAAAAEYQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGluZGl2aWR1YWwgZnJlZXplIGxvY2tzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQgYXQgYW55IHRpbWUuAAHBCAAQRFJ1bnRpbWVIb2xkUmVhc29uyQYEdCBUaGUgb3ZlcmFyY2hpbmcgaG9sZCByZWFzb24uHEJhbGFuY2XEBGwgVGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC5EUmVzZXJ2ZUlkZW50aWZpZXK9AQxoIFRoZSBJRCB0eXBlIGZvciByZXNlcnZlcy4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2BARnJlZXplSWRlbnRpZmllchAEZCBUaGUgSUQgdHlwZSBmb3IgZnJlZXplcy4ACgAASFRyYW5zYWN0aW9uUGF5bWVudAFIVHJhbnNhY3Rpb25QYXltZW50DEROZXh0RmVlTXVsdGlwbGllcgEALQFAAABkp7O24A0AAAAAAAAAAAAAOFN0b3JhZ2VWZXJzaW9uAQDFCAQAAAA8VHhQYXltZW50Q3JlZGl0AADJCAQADPAgVGhlIGBPbkNoYXJnZVRyYW5zYWN0aW9uYCBzdG9yZXMgdGhlIHdpdGhkcmF3biB0eCBmZWUgaGVyZS4ANQEgVXNlIGB3aXRoZHJhd190eGZlZWAgYW5kIGByZW1haW5pbmdfdHhmZWVgIHRvIGFjY2VzcyBmcm9tIG91dHNpZGUgdGhlIGNyYXRlLgAAAfEGAARgT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyDAQFVFkBIEEgZmVlIG11bHRpcGxpZXIgZm9yIGBPcGVyYXRpb25hbGAgZXh0cmluc2ljcyB0byBjb21wdXRlICJ2aXJ0dWFsIHRpcCIgdG8gYm9vc3QgdGhlaXIsIGBwcmlvcml0eWAAUQEgVGhpcyB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBgZmluYWxfZmVlYCB0byBvYnRhaW4gYSAidmlydHVhbCB0aXAiIHRoYXQgaXMgbGF0ZXL0IGFkZGVkIHRvIGEgdGlwIGNvbXBvbmVudCBpbiByZWd1bGFyIGBwcmlvcml0eWAgY2FsY3VsYXRpb25zLk0BIEl0IG1lYW5zIHRoYXQgYSBgTm9ybWFsYCB0cmFuc2FjdGlvbiBjYW4gZnJvbnQtcnVuIGEgc2ltaWxhcmx5LXNpemVkIGBPcGVyYXRpb25hbGBBASBleHRyaW5zaWMgKHdpdGggbm8gdGlwKSwgYnkgaW5jbHVkaW5nIGEgdGlwIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgdmlydHVhbCB0aXAuADwgYGBgcnVzdCxpZ25vcmVAIC8vIEZvciBgTm9ybWFsYIwgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXApOwBUIC8vIEZvciBgT3BlcmF0aW9uYWxgEQEgbGV0IHZpcnR1YWxfdGlwID0gKGluY2x1c2lvbl9mZWUgKyB0aXApICogT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyO8QgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXAgKyB2aXJ0dWFsX3RpcCk7ECBgYGAAUQEgTm90ZSB0aGF0IHNpbmNlIHdlIHVzZSBgZmluYWxfZmVlYCB0aGUgbXVsdGlwbGllciBhcHBsaWVzIGFsc28gdG8gdGhlIHJlZ3VsYXIgYHRpcGBdASBzZW50IHdpdGggdGhlIHRyYW5zYWN0aW9uLiBTbywgbm90IG9ubHkgZG9lcyB0aGUgdHJhbnNhY3Rpb24gZ2V0IGEgcHJpb3JpdHkgYnVtcCBiYXNlZGEBIG9uIHRoZSBgaW5jbHVzaW9uX2ZlZWAsIGJ1dCB3ZSBhbHNvIGFtcGxpZnkgdGhlIGltcGFjdCBvZiB0aXBzIGFwcGxpZWQgdG8gYE9wZXJhdGlvbmFsYDggdHJhbnNhY3Rpb25zLgAAAAALAABIU2tpcEZlZWxlc3NQYXltZW50AAAB9QYAAAAAAAwAAERPcmlnaW5SZXN0cmljdGlvbgFET3JpZ2luUmVzdHJpY3Rpb24EGFVzYWdlcwABBALY0QgEAASMIFRoZSBjdXJyZW50IHVzYWdlIGZvciBlYWNoIGVudGl0eS4AAdQAAfkGAAAB1QgABEBSZXN0cmljdGVkRW50aXR52CRRASBUaGUgdHlwZSB0aGF0IHJlcHJlc2VudCB0aGUgZW50aXRpZXMgdHJhY2tlZCwgaXRzIGFsbG93YW5jZSBhbmQgdGhlIGNvbnZlcnNpb24gZnJvbZggb3JpZ2luIGlzIGJvdW5kZWQgaW4gW2BSZXN0cmljdGlvbmBdLgAdASBUaGlzIGlzIHRoZSBjYW5vbmljYWwgb3JpZ2luIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdXNhZ2UgdHJhY2tpbmcujCBFYWNoIGVudGl0eSBpcyB0cmFja2VkIHNlcGFyYXRlbHkuAEkBIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gb3JpZ2luIGFzIGEgbXVsdGlwbGUgb3JpZ2luIGNhbiByZXByZXNlbnQgYSBzaW5nbGUgZW50aXR5LmEBIEZvciBleGFtcGxlLCBpbWFnaW5lIGEgREFPIG9yaWdpbiB3aXRoIGEgcGVyY2VudGFnZSBvZiB2b3RlcnMsIHdlIHdhbnQgdG8gdHJhY2sgdGhlIERBT6wgZW50aXR5IHJlZ2FyZGxlc3Mgb2YgdGhlIHZvdGVyIHBlcmNlbnRhZ2UuAA0AABhBc3NldHMBGEFzc2V0cxgUQXNzZXQAAQQC4NkIBAAEVCBEZXRhaWxzIG9mIGFuIGFzc2V0LgAcQWNjb3VudAABCAIC4QjlCAQABOQgVGhlIGhvbGRpbmdzIG9mIGEgc3BlY2lmaWMgYWNjb3VudCBmb3IgYSBzcGVjaWZpYyBhc3NldC4AJEFwcHJvdmFscwABDAICAvEI9QgEAAxZASBBcHByb3ZlZCBiYWxhbmNlIHRyYW5zZmVycy4gRmlyc3QgYmFsYW5jZSBpcyB0aGUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2Zlci4gU2Vjb25k6CBpcyB0aGUgYW1vdW50IG9mIGBUOjpDdXJyZW5jeWAgcmVzZXJ2ZWQgZm9yIHN0b3JpbmcgdGhpcy5JASBGaXJzdCBrZXkgaXMgdGhlIGFzc2V0IElELCBzZWNvbmQga2V5IGlzIHRoZSBvd25lciBhbmQgdGhpcmQga2V5IGlzIHRoZSBkZWxlZ2F0ZS4AIE1ldGFkYXRhAQEEAuD5CFAAAAAAAAAAAAAAAAAAAAAAAAAAAARYIE1ldGFkYXRhIG9mIGFuIGFzc2V0LgAgUmVzZXJ2ZXMBAQQC4B0BBAAE/CBNYXBzIGFuIGFzc2V0IHRvIGEgbGlzdCBvZiBpdHMgY29uZmlndXJlZCByZXNlcnZlIGluZm9ybWF0aW9uLgAsTmV4dEFzc2V0SWQAAOAEACRtASBUaGUgYXNzZXQgSUQgZW5mb3JjZWQgZm9yIHRoZSBuZXh0IGFzc2V0IGNyZWF0aW9uLCBpZiBhbnkgcHJlc2VudC4gT3RoZXJ3aXNlLCB0aGlzIHN0b3JhZ2VQIGl0ZW0gaGFzIG5vIGVmZmVjdC4AZQEgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBzZXR0aW5nIHVwIGNvbnN0cmFpbnRzIGZvciBJRHMgb2YgdGhlIG5ldyBhc3NldHMuIEZvciBleGFtcGxlLCBieWkBIHByb3ZpZGluZyBhbiBpbml0aWFsIFtgTmV4dEFzc2V0SWRgXSBhbmQgdXNpbmcgdGhlIFtgY3JhdGU6OkF1dG9JbmNBc3NldElkYF0gY2FsbGJhY2ssIGFu6CBhdXRvLWluY3JlbWVudCBtb2RlbCBjYW4gYmUgYXBwbGllZCB0byBhbGwgbmV3IGFzc2V0IElEcy4AIQEgVGhlIGluaXRpYWwgbmV4dCBhc3NldCBJRCBjYW4gYmUgc2V0IHVzaW5nIHRoZSBbYEdlbmVzaXNDb25maWdgXSBvciB0aGUhASBbU2V0TmV4dEFzc2V0SWRdKGBtaWdyYXRpb246Om5leHRfYXNzZXRfaWQ6OlNldE5leHRBc3NldElkYCkgbWlncmF0aW9uLgAB3AAB/QYAHEBSZW1vdmVJdGVtc0xpbWl0OBDoAwAADFEBIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gZGVzdHJveSBwZXIgYGRlc3Ryb3lfYWNjb3VudHNgIGFuZCBgZGVzdHJveV9hcHByb3ZhbHNgIGNhbGwuADkBIE11c3QgYmUgY29uZmlndXJlZCB0byByZXN1bHQgaW4gYSB3ZWlnaHQgdGhhdCBtYWtlcyBlYWNoIGNhbGwgZml0IGluIGEgYmxvY2suADBBc3NldERlcG9zaXTEQADKmjsAAAAAAAAAAAAAAAAE+CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gYXNzZXQuAExBc3NldEFjY291bnREZXBvc2l0xEAA9GmzAgAAAAAAAAAAAAAACEUBIFRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBhIG5vbi1wcm92aWRlciBhc3NldCBhY2NvdW50IHRvIGJlMCBtYWludGFpbmVkLgBMTWV0YWRhdGFEZXBvc2l0QmFzZcRAAKhb6QMAAAAAAAAAAAAAAARRASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBtZXRhZGF0YSB0byB5b3VyIGFzc2V0LgBYTWV0YWRhdGFEZXBvc2l0UGVyQnl0ZcRAAOH1BQAAAAAAAAAAAAAAAAhVASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgeW91IHN0b3JlIGluIHlvdXIoIG1ldGFkYXRhLgA8QXBwcm92YWxEZXBvc2l0xEAAypo7AAAAAAAAAAAAAAAABCEBIFRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gY3JlYXRpbmcgYSBuZXcgYXBwcm92YWwuACxTdHJpbmdMaW1pdDgQMgAAAATgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi4AAQEJABQcQmFsYW5jZcQEnCBUaGUgdW5pdHMgaW4gd2hpY2ggd2UgcmVjb3JkIGJhbGFuY2VzLhxBc3NldElk4ASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC5AQXNzZXRJZFBhcmFtZXRlcuAcWQEgV3JhcHBlciBhcm91bmQgYFNlbGY6OkFzc2V0SWRgIHRvIHVzZSBpbiBkaXNwYXRjaGFibGUgY2FsbCBzaWduYXR1cmVzLiBBbGxvd3MgdGhlIHVzZVEBIG9mIGNvbXBhY3QgZW5jb2RpbmcgaW4gaW5zdGFuY2VzIG9mIHRoZSBwYWxsZXQsIHdoaWNoIHdpbGwgcHJldmVudCBicmVha2luZyBjaGFuZ2VzBQEgcmVzdWx0aW5nIGZyb20gdGhlIHJlbW92YWwgb2YgYEhhc0NvbXBhY3RgIGZyb20gYFNlbGY6OkFzc2V0SWRgLgBZASBUaGlzIHR5cGUgaW5jbHVkZXMgdGhlIGBGcm9tPFNlbGY6OkFzc2V0SWQ+YCBib3VuZCwgc2luY2UgdGlnaHRseSBjb3VwbGVkIHBhbGxldHMgbWF5RQEgd2FudCB0byBjb252ZXJ0IGFuIGBBc3NldElkYCBpbnRvIGEgcGFyYW1ldGVyIGZvciBjYWxsaW5nIGRpc3BhdGNoYWJsZSBmdW5jdGlvbnMoIGRpcmVjdGx5LixSZXNlcnZlRGF0YSEBBOggSW5mb3JtYXRpb24gYWJvdXQgcmVzZXJ2ZSBsb2NhdGlvbnMgZm9yIGEgY2xhc3Mgb2YgYXNzZXQuFEV4dHJhEAT4IEFkZGl0aW9uYWwgZGF0YSB0byBiZSBzdG9yZWQgd2l0aCBhbiBhY2NvdW50J3MgYXNzZXQgYmFsYW5jZS4QaCpZ1Rq55IqMjMQY/5cI0qcCl60LS909pLdGKaZablw0YXNzZXRfZGV0YWlscwQIaWTgBQkEqCBQcm92aWRlIHRoZSBhc3NldCBkZXRhaWxzIGZvciBhc3NldCBgaWRgLgBoKlnVGrnkioyMxBj/lwjSUxrH4ht2sSHnYeRzQZobAihiYWxhbmNlX29mCAx3aG8ECGlk4AkJBLQgUHJvdmlkZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBmb3IgYXNzZXQgYGlkYC4AaCpZ1Rq55IqMjMQY/5cI0i6HZqQNG2nWFRvYAeV1UF4wZ2V0X21ldGFkYXRhBAhpZOANCQTAIFByb3ZpZGUgdGhlIGNvbmZpZ3VyZWQgbWV0YWRhdGEgZm9yIGFzc2V0IGBpZGAuAGgqWdUaueSKjIzEGP+XCNJk9j8pI+OYKCQxY4GuHmmGRGdldF9yZXNlcnZlc19kYXRhBAhpZOAlAQTUIFByb3ZpZGUgdGhlIGNvbmZpZ3VyZWQgcmVzZXJ2ZXMgZGF0YSBmb3IgYXNzZXQgYGlkYC4ADgAAMEFzc2V0c0hvbGRlcgEwQXNzZXRzSG9sZGVyCBRIb2xkcwEBCAIC4QipCAQABA0BIEEgbWFwIHRoYXQgc3RvcmVzIGhvbGRzIGFwcGxpZWQgb24gYW4gYWNjb3VudCBmb3IgYSBnaXZlbiBBc3NldElkLgA4QmFsYW5jZXNPbkhvbGQAAQgCAuEIxAQABGkBIEEgbWFwIHRoYXQgc3RvcmVzIHRoZSBjdXJyZW50IHRvdGFsIGJhbGFuY2Ugb24gaG9sZCBmb3IgZXZlcnkgYWNjb3VudCBvbiBhIGdpdmVuIEFzc2V0SWQuAAABAQcAAAERCQAERFJ1bnRpbWVIb2xkUmVhc29uyQYEfCBUaGUgb3ZlcmFyY2hpbmcgZnJlZXplIHJlYXNvbi4ADwAAJEFzc2V0UmF0ZQEkQXNzZXRSYXRlBFhDb252ZXJzaW9uUmF0ZVRvTmF0aXZlAAEEAuAtAQQADB0BIE1hcHMgYW4gYXNzZXQgdG8gaXRzIGZpeGVkIHBvaW50IHJlcHJlc2VudGF0aW9uIGluIHRoZSBuYXRpdmUgYmFsYW5jZS4ATQEgRS5nLiBgbmF0aXZlX2Ftb3VudCA9IGFzc2V0X2Ftb3VudCAqIENvbnZlcnNpb25SYXRlVG9OYXRpdmU6OjxUPjo6Z2V0KGFzc2V0X2tpbmQpYAABKQEAAQUHAAABFQkABCRBc3NldEtpbmTgBEUBIFRoZSB0eXBlIGZvciBhc3NldCBraW5kcyBmb3Igd2hpY2ggdGhlIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBpcyBzZXQuABAAADhBc3NldFR4UGF5bWVudAAAAQkHAAAAAAARAAAoQXV0aG9yc2hpcAEoQXV0aG9yc2hpcAQYQXV0aG9yAAAEBAAEZCBBdXRob3Igb2YgY3VycmVudCBibG9jay4AAAAAAAAAFAAARENvbGxhdG9yU2VsZWN0aW9uAURDb2xsYXRvclNlbGVjdGlvbhQ0SW52dWxuZXJhYmxlcwEAGQkEAAQRASBUaGUgaW52dWxuZXJhYmxlLCBwZXJtaXNzaW9uZWQgY29sbGF0b3JzLiBUaGlzIGxpc3QgbXVzdCBiZSBzb3J0ZWQuADRDYW5kaWRhdGVMaXN0AQAdCQQAFGkBIFRoZSAoY29tbXVuaXR5LCBsaW1pdGVkKSBjb2xsYXRpb24gY2FuZGlkYXRlcy4gYENhbmRpZGF0ZXNgIGFuZCBgSW52dWxuZXJhYmxlc2Agc2hvdWxkIGJlUCBtdXR1YWxseSBleGNsdXNpdmUuAHUBIFRoaXMgbGlzdCBpcyBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IGRlcG9zaXQgYW5kIHdoZW4gdGhlIGRlcG9zaXRzIGFyZSBlcXVhbCwgdGhlIGxlYXN0oCByZWNlbnRseSB1cGRhdGVkIGlzIGNvbnNpZGVyZWQgZ3JlYXRlci4ARExhc3RBdXRob3JlZEJsb2NrAQEEBQQ4EAAAAAAEhCBMYXN0IGJsb2NrIGF1dGhvcmVkIGJ5IGNvbGxhdG9yLgBERGVzaXJlZENhbmRpZGF0ZXMBADgQAAAAAAx4IERlc2lyZWQgbnVtYmVyIG9mIGNhbmRpZGF0ZXMuAHUBIFRoaXMgc2hvdWxkIGlkZWFsbHkgYWx3YXlzIGJlIGxlc3MgdGhhbiBbYENvbmZpZzo6TWF4Q2FuZGlkYXRlc2BdIGZvciB3ZWlnaHRzIHRvIGJlIGNvcnJlY3QuADRDYW5kaWRhY3lCb25kAQDEQAAAAAAAAAAAAAAAAAAAAAAMuCBGaXhlZCBhbW91bnQgdG8gZGVwb3NpdCB0byBiZWNvbWUgYSBjb2xsYXRvci4AQQEgV2hlbiBhIGNvbGxhdG9yIGNhbGxzIGBsZWF2ZV9pbnRlbnRgIHRoZXkgaW1tZWRpYXRlbHkgcmVjZWl2ZSB0aGUgZGVwb3NpdCBiYWNrLgABMQEAAQ0HABgUUG90SWQpCSBQb3RTdGFrZQT0IEFjY291bnQgSWRlbnRpZmllciBmcm9tIHdoaWNoIHRoZSBpbnRlcm5hbCBQb3QgaXMgZ2VuZXJhdGVkLgA0TWF4Q2FuZGlkYXRlczgQZAAAAAzIIE1heGltdW0gbnVtYmVyIG9mIGNhbmRpZGF0ZXMgdGhhdCB3ZSBzaG91bGQgaGF2ZS4AzCBUaGlzIGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBpbnZ1bG5lcmFibGVzLgBQTWluRWxpZ2libGVDb2xsYXRvcnM4EAQAAAAMVQEgTWluaW11bSBudW1iZXIgZWxpZ2libGUgY29sbGF0b3JzLiBTaG91bGQgYWx3YXlzIGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiBUaGlzIGluY2x1ZGVzUQEgSW52dWxuZXJhYmxlIGNvbGxhdG9ycy4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlcmUgd2lsbCBhbHdheXMgYmUgb25lIGNvbGxhdG9yIHdobyBjYW5EIHByb2R1Y2UgYSBibG9jay4AQE1heEludnVsbmVyYWJsZXM4EBQAAAAEhCBNYXhpbXVtIG51bWJlciBvZiBpbnZ1bG5lcmFibGVzLgA0S2lja1RocmVzaG9sZDgQMCoAAAAALHBvdF9hY2NvdW50BIBtb2RsUG90U3Rha2UAAAAAAAAAAAAAAAAAAAAAAAAAAASgIEdldHMgdGhpcyBwYWxsZXQncyBkZXJpdmVkIHBvdCBhY2NvdW50LgABLQkABCxWYWxpZGF0b3JJZAQEdCBBIHN0YWJsZSBJRCBmb3IgYSB2YWxpZGF0b3IuABUAABxTZXNzaW9uARxTZXNzaW9uIChWYWxpZGF0b3JzAQDMBAAEfCBUaGUgY3VycmVudCBzZXQgb2YgdmFsaWRhdG9ycy4AMEN1cnJlbnRJbmRleAEAOBAAAAAABHggQ3VycmVudCBpbmRleCBvZiB0aGUgc2Vzc2lvbi4ANFF1ZXVlZENoYW5nZWQBAMgEAAg5ASBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIGVjb25vbWljIGlkZW50aXRpZXMgb3Igd2VpZ2h0aW5nIGJlaGluZCB0aGUgdmFsaWRhdG9yc6QgaGFzIGNoYW5nZWQgaW4gdGhlIHF1ZXVlZCB2YWxpZGF0b3Igc2V0LgAoUXVldWVkS2V5cwEAMQkEAAg9ASBUaGUgcXVldWVkIGtleXMgZm9yIHRoZSBuZXh0IHNlc3Npb24uIFdoZW4gdGhlIG5leHQgc2Vzc2lvbiBiZWdpbnMsIHRoZXNlIGtleXPgIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkYXRvcidzIHNlc3Npb24ga2V5cy4ASERpc2FibGVkVmFsaWRhdG9ycwEAOQkEABSAIEluZGljZXMgb2YgZGlzYWJsZWQgdmFsaWRhdG9ycy4APQEgVGhlIHZlYyBpcyBhbHdheXMga2VwdCBzb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZmluZCB3aGV0aGVyIGEgZ2l2ZW4gdmFsaWRhdG9yIGlzPQEgZGlzYWJsZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC4gSXQgZ2V0cyBjbGVhcmVkIHdoZW4gYG9uX3Nlc3Npb25fZW5kaW5nYCByZXR1cm5zZCBhIG5ldyBzZXQgb2YgaWRlbnRpdGllcy4AIE5leHRLZXlzAAEEBQQ5AQQABJwgVGhlIG5leHQgc2Vzc2lvbiBrZXlzIGZvciBhIHZhbGlkYXRvci4AIEtleU93bmVyAAEEBUkJBAQABAkBIFRoZSBvd25lciBvZiBhIGtleS4gVGhlIGtleSBpcyB0aGUgYEtleVR5cGVJZGAgKyB0aGUgZW5jb2RlZCBrZXkuAERFeHRlcm5hbGx5U2V0S2V5cwABBAUEEAQAEDEBIEFjY291bnRzIHdob3NlIGtleXMgd2VyZSBzZXQgdmlhIGBTZXNzaW9uSW50ZXJmYWNlYCAoZXh0ZXJuYWwgcGF0aCkgd2l0aG91dDkBIGluY3JlbWVudGluZyB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIG9yIHBsYWNpbmcgYSBrZXkgZGVwb3NpdC4gYGRvX3B1cmdlX2tleXNgOQEgb25seSBkZWNyZW1lbnRzIGNvbnN1bWVycyBmb3IgYWNjb3VudHMgdGhhdCB3ZXJlIHJlZ2lzdGVyZWQgdGhyb3VnaCB0aGUgbG9jYWxAIHNlc3Npb24gcGFsbGV0LgABNQEAAREHAAQoS2V5RGVwb3NpdMRAAAAAAAAAAAAAAAAAAAAAAASkIFRoZSBhbW91bnQgdG8gYmUgaGVsZCB3aGVuIHNldHRpbmcga2V5cy4AAVEJAAgsVmFsaWRhdG9ySWQEBHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLhBLZXlzOQEEKCBUaGUga2V5cy4AFgAAEEF1cmEBEEF1cmEILEF1dGhvcml0aWVzAQBVCQQABGwgVGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4ALEN1cnJlbnRTbG90AQBdCSAAAAAAAAAAAAyAIFRoZSBjdXJyZW50IHNsb3Qgb2YgdGhpcyBibG9jay4AlCBUaGlzIHdpbGwgYmUgc2V0IGluIGBvbl9pbml0aWFsaXplYC4AAAAEMFNsb3REdXJhdGlvbigg4C4AAAAAAAAUDQEgVGhlIHNsb3QgZHVyYXRpb24gQXVyYSBzaG91bGQgcnVuIHdpdGgsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMuACEBIFRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhpcyB0eXBlIGNhbiBiZSBjaGFuZ2VkIHdpdGggYSBydW50aW1lIHVwZ3JhZGUuADUBIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBlaXRoZXIgdXNlIFtgTWluaW11bVBlcmlvZFRpbWVzVHdvYF0gb3IgYSBjb25zdC4AAAQsQXV0aG9yaXR5SWQ9AQSYIFRoZSBpZGVudGlmaWVyIHR5cGUgZm9yIGFuIGF1dGhvcml0eS4AFwAAHEF1cmFFeHQBHEF1cmFFeHQILEF1dGhvcml0aWVzAQBVCQQAFJQgU2VydmVzIGFzIGNhY2hlIGZvciB0aGUgYXV0aG9yaXRpZXMuAHEBIFRoZSBhdXRob3JpdGllcyBpbiBBdVJhIGFyZSBvdmVyd3JpdHRlbiBpbiBgb25faW5pdGlhbGl6ZWAgd2hlbiB3ZSBzd2l0Y2ggdG8gYSBuZXcgc2Vzc2lvbixdASBidXQgd2UgcmVxdWlyZSB0aGUgb2xkIGF1dGhvcml0aWVzIHRvIHZlcmlmeSB0aGUgc2VhbCB3aGVuIHZhbGlkYXRpbmcgYSBQb1YuIFRoaXMgd2lsbA0BIGFsd2F5cyBiZSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgQXVSYSBhdXRob3JpdGllcyBpbiBgb25fZmluYWxpemVgLgA0UmVsYXlTbG90SW5mbwAAYQkEABAJASBDdXJyZW50IHJlbGF5IGNoYWluIHNsb3QgcGFpcmVkIHdpdGggYSBudW1iZXIgb2YgYXV0aG9yZWQgYmxvY2tzLgBlASBUaGlzIGlzIHVwZGF0ZWQgaW4gW2BGaXhlZFZlbG9jaXR5Q29uc2Vuc3VzSG9vazo6b25fc3RhdGVfcHJvb2ZgXSB3aXRoIHRoZSBjdXJyZW50IHJlbGF53CBjaGFpbiBzbG90IGFzIHByb3ZpZGVkIGJ5IHRoZSByZWxheSBjaGFpbiBzdGF0ZSBwcm9vZi4AAAAAAAAAGAAAJFhjbXBRdWV1ZQEkWGNtcFF1ZXVlHFBJbmJvdW5kWGNtcFN1c3BlbmRlZAEAZQkEACANASBUaGUgc3VzcGVuZGVkIGluYm91bmQgWENNUCBjaGFubmVscy4gQWxsIG90aGVycyBhcmUgbm90IHN1c3BlbmRlZC4AcQEgVGhpcyBpcyBhIGBTdG9yYWdlVmFsdWVgIGluc3RlYWQgb2YgYSBgU3RvcmFnZU1hcGAgc2luY2Ugd2UgZXhwZWN0IG11bHRpcGxlIHJlYWRzIHBlciBibG9ja2kBIHRvIGRpZmZlcmVudCBrZXlzIHdpdGggYSBvbmUgYnl0ZSBwYXlsb2FkLiBUaGUgYWNjZXNzIHRvIGBCb3VuZGVkQlRyZWVTZXRgIHdpbGwgYmUgY2FjaGVkFQEgd2l0aGluIHRoZSBibG9jayBhbmQgdGhlcmVmb3JlIG9ubHkgaW5jbHVkZWQgb25jZSBpbiB0aGUgcHJvb2Ygc2l6ZS4AZQEgTk9URTogVGhlIFBvViBiZW5jaG1hcmtpbmcgY2Fubm90IGtub3cgdGhpcyBhbmQgd2lsbCBvdmVyLWVzdGltYXRlLCBidXQgdGhlIGFjdHVhbCBwcm9vZkQgd2lsbCBiZSBzbWFsbGVyLgBIT3V0Ym91bmRYY21wU3RhdHVzAQBtCQQAGF0BIFRoZSBub24tZW1wdHkgWENNUCBjaGFubmVscyBpbiBvcmRlciBvZiBiZWNvbWluZyBub24tZW1wdHksIGFuZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0UQEgYW5kIGxhc3Qgb3V0Ym91bmQgbWVzc2FnZS4gSWYgdGhlIHR3byBpbmRpY2VzIGFyZSBlcXVhbCwgdGhlbiBpdCBpbmRpY2F0ZXMgYW4gZW1wdHlZASBxdWV1ZSBhbmQgdGhlcmUgbXVzdCBiZSBhIG5vbi1gT2tgIGBPdXRib3VuZFN0YXR1c2AuIFdlIGFzc3VtZSBxdWV1ZXMgZ3JvdyBubyBncmVhdGVyWQEgdGhhbiA2NTUzNSBpdGVtcy4gUXVldWUgaW5kaWNlcyBmb3Igbm9ybWFsIG1lc3NhZ2VzIGJlZ2luIGF0IG9uZTsgemVybyBpcyByZXNlcnZlZCBpbhEBIGNhc2Ugb2YgdGhlIG5lZWQgdG8gc2VuZCBhIGhpZ2gtcHJpb3JpdHkgc2lnbmFsIG1lc3NhZ2UgdGhpcyBibG9jay4JASBUaGUgYm9vbCBpcyB0cnVlIGlmIHRoZXJlIGlzIGEgc2lnbmFsIG1lc3NhZ2Ugd2FpdGluZyB0byBiZSBzZW50LgBQT3V0Ym91bmRYY21wTWVzc2FnZXMBAQgCBYEJhQkEAAS8IFRoZSBtZXNzYWdlcyBvdXRib3VuZCBpbiBhIGdpdmVuIFhDTVAgY2hhbm5lbC4AOFNpZ25hbE1lc3NhZ2VzAQEEApyFCQQABKAgQW55IHNpZ25hbCBtZXNzYWdlcyB3YWl0aW5nIHRvIGJlIHNlbnQuACxRdWV1ZUNvbmZpZwEAiQkwIAAAADAAAAAIAAAABBUBIFRoZSBjb25maWd1cmF0aW9uIHdoaWNoIGNvbnRyb2xzIHRoZSBkeW5hbWljcyBvZiB0aGUgb3V0Ym91bmQgcXVldWUuADhRdWV1ZVN1c3BlbmRlZAEAyAQABEEBIFdoZXRoZXIgb3Igbm90IHRoZSBYQ01QIHF1ZXVlIGlzIHN1c3BlbmRlZCBmcm9tIGV4ZWN1dGluZyBpbmNvbWluZyBYQ01zIG9yIG5vdC4ARERlbGl2ZXJ5RmVlRmFjdG9yAQEEBZwtAUAAAGSns7bgDQAAAAAAAAAABMQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkuAAFBAQABFQcADExNYXhJbmJvdW5kU3VzcGVuZGVkOBDoAwAAFEkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmJvdW5kIFhDTVAgY2hhbm5lbHMgdGhhdCBjYW4gYmUgc3VzcGVuZGVkIHNpbXVsdGFuZW91c2x5LgBdASBBbnkgZnVydGhlciBjaGFubmVsIHN1c3BlbnNpb25zIHdpbGwgZmFpbCBhbmQgbWVzc2FnZXMgbWF5IGdldCBkcm9wcGVkIHdpdGhvdXQgZnVydGhlckUBIG5vdGljZS4gQ2hvb3NpbmcgYSBoaWdoIHZhbHVlICgxMDAwKSBpcyBva2F5OyB0aGUgdHJhZGUtb2ZmIHRoYXQgaXMgZGVzY3JpYmVkIGlu2CBbYEluYm91bmRYY21wU3VzcGVuZGVkYF0gc3RpbGwgYXBwbGllcyBhdCB0aGF0IHNjYWxlLgBkTWF4QWN0aXZlT3V0Ym91bmRDaGFubmVsczgQgAAAACBlASBNYXhpbWFsIG51bWJlciBvZiBvdXRib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGhhdmUgbWVzc2FnZXMgcXVldWVkIGF0IHRoZSBzYW1lIHRpbWUuAFUBIElmIHRoaXMgaXMgcmVhY2hlZCwgdGhlbiBubyBmdXJ0aGVyIG1lc3NhZ2VzIGNhbiBiZSBzZW50IHRvIGNoYW5uZWxzIHRoYXQgZG8gbm90IHlldF0BIGhhdmUgYSBtZXNzYWdlIHF1ZXVlZC4gVGhpcyBzaG91bGQgYmUgc2V0IHRvIHRoZSBleHBlY3RlZCBtYXhpbXVtIG9mIG91dGJvdW5kIGNoYW5uZWxzYQEgd2hpY2ggaXMgZGV0ZXJtaW5lZCBieSBbYFNlbGY6OkNoYW5uZWxJbmZvYF0uIEl0IGlzIGltcG9ydGFudCB0byBzZXQgdGhpcyBsYXJnZSBlbm91Z2gsXQEgc2luY2Ugb3RoZXJ3aXNlIHRoZSBjb25nZXN0aW9uIGNvbnRyb2wgcHJvdG9jb2wgd2lsbCBub3Qgd29yayBhcyBpbnRlbmRlZCBhbmQgbWVzc2FnZXNRASBtYXkgYmUgZHJvcHBlZC4gVGhpcyB2YWx1ZSBpbmNyZWFzZXMgdGhlIFBvViBhbmQgc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgcGlja2VkIHRvb00BIGhpZ2guIEdvdmVybmFuY2UgbmVlZHMgdG8gcGF5IGF0dGVudGlvbiB0byBub3Qgb3BlbiBtb3JlIGNoYW5uZWxzIHRoYW4gdGhpcyB2YWx1ZS4ALE1heFBhZ2VTaXplOBAAnAEAFLggVGhlIG1heGltYWwgcGFnZSBzaXplIGZvciBIUk1QIG1lc3NhZ2UgcGFnZXMuAGEBIEEgbG93ZXIgbGltaXQgY2FuIGJlIHNldCBkeW5hbWljYWxseSwgYnV0IHRoaXMgaXMgdGhlIGhhcmQtbGltaXQgZm9yIHRoZSBQb1Ygd29yc3QgY2FzZVUBIGJlbmNobWFya2luZy4gVGhlIGxpbWl0IGZvciB0aGUgc2l6ZSBvZiBhIG1lc3NhZ2UgaXMgc2xpZ2h0bHkgYmVsb3cgdGhpcywgc2luY2Ugc29tZbggb3ZlcmhlYWQgaXMgaW5jdXJyZWQgZm9yIGVuY29kaW5nIHRoZSBmb3JtYXQuAAGNCQAAAB4AACxQb2xrYWRvdFhjbQEsUG9sa2Fkb3RYY208MFF1ZXJ5Q291bnRlcgEAKCAAAAAAAAAAAASIIFRoZSBsYXRlc3QgYXZhaWxhYmxlIHF1ZXJ5IGluZGV4LgAcUXVlcmllcwABBAIokQkEAARUIFRoZSBvbmdvaW5nIHF1ZXJpZXMuAChBc3NldFRyYXBzAQEEBjw4EAAAAAAQaCBUaGUgZXhpc3RpbmcgYXNzZXQgdHJhcHMuAGEBIEtleSBpcyB0aGUgYmxha2UyIDI1NiBoYXNoIG9mIChvcmlnaW4sIHZlcnNpb25lZCBgQXNzZXRzYCkgcGFpci4gVmFsdWUgaXMgdGhlIG51bWJlciBvZh0BIHRpbWVzIHRoaXMgcGFpciBoYXMgYmVlbiB0cmFwcGVkICh1c3VhbGx5IGp1c3QgMSBpZiBpdCBleGlzdHMgYXQgYWxsKS4AOFNhZmVYY21WZXJzaW9uAAA4BAAIYQEgRGVmYXVsdCB2ZXJzaW9uIHRvIGVuY29kZSBYQ00gd2hlbiBsYXRlc3QgdmVyc2lvbiBvZiBkZXN0aW5hdGlvbiBpcyB1bmtub3duLiBJZiBgTm9uZWAsPQEgdGhlbiB0aGUgZGVzdGluYXRpb25zIHdob3NlIFhDTSB2ZXJzaW9uIGlzIHVua25vd24gYXJlIGNvbnNpZGVyZWQgdW5yZWFjaGFibGUuAEBTdXBwb3J0ZWRWZXJzaW9uAAEIBQKlCTgEAATwIFRoZSBMYXRlc3QgdmVyc2lvbnMgdGhhdCB3ZSBrbm93IHZhcmlvdXMgbG9jYXRpb25zIHN1cHBvcnQuAEBWZXJzaW9uTm90aWZpZXJzAAEIBQKlCSgEAAQFASBBbGwgbG9jYXRpb25zIHRoYXQgd2UgaGF2ZSByZXF1ZXN0ZWQgdmVyc2lvbiBub3RpZmljYXRpb25zIGZyb20uAFBWZXJzaW9uTm90aWZ5VGFyZ2V0cwABCAUCpQmpCQQACHEBIFRoZSB0YXJnZXQgbG9jYXRpb25zIHRoYXQgYXJlIHN1YnNjcmliZWQgdG8gb3VyIHZlcnNpb24gY2hhbmdlcywgYXMgd2VsbCBhcyB0aGUgbW9zdCByZWNlbnSUIG9mIG91ciB2ZXJzaW9ucyB3ZSBpbmZvcm1lZCB0aGVtIG9mLgBUVmVyc2lvbkRpc2NvdmVyeVF1ZXVlAQCtCQQADGUBIERlc3RpbmF0aW9ucyB3aG9zZSBsYXRlc3QgWENNIHZlcnNpb24gd2Ugd291bGQgbGlrZSB0byBrbm93LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLCBhbmRxASB0aGUgYHUzMmAgY291bnRlciBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgYSBzZW5kIHRvIHRoZSBkZXN0aW5hdGlvbiBoYXMgYmVlbiBhdHRlbXB0ZWQsjCB3aGljaCBpcyB1c2VkIGFzIGEgcHJpb3JpdGl6YXRpb24uAEBDdXJyZW50TWlncmF0aW9uAAC5CQQABJwgVGhlIGN1cnJlbnQgbWlncmF0aW9uJ3Mgc3RhZ2UsIGlmIGFueS4AVFJlbW90ZUxvY2tlZEZ1bmdpYmxlcwABDAUCAr0JwQkEAATwIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gYSByZW1vdGUgY2hhaW4uADxMb2NrZWRGdW5naWJsZXMAAQQCBNEJBAAE4CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIHRoaXMgY2hhaW4uAFRYY21FeGVjdXRpb25TdXNwZW5kZWQBAMgEAAS0IEdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuADxTaG91bGRSZWNvcmRYY20BAMgEABxZASBXaGV0aGVyIG9yIG5vdCBpbmNvbWluZyBYQ01zIChib3RoIGV4ZWN1dGVkIGxvY2FsbHkgYW5kIHJlY2VpdmVkKSBzaG91bGQgYmUgcmVjb3JkZWQuxCBPbmx5IG9uZSBYQ00gcHJvZ3JhbSB3aWxsIGJlIHJlY29yZGVkIGF0IGEgdGltZS4pASBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgaW4gcnVudGltZSBBUElzLCBhbmQgaXQncyBhZHZpc2VkIGl0IHN0YXlzIGZhbHNlDQEgZm9yIGFsbCBvdGhlciB1c2UgY2FzZXMsIHNvIGFzIHRvIG5vdCBkZWdyYWRlIHJlZ3VsYXIgcGVyZm9ybWFuY2UuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4ALFJlY29yZGVkWGNtAABdAgQAGEkBIElmIFtgU2hvdWxkUmVjb3JkWGNtYF0gaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGxhc3QgWENNIHByb2dyYW0gZXhlY3V0ZWQgbG9jYWxseVQgd2lsbCBiZSBzdG9yZWQgaGVyZS4pASBSdW50aW1lIEFQSXMgY2FuIGZldGNoIHRoZSBYQ00gdGhhdCB3YXMgZXhlY3V0ZWQgYnkgYWNjZXNzaW5nIHRoaXMgdmFsdWUuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4AREF1dGhvcml6ZWRBbGlhc2VzAAEEAkkB3QkEAAxlASBNYXAgb2YgYXV0aG9yaXplZCBhbGlhc2VycyBvZiBsb2NhbCBvcmlnaW5zLiBFYWNoIGxvY2FsIGxvY2F0aW9uIGNhbiBhdXRob3JpemUgYSBsaXN0IG9mWQEgb3RoZXIgbG9jYXRpb25zIHRvIGFsaWFzIGludG8gaXQuIEVhY2ggYWxpYXNlciBpcyBvbmx5IHZhbGlkIHVudGlsIGl0cyBpbm5lciBgZXhwaXJ5YDggYmxvY2sgbnVtYmVyLgABRQEIAQK5AVRoaXMgZXh0cmluc2ljIHVzZXMgYFdlaWdodExpbWl0OjpVbmxpbWl0ZWRgLCBwbGVhc2UgbWlncmF0ZSB0byBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAIC2QFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAEZBwAQRFVuaXZlcnNhbExvY2F0aW9u5BgCCQIAeRcEhCBUaGlzIGNoYWluJ3MgVW5pdmVyc2FsIExvY2F0aW9uLgBQQWR2ZXJ0aXNlZFhjbVZlcnNpb244EAUAAAAIJQEgVGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbiB0aGF0IHdlIGFkdmVydGlzZS4gR2VuZXJhbGx5IGp1c3Qgc2V0IGl0IHRvhCBgcGFsbGV0X3hjbTo6Q3VycmVudFhjbVZlcnNpb25gLgAoTWF4TG9ja2VyczgQCAAAAAQZASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9jYWwgWENNIGxvY2tzIHRoYXQgYSBzaW5nbGUgYWNjb3VudCBtYXkgaGF2ZS4AWE1heFJlbW90ZUxvY2tDb25zdW1lcnM4EAAAAAAE/CBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uc3VtZXJzIGEgc2luZ2xlIHJlbW90ZSBsb2NrIG1heSBoYXZlLgAB9QkEGAK8VXNlIGBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3JgIGluc3RlYWQBGDIwLjAuMAgsUnVudGltZUNhbGwgBGQgVGhlIHJ1bnRpbWUgYENhbGxgIHR5cGUucFJlbW90ZUxvY2tDb25zdW1lcklkZW50aWZpZXIQBMQgVGhlIElEIHR5cGUgZm9yIGxvY2FsIGNvbnN1bWVycyBvZiByZW1vdGUgbG9ja3MuAB8AAChDdW11bHVzWGNtAAEZAwABKQcAAAAAACAAADBNZXNzYWdlUXVldWUBME1lc3NhZ2VRdWV1ZQwwQm9va1N0YXRlRm9yAQEEBSED/Ql0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzCBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGFuZCBsYXN0IChub24tZW1wdHkpIHBhZ2VzLgAsU2VydmljZUhlYWQAACEDBAAEvCBUaGUgb3JpZ2luIGF0IHdoaWNoIHdlIHNob3VsZCBiZWdpbiBzZXJ2aWNpbmcuABRQYWdlcwABCAUFCQoNCgQABIggVGhlIG1hcCBvZiBwYWdlIGluZGljZXMgdG8gcGFnZXMuAAEdAwABLQcAECBIZWFwU2l6ZTgQAJwBABQ9ASBUaGUgc2l6ZSBvZiB0aGUgcGFnZTsgdGhpcyBpbXBsaWVzIHRoZSBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSB3aGljaCBjYW4gYmUgc2VudC4AWQEgQSBnb29kIHZhbHVlIGRlcGVuZHMgb24gdGhlIGV4cGVjdGVkIG1lc3NhZ2Ugc2l6ZXMsIHRoZWlyIHdlaWdodHMsIHRoZSB3ZWlnaHQgdGhhdCBpc10BIGF2YWlsYWJsZSBmb3IgcHJvY2Vzc2luZyB0aGVtIGFuZCB0aGUgbWF4aW1hbCBuZWVkZWQgbWVzc2FnZSBzaXplLiBUaGUgbWF4aW1hbCBtZXNzYWdlEQEgc2l6ZSBpcyBzbGlnaHRseSBsb3dlciB0aGFuIHRoaXMgYXMgZGVmaW5lZCBieSBbYE1heE1lc3NhZ2VMZW5PZmBdLgAgTWF4U3RhbGU4EAgAAAAMXQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0YWxlIHBhZ2VzIChpLmUuIG9mIG92ZXJ3ZWlnaHQgbWVzc2FnZXMpIGFsbG93ZWQgYmVmb3JlIGN1bGxpbmdRASBjYW4gaGFwcGVuLiBPbmNlIHRoZXJlIGFyZSBtb3JlIHN0YWxlIHBhZ2VzIHRoYW4gdGhpcywgdGhlbiBoaXN0b3JpY2FsIHBhZ2VzIG1heSBiZfwgZHJvcHBlZCwgZXZlbiBpZiB0aGV5IGNvbnRhaW4gdW5wcm9jZXNzZWQgb3ZlcndlaWdodCBtZXNzYWdlcy4ANFNlcnZpY2VXZWlnaHSlAiwBBwBYQPuiAgDgABhBASBUaGUgYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB3aGljaCBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yqCBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2luaXRpYWxpemVgLgD8IFRoaXMgbWF5IGJlIGxlZ2l0aW1hdGVseSBgTm9uZWAgaW4gdGhlIGNhc2UgdGhhdCB5b3Ugd2lsbCBjYWxsXQEgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBtYW51YWxseSBvciBzZXQgW2BTZWxmOjpJZGxlTWF4U2VydmljZVdlaWdodGBdIHRvIGhhdmVUIGl0IHJ1biBpbiBgb25faWRsZWAuAFBJZGxlTWF4U2VydmljZVdlaWdodKUCLAEHAFhA+6ICAOAAFF0BIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgdG8gYmUgdXNlZCBmcm9tIHJlbWFpbmluZyB3ZWlnaHQgYG9uX2lkbGVgIHdoaWNoQQEgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvciBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2lkbGVgLj0BIFVzZWZ1bCBmb3IgcGFyYWNoYWlucyB0byBwcm9jZXNzIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIGJsb2NrIHRoZXkgYXJlIHJlY2VpdmVkLgApASBJZiBgTm9uZWAsIGl0IHdpbGwgbm90IGNhbGwgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBpbiBgb25faWRsZWAuAAEVCgAEEFNpemU4BFQgUGFnZS9oZWFwIHNpemUgdHlwZS4AIgAAHFV0aWxpdHkAASUDAAE1BwAETGJhdGNoZWRfY2FsbHNfbGltaXQ4EKoqAAAEqCBUaGUgbGltaXQgb24gdGhlIG51bWJlciBvZiBiYXRjaGVkIGNhbGxzLgABGQoACCxSdW50aW1lQ2FsbCAEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLjRQYWxsZXRzT3JpZ2luMQME8CBUaGUgY2FsbGVyIG9yaWdpbiwgb3ZlcmFyY2hpbmcgdHlwZSBvZiBhbGwgcGFsbGV0cyBvcmlnaW5zLgAoAAAgTXVsdGlzaWcBIE11bHRpc2lnBCRNdWx0aXNpZ3MAAQgFAh0KIQoEAASUIFRoZSBzZXQgb2Ygb3BlbiBtdWx0aXNpZyBvcGVyYXRpb25zLgABkQMAAT0HAAwsRGVwb3NpdEJhc2XEQAA8kWAEAAAAAAAAAAAAAAAYWQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbiBvciB0b4Qgc3RvcmUgYSBkaXNwYXRjaCBjYWxsIGZvciBsYXRlci4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzMQEgYDQgKyBzaXplb2YoKEJsb2NrTnVtYmVyLCBCYWxhbmNlLCBBY2NvdW50SWQpKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzgCBgMzIgKyBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuADREZXBvc2l0RmFjdG9yxEAAILy+AAAAAAAAAAAAAAAADFUBIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciB1bml0IHRocmVzaG9sZCB3aGVuIGNyZWF0aW5nIGEgbXVsdGlzaWcgZXhlY3V0aW9uLgAlASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyAzMiBieXRlcyBtb3JlIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4AOE1heFNpZ25hdG9yaWVzOBBkAAAABOwgVGhlIG1heGltdW0gYW1vdW50IG9mIHNpZ25hdG9yaWVzIGFsbG93ZWQgaW4gdGhlIG11bHRpc2lnLgABKQoABCxSdW50aW1lQ2FsbCAEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLgApAAAQU3VkbwEQU3VkbwQMS2V5AAAEBAAEhCBUaGUgYEFjY291bnRJZGAgb2YgdGhlIHN1ZG8ga2V5LgABnQMAAUEHAAABLQoABCxSdW50aW1lQ2FsbCAESCBBIHN1ZG8tYWJsZSBjYWxsLgAqAAA8VmVyaWZ5U2lnbmF0dXJlAAAAAAAEJFNpZ25hdHVyZT0EBPQgU2lnbmF0dXJlIHR5cGUgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIHRoaXMgcGFsbGV0IGNhbiB2ZXJpZnkuACsAABRQcm94eQEUUHJveHkIHFByb3hpZXMBAQQFBDEKRAAAAAAAAAAAAAAAAAAAAAAACEUBIFRoZSBzZXQgb2YgYWNjb3VudCBwcm94aWVzLiBNYXBzIHRoZSBhY2NvdW50IHdoaWNoIGhhcyBkZWxlZ2F0ZWQgdG8gdGhlIGFjY291bnRzIQEgd2hpY2ggYXJlIGJlaW5nIGRlbGVnYXRlZCB0bywgdG9nZXRoZXIgd2l0aCB0aGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdC4ANEFubm91bmNlbWVudHMBAQQFBEEKRAAAAAAAAAAAAAAAAAAAAAAABKwgVGhlIGFubm91bmNlbWVudHMgbWFkZSBieSB0aGUgcHJveHkgKGtleSkuAAGhAwABSQcAGEBQcm94eURlcG9zaXRCYXNlxEAADHdCAwAAAAAAAAAAAAAAEBEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBwcm94eS4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzJQEgYHNpemVvZihCYWxhbmNlKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzIGBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuAEhQcm94eURlcG9zaXRGYWN0b3LEQAABssQAAAAAAAAAAAAAAAAUvCBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgcHJveHkgYWRkZWQuADUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIHBsdXMgYW4gaW5zdGFuY2Ugb2YgYFByb3h5VHlwZWAgbW9yZSBpbnRvIGFhASBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4gVGh1cywgd2hlbiBjb25maWd1cmluZyBgUHJveHlEZXBvc2l0RmFjdG9yYCBvbmUgc2hvdWxkIHRha2X0IGludG8gYWNjb3VudCBgMzIgKyBwcm94eV90eXBlLmVuY29kZSgpLmxlbigpYCBieXRlcyBvZiBkYXRhLgAoTWF4UHJveGllczgQIAAAAATwIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBwcm94aWVzIGFsbG93ZWQgZm9yIGEgc2luZ2xlIGFjY291bnQuAChNYXhQZW5kaW5nOBAgAAAABEUBIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLWRlbGF5ZWQgYW5ub3VuY2VtZW50cyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBlbmRpbmcuAFxBbm5vdW5jZW1lbnREZXBvc2l0QmFzZcRAABQmcgMAAAAAAAAAAAAAABAxASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGFuIGFubm91bmNlbWVudC4ASQEgVGhpcyBpcyBoZWxkIHdoZW4gYSBuZXcgc3RvcmFnZSBpdGVtIGhvbGRpbmcgYSBgQmFsYW5jZWAgaXMgY3JlYXRlZCAodHlwaWNhbGx5IDE2ICBieXRlcykuAGRBbm5vdW5jZW1lbnREZXBvc2l0RmFjdG9yxEAAAmSJAQAAAAAAAAAAAAAAENQgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIGFubm91bmNlbWVudCBtYWRlLgBZASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyBhbiBgQWNjb3VudElkYCwgYEhhc2hgIGFuZCBgQmxvY2tOdW1iZXJgICh0eXBpY2FsbHkgNjggYnl0ZXMpjCBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuAAFRCgAILFJ1bnRpbWVDYWxsIARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuJFByb3h5VHlwZakDEFUBIEEga2luZCBvZiBwcm94eTsgc3BlY2lmaWVkIHdpdGggdGhlIHByb3h5IGFuZCBwYXNzZWQgaW4gdG8gdGhlIGBJc1Byb3h5YWJsZWAgZmlsdGVyLlEBIFRoZSBpbnN0YW5jZSBmaWx0ZXIgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gY2FsbCBtYXkgYmUgcHJveGllZCB1bmRlciB0aGlzIHR5cGUuAE0BIElNUE9SVEFOVDogYERlZmF1bHRgIG11c3QgYmUgcHJvdmlkZWQgYW5kIE1VU1QgQkUgdGhlIHRoZSAqbW9zdCBwZXJtaXNzaXZlKiB2YWx1ZS4IGAnXg0Zyeg71jA+gO6+jI8vFFIjZKhqnE3sDv7UO/BdEY2hlY2tfcGVybWlzc2lvbnMIEGNhbGwgKHByb3h5X3R5cGWpA8gE9CBDaGVjayBpZiBhIGBSdW50aW1lQ2FsbGAgaXMgYWxsb3dlZCBmb3IgYSBnaXZlbiBgUHJveHlUeXBlYC4AGAnXg0Zyeg71jA+gO6+jIxcUsGB9Yq8KOzsK0sXVXFgsaXNfc3VwZXJzZXQIIHRvX2NoZWNrqQMcYWdhaW5zdKkDyAT0IENoZWNrIGlmIG9uZSBgUHJveHlUeXBlYCBpcyBhIHN1YnNldCBvZiBhbm90aGVyIGBQcm94eVR5cGVgLgAsAAAgSWRlbnRpdHkBIElkZW50aXR5MChJZGVudGl0eU9mAAEEBQRVCgQAEGkBIEluZm9ybWF0aW9uIHRoYXQgaXMgcGVydGluZW50IHRvIGlkZW50aWZ5IHRoZSBlbnRpdHkgYmVoaW5kIGFuIGFjY291bnQuIEZpcnN0IGl0ZW0gaXMgdGhl4CByZWdpc3RyYXRpb24sIHNlY29uZCBpcyB0aGUgYWNjb3VudCdzIHByaW1hcnkgdXNlcm5hbWUuAMAgVFdPWC1OT1RFOiBPSyDigJUgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4AKFVzZXJuYW1lT2YAAQQFBEkEBAAEvCBJZGVudGlmaWVzIHRoZSBwcmltYXJ5IHVzZXJuYW1lIG9mIGFuIGFjY291bnQuABxTdXBlck9mAAEEAgQxBAQACGEBIFRoZSBzdXBlci1pZGVudGl0eSBvZiBhbiBhbHRlcm5hdGl2ZSAic3ViIiBpZGVudGl0eSB0b2dldGhlciB3aXRoIGl0cyBuYW1lLCB3aXRoaW4gdGhhdFEBIGNvbnRleHQuIElmIHRoZSBhY2NvdW50IGlzIG5vdCBzb21lIG90aGVyIGFjY291bnQncyBzdWItaWRlbnRpdHksIHRoZW4ganVzdCBgTm9uZWAuABhTdWJzT2YBAQQFBGUKRAAAAAAAAAAAAAAAAAAAAAAAFLggQWx0ZXJuYXRpdmUgInN1YiIgaWRlbnRpdGllcyBvZiB0aGlzIGFjY291bnQuAB0BIFRoZSBmaXJzdCBpdGVtIGlzIHRoZSBkZXBvc2l0LCB0aGUgc2Vjb25kIGlzIGEgdmVjdG9yIG9mIHRoZSBhY2NvdW50cy4AwCBUV09YLU5PVEU6IE9LIOKAlSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLgAoUmVnaXN0cmFycwEAaQoEABBNASBUaGUgc2V0IG9mIHJlZ2lzdHJhcnMuIE5vdCBleHBlY3RlZCB0byBnZXQgdmVyeSBiaWcgYXMgY2FuIG9ubHkgYmUgYWRkZWQgdGhyb3VnaCBhqCBzcGVjaWFsIG9yaWdpbiAobGlrZWx5IGEgY291bmNpbCBtb3Rpb24pLgApASBUaGUgaW5kZXggaW50byB0aGlzIGNhbiBiZSBjYXN0IHRvIGBSZWdpc3RyYXJJbmRleGAgdG8gZ2V0IGEgdmFsaWQgdmFsdWUuACxBdXRob3JpdHlPZgABBAV5Cn0KBAAE9CBBIG1hcCBvZiB0aGUgYWNjb3VudHMgd2hvIGFyZSBhdXRob3JpemVkIHRvIGdyYW50IHVzZXJuYW1lcy4AOFVzZXJuYW1lSW5mb09mAAEEAkkEgQoEABh1ASBSZXZlcnNlIGxvb2t1cCBmcm9tIGB1c2VybmFtZWAgdG8gdGhlIGBBY2NvdW50SWRgIHRoYXQgaGFzIHJlZ2lzdGVyZWQgaXQgYW5kIHRoZSBwcm92aWRlciBvZm0BIHRoZSB1c2VybmFtZS4gVGhlIGBvd25lcmAgdmFsdWUgc2hvdWxkIGJlIGEga2V5IGluIHRoZSBgVXNlcm5hbWVPZmAgbWFwLCBidXQgaXQgbWF5IG5vdCBpZvAgdGhlIHVzZXIgaGFzIGNsZWFyZWQgdGhlaXIgdXNlcm5hbWUgb3IgaXQgaGFzIGJlZW4gcmVtb3ZlZC4AaQEgTXVsdGlwbGUgdXNlcm5hbWVzIG1heSBtYXAgdG8gdGhlIHNhbWUgYEFjY291bnRJZGAsIGJ1dCBgVXNlcm5hbWVPZmAgd2lsbCBvbmx5IG1hcCB0byBvbmVIIHByaW1hcnkgdXNlcm5hbWUuAEBQZW5kaW5nVXNlcm5hbWVzAAEEAkkEiQoEACBtASBVc2VybmFtZXMgdGhhdCBhbiBhdXRob3JpdHkgaGFzIGdyYW50ZWQsIGJ1dCB0aGF0IHRoZSBhY2NvdW50IGNvbnRyb2xsZXIgaGFzIG5vdCBjb25maXJtZWRMIHRoYXQgdGhleSB3YW50IGl0LgAlASBVc2VkIHByaW1hcmlseSBpbiBjYXNlcyB3aGVyZSB0aGUgYEFjY291bnRJZGAgY2Fubm90IHByb3ZpZGUgYSBzaWduYXR1cmVdASBiZWNhdXNlIHRoZXkgYXJlIGEgcHVyZSBwcm94eSwgbXVsdGlzaWcsIGV0Yy4gSW4gb3JkZXIgdG8gY29uZmlybSBpdCwgdGhleSBzaG91bGQgY2FsbLAgW2FjY2VwdF91c2VybmFtZV0oYENhbGw6OmFjY2VwdF91c2VybmFtZWApLgAdASBGaXJzdCB0dXBsZSBpdGVtIGlzIHRoZSBhY2NvdW50IGFuZCBzZWNvbmQgaXMgdGhlIGFjY2VwdGFuY2UgZGVhZGxpbmUuAEhVbmJpbmRpbmdVc2VybmFtZXMAAQQCSQQ4BAAQXQEgVXNlcm5hbWVzIGZvciB3aGljaCB0aGUgYXV0aG9yaXR5IHRoYXQgZ3JhbnRlZCB0aGVtIGhhcyBzdGFydGVkIHRoZSByZW1vdmFsIHByb2Nlc3MgYnlxASB1bmJpbmRpbmcgdGhlbS4gRWFjaCB1bmJpbmRpbmcgdXNlcm5hbWUgbWFwcyB0byBpdHMgZ3JhY2UgcGVyaW9kIGV4cGlyeSwgd2hpY2ggaXMgdGhlIGZpcnN03CBibG9jayBpbiB3aGljaCB0aGUgdXNlcm5hbWUgY291bGQgYmUgZGVsZXRlZCB0aHJvdWdoIGHEIFtyZW1vdmVfdXNlcm5hbWVdKGBDYWxsOjpyZW1vdmVfdXNlcm5hbWVgKSBjYWxsLgBAUGVyc29uSWRlbnRpdGllcwABBAIIjQoEAAhlASBUaGUgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgcGVyc29uIHRocm91Z2ggdGhlaXIgY29udGV4dHVhbCBhbGlhcyBmb3IgdGhlIHB1cnBvc2VzIG9miCByZWdpc3RlcmluZyBpZGVudGl0eSBpbmZvcm1hdGlvbi4AOEFjY291bnRUb0FsaWFzAAEEAgQIBAAIZQEgUmV2ZXJzZSBsb29rdXAgb2YgYWNjb3VudHMgY29udHJvbGxlZCBieSBhIHBlcnNvbiB0aHJvdWdoIGEgY29udGV4dHVhbCBhbGlhcy4gQWxsIHBlb3BsZS0BIHRoYXQgcmVnaXN0ZXJlZCBhbiBpZGVudGl0eSBtdXN0IGFsc28gYXNzb2NpYXRlIGFuIG9uLWNoYWluIGFjY291bnQgdG8gaXQuAFhQZW5kaW5nVXNlcm5hbWVSZXBvcnRzAAEEAgidCgQABJQgU3RvcmVzIHBlbmRpbmcgcmVwb3J0cyBvZiB1c2VybmFtZXMuAAGtAwABUQcAQDBCYXNpY0RlcG9zaXTEQADVX7kCAAAAAAAAAAAAAAAE2CBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgYSByZWdpc3RlcmVkIGlkZW50aXR5LgAsQnl0ZURlcG9zaXTEQADh9QUAAAAAAAAAAAAAAAAEHQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIGVuY29kZWQgYnl0ZSBmb3IgYSByZWdpc3RlcmVkIGlkZW50aXR5LgA8VXNlcm5hbWVEZXBvc2l0xEAAILy+AAAAAAAAAAAAAAAACFUBIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IHBlciByZWdpc3RlcmVkIHVzZXJuYW1lLiBUaGlzIHZhbHVlIHNob3VsZCBjaGFuZ2Ugb25seSBpbvQgcnVudGltZSB1cGdyYWRlcyB3aXRoIHByb3BlciBtaWdyYXRpb24gb2YgZXhpc3RpbmcgZGVwb3NpdHMuAERTdWJBY2NvdW50RGVwb3NpdMRAAHnzjwMAAAAAAAAAAAAAAAxlASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgYSByZWdpc3RlcmVkIHN1YmFjY291bnQuIFRoaXMgc2hvdWxkIGFjY291bnQgZm9yIHRoZSBmYWN0ZQEgdGhhdCBvbmUgc3RvcmFnZSBpdGVtJ3MgdmFsdWUgd2lsbCBpbmNyZWFzZSBieSB0aGUgc2l6ZSBvZiBhbiBhY2NvdW50IElELCBhbmQgdGhlcmUgd2lsbDUBIGJlIGFub3RoZXIgdHJpZSBpdGVtIHdob3NlIHZhbHVlIGlzIHRoZSBzaXplIG9mIGFuIGFjY291bnQgSUQgcGx1cyAzMiBieXRlcy4AVFVzZXJuYW1lUmVwb3J0RGVwb3NpdMRAAChr7gAAAAAAAAAAAAAAAATIIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IHBlciByZXBvcnRlZCB1c2VybmFtZS4AOE1heFN1YkFjY291bnRzOBBkAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdWItYWNjb3VudHMgYWxsb3dlZCBwZXIgaWRlbnRpZmllZCBhY2NvdW50LgBUVXNlcm5hbWVSZXBvcnRUaW1lb3V0OBCAxhMADEkBIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgaGF2ZSB0byBwYXNzIGJldHdlZW4gdGhlIGxhc3QgdGltZSBhIGdpdmVuIHVzZXJuYW1lIHdhc10BIHJlcG9ydGVkIGFuZCBub3cgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byByZXBvcnQgaXQgYWdhaW4uIEluIG90aGVyIHdvcmRzLCBpdCByZXByZXNlbnRzlCB0aGUgdXNlcm5hbWUgdmFsaWRpdHkgc2FmZXR5IHBlcmlvZC4ANE1heFJlZ2lzdHJhcnM4EBQAAAAITQEgTWF4aW11bSBudW1iZXIgb2YgcmVnaXN0cmFycyBhbGxvd2VkIGluIHRoZSBzeXN0ZW0uIE5lZWRlZCB0byBib3VuZCB0aGUgY29tcGxleGl0eXwgb2YsIGUuZy4sIHVwZGF0aW5nIGp1ZGdlbWVudHMuADRNYXhKdWRnZW1lbnRzOBADAAAABCkBIE1heGltdW0gbnVtYmVyIG9mIGp1ZGdlbWVudHMgcGVyIHBlcnNvbmFsIGlkZW50aXR5IGFsbG93ZWQgaW4gdGhlIHN5c3RlbS4AZFBlbmRpbmdVc2VybmFtZUV4cGlyYXRpb244EECdBAAEFQEgVGhlIG51bWJlciBvZiBibG9ja3Mgd2l0aGluIHdoaWNoIGEgdXNlcm5hbWUgZ3JhbnQgbXVzdCBiZSBhY2NlcHRlZC4ATFVzZXJuYW1lR3JhY2VQZXJpb2Q4EED6AQAIWQEgVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCBtdXN0IHBhc3MgdG8gZW5hYmxlIHRoZSBwZXJtYW5lbnQgZGVsZXRpb24gb2YgYSB1c2VybmFtZSBieWggaXRzIHJlc3BlY3RpdmUgYXV0aG9yaXR5LgA8TWF4U3VmZml4TGVuZ3RoOBAHAAAABIAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgc3VmZml4LgBETWF4VXNlcm5hbWVMZW5ndGg4ECAAAAAEYQEgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgdXNlcm5hbWUsIGluY2x1ZGluZyBpdHMgc3VmZml4IGFuZCBhbnkgc3lzdGVtLWFkZGVkIGRlbGltaXRlcnMuAERNaW5Vc2VybmFtZUxlbmd0aDgQAgAAAASwIFRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lIG9yIHN1ZmZpeC4AYENyZWRlbnRpYWxSZW1vdmFsUGVuYWx0ecRAAPIFKgEAAAAAAAAAAAAAAAhVASBUaGUgZmVlIHRoYXQgYSBwZXJzb24gbXVzdCBwYXkgdGhyb3VnaCB0aGVpciBhc3NvY2lhdGVkIG9uLWNoYWluIGFjY291bnQgaW4gb3JkZXIgdG9cIHJlbW92ZSB0aGVpciBpZGVudGl0eS4AQGlkZW50aXR5X2NvbnRleHQIgHBvcDpwb2xrYWRvdC5uZXR3b3JrL2lkZW50aXR5ICAgCEEBIFRoZSBjb250ZXh0IHVzZWQgZm9yIHRoZSBwcm9vZnMgcmVxdWlyZWQgdG8gYXV0aGVudGljYXRlIGFzIGEgcGVyc29uYWwgYWxpYXMgaW4oIGlkZW50aXR5LgABoQoABERPZmZjaGFpblNpZ25hdHVyZT0EDOAgU2lnbmF0dXJlIHR5cGUgZm9yIHByZS1hdXRob3JpemluZyB1c2VybmFtZXMgb2ZmLWNoYWluLgARASBDYW4gdmVyaWZ5IHdoZXRoZXIgYW4gYFNlbGY6OlNpZ25pbmdQdWJsaWNLZXlgIGNyZWF0ZWQgYSBzaWduYXR1cmUuADIAABhQZW9wbGUBGFBlb3BsZSQQS2V5cwABBAIIKAQAFEkBIFRoZSBjdXJyZW50IGluZGl2aWR1YWxzIHdlIHJlY29nbmlzZSwgYnV0IG5vdCBuZWNlc3NhcmlseSB5ZXQgaW5jbHVkZWQgaW4gYSByaW5nLgB1ASBMb29rLXVwIGZyb20gdGhlIGNyeXB0byAocHVibGljKSBrZXkgdG8gdGhlIGltbXV0YWJsZSBJRCBvZiB0aGUgaW5kaXZpZHVhbCAoYFBlcnNvbmFsSWRgKS4gQV0BIHBlcnNvbiBjYW4gaGF2ZSB0d28gZGlmZmVyZW50IGVudHJpZXMgaW4gdGhpcyBtYXAgaWYgdGhleSBxdWV1ZWQgYSBrZXkgbWlncmF0aW9uIHdoaWNoZCBoYXNuJ3QgYmVlbiBlbmFjdGVkIHlldC4AOENvdW50ZXJGb3JLZXlzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAGFBlb3BsZQABBAIopQoEAAxJASBUaGUgY3VycmVudCBpbmRpdmlkdWFscyB3ZSByZWNvZ25pc2UsIGJ1dCBub3QgbmVjZXNzYXJpbHkgeWV0IGluY2x1ZGVkIGluIGEgcmluZy4AZQEgSW1tdXRhYmxlIElEIG9mIHRoZSBpbmRpdmlkdWFsIChgUGVyc29uYWxJZGApIHRvIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGtleSBhbmQgc3RhdHVzLgA4QWxpYXNUb0FjY291bnQAAQQCSQMEBAAEzCBDb252ZXJzaW9uIG9mIGEgY29udGV4dHVhbCBhbGlhcyB0byBhbiBhY2NvdW50IElELgA4QWNjb3VudFRvQWxpYXMAAQQCBEUDBAAEzCBDb252ZXJzaW9uIG9mIGFuIGFjY291bnQgSUQgdG8gYSBjb250ZXh0dWFsIGFsaWFzLgBMQWNjb3VudFRvUGVyc29uYWxJZAABBAIEKAQAELwgQXNzb2NpYXRpb24gb2YgYW4gYWNjb3VudCBJRCB0byBhIHBlcnNvbmFsIElELgAhASBNYW5hZ2VkIHdpdGggYHNldF9wZXJzb25hbF9pZF9hY2NvdW50YCBhbmQgYHVuc2V0X3BlcnNvbmFsX2lkX2FjY291bnRgLvggUmV2ZXJzZSBsb29rdXAgaXMgaW5zaWRlIGBQZW9wbGVgIHN0b3JhZ2UsIGluc2lkZSB0aGUgcmVjb3JkLgA4TmV4dFBlcnNvbmFsSWQBACggAAAAAAAAAAAEuCBUaGUgbmV4dCBmcmVlIGFuZCBuZXZlciByZXNlcnZlZCBwZXJzb25hbCBJRC4AXFBlb3BsZUNvbGxlY3Rpb25DcmVhdGVkAQDIBAAEwCBXaGV0aGVyIHRoZSBwZW9wbGUgY29sbGVjdGlvbiBoYXMgYmVlbiBjcmVhdGVkLgBIUmVzZXJ2ZWRQZXJzb25hbElkAAEEBSgQBAAEwCBDYW5kaWRhdGVzJyByZXNlcnZlZCBpZGVudGl0aWVzIHdoaWNoIHdlIHRyYWNrLgABWQQAAVUHABAwUmluZ0V4cG9uZW50JQUECQRNASBUaGUgcmluZyBleHBvbmVudCB1c2VkIHRvIG9wZXJhdGUgdGhlIHBlb3BsZSBtZW1iZXIgY29sbGVjdGlvbiBpbiBgTWVtYmVyU2VydmljZWAuAFxPbmJvYXJkaW5nUXVldWVQYWdlU2l6ZTgQHgAAAAhJASBNYXhpbXVtIG51bWJlciBvZiBwZW9wbGUgaW5jbHVkZWQgaW4gYW4gb25ib2FyZGluZyBxdWV1ZSBwYWdlIGJlZm9yZSBhIG5ldyBvbmUgaXMkIGNyZWF0ZWQuAGRTdGFsZUFsaWFzQ2xlYW51cEludGVydmFsOBCWAAAABDEBIEludGVydmFsIChpbiBibG9ja3MpIGF0IHdoaWNoIHRoZSBvZmZjaGFpbiB3b3JrZXIgcnVucyBzdGFsZSBhbGlhcyBjbGVhbnVwLgBwYWNjb3VudF9zZXR1cF90aW1lX3RvbGVyYW5jZTgQWAIAABQ9ASBUaGUgYW1vdW50IG9mIGJsb2NrIG51bWJlciB0b2xlcmFuY2Ugd2UgYWxsb3cgZm9yIGEgc2V0dXAgYWNjb3VudCB0cmFuc2FjdGlvbi4ABQEgYHNldF9hbGlhc19hY2NvdW50YCBhbmQgYHNldF9wZXJzb25hbF9pZF9hY2NvdW50YCBjYWxscyBjb250YWluc1EBIGBjYWxsX3ZhbGlkX2F0YCBhcyBhIHBhcmFtZXRlciwgdGhvc2UgY2FsbHMgYXJlIHZhbGlkIGlmIHRoZSBibG9jayBudW1iZXIgaXMgd2l0aGluWCB0aGUgdG9sZXJhbmNlIHBlcmlvZC4AAakKAAAAMwAAHE1vYlJ1bGUBHE1vYlJ1bGUwHENyZWRpdHMBAQQCCK0KcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEjCBUaGUgdm90aW5nIHJlY29yZHMgb2YgYWxsIGFsaWFzZXMuADxWb3RpbmdQZW5hbHRpZXMAAQQCCDgEAAhxASBUaGUgdm90ZSBwZW5hbHRpZXMgb2YgdXNlcnMgYW5kIHRoZWlyIHN0YXJ0aW5nIG1vbWVudC4gVm90ZXJzIHdpdGggcGVuYWx0aWVzIGNhbm5vdCB2b3RlIGluzCBjb250ZW1wdCB1bnRpbCB0aGUgcGVuYWx0eSBleHBpcmVzIGFuZCBpcyByZW1vdmVkLgAwVm90aW5nUG9pbnRzAQEIBgKxCjgQAAAAAAhlASBUaGUgYWNjdW11bGF0ZWQgcG9pbnRzIG9mIGFsbCBhbGlhc2VzLCBkdXJpbmcgZWFjaCBmdW5kaW5nIHJvdW5kLiBUaGUgcG9pbnRzIGFjY3VtdWxhdGVkIQEgZHVyaW5nIHJvdW5kIGBOYCBjYW4gYmUgcmVkZWVtZWQgZm9yIHJld2FyZHMgb25seSBkdXJpbmcgcm91bmQgYE4gKyAxYC4AFFZvdGVzAAEIAgKxClEEBAAEuCBBbGwgdm90ZXMgY2FzdCwgc2VncmVnYXRlZCBieSBjYXNlIGFuZCB2b3Rlci4AJENhc2VDb3VudAEAOBAAAAAABBEBIFRoZSBudW1iZXIgb2YgY2FzZXMsIG9wZW4gb3IgcmVjZW50bHkgY2xvc2VkLCBzdG9yZWQgaW4gdGhlIHBhbGxldC4AJE9wZW5DYXNlcwABBAI4tQoEAAQpASBUaGUgb3BlbiBjYXNlcyByZWNvcmRlZCBpbiB0aGUgcGFsbGV0LiBUaGVzZSBjYXNlcyBjYW4gc3RpbGwgYmUgdm90ZWQgb24uACRSaXBlQ2FzZXMAAQQCOM0KBAAMdQEgVGhlIHJpcGUgY2FzZXMgcmVjb3JkZWQgaW4gdGhlIHBhbGxldC4gVGhlIHZvdGluZyBoYXMgY29uY2x1ZGVkIG9uIHRoZXNlIGNhc2VzIGFuZCBhIHZlcmRpY3RlASBoYXMgYmVlbiByZWFjaGVkLCBidXQgdGhleSBjYW5ub3QgYmUgcmVtb3ZlZCB5ZXQgaW4gb3JkZXIgdG8gYWxsb3cgcGVvcGxlIHRvIGNsYWltIHRoZWlyHCB2b3Rlcy4AJERvbmVDYXNlcwABBAI40QoEAAhhASBUaGUgZG9uZSBjYXNlcyByZWNvcmRlZCBpbiB0aGUgcGFsbGV0LiBUaGVzZSBjYXNlcyBhcmUgb2Jzb2xldGUgYW5kIGNhbiBiZSByZW1vdmVkIGZyb20kIHN0b3JhZ2UuAERBY2N1bXVsYXRlZFBvaW50cwEAKCAAAAAAAAAAAAh1ASBUaGUgbnVtYmVyIG9mIHBvaW50cyBhY2N1bXVsYXRlZCB0aHJvdWdoIGNvcnJlY3Qgdm90ZXMgZHVyaW5nIHRoZSBjdXJyZW50IHBheW91dCByb3VuZC4gVGhpc3UBIGFtb3VudCBpcyBnb2luZyB0byBkZXRlcm1pbmUgdGhlIHBvaW50L3Jld2FyZCBleGNoYW5nZSByYXRlIG9mIHRoZSBuZXh0IHJld2FyZCBwYXlvdXQgcm91bmQuAEhQYXlvdXREaXN0cmlidXRpb24AANUKBAAE2CBEZXNjcmliZXMgdGhlIHBhcmFtZXRlcnMgb2YgdGhlIGN1cnJlbnQgcGF5b3V0IHJvdW5kLgA4Um91bmRTY2hlZHVsZXMBANkKBAAEuCBEZXNjcmliZXMgdGhlIHNjaGVkdWxlcyBvZiB0aGUgcGF5b3V0IHJvdW5kcy4ALEFjdGl2ZVNpbmNlAAAoBAAIbQEgVGhlIHRpbWVzdGFtcCwgaW4gc2Vjb25kcywgb2YgdGhlIG1vbWVudCBlbm91Z2ggYWN0aXZlIHZvdGVycyB3ZXJlIGRldGVjdGVkIGFuZCB2b3Rpbmcgd2FzMQEgZW5hYmxlZC4gVGhpcyB2YWx1ZSB3aWxsIG5vdCBiZSBwcmVzZW50IGlmIHRoZXJlIGFyZSB0b28gZmV3IGFjdGl2ZSB2b3RlcnMuAAFpBAABWQcAOFBDdXJyZW5jeUxvY2F0aW9uSW5mb+AwAQMAcRcEMgV2yOsLBPQgVGhlIGxvY2F0aW9uIG9mIHRoZSB1c2VkIGN1cnJlbmN5LiBJdCBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuAFBNYXhWb3RlQ2xhaW1EdXJhdGlvbigggFEBAAAAAAAEBQEgVGhlIG51bWJlciBvZiBzZWNvbmRzIGJlZm9yZSBhIGNhc2UgdGltZXMgb3V0IGFuZCBjYW4gYmUgcmVhcGVkLgA8TWluQ2FzZUR1cmF0aW9uOBBYAgAABEEBIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBhIGNhc2UgbXVzdCBzdGF5IG9wZW4gZm9yIHZvdGluZyBiZWZvcmUgaXQgY2FuIGJlIGNsb3NlZC4ARE1heFZvdGluZ0R1cmF0aW9uOBCwBAAABC0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWNvbmRzIGZvciB3aGljaCBhIGNhc2UgY291bGQgc3RheSBvcGVuIGZvciB2b3RpbmcuAERNaW5UdXJub3V0Tm9taW5hbDgQAQAAAARFASBUaGUgbWluaW11bSBudW1iZXIgb2Ygdm90ZXMgYSBjYXNlIG11c3QgcmVjZWl2ZSBiZWZvcmUgYSB2ZXJkaWN0IGNhbiBiZSByZWFjaGVkLgBQTWluVHVybm91dFBlcmNlbnRhZ2XlCgQKCGUBIFRoZSBtaW5pbXVtIG51bWJlciBvZiB2b3RlcyBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIHZvdGVyIGNvdW50IGEgY2FzZSBtdXN0IHJlY2VpdmWEIGJlZm9yZSBhIHZlcmRpY3QgY2FuIGJlIHJlYWNoZWQuAFRWb3RpbmdQZW5hbHR5RHVyYXRpb244EMCoAAAE0CBUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IGEgcGVuYWx0eSBpcyBhcHBsaWVkIGZvci4ARE1heFZvdGVzQ2xhaW1hYmxlOBAKAAAABPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGVzIGNsYWltYWJsZSBpbiBhIHNpbmdsZSBleHRyaW5zaWMuAFBPZmZjaGFpbldvcmtJbnRlcnZhbDgQlgAAAASwIFRoZSBpbnRlcnZhbCBhdCB3aGljaCBvZmZjaGFpbiB3b3JrZXIgcnVucy4ATENsZWFuVm90ZXNCYXRjaFNpemU4EOgDAAAEJQEgTWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgdGhhdCB3aWxsIGJlIGNsZWFuZWQgZHVyaW5nIG9mZmNoYWluIHdvcmtlciBydW4uAGhWb3Rlc09wZW5Gb3JDbGFpbXNEdXJhdGlvbjgQWAIAAAgVASBUaGUgdGltZSBpbiBzZWNvbmRzIGR1cmluZyB3aGljaCB2b3RlcyBjYW4gYmUgY2xhaW1lZCBvbiBkb25lIGNhc2VzLsAgTWVhc3VyZWQgZnJvbSB0aGUgdGltZSB0aGUgY2FzZSBiZWNvbWVzICdEb25lJy4AVE1pbmltdW1Wb3RlclRocmVzaG9sZDgQAwAAAAhlASBUaGUgbWluaW11bSBudW1iZXIgb2YgYWN0aXZlIHZvdGVycyByZXF1aXJlZCB0byBhbGxvdyB2b3RpbmcuIFdoZW4gdGhpcyB0aHJlc2hvbGQgaXMgbm90hCBtZXQsIG9wZW4gY2FzZXMgY2Fubm90IHRpbWUgb3V0LgA8bW9iX3J1bGVfcG90X2lkBIBtb2RsTW9iUndyZHMAAAAAAAAAAAAAAAAAAAAAAAAAAATgIEdldCBhIHVuaXF1ZSwgaW5hY2Nlc3NpYmxlIGFjY291bnQgSUQgZnJvbSB0aGUgYFBvdElkYC4AQG1vYl9ydWxlX2NvbnRleHQIgHBvcDpwb2xrYWRvdC5uZXR3b3JrL21vYi1ydWxlICAgCFEBIFRoZSBjb250ZXh0IHVzZWQgZm9yIHRoZSBwcm9vZnMgcmVxdWlyZWQgdG8gYXV0aGVudGljYXRlIGFzIGEgcGVyc29uYWwgYWxpYXMgaW4gbW9iGCBydWxlLgAB6QoAAAA0AAAoUHJvb2ZPZkluawEoUHJvb2ZPZkluaywoQ2FuZGlkYXRlcwABBAIE7QoEAARJASBUaGUgY3VycmVudCBwZXJzb25hbCBpZGVudGl0aWVzIHdoaWNoIGFyZSBnb2luZyB0aHJvdWdoIHRoZSBwcm9vZi1vZi1pbmsgcHJvY2Vzcy4AGFBlb3BsZQABBAUo/QoEAAhxASBUaGUgcGVyc29uYWwgaWRlbnRpdGllcyB3aGljaCB3ZSB0cmFjazsgYWxsIHdoaWNoIGhhdmUgYmVlbiByZWNvZ25pemVkIHRocm91Z2ggcHJvb2Ytb2YtaW5rNCBhcmUgaW4gaGVyZS4APFJlZmVycmFsVGlja2V0cwABBAUoCQsEAAQJASBUaGUgdGlja2V0cyBzdG9yZWQgb24tY2hhaW4gcmVhZHkgdG8gYmUgdXNlZCB0byByZWZlciBjYW5kaWRhdGVzLgA4RGVzaWduRmFtaWxpZXMAAQQCLQMVCwQABKggVGhlIGN1cnJlbnQgZGVzaWduIGZhbWlsaWVzIHdlIHJlY29nbmlzZS4AQENvbW1pdHRlZERlc2lnbnMAAQgCAhkLHQsEAATUIFRoZSBjb21taXR0ZWQgZGVzaWducyB3aGljaCBhcmUgbm8gbG9uZ2VyIGF2YWlsYWJsZS4APEFsbG9jYXRpb25Db3VudAEAOBAAAAAABLAgVGhlIG51bWJlciBvZiBqdWRnZW1lbnRzIGN1cnJlbnRseSBvbmdvaW5nLgA0Q29uZmlndXJhdGlvbgEAfQSgQJ0EAAQAAADoAwAAAAAABAAAAAAgAAAAAAAgAAAAAAAIAAAAQJ0EAARMIFRoZSBjb25maWd1cmF0aW9uLgBAQXZhaWxhYmxlSW52aXRlcwEBBAIEOBAAAAAABPggTnVtYmVyIG9mIGludml0YXRpb25zIGF2YWlsYWJsZSB0byBkaXN0cmlidXRlIGZvciBhbiBhY2NvdW50LgA4UGVuZGluZ0ludml0ZXMAAQgCAiELEAQADB0BIFBlbmRpbmcgaW52aXRhdGlvbnMgZm9yIGVhY2ggaW52aXRlciAoYW4gYWNjb3VudCB0aGF0IGludml0ZXMgb3RoZXJzKS4AWQEgSWYgdGhlIGtleSBgKGludml0ZXIsIHRpY2tldClgIGV4aXN0cywgdGhlbiB0aGUgdGlja2V0IGlzIGN1cnJlbnRseSBhIHBlbmRpbmcgaW52aXRlLgBsUmVmZXJyZXJSZWltYnVyc2VtZW50VmFsdWVzAACBBAQAFGEBIFRoZSB2YWx1ZXMgb2YgdGhlIHJlaW1idXJzZW1lbnQgYXdhcmRlZCB0byByZWZlcnJlcnMsIGFsb25nIHdpdGggaG93IG1hbnkgb2YgZWFjaCB2YWx1ZW0BIHNob3VsZCBiZSBhd2FyZGVkLiBUaGVzZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiByZXZlcnNlIG9yZGVyIG9mIHRoZWlyIHByaW9yaXR5LCBzbyB0aGUgbGFzdEEBIHZhbHVlIGluIHRoZSBsaXN0IHdpbGwgYmUgdGhlIGZpcnN0IG9uZSB0byBiZSB1c2VkIGJ5IHRoZSByZWltYnVyc2VtZW50IHN5c3RlbS4ARQEgU3RvcmFnZSBpdGVtIG5hbWUga2VlcHMgdGhlIGxlZ2FjeSBwcmVmaXggZm9yIHN0b3JhZ2UgcmVhZGFiaWxpdHkgY29tcGF0aWJpbGl0eS4AbFJlZmVycmVkUmVpbWJ1cnNlbWVudFZhbHVlcwAAgQQEABRhASBUaGUgdmFsdWVzIG9mIHRoZSByZWltYnVyc2VtZW50IGF3YXJkZWQgdG8gcmVmZXJyZWQgcGVvcGxlLCBhbG9uZyB3aXRoIGhvdyBtYW55IG9mIGVhY2hxASB2YWx1ZSBzaG91bGQgYmUgYXdhcmRlZC4gVGhlc2UgdmFsdWVzIGFyZSBzdG9yZWQgaW4gcmV2ZXJzZSBvcmRlciBvZiB0aGVpciBwcmlvcml0eSwgc28gdGhlVQEgbGFzdCB2YWx1ZSBpbiB0aGUgbGlzdCB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgdG8gYmUgdXNlZCBieSB0aGUgcmVpbWJ1cnNlbWVudCBzeXN0ZW0uAEUBIFN0b3JhZ2UgaXRlbSBuYW1lIGtlZXBzIHRoZSBsZWdhY3kgcHJlZml4IGZvciBzdG9yYWdlIHJlYWRhYmlsaXR5IGNvbXBhdGliaWxpdHkuAAFxBAABXQcADEhNYXhBY3RpdmVSZWZlcnJhbHM4EAoAAAAI9CBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHJlZmVycmFscyBhIHVzZXIgY2FuIGhhdmUgb3Blbi5YIEl0IGNhbm5vdCBleGNlZWQgMjAwLgAUUG90SWQpCSBQb0lQb3RfXyDsIEFjY291bnQgSWRlbnRpZmllciBmcm9tIHdoaWNoIHRoZSByZXdhcmQgcG90IGlzIGdlbmVyYXRlZC4AKQEgVGhlIGFjY291bnQgbXVzdCBiZSBmdW5kZWQgc28gcmV3YXJkcyBjYW4gYmUgcGFpZCBkdXJpbmcgcmVnaXN0cmF0aW9uIGFuZGAgcmVmZXJyYWwgcmV3YXJkIGNsYWltcy4AEQEgVGhlIGBQYWxsZXRJZGAgbXVzdCBiZSBhIGNvbnN0YW50IGFzIGl0IGlzIGV4cG9zZWQgaW4gdGhlIG1ldGFkYXRhLmUBIENoYW5naW5nIHRoaXMgdmFsdWUgd2l0aCBhIHJ1bnRpbWUgdXBncmFkZSBjYW4gYmUgZG9uZSBhdCBhbnkgdGltZSwgdGhlIG5ldyBhY2NvdW50IHdpbGyQIHRoZW4gbmVlZCB0byBiZSBmdW5kZWQgYWNjb3JkaW5nbHkuAExwcm9vZl9vZl9pbmtfcG90X2lkBIBtb2RsUG9JUG90X18AAAAAAAAAAAAAAAAAAAAAAAAAAATUIFRoZSBhY2NvdW50IElEIG9mIHRoZSBwb3QgdXNlZCBmb3IgcmV3YXJkIHRyYW5zZmVycy4AASULAAg8VGlja2V0U2lnbmF0dXJlPQQMiCBTaWduYXR1cmUgdXNlZCB0byB2ZXJpZnkgdGlja2V0cy4AAQEgQ2FuIHZlcmlmeSB3aGV0aGVyIGFuIGBTZWxmOjpUaWNrZXRQdWJsaWNgIGNyZWF0ZWQgYSBzaWduYXR1cmUuGFRpY2tldAQEmCBUaWNrZXQgdHlwZSB1c2VkIHRvIHJlZmVyIGNhbmRpZGF0ZXMuADUAABBHYW1lARBHYW1lVFBTdG9yZWRQaGFzZUR1cmF0aW9ucwAAxQQEAAz0IFBoYXNlLWR1cmF0aW9uIG92ZXJyaWRlIHNldCBieSBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdIHZpYeAgYHNldF9nYW1lX3BoYXNlc2AuIGBOb25lYCBtZWFucyB0aGUgY2hhaW4gZmFsbHMgYmFjayB0b3AgYFQ6OkRlZmF1bHRQaGFzZUR1cmF0aW9uc2AuAERQbGF5RGVwb3NpdEFtb3VudAEAxEAAyBeoBAAAAAAAAAAAAAAAED0BIFRoZSBjb25maWd1cmVkIG5hdGl2ZSBiYWxhbmNlIGhlbGQgYXMgZGVwb3NpdCB3aGVuIGFuIGFjY291bnQgcGxheWVyIHNpZ25zIHVwLgAxASBUaGlzIHZhbHVlIGlzIG9ubHkgdXNlZCBmb3IgbmV3IGRlcG9zaXQgY3JlYXRpb25zOyBleGlzdGluZyBhY3RpdmUgZGVwb3NpdHOoIHJldGFpbiB0aGUgYW1vdW50IHRoZXkgd2VyZSBjcmVhdGVkIHdpdGguABBOZnRzAAEIAgIpCzgEACQpASBBbGwgbWludGVkIE5GVHMsIGtleWVkIGJ5IG93bmVyIGFuZCBORlQgaGFzaC4gVGhlIHZhbHVlIGlzIGEgVW5peC1zZWNvbmRzNQEgdGltZXN0YW1wIHNldCB3aGVuZXZlciB0aGUgZW50cnkgaXMgd3JpdHRlbjogYnkgdGhlIGByZXBvcnRgIGV4dHJpbnNpYyBmb3IgYTUBIGZyZXNoIGBQZXJzb25gIHZvdGUsIGJ5IGBtaW50X2F0dGVuZGFuY2VfbmZ0c2Agd2hlbiBhbiBhdHRlbmRlZSdzIGF0dGVuZGFuY2UxASBpcyBmaW5hbGlzZWQsIG9yIGJ5IGBwcm9tb3RlX25mdF9jYW5kaWRhdGVzYCB3aGVuIGEgaGVsZCBgTm90UGVyc29uYCBORlQgaXM1ASByZXNvbHZlZC4gQmFja2ZpbGwgd3JpdGVzIG92ZXJ3cml0ZSBhbiBlYXJsaWVyIHRpbWVzdGFtcCBvbiB0aGUgc2FtZSBrZXkg4oCUMQEgdGhlIHZhbHVlIGlzIHRoZXJlZm9yZSB0aGUgKm1vc3QgcmVjZW50KiBtaW50IHRpbWUsIG5vdCB0aGUgZmlyc3QuIFdpdGhpbiBhOQEgc2luZ2xlIGdhbWUgdGhlc2UgdGltZXN0YW1wcyBhcmUgYm91bmRlZCB0b2dldGhlciAodHlwaWNhbGx5IHRoZSBzYW1lIGJsb2NrKSw1ASBzbyBjbGllbnRzIGNhbiB1c2UgdGhlbSBhcyBhIHBlci1nYW1lIHZlcnNpb24gbWFya2VyIChlLmcuIG1hcHBpbmcgb2xkIG1pbnRz1CB0byBvbmUgaW1hZ2UgY29sbGVjdGlvbiBhbmQgbmV3ZXIgbWludHMgdG8gYW5vdGhlcikuADROZnRDYW5kaWRhdGVzAAEIAgIpCxAEACQpASBDYW5kaWRhdGUgTkZUcyBzdGFnZWQgZnJvbSBgTm90UGVyc29uYCByZXBvcnRzLCBoZWxkIHVudGlsIHRoZSBhdHRlc3RlZSdzXCBhdHRlbmRhbmNlIGlzIGRlY2lkZWQuADkBIER1cmluZyB0aGUgcmVwb3J0aW5nIHBoYXNlIGEgYE5vdFBlcnNvbmAgdm90ZSBzdGFnZXMgdGhlIE5GVCBoZXJlIHJhdGhlciB0aGFuPQEgbWludGluZyBkaXJlY3RseSBpbnRvIFtgTmZ0c2BdOiB0aGUgYXR0ZXN0ZWUgb25seSBlYXJucyB0aGUgTkZUIGlmIHRoZXkgZW5kIHVwIQEgY2xhc3NlZCBhcyBoYXZpbmcgYXR0ZW5kZWQuIFRoZSBmaXJzdCBrZXkgaXMgdGhlIHByb3NwZWN0aXZlIG93bmVyICh0aGUhASBhdHRlc3RlZSksIHRoZSBzZWNvbmQgaXMgdGhlIE5GVCBoYXNoIChzYW1lIGRlcml2YXRpb24gYXMgaW4gW2BOZnRzYF0pLiEBIFJlc29sdmVkIGVudHJpZXMgYXJlIGVpdGhlciBwcm9tb3RlZCBpbnRvIFtgTmZ0c2BdIG9yIGRpc2NhcmRlZCDigJQgc2Vl1CBgcHJvbW90ZV9uZnRfY2FuZGlkYXRlc2AgLyBgZGlzY2FyZF9uZnRfY2FuZGlkYXRlc2AuADxBcmNoaXZlZFBsYXllcnMAAQQCZQctCwQABCkBIEFsbCB0aGUgcGxheWVyIHdpdGggemVybyBzY29yZSBidXQgc3RpbGwgb25ib2FyZGVkIGluIGluZGl2X3BhbGxldF9zY29yZS4AHFBsYXllcnMAAQQCZQcxCwQAEHAgQWxsIHRoZSBwbGF5ZXIgaW4gdGhlIGdhbWUuACEBIEFjY291bnQtYmFzZWQgcGxheWVyIGFjY291bnRzIGluIHRoaXMgc3RvcmFnZSBhbmQgc3RhdGVtZW50IGFjY291bnRzIGlupCBbYFN0bXRBY2NvdW50VG9BbGlhc2BdIG11c3Qgbm90IG92ZXJsYXAuACRHYW1lSW5kZXgBADgQAAAAAARgIFRoZSBjdXJyZW50IGdhbWUgaW5kZXguABBHYW1lAABJCwQABMwgVGhlIGluZm9ybWF0aW9uIGZvciB0aGUgbmV4dCBnYW1lIG9yIG9uZ29pbmcgZ2FtZS4ALEdhbWVIaXN0b3J5AAEEBTg4BAAIYQEgVGhlIG1hcHBpbmcgZnJvbSBwYXN0IGdhbWVzLCBpZGVudGlmaWVkIGJ5IHRoZWlyIGdhbWUgaW5kZXgsIHRvIHRoZSBzdGFydCB0aW1lc3RhbXAsIGlueCBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLgBcUGxheWVyQXR0ZW5kYW5jZUhpc3RvcnkBAQQCZQddCwQACDEBIEVudHJpZXMgb2YgcHJldmlvdXNseSBhdHRlbmRlZCBnYW1lcyBvZiBlYWNoIHBsYXllci4gUmV0YWluZWQgb24gYG9mZmJvYXJkYAkBIGFuZCBga2lja291dGAuIEJvdW5kZWQgYnkgYE1heEF0dGVuZGFuY2VIaXN0b3J5RGVwdGhgIHBlciBwbGF5ZXIuAFBHYW1lUGFydGljaXBhbnRDb3VudAEBBAU4OBAAAAAAEPAgQ291bnQgb2YgY29uZmlybWVkIGF0dGVuZGVlcyBwZXIgZ2FtZSBpbmRleC4gSW5jcmVtZW50ZWQgYnkZASBbYFBhbGxldDo6bm90ZV9hdHRlbmRhbmNlYF0gZm9yIGV2ZXJ5IGF0dGVuZGFuY2UgZW50cnksIHJlZ2FyZGxlc3Mgb2b8IHdoZXRoZXIgdGhlIHBsYXllciBpcyByZWNvcmRlZCBhcyBgQWNjb3VudE9yUGVyc29uOjpQZXJzb25gIG9y9CBgQWNjb3VudE9yUGVyc29uOjpBY2NvdW50YC4gRXhwb3NlZCBmb3Igb2ZmLWNoYWluIGNvbnN1bWVycy4ANEluZGV4VG9QbGF5ZXIAAQQFYQtlBwQABOQgVGhlIG1hcHBpbmcgZnJvbSByb3VuZCBpbmRleCBhbmQgcGxheWVyIGluZGV4IHRvIHBsYXllci4ANFBsYXllclRvSW5kZXgAAQQCZQdlCwQABOAgVGhlIG1hcHBpbmcgZnJvbSBwbGF5ZXIgdG8gdGhlaXIgaW5kaWNlcyBpbiBlYWNoIHJvdW5kLgBEU2h1ZmZsZVJlY29nbml6ZWQAAQgFBmkLZQcEAAQBASBTdG9yYWdlIHVzZWQgdG8gY29tcHV0ZSB0aGUgc2h1ZmZsZSBvcmRlciBvZiByZWNvZ25pemVkIHBlb3BsZS4AUFNodWZmbGVOb3RSZWNvZ25pemVkAAEIBQZpC2UHBAAEVQEgU3RvcmFnZSB1c2VkIHRvIGNvbXB1dGUgdGhlIHNodWZmbGUgb3JkZXIgb2Ygbm90IHJlY29nbml6ZWQgcGVvcGxlLCBpLmUuIGNhbmRpZGF0ZXMuADRHYW1lU2NoZWR1bGVzAQBtCwQAAABAQXZhaWxhYmxlSW52aXRlcwEBBAIEOBAAAAAABOggTnVtYmVyIG9mIGludml0ZXMgYXZhaWxhYmxlIHRvIGRpc3RyaWJ1dGUgZm9yIGFuIGFjY291bnQuADhQZW5kaW5nSW52aXRlcwABCAICIQsQBAAQiCBQZW5kaW5nIGludml0ZXMgZm9yIGVhY2ggaW52aXRlci4AaQEgSWYgdGhlIGtleSBgKGludml0ZXIsIHRpY2tldClgIGV4aXN0cyB0aGVuIHRoZSB0aWNrZXQgaXMgY3VycmVudGx5IGEgcGVuZGluZyBpbnZpdGUsIGZyb200IHRoZSBpbnZpdGVyLgBIQWxpYXNUb1N0bXRBY2NvdW50AAEEAggEBAAcWQEgTWFwcGluZyBmcm9tIGFsaWFzIHRvIHRoZSBhY2NvdW50IGlkIHRvIHVzZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3RhdGVtZW50IHN0b3JlLgBBASBBY2NvdW50LWJhc2VkIHBsYXllciBzaW1wbHkgdXNlIHRoZWlyIGFjY291bnQgYW5kIGFyZSBub3QgcGFydCBvZiB0aGlzIG1hcHBpbmcuAQEgUmV2ZXJzZSBtYXBwaW5nIGlzIGF2YWlsYWJsZSBpbiBzdG9yYWdlIFtgU3RtdEFjY291bnRUb0FsaWFzYF0uAOwgVGhpcyBpcyByZW1vdmVkIHdoZW4gdGhlIGFsaWFzLWJhc2VkIHBsYXllciBnZXRzIGFyY2hpdmVkLlUBIFRoaXMgaXMgdXBkYXRlZCB3aGVuIHRoZSBhbGlhcy1iYXNlZCBwbGF5ZXIgc2lnbnMgdXAgd2l0aCBhbm90aGVyIHN0YXRlbWVudCBhY2NvdW50LgBIU3RtdEFjY291bnRUb0FsaWFzAAEEAgQIBAAkWQEgTWFwcGluZyBmcm9tIHRoZSBhY2NvdW50IGlkIHRvIHVzZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBzdGF0ZW1lbnQgc3RvcmUgdG8gdGhlIGFsaWFzLgBBASBBY2NvdW50LWJhc2VkIHBsYXllciBzaW1wbHkgdXNlIHRoZWlyIGFjY291bnQgYW5kIGFyZSBub3QgcGFydCBvZiB0aGlzIG1hcHBpbmcuAQEgUmV2ZXJzZSBtYXBwaW5nIGlzIGF2YWlsYWJsZSBpbiBzdG9yYWdlIFtgQWxpYXNUb1N0bXRBY2NvdW50YF0u7CBUaGlzIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWxpYXMtYmFzZWQgcGxheWVyIGdldHMgYXJjaGl2ZWQuVQEgVGhpcyBpcyB1cGRhdGVkIHdoZW4gdGhlIGFsaWFzLWJhc2VkIHBsYXllciBzaWducyB1cCB3aXRoIGFub3RoZXIgc3RhdGVtZW50IGFjY291bnQuAGUBIFN0YXRlbWVudCBhY2NvdW50cyBpbiB0aGlzIHN0b3JhZ2UgYW5kIGFjY291bnQtYmFzZWQgcGxheWVyIGFjY291bnRzIGluIFtgUGxheWVyc2BdIG11c3Q0IG5vdCBvdmVybGFwLgBgQ29tbXVuaWNhdGlvbklkZW50aWZpZXJzAAEEAgRFBAQADGkBIFRoZSBjb21tdW5pY2F0aW9uIGlkZW50aWZpZXJzIHVzZWQgYnkgcGxheWVycyB0byBlc3RhYmxpc2ggYW4gZW5jcnlwdGVkIFAyUCBjb25uZWN0aW9uIGlubQEgb3JkZXIgdG8gcGxheSB0aGUgZ2FtZS4gVGhlIGFjY291bnQgdW5kZXIgd2hpY2ggdGhlIGNvbW11bmljYXRpb24gaWRlbnRpZmllciBpcyByZWdpc3RlcmVkGQEgc2hvdWxkIGJlIHRoZSBzYW1lIGFjY291bnQgdXNlZCB0byBpbnRlcmFjdCB3aXRoIHRoZSBzdGF0ZW1lbnQgc3RvcmUuAAGNBAABYQcAMCRNYXhSb3VuZHM4EAMAAAAkoCBUaGUgbWF4aW11bSBudW1iZXIgb2Ygcm91bmRzIGluIGEgZ2FtZS4A6CBOb3RlOiB0aGUgYWN0dWFsIG51bWJlciBvZiByb3VuZHMgaXMgY29uZmlndXJlZCBwZXIgZ2FtZS4AQQEgVE9ETzogaWYgdGhpcyBib3VuZCBpcyByYWlzZWQgbWVhbmluZ2Z1bGx5IChlLmcuIGFib3ZlIH41KSBvciB3aGVuIHRpbWUgYWxsb3dzLFkBIHJldmlzaXQgdGhlIGBwcm9jZXNzX3BsYXllcnNgIGFuZCBgcmVwb3J0YCBiZW5jaG1hcmtzIHRvIGFkZCBhIGBMaW5lYXI8MSwgTWF4Um91bmRzPmAVASBzd2VlcC4gQ3VycmVudGx5IHRoZXkgYmVuY2ggYXQgZml4ZWQgYE1heFJvdW5kc2Agc28gZ2FtZXMgd2l0aCBmZXdlcowgcm91bmRzIG92ZXJwYXkgZm9yIHBlci1yb3VuZCB3b3JrLuwgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL2luZGl2aWR1YWxpdHkvaXNzdWVzLzI0NAAwTWF4R3JvdXBTaXplOBAGAAAADKggVGhlIG1heGltdW0gbnVtYmVyIG9mIHBsYXllcnMgaW4gYSBncm91cC4AGQEgTm90ZTogdGhlIGFjdHVhbCBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwIGlzIGNvbmZpZ3VyZWQgcGVyIGdhbWUuADBNaW5Hcm91cFNpemU4EAAAAAAgqCBUaGUgbWluaW11bSBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwLgBlASBXaGVuIHNjaGVkdWxpbmcgYSBnYW1lIHRoZSB2YWx1ZSBmb3IgYG1heF9ncm91cF9zaXplYCBtdXN0IGJlIGF0IGxlYXN0IHRoaXMgbWluaW11bSArIDEuACUBIEluIG9yZGVyIHRvIGhhdmUgbm8gc2luZ2xlLXBsYXllciBncm91cHMsIHRoaXMgdmFsdWUgbXVzdCBiZSBhdCBsZWFzdCAyLgBRASBOb3RlOiB0aGUgYWN0dWFsIG1pbmltdW0gbnVtYmVyIG9mIHBsYXllcnMgaW4gYSBncm91cCBpcyBjb25maWd1cmVkIHBlciBnYW1lLCBpdCBpc1ggYG1heF9ncm91cF9zaXplIC0gMWAuAFROb25QbGF5aW5nS2lja291dFRpbWU4EIBTOwAMFQEgVGhlIHRpbWUgYWZ0ZXIgd2hpY2ggYSBwbGF5ZXIgdGhhdCBpcyBub3QgcGxheWluZyBjYW4gYmUga2lja2VkIG91dC4AvCBUaGlzIGlzIG9ubHkgZm9yIGFjY291bnQgcGxheWVycywgbm90IHBlcnNvbnMuAEhEZWZhdWx0UGxheURlcG9zaXTEQADIF6gEAAAAAAAAAAAAAAAIUQEgVGhlIGRlZmF1bHQgcGxheSBkZXBvc2l0IChuYXRpdmUgYmFsYW5jZSkgdXNlZCB3aGVuIFtgUGxheURlcG9zaXRBbW91bnRgXSBoYXMgbmV2ZXJwIGJlZW4gZXhwbGljaXRseSBjb25maWd1cmVkLgBURGVmYXVsdFBoYXNlRHVyYXRpb25zxQRgLAEAADwAAAAeAAAAWAIAADwAAACA9AMACBEBIFRoZSBkZWZhdWx0IGR1cmF0aW9ucyBvZiBlYWNoIGdhbWUgcGhhc2UsIGluIHNlY29uZHMuIE92ZXJyaWRkZW4gYXSkIHJ1bnRpbWUgdmlhIFtgUGFsbGV0OjpzZXRfZ2FtZV9waGFzZXNgXS4AQE1heEdhbWVTY2hlZHVsZXM4EAwAAAAE7CBUaGUgTWF4aW11bSBudW1iZXIgb2YgZ2FtZSBzY2hlZHVsZXMgdGhlIHBhbGxldCBjYW4gc3RvcmUuAGRNYXhBdHRlbmRhbmNlSGlzdG9yeURlcHRoOBAMAAAACF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXN0IGdhbWVzIGZvciB3aGljaCBwbGF5ZXIgYXR0ZW5kYW5jZSBpcyBzdG9yZWQuIEFueSBhdHRlbmRhbmNlAQEgZW50cmllcyBvbGRlciB0aGFuIHRoaXMgd2lsbCBiZSBpbW1pbmVudGx5IHB1cmdlZCBmcm9tIHN0b3JhZ2UuADRBaXJkcm9wU291cmNlBIBtb2RscG9wL2dhZHMAAAAAAAAAAAAAAAAAAAAAAAAAAAjkIEFjY291bnQgdGhhdCBmdW5kcyB0aGUgcGVyLWdhbWUgYWlyZHJvcCBwcml6ZSBhbGxvY2F0aW9uDQEgKGBtYXhfd2lubmVycyDDlyBhc3NldF9hbW91bnRgIGlzIHRyYW5zZmVycmVkIHBlciBzY2hlZHVsZWQgZ2FtZSkuAGxwcm9vZl9vZl9vd25lcnNoaXBfbXNnX2Jhc2UIgHBvcDpnYW1lOnN0bXRfYWNjb3VudF9mb3JfYWxpYXM6EBkBIFRoZSBiYXNlIG1lc3NhZ2Ugb2YgdGhlIHByb29mIG9mIG93bmVyc2hpcCBvZiBhbiBhY2NvdW50IGJ5IGFuIGFsaWFzLgA1ASBUaGUgZnVsbCBtZXNzYWdlIGlzIHRoaXMgYmFzZSBjb25jYXRlbmF0ZWQgdG8gdGhlIGFsaWFzIGFuZCB0aGVuIGhhc2hlZCB3aXRorCBgYmxha2UyXzI1NmAgKGJsYWtlMiB3aXRoIDI1NiBiaXQgb3V0cHV0KS4AOG1heF9lbmFjdG1lbnRzOBAQAAAAFDkBIE1heGltdW0gbnVtYmVyIG9mIGZ1bGwgZWFybHktYXR0ZW5kYW5jZSBlbmFjdG1lbnRzIGEgc2luZ2xlIGByZXBvcnRgIGNhbGwgY2FuGQEgdHJpZ2dlcjogZXZlcnkgdW5pcXVlIGNvLXBsYXllciBhY3Jvc3MgYWxsIHJvdW5kcywgcGx1cyB0aGUgcmVwb3J0ZXIuABkBIFVzZWQgYm90aCBhcyB0aGUgcHJlLWRpc3BhdGNoIG92ZXJjaGFyZ2UgYm91bmQgb24gYHJlcG9ydGAgYW5kIGFzIHRoZcQgdXBwZXIgYm91bmQgb2YgaXRzIGBMaW5lYXJgIGJlbmNobWFyayBjb21wb25lbnQuAFRhaXJkcm9wX2V2ZW50X2lkX2Jhc2UZBHBwb3A6Z2FtZTphaXJkcm9wOiAgICAgICAgICAgCFkBIFRoZSBiYXNlIHN0cmluZyBmb3IgdGhlIGFpcmRyb3AgZXZlbnQgSUQgZGVyaXZhdGlvbi4gVGhlIGFjdHVhbCBldmVudCBJRCBpcyB0aGlzIGJhc2W0IGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBnYW1lIGluZGV4IEJFIGVuY29kZWQuAAFxCwAQPFRpY2tldFNpZ25hdHVyZT0EBIggU2lnbmF0dXJlIHVzZWQgdG8gdmVyaWZ5IHRpY2tldHMuQEFjY291bnRTaWduYXR1cmU9BARgIFNpZ25hdHVyZSBmb3IgYWNjb3VudHMuOEFpcmRyb3BBc3NldElk4ASQIEFzc2V0IGlkIHVzZWQgYnkgW2BTZWxmOjpBaXJkcm9wYF0uTEFpcmRyb3BBc3NldEJhbGFuY2XEBKQgQXNzZXQgYmFsYW5jZSB1c2VkIGJ5IFtgU2VsZjo6QWlyZHJvcGBdLgA3AAAUU2NvcmUBFFNjb3JlLDBQYXJ0aWNpcGFudHMAAQQCZQd1CwQABHwgVGhlIHBhcnRpY2lwYW50cyBpbmZvcm1hdGlvbnMuAExQZXJzb25ob29kVGhyZXNob2xkAQA4EAAAAAAEyCBUaGUgc2NvcmUgdGhyZXNob2xkIHJlcXVpcmVkIHRvIHJlYWNoIHBlcnNvbmhvb2QuAGxQZXJzb25ob29kVGhyZXNob2xkU2NoZWR1bGUBAOEExBiIEwAAAQAAABAnAAADAAAAIE4AAAYAAAC4iAAACgAAAFDDAAAPAAAA/////xUAAAAoHQEgUnVudGltZS1jb25maWd1cmFibGUgc2NoZWR1bGUgb2YgcGVyc29uaG9vZC10aHJlc2hvbGQgdGllcnMsIHNvcnRlZCBieR0BIGFzY2VuZGluZyBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAuIEVhY2ggdGllciBzcGVjaWZpZXMgdGhlIHNjb3JlIGEdASBwYXJ0aWNpcGFudCBtdXN0IHJlYWNoIHRvIGJlIHJlY29nbml6ZWQgYXMgYSBwZXJzb24gYXQgdGhhdCBwb3B1bGF0aW9uHCBsZXZlbC4ABQEgRGVmYXVsdHMgdG8gW2BEZWZhdWx0UGVyc29uaG9vZFRocmVzaG9sZFRpZXJzYF0gdW50aWwgZ292ZXJuYW5jZQEBIG92ZXJyaWRlcyBpdCB2aWEgW2BQYWxsZXQ6OnNldF9wZXJzb25ob29kX3RocmVzaG9sZF9zY2hlZHVsZWBdLgARASBBIG5ldyBzY2hlZHVsZSB0YWtlcyBlZmZlY3QgYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IHJlcG9ydCBzZXNzaW9u/CB3aGVuIGB1cGRhdGVfdGhyZXNob2xkcygpYCByZWNhbGN1bGF0ZXMgYFBlcnNvbmhvb2RUaHJlc2hvbGRgLgBQQWJzZW5jZUdyYWNlU2NoZWR1bGUBANUElBiIEwAABgUQJwAABQQgTgAABAO4iAAAAwJQwwAAAgH/////BgEgKQEgUnVudGltZS1jb25maWd1cmFibGUgc2NoZWR1bGUgb2YgYWJzZW5jZS1ncmFjZSB0aWVycywgc29ydGVkIGJ5IGFzY2VuZGluZw0BIHBvcHVsYXRpb24gc2l6ZSB0aHJlc2hvbGQuIEVhY2ggdGllciBzcGVjaWZpZXMgaG93IG1hbnkgbWlzc2VzIGFyZQ0BIHRvbGVyYXRlZCB3aXRoaW4gcmVjZW50IGdhbWVzIGJlZm9yZSBhIHBhcnRpY2lwYW50J3MgcGVyc29uaG9vZCBpcywgc3VzcGVuZGVkLgAdASBEZWZhdWx0cyB0byBbYERlZmF1bHRBYnNlbmNlR3JhY2VUaWVyc2BdIHVudGlsIGdvdmVybmFuY2Ugb3ZlcnJpZGVzIGl0DQEgdmlhIFtgUGFsbGV0OjpzZXRfYWJzZW5jZV9ncmFjZV9zY2hlZHVsZWBdLiBBbiBlbXB0eSBzY2hlZHVsZSAoc2V0+CBleHBsaWNpdGx5IGJ5IGdvdmVybmFuY2UpIGRpc2FibGVzIHRoZSBncmFjZSBwZXJpb2QgZW50aXJlbHkuAERBYnNlbmNlR3JhY2VSYXRpbwEAnQkIAAAYFQEgVGhlIGN1cnJlbnRseSBhY3RpdmUgYWJzZW5jZS1ncmFjZSByYXRpbyBgKGFsbG93ZWRfbWlzc2VzLCB3aW5kb3cpYCwlASBkZXJpdmVkIGZyb20gYEFic2VuY2VHcmFjZVNjaGVkdWxlYCBhbmQgdGhlIGN1cnJlbnQgYWN0aXZlLXBlcnNvbiBjb3VudC4AEQEgVXBkYXRlZCBlYWNoIHRpbWUgYHVwZGF0ZV90aHJlc2hvbGRzKClgIHJ1bnMgKGF0IHRoZSBzdGFydCBvZiBldmVyeR0BIGF0dGVuZGFuY2UgcmVwb3J0IHNlc3Npb24pLiBSZWFkIGJ5IGBzZXRfYXR0ZW5kYW5jZWAgdG8gZGVjaWRlIHdoZXRoZXKMIGEgcGFydGljaXBhbnQgc2hvdWxkIGJlIHN1c3BlbmRlZC4ASEN1cnJlbnRSb3VuZFBvaW50cwEAOBAAAAAABLQgVGhlIGFjY3VtdWxhdGVkIHBvaW50cyBpbiB0aGUgY3VycmVudCByb3VuZC4AREN1cnJlbnRSb3VuZEluZGV4AQA4EAAAAAAcgCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgcm91bmQuAF0BIFRoaXMgbXVzdCBiZSB0aGUgc3VtIG9mIGFsbCBwb2ludHMgYWNjdW11bGF0ZWQgaW4gYFJvdW5kc1BvaW50c0ZvclBhcnRpY2lwYW50YCBmb3IgdGhlPCBjdXJyZW50IHJvdW5kLgBRASAqKldBUk5JTkcqKjogVGhpcyBzdG9yYWdlIG11c3QgYmUgY29uc2lzdGVudCB3aXRoIGBSb3VuZHNQb2ludHNGb3JQYXJ0aWNpcGFudGAsIHVzZbQgYGZuIGFkZF9wb2ludHNfdG9fcGFydGljaXBhbnRgIHRvIHVwZGF0ZSBpdC4AaFJvdW5kc1BvaW50c0ZvclBhcnRpY2lwYW50AQEIAgKFCzgQAAAAABjQIFRoZSBwb2ludHMgYWNjdW11bGF0ZWQgYnkgYSBwYXJ0aWNpcGFudCBpbiBhIHJvdW5kLgBRASBGb3IgdGhlIGN1cnJlbnQgcm91bmQsIHRoaXMgc3RvcmFnZSBtdXN0IGJlIHVwZGF0ZWQgYWxvbmdzaWRlIGBDdXJyZW50Um91bmRQb2ludHNgLgAxASAqKldBUk5JTkcqKjogVGhpcyBzdG9yYWdlIG11c3QgYmUgY29uc2lzdGVudCB3aXRoIGBDdXJyZW50Um91bmRQb2ludHNgLCB1c2W0IGBmbiBhZGRfcG9pbnRzX3RvX3BhcnRpY2lwYW50YCB0byB1cGRhdGUgaXQuADBSb3VuZFBheW91dHMAAQQCOIkLBAAQqCBUaGUgcm91bmRzIHRoYXQgYXJlIGN1cnJlbnRseSBwYXlpbmcgb3V0LgARASBSb3VuZHMgYXJlIHBheWluZyBvdXQgYWZ0ZXIgdGhleSBoYXZlIGZpbmlzaGVkIGFjY3VtdWxhdGluZyBwb2ludHMuJQEgV2hlbiBhbGwgdGhlaXIgcG9pbnRzIGhhdmUgYmVlbiBwYWlkIG91dCwgdGhleSBhcmUgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuADRSb3VuZFBsYW5uaW5nAACNCwQADPwgVGhlIHBsYW5uaW5nIG9mIHRoZSBjdXJyZW50IHJvdW5kIHRoYXQgaXMgYWNjdW11bGF0aW5nIHBvaW50cy4APQEgSWYgbm9uZSB0aGUgY3VycmVudCByb3VuZCBpcyBvbmdvaW5nIGFuZCB3aWxsIGJlIHBsYW5uZWQgb24gdGhlIG5leHQgc2NoZWR1bGUuADhSb3VuZFNjaGVkdWxlcwEAkQsEAAS4IERlc2NyaWJlcyB0aGUgc2NoZWR1bGVzIG9mIHRoZSBwYXlvdXQgcm91bmRzLgAByQQAAWkHABBQQ3VycmVuY3lMb2NhdGlvbkluZm/gMAEDAHEXBDIFdsjrCwT0IFRoZSBsb2NhdGlvbiBvZiB0aGUgdXNlZCBjdXJyZW5jeS4gSXQgaXMgaW5mb3JtYXRpb25hbCBvbmx5LgBQT2ZmY2hhaW5Xb3JrSW50ZXJ2YWw4EAIAAAAEsCBUaGUgaW50ZXJ2YWwgYXQgd2hpY2ggb2ZmY2hhaW4gd29ya2VyIHJ1bnMuADBzY29yZV9wb3RfaWQEgG1vZGxzY29yZXBvdAAAAAAAAAAAAAAAAAAAAAAAAAAABOAgR2V0IGEgdW5pcXVlLCBpbmFjY2Vzc2libGUgYWNjb3VudCBJRCBmcm9tIHRoZSBgUG90SWRgLgA0c2NvcmVfY29udGV4dAiAcG9wOnBvbGthZG90Lm5ldHdvcmsvc2NvcmUgICAgICAIWQEgVGhlIGNvbnRleHQgdXNlZCBmb3IgdGhlIHByb29mcyByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgYXMgYSBwZXJzb25hbCBhbGlhcyBpbiBzY29yZSAgcGFsbGV0LgABnQsAAAA4AAAgRHVtbXlEaW0BIER1bW15RGltCCxSZXNlcnZlZElkcwABBAIoEAQABNwgVGhlIHBlcnNvbmFsIElEcyB0aGF0IGFyZSByZXNlcnZlZCBieSB1bnByb3ZlbiBwZW9wbGUuABhQZW9wbGUAAQQFKKELBAAEuCBUaGUgcGVvcGxlIHdlIHRyYWNrIGFsb25nIHdpdGggdGhlaXIgcmVjb3Jkcy4AAe0EAAFtBwAAAaULAAAAOwAAKFBlb3BsZUxpdGUBKFBlb3BsZUxpdGUUKExpdGVQZW9wbGUAAQQCBKkLBAAAADhBbGlhc1RvQWNjb3VudAABBAJJAwQEAATgIENvbnZlcnNpb24gb2YgYSBsaXRlIGNvbnRleHR1YWwgYWxpYXMgdG8gYW4gYWNjb3VudCBJRC4AOEFjY291bnRUb0FsaWFzAAEEAgRFAwQABOAgQ29udmVyc2lvbiBvZiBhbiBhY2NvdW50IElEIHRvIGEgbGl0ZSBjb250ZXh0dWFsIGFsaWFzLgBsTGl0ZVBlb3BsZUNvbGxlY3Rpb25DcmVhdGVkAQDIBAAE8CBXaGV0aGVyIHRoZSBsaXRlIHBlb3BsZSBtZW1iZXIgY29sbGVjdGlvbiBoYXMgYmVlbiBjcmVhdGVkLgBQQXR0ZXN0YXRpb25BbGxvd2FuY2UBAQQCBDgQAAAAAAQpASBOdW1iZXIgb2YgYXR0ZXN0YXRpb25zIGF2YWlsYWJsZSB0byBkaXN0cmlidXRlIGZvciBhIHZlcmlmaWVyIGFjY291bnQgaWQuAAEFBQABcQcADEBMaXRlUmluZ0V4cG9uZW50JQUECQTMIFJpbmcgZXhwb25lbnQgdXNlZCBmb3IgdGhlIGxpdGUgcGVvcGxlIGNvbGxlY3Rpb24uAEhMaXRlT25ib2FyZGluZ1NpemU4EAMAAAAE/CBPbmJvYXJkaW5nIHNpemUgdXNlZCB3aGVuIGNyZWF0aW5nIHRoZSBsaXRlIHBlb3BsZSBjb2xsZWN0aW9uLgB0YWNjb3VudF9zZXR1cF9ibG9ja190b2xlcmFuY2U4EFgCAAAELQEgVGhlIG51bWJlciBvZiBibG9ja3Mgb2YgdG9sZXJhbmNlIHdlIGFsbG93IGZvciBhbiBhbGlhcyBzZXR1cCB0cmFuc2FjdGlvbi4AAbELAARQQXR0ZXN0YXRpb25TaWduYXR1cmU9BAhhASBTaWduYXR1cmUgZ2VuZXJhdGVkIGJ5IGxpdGUgcGVvcGxlIGFuZCB1c2VkIGJ5IHZlcmlmaWVycyB0byBjbGFpbSBhdHRlc3RhdGlvbnMgb24gdGhlaXIgIGJlaGFsZi4APgAAJFJlc291cmNlcwEkUmVzb3VyY2VzLCRDb25zdW1lcnMAAQQCBLULBAAEKQEgQWNjb3VudHMgdXNlZCB0byBpZGVudGlmeSBjb25zdW1lcnMgbWFwcGVkIHRvIHRoZWlyIGNvbnN1bWVyIGluZm9ybWF0aW9uLgBgU3RhdGVtZW50U3RvcmVBbGxvd2FuY2VzAAEIBgK9C8ULBAAUcQEgQWNjb3VudHMgYXNzb2NpYXRlZCB3aXRoIGEgc3RhdGVtZW50IHN0b3JlIHNsb3QgdGhyb3VnaCBhbiBhbm9ueW1vdXMgYWxsb3dhbmNlLCBwZXIgcGVyaW9kLgBhASBUaGUgcGVyaW9kIGtleSBpcyBhIGJpZy1lbmRpYW4gZW5jb2RlZCBkYXkgbnVtYmVyIChzZWNvbmRzIHNpbmNlIFVuaXggZXBvY2ggLyA4NjQwMCkgc29xASB0aGF0IGBJZGVudGl0eWAtaGFzaGVkIGl0ZXJhdGlvbiB5aWVsZHMgZW50cmllcyBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyIHRvIGJlIHJlbW92ZWQgYnkgdGhlRCBvZmZjaGFpbiB3b3JrZXIuAGxTdG10U3RvcmVBbGxvd2FuY2VCeUFjY291bnQAAQgCAskLEAQAFEEBIFJldmVyc2UgbG9va3VwIGZyb20gYSBzdGF0ZW1lbnQgYWNjb3VudCB0byBhbGwgaXRzIGFjdGl2ZSBhbm9ueW1vdXMgYWxsb3dhbmNlcy4ARQEgS2V5ZWQgYnkgYChBY2NvdW50SWQsIChCaWdFbmRpYW5VMzIgcGVyaW9kLCB1MzIgc2VxLCBBbGlhcykpYCDihpIgYCgpYC4gTXVsdGlwbGVJASBlbnRyaWVzIHBlciBhY2NvdW50IGFyZSBwb3NzaWJsZSB3aGVuIHRoZSBzYW1lIHN0YXRlbWVudCBhY2NvdW50IGlzIGF1dGhvcml6ZWQgYnnMIGRpZmZlcmVudCBhbGlhc2VzIG9yIGFjcm9zcyBncmFjZS13aW5kb3cgb3ZlcmxhcHMuAIBGcmllbmRSZXF1ZXN0UmVnaXN0cmF0aW9uQnlBbGlhcwABBAII0QsEAAQpASBGcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gYnkgYW5vbnltb3VzIGFsaWFzIGluIGZyaWVuZCByZXF1ZXN0IGNvbnRleHQuAGxGcmllbmRSZXF1ZXN0QWxpYXNCeUFjY291bnQAAQQCBAgEAAQlASBSZXZlcnNlIGxvb2t1cCBmcm9tIGZyaWVuZCByZXF1ZXN0IHN0YXRlbWVudCBhY2NvdW50IHRvIGFub255bW91cyBhbGlhcy4AbFNwZW50TG9uZ1Rlcm1TdG9yYWdlQWxpYXNlcwABCAYCvQsQBAAgSQEgQWxpYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHVzZWQgdG8gY2xhaW0gbG9uZy10ZXJtIHN0b3JhZ2UgaW4gYSBnaXZlbiBwZXJpb2QuAFkBIEtleWVkIGJ5IGAocGVyaW9kLCBhbGlhcylgLiBFYWNoIGNvdW50ZXIgdmFsdWUgaW4gdGhlIHByb29mIGNvbnRleHQgcHJvZHVjZXMgYSB1bmlxdWVdASBhbGlhcywgc28gYSBwZXJzb24gY2FuIGhhdmUgdXAgdG8gYExvbmdUZXJtU3RvcmFnZUNsYWltc1BlclBlcmlvZGAgZW50cmllcyBwZXIgcGVyaW9kLjUBIE9sZCBwZXJpb2RzIGNhbiBiZSBjbGVhbmVkIHVwIHZpYSBgY2xlYXJfZXhwaXJlZF9sb25nX3Rlcm1fc3RvcmFnZV9hbGlhc2VzYC4AQQEgVGhlIHBlcmlvZCBrZXkgaXMgYEJpZ0VuZGlhblUzMmAgd2l0aCBgSWRlbnRpdHlgIHNvIGl0ZXJhdGlvbiB5aWVsZHMgZW50cmllcyBpbuggY2hyb25vbG9naWNhbCBvcmRlciwgbWF0Y2hpbmcgYFN0YXRlbWVudFN0b3JlQWxsb3dhbmNlc2AuADxVc2VybmFtZU93bmVyT2YAAQQCSQQEBAAYcQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0LiBUaGUgYG93bmVyYCB2YWx1ZWUBIHNob3VsZCBiZSBhIGtleSBpbiB0aGUgYENvbnN1bWVyc2AgbWFwLiBUaGVyZSBjYW4gYmUgYXQgbW9zdCAyIHVzZXJuYW1lcyBwb2ludGluZyB0byB0aGU4IHNhbWUgYG93bmVyYDpxASAtIHVzZXJuYW1lIGFzc29jaWF0ZWQgd2l0aCBhIGNvbnN1bWVyJ3MgbGl0ZSBwZXJzb24gaWRlbnRpdHkgLSB0aGlzIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQ7WQEgLSBvcHRpb25hbGx5IGFub3RoZXIgdXNlcm5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb25zdW1lcidzIGZ1bGwgcGVyc29uIGlkZW50aXR5LCBpZjggICBhcHBsaWNhYmxlLgA4QWNjb3VudE9mQWxpYXMAAQQCCAQEAARpASBSZXZlcnNlIGxvb2t1cCBmcm9tIHJlZ2lzdGVyZWQgYWxpYXNlcyB0byB0aGUgYEFjY291bnRJZGAgdXNlZCB0byByZWdpc3RlciBhcyBhIGNvbnN1bWVyLgBsVXNlcm5hbWVSZXNlcnZhdGlvbkR1cmF0aW9uAQAoIAAAAAAAAAAACFUBIFRoZSBhbW91bnQgb2YgdGltZSBmb3Igd2hpY2ggYSB1c2VybmFtZSByZXNlcnZhdGlvbiBpcyB2YWxpZCwgaW4gc2Vjb25kcy4gQWZ0ZXIgdGhpc9AgdGltZSBwZXJpb2QgZWxhcHNlcywgdGhlIHJlc2VydmF0aW9uIGNhbiBiZSB2b2lkZWQuAGBVc2VybmFtZVJlc2VydmF0aW9uUXVldWUAAQQCSQTVCwQACHEBIE1hcCBmcm9tIGEgcmVzZXJ2ZWQgYHVzZXJuYW1lYCB0byBhIHF1ZXVlIG9mIGBSZXNlcnZhdGlvblF1ZXVlRW50cnlgIGl0ZW1zLCBlYWNoIGhvbGRpbmcgYW5hASBhY2NvdW50IGFuZCB0aGUgdGltZXN0YW1wIHdoZW4gaXQgam9pbmVkLiBPbGQgcmVzZXJ2YXRpb25zIGNhbiBiZSByZW1vdmVkIGZyb20gc3RvcmFnZS4ANFJlc2VydmF0aW9uT2YAAQQCBEkEBAAIZQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBhbiBhY2NvdW50IHRvIHRoZSB1c2VybmFtZSBpdCBoYXMgcmVzZXJ2ZWQuIEVhY2ggYWNjb3VudCBjYW4gaGF2ZSBhdJwgbW9zdCBvbmUgYWN0aXZlIHJlc2VydmF0aW9uIGF0IGEgdGltZS4AARUFAAF1BwBYRE1heFVzZXJuYW1lTGVuZ3RoOBAgAAAABC0BIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLCBpbmNsdWRpbmcgYW55IHBvdGVudGlhbCB0cmFpbGluZyBkaWdpdHMuAERNaW5Vc2VybmFtZUxlbmd0aDgQBgAAAASIIFRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLgBIUGVyc29uQXV0aER1cmF0aW9uOBAAowIADFUBIFRoZSBkdXJhdGlvbiBvZiB0aW1lLCBpbiBzZWNvbmRzLCBmb3Igd2hpY2ggYSBwZXJzb24ncyBhdXRob3JpemF0aW9uIGlzIHZhbGlkLiBBZnRlclEBIHRoaXMgcGVyaW9kIGVsYXBzZXMsIHBlb3BsZSB3aWxsIG5vIGxvbmdlciBiZSBjb25zaWRlcmVkIGFjdGl2ZSwgYnV0IHRoZWlyIHJlc291cmNlDQEgYWxsb3dhbmNlcyBzaG91bGQgZGVmYXVsdCB0byB0aGUgc2FtZSB2YWx1ZXMgdXNlZCBmb3IgbGl0ZSBwZW9wbGUuAGxNaW5QZXJzb25BdXRoVXBkYXRlSW50ZXJ2YWw4EIBRAQAIVQEgVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZSwgaW4gc2Vjb25kcywgd2hpY2ggbXVzdCBwYXNzIGJlZm9yZSB1cGRhdGluZyBhIHBlcnNvbidzPCBhdXRob3JpemF0aW9uLgBkTWF4UmVzZXJ2YXRpb25RdWV1ZUxlbmd0aDgQCgAAAAQpASBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0aGF0IGNhbiBxdWV1ZSBmb3IgYSBzaW5nbGUgcmVzZXJ2ZWQgdXNlcm5hbWUuAFBBY2NvdW50c0FwaUFsbG93YW5jZeELIAIAAAAA0AcABNAgVGhlIFN0YXRlbWVudCBTdG9yZSBhbGxvd2FuY2UgZm9yIHRoZSBhY2NvdW50cyBBUEkuAFxTdG10U3RvcmVTbG90c1BlclBlcmlvZDgQFAAAAAQ5ASBNYXhpbXVtIG51bWJlciBvZiBzdGF0ZW1lbnQgc3RvcmUgc2xvdHMgYSBwZXJzb24gY2FuIGNsYWltIHdpdGhpbiBvbmUgcGVyaW9kLgBsTGl0ZVN0bXRTdG9yZVNsb3RzUGVyUGVyaW9kOBAKAAAAEE0BIE1heGltdW0gbnVtYmVyIG9mIHN0YXRlbWVudCBzdG9yZSBzbG90cyBhIGxpdGUgcGVyc29uIGNhbiBjbGFpbSB3aXRoaW4gb25lIHBlcmlvZC4ATQEgU2FtZSBzZW1hbnRpY3MgYXMgYFN0bXRTdG9yZVNsb3RzUGVyUGVyaW9kYCBidXQgYXBwbGllZCB3aGVuIHRoZSBwcm9vZiB0YXJnZXRzIHRoZfwgbGl0ZS1wZW9wbGUgY29sbGVjdGlvbiB2aWEgYE1lbWJlcnNoaXBDb2xsZWN0aW9uOjpMaXRlUGVvcGxlYC4AVFN0bXRTdG9yZUNsZWFudXBMaW1pdDgQMgAAAARZASBNYXhpbXVtIG51bWJlciBvZiBzdGFsZSBzdGF0ZW1lbnQgc3RvcmUgYWxsb3dhbmNlIGVudHJpZXMgdG8gcmVtb3ZlIHBlciBjbGVhbnVwIGNhbGwuAHBTdG10U3RvcmVSZXBsYWNlbWVudENvb2xkb3duOBA8AAAACDUBIE1pbmltdW0gdGltZSwgaW4gc2Vjb25kcywgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIGFuIGFsaWFzIGNhbiByZXBsYWNlIGl0cyBvd27gIHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2UgZW50cnkgd2l0aGluIHRoZSBzYW1lIHBlcmlvZC4AUFN0bXRTdG9yZUdyYWNlV2luZG93OBAAowIAEFUBIEV4dHJhIHRpbWUsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCBzdGF0ZW1lbnQtc3RvcmUgYWxsb3dhbmNlcyBmcm9tIGFuIGVuZGVkIHBlcmlvZLggcmVtYWluIGFjdGl2ZSBiZWZvcmUgY2xlYW51cCBtYXkgcmV2b2tlIHRoZW0uACkBIEFmdGVyIHRoaXMgZWxhcHNlcywgdGhlIGFsbG93YW5jZXMgd2lsbCBldmVudHVhbGx5IGJlIGNsZWFuZWQgYnkgdGhlIE9DVy4AWEZyaWVuZFJlcXVlc3RBbGxvd2FuY2XhCyABAAAAACgAAAQlASBUaGUgU3RhdGVtZW50IFN0b3JlIGFsbG93YW5jZSBmb3IgZnJpZW5kIHJlcXVlc3Qgc3RhdGVtZW50IHJlZ2lzdHJhdGlvbi4AbEZyaWVuZFJlcXVlc3RTbG90c1BlclBlcmlvZAwEEBRJASBNYXhpbXVtIG51bWJlciBvZiBmcmllbmQgcmVxdWVzdHMgYSBwZXJzb24gY2FuIHNlbmQgd2l0aGluIG9uZSByYXRlLWxpbWl0IHBlcmlvZC4AVQEgRm9yIGV4YW1wbGUsIGlmIHRoaXMgaXMgYDhgLCBlYWNoIHBlcnNvbiBjYW4gc2VuZCB1cCB0byA4IGZyaWVuZCByZXF1ZXN0cyBkdXJpbmcgdGhlWQEgcGVyaW9kIHNlbGVjdGVkIGJ5IGBGcmllbmRSZXF1ZXN0UGVyaW9kRHVyYXRpb25gLiBXaGVuIHRoZSBwZXJpb2QgYWR2YW5jZXMsIHRoZSBzbG90cxwgcmVzZXQuAHxMaXRlRnJpZW5kUmVxdWVzdFNsb3RzUGVyUGVyaW9kDAQIEF0BIE1heGltdW0gbnVtYmVyIG9mIGZyaWVuZCByZXF1ZXN0cyBhIGxpdGUgcGVyc29uIGNhbiBzZW5kIHdpdGhpbiBvbmUgcmF0ZS1saW1pdCBwZXJpb2QuAF0BIFNhbWUgc2VtYW50aWNzIGFzIGBGcmllbmRSZXF1ZXN0U2xvdHNQZXJQZXJpb2RgIGJ1dCBhcHBsaWVkIHdoZW4gdGhlIHByb29mIHRhcmdldHMgdGhl/CBsaXRlLXBlb3BsZSBjb2xsZWN0aW9uIHZpYSBgTWVtYmVyc2hpcENvbGxlY3Rpb246OkxpdGVQZW9wbGVgLgBsRnJpZW5kUmVxdWVzdFBlcmlvZER1cmF0aW9uOBCAUQEAJA0BIFJvbGxpbmcgdGltZSB3aW5kb3cgZm9yIHJhdGUtbGltaXRpbmcgZnJpZW5kIHJlcXVlc3RzLCBpbiBzZWNvbmRzLgA1ASBUaW1lIGlzIGRpdmlkZWQgaW50byBmaXhlZC1kdXJhdGlvbiBwZXJpb2RzLiBUaGUgcGVyaW9kIGluZGV4IGlzIGNvbXB1dGVkIGFzqCBgbm93X3NlY3MgLyBGcmllbmRSZXF1ZXN0UGVyaW9kRHVyYXRpb25gLgBhASBGb3IgZXhhbXBsZSwgaWYgdGhpcyBpcyBgODZfNDAwYCAoMjQgaG91cnMpLCBwZXJpb2QgYDBgIGlzIHRoZSBmaXJzdCAyNCBob3VycyBzaW5jZSB0aGUZASBVbml4IGVwb2NoLCBwZXJpb2QgYDFgIGlzIHRoZSBuZXh0IDI0IGhvdXJzLCBhbmQgc28gb24uIENvbWJpbmVkIHdpdGhlASBgRnJpZW5kUmVxdWVzdFNsb3RzUGVyUGVyaW9kYCwgdGhpcyBkZWZpbmVzIGhvdyBtYW55IGZyaWVuZCByZXF1ZXN0cyBjYW4gYmUgc2VudCBpbiBlYWNoICBwZXJpb2QuAGBGcmllbmRSZXF1ZXN0R3JhY2VXaW5kb3c4EBAOAAAURQEgRXh0cmEgdGltZSwgaW4gc2Vjb25kcywgZHVyaW5nIHdoaWNoIHRoZSBwcmV2aW91cyBmcmllbmQgcmVxdWVzdCBwZXJpb2QgaXMgc3RpbGxsIGFjY2VwdGVkIGFmdGVyIGEgcm9sbG92ZXIuAGUBIFRoaXMgYWxsb3dzIHRyYW5zYWN0aW9ucyBjcmVhdGVkIGNsb3NlIHRvIGEgcGVyaW9kIGJvdW5kYXJ5IHRvIHN0aWxsIGJlIGluY2x1ZGVkIGV2ZW4gaWbUIHRoZXkgYXJlIGV4ZWN1dGVkIGp1c3QgYWZ0ZXIgdGhlIG5leHQgcGVyaW9kIGJlZ2lucy4AeEZyaWVuZFJlcXVlc3RSZXRlbnRpb25EdXJhdGlvbigggDoJAAAAAAAUYQEgRHVyYXRpb24gZm9yIHdoaWNoIGZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbnMgd2lsbCBiZSByZXRhaW5lZC4gU3BlY2lmaWVkIGluIHNlY29uZHMuACEBIEEgcmVnaXN0cmF0aW9uIGlzIGNyZWF0ZWQgZm9yIGEgc3BlY2lmaWMgcGVyaW9kLiBPbmNlIHRoaXMgcGVyaW9kIGVuZHMsIQEgdGhlIHJlZ2lzdHJhdGlvbiByZW1haW5zIHZhbGlkIGZvciB0aGUgY29uZmlndXJlZCBkdXJhdGlvbiwgYWZ0ZXIgd2hpY2jwIGl0IGNhbiBiZSBjbGVhbmVkIHVwLiBTZWUgYGZyaWVuZF9yZXF1ZXN0X2V4cGlyYXRpb25fdGltZWAuAFhPZmZjaGFpbldvcmtlckludGVydmFsOBABAAAABOwgTnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIG9mZmNoYWluLXdvcmtlciBtYWludGVuYW5jZSBydW5zLgB0TG9uZ1Rlcm1TdG9yYWdlUGVyaW9kRHVyYXRpb244EAB1EgAUBQEgVGhlIGR1cmF0aW9uIG9mIGEgbG9uZy10ZXJtIHN0b3JhZ2UgY2xhaW1pbmcgcGVyaW9kLCBpbiBzZWNvbmRzLgA1ASBUaW1lIGlzIGRpdmlkZWQgaW50byBmaXhlZC1kdXJhdGlvbiBwZXJpb2RzLiBUaGUgcGVyaW9kIGluZGV4IGlzIGNvbXB1dGVkIGFzJQEgYG5vd19zZWNzIC8gTG9uZ1Rlcm1TdG9yYWdlUGVyaW9kRHVyYXRpb25gLiBFYWNoIHBlcnNvbiBjYW4gc3VibWl0IHVwIHRv0CBgTG9uZ1Rlcm1TdG9yYWdlQ2xhaW1zUGVyUGVyaW9kYCBjbGFpbXMgcGVyIHBlcmlvZC4AeExvbmdUZXJtU3RvcmFnZUNsYWltc1BlclBlcmlvZAwEZBAJASBNYXhpbXVtIG51bWJlciBvZiBsb25nLXRlcm0gc3RvcmFnZSBjbGFpbXMgcGVyIHBlcnNvbiBwZXIgcGVyaW9kLgBJASBFYWNoIGNsYWltIHVzZXMgYSBkaWZmZXJlbnQgY291bnRlciB2YWx1ZSAoMC4uY2xhaW1zX3Blcl9wZXJpb2QpIHdoaWNoIHByb2R1Y2VzIGEpASBkaXN0aW5jdCBhbGlhcyBpbiB0aGUgcHJvb2YgY29udGV4dCwgZW5zdXJpbmcgb25lIGNsYWltIHBlciBjb3VudGVyIHNsb3QuAGhMb25nVGVybVN0b3JhZ2VHcmFjZVdpbmRvdzgQEA4AABBRASBFeHRyYSB0aW1lLCBpbiBzZWNvbmRzLCBkdXJpbmcgd2hpY2ggdGhlIHByZXZpb3VzIGxvbmctdGVybSBzdG9yYWdlIHBlcmlvZCBpcyBzdGlsbGwgYWNjZXB0ZWQgYWZ0ZXIgYSByb2xsb3Zlci4AWQEgU2FtZSBzZW1hbnRpY3MgYXMgYEZyaWVuZFJlcXVlc3RHcmFjZVdpbmRvd2AgYnV0IGFwcGxpZWQgdG8gbG9uZy10ZXJtIHN0b3JhZ2UgY2xhaW1zLgBsTG9uZ1Rlcm1TdG9yYWdlQ2xlYW51cExpbWl0OBAUAAAAFEkBIE1heGltdW0gbnVtYmVyIG9mIHNwZW50IGxvbmctdGVybSBzdG9yYWdlIGFsaWFzZXMgdGhhdCBjYW4gYmUgY2xlYXJlZCBpbiBhIHNpbmdsZcAgYGNsZWFyX2V4cGlyZWRfbG9uZ190ZXJtX3N0b3JhZ2VfYWxpYXNlc2AgY2FsbC4ATQEgQm91bmRzIHRoZSB3b3JzdC1jYXNlIHdlaWdodCBvZiB0aGUgY2xlYW51cCBleHRyaW5zaWM7IGNhbGxlcnMgbXVzdCBwYXNzIGEgYGxpbWl0YHAgbm8gZ3JlYXRlciB0aGFuIHRoaXMgdmFsdWUuAAHlCwAERE9mZmNoYWluU2lnbmF0dXJlPQQIUQEgU2lnbmF0dXJlIHR5cGUgZm9yIGVuc3VyaW5nIG93bmVyc2hpcCBvZiBwcm92aWRlZCBhY2NvdW50cyBpbiBjYXNlIG9mIHJlZ2lzdHJhdGlvbnM8IHRocm91Z2ggYWxpYXMuDCER4N8Z3pVjtYMB5ffgB0M3LT6mizpKqhipWKis1xpDZGN1cnJlbnRfc3RtdF9zdG9yZV9wZXJpb2QAOARRASBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2UgcGVyaW9kIChkYXkgbnVtYmVyIHNpbmNlIFVuaXggZXBvY2gpLgAhEeDfGd6VY7WDAeX34AdDrMglyENevZ01vA216nYOlmxzdG10X3N0b3JlX3Nsb3RfY29udGV4dF9mb3IIGHBlcmlvZDgMc2VxOAgQIQEgUmV0dXJucyB0aGUgcHJvb2YgY29udGV4dCBmb3IgYSBzdGF0ZW1lbnQgc3RvcmUgc2xvdCBjbGFpbSBhdCB0aGUgZ2l2ZW5QIGBwZXJpb2RgIGFuZCBgc2VxYC4APQEgTGF5b3V0OiBgU1NTX1NMT1Q6PHBlcmlvZCAoNCBieXRlcyBCRSk+PHNlcSAoNCBieXRlcyBCRSk+YCBwYWRkZWQgdG8gMzIgYnl0ZXMuACER4N8Z3pVjtYMB5ffgB0M9g9yLG6WKm3kHcWwZqWL3aGZyaWVuZF9yZXF1ZXN0X2NvbnRleHRfZm9yCBhwZXJpb2Q4DHNlcQwICCUBIFJldHVybnMgdGhlIHByb29mIGNvbnRleHQgZm9yIGEgZnJpZW5kIHJlcXVlc3QgcmVnaXN0cmF0aW9uIGF0IHRoZSBnaXZlblAgYHBlcmlvZGAgYW5kIGBzZXFgLgA/AAA0Q2h1bmtzTWFuYWdlcgE0Q2h1bmtzTWFuYWdlcggYQ2h1bmtzAAEIBQXpC+0LBAAEGQEgUGFnaW5hdGVkIGNvbGxlY3Rpb24gb2YgY2h1bmtzIChSaW5nRXhwb25lbnQgLT4gUGFnZUluZGV4IC0+IENodW5rcykuADxDaHVua1BhZ2VIYXNoZXMAAQgFBekLCAQABIggVGhlIGhhc2ggZm9yIGVhY2ggcGFnZSBvZiBjaHVua3MuAAEhBQABeQcABCBQYWdlU2l6ZTgQ/wAAAATMIE51bWJlciBvZiBjaHVua3MgcGVyIHBhZ2UuIE11c3QgYmUgYSBwb3dlciBvZiB0d28uAAH9CwAEFENodW5r9QsEcCBUaGUgdHlwZSBvZiBhIHNpbmdsZSBjaHVuay4AQAAAHE1lbWJlcnMBHE1lbWJlcnNELENvbGxlY3Rpb25zAAEEBggBDAQABOAgSW5mb3JtYXRpb24gYWJvdXQgZWFjaCBjb2xsZWN0aW9uLCBrZXllZCBieSBpZGVudGlmaWVyLgBQU3VzcGVuZGVkQ29sbGVjdGlvbnMAAQQGCAEMBAAIIQEgQ29sbGVjdGlvbnMgdGhhdCBoYXZlIGJlZW4gbWFya2VkIGZvciBkZWxldGlvbiBhbmQgYXJlIGJlaW5nIHByb2Nlc3NlZC5ZASBPbmNlIGEgY29sbGVjdGlvbiBpcyBtb3ZlZCBoZXJlLCBub3JtYWwgb3BlcmF0aW9ucyB3aWxsIGZhaWwgd2l0aCBDb2xsZWN0aW9uTm90Rm91bmQuADRJZGVudGlmaWVyc09mAAEEAgUMDQwEAATMIFRoZSBpZGVudGlmaWVycyBvZiBjb2xsZWN0aW9ucyBvd25lZCBieSBhbiBlbnRpdHkuABBSb290AAEIBgIRDBUMBAAEiCBUaGUgY3VycmVudCBtZW1iZXJzIHdlIHJlY29nbmlzZS4AIE9sZFJvb3RzAAEMBgYGIQwlDAQAJEEBIE9sZCByaW5nIHJvb3RzIGFyZSByZXRhaW5lZCBmb3IgYSBncmFjZSBwZXJpb2Qgc28gdGhhdCBwcm9vZnMgZ2VuZXJhdGVkIGFnYWluc3RlASBwcmV2aW91cyByZXZpc2lvbnMgcmVtYWluIHZhbGlkLiBFYWNoIHJvb3QgaW4gdGhlIG1hcCBpcyBpZGVudGlmaWVkIGJ5IHRoZSBjb21wb3NpdGUga2V5LQEgYChjb2xsZWN0aW9uLCByaW5nIGluZGV4LCByaW5nIHJldmlzaW9uKWAuIEVudHJpZXMgY2FuIGJlIGNsZWFuZWQgdXAgYWZ0ZXIlASBgT2xkUm9vdFJldGVudGlvbkR1cmF0aW9uYCBoYXMgcGFzc2VkIHNpbmNlIHRoZSBgYXJjaGl2ZWRfYXRgIHRpbWVzdGFtcC4AOQEgVGhpcyBzdG9yYWdlIGNhbiBjb250YWluIHNvbWUgcm9vdHMgZm9yIGRlbGV0ZWQgY29sbGVjdGlvbnMgb3IgcmVtb3ZlZCByaW5ncy5dASBUaGUgY2FsbCBgdmVyaWZ5X21lbWJlcnNoaXBfYXRfcmV2YCBhbmQgb3RoZXIgb3BlcmF0aW9uIHVzaW5nIG9sZCByb290cyBtdXN0IGNoZWNrIHRoZUEBIGV4aXN0ZW5jZSBvZiB0aGUgY29sbGVjdGlvbiBhbmQgdGhlIHJvb3QgaW4gb3JkZXIgdG8gbm90IHZhbGlkYXRlIGFnYWluc3QgZHVzdC7wIFRoZSBvbGQgcm9vdHMgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHRoZSByZXRlbnRpb24gZHVyYXRpb24uAEBDdXJyZW50UmluZ0luZGV4AQEEBgg4EAAAAAAE5CBLZWVwcyB0cmFjayBvZiB0aGUgcmluZyBpbmRleCBjdXJyZW50bHkgYmVpbmcgcG9wdWxhdGVkLgA4T25ib2FyZGluZ1NpemUBAQQGCDgQAAAAAAT4IE1heGltdW0gbnVtYmVyIG9mIG1lbWJlcnMgcXVldWVkIGJlZm9yZSBvbmJvYXJkaW5nIHRvIGEgcmluZy4AIFJpbmdLZXlzAQEMBgIFKQwtDAQAEGEBIEJvdGggdGhlIGtleXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gYnVpbHQgcmluZ3MgYW5kIHRoZSBrZXlzIHRoYXQgd2lsbCBiZSB1c2VkIGluIGZ1dHVyZVkBIHJpbmdzLiBQYWdpbmF0ZWQgYnkgKElkZW50aWZpZXIsIFJpbmdJbmRleCwgUGFnZUluZGV4KSB3aGVyZSBlYWNoIHBhZ2UgY29udGFpbnMgdXAgdG91ASBgUmluZ0NhcGFjaXR5RnJvbUV4cG9uZW50YCBrZXlzLiBUaGUgcGFnZSBzaXplIGVxdWFscyB0aGUgZmxleGlibGUgcmluZyBleHBvbmVudCdzIGNhcGFjaXR5LPQgZW5zdXJpbmcgRmxleGlibGUgY29sbGVjdGlvbnMgbmV2ZXIgbmVlZCBtb3JlIHRoYW4gb25lIHBhZ2UuADhSaW5nS2V5c1N0YXR1cwEBCAYCEQwxDCQAAAAAAAAAAAAIYQEgU3RvcmVzIHRoZSBtZXRhIGluZm9ybWF0aW9uIGZvciBlYWNoIHJpbmcsIHRoZSBudW1iZXIgb2Yga2V5cyBhbmQgaG93IG1hbnkgYXJlIGFjdHVhbGx5WCBpbmNsdWRlZCBpbiB0aGUgcm9vdC4ASFBlbmRpbmdTdXNwZW5zaW9ucwEBCAYFEQw1DAQADGkBIEEgbWFwIG9mIGFsbCByaW5ncyB3aGljaCBjdXJyZW50bHkgaGF2ZSBwZW5kaW5nIHN1c3BlbnNpb25zIGFuZCBuZWVkIGNsZWFuaW5nLCBhbG9uZyB3aXRoEQEgdGhlaXIgcmVzcGVjdGl2ZSBudW1iZXIgb2Ygc3VzcGVuZGVkIGtleXMgd2hpY2ggbmVlZCB0byBiZSByZW1vdmVkLm0BIE5vdGU6IEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHNpbmdsZS1wYWdlIHJpbmdzLCBzbyBib3VuZGVkIGJ5IGBSaW5nQ2FwYWNpdHlGcm9tRXhwb25lbnRgLgA0QWN0aXZlTWVtYmVycwEBBAYIOBAAAAAABNAgVGhlIG51bWJlciBvZiBtZW1iZXJzIGN1cnJlbnRseSBpbmNsdWRlZCBpbiBhIHJpbmcuABxNZW1iZXJzAAEIBgI5DD0MBAAYXQEgVGhlIGN1cnJlbnQgbWVtYmVycyBpbiBlYWNoIGNvbGxlY3Rpb24gKGVpdGhlciBpbmNsdWRlZCBpbiByaW5ncywgc3VzcGVuZGVkIGFuZCBxdWV1ZWQhASBmb3IgcmVtb3ZhbCBmcm9tIGEgcmluZywgc3VzcGVuZGVkIGFuZCBub3QgaW4gYW55IHJpbmcsIG9yIG9uYm9hcmRpbmcpLgANASBDb2xsZWN0aW9uIGlkZW50aWZpZXIgdG8gbWVtYmVyIHB1YmxpYyBrZXkgdG8gdGhlIG1lbWJlcidzIHN0YXR1cy4AqCBBIGtleSBjYW4gYmVsb25nIHRvIG11bHRpcGxlIGNvbGxlY3Rpb25zLgAoUmluZ3NTdGF0ZQEBBAYIQQwEAAT8IFRoZSBjdXJyZW50IHN0YXRlIG9mIGFsbCByaW5ncyBtYW5hZ2VkIGZvciBhIGdpdmVuIGlkZW50aWZpZXIuAChTdGFsZVJpbmdzAAEIBgURDBAEAATMIFNldCBvZiByaW5ncyB3aGljaCBhcmUgc3RhbGUgYW5kIHJlcXVpcmUgYnVpbGRpbmcuAEBRdWV1ZVBhZ2VJbmRpY2VzAQEEBgixByAAAAAAAAAAAAQ5ASBLZWVwcyB0cmFjayBvZiB0aGUgcGFnZSBpbmRpY2VzIG9mIHRoZSBoZWFkIGFuZCB0YWlsIG9mIHRoZSBvbmJvYXJkaW5nIHF1ZXVlLgA8T25ib2FyZGluZ1F1ZXVlAQEIBgURDEkMBAAELQEgUGFnaW5hdGVkIGNvbGxlY3Rpb24gb2YgbWVtYmVyIHB1YmxpYyBrZXlzIHJlYWR5IHRvIGJlIGluY2x1ZGVkIGluIGEgcmluZy4ARFJpbmdEZWxldGlvblF1ZXVlAAEMBgUFKQwQBAAUmCBRdWV1ZSBvZiByaW5nIHBhZ2VzIHBlbmRpbmcgZGVsZXRpb24uABUBIFRoaXMgaXMgdXNlZCBib3RoIGJ5IGByZW1vdmVfcmluZ2AgKGluZGl2aWR1YWwgcmluZyBkZWxldGlvbikgYW5kIGJ5GQEgY29sbGVjdGlvbiBkZWxldGlvbi4gUmluZyBwYWdlcyBhcmUgcHJvY2Vzc2VkIGZyb20gdGhpcyBxdWV1ZSB2aWEgT0NXrCByZWdhcmRsZXNzIG9mIHdoaWNoIG9wZXJhdGlvbiBxdWV1ZWQgdGhlbS4AATEFAAF9BwAYOE1heENvbGxlY3Rpb25zOBBkAAAABMQgTWF4aW11bSBudW1iZXIgb2YgY29sbGVjdGlvbnMgYW4gb3duZXIgY2FuIGhhdmUuAFxPbmJvYXJkaW5nUXVldWVQYWdlU2l6ZTgQ/wAAAAhNASBNYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIGluY2x1ZGVkIGluIGFuIG9uYm9hcmRpbmcgcXVldWUgcGFnZSBiZWZvcmUgYSBuZXcgb25lIGlzJCBjcmVhdGVkLgBcTWF4RmxleGlibGVSaW5nRXhwb25lbnQlBQQJDF0BIFRoZSBtYXhpbXVtIHJpbmcgZXhwb25lbnQgdXNlZCBmb3IgRmxleGlibGUgY29sbGVjdGlvbnMuIFRoaXMgYWxzbyBkZXRlcm1pbmVzIHRoZSBwYWdlVQEgc2l6ZSBmb3IgcGFnaW5hdGVkIHJpbmcga2V5IHN0b3JhZ2UuIEZsZXhpYmxlIGNvbGxlY3Rpb25zIGNhbiBvbmx5IHVzZSByaW5nIHNpemVzIHVwPCB0byB0aGlzIHZhbHVlLgBcUmluZ0J1aWxkaW5nTWVtYmVyTGltaXQ4EGQAAAAIYQEgTWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyB0aGF0IGNhbiBiZSBpbmNsdWRlZCBpbiBhIHJpbmcgdGhyb3VnaCBhIHNpbmdsZSByb290IGJ1aWxkaW5nGCBjYWxsLgBgT2xkUm9vdFJldGVudGlvbkR1cmF0aW9uKCBYAgAAAAAAAAhRASBEdXJhdGlvbiBpbiBzZWNvbmRzIHRoYXQgb2xkIHJpbmcgcm9vdHMgYXJlIHJldGFpbmVkIGJlZm9yZSB0aGV5IGNhbiBiZSBjbGVhbmVkIHVwLkkBIFRoaXMgYWxsb3dzIHByb29mcyBnZW5lcmF0ZWQgd2l0aCBvbGRlciByb290cyB0byByZW1haW4gdmFsaWQgZm9yIGEgZ3JhY2UgcGVyaW9kLgBYT2ZmY2hhaW5Xb3JrZXJJbnRlcnZhbDgQAQAAAATkIFRoZSBudW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gb2ZmY2hhaW4gd29ya2VyIGV4ZWN1dGlvbnMuAAFNDAAEIExvY2F0aW9u4AQ5ASBMb2NhdGlvbiB0eXBlIGZvciBpZGVudGlmeWluZyBjb2xsZWN0aW9uIG93bmVycyBmcm9tIG90aGVyIGNoYWlucy9wYXJhY2hhaW5zLgBDAAAcQ29pbmFnZQEcQ29pbmFnZUAwQ29pbnNCeU93bmVyAAEEBQRxAwQAEEAgQ29pbnMgYnkgb3duZXIuAF0BIFRoaXMgc3RvcmFnZSBtYXAgY29udGFpbnMgYWxsIHRoZSBjb2lucyBjdXJyZW50bHkgY2lyY3VsYXRpbmcuIFRoZSBjb2luIGlzIG1pbnRlZCB3aGVuJQEgdW5sb2FkZWQgZnJvbSB0aGUgcmVjeWNsZXIsIGFuZCBkZXN0cm95ZWQgd2hlbiBsb2FkZWQgaW50byB0aGUgcmVjeWNsZXIuACxMb2NrZWRDb2lucwABBAUEUQwEABAFASBUZW1wb3JhcnkgbG9jayBleHBpcnkgZm9yIGNvaW5zIHRoYXQgcHJldmlvdXNseSBmYWlsZWQgZGlzcGF0Y2guAGUBIEEgY29pbiBvd25lciBlbnRyeSBpcyBsb2NrZWQgdW50aWwgdGhlIHN0b3JlZCBVbml4IHRpbWVzdGFtcCwgcHJldmVudGluZyByZXBlYXRlZCBmYWlsZWSUIGRpc3BhdGNoIGF0dGVtcHRzIGluIGEgc2hvcnQgcGVyaW9kLgBoVG90YWxWYWx1ZU9mRGVzdHJveWVkQ29pbnMBAMRAAAAAAAAAAAAAAAAAAAAAABSoIFRoZSB0b3RhbCB2YWx1ZSBvZiBjb2lucyB0aGF0IHdlcmUgYnVybnQuAGkBIFRoaXMgdHJhY2tzIHZhbHVlIHRoYXQgaXMgaW50ZW50aW9uYWxseSBkZXN0cm95ZWQgYXMgcGFydCBvZiBwcm90b2NvbCBmbG93cyAoZm9yIGV4YW1wbGU6ZQEgcmVjeWNsZXIgZXhwaXJhdGlvbiBjbGVhbnVwIGFuZCBvdXRwdXQtdG9rZW4gc3BhbSBwZW5hbHR5IHBhdGgpLiBUaGlzIHN0b3JhZ2UgaXRlbSBrZWVwc8ggdHJhY2sgb2YgdGhlIHRvdGFsIHZhbHVlIG9mIHN1Y2ggZGVzdHJveWVkIGNvaW5zLgBgQ29uc3VtZWRGcmVlVW5sb2FkVG9rZW5zAAEIBQWxChAEABjEIENvbnN1bWVkIGZyZWUgdW5sb2FkIHRva2VucyBieSBwZXJpb2QgYW5kIGFsaWFzLgBVASBUaGlzIHN0b3JhZ2Uga2VlcHMgdHJhY2sgb2YgdGhlIGZyZWUgdW5sb2FkIHRva2VucyB0aGF0IGhhdmUgYmVlbiBjb25zdW1lZCBieSBwZW9wbGWsIGFuZCBsaXRlIHBlb3BsZSwgdG8gYXZvaWQgZG91YmxlIHNwZW5kaW5nLgBwIEl0IGlzIGNsZWFyZWQgcGVyaW9kaWNhbGx5LgBkUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZAABBAV1AxAEAEgRASBUcmFja3Mgd2hldGhlciBhIHJlY3ljbGVyIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIGdpdmVuIGNvaW4gdmFsdWUuADEBIFJlY3ljbGVyIGNvbGxlY3Rpb25zIGFyZSBub3JtYWxseSBjcmVhdGVkIGVhZ2VybHkgZHVyaW5nIG9uZS10aW1lIGBvbl9wb2xsYNwgaW5pdGlhbGl6YXRpb24gYWZ0ZXIgYFVuZGVybHlpbmdBc3NldElkYCBoYXMgYmVlbiBzZXQuHQEgW2BSZWN5Y2xlck1hbmFnZXI6OmVuc3VyZV9jb2xsZWN0aW9uX2V4aXN0c2BdIHJlbWFpbnMgdGhlIGZhbGxiYWNrIGZvcgEBIGZpcnN0LXVzZSBvciByZWNvdmVyeSBwYXRocyB3aGVuIGEgY29sbGVjdGlvbiBpcyBzdGlsbCBtaXNzaW5nLgBVASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFJlY3ljbGVyTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AVQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFJlY3ljbGVyTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ6QQEgKiBbUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBjb2luIHZhbHVlLlUBICogW1JlY3ljbGVyc0xhc3RSZW1vdmVkUmluZ0luZGV4XSAtIHRoZSBsYXN0IHJlbW92ZWQgcmluZyBpbmRleCBmb3IgZWFjaCBjb2luIHZhbHVlLlkBICogW1JlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyXSAtIHRoZSBtYXBwaW5nIGZyb20gbWVtYmVyIGtleSB0byB0aGUgY29pbiB2YWx1ZSBpdCBpcyBpbi5hASAqIFtSZWN5Y2xlcnNVbmxvYWRlZF0gLSB0aGUgcmVjeWNsZXJzJyB1bmxvYWRlZCBhbGlhc2VzLCBpbmRleGVkIGJ5IGNvaW4gdmFsdWUgYW5kIHJpbmckICAgaW5kZXguKQEgKiBbUmVjeWNsZXJzRHVzdGluZ10gLSBtYXJrcyByaW5ncyB3aXRoIHVubG9hZGVkIGFsaWFzZXMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AdFJlY3ljbGVyc0xhc3RSZW1vdmVkUmluZ0luZGV4AAEEBXUDOAQAQMQgTGFzdCByZW1vdmVkIHJpbmcgaW5kZXggcGVyIHJlY3ljbGVyIGNvaW4gdmFsdWUuAEUBIFJpbmdzIGFyZSByZW1vdmVkIHNlcXVlbnRpYWxseSBzdGFydGluZyBmcm9tIGluZGV4IDAuIFRoZSBuZXh0IHJpbmcgdG8gY2hlY2sgZm9yLQEgZXhwaXJhdGlvbiBpcyBgbGFzdF9yZW1vdmVkICsgMWAgKG9yIGAwYCBpZiBub3RoaW5nIGhhcyBiZWVuIHJlbW92ZWQgeWV0KS4AVQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BSZWN5Y2xlck1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFUBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BSZWN5Y2xlck1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OkEBICogW1JlY3ljbGVyQ29sbGVjdGlvbkNyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgY29pbiB2YWx1ZS5VASAqIFtSZWN5Y2xlcnNMYXN0UmVtb3ZlZFJpbmdJbmRleF0gLSB0aGUgbGFzdCByZW1vdmVkIHJpbmcgaW5kZXggZm9yIGVhY2ggY29pbiB2YWx1ZS5ZASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGNvaW4gdmFsdWUgaXQgaXMgaW4uYQEgKiBbUmVjeWNsZXJzVW5sb2FkZWRdIC0gdGhlIHJlY3ljbGVycycgdW5sb2FkZWQgYWxpYXNlcywgaW5kZXhlZCBieSBjb2luIHZhbHVlIGFuZCByaW5nJCAgIGluZGV4LikBICogW1JlY3ljbGVyc0R1c3RpbmddIC0gbWFya3MgcmluZ3Mgd2l0aCB1bmxvYWRlZCBhbGlhc2VzIHBlbmRpbmcgcmVtb3ZhbC4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAFxSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcgABBAUIdQMEAEARASBNYXBwaW5nIGZyb20gYSByZWN5Y2xlciBtZW1iZXIga2V5IHRvIHRoZSBjb2luIHZhbHVlIGl0IGJlbG9uZ3MgdG8uAE0BIFdoZW4gYSBjb2luIGlzIGxvYWRlZCBpbnRvIGEgcmVjeWNsZXIsIHRoZSBtZW1iZXIga2V5IGlzIHJlY29yZGVkIGhlcmUgc28gdGhhdCB0aGUNASBwYWxsZXQgY2FuIGxvb2sgdXAgd2hpY2ggY29pbiB2YWx1ZSB0aGUgbWVtYmVyIGtleSBjb3JyZXNwb25kcyB0by4AVQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BSZWN5Y2xlck1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFUBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BSZWN5Y2xlck1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OkEBICogW1JlY3ljbGVyQ29sbGVjdGlvbkNyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgY29pbiB2YWx1ZS5VASAqIFtSZWN5Y2xlcnNMYXN0UmVtb3ZlZFJpbmdJbmRleF0gLSB0aGUgbGFzdCByZW1vdmVkIHJpbmcgaW5kZXggZm9yIGVhY2ggY29pbiB2YWx1ZS5ZASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGNvaW4gdmFsdWUgaXQgaXMgaW4uYQEgKiBbUmVjeWNsZXJzVW5sb2FkZWRdIC0gdGhlIHJlY3ljbGVycycgdW5sb2FkZWQgYWxpYXNlcywgaW5kZXhlZCBieSBjb2luIHZhbHVlIGFuZCByaW5nJCAgIGluZGV4LikBICogW1JlY3ljbGVyc0R1c3RpbmddIC0gbWFya3MgcmluZ3Mgd2l0aCB1bmxvYWRlZCBhbGlhc2VzIHBlbmRpbmcgcmVtb3ZhbC4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAERSZWN5Y2xlcnNVbmxvYWRlZAABDAUFBVkMEAQAQDUBIFRoZSByZWN5Y2xlcnMnIHVubG9hZGVkIGFsaWFzZXMsIGluZGV4ZWQgYnkgKGNvaW4gdmFsdWUsIHJpbmcgaW5kZXgsIGFsaWFzKS4AVQEgV2hlbiBhIGNvaW4gaXMgdW5sb2FkZWQgZnJvbSBhIHJlY3ljbGVyLCB0aGUgYWxpYXMgcHJvZHVjZWQgYnkgdGhlIHJpbmctVlJGIHByb29mIGlzGQEgc3RvcmVkIGhlcmUgdG8gcHJldmVudCBkb3VibGUtc3BlbmRpbmcgd2l0aGluIHRoZSBzYW1lIHJlY3ljbGVyIHJpbmcuAFUBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUmVjeWNsZXJNYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBVASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUmVjeWNsZXJNYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDpBASAqIFtSZWN5Y2xlckNvbGxlY3Rpb25DcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIGNvaW4gdmFsdWUuVQEgKiBbUmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXhdIC0gdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGluZGV4IGZvciBlYWNoIGNvaW4gdmFsdWUuWQEgKiBbUmVjeWNsZXJzQ29pblRvUmVjeWNsZXJdIC0gdGhlIG1hcHBpbmcgZnJvbSBtZW1iZXIga2V5IHRvIHRoZSBjb2luIHZhbHVlIGl0IGlzIGluLmEBICogW1JlY3ljbGVyc1VubG9hZGVkXSAtIHRoZSByZWN5Y2xlcnMnIHVubG9hZGVkIGFsaWFzZXMsIGluZGV4ZWQgYnkgY29pbiB2YWx1ZSBhbmQgcmluZyQgICBpbmRleC4pASAqIFtSZWN5Y2xlcnNEdXN0aW5nXSAtIG1hcmtzIHJpbmdzIHdpdGggdW5sb2FkZWQgYWxpYXNlcyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBAUmVjeWNsZXJzRHVzdGluZwABBAVdDBAEAEgFASBNYXJrcyByZWN5Y2xlciByaW5ncyB0aGF0IGhhdmUgdW5sb2FkZWQgYWxpYXNlcyBwZW5kaW5nIHJlbW92YWwuACEBIFdoZW4gYSByZWN5Y2xlciByaW5nIGlzIHJlbW92ZWQsIHRoZSBjbGVhbnVwIG9mIGl0cyB1bmxvYWRlZCBhbGlhc2VzIGluUQEgW1JlY3ljbGVyc1VubG9hZGVkXSBpcyBwZXJmb3JtZWQgZ3JhZHVhbGx5IHRocm91Z2ggdGhpcyBzdG9yYWdlIGl0ZW0uIEFuIGVudHJ5IGhlcmVRASBpbmRpY2F0ZXMgdGhhdCB1bmxvYWRlZCBhbGlhc2VzIGZvciB0aGUgZ2l2ZW4gY29pbiB2YWx1ZSBhbmQgcmluZyBpbmRleCBzdGlsbCBleGlzdFggYW5kIHNob3VsZCBiZSBkdXN0ZWQuAFUBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUmVjeWNsZXJNYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBVASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUmVjeWNsZXJNYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDpBASAqIFtSZWN5Y2xlckNvbGxlY3Rpb25DcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIGNvaW4gdmFsdWUuVQEgKiBbUmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXhdIC0gdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGluZGV4IGZvciBlYWNoIGNvaW4gdmFsdWUuWQEgKiBbUmVjeWNsZXJzQ29pblRvUmVjeWNsZXJdIC0gdGhlIG1hcHBpbmcgZnJvbSBtZW1iZXIga2V5IHRvIHRoZSBjb2luIHZhbHVlIGl0IGlzIGluLmEBICogW1JlY3ljbGVyc1VubG9hZGVkXSAtIHRoZSByZWN5Y2xlcnMnIHVubG9hZGVkIGFsaWFzZXMsIGluZGV4ZWQgYnkgY29pbiB2YWx1ZSBhbmQgcmluZyQgICBpbmRleC4pASAqIFtSZWN5Y2xlcnNEdXN0aW5nXSAtIG1hcmtzIHJpbmdzIHdpdGggdW5sb2FkZWQgYWxpYXNlcyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBYUGFpZFVubG9hZFRva2VuTWVtYmVycwABBAUIEAQAOAkBIE1hcHBpbmcgZnJvbSBhIHBhaWQgdG9rZW4gbWVtYmVyIGtleSB0byB0aGUgcGVyaW9kIGl0IGJlbG9uZ3MgdG8uAEUBIFdoZW4gYSB1c2VyIHBheXMgZm9yIGEgcmVjeWNsZXIgdW5sb2FkIHRva2VuLCB0aGUgbWVtYmVyIGtleSBpcyByZWNvcmRlZCBoZXJlIHNvIQEgdGhhdCB0aGUgcGFsbGV0IGNhbiBsb29rIHVwIHdoaWNoIHBlcmlvZCB0aGUgbWVtYmVyIGtleSBjb3JyZXNwb25kcyB0by4AUQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BQYWlkVGtuTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AUQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFBhaWRUa25NYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDrwICogW1BhaWRVbmxvYWRUb2tlbk1lbWJlcnNdIC0gdHJhY2tzIHJlZ2lzdGVyZWQgbWVtYmVyIGtleXMuGQEgKiBbUGFpZFVubG9hZFRva2VuQ29uc3VtZWRdIC0gdGhlIGNvbnN1bWVkIHBhaWQgdW5sb2FkIHRva2VuIGFsaWFzZXMuOQEgKiBbUGFpZFRva2VuQ29sbGVjdGlvbnNDcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIHBlcmlvZC5FASAqIFtQYWlkVW5sb2FkVG9rZW5EdXN0aW5nXSAtIG1hcmtzIHBlcmlvZHMgd2l0aCBjb25zdW1lZCB0b2tlbnMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AXFBhaWRVbmxvYWRUb2tlbkNvbnN1bWVkAAEMBgUFzQsQBAA49CBDb25zdW1lZCBwYWlkIHVubG9hZCB0b2tlbnMgYnkgcGVyaW9kLCByaW5nIGluZGV4IGFuZCBhbGlhcy4ASQEgV2hlbiBhIHBhaWQgdW5sb2FkIHRva2VuIGlzIGNvbnN1bWVkLCB0aGUgYWxpYXMgcHJvZHVjZWQgYnkgdGhlIHJpbmctVlJGIHByb29mIGlz9CBzdG9yZWQgaGVyZSB0byBwcmV2ZW50IGRvdWJsZS1zcGVuZGluZyB3aXRoaW4gdGhlIHNhbWUgcmluZy4AUQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BQYWlkVGtuTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AUQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFBhaWRUa25NYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDrwICogW1BhaWRVbmxvYWRUb2tlbk1lbWJlcnNdIC0gdHJhY2tzIHJlZ2lzdGVyZWQgbWVtYmVyIGtleXMuGQEgKiBbUGFpZFVubG9hZFRva2VuQ29uc3VtZWRdIC0gdGhlIGNvbnN1bWVkIHBhaWQgdW5sb2FkIHRva2VuIGFsaWFzZXMuOQEgKiBbUGFpZFRva2VuQ29sbGVjdGlvbnNDcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIHBlcmlvZC5FASAqIFtQYWlkVW5sb2FkVG9rZW5EdXN0aW5nXSAtIG1hcmtzIHBlcmlvZHMgd2l0aCBjb25zdW1lZCB0b2tlbnMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AbFBhaWRUb2tlbkNvbGxlY3Rpb25zQ3JlYXRlZAABBAbBCxAEADgJASBUcmFja3Mgd2hldGhlciBhIHBhaWQgdG9rZW4gY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgZ2l2ZW4gcGVyaW9kLgBVASBVc2VzIGBJZGVudGl0eWAgaGFzaGVyIHNvIHRoYXQgaXRlcmF0aW9uIHlpZWxkcyBwZXJpb2RzIGluIG9yZGVyLCBlbmFibGluZyBlZmZpY2llbnRwIGNsZWFudXAgb2YgZXhwaXJlZCBwZXJpb2RzLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBYUGFpZFVubG9hZFRva2VuRHVzdGluZwABBAbBCxAEAEAtASBNYXJrcyBwYWlkIHVubG9hZCB0b2tlbiBwZXJpb2RzIHRoYXQgaGF2ZSBjb25zdW1lZCB0b2tlbnMgcGVuZGluZyByZW1vdmFsLgBZASBXaGVuIGEgcGFpZCB1bmxvYWQgdG9rZW4gY29sbGVjdGlvbiBpcyByZW1vdmVkLCB0aGUgY2xlYW51cCBvZiBpdHMgY29uc3VtZWQgdG9rZW5zIGluVQEgW1BhaWRVbmxvYWRUb2tlbkNvbnN1bWVkXSBpcyBwZXJmb3JtZWQgZ3JhZHVhbGx5IHRocm91Z2ggdGhpcyBzdG9yYWdlIGl0ZW0uIEFuIGVudHJ5TQEgaGVyZSBpbmRpY2F0ZXMgdGhhdCBjb25zdW1lZCB0b2tlbnMgZm9yIHRoZSBnaXZlbiBwZXJpb2Qgc3RpbGwgZXhpc3QgYW5kIHNob3VsZCBiZSAgZHVzdGVkLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgB4UGFpZFVubG9hZFRva2VuTmV4dFJpbmdUb0NsZWFuAAEEBsELOAQAYPQgVHJhY2tzIHRoZSBuZXh0IHJpbmcgaW5kZXggdG8gY2xlYW4gZm9yIGVhY2ggZXhwaXJlZCBwZXJpb2QuADUBIFVzZWQgYnkgdGhlIE9DVyB0byBkZXRlcm1pbmUgY2xlYW51cCBwcm9ncmVzcyBhbmQgYnkgdGhlIGNvbGxlY3Rpb24gZGVsZXRpb27EIGV4dHJpbnNpYyB0byB2ZXJpZnkgYWxsIHJpbmdzIGhhdmUgYmVlbiBjbGVhbmVkLgA9ASBSaW5ncyBhcmUgY2xlYW5lZCBzZXF1ZW50aWFsbHkgKG9uZSBwZXIgT0NXIGludGVydmFsKSByYXRoZXIgdGhhbiBhbGwgYXQgb25jZS49ASBUaGlzIGlzIGludGVudGlvbmFsOiBhIHNpbmdsZSBzdG9yYWdlIGN1cnNvciBlbmFibGVzIE8oMSkgY29tcGxldGlvbiBjaGVja3MgaW7MIGJvdGggW2BQYWlkVGtuTWFuYWdlcjo6ZW5zdXJlX2Nhbl9jbGVhbl9yaW5nYF0gYW5kRQEgW2BQYWlkVGtuTWFuYWdlcjo6ZW5zdXJlX2Nhbl9kZWxldGVfY29sbGVjdGlvbmBdLiBUaGUgYWx0ZXJuYXRpdmUg4oCUIHN1Ym1pdHRpbmdVASBhbGwgcmluZyBjbGVhbnMgaW4gcGFyYWxsZWwg4oCUIHdvdWxkIHJlcXVpcmUgZmV0Y2hpbmcgcmluZyBtZW1iZXJzIHRvIGNoZWNrIHdoZXRoZXJNASBlYWNoIHJpbmcgd2FzIGFscmVhZHkgY2xlYW5lZCAoc2luY2UgYHJpbmdfc3RhdHVzYCBzdGlsbCByZXBvcnRzIGB0b3RhbCA+IDBgIGFmdGVyVQEgY2xlYW51cCBiZWNhdXNlIHJpbmdzIGFyZSBub3QgcmVtb3ZlZCB1bnRpbCBjb2xsZWN0aW9uIGRlbGV0aW9uKS4gQ2xlYW51cCBvZiBleHBpcmVkTQEgY29sbGVjdGlvbnMgaXMgbm90IHRpbWUtY3JpdGljYWwsIHNvIHRoZSBzaW1wbGVyIHNlcXVlbnRpYWwgYXBwcm9hY2ggaXMgcHJlZmVycmVkLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuHQEgKiBbUGFpZFVubG9hZFRva2VuTmV4dFJpbmdUb0NsZWFuXSAtIHNlcXVlbnRpYWwgcmluZyBjbGVhbnVwIHByb2dyZXNzLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AXEluaXRpYWxpemVQYWxsZXRBY2NvdW50AAAQBAAY0CBXaGV0aGVyIHRoZSBvbmUtdGltZSBwYWxsZXQgaW5pdGlhbGl6YXRpb24gaGFzIHJ1bi4AWQEgU2V0IGJ5IFtgUGFsbGV0Ojpkb19pbml0aWFsaXplYF0gb25jZSByZWN5Y2xlciBjb2xsZWN0aW9ucyBhcmUgY3JlYXRlZCBhbmQgdGhlIHBhbGxldD0BIGFjY291bnQgaGFzIGJlZW4gZW5zdXJlZCB0byBob2xkIHRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgW2BVbmRlcmx5aW5nQXNzZXRJZGBdLlEBIEluaXRpYWxpemF0aW9uIGlzIGdhdGVkIG9uIGBVbmRlcmx5aW5nQXNzZXRJZGAgYmVpbmcgc2V0LCBzbyB0aGlzIHN0YXlzIHVuc2V0IHVudGls7CBnb3Zlcm5hbmNlIGhhcyBjYWxsZWQgW2BQYWxsZXQ6OnNldF91bmRlcmx5aW5nX2Fzc2V0X2lkYF0uAERVbmRlcmx5aW5nQXNzZXRJZAAA4AQAGJwgVGhlIHVuZGVybHlpbmcgYXNzZXQgaWQgZm9yIHRoZSBjb2lucy4A1CBTZXQgb25jZSBieSBbYENvbmZpZzo6VW5kZXJseWluZ0Fzc2V0SWRNYW5hZ2VyYF0gdmlhVQEgW2BQYWxsZXQ6OnNldF91bmRlcmx5aW5nX2Fzc2V0X2lkYF0uIFdoaWxlIHVuc2V0LCBldmVyeSBjb2luL3JlY3ljbGVyIG9wZXJhdGlvbiB0aGF0DQEgbmVlZHMgdGhlIHVuZGVybHlpbmcgYXNzZXQgZmFpbHMgd2l0aCBbYEVycm9yOjpBc3NldElkTm90U2V0YF0gKG9yKQEgW2BDdXN0b21JbnZhbGlkaXR5OjpBc3NldElkTm90U2V0YF0gaW4gdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIHZhbGlkYXRpb24pLgABNQUAAYEHAEBQUmVjeWNsZXJSaW5nRXhwb25lbnQlBQQKBLAgVGhlIHJpbmcgZXhwb25lbnQgZm9yIHJlY3ljbGVyIGNvbGxlY3Rpb25zLgBsUGFpZFVubG9hZFRva2VuUmluZ0V4cG9uZW50JQUECgTUIFRoZSByaW5nIGV4cG9uZW50IGZvciBwYWlkIHVubG9hZCB0b2tlbiBjb2xsZWN0aW9ucy4ATFVuZGVybHlpbmdBc3NldFVuaXTEQBAnAAAAAAAAAAAAAAAAAAAEvCBUaGUgdW5pdCBvZiB0aGUgdW5kZXJseWluZyBhc3NldCBvZiB0aGUgY29pbnMuADxNaW5pbXVtRXhwb25lbnR1AwQABKQgVGhlIG1pbmltdW0gZXhwb25lbnQgZm9yIHRoZSBjb2luIHZhbHVlLgA8TWF4aW11bUV4cG9uZW50dQMEDgSkIFRoZSBtYXhpbXVtIGV4cG9uZW50IGZvciB0aGUgY29pbiB2YWx1ZS4AhE1pbmltdW1FeHBvbmVudEZvck91dHB1dFVubG9hZEZlZXUDBAAgXQEgVGhlIG1pbmltdW0gY29pbiBleHBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRpc3BhdGNoIGEgY2FsbCBgdW5sb2FkX3JlY3ljbGVyXypgIHdpdGjUIHRoZSB0cmFuc2FjdGlvbiBleHRlbnNpb24gYEFzVW5sb2FkVG9rZW5Gcm9tT3V0cHV0YC4AYQEgVGhpcyBlbnN1cmVzIHRoZSBmZWUgY29pbiBpcyBsYXJnZSBlbm91Z2ggdG8gcGVuYWxpemUgZmFpbGluZyB0cmFuc2FjdGlvbnMsIGJ1dCBpdCBkb2VzuCBub3QgbmVlZCB0byBjb3ZlciB0aGUgd2hvbGUgdW5sb2FkIHRva2VuIGZlZS4AUQEgVGhlIGhlbHBlciBmdW5jdGlvbiBgd2VpZ2h0X2Zvcl91bmxvYWRfcmVjeWNsZXJfcGF5aW5nX3VzaW5nX291dHB1dGAgY2FuIGJlIHVzZWQgdG/MIGV2YWx1YXRlIHRoZSB3b3JzdC1jYXNlIHdlaWdodCBmb3IgdGhpcyBvcGVyYXRpb24uADxNYXhTcGxpdE91dHB1dHM4ECAAAAAErCBUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3V0cHV0cyBmb3IgYSBzcGxpdC4AQE1heENvbnNvbGlkYXRpb244EEAAAAAE3CBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWxpYXMgcHJvb2ZzIGluIGEgY29uc29saWRhdGlvbi4ASE1heEJhdGNoVW5wYWlkTG9hZDgQCgAAAAi4IFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbm5lciBjYWxscyBpbiBhIHNpbmdsZQ0BIFtgQ2FsbDo6bG9hZF9yZWN5Y2xlcl93aXRoX2V4dGVybmFsX2Fzc2V0X3VucGFpZF9iYXRjaGBdIGRpc3BhdGNoLgCUVW5sb2FkVG9rZW5UaW1lUGVyaW9kUGVvcGxlTGl0ZVBlb3BsZTgQgFEBAATgIFRoZSB0aW1lIHBlcmlvZCBkdXJhdGlvbiBmb3IgdW5sb2FkIHRva2VucywgaW4gc2Vjb25kcy4AqFVubG9hZFRva2VuQWxsb3dhbmNlUGVyVGltZVBlcmlvZEZvclBlb3BsZcRAgIQeAAAAAAAAAAAAAAAAABRdASBUaGUgYWxsb3dhbmNlIG9mIHVubG9hZCB0b2tlbnMgdGhhdCBhIHBlcnNvbiBjYW4gdXNlIHBlciB0aW1lIHBlcmlvZCwgZXhwcmVzc2VkIGluIHRoZUggdW5kZXJseWluZyBhc3NldC4AVQEgVXNlIHBhbGxldCB2aWV3IHRvIGZldGNoIHRoZSBjb3JyZXNwb25kaW5nIG51bWJlciBvZiB1bmxvYWQgdG9rZW5zIGdpdmVuIHRoZSBjdXJyZW50ZCBwcmljZSBmb3IgdW5sb2FkIHRva2Vucy4AuFVubG9hZFRva2VuQWxsb3dhbmNlUGVyVGltZVBlcmlvZEZvckxpdGVQZW9wbGXEQCChBwAAAAAAAAAAAAAAAAAUYQEgVGhlIGFsbG93YW5jZSBvZiB1bmxvYWQgdG9rZW5zIHRoYXQgYSBsaXRlIHBlcnNvbiBjYW4gdXNlIHBlciB0aW1lIHBlcmlvZCwgZXhwcmVzc2VkIGluWCB0aGUgdW5kZXJseWluZyBhc3NldC4AWQEgVXNlIHBhbGxldCdzIGdldF9mcmVlX3VubG9hZF90b2tlbl9pbmZvKCkgdG8gZmV0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgbnVtYmVyIG9mIHVubG9hZMggdG9rZW5zIGdpdmVuIHRoZSBjdXJyZW50IHByaWNlIGZvciB1bmxvYWQgdG9rZW5zLgCATWF4RnJlZVVubG9hZFRva2Vuc1BlclRpbWVQZXJpb2Q4EOgDAAAQGQEgSGFyZCB1cHBlciBib3VuZCBvbiB0aGUgbnVtYmVyIG9mIGZyZWUgdW5sb2FkIHRva2VucyBwZXIgdGltZSBwZXJpb2QuAIwgVGhlIGVmZmVjdGl2ZSBmcmVlIHRva2VuIGxpbWl0IGlzOgkBIGBtaW4oYWxsb3dhbmNlIC8gY3VycmVudF9mZWUsIE1heEZyZWVVbmxvYWRUb2tlbnNQZXJUaW1lUGVyaW9kKWAuAFhPZmZjaGFpbldvcmtlckludGVydmFsOBAEAAAABOQgVGhlIG51bWJlciBvZiBibG9ja3MgYmV0d2VlbiBvZmZjaGFpbiB3b3JrZXIgZXhlY3V0aW9ucy4AVENvaW5GYWlsdXJlTG9ja1BlcmlvZCggPAAAAAAAAAAQUQEgVGhlIGJhc2UgbnVtYmVyIG9mIHNlY29uZHMgdG8gbG9jayBhIGNvaW4gYWZ0ZXIgYSBmYWlsZWQgZGlzcGF0Y2ggaW4gYEFzQ29pbmAgZmxvdy4APQEgVGhlIGFjdHVhbCBsb2NrIGR1cmF0aW9uIGlzIGV4cG9uZW50aWFsOiBgMl5yZXRyaWVzICogYmFzZWAgd2hlcmUgYHJldHJpZXNgIGlzkCB0aGUgbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGZhaWx1cmVzLgA4cGFsbGV0X2FjY291bnQEgG1vZGxjb2luYWdlIAAAAAAAAAAAAAAAAAAAAAAAAAAABHggVGhlIGFjY291bnQgaWQgb2YgdGhlIHBhbGxldC4AAWEMAABEesJxLIp2pSrDuhCikCHsmfkvJO5tPVdJfo88UmFcYWFoZ2V0X2ZyZWVfdW5sb2FkX3Rva2VuX2luZm8AZQwkTQEgR2V0IHRoZSBjdXJyZW50IG51bWJlciBvZiBmcmVlIHVubG9hZCB0b2tlbnMgZGlzdHJpYnV0ZWQgdG8gcGVvcGxlIGFuZCBsaXRlIHBlb3BsZawgZ2l2ZW4gdGhlIGN1cnJlbnQgcHJpY2UgZm9yIHVubG9hZCB0b2tlbnMuAF0BIElmIGFuIGVsZW1lbnQgaXMgYE5vbmVgLCBubyBwcmljZSBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIGFuZCBjb252ZXJzaW9uIGJldHdlZW4gbmF0aXZlxCBhbmQgdGhlIHVuZGVybHlpbmcgYXNzZXQgbmVlZHMgdG8gYmUgY29uZmlndXJlZC4AuCBSZXR1cm5zOiBgKGxpbWl0X3Blb3BsZSwgbGltaXRfbGl0ZV9wZW9wbGUpYC4A6CBFYWNoIGVsZW1lbnQgaXMgYE5vbmVgIHdoZW4gaXRzIGxpbWl0IGNhbm5vdCBiZSBjb21wdXRlZC4AesJxLIp2pSrDuhCikCHsmXPdGYKfacSTnvrLZoqsg6tgZ2V0X3JlY3ljbGVyX3Jpbmdfc3RhdHVzCBR2YWx1ZXUDFGluZGV4OGkMBOggR2V0IHRoZSByaW5nIHN0YXR1cyBmb3IgYSByZWN5Y2xlciBhdCBhIGdpdmVuIHJpbmcgaW5kZXguAHrCcSyKdqUqw7oQopAh7JlI2ljtqFXqlVC+vSqiW33yaGdldF9yZWN5Y2xlcl9yaW5nX3JldmlzaW9uCBR2YWx1ZXUDFGluZGV4OAkDBPAgR2V0IHRoZSByaW5nIHJldmlzaW9uIGZvciBhIHJlY3ljbGVyIGF0IGEgZ2l2ZW4gcmluZyBpbmRleC4AesJxLIp2pSrDuhCikCHsmbXvxoCaa/NrA65X9MZsBIloZ2V0X3BhaWRfdG9rZW5fcmluZ19zdGF0dXMIGHBlcmlvZDgUaW5kZXg4aQwEHQEgR2V0IHRoZSByaW5nIHN0YXR1cyBmb3IgYSBwYWlkIHRva2VuIGF0IGEgZ2l2ZW4gcGVyaW9kIGFuZCByaW5nIGluZGV4LgB6wnEsinalKsO6EKKQIeyZoPbDEPaoKp98du8gf/2eNXBnZXRfcGFpZF90b2tlbl9yaW5nX3JldmlzaW9uCBhwZXJpb2Q4FGluZGV4OAkDBCUBIEdldCB0aGUgcmluZyByZXZpc2lvbiBmb3IgYSBwYWlkIHRva2VuIGF0IGEgZ2l2ZW4gcGVyaW9kIGFuZCByaW5nIGluZGV4LgB6wnEsinalKsO6EKKQIeyZbrxV6ZzX4j5zJePs/NmbZohnZXRfcGFpZF91bmxvYWRfdG9rZW5fZmVlX2luX2Fzc2V0AAkJEBEBIEdldCB0aGUgY3VycmVudCBmZWUgaW4gdGhlIHVuZGVybHlpbmcgYXNzZXQgZm9yIHBhaWQgdW5sb2FkIHRva2Vucy4AXQEgSWYgbm9uZSBpcyByZXR1cm5lZCBpdCBtZWFucyB0aGF0IG5vIHByaWNlIGlzIGN1cnJlbnRseSBhdmFpbGFibGUsIGFuZCBzb21lIGNvbnZlcnNpb24BASBiZXR3ZWVuIG5hdGl2ZSBhbmQgdGhlIHVuZGVybHlpbmcgYXNzZXQgbmVlZHMgdG8gYmUgY29uZmlndXJlZC4AesJxLIp2pSrDuhCikCHsmc69RKDPUdW6mU9sD+As6eqMZ2V0X3BhaWRfdW5sb2FkX3Rva2VuX2ZlZV9pbl9uYXRpdmUAxAQNASBHZXQgdGhlIGN1cnJlbnQgZmVlIGluIHRoZSBuYXRpdmUgY3VycmVuY3kgZm9yIHBhaWQgdW5sb2FkIHRva2Vucy4AesJxLIp2pSrDuhCikCHsmZ5ekF5ZqkCfsYBreJmmF4VEZ2V0X2NvaW5fYnlfb3duZXIEFG93bmVyBG0MBIQgR2V0IGNvaW4gZGV0YWlscyBmb3IgYW4gYWNjb3VudC4AesJxLIp2pSrDuhCikCHsmdqcFukkgqX3o5fxn/ykfxpMZ2V0X2NvaW5fbG9ja191bnRpbAQUb3duZXIEFQMMVQEgR2V0IHRoZSBVbml4IHRpbWVzdGFtcCB1bnRpbCB3aGljaCBhIGNvaW4gaXMgY3VycmVudGx5IGxvY2tlZCBhZnRlciBmYWlsZWQgZGlzcGF0Y2guAEkBIFJldHVybnMgYE5vbmVgIHdoZW4gdGhlcmUgaXMgbm8gbG9jayBvciB3aGVuIHRoZSBzdG9yZWQgbG9jayBoYXMgYWxyZWFkeSBleHBpcmVkLgB6wnEsinalKsO6EKKQIeyZZGMoqHl4CvwS4UJZYBFgUGBnZXRfcmVjeWNsZXJfbWVtYmVyX2luZm8EGG1lbWJlcghxDATcIEdldCB0aGUgY29pbiB2YWx1ZSBmb3IgYSBzcGVjaWZpYyByZWN5Y2xlciBtZW1iZXIga2V5LgB6wnEsinalKsO6EKKQIeyZTyIHCkN80VRC5T6JoCpodFBpc19wYWlkX3Rva2VuX21lbWJlcgQYbWVtYmVyCMgE1CBDaGVjayB3aGV0aGVyIGEgcGFpZCB0b2tlbiBtZW1iZXIga2V5IGlzIHJlZ2lzdGVyZWQuAHrCcSyKdqUqw7oQopAh7Jks9kdkITNhnX8ePLxduHs4UGdldF9yZWN5Y2xlcl9tZW1iZXJzCBR2YWx1ZXUDFGluZGV4OF0ECOAgR2V0IHRoZSBtZW1iZXJzIG9mIGEgcmVjeWNsZXIgcmluZyAodGhlIGFub255bWl0eSBzZXQpLg0BIFJlcXVpcmVkIHRvIGJ1aWxkIHRoZSByaW5nIGNvbW1pdG1lbnQgKGFjY3VtdWxhdG9yKSBmb3IgdGhlIHByb29mLgB6wnEsinalKsO6EKKQIeyZ8Tj8IGjyPgD2VQ7tzmJPYWxnZXRfcGFpZF90b2tlbl9yaW5nX21lbWJlcnMIGHBlcmlvZDgUaW5kZXg4XQQI6CBHZXQgdGhlIG1lbWJlcnMgb2YgYSBwYWlkIHRva2VuIHJpbmcgKHRoZSBhbm9ueW1pdHkgc2V0KS4NASBSZXF1aXJlZCB0byBidWlsZCB0aGUgcmluZyBjb21taXRtZW50IChhY2N1bXVsYXRvcikgZm9yIHRoZSBwcm9vZi4AesJxLIp2pSrDuhCikCHsmQXaqDoiMYVpbiXsgeSyfIZoaXNfcmVjeWNsZXJfYWxpYXNfdW5sb2FkZWQMFHZhbHVldQMUaW5kZXg4FGFsaWFzCMgM9CBDaGVjayBpZiBhIHJlY3ljbGVyIGFsaWFzIGhhcyBhbHJlYWR5IGJlZW4gdW5sb2FkZWQgKHNwZW50KS4A8CBJZiB0aGUgcmVjeWNsZXIgaXMgbm90IGxpdmUsIHRoZSByZXN1bHQgaXMgbm90IHNpZ25pZmljYW50LgB6wnEsinalKsO6EKKQIeyZLo2LKpvECMha5KAFiFfQj3Bpc19wYWlkX3Rva2VuX2FsaWFzX2NvbnN1bWVkDBhwZXJpb2Q4FGluZGV4OBRhbGlhcwjIDMAgQ2hlY2sgaWYgYSBwYWlkIHVubG9hZCB0b2tlbiBoYXMgYmVlbiBjb25zdW1lZC4A9CBJZiB0aGUgcGVyaW9kIGlzIG5vdCBjdXJyZW50LCB0aGUgcmVzdWx0IGlzIG5vdCBzaWduaWZpY2FudC4AesJxLIp2pSrDuhCikCHsmb8S0HqINh0O9TXsi1wZ5dNwaXNfZnJlZV90b2tlbl9hbGlhc19jb25zdW1lZAgYcGVyaW9kOBRhbGlhcwjIDMAgQ2hlY2sgaWYgYSBmcmVlIHVubG9hZCB0b2tlbiBoYXMgYmVlbiBjb25zdW1lZC4A9CBJZiB0aGUgcGVyaW9kIGlzIG5vdCBjdXJyZW50LCB0aGUgcmVzdWx0IGlzIG5vdCBzaWduaWZpY2FudC4AesJxLIp2pSrDuhCikCHsmZGzLy68Hyv53pXKQlnduMW4d2VpZ2h0X2Zvcl91bmxvYWRfcmVjeWNsZXJfcGF5aW5nX3VzaW5nX291dHB1dADVARQxASBHZXQgdGhlIHdvcnN0LWNhc2Ugd2VpZ2h0IGZvciBhIHRyYW5zYWN0aW9uIHVzaW5nIG91dHB1dC1iYXNlZCBmZWUgcGF5bWVudC4AKQEgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtYXhpbXVtIHdlaWdodCBmb3IgdHJhbnNhY3Rpb25zIGRpc3BhdGNoZWQgd2l0aFUBIGBBc1VubG9hZFRva2VuRnJvbU91dHB1dGAsIHVzZWZ1bCBmb3IgcnVudGltZSBjb25maWd1cmF0aW9uIHRvIGZpbmQgYSBnb29kIHZhbHVlIGZvcpQgYE1pbmltdW1FeHBvbmVudEZvck91dHB1dFVubG9hZEZlZWAuAEQAADxNZW1iZXJzTm90aWZpZXIBPE1lbWJlcnNOb3RpZmllcjAsU3Vic2NyaWJlcnMAAQQGnHUMBAAEQQEgU3Vic2NyaWJlciByZWdpc3RyeSB3aXRoIHRoZWlyIHN1YnNjcmliZWQgY29sbGVjdGlvbnMgYW5kIGluaXRpYWxpemF0aW9uIHN0YXRlLgBUQ291bnRlckZvclN1YnNjcmliZXJzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAATFNlYWxlZEJhdGNoU2VxdWVuY2UBACggAAAAAAAAAAAMiCBTZXF1ZW5jZSBudW1iZXIgZm9yIHNlYWxlZCBiYXRjaC70IEluY3JlbWVudGVkIHdoZW4gYSBiYXRjaCBpcyBzZWFsZWQgLSByZWFkeSBmb3IgZGlzdHJpYnV0aW9uLvAgU2VydmVzIGFzIHRoZSBiYXRjaCBpZGVudGlmaWVyIGZvciByZXBsYXkgYW5kIGRpc3RyaWJ1dGlvbi4AJFBhZ2VTdGF0ZQEAeQwgAAAAAAAAAAAE8CBQYWdpbmcgc3RhdGU6IHdyaXRlIHBhZ2UsIHNlbmQgcGFnZSwgYW5kIGxhc3QgdXBkYXRlIGJsb2NrLgA4UGVuZGluZ1VwZGF0ZXMAAQwGBgZ9DBAEAAx8IENoYW5nZWQgcmluZyByb290IGtleXMsIHBhZ2VkLjEBIEtleTogKHBhZ2VfaW5kZXgsIGlkZW50aWZpZXIsIHJpbmdfaW5kZXgpLiBQb3B1bGF0ZWQgYnkgYE9uUmluZ1Jvb3RDaGFuZ2VgLDkBIGNvbnN1bWVkIGJ5IGBlbnF1ZXVlX3VwZGF0ZXNgIG9uZSBwYWdlIGF0IGEgdGltZSBmcm9tIGBQYWdlU3RhdGU6OnNlbmRfcGFnZWAuAEBQYWdlVXBkYXRlc0NvdW50AQEEBi0DOBAAAAAABLQgUGVyLXBhZ2UgY291bnQgb2YgZW50cmllcyBpbiBQZW5kaW5nVXBkYXRlcy4ALFBlbmRpbmdJbml0AAEEBpyBDAQABLwgU3RhdGUgZm9yIHBhZ2luYXRlZCBzdWJzY3JpYmVyIGluaXRpYWxpemF0aW9uLgBUQ291bnRlckZvclBlbmRpbmdJbml0AQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAASFNlYWxlZEJhdGNoSW5kaWNlcwABBAYIiQUEAATcIEluZGljZXMgcGVyIGNvbGxlY3Rpb24gZm9yIHRoZSBzZWFsZWQgKGN1cnJlbnQpIGJhdGNoLgAwQ3VycmVudEJhdGNoAACFDAQABIggQ3VycmVudCBiYXRjaCBkaXN0cmlidXRpb24gc3RhdGUuAGxTdWJzY3JpYmVyc1dpdGhDdXJyZW50QmF0Y2gAAQQGnBAEAAToIFRyYWNrcyB3aGljaCBzdWJzY3JpYmVycyBoYXZlIHJlY2VpdmVkIHRoZSBjdXJyZW50IGJhdGNoLgA4TGFzdFJlcGxheVRpbWUAAQgGBokMKAQACNAgTGFzdCByZXBsYXkgdGltZSBwZXIgKHN1YnNjcmliZXIsIGNvbGxlY3Rpb24pIHBhaXIu0CBVc2VkIHRvIGVuZm9yY2UgYSBjb29sZG93biBiZXR3ZWVuIHJlcGxheSByZXF1ZXN0cy4AAXUFAAGFBwAoOE1heFN1YnNjcmliZXJzOBAKAAAABJwgTWF4aW11bSBudW1iZXIgb2Ygc3Vic2NyaWJlcnMgYWxsb3dlZC4ASE1heFVwZGF0ZXNQZXJCYXRjaDgQCgAAAARsIE1heGltdW0gdXBkYXRlcyBwZXIgYmF0Y2guAGxNYXhDb2xsZWN0aW9uc1BlclN1YnNjcmliZXI4EAMAAAAEzCBNYXhpbXVtIGNvbGxlY3Rpb25zIGEgc3Vic2NyaWJlciBjYW4gc3Vic2NyaWJlIHRvLgA4TWF4Q29sbGVjdGlvbnM4EGQAAAAEkCBNYXhpbXVtIG51bWJlciBvZiByaW5nIGNvbGxlY3Rpb25zLgBMVXBkYXRlVHJpZ2dlckJsb2NrczgQAQAAAATEIE1pbmltdW0gbnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIHVwZGF0ZSBiYXRjaGVzLgBYVXBkYXRlVHJpZ2dlclRocmVzaG9sZDgQAQAAAATsIE1pbmltdW0gbnVtYmVyIG9mIHVwZGF0ZXMgdG8gdHJpZ2dlciBpbW1lZGlhdGUgYmF0Y2ggc2VuZC4AZFJlcXVlc3RSZXBsYXlSZW1vdGVXZWlnaHTVAQxBnAAEJQEgUGVyLWluZGV4IHdlaWdodCBzdXJjaGFyZ2UgZm9yIHJlbW90ZSBleGVjdXRpb24gb24gdGhlIHN1YnNjcmliZXIgY2hhaW4uAFhPZmZjaGFpbldvcmtlckludGVydmFsOBABAAAABNwgTWluaW11bSBudW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gb2ZmY2hhaW4gd29ya2VyIHJ1bnMuAERTdHVja0JhdGNoVGltZW91dDgQZAAAAATkIE51bWJlciBvZiBibG9ja3MgYWZ0ZXIgd2hpY2ggYSBzdHVjayBiYXRjaCBpcyBhYmFuZG9uZWQuAFRSZXBsYXlDb29sZG93blNlY29uZHMoIDwAAAAAAAAABFkBIENvb2xkb3duLCBpbiBzZWNvbmRzLCBiZXR3ZWVuIHJlcGxheSByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgc3Vic2NyaWJlciBhbmQgY29sbGVjdGlvbi4AAY0MAAAARQAAHEFpcmRyb3ABHEFpcmRyb3AYGEV2ZW50cwABBAUIkQwEAATYIFJlZ2lzdGVyZWQgYWlyZHJvcCBldmVudHMsIGtleWVkIGJ5IHRoZWlyIGlkZW50aWZpZXIuADhBY3Rpb25TY2hlZHVsZQABCAYGmQwQBAAIXQEgUGVuZGluZyBsaWZlY3ljbGUgYWN0aW9ucyBmb3IgcmVnaXN0ZXJlZCBldmVudHMsIG9yZGVyZWQgYnkgdGhlIHRpbWVzdGFtcCBhdCB3aGljaCB0aGVoIGFjdGlvbiBzaG91bGQgdGFrZSBwbGFjZS4ANFJlZ2lzdHJhdGlvbnMAAQgFBqEMkQcEAAgNASBQZXItZXZlbnQgcGFydGljaXBhbnQgcmVnaXN0cmF0aW9ucywga2V5ZWQgYnkgMzItYnl0ZSBlbnRyb3B5IHNsb3SYIGluIGJpZy1lbmRpYW4gb3JkZXIgdW5kZXIgYElkZW50aXR5YC4AHFdpbm5lcnMAAQgFAqUMjQcEAAhxASBXaW5uZXJzIGZvciBhbiBldmVudCwga2V5ZWQgYnkgdGhlIGV2ZW50IGlkZW50aWZpZXIgYW5kIHRoZWlyIHJlZ2lzdHJhdGlvbiBlbnRyeS4gVGhpcyBtYXBz6CB0byB0aGUgcGFydGljaXBhbnQncyB0aWNrZXQgZm9yIG9mZmNoYWluIGxvb2t1cCBwdXJwb3Nlcy4AMEV2ZW50RW50cm9weQABBAUIjQcEAAhdASBFbnRyb3B5IHNlZWQgY2FwdHVyZWQgYXQgZHJhdyB0aW1lLCBwZXIgZXZlbnQuIFRoaXMgc2VydmVzIGFzIGEgcGFydGl0aW9uIHBvaW50IGluIHRoZfAgcGFydGljaXBhdGlvbiB0aWNrZXQgb3JkZXJlZCBsaXN0IGluIG9yZGVyIHRvIHBpY2sgd2lubmVycy4APFN1cHBvcnRlZEFzc2V0cwABBAXgxAQAEGUBIFBlci1hc3NldCBlbmFibGVtZW50IGdhdGUuIEFuIGFzc2V0IGlzIHVzYWJsZSBmb3Igc2NoZWR1bGluZyBldmVudHMgaWZmIGl0IGlzIHByZXNlbnQgaW5lASB0aGlzIG1hcDsgdGhlIHN0b3JlZCB2YWx1ZSBpcyB0aGUgYW1vdW50IHRoZSBwYWxsZXQgdHJhbnNmZXJyZWQgaW50byBpdHMgcG90IHRvIGtlZXAgdGhlVQEgcG90J3MgYXNzZXQgYWNjb3VudCBhbGl2ZSAodGhlIGFzc2V0J3MgRUQgYXQgdGhlIHRpbWUgb2YgZW5hYmxpbmcpLiBgZW5hYmxlX2Fzc2V0YCAvyCBgZGlzYWJsZV9hc3NldGAgYXJlIHRoZSBvbmx5IHdheXMgdG8gbXV0YXRlIHRoaXMuAAGNBQABiQcAFCBQYWxsZXRJZCkJIHBvcC9hZHJwBMAgUGFsbGV0IGlkIHVzZWQgdG8gZGVyaXZlIHRoZSBwcml6ZSBwb3QgYWNjb3VudC4AKENsZWFyTGltaXQ4EGQAAAAI1CBNYXhpbXVtIG51bWJlciBvZiByZWdpc3RyYXRpb24gZW50cmllcyBwcm9jZXNzZWQgcGVy6CBgY2xlYW5fdXBfe3JlZ2lzdHJhdGlvbnMsd2lubmVyc31fYXV0aG9yaXplZGAgaW52b2NhdGlvbi4AJERyYXdMaW1pdDgQZAAAAAQxASBNYXhpbXVtIG51bWJlciBvZiB3aW5uZXIgc2xvdHMgaW5zZXJ0ZWQgcGVyIGBkcmF3X3dpbm5lcnNfYXV0aG9yaXplZGAgY2FsbC4AWE9mZmNoYWluV29ya2VySW50ZXJ2YWw4EAEAAAAE2CBIb3cgZnJlcXVlbnRseSB0aGUgb2ZmY2hhaW4gd29ya2VyIGZpcmVzIChpbiBibG9ja3MpLgA4YWlyZHJvcF9wb3RfaWQEgG1vZGxwb3AvYWRycAAAAAAAAAAAAAAAAAAAAAAAAAAABHQgQWNjb3VudCBpZCBvZiB0aGUgcHJpemUgcG90LgABqQwAAABGAAAYSG9ub3VyARhIb25vdXIMGFBvaW50cwABBAIIrQwEABCYIFBvaW50cyB0aGF0IGhhdmUgYmVlbiB1c2VkIGJ5IHZvdGVycy4AdQEgUmVjb3JkcyBpbiBbYFBvaW50c2BdIHRyYWNrIHVzZWQgcG9pbnRzIHRvIHByZXZlbnQgZG91YmxlLXNwZW5kaW5nIGFuZCBlbmZvcmNlIHJhdGUtbGltaXRpbmd4IGJhc2VkIG9uIHRoZSBsYXN0IHVzYWdlIHRpbWUuABRWb3RlcwABBAIIEAQAEHwgVm90ZXMgdGhhdCBoYXZlIGJlZW4gYmVzdG93ZWQuAFUBIFByZXZlbnRzIGRvdWJsZS12b3Rpbmcgb24gdGhlIHNhbWUgc3ViamVjdCBieSB0aGUgc2FtZSB2b3RlciwgYXMgW2BTdWJqZWN0QWxpYXNgXSBpc9AgdW5pcXVlbHkgZGVyaXZlZCBmcm9tIFtgU3ViamVjdElkYF0gZm9yIGVhY2ggdm90ZXIuABRUYWxseQABBAIImQcEAAQxASBBYnNvbHV0ZSBob25vdXIgc2NvcmUgb2YgYSBzdWJqZWN0LiBJbml0aWFsaXplZCB0byAtMSB0byBvZmZzZXQgc2VsZi12b3Rlcy4AAZUFAAGVBwAITFBvaW50RnJlZXplRHVyYXRpb24oIIBRAQAAAAAABAUBIER1cmF0aW9uIGluIHNlY29uZHMgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIGEgcG9pbnQgY2FuIGJlIHJldXNlZC4ANENhbGxNb3J0YWxpdHkoICwBAAAAAAAABD0BIER1cmF0aW9uIGluIHNlY29uZHMgYSBgYmVzdG93YCBjYWxsIHJlbWFpbnMgdmFsaWQgYWZ0ZXIgaXRzIGBjYWxsX3ZhbGlkX2Zyb21gLgABsQwAAABHAABUU3RvcmFnZUluaXRpYWxpemF0aW9uAVRTdG9yYWdlSW5pdGlhbGl6YXRpb24IME9uUG9sbFN0YXR1cwEAtQwEAAT0IEN1cnJlbnQgc3RhdGUgb2YgdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgaW4gb25fcG9sbCBob29rLgBYWGNtVHJhbnNmZXJJbml0aWF0ZWRBdAAAOAQACLggQmxvY2sgbnVtYmVyIHdoZW4gWENNIHRyYW5zZmVyIHdhcyBpbml0aWF0ZWQugCBVc2VkIHRvIHRyYWNrIHRyYW5zZmVyIHRpbWVvdXQuAAABnQcAAAAAADwAAFBNdWx0aUJsb2NrTWlncmF0aW9ucwFQTXVsdGlCbG9ja01pZ3JhdGlvbnMIGEN1cnNvcgAAqQUEAAzYIFRoZSBjdXJyZW50bHkgYWN0aXZlIG1pZ3JhdGlvbiB0byBydW4gYW5kIGl0cyBjdXJzb3IuALwgYE5vbmVgIGluZGljYXRlcyB0aGF0IG5vIG1pZ3JhdGlvbiBpcyBydW5uaW5nLgAgSGlzdG9yaWMAAQQFvQUQBAAQtCBTZXQgb2YgYWxsIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCBtaWdyYXRpb25zLgBxASBUaGlzIGlzIHVzZWQgYXMgYmxhY2tsaXN0LCB0byBub3QgcmUtZXhlY3V0ZSBtaWdyYXRpb25zIHRoYXQgaGF2ZSBub3QgYmVlbiByZW1vdmVkIGZyb20gdGhlMQEgY29kZWJhc2UgeWV0LiBHb3Zlcm5hbmNlIGNhbiByZWd1bGFybHkgY2xlYXIgdGhpcyBvdXQgdmlhIGBjbGVhcl9oaXN0b3JpY2AuAAGhBQABoQcACDBDdXJzb3JNYXhMZW44EAAAAQAQpCBUaGUgbWF4aW1hbCBsZW5ndGggb2YgYW4gZW5jb2RlZCBjdXJzb3IuAGUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYSBjdXJzb3Igd2l0aCBNRUwJASBhYm92ZSB0aGlzIGxpbWl0LiBUaGlzIGlzIHN0YXRpY2FsbHkgY2hlY2tlZCBpbiBgaW50ZWdyaXR5X3Rlc3RgLgBASWRlbnRpZmllck1heExlbjgQAAEAABC0IFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGlkZW50aWZpZXIuAFUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYW4gaWRlbnRpZmllci0BIHdpdGggTUVMIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAAG5DAAAEAsgGZrONWTQlk4sTUqbpGmUTbz/amzhpNCyfG/MAtJMOG9uZ29pbmdfc3RhdHVzAL0MBKggUmV0dXJucyB0aGUgb25nb2luZyBzdGF0dXMgb2YgbWlncmF0aW9ucy4ACyAZms41ZNCWTixNSpukaV69d2yxXZuRLieNTS1ixaEgcHJvZ3Jlc3MAwQwQCQEgUmV0dXJucyBwcm9ncmVzcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBtaWdyYXRpb24sIGlmIGFueS4AUQEgVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBtaWdyYXRpb24ncyBwcm9ncmVzcywdASBpbmNsdWRpbmcgdGhlIG51bWJlciBvZiBzdGVwcyBjb21wbGV0ZWQgYW5kIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3RlcHMuAAsgGZrONWTQlk4sTUqbpGlGr0vOxvNae7vunZ/BCVvhRGFmZmVjdGVkX3ByZWZpeGVzADQMAQEgUmV0dXJucyB0aGUgc3RvcmFnZSBwcmVmaXhlcyBhZmZlY3RlZCBieSB0aGUgY3VycmVudCBtaWdyYXRpb24uABkBIENhbiBiZSBlbXB0eSBpZiB0aGUgbWlncmF0aW9uIGRvZXMgbm90IGtub3cgb3IgdGhlcmUgYXJlIG5vIHByZWZpeGVzLgALIBmazjVk0JZOLE1Km6RpqkwooG8ZiEW9G7KexiBd3RhzdGF0dXMAyQwE8CBSZXR1cm5zIHRoZSBjb21wcmVoZW5zaXZlIHN0YXR1cyBvZiBtdWx0aS1ibG9jayBtaWdyYXRpb25zLgBiAAAIBAUAID0EBABYAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhYQXV0aG9yaXplVmFsdWVUcmFuc2ZlcskFEFBWZXJpZnlNdWx0aVNpZ25hdHVyZdEFECBBc1BlcnNvbtUFEFxBc1Byb29mT2ZJbmtQYXJ0aWNpcGFudOEFEEhTY29yZUFzUGFydGljaXBhbnTtBRA0R2FtZUFzSW52aXRlZPkFEDhQZW9wbGVMaXRlQXV0aAUGECBBc01lbWJlchEGECRBc0NvaW5hZ2UdBhAsQXNSZXNvdXJjZXMxBhAoSG9ub3VyQXV0aD0GEDRBdXRob3JpemVDYWxsSQYQPFJlc3RyaWN0T3JpZ2luc00GEEhDaGVja05vblplcm9TZW5kZXJRBhBAQ2hlY2tTcGVjVmVyc2lvblUGODhDaGVja1R4VmVyc2lvblkGODBDaGVja0dlbmVzaXNdBjw4Q2hlY2tNb3J0YWxpdHlhBjwoQ2hlY2tOb25jZWkGECxDaGVja1dlaWdodG0GEFBDaGFyZ2VBc3NldFR4UGF5bWVudHEGEFBTdG9yYWdlV2VpZ2h0UmVjbGFpbRAQVBxBdXJhQXBpCDRzbG90X2R1cmF0aW9uAM0MDJAgUmV0dXJucyB0aGUgc2xvdCBkdXJhdGlvbiBmb3IgQXVyYS4AJQEgQ3VycmVudGx5LCBvbmx5IHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGlzIHR5cGUgYXQgZ2VuZXNpcyB3aWxsIGJlIHVzZWQuACxhdXRob3JpdGllcwBZCQScIFJldHVybiB0aGUgY3VycmVudCBzZXQgb2YgYXV0aG9yaXRpZXMuAAS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBhdXJhLgQAUFJlbGF5UGFyZW50T2Zmc2V0QXBpBExyZWxheV9wYXJlbnRfb2Zmc2V0ADgE9CBGZXRjaCB0aGUgc2xvdCBvZmZzZXQgdGhhdCBpcyBleHBlY3RlZCBmcm9tIHRoZSByZWxheSBjaGFpbi4AEAUBIEFQSSB0byB0ZWxsIHRoZSBub2RlIHNpZGUgaG93IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIGJlIGNob3Nlbi4AaQEgQSBsYXJnZXIgb2Zmc2V0IGluZGljYXRlcyB0aGF0IHRoZSByZWxheSBwYXJlbnQgc2hvdWxkIG5vdCBiZSB0aGUgdGlwIG9mIHRoZSByZWxheSBjaGFpbiwxASBidXQgYE5gIGJsb2NrcyBiZWhpbmQgdGhlIHRpcC4gVGhpcyBvZmZzZXQgaXMgdGhlbiBlbmZvcmNlZCBieSB0aGUgcnVudGltZS4EAGBBdXJhVW5pbmNsdWRlZFNlZ21lbnRBcGkEOGNhbl9idWlsZF91cG9uCDRpbmNsdWRlZF9oYXNoPBBzbG90XQnIKDkBIFdoZXRoZXIgaXQgaXMgbGVnYWwgdG8gZXh0ZW5kIHRoZSBjaGFpbiwgYXNzdW1pbmcgdGhlIGdpdmVuIGJsb2NrIGlzIHRoZSBtb3N0NQEgcmVjZW50bHkgaW5jbHVkZWQgb25lIGFzLW9mIHRoZSByZWxheSBwYXJlbnQgdGhhdCB3aWxsIGJlIGJ1aWx0IGFnYWluc3QsIGFuZHAgdGhlIGdpdmVuIHJlbGF5IGNoYWluIHNsb3QuAFEBIFRoaXMgc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgbG9naWMgdGhlIHJ1bnRpbWUgdXNlcyB3aGVuIHZhbGlkYXRpbmcgYmxvY2tzIHRvOCBhdm9pZCBpc3N1ZXMuAGEBIFdoZW4gdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBpcyBlbXB0eSwgaS5lLiBgaW5jbHVkZWRfaGFzaCA9PSBhdGAsIHdoZXJlIGF0IGlzIHRoZSBibG9ja2EBIHdob3NlIHN0YXRlIHdlIGFyZSBxdWVyeWluZyBhZ2FpbnN0LCB0aGlzIG11c3QgYWx3YXlzIHJldHVybiBgdHJ1ZWAgYXMgbG9uZyBhcyB0aGUgc2xvdLwgaXMgbW9yZSByZWNlbnQgdGhhbiB0aGUgaW5jbHVkZWQgYmxvY2sgaXRzZWxmLgA0NQEgVGhpcyBydW50aW1lIEFQSSBpcyB1c2VkIHRvIGluZm9ybSBwb3RlbnRpYWwgYmxvY2sgYXV0aG9ycyB3aGV0aGVyIHRoZXkgd2lsbCUBIGhhdmUgdGhlIHJpZ2h0IHRvIGF1dGhvciBhdCBhIHNsb3QsIGFzc3VtaW5nIHRoZXkgaGF2ZSBjbGFpbWVkIHRoZSBzbG90LgB1ASBJbiBwYXJ0aWN1bGFyLCB0aGlzIEFQSSBhbGxvd3MgQXVyYS1iYXNlZCBwYXJhY2hhaW5zIHRvIHJlZ3VsYXRlIHRoZWlyICJ1bmluY2x1ZGVkIHNlZ21lbnQiLG0BIHdoaWNoIGlzIHRoZSBzZWN0aW9uIG9mIHRoZSBoZWFkIG9mIHRoZSBjaGFpbiB3aGljaCBoYXMgbm90IHlldCBiZWVuIG1hZGUgYXZhaWxhYmxlIGluIHRoZTQgcmVsYXkgY2hhaW4uAGEBIFdoZW4gdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBpcyBzaG9ydCwgQXVyYSBjaGFpbnMgd2lsbCBhbGxvdyBhdXRob3JzIHRvIGNyZWF0ZSBtdWx0aXBsZV0BIGJsb2NrcyBwZXIgc2xvdCBpbiBvcmRlciB0byBidWlsZCBhIGJhY2tsb2cuIFdoZW4gaXQgaXMgc2F0dXJhdGVkLCB0aGlzIEFQSSB3aWxsIGxpbWl0qCB0aGUgYW1vdW50IG9mIGJsb2NrcyB0aGF0IGNhbiBiZSBjcmVhdGVkLgAkIENoYW5nZXM6kQEgLSBWZXJzaW9uIDI6IFVwZGF0ZSB0byBgY2FuX2J1aWxkX3Vwb25gIHRvIHRha2UgYSByZWxheSBjaGFpbiBgU2xvdGAgaW5zdGVhZCBvZiBhIHBhcmFjaGFpbiBgU2xvdGAuCAAQQ29yZQwcdmVyc2lvbgDdBwSQIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuADRleGVjdXRlX2Jsb2NrBBRibG9ja9EMEARkIEV4ZWN1dGUgdGhlIGdpdmVuIGJsb2NrLgBAaW5pdGlhbGl6ZV9ibG9jawQYaGVhZGVyXN0MBEEBIEluaXRpYWxpemUgYSBibG9jayB3aXRoIHRoZSBnaXZlbiBoZWFkZXIgYW5kIHJldHVybiB0aGUgcnVudGltZSBleGVjdXRpdmUgbW9kZS4ABCEBIFRoZSBgQ29yZWAgcnVudGltZSBhcGkgdGhhdCBldmVyeSBTdWJzdHJhdGUgcnVudGltZSBuZWVkcyB0byBpbXBsZW1lbnQuFAAgTWV0YWRhdGEMIG1ldGFkYXRhAOEMBIwgUmV0dXJucyB0aGUgbWV0YWRhdGEgb2YgYSBydW50aW1lLgBMbWV0YWRhdGFfYXRfdmVyc2lvbgQcdmVyc2lvbjjlDBCkIFJldHVybnMgdGhlIG1ldGFkYXRhIGF0IGEgZ2l2ZW4gdmVyc2lvbi4ABQEgSWYgdGhlIGdpdmVuIGB2ZXJzaW9uYCBpc24ndCBzdXBwb3J0ZWQsIHRoaXMgd2lsbCByZXR1cm4gYE5vbmVgLnUBIFVzZSBbYFNlbGY6Om1ldGFkYXRhX3ZlcnNpb25zYF0gdG8gZmluZCBvdXQgYWJvdXQgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuAERtZXRhZGF0YV92ZXJzaW9ucwBtBAykIFJldHVybnMgdGhlIHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9ucy4AwCBUaGlzIGNhbiBiZSB1c2VkIHRvIGNhbGwgYG1ldGFkYXRhX2F0X3ZlcnNpb25gLgAEAQEgVGhlIGBNZXRhZGF0YWAgYXBpIHRyYWl0IHRoYXQgcmV0dXJucyBtZXRhZGF0YSBmb3IgdGhlIHJ1bnRpbWUuCABMUnVudGltZVZpZXdGdW5jdGlvbgRUZXhlY3V0ZV92aWV3X2Z1bmN0aW9uCCBxdWVyeV9pZOkMFGlucHV0GO0MBHwgRXhlY3V0ZSBhIHZpZXcgZnVuY3Rpb24gcXVlcnkuAASkIFJ1bnRpbWUgQVBJIGZvciBleGVjdXRpbmcgdmlldyBmdW5jdGlvbnMEADBCbG9ja0J1aWxkZXIQPGFwcGx5X2V4dHJpbnNpYwQkZXh0cmluc2lj+Qf1DBBsIEFwcGx5IHRoZSBnaXZlbiBleHRyaW5zaWMuADkBIFJldHVybnMgYW4gaW5jbHVzaW9uIG91dGNvbWUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoaXMgZXh0cmluc2ljIGlzIGluY2x1ZGVkIGluTCB0aGlzIGJsb2NrIG9yIG5vdC4AOGZpbmFsaXplX2Jsb2NrAFwEaCBGaW5pc2ggdGhlIGN1cnJlbnQgYmxvY2suAExpbmhlcmVudF9leHRyaW5zaWNzBCBpbmhlcmVudAUNCQgEPQEgR2VuZXJhdGUgaW5oZXJlbnQgZXh0cmluc2ljcy4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uADxjaGVja19pbmhlcmVudHMIFGJsb2Nr0QwQZGF0YQUNFQ0EVQEgQ2hlY2sgdGhhdCB0aGUgaW5oZXJlbnRzIGFyZSB2YWxpZC4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uAARxASBUaGUgYEJsb2NrQnVpbGRlcmAgYXBpIHRyYWl0IHRoYXQgcHJvdmlkZXMgdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkgZm9yIGJ1aWxkaW5nIGEgYmxvY2suGABYVGFnZ2VkVHJhbnNhY3Rpb25RdWV1ZQRQdmFsaWRhdGVfdHJhbnNhY3Rpb24MGHNvdXJjZRkNCHR4+QcoYmxvY2tfaGFzaDwdDSRoIFZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbi4AZQEgVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgdHJhbnNhY3Rpb24gcG9vbCB0byBsZWFybiBkZXRhaWxzIGFib3V0IGdpdmVuIHRyYW5zYWN0aW9uLkUBIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbWFrZSBzdXJlIHRvIHZlcmlmeSB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIHRyYW5zYWN0aW9uTQEgYWdhaW5zdCBjdXJyZW50IHN0YXRlLiBUaGUgZ2l2ZW4gYGJsb2NrX2hhc2hgIGNvcnJlc3BvbmRzIHRvIHRoZSBoYXNoIG9mIHRoZSBibG9ja3wgdGhhdCBpcyB1c2VkIGFzIGN1cnJlbnQgc3RhdGUuAEUBIE5vdGUgdGhhdCB0aGlzIGNhbGwgbWF5IGJlIHBlcmZvcm1lZCBieSB0aGUgcG9vbCBtdWx0aXBsZSB0aW1lcyBhbmQgdHJhbnNhY3Rpb25zpCBtaWdodCBiZSB2ZXJpZmllZCBpbiBhbnkgcG9zc2libGUgb3JkZXIuAARNASBUaGUgYFRhZ2dlZFRyYW5zYWN0aW9uUXVldWVgIGFwaSB0cmFpdCBmb3IgaW50ZXJmZXJpbmcgd2l0aCB0aGUgdHJhbnNhY3Rpb24gcXVldWUuDABET2ZmY2hhaW5Xb3JrZXJBcGkEPG9mZmNoYWluX3dvcmtlcgQYaGVhZGVyXBAEyCBTdGFydHMgdGhlIG9mZi1jaGFpbiB0YXNrIGZvciBnaXZlbiBibG9jayBoZWFkZXIuAARkIFRoZSBvZmZjaGFpbiB3b3JrZXIgYXBpLggALFNlc3Npb25LZXlzCFRnZW5lcmF0ZV9zZXNzaW9uX2tleXMIFG93bmVyGBBzZWVkxQUlDRwVASBHZW5lcmF0ZSBhIHNldCBvZiBzZXNzaW9uIGtleXMgd2l0aCBvcHRpb25hbGx5IHVzaW5nIHRoZSBnaXZlbiBzZWVkLgkBIFRoZSBrZXlzIHNob3VsZCBiZSBzdG9yZWQgd2l0aGluIHRoZSBrZXlzdG9yZSBleHBvc2VkIHZpYSBydW50aW1lPCBleHRlcm5hbGl0aWVzLgCwIFRoZSBzZWVkIG5lZWRzIHRvIGJlIGEgdmFsaWQgYHV0ZjhgIHN0cmluZy4A0CBSZXR1cm5zIHRoZSBjb25jYXRlbmF0ZWQgU0NBTEUgZW5jb2RlZCBwdWJsaWMga2V5cy4ATGRlY29kZV9zZXNzaW9uX2tleXMEHGVuY29kZWQYKQ0MmCBEZWNvZGUgdGhlIGdpdmVuIHB1YmxpYyBzZXNzaW9uIGtleXMuANwgUmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWMgcmF3IHB1YmxpYyBrZXlzICsga2V5IHR5cGUuAARoIFNlc3Npb24ga2V5cyBydW50aW1lIGFwaS4IADxBY2NvdW50Tm9uY2VBcGkENGFjY291bnRfbm9uY2UEHGFjY291bnQEOATAIEdldCBjdXJyZW50IGFjY291bnQgbm9uY2Ugb2YgZ2l2ZW4gYEFjY291bnRJZGAuAASAIFRoZSBBUEkgdG8gcXVlcnkgYWNjb3VudCBub25jZS4EAFRUcmFuc2FjdGlvblBheW1lbnRBcGkQKHF1ZXJ5X2luZm8IDHV4dPkHDGxlbjg1DQAARHF1ZXJ5X2ZlZV9kZXRhaWxzCAx1eHT5BwxsZW44OQ0AAExxdWVyeV93ZWlnaHRfdG9fZmVlBBh3ZWlnaHTVAcQAAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGg4xAAAABAAZFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGkQPHF1ZXJ5X2NhbGxfaW5mbwgQY2FsbCAMbGVuODUNBEkBIFF1ZXJ5IGluZm9ybWF0aW9uIG9mIGEgZGlzcGF0Y2ggY2xhc3MsIHdlaWdodCwgYW5kIGZlZSBvZiBhIGdpdmVuIGVuY29kZWQgYENhbGxgLgBYcXVlcnlfY2FsbF9mZWVfZGV0YWlscwgQY2FsbCAMbGVuODkNBLQgUXVlcnkgZmVlIGRldGFpbHMgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC4ATHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodNUBxAQBASBRdWVyeSB0aGUgb3V0cHV0IG9mIHRoZSBjdXJyZW50IGBXZWlnaHRUb0ZlZWAgZ2l2ZW4gc29tZSBpbnB1dC4ATHF1ZXJ5X2xlbmd0aF90b19mZWUEGGxlbmd0aDjEBAEBIFF1ZXJ5IHRoZSBvdXRwdXQgb2YgdGhlIGN1cnJlbnQgYExlbmd0aFRvRmVlYCBnaXZlbiBzb21lIGlucHV0LgAADAA0WGNtUGF5bWVudEFwaRB8cXVlcnlfYWNjZXB0YWJsZV9wYXltZW50X2Fzc2V0cwQseGNtX3ZlcnNpb244RQ0UtCBSZXR1cm5zIGEgbGlzdCBvZiBhY2NlcHRhYmxlIHBheW1lbnQgYXNzZXRzLgAwICMgQXJndW1lbnRzAGggKiBgeGNtX3ZlcnNpb25gOiBWZXJzaW9uLgBAcXVlcnlfeGNtX3dlaWdodAQcbWVzc2FnZZUBUQ0UqCBSZXR1cm5zIGEgd2VpZ2h0IG5lZWRlZCB0byBleGVjdXRlIGEgWENNLgAwICMgQXJndW1lbnRzAHQgKiBgbWVzc2FnZWA6IGBWZXJzaW9uZWRYY21gLgBkcXVlcnlfd2VpZ2h0X3RvX2Fzc2V0X2ZlZQgYd2VpZ2h01QEUYXNzZXQRA1UNGOggQ29udmVydHMgYSB3ZWlnaHQgaW50byBhIGZlZSBmb3IgdGhlIHNwZWNpZmllZCBgQXNzZXRJZGAuADAgIyBBcmd1bWVudHMAiCAqIGB3ZWlnaHRgOiBjb252ZXJ0aWJsZSBgV2VpZ2h0YC58ICogYGFzc2V0YDogYFZlcnNpb25lZEFzc2V0SWRgLgBMcXVlcnlfZGVsaXZlcnlfZmVlcwwsZGVzdGluYXRpb25JARxtZXNzYWdllQEgYXNzZXRfaWQRA1kNKGAgUXVlcnkgZGVsaXZlcnkgZmVlcyBWMi4AHQEgR2V0IGRlbGl2ZXJ5IGZlZXMgZm9yIHNlbmRpbmcgYSBzcGVjaWZpYyBgbWVzc2FnZWAgdG8gYSBgZGVzdGluYXRpb25gLvQgVGhlc2UgYWx3YXlzIGNvbWUgaW4gYSBzcGVjaWZpYyBhc3NldCwgZGVmaW5lZCBieSB0aGUgY2hhaW4uADAgIyBBcmd1bWVudHOBASAqIGBtZXNzYWdlYDogVGhlIG1lc3NhZ2UgdGhhdCdsbCBiZSBzZW50LCBuZWNlc3NhcnkgYmVjYXVzZSBtb3N0IGRlbGl2ZXJ5IGZlZXMgYXJlIGJhc2VkIG9uIHRoZVwgICBzaXplIG9mIHRoZSBtZXNzYWdlLmEBICogYGRlc3RpbmF0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRvIHNlbmQgdGhlIG1lc3NhZ2UgdG8uIERpZmZlcmVudCBkZXN0aW5hdGlvbnMgbWF5IHVzZcAgICBkaWZmZXJlbnQgc2VuZGVycyB0aGF0IGNoYXJnZSBkaWZmZXJlbnQgZmVlcy4ALHAgQSB0cmFpdCBvZiBYQ00gcGF5bWVudCBBUEkuAKggQVBJIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIG9idGFpbmluZzoAxCAqIHRoZSB3ZWlnaHQgcmVxdWlyZWQgdG8gZXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSwFASAqIGEgbGlzdCBvZiBhY2NlcHRhYmxlIGBBc3NldElkYHMgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uIHBheW1lbnQsAQEgKiB0aGUgY29zdCBvZiB0aGUgd2VpZ2h0IGluIHRoZSBzcGVjaWZpZWQgYWNjZXB0YWJsZSBgQXNzZXRJZGAuoCAqIHRoZSBmZWVzIGZvciBhbiBYQ00gbWVzc2FnZSBkZWxpdmVyeS4A8CBUbyBkZXRlcm1pbmUgdGhlIGV4ZWN1dGlvbiB3ZWlnaHQgb2YgdGhlIGNhbGxzIHJlcXVpcmVkIGZvcnUBIFtgeGNtOjpsYXRlc3Q6Okluc3RydWN0aW9uOjpUcmFuc2FjdGBdIGluc3RydWN0aW9uLCBgVHJhbnNhY3Rpb25QYXltZW50Q2FsbEFwaWAgY2FuIGJlIHVzZWQuCAAkRHJ5UnVuQXBpCDBkcnlfcnVuX2NhbGwMGG9yaWdpbjEDEGNhbGwgTHJlc3VsdF94Y21zX3ZlcnNpb244XQ0ERCBEcnkgcnVuIGNhbGwgVjIuACxkcnlfcnVuX3hjbQg8b3JpZ2luX2xvY2F0aW9uSQEMeGNt3QKJDQRQIERyeSBydW4gWENNIHByb2dyYW0AJLEBIEFQSSBmb3IgZHJ5LXJ1bm5pbmcgZXh0cmluc2ljcyBhbmQgWENNIHByb2dyYW1zIHRvIGdldCB0aGUgcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUgZmVlcyBBUEkuAIEBIEFsbCBjYWxscyByZXR1cm4gYSB2ZWN0b3Igb2YgdHVwbGVzIChsb2NhdGlvbiwgeGNtKSB3aGVyZSBlYWNoICJ4Y20iIGlzIGV4ZWN1dGVkIGluICJsb2NhdGlvbiIu5CBJZiB0aGVyZSdzIGxvY2FsIGV4ZWN1dGlvbiwgdGhlIGxvY2F0aW9uIHdpbGwgYmUgIkhlcmUiLh0BIFRoaXMgdmVjdG9yIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSBib3RoIGV4ZWN1dGlvbiBhbmQgZGVsaXZlcnkgZmVlcy4AmQEgQ2FsbHMgb3IgWENNcyBtaWdodCBmYWlsIHdoZW4gZXhlY3V0ZWQsIHRoaXMgZG9lc24ndCBtZWFuIHRoZSByZXN1bHQgb2YgdGhlc2UgY2FsbHMgd2lsbCBiZSBhbiBgRXJyYC5lASBJbiB0aG9zZSBjYXNlcywgdGhlcmUgbWlnaHQgc3RpbGwgYmUgYSB2YWxpZCByZXN1bHQsIHdpdGggdGhlIGV4ZWN1dGlvbiBlcnJvciBpbnNpZGUgaXQuZQEgVGhlIG9ubHkgcmVhc29ucyB3aHkgdGhlc2UgY2FsbHMgbWlnaHQgcmV0dXJuIGFuIGVycm9yIGFyZSBsaXN0ZWQgaW4gdGhlIFtgRXJyb3JgXSBlbnVtLggAUExvY2F0aW9uVG9BY2NvdW50QXBpBEBjb252ZXJ0X2xvY2F0aW9uBCBsb2NhdGlvbkkBkQ0EkCBDb252ZXJ0cyBgTG9jYXRpb25gIHRvIGBBY2NvdW50SWRgLgAEDQEgQVBJIGZvciB1c2VmdWwgY29udmVyc2lvbnMgYmV0d2VlbiBYQ00gYExvY2F0aW9uYCBhbmQgYEFjY291bnRJZGAuBAAoTW9iUnVsZUFwaQQgdm90ZWRfb24IFHZvdGVyCCRkb25lX29ubHnIbQQMWQEgUmV0dXJucyBhIGxpc3Qgb2YgY2FzZXMgd2hlcmUgdGhlIHVzZXIgaGFzIGEgdm90ZSBzdG9yZWQgb24gY2hhaW4uIElmIHRoZSBgZG9uZV9vbmx5YFUBIGZsYWcgaXMgc2V0LCBvbmx5IGNhc2VzIHRoYXQgYXJlIGRvbmUgYW5kIHJlYWR5IHRvIGJlIGNsYWltZWQgd2lsbCBiZSByZXR1cm5lZC4gVGhpcwUBIGZ1bmN0aW9uIGRvZXMgbm90IHRha2UgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB2b3RlIGludG8gYWNjb3VudC4ABLQgVGhlIEFQSSB0byBxdWVyeSB0aGUgcmV3YXJkcyBmb3IgbW9iIGNyZWRpdC4EADRQcm9vZk9mSW5rQXBpBERjYW5kaWRhY3lfZGVwb3NpdADEBNQgUmV0dXJucyB0aGUgZGVwb3NpdCBuZWNlc3NhcnkgdG8gYmVjb21lIGEgY2FuZGlkYXRlLgAE7CBUaGUgQVBJIHRvIHF1ZXJ5IHRoZSBkZXBvc2l0IGZvciBhIHByb29mIG9mIGluayBjYW5kaWRhY3kuBAA0UGFsbGV0R2FtZUFwaQQwcGxheV9kZXBvc2l0AMQEuCBSZXR1cm5zIHRoZSBkZXBvc2l0IG5lY2Vzc2FyeSB0byBwbGF5IGEgZ2FtZS4ABKwgVGhlIEFQSSB0byBxdWVyeSB0aGUgZGVwb3NpdCBmb3IgZ2FtZXBsYXkuBABQQ29sbGVjdENvbGxhdGlvbkluZm8EWGNvbGxlY3RfY29sbGF0aW9uX2luZm8EGGhlYWRlclyZDRCcIENvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uAPQgVGhlIGdpdmVuIGBoZWFkZXJgIGlzIHRoZSBoZWFkZXIgb2YgdGhlIGJ1aWx0IGJsb2NrIGZvciB0aGF0qCB3ZSBhcmUgY29sbGVjdGluZyB0aGUgY29sbGF0aW9uIGluZm8gZm9yLgAU2CBSdW50aW1lIGFwaSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgBEIFZlcnNpb24gaGlzdG9yeToBASAtIFZlcnNpb24gMjogQ2hhbmdlZCBbYFNlbGY6OmNvbGxlY3RfY29sbGF0aW9uX2luZm9gXSBzaWduYXR1cmU1ASAtIFZlcnNpb24gMzogU2lnbmFscyB0byB0aGUgbm9kZSB0byB1c2UgdmVyc2lvbiAxIG9mIFtgUGFyYWNoYWluQmxvY2tEYXRhYF0uDAA4R2VuZXNpc0J1aWxkZXIMLGJ1aWxkX3N0YXRlBBBqc29uGKUNKGUBIEJ1aWxkIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSBhIEpTT04gYmxvYiBub3QgdXNpbmcgYW55IGRlZmF1bHRzIGFuZCBzdG9yZSBpdCBpbiB0aGUkIHN0b3JhZ2UuACkBIEluIHRoZSBjYXNlIG9mIGEgRlJBTUUtYmFzZWQgcnVudGltZSwgdGhpcyBmdW5jdGlvbiBkZXNlcmlhbGl6ZXMgdGhlIGZ1bGxVASBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gdGhlIGdpdmVuIEpTT04gYmxvYiBhbmQgcHV0cyBpdCBpbnRvIHRoZSBzdG9yYWdlLiBJZiB0aGVVASBwcm92aWRlZCBKU09OIGJsb2IgaXMgaW5jb3JyZWN0IG9yIGluY29tcGxldGUgb3IgdGhlIGRlc2VyaWFsaXphdGlvbiBmYWlscywgYW4gZXJyb3I0IGlzIHJldHVybmVkLgBdASBQbGVhc2Ugbm90ZSB0aGF0IHByb3ZpZGVkIEpTT04gYmxvYiBtdXN0IGNvbnRhaW4gYWxsIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZmllbGRzLCBub1wgZGVmYXVsdHMgd2lsbCBiZSB1c2VkLgAoZ2V0X3ByZXNldAQIaWSpDcUFOGEBIFJldHVybnMgYSBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgaWRlbnRpZmllZCBieRggYGlkYC4AVQEgSWYgYGlkYCBpcyBgTm9uZWAgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZWZhdWx0SQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBzdHJ1Y3Qgb2YgdGhlIHJ1bnRpbWUuIEltcGxlbWVudGF0aW9uIG11c3QgcHJvdmlkZSBkZWZhdWx0YCBgUnVudGltZUdlbmVzaXNDb25maWdgLgAhASBPdGhlcndpc2UgZnVuY3Rpb24gcmV0dXJucyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluLCBuYW1lZFEBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0IGlkZW50aWZpZWQgYnkgYGlkYCwgb3IgYE5vbmVgIGlmIHN1Y2ggcHJlc2V0IGRvZXMgbm90YQEgZXhpc3QuIFJldHVybmVkIGBWZWM8dTg+YCBjb250YWlucyBieXRlcyBvZiBKU09OIGJsb2IgKHBhdGNoKSB3aGljaCBjb21wcmlzZXMgYSBsaXN0IG9mTQEgKHBvdGVudGlhbGx5IG5lc3RlZCkga2V5LXZhbHVlIHBhaXJzIHRoYXQgYXJlIGludGVuZGVkIGZvciBjdXN0b21pemluZyB0aGUgZGVmYXVsdGUBIHJ1bnRpbWUgZ2VuZXNpcyBjb25maWcuIFRoZSBwYXRjaCBzaGFsbCBiZSBtZXJnZWQgKHJmYzczODYpIHdpdGggdGhlIEpTT04gcmVwcmVzZW50YXRpb25hASBvZiB0aGUgZGVmYXVsdCBgUnVudGltZUdlbmVzaXNDb25maWdgIHRvIGNyZWF0ZSBhIGNvbXByZWhlbnNpdmUgZ2VuZXNpcyBjb25maWcgdGhhdCBjYW6EIGJlIHVzZWQgaW4gYGJ1aWxkX3N0YXRlYCBtZXRob2QuADBwcmVzZXRfbmFtZXMArQ0QUQEgUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgZm9yIGF2YWlsYWJsZSBidWlsdGluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0cy4AYQEgVGhlIHByZXNldHMgZnJvbSB0aGUgbGlzdCBjYW4gYmUgcXVlcmllZCB3aXRoIFtgR2VuZXNpc0J1aWxkZXI6OmdldF9wcmVzZXRgXSBtZXRob2QuIElmAQEgbm8gbmFtZWQgcHJlc2V0cyBhcmUgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWUgdGhlIGxpc3QgaXMgZW1wdHkuAATwIEFQSSB0byBpbnRlcmFjdCB3aXRoIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZm9yIHRoZSBydW50aW1lBAAgjQaxDQA=";
|
|
2
|
+
|
|
3
|
+
export { binMeta as default };
|