@parity/product-sdk-descriptors 0.7.0 → 0.9.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 +0 -4
- package/chains/devnet-asset-hub/.papi/polkadot-api.json +1 -1
- package/chains/devnet-asset-hub/generated/dist/{devnet_asset_hub_metadata-ECXPhx7J.js → devnet_asset_hub_metadata-DPRqW8eH.js} +1 -1
- package/chains/devnet-asset-hub/generated/dist/index.js +2 -2
- package/chains/devnet-individuality/.papi/polkadot-api.json +1 -1
- package/chains/devnet-individuality/generated/dist/{devnet_individuality_metadata-D_Q26UoG.js → devnet_individuality_metadata-Bn9N9BNx.js} +1 -1
- package/chains/devnet-individuality/generated/dist/index.js +2 -2
- package/chains/kusama-asset-hub/.papi/polkadot-api.json +1 -1
- package/chains/kusama-asset-hub/generated/dist/common-types.d.ts +502 -390
- package/chains/kusama-asset-hub/generated/dist/descriptors-DISR3KIi.js +25 -0
- package/chains/kusama-asset-hub/generated/dist/index.d.ts +1 -1
- package/chains/kusama-asset-hub/generated/dist/index.js +5 -6
- package/chains/kusama-asset-hub/generated/dist/kusama_asset_hub.d.ts +464 -300
- package/chains/kusama-asset-hub/generated/dist/kusama_asset_hub_metadata-DXHUHPNj.js +3 -0
- package/chains/kusama-asset-hub/generated/dist/metadataTypes-D7CQu3b0.js +3 -0
- package/chains/kusama-asset-hub/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-asset-hub/.papi/polkadot-api.json +1 -1
- package/chains/paseo-asset-hub/generated/dist/common-types.d.ts +154 -157
- package/chains/paseo-asset-hub/generated/dist/{descriptors-DhUtfABq.js → descriptors-CimFu30S.js} +1 -1
- package/chains/paseo-asset-hub/generated/dist/index.js +4 -4
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-Bo4aVwWD.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 +73 -87
- package/chains/{summit-asset-hub/generated/dist/summit_asset_hub_metadata-PvlcOpIm.js → paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-CWOk3DU-.js} +1 -1
- package/chains/paseo-bulletin/.papi/polkadot-api.json +1 -1
- package/chains/paseo-bulletin/generated/dist/common-types.d.ts +200 -220
- package/chains/paseo-bulletin/generated/dist/descriptors-YjGUL06H.js +25 -0
- package/chains/paseo-bulletin/generated/dist/index.js +4 -4
- package/chains/paseo-bulletin/generated/dist/metadataTypes-BYRh30V_.js +3 -0
- package/chains/paseo-bulletin/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-bulletin/generated/dist/paseo_bulletin.d.ts +179 -179
- package/chains/paseo-bulletin/generated/dist/paseo_bulletin_metadata-CWv0bj9A.js +3 -0
- package/chains/paseo-individuality/.papi/polkadot-api.json +1 -1
- package/chains/paseo-individuality/generated/dist/common-types.d.ts +142 -68
- package/chains/paseo-individuality/generated/dist/{descriptors-BPDSgyWs.js → descriptors-SCgI2-0R.js} +1 -1
- package/chains/paseo-individuality/generated/dist/index.js +4 -4
- package/chains/{summit-individuality/generated/dist/metadataTypes.d.ts → paseo-individuality/generated/dist/metadataTypes-B1qG4QkU.js} +3 -2
- package/chains/paseo-individuality/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-individuality/generated/dist/paseo_individuality.d.ts +93 -38
- package/chains/paseo-individuality/generated/dist/paseo_individuality_metadata-DRo0inTN.js +3 -0
- package/chains/polkadot-asset-hub/.papi/polkadot-api.json +1 -1
- package/chains/polkadot-asset-hub/generated/dist/common-types.d.ts +343 -155
- package/chains/polkadot-asset-hub/generated/dist/descriptors-BwnkDiaI.js +25 -0
- package/chains/polkadot-asset-hub/generated/dist/index.d.ts +1 -1
- package/chains/polkadot-asset-hub/generated/dist/index.js +5 -6
- package/chains/polkadot-asset-hub/generated/dist/metadataTypes--EQ8pxh1.js +3 -0
- package/chains/polkadot-asset-hub/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/polkadot-asset-hub/generated/dist/polkadot_asset_hub.d.ts +375 -86
- package/chains/polkadot-asset-hub/generated/dist/polkadot_asset_hub_metadata-CN_MTTeF.js +3 -0
- package/package.json +1 -13
- package/chains/kusama-asset-hub/generated/dist/descriptors-DgSoa2t9.js +0 -25
- package/chains/kusama-asset-hub/generated/dist/kusama_asset_hub_metadata-DMsyqc9c.js +0 -3
- package/chains/kusama-asset-hub/generated/dist/metadataTypes-c7k6GZcy.js +0 -3
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-D0TOPqAM.js +0 -3
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-BeiFoQh7.js +0 -3
- package/chains/paseo-bulletin/generated/dist/descriptors-C-v9L1q4.js +0 -25
- package/chains/paseo-bulletin/generated/dist/metadataTypes-GA7L2eXx.js +0 -3
- package/chains/paseo-bulletin/generated/dist/paseo_bulletin_metadata-B9gNyCCl.js +0 -3
- package/chains/paseo-individuality/generated/dist/metadataTypes-B3fJT8lX.js +0 -3
- package/chains/paseo-individuality/generated/dist/paseo_individuality_metadata-CoVMbneS.js +0 -3
- package/chains/polkadot-asset-hub/generated/dist/descriptors-CoscEQ9e.js +0 -25
- package/chains/polkadot-asset-hub/generated/dist/metadataTypes-Dk55glaU.js +0 -3
- package/chains/polkadot-asset-hub/generated/dist/polkadot_asset_hub_metadata-BEYst3UH.js +0 -3
- package/chains/summit-asset-hub/.papi/polkadot-api.json +0 -12
- package/chains/summit-asset-hub/generated/dist/common-types.d.ts +0 -16940
- package/chains/summit-asset-hub/generated/dist/common.d.ts +0 -1
- package/chains/summit-asset-hub/generated/dist/descriptors-B8WL4bSQ.js +0 -25
- package/chains/summit-asset-hub/generated/dist/descriptors.d.ts +0 -1
- package/chains/summit-asset-hub/generated/dist/index.d.ts +0 -10
- package/chains/summit-asset-hub/generated/dist/index.js +0 -116
- package/chains/summit-asset-hub/generated/dist/metadataTypes-D0TOPqAM.js +0 -3
- package/chains/summit-asset-hub/generated/dist/metadataTypes.d.ts +0 -2
- package/chains/summit-asset-hub/generated/dist/summit_asset_hub.d.ts +0 -16379
- package/chains/summit-asset-hub/generated/dist/summit_asset_hub_metadata.d.ts +0 -2
- package/chains/summit-bulletin/.papi/polkadot-api.json +0 -12
- package/chains/summit-bulletin/generated/dist/common-types.d.ts +0 -4594
- package/chains/summit-bulletin/generated/dist/common.d.ts +0 -1
- package/chains/summit-bulletin/generated/dist/descriptors-BDn18GWW.js +0 -25
- package/chains/summit-bulletin/generated/dist/descriptors.d.ts +0 -1
- package/chains/summit-bulletin/generated/dist/index.d.ts +0 -10
- package/chains/summit-bulletin/generated/dist/index.js +0 -88
- package/chains/summit-bulletin/generated/dist/metadataTypes-GA7L2eXx.js +0 -3
- package/chains/summit-bulletin/generated/dist/metadataTypes.d.ts +0 -2
- package/chains/summit-bulletin/generated/dist/summit_bulletin.d.ts +0 -3976
- package/chains/summit-bulletin/generated/dist/summit_bulletin_metadata-B9gNyCCl.js +0 -3
- package/chains/summit-bulletin/generated/dist/summit_bulletin_metadata.d.ts +0 -2
- package/chains/summit-individuality/.papi/polkadot-api.json +0 -12
- package/chains/summit-individuality/generated/dist/common-types.d.ts +0 -10638
- package/chains/summit-individuality/generated/dist/common.d.ts +0 -1
- package/chains/summit-individuality/generated/dist/descriptors-DlbXAv0U.js +0 -25
- package/chains/summit-individuality/generated/dist/descriptors.d.ts +0 -1
- package/chains/summit-individuality/generated/dist/index.d.ts +0 -10
- package/chains/summit-individuality/generated/dist/index.js +0 -87
- package/chains/summit-individuality/generated/dist/metadataTypes-B3fJT8lX.js +0 -3
- package/chains/summit-individuality/generated/dist/summit_individuality.d.ts +0 -10192
- package/chains/summit-individuality/generated/dist/summit_individuality_metadata-CoVMbneS.js +0 -3
- package/chains/summit-individuality/generated/dist/summit_individuality_metadata.d.ts +0 -2
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const binMeta = "bWV0YRDVDAAMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQQwQWNjb3VudEluZGV4ARABFAhJZAQABAEkQWNjb3VudElkAAAAFEluZGV4BAAUATBBY2NvdW50SW5kZXgAAQAMUmF3BAAYARxWZWM8dTg+AAIAJEFkZHJlc3MzMgQACAEgW3U4OyAzMl0AAwAkQWRkcmVzczIwBAAcASBbdTg7IDIwXQAEAAAEDBxzcF9jb3JlGGNyeXB0byxBY2NvdW50SWQzMgAABAAIASBbdTg7IDMyXQAACAAAAyAAAAAMAAwAAAUDABAAAAQAABQAAAYQABgAAAIMABwAAAMUAAAADAAgCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lLFJ1bnRpbWVDYWxsAAGEGFN5c3RlbQQAJAGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAQAHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQAsAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUaW1lc3RhbXAsIFJ1bnRpbWU+AAIANFBhcmFjaGFpbkluZm8EALgByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluSW5mbywgUnVudGltZT4AAwAgQmFsYW5jZXMEALwBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFsYW5jZXMsIFJ1bnRpbWU+AAoARE9yaWdpblJlc3RyaWN0aW9uBADUAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9yaWdpblJlc3RyaWN0aW9uLCBSdW50aW1lPgANABhBc3NldHMEANwBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRzLCBSdW50aW1lPgAOACRBc3NldFJhdGUEACkBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEFzc2V0UmF0ZSwgUnVudGltZT4AEABEQ29sbGF0b3JTZWxlY3Rpb24EADEBAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbGxhdG9yU2VsZWN0aW9uLCBSdW50aW1lPgAVABxTZXNzaW9uBAA1AQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTZXNzaW9uLCBSdW50aW1lPgAWACRYY21wUXVldWUEAEEBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbXBRdWV1ZSwgUnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAEUBAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgAfAChDdW11bHVzWGNtBAAZAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgAgADBNZXNzYWdlUXVldWUEAB0DAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AIgAcVXRpbGl0eQQAJQMBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VXRpbGl0eSwgUnVudGltZT4AKAAgTXVsdGlzaWcEAJEDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgApABBTdWRvBACdAwGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdWRvLCBSdW50aW1lPgAqABRQcm94eQQAoQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+ACwAGFBlb3BsZQQArQMBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGVvcGxlLCBSdW50aW1lPgAzABxNb2JSdWxlBAC9AwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNb2JSdWxlLCBSdW50aW1lPgA0AChQcm9vZk9mSW5rBADNAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcm9vZk9mSW5rLCBSdW50aW1lPgA1ABBHYW1lBAD1AwGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHYW1lLCBSdW50aW1lPgA3ABRTY29yZQQAMQQBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NvcmUsIFJ1bnRpbWU+ADgAIER1bW15RGltBABVBAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEdW1teURpbSwgUnVudGltZT4AOwAoUGVvcGxlTGl0ZQQAbQQBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGVvcGxlTGl0ZSwgUnVudGltZT4APgAkUmVzb3VyY2VzBACBBAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZXNvdXJjZXMsIFJ1bnRpbWU+AD8ANENodW5rc01hbmFnZXIEAI0EAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENodW5rc01hbmFnZXIsIFJ1bnRpbWU+AEAAHE1lbWJlcnMEAJ0EAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lbWJlcnMsIFJ1bnRpbWU+AEMAHENvaW5hZ2UEAKUEAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvaW5hZ2UsIFJ1bnRpbWU+AEQAPE1lbWJlcnNOb3RpZmllcgQA5QQB0QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TWVtYmVyc05vdGlmaWVyLCBSdW50aW1lPgBFABxBaXJkcm9wBAD9BAGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBaXJkcm9wLCBSdW50aW1lPgBGABhIb25vdXIEAAUFAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhvbm91ciwgUnVudGltZT4ARwBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEABEFAeUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tNaWdyYXRpb25zLCBSdW50aW1lPgBiAAAkDDBmcmFtZV9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAASwYcmVtYXJrBAEYcmVtYXJrGAEcVmVjPHU4PgAADGhNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLgCIQ2FuIGJlIGV4ZWN1dGVkIGJ5IGV2ZXJ5IGBvcmlnaW5gLjhzZXRfaGVhcF9wYWdlcwQBFHBhZ2VzKAEMdTY0AAEE+FNldCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBXZWJBc3NlbWJseSBlbnZpcm9ubWVudCdzIGhlYXAuIHNldF9jb2RlBAEQY29kZRgBHFZlYzx1OD4AAgRkU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlLlxzZXRfY29kZV93aXRob3V0X2NoZWNrcwQBEGNvZGUYARxWZWM8dTg+AAMQGQFTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUgd2l0aG91dCBkb2luZyBhbnkgY2hlY2tzIG9mIHRoZSBnaXZlbiBgY29kZWAuAFEBTm90ZSB0aGF0IHJ1bnRpbWUgdXBncmFkZXMgd2lsbCBub3QgcnVuIGlmIHRoaXMgaXMgY2FsbGVkIHdpdGggYSBub3QtaW5jcmVhc2luZyBzcGVjIHZlcnNpb24hLHNldF9zdG9yYWdlBAEUaXRlbXMsATRWZWM8S2V5VmFsdWU+AAQEaFNldCBzb21lIGl0ZW1zIG9mIHN0b3JhZ2UuMGtpbGxfc3RvcmFnZQQBEGtleXM0ASBWZWM8S2V5PgAFBHRLaWxsIHNvbWUgaXRlbXMgZnJvbSBzdG9yYWdlLixraWxsX3ByZWZpeAgBGHByZWZpeBgBDEtleQABHHN1YmtleXM4AQx1MzIABhARAUtpbGwgYWxsIHN0b3JhZ2UgaXRlbXMgd2l0aCBhIGtleSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguADkBKipOT1RFOioqIFdlIHJlbHkgb24gdGhlIFJvb3Qgb3JpZ2luIHRvIHByb3ZpZGUgdXMgdGhlIG51bWJlciBvZiBzdWJrZXlzIHVuZGVyPQF0aGUgcHJlZml4IHdlIGFyZSByZW1vdmluZyB0byBhY2N1cmF0ZWx5IGNhbGN1bGF0ZSB0aGUgd2VpZ2h0IG9mIHRoaXMgZnVuY3Rpb24uRHJlbWFya193aXRoX2V2ZW50BAEYcmVtYXJrGAEcVmVjPHU4PgAHBKRNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrIGFuZCBlbWl0IGV2ZW50LkRhdXRob3JpemVfdXBncmFkZQQBJGNvZGVfaGFzaDwBHFQ6Okhhc2gACRBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4ugGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzBAEkY29kZV9oYXNoPAEcVDo6SGFzaAAKIGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AXQFXQVJOSU5HOiBUaGlzIGF1dGhvcml6ZXMgYW4gdXBncmFkZSB0aGF0IHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0IGFueSBzYWZldHkgY2hlY2tzLCBmb3JZAWV4YW1wbGUgdGhhdCB0aGUgc3BlYyBuYW1lIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVyIGluY3JlYXNlcy4gTm908HJlY29tbWVuZGVkIGZvciBub3JtYWwgdXNlLiBVc2UgYGF1dGhvcml6ZV91cGdyYWRlYCBpbnN0ZWFkLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLmBhcHBseV9hdXRob3JpemVkX3VwZ3JhZGUEARBjb2RlGAEcVmVjPHU4PgALJFUBUHJvdmlkZSB0aGUgcHJlaW1hZ2UgKHJ1bnRpbWUgYmluYXJ5KSBgY29kZWAgZm9yIGFuIHVwZ3JhZGUgdGhhdCBoYXMgYmVlbiBhdXRob3JpemVkLgBJAUlmIHRoZSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIGEgdmVyc2lvbiBjaGVjaywgdGhpcyBjYWxsIHdpbGwgZW5zdXJlIHRoZSBzcGVjIG5hbWXocmVtYWlucyB1bmNoYW5nZWQgYW5kIHRoYXQgdGhlIHNwZWMgdmVyc2lvbiBoYXMgaW5jcmVhc2VkLgBZAURlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGBPblNldENvZGVgIGNvbmZpZ3VyYXRpb24sIHRoaXMgZnVuY3Rpb24gbWF5IGRpcmVjdGx5IGFwcGx5EQF0aGUgbmV3IGBjb2RlYCBpbiB0aGUgc2FtZSBibG9jayBvciBhdHRlbXB0IHRvIHNjaGVkdWxlIHRoZSB1cGdyYWRlLgBgQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLigAAAUGACwAAAIwADAAAAQIGBgANAAAAhgAOAAABQUAPAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQACAEgW3U4OyAzMl0AAEAMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAAQhMc2V0X3ZhbGlkYXRpb25fZGF0YQgBEGRhdGFEAWhCYXNpY1BhcmFjaGFpbkluaGVyZW50RGF0YQABVGluYm91bmRfbWVzc2FnZXNfZGF0YXwBTEluYm91bmRNZXNzYWdlc0RhdGEAACSAU2V0IHRoZSBjdXJyZW50IHZhbGlkYXRpb24gZGF0YS4AQQFUaGlzIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbohwaGFzZSBpZiB0aGUgY2FsbCB3YXMgbm90IGludm9rZWQuANBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgSW5oZXJlbnRgACEBQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiB1cGdyYWRlcyB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGZ1bmN0aW9uhGlmIHRoZSBhcHByb3ByaWF0ZSB0aW1lIGhhcyBjb21lLmBzdWRvX3NlbmRfdXB3YXJkX21lc3NhZ2UEARxtZXNzYWdlGAE0VXB3YXJkTWVzc2FnZQABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5EDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudGhCYXNpY1BhcmFjaGFpbkluaGVyZW50RGF0YQAAEAE8dmFsaWRhdGlvbl9kYXRhSAFcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEAAURyZWxheV9jaGFpbl9zdGF0ZVABVHNwX3RyaWU6OlN0b3JhZ2VQcm9vZgABYHJlbGF5X3BhcmVudF9kZXNjZW5kYW50c1gBQFZlYzxSZWxheUhlYWRlcj4AAUBjb2xsYXRvcl9wZWVyX2lkdAFYT3B0aW9uPEFwcHJvdmVkUGVlcklkPgAASAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OVxQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQgESAE8BE4BOAAQASxwYXJlbnRfaGVhZEwBIEhlYWREYXRhAAFMcmVsYXlfcGFyZW50X251bWJlcjgBBE4AAWRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290PAEESAABMG1heF9wb3Zfc2l6ZTgBDHUzMgAATAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcyBIZWFkRGF0YQAABAAYARxWZWM8dTg+AABQDBxzcF90cmllNHN0b3JhZ2VfcHJvb2YwU3RvcmFnZVByb29mAAAEASh0cmllX25vZGVzVAFEQlRyZWVTZXQ8VmVjPHU4Pj4AAFQEIEJUcmVlU2V0BARUARgABAA0AAAAWAAAAlwAXBAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgE4EEhhc2gAABQBLHBhcmVudF9oYXNoPAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVyYAEYTnVtYmVyAAEoc3RhdGVfcm9vdDwBMEhhc2g6Ok91dHB1dAABPGV4dHJpbnNpY3Nfcm9vdDwBMEhhc2g6Ok91dHB1dAABGGRpZ2VzdGQBGERpZ2VzdAAAYAAABjgAZBAoc3BfcnVudGltZRxnZW5lcmljGGRpZ2VzdBhEaWdlc3QAAAQBEGxvZ3NoATxWZWM8RGlnZXN0SXRlbT4AAGgAAAJsAGwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QoRGlnZXN0SXRlbQABFChQcmVSdW50aW1lCABwAURDb25zZW5zdXNFbmdpbmVJZAAAGAEcVmVjPHU4PgAGACRDb25zZW5zdXMIAHABRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAQAEFNlYWwIAHABRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAUAFE90aGVyBAAYARxWZWM8dTg+AAAAZFJ1bnRpbWVFbnZpcm9ubWVudFVwZGF0ZWQACAAAcAAAAwQAAAAMAHQEGE9wdGlvbgQEVAF4AQgQTm9uZQAAABBTb21lBAB4AAABAAB4DExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAfAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnRMSW5ib3VuZE1lc3NhZ2VzRGF0YQAACAFEZG93bndhcmRfbWVzc2FnZXOAAXxBYnJpZGdlZEluYm91bmREb3dud2FyZE1lc3NhZ2VzAAFMaG9yaXpvbnRhbF9tZXNzYWdlc5QBbEFicmlkZ2VkSW5ib3VuZEhybXBNZXNzYWdlcwAAgAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnSEQWJyaWRnZWRJbmJvdW5kTWVzc2FnZXNDb2xsZWN0aW9uBBxNZXNzYWdlAYQACAE0ZnVsbF9tZXNzYWdlc4gBMFZlYzxNZXNzYWdlPgABPGhhc2hlZF9tZXNzYWdlc4wBfFZlYzxNZXNzYWdlOjpDb21wcmVzc2VkTWVzc2FnZT4AAIQIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc1hJbmJvdW5kRG93bndhcmRNZXNzYWdlBCxCbG9ja051bWJlcgE4AAgBHHNlbnRfYXQ4ASxCbG9ja051bWJlcgABDG1zZxgBPERvd253YXJkTWVzc2FnZQAAiAAAAoQAjAAAApAAkAiUY3VtdWx1c19wcmltaXRpdmVzX3BhcmFjaGFpbl9pbmhlcmVudDRIYXNoZWRNZXNzYWdlAAAIARxzZW50X2F0OAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEgbXNnX2hhc2g8ATRzcF9jb3JlOjpIMjU2AACUDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudIRBYnJpZGdlZEluYm91bmRNZXNzYWdlc0NvbGxlY3Rpb24EHE1lc3NhZ2UBmAAIATRmdWxsX21lc3NhZ2VzpAEwVmVjPE1lc3NhZ2U+AAE8aGFzaGVkX21lc3NhZ2VzqAF8VmVjPE1lc3NhZ2U6OkNvbXByZXNzZWRNZXNzYWdlPgAAmAAABAicoACcDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEADgBDHUzMgAAoAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBOAAIARxzZW50X2F0OAEsQmxvY2tOdW1iZXIAARBkYXRhGAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAApAAAApgAqAAAAqwArAAABAickACwDEBwYWxsZXRfdGltZXN0YW1wGHBhbGxldBBDYWxsBARUAAEEDHNldAQBDG5vd7QBJFQ6Ok1vbWVudAAATFRTZXQgdGhlIGN1cnJlbnQgdGltZS4AVQFUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u1HBoYXNlLCBpZiB0aGlzIGNhbGwgaGFzbid0IGJlZW4gaW52b2tlZCBieSB0aGF0IHRpbWUuAEEBVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnloW2BDb25maWc6Ok1pbmltdW1QZXJpb2RgXS4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUQFUaGlzIGRpc3BhdGNoIGNsYXNzIGlzIF9NYW5kYXRvcnlfIHRvIGVuc3VyZSBpdCBnZXRzIGV4ZWN1dGVkIGluIHRoZSBibG9jay4gQmUgYXdhcmVRAXRoYXQgY2hhbmdpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjYWxsIGNvdWxkIHJlc3VsdCBleGhhdXN0aW5nIHRoZSByZXNvdXJjZXMgaW4gYYRibG9jayB0byBleGVjdXRlIGFueSBvdGhlciBjYWxscy4ANCMjIENvbXBsZXhpdHkxAS0gYE8oMSlgIChOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBPblRpbWVzdGFtcFNldGAgbXVzdCBhbHNvIGJlIGBPKDEpYClVAS0gMSBzdG9yYWdlIHJlYWQgYW5kIDEgc3RvcmFnZSBtdXRhdGlvbiAoY29kZWMgYE8oMSlgIGJlY2F1c2Ugb2YgYERpZFVwZGF0ZTo6dGFrZWAgaW5AICBgb25fZmluYWxpemVgKdQtIDEgZXZlbnQgaGFuZGxlciBgb25fdGltZXN0YW1wX3NldGAuIE11c3QgYmUgYE8oMSlgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy60AAAGKAC4DFhzdGFnaW5nX3BhcmFjaGFpbl9pbmZvGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrwMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlwAEoVDo6QmFsYW5jZQAAHNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgA1AWB0cmFuc2Zlcl9hbGxvd19kZWF0aGAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIuEQFJZiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdLBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLjhmb3JjZV90cmFuc2ZlcgwBGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXAAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZcABKFQ6OkJhbGFuY2UAAxhZAVNhbWUgYXMgdGhlIFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBjYWxsLCBidXQgd2l0aCBhIGNoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHdpbGwgbm90YGtpbGwgdGhlIG9yaWdpbiBhY2NvdW50LgDoOTklIG9mIHRoZSB0aW1lIHlvdSB3YW50IFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBpbnN0ZWFkLgDwW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdOiBzdHJ1Y3QuUGFsbGV0Lmh0bWwjbWV0aG9kLnRyYW5zZmVyMHRyYW5zZmVyX2FsbAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmXIARBib29sAAQ8BQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0YQFhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwgZGVwb3NpdHMgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvclkBICB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuPGZvcmNlX3VucmVzZXJ2ZQgBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50xAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG/MAURWZWM8VDo6QWNjb3VudElkPgAGIHBVcGdyYWRlIGEgc3BlY2lmaWVkIGFjY291bnQuAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1cGdyYWRlZC4AVQFUaGlzIHdpbGwgd2FpdmUgdGhlIHRyYW5zYWN0aW9uIGZlZSBpZiBhdCBsZWFzdCBhbGwgYnV0IDEwJSBvZiB0aGUgYWNjb3VudHMgbmVlZGVkIHRvQQFiZSB1cGdyYWRlZC4gKFdlIGxldCBzb21lIG5vdCBoYXZlIHRvIGJlIHVwZ3JhZGVkIGp1c3QgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZVhwb3NzaWJpbGl0eSBvZiBjaHVybikuRGZvcmNlX3NldF9iYWxhbmNlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZcABKFQ6OkJhbGFuY2UACAysU2V0IHRoZSByZWd1bGFyIGJhbGFuY2Ugb2YgYSBnaXZlbiBhY2NvdW50LgCwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIGlzIGByb290YC5sZm9yY2VfYWRqdXN0X3RvdGFsX2lzc3VhbmNlCAEkZGlyZWN0aW9u0AFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRhwAEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWXAAShUOjpCYWxhbmNlAAEoa2VlcF9hbGl2ZcgBEGJvb2wAChz8QnVybiB0aGUgc3BlY2lmaWVkIGxpcXVpZCBmcmVlIGJhbGFuY2UgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQuACUBSWYgdGhlIG9yaWdpbidzIGFjY291bnQgZW5kcyB1cCBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdAkBb2YgdGhlIGJ1cm4gYW5kIGBrZWVwX2FsaXZlYCBpcyBmYWxzZSwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuAFEBVW5saWtlIHNlbmRpbmcgZnVuZHMgdG8gYSBfYnVybl8gYWRkcmVzcywgd2hpY2ggbWVyZWx5IG1ha2VzIHRoZSBmdW5kcyBpbmFjY2Vzc2libGUsIQF0aGlzIGBidXJuYCBvcGVyYXRpb24gd2lsbCByZWR1Y2UgdG90YWwgaXNzdWFuY2UgYnkgdGhlIGFtb3VudCBfYnVybmVkXy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuwAAABsQAxAAABQcAyAAABQAAzAAAAgQA0Aw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzTEFkanVzdG1lbnREaXJlY3Rpb24AAQggSW5jcmVhc2UAAAAgRGVjcmVhc2UAAQAA1Ax8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbhhwYWxsZXQQQ2FsbAQEVAABBCxjbGVhbl91c2FnZQQBGGVudGl0edgBTFQ6OlJlc3RyaWN0ZWRFbnRpdHkAAQhJAUFsbG93IHRvIGNsZWFuIHVzYWdlIGFzc29jaWF0ZWQgd2l0aCBhbiBlbnRpdHkgd2hlbiBpdCBpcyB6ZXJvIG9yIHdoZW4gdGhlcmUgaXMgbm+QbG9uZ2VyIGFueSBhbGxvd2FuY2UgZm9yIHRoZSBvcmlnaW4uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtgIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWVAUmVzdHJpY3RlZEVudGl0eQABGDRQZXJzb25hbEFsaWFzBAAIARRBbGlhcwAAAEBQZXJzb25hbElkZW50aXR5BAAoAQx1NjQAAQBEUmVmZXJyZWRDYW5kaWRhdGUEAAQBJEFjY291bnRJZAACAEhBY2NvdW50UGFydGljaXBhbnQEAAQBJEFjY291bnRJZAADAEBJbnZpdGVkQ2FuZGlkYXRlBAAEASRBY2NvdW50SWQABAAoTGl0ZVBlcnNvbgQABAEkQWNjb3VudElkAAUAANwMNHBhbGxldF9hc3NldHMYcGFsbGV0EENhbGwIBFQABEkAAYgYY3JlYXRlDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1pbl9iYWxhbmNlxAEoVDo6QmFsYW5jZQAATOhJc3N1ZSBhIG5ldyBjbGFzcyBvZiBmdW5naWJsZSBhc3NldHMgZnJvbSBhIHB1YmxpYyBvcmlnaW4uACUBVGhpcyBuZXcgYXNzZXQgY2xhc3MgaGFzIG5vIGFzc2V0cyBpbml0aWFsbHkgYW5kIGl0cyBvd25lciBpcyB0aGUgb3JpZ2luLgBhAVRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIHRoZSBjb25maWd1cmVkIGBDcmVhdGVPcmlnaW5gIGFuZCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZnJlZS4AvEZ1bmRzIG9mIHNlbmRlciBhcmUgcmVzZXJ2ZWQgYnkgYEFzc2V0RGVwb3NpdGAuACxQYXJhbWV0ZXJzOlkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0LiBUaGlzIG11c3Qgbm90IGJlIGN1cnJlbnRseSBpbiB1c2UgdG8gaWRlbnRpZnkxAWFuIGV4aXN0aW5nIGFzc2V0LiBJZiBbYE5leHRBc3NldElkYF0gaXMgc2V0LCB0aGVuIHRoaXMgbXVzdCBiZSBlcXVhbCB0byBpdC5ZAS0gYGFkbWluYDogVGhlIGFkbWluIG9mIHRoaXMgY2xhc3Mgb2YgYXNzZXRzLiBUaGUgYWRtaW4gaXMgdGhlIGluaXRpYWwgYWRkcmVzcyBvZiBlYWNonG1lbWJlciBvZiB0aGUgYXNzZXQgY2xhc3MncyBhZG1pbiB0ZWFtLk0BLSBgbWluX2JhbGFuY2VgOiBUaGUgbWluaW11bSBiYWxhbmNlIG9mIHRoaXMgbmV3IGFzc2V0IHRoYXQgYW55IHNpbmdsZSBhY2NvdW50IG11c3Q9AWhhdmUuIElmIGFuIGFjY291bnQncyBiYWxhbmNlIGlzIHJlZHVjZWQgYmVsb3cgdGhpcywgdGhlbiBpdCBjb2xsYXBzZXMgdG8gemVyby4AmEVtaXRzIGBDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYDBmb3JjZV9jcmVhdGUQAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAE0aXNfc3VmZmljaWVudMgBEGJvb2wAASxtaW5fYmFsYW5jZcABKFQ6OkJhbGFuY2UAAUz4SXNzdWUgYSBuZXcgY2xhc3Mgb2YgZnVuZ2libGUgYXNzZXRzIGZyb20gYSBwcml2aWxlZ2VkIG9yaWdpbi4AtFRoaXMgbmV3IGFzc2V0IGNsYXNzIGhhcyBubyBhc3NldHMgaW5pdGlhbGx5LgCkVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYC4AnFVubGlrZSBgY3JlYXRlYCwgbm8gZnVuZHMgYXJlIHJlc2VydmVkLgBZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldC4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlIHRvIGlkZW50aWZ5MQFhbiBleGlzdGluZyBhc3NldC4gSWYgW2BOZXh0QXNzZXRJZGBdIGlzIHNldCwgdGhlbiB0aGlzIG11c3QgYmUgZXF1YWwgdG8gaXQuWQEtIGBvd25lcmA6IFRoZSBvd25lciBvZiB0aGlzIGNsYXNzIG9mIGFzc2V0cy4gVGhlIG93bmVyIGhhcyBmdWxsIHN1cGVydXNlciBwZXJtaXNzaW9ucyUBb3ZlciB0aGlzIGFzc2V0LCBidXQgbWF5IGxhdGVyIGNoYW5nZSBhbmQgY29uZmlndXJlIHRoZSBwZXJtaXNzaW9ucyB1c2luZ5BgdHJhbnNmZXJfb3duZXJzaGlwYCBhbmQgYHNldF90ZWFtYC5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uAKxFbWl0cyBgRm9yY2VDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYDRzdGFydF9kZXN0cm95BAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAIw3FN0YXJ0IHRoZSBwcm9jZXNzIG9mIGRlc3Ryb3lpbmcgYSBmdW5naWJsZSBhc3NldCBjbGFzcy4AWQFgc3RhcnRfZGVzdHJveWAgaXMgdGhlIGZpcnN0IGluIGEgc2VyaWVzIG9mIGV4dHJpbnNpY3MgdGhhdCBzaG91bGQgYmUgY2FsbGVkLCB0byBhbGxvd3hkZXN0cnVjdGlvbiBvZiBhbiBhc3NldCBjbGFzcy4AUQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIGFzc2V0J3MgYG93bmVyYC4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWa4YW4gYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLkBkZXN0cm95X2FjY291bnRzBAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAMwzERlc3Ryb3kgYWxsIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFzc2V0LgBdAWBkZXN0cm95X2FjY291bnRzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHkxAWRlc3Ryb3kgYWxsIGFjY291bnRzLiBJdCB3aWxsIGRlc3Ryb3kgYFJlbW92ZUl0ZW1zTGltaXRgIGFjY291bnRzIGF0IGEgdGltZS4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDURWFjaCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZEFjY291bnRzYCBldmVudC5EZGVzdHJveV9hcHByb3ZhbHMEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIABDBhAURlc3Ryb3kgYWxsIGFwcHJvdmFscyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBhc3NldCB1cCB0byB0aGUgbWF4IChUOjpSZW1vdmVJdGVtc0xpbWl0KS4AYQFgZGVzdHJveV9hcHByb3ZhbHNgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlhGFzc2V0IGlzIGluIGEgYERlc3Ryb3lpbmdgIHN0YXRlLgBdAUR1ZSB0byB3ZWlnaHQgcmVzdHJpY3Rpb25zLCB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBmdWxseTkBZGVzdHJveSBhbGwgYXBwcm92YWxzLiBJdCB3aWxsIGRlc3Ryb3kgYFJlbW92ZUl0ZW1zTGltaXRgIGFwcHJvdmFscyBhdCBhIHRpbWUuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A2EVhY2ggY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRBcHByb3ZhbHNgIGV2ZW50LjhmaW5pc2hfZGVzdHJveQQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgAFKMRDb21wbGV0ZSBkZXN0cm95aW5nIGFzc2V0IGFuZCB1bnJlc2VydmUgY3VycmVuY3kuAFUBYGZpbmlzaF9kZXN0cm95YCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZVkBYXNzZXQgaXMgaW4gYSBgRGVzdHJveWluZ2Agc3RhdGUuIEFsbCBhY2NvdW50cyBvciBhcHByb3ZhbHMgc2hvdWxkIGJlIGRlc3Ryb3llZCBiZWZvcmUUaGFuZC4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDgRWFjaCBzdWNjZXNzZnVsIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkYCBldmVudC4QbWludAwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABLGJlbmVmaWNpYXJ5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnTAAShUOjpCYWxhbmNlAAYwiE1pbnQgYXNzZXRzIG9mIGEgcGFydGljdWxhciBjbGFzcy4AOQFUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIElzc3VlciBvZiB0aGUgYXNzZXQgYGlkYC4A/C0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgbWludGVkLg0BLSBgYmVuZWZpY2lhcnlgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZCB3aXRoIHRoZSBtaW50ZWQgYXNzZXRzLsQtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIHRoZSBhc3NldCB0byBiZSBtaW50ZWQuAJRFbWl0cyBgSXNzdWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYFUBTW9kZXM6IFByZS1leGlzdGluZyBiYWxhbmNlIG9mIGBiZW5lZmljaWFyeWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiBgYmVuZWZpY2lhcnlgLhBidXJuDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnTAAShUOjpCYWxhbmNlAAc8RQFSZWR1Y2UgdGhlIGJhbGFuY2Ugb2YgYHdob2AgYnkgYXMgbXVjaCBhcyBwb3NzaWJsZSB1cCB0byBgYW1vdW50YCBhc3NldHMgb2YgYGlkYC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBNYW5hZ2VyIG9mIHRoZSBhc3NldCBgaWRgLgDQQmFpbHMgd2l0aCBgTm9BY2NvdW50YCBpZiB0aGUgYHdob2AgaXMgYWxyZWFkeSBkZWFkLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBidXJuZWQuoC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIGRlYml0ZWQgZnJvbS4pAS0gYGFtb3VudGA6IFRoZSBtYXhpbXVtIGFtb3VudCBieSB3aGljaCBgd2hvYCdzIGJhbGFuY2Ugc2hvdWxkIGJlIHJlZHVjZWQuAFEBRW1pdHMgYEJ1cm5lZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCBidXJuZWQuIElmIHRoaXMgdGFrZXMgdGhlIGJhbGFuY2UgdG8gYmVsb3cgdGhlOQFtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCBidXJuZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgCQFNb2RlczogUG9zdC1leGlzdGVuY2Ugb2YgYHdob2A7IFByZSAmIHBvc3QgWm9tYmllLXN0YXR1cyBvZiBgd2hvYC4gdHJhbnNmZXIMAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UACEjQTW92ZSBzb21lIGFzc2V0cyBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgARAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgdHJhbnNmZXJyZWQunC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlEBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgc2VuZGVyJ3MgYmFsYW5jZSBvZiBhc3NldHMgc2hvdWxkIGJlIHJlZHVjZWQgYW5kYQFgdGFyZ2V0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluXQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgc2VuZGVyIGJhbGFuY2UgYWJvdmUgemVybyBidXQgYmVsb3e8dGhlIG1pbmltdW0gYmFsYW5jZS4gTXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4AYQFFbWl0cyBgVHJhbnNmZXJyZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgdHJhbnNmZXJyZWQuIElmIHRoaXMgdGFrZXMgdGhlIHNvdXJjZSBiYWxhbmNlXQF0byBiZWxvdyB0aGUgbWluaW11bSBmb3IgdGhlIGFzc2V0LCB0aGVuIHRoZSBhbW91bnQgdHJhbnNmZXJyZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgUQFNb2RlczogUHJlLWV4aXN0ZW5jZSBvZiBgdGFyZ2V0YDsgUG9zdC1leGlzdGVuY2Ugb2Ygc2VuZGVyOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YkYHRhcmdldGAuTHRyYW5zZmVyX2tlZXBfYWxpdmUMAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UACUhZAU1vdmUgc29tZSBhc3NldHMgZnJvbSB0aGUgc2VuZGVyIGFjY291bnQgdG8gYW5vdGhlciwga2VlcGluZyB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUuAFhPcmlnaW4gbXVzdCBiZSBTaWduZWQuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6cLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuUQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBzZW5kZXIncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRhAWB0YXJnZXRgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5dAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBzZW5kZXIgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dCBiZWxvd7x0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGB0YXJnZXRgOyBQb3N0LWV4aXN0ZW5jZSBvZiBzZW5kZXI7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiRgdGFyZ2V0YC44Zm9yY2VfdHJhbnNmZXIQAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARhzb3VyY2UAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UACky0TW92ZSBzb21lIGFzc2V0cyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6YLSBgc291cmNlYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZC6ULSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkLlkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBieSB3aGljaCB0aGUgYHNvdXJjZWAncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRZAWBkZXN0YCdzIGJhbGFuY2UgaW5jcmVhc2VkLiBUaGUgYW1vdW50IGFjdHVhbGx5IHRyYW5zZmVycmVkIG1heSBiZSBzbGlnaHRseSBncmVhdGVyIGluTQF0aGUgY2FzZSB0aGF0IHRoZSB0cmFuc2ZlciB3b3VsZCBvdGhlcndpc2UgdGFrZSB0aGUgYHNvdXJjZWAgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dNRiZWxvdyB0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGBkZXN0YDsgUG9zdC1leGlzdGVuY2Ugb2YgYHNvdXJjZWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZhxgZGVzdGAuGGZyZWV6ZQgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAswVQFEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgb2YgYW4gYXNzZXQgYGlkYCBmcm9tIGFuIGFjY291bnQgYHdob2AuIGB3aG9gTQFtdXN0IGFscmVhZHkgZXhpc3QgYXMgYW4gZW50cnkgaW4gYEFjY291bnRgcyBvZiB0aGUgYXNzZXQuIElmIHlvdSB3YW50IHRvIGZyZWV6ZSBhbvRhY2NvdW50IHRoYXQgZG9lcyBub3QgaGF2ZSBhbiBlbnRyeSwgdXNlIGB0b3VjaF9vdGhlcmAgZmlyc3QuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6ILSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgZnJvemVuLgA8RW1pdHMgYEZyb3plbmAuADhXZWlnaHQ6IGBPKDEpYBB0aGF3CAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADCjoQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyB0byBhbmQgZnJvbSBhbiBhY2NvdW50IGFnYWluLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1bmZyb3plbi4APEVtaXRzIGBUaGF3ZWRgLgA4V2VpZ2h0OiBgTygxKWAwZnJlZXplX2Fzc2V0BAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAA0k8ERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGNsYXNzLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgKHRoYXdfYXNzZXQEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIADiTEQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGFnYWluLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgdGhhd2VkLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AA8odENoYW5nZSB0aGUgT3duZXIgb2YgYW4gYXNzZXQuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGFzc2V0IGBpZGAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC6cLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgYXNzZXQuAFRFbWl0cyBgT3duZXJDaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgIHNldF90ZWFtEAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAwxENoYW5nZSB0aGUgSXNzdWVyLCBBZG1pbiBhbmQgRnJlZXplciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYDBzZXRfbWV0YWRhdGEQAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBuYW1lGAEcVmVjPHU4PgABGHN5bWJvbBgBHFZlYzx1OD4AASBkZWNpbWFscwwBCHU4ABFAeFNldCB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgDYRnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBhY2NvcmRpbmcgdG8gdGhlIGZvcm11bGE6UQFgTWV0YWRhdGFEZXBvc2l0QmFzZSArIE1ldGFkYXRhRGVwb3NpdFBlckJ5dGUgKiAobmFtZS5sZW4gKyBzeW1ib2wubGVuKWAgdGFraW5nIGludG+MYWNjb3VudCBhbnkgYWxyZWFkeSByZXNlcnZlZCBmdW5kcy4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHVwZGF0ZS5NAS0gYG5hbWVgOiBUaGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuTQEtIGBzeW1ib2xgOiBUaGUgZXhjaGFuZ2Ugc3ltYm9sIGZvciB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLi0BLSBgZGVjaW1hbHNgOiBUaGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoaXMgYXNzZXQgdXNlcyB0byByZXByZXNlbnQgb25lIHVuaXQuAFBFbWl0cyBgTWV0YWRhdGFTZXRgLgA4V2VpZ2h0OiBgTygxKWA4Y2xlYXJfbWV0YWRhdGEEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAEiyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4ApEFueSBkZXBvc2l0IGlzIGZyZWVkIGZvciB0aGUgYXNzZXQgb3duZXIuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2Vfc2V0X21ldGFkYXRhFAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbsgBEGJvb2wAEzi4Rm9yY2UgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldCB0byBzb21lIHZhbHVlLgBsT3JpZ2luIG11c3QgYmUgRm9yY2VPcmlnaW4uAGhBbnkgZGVwb3NpdCBpcyBsZWZ0IGFsb25lLgC4LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gdXBkYXRlLk0BLSBgbmFtZWA6IFRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC5NAS0gYHN5bWJvbGA6IFRoZSBleGNoYW5nZSBzeW1ib2wgZm9yIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuLQEtIGBkZWNpbWFsc2A6IFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhpcyBhc3NldCB1c2VzIHRvIHJlcHJlc2VudCBvbmUgdW5pdC4AUEVtaXRzIGBNZXRhZGF0YVNldGAuAFEBV2VpZ2h0OiBgTyhOICsgUylgIHdoZXJlIE4gYW5kIFMgYXJlIHRoZSBsZW5ndGggb2YgdGhlIG5hbWUgYW5kIHN5bWJvbCByZXNwZWN0aXZlbHkuUGZvcmNlX2NsZWFyX21ldGFkYXRhBAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyABQsgENsZWFyIHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQuAGxPcmlnaW4gbXVzdCBiZSBGb3JjZU9yaWdpbi4AYEFueSBkZXBvc2l0IGlzIHJldHVybmVkLgC0LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gY2xlYXIuAGBFbWl0cyBgTWV0YWRhdGFDbGVhcmVkYC4AOFdlaWdodDogYE8oMSlgSGZvcmNlX2Fzc2V0X3N0YXR1cyABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASxtaW5fYmFsYW5jZcABKFQ6OkJhbGFuY2UAATRpc19zdWZmaWNpZW50yAEQYm9vbAABJGlzX2Zyb3plbsgBEGJvb2wAFViYQWx0ZXIgdGhlIGF0dHJpYnV0ZXMgb2YgYSBnaXZlbiBhc3NldC4AdE9yaWdpbiBtdXN0IGJlIGBGb3JjZU9yaWdpbmAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC6cLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgYXNzZXQupC0gYGlzc3VlcmA6IFRoZSBuZXcgSXNzdWVyIG9mIHRoaXMgYXNzZXQunC0gYGFkbWluYDogVGhlIG5ldyBBZG1pbiBvZiB0aGlzIGFzc2V0LqwtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgYXNzZXQuTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLlEBLSBgaXNfc3VmZmljaWVudGA6IFdoZXRoZXIgYSBub24temVybyBiYWxhbmNlIG9mIHRoaXMgYXNzZXQgaXMgZGVwb3NpdCBvZiBzdWZmaWNpZW50TQF2YWx1ZSB0byBhY2NvdW50IGZvciB0aGUgc3RhdGUgYmxvYXQgYXNzb2NpYXRlZCB3aXRoIGl0cyBiYWxhbmNlIHN0b3JhZ2UuIElmIHNldCB0b1UBYHRydWVgLCB0aGVuIG5vbi16ZXJvIGJhbGFuY2VzIG1heSBiZSBzdG9yZWQgd2l0aG91dCBhIGBjb25zdW1lcmAgcmVmZXJlbmNlIChhbmQgdGh1c00BYW4gRUQgaW4gdGhlIEJhbGFuY2VzIHBhbGxldCBvciB3aGF0ZXZlciBlbHNlIGlzIHVzZWQgdG8gY29udHJvbCB1c2VyLWFjY291bnQgc3RhdGUgZ3Jvd3RoKS49AS0gYGlzX2Zyb3plbmA6IFdoZXRoZXIgdGhpcyBhc3NldCBjbGFzcyBpcyBmcm96ZW4gZXhjZXB0IGZvciBwZXJtaXNzaW9uZWQvYWRtaW40aW5zdHJ1Y3Rpb25zLgDoRW1pdHMgYEFzc2V0U3RhdHVzQ2hhbmdlZGAgd2l0aCB0aGUgaWRlbnRpdHkgb2YgdGhlIGFzc2V0LgA4V2VpZ2h0OiBgTygxKWBAYXBwcm92ZV90cmFuc2ZlcgwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnTAAShUOjpCYWxhbmNlABZQLQFBcHByb3ZlIGFuIGFtb3VudCBvZiBhc3NldCBmb3IgdHJhbnNmZXIgYnkgYSBkZWxlZ2F0ZWQgdGhpcmQtcGFydHkgYWNjb3VudC4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4ATQFFbnN1cmVzIHRoYXQgYEFwcHJvdmFsRGVwb3NpdGAgd29ydGggb2YgYEN1cnJlbmN5YCBpcyByZXNlcnZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudFUBZm9yIHRoZSBwdXJwb3NlIG9mIGhvbGRpbmcgdGhlIGFwcHJvdmFsLiBJZiBzb21lIG5vbi16ZXJvIGFtb3VudCBvZiBhc3NldHMgaXMgYWxyZWFkeUkBYXBwcm92ZWQgZnJvbSBzaWduaW5nIGFjY291bnQgdG8gYGRlbGVnYXRlYCwgdGhlbiBpdCBpcyB0b3BwZWQgdXAgb3IgdW5yZXNlcnZlZCB0b1RtZWV0IHRoZSByaWdodCB2YWx1ZS4ARQFOT1RFOiBUaGUgc2lnbmluZyBhY2NvdW50IGRvZXMgbm90IG5lZWQgdG8gb3duIGBhbW91bnRgIG9mIGFzc2V0cyBhdCB0aGUgcG9pbnQgb2ZEbWFraW5nIHRoaXMgY2FsbC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0Lg0BLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0byBkZWxlZ2F0ZSBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LkkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBhc3NldCB0aGF0IG1heSBiZSB0cmFuc2ZlcnJlZCBieSBgZGVsZWdhdGVgLiBJZiB0aGVyZSBpc+BhbHJlYWR5IGFuIGFwcHJvdmFsIGluIHBsYWNlLCB0aGVuIHRoaXMgYWN0cyBhZGRpdGl2ZWx5LgCQRW1pdHMgYEFwcHJvdmVkVHJhbnNmZXJgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYDxjYW5jZWxfYXBwcm92YWwIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+ABc0SQFDYW5jZWwgYWxsIG9mIHNvbWUgYXNzZXQgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2ZlciBieSBhIHRoaXJkLXBhcnR5IGFjY291bnQuAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGVyZSBtdXN0IGJlIGFuIGFwcHJvdmFsIGluIHBsYWNlIGJldHdlZW4gc2lnbmVyIGFuZCxgZGVsZWdhdGVgLgBJAVVucmVzZXJ2ZXMgYW55IGRlcG9zaXQgcHJldmlvdXNseSByZXNlcnZlZCBieSBgYXBwcm92ZV90cmFuc2ZlcmAgZm9yIHRoZSBhcHByb3ZhbC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LgUBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCBkZWxlZ2F0ZWQgcGVybWlzc2lvbiB0byB0cmFuc2ZlciBhc3NldC4AlEVtaXRzIGBBcHByb3ZhbENhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgVGZvcmNlX2NhbmNlbF9hcHByb3ZhbAwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+ABg0SQFDYW5jZWwgYWxsIG9mIHNvbWUgYXNzZXQgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2ZlciBieSBhIHRoaXJkLXBhcnR5IGFjY291bnQuAEkBT3JpZ2luIG11c3QgYmUgZWl0aGVyIEZvcmNlT3JpZ2luIG9yIFNpZ25lZCBvcmlnaW4gd2l0aCB0aGUgc2lnbmVyIGJlaW5nIHRoZSBBZG1pbmhhY2NvdW50IG9mIHRoZSBhc3NldCBgaWRgLgBJAVVucmVzZXJ2ZXMgYW55IGRlcG9zaXQgcHJldmlvdXNseSByZXNlcnZlZCBieSBgYXBwcm92ZV90cmFuc2ZlcmAgZm9yIHRoZSBhcHByb3ZhbC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LgUBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCBkZWxlZ2F0ZWQgcGVybWlzc2lvbiB0byB0cmFuc2ZlciBhc3NldC4AlEVtaXRzIGBBcHByb3ZhbENhbmNlbGxlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgRHRyYW5zZmVyX2FwcHJvdmVkEAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLGRlc3RpbmF0aW9uAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnTAAShUOjpCYWxhbmNlABlITQFUcmFuc2ZlciBzb21lIGFzc2V0IGJhbGFuY2UgZnJvbSBhIHByZXZpb3VzbHkgZGVsZWdhdGVkIGFjY291bnQgdG8gc29tZSB0aGlyZC1wYXJ0eSBhY2NvdW50LgBJAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlcmUgbXVzdCBiZSBhbiBhcHByb3ZhbCBpbiBwbGFjZSBieSB0aGUgYG93bmVyYCB0byB0aGUcc2lnbmVyLgBZAUlmIHRoZSBlbnRpcmUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2ZlciBpcyB0cmFuc2ZlcnJlZCwgdGhlbiBhbnkgZGVwb3NpdCBwcmV2aW91c2x5tHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBpcyB1bnJlc2VydmVkLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuYQEtIGBvd25lcmA6IFRoZSBhY2NvdW50IHdoaWNoIHByZXZpb3VzbHkgYXBwcm92ZWQgZm9yIGEgdHJhbnNmZXIgb2YgYXQgbGVhc3QgYGFtb3VudGAgYW5kvGZyb20gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugd2lsbCBiZSB3aXRoZHJhd24uYQEtIGBkZXN0aW5hdGlvbmA6IFRoZSBhY2NvdW50IHRvIHdoaWNoIHRoZSBhc3NldCBiYWxhbmNlIG9mIGBhbW91bnRgIHdpbGwgYmUgdHJhbnNmZXJyZWQutC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgYXNzZXRzIHRvIHRyYW5zZmVyLgCcRW1pdHMgYFRyYW5zZmVycmVkQXBwcm92ZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYBR0b3VjaAQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgAaJMBDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3Igbm9uLXByb3ZpZGVyIGFzc2V0cy4AwEEgZGVwb3NpdCB3aWxsIGJlIHRha2VuIGZyb20gdGhlIHNpZ25lciBhY2NvdW50LgBdAS0gYG9yaWdpbmA6IE11c3QgYmUgU2lnbmVkOyB0aGUgc2lnbmVyIGFjY291bnQgbXVzdCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZm9yIGEgZGVwb3NpdDggIHRvIGJlIHRha2VuLgkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IHRvIGJlIGNyZWF0ZWQuAJhFbWl0cyBgVG91Y2hlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLhhyZWZ1bmQIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAShhbGxvd19idXJuyAEQYm9vbAAbNFkBUmV0dXJuIHRoZSBkZXBvc2l0IChpZiBhbnkpIG9mIGFuIGFzc2V0IGFjY291bnQgb3IgYSBjb25zdW1lciByZWZlcmVuY2UgKGlmIGFueSkgb2YgYW4gYWNjb3VudC4AaFRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQuAD0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHdoaWNoIHRoZSBjYWxsZXIgd291bGQgbGlrZSB0aGUgZGVwb3NpdCwgIHJlZnVuZGVkLl0BLSBgYWxsb3dfYnVybmA6IElmIGB0cnVlYCB0aGVuIGFzc2V0cyBtYXkgYmUgZGVzdHJveWVkIGluIG9yZGVyIHRvIGNvbXBsZXRlIHRoZSByZWZ1bmQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZtR0aGUgYXNzZXQgYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHNldF9taW5fYmFsYW5jZQgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABLG1pbl9iYWxhbmNlxAEoVDo6QmFsYW5jZQAcMJRTZXRzIHRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgYW4gYXNzZXQuACEBT25seSB3b3JrcyBpZiB0aGVyZSBhcmVuJ3QgYW55IGFjY291bnRzIHRoYXQgYXJlIGhvbGRpbmcgdGhlIGFzc2V0IG9yIGlm4HRoZSBuZXcgdmFsdWUgb2YgYG1pbl9iYWxhbmNlYCBpcyBsZXNzIHRoYW4gdGhlIG9sZCBvbmUuAPxPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgaGFzIHRvIGJlIHRoZSBPd25lciBvZiB0aGUsYXNzZXQgYGlkYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LsAtIGBtaW5fYmFsYW5jZWA6IFRoZSBuZXcgdmFsdWUgb2YgYG1pbl9iYWxhbmNlYC4A1EVtaXRzIGBBc3NldE1pbkJhbGFuY2VDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuLHRvdWNoX290aGVyCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHSyIQ3JlYXRlIGFuIGFzc2V0IGFjY291bnQgZm9yIGB3aG9gLgDAQSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc2lnbmVyIGFjY291bnQuAF0BLSBgb3JpZ2luYDogTXVzdCBiZSBTaWduZWQ7IHRoZSBzaWduZXIgYWNjb3VudCBtdXN0IGhhdmUgc3VmZmljaWVudCBmdW5kcyBmb3IgYSBkZXBvc2l0OCAgdG8gYmUgdGFrZW4uYQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZCwgdGhlIGFzc2V0IHN0YXR1cyBtdXN0KCAgYmUgbGl2ZS6MLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZC4AmEVtaXRzIGBUb3VjaGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuMHJlZnVuZF9vdGhlcggBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AB40XQFSZXR1cm4gdGhlIGRlcG9zaXQgKGlmIGFueSkgb2YgYSB0YXJnZXQgYXNzZXQgYWNjb3VudC4gVXNlZnVsIGlmIHlvdSBhcmUgdGhlIGRlcG9zaXRvci4AXQFUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBlaXRoZXIgdGhlIGFjY291bnQgb3duZXIsIGRlcG9zaXRvciwgb3IgYXNzZXQgYEFkbWluYC4gSW5hAW9yZGVyIHRvIGJ1cm4gYSBub24temVybyBiYWxhbmNlIG9mIHRoZSBhc3NldCwgdGhlIGNhbGxlciBtdXN0IGJlIHRoZSBhY2NvdW50IGFuZCBzaG91bGQ0dXNlIGByZWZ1bmRgLgAZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCBob2xkaW5nIGEgZGVwb3NpdC58LSBgd2hvYDogVGhlIGFjY291bnQgdG8gcmVmdW5kLgBJAUl0IHdpbGwgZmFpbCB3aXRoIGVpdGhlciBbYEVycm9yOjpDb250YWluc0hvbGRzYF0gb3IgW2BFcnJvcjo6Q29udGFpbnNGcmVlemVzYF0gaWbUdGhlIGFzc2V0IGFjY291bnQgY29udGFpbnMgaG9sZHMgb3IgZnJlZXplcyBpbiBwbGFjZS4AnEVtaXRzIGBSZWZ1bmRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLhRibG9jawgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AB8oWQFEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgb2YgYW4gYXNzZXQgYGlkYCB0byBhbmQgZnJvbSBhbiBhY2NvdW50IGB3aG9gLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuALgtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhY2NvdW50J3MgYXNzZXQulC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVuYmxvY2tlZC4AQEVtaXRzIGBCbG9ja2VkYC4AOFdlaWdodDogYE8oMSlgMHRyYW5zZmVyX2FsbAwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmXIARBib29sACBAHQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhc3NldCBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0PQFhbnkgaGVsZCwgZnJvemVuLCBvciBtaW5pbXVtIGJhbGFuY2UgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AGQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgaG9sZGluZyBhIGRlcG9zaXQuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYXNzZXQgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhc3NldCBhY2NvdW50IHRvIGJlIGtpbGxlZEUBICAoZmFsc2UpLCBvciB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgbWluaW11bSBiYWxhbmNlLCB3aGljaCB3aWxs6CAgZ3VhcmFudGVlIHRvIGtlZXAgdGhlIHNlbmRlciBhc3NldCBhY2NvdW50IGFsaXZlICh0cnVlKS4wc2V0X3Jlc2VydmVzCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEgcmVzZXJ2ZXMdAQHIQm91bmRlZFZlYzxUOjpSZXNlcnZlRGF0YSwgQ29uc3RVMzI8TUFYX1JFU0VSVkVTPj4AISTEU2V0cyB0aGUgdHJ1c3RlZCByZXNlcnZlIGluZm9ybWF0aW9uIG9mIGFuIGFzc2V0LgBVAU9yaWdpbiBtdXN0IGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4gVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQlAWBDcmVhdGVPcmlnaW5gIG9yIGJlIHRoZSBzaWduZWQgYG93bmVyYCBjb25maWd1cmVkIGR1cmluZyBhc3NldCBjcmVhdGlvbi4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LvAtIGByZXNlcnZlc2A6IFRoZSBmdWxsIGxpc3Qgb2YgdHJ1c3RlZCByZXNlcnZlcyBpbmZvcm1hdGlvbi4A1EVtaXRzIGBBc3NldE1pbkJhbGFuY2VDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuAQLHN0YWdpbmdfeGNtCHY1IGxvY2F0aW9uIExvY2F0aW9uAAAIARxwYXJlbnRzDAEIdTgAASBpbnRlcmlvcuQBJEp1bmN0aW9ucwAA5BAsc3RhZ2luZ194Y20IdjUkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBADoAUhBcmM8W0p1bmN0aW9uOyAxXT4AAQAIWDIEAAEBAUhBcmM8W0p1bmN0aW9uOyAyXT4AAgAIWDMEAAUBAUhBcmM8W0p1bmN0aW9uOyAzXT4AAwAIWDQEAAkBAUhBcmM8W0p1bmN0aW9uOyA0XT4ABAAIWDUEAA0BAUhBcmM8W0p1bmN0aW9uOyA1XT4ABQAIWDYEABEBAUhBcmM8W0p1bmN0aW9uOyA2XT4ABgAIWDcEABUBAUhBcmM8W0p1bmN0aW9uOyA3XT4ABwAIWDgEABkBAUhBcmM8W0p1bmN0aW9uOyA4XT4ACAAA6AAAAwEAAADsAOwQLHN0YWdpbmdfeGNtCHY1IGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAYAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya/ABRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmvwAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4tAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmvwAURPcHRpb248TmV0d29ya0lkPgABDGtleRwBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAMAQh1OAAEADBHZW5lcmFsSW5kZXgEAMABEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAwBCHU4AAEQZGF0YQgBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZPgBGEJvZHlJZAABEHBhcnT8ASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAPQBJE5ldHdvcmtJZAAJAADwBBhPcHRpb24EBFQB9AEIEE5vbmUAAAAQU29tZQQA9AAAAQAA9BAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24kTmV0d29ya0lkAAEgJEJ5R2VuZXNpcwQACAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyKAEMdTY0AAEoYmxvY2tfaGFzaAgBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADACBFdGhlcmV1bQQBIGNoYWluX2lktAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAA+BAMeGNtCHYzIGp1bmN0aW9uGEJvZHlJZAABKBBVbml0AAAAHE1vbmlrZXIEAHABHFt1ODsgNF0AAQAUSW5kZXgEAGABDHUzMgACACRFeGVjdXRpdmUAAwAkVGVjaG5pY2FsAAQALExlZ2lzbGF0aXZlAAUAIEp1ZGljaWFsAAYAHERlZmVuc2UABwA4QWRtaW5pc3RyYXRpb24ACAAgVHJlYXN1cnkACQAA/BAMeGNtCHYzIGp1bmN0aW9uIEJvZHlQYXJ0AAEUFFZvaWNlAAAAHE1lbWJlcnMEARRjb3VudGABDHUzMgABACBGcmFjdGlvbggBDG5vbWABDHUzMgABFGRlbm9tYAEMdTMyAAIAREF0TGVhc3RQcm9wb3J0aW9uCAEMbm9tYAEMdTMyAAEUZGVub21gAQx1MzIAAwBITW9yZVRoYW5Qcm9wb3J0aW9uCAEMbm9tYAEMdTMyAAEUZGVub21gAQx1MzIABAAAAQEAAAMCAAAA7AAFAQAAAwMAAADsAAkBAAADBAAAAOwADQEAAAMFAAAA7AARAQAAAwYAAADsABUBAAADBwAAAOwAGQEAAAMIAAAA7AAdAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASEBBFMAAAQAJQEBGFZlYzxUPgAAIQEMNGFzc2V0c19jb21tb25gbG9jYWxfYW5kX2ZvcmVpZ25fYXNzZXRzXEZvcmVpZ25Bc3NldFJlc2VydmVEYXRhAAAIARxyZXNlcnZl4AEgTG9jYXRpb24AATB0ZWxlcG9ydGFibGXIARBib29sAAAlAQAAAiEBACkBDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQQQ2FsbAQEVAABDBhjcmVhdGUIAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRlLQEBJEZpeGVkVTEyOAAAEA0BSW5pdGlhbGl6ZSBhIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYdXBkYXRlCAEoYXNzZXRfa2luZOABREJveDxUOjpBc3NldEtpbmQ+AAEQcmF0ZS0BASRGaXhlZFUxMjgAARAFAVVwZGF0ZSB0aGUgY29udmVyc2lvbiByYXRlIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQuADQjIyBDb21wbGV4aXR5GC0gTygxKRhyZW1vdmUEAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AAhAlAVJlbW92ZSBhbiBleGlzdGluZyBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgZm9yIHRoZSBnaXZlbiBhc3NldC4ANCMjIENvbXBsZXhpdHkYLSBPKDEpBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLi0BDDRzcF9hcml0aG1ldGljLGZpeGVkX3BvaW50JEZpeGVkVTEyOAAABADEARB1MTI4AAAxAQxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQQQ2FsbAQEVAABJERzZXRfaW52dWxuZXJhYmxlcwQBDG5ld8wBRFZlYzxUOjpBY2NvdW50SWQ+AAA0MQFTZXQgdGhlIGxpc3Qgb2YgaW52dWxuZXJhYmxlIChmaXhlZCkgY29sbGF0b3JzLiBUaGVzZSBjb2xsYXRvcnMgbXVzdCBkbyBzb21l0HByZXBhcmF0aW9uLCBuYW1lbHkgdG8gaGF2ZSByZWdpc3RlcmVkIHNlc3Npb24ga2V5cy4AWQFUaGUgY2FsbCB3aWxsIHJlbW92ZSBhbnkgYWNjb3VudHMgdGhhdCBoYXZlIG5vdCByZWdpc3RlcmVkIGtleXMgZnJvbSB0aGUgc2V0LiBUaGF0IGlzLF0BaXQgaXMgbm9uLWF0b21pYzsgdGhlIGNhbGxlciBhY2NlcHRzIGFsbCBgQWNjb3VudElkYHMgcGFzc2VkIGluIGBuZXdgIF9pbmRpdmlkdWFsbHlfIGFzMQFhY2NlcHRhYmxlIEludnVsbmVyYWJsZXMsIGFuZCBpcyBub3QgcHJvcG9zaW5nIGEgX3NldF8gb2YgbmV3IEludnVsbmVyYWJsZXMuAFkBVGhpcyBjYWxsIGRvZXMgbm90IG1haW50YWluIG11dHVhbCBleGNsdXNpdml0eSBvZiBgSW52dWxuZXJhYmxlc2AgYW5kIGBDYW5kaWRhdGVzYC4gSXRhAWlzIHJlY29tbWVuZGVkIHRvIHVzZSBhIGJhdGNoIG9mIGBhZGRfaW52dWxuZXJhYmxlYCBhbmQgYHJlbW92ZV9pbnZ1bG5lcmFibGVgIGluc3RlYWQuIEFRAWBiYXRjaF9hbGxgIGNhbiBhbHNvIGJlIHVzZWQgdG8gZW5mb3JjZSBhdG9taWNpdHkuIElmIGFueSBjYW5kaWRhdGVzIGFyZSBpbmNsdWRlZCBpbk0BYG5ld2AsIHRoZXkgc2hvdWxkIGJlIHJlbW92ZWQgd2l0aCBgcmVtb3ZlX2ludnVsbmVyYWJsZV9jYW5kaWRhdGVgIGFmdGVyIGV4ZWN1dGlvbi4AlE11c3QgYmUgY2FsbGVkIGJ5IHRoZSBgVXBkYXRlT3JpZ2luYC5Yc2V0X2Rlc2lyZWRfY2FuZGlkYXRlcwQBDG1heDgBDHUzMgABFFUBU2V0IHRoZSBpZGVhbCBudW1iZXIgb2Ygbm9uLWludnVsbmVyYWJsZSBjb2xsYXRvcnMuIElmIGxvd2VyaW5nIHRoaXMgbnVtYmVyLCB0aGVuIHRoZWEBbnVtYmVyIG9mIHJ1bm5pbmcgY29sbGF0b3JzIGNvdWxkIGJlIGhpZ2hlciB0aGFuIHRoaXMgZmlndXJlLiBBc2lkZSBmcm9tIHRoYXQgZWRnZSBjYXNlLDUBdGhlcmUgc2hvdWxkIGJlIG5vIG90aGVyIHdheSB0byBoYXZlIG1vcmUgY2FuZGlkYXRlcyB0aGFuIHRoZSBkZXNpcmVkIG51bWJlci4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5Ic2V0X2NhbmRpZGFjeV9ib25kBAEQYm9uZMQBMEJhbGFuY2VPZjxUPgACHHhTZXQgdGhlIGNhbmRpZGFjeSBib25kIGFtb3VudC4AUQFJZiB0aGUgY2FuZGlkYWN5IGJvbmQgaXMgaW5jcmVhc2VkIGJ5IHRoaXMgY2FsbCwgYWxsIGN1cnJlbnQgY2FuZGlkYXRlcyB3aGljaCBoYXZlIGFNAWRlcG9zaXQgbG93ZXIgdGhhbiB0aGUgbmV3IGJvbmQgd2lsbCBiZSBraWNrZWQgZnJvbSB0aGUgbGlzdCBhbmQgZ2V0IHRoZWlyIGRlcG9zaXRzFGJhY2suANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuVHJlZ2lzdGVyX2FzX2NhbmRpZGF0ZQADEEEBUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGFzIGEgY29sbGF0b3IgY2FuZGlkYXRlLiBUaGUgYWNjb3VudCBtdXN0IChhKSBhbHJlYWR5IGhhdmUdAXJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzIGFuZCAoYikgYmUgYWJsZSB0byByZXNlcnZlIHRoZSBgQ2FuZGlkYWN5Qm9uZGAuANxUaGlzIGNhbGwgaXMgbm90IGF2YWlsYWJsZSB0byBgSW52dWxuZXJhYmxlYCBjb2xsYXRvcnMuMGxlYXZlX2ludGVudAAEFFUBRGVyZWdpc3RlciBgb3JpZ2luYCBhcyBhIGNvbGxhdG9yIGNhbmRpZGF0ZS4gTm90ZSB0aGF0IHRoZSBjb2xsYXRvciBjYW4gb25seSBsZWF2ZSBvbg0Bc2Vzc2lvbiBjaGFuZ2UuIFRoZSBgQ2FuZGlkYWN5Qm9uZGAgd2lsbCBiZSB1bnJlc2VydmVkIGltbWVkaWF0ZWx5LgAZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBjYW5kaWRhdGVzIHdvdWxkIGRyb3AgYmVsb3dcYE1pbkVsaWdpYmxlQ29sbGF0b3JzYC5AYWRkX2ludnVsbmVyYWJsZQQBDHdobwQBMFQ6OkFjY291bnRJZAAFEEUBQWRkIGEgbmV3IGFjY291bnQgYHdob2AgdG8gdGhlIGxpc3Qgb2YgYEludnVsbmVyYWJsZXNgIGNvbGxhdG9ycy4gYHdob2AgbXVzdCBoYXZlHQFyZWdpc3RlcmVkIHNlc3Npb24ga2V5cy4gSWYgYHdob2AgaXMgYSBjYW5kaWRhdGUsIHRoZXkgd2lsbCBiZSByZW1vdmVkLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLkxyZW1vdmVfaW52dWxuZXJhYmxlBAEMd2hvBAEwVDo6QWNjb3VudElkAAYQYQFSZW1vdmUgYW4gYWNjb3VudCBgd2hvYCBmcm9tIHRoZSBsaXN0IG9mIGBJbnZ1bG5lcmFibGVzYCBjb2xsYXRvcnMuIGBJbnZ1bG5lcmFibGVzYCBtdXN0KGJlIHNvcnRlZC4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC4sdXBkYXRlX2JvbmQEASxuZXdfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAHHF0BVXBkYXRlIHRoZSBjYW5kaWRhY3kgYm9uZCBvZiBjb2xsYXRvciBjYW5kaWRhdGUgYG9yaWdpbmAgdG8gYSBuZXcgYW1vdW50IGBuZXdfZGVwb3NpdGAuAEEBU2V0dGluZyBhIGBuZXdfZGVwb3NpdGAgdGhhdCBpcyBsb3dlciB0aGFuIHRoZSBjdXJyZW50IGRlcG9zaXQgd2hpbGUgYG9yaWdpbmAgaXPgb2NjdXB5aW5nIGEgdG9wLWBEZXNpcmVkQ2FuZGlkYXRlc2Agc2xvdCBpcyBub3QgYWxsb3dlZC4AWQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIGBvcmlnaW5gIGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSwgdGhlIHVwZGF0ZWQgYm9uZCBpcyBsb3dlchkBdGhhbiB0aGUgbWluaW11bSBjYW5kaWRhY3kgYm9uZCwgYW5kL29yIHRoZSBhbW91bnQgY2Fubm90IGJlIHJlc2VydmVkLkx0YWtlX2NhbmRpZGF0ZV9zbG90CAEcZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgABGHRhcmdldAQBMFQ6OkFjY291bnRJZAAIHE0BVGhlIGNhbGxlciBgb3JpZ2luYCByZXBsYWNlcyBhIGNhbmRpZGF0ZSBgdGFyZ2V0YCBpbiB0aGUgY29sbGF0b3IgY2FuZGlkYXRlIGxpc3QgYnlVAXJlc2VydmluZyBgZGVwb3NpdGAuIFRoZSBhbW91bnQgYGRlcG9zaXRgIHJlc2VydmVkIGJ5IHRoZSBjYWxsZXIgbXVzdCBiZSBncmVhdGVyIHRoYW7gdGhlIGV4aXN0aW5nIGJvbmQgb2YgdGhlIHRhcmdldCBpdCBpcyB0cnlpbmcgdG8gcmVwbGFjZS4AWQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIHRoZSBjYWxsZXIgaXMgYWxyZWFkeSBhIGNvbGxhdG9yIGNhbmRpZGF0ZSBvciBpbnZ1bG5lcmFibGUsIHRoZVUBY2FsbGVyIGRvZXMgbm90IGhhdmUgcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMsIHRoZSB0YXJnZXQgaXMgbm90IGEgY29sbGF0b3IgY2FuZGlkYXRlLLxhbmQvb3IgdGhlIGBkZXBvc2l0YCBhbW91bnQgY2Fubm90IGJlIHJlc2VydmVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41AQw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0EENhbGwEBFQAAQggc2V0X2tleXMIARBrZXlzOQEBHFQ6OktleXMAARRwcm9vZhgBHFZlYzx1OD4AACzkU2V0cyB0aGUgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlciB0byBga2V5c2AuAB0BQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7AVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uAAEBLSBgb3JpZ2luYDogVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2lnbmVkLlUBLSBga2V5c2A6IFRoZSBuZXcgc2Vzc2lvbiBrZXlzIHRvIHNldC4gVGhlc2UgYXJlIHRoZSBwdWJsaWMga2V5cyBvZiBhbGwgc2Vzc2lvbnMga2V5c1wgIHNldHVwIGluIHRoZSBydW50aW1lLkEBLSBgcHJvb2ZgOiBUaGUgcHJvb2YgdGhhdCBgb3JpZ2luYCBoYXMgYWNjZXNzIHRvIHRoZSBwcml2YXRlIGtleXMgb2YgYGtleXNgLiBTZWVNASAgW2BpbXBsX29wYXF1ZV9rZXlzYF0oc3BfcnVudGltZTo6aW1wbF9vcGFxdWVfa2V5cykgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlPCAgcHJvb2YgZm9ybWF0LihwdXJnZV9rZXlzAAEgyFJlbW92ZXMgYW55IHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIuAMBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgZWl0aGVyIGJlXQFjb252ZXJ0aWJsZSB0byBhIHZhbGlkYXRvciBJRCB1c2luZyB0aGUgY2hhaW4ncyB0eXBpY2FsIGFkZHJlc3Npbmcgc3lzdGVtICh0aGlzIHVzdWFsbHlRAW1lYW5zIGJlaW5nIGEgY29udHJvbGxlciBhY2NvdW50KSBvciBkaXJlY3RseSBjb252ZXJ0aWJsZSBpbnRvIGEgdmFsaWRhdG9yIElEICh3aGljaJR1c3VhbGx5IG1lYW5zIGJlaW5nIGEgc3Rhc2ggYWNjb3VudCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjkBCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lLFNlc3Npb25LZXlzAAAEARBhdXJhPQEBxDxBdXJhIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAAD0BEERzcF9jb25zZW5zdXNfYXVyYRxzcjI1NTE5LGFwcF9zcjI1NTE5GFB1YmxpYwAABAAIATxzcjI1NTE5OjpQdWJsaWMAAEEBDGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBBDYWxsBARUAAEUVHN1c3BlbmRfeGNtX2V4ZWN1dGlvbgABDEkBU3VzcGVuZHMgYWxsIFhDTSBleGVjdXRpb25zIGZvciB0aGUgWENNUCBxdWV1ZSwgcmVnYXJkbGVzcyBvZiB0aGUgc2VuZGVyJ3Mgb3JpZ2luLgCkLSBgb3JpZ2luYDogTXVzdCBwYXNzIGBDb250cm9sbGVyT3JpZ2luYC5QcmVzdW1lX3hjbV9leGVjdXRpb24AAhS4UmVzdW1lcyBhbGwgWENNIGV4ZWN1dGlvbnMgZm9yIHRoZSBYQ01QIHF1ZXVlLgA9AU5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgY2hhbmdlIHRoZSBzdGF0dXMgb2YgdGhlIGluL291dCBib3VuZCBjaGFubmVscy4ApC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgQ29udHJvbGxlck9yaWdpbmAuYHVwZGF0ZV9zdXNwZW5kX3RocmVzaG9sZAQBDG5ldzgBDHUzMgADFEkBT3ZlcndyaXRlcyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIG11c3QgYmUgaW4gdGhlIHF1ZXVlIGZvciB0aGUgb3RoZXIgc2lkZSB0byBiZXh0b2xkIHRvIHN1c3BlbmQgdGhlaXIgc2VuZGluZy4AdC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgUm9vdGAu6C0gYG5ld2A6IERlc2lyZWQgdmFsdWUgZm9yIGBRdWV1ZUNvbmZpZ0RhdGEuc3VzcGVuZF92YWx1ZWBUdXBkYXRlX2Ryb3BfdGhyZXNob2xkBAEMbmV3OAEMdTMyAAQURQFPdmVyd3JpdGVzIHRoZSBudW1iZXIgb2YgcGFnZXMgd2hpY2ggbXVzdCBiZSBpbiB0aGUgcXVldWUgYWZ0ZXIgd2hpY2ggd2UgZHJvcCBhbnmIZnVydGhlciBtZXNzYWdlcyBmcm9tIHRoZSBjaGFubmVsLgB0LSBgb3JpZ2luYDogTXVzdCBwYXNzIGBSb290YC7sLSBgbmV3YDogRGVzaXJlZCB2YWx1ZSBmb3IgYFF1ZXVlQ29uZmlnRGF0YS5kcm9wX3RocmVzaG9sZGBcdXBkYXRlX3Jlc3VtZV90aHJlc2hvbGQEAQxuZXc4AQx1MzIABRRNAU92ZXJ3cml0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyB3aGljaCB0aGUgcXVldWUgbXVzdCBiZSByZWR1Y2VkIHRvIGJlZm9yZSBpdCBzaWduYWxzAQF0aGF0IG1lc3NhZ2Ugc2VuZGluZyBtYXkgcmVjb21tZW5jZSBhZnRlciBpdCBoYXMgYmVlbiBzdXNwZW5kZWQuAHQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYFJvb3RgLvQtIGBuZXdgOiBEZXNpcmVkIHZhbHVlIGZvciBgUXVldWVDb25maWdEYXRhLnJlc3VtZV90aHJlc2hvbGRgBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkUBDChwYWxsZXRfeGNtGHBhbGxldBBDYWxsBARUAAFEEHNlbmQIARBkZXN0SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxtZXNzYWdllQEBVEJveDxWZXJzaW9uZWRYY208KCk+PgAAADx0ZWxlcG9ydF9hc3NldHMQARBkZXN0SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeUkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRz2QIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW04AQx1MzIAAUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAB0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZWggIGZlZSBvbiB0aGUgYGRlc3RgIGNoYWluLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLlxyZXNlcnZlX3RyYW5zZmVyX2Fzc2V0cxABEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgACeF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWwseGRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLgA9AWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gYW5kIG1heSBub3QgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC5NASAtIGBhc3NldHNgIGhhdmUgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5VASAtIGBhc3NldHNgIGhhdmUgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLmEBIC0gYGFzc2V0c2AgaGF2ZSByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZWEBICAgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YPQgICB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuAD0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuHGV4ZWN1dGUIARxtZXNzYWdl3QIBtEJveDxWZXJzaW9uZWRYY208PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+PgABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAMg0EV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UgZnJvbSBhIGxvY2FsLCBzaWduZWQsIG9yaWdpbi4ATQFBbiBldmVudCBpcyBkZXBvc2l0ZWQgaW5kaWNhdGluZyB3aGV0aGVyIGBtc2dgIGNvdWxkIGJlIGV4ZWN1dGVkIGNvbXBsZXRlbHkgb3Igb25seShwYXJ0aWFsbHkuAF0BTm8gbW9yZSB0aGFuIGBtYXhfd2VpZ2h0YCB3aWxsIGJlIHVzZWQgaW4gaXRzIGF0dGVtcHRlZCBleGVjdXRpb24uIElmIHRoaXMgaXMgbGVzcyB0aGFuQQF0aGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IHRoYXQgdGhlIG1lc3NhZ2UgY291bGQgdGFrZSB0byBiZSBleGVjdXRlZCwgdGhlbiBub3xleGVjdXRpb24gYXR0ZW1wdCB3aWxsIGJlIG1hZGUuRGZvcmNlX3hjbV92ZXJzaW9uCAEgbG9jYXRpb27gATRCb3g8TG9jYXRpb24+AAEcdmVyc2lvbjgBKFhjbVZlcnNpb24ABBhJAUV4dG9sbCB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBjYW4gYmUgY29tbXVuaWNhdGVkIHdpdGggdGhyb3VnaCBhIHBhcnRpY3VsYXI8dmVyc2lvbiBvZiBYQ00uANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u2C0gYGxvY2F0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLhEBLSBgeGNtX3ZlcnNpb25gOiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgWENNIHRoYXQgYGxvY2F0aW9uYCBzdXBwb3J0cy5kZm9yY2VfZGVmYXVsdF94Y21fdmVyc2lvbgQBRG1heWJlX3hjbV92ZXJzaW9uCQMBSE9wdGlvbjxYY21WZXJzaW9uPgAFFFkBU2V0IGEgc2FmZSBYQ00gdmVyc2lvbiAodGhlIHZlcnNpb24gdGhhdCBYQ00gc2hvdWxkIGJlIGVuY29kZWQgd2l0aCBpZiB0aGUgbW9zdCByZWNlbnS0dmVyc2lvbiBhIGRlc3RpbmF0aW9uIGNhbiBhY2NlcHQgaXMgdW5rbm93bikuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uOQEtIGBtYXliZV94Y21fdmVyc2lvbmA6IFRoZSBkZWZhdWx0IFhDTSBlbmNvZGluZyB2ZXJzaW9uLCBvciBgTm9uZWAgdG8gZGlzYWJsZS54Zm9yY2Vfc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb25JAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAGEDkBQXNrIGEgbG9jYXRpb24gdG8gbm90aWZ5IHVzIHJlZ2FyZGluZyB0aGVpciBYQ00gdmVyc2lvbiBhbmQgYW55IGNoYW5nZXMgdG8gaXQuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uWQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBzaG91bGQgc3Vic2NyaWJlIGZvciBYQ00gdmVyc2lvbiBub3RpZmljYXRpb25zLoBmb3JjZV91bnN1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9uSQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABxhJAVJlcXVpcmUgdGhhdCBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gc2hvdWxkIG5vIGxvbmdlciBub3RpZnkgdXMgcmVnYXJkaW5nIGFueSBYQ01AdmVyc2lvbiBjaGFuZ2VzLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLj0BLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2UgYXJlIGN1cnJlbnRseSBzdWJzY3JpYmVkIGZvciBYQ00gdmVyc2lvbqggIG5vdGlmaWNhdGlvbnMgd2hpY2ggd2Ugbm8gbG9uZ2VyIGRlc2lyZS58bGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0cxQBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAAIeF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWwseGRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLgA9AWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gYW5kIG1heSBub3QgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC5NASAtIGBhc3NldHNgIGhhdmUgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5VASAtIGBhc3NldHNgIGhhdmUgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLmEBIC0gYGFzc2V0c2AgaGF2ZSByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZWEBICAgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YPQgICB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLlxsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0cxQBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAAJSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZWggIGZlZSBvbiB0aGUgYGRlc3RgIGNoYWluLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuQGZvcmNlX3N1c3BlbnNpb24EASRzdXNwZW5kZWTIARBib29sAAoQ9FNldCBvciB1bnNldCB0aGUgZ2xvYmFsIHN1c3BlbnNpb24gc3RhdGUgb2YgdGhlIFhDTSBleGVjdXRvci4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7QLSBgc3VzcGVuZGVkYDogYHRydWVgIHRvIHN1c3BlbmQsIGBmYWxzZWAgdG8gcmVzdW1lLjx0cmFuc2Zlcl9hc3NldHMUARBkZXN0SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeUkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRz2QIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW04AQx1MzIAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAC4RdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLNBkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZSwgb3IgdGhyb3VnaCB0ZWxlcG9ydHMuAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mNQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gIChoZW5jZSByZWZlcnJlZCB0byBhcyBgZmVlc2ApLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvckEBYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodCBpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGXcb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgBhAWBhc3NldHNgIChleGNsdWRpbmcgYGZlZXNgKSBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG90aGVyd2lzZSBiZSB0ZWxlcG9ydGFibGWwdG8gYGRlc3RgLCBubyBsaW1pdGF0aW9ucyBpbXBvc2VkIG9uIGBmZWVzYC5NASAtIGZvciBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb24gY2hhaW4gYW5kTQEgICBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0b0QgICBgYmVuZWZpY2lhcnlgLmEBIC0gZm9yIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvIGBkZXN0YCBjaGFpblkBICAgdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZCBkZXBvc2l0IHRoZW1QICAgdG8gYGJlbmVmaWNpYXJ5YC5dASAtIGZvciByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZSByZXNlcnZlc10BICAgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YCB0byBtaW501CAgIGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuUQEgLSBmb3IgdGVsZXBvcnRzOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBYQ00gdG8gYGRlc3RgIGNoYWluIHRvIG1pbnQvdGVsZXBvcnSwICAgYXNzZXRzIGFuZCBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLi0BLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBYMihQYXJlbnQsVQEgIFBhcmFjaGFpbiguLikpYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFgxKFBhcmFjaGFpbiguLikpYCB0byBzZW5kaCAgZnJvbSByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuMGNsYWltX2Fzc2V0cwgBGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ADBhVAUNsYWltcyBhc3NldHMgdHJhcHBlZCBvbiB0aGlzIHBhbGxldCBiZWNhdXNlIG9mIGxlZnRvdmVyIGFzc2V0cyBkdXJpbmcgWENNIGV4ZWN1dGlvbi4ArC0gYG9yaWdpbmA6IEFueW9uZSBjYW4gY2FsbCB0aGlzIGV4dHJpbnNpYy5dAS0gYGFzc2V0c2A6IFRoZSBleGFjdCBhc3NldHMgdGhhdCB3ZXJlIHRyYXBwZWQuIFVzZSB0aGUgdmVyc2lvbiB0byBzcGVjaWZ5IHdoYXQgdmVyc2lvbph3YXMgdGhlIGxhdGVzdCB3aGVuIHRoZXkgd2VyZSB0cmFwcGVkLkUBLSBgYmVuZWZpY2lhcnlgOiBUaGUgbG9jYXRpb24vYWNjb3VudCB3aGVyZSB0aGUgY2xhaW1lZCBhc3NldHMgd2lsbCBiZSBkZXBvc2l0ZWQujHRyYW5zZmVyX2Fzc2V0c191c2luZ190eXBlX2FuZF90aGVuHAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRz2QIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAFQYXNzZXRzX3RyYW5zZmVyX3R5cGUNAwFEQm94PFRyYW5zZmVyVHlwZT4AAThyZW1vdGVfZmVlc19pZBEDAVRCb3g8VmVyc2lvbmVkQXNzZXRJZD4AAUhmZWVzX3RyYW5zZmVyX3R5cGUNAwFEQm94PFRyYW5zZmVyVHlwZT4AAUhjdXN0b21feGNtX29uX2Rlc3SVAQFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AA3AVQFUcmFuc2ZlciBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHVzaW5nIGV4cGxpY2l0IHRyYW5zZmVyaHR5cGVzIGZvciBhc3NldHMgYW5kIGZlZXMuAFkBYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBvciBtYXkgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC4gQ2FsbGVyIG11c3TscHJvdmlkZSB0aGUgYGFzc2V0c190cmFuc2Zlcl90eXBlYCB0byBiZSB1c2VkIGZvciBgYXNzZXRzYDpRASAtIGBUcmFuc2ZlclR5cGU6OkxvY2FsUmVzZXJ2ZWA6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuWQEgLSBgVHJhbnNmZXJUeXBlOjpEZXN0aW5hdGlvblJlc2VydmVgOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuWQEgLSBgVHJhbnNmZXJUeXBlOjpSZW1vdGVSZXNlcnZlKHJlc2VydmUpYDogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIGByZXNlcnZlYGEBICAgY2hhaW4gdG8gbW92ZSByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlclUBICAgWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuIFR5cGljYWxseZQgICB0aGUgcmVtb3RlIGByZXNlcnZlYCBpcyBBc3NldCBIdWIuRQEgLSBgVHJhbnNmZXJUeXBlOjpUZWxlcG9ydGA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG/oICAgbWludC90ZWxlcG9ydCBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgBVAU9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiwgYXMgd2VsbCBhcyBhbnkgaW50ZXJtZWRpYXJ5IGhvcHMsIGBCdXlFeGVjdXRpb25gIGlzIHVzZWQgdG8hAWJ1eSBleGVjdXRpb24gdXNpbmcgdHJhbnNmZXJyZWQgYGFzc2V0c2AgaWRlbnRpZmllZCBieSBgcmVtb3RlX2ZlZXNfaWRgLlkBTWFrZSBzdXJlIGVub3VnaCBvZiB0aGUgc3BlY2lmaWVkIGByZW1vdGVfZmVlc19pZGAgYXNzZXQgaXMgaW5jbHVkZWQgaW4gdGhlIGdpdmVuIGxpc3RhAW9mIGBhc3NldHNgLiBgcmVtb3RlX2ZlZXNfaWRgIHNob3VsZCBiZSBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAEUBYHJlbW90ZV9mZWVzX2lkYCBtYXkgdXNlIGRpZmZlcmVudCB0cmFuc2ZlciB0eXBlIHRoYW4gcmVzdCBvZiBgYXNzZXRzYCBhbmQgY2FuIGJlnHNwZWNpZmllZCB0aHJvdWdoIGBmZWVzX3RyYW5zZmVyX3R5cGVgLgBhAVRoZSBjYWxsZXIgbmVlZHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBoYXBwZW4gdG8gdGhlIHRyYW5zZmVycmVkIGFzc2V0cyBvbmNlIHRoZXkgcmVhY2hBAXRoZSBgZGVzdGAgY2hhaW4uIFRoaXMgaXMgZG9uZSB0aHJvdWdoIHRoZSBgY3VzdG9tX3hjbV9vbl9kZXN0YCBwYXJhbWV0ZXIsIHdoaWNo/GNvbnRhaW5zIHRoZSBpbnN0cnVjdGlvbnMgdG8gZXhlY3V0ZSBvbiBgZGVzdGAgYXMgYSBmaW5hbCBzdGVwLnwgIFRoaXMgaXMgdXN1YWxseSBhcyBzaW1wbGUgYXM6UQEgIGBYY20odmVjIVtEZXBvc2l0QXNzZXQgeyBhc3NldHM6IFdpbGQoQWxsQ291bnRlZChhc3NldHMubGVuKCkpKSwgYmVuZWZpY2lhcnkgfV0pYCwxASAgYnV0IGNvdWxkIGJlIHNvbWV0aGluZyBtb3JlIGV4b3RpYyBsaWtlIHNlbmRpbmcgdGhlIGBhc3NldHNgIGV2ZW4gZnVydGhlci4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbT0BICByZWxheSB0byBwYXJhY2hhaW4sIG9yIGAocGFyZW50czogMiwgKEdsb2JhbENvbnNlbnN1cyguLiksIC4uKSlgIHRvIHNlbmQgZnJvbfQgIHBhcmFjaGFpbiBhY3Jvc3MgYSBicmlkZ2UgdG8gYW5vdGhlciBlY29zeXN0ZW0gZGVzdGluYXRpb24uWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLj0BLSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgOiBUaGUgWENNIGBUcmFuc2ZlclR5cGVgIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGBhc3NldHNgLiEBLSBgcmVtb3RlX2ZlZXNfaWRgOiBPbmUgb2YgdGhlIGluY2x1ZGVkIGBhc3NldHNgIHRvIGJlIHVzZWQgdG8gcGF5IGZlZXMuSQEtIGBmZWVzX3RyYW5zZmVyX3R5cGVgOiBUaGUgWENNIGBUcmFuc2ZlclR5cGVgIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGBmZWVzYCBhc3NldHMuWQEtIGBjdXN0b21feGNtX29uX2Rlc3RgOiBUaGUgWENNIHRvIGJlIGV4ZWN1dGVkIG9uIGBkZXN0YCBjaGFpbiBhcyB0aGUgbGFzdCBzdGVwIG9mIHRoZVkBICB0cmFuc2Zlciwgd2hpY2ggYWxzbyBkZXRlcm1pbmVzIHdoYXQgaGFwcGVucyB0byB0aGUgYXNzZXRzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLlBhZGRfYXV0aG9yaXplZF9hbGlhcwgBHGFsaWFzZXJJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHGV4cGlyZXMVAwEsT3B0aW9uPHU2ND4ADixdAUF1dGhvcml6ZSBhbm90aGVyIGBhbGlhc2VyYCBsb2NhdGlvbiB0byBhbGlhcyBpbnRvIHRoZSBsb2NhbCBgb3JpZ2luYCBtYWtpbmcgdGhpcyBjYWxsLikBVGhlIGBhbGlhc2VyYCBpcyBvbmx5IGF1dGhvcml6ZWQgdW50aWwgdGhlIHByb3ZpZGVkIGBleHBpcnlgIGJsb2NrIG51bWJlci5JAVRoZSBjYWxsIGNhbiBhbHNvIGJlIHVzZWQgZm9yIGEgcHJldmlvdXNseSBhdXRob3JpemVkIGFsaWFzIGluIG9yZGVyIHRvIHVwZGF0ZSBpdHNYYGV4cGlyeWAgYmxvY2sgbnVtYmVyLgBRAVVzdWFsbHkgdXNlZnVsIHRvIGFsbG93IHlvdXIgbG9jYWwgYWNjb3VudCB0byBiZSBhbGlhc2VkIGludG8gZnJvbSBhIHJlbW90ZSBsb2NhdGlvbvRhbHNvIHVuZGVyIHlvdXIgY29udHJvbCAobGlrZSB5b3VyIGFjY291bnQgb24gYW5vdGhlciBjaGFpbikuAFEBV0FSTklORzogbWFrZSBzdXJlIHRoZSBjYWxsZXIgYG9yaWdpbmAgKHlvdSkgdHJ1c3RzIHRoZSBgYWxpYXNlcmAgbG9jYXRpb24gdG8gYWN0IGluWQF0aGVpci95b3VyIG5hbWUuIE9uY2UgYXV0aG9yaXplZCB1c2luZyB0aGlzIGNhbGwsIHRoZSBgYWxpYXNlcmAgY2FuIGZyZWVseSBpbXBlcnNvbmF0ZdRgb3JpZ2luYCBpbiBYQ00gcHJvZ3JhbXMgZXhlY3V0ZWQgb24gdGhlIGxvY2FsIGNoYWluLlxyZW1vdmVfYXV0aG9yaXplZF9hbGlhcwQBHGFsaWFzZXJJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAPCF0BUmVtb3ZlIGEgcHJldmlvdXNseSBhdXRob3JpemVkIGBhbGlhc2VyYCBmcm9tIHRoZSBsaXN0IG9mIGxvY2F0aW9ucyB0aGF0IGNhbiBhbGlhcyBpbnRvkHRoZSBsb2NhbCBgb3JpZ2luYCBtYWtpbmcgdGhpcyBjYWxsLnRyZW1vdmVfYWxsX2F1dGhvcml6ZWRfYWxpYXNlcwAQCEkBUmVtb3ZlIGFsbCBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYGFsaWFzZXJgcyB0aGF0IGNhbiBhbGlhcyBpbnRvIHRoZSBsb2NhbCBgb3JpZ2luYERtYWtpbmcgdGhpcyBjYWxsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5JAQgMeGNtRFZlcnNpb25lZExvY2F0aW9uAAEMCFYzBABNAQFEdjM6Ok11bHRpTG9jYXRpb24AAwAIVjQEAGEBATB2NDo6TG9jYXRpb24ABAAIVjUEAOABMHY1OjpMb2NhdGlvbgAFAABNARAsc3RhZ2luZ194Y20IdjM0bXVsdGlsb2NhdGlvbjRNdWx0aUxvY2F0aW9uAAAIARxwYXJlbnRzDAEIdTgAASBpbnRlcmlvclEBASRKdW5jdGlvbnMAAFEBEAx4Y20IdjMkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBABVAQEgSnVuY3Rpb24AAQAIWDIIAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAAIACFgzDABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAAMACFg0EABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABAAIWDUUAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAAUACFg2GABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAAYACFg3HABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABwAIWDggAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAAgAAFUBEAx4Y20IdjMganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABgAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrWQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmtZAQFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleLQBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrWQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAwAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoDAEIdTgAARBkYXRhCAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlk+AEYQm9keUlkAAEQcGFydPwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAXQEBJE5ldHdvcmtJZAAJAABZAQQYT3B0aW9uBARUAV0BAQgQTm9uZQAAABBTb21lBABdAQAAAQAAXQEQDHhjbQh2MyBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAIASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIoAQx1NjQAAShibG9ja19oYXNoCAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lktAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAYQEQLHN0YWdpbmdfeGNtCHY0IGxvY2F0aW9uIExvY2F0aW9uAAAIARxwYXJlbnRzDAEIdTgAASBpbnRlcmlvcmUBASRKdW5jdGlvbnMAAGUBECxzdGFnaW5nX3hjbQh2NCRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAGkBAUhBcmM8W0p1bmN0aW9uOyAxXT4AAQAIWDIEAHkBAUhBcmM8W0p1bmN0aW9uOyAyXT4AAgAIWDMEAH0BAUhBcmM8W0p1bmN0aW9uOyAzXT4AAwAIWDQEAIEBAUhBcmM8W0p1bmN0aW9uOyA0XT4ABAAIWDUEAIUBAUhBcmM8W0p1bmN0aW9uOyA1XT4ABQAIWDYEAIkBAUhBcmM8W0p1bmN0aW9uOyA2XT4ABgAIWDcEAI0BAUhBcmM8W0p1bmN0aW9uOyA3XT4ABwAIWDgEAJEBAUhBcmM8W0p1bmN0aW9uOyA4XT4ACAAAaQEAAAMBAAAAbQEAbQEQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAYAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya3EBAURPcHRpb248TmV0d29ya0lkPgABCGlkCAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JrcQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXi0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya3EBAURPcHRpb248TmV0d29ya0lkPgABDGtleRwBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAMAQh1OAAEADBHZW5lcmFsSW5kZXgEAMABEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAwBCHU4AAEQZGF0YQgBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZPgBGEJvZHlJZAABEHBhcnT8ASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAHUBASROZXR3b3JrSWQACQAAcQEEGE9wdGlvbgQEVAF1AQEIEE5vbmUAAAAQU29tZQQAdQEAAAEAAHUBECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAIASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIoAQx1NjQAAShibG9ja19oYXNoCAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lktAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAeQEAAAMCAAAAbQEAfQEAAAMDAAAAbQEAgQEAAAMEAAAAbQEAhQEAAAMFAAAAbQEAiQEAAAMGAAAAbQEAjQEAAAMHAAAAbQEAkQEAAAMIAAAAbQEAlQEIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYzBACZAQFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEABECAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAAhWNQQAXQIBUHY1OjpYY208UnVudGltZUNhbGw+AAUAAJkBDAx4Y20IdjMMWGNtBBBDYWxsAAAEAJ0BAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AACdAQAAAqEBAKEBDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQApQEBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQApQEBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAKUBASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWS0ARxRdWVyeUlkAAEgcmVzcG9uc2XFAQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h01QEBGFdlaWdodAABHHF1ZXJpZXLxAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHOlAQEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzpQEBLE11bHRpQXNzZXRzAAEQZGVzdE0BATRNdWx0aUxvY2F0aW9uAAEMeGNtmQEBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdNUBARhXZWlnaHQAARBjYWxs+QEBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAUQEBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQA/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0cwECAUBNdWx0aUFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnlNAQE0TXVsdGlMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZQECAUBNdWx0aUFzc2V0RmlsdGVyAAEQd2FudKUBASxNdWx0aUFzc2V0cwABHG1heGltYWzIARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlTQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb/0BAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cwECAUBNdWx0aUFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXOtAQEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQAmQEBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQAmQEBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHOlAQEsTXVsdGlBc3NldHMAARh0aWNrZXRNAQE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAKUBASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQApQEBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQA8QEBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZv/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQA/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABVAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmtdAQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25RAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNtmQEBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXStAQEoTXVsdGlBc3NldAABIHVubG9ja2VyTQEBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldK0BAShNdWx0aUFzc2V0AAEYdGFyZ2V0TQEBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldK0BAShNdWx0aUFzc2V0AAEUb3duZXJNAQE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXStAQEoTXVsdGlBc3NldAABGGxvY2tlck0BATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQATQEBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lu8QEBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAAClARAMeGNtCHYzKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQAqQEBPFZlYzxNdWx0aUFzc2V0PgAAqQEAAAKtAQCtARAMeGNtCHYzKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWSxAQEcQXNzZXRJZAABDGZ1brUBASxGdW5naWJpbGl0eQAAsQEQDHhjbQh2MyhtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEAE0BATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAAIASBbdTg7IDMyXQABAAC1ARAMeGNtCHYzKG11bHRpYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAMABEHUxMjgAAAAsTm9uRnVuZ2libGUEALkBATRBc3NldEluc3RhbmNlAAEAALkBEAx4Y20IdjMobXVsdGlhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQAwAEQdTEyOAABABhBcnJheTQEAHABHFt1ODsgNF0AAgAYQXJyYXk4BAC9AQEcW3U4OyA4XQADABxBcnJheTE2BADBAQEgW3U4OyAxNl0ABAAcQXJyYXkzMgQACAEgW3U4OyAzMl0ABQAAvQEAAAMIAAAADADBAQAAAxAAAAAMAMUBDAx4Y20IdjMgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAKUBASxNdWx0aUFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAMkBAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAA4AThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQA2QEBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BADpAQE4TWF5YmVFcnJvckNvZGUABQAAyQEEGE9wdGlvbgQEVAHNAQEIEE5vbmUAAAAQU29tZQQAzQEAAAEAAM0BAAAECDjRAQDRARAMeGNtCHYzGHRyYWl0cxRFcnJvcgABoCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAoAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgBMVW5oYW5kbGVkWGNtVmVyc2lvbgAjAEhXZWlnaHRMaW1pdFJlYWNoZWQEANUBARhXZWlnaHQAJAAcQmFycmllcgAlAExXZWlnaHROb3RDb21wdXRhYmxlACYAREV4Y2VlZHNTdGFja0xpbWl0ACcAANUBDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1ltAEMdTY0AAEocHJvb2Zfc2l6ZbQBDHU2NAAA2QEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHdAQRTAAAEAOUBARhWZWM8VD4AAN0BDAx4Y20IdjMoUGFsbGV0SW5mbwAAGAEUaW5kZXhgAQx1MzIAARBuYW1l4QEBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWXhAQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmABDHUzMgABFG1pbm9yYAEMdTMyAAEUcGF0Y2hgAQx1MzIAAOEBDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAA5QEAAALdAQDpAQwMeGNtCHYzOE1heWJlRXJyb3JDb2RlAAEMHFN1Y2Nlc3MAAAAURXJyb3IEAO0BAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgABADhUcnVuY2F0ZWRFcnJvcgQA7QEBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAIAAO0BDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAA8QEEGE9wdGlvbgQEVAFNAQEIEE5vbmUAAAAQU29tZQQATQEAAAEAAPUBDAx4Y20IdjMoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAAPkBDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBgBHFZlYzx1OD4AAP0BDAx4Y20IdjNEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9uTQEBNE11bHRpTG9jYXRpb24AASBxdWVyeV9pZLQBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h01QEBGFdlaWdodAAAAQIQDHhjbQh2MyhtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAKUBASxNdWx0aUFzc2V0cwAAABBXaWxkBAAFAgE4V2lsZE11bHRpQXNzZXQAAQAABQIQDHhjbQh2MyhtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlksQEBHEFzc2V0SWQAAQxmdW4JAgE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGABDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZLEBARxBc3NldElkAAEMZnVuCQIBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50YAEMdTMyAAMAAAkCEAx4Y20IdjMobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAADQIMDHhjbQh2MyxXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQA1QEBGFdlaWdodAABAAARAgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEABUCAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAAVAgAAAhkCABkCDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAAdAgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAHQIBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAdAgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZTUCASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllckkCAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMdAgEYQXNzZXRzAAEsYmVuZWZpY2lhcnlhAQEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMdAgEYQXNzZXRzAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmT1AQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3TVAQEYV2VpZ2h0AAEQY2FsbPkBAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJgAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplYAEMdTMyAAEwbWF4X2NhcGFjaXR5YAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRgAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yYAEMdTMyAAEYc2VuZGVyYAEMdTMyAAEkcmVjaXBpZW50YAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAGUBAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABNAgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnlhAQEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABEGRlc3RhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZVECASxBc3NldEZpbHRlcgABEHdhbnQdAgEYQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNRAgEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlYQEBIExvY2F0aW9uAAEMeGNtEQIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABEGRlc3RhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb00CAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c1ECASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzJQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAARAgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAARAgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cx0CARhBc3NldHMAARh0aWNrZXRhAQEgTG9jYXRpb24AGAAQVHJhcAQAtAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZLQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h01QEBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAdAgEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAAdAgEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQASQIBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAMkBAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQA6QEBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb00CAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGABDHUzMgABEG5hbWUYARxWZWM8dTg+AAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JgAQx1MzIAATxtaW5fY3JhdGVfbWlub3JgAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAE0CAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAbQEBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrdQEBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uZQEBQEludGVyaW9yTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldCUCARRBc3NldAABIHVubG9ja2VyYQEBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQlAgEUQXNzZXQAARh0YXJnZXRhAQEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldCUCARRBc3NldAABFG93bmVyYQEBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldCUCARRBc3NldAABGGxvY2tlcmEBASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd8gBEGJvb2wAKwAgU2V0VG9waWMEAAgBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAGEBASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW5JAgFAT3B0aW9uPExvY2F0aW9uPgAvAAAdAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQYQXNzZXRzAAAEACECAShWZWM8QXNzZXQ+AAAhAgAAAiUCACUCECxzdGFnaW5nX3hjbQh2NBRhc3NldBRBc3NldAAACAEIaWQpAgEcQXNzZXRJZAABDGZ1bi0CASxGdW5naWJpbGl0eQAAKQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0HEFzc2V0SWQAAAQAYQEBIExvY2F0aW9uAAAtAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAMABEHUxMjgAAAAsTm9uRnVuZ2libGUEADECATRBc3NldEluc3RhbmNlAAEAADECECxzdGFnaW5nX3hjbQh2NBRhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQAwAEQdTEyOAABABhBcnJheTQEAHABHFt1ODsgNF0AAgAYQXJyYXk4BAC9AQEcW3U4OyA4XQADABxBcnJheTE2BADBAQEgW3U4OyAxNl0ABAAcQXJyYXkzMgQACAEgW3U4OyAzMl0ABQAANQIMLHN0YWdpbmdfeGNtCHY0IFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAAdAgEYQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EADgBOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBAA5AgGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAOkBAThNYXliZUVycm9yQ29kZQAFAAA5AgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAT0CBFMAAAQARQIBGFZlYzxUPgAAPQIMLHN0YWdpbmdfeGNtCHY0KFBhbGxldEluZm8AABgBFGluZGV4YAEMdTMyAAEQbmFtZUECAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1lQQIBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3JgAQx1MzIAARRtaW5vcmABDHUzMgABFHBhdGNoYAEMdTMyAABBAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAEUCAAACPQIASQIEGE9wdGlvbgQEVAFhAQEIEE5vbmUAAAAQU29tZQQAYQEAAAEAAE0CDCxzdGFnaW5nX3hjbQh2NERRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb25hAQEgTG9jYXRpb24AASBxdWVyeV9pZLQBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h01QEBGFdlaWdodAAAUQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBAAdAgEYQXNzZXRzAAAAEFdpbGQEAFUCASRXaWxkQXNzZXQAAQAAVQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZCkCARxBc3NldElkAAEMZnVuWQIBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBABgAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWQpAgEcQXNzZXRJZAABDGZ1blkCATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudGABDHUzMgADAABZAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAAF0CDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQAYQIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAGECAAACZQIAZQIMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAGkCARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBABpAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAGkCARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlgQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVyoQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c2kCARhBc3NldHMAASxiZW5lZmljaWFyeeABIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzaQIBGEFzc2V0cwABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmT1AQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHSlAgE4T3B0aW9uPFdlaWdodD4AARBjYWxs+QEBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQA5AFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c60CASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ54AEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlrQIBLEFzc2V0RmlsdGVyAAEQd2FudGkCARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABHHJlc2VydmXgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAARBkZXN04AEgTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb6kCAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c60CASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzcQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABdAgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABdAgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c2kCARhBc3NldHMAARh0aWNrZXTgASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAGkCARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAGkCARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAChAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAhQIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADsASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya/QBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9u5AFASW50ZXJpb3JMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0cQIBFEFzc2V0AAEgdW5sb2NrZXLgASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0cQIBFEFzc2V0AAEYdGFyZ2V04AEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldHECARRBc3NldAABFG93bmVy4AEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0cQIBFEFzc2V0AAEYbG9ja2Vy4AEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADgASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW6hAgFAT3B0aW9uPExvY2F0aW9uPgAvABxQYXlGZWVzBAEUYXNzZXRxAgEUQXNzZXQAMABASW5pdGlhdGVUcmFuc2ZlchQBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AASxyZW1vdGVfZmVlc7kCAWxPcHRpb248QXNzZXRUcmFuc2ZlckZpbHRlcj4AATxwcmVzZXJ2ZV9vcmlnaW7IARBib29sAAEYYXNzZXRzwQIB4EJvdW5kZWRWZWM8QXNzZXRUcmFuc2ZlckZpbHRlciwgTWF4QXNzZXRUcmFuc2ZlckZpbHRlcnM+AAEocmVtb3RlX3hjbV0CARxYY208KCk+ADEAREV4ZWN1dGVXaXRoT3JpZ2luCAFEZGVzY2VuZGFudF9vcmlnaW7JAgFgT3B0aW9uPEludGVyaW9yTG9jYXRpb24+AAEMeGNtXQIBJFhjbTxDYWxsPgAyACBTZXRIaW50cwQBFGhpbnRzzQIBhEJvdW5kZWRWZWM8SGludCwgSGludE51bVZhcmlhbnRzPgAzAABpAhAsc3RhZ2luZ194Y20IdjUUYXNzZXQYQXNzZXRzAAAEAG0CAShWZWM8QXNzZXQ+AABtAgAAAnECAHECECxzdGFnaW5nX3hjbQh2NRRhc3NldBRBc3NldAAACAEIaWR1AgEcQXNzZXRJZAABDGZ1bnkCASxGdW5naWJpbGl0eQAAdQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0HEFzc2V0SWQAAAQA4AEgTG9jYXRpb24AAHkCECxzdGFnaW5nX3hjbQh2NRRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAwAEQdTEyOAAAACxOb25GdW5naWJsZQQAfQIBNEFzc2V0SW5zdGFuY2UAAQAAfQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADAARB1MTI4AAEAGEFycmF5NAQAcAEcW3U4OyA0XQACABhBcnJheTgEAL0BARxbdTg7IDhdAAMAHEFycmF5MTYEAMEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAACBAgwsc3RhZ2luZ194Y20IdjUgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAGkCARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BACFAgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAOAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAJECAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQA6QEBOE1heWJlRXJyb3JDb2RlAAUAAIUCBBhPcHRpb24EBFQBiQIBCBBOb25lAAAAEFNvbWUEAIkCAAABAACJAgAABAg4jQIAjQIQDHhjbQh2NRh0cmFpdHMURXJyb3IAAaQgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAKAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIANFRvb01hbnlBc3NldHMAIwBMVW5oYW5kbGVkWGNtVmVyc2lvbgAkAEhXZWlnaHRMaW1pdFJlYWNoZWQEANUBARhXZWlnaHQAJQAcQmFycmllcgAmAExXZWlnaHROb3RDb21wdXRhYmxlACcAREV4Y2VlZHNTdGFja0xpbWl0ACgAAJECDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBlQIEUwAABACdAgEYVmVjPFQ+AACVAgwsc3RhZ2luZ194Y20IdjUoUGFsbGV0SW5mbwAAGAEUaW5kZXhgAQx1MzIAARBuYW1lmQIBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWWZAgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmABDHUzMgABFG1pbm9yYAEMdTMyAAEUcGF0Y2hgAQx1MzIAAJkCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAnQIAAAKVAgChAgQYT3B0aW9uBARUAeABCBBOb25lAAAAEFNvbWUEAOAAAAEAAKUCBBhPcHRpb24EBFQB1QEBCBBOb25lAAAAEFNvbWUEANUBAAABAACpAgwsc3RhZ2luZ194Y20IdjVEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AASBxdWVyeV9pZLQBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h01QEBGFdlaWdodAAArQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBABpAgEYQXNzZXRzAAAAEFdpbGQEALECASRXaWxkQXNzZXQAAQAAsQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZHUCARxBc3NldElkAAEMZnVutQIBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBABgAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWR1AgEcQXNzZXRJZAABDGZ1brUCATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudGABDHUzMgADAAC1AhAsc3RhZ2luZ194Y20IdjUUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAALkCBBhPcHRpb24EBFQBvQIBCBBOb25lAAAAEFNvbWUEAL0CAAABAAC9AhAsc3RhZ2luZ194Y20IdjUUYXNzZXRMQXNzZXRUcmFuc2ZlckZpbHRlcgABDCBUZWxlcG9ydAQArQIBLEFzc2V0RmlsdGVyAAAAOFJlc2VydmVEZXBvc2l0BACtAgEsQXNzZXRGaWx0ZXIAAQA8UmVzZXJ2ZVdpdGhkcmF3BACtAgEsQXNzZXRGaWx0ZXIAAgAAwQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG9AgRTAAAEAMUCARhWZWM8VD4AAMUCAAACvQIAyQIEGE9wdGlvbgQEVAHkAQgQTm9uZQAAABBTb21lBADkAAABAADNAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAdECBFMAAAQA1QIBGFZlYzxUPgAA0QIMLHN0YWdpbmdfeGNtCHY1EEhpbnQAAQQwQXNzZXRDbGFpbWVyBAEgbG9jYXRpb27gASBMb2NhdGlvbgAAAADVAgAAAtECANkCCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYzBAClAQE8djM6Ok11bHRpQXNzZXRzAAMACFY0BAAdAgEodjQ6OkFzc2V0cwAEAAhWNQQAaQIBKHY1OjpBc3NldHMABQAA3QIIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYzBADhAgFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEAPECAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAAhWNQQA/QIBUHY1OjpYY208UnVudGltZUNhbGw+AAUAAOECDAx4Y20IdjMMWGNtBBBDYWxsAAAEAOUCAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AADlAgAAAukCAOkCDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQApQEBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQApQEBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAKUBASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWS0ARxRdWVyeUlkAAEgcmVzcG9uc2XFAQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h01QEBGFdlaWdodAABHHF1ZXJpZXLxAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHOlAQEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzpQEBLE11bHRpQXNzZXRzAAEQZGVzdE0BATRNdWx0aUxvY2F0aW9uAAEMeGNtmQEBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdNUBARhXZWlnaHQAARBjYWxs7QIBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAUQEBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQA/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0cwECAUBNdWx0aUFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnlNAQE0TXVsdGlMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZQECAUBNdWx0aUFzc2V0RmlsdGVyAAEQd2FudKUBASxNdWx0aUFzc2V0cwABHG1heGltYWzIARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlTQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb/0BAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cwECAUBNdWx0aUFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXOtAQEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA4QIBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQA4QIBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHOlAQEsTXVsdGlBc3NldHMAARh0aWNrZXRNAQE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAKUBASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQApQEBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQA8QEBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZv/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQA/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABVAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmtdAQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25RAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNtmQEBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXStAQEoTXVsdGlBc3NldAABIHVubG9ja2VyTQEBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldK0BAShNdWx0aUFzc2V0AAEYdGFyZ2V0TQEBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldK0BAShNdWx0aUFzc2V0AAEUb3duZXJNAQE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXStAQEoTXVsdGlBc3NldAABGGxvY2tlck0BATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQATQEBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lu8QEBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAADtAgwMeGNtOGRvdWJsZV9lbmNvZGVkNERvdWJsZUVuY29kZWQEBFQAAAQBHGVuY29kZWQYARxWZWM8dTg+AADxAgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEAPUCAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAD1AgAAAvkCAPkCDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAAdAgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAHQIBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAdAgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZTUCASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllckkCAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMdAgEYQXNzZXRzAAEsYmVuZWZpY2lhcnlhAQEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMdAgEYQXNzZXRzAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmT1AQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3TVAQEYV2VpZ2h0AAEQY2FsbO0CAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJgAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplYAEMdTMyAAEwbWF4X2NhcGFjaXR5YAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRgAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yYAEMdTMyAAEYc2VuZGVyYAEMdTMyAAEkcmVjaXBpZW50YAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAGUBAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABNAgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnlhAQEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABEGRlc3RhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZVECASxBc3NldEZpbHRlcgABEHdhbnQdAgEYQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNRAgEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlYQEBIExvY2F0aW9uAAEMeGNtEQIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABEGRlc3RhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb00CAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c1ECASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzJQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADxAgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADxAgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cx0CARhBc3NldHMAARh0aWNrZXRhAQEgTG9jYXRpb24AGAAQVHJhcAQAtAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZLQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h01QEBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAdAgEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAAdAgEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQASQIBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAMkBAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQA6QEBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb00CAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGABDHUzMgABEG5hbWUYARxWZWM8dTg+AAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JgAQx1MzIAATxtaW5fY3JhdGVfbWlub3JgAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAE0CAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAbQEBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrdQEBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uZQEBQEludGVyaW9yTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldCUCARRBc3NldAABIHVubG9ja2VyYQEBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQlAgEUQXNzZXQAARh0YXJnZXRhAQEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldCUCARRBc3NldAABFG93bmVyYQEBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldCUCARRBc3NldAABGGxvY2tlcmEBASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd8gBEGJvb2wAKwAgU2V0VG9waWMEAAgBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAGEBASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW5JAgFAT3B0aW9uPExvY2F0aW9uPgAvAAD9Agwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEAAEDAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAABAwAAAgUDAAUDDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BABpAgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAaQIBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BABpAgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZYECASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllcqECAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHNpAgEYQXNzZXRzAAEsYmVuZWZpY2lhcnngASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c2kCARhBc3NldHMAARBkZXN04AEgTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k9QEBKE9yaWdpbktpbmQAAUxmYWxsYmFja19tYXhfd2VpZ2h0pQIBOE9wdGlvbjxXZWlnaHQ+AAEQY2FsbO0CAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJgAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplYAEMdTMyAAEwbWF4X2NhcGFjaXR5YAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRgAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yYAEMdTMyAAEYc2VuZGVyYAEMdTMyAAEkcmVjaXBpZW50YAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAOQBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAKkCAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeeABIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAARBkZXN04AEgTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2Za0CASxBc3NldEZpbHRlcgABEHdhbnRpAgEYQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAARxyZXNlcnZl4AEgTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEQZGVzdOABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm+pAgFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc3ECARRBc3NldAABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA/QIBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQA/QIBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHNpAgEYQXNzZXRzAAEYdGlja2V04AEgTG9jYXRpb24AGAAQVHJhcAQAtAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZLQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h01QEBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BABpAgEYQXNzZXRzABwALEV4cGVjdEFzc2V0BABpAgEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAoQIBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAIUCAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQA6QEBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb6kCAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGABDHUzMgABEG5hbWUYARxWZWM8dTg+AAEsbW9kdWxlX25hbWUYARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JgAQx1MzIAATxtaW5fY3JhdGVfbWlub3JgAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAKkCAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQA7AEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmv0ASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbuQBQEludGVyaW9yTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldHECARRBc3NldAABIHVubG9ja2Vy4AEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldHECARRBc3NldAABGHRhcmdldOABIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXRxAgEUQXNzZXQAARRvd25lcuABIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldHECARRBc3NldAABGGxvY2tlcuABIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQA4AEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luoQIBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0cQIBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbuABIExvY2F0aW9uAAEscmVtb3RlX2ZlZXO5AgFsT3B0aW9uPEFzc2V0VHJhbnNmZXJGaWx0ZXI+AAE8cHJlc2VydmVfb3JpZ2luyAEQYm9vbAABGGFzc2V0c8ECAeBCb3VuZGVkVmVjPEFzc2V0VHJhbnNmZXJGaWx0ZXIsIE1heEFzc2V0VHJhbnNmZXJGaWx0ZXJzPgABKHJlbW90ZV94Y21dAgEcWGNtPCgpPgAxAERFeGVjdXRlV2l0aE9yaWdpbggBRGRlc2NlbmRhbnRfb3JpZ2luyQIBYE9wdGlvbjxJbnRlcmlvckxvY2F0aW9uPgABDHhjbf0CASRYY208Q2FsbD4AMgAgU2V0SGludHMEARRoaW50c80CAYRCb3VuZGVkVmVjPEhpbnQsIEhpbnROdW1WYXJpYW50cz4AMwAACQMEGE9wdGlvbgQEVAE4AQgQTm9uZQAAABBTb21lBAA4AAABAAANAxBQc3RhZ2luZ194Y21fZXhlY3V0b3IYdHJhaXRzOGFzc2V0X3RyYW5zZmVyMFRyYW5zZmVyVHlwZQABECBUZWxlcG9ydAAAADBMb2NhbFJlc2VydmUAAQBIRGVzdGluYXRpb25SZXNlcnZlAAIANFJlbW90ZVJlc2VydmUEAEkBAURWZXJzaW9uZWRMb2NhdGlvbgADAAARAwgMeGNtQFZlcnNpb25lZEFzc2V0SWQAAQwIVjMEALEBASx2Mzo6QXNzZXRJZAADAAhWNAQAKQIBLHY0OjpBc3NldElkAAQACFY1BAB1AgEsdjU6OkFzc2V0SWQABQAAFQMEGE9wdGlvbgQEVAEoAQgQTm9uZQAAABBTb21lBAAoAAABAAAZAwxIY3VtdWx1c19wYWxsZXRfeGNtGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLh0DDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQQQ2FsbAQEVAABCCRyZWFwX3BhZ2UIAThtZXNzYWdlX29yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4AAShwYWdlX2luZGV4OAEkUGFnZUluZGV4AAAEPQFSZW1vdmUgYSBwYWdlIHdoaWNoIGhhcyBubyBtb3JlIG1lc3NhZ2VzIHJlbWFpbmluZyB0byBiZSBwcm9jZXNzZWQgb3IgaXMgc3RhbGUuSGV4ZWN1dGVfb3ZlcndlaWdodBABOG1lc3NhZ2Vfb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgABEHBhZ2U4ASRQYWdlSW5kZXgAARRpbmRleDgBHFQ6OlNpemUAATB3ZWlnaHRfbGltaXTVAQEYV2VpZ2h0AAE0eEV4ZWN1dGUgYW4gb3ZlcndlaWdodCBtZXNzYWdlLgBNAVRlbXBvcmFyeSBwcm9jZXNzaW5nIGVycm9ycyB3aWxsIGJlIHByb3BhZ2F0ZWQgd2hlcmVhcyBwZXJtYW5lbnQgZXJyb3JzIGFyZSB0cmVhdGVkVGFzIHN1Y2Nlc3MgY29uZGl0aW9uLgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC41AS0gYG1lc3NhZ2Vfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGFycml2ZWQuPQEtIGBwYWdlYDogVGhlIHBhZ2UgaW4gdGhlIHF1ZXVlIGluIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGlzIHNpdHRpbmcuCQEtIGBpbmRleGA6IFRoZSBpbmRleCBpbnRvIHRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZC5ZAS0gYHdlaWdodF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgYWxsb3dlZCB0byBiZSBjb25zdW1lZCBpbiB0aGUgZXhlY3V0aW9uRCAgb2YgdGhlIG1lc3NhZ2UuAPRCZW5jaG1hcmsgY29tcGxleGl0eSBjb25zaWRlcmF0aW9uczogTyhpbmRleCArIHdlaWdodF9saW1pdCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLiEDCFxjdW11bHVzX3ByaW1pdGl2ZXNfY29yZVhBZ2dyZWdhdGVNZXNzYWdlT3JpZ2luAAEMEEhlcmUAAAAYUGFyZW50AAEAHFNpYmxpbmcEAJwBGFBhcmFJZAACAAAlAww4cGFsbGV0X3V0aWxpdHkYcGFsbGV0EENhbGwEBFQAASAUYmF0Y2gEARRjYWxscykDAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AABIfFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4AVQFUaGlzIHdpbGwgcmV0dXJuIGBPa2AgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRvIGRldGVybWluZSB0aGUgc3VjY2VzcyBvZiB0aGUgYmF0Y2gsIGFuMQFldmVudCBpcyBkZXBvc2l0ZWQuIElmIGEgY2FsbCBmYWlsZWQgYW5kIHRoZSBiYXRjaCB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gdGhlVQFgQmF0Y2hJbnRlcnJ1cHRlZGAgZXZlbnQgaXMgZGVwb3NpdGVkLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCBjYWxscyBtYWRlTQFhbmQgdGhlIGVycm9yIG9mIHRoZSBmYWlsZWQgY2FsbC4gSWYgYWxsIHdlcmUgc3VjY2Vzc2Z1bCwgdGhlbiB0aGUgYEJhdGNoQ29tcGxldGVkYExldmVudCBpcyBkZXBvc2l0ZWQuNGFzX2Rlcml2YXRpdmUIARRpbmRleC0DAQx1MTYAARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABNNxTZW5kIGEgY2FsbCB0aHJvdWdoIGFuIGluZGV4ZWQgcHNldWRvbnltIG9mIHRoZSBzZW5kZXIuAFUBRmlsdGVyIGZyb20gb3JpZ2luIGFyZSBwYXNzZWQgYWxvbmcuIFRoZSBjYWxsIHdpbGwgYmUgZGlzcGF0Y2hlZCB3aXRoIGFuIG9yaWdpbiB3aGljaLx1c2UgdGhlIHNhbWUgZmlsdGVyIGFzIHRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsLgBFAU5PVEU6IElmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFueSBhY2NvdW50LWJhc2VkIGZpbHRlcmluZyBpcyBub3QgaG9ub3JlZCAoaS5lLmEBYmVjYXVzZSB5b3UgZXhwZWN0IGBwcm94eWAgdG8gaGF2ZSBiZWVuIHVzZWQgcHJpb3IgaW4gdGhlIGNhbGwgc3RhY2sgYW5kIHlvdSBkbyBub3Qgd2FudFEBdGhlIGNhbGwgcmVzdHJpY3Rpb25zIHRvIGFwcGx5IHRvIGFueSBzdWItYWNjb3VudHMpLCB0aGVuIHVzZSBgYXNfbXVsdGlfdGhyZXNob2xkXzFgfGluIHRoZSBNdWx0aXNpZyBwYWxsZXQgaW5zdGVhZC4A9E5PVEU6IFByaW9yIHRvIHZlcnNpb24gKjEyLCB0aGlzIHdhcyBjYWxsZWQgYGFzX2xpbWl0ZWRfc3ViYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiRiYXRjaF9hbGwEARRjYWxscykDAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAI07FNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscyBhbmQgYXRvbWljYWxseSBleGVjdXRlIHRoZW0uIQFUaGUgd2hvbGUgdHJhbnNhY3Rpb24gd2lsbCByb2xsYmFjayBhbmQgZmFpbCBpZiBhbnkgb2YgdGhlIGNhbGxzIGZhaWxlZC4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sZGlzcGF0Y2hfYXMIASRhc19vcmlnaW4xAwFUQm94PFQ6OlBhbGxldHNPcmlnaW4+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAxjIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLixmb3JjZV9iYXRjaAQBFGNhbGxzKQMBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABDR8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLtRVbmxpa2UgYGJhdGNoYCwgaXQgYWxsb3dzIGVycm9ycyBhbmQgd29uJ3QgaW50ZXJydXB0LgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBNAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sd2l0aF93ZWlnaHQIARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodNUBARhXZWlnaHQABRjERGlzcGF0Y2ggYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBzcGVjaWZpZWQgd2VpZ2h0LgAtAVRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhlIHdlaWdodCBvZiB0aGUgY2FsbCwgYW5kIGluc3RlYWQgYWxsb3dzIHRoZbhSb290IG9yaWdpbiB0byBzcGVjaWZ5IHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uHGlmX2Vsc2UIARBtYWluIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABIGZhbGxiYWNrIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAGXBUBRGlzcGF0Y2ggYSBmYWxsYmFjayBjYWxsIGluIHRoZSBldmVudCB0aGUgbWFpbiBjYWxsIGZhaWxzIHRvIGV4ZWN1dGUusE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAORUaGlzIGZ1bmN0aW9uIGZpcnN0IGF0dGVtcHRzIHRvIGRpc3BhdGNoIHRoZSBgbWFpbmAgY2FsbC7USWYgdGhlIGBtYWluYCBjYWxsIGZhaWxzLCB0aGUgYGZhbGxiYWNrYCBpcyBhdHRlbXRlZC4VAWlmIHRoZSBmYWxsYmFjayBpcyBzdWNjZXNzZnVsbHkgZGlzcGF0Y2hlZCwgdGhlIHdlaWdodHMgb2YgYm90aCBjYWxscyUBYXJlIGFjY3VtdWxhdGVkIGFuZCBhbiBldmVudCBjb250YWluaW5nIHRoZSBtYWluIGNhbGwgZXJyb3IgaXMgZGVwb3NpdGVkLgDcSW4gdGhlIGV2ZW50IG9mIGEgZmFsbGJhY2sgZmFpbHVyZSB0aGUgd2hvbGUgY2FsbCBmYWlsc2h3aXRoIHRoZSB3ZWlnaHRzIHJldHVybmVkLgBBAS0gYG1haW5gOiBUaGUgbWFpbiBjYWxsIHRvIGJlIGRpc3BhdGNoZWQuIFRoaXMgaXMgdGhlIHByaW1hcnkgYWN0aW9uIHRvIGV4ZWN1dGUuPQEtIGBmYWxsYmFja2A6IFRoZSBmYWxsYmFjayBjYWxsIHRvIGJlIGRpc3BhdGNoZWQgaW4gY2FzZSB0aGUgYG1haW5gIGNhbGwgZmFpbHMuAEQjIyBEaXNwYXRjaCBMb2dpY0EBLSBJZiB0aGUgb3JpZ2luIGlzIGByb290YCwgYm90aCB0aGUgbWFpbiBhbmQgZmFsbGJhY2sgY2FsbHMgYXJlIGV4ZWN1dGVkIHdpdGhvdXR4ICBhcHBseWluZyBhbnkgb3JpZ2luIGZpbHRlcnMuSQEtIElmIHRoZSBvcmlnaW4gaXMgbm90IGByb290YCwgdGhlIG9yaWdpbiBmaWx0ZXIgaXMgYXBwbGllZCB0byBib3RoIHRoZSBgbWFpbmAgYW5kTCAgYGZhbGxiYWNrYCBjYWxscy4ALCMjIFVzZSBDYXNlWQEtIFNvbWUgdXNlIGNhc2VzIG1pZ2h0IGludm9sdmUgc3VibWl0dGluZyBhIGBiYXRjaGAgdHlwZSBjYWxsIGluIGVpdGhlciBtYWluLCBmYWxsYmFjayggIG9yIGJvdGguUGRpc3BhdGNoX2FzX2ZhbGxpYmxlCAEkYXNfb3JpZ2luMQMBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAcUyERpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBwcm92aWRlZCBvcmlnaW4uAFEBQWxtb3N0IHRoZSBzYW1lIGFzIFtgUGFsbGV0OjpkaXNwYXRjaF9hc2BdIGJ1dCBmb3J3YXJkcyBhbnkgZXJyb3Igb2YgdGhlIGlubmVyIGNhbGwuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLikDAAACIAAtAwAABQQAMQMIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUwT3JpZ2luQ2FsbGVyAAEwGHN5c3RlbQQANQMBdGZyYW1lX3N5c3RlbTo6T3JpZ2luPFJ1bnRpbWU+AAAALFBvbGthZG90WGNtBAA5AwFIcGFsbGV0X3hjbTo6T3JpZ2luAB8AKEN1bXVsdXNYY20EAD0DAWhjdW11bHVzX3BhbGxldF94Y206Ok9yaWdpbgAgABhQZW9wbGUEAEEDAWxpbmRpdl9wYWxsZXRfcGVvcGxlOjpPcmlnaW4AMwAoUHJvb2ZPZkluawQATQMBqGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbms6Ok9yaWdpbjxSdW50aW1lPgA1ABBHYW1lBABRAwGIaW5kaXZfcGFsbGV0X2dhbWU6Ok9yaWdpbjxSdW50aW1lPgA3ABRTY29yZQQAVQMBjGluZGl2X3BhbGxldF9zY29yZTo6T3JpZ2luPFJ1bnRpbWU+ADgAKFBlb3BsZUxpdGUEAFkDAaRpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGU6Ok9yaWdpbjxSdW50aW1lPgA+ACRSZXNvdXJjZXMEAF0DAXhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzOjpPcmlnaW4APwAcTWVtYmVycwQAZQMBlGluZGl2X3BhbGxldF9tZW1iZXJzOjpPcmlnaW48UnVudGltZT4AQwAcQ29pbmFnZQQAbQMBlGluZGl2X3BhbGxldF9jb2luYWdlOjpPcmlnaW48UnVudGltZT4ARAAYSG9ub3VyBACJAwFsaW5kaXZfcGFsbGV0X2hvbm91cjo6T3JpZ2luAEcAADUDDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoJFJhd09yaWdpbgQkQWNjb3VudElkAQQBEBBSb290AAAAGFNpZ25lZAQABAEkQWNjb3VudElkAAEAEE5vbmUAAgAoQXV0aG9yaXplZAADAAA5AwwocGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIDFhjbQQA4AEgTG9jYXRpb24AAAAgUmVzcG9uc2UEAOABIExvY2F0aW9uAAEAAD0DDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCBRSZWxheQAAAEBTaWJsaW5nUGFyYWNoYWluBACcARhQYXJhSWQAAQAAQQMMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0GE9yaWdpbgABCEBQZXJzb25hbElkZW50aXR5BAAoAShQZXJzb25hbElkAAAANFBlcnNvbmFsQWxpYXMEAEUDAVhSZXZpc2VkQ29udGV4dHVhbEFsaWFzAAEAAEUDEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5WFJldmlzZWRDb250ZXh0dWFsQWxpYXMAAAwBIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABEHJpbmc4ASRSaW5nSW5kZXgAAQhjYUkDATxDb250ZXh0dWFsQWxpYXMAAEkDEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5PENvbnRleHR1YWxBbGlhcwAACAEUYWxpYXMIARRBbGlhcwABHGNvbnRleHQIARxDb250ZXh0AABNAwxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQYT3JpZ2luBARUAAEMWEF1dGhvcml6ZWRBcHBseVdpdGhTaWcEAAQBMFQ6OkFjY291bnRJZAAAAERSZWZlcnJlZENhbmRpZGF0ZQQABAEwVDo6QWNjb3VudElkAAEAQEludml0ZWRDYW5kaWRhdGUEAAQBMFQ6OkFjY291bnRJZAACAABRAwxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0GE9yaWdpbgQEVAABBBxJbnZpdGVkBAAEATBUOjpBY2NvdW50SWQAAAAAVQMMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQYT3JpZ2luBARUAAEESEFjY291bnRQYXJ0aWNpcGFudAQABAEwVDo6QWNjb3VudElkAAAAAFkDDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUYcGFsbGV0GE9yaWdpbgQEVAABCChMaXRlUGVyc29uBAAEATBUOjpBY2NvdW50SWQAAAAkTGl0ZUFsaWFzBABFAwFYUmV2aXNlZENvbnRleHR1YWxBbGlhcwABAABdAwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxhwYWxsZXQYT3JpZ2luAAEMSEZyaWVuZFJlcXVlc3RBbGlhcwQACAEUQWxpYXMAAAA4U3RtdFN0b3JlQWxpYXMEAAgBFEFsaWFzAAEAUExvbmdUZXJtU3RvcmFnZUNsYWltCAAIARRBbGlhcwAAYQMBUE1lbWJlcnNoaXBDb2xsZWN0aW9uAAIAAGEDDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzUE1lbWJlcnNoaXBDb2xsZWN0aW9uAAEIGFBlb3BsZQAAAChMaXRlUGVvcGxlAAEAAGUDDFBpbmRpdl9wYWxsZXRfbWVtYmVycxhwYWxsZXQYT3JpZ2luBARUAWkDAQgsTWVtYmVyQWxpYXMIAAgBKElkZW50aWZpZXIAAEUDAVhSZXZpc2VkQ29udGV4dHVhbEFsaWFzAAAALFNlbGZJbmNsdWRlBAAIASxNZW1iZXJPZjxUPgABAABpAwhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZRxSdW50aW1lAAAAAG0DDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQYT3JpZ2luBARUAWkDAQwQQ29pbggBHGNvaW5faWQEATBUOjpBY2NvdW50SWQAARBjb2lucQMBEENvaW4AAAAsVW5sb2FkVG9rZW4MATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgABKHByb3Zlbl9tc2cIASBbdTg7IDMyXQABDGZlZYUDASRVbmxvYWRGZWUAAQBYSW5mYWxsaWJsZVVucGFpZFNpZ25lZAQBDHdobwQBMFQ6OkFjY291bnRJZAACAABxAwxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0EENvaW4AAAgBFHZhbHVldQMBJENvaW5WYWx1ZQABDGFnZS0DAQx1MTYAAHUDAAAFCQB5AwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0DBFMAAAQAgQMBGFZlYzxUPgAAfQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AACBAwAAAn0DAIUDDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQkVW5sb2FkRmVlAAEIHFByZXBhaWQAAAAoRnJvbU91dHB1dAgBSGZlZV9yZWN5Y2xlcl92YWx1ZXUDASRDb2luVmFsdWUAAUhmZWVfcmVjeWNsZXJfaW5kZXg4ASRSaW5nSW5kZXgAAQAAiQMMTGluZGl2X3BhbGxldF9ob25vdXIYcGFsbGV0GE9yaWdpbgABBBRWb3RlcgQBHGFsaWFzZXONAwEsVm90ZUFsaWFzZXMAAAAAjQMMTGluZGl2X3BhbGxldF9ob25vdXIUdHlwZXMsVm90ZUFsaWFzZXMAAAgBNHN1YmplY3RfYWxpYXMIATBTdWJqZWN0QWxpYXMAASxwb2ludF9hbGlhcwgBKFBvaW50QWxpYXMAAJEDDDxwYWxsZXRfbXVsdGlzaWcYcGFsbGV0EENhbGwEBFQAARRQYXNfbXVsdGlfdGhyZXNob2xkXzEIAURvdGhlcl9zaWduYXRvcmllc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AADBRAUltbWVkaWF0ZWx5IGRpc3BhdGNoIGEgbXVsdGktc2lnbmF0dXJlIGNhbGwgdXNpbmcgYSBzaW5nbGUgYXBwcm92YWwgZnJvbSB0aGUgY2FsbGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAD0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZQEBbXVsdGktc2lnbmF0dXJlLCBidXQgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSBhcHByb3ZhbCBwcm9jZXNzLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuALhSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQuADQjIyBDb21wbGV4aXR5GQFPKFogKyBDKSB3aGVyZSBaIGlzIHRoZSBsZW5ndGggb2YgdGhlIGNhbGwgYW5kIEMgaXRzIGV4ZWN1dGlvbiB3ZWlnaHQuIGFzX211bHRpFAEkdGhyZXNob2xkLQMBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzzAFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnSVAwGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAShtYXhfd2VpZ2h01QEBGFdlaWdodAABqFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgA9ASoqSWYgdGhlIGFwcHJvdmFsIHRocmVzaG9sZCBpcyBtZXQgKGluY2x1ZGluZyB0aGUgc2VuZGVyJ3MgYXBwcm92YWwpLCB0aGlzIHdpbGxFAWltbWVkaWF0ZWx5IGV4ZWN1dGUgdGhlIGNhbGwuKiogVGhpcyBpcyB0aGUgb25seSB3YXkgdG8gZXhlY3V0ZSBhIG11bHRpc2lnIGNhbGwgLcBgYXBwcm92ZV9hc19tdWx0aWAgd2lsbCBuZXZlciB0cmlnZ2VyIGV4ZWN1dGlvbi4ALQFQYXltZW50OiBgRGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHBsdXM9AWB0aHJlc2hvbGRgIHRpbWVzIGBEZXBvc2l0RmFjdG9yYC4gSXQgaXMgcmV0dXJuZWQgb25jZSB0aGlzIGRpc3BhdGNoIGhhcHBlbnMgb3I0aXMgY2FuY2VsbGVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuWQEtIGBtYXliZV90aW1lcG9pbnRgOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiB0aGlzIG11c3QgYmUgYE5vbmVgLiBJZiBpdCBpc1EBbm90IHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiBpdCBtdXN0IGJlIGBTb21lYCwgd2l0aCB0aGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5k1HRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWwgdHJhbnNhY3Rpb24uiC0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBleGVjdXRlZC4ATQFOT1RFOiBGb3IgaW50ZXJtZWRpYXRlIGFwcHJvdmFscyAobm90IHRoZSBmaW5hbCBhcHByb3ZhbCksIHlvdSBzaG91bGQgZ2VuZXJhbGx5IHVzZUUBYGFwcHJvdmVfYXNfbXVsdGlgIGluc3RlYWQsIHNpbmNlIGl0IG9ubHkgcmVxdWlyZXMgYSBoYXNoIG9mIHRoZSBjYWxsIGFuZCBpcyBtb3JlKGVmZmljaWVudC4AWQFSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQgaWYgYHRocmVzaG9sZGAgaXMgZXhhY3RseSBgMWAuIE90aGVyd2lzZVUBb24gc3VjY2VzcywgcmVzdWx0IGlzIGBPa2AgYW5kIHRoZSByZXN1bHQgZnJvbSB0aGUgaW50ZXJpb3IgY2FsbCwgaWYgaXQgd2FzIGV4ZWN1dGVkLNxtYXkgYmUgZm91bmQgaW4gdGhlIGRlcG9zaXRlZCBgTXVsdGlzaWdFeGVjdXRlZGAgZXZlbnQuADQjIyBDb21wbGV4aXR5UC0gYE8oUyArIFogKyBDYWxsKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuIQEtIE9uZSBjYWxsIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhaKWAgd2hlcmUgYFpgIGlzIHR4LWxlbi68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQubC0gVGhlIHdlaWdodCBvZiB0aGUgYGNhbGxgLk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC5AYXBwcm92ZV9hc19tdWx0aRQBJHRocmVzaG9sZC0DAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW50lQMBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABJGNhbGxfaGFzaAgBIFt1ODsgMzJdAAEobWF4X3dlaWdodNUBARhXZWlnaHQAAphVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4AOQEqKlRoaXMgZnVuY3Rpb24gd2lsbCBORVZFUiBleGVjdXRlIHRoZSBjYWxsLCBldmVuIGlmIHRoZSBhcHByb3ZhbCB0aHJlc2hvbGQgaXNRAXJlYWNoZWQuKiogSXQgb25seSByZWdpc3RlcnMgYXBwcm92YWwuIFRvIGFjdHVhbGx5IGV4ZWN1dGUgdGhlIGNhbGwsIGBhc19tdWx0aWAgbXVzdPBiZSBjYWxsZWQgd2l0aCB0aGUgZnVsbCBjYWxsIGRhdGEgYnkgYW55IG9mIHRoZSBzaWduYXRvcmllcy4ATQFUaGlzIGZ1bmN0aW9uIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gYGFzX211bHRpYCBmb3IgaW50ZXJtZWRpYXRlIGFwcHJvdmFscyBzaW5jZSBpdNBvbmx5IHJlcXVpcmVzIHRoZSBjYWxsIGhhc2gsIG5vdCB0aGUgZnVsbCBjYWxsIGRhdGEuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4APQFOT1RFOiBUbyBleGVjdXRlIHRoZSBjYWxsIGFmdGVyIGFwcHJvdmFscyBhcmUgZ2F0aGVyZWQsIGFueSBzaWduYXRvcnkgbXVzdCBjYWxsKQFgYXNfbXVsdGlgIHdpdGggdGhlIGZ1bGwgY2FsbCBkYXRhLiBUaGlzIGZ1bmN0aW9uIGNhbm5vdCBleGVjdXRlIHRoZSBjYWxsLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLjxjYW5jZWxfYXNfbXVsdGkQASR0aHJlc2hvbGQtAwEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPMAURWZWM8VDo6QWNjb3VudElkPgABJHRpbWVwb2ludJkDAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEkY2FsbF9oYXNoCAEgW3U4OyAzMl0AA1RVAUNhbmNlbCBhIHByZS1leGlzdGluZywgb24tZ29pbmcgbXVsdGlzaWcgdHJhbnNhY3Rpb24uIEFueSBkZXBvc2l0IHJlc2VydmVkIHByZXZpb3VzbHnEZm9yIHRoaXMgb3BlcmF0aW9uIHdpbGwgYmUgdW5yZXNlcnZlZCBvbiBzdWNjZXNzLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuXQEtIGB0aW1lcG9pbnRgOiBUaGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5kIHRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWx4dHJhbnNhY3Rpb24gZm9yIHRoaXMgZGlzcGF0Y2guzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC4wLSBPbmUgZXZlbnQuhC0gSS9POiAxIHJlYWQgYE8oUylgLCBvbmUgcmVtb3ZlLnAtIFN0b3JhZ2U6IHJlbW92ZXMgb25lIGl0ZW0uMHBva2VfZGVwb3NpdAwBJHRocmVzaG9sZC0DAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAEkY2FsbF9oYXNoCAEgW3U4OyAzMl0ABDT0UG9rZSB0aGUgZGVwb3NpdCByZXNlcnZlZCBmb3IgYW4gZXhpc3RpbmcgbXVsdGlzaWcgb3BlcmF0aW9uLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBtdXN0IGJlIHRoZSBvcmlnaW5hbCBkZXBvc2l0b3Igb2ZcdGhlIG11bHRpc2lnIG9wZXJhdGlvbi4AAQFUaGUgdHJhbnNhY3Rpb24gZmVlIGlzIHdhaXZlZCBpZiB0aGUgZGVwb3NpdCBhbW91bnQgaGFzIGNoYW5nZWQuABkBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgbmVlZGVkIGZvciB0aGlzIG11bHRpc2lnLj0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZSwgIG11bHRpc2lnLgUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdGhpcyBkZXBvc2l0IGlzIHJlc2VydmVkIGZvci4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpUDBBhPcHRpb24EBFQBmQMBCBBOb25lAAAAEFNvbWUEAJkDAAABAACZAwg8cGFsbGV0X211bHRpc2lnJFRpbWVwb2ludAQsQmxvY2tOdW1iZXIBOAAIARhoZWlnaHQ4ASxCbG9ja051bWJlcgABFGluZGV4OAEMdTMyAACdAwwscGFsbGV0X3N1ZG8YcGFsbGV0EENhbGwEBFQAARQQc3VkbwQBEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAENQFBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLlRzdWRvX3VuY2hlY2tlZF93ZWlnaHQIARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodNUBARhXZWlnaHQAARQ1AUF1dGhlbnRpY2F0ZXMgdGhlIHN1ZG8ga2V5IGFuZCBkaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGBSb290YCBvcmlnaW4uLQFUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwsIGFuZCBpbnN0ZWFkIGFsbG93cyB0aGWwU3VkbyB1c2VyIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLhxzZXRfa2V5BAEMbmV3AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAghdAUF1dGhlbnRpY2F0ZXMgdGhlIGN1cnJlbnQgc3VkbyBrZXkgYW5kIHNldHMgdGhlIGdpdmVuIEFjY291bnRJZCAoYG5ld2ApIGFzIHRoZSBuZXcgc3VkbxBrZXkuHHN1ZG9fYXMIAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAMQTQFBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgU2lnbmVkYCBvcmlnaW4gZnJvbUBhIGdpdmVuIGFjY291bnQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ocmVtb3ZlX2tleQAEDIRQZXJtYW5lbnRseSByZW1vdmVzIHRoZSBzdWRvIGtleS4AbCoqVGhpcyBjYW5ub3QgYmUgdW4tZG9uZS4qKgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6hAwwwcGFsbGV0X3Byb3h5GHBhbGxldBBDYWxsBARUAAEsFHByb3h5DAEQcmVhbAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAFAZm9yY2VfcHJveHlfdHlwZaUDAVBPcHRpb248VDo6UHJveHlUeXBlPgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAkTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXNlZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LiRhZGRfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAEkRQFSZWdpc3RlciBhIHByb3h5IGFjY291bnQgZm9yIHRoZSBzZW5kZXIgdGhhdCBpcyBhYmxlIHRvIG1ha2UgY2FsbHMgb24gaXRzIGJlaGFsZi4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoRAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byBtYWtlIGEgcHJveHku/C0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgYWxsb3dlZCBmb3IgdGhpcyBwcm94eSBhY2NvdW50Lk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4wcmVtb3ZlX3Byb3h5DAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAEUZGVsYXk4AURCbG9ja051bWJlckZvcjxUPgACHKhVbnJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczolAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byByZW1vdmUgYXMgYSBwcm94eS5BAS0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgY3VycmVudGx5IGVuYWJsZWQgZm9yIHRoZSByZW1vdmVkIHByb3h5IGFjY291bnQuOHJlbW92ZV9wcm94aWVzAAMYtFVucmVnaXN0ZXIgYWxsIHByb3h5IGFjY291bnRzIGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAF0BV0FSTklORzogVGhpcyBtYXkgYmUgY2FsbGVkIG9uIGFjY291bnRzIGNyZWF0ZWQgYnkgYGNyZWF0ZV9wdXJlYCwgaG93ZXZlciBpZiBkb25lLCB0aGVuWQF0aGUgdW5yZXNlcnZlZCBmZWVzIHdpbGwgYmUgaW5hY2Nlc3NpYmxlLiAqKkFsbCBhY2Nlc3MgdG8gdGhpcyBhY2NvdW50IHdpbGwgYmUgbG9zdC4qKixjcmVhdGVfcHVyZQwBKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAEUZGVsYXk4AURCbG9ja051bWJlckZvcjxUPgABFGluZGV4LQMBDHUxNgAESDkBU3Bhd24gYSBmcmVzaCBuZXcgYWNjb3VudCB0aGF0IGlzIGd1YXJhbnRlZWQgdG8gYmUgb3RoZXJ3aXNlIGluYWNjZXNzaWJsZSwgYW5k/GluaXRpYWxpemUgaXQgd2l0aCBhIHByb3h5IG9mIGBwcm94eV90eXBlYCBmb3IgYG9yaWdpbmAgc2VuZGVyLgBsUmVxdWlyZXMgYSBgU2lnbmVkYCBvcmlnaW4uAFEBLSBgcHJveHlfdHlwZWA6IFRoZSB0eXBlIG9mIHRoZSBwcm94eSB0aGF0IHRoZSBzZW5kZXIgd2lsbCBiZSByZWdpc3RlcmVkIGFzIG92ZXIgdGhlTQFuZXcgYWNjb3VudC4gVGhpcyB3aWxsIGFsbW9zdCBhbHdheXMgYmUgdGhlIG1vc3QgcGVybWlzc2l2ZSBgUHJveHlUeXBlYCBwb3NzaWJsZSB0b3hhbGxvdyBmb3IgbWF4aW11bSBmbGV4aWJpbGl0eS5RAS0gYGluZGV4YDogQSBkaXNhbWJpZ3VhdGlvbiBpbmRleCwgaW4gY2FzZSB0aGlzIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgc2FtZV0BdHJhbnNhY3Rpb24gKGUuZy4gd2l0aCBgdXRpbGl0eTo6YmF0Y2hgKS4gVW5sZXNzIHlvdSdyZSB1c2luZyBgYmF0Y2hgIHlvdSBwcm9iYWJseSBqdXN0QHdhbnQgdG8gdXNlIGAwYC5NAS0gYGRlbGF5YDogVGhlIGFubm91bmNlbWVudCBwZXJpb2QgcmVxdWlyZWQgb2YgdGhlIGluaXRpYWwgcHJveHkuIFdpbGwgZ2VuZXJhbGx5IGJlFHplcm8uAFEBRmFpbHMgd2l0aCBgRHVwbGljYXRlYCBpZiB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGluIHRoaXMgdHJhbnNhY3Rpb24sIGZyb20gdGhlmHNhbWUgc2VuZGVyLCB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMuAORGYWlscyBpZiB0aGVyZSBhcmUgaW5zdWZmaWNpZW50IGZ1bmRzIHRvIHBheSBmb3IgZGVwb3NpdC4ka2lsbF9wdXJlFAEcc3Bhd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAARRpbmRleC0DAQx1MTYAARhoZWlnaHRgAURCbG9ja051bWJlckZvcjxUPgABJGV4dF9pbmRleGABDHUzMgAFQKBSZW1vdmVzIGEgcHJldmlvdXNseSBzcGF3bmVkIHB1cmUgcHJveHkuAEkBV0FSTklORzogKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiogQW55IGZ1bmRzIGhlbGQgaW4gaXQgd2lsbCBiZTRpbmFjY2Vzc2libGUuAFkBUmVxdWlyZXMgYSBgU2lnbmVkYCBvcmlnaW4sIGFuZCB0aGUgc2VuZGVyIGFjY291bnQgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieSBhIGNhbGwgdG+wYGNyZWF0ZV9wdXJlYCB3aXRoIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVycy4AVQEtIGBzcGF3bmVyYDogVGhlIGFjY291bnQgdGhhdCBvcmlnaW5hbGx5IGNhbGxlZCBgY3JlYXRlX3B1cmVgIHRvIGNyZWF0ZSB0aGlzIGFjY291bnQuVQEtIGBpbmRleGA6IFRoZSBkaXNhbWJpZ3VhdGlvbiBpbmRleCBvcmlnaW5hbGx5IHBhc3NlZCB0byBgY3JlYXRlX3B1cmVgLiBQcm9iYWJseSBgMGAuCQEtIGBwcm94eV90eXBlYDogVGhlIHByb3h5IHR5cGUgb3JpZ2luYWxseSBwYXNzZWQgdG8gYGNyZWF0ZV9wdXJlYC5FAS0gYGhlaWdodGA6IFRoZSBoZWlnaHQgb2YgdGhlIGNoYWluIHdoZW4gdGhlIGNhbGwgdG8gYGNyZWF0ZV9wdXJlYCB3YXMgcHJvY2Vzc2VkLlEBLSBgZXh0X2luZGV4YDogVGhlIGV4dHJpbnNpYyBpbmRleCBpbiB3aGljaCB0aGUgY2FsbCB0byBgY3JlYXRlX3B1cmVgIHdhcyBwcm9jZXNzZWQuADUBRmFpbHMgd2l0aCBgTm9QZXJtaXNzaW9uYCBpbiBjYXNlIHRoZSBjYWxsZXIgaXMgbm90IGEgcHJldmlvdXNseSBjcmVhdGVkIHB1cmX4YWNjb3VudCB3aG9zZSBgY3JlYXRlX3B1cmVgIGNhbGwgaGFzIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVycy4gYW5ub3VuY2UIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g8ATRDYWxsSGFzaE9mPFQ+AAY8BQFQdWJsaXNoIHRoZSBoYXNoIG9mIGEgcHJveHktY2FsbCB0aGF0IHdpbGwgYmUgbWFkZSBpbiB0aGUgZnV0dXJlLgBdAVRoaXMgbXVzdCBiZSBjYWxsZWQgc29tZSBudW1iZXIgb2YgYmxvY2tzIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBgcHJveHlgIGlzIGF0dGVtcHRlZCUBaWYgdGhlIGRlbGF5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJveHkgcmVsYXRpb25zaGlwIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLgARAU5vIG1vcmUgdGhhbiBgTWF4UGVuZGluZ2AgYW5ub3VuY2VtZW50cyBtYXkgYmUgbWFkZSBhdCBhbnkgb25lIHRpbWUuAAkBVGhpcyB3aWxsIHRha2UgYSBkZXBvc2l0IG9mIGBBbm5vdW5jZW1lbnREZXBvc2l0RmFjdG9yYCBhcyB3ZWxsIGFzGQFgQW5ub3VuY2VtZW50RGVwb3NpdEJhc2VgIGlmIHRoZXJlIGFyZSBubyBvdGhlciBwZW5kaW5nIGFubm91bmNlbWVudHMuACUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgcHJveHkgb2YgYHJlYWxgLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZW1vdmVfYW5ub3VuY2VtZW50CAEQcmVhbAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY2FsbF9oYXNoPAE0Q2FsbEhhc2hPZjxUPgAHKHBSZW1vdmUgYSBnaXZlbiBhbm5vdW5jZW1lbnQuAFkBTWF5IGJlIGNhbGxlZCBieSBhIHByb3h5IGFjY291bnQgdG8gcmVtb3ZlIGEgY2FsbCB0aGV5IHByZXZpb3VzbHkgYW5ub3VuY2VkIGFuZCByZXR1cm4wdGhlIGRlcG9zaXQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuFQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC5McmVqZWN0X2Fubm91bmNlbWVudAgBIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g8ATRDYWxsSGFzaE9mPFQ+AAgosFJlbW92ZSB0aGUgZ2l2ZW4gYW5ub3VuY2VtZW50IG9mIGEgZGVsZWdhdGUuAGEBTWF5IGJlIGNhbGxlZCBieSBhIHRhcmdldCAocHJveGllZCkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoYXQgb25lIG9mIHRoZWlyIGRlbGVnYXRlcyUBKGBkZWxlZ2F0ZWApIGhhcyBhbm5vdW5jZWQgdGhleSB3YW50IHRvIGV4ZWN1dGUuIFRoZSBkZXBvc2l0IGlzIHJldHVybmVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOvQtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRoYXQgcHJldmlvdXNseSBhbm5vdW5jZWQgdGhlIGNhbGwuvC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUuPHByb3h5X2Fubm91bmNlZBABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBlpQMBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ACSxNAURpc3BhdGNoIHRoZSBnaXZlbiBgY2FsbGAgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3JpemVkIGZvciB0aHJvdWdoMGBhZGRfcHJveHlgLgCoUmVtb3ZlcyBhbnkgY29ycmVzcG9uZGluZyBhbm5vdW5jZW1lbnQocykuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuYQEtIGBmb3JjZV9wcm94eV90eXBlYDogU3BlY2lmeSB0aGUgZXhhY3QgcHJveHkgdHlwZSB0byBiZSB1c2VkIGFuZCBjaGVja2VkIGZvciB0aGlzIGNhbGwu0C0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC4wcG9rZV9kZXBvc2l0AAogSQFQb2tlIC8gQWRqdXN0IGRlcG9zaXRzIG1hZGUgZm9yIHByb3hpZXMgYW5kIGFubm91bmNlbWVudHMgYmFzZWQgb24gY3VycmVudCB2YWx1ZXMuDQFUaGlzIGNhbiBiZSB1c2VkIGJ5IGFjY291bnRzIHRvIHBvc3NpYmx5IGxvd2VyIHRoZWlyIGxvY2tlZCBhbW91bnQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AAQFUaGUgdHJhbnNhY3Rpb24gZmVlIGlzIHdhaXZlZCBpZiB0aGUgZGVwb3NpdCBhbW91bnQgaGFzIGNoYW5nZWQuAIxFbWl0cyBgRGVwb3NpdFBva2VkYCBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6lAwQYT3B0aW9uBARUAakDAQgQTm9uZQAAABBTb21lBACpAwAAAQAAqQMIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUkUHJveHlUeXBlAAEYDEFueQAAACxOb25UcmFuc2ZlcgABACxDYW5jZWxQcm94eQACACBJZGVudGl0eQADAERJZGVudGl0eUp1ZGdlbWVudAAEACBDb2xsYXRvcgAFAACtAwxMaW5kaXZfcGFsbGV0X3Blb3BsZRhwYWxsZXQQQ2FsbAQEVAABICx1bmRlcl9hbGlhcwQBEGNhbGwgAbRCb3g8PFQgYXMgZnJhbWVfc3lzdGVtOjpDb25maWc+OjpSdW50aW1lQ2FsbD4AABAVAURpc3BhdGNoIGEgY2FsbCB1bmRlciBhbiBhbGlhcyB1c2luZyB0aGUgYGFjY291bnQgPC0+IGFsaWFzYCBtYXBwaW5nLgBFAVRoaXMgaXMgYSBjYWxsIHZlcnNpb24gb2YgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBgQXNQZXJzb25hbEFsaWFzV2l0aEFjY291bnRgLiUBSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSB0cmFuc2FjdGlvbiBleHRlbnNpb24gaW5zdGVhZCB3aGVuIHN1aXRhYmxlLkRzZXRfYWxpYXNfYWNjb3VudAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAATRjYWxsX3ZhbGlkX2F0OAFEQmxvY2tOdW1iZXJGb3I8VD4AASQtAVRoaXMgdHJhbnNhY3Rpb24gaXMgcmVmdW5kZWQgaWYgc3VjY2Vzc2Z1bCBhbmQgbm8gYWxpYXMgd2FzIHByZXZpb3VzbHkgc2V0LgCwVGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgY2FsbF92YWxpZF9hdGAgdW50aWy8YGNhbGxfdmFsaWRfYXQgKyBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYC4dAWBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYCBpcyBhIGNvbnN0YW50IGF2YWlsYWJsZSBpbiB0aGUgbWV0YWRhdGEuACxQYXJhbWV0ZXJzOrgtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gc2V0IHRoZSBhbGlhcyBmb3IuAQEtIGBjYWxsX3ZhbGlkX2F0YDogVGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBjYWxsIGJlY29tZXMgdmFsaWQuTHVuc2V0X2FsaWFzX2FjY291bnQAAgQVAVJlbW92ZSB0aGUgbWFwcGluZyBmcm9tIGEgcGFydGljdWxhciBhbGlhcyB0byBpdHMgcmVnaXN0ZXJlZCBhY2NvdW50Lmhmb3JjZV9yZWNvZ25pemVfcGVyc29uaG9vZAQBGHBlb3BsZbEDAUBWZWM8TWVtYmVyT2Y8VD4+AAMQ4FJlY29nbml6ZSBhIHNldCBvZiBwZW9wbGUgd2l0aG91dCBhbnkgYWRkaXRpb25hbCBjaGVja3MuAFEBVGhlIHBlb3BsZSBhcmUgaWRlbnRpZmllZCBieSB0aGUgcHJvdmlkZWQgbGlzdCBvZiBrZXlzIGFuZCB3aWxsIGVhY2ggYmUgYXNzaWduZWQsIGlumG9yZGVyLCB0aGUgbmV4dCBhdmFpbGFibGUgcGVyc29uYWwgSUQuXHNldF9wZXJzb25hbF9pZF9hY2NvdW50CAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABNGNhbGxfdmFsaWRfYXQ4AURCbG9ja051bWJlckZvcjxUPgAEPGhTZXQgYSBwZXJzb25hbCBpZCBhY2NvdW50LgBNAVRoZSBhY2NvdW50IGNhbiB0aGVuIGJlIHVzZWQgdG8gc2lnbiB0cmFuc2FjdGlvbnMgb24gYmVoYWxmIG9mIHRoZSBwZXJzb25hbCBpZCwgYW5kpHByb3ZpZGUgcmVwbGF5IHByb3RlY3Rpb24gd2l0aCB0aGUgbm9uY2UuAFEBVGhpcyB0cmFuc2FjdGlvbiBpcyByZWZ1bmRlZCBpZiBzdWNjZXNzZnVsIGFuZCBubyBhY2NvdW50IHdhcyBwcmV2aW91c2x5IHNldCBmb3IgdGhlMHBlcnNvbmFsIGlkLgCwVGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgY2FsbF92YWxpZF9hdGAgdW50aWy8YGNhbGxfdmFsaWRfYXQgKyBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYC4dAWBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYCBpcyBhIGNvbnN0YW50IGF2YWlsYWJsZSBpbiB0aGUgbWV0YWRhdGEuACxQYXJhbWV0ZXJzOrgtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gc2V0IHRoZSBhbGlhcyBmb3IuAQEtIGBjYWxsX3ZhbGlkX2F0YDogVGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBjYWxsIGJlY29tZXMgdmFsaWQuZHVuc2V0X3BlcnNvbmFsX2lkX2FjY291bnQABQR4VW5zZXQgdGhlIHBlcnNvbmFsIGlkIGFjY291bnQuYGNyZWF0ZV9wZW9wbGVfY29sbGVjdGlvbgAGKHRDcmVhdGUgdGhlIHBlb3BsZSBjb2xsZWN0aW9uLgApAVRoaXMgY2FsbCBpcyB2YWxpZCBvbmx5IGlmIHRoZSBjb2xsZWN0aW9uIGRvZXNuJ3QgZXhpc3QgeWV0LiBPbmNlIGNyZWF0ZWQsjHRoaXMgY2FsbCBjYW5ub3QgYmUgZXhlY3V0ZWQgYWdhaW4uANRUaGUgY29sbGVjdGlvbiBpcyBjcmVhdGVkIHdpdGggYSBmaXhlZCBjb25maWd1cmF0aW9uOrgtIE93bmVyOiBDb25maWd1cmVkIHZpYSBgQ29sbGVjdGlvbk93bmVyYCB0eXBlwC0gT25ib2FyZGluZyBzaXplOiBgUEVPUExFX09OQk9BUkRJTkdfU0laRWAgKDEwKUgtIE1vZGU6IGBGbGV4aWJsZWBMLSBSaW5nIHNpemU6IGBSMmU5YFhjbGVhbl91cF9zdGFsZV9hbGlhc2VzBAEcYWxpYXNlc7UDAdxCb3VuZGVkVmVjPENvbnRleHR1YWxBbGlhcywgQ29uc3RVMzI8TUFYX0JVTEtfQ0xFQU5VUD4+AAdQoFJlbW92ZSBzdGFsZSBhbGlhcyA8LT4gYWNjb3VudCBtYXBwaW5ncy4AYEEgbWFwcGluZyBpcyBzdGFsZSB3aGVuOi0BLSBpdHMgY29udGV4dCBoYXMgYmVlbiByZW1vdmVkIGZyb20gW2BDb25maWc6OkFjY291bnRDb250ZXh0c2BdIChnb3Zlcm5hbmNlqCAgcmVjb25maWd1cmF0aW9uLCBlbmRlZCBhaXJkcm9wIGV0Yy4pLCBvcnAtIGl0cyByaW5nIGhhcyBiZWVuIGRlbGV0ZWQuAB0BUmV2aXNpb24gbWlzbWF0Y2hlcyBkbyBub3QgcmVuZGVyIGFuIGFsaWFzIHN0YWxlLiBUaGUgdXNlciBjYW4gY29udGludWUVAXRyYW5zYWN0aW5nIHZpYSBgQXNQZXJzb25hbEFsaWFzV2l0aEFjY291bnRSZXZpc2VkYCB3aXRob3V0IGhhdmluZyB0b0xyZWRvIGFjY291bnQgc2V0dXAuAPxUeXBpY2FsbHkgc3VibWl0dGVkIGJ5IHRoZSBPQ1csIGJ1dCB0aGUgZGlzcGF0Y2ggZG9lcyBub3QgdHJ1c3SodGhlIGNhbGxlci4gRWFjaCBhbGlhcyBpcyByZS12YWxpZGF0ZWQgdmlh9FtgU2VsZjo6ZW5zdXJlX2FsaWFzX2lzX3N0YWxlYF07IHRob3NlIHRoYXQgYXJlIG5vdCBzdGFsZSBhcmUgc2tpcHBlZC4A8EF0IG1vc3QgW2BNQVhfQlVMS19DTEVBTlVQYF0gYWxpYXNlcyBhcmUgcHJvY2Vzc2VkIHBlciBjYWxsLgABAVRoZSB0cmFuc2FjdGlvbiBzb3VyY2UgbXVzdCBiZSBsb2NhbCBvciBpbi1ibG9jay4gVGh1cywgZXh0ZXJuYWx4aW52b2NhdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrEDAAACCAC1AwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAUkDBFMAAAQAuQMBGFZlYzxUPgAAuQMAAAJJAwC9AwxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldBBDYWxsBARUAAFEEHZvdGUIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AAEcb3BpbmlvbsEDASRKdWRnZW1lbnQAAATgRmVlbGVzcyBvbiBzdWNjZXNzIChkZXRlcm1pbmVkIG9ubHkgYnkgdG9wIHRocmVlIGxpbmVzKS4oY2xvc2VfY2FzZQQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgAAQAoY2xlYW5fdm90ZQgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgAARR2b3RlcggBFEFsaWFzAAIMJQFPcmlnaW4gbXVzdCBiZSBgTm9uZWAuIFRoZSB0cmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgYQF3aGVuIHRoZSBzb3VyY2UgaXMgbG9jYWwgKGUuZy4gZnJvbSB0aGUgb2ZmY2hhaW4gd29ya2VyKS4gRm9yIGV4dGVybmFsIHRyYW5zYWN0aW9ucywgdXNlUGBjbGVhbl92b3RlX3NpZ25lZGAuJHJlYXBfY2FzZQQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgAAwAkaW50ZXJ2ZW5lCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAABHHZlcmRpY3TBAwEkSnVkZ2VtZW50AAQAKGNsYWltX3ZvdGUEAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AAUIIQFBIHBlcnNvbiBjbGFpbXMgdGhlIG1vYiBjcmVkaXQgYXNzb2NpYXRlZCB3aXRoIGEgY29ycmVjdCB2b3RlIG9uIGEgY2FzZS5gVGhlIGNhc2UgbXVzdCBiZSBgRG9uZWAuOHBheW91dF9yZXdhcmRzBAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQABgQJAUEgcGVyc29uIGNvbnZlcnRzIHRoZWlyIGNsYWltZWQgbW9iIGNyZWRpdCBpbnRvIGEgZGlyZWN0IHRyYW5zZmVyLixjbGFpbV92b3RlcwQBMGNhc2VfaW5kaWNlc8kDAThWZWM8Q2FzZUluZGV4PgAHCDUBQSBwZXJzb24gY2xhaW1zIG11bHRpcGxlIG1vYiBjcmVkaXRzIGFzc29jaWF0ZWQgYSBjb3JyZWN0IHZvdGUgb24gYSBjYXNlLiBUaGVQY2FzZSBtdXN0IGJlIGBEb25lYC5Ic3RhcnRfcGF5b3V0X3JvdW5kAAgAWHNjaGVkdWxlX3BheW91dF9yb3VuZHMMARhhbW91bnTEATBCYWxhbmNlT2Y8VD4AARRjb3VudDgBDHUzMgABGHBlcmlvZDgBREJsb2NrTnVtYmVyRm9yPFQ+AAkAWHJlbW92ZV9wYXlvdXRfc2NoZWR1bGUEARRpbmRleDgBDHUzMgAKADBjbGFpbV9jcmVkaXQACwAwY2xlYW5fcG9pbnRzCAEUcm91bmQ4AShSb3VuZEluZGV4AAEUdm90ZXIIARRBbGlhcwAMAEBmb3JjZV9yaXBlbl9jYXNlBAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAANACh0b3VjaF9jYXNlBAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAAOAFBjbGVhcl92b3RpbmdfcGVuYWx0eQAPAERjbGVhbl92b3RlX3NpZ25lZAgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgAARR2b3RlcggBFEFsaWFzABAEWE9yaWdpbiBtdXN0IGJlIHNpZ25lZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuwQMQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkkSnVkZ2VtZW50AAEIFFRydXRoBADFAwEUVHJ1dGgAAAAgQ29udGVtcHQAAQAAxQMQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkUVHJ1dGgAAQgQVHJ1ZQAAABRGYWxzZQABAADJAwAAAjgAzQMMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0EENhbGwEBFQAAVgUYXBwbHkAAAyQLSBEZWNsYXJlIGludGVudGlvbiB0byBnZXQgYSB0YXR0b28uTC0gRGVwb3NpdCBpcyB0YWtlbi64LSBgSW5rVHlwZWAgbWF5IG5vdCBiZSBgUHJvY2VkdXJhbERlcml2YXRpdmVgLjxzdWJtaXRfZXZpZGVuY2UEASBldmlkZW5jZQgBMEV2aWRlbmNlSGFzaAABELwtIE9wZW4gYSBNb2IgUnVsZSBjYXNlIHRvIGp1ZGdlIHRoZSBgZXZpZGVuY2VgLvwtIFJlcXVlc3RzIGEganVkZ2VtZW50IGZvciB0aGUgcHJvb2Ytb2YtaW5rIGV2aWRlbmNlIHN0YXRlbWVudC5RAS0gTmVlZHMgYFNpZ25lZEV4dGVuc2lvbmAgdG8gYXZvaWQgdXBmcm9udCByZXF1aXJlbWVudCBmb3IgZmVlIGlmIGBqdWRnZW1lbnRzID09IDBgLjkBLSBJZiBganVkZ2VtZW50cyA+IDBgLCB0aGVuIGFuIGFkZGl0aW9uYWwgZmVlIHNob3VsZCBiZSBjaGFyZ2VkIGludG8gVHJlYXN1cnkuGGp1ZGdlZAwBGHRpY2tldDgBRE9yYWNsZVRpY2tldE9mPFQ+AAEcY29udGV4dHgBQEp1ZGdlbWVudENvbnRleHQAASRqdWRnZW1lbnTBAwEkSnVkZ2VtZW50AAIE6ElzIGNhbGxlZCBieSB0aGUgT3JhY2xlIHdoZW4gdGhlIGV2aWRlbmNlIGhhcyBiZWVuIGp1ZGdlZC5EcmVnaXN0ZXJfcmVmZXJyZWQMAQxrZXkIASxNZW1iZXJPZjxUPgABLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAAFIcHJvb2Zfb2Zfb3duZXJzaGlw0QMBsDxUOjpDcnlwdG8gYXMgR2VuZXJhdGVWZXJpZmlhYmxlPjo6U2lnbmF0dXJlAAMkUC0gR2V0cyBhIG5ldyBgaW5kZXhgeC0gUHV0cyBhbiBlbnRyeSBpbnRvIGBQZW9wbGVgLpgtIENhbGxzIFBlb3BsZS9gbmV3UGVyc29uKGluZGV4LCBrZXkpYAAsIyBBcmd1bWVudHOwKiBga2V5YCAtIFRoZSBwZXJzb25hbCBpZGVudGl0eSB0byByZWdpc3Rlci4hASogYGRlc3RpbmF0aW9uYCAtIFRoZSBhY2NvdW50IHJlY2VpdmluZyB0aGUgY2FuZGlkYXRlJ3MgcmVmZXJyYWwgcmV3YXJkLkkBKiBgcHJvb2Zfb2Zfb3duZXJoc2lwYCAtIFRoZSBzaWduYXR1cmUgb2YgcHJlZGVmaW5lZCBwcmVmaXggYCJwb3AgcmVnaXN0ZXIgdXNpbmciYKggIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBzZW5kZXIgYWNjb3VudCBpZC5UcmVnaXN0ZXJfbm9uX3JlZmVycmVkDAEMa2V5CAEsTWVtYmVyT2Y8VD4AASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAABSHByb29mX29mX293bmVyc2hpcNEDAbA8VDo6Q3J5cHRvIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZQAEOFAtIEdldHMgYSBuZXcgYGluZGV4YHgtIFB1dHMgYW4gZW50cnkgaW50byBgUGVvcGxlYC6YLSBDYWxscyBQZW9wbGUvYG5ld1BlcnNvbihpbmRleCwga2V5KWAALCMgQXJndW1lbnRzsCogYGtleWAgLSBUaGUgcGVyc29uYWwgaWRlbnRpdHkgdG8gcmVnaXN0ZXIuwCogYGRlc3RpbmF0aW9uYCAtIFRoZSBhY2NvdW50IHJlY2VpdmluZyByZXdhcmRzLkkBKiBgcHJvb2Zfb2Zfb3duZXJoc2lwYCAtIFRoZSBzaWduYXR1cmUgb2YgcHJlZGVmaW5lZCBwcmVmaXggYCJwb3AgcmVnaXN0ZXIgdXNpbmciYKggIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBzZW5kZXIgYWNjb3VudCBpZC4AKCMgV2FybmluZzoAOQFUaGlzIGNhbGwgY2FuIHBheSB0d28gcmV3YXJkcyB0byB0aGUgc2FtZSBhY2NvdW50IGZvciBub24tcmVmZXJyZWQgY2FuZGlkYXRlcy4pAVRoZSBhcHAgaXMgcmVzcG9uc2libGUgZm9yIGFueSBhZGRpdGlvbmFsIHByaXZhY3kgaGFuZGxpbmcgYWZ0ZXIgdHJhbnNmZXIuGHJlcm9sbAAFABhjb21taXQIARhjaG9pY2XVAwEkSW5rQ2hvaWNlAAEocmVxdWlyZV9pZBUDAUhPcHRpb248UGVyc29uYWxJZD4ABhRJAUNvbW1pdCB0byBhIGRlc2lnbiBhbmQgYXV0aG9yaXplIHRoZSBzdG9yYWdlIGZvciAocG9zc2libHkganVzdCBpbml0aWFsKSBldmlkZW5jZS4AVQFJZiBhIHNwZWNpZmljIHBlcnNvbmFsIGlkZW50aXR5IGlzIHJlcXVpcmVkLCB0aGVuIHRoaXMgY2FuIGJlIHBsYWNlZCBpbiBgcmVxdWlyZV9pZGAuQQFUaGlzIGNhbiBiZSBhbnkgdW51c2VkL3VucmVzZXJ2ZWQgcGVyc29uYWwgaWRlbnRpdHkgbm8gZ3JlYXRlciB0aGFuIHRoZSBgTmV4dElkYCBjb3VudGVyLjRhbGxvY2F0ZV9mdWxsAAcAHHRpbWVvdXQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAgMOQFPbmNlIGEgdGltZW91dCBwYXNzZXMsIHJlbW92ZXMgYSBjYW5kaWRhdGUgd2hvIGlzIHNlbGVjdGVkIGJ1dCBub3QgeWV0IHByb3Zlbi5ZAUlmIHRoZSBjYW5kaWRhdGUgd2FzIHJlZmVycmVkIHRoZW4gcmVmZXJyYWwgaXMgYmFkLCBpZiBjYW5kaWRhdGUgYXBwbGllZCB3aXRoIGRlcG9zaXQsTGRlcG9zaXQgaXMgc2xhc2hlZC4gZmxha2VvdXQACQS0UmVtb3ZlIGEgY2FuZGlkYXRlIHdobyBoYXMgbm90IHlldCBjb21taXR0ZWQuUGFwcGx5X3dpdGhfc2lnbmF0dXJlDAEgcmVmZXJyZXIoAShQZXJzb25hbElkAAEkc2lnbmF0dXJl2QMBSFQ6OlRpY2tldFNpZ25hdHVyZQABGHRpY2tldAQBJFQ6OlRpY2tldAAKEHRVdGlsaXplIGEgcmVmZXJyYWwgc2lnbmF0dXJlLgBdAVRoZSBwYXlsb2FkIHRvIGJlIHNpZ25lZCBieSB0aGUgcmVmZXJyZXIgdXNpbmcgdGhlaXIgcmVnaXN0ZXJlZCBrZXkgcGFpciBpcyB0aGUgZW5jb2RlZKRieXRlcyBvZiB0aGUgYWNjb3VudCBJRCBvZiB0aGUgY2FuZGlkYXRlLlRhcHBseV93aXRoX2ludml0YXRpb24MARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAAEYdGlja2V0BAEsVGlja2V0T2Y8VD4AASRzaWduYXR1cmXZAwFIVDo6VGlja2V0U2lnbmF0dXJlABMQ1EFwcGx5IHRvIHRoZSBQcm9vZi1vZi1JbmsgcHJvY2VzcyB3aXRoIGFuIGludml0YXRpb24uAFkBVGhlIHBheWxvYWQgdG8gYmUgc2lnbmVkIGJ5IHRoZSBpbnZpdGVyIHVzaW5nIHRoZWlyIHJlZ2lzdGVyZWQga2V5IHBhaXIgaXMgdGhlIGVuY29kZWSkYnl0ZXMgb2YgdGhlIGFjY291bnQgSUQgb2YgdGhlIGNhbmRpZGF0ZS5EYWRkX2Rlc2lnbl9mYW1pbHkMARRpbmRleC0DASxGYW1pbHlJbmRleAABEGtpbmThAwEoRmFtaWx5S2luZAABCGlkCAEgRmFtaWx5SWQACwTwQWRkIGEgZGVzaWduIGZhbWlseS4gTXVzdCBoYXZlIHByaXZpbGVnZWQgYWNjZXNzIHRvIGRvIHRoaXMuTHNldF9yZWZlcnJhbF90aWNrZXQEARh0aWNrZXQEASRUOjpUaWNrZXQADBi8QWRkIGEgcmVmZXJyYWwgdGlja2V0IGFzc29jaWF0ZWQgd2l0aCBhIHBlcnNvbi4AVQFPbmx5IG9uZSByZWZlcnJhbCB0aWNrZXQgbWF5IGJlIGFjdGl2ZSBhdCBhbnkgZ2l2ZW4gdGltZSBmb3Igb25lIHBlcnNvbi4gQ2FsbGluZyB0aGlzJQFleHRyaW5zaWMgd2hpbGUgYSB2YWxpZCB0aWNrZXQgaXMgc2V0IHdpbGwgb3ZlcndyaXRlIHRoZSBleGlzdGluZyB0aWNrZXQuADkBSWYgYW55IHBlbmRpbmcgcmVmZXJyYWwgcmV3YXJkcyBhcmUgcHJlc2VudCwgdGhleSBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgZmlyc3QuWGNhbmNlbF9yZWZlcnJhbF90aWNrZXQEARh0aWNrZXQEASRUOjpUaWNrZXQADQTIQ2FuY2VsIGEgcmVmZXJyYWwgdGlja2V0IGFzc29jaWF0ZWQgd2l0aCBhIHBlcnNvbi6McmVnaXN0ZXJfc3VjY2Vzc2Z1bF9yZWZlcnJhbF9yZXdhcmQEASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAAOADRncmFudF9pbnZpdGVzCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFGNvdW50OAEMdTMyAA8Y5EdyYW50cyBpbnZpdGVzIHRvIGFuIGFjY291bnQgc28gdGhleSBjYW4gZGlzdHJpYnV0ZSB0aGVtLgCYVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGF0aW9uc09yaWdpbi4AsC0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byBnaXZlIGludml0ZXMgdG8upC0gYGNvdW50YDogVGhlIG51bWJlciBvZiBpbnZpdGVzIHRvIGdpdmUukHJlbW92ZV9hdmFpbGFibGVfYW5kX3BlbmRpbmdfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRsaW1pdDgBDHUzMgAQGJxSZW1vdmUgYWxsIGludml0ZXMgZ2l2ZW4gdG8gYW4gYWNjb3VudC4AnFRoZSBvcmlnaW4gbXVzdCBiZSBgSW52aXRhdGlvbnNPcmlnaW5gLgDQLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgaW52aXRlcyBmcm9tLuwtIGBsaW1pdGA6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIGludml0ZXMgdG8gcmVtb3ZlLkRzZXRfaW52aXRlX3RpY2tldAQBGHRpY2tldAQBLFRpY2tldE9mPFQ+ABEUSEludml0ZSBhbiBhY2NvdW50LgANAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGludml0ZXMgbGVmdC4AlC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIHNldC5QY2FuY2VsX2ludml0ZV90aWNrZXQEARh0aWNrZXQEASxUaWNrZXRPZjxUPgASFFRDYW5jZWwgYW4gaW52aXRhdGlvbi4AIQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IHRoZSBhY2NvdW50IHRoYXQgb3ducyB0aGUgdGlja2V0IHRvIGNhbmNlbC4AoC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIGNhbmNlbC5Ec2V0X2NvbmZpZ3VyYXRpb24EARhjb25maWflAwF8Q29uZmlnUmVjb3JkPEJsb2NrTnVtYmVyRm9yPFQ+PgAyBBUBU2V0IHRoZSBjb25maWd1cmF0aW9uIHJlY29yZC4gTXVzdCBoYXZlIHByaXZpbGVnZWQgYWNjZXNzIHRvIGRvIHRoaXMuYHNldF9yZWltYnVyc2VtZW50X3ZhbHVlcwgBPHJlZmVycmVkX3ZhbHVlc+kDAehCb3VuZGVkVmVjPChCYWxhbmNlT2Y8VD4sIHUzMiksIFQ6Ok1heFJlaW1idXJzZW1lbnRWYWx1ZXM+AAE8cmVmZXJyZXJfdmFsdWVz6QMB6EJvdW5kZWRWZWM8KEJhbGFuY2VPZjxUPiwgdTMyKSwgVDo6TWF4UmVpbWJ1cnNlbWVudFZhbHVlcz4AMyhNAVNldCB0aGUgdmFsdWVzIG9mIHRoZSByZWltYnVyc2VtZW50IGF3YXJkZWQgdG8gcmVmZXJyZWQgY2FuZGlkYXRlcyBhcyB3ZWxsIGFzIHRoZWlyTQFyZWZlcnJlcnMsIGFsb25nIHdpdGggdGhlIG51bWJlciBvZiByZWltYnVyc2VtZW50cyBmb3IgZWFjaCB2YWx1ZS4gVGhlc2UgdmFsdWVzIGFyZSRzdG9yZWQgaW5RAXJldmVyc2Ugb3JkZXIgb2YgdGhlaXIgcHJpb3JpdHksIHNvIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBsaXN0IHdpbGwgYmUgdGhlIGZpcnN0IG9uZUkBdG8gYmUgdXNlZCBieSB0aGUgcmVpbWJ1cnNlbWVudCBzeXN0ZW0uIFRoZSBsZW5ndGggb2YgdGhlIHR3byBsaXN0cyBtdXN0IGJlIGVxdWFsLgAgV0FSTklORyEATQFBZnRlciB0aGUgbnVtYmVyIG9mIHJlaW1idXJzZW1lbnRzIGlzIGV4aGF1c3RlZCBmb3IgYSB2YWx1ZSBpbiB0aGUgbGlzdCwgdGhlIHBhbGxldPRzdGFydHMgdXNpbmcgdGhlIG5leHQgdmFsdWUgaW1tZWRpYXRlbHkgZm9yIGZ1dHVyZSB0cmFuc2ZlcnMuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtEDAAADQAAAAAwA1QMMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0JElua0Nob2ljZQABFEBEZXNpZ25lZEVsZWN0aXZlCAAtAwEsRmFtaWx5SW5kZXgAAC0DASxEZXNpZ25JbmRleAAAAERQcm9jZWR1cmFsQWNjb3VudAQALQMBLEZhbWlseUluZGV4AAEASFByb2NlZHVyYWxQZXJzb25hbAQALQMBLEZhbWlseUluZGV4AAIAKFByb2NlZHVyYWwIAC0DASxGYW1pbHlJbmRleAAADAEwVmFyaWFudEluZGV4AAMAUFByb2NlZHVyYWxEZXJpdmF0aXZlCAAoAShQZXJzb25hbElkAAAVAwFIT3B0aW9uPFBlcnNvbmFsSWQ+AAQAANkDCChzcF9ydW50aW1lOE11bHRpU2lnbmF0dXJlAAEQHEVkMjU1MTkEANEDAUhlZDI1NTE5OjpTaWduYXR1cmUAAAAcU3IyNTUxOQQA0QMBSHNyMjU1MTk6OlNpZ25hdHVyZQABABRFY2RzYQQA3QMBQGVjZHNhOjpTaWduYXR1cmUAAgAMRXRoBADdAwFYZWNkc2E6OktlY2Nha1NpZ25hdHVyZQADAADdAwAAA0EAAAAMAOEDDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldChGYW1pbHlLaW5kAAEQIERlc2lnbmVkBAEUY291bnQtAwEsRGVzaWduSW5kZXgAAABEUHJvY2VkdXJhbEFjY291bnQAAQBIUHJvY2VkdXJhbFBlcnNvbmFsAAIAKFByb2NlZHVyYWwEARRyYW5nZQwBMFZhcmlhbnRJbmRleAADAADlAwxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQwQ29uZmlnUmVjb3JkBCxCbG9ja051bWJlcgE4ACABOHJlcm9sbF90aW1lb3V0OAEsQmxvY2tOdW1iZXIAATxmYXN0dHJhY2tfY291bnQ4AQx1MzIAARxtYXhpbXVtOAEMdTMyAAE4ZnVsbF9hbGxvY19sZW4oAQx1NjQAAUBmdWxsX2FsbG9jX2NvdW50OAEMdTMyAAE4aW5pdF9hbGxvY19sZW4oAQx1NjQAAUBpbml0X2FsbG9jX2NvdW50OAEMdTMyAAEcdGltZW91dDgBLEJsb2NrTnVtYmVyAADpAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAe0DBFMAAAQA8QMBGFZlYzxUPgAA7QMAAAQIxDgA8QMAAALtAwD1AwxEaW5kaXZfcGFsbGV0X2dhbWUYcGFsbGV0EENhbGwEBFQAAUhMc2lnbl91cF93aXRoX2ludml0ZQgBOGlkZW50aWZpZXJfa2V53QMBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEcYWlyZHJvcPkDAZRPcHRpb248QWlyZHJvcFZyZjxBaXJkcm9wUHJvb2ZPZjxUPj4+AAA40FNpZ24gdXAgZm9yIHRoZSBnYW1lIHVzaW5nIGFuIGFjY291bnQgYW5kIGFuIGludml0ZS4AFQFUaGlzIGlzIGZvciBuZXcgcGxheWVycyBvciBhcmNoaXZlZCBwbGF5ZXJzLCBvdGhlciBwbGF5ZXJzIHNob3VsZCB1c2WoW2BQYWxsZXQ6OnNpZ25fdXBfd2l0aF9hY2NvdW50YF0gZm9yIGZyZWUuANRBIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVnaXN0cmF0aW9uIHBoYXNlLgBRAWBhaXJkcm9wYCBvcHRpb25hbGx5IGVudGVycyB0aGUgcGxheWVyIGludG8gdGhpcyBnYW1lJ3MgYWlyZHJvcCBkcmF3LiBQYXNzIGBOb25lYCB0b0kBc2tpcCBpdC4gV2hlbiBgU29tZWAsIGl0IGlzIHRoZSBwbGF5ZXIncyBWUkYsIHdoaWNoIGJvdGggc2VlZHMgdGhlaXIgZHJhdyBzbG90IGFuZF0BcHJvdmVzIHRoZWlyIGlkZW50aXR5IHBhdGg6IHRoZSBhbGlhcyB2YXJpYW50IGlmIHRoZSBwbGF5ZXIgaXMgcmVjb2duaXplZCAocGFsbGV0LXNjb3JlYQFgcmVjb2duaXRpb25gIGlzIGBSZWNvZ25pemVkYCBvciBgRXh0ZXJuYWxseVJlY29nbml6ZWRgKSwgb3RoZXJ3aXNlIHRoZSBhY2NvdW50IHZhcmlhbnQu5FNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBbYEFpcmRyb3BWcmZgXSBmb3IgbW9yZSBkZXRhaWxzLgBBAVRoZSBvcmlnaW4gbXVzdCBiZSBhIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCB1c2UgdGhlIGBHYW1lQXNJbnZpdGVkYCBleHRlbnNpb24uUHNpZ25fdXBfd2l0aF9hY2NvdW50CAE4aWRlbnRpZmllcl9rZXndAwFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAARxhaXJkcm9w+QMBlE9wdGlvbjxBaXJkcm9wVnJmPEFpcmRyb3BQcm9vZk9mPFQ+Pj4AATyYU2lnbiB1cCBmb3IgdGhlIGdhbWUgdXNpbmcgYW4gYWNjb3VudC4APQFJZiB0aGUgcGxheWVyIGlzIG5ldyBvciBhcmNoaXZlZCwgdGhlbiBhIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIubE90aGVyd2lzZSB0aGUgY2FsbCBpcyBmcmVlLgDUQSBnYW1lIG11c3QgYmUgb25nb2luZyBhbmQgaW4gaXRzIHJlZ2lzdHJhdGlvbiBwaGFzZS4AUQFgYWlyZHJvcGAgb3B0aW9uYWxseSBlbnRlcnMgdGhlIHBsYXllciBpbnRvIHRoaXMgZ2FtZSdzIGFpcmRyb3AgZHJhdy4gUGFzcyBgTm9uZWAgdG9JAXNraXAgaXQuIFdoZW4gYFNvbWVgLCBpdCBpcyB0aGUgcGxheWVyJ3MgVlJGLCB3aGljaCBib3RoIHNlZWRzIHRoZWlyIGRyYXcgc2xvdCBhbmRdAXByb3ZlcyB0aGVpciBpZGVudGl0eSBwYXRoOiB0aGUgYWxpYXMgdmFyaWFudCBpZiB0aGUgcGxheWVyIGlzIHJlY29nbml6ZWQgKHBhbGxldC1zY29yZWEBYHJlY29nbml0aW9uYCBpcyBgUmVjb2duaXplZGAgb3IgYEV4dGVybmFsbHlSZWNvZ25pemVkYCksIG90aGVyd2lzZSB0aGUgYWNjb3VudCB2YXJpYW50LuRTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgW2BBaXJkcm9wVnJmYF0gZm9yIG1vcmUgZGV0YWlscy4AMQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yLCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgdXNlfGBTY29yZUFzUGFydGljaXBhbnRgIGV4dGVuc2lvbi5Ic2lnbl91cF93aXRoX2FsaWFzEAE4aWRlbnRpZmllcl9rZXndAwFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAAURzdGF0ZW1lbnRfYWNjb3VudAQBMFQ6OkFjY291bnRJZAABDHNpZ9kDAUxUOjpBY2NvdW50U2lnbmF0dXJlAAEcYWlyZHJvcPkDAZRPcHRpb248QWlyZHJvcFZyZjxBaXJkcm9wUHJvb2ZPZjxUPj4+AAJcVFNpZ24gdXAgZm9yIHRoZSBnYW1lLgBVAUlmIGEgcGxheWVyIGlzIGFscmVhZHkgcmVjb2duaXplZCBieSBhbm90aGVyIERJTSwgdGhleSBjYW4gc2lnbiB1c2luZyB0aGVpciBhbGlhcyBhbmQRAWRvbid0IG5lZWQgYW55IGRlcG9zaXQgb3IgaW52aXRlIHRvIHByb3ZlIHRoZWlyIGluaXRpYWwgY3JlZGliaWxpdHkuYQFPbiB0b3Agb2YgdGhpcyB0aGVpciBzY29yZSBpcyBuZXZlciBnb2luZyBiZWxvdyBwZXJzb25ob29kIHRocmVzaG9sZCBhbmQgdGhlIHBsYXllciB3aWxsTG5ldmVyIGdldCBhcmNoaXZlZC4A1EEgZ2FtZSBtdXN0IGJlIG9uZ29pbmcgYW5kIGluIGl0cyByZWdpc3RyYXRpb24gcGhhc2UuAJBUaGUgb3JpZ2luIG11c3QgYmUgYSBwZXJzb25hbCBhbGlhcy4ALFBhcmFtZXRlcnM6YQEtIGBzdGF0ZW1lbnRfYWNjb3VudGA6IHRoZSBhY2NvdW50IGlkIHRvIHVzZSB0byBpbnRlcmFjdCB3aXRoIHRoZSBzdGF0ZW1lbnQgc3RvcmUgZHVyaW5nLCAgdGhlIGdhbWUuVQEtIGBzaWdgOiB0aGUgcHJvb2Ygb2Ygb3duZXJzaGlwIG9mIHRoZSBhY2NvdW50IGBzdGF0ZW1lbnRfYWNjb3VudGAgYnkgYW4gYWxpYXMsIGl0IGlzXQEgIHRoZSBzaWduYXR1cmUgb2YgdGhlIG1lc3NhZ2UgYCJwb3A6Z2FtZTpzdG10X2FjY291bnRfZm9yX2FsaWFzOiJgIGNvbmNhdGVuYXRlZCB0byB0aGVJASAgYWxpYXMsIGFuZCB0aGVuIGhhc2hlZCB3aXRoIGBibGFrZTJfMjU2YCAoYmxha2UyIDI1NmJpdCBvdXRwdXQpLiBUaGUgYmFzZSBvZiB0aGUZASAgbWVzc2FnZSBjYW4gYmUgZm91bmQgaW4gdGhlIGNvbnN0YW50OiBgcHJvb2Zfb2Zfb3duZXJzaGlwX21zZ19iYXNlYC5dAS0gYGFpcmRyb3BgOiBvcHRpb25hbGx5IGVudGVycyB0aGUgcGxheWVyIGludG8gdGhpcyBnYW1lJ3MgYWlyZHJvcCBkcmF3LCBQYXNzIGBOb25lYCB0b1EBICBza2lwIGl0LiBXaGVuIGBTb21lYCwgaXQgaXMgdGhlIHBsYXllcidzIFZSRiwgd2hpY2ggYm90aCBzZWVkcyB0aGVpciBkcmF3IHNsb3QgYW5kWQEgIHByb3ZlcyB0aGVpciBpZGVudGl0eSBwYXRoOiB0aGUgYWxpYXMgVlJGIG11c3QgYmUgdXNlZCBmb3IgYWxpYXMtYmFzZWQgcGxheWVycyBnaXZlbl0BICB0aGV5IGFyZSByZWNvZ25pemVkIGluIHBhbGxldC1zY29yZSBwYXJ0aWNpcGFudCBpbmZvcm1hdGlvbi4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mgCAgYEFpcmRyb3BWcmZgIGZvciBtb3JlIGRldGFpbHMuGHJlcG9ydAQBLGZ1bGxfcmVwb3J0BQQBNEZ1bGxSZXBvcnQ8VD4AAyyUQWZ0ZXIgdGhlIGdhbWUsIHNlbmQgdGhlIGZ1bGwgcmVwb3J0LgDQVGhlIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVwb3J0aW5nIHBoYXNlLgBVAVRoZSBvcmlnaW4gbXVzdCBiZSBhbiBhbGlhcywgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yIHNpZ25lZCBieSBhbiBhY2NvdW50IGFuZCB1c2V8YFNjb3JlQXNQYXJ0aWNpcGFudGAgZXh0ZW5zaW9uLgBJAUFmdGVyIHRoZSB2b3RlcyBmcm9tIHRoZSByZXBvcnQgYXJlIGNvdW50ZWQsIHRoZSByZXBvcnRlciBhbmQgZWFjaCBvZiB0aGUgcmVwb3J0ZWRFAXBsYXllcnMgd2hvc2UgYXR0ZW5kYW5jZSBjYW4gbm93IGJlIGRldGVybWluZWQgYXJlIHByb2Nlc3NlZCBlYXJseS4gVGhpcyBsZXRzIHRoZU0BZ2FtZSBza2lwIHRoZSBwbGF5ZXItcHJvY2VzcyBwaGFzZSBlbnRpcmVseSB3aGVuIGV2ZXJ5IHBsYXllciBoYXMgYmVlbiBwcm9jZXNzZWQgYnlUdGhlIGVuZCBvZiByZXBvcnRpbmcuIG9mZmJvYXJkAAQcgE9mZmJvYXJkIGEgcGxheWVyIGZyb20gdGhlIGdhbWUuAFUBVGhlIG9yaWdpbiBtdXN0IGJlIGFuIGFsaWFzLCBvciBzaWduZWQgYnkgYW4gYWNjb3VudCwgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIHVzZXxgU2NvcmVBc1BhcnRpY2lwYW50YCBleHRlbnNpb24uAF0BVGhlcmUgbXVzdCBiZSBubyBnYW1lIG9yIHRoZSBleGlzdGluZyBnYW1lIG11c3QgYmUgaW4gcmVnaXN0cmF0aW9uIHBoYXNlIGFuZCB0aGUgcGxheWVylG11c3QgaGF2ZSBub3Qgc2lnbmVkIHVwIGZvciB0aGUgZ2FtZS4ca2lja291dAQBGHBsYXllcgQBMFQ6OkFjY291bnRJZAAFGDEBS2lja291dCBhIGtpY2thYmxlIHBsYXllciB0aGF0IGlzIG5vdCBwbGF5aW5nIGFmdGVyIGBOb25QbGF5aW5nS2lja291dFRpbWVgLgCgVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSBhbiBhY2NvdW50LgAhAS0gYHBsYXllcmA6IFRoZSBwbGF5ZXIgdG8ga2lja291dC4gSXQgbXVzdCBiZSBhcmNoaXZlZCBhbmQga2lja2FibGUgd2l0aNggIGBhcmNoaXZlZF9zaW5jZWAgb2xkZXIgdGhhbiBgTm9uUGxheWluZ0tpY2tvdXRUaW1lYC40Z3JhbnRfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAGGPRHcmFudCBzb21lIGludml0ZXMgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBkaXN0cmlidXRlIHRoZW0uAIhUaGUgb3JpZ2luIG11c3QgYmUgYEludml0ZUlzc3VlcmAuALQtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gZ3JhbnQgaW52aXRlcyB0by6oLSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGludml0ZXMgdG8gZ3JhbnQukHJlbW92ZV9hdmFpbGFibGVfYW5kX3BlbmRpbmdfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRsaW1pdDgBDHUzMgAHGJhDbGVhciBhbGwgaW52aXRlcyBnaXZlbiB0byBhbiBhY2NvdW50LgCIVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGVJc3N1ZXJgLgDQLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgaW52aXRlcyBmcm9tLuwtIGBsaW1pdGA6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIGludml0ZXMgdG8gcmVtb3ZlLkRzZXRfaW52aXRlX3RpY2tldAQBGHRpY2tldAQBLFRpY2tldE9mPFQ+AAgUSEludml0ZSBhbiBhY2NvdW50LgANAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGludml0ZXMgbGVmdC4AlC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIHNldC5QY2FuY2VsX2ludml0ZV90aWNrZXQEARh0aWNrZXQEASxUaWNrZXRPZjxUPgAJFERDYW5jZWwgYW4gaW52aXRlLgAhAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgdGhlIGFjY291bnQgdGhhdCBvd25zIHRoZSB0aWNrZXQgdG8gY2FuY2VsLgCgLSBgdGlja2V0YDogVGhlIGludml0ZSB0aWNrZXQgdG8gY2FuY2VsLjhzY2hlZHVsZV9nYW1lcwQBPGdhbWVzX3NjaGVkdWxlcxkEAVhWZWM8R2FtZVNjaGVkdWxlT2Y8VD4+AAoI0FNjaGVkdWxlcyBuZXcgZ2FtZXMgYWNjb3JkaW5nIHRvIHByb3ZpZGVkIHNjaGVkdWxlcy5dAVNjaGVkdWxlcyBtdXN0IGJlIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIsIGFuZCBhZnRlciB0aGUgb25nb2luZyBnYW1lIChpZiB0aGVyZSBpcyBhbnkpLlRyZW1vdmVfc2NoZWR1bGVkX2dhbWUEAThnYW1lX3BsYXlfdGltZTgBDHUzMgALAEBzZXRfcGxheV9kZXBvc2l0BAEYYW1vdW50xAFITmF0aXZlQmFsYW5jZU9mPFQ+ABAEFQFVcGRhdGUgdGhlIGNvbmZpZ3VyZWQgcGxheSBkZXBvc2l0IGFtb3VudCBmb3IgZnV0dXJlIGFjY291bnQgc2lnbnVwcy40Y2xhaW1fYWlyZHJvcAgBKGdhbWVfaW5kZXg4AQx1MzIAASxiZW5lZmljaWFyeQQBMFQ6OkFjY291bnRJZAARMAEBQ2xhaW0gYSBwcml6ZSBmcm9tIHRoZSBhaXJkcm9wIGV2ZW50IHNjaGVkdWxlZCBmb3IgYGdhbWVfaW5kZXhgLgBhAUVsaWdpYmlsaXR5IHJlcXVpcmVzIDIgY29uZGl0aW9ucyBvbiB0aGUgY2xhaW1hbnQgdG8gYmUgcmVjb2duaXplZCBhbmQgaGF2ZSBhdHRlbmRlZCB0aGVYZ2FtZS4gSW4gbW9yZSBkZXRhaWxzOlEBKiB0byBiZSBlaXRoZXIgcmVjb2duaXplZCBpbiBwYWxsZXQtc2NvcmUgKGByZWNvZ25pdGlvbi5pc19yZWNvZ25pemVkKClgKSBvciB0byBoYXZl2CAgcmVhY2hlZCB0aGUgcGVyc29uaG9vZCBzY29yZSAoYHJlYWNoZWRfcGVyc29uaG9vZGApLGEBKiBBTkQgZm9yIGBnYW1lX2luZGV4YCB0byBtYXRjaCB0aGUgcGFydGljaXBhbnQncyBgbGFzdF9hdHRlbmRlZF9nYW1lYCDigJQgaS5lLiB0aGUgbW9zdFEBICByZWNlbnQgZ2FtZSB0aGUgY2xhaW1hbnQgYWN0dWFsbHkgYXR0ZW5kZWQgbXVzdCBiZSBleGFjdGx5IHRoZSBnYW1lIHRoZSBhaXJkcm9wIGlzVQEgIHRpZWQgdG8uIFN1YnNlcXVlbnQgZ2FtZSBhdHRlbmRhbmNlIG92ZXJyaWRlcyB0aGlzIGluZm9ybWF0aW9uIHNvIHRoZSBjbGFpbSBtdXN0IGJllCAgbWFkZSBiZWZvcmUgYXR0ZW5kaW5nIGFub3RoZXIgZ2FtZS4AtENsYWltcyBhZ2FpbnN0IGEgY2FuY2VsbGVkIGdhbWUgYXJlIHJlamVjdGVkLmx0ZXN0bmV0X2ZvcmNlX3N0YXJ0X3NodWZmbGUAZQzURm9yY2Ugc3RhcnQgdGhlIHNodWZmbGUgYmVmb3JlIGl0cyBub3JtYWwgc3RhcnQgdGltZS4ATQFUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgdGhlIHJvb3Qgb3JpZ2luIGFuZCBpcyBvbmx5IG1lYW50IGZvciB0ZXN0aW5nLmx0ZXN0bmV0X2ZvcmNlX2VuZF9yZXBvcnRpbmcAZgz4Rm9yY2UgZW5kIGEgZ2FtZSdzIHJlcG9ydGluZyBwaGFzZSBiZWZvcmUgaXRzIG5vcm1hbCBlbmQgdGltZS4ATQFUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgdGhlIHJvb3Qgb3JpZ2luIGFuZCBpcyBvbmx5IG1lYW50IGZvciB0ZXN0aW5nLjxzZXRfZ2FtZV9waGFzZXMEARhwaGFzZXMtBAFMUGhhc2VEdXJhdGlvblZhbHVlcwAOLIhPdmVycmlkZSB0aGUgZ2FtZSBwaGFzZSBkdXJhdGlvbnMuACkBUmVzdHJpY3RlZCB0byBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdIChvciByb290KS4gVW50aWwgcmVzZXQsIGFsbCBmdXR1cmU1AWdhbWUgc2NoZWR1bGVzIHVzZSB0aGVzZSBwaGFzZXMgaW5zdGVhZCBvZiBbYENvbmZpZzo6RGVmYXVsdFBoYXNlRHVyYXRpb25zYF0uDQFUbyByZXZlcnQsIHRoZSBtYW5hZ2VyIHJlLWlzc3VlcyB0aGUgY2FsbCB3aXRoIHRoZSBkZXNpcmVkIGV4cGxpY2l0wHZhbHVlcyDigJQgdGhlcmUgaXMgbm8gc2VwYXJhdGUgY2xlYXIgZXh0cmluc2ljLgAZAU9ubHkgY2FsbGFibGUgd2hpbGUgbm8gZ2FtZSBleGlzdHMgb3IgdGhlIGN1cnJlbnQgZ2FtZSBpcyBzdGlsbCBpbiBpdHMpAVJlZ2lzdHJhdGlvbiBwaGFzZTsgb3RoZXJ3aXNlIGZhaWxzIHdpdGggW2BFcnJvcjo6SW52YWxpZEdhbWVTdGF0ZWBdLiBUaGlzHQFwcmV2ZW50cyBjaGFuZ2luZyBwaGFzZSBkdXJhdGlvbnMgb25jZSBwbGF5ZXJzIGhhdmUgY29tbWl0dGVkIHRvIGEgZ2FtZYh3aG9zZSB0aW1pbmcgaXMgYWxyZWFkeSBsb2NrZWQgaW4uRGtpbGxfY3VycmVudF9nYW1lAA8Q6EtpbGwgdGhlIGN1cnJlbnQgZ2FtZSwgcmVnYXJkbGVzcyBvZiB3aGljaCBwaGFzZSBpdCBpcyBpbi4ALQFSZXN0cmljdGVkIHRvIFtgQ29uZmlnOjpNYW5hZ2VyT3JpZ2luYF0gKG9yIHJvb3QpLiBJbnRlbmRlZCBhcyBhbiBlbWVyZ2VuY3kRAXJlY292ZXJ5IGxldmVyIHdoZW4gYSBnYW1lIGlzIHN0dWNrIG9yIGl0cyBzdGF0ZSBoYXMgYmVlbiBjb3JydXB0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvkDBBhPcHRpb24EBFQB/QMBCBBOb25lAAAAEFNvbWUEAP0DAAABAAD9AwxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMoQWlyZHJvcFZyZgQEUAABCBxBY2NvdW50BAABBAEwVnJmU2lnbmF0dXJlAAAAFEFsaWFzDAEUcHJvb2Z9AwEEUAABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAAQAAAQQQHHNwX2NvcmUcc3IyNTUxOQx2cmYwVnJmU2lnbmF0dXJlAAAIAShwcmVfb3V0cHV0CAEwVnJmUHJlT3V0cHV0AAEUcHJvb2bRAwEgVnJmUHJvb2YAAAUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCQQEUwAABAAVBAEYVmVjPFQ+AAAJBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQ0EBFMAAAQAEQQBGFZlYzxUPgAADQQMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzGFJlcG9ydAABCBhQZXJzb24AAAAkTm90UGVyc29uAAEAABEEAAACDQQAFQQAAAIJBAAZBAAAAh0EAB0EDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlczBHYW1lU2NoZWR1bGUIHEFzc2V0SWQB4BxCYWxhbmNlAcQAEAE4Z2FtZV9wbGF5X3RpbWU4AQx1MzIAARhyb3VuZHMMAQh1OAABOG1heF9ncm91cF9zaXplOAEMdTMyAAE0YWlyZHJvcF9wcml6ZSEEAZhPcHRpb248QWlyZHJvcFByaXplPEFzc2V0SWQsIEJhbGFuY2U+PgAAIQQEGE9wdGlvbgQEVAElBAEIEE5vbmUAAAAQU29tZQQAJQQAAAEAACUEDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBR0eXBlczBBaXJkcm9wUHJpemUIHEFzc2V0SWQB4DBBc3NldEJhbGFuY2UBxAAQASBhc3NldF9pZOABHEFzc2V0SWQAATBhc3NldF9hbW91bnTEATBBc3NldEJhbGFuY2UAASxtYXhfd2lubmVyczgBDHUzMgABKHdpbm5lcl9jYXApBAEcUGVybWlsbAAAKQQMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJtaWxsAAAEADgBDHUzMgAALQQMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzTFBoYXNlRHVyYXRpb25WYWx1ZXMAABgBMHJlZ2lzdHJhdGlvbjgBDHUzMgABHHNodWZmbGU4AQx1MzIAAUxwb3N0X3NodWZmbGVfbWFyZ2luOAEMdTMyAAEkcmVwb3J0aW5nOAEMdTMyAAE4cGxheWVyX3Byb2Nlc3M4AQx1MzIAAVBhaXJkcm9wX2NsYWltX3dpbmRvdzgBDHUzMgAAMQQMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQQQ2FsbAQEVAABJFhzY2hlZHVsZV9wYXlvdXRfcm91bmRzDAEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+AAEUY291bnQ4AQx1MzIAASBkdXJhdGlvbjgBREJsb2NrTnVtYmVyRm9yPFQ+AAEMXFNjaGVkdWxlIHBheW91dCByb3VuZHMuAJBDYWxsZWQgZnJvbSBgTWFuYWdlck9yaWdpbmAgb3Igcm9vdC5YcmVtb3ZlX3BheW91dF9zY2hlZHVsZQQBFGluZGV4OAEMdTMyAAIMgFJlbW92ZSBhIHNjaGVkdWxlZCBwYXlvdXQgcm91bmQuAJBDYWxsZWQgZnJvbSBgTWFuYWdlck9yaWdpbmAgb3Igcm9vdC5AdHJhbnNpdGlvbl9yb3VuZAQBLHJvdW5kX2luZGV4OAEMdTMyAAMYSFN0YXJ0IGEgbmV3IHJvdW5kLgBRAVRoaXMgaXMgdmFsaWQgaWYgdGhlIGN1cnJlbnQgcm91bmQgaXMgZmluaXNoZWQsIG9yIGlmIHRoZSBjdXJyZW50IHJvdW5kIGRvZXNuJ3QgaGF2ZahwbGFubmluZyBhbmQgYSBzY2hlZHVsZSBleGlzdHMgdG8gcGxhbiBpdC4AvFRoaXMgaXMgYSB0YXNrLCBhbmQgY2FuIGJlIGNhbGxlZCBmcm9tIGFueWJvZHkuUG9wZXJhdGVfcGF5b3V0X3JvdW5kCAEscm91bmRfaW5kZXg4AShSb3VuZEluZGV4AAEUbGltaXQ4AQx1MzIABDx4T3BlcmF0ZSBzb21lIHJvdW5kIHBheWluZyBvdXQuAFEBRHJhaW5zIHJvdW5kJ3MgcGFydGljaXBhbnRzLCB1cCB0byBhIGxpbWl0LiBGb3IgZWFjaCBwYXJ0aWNpcGFudCwgYWRkIHRoZSBjYWxjdWxhdGVkFQFyZXdhcmQgKGBiYXNlX3Jld2FyZCArIHJlbWFpbmRlcl9wb3J0aW9uYCkgdG8gdGhlaXIgYGNyZWRpdGAgYmFsYW5jZS4AYQFUaGVuLCBtb3ZlcyBmdW5kcyBvbiB0aGUgcG90IGFjY291bnQgZnJvbSBQYXlvdXQgdG8gQ3JlZGl0LCBzbyB0aGV5IGFyZSBvd2VkIHRvIHNwZWNpZmljoHBhcnRpY2lwYW50cyByYXRoZXIgdGhhbiB0aGUgcm91bmQgcG9vbC4ARQFGaW5hbGx5LCByZWxlYXNlIHRoZSBsZWZ0b3ZlciBmcm9tIHRoZSBQYXlvdXQgaG9sZCBiYWNrIHRvIHRoZSBwb3QncyBmcmVlIGJhbGFuY2VUKGZ1bmRzIGFyZSByZWN5Y2xlZCkuALxUaGlzIGlzIGEgdGFzaywgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBhbnlib2R5LgDEKiByb3VuZF9pbmRleDogVGhlIGluZGV4IG9mIHRoZSByb3VuZCB0byBvcGVyYXRlLhEBKiBsaW1pdDogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpY2lwYW50cyB0byBvcGVyYXRlIGluIHRoaXMgY2FsbC4gY2FzaF9vdXQABSRZAUNhc2ggb3V0IGhhbGYgb2YgdGhlIHNjb3JlLCByb3VuZGVkIHVwLiBDb252ZXJ0cyB0aGUgc2NvcmUgaW50byBwb2ludHMgZm9yIHRoZSBjdXJyZW50JQFwYXlvdXQgcm91bmQuIENhbGxlciBtdXN0IGhhdmUgbmV2ZXIgcmVhY2hlZCBwZXJzb25ob29kIHNpbmNlIG9uYm9hcmRpbmcuALRJdCBjYW4gYmUgY2FsbGVkIG9uY2UgcGVyIGdhbWUgc2Vzc2lvbiAoZXJhKS4APQFPcmlnaW4gbXVzdCBiZSBzaWduZWQgb3IgcGFydGljaXBhbnQgKHNpZ25lZCBleHRyaW5zaWMgdXNpbmcgU2NvcmVBc1BhcnRpY2lwYW50WHRyYW5zYWN0aW9uIGV4dGVuc2lvbikAzEFsaWFzIG9yaWdpbiBpcyBub3QgYWxsb3dlZCBhcyB0aGV5IGNhbid0IGNhc2ggb3V0LjRyZWRlZW1fY3JlZGl0BAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQABhhRAVJlZGVlbSBmdWxsIGFjY3VtdWxhdGVkIGNyZWRpdCwgdHJhbnNmZXJyaW5nIGl0IHRvIHRoZSBwcm92aWRlZCBkZXN0aW5hdGlvbiBhY2NvdW50LgDkQ3JlZGl0IGlzIGNvbnZlcnRlZCBmcm9tIHBvaW50cyBkdXJpbmcgcGF5b3V0IHByb2Nlc3NpbmcuAEkBT3JpZ2luIG11c3QgYmUgYSBwZXJzb24gYWxpYXMsIGEgc2lnbmVkIGFjY291bnQgb3IgYSBwYXJ0aWNpcGFudCAoc2lnbmVkIGV4dHJpbnNpY8B1c2luZyBTY29yZUFzUGFydGljaXBhbnQgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uKS4gcmVnaXN0ZXIEAQxrZXk1BAENAU9wdGlvbjwoTWVtYmVyT2Y8VD4sPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUpCj4ABzTwUmVnaXN0ZXIgYXMgYSBwZXJzb24sIG9yIHJlc3VtZSBwZXJzb25ob29kIGFmdGVyIHN1c3BlbnNpb24uACUBUmVxdWlyZXMgc2NvcmUgPj0gcGVyc29uaG9vZCB0aHJlc2hvbGQgKG9yIGhhdmluZyBwcmV2aW91c2x5IHJlYWNoZWQgaXQpLgBhAUlmIHRoZSBwYXJ0aWNpcGFudCB3YXMgcHJldmlvdXNseSByZWNvZ25pc2VkIGFuZCBpcyBub3cgc3VzcGVuZGVkLCB0aGV5IG11c3Qgbm90IHByb3ZpZGWIYSBrZXkuIFRoZSBleGlzdGluZyBrZXkgaXMgcmV1c2VkLgA9AUlmIHRoZSBwYXJ0aWNpcGFudCB3YXMgbmV2ZXIgcmVjb2duaXNlZCwgdGhleSBtdXN0IHByb3ZpZGUgYSBrZXkgYW5kIGEgcHJvb2Ygb2YZAW93bmVyc2hpcCAoYGtleWAgcGFyYW1ldGVyKTogYSBzaWduYXR1cmUgb3ZlciBgInBvcCByZWdpc3RlciB1c2luZyIgfHxMc2VuZGVyX2FjY291bnRfaWRgLgBFAU9yaWdpbiBtdXN0IGJlIHNpZ25lZCBvciBhIHBhcnRpY2lwYW50IChzaWduZWQgZXh0cmluc2ljIHVzaW5nIFNjb3JlQXNQYXJ0aWNpcGFudFx0cmFuc2FjdGlvbiBleHRlbnNpb24pLmhzZXRfYWJzZW5jZV9ncmFjZV9zY2hlZHVsZQQBIHNjaGVkdWxlPQQBREFic2VuY2VHcmFjZVRpZXJzAAg4fFNldCB0aGUgYWJzZW5jZSBncmFjZSBzY2hlZHVsZS4AKQFFdmVyeSB0aWVyIG11c3Qgc2F0aXNmeTogYDAgPD0gd2luZG93IDw9IDhgIGFuZCBgYWxsb3dlZF9taXNzZXMgPCB3aW5kb3dgLhUBYGFsbG93ZWRfbWlzc2VzID0gMGAgZGlzYWJsZXMgZ3JhY2UgZW50aXJlbHkgKGFueSBhYnNlbmNlIGltbWVkaWF0ZWx5KHN1c3BlbmRzKS4AJQFUaWVycyBtdXN0IGJlIHByb3ZpZGVkIGluIGFzY2VuZGluZyBvcmRlciBvZiBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAuAPxBbiBlbXB0eSBzY2hlZHVsZSBkaXNhYmxlcyB0aGUgZ3JhY2UgcGVyaW9kIGVudGlyZWx5IChpbW1lZGlhdGUdAXN1c3BlbnNpb24gb24gYW55IG1pc3NlZCBnYW1lKS4gVGhlIG5ldyByYXRpbyB0YWtlcyBlZmZlY3QgYXQgdGhlIHN0YXJ0CQFvZiB0aGUgbmV4dCByZXBvcnQgc2Vzc2lvbiB3aGVuIGB1cGRhdGVfdGhyZXNob2xkcygpYCByZWNhbGN1bGF0ZXNQYEFic2VuY2VHcmFjZVJhdGlvYC4AkENhbGxlZCBmcm9tIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LoRzZXRfcGVyc29uaG9vZF90aHJlc2hvbGRfc2NoZWR1bGUEASBzY2hlZHVsZUkEAWBQZXJzb25ob29kVGhyZXNob2xkVGllcnMACUCYU2V0IHRoZSBwZXJzb25ob29kLXRocmVzaG9sZCBzY2hlZHVsZS4AOFRpZXJzIG11c3QgYmU6MC0gbm9uLWVtcHR5LMgtIHNvcnRlZCBhc2NlbmRpbmcgYnkgYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGRgLBkBLSBjYXBwZWQgYnkgYSBmaW5hbCB0aWVyIHdpdGggYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQgPT0gdTMyOjpNQVhgLBUBLSBwZXItdGllcjogYDAgPCBzY29yZV90aHJlc2hvbGQgPD0gTUFYX1BFUlNPTkhPT0RfVEhSRVNIT0xEYCAoPSAyMSks1C0gaGF2ZSBub24tZGVjcmVhc2luZyBgc2NvcmVfdGhyZXNob2xkYCBhY3Jvc3MgdGllcnMuAAkBVGhlIG5ldyBjdXJ2ZSB0YWtlcyBlZmZlY3QgYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IHJlcG9ydCBzZXNzaW9u+HdoZW4gYHVwZGF0ZV90aHJlc2hvbGRzKClgIHJlY2FsY3VsYXRlcyBgUGVyc29uaG9vZFRocmVzaG9sZGAuAAEBQWxyZWFkeS1yZWNvZ25pemVkIHBhcnRpY2lwYW50cyBhcmUgTk9UIHJldHJvYWN0aXZlbHkgc3VzcGVuZGVkOhEBdGhlIG5ldyBiYXIgb25seSBnYXRlcyBmdXR1cmUgc2NvcmUgZXZhbHVhdGlvbnMgaW4gYHNldF9hdHRlbmRhbmNlYC4AkENhbGxlZCBmcm9tIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41BAQYT3B0aW9uBARUATkEAQgQTm9uZQAAABBTb21lBAA5BAAAAQAAOQQAAAQICNEDAD0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBQQQEUwAABABFBAEYVmVjPFQ+AABBBAxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzQEFic2VuY2VHcmFjZVRpZXIAAAwBZHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQ4AQx1MzIAARh3aW5kb3cMAQh1OAABOGFsbG93ZWRfbWlzc2VzDAEIdTgAAEUEAAACQQQASQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFNBARTAAAEAFEEARhWZWM8VD4AAE0EDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXNcUGVyc29uaG9vZFRocmVzaG9sZFRpZXIAAAgBZHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQ4AQx1MzIAATxzY29yZV90aHJlc2hvbGQ4AQx1MzIAAFEEAAACTQQAVQQMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0EENhbGwEBFQAASAscmVzZXJ2ZV9pZHMEARRjb3VudDgBDHUzMgAABIRSZXNlcnZlIGEgbnVtYmVyIG9mIHBlcnNvbmFsIElEcy5QcmVuZXdfaWRfcmVzZXJ2YXRpb24EAQhpZCgBKFBlcnNvbmFsSWQAAQS8UmVuZXcgYSBwZXJzb25hbCBJRC4gVGhlIElEIG11c3Qgbm90IGJlIGluIHVzZS5UY2FuY2VsX2lkX3Jlc2VydmF0aW9uBAEIaWQoAShQZXJzb25hbElkAAIEhENhbmNlbCBhIHBlcnNvbmFsIElEIHJlc2VydmF0aW9uLlByZWNvZ25pemVfcGVyc29uaG9vZAQBMGlkc19hbmRfa2V5c1kEAfBCb3VuZGVkVmVjPChQZXJzb25hbElkLCBNZW1iZXJPZjxUPiksIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4AAwQpAUdyYW50IHBlcnNvbmhvb2QgZm9yIGEgbGlzdCBvZiBjYW5kaWRhdGVzIHRoYXQgaGF2ZSByZXNlcnZlZCBwZXJzb25hbCBJRHMuSHN1c3BlbmRfcGVyc29uaG9vZAQBDGlkc2UEAbRCb3VuZGVkVmVjPFBlcnNvbmFsSWQsIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4ABAhdAVN1c3BlbmQgdGhlIHBlcnNvbmhvb2Qgb2YgYSBsaXN0IG9mIHJlY29nbml6ZWQgcGVvcGxlLiBUaGUgcGVvcGxlIG11c3Qgbm90IGN1cnJlbnRseSBiZShzdXNwZW5kZWQuRHJlc3VtZV9wZXJzb25ob29kBAEIaWQoAShQZXJzb25hbElkAAUEEQFSZXN1bWUgc29tZW9uZSdzIHBlcnNvbmhvb2QuIFRoZSBwZXJzb24gbXVzdCBjdXJyZW50bHkgYmUgc3VzcGVuZGVkLlhzdGFydF9tdXRhdGlvbl9zZXNzaW9uAAYIXQFTdGFydCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgZG9lcyBub3QgY2hlY2slAXdoZXRoZXIgYSBtdXRhdGlvbiBzZXNzaW9uIGlzIGFscmVhZHkgb25nb2luZyBhbmQgY2FuIHN0YXJ0IG5ldyBzZXNzaW9ucy5QZW5kX211dGF0aW9uX3Nlc3Npb24ABxBdAUVuZCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgY2FuIGVuZCBtdWx0aXBsZeBtdXRhdGlvbiBzZXNzaW9ucywgZXZlbiBvbmVzIG5vdCBzdGFydGVkIGJ5IHRoaXMgcGFsbGV0LgDYVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBubyBtdXRhdGlvbiBzZXNzaW9uIGlzIG9uZ29pbmcuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBXQQEUwAABABhBAEYVmVjPFQ+AABdBAAABAgoCABhBAAAAl0EAGUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKARTAAAEAGkEARhWZWM8VD4AAGkEAAACKABtBAxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlGHBhbGxldBBDYWxsBARUAAEYeGluY3JlYXNlX2F0dGVzdGF0aW9uX2FsbG93YW5jZQgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAAGCUBR3JhbnQgc29tZSBhdHRlc3RhdGlvbiBhbGxvd2FuY2UgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBhdHRlc3QgcGVvcGxlLgDEVGhlIG9yaWdpbiBtdXN0IGJlIGBBdHRlc3RhdGlvbkFsbG93YW5jZU1hbmFnZXJgLgDILSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIGdyYW50IGF0dGVzdGF0aW9ucyB0by68LSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGF0dGVzdGF0aW9ucyB0byBncmFudC5sY2xlYXJfYXR0ZXN0YXRpb25fYWxsb3dhbmNlBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFLxDbGVhciBhbGwgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIGZvciBhbiBhY2NvdW50LgDEVGhlIG9yaWdpbiBtdXN0IGJlIGBBdHRlc3RhdGlvbkFsbG93YW5jZU1hbmFnZXJgLgDkLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgYXR0ZXN0YXRpb25zIGZyb20uGGF0dGVzdBQBJGNhbmRpZGF0ZQQBMFQ6OkFjY291bnRJZAABTGNhbmRpZGF0ZV9zaWduYXR1cmXZAwFcVDo6QXR0ZXN0YXRpb25TaWduYXR1cmUAATByaW5nX3ZyZl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcNEDAThTaWduYXR1cmVPZjxUPgABVGNvbnN1bWVyX3JlZ2lzdHJhdGlvbnEEAaxPcHRpb248TGl0ZUNvbnN1bWVyUmVnaXN0cmF0aW9uUGFyYW1zT2Y8VD4+AAKESEF0dGVzdCBhbiBhY2NvdW50LgBFAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGF0dGVzdGF0aW9uIGFsbG93YW5jZSBsZWZ0LgDwVGhlIGF1dGhvcml0eSB3aWxsIGhhdmUgdG8gZ2V0IHR3byBzaWduYXR1cmVzIGZyb20gdGhlIHVzZXI6TQEtIG9uZSBjcmVhdGVkIHVzaW5nIHRoZWlyIGFjY291bnQga2V5IGF0dGVzdGluZyB0byB0aGUgb3duZXJzaGlwIG9mIHRoZSBgY2FuZGlkYXRlYCggIGFjY291bnQ7XQEtIG9uZSBjcmVhdGVkIHVzaW5nIHRoZWlyIHJpbmctdnJmIGtleSBhdHRlc3RpbmcgdG8gdGhlIG93bmVyc2hpcCBvZiB0aGUgYHJpbmdfdnJmX2tleWAYICBrZXkuAGEBVGhlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkIGJ5IGJvdGgga2V5cyBmcm9tIHdoaWNoIHRoZSBzaWduYXR1cmVzIGFyZSBnZW5lcmF0ZWQgaXMgY3JlYXRlZFUBYnkgY29uY2F0ZW5hdGluZyB0aGUgYnl0ZXMgInBvcDpwZW9wbGUtbGl0ZTpyZWdpc3RlciB1c2luZyIgd2l0aCB0aGUgZW5jb2RlZCBieXRlcyBvZi0BdGhlIHVzZXIncyBhY2NvdW50IChgY2FuZGlkYXRlYCksIGFuZCB0aGUgZW5jb2RlZCBieXRlcyBvZiB0aGUgcmluZyBWUkYga2V5RChgcmluZ192cmZfa2V5YCkuAFhPbiBzdWNjZXNzLCB0aGlzIGNhbGw6wC0gc3RvcmVzIGxpdGUgcmVnaXN0cmF0aW9uIGRhdGEgaW4gYExpdGVQZW9wbGVgLPQtIGFkZHMgdGhlIHVzZXIncyByaW5nIFZSRiBrZXkgdG8gdGhlIGxpdGUgbWVtYmVyIGNvbGxlY3Rpb24uAC0BVGhlIGxpdGUgbWVtYmVyIGNvbGxlY3Rpb24gbXVzdCBhbHJlYWR5IGhhdmUgYmVlbiBpbml0aWFsaXplZCBieSBgb25fcG9sbGAuAPwtIGBjYW5kaWRhdGVgOiBUaGUgY2FuZGlkYXRlIHRvIGJlIHJlY29nbml6ZWQgYXMgYSBsaXRlIHBlcnNvbi5hAS0gYGNhbmRpZGF0ZV9zaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlLCBwcm92aWRlZCBieSB0aGUgY2FuZGlkYXRlLCB0byBhbGxvdyB0aGUgYXR0ZXN0ZXLcICB0byBjb21wbGV0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3Mgb24gdGhlaXIgYmVoYWxmLiUBLSBgcmluZ192cmZfa2V5YDogVGhlIHJpbmcgVlJGIGtleSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpdGUgcGVyc29uLl0BLSBgcmluZ192cmZfa2V5X3NpZ25hdHVyZWA6IFRoZSByaW5nIFZSRiBzaWduYXR1cmUsIHByb3ZpZGVkIGJ5IHRoZSBjYW5kaWRhdGUsIHRvIGFsbG93VQEgIHRoZSBhdHRlc3RlciB0byBjb21wbGV0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuIFRoaXMgYWxzbyBwcm92ZSB0aGUgb3duZXJzaGlwIG9mkCAgdGhlIHJpbmcgVlJGIGtleSBieSB0aGUgY2FuZGlkYXRlLl0BLSBjb25zdW1lcl9yZWdpc3RyYXRpb246IE9wdGlvbmFsIHBhcmFtZXRlciB3aGljaCBjYW4gY29udGFpbiB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uXQEgIHRvIGZvcndhcmQgYSBjb25zdW1lciByZWdpc3RyYXRpb24gcmVxdWVzdCB0byB0aGUgYExpdGVDb25zdW1lclJlZ2lzdHJhcmAgc2VydmljZS4gSWZRASAgcHJlc2VudCwgaXQgYWxzbyBjb250YWlucyBhIHNpZ25hdHVyZSBjcmVhdGVkIGJ5IHRoZSB1c2VyIGluIG9yZGVyIHRvIHZhbGlkYXRlIHRoZSUBICBpbnRlbnQuIE1vcmUgaW5mb3JtYXRpb24gb24gdGhlIHNpZ25pbmcgcGF5bG9hZCBnZW5lcmF0aW9uIGF2YWlsYWJsZSBpbuwgIFt0eXBlczo6TGl0ZUNvbnN1bWVyUmVnaXN0cmF0aW9uUGFyYW1zOjpzaWduaW5nX3BheWxvYWRdLkhkaXNwYXRjaF9hc19zaWduZXIEARBjYWxsIAFMQm94PFQ6OlJ1bnRpbWVDYWxsPgAFAERzZXRfYWxpYXNfYWNjb3VudAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAATh2YWxpZF9hdF9ibG9jazgBREJsb2NrTnVtYmVyRm9yPFQ+AAYQtFNldCB0aGUgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggYSBsaXRlIGFsaWFzLgC0VGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgdmFsaWRfYXRfYmxvY2tgIHVudGlsxGB2YWxpZF9hdF9ibG9jayArIGFjY291bnRfc2V0dXBfYmxvY2tfdG9sZXJhbmNlYC5MdW5zZXRfYWxpYXNfYWNjb3VudAAHAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5xBAQYT3B0aW9uBARUAXUEAQgQTm9uZQAAABBTb21lBAB1BAAAAQAAdQQMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRR0eXBlc3hMaXRlQ29uc3VtZXJSZWdpc3RyYXRpb25QYXJhbXMIJEFjY291bnRJZAEEJFNpZ25hdHVyZQHZAwAUASRzaWduYXR1cmXZAwEkU2lnbmF0dXJlAAEcYWNjb3VudAQBJEFjY291bnRJZAABOGlkZW50aWZpZXJfa2V53QMBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEgdXNlcm5hbWV5BAEgVXNlcm5hbWUAAURyZXNlcnZlZF91c2VybmFtZX0EAUBPcHRpb248VXNlcm5hbWU+AAB5BAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAH0EBBhPcHRpb24EBFQBeQQBCBBOb25lAAAAEFNvbWUEAHkEAAABAACBBAxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxhwYWxsZXQQQ2FsbAQEVAABNFByZWdpc3Rlcl9saXRlX3BlcnNvbgwBOGlkZW50aWZpZXJfa2V53QMBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAEgdXNlcm5hbWV5BAEgVXNlcm5hbWUAAURyZXNlcnZlZF91c2VybmFtZX0EAUBPcHRpb248VXNlcm5hbWU+AAAElFJlZ2lzdGVyIGEgbGl0ZSBwZXJzb24gYXMgYSBjb25zdW1lci48cmVnaXN0ZXJfcGVyc29uDAFQbGlua2VkX2xpdGVfaWRlbnRpdHkEATBUOjpBY2NvdW50SWQAAUxsaXRlX2lkZW50aXR5X3Byb29m2QMBUFQ6Ok9mZmNoYWluU2lnbmF0dXJlAAE8dXNlcm5hbWVfY2hvaWNlhQQBWFBlcnNvbmFsVXNlcm5hbWVDaG9pY2UAASScUmVnaXN0ZXIgYSBwcm92ZW4gcGVyc29uIGFzIGEgY29uc3VtZXIuAF0BVGhlIHBlcnNvbiBtdXN0IGxpbmsgYSBwcmV2aW91c2x5IHJlY29nbml6ZWQgbGl0ZSBpZGVudGl0eSwgd2hpY2ggd2lsbCBiZSB1cGdyYWRlZCB0byBhWQFmdWxsIHBlcnNvbiBjb25zdW1lci4gSW4gb3JkZXIgdG8gcHJvdmUgdGhleSBob2xkIHRoZSBsaXRlIGlkZW50aXR5IHRoZXkgd2FudCB0byBsaW5rLGEBdXNlcnMgbXVzdCBwcm92aWRlIGEgYGxpdGVfaWRlbnRpdHlfcHJvb2ZgIHNpZ25hdHVyZSwgY3JlYXRlZCBieSBzaWduaW5nIHRoZSBhbGlhcyBieXRlc4h1c2luZyB0aGVpciBsaXRlIGNvbnN1bWVyIGFjY291bnQuADkBVGhlIGNvbnN1bWVyIGNhbiBjaG9vc2UgaWYgdGhleSB3YW50IHRvIGhhdmUgYSBuZXcgdXNlcm5hbWUgb3IgdXNlIGFuIGV4aXN0aW5nFQFyZXNlcnZhdGlvbiBtYWRlIGluIHRoZSBuYW1lIG9mIHRoZSBsaXRlIGNvbnN1bWVyIHdobyB3aWxsIGJlIGxpbmtlZC5odG91Y2hfcGVyc29uX2F1dGhvcml6YXRpb24AAhBJAVVwZGF0ZSBhIHBlcnNvbidzIGF1dGhvcml6YXRpb24gYnkgZW5zdXJpbmcgdGhleSBjYW4gc3RpbGwgYXV0aGVudGljYXRlIGFzIHBlb3BsZS4AUQFUaGlzIGNhbGwgbXVzdCBiZSBwZXJmb3JtZWQgYXQgbGVhc3QgYE1pblBlcnNvbkF1dGhVcGRhdGVJbnRlcnZhbGAgc2Vjb25kcyBhZnRlciB0aGWUbGFzdCB1cGRhdGUgaW4gb3JkZXIgdG8gcHJldmVudCBzcGFtLoxyZW1vdmVfZXhwaXJlZF91c2VybmFtZV9yZXNlcnZhdGlvbggBIHVzZXJuYW1leQQBIFVzZXJuYW1lAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADIDkBUmVtb3ZlIGFuIGV4cGlyZWQgZW50cnkgZnJvbSBhIHVzZXJuYW1lIHJlc2VydmF0aW9uIHF1ZXVlLiBUaGUgdGFyZ2V0IGVudHJ5IGlzAQFpZGVudGlmaWVkIGJ5IGBhY2NvdW50YCBhbmQgY2FuIGJlIGF0IGFueSBwb3NpdGlvbiBpbiB0aGUgcXVldWUuHQFFYWNoIGNhbGwgcmVtb3ZlcyBleGFjdGx5IG9uZSBlbnRyeSwgc28gaXQgbXVzdCBiZSBjYWxsZWQgcmVwZWF0ZWRseSB0b5BjbGVhciBtdWx0aXBsZSBleHBpcmVkIHJlc2VydmF0aW9ucy4ALQFUaGlzIGlzIGEgcGVybWlzc2lvbmxlc3MgY2FsbDsgdGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQuIFRoZSBgYWNjb3VudGAxAXBhcmFtZXRlciBpcyBhbHNvIHVzZWQgZm9yIHRyYW5zYWN0aW9uIHBvb2wgZGVkdXBsaWNhdGlvbiwgYWxsb3dpbmcgcGFyYWxsZWwRAXN1Ym1pc3Npb25zIHRoYXQgdGFyZ2V0IGRpZmZlcmVudCBleHBpcmVkIGVudHJpZXMgaW4gdGhlIHNhbWUgcXVldWUuVHVwZGF0ZV9pZGVudGlmaWVyX2tleQQBOGlkZW50aWZpZXJfa2V53QMBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAQQ2FVwZGF0ZSB0aGUgY29tbXVuaWNhdGlvbiBpZGVudGlmaWVyIGtleSBvZiBhIGNvbnN1bWVyLgBBAVRoZSBvcmlnaW4gbXVzdCBiZSB0aGUgYWNjb3VudCByZWdpc3RlcmVkIGZvciB0aGF0IGNvbnN1bWVyLCByZWdhcmRsZXNzIG9mIHRoZWlyMGNyZWRpYmlsaXR5LoRzZXRfdXNlcm5hbWVfcmVzZXJ2YXRpb25fZHVyYXRpb24EASBkdXJhdGlvbigBDHU2NAAFDB0BU2V0IHRoZSBkdXJhdGlvbiBmb3Igd2hpY2ggYSB1c2VybmFtZSByZXNlcnZhdGlvbiBpcyB2YWxpZCwgaW4gc2Vjb25kcy4AYFRoZSBvcmlnaW4gbXVzdCBiZSByb290LkxkZW1vdGVfYXV0aF9leHBpcmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAHDDEBRGVtb3RlIGEgZnVsbCBwZXJzb24gdG8gYSBsaXRlIHBlcnNvbiBhZnRlciB0aGVpciBhdXRob3JpemF0aW9uIGhhcyBleHBpcmVkLgD0VGhpcyBpcyBhIHBlcm1pc3Npb25sZXNzIGNhbGw7IHRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkLsRzZXRfZnJpZW5kX3JlcXVlc3Rfc3RhdGVtZW50X2FjY291bnRfZm9yX3NlcXVlbmNlCAEkcmVmZXJlbmNliQQBWEZyaWVuZFJlcXVlc3RSZWZlcmVuY2UAAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAhAFQFBc3NvY2lhdGUgYSBzdGF0ZW1lbnQgYWNjb3VudCB3aXRoIGEgZnJpZW5kIHJlcXVlc3QgY29udGV4dCBzZXF1ZW5jZS4AWQFUaGUgYXNzb2NpYXRlZCBhY2NvdW50IGNhbiBzdWJtaXQgc3RhdGVtZW50cyB3aGlsZSB0aGlzIGZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbiBpcxxhY3RpdmUuNQFUaGUgb3JpZ2luIG11c3QgYmUgYE9yaWdpbjo6RnJpZW5kUmVxdWVzdEFsaWFzYCwgY3JlYXRlZCBieSB0aGUgYEFzUmVzb3VyY2VzYFEBKGBSZWdpc3RlckZyaWVuZFJlcXVlc3RXaXRoUHJvb2YoLi4pYCkgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIGFmdGVyIHByb29mIHZhbGlkYXRpb24uHQFPbiBzdWNjZXNzLCBpbmNyZWFzZXMgc3RhdGVtZW50IGFsbG93YW5jZSBhbmQgc3RvcmVzIHJlZ2lzdHJhdGlvbiBzdGF0ZWhge2FjY291bnRfaWQsIHJlZmVyZW5jZX1gLgAsUGFyYW1ldGVyczrMKiBgcmVmZXJlbmNlYDogZnJpZW5kIHJlcXVlc3QgcGVyaW9kL3NlcXVlbmNlIHBhaXIuMQEgIC0gYHJlZmVyZW5jZS5wZXJpb2RgIG11c3QgYmUgaW4gdGhlIGFjY2VwdGVkIHBlcmlvZCB3aW5kb3c6IGBbcGVyaW9kKG5vdyAttCAgICBGcmllbmRSZXF1ZXN0R3JhY2VXaW5kb3cpLCBwZXJpb2Qobm93KV1gLgUBICAtIGByZWZlcmVuY2Uuc2VxYCBtdXN0IGJlIGluIGAwLi49RnJpZW5kUmVxdWVzdFNsb3RzUGVyUGVyaW9kYC5NASogYGFjY291bnRfaWRgOiBzdGF0ZW1lbnQgYWNjb3VudCB0byBhdXRob3JpemUuIE11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBieSBhbm90aGVyeCAgZnJpZW5kIHJlcXVlc3QgcmVnaXN0cmF0aW9uLpRjbGVhcl9leHBpcmVkX2ZyaWVuZF9yZXF1ZXN0X3NlcXVlbmNlCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABDHNlcQwBCHU4AAkoNQFDbGVhciBhIHN0YWxlIGZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbiBhbmQgcmV2b2tlIGl0cyBzdGF0ZW1lbnQgYWxsb3dhbmNlLgD0VGhpcyBpcyBhIHBlcm1pc3Npb25sZXNzIGNhbGw7IHRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkLiEBU3VjY2VlZHMgb25seSB3aGVuIHRoZSByZWdpc3RyYXRpb24ncyBwZXJpb2QtZGVyaXZlZCBleHBpcnkgaGFzIGVsYXBzZWQuYQFPbiBzdWNjZXNzLCByZW1vdmVzIGZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbiBzdGF0ZSBhbmQgZGVjcmVhc2VzIHN0YXRlbWVudCBhbGxvd2FuY2UuACxQYXJhbWV0ZXJzOmEBKiBgYWNjb3VudGA6IHN0YXRlbWVudCBhY2NvdW50IHByZXZpb3VzbHkgYXNzb2NpYXRlZCB3aXRoIGEgZnJpZW5kIHJlcXVlc3QgcmVnaXN0cmF0aW9uLlkBKiBgc2VxYDogZnJpZW5kIHJlcXVlc3Qgc2VxdWVuY2UgdG8gY2xlYXIuIE11c3QgbWF0Y2ggc3RvcmVkIHJlZ2lzdHJhdGlvbiBzZXF1ZW5jZSBhbmSoICBiZSBpbiBgMC4uPUZyaWVuZFJlcXVlc3RTbG90c1BlclBlcmlvZGAubHNldF9zdGF0ZW1lbnRfc3RvcmVfYWNjb3VudAwBGHBlcmlvZDgBDHUzMgABDHNlcTgBDHUzMgABOHRhcmdldF9hY2NvdW50BAEwVDo6QWNjb3VudElkAAosCQFDbGFpbSBhbiBhbm9ueW1vdXMgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZSBmb3IgYSB0YXJnZXQgYWNjb3VudC4AKQFUaGUgb3JpZ2luIG11c3QgYmUgYE9yaWdpbjo6U3RtdFN0b3JlQWxpYXNgLCBwcm9kdWNlZCBieSB0aGUgYEFzUmVzb3VyY2VzYFUBKGBSZWdpc3RlclN0YXRlbWVudFN0b3JlQWxsb3dhbmNlKC4uKWApIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBhZnRlciBwcm9vZiB2YWxpZGF0aW9uLkUBT24gc3VjY2VzcywgaW5jcmVhc2VzIHRoZSBzdGF0ZW1lbnQgYWxsb3dhbmNlIGZvciBgdGFyZ2V0X2FjY291bnRgIGFuZCBzdG9yZXMgdGhlmG1hcHBpbmcgaW4gYFN0YXRlbWVudFN0b3JlQWxsb3dhbmNlc2AuACxQYXJhbWV0ZXJzOj0BKiBgcGVyaW9kYDogZGF5IG51bWJlciBzaW5jZSBVbml4IGVwb2NoLiBNdXN0IGJlIGluIHRoZSBhY2NlcHRlZCBwZXJpb2Qgd2luZG93LkUBKiBgc2VxYDogc2xvdCBudW1iZXIgd2l0aGluIHRoZSBwZXJpb2QsIGJvdW5kZWQgYnkgdGhlIGNvbGxlY3Rpb24tc3BlY2lmaWMgbGltaXQuzCogYHRhcmdldF9hY2NvdW50YDogc3RhdGVtZW50IGFjY291bnQgdG8gYXV0aG9yaXplLoxjbGVhcl9leHBpcmVkX3N0bXRfc3RvcmVfYWxsb3dhbmNlcwgBGHBlcmlvZDgBDHUzMgABLGZpcnN0X2VudHJ5CAEUQWxpYXMACxTwUmVtb3ZlIGV4cGlyZWQgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZXMgZm9yIGEgcGFzdCBwZXJpb2QuAPRUaGlzIGlzIGEgcGVybWlzc2lvbmxlc3MgY2FsbDsgdGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQuRQFSZW1vdmVzIHVwIHRvIGBTdG10U3RvcmVDbGVhbnVwTGltaXRgIGVudHJpZXMgZnJvbSBgU3RhdGVtZW50U3RvcmVBbGxvd2FuY2VzYCBmb3JBAXRoZSBnaXZlbiBgcGVyaW9kYCwgZGVjcmVhc2luZyB0aGUgc3RhdGVtZW50IGFsbG93YW5jZSBmb3IgZWFjaCByZW1vdmVkIGFjY291bnQuXGNsYWltX2xvbmdfdGVybV9zdG9yYWdlDAEYcGVyaW9kOAEMdTMyAAEcY291bnRlcgwBCHU4AAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAMMDkBQ2xhaW0gbG9uZy10ZXJtIHN0b3JhZ2Ugb24gYSByZW1vdGUgY2hhaW4gdXNpbmcgYW4gYW5vbnltb3VzIG1lbWJlcnNoaXAgcHJvb2YuAFEBVGhlIG9yaWdpbiBtdXN0IGJlIGBPcmlnaW46OkxvbmdUZXJtU3RvcmFnZUNsYWltKGFsaWFzLCBjb2xsZWN0aW9uKWAsIGNyZWF0ZWQgYnkgdGhlVQFgQXNSZXNvdXJjZXNgIChgQ2xhaW1Mb25nVGVybVN0b3JhZ2UoLi4pYCkgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIGFmdGVyIHJpbmctVlJGIHByb29mLHZhbGlkYXRpb24uACxQYXJhbWV0ZXJzOkkBKiBgcGVyaW9kYDogdGhlIGNsYWltaW5nIHBlcmlvZC4gTXVzdCBiZSB0aGUgY3VycmVudCBwZXJpb2Qgb3IgdGhlIHByZXZpb3VzIG9uZSBpZmggIHdpdGhpbiB0aGUgZ3JhY2Ugd2luZG93Lg0BKiBgY291bnRlcmA6IHRoZSBjbGFpbSBjb3VudGVyIHdpdGhpbiB0aGUgcGVyaW9kLiBNdXN0IGJlIGxlc3MgdGhhbi0BICBgTG9uZ1Rlcm1TdG9yYWdlQ2xhaW1zUGVyUGVyaW9kYC4gRWFjaCBjb3VudGVyIHByb2R1Y2VzIGEgZGlzdGluY3QgYWxpYXMuJQEqIGBhY2NvdW50X2lkYDogdGhlIGFjY291bnQgdG8gYXV0aG9yaXplIGZvciBzdG9yYWdlIG9uIHRoZSByZW1vdGUgY2hhaW4unGNsZWFyX2V4cGlyZWRfbG9uZ190ZXJtX3N0b3JhZ2VfYWxpYXNlcwgBGHBlcmlvZDgBDHUzMgABFGxpbWl0OAEMdTMyAA0g8ENsZWFyIHNwZW50IGxvbmctdGVybSBzdG9yYWdlIGFsaWFzZXMgZm9yIGFuIGV4cGlyZWQgcGVyaW9kLgBFAVRoaXMgaXMgYSBwZXJtaXNzaW9ubGVzcyBjYWxsIGF1dGhvcml6ZWQgdmlhIHRoZSBgYXV0aG9yaXplYCBhdHRyaWJ1dGUuIEl0IGNhbiBiZSUBY2FsbGVkIGJ5IGFueW9uZSBvbmNlIGEgcGVyaW9kIGhhcyBmdWxseSBleHBpcmVkIChwYXN0IHRoZSBncmFjZSB3aW5kb3cpLgAsUGFyYW1ldGVyczrQKiBgcGVyaW9kYDogdGhlIGV4cGlyZWQgcGVyaW9kIHRvIGNsZWFyIGFsaWFzZXMgZm9yLgEBKiBgbGltaXRgOiB0aGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyB0byByZW1vdmUgaW4gdGhpcyBjYWxsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6FBAxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc1hQZXJzb25hbFVzZXJuYW1lQ2hvaWNlAAEIKFN0YW5kYWxvbmUEAHkEASBVc2VybmFtZQAAACxSZXNlcnZhdGlvbgQAeQQBIFVzZXJuYW1lAAEAAIkEDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzWEZyaWVuZFJlcXVlc3RSZWZlcmVuY2UAAAgBGHBlcmlvZDgBDHUzMgABDHNlcQwBCHU4AACNBAxsaW5kaXZfcGFsbGV0X2NodW5rc19tYW5hZ2VyGHBhbGxldBBDYWxsBARUAAEIKGFkZF9jaHVua3MMATRyaW5nX2V4cG9uZW50kQQBMFJpbmdFeHBvbmVudAABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAAThlbmNvZGVkX2NodW5rc5UEAZhCb3VuZGVkVmVjPHU4LCBNYXhFbmNvZGVkQ2h1bmtzTGVuPFQ+PgAAEGhBZGRzIGEgbmV3IHBhZ2Ugb2YgY2h1bmtzLgBBAVRoZSBoYXNoIG9mIHRoZSBjaHVua3MgbXVzdCBtYXRjaCB0aGUgaGFzaCBzdG9yZWQgb24tY2hhaW4gaW4gYENodW5rUGFnZUhhc2hlc2Au3FRoZSBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgcGFnZSBhbHJlYWR5IGV4aXN0cyBvbi1jaGFpbi5Uc2V0X2NodW5rX3BhZ2VfaGFzaGVzCAE0cmluZ19leHBvbmVudJEEATBSaW5nRXhwb25lbnQAASxwYWdlX2hhc2hlc5kEAcxCb3VuZGVkVmVjPENodW5rUGFnZUhhc2gsIENvbnN0VTMyPE1BWF9QQUdFX0NPVU5UPj4AARgNAVNldHMgdGhlIGV4cGVjdGVkIGhhc2hlcyBmb3IgY2h1bmsgcGFnZXMgZm9yIGEgZ2l2ZW4gcmluZyBleHBvbmVudC4AIQFBbGxvd3Mgc2V0dGluZyB0aGUgZXhwZWN0ZWQgaGFzaGVzIHRoYXQgY2h1bmtzIG11c3QgbWF0Y2ggd2hlbiBhZGRlZCB2aWE0YGFkZF9jaHVua3NgLgCsVGhlIG9yaWdpbiBtdXN0IGJlIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6RBBA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eTBSaW5nRXhwb25lbnQAAQwQUjJlOQAJABRSMmUxMAAKABRSMmUxNAAOAACVBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAJkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEALEDARhWZWM8VD4AAJ0EDFBpbmRpdl9wYWxsZXRfbWVtYmVycxhwYWxsZXQQQ2FsbAQEVAABNCxtZXJnZV9yaW5ncwwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8YmFzZV9yaW5nX2luZGV4OAEkUmluZ0luZGV4AAFEdGFyZ2V0X3JpbmdfaW5kZXg4ASRSaW5nSW5kZXgAAAxRAU1lcmdlIHRoZSBtZW1iZXJzIGluIHR3byByaW5ncyBpbnRvIGEgc2luZ2xlLCBuZXcgcmluZy4gSW4gb3JkZXIgZm9yIHRoZSByaW5ncyB0byBiZTUBZWxpZ2libGUgZm9yIG1lcmdpbmcsIHRoZXkgbXVzdCBiZSBiZWxvdyAxLzIgb2YgbWF4IGNhcGFjaXR5LCBoYXZlIG5vIHBlbmRpbmfgc3VzcGVuc2lvbnMgYW5kIG5vdCBiZSB0aGUgdG9wIHJpbmcgdXNlZCBmb3Igb25ib2FyZGluZy5Mc2V0X29uYm9hcmRpbmdfc2l6ZQgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8b25ib2FyZGluZ19zaXplOAEMdTMyAAEETQFGb3JjZSBzZXQgdGhlIG9uYm9hcmRpbmcgc2l6ZSBmb3IgYSBjb2xsZWN0aW9uLiBUaGlzIGNhbGwgcmVxdWlyZXMgcm9vdCBwcml2aWxlZ2VzLjBzZWxmX2luY2x1ZGUMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABGG1lbWJlcggBLE1lbWJlck9mPFQ+AAE0Y2FsbF92YWxpZF9hdCgBDHU2NAACKEEBQWxsb3cgYSBtZW1iZXIgd2FpdGluZyBpbiB0aGUgb25ib2FyZGluZyBxdWV1ZSB0byBpbmNsdWRlIHRoZW1zZWx2ZXMgaW50byBhIHJpbmdNAWFmdGVyIGVub3VnaCB0aW1lIGhhcyBwYXNzZWQuIFRoaXMgYnlwYXNzZXMgdGhlIG5vcm1hbCBjb2hvcnQtYmFzZWQgb25ib2FyZGluZyBzaXplMHJlcXVpcmVtZW50LgA5AVRoaXMgY2FsbCBtdXN0IGJlIGRpc3BhdGNoZWQgd2l0aCBhIGBTZWxmSW5jbHVkZWAgb3JpZ2luLCBhdXRoZW50aWNhdGVkIGJ5IHRoZSEBYEFzTWVtYmVyYCB0cmFuc2FjdGlvbiBleHRlbnNpb24uIFRoZSByaW5ncyBtdXN0IGJlIGluIGFwcGVuZC1vbmx5IG1vZGUuAE0BVGhlIGBjYWxsX3ZhbGlkX2F0YCBwYXJhbWV0ZXIgZGljdGF0ZXMgdGhlIHRpbWUgd2luZG93IGluIHdoaWNoIHRoaXMgdHJhbnNhY3Rpb24gaXNNAXZhbGlkIGFuZCByZXByZXNlbnRzIHRoZSB0aW1lc3RhbXAgKGluIHNlY29uZHMgc2luY2UgdGhlIFVOSVggZXBvY2gpIHdoZW4gdGhpcyBjYWxsOGJlY29tZXMgdmFsaWQuVGJ1aWxkX3JpbmdfYXV0aG9yaXplZBgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABNHJpbmdfZXhwb25lbnSRBAEwUmluZ0V4cG9uZW50AAEgcmV2aXNpb24JAwFUT3B0aW9uPFJldmlzaW9uSW5kZXg+AAEodG9faW5jbHVkZTgBDHUzMgABNGRpc2NyaW1pbmF0b3I4AQx1MzIAZCzYQnVpbGQgYSByaW5nIHJvb3QgZm9yIGEgc3BlY2lmaWMgcmluZyBpbiBhIGNvbGxlY3Rpb24uANhTdWJtaXR0ZWQgYnkgdGhlIE9DVyB3aXRoIGEgYHRvX2luY2x1ZGVgIHNuYXBzaG90IGZyb20pAVtgU2VsZjo6c2hvdWxkX2J1aWxkX3JpbmdgXS4gTGVmdG92ZXJzIGZyb20gbGF0ZXIgb25ib2FyZGluZyBhcmUgcGlja2VkIHVwGQFvbiB0aGUgbmV4dCBPQ1cgdGljaywgb3IgYnkgdGhlIG1lbWJlciB2aWEgW2BTZWxmOjpzZWxmX2luY2x1ZGVgXSB3aGVugGNvaG9ydCBnYXRpbmcgc3RhbGxzIG9uYm9hcmRpbmcuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLmhvbmJvYXJkX21lbWJlcnNfYXV0aG9yaXplZBQBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABEGhlYWQ4ASRQYWdlSW5kZXgAATBmaXJzdF9tZW1iZXKhBAFMT3B0aW9uPE1lbWJlck9mPFQ+PgABNGRpc2NyaW1pbmF0b3I4AQx1MzIAZSARAU9uYm9hcmQgbWVtYmVycyBmcm9tIHRoZSBvbmJvYXJkaW5nIHF1ZXVlIGZvciBhIHNwZWNpZmljIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wucG1lcmdlX3F1ZXVlX3BhZ2VzX2F1dGhvcml6ZWQMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABMGluaXRpYWxfaGVhZDgBJFBhZ2VJbmRleAABIG5ld19oZWFkOAEkUGFnZUluZGV4AGYMDQFNZXJnZSB0aGUgdG9wIHR3byBvbmJvYXJkaW5nIHF1ZXVlIHBhZ2VzIGZvciBhIHNwZWNpZmljIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci6AcmVtb3ZlX3N1c3BlbmRlZF9rZXlzX2F1dGhvcml6ZWQQAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbgkDAVRPcHRpb248UmV2aXNpb25JbmRleD4AATRkaXNjcmltaW5hdG9yOAEMdTMyAGcg7FJlbW92ZSBzdXNwZW5kZWQga2V5cyBmcm9tIGEgc3BlY2lmaWMgcmluZyBpbiBhIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wubGRlbGV0ZV9yaW5nX3BhZ2VfYXV0aG9yaXplZAwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAaAzIRGVsZXRlIGEgcGFnZSBmb3IgYSBzcGVjaWZpYyByaW5nIGluIGEgY29sbGVjdGlvbi4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLoBlbnF1ZXVlX3JpbmdfZGVsZXRpb25fYXV0aG9yaXplZAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleABpHOxFbnF1ZXVlIGEgcmluZyBmb3IgZGVsZXRpb24gYXMgcGFydCBvZiBjb2xsZWN0aW9uIGRlbGV0aW9uLgAhAUFyY2hpdmVzIHRoZSByaW5nIHJvb3QsIG5vdGlmaWVzIHN1YnNjcmliZXJzLCByZW1vdmVzIHJpbmcgbWV0YWRhdGEsIGFuZPhlbnF1ZXVlcyByaW5nIHBhZ2VzIGludG8gYFJpbmdEZWxldGlvblF1ZXVlYCBmb3IgcHJvY2Vzc2luZyBieXhgZGVsZXRlX3JpbmdfcGFnZV9hdXRob3JpemVkYC4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLpxkZWxldGVfb25ib2FyZGluZ19xdWV1ZV9wYWdlX2F1dGhvcml6ZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAahz8RGVsZXRlIGFuIG9uYm9hcmRpbmcgcXVldWUgcGFnZSBhcyBwYXJ0IG9mIGNvbGxlY3Rpb24gZGVsZXRpb24uAB0BUmVtb3ZlcyBhbGwgYE1lbWJlcnNgIGVudHJpZXMgZm9yIHRoZSBtZW1iZXJzIGluIHRoZSBwYWdlLCB0aGVuIHJlbW92ZXMlAXRoZSBwYWdlIGl0c2VsZi4gQ2FuIG9ubHkgcHJvY2VlZCB3aGVuIGFsbCByaW5ncyBhbmQgcmluZyBwYWdlcyBoYXZlIGJlZW44ZnVsbHkgZGVsZXRlZC4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLpxmaW5hbGl6ZV9jb2xsZWN0aW9uX2RlbGV0aW9uX2F1dGhvcml6ZWQEAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgBrHHRGaW5hbGl6ZSBjb2xsZWN0aW9uIGRlbGV0aW9uLgAdAVJlbW92ZXMgYWxsIHJlbWFpbmluZyBwZXItY29sbGVjdGlvbiBzdG9yYWdlIGFuZCB0aGUgb3duZXIncyBpZGVudGlmaWVyGQFyZWZlcmVuY2UuIENhbiBvbmx5IHByb2NlZWQgd2hlbiBhbGwgcmluZ3MsIHJpbmcgcGFnZXMsIGFuZCBvbmJvYXJkaW5nkHF1ZXVlIHBhZ2VzIGhhdmUgYmVlbiBmdWxseSBkZWxldGVkLgCEU3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuaG1hcmtfcmluZ19zdGFsZV9hdXRob3JpemVkCAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AGwY8E1hcmsgYSByaW5nIGFzIHN0YWxlIHNvIHRoZSBvZmZjaGFpbiB3b3JrZXIgd2lsbCByZWJ1aWxkIGl0LgAdAUFueW9uZSBjYW4gc3VibWl0IHRoaXMgdHJhbnNhY3Rpb24gaWYgdGhlIHJpbmcgaGFzIG1lbWJlcnMgdGhhdCBhcmUgbm90JQF5ZXQgaW5jbHVkZWQgaW4gdGhlIHJvb3QgKGB0b3RhbCA+IGluY2x1ZGVkYCkgYW5kIHRoZSByaW5nIGlzIG5vdCBhbHJlYWR5JQFtYXJrZWQgc3RhbGUuIFRoaXMgaXMgYSByZWNvdmVyeSBtZWNoYW5pc20gaW4gY2FzZSB0aGUgYFN0YWxlUmluZ3NgIGVudHJ5bHdhcyBsb3N0IG9yIG5ldmVyIGluc2VydGVkLnRjbGVhbl91cF9vbGRfcm9vdHNfYXV0aG9yaXplZAwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABFGxpbWl0OAEMdTMyAG0ggENsZWFuIHVwIGV4cGlyZWQgb2xkIHJpbmcgcm9vdHMuABEBUmVtb3ZlcyB1cCB0byBgbGltaXRgIG9sZCByaW5nIHJvb3RzIGZvciB0aGUgZ2l2ZW4gcmluZyBpbiB0aGUgZ2l2ZW4sY29sbGVjdGlvbi4A0FRoZSB0cmFuc2FjdGlvbiBzb3VyY2UgbXVzdCBiZSBgTG9jYWxgIG9yIGBJbkJsb2NrYC4A9FRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuoQQEGE9wdGlvbgQEVAEIAQgQTm9uZQAAABBTb21lBAAIAAABAAClBAxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0EENhbGwEBFQAAVwUc3BsaXQEAShzcGxpdF9pbnRvqQQBaQFCb3VuZGVkVmVjPChDb2luVmFsdWUsIEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhTcGxpdE91dHB1dHM+KSwKVDo6TWF4U3BsaXRPdXRwdXRzLD4AAFCEU3BsaXQgYSBjb2luIGludG8gbXVsdGlwbGUgY29pbnMuAD0BVGhlIG9yaWdpbiBtdXN0IGJlIGEgW09yaWdpbjo6Q29pbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uANRUaGUgY2FsbCBpcyBmcmVlIGFuZCBhZ2VzIHRoZSByZXN1bHRpbmcgY29pbnMgYnkgb25lLgBJAVRoZSBgc3BsaXRfaW50b2AgcGFyYW1ldGVyIGNvbnRhaW5zIGEgdmVjdG9yIG9mIHBhaXJzLCBlYWNoIHBhaXIgY29udGFpbmluZyBhIGNvaW5VAXZhbHVlIGFuZCBhIGxpc3Qgb2YgZGVzdGluYXRpb24gYWNjb3VudCBpZHMuIEZvciBlYWNoIHBhaXIsIGEgbmV3IGNvaW4gd2l0aCB0aGUgZ2l2ZW7EdmFsdWUgaXMgY3JlYXRlZCBmb3IgZWFjaCBkZXN0aW5hdGlvbiBhY2NvdW50IGlkLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKeAqIFRoZSBjb2luJ3MgYWdlIG11c3QgYmUgbGVzcyB0aGFuIFtDb25maWc6Ok1heGltdW1BZ2VdLk0BKiBUaGUgY29pbiB2YWx1ZSBtdXN0IGJlIHdpdGhpbiB0aGUgYm91bmRzIGRlZmluZWQgYnkgW0NvbmZpZzo6TWluaW11bUV4cG9uZW50XSBhbmRwICBbQ29uZmlnOjpNYXhpbXVtRXhwb25lbnRdLi0BKiBUaGUgdG90YWwgdmFsdWUgb2YgdGhlIG5ldyBjb2lucyBtdXN0IGVxdWFsIHRoZSB2YWx1ZSBvZiB0aGUgb3JpZ2luIGNvaW4uCQEqIFRoZSBudW1iZXIgb2Ygb3V0cHV0cyBtdXN0IG5vdCBleGNlZWQgW0NvbmZpZzo6TWF4U3BsaXRPdXRwdXRzXS4lASogVGhlIGFnZSBvZiB0aGUgbmV3IGNvaW5zIGlzIHNldCB0byB0aGUgYWdlIG9mIHRoZSBvcmlnaW4gY29pbiBwbHVzIG9uZS7gKiBFYWNoIGRlc3RpbmF0aW9uIGFjY291bnQgbXVzdCBub3QgYWxyZWFkeSBoYXZlIGEgY29pbi4gdHJhbnNmZXIEAQh0bwQBMFQ6OkFjY291bnRJZAABLIxUcmFuc2ZlciBhIGNvaW4gdG8gYW5vdGhlciBhY2NvdW50LgA9AVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OkNvaW5dLCB3aGljaCBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgdHJhbnNhY3Rpb25YZXh0ZW5zaW9uIFtBc0NvaW5hZ2VdLgDQVGhlIGNhbGwgaXMgZnJlZSBhbmQgYWdlcyB0aGUgcmVzdWx0aW5nIGNvaW4gYnkgb25lLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKdwqIFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IG11c3Qgbm90IGFscmVhZHkgaGF2ZSBhIGNvaW4u4CogVGhlIGNvaW4ncyBhZ2UgbXVzdCBiZSBsZXNzIHRoYW4gW0NvbmZpZzo6TWF4aW11bUFnZV0uXGxvYWRfcmVjeWNsZXJfd2l0aF9jb2luCAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlw0QMBOFNpZ25hdHVyZU9mPFQ+AAJEaExvYWQgY29pbiBpbnRvIGEgcmVjeWNsZXIuAD0BVGhlIG9yaWdpbiBtdXN0IGJlIGEgW09yaWdpbjo6Q29pbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uAERUaGUgY2FsbCBpcyBmcmVlLgBZAVRoZSBgbWVtYmVyX2tleWAgcGFyYW1ldGVyIGlzIHRoZSBtZW1iZXIga2V5IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZWN5Y2xlciwgYW5kIHdob3NlqGFsaWFzIGlzIHVzZWQgdG8gdW5sb2FkIGZyb20gdGhlIHJlY3ljbGVyLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKQEBKiBUaGUgYG1lbWJlcl9rZXlgIG11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBpbiBhbm90aGVyIHJlY3ljbGVyLtAqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCAoaS5lLiB3ZWxsIGZvcm1lZCkuUQEqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIGEgdmFsaWQgc2lnbmF0dXJlIG9mIHRoZSBjb2luJ3MgYWNjb3VudCBpZCBieSB0aGU8ICBgbWVtYmVyX2tleWAuBQEqIFRoZSByZWN5Y2xlciBjb2xsZWN0aW9uIGZvciB0aGUgY29pbidzIHZhbHVlIG11c3QgYWxyZWFkeSBleGlzdIRsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXQQATBwcmVzZXJ2YXRpb265BAFEQ29kZWNQcmVzZXJ2YXRpb24AARR2YWx1ZXUDASRDb2luVmFsdWUAAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwE4U2lnbmF0dXJlT2Y8VD4AA3CQTG9hZCBleHRlcm5hbCBhc3NldCBpbnRvIGEgcmVjeWNsZXIuAIxUaGUgb3JpZ2luIG11c3QgYmUgYSBzaWduZWQgb3JpZ2luLgCAVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyByZWZ1bmRlZC4ARQFUaGUgYHByZXNlcnZhdGlvbmAgcGFyYW1ldGVyIGluZGljYXRlcyBob3cgdGhlIGFzc2V0IHRyYW5zZmVyIHNob3VsZCBwcmVzZXJ2ZSB0aGVEc2lnbmVyJ3MgYWNjb3VudC4AOQFUaGUgYHZhbHVlYCBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSBjb2luIHZhbHVlIHRvIGJlIGxvYWRlZCBpbnRvIHRoZSByZWN5Y2xlci49AVRoZSBlcXVpdmFsZW50IGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldCBpcyB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBzaWduZXIgdG9MdGhlIHBhbGxldCBhY2NvdW50LgBZAVRoZSBgbWVtYmVyX2tleWAgcGFyYW1ldGVyIGlzIHRoZSBtZW1iZXIga2V5IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZWN5Y2xlciwgYW5kIHdob3NlqGFsaWFzIGlzIHVzZWQgdG8gdW5sb2FkIGZyb20gdGhlIHJlY3ljbGVyLgBVAVRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBwYXJhbWV0ZXIgaXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgc2lnbmVyJ3MgYWNjb3VudCBpZCBieSB0aGU0YG1lbWJlcl9rZXlgLgA0UmVxdWlyZW1lbnRzOgEBKiBUaGUgYG1lbWJlcl9rZXlgIG11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBpbiBhbm90aGVyIHJlY3ljbGVyLtAqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCAoaS5lLiB3ZWxsIGZvcm1lZCkuQQEqIFRoZSBgdmFsdWVgIG11c3QgYmUgd2l0aGluIHRoZSBib3VuZHMgZGVmaW5lZCBieSBbQ29uZmlnOjpNaW5pbXVtRXhwb25lbnRdIGFuZHAgIFtDb25maWc6Ok1heGltdW1FeHBvbmVudF0uVQEqIFRoZSBzaWduZXIgbXVzdCBoYXZlIGVub3VnaCBiYWxhbmNlIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0IHRvIGNvdmVyIHRoZSBlcXVpdmFsZW50iCAgYW1vdW50IGZvciB0aGUgZ2l2ZW4gY29pbiB2YWx1ZS5ZASogVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIG11c3QgYmUgYSB2YWxpZCBzaWduYXR1cmUgb2YgdGhlIHNpZ25lcidzIGFjY291bnQgaWQgYnkgdGhlNGBtZW1iZXJfa2V5YC6gbG9hZF9yZWN5Y2xlcl93aXRoX2V4dGVybmFsX2Fzc2V0X3VucGFpZBABMHByZXNlcnZhdGlvbrkEAURDb2RlY1ByZXNlcnZhdGlvbgABFHZhbHVldQMBJENvaW5WYWx1ZQABKG1lbWJlcl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcNEDAThTaWduYXR1cmVPZjxUPgAPRC0BTG9hZCBleHRlcm5hbCBhc3NldCBpbnRvIGEgcmVjeWNsZXIgKGluZmFsbGlibGUsIHZhbGlkYXRlZCB1bnBhaWQgdmFyaWFudCkuAE0BVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OkluZmFsbGlibGVVbnBhaWRTaWduZWRdLCB3aGljaCBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUJAXRyYW5zYWN0aW9uIGV4dGVuc2lvbiB2YXJpYW50IFtBc0NvaW5hZ2U6OkluZmFsbGlibGVVbnBhaWRTaWduZWRdLgDcVGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiB2YWxpZGF0aW9uIHBoYXNlIG11c3QgZW5zdXJlOhUBLSBUaGUgYG1lbWJlcl9rZXlgIGlzIHZhbGlkIGFuZCBub3QgYWxyZWFkeSB1c2VkIGluIGFub3RoZXIgcmVjeWNsZXIuRQEtIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBpcyBhIHZhbGlkIHNpZ25hdHVyZSBvZiB0aGUgc2lnbmVyJ3MgYWNjb3VudCBpZCBieSB0aGU8ICBgbWVtYmVyX2tleWAuLQEtIFRoZSBgdmFsdWVgIGlzIHdpdGhpbiB0aGUgYm91bmRzIGRlZmluZWQgYnkgW0NvbmZpZzo6TWluaW11bUV4cG9uZW50XSBhbmRBASAgW0NvbmZpZzo6TWF4aW11bUV4cG9uZW50XSwgYW5kIGNhbiBiZSBsb3NzbGVzc2x5IGNvbnZlcnRlZCB0byBhbiBhc3NldCBhbW91bnQuWQEtIFRoZSBzaWduZXIgaGFzIGVub3VnaCBiYWxhbmNlIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0IHRvIGNvdmVyIHRoZSBlcXVpdmFsZW50IGFtb3VudNwgIGZvciB0aGUgZ2l2ZW4gY29pbiB2YWx1ZSAocmVzcGVjdGluZyBgcHJlc2VydmF0aW9uYCkurC0gVGhlIG5vbmNlIGlzIHZhbGlkIGZvciByZXBsYXkgcHJvdGVjdGlvbi7ULSBUaGUgcmVjeWNsZXIgY29sbGVjdGlvbiBmb3IgYHZhbHVlYCBhbHJlYWR5IGV4aXN0cy4ARFRoZSBjYWxsIGlzIGZyZWUuuGxvYWRfcmVjeWNsZXJfd2l0aF9leHRlcm5hbF9hc3NldF91bnBhaWRfYmF0Y2gEARRpdGVtc70EAdRCb3VuZGVkVmVjPFVucGFpZExvYWRJbnB1dDxUPiwgVDo6TWF4QmF0Y2hVbnBhaWRMb2FkPgAQNBkBQmF0Y2hlZCB2YXJpYW50IG9mIFtgU2VsZjo6bG9hZF9yZWN5Y2xlcl93aXRoX2V4dGVybmFsX2Fzc2V0X3VucGFpZGBdLgBNAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlQQF0cmFuc2FjdGlvbiBleHRlbnNpb24gdmFyaWFudCBbQXNDb2luYWdlOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkXS4gVGhlIGV4dGVuc2lvblEBdmFsaWRhdGVzIGVhY2ggaW5uZXIgaXRlbSBhbmQgYWRkaXRpb25hbGx5IGNoZWNrcyB3aXRoaW4tYmF0Y2ggbWVtYmVyLWtleSB1bmlxdWVuZXNzIQFhbmQgdGhhdCB0aGUgc2lnbmVyJ3MgYmFsYW5jZSBjb3ZlcnMgdGhlIHN1bSBvZiBhbGwgaW5uZXIgYXNzZXQgYW1vdW50cy4AQQFUaGlzIGNhbGwgZGlzcGF0Y2hlcyBlYWNoIGlubmVyIGxvYWQgYnkgcmUtcnVubmluZyB0aGUgc2FtZSBjaGVja3MgdGhlIGV4dGVuc2lvblEBanVzdCBwZXJmb3JtZWQgKHNlZSBbYFJlY3ljbGVyTWFuYWdlcjo6bG9hZGBdKS4gVGhlIHJlZHVuZGFuY3kgbWF0Y2hlcyB0aGUgZGVmZW5zaXZlTQFwYXR0ZXJuIHVzZWQgYnkgW2BTZWxmOjpsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXRfdW5wYWlkYF06IGEgZGlzcGF0Y2ggcGF0aEUBdGhhdCBmYWlscyBhbnkgb2YgdGhlc2UgY2hlY2tzIGlzIGEgbG9naWMgYnVnIGluIHRoZSBleHRlbnNpb24sIG5vdCBhIHVzZXIgZXJyb3IuAERUaGUgY2FsbCBpcyBmcmVlLmR1bmxvYWRfcmVjeWNsZXJfaW50b19jb2luFAEcYWxpYXNlc8kEAZhCb3VuZGVkVmVjPEFsaWFzLCBUOjpNYXhDb25zb2xpZGF0aW9uPgABFHZhbHVldQMBJENvaW5WYWx1ZQABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEIdG8EATBUOjpBY2NvdW50SWQABGSUVW5sb2FkIGEgcmVjeWNsZXIgdG8gbWludCBhIG5ldyBjb2luLgBdAVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OlVubG9hZFRva2VuXSB3aXRoIGBmZWU6IFVubG9hZEZlZTo6UHJlcGFpZGAsIHdoaWNoIGNhbiBiZUEBb2J0YWluZWQgZnJvbSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtBc0NvaW5hZ2VdIHVzaW5nIGBBc1VubG9hZFRva2VuUGVvcGxlYCzsYEFzVW5sb2FkVG9rZW5MaXRlUGVvcGxlYCwgb3IgYEFzVW5sb2FkVG9rZW5QYWlkYCB2YXJpYW50cy4ASQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIHVzZXIgdG8gcHJvdmUgdGhleSBvd24gb25lIG9yIG1vcmUgY29pbnMgaW4gYSByZWN5Y2xlciByaW5nXQF3aXRob3V0IHJldmVhbGluZyB3aGljaCBzcGVjaWZpYyBjb2lucyB0aGV5IG93bi4gSXQgY29uc29saWRhdGVzIG9uZSBvciBtdWx0aXBsZSBpbnB1dHNoaW50byBhIHNpbmdsZSBvdXRwdXQgY29pbi4ALFBhcmFtZXRlcnM6RQEqIGBhbGlhc2VzYDogdGhlIGxpc3Qgb2YgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZW1iZXIga2V5cyBpbmNsdWRlZCBpbiB0aGUVASAgcmVjeWNsZXIuIFRoZSBwcm9vZnMgZm9yIHRoZXNlIGFsaWFzZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgb3JpZ2luLvgqIGB2YWx1ZWAgYW5kIGBpbmRleGA6IGlkZW50aWZpZXMgdGhlIHJlY3ljbGVyIGJlaW5nIHVubG9hZGVkLvwqIGBfcmV2aXNpb25gOiB0aGUgcmVjeWNsZXIgcmV2aXNpb24gdXNlZCBmb3IgdGhlIGFsaWFzX3Byb29mcy7EKiBgdG9gOiB0aGUgZGVzdGluYXRpb24gYWNjb3VudCBmb3IgdGhlIG5ldyBjb2luLgA0UmVxdWlyZW1lbnRzOikBKiBUaGUgb3JpZ2luIG11c3QgYmUgW09yaWdpbjo6VW5sb2FkVG9rZW5dIHdpdGggYGZlZTogVW5sb2FkRmVlOjpQcmVwYWlkYC7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi4hASogVGhlIGBhbGlhc2VzYCBwcm92aWRlZCBtdXN0IG1hdGNoIHRoZSBhbGlhc2VzIGRlcml2ZWQgZnJvbSB0aGUgcHJvb2ZzLhUBKiBUaGUgYWxpYXNlcyBtdXN0IG5vdCBoYXZlIGJlZW4gYWxyZWFkeSB1bmxvYWRlZCBmcm9tIHRoaXMgcmVjeWNsZXIuvCogVGhlIG51bWJlciBvZiBhbGlhc2VzIG11c3QgYmUgYSBwb3dlciBvZiB0d28uNQEqIFRoZSByZXN1bHRpbmcgY29uc29saWRhdGVkIHZhbHVlIG11c3Qgbm90IGV4Y2VlZCBbQ29uZmlnOjpNYXhpbXVtRXhwb25lbnRdLox1bmxvYWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldBQBHGFsaWFzZXPJBAGYQm91bmRlZFZlYzxBbGlhcywgVDo6TWF4Q29uc29saWRhdGlvbj4AARR2YWx1ZXUDASRDb2luVmFsdWUAARRpbmRleDgBJFJpbmdJbmRleAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABCHRvBAEwVDo6QWNjb3VudElkAAVg8FVubG9hZCBhIHJlY3ljbGVyIHRvIHdpdGhkcmF3IHRoZSB1bmRlcmx5aW5nIGV4dGVybmFsIGFzc2V0LgBRAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvblhleHRlbnNpb24gW0FzQ29pbmFnZV0uAF0BV2hlbiBgZmVlYCBpcyBbVW5sb2FkRmVlOjpQcmVwYWlkXSAodmlhIGZyZWUgb3IgcGFpZCB1bmxvYWQgdG9rZW4pLCBubyBmZWUgaXMgZGVkdWN0ZWQuUQFXaGVuIGBmZWVgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHVubG9hZGVkIGFzc2V0cy4AMQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIHVzZXIgdG8gd2l0aGRyYXcgdGhlaXIgY29pbnMgYmFjayBpbnRvIHRoZSB1bmRlcmx5aW5ngGFzc2V0IChlLmcuLCBhbiBleHRlcm5hbCBhc3NldCkuACxQYXJhbWV0ZXJzOkUBKiBgYWxpYXNlc2A6IHRoZSBsaXN0IG9mIGFsaWFzZXMgY29ycmVzcG9uZGluZyB0byB0aGUgbWVtYmVyIGtleXMgaW5jbHVkZWQgaW4gdGhlFQEgIHJlY3ljbGVyLiBUaGUgcHJvb2ZzIGZvciB0aGVzZSBhbGlhc2VzIGFyZSBjb250YWluZWQgaW4gdGhlIG9yaWdpbi74KiBgdmFsdWVgIGFuZCBgaW5kZXhgOiBpZGVudGlmaWVzIHRoZSByZWN5Y2xlciBiZWluZyB1bmxvYWRlZC78KiBgX3JldmlzaW9uYDogdGhlIHJlY3ljbGVyIHJldmlzaW9uIHVzZWQgZm9yIHRoZSBhbGlhc19wcm9vZnMu5CogYHRvYDogdGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0LgA0UmVxdWlyZW1lbnRzOqwqIFRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0u8CogVGhlIHJlY3ljbGVyIGlkZW50aWZpZWQgYnkgYHZhbHVlYCBhbmQgYGluZGV4YCBtdXN0IGV4aXN0LlEBKiBUaGUgYWxpYXMgcHJvb2ZzIHByb3ZpZGVkIGluIHRoZSBvcmlnaW4gbXVzdCBiZSB2YWxpZCBmb3IgdGhlIHJlY3ljbGVyJ3MgcmV2aXNpb24uWQEqIFRoZSBhbGlhc2VzIG11c3Qgbm90IGhhdmUgYmVlbiBhbHJlYWR5IHVubG9hZGVkIChleGNlcHQgZm9yIHRoZSBmaXJzdCBvbmUgd2hlbiBgZmVlYBUBICBpcyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgd2hpY2ggd2FzIHByZS1tYXJrZWQgaW4gdGhlIGV4dGVuc2lvbikurHBheV9mb3JfcmVjeWNsZXJfdW5sb2FkX2ZlZV90b2tlbl93aXRoX2NvaW4IAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwG4PENyeXB0b09mPFQ+IGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZQAGVCkBUGF5IHRoZSBmZWUgdG8gcmVnaXN0ZXIgYSBtZW1iZXIga2V5IGZvciBhIHBhaWQgdW5sb2FkIHRva2VuIHVzaW5nIGEgY29pbi4APQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpDb2luXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9uWGV4dGVuc2lvbiBbQXNDb2luYWdlXS4ASQFUaGUgY29pbiBpcyBjb25zdW1lZC4gVGhlIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBjb2luJ3MgdmFsdWUgYW5kIHRyYW5zZmVycmVkIHRvHQFbQ29uZmlnOjpGZWVEZXN0aW5hdGlvbl0uIFRoZSByZW1haW5pbmcgdmFsdWUgb2YgdGhlIGNvaW4gaXMgZGVzdHJveWVkLgDUSWYgdGhlIGNhbGwgZmFpbHMsIHRoZSBvcmlnaW4gY29pbiBpcyBzdGlsbCBjb25zdW1lZC4AXQFUbyBwcm90ZWN0IHRoZSB1c2VyIGFnYWluc3QgdmFyeWluZyBmZWVzLCBpZiB0aGUgY29pbidzIHZhbHVlIGlzIGxlc3MgdGhhbiB0aGUgZmVlLCB0aGXoY2FsbCBpcyBpbnZhbGlkIChhbiBpbnZhbGlkIGNhbGwgbmV2ZXIgZ29lcyBpbnRvIGEgYmxvY2spLgBdAVRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBpcyBhIHNpZ25hdHVyZSBvZiB0aGUgY2FsbGVyJ3MgYWNjb3VudCBJRCBieSB0aGUgYG1lbWJlcl9rZXlgLiUBVGhpcyBlbnN1cmVzIHRoZSBjYWxsZXIgY29udHJvbHMgdGhlIG1lbWJlciBrZXkgdG8gcHJldmVudCBmcm9udC1ydW5uaW5nLgA0UmVxdWlyZW1lbnRzOuAqIFRoZSBjb2luJ3MgYWdlIG11c3QgYmUgbGVzcyB0aGFuIFtDb25maWc6Ok1heGltdW1BZ2VdLtQqIFRoZSBjb2luIHZhbHVlIG11c3QgYmUgc3VmZmljaWVudCB0byBjb3ZlciB0aGUgZmVlLtgqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCBhbmQgbm90IGFscmVhZHkgdXNlZC6kKiBUaGUgYHByb29mX29mX293bmVyc2hpcGAgbXVzdCBiZSB2YWxpZC60cGF5X2Zvcl9yZWN5Y2xlcl91bmxvYWRfZmVlX3Rva2VuX3dpdGhfbmF0aXZlCAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlw0QMBuDxDcnlwdG9PZjxUPiBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUABzxdAVBheSB0aGUgZmVlIHRvIHJlZ2lzdGVyIGEgbWVtYmVyIGtleSBmb3IgYSBwYWlkIHVubG9hZCB0b2tlbiB1c2luZyB0aGUgbmF0aXZlIGN1cnJlbmN5LgBoVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZC4ARQFUaGlzIGFkZHMgdGhlIGBtZW1iZXJfa2V5YCB0byBhICJwYWlkIHVubG9hZCB0b2tlbiByaW5nIi4gQmVpbmcgcGFydCBvZiB0aGlzIHJpbmchAWFsbG93cyB0aGUgdXNlciB0byBsYXRlciBnZW5lcmF0ZSBhbiBgVW5sb2FkVG9rZW5gIHRvIHVubG9hZCBhIHJlY3ljbGVyLgANAVRoZSBmZWUgaXMgdHJhbnNmZXJyZWQgZnJvbSB0aGUgY2FsbGVyIHRvIFtDb25maWc6OkZlZURlc3RpbmF0aW9uXS4AXQFUaGUgYHByb29mX29mX293bmVyc2hpcGAgaXMgYSBzaWduYXR1cmUgb2YgdGhlIGNhbGxlcidzIGFjY291bnQgSUQgYnkgdGhlIGBtZW1iZXJfa2V5YC4lAVRoaXMgZW5zdXJlcyB0aGUgY2FsbGVyIGNvbnRyb2xzIHRoZSBtZW1iZXIga2V5IHRvIHByZXZlbnQgZnJvbnQtcnVubmluZy4ANFJlcXVpcmVtZW50czrYKiBUaGUgYG1lbWJlcl9rZXlgIG11c3QgYmUgdmFsaWQgYW5kIG5vdCBhbHJlYWR5IHVzZWQupCogVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIG11c3QgYmUgdmFsaWQu1HBheV9mb3JfcmVjeWNsZXJfdW5sb2FkX2ZlZV90b2tlbl93aXRoX2V4dGVybmFsX2Fzc2V0CAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlw0QMBuDxDcnlwdG9PZjxUPiBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUACEBFAVBheSB0aGUgZmVlIHRvIHJlZ2lzdGVyIGEgbWVtYmVyIGtleSBmb3IgYSBwYWlkIHVubG9hZCB0b2tlbiB1c2luZyB0aGUgdW5kZXJseWluZzxleHRlcm5hbCBhc3NldC4AaFRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQuAEUBVGhpcyBhZGRzIHRoZSBgbWVtYmVyX2tleWAgdG8gYSAicGFpZCB1bmxvYWQgdG9rZW4gcmluZyIuIEJlaW5nIHBhcnQgb2YgdGhpcyByaW5nIQFhbGxvd3MgdGhlIHVzZXIgdG8gbGF0ZXIgZ2VuZXJhdGUgYW4gYFVubG9hZFRva2VuYCB0byB1bmxvYWQgYSByZWN5Y2xlci4ADQFUaGUgZmVlIGlzIHRyYW5zZmVycmVkIGZyb20gdGhlIGNhbGxlciB0byBbQ29uZmlnOjpGZWVEZXN0aW5hdGlvbl0uAF0BVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIGlzIGEgc2lnbmF0dXJlIG9mIHRoZSBjYWxsZXIncyBhY2NvdW50IElEIGJ5IHRoZSBgbWVtYmVyX2tleWAuJQFUaGlzIGVuc3VyZXMgdGhlIGNhbGxlciBjb250cm9scyB0aGUgbWVtYmVyIGtleSB0byBwcmV2ZW50IGZyb250LXJ1bm5pbmcuADRSZXF1aXJlbWVudHM62CogVGhlIGBtZW1iZXJfa2V5YCBtdXN0IGJlIHZhbGlkIGFuZCBub3QgYWxyZWFkeSB1c2VkLqQqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIHZhbGlkLsB1bmxvYWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldF9hbmRfdm91Y2hlcnMcARxhbGlhc2VzyQQBmEJvdW5kZWRWZWM8QWxpYXMsIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEUdmFsdWV1AwEkQ29pblZhbHVlAAEUaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAAQh0bwQBMFQ6OkFjY291bnRJZAABVGV4dGVybmFsX2Fzc2V0X2Ftb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgABMG5ld192b3VjaGVyc80EAeBCb3VuZGVkVmVjPChDb2luVmFsdWUsIE1lbWJlck9mPFQ+KSwgVDo6TWF4U3BsaXRPdXRwdXRzPgAJjAkBVW5sb2FkIGEgcmVjeWNsZXIgaW50byBhIG1peCBvZiBleHRlcm5hbCBhc3NldCBhbmQgZnJlc2ggdm91Y2hlcnMuAFEBVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9uWGV4dGVuc2lvbiBbQXNDb2luYWdlXS4AWQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIHVzZXIgdG8gb2ZmYm9hcmQgcGFydCBvZiB0aGUgdW5sb2FkZWQgdmFsdWUgaW50byB0aGUgdW5kZXJseWluZ+hhc3NldCB3aGlsZSByZW1pbnRpbmcgdGhlIHJlc3QgYXMgZnJlc2ggcmVjeWNsZXIgdm91Y2hlcnMuAEUBV2hlbiBgZmVlYCBpcyBbVW5sb2FkRmVlOjpQcmVwYWlkXSwgYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGAgaXMgdHJhbnNmZXJyZWQgYXMtaXMuNQFXaGVuIGBmZWVgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHNwZWNpZmllZAUBYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGAsIHNvIHRoZSByZWNpcGllbnQgcmVjZWl2ZXMgdGhlIHJlbWFpbmRlci4ALFBhcmFtZXRlcnM6RQEqIGBhbGlhc2VzYDogdGhlIGxpc3Qgb2YgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZW1iZXIga2V5cyBpbmNsdWRlZCBpbiB0aGUVASAgcmVjeWNsZXIuIFRoZSBwcm9vZnMgZm9yIHRoZXNlIGFsaWFzZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgb3JpZ2luLvgqIGB2YWx1ZWAgYW5kIGBpbmRleGA6IGlkZW50aWZpZXMgdGhlIHJlY3ljbGVyIGJlaW5nIHVubG9hZGVkLvgqIGByZXZpc2lvbmA6IHRoZSByZWN5Y2xlciByZXZpc2lvbiB1c2VkIGZvciB0aGUgYWxpYXMgcHJvb2ZzLvwqIGB0b2A6IHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgZXh0ZXJuYWwgYXNzZXQgcG9ydGlvbi5dASogYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGA6IHRoZSBncm9zcyBhc3NldCBwb3J0aW9uIHRvIG9mZmJvYXJkIGZyb20gdGhlIHVubG9hZGVkIHZhbHVlLmEBKiBgbmV3X3ZvdWNoZXJzYDogdGhlIGZyZXNoIHJlY3ljbGVyIHZvdWNoZXJzIHRvIG1pbnQgZnJvbSB0aGUgcmVtYWluaW5nIHVubG9hZGVkIHZhbHVlLgBZAVRoZSB0b3RhbCB1bmxvYWRlZCB2YWx1ZSBtdXN0IGFsd2F5cyBlcXVhbCB0aGUgYXNzZXQgcG9ydGlvbiBwbHVzIHRoZSB2b3VjaGVyIHBvcnRpb24uVQFJbiBgRnJvbU91dHB1dGAgbW9kZSwgdGhlIGFzc2V0IHBvcnRpb24gbXVzdCBiZSBsYXJnZSBlbm91Z2ggdG8gY292ZXIgdGhlIHVubG9hZCBmZWUuADRSZXF1aXJlbWVudHM6rCogVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXS7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi5ZASogVGhlIGFsaWFzZXMgbXVzdCBub3QgaGF2ZSBiZWVuIGFscmVhZHkgdW5sb2FkZWQgKGV4Y2VwdCBmb3IgdGhlIGZpcnN0IG9uZSB3aGVuIGBmZWVgFQEgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB3aGljaCB3YXMgcHJlLW1hcmtlZCBpbiB0aGUgZXh0ZW5zaW9uKS5FASogYG5ld192b3VjaGVyc2AgbXVzdCBub3QgYmUgZW1wdHksIGFuZCBhbGwgdm91Y2hlciBtZW1iZXIga2V5cyBtdXN0IGJlIHZhbGlkIGFuZCQgIHVudXNlZC5hASogVGhlIHRvdGFsIHVubG9hZGVkIHZhbHVlIG11c3QgZXF1YWwgYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGAgcGx1cyB0aGUgdG90YWwgYXNzZXQgdmFsdWVQICBvZiBgbmV3X3ZvdWNoZXJzYC5FASogV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGAgbXVzdCBjb3ZlciB0aGUgZmVlLsR1bmxvYWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldF9ub25fYW5vbnltb3VzEAEUaW5wdXTZBAGgVW5sb2FkUmVjeWNsZXJJbnB1dDxUOjpNYXhDb25zb2xpZGF0aW9uPgABMGFsaWFzX3Byb29mc3kDAaxCb3VuZGVkVmVjPFByb29mT2Y8VD4sIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEIdG8EATBUOjpBY2NvdW50SWQAATBmZWVfY3VycmVuY3ndBAEsRmVlQ3VycmVuY3kACxgxAVVubG9hZCBhIHJlY3ljbGVyIHRvIHdpdGhkcmF3IHRoZSB1bmRlcmx5aW5nIGV4dGVybmFsIGFzc2V0IChub24tYW5vbnltb3VzKS4AVQFDb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCBbU2VsZjo6dW5sb2FkX3JlY3ljbGVyc19pbnRvX2V4dGVybmFsX2Fzc2V0X25vbl9hbm9ueW1vdXNddGZvciB0aGUgc2luZ2xlLXJlY3ljbGVyIGNhc2UuAFkBU2VlIFtTZWxmOjp1bmxvYWRfcmVjeWNsZXJzX2ludG9fZXh0ZXJuYWxfYXNzZXRfbm9uX2Fub255bW91c10gZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbi7IdW5sb2FkX3JlY3ljbGVyc19pbnRvX2V4dGVybmFsX2Fzc2V0X25vbl9hbm9ueW1vdXMQARhpbnB1dHPhBAG0VmVjPFVubG9hZFJlY3ljbGVySW5wdXQ8VDo6TWF4Q29uc29saWRhdGlvbj4+AAEwYWxpYXNfcHJvb2ZzeQMBrEJvdW5kZWRWZWM8UHJvb2ZPZjxUPiwgVDo6TWF4Q29uc29saWRhdGlvbj4AAQh0bwQBMFQ6OkFjY291bnRJZAABMGZlZV9jdXJyZW5jed0EASxGZWVDdXJyZW5jeQAMWFEBVW5sb2FkIG11bHRpcGxlIHJlY3ljbGVycyB0byB3aXRoZHJhdyB0aGUgdW5kZXJseWluZyBleHRlcm5hbCBhc3NldCAobm9uLWFub255bW91cykuAD0BVGhpcyBpcyBhIHNpZ25lZC1vcmlnaW4gdmVyc2lvbiBvZiBbU2VsZjo6dW5sb2FkX3JlY3ljbGVyc19pbnRvX2V4dGVybmFsX2Fzc2V0XRkBd2hlcmUgdGhlIGZlZSBpcyBwYWlkIGV4cGxpY2l0bHkgYnkgdGhlIHNpZ25lciByYXRoZXIgdGhhbiB0aHJvdWdoIHRoZfByaW5nLWF1dGhlbnRpY2F0ZWQgdW5sb2FkIHRva2VuLCBhbmQgZm9yIG11bHRpcGxlIHJlY3ljbGVycy4AMQFUaGUgZmVlIGNoYXJnZWQgaXMgb25lIHVubG9hZCB0b2tlbiBmZWUgcGVyIHJlY3ljbGVyIChpLmUuLCBgaW5wdXRzLmxlbigpYCkuACxQYXJhbWV0ZXJzOjEBKiBgaW5wdXRzYDogQSBsaXN0IG9mIGlucHV0cywgc3BlY2lmeWluZyB0aGUgcmVjeWNsZXIgYW5kIGFsaWFzZXMgdG8gdW5sb2FkLlUBKiBgYWxpYXNfcHJvb2ZzYDogdGhlIHByb29mcyBmb3IgYWxsIGFsaWFzZXMgYWNyb3NzIGFsbCBpbnB1dHMsIHNpZ25lZCBvdmVyIGEgbWVzc2FnZVUBICB0aGF0IGluY2x1ZGVzIHRoZSBzaWduZXIuIFRoZSBwcm9vZnMgbXVzdCBjb3JyZXNwb25kIHNlcXVlbnRpYWxseSB0byB0aGUgYWxpYXNlcyBpbiwgIGBpbnB1dHNgLrgqIGB0b2A6IHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgYXNzZXQuOQEqIGBmZWVfY3VycmVuY3lgOiB3aGV0aGVyIHRvIHBheSB0aGUgZmVlIGluIG5hdGl2ZSBjdXJyZW5jeSBvciBleHRlcm5hbCBhc3NldC4ANFJlcXVpcmVtZW50czpwKiBUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkLpQqIEFsbCBzcGVjaWZpZWQgcmVjeWNsZXJzIG11c3QgZXhpc3QuLQEqIFRoZSBhbGlhcyBwcm9vZnMgbXVzdCBjb3JyZXNwb25kIHNlcXVlbnRpYWxseSB0byB0aGUgYWxpYXNlcyBpbiBgaW5wdXRzYC45ASogYGlucHV0c2AgbXVzdCBub3QgYmUgZW1wdHkgYW5kIGVhY2ggZWxlbWVudCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGFsaWFzLkEBKiBUaGUgc2lnbmVyIG11c3QgaGF2ZSBzdWZmaWNpZW50IGJhbGFuY2UgdG8gcGF5IHRoZSBmZWUgKG9uZSBmZWUgcGVyIHJlY3ljbGVyKS5odW5sb2FkX3JlY3ljbGVyX2ludG9fY29pbnMYARxhbGlhc2VzyQQBmEJvdW5kZWRWZWM8QWxpYXMsIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEUdmFsdWV1AwEkQ29pblZhbHVlAAEUaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAAShzcGxpdF9pbnRvqQQBaQFCb3VuZGVkVmVjPChDb2luVmFsdWUsIEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhTcGxpdE91dHB1dHM+KSwKVDo6TWF4U3BsaXRPdXRwdXRzLD4AARxtYXhfZmVlxAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AA201FVubG9hZCBhIHJlY3ljbGVyIHRvIG1pbnQgbXVsdGlwbGUgbmV3IGNvaW5zIChzcGxpdCkuACkBVGhlIG9yaWdpbiBtdXN0IGJlIGEgW09yaWdpbjo6VW5sb2FkVG9rZW5dIHdpdGggYGZlZTogVW5sb2FkRmVlOjpQcmVwYWlkYC4ARQFUaGlzIGZ1bmN0aW9uIGNvbWJpbmVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIFtTZWxmOjp1bmxvYWRfcmVjeWNsZXJfaW50b19jb2luXSBhbmRFAVtTZWxmOjpzcGxpdF0gaW4gYSBzaW5nbGUgYXRvbWljIG9wZXJhdGlvbi4gVGhlIHJlc3VsdGluZyBjb2lucycgYWdlIGlzIDEgYmVjYXVzZUUBdGhlIGFjdGlvbiBvZiBzcGxpdHRpbmcgYWdlIGNvaW5zLiBUaGlzIGlzIGFsc28gaW1wb3J0YW50IGJlY2F1c2UgcmVzdWx0aW5nIGNvaW5z6GFyZSBub3QgZW50aXJlbHkgZnJlc2gsIHRoZXkgY2FuIGJlIGxpbmtlZCB0byBvdGhlciBjb2lucy4AWQFVbmxpa2UgW1NlbGY6OnVubG9hZF9yZWN5Y2xlcl9pbnRvX2NvaW5dLCB0aGlzIGNhbGwgZG9lcyAqKm5vdCoqIHJlcXVpcmUgdGhlIG51bWJlciBvZnRhbGlhc2VzIHRvIGJlIGEgcG93ZXIgb2YgdHdvLgAsUGFyYW1ldGVyczpFASogYGFsaWFzZXNgOiB0aGUgbGlzdCBvZiBhbGlhc2VzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1lbWJlciBrZXlzIGluY2x1ZGVkIGluIHRoZRUBICByZWN5Y2xlci4gVGhlIHByb29mcyBmb3IgdGhlc2UgYWxpYXNlcyBhcmUgY29udGFpbmVkIGluIHRoZSBvcmlnaW4u+CogYHZhbHVlYCBhbmQgYGluZGV4YDogaWRlbnRpZmllcyB0aGUgcmVjeWNsZXIgYmVpbmcgdW5sb2FkZWQu+CogYHJldmlzaW9uYDogdGhlIHJlY3ljbGVyIHJldmlzaW9uIHVzZWQgZm9yIHRoZSBhbGlhc19wcm9vZnMuSQEqIGBzcGxpdF9pbnRvYDogYSB2ZWN0b3Igb2YgcGFpcnMsIGVhY2ggcGFpciBjb250YWluaW5nIGEgY29pbiB2YWx1ZSBhbmQgYSBsaXN0IG9maCAgZGVzdGluYXRpb24gYWNjb3VudCBpZHMuWQEqIGBtYXhfZmVlYDogdGhlIG1heGltdW0gZmVlIHRoZSBjYWxsZXIgaXMgd2lsbGluZyB0byBwYXksIGV4cHJlc3NlZCBpbiB0aGUgdW5kZXJseWluZ0kBICBhc3NldCBiYWxhbmNlLiBJdCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHRvdGFsIHZhbHVlIG9mIHRoZTkBICB1bmxvYWRlZCBjb2lucyBhbmQgdGhlIHRvdGFsIHZhbHVlIG9mIHRoZSBuZXcgY29pbnMgZGVmaW5lZCBpbiBgc3BsaXRfaW50b2AuAMggIFdoZW4gdXNpbmcgW1VubG9hZEZlZTo6UHJlcGFpZF0sIHRoaXMgbXVzdCBiZSAwLkUBICBXaGVuIHVzaW5nIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB0aGlzIGFtb3VudCBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBpbnB1dDogdGhlVQEgIG5ldHdvcmsgZmVlIGlzIHRyYW5zZmVycmVkIHRvIFtDb25maWc6OkZlZURlc3RpbmF0aW9uXSBhbmQgYW55IHJlbWFpbmRlciBpcyBidXJuZWQuQQEgIFRoZSBjYWxsZXIgY2FuIHF1ZXJ5IGBnZXRfcGFpZF91bmxvYWRfdG9rZW5fZmVlX2luX2Fzc2V0YCB0byBlc3RpbWF0ZSB0aGUgZmVlLgBhASAgVGhpcyBwYXJhbWV0ZXIgc2VydmVzIGFzIGEgc2FmZWd1YXJkOiB0aGUgdHJhbnNhY3Rpb24gaXMgcmVqZWN0ZWQgYXQgdmFsaWRhdGlvbiBpZiB0aGVBASAgYWN0dWFsIG5ldHdvcmsgZmVlIGV4Y2VlZHMgYG1heF9mZWVgLCBwcm90ZWN0aW5nIHRoZSBjYWxsZXIgZnJvbSBleGNlc3NpdmUgZmVlXQEgIGluY3JlYXNlcyB0aGF0IHdvdWxkIHJlbmRlciB0aGUgYXJndW1lbnQgYHNwbGl0X2ludG9gIGludmFsaWQgKHVubG9hZGVkIGZ1bmRzIG11c3QgYmWYICBoaWdoZXIgdGhhbiB0aGUgc3BsaXQgcGx1cyB0aGUgZmVlKS4ANFJlcXVpcmVtZW50czqsKiBUaGUgb3JpZ2luIG11c3QgYmUgW09yaWdpbjo6VW5sb2FkVG9rZW5dLvAqIFRoZSByZWN5Y2xlciBpZGVudGlmaWVkIGJ5IGB2YWx1ZWAgYW5kIGBpbmRleGAgbXVzdCBleGlzdC5RASogVGhlIGFsaWFzIHByb29mcyBwcm92aWRlZCBpbiB0aGUgb3JpZ2luIG11c3QgYmUgdmFsaWQgZm9yIHRoZSByZWN5Y2xlcidzIHJldmlzaW9uLiEBKiBUaGUgYGFsaWFzZXNgIHByb3ZpZGVkIG11c3QgbWF0Y2ggdGhlIGFsaWFzZXMgZGVyaXZlZCBmcm9tIHRoZSBwcm9vZnMuYQEqIFRoZSB0b3RhbCB2YWx1ZSBvZiB0aGUgbmV3IGNvaW5zIGRlZmluZWQgaW4gYHNwbGl0X2ludG9gIHBsdXMgYG1heF9mZWVgIG11c3QgZXF1YWwgdGhlkCAgdG90YWwgdmFsdWUgb2YgdGhlIHVubG9hZGVkIGNvaW5zLlUBKiBgbWF4X2ZlZWAgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBtaW5pbXVtIGNvaW4uIChUaGlzIGlzIGltcGxpZWQgYnkgdGhlIGNvbmRpdGlvbiQgIGFib3ZlKS7gKiBFYWNoIGRlc3RpbmF0aW9uIGFjY291bnQgbXVzdCBub3QgYWxyZWFkeSBoYXZlIGEgY29pbi7cKiBXaGVuIHVzaW5nIFtVbmxvYWRGZWU6OlByZXBhaWRdLCBgbWF4X2ZlZWAgbXVzdCBiZSAwLi0BKiBXaGVuIHVzaW5nIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCBgbWF4X2ZlZWAgbXVzdCBjb3ZlciB0aGUgbmV0d29yayBmZWUuoGRpcmVjdF9vZmZib2FyZF9jb2luX2ludG9fZXh0ZXJuYWxfYXNzZXQEAQh0bwQBMFQ6OkFjY291bnRJZAAOOCUBRGlyZWN0bHkgb2ZmYm9hcmQgYSBmcmVzaCwgMC1hZ2UgY29pbiBpbnRvIHRoZSB1bmRlcmx5aW5nIGV4dGVybmFsIGFzc2V0LgBFAVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OkNvaW5dLCBvYnRhaW5lZCB0aHJvdWdoIFtBc0NvaW5hZ2VdIHVzaW5nIGBBc0NvaW5gLgANAUJlY2F1c2UgdGhlIGNvaW4gbXVzdCBiZSBmcmVzaCAoYGFnZSA9PSAwYCksIHRoaXMgY2FsbCBieXBhc3NlcyB0aGVJAXJlY3ljbGVyL3VubG9hZC10b2tlbiBvZmZib2FyZGluZyBmbG93IGFuZCByZWxlYXNlcyB0aGUgdW5kZXJseWluZyBhc3NldCBkaXJlY3RseS4ALFBhcmFtZXRlcnM6PQEqIGB0b2A6IGRlc3RpbmF0aW9uIGFjY291bnQgdGhhdCByZWNlaXZlcyB0aGUgcmVsZWFzZWQgdW5kZXJseWluZyBhc3NldCBhbW91bnQuADRSZXF1aXJlbWVudHM6kCogVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OkNvaW5dLqgqIFRoZSBjb2luIG11c3QgYmUgZnJlc2g6IGBjb2luLmFnZSA9PSAwYC4JASogVGhlIGNvaW4gdmFsdWUgbXVzdCBiZSByZXByZXNlbnRhYmxlIGFzIHVuZGVybHlpbmctYXNzZXQgYW1vdW50LlxzZXRfdW5kZXJseWluZ19hc3NldF9pZAQBIGFzc2V0X2lk4AFURnVuZ2libGVzQXNzZXRJZE9mPFQ+AAokvFNldCB0aGUgdW5kZXJseWluZyBhc3NldCBpZCB1c2VkIGJ5IHRoZSBwYWxsZXQuAC0BVGhlIG9yaWdpbiBtdXN0IHNhdGlzZnkgW2BDb25maWc6OlVuZGVybHlpbmdBc3NldElkTWFuYWdlcmBdLiBUaGUgc2V0dGVyIGlzIQEqKnNpbmdsZS11c2UqKjogY2FsbGluZyBpdCBhZ2FpbiBhZnRlciB0aGUgYXNzZXQgaWQgaGFzIGJlZW4gc2V0IHJldHVybnNNAVtgRXJyb3I6OkFzc2V0SWRBbHJlYWR5U2V0YF0uIENoYW5naW5nIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGFmdGVyIGNvaW5zIGV4aXN0IHdvdWxkNQFvcnBoYW4gdGhlIGhlbGQgYmFsYW5jZXMgb2YgZXZlcnkgaW4tZmxpZ2h0IGNvaW4sIHNvIHRoZSBvbi1jaGFpbiBkZWNpc2lvbiBpc1xpbnRlbnRpb25hbGx5IG9uZS1zaG90LgDkVGhlIGFzc2V0IGlkIG11c3QgYWxyZWFkeSBleGlzdCBpbiBbYENvbmZpZzo6RnVuZ2libGVzYF0uOGNsZWFuX3JlY3ljbGVyBAEUdmFsdWV1AwEkQ29pblZhbHVlAGUcdENsZWFuIHVwIGFuIGV4cGlyZWQgcmVjeWNsZXIuAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS4ADQFUaGlzIHJlbW92ZXMgYW4gb2xkIHJlY3ljbGVyIHRoYXQgaGFzIGV4Y2VlZGVkIGl0cyBleHBpcmF0aW9uIHRpbWUuSQFBbnkgcmVtYWluaW5nIChub3QgdW5sb2FkZWQpIHZhbHVlIGluIHRoZSByZWN5Y2xlciBpcyBjb25zaWRlcmVkIGxvc3QgYW5kIGFkZGVkIHRvdFtUb3RhbFZhbHVlT2ZEZXN0cm95ZWRDb2luc10uZGNsZWFuX2NvbnN1bWVkX2ZyZWVfdG9rZW4EARhwZXJpb2Q4ARhQZXJpb2QAZgz8Q2xlYW51cCBzdG9yYWdlIGZvciBjb25zdW1lZCBmcmVlIHVubG9hZCB0b2tlbnMgb2Ygb2xkIHBlcmlvZHMuAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS5wY2xlYW5fcGFpZF91bmxvYWRfdG9rZW5fcmluZwgBGHBlcmlvZDgBGFBlcmlvZAABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAaBgJAUNsZWFuIHVwIGEgc2luZ2xlIHJpbmcgaW4gYW4gZXhwaXJlZCBwYWlkIHVubG9hZCB0b2tlbiBjb2xsZWN0aW9uLgBBAVRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBUaGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZCBhbmQgZnJvbSBsb2NhbCBzb3VyY2UuKQFSaW5ncyBtdXN0IGJlIGNsZWFuZWQgc2VxdWVudGlhbGx5IChyaW5nIDAgZmlyc3QsIHRoZW4gMSwgZXRjLikgYmVmb3JlIHRoZXRjb2xsZWN0aW9uIGNhbiBiZSBkZWxldGVkIHZpYY0BW2BkZWxldGVfZXhwaXJlZF9wYWlkX3VubG9hZF90b2tlbl9jb2xsZWN0aW9uYF0oU2VsZjo6ZGVsZXRlX2V4cGlyZWRfcGFpZF91bmxvYWRfdG9rZW5fY29sbGVjdGlvbikuTGNsZWFuX3JlY3ljbGVyX2R1c3QAaRRwQ2xlYW4gdXAgZHVzdCBmb3IgcmVjeWNsZXJzLgBBAVRoaXMgaXMgYSBtYWludGVuYW5jZSBjYWxsLiBUaGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZCBhbmQgZnJvbSBsb2NhbCBzb3VyY2UuSQFSZW1vdmVzIHVwIHRvIERVU1RfQ0xFQU5VUF9CQVRDSF9TSVpFIHVubG9hZGVkIGFsaWFzIGVudHJpZXMgcGVyIGNhbGwgdG8gYm91bmQgdGhlKG9wZXJhdGlvbi5wY2xlYW5fcGFpZF91bmxvYWRfdG9rZW5fZHVzdABqDJRDbGVhbiB1cCBkdXN0IGZvciBwYWlkIHVubG9hZCB0b2tlbnMuAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS6sZGVsZXRlX2V4cGlyZWRfcGFpZF91bmxvYWRfdG9rZW5fY29sbGVjdGlvbgQBGHBlcmlvZDgBGFBlcmlvZABrGEUBRGVsZXRlIGFuIGV4cGlyZWQgcGFpZCB1bmxvYWQgdG9rZW4gY29sbGVjdGlvbiBhZnRlciBhbGwgcmluZ3MgaGF2ZSBiZWVuIGNsZWFuZWQuAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS6QQWxsIHJpbmdzIG11c3QgaGF2ZSBiZWVuIGNsZWFuZWQgdmlhQQFbYGNsZWFuX3BhaWRfdW5sb2FkX3Rva2VuX3JpbmdgXShTZWxmOjpjbGVhbl9wYWlkX3VubG9hZF90b2tlbl9yaW5nKSBiZWZvcmUgdGhpczhjYW4gYmUgY2FsbGVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6pBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAa0EBFMAAAQAtQQBGFZlYzxUPgAArQQAAAQIdQOxBACxBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQQEUwAABADMARhWZWM8VD4AALUEAAACrQQAuQQMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldERDb2RlY1ByZXNlcnZhdGlvbgABDChFeHBlbmRhYmxlAAAAHFByb3RlY3QAAQAgUHJlc2VydmUAAgAAvQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHBBARTAAAEAMUEARhWZWM8VD4AAMEEDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQ8VW5wYWlkTG9hZElucHV0BARUAAAQATBwcmVzZXJ2YXRpb265BAFEQ29kZWNQcmVzZXJ2YXRpb24AARR2YWx1ZXUDASRDb2luVmFsdWUAAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwE4U2lnbmF0dXJlT2Y8VD4AAMUEAAACwQQAyQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAsQMBGFZlYzxUPgAAzQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHRBARTAAAEANUEARhWZWM8VD4AANEEAAAECHUDCADVBAAAAtEEANkEDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXRMVW5sb2FkUmVjeWNsZXJJbnB1dAQwQWxpYXNlc0JvdW5kAAAQARR2YWx1ZXUDASRDb2luVmFsdWUAARRpbmRleDgBJFJpbmdJbmRleAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABHGFsaWFzZXPJBAF8Qm91bmRlZFZlYzxBbGlhcywgQWxpYXNlc0JvdW5kPgAA3QQMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldCxGZWVDdXJyZW5jeQABCBhOYXRpdmUAAAA0RXh0ZXJuYWxBc3NldAABAADhBAAAAtkEAOUEDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchhwYWxsZXQQQ2FsbAQEVAABHCRzdWJzY3JpYmUMAVxzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZJwBGFBhcmFJZAABTG1lbWJlcnNfY29sbGVjdGlvbnPpBAEdAUJvdW5kZWRWZWM8KElkZW50aWZpZXIsIFJpbmdFeHBvbmVudCksIFQ6Ok1heENvbGxlY3Rpb25zUGVyU3Vic2NyaWJlciw+AAEwcGFsbGV0X2luZGV4DAEIdTgAACygUmVnaXN0ZXJzIHRoZSBwYXJhY2hhaW4gYXMgYSBzdWJzY3JpYmVyLtBUaGUgaW5pdGlhbCBzdGF0ZSB3aWxsIGJlIHNlbnQgb3ZlciBzaG9ydGx5IHZpYSBYQ00uACQjIyBPcmlnaW6oUmVxdWlyZXMgYE1hbmFnZU9yaWdpbmAgKGdvdmVybmFuY2Uvcm9vdCkuADQjIyBQYXJhbWV0ZXJzFQEtIGBzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZGA6IFRoZSBQYXJhSWQgb2YgdGhlIHN1YnNjcmliaW5nIHBhcmFjaGFpbi5FAS0gYG1lbWJlcnNfY29sbGVjdGlvbnNgOiBMaXN0IG9mIGNvbGxlY3Rpb24gaWRlbnRpZmllcnMgdG8gc3Vic2NyaWJlIHRvIGFuZCB0aGVpcnAgIHJlc3BlY3RpdmUgcmluZyBleHBvbmVudHMuNQEtIGBwYWxsZXRfaW5kZXhgOiBQYWxsZXQgaW5kZXggb2YgbWVtYmVycy1zdWJzY3JpYmVyIG9uIHRoZSBzdWJzY3JpYmVyIGNoYWluLix1bnN1YnNjcmliZQQBXHN1YnNjcmliZXJfcGFyYWNoYWluX2lk9QQBOE9wdGlvbjxQYXJhSWQ+AAEkZFVuc3Vic2NyaWJlcyBhIHBhcmFjaGFpbi4AJCMjIE9yaWdpbj0BLSAqKlNlbGYtdW5zdWJzY3JpYmUqKjogU3Vic2NyaWJlciBwYXJhY2hhaW4gdmlhIFhDTSAoYEVuc3VyZVN1YnNjcmliZXJPcmlnaW5gKdQtICoqR292ZXJuYW5jZSB1bnN1YnNjcmliZSoqOiBSZXF1aXJlcyBgTWFuYWdlT3JpZ2luYAA0IyMgUGFyYW1ldGVyc2EBLSBgc3Vic2NyaWJlcl9wYXJhY2hhaW5faWRgOiBUaGUgUGFyYUlkIHRvIHVuc3Vic2NyaWJlLiBSZXF1aXJlZCBmb3IgZ292ZXJuYW5jZSwgaWdub3JlZMQgIGZvciBzZWxmLXVuc3Vic2NyaWJlIChkZXJpdmVkIGZyb20gWENNIG9yaWdpbikuOHJlcXVlc3RfcmVwbGF5DAFcc3Vic2NyaWJlcl9wYXJhY2hhaW5faWScARhQYXJhSWQAAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABRHJpbmdfcm9vdF9pbmRpY2Vz+QQBsEJvdW5kZWRWZWM8UmluZ0luZGV4LCBUOjpNYXhVcGRhdGVzUGVyQmF0Y2g+AAIknFJlcXVlc3RzIHJlcGxheSBvZiBzcGVjaWZpYyByaW5nIHJvb3RzLgA1AVBlcm1pc3Npb25sZXNzIOKAlCBhbnkgc2lnbmVkIG9yaWdpbiBjYW4gcmVxdWVzdCBhIHJlcGxheSBmb3IgYW55IHN1YnNjcmliZXIuSQFUaGUgc3Vic2NyaWJlciBwYXJhY2hhaW4gaXMgaWRlbnRpZmllZCBieSB0aGUgYHN1YnNjcmliZXJfcGFyYWNoYWluX2lkYCBwYXJhbWV0ZXIuACxQYXJhbWV0ZXJzOugtIGBzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZGA6IFRoZSBQYXJhSWQgb2YgdGhlIHN1YnNjcmliZXIumC0gYGlkZW50aWZpZXJgOiBDb2xsZWN0aW9uIGlkZW50aWZpZXIuWQEtIGByaW5nX3Jvb3RfaW5kaWNlc2A6IExpc3Qgb2YgcmluZyByb290IGluZGljZXMsIG11c3QgYmUgaW4gc3RyaWN0bHkgYXNjZW5kaW5nIG9yZGVyLjxlbnF1ZXVlX3VwZGF0ZXMIASRzZW5kX3BhZ2UtAwEMdTE2AAE0ZGlzY3JpbWluYXRvcjgBREJsb2NrTnVtYmVyRm9yPFQ+AAMM+EVucXVldWVzIHBlbmRpbmcgdXBkYXRlcyBpbnRvIGEgc2VhbGVkIGJhdGNoIGZvciBkaXN0cmlidXRpb24uAMRBdXRob3JpemVkIGNhbGwgc3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuKHNlbmRfYmF0Y2gMARxwYXJhX2lknAEYUGFyYUlkAAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgABNGRpc2NyaW1pbmF0b3I4AURCbG9ja051bWJlckZvcjxUPgAEDMRTZW5kcyB0aGUgY3VycmVudCBiYXRjaCB0byBhIHNwZWNpZmljIHN1YnNjcmliZXIuAPRBdXRob3JpemVkIG1haW50ZW5hbmNlIGNhbGwgc3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuOHNlbmRfaW5pdF9wYWdlEAEccGFyYV9pZJwBGFBhcmFJZAABYGN1cnJlbnRfY29sbGVjdGlvbl9pbmRleDgBDHUzMgABQGFmdGVyX3JpbmdfaW5kZXgJAwFET3B0aW9uPFJpbmdJbmRleD4AATRkaXNjcmltaW5hdG9yOAFEQmxvY2tOdW1iZXJGb3I8VD4ABQzYU2VuZHMgb25lIHBhZ2Ugb2YgaW5pdGlhbGl6YXRpb24gZGF0YSB0byBhIHN1YnNjcmliZXIuAPRBdXRob3JpemVkIG1haW50ZW5hbmNlIGNhbGwgc3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuTGFiYW5kb25fc3R1Y2tfYmF0Y2gEATRkaXNjcmltaW5hdG9yOAFEQmxvY2tOdW1iZXJGb3I8VD4ABhTkQWJhbmRvbnMgYSBzdHVjayBiYXRjaCB0aGF0IGV4Y2VlZGVkIGBTdHVja0JhdGNoVGltZW91dGAuMQFTdWJzY3JpYmVycyB0aGF0IGRpZCBub3QgcmVjZWl2ZSB0aGUgYmF0Y2ggY2FuIHJlY292ZXIgdmlhIGByZXF1ZXN0X3JlcGxheWAuADUBQXV0aG9yaXplZCBtYWludGVuYW5jZSBjYWxsIHN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyIHdoZW4gYSBiYXRjaCBoYXOwYmVlbiBhY3RpdmUgbG9uZ2VyIHRoYW4gYFN0dWNrQmF0Y2hUaW1lb3V0YC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu6QQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHtBARTAAAEAPEEARhWZWM8VD4AAO0EAAAECAiRBADxBAAAAu0EAPUEBBhPcHRpb24EBFQBnAEIEE5vbmUAAAAQU29tZQQAnAAAAQAA+QQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE4BFMAAAQAyQMBGFZlYzxUPgAA/QQMUGluZGl2X3BhbGxldF9haXJkcm9wGHBhbGxldBBDYWxsBARUAAEwOHNjaGVkdWxlX2V2ZW50CAEgZXZlbnRfaWQIARxFdmVudElkAAEQaW5mbwEFAThFdmVudEluZm9PZjxUPgAAFFUBU2NoZWR1bGUgYSBuZXcgYWlyZHJvcCBldmVudC4gT3JpZ2luIG11c3QgYmUgYE1hbmFnZXJPcmlnaW5gLiBUaGUgcHJpemUgYWxsb2NhdGlvbiBpcxkBaGVsZCBpbiB0aGUgcGFsbGV0J3MgcG90IGFjY291bnQuIFRoZSBwb3QgaXMgYXNzdW1lZCB0byBiZSBwcmUtZnVuZGVkLgBRAUNyb3NzLXBhbGxldCBjYWxsZXJzIHNob3VsZCB1c2UgdGhlIFtgY3JhdGU6OnR5cGVzOjpBaXJkcm9wOjpzY2hlZHVsZWBdIHRyYWl0IG1ldGhvZORpbnN0ZWFkLCB3aGljaCBkZWJpdHMgYSBjYWxsZXItc3VwcGxpZWQgYHNvdXJjZWAgYWNjb3VudC5YcmVtb3ZlX3NjaGVkdWxlZF9ldmVudAQBIGV2ZW50X2lkCAEcRXZlbnRJZAABCBEBUmVtb3ZlIGEgcHJldmlvdXNseSBzY2hlZHVsZWQgZXZlbnQuIFRoZSBldmVudCBtdXN0IG5vdCBoYXZlIGFscmVhZHmcc3RhcnRlZCwgb3RoZXJ3aXNlIHRoaXMgY2FsbCB3aWxsIGZhaWwuMGVuYWJsZV9hc3NldAgBIGFzc2V0X2lk4AEwQXNzZXRJZE9mPFQ+AAEYc291cmNlBAEwVDo6QWNjb3VudElkAAoQTQFFbmFibGUgYW4gYXNzZXQgZm9yIHVzZSBpbiBhaXJkcm9wIGV2ZW50cy4gVGhlIG9yaWdpbiBtdXN0IGJlIGBNYW5hZ2VyT3JpZ2luYCBvbmx5LgBZAVRyYW5zZmVycyB0aGUgYXNzZXQncyBjdXJyZW50IG1pbmltdW0gYmFsYW5jZSBmcm9tIGBzb3VyY2VgIHRvIHRoZSBwYWxsZXQncyBwb3Qgc28gdGhlJQFwb3QncyBhc3NldCBhY2NvdW50IHN0YXlzIGFsaXZlIHdoaWxlIGV2ZW50cyBob2xkIHByaXplIGZ1bmRzIGFnYWluc3QgaXQuNGRpc2FibGVfYXNzZXQIASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABLGJlbmVmaWNpYXJ5BAEwVDo6QWNjb3VudElkAAsUWQFEaXNhYmxlIGFuIGFzc2V0IHByZXZpb3VzbHkgZW5hYmxlZCB3aXRoIGBlbmFibGVfYXNzZXRgLiBSZWZ1bmRzIHRoZSBvcmlnaW5hbGx5LWZ1bmRlZDkBYW1vdW50IGZyb20gdGhlIHBvdCB0byBgYmVuZWZpY2lhcnlgLiBUaGUgb3JpZ2luIG11c3QgYmUgYE1hbmFnZXJPcmlnaW5gIG9ubHkuAE0BVGhlIG1hbmFnZXIgaXMgcmVzcG9uc2libGUgZm9yIGVuc3VyaW5nIG5vIGV2ZW50cyBzdGlsbCByZWZlcmVuY2UgdGhpcyBhc3NldCBiZWZvcmUZAWRpc2FibGluZywgYnV0IHRoaXMgaXMgc2FmZSBzaW5jZSBzY2hlZHVsaW5nIGFuIGV2ZW50IGlzIHBlcm1pc3Npb25lZC50c3RhcnRfcmVnaXN0cmF0aW9uX2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAIc3E9DVy1kcml2ZW46IHRyYW5zaXRpb24gYFNjaGVkdWxlZCDihpIgUmVnaXN0ZXJpbmdgIHdoZW6EYHJlZ2lzdHJhdGlvbl9zdGFydHNgIGlzIHJlYWNoZWQuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLnRjbG9zZV9yZWdpc3RyYXRpb25fYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIAAzRsT0NXLWRyaXZlbjogYXQgYGRyYXdfdGltZWA6UC0gY2xvc2UgcmVnaXN0cmF0aW9uUC0gY2FwdHVyZSByYW5kb21uZXNzhC0gY29tcHV0ZSB0aGUgdGFyZ2V0IHdpbm5lciBjb3VudMwtIHJlbGVhc2UgdGhlIHVudXNlZC1zbG90IHByaXplIGFsbG9jYXRpb24gdXAtZnJvbnSoLSB0cmFuc2l0aW9uIGBSZWdpc3RlcmluZyDihpIgRHJhd1dpbm5lcnNgABUBVGhlIGRyYXcgaXRzZWxmIGlzIHBlcmZvcm1lZCBpbiBiYXRjaGVzIGJ5IGBkcmF3X3dpbm5lcnNfYXV0aG9yaXplZGAuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLlxkcmF3X3dpbm5lcnNfYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIABCTQT0NXLWRyaXZlbjogZHJhdyB1cCB0byBgRHJhd0xpbWl0YCB3aW5uZXJzIHBlciBjYWxsLgBFAUFmdGVyIGFsbCB0aGUgd2lubmVycyBhcmUgZHJhd24sIHRoZSB0cmFuc2l0aW9uIHRvIGBDbGFpbWluZ2AgaXMgcGVyZm9ybWVkIGJ5IHRoZZBzZXBhcmF0ZSBgY2xvc2VfZHJhd2luZ19hdXRob3JpemVkYC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wuYGNsb3NlX2RyYXdpbmdfYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIABRxRAU9DVy1kcml2ZW46IG9uY2UgYGRyYXdfd2lubmVyc19hdXRob3JpemVkYCBoYXMgZmlsbGVkIHRoZSB3aW5uZXIgc2V0LCB0cmFuc2l0aW9uIHRoZZxldmVudCBmcm9tIGBEcmF3V2lubmVyc2AgdG8gYENsYWltaW5nYC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wuZGNsb3NlX2NsYWltaW5nX2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAYYMQFPQ1ctZHJpdmVuOiBhdCBgZW5kX3RpbWVgIGNsb3NlIGNsYWltaW5nIGFuZCBlbnRlciB0aGUgZmlyc3QgY2xlYW4tdXAgcGhhc2UuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLoRjbGVhbl91cF9yZWdpc3RyYXRpb25zX2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAccOQFPQ1ctZHJpdmVuOiBGaXJzdCBzdGVwIG9mIGNsZWFuLXVwIGlzIHRvIGNsZWFyIHVwIHRvIGBDbGVhckxpbWl0YCBlbnRyaWVzIGZyb21VAWBSZWdpc3RyYXRpb25zYC4gV2hlbiB0aGUgc3RvcmFnZSBpcyBmdWxseSBkcmFpbmVkLCB0cmFuc2l0aW9ucyB0byBgQ2xlYXJpbmdXaW5uZXJzYC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wubGNsZWFuX3VwX3dpbm5lcnNfYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIACBw9AU9DVy1kcml2ZW46IFNlY29uZCBzdGVwIG9mIGNsZWFuLXVwIGlzIHRvIGNsZWFyIHVwIHRvIGBDbGVhckxpbWl0YCBlbnRyaWVzIGZyb20pAWBXaW5uZXJzYC4gV2hlbiB0aGUgc3RvcmFnZSBpcyBmdWxseSBkcmFpbmVkLCB0cmFuc2l0aW9ucyB0byBgRmluYWxpemluZ2AuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLkxmaW5hbGl6ZV9hdXRob3JpemVkCAEgZXZlbnRfaWQIARxFdmVudElkAAE0ZGlzY3JpbWluYXRvcjgBDHUzMgAJHE0BT0NXLWRyaXZlbjogVGhpcmQgc3RlcCBvZiBjbGVhbi11cCBpcyB0byByZWxlYXNlIHRoZSB1bmNsYWltZWQgcHJpemUgYWxsb2NhdGlvbiBhbmREcmVtb3ZlIHRoZSBldmVudC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgEFDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBR0eXBlcyRFdmVudEluZm8IHEFzc2V0SWQB4DBBc3NldEJhbGFuY2UBxAAQARRwcml6ZSUEAYxBaXJkcm9wUHJpemU8QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgABTHJlZ2lzdHJhdGlvbl9zdGFydHMoAQx1NjQAASRkcmF3X3RpbWUoAQx1NjQAASBlbmRfdGltZSgBDHU2NAAABQUMTGluZGl2X3BhbGxldF9ob25vdXIYcGFsbGV0EENhbGwEBFQAAQQYYmVzdG93CAEQdm90ZQkFASBWb3RlRGF0YQABPGNhbGxfdmFsaWRfZnJvbSgBHFNlY29uZHMAABA4QmVzdG93IGEgdm90ZS4AVQFBY2NlcHRzIG9ubHkgdGhlIFtgT3JpZ2luOjpWb3RlcmBdIG9yaWdpbiwgd2hpY2ggaXMgY3JlYXRlZCBieSB2ZXJpZnlpbmcgYSByaW5nIHByb29mBQFpbiB0aGUgW2BWb3RlckF1dGhgXShleHRlbnNpb246OlZvdGVyQXV0aCkgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4JBQxMaW5kaXZfcGFsbGV0X2hvbm91chR0eXBlcyBWb3RlRGF0YQAADAEcc3ViamVjdAgBJFN1YmplY3RJZAABFHBvaW50DAEcUG9pbnRJZAABJGRpcmVjdGlvbg0FASREaXJlY3Rpb24AAA0FDExpbmRpdl9wYWxsZXRfaG9ub3VyFHR5cGVzJERpcmVjdGlvbgABCChIb25vdXJhYmxlAAAANERpc2hvbm91cmFibGUAAQAAEQUMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBBDYWxsBARUAAEQQGZvcmNlX3NldF9jdXJzb3IEARhjdXJzb3IVBQFMT3B0aW9uPEN1cnNvck9mPFQ+PgAAFF0BQWxsb3dzIHJvb3QgdG8gc2V0IGEgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQsIHN0b3Agb3IgZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEkBU2hvdWxkIG5vcm1hbGx5IG5vdCBiZSBuZWVkZWQgYW5kIGlzIG9ubHkgaW4gcGxhY2UgYXMgZW1lcmdlbmN5IG1lYXN1cmUuIE5vdGUgdGhhdAUBcmVzdGFydGluZyB0aGUgbWlncmF0aW9uIHByb2Nlc3MgaW4gdGhpcyBtYW5uZXIgd2lsbCBub3QgY2FsbCB0aGUtAVtgTWlncmF0aW9uU3RhdHVzSGFuZGxlcjo6c3RhcnRlZGBdIGhvb2sgb3IgZW1pdCBhbiBgVXBncmFkZVN0YXJ0ZWRgIGV2ZW50Llxmb3JjZV9zZXRfYWN0aXZlX2N1cnNvcgwBFGluZGV4OAEMdTMyAAEwaW5uZXJfY3Vyc29yJQUBWE9wdGlvbjxSYXdDdXJzb3JPZjxUPj4AAShzdGFydGVkX2F0CQMBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AARhZAUFsbG93cyByb290IHRvIHNldCBhbiBhY3RpdmUgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQvZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEUBVGhpcyBpcyBhbiBlZGdlLWNhc2UgdmVyc2lvbiBvZiBbYFNlbGY6OmZvcmNlX3NldF9jdXJzb3JgXSB0aGF0IGFsbG93cyB0byBzZXQgdGhlYQFgc3RhcnRlZF9hdGAgdmFsdWUgdG8gdGhlIG5leHQgYmxvY2sgbnVtYmVyLiBPdGhlcndpc2UgdGhpcyB3b3VsZCBub3QgYmUgcG9zc2libGUsIHNpbmNlRQFgZm9yY2Vfc2V0X2N1cnNvcmAgdGFrZXMgYW4gYWJzb2x1dGUgYmxvY2sgbnVtYmVyLiBTZXR0aW5nIGBzdGFydGVkX2F0YCB0byBgTm9uZWABAWluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBwbHVzIG9uZSBzaG91bGQgYmUgdXNlZC5IZm9yY2Vfb25ib2FyZF9tYm1zAAIQoEZvcmNlcyB0aGUgb25ib2FyZGluZyBvZiB0aGUgbWlncmF0aW9ucy4AXQFUaGlzIHByb2Nlc3MgaGFwcGVucyBhdXRvbWF0aWNhbGx5IG9uIGEgcnVudGltZSB1cGdyYWRlLiBJdCBpcyBpbiBwbGFjZSBhcyBhbiBlbWVyZ2VuY3n8bWVhc3VyZW1lbnQuIFRoZSBjdXJzb3IgbmVlZHMgdG8gYmUgYE5vbmVgIGZvciB0aGlzIHRvIHN1Y2NlZWQuOGNsZWFyX2hpc3RvcmljBAEgc2VsZWN0b3IpBQGgSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3I8SWRlbnRpZmllck9mPFQ+PgADFGhDbGVhcnMgdGhlIGBIaXN0b3JpY2Agc2V0LgANAWBtYXBfY3Vyc29yYCBtdXN0IGJlIHNldCB0byB0aGUgbGFzdCB2YWx1ZSB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGVdAWBIaXN0b3JpY0NsZWFyZWRgIGV2ZW50LiBUaGUgZmlyc3QgdGltZSBgTm9uZWAgY2FuIGJlIHVzZWQuIGBsaW1pdGAgbXVzdCBiZSBjaG9zZW4gaW4gYah3YXkgdGhhdCB3aWxsIHJlc3VsdCBpbiBhIHNlbnNpYmxlIHdlaWdodC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuFQUEGE9wdGlvbgQEVAEZBQEIEE5vbmUAAAAQU29tZQQAGQUAAAEAABkFCERwYWxsZXRfbWlncmF0aW9uczxNaWdyYXRpb25DdXJzb3IIGEN1cnNvcgEdBSxCbG9ja051bWJlcgE4AQgYQWN0aXZlBAAhBQGEQWN0aXZlQ3Vyc29yPEN1cnNvciwgQmxvY2tOdW1iZXI+AAAAFFN0dWNrAAEAAB0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAIQUIRHBhbGxldF9taWdyYXRpb25zMEFjdGl2ZUN1cnNvcggYQ3Vyc29yAR0FLEJsb2NrTnVtYmVyATgADAEUaW5kZXg4AQx1MzIAATBpbm5lcl9jdXJzb3IlBQE4T3B0aW9uPEN1cnNvcj4AAShzdGFydGVkX2F0OAEsQmxvY2tOdW1iZXIAACUFBBhPcHRpb24EBFQBHQUBCBBOb25lAAAAEFNvbWUEAB0FAAABAAApBQhEcGFsbGV0X21pZ3JhdGlvbnNcSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3IECElkAS0FAQggU3BlY2lmaWMEADEFARxWZWM8SWQ+AAAAIFdpbGRjYXJkCAEUbGltaXQJAwEsT3B0aW9uPHUzMj4AATxwcmV2aW91c19jdXJzb3I1BQE8T3B0aW9uPFZlYzx1OD4+AAEAAC0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAMQUAAAItBQA1BQQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAADkFDIBpbmRpdl9wYWxsZXRfdmFsdWVfdHJhbnNmZXJfYXV0aCRleHRlbnNpb25YQXV0aG9yaXplVmFsdWVUcmFuc2ZlcggEVAAEUAAABAA9BQGMT3B0aW9uPHNwX2NvcmU6OmVkMjU1MTk6OlNpZ25hdHVyZT4AAD0FBBhPcHRpb24EBFQB0QMBCBBOb25lAAAAEFNvbWUEANEDAAABAABBBQxccGFsbGV0X3ZlcmlmeV9zaWduYXR1cmUkZXh0ZW5zaW9uPFZlcmlmeVNpZ25hdHVyZQQEVAABCCBEaXNhYmxlZAAAABhTaWduZWQIASRzaWduYXR1cmXZAwEwVDo6U2lnbmF0dXJlAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABAABFBQxMaW5kaXZfcGFsbGV0X3Blb3BsZSRleHRlbnNpb24gQXNQZXJzb24EBFQAAAQASQUBXE9wdGlvbjxBc1BlcnNvbkluZm88VD4+AABJBQQYT3B0aW9uBARUAU0FAQgQTm9uZQAAABBTb21lBABNBQAAAQAATQUMTGluZGl2X3BhbGxldF9wZW9wbGUkZXh0ZW5zaW9uMEFzUGVyc29uSW5mbwQEVAABFGhBc1BlcnNvbmFsQWxpYXNXaXRoQWNjb3VudAQAOAEgVDo6Tm9uY2UAAABgQXNQZXJzb25hbEFsaWFzV2l0aFByb29mDAB9AwEoUHJvb2ZPZjxUPgAAOAEkUmluZ0luZGV4AAAIARxDb250ZXh0AAEAbEFzUGVyc29uYWxJZGVudGl0eVdpdGhQcm9vZggA0QMBOFNpZ25hdHVyZU9mPFQ+AAAoAShQZXJzb25hbElkAAIAdEFzUGVyc29uYWxJZGVudGl0eVdpdGhBY2NvdW50BAA4ASBUOjpOb25jZQADAIRBc1BlcnNvbmFsQWxpYXNXaXRoQWNjb3VudFJldmlzZWQQADgBIFQ6Ok5vbmNlAAB9AwEoUHJvb2ZPZjxUPgAAOAEkUmluZ0luZGV4AAAIARxDb250ZXh0AAQAAFEFDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rJGV4dGVuc2lvblxBc1Byb29mT2ZJbmtQYXJ0aWNpcGFudAQEVAAABABVBQGYT3B0aW9uPEFzUHJvb2ZPZklua1BhcnRpY2lwYW50SW5mbzxUPj4AAFUFBBhPcHRpb24EBFQBWQUBCBBOb25lAAAAEFNvbWUEAFkFAAABAABZBQxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luayRleHRlbnNpb25sQXNQcm9vZk9mSW5rUGFydGljaXBhbnRJbmZvBARUAAEMOEFzQXBwbHlXaXRoU2lnBAA4ASBUOjpOb25jZQAAAChBc1JlZmVycmVkBAA4ASBUOjpOb25jZQABACRBc0ludml0ZWQEADgBIFQ6Ok5vbmNlAAIAAF0FDEhpbmRpdl9wYWxsZXRfc2NvcmUkZXh0ZW5zaW9uSFNjb3JlQXNQYXJ0aWNpcGFudAQEVAAABABhBQGgT3B0aW9uPFNjb3JlQXNQYXJ0aWNpcGFudERhdGE8VDo6Tm9uY2U+PgAAYQUEGE9wdGlvbgQEVAFlBQEIEE5vbmUAAAAQU29tZQQAZQUAAAEAAGUFDEhpbmRpdl9wYWxsZXRfc2NvcmUkZXh0ZW5zaW9uWFNjb3JlQXNQYXJ0aWNpcGFudERhdGEEFE5vbmNlATgABAEUbm9uY2U4ARROb25jZQAAaQUMRGluZGl2X3BhbGxldF9nYW1lJGV4dGVuc2lvbjRHYW1lQXNJbnZpdGVkBARUAAAEAG0FAXBPcHRpb248R2FtZUFzSW52aXRlZERhdGE8VD4+AABtBQQYT3B0aW9uBARUAXEFAQgQTm9uZQAAABBTb21lBABxBQAAAQAAcQUMRGluZGl2X3BhbGxldF9nYW1lJGV4dGVuc2lvbkRHYW1lQXNJbnZpdGVkRGF0YQQEVAAAEAEUbm9uY2U4ASBUOjpOb25jZQABHGludml0ZXIEATBUOjpBY2NvdW50SWQAARh0aWNrZXQEASxUaWNrZXRPZjxUPgABJHNpZ25hdHVyZdkDAUhUOjpUaWNrZXRTaWduYXR1cmUAAHUFDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUkZXh0ZW5zaW9uOFBlb3BsZUxpdGVBdXRoBARUAAAEAHkFAXxPcHRpb248UGVvcGxlTGl0ZUF1dGhEYXRhT2Y8VD4+AAB5BQQYT3B0aW9uBARUAX0FAQgQTm9uZQAAABBTb21lBAB9BQAAAQAAfQUMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZSRleHRlbnNpb25IUGVvcGxlTGl0ZUF1dGhEYXRhCBROb25jZQE4FFByb29mAX0DARAwQXNMaXRlUGVyc29uBAA4ARROb25jZQAAAFhBc0xpdGVBbGlhc1dpdGhBY2NvdW50BAA4ARROb25jZQABAFBBc0xpdGVBbGlhc1dpdGhQcm9vZgwAfQMBFFByb29mAAA4ASRSaW5nSW5kZXgAAAgBHENvbnRleHQAAgB0QXNMaXRlQWxpYXNXaXRoQWNjb3VudFJldmlzZWQQADgBFE5vbmNlAAB9AwEUUHJvb2YAADgBJFJpbmdJbmRleAAACAEcQ29udGV4dAADAACBBQxQaW5kaXZfcGFsbGV0X21lbWJlcnMkZXh0ZW5zaW9uIEFzTWVtYmVyBARUAAAEAIUFAVxPcHRpb248QXNNZW1iZXJJbmZvPFQ+PgAAhQUEGE9wdGlvbgQEVAGJBQEIEE5vbmUAAAAQU29tZQQAiQUAAAEAAIkFDFBpbmRpdl9wYWxsZXRfbWVtYmVycyRleHRlbnNpb24wQXNNZW1iZXJJbmZvBARUAAEELFNlbGZJbmNsdWRlBADRAwE4U2lnbmF0dXJlT2Y8VD4AAAAAjQUMUGluZGl2X3BhbGxldF9jb2luYWdlJGV4dGVuc2lvbiRBc0NvaW5hZ2UEBFQAAAQAkQUBYE9wdGlvbjxBc0NvaW5hZ2VJbmZvPFQ+PgAAkQUEGE9wdGlvbgQEVAGVBQEIEE5vbmUAAAAQU29tZQQAlQUAAAEAAJUFDFBpbmRpdl9wYWxsZXRfY29pbmFnZSRleHRlbnNpb240QXNDb2luYWdlSW5mbwQEVAABGBhBc0NvaW4AAABMQXNVbmxvYWRUb2tlblBlb3BsZRABFHByb29mmQUBoDxUOjpQZW9wbGVQcm9vZiBhcyBWYWxpZGF0ZVByb29mPjo6UHJvb2YAARhwZXJpb2Q4ARhQZXJpb2QAARxjb3VudGVyOAEMdTMyAAEwYWxpYXNfcHJvb2ZzeQMBrEJvdW5kZWRWZWM8UHJvb2ZPZjxUPiwgVDo6TWF4Q29uc29saWRhdGlvbj4AAQBcQXNVbmxvYWRUb2tlbkxpdGVQZW9wbGUQARRwcm9vZp0FAbA8VDo6TGl0ZVBlb3BsZVByb29mIGFzIFZhbGlkYXRlUHJvb2Y+OjpQcm9vZgABGHBlcmlvZDgBGFBlcmlvZAABHGNvdW50ZXI4AQx1MzIAATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgACAERBc1VubG9hZFRva2VuUGFpZBQBFHByb29mfQMBKFByb29mT2Y8VD4AARhwZXJpb2Q4ARhQZXJpb2QAAVRwYWlkX3Rva2VuX3JpbmdfaW5kZXg4AQx1MzIAAWBwYWlkX3Rva2VuX3JpbmdfcmV2aXNpb244AQx1MzIAATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgADAFxBc1VubG9hZFRva2VuRnJvbU91dHB1dBABSGZlZV9yZWN5Y2xlcl92YWx1ZXUDASRDb2luVmFsdWUAAUhmZWVfcmVjeWNsZXJfaW5kZXg4ASRSaW5nSW5kZXgAAVRmZWVfcmVjeWNsZXJfcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEwYWxpYXNfcHJvb2ZzeQMBrEJvdW5kZWRWZWM8UHJvb2ZPZjxUPiwgVDo6TWF4Q29uc29saWRhdGlvbj4ABABYSW5mYWxsaWJsZVVucGFpZFNpZ25lZAQBFG5vbmNlOAEgVDo6Tm9uY2UABQAAmQUMZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUYcGVvcGxlLFBlb3BsZVByb29mAAAIARRwcm9vZn0DAeA8QmFuZGVyc25hdGNoVnJmVmVyaWZpYWJsZSBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpQcm9vZgABEHJpbmc4ASRSaW5nSW5kZXgAAJ0FDGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lGHBlb3BsZTxMaXRlUGVvcGxlUHJvb2YAAAgBFHByb29mfQMB4DxCYW5kZXJzbmF0Y2hWcmZWZXJpZmlhYmxlIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlByb29mAAEQcmluZzgBJFJpbmdJbmRleAAAoQUMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMkZXh0ZW5zaW9uLEFzUmVzb3VyY2VzBARUAAAEAKUFAWhPcHRpb248QXNSZXNvdXJjZXNJbmZvPFQ+PgAApQUEGE9wdGlvbgQEVAGpBQEIEE5vbmUAAAAQU29tZQQAqQUAAAEAAKkFDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzJGV4dGVuc2lvbjxBc1Jlc291cmNlc0luZm8EBFQAARB4UmVnaXN0ZXJGcmllbmRSZXF1ZXN0V2l0aFByb29mCAB9AwEoUHJvb2ZPZjxUPgAAOAEkUmluZ0luZGV4AAAAiFJlZ2lzdGVyRnJpZW5kUmVxdWVzdEZvckNvbGxlY3Rpb24MAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAAGEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgABAHxSZWdpc3RlclN0YXRlbWVudFN0b3JlQWxsb3dhbmNlDAB9AwEoUHJvb2ZPZjxUPgAAOAEkUmluZ0luZGV4AABhAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24AAgBQQ2xhaW1Mb25nVGVybVN0b3JhZ2UQAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAADgBNFJldmlzaW9uSW5kZXgAAGEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgADAACtBQxMaW5kaXZfcGFsbGV0X2hvbm91ciRleHRlbnNpb24kVm90ZXJBdXRoBARUAAAEALEFAWBPcHRpb248Vm90ZXJBdXRoRGF0YTxUPj4AALEFBBhPcHRpb24EBFQBtQUBCBBOb25lAAAAEFNvbWUEALUFAAABAAC1BQxMaW5kaXZfcGFsbGV0X2hvbm91ciRleHRlbnNpb240Vm90ZXJBdXRoRGF0YQQEVAAADAEUcHJvb2Z9AwE4UmluZ1Byb29mT2Y8VD4AAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAC5BRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM4YXV0aG9yaXplX2NhbGw0QXV0aG9yaXplQ2FsbAQEVAAAAAC9BQh8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbjhSZXN0cmljdE9yaWdpbgQEVAAABADIARBib29sAADBBRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNUY2hlY2tfbm9uX3plcm9fc2VuZGVySENoZWNrTm9uWmVyb1NlbmRlcgQEVAAAAADFBRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNIY2hlY2tfc3BlY192ZXJzaW9uQENoZWNrU3BlY1ZlcnNpb24EBFQAAAAAyQUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zQGNoZWNrX3R4X3ZlcnNpb244Q2hlY2tUeFZlcnNpb24EBFQAAAAAzQUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zNGNoZWNrX2dlbmVzaXMwQ2hlY2tHZW5lc2lzBARUAAAAANEFEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczxjaGVja19tb3J0YWxpdHk4Q2hlY2tNb3J0YWxpdHkEBFQAAAQA1QUBDEVyYQAA1QUQKHNwX3J1bnRpbWUcZ2VuZXJpYwxlcmEMRXJhAAEBBCBJbW1vcnRhbAAAABxNb3J0YWwxBAAMAAABABxNb3J0YWwyBAAMAAACABxNb3J0YWwzBAAMAAADABxNb3J0YWw0BAAMAAAEABxNb3J0YWw1BAAMAAAFABxNb3J0YWw2BAAMAAAGABxNb3J0YWw3BAAMAAAHABxNb3J0YWw4BAAMAAAIABxNb3J0YWw5BAAMAAAJACBNb3J0YWwxMAQADAAACgAgTW9ydGFsMTEEAAwAAAsAIE1vcnRhbDEyBAAMAAAMACBNb3J0YWwxMwQADAAADQAgTW9ydGFsMTQEAAwAAA4AIE1vcnRhbDE1BAAMAAAPACBNb3J0YWwxNgQADAAAEAAgTW9ydGFsMTcEAAwAABEAIE1vcnRhbDE4BAAMAAASACBNb3J0YWwxOQQADAAAEwAgTW9ydGFsMjAEAAwAABQAIE1vcnRhbDIxBAAMAAAVACBNb3J0YWwyMgQADAAAFgAgTW9ydGFsMjMEAAwAABcAIE1vcnRhbDI0BAAMAAAYACBNb3J0YWwyNQQADAAAGQAgTW9ydGFsMjYEAAwAABoAIE1vcnRhbDI3BAAMAAAbACBNb3J0YWwyOAQADAAAHAAgTW9ydGFsMjkEAAwAAB0AIE1vcnRhbDMwBAAMAAAeACBNb3J0YWwzMQQADAAAHwAgTW9ydGFsMzIEAAwAACAAIE1vcnRhbDMzBAAMAAAhACBNb3J0YWwzNAQADAAAIgAgTW9ydGFsMzUEAAwAACMAIE1vcnRhbDM2BAAMAAAkACBNb3J0YWwzNwQADAAAJQAgTW9ydGFsMzgEAAwAACYAIE1vcnRhbDM5BAAMAAAnACBNb3J0YWw0MAQADAAAKAAgTW9ydGFsNDEEAAwAACkAIE1vcnRhbDQyBAAMAAAqACBNb3J0YWw0MwQADAAAKwAgTW9ydGFsNDQEAAwAACwAIE1vcnRhbDQ1BAAMAAAtACBNb3J0YWw0NgQADAAALgAgTW9ydGFsNDcEAAwAAC8AIE1vcnRhbDQ4BAAMAAAwACBNb3J0YWw0OQQADAAAMQAgTW9ydGFsNTAEAAwAADIAIE1vcnRhbDUxBAAMAAAzACBNb3J0YWw1MgQADAAANAAgTW9ydGFsNTMEAAwAADUAIE1vcnRhbDU0BAAMAAA2ACBNb3J0YWw1NQQADAAANwAgTW9ydGFsNTYEAAwAADgAIE1vcnRhbDU3BAAMAAA5ACBNb3J0YWw1OAQADAAAOgAgTW9ydGFsNTkEAAwAADsAIE1vcnRhbDYwBAAMAAA8ACBNb3J0YWw2MQQADAAAPQAgTW9ydGFsNjIEAAwAAD4AIE1vcnRhbDYzBAAMAAA/ACBNb3J0YWw2NAQADAAAQAAgTW9ydGFsNjUEAAwAAEEAIE1vcnRhbDY2BAAMAABCACBNb3J0YWw2NwQADAAAQwAgTW9ydGFsNjgEAAwAAEQAIE1vcnRhbDY5BAAMAABFACBNb3J0YWw3MAQADAAARgAgTW9ydGFsNzEEAAwAAEcAIE1vcnRhbDcyBAAMAABIACBNb3J0YWw3MwQADAAASQAgTW9ydGFsNzQEAAwAAEoAIE1vcnRhbDc1BAAMAABLACBNb3J0YWw3NgQADAAATAAgTW9ydGFsNzcEAAwAAE0AIE1vcnRhbDc4BAAMAABOACBNb3J0YWw3OQQADAAATwAgTW9ydGFsODAEAAwAAFAAIE1vcnRhbDgxBAAMAABRACBNb3J0YWw4MgQADAAAUgAgTW9ydGFsODMEAAwAAFMAIE1vcnRhbDg0BAAMAABUACBNb3J0YWw4NQQADAAAVQAgTW9ydGFsODYEAAwAAFYAIE1vcnRhbDg3BAAMAABXACBNb3J0YWw4OAQADAAAWAAgTW9ydGFsODkEAAwAAFkAIE1vcnRhbDkwBAAMAABaACBNb3J0YWw5MQQADAAAWwAgTW9ydGFsOTIEAAwAAFwAIE1vcnRhbDkzBAAMAABdACBNb3J0YWw5NAQADAAAXgAgTW9ydGFsOTUEAAwAAF8AIE1vcnRhbDk2BAAMAABgACBNb3J0YWw5NwQADAAAYQAgTW9ydGFsOTgEAAwAAGIAIE1vcnRhbDk5BAAMAABjACRNb3J0YWwxMDAEAAwAAGQAJE1vcnRhbDEwMQQADAAAZQAkTW9ydGFsMTAyBAAMAABmACRNb3J0YWwxMDMEAAwAAGcAJE1vcnRhbDEwNAQADAAAaAAkTW9ydGFsMTA1BAAMAABpACRNb3J0YWwxMDYEAAwAAGoAJE1vcnRhbDEwNwQADAAAawAkTW9ydGFsMTA4BAAMAABsACRNb3J0YWwxMDkEAAwAAG0AJE1vcnRhbDExMAQADAAAbgAkTW9ydGFsMTExBAAMAABvACRNb3J0YWwxMTIEAAwAAHAAJE1vcnRhbDExMwQADAAAcQAkTW9ydGFsMTE0BAAMAAByACRNb3J0YWwxMTUEAAwAAHMAJE1vcnRhbDExNgQADAAAdAAkTW9ydGFsMTE3BAAMAAB1ACRNb3J0YWwxMTgEAAwAAHYAJE1vcnRhbDExOQQADAAAdwAkTW9ydGFsMTIwBAAMAAB4ACRNb3J0YWwxMjEEAAwAAHkAJE1vcnRhbDEyMgQADAAAegAkTW9ydGFsMTIzBAAMAAB7ACRNb3J0YWwxMjQEAAwAAHwAJE1vcnRhbDEyNQQADAAAfQAkTW9ydGFsMTI2BAAMAAB+ACRNb3J0YWwxMjcEAAwAAH8AJE1vcnRhbDEyOAQADAAAgAAkTW9ydGFsMTI5BAAMAACBACRNb3J0YWwxMzAEAAwAAIIAJE1vcnRhbDEzMQQADAAAgwAkTW9ydGFsMTMyBAAMAACEACRNb3J0YWwxMzMEAAwAAIUAJE1vcnRhbDEzNAQADAAAhgAkTW9ydGFsMTM1BAAMAACHACRNb3J0YWwxMzYEAAwAAIgAJE1vcnRhbDEzNwQADAAAiQAkTW9ydGFsMTM4BAAMAACKACRNb3J0YWwxMzkEAAwAAIsAJE1vcnRhbDE0MAQADAAAjAAkTW9ydGFsMTQxBAAMAACNACRNb3J0YWwxNDIEAAwAAI4AJE1vcnRhbDE0MwQADAAAjwAkTW9ydGFsMTQ0BAAMAACQACRNb3J0YWwxNDUEAAwAAJEAJE1vcnRhbDE0NgQADAAAkgAkTW9ydGFsMTQ3BAAMAACTACRNb3J0YWwxNDgEAAwAAJQAJE1vcnRhbDE0OQQADAAAlQAkTW9ydGFsMTUwBAAMAACWACRNb3J0YWwxNTEEAAwAAJcAJE1vcnRhbDE1MgQADAAAmAAkTW9ydGFsMTUzBAAMAACZACRNb3J0YWwxNTQEAAwAAJoAJE1vcnRhbDE1NQQADAAAmwAkTW9ydGFsMTU2BAAMAACcACRNb3J0YWwxNTcEAAwAAJ0AJE1vcnRhbDE1OAQADAAAngAkTW9ydGFsMTU5BAAMAACfACRNb3J0YWwxNjAEAAwAAKAAJE1vcnRhbDE2MQQADAAAoQAkTW9ydGFsMTYyBAAMAACiACRNb3J0YWwxNjMEAAwAAKMAJE1vcnRhbDE2NAQADAAApAAkTW9ydGFsMTY1BAAMAAClACRNb3J0YWwxNjYEAAwAAKYAJE1vcnRhbDE2NwQADAAApwAkTW9ydGFsMTY4BAAMAACoACRNb3J0YWwxNjkEAAwAAKkAJE1vcnRhbDE3MAQADAAAqgAkTW9ydGFsMTcxBAAMAACrACRNb3J0YWwxNzIEAAwAAKwAJE1vcnRhbDE3MwQADAAArQAkTW9ydGFsMTc0BAAMAACuACRNb3J0YWwxNzUEAAwAAK8AJE1vcnRhbDE3NgQADAAAsAAkTW9ydGFsMTc3BAAMAACxACRNb3J0YWwxNzgEAAwAALIAJE1vcnRhbDE3OQQADAAAswAkTW9ydGFsMTgwBAAMAAC0ACRNb3J0YWwxODEEAAwAALUAJE1vcnRhbDE4MgQADAAAtgAkTW9ydGFsMTgzBAAMAAC3ACRNb3J0YWwxODQEAAwAALgAJE1vcnRhbDE4NQQADAAAuQAkTW9ydGFsMTg2BAAMAAC6ACRNb3J0YWwxODcEAAwAALsAJE1vcnRhbDE4OAQADAAAvAAkTW9ydGFsMTg5BAAMAAC9ACRNb3J0YWwxOTAEAAwAAL4AJE1vcnRhbDE5MQQADAAAvwAkTW9ydGFsMTkyBAAMAADAACRNb3J0YWwxOTMEAAwAAMEAJE1vcnRhbDE5NAQADAAAwgAkTW9ydGFsMTk1BAAMAADDACRNb3J0YWwxOTYEAAwAAMQAJE1vcnRhbDE5NwQADAAAxQAkTW9ydGFsMTk4BAAMAADGACRNb3J0YWwxOTkEAAwAAMcAJE1vcnRhbDIwMAQADAAAyAAkTW9ydGFsMjAxBAAMAADJACRNb3J0YWwyMDIEAAwAAMoAJE1vcnRhbDIwMwQADAAAywAkTW9ydGFsMjA0BAAMAADMACRNb3J0YWwyMDUEAAwAAM0AJE1vcnRhbDIwNgQADAAAzgAkTW9ydGFsMjA3BAAMAADPACRNb3J0YWwyMDgEAAwAANAAJE1vcnRhbDIwOQQADAAA0QAkTW9ydGFsMjEwBAAMAADSACRNb3J0YWwyMTEEAAwAANMAJE1vcnRhbDIxMgQADAAA1AAkTW9ydGFsMjEzBAAMAADVACRNb3J0YWwyMTQEAAwAANYAJE1vcnRhbDIxNQQADAAA1wAkTW9ydGFsMjE2BAAMAADYACRNb3J0YWwyMTcEAAwAANkAJE1vcnRhbDIxOAQADAAA2gAkTW9ydGFsMjE5BAAMAADbACRNb3J0YWwyMjAEAAwAANwAJE1vcnRhbDIyMQQADAAA3QAkTW9ydGFsMjIyBAAMAADeACRNb3J0YWwyMjMEAAwAAN8AJE1vcnRhbDIyNAQADAAA4AAkTW9ydGFsMjI1BAAMAADhACRNb3J0YWwyMjYEAAwAAOIAJE1vcnRhbDIyNwQADAAA4wAkTW9ydGFsMjI4BAAMAADkACRNb3J0YWwyMjkEAAwAAOUAJE1vcnRhbDIzMAQADAAA5gAkTW9ydGFsMjMxBAAMAADnACRNb3J0YWwyMzIEAAwAAOgAJE1vcnRhbDIzMwQADAAA6QAkTW9ydGFsMjM0BAAMAADqACRNb3J0YWwyMzUEAAwAAOsAJE1vcnRhbDIzNgQADAAA7AAkTW9ydGFsMjM3BAAMAADtACRNb3J0YWwyMzgEAAwAAO4AJE1vcnRhbDIzOQQADAAA7wAkTW9ydGFsMjQwBAAMAADwACRNb3J0YWwyNDEEAAwAAPEAJE1vcnRhbDI0MgQADAAA8gAkTW9ydGFsMjQzBAAMAADzACRNb3J0YWwyNDQEAAwAAPQAJE1vcnRhbDI0NQQADAAA9QAkTW9ydGFsMjQ2BAAMAAD2ACRNb3J0YWwyNDcEAAwAAPcAJE1vcnRhbDI0OAQADAAA+AAkTW9ydGFsMjQ5BAAMAAD5ACRNb3J0YWwyNTAEAAwAAPoAJE1vcnRhbDI1MQQADAAA+wAkTW9ydGFsMjUyBAAMAAD8ACRNb3J0YWwyNTMEAAwAAP0AJE1vcnRhbDI1NAQADAAA/gAkTW9ydGFsMjU1BAAMAAD/AADZBRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMsY2hlY2tfbm9uY2UoQ2hlY2tOb25jZQQEVAAABABgASBUOjpOb25jZQAA3QUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zMGNoZWNrX3dlaWdodCxDaGVja1dlaWdodAQEVAAAAADhBQhccGFsbGV0X2Fzc2V0X3R4X3BheW1lbnRQQ2hhcmdlQXNzZXRUeFBheW1lbnQEBFQAAAgBDHRpcMABMEJhbGFuY2VPZjxUPgABIGFzc2V0X2lkoQIBaE9wdGlvbjxDaGFyZ2VBc3NldElkT2Y8VD4+AADlBQgwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQE4LEFjY291bnREYXRhAekFABQBFG5vbmNlOAEUTm9uY2UAASRjb25zdW1lcnM4ASBSZWZDb3VudAABJHByb3ZpZGVyczgBIFJlZkNvdW50AAEsc3VmZmljaWVudHM4ASBSZWZDb3VudAABEGRhdGHpBQEsQWNjb3VudERhdGEAAOkFDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBxAAQARBmcmVlxAEcQmFsYW5jZQABIHJlc2VydmVkxAEcQmFsYW5jZQABGGZyb3plbsQBHEJhbGFuY2UAARRmbGFnc+0FAShFeHRyYUZsYWdzAADtBQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzKEV4dHJhRmxhZ3MAAAQAxAEQdTEyOAAA8QUMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAHVAQAMARhub3JtYWzVAQEEVAABLG9wZXJhdGlvbmFs1QEBBFQAASRtYW5kYXRvcnnVAQEEVAAA9QUAAAL5BQD5BQgwZnJhbWVfc3lzdGVtLEV2ZW50UmVjb3JkCARFAf0FBFQBPAAMARRwaGFzZQ0HARRQaGFzZQABFGV2ZW50/QUBBEUAARh0b3BpY3MRBwEYVmVjPFQ+AAD9BQhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZTBSdW50aW1lRXZlbnQAAZAYU3lzdGVtBAABBgFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EACkGAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFdmVudDxSdW50aW1lPgABACBCYWxhbmNlcwQALQYBfHBhbGxldF9iYWxhbmNlczo6RXZlbnQ8UnVudGltZT4ACgBIVHJhbnNhY3Rpb25QYXltZW50BABdBgGocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AAsASFNraXBGZWVsZXNzUGF5bWVudAQAYQYBrHBhbGxldF9za2lwX2ZlZWxlc3NfcGF5bWVudDo6RXZlbnQ8UnVudGltZT4ADABET3JpZ2luUmVzdHJpY3Rpb24EAGUGAbxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uOjpFdmVudDxSdW50aW1lPgANABhBc3NldHMEAGkGAXRwYWxsZXRfYXNzZXRzOjpFdmVudDxSdW50aW1lPgAOADBBc3NldHNIb2xkZXIEAG0GAZBwYWxsZXRfYXNzZXRzX2hvbGRlcjo6RXZlbnQ8UnVudGltZT4ADwAkQXNzZXRSYXRlBABxBgGEcGFsbGV0X2Fzc2V0X3JhdGU6OkV2ZW50PFJ1bnRpbWU+ABAAOEFzc2V0VHhQYXltZW50BAB1BgGccGFsbGV0X2Fzc2V0X3R4X3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+ABEARENvbGxhdG9yU2VsZWN0aW9uBAB5BgGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXZlbnQ8UnVudGltZT4AFQAcU2Vzc2lvbgQAfQYBeHBhbGxldF9zZXNzaW9uOjpFdmVudDxSdW50aW1lPgAWACRYY21wUXVldWUEAIEGAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFdmVudDxSdW50aW1lPgAeACxQb2xrYWRvdFhjbQQAhQYBaHBhbGxldF94Y206OkV2ZW50PFJ1bnRpbWU+AB8AKEN1bXVsdXNYY20EAJUGAYhjdW11bHVzX3BhbGxldF94Y206OkV2ZW50PFJ1bnRpbWU+ACAAME1lc3NhZ2VRdWV1ZQQAmQYBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFdmVudDxSdW50aW1lPgAiABxVdGlsaXR5BAChBgFUcGFsbGV0X3V0aWxpdHk6OkV2ZW50ACgAIE11bHRpc2lnBACpBgF8cGFsbGV0X211bHRpc2lnOjpFdmVudDxSdW50aW1lPgApABBTdWRvBACtBgFscGFsbGV0X3N1ZG86OkV2ZW50PFJ1bnRpbWU+ACoAFFByb3h5BAC1BgFwcGFsbGV0X3Byb3h5OjpFdmVudDxSdW50aW1lPgAsABhQZW9wbGUEAL0GAYxpbmRpdl9wYWxsZXRfcGVvcGxlOjpFdmVudDxSdW50aW1lPgAzABxNb2JSdWxlBADBBgGUaW5kaXZfcGFsbGV0X21vYl9ydWxlOjpFdmVudDxSdW50aW1lPgA0AChQcm9vZk9mSW5rBADFBgGkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6RXZlbnQ8UnVudGltZT4ANQAQR2FtZQQAyQYBhGluZGl2X3BhbGxldF9nYW1lOjpFdmVudDxSdW50aW1lPgA3ABRTY29yZQQA0QYBiGluZGl2X3BhbGxldF9zY29yZTo6RXZlbnQ8UnVudGltZT4AOAAgRHVtbXlEaW0EANUGAZhpbmRpdl9wYWxsZXRfZHVtbXlfZGltOjpFdmVudDxSdW50aW1lPgA7AChQZW9wbGVMaXRlBADZBgGgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlOjpFdmVudDxSdW50aW1lPgA+ACRSZXNvdXJjZXMEAN0GAZhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzOjpFdmVudDxSdW50aW1lPgA/ADRDaHVua3NNYW5hZ2VyBADhBgGsaW5kaXZfcGFsbGV0X2NodW5rc19tYW5hZ2VyOjpFdmVudDxSdW50aW1lPgBAABxNZW1iZXJzBADlBgGQaW5kaXZfcGFsbGV0X21lbWJlcnM6OkV2ZW50PFJ1bnRpbWU+AEMAHENvaW5hZ2UEAOkGAZBpbmRpdl9wYWxsZXRfY29pbmFnZTo6RXZlbnQ8UnVudGltZT4ARAA8TWVtYmVyc05vdGlmaWVyBADtBgG0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXI6OkV2ZW50PFJ1bnRpbWU+AEUAHEFpcmRyb3AEAPEGAZBpbmRpdl9wYWxsZXRfYWlyZHJvcDo6RXZlbnQ8UnVudGltZT4ARgAYSG9ub3VyBAD9BgGMaW5kaXZfcGFsbGV0X2hvbm91cjo6RXZlbnQ8UnVudGltZT4ARwBUU3RvcmFnZUluaXRpYWxpemF0aW9uBAAFBwHMaW5kaXZfcGFsbGV0X3N0b3JhZ2VfaW5pdGlhbGl6YXRpb246OkV2ZW50PFJ1bnRpbWU+ADwAUE11bHRpQmxvY2tNaWdyYXRpb25zBAAJBwGEcGFsbGV0X21pZ3JhdGlvbnM6OkV2ZW50PFJ1bnRpbWU+AGIAAAEGDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEgQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvBQYBRERpc3BhdGNoRXZlbnRJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvchEGATREaXNwYXRjaEVycm9yAAE0ZGlzcGF0Y2hfaW5mbwUGAUREaXNwYXRjaEV2ZW50SW5mbwABBFBBbiBleHRyaW5zaWMgZmFpbGVkLixDb2RlVXBkYXRlZAQBEGhhc2g8ARxUOjpIYXNoAAIE0GA6Y29kZWAgd2FzIHVwZGF0ZWQgdG8gdGhlIGNvZGUgd2l0aCB0aGUgZ2l2ZW4gaGFzaC4oTmV3QWNjb3VudAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAwRoQSBuZXcgYWNjb3VudCB3YXMgY3JlYXRlZC40S2lsbGVkQWNjb3VudAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQABARYQW4gYWNjb3VudCB3YXMgcmVhcGVkLiBSZW1hcmtlZAgBGHNlbmRlcgQBMFQ6OkFjY291bnRJZAABEGhhc2g8ARxUOjpIYXNoAAUEcE9uIG9uLWNoYWluIHJlbWFyayBoYXBwZW5lZC5EVXBncmFkZUF1dGhvcml6ZWQIASRjb2RlX2hhc2g8ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbsgBEGJvb2wABgRoQW4gdXBncmFkZSB3YXMgYXV0aG9yaXplZC6AUmVqZWN0ZWRJbnZhbGlkQXV0aG9yaXplZFVwZ3JhZGUIASRjb2RlX2hhc2g8ARxUOjpIYXNoAAEUZXJyb3IRBgE0RGlzcGF0Y2hFcnJvcgAHBBEBQW4gaW52YWxpZCBhdXRob3JpemVkIHVwZ3JhZGUgd2FzIHJlamVjdGVkIHdoaWxlIHRyeWluZyB0byBhcHBseSBpdC4EcEV2ZW50IGZvciB0aGUgU3lzdGVtIHBhbGxldC4FBggwZnJhbWVfc3lzdGVtRERpc3BhdGNoRXZlbnRJbmZvAAAMARh3ZWlnaHTVAQEYV2VpZ2h0AAEUY2xhc3MJBgE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlDQYBEFBheXMAAAkGDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoNERpc3BhdGNoQ2xhc3MAAQwYTm9ybWFsAAAALE9wZXJhdGlvbmFsAAEAJE1hbmRhdG9yeQACAAANBgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAAARBggoc3BfcnVudGltZTREaXNwYXRjaEVycm9yAAE8FE90aGVyAAAAMENhbm5vdExvb2t1cAABACRCYWRPcmlnaW4AAgAYTW9kdWxlBAAVBgEsTW9kdWxlRXJyb3IAAwBEQ29uc3VtZXJSZW1haW5pbmcABAAsTm9Qcm92aWRlcnMABQBAVG9vTWFueUNvbnN1bWVycwAGABRUb2tlbgQAGQYBKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQAHQYBPEFyaXRobWV0aWNFcnJvcgAIADRUcmFuc2FjdGlvbmFsBAAhBgFIVHJhbnNhY3Rpb25hbEVycm9yAAkAJEV4aGF1c3RlZAAKAChDb3JydXB0aW9uAAsALFVuYXZhaWxhYmxlAAwAOFJvb3ROb3RBbGxvd2VkAA0AEFRyaWUEACUGASRUcmllRXJyb3IADgAAFQYIKHNwX3J1bnRpbWUsTW9kdWxlRXJyb3IAAAgBFGluZGV4DAEIdTgAARRlcnJvcnABjFt1ODsgTUFYX01PRFVMRV9FUlJPUl9FTkNPREVEX1NJWkVdAAAZBggoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAAAdBgg0c3BfYXJpdGhtZXRpYzxBcml0aG1ldGljRXJyb3IAAQwkVW5kZXJmbG93AAAAIE92ZXJmbG93AAEAOERpdmlzaW9uQnlaZXJvAAIAACEGCChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAAAlBgwoc3BfcnVudGltZTBwcm92aW5nX3RyaWUkVHJpZUVycm9yAAE4QEludmFsaWRTdGF0ZVJvb3QAAABISW5jb21wbGV0ZURhdGFiYXNlAAEAUFZhbHVlQXRJbmNvbXBsZXRlS2V5AAIAMERlY29kZXJFcnJvcgADACxJbnZhbGlkSGFzaAAEADBEdXBsaWNhdGVLZXkABQA4RXh0cmFuZW91c05vZGUABgA8RXh0cmFuZW91c1ZhbHVlAAcAXEV4dHJhbmVvdXNIYXNoUmVmZXJlbmNlAAgAVEludmFsaWRDaGlsZFJlZmVyZW5jZQAJADRWYWx1ZU1pc21hdGNoAAoAPEluY29tcGxldGVQcm9vZgALADBSb290TWlzbWF0Y2gADAAsRGVjb2RlRXJyb3IADQAAKQYMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEYYFZhbGlkYXRpb25GdW5jdGlvblN0b3JlZAAABNBUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiBoYXMgYmVlbiBzY2hlZHVsZWQgdG8gYXBwbHkuZFZhbGlkYXRpb25GdW5jdGlvbkFwcGxpZWQEAVRyZWxheV9jaGFpbl9ibG9ja19udW04AVRSZWxheUNoYWluQmxvY2tOdW1iZXIAAQRFAVRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdhcyBhcHBsaWVkIGFzIG9mIHRoZSBjb250YWluZWQgcmVsYXkgY2hhaW4gYmxvY2sgbnVtYmVyLmxWYWxpZGF0aW9uRnVuY3Rpb25EaXNjYXJkZWQAAgSwVGhlIHJlbGF5LWNoYWluIGFib3J0ZWQgdGhlIHVwZ3JhZGUgcHJvY2Vzcy5gRG93bndhcmRNZXNzYWdlc1JlY2VpdmVkBAEUY291bnQ4AQx1MzIAAwQBAVNvbWUgZG93bndhcmQgbWVzc2FnZXMgaGF2ZSBiZWVuIHJlY2VpdmVkIGFuZCB3aWxsIGJlIHByb2Nlc3NlZC5kRG93bndhcmRNZXNzYWdlc1Byb2Nlc3NlZAgBLHdlaWdodF91c2Vk1QEBGFdlaWdodAABIGRtcV9oZWFkPAFEcmVsYXlfY2hhaW46Okhhc2gABATgRG93bndhcmQgbWVzc2FnZXMgd2VyZSBwcm9jZXNzZWQgdXNpbmcgdGhlIGdpdmVuIHdlaWdodC5EVXB3YXJkTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2ihBAE8T3B0aW9uPFhjbUhhc2g+AAUEuEFuIHVwd2FyZCBtZXNzYWdlIHdhcyBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQtBgw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABeBxFbmRvd2VkCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZcQBKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAEIPQFBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvdyBFeGlzdGVudGlhbERlcG9zaXQseHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlcgwBEGZyb20EATBUOjpBY2NvdW50SWQAAQh0bwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvBAEwVDo6QWNjb3VudElkAAEQZnJlZcQBKFQ6OkJhbGFuY2UAAwRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC4gUmVzZXJ2ZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAQE4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQABSGRlc3RpbmF0aW9uX3N0YXR1czEGARhTdGF0dXMABghNAVNvbWUgYmFsYW5jZSB3YXMgbW92ZWQgZnJvbSB0aGUgcmVzZXJ2ZSBvZiB0aGUgZmlyc3QgYWNjb3VudCB0byB0aGUgc2Vjb25kIGFjY291bnQu2EZpbmFsIGFyZ3VtZW50IGluZGljYXRlcyB0aGUgZGVzdGluYXRpb24gYmFsYW5jZSB0eXBlLhxEZXBvc2l0CAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAHBNhTb21lIGFtb3VudCB3YXMgZGVwb3NpdGVkIChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4gV2l0aGRyYXcIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAgEHQFTb21lIGFtb3VudCB3YXMgd2l0aGRyYXduIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLhxTbGFzaGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAJBAEBU29tZSBhbW91bnQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgbWlzYmVoYXZpb3IpLhhNaW50ZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAoEnFNvbWUgYW1vdW50IHdhcyBtaW50ZWQgaW50byBhbiBhY2NvdW50LjBNaW50ZWRDcmVkaXQEARhhbW91bnTEAShUOjpCYWxhbmNlAAsE4FNvbWUgY3JlZGl0IHdhcyBiYWxhbmNlZCBhbmQgYWRkZWQgdG8gdGhlIFRvdGFsSXNzdWFuY2UuGEJ1cm5lZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UADAScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuKEJ1cm5lZERlYnQEARhhbW91bnTEAShUOjpCYWxhbmNlAA0EzFNvbWUgZGVidCBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIFRvdGFsIElzc3VhbmNlLiRTdXNwZW5kZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAA4EFQFTb21lIGFtb3VudCB3YXMgc3VzcGVuZGVkIGZyb20gYW4gYWNjb3VudCAoaXQgY2FuIGJlIHJlc3RvcmVkIGxhdGVyKS4gUmVzdG9yZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAA8EpFNvbWUgYW1vdW50IHdhcyByZXN0b3JlZCBpbnRvIGFuIGFjY291bnQuIFVwZ3JhZGVkBAEMd2hvBAEwVDo6QWNjb3VudElkABAEYEFuIGFjY291bnQgd2FzIHVwZ3JhZGVkLhhJc3N1ZWQEARhhbW91bnTEAShUOjpCYWxhbmNlABEELQFUb3RhbCBpc3N1YW5jZSB3YXMgaW5jcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGNyZWRpdCB0byBiZSBiYWxhbmNlZC4kUmVzY2luZGVkBAEYYW1vdW50xAEoVDo6QmFsYW5jZQASBCUBVG90YWwgaXNzdWFuY2Ugd2FzIGRlY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBkZWJ0IHRvIGJlIGJhbGFuY2VkLhhMb2NrZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgbG9ja2VkLiBVbmxvY2tlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAFARoU29tZSBiYWxhbmNlIHdhcyB1bmxvY2tlZC4YRnJvemVuCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAVBGBTb21lIGJhbGFuY2Ugd2FzIGZyb3plbi4YVGhhd2VkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAWBGBTb21lIGJhbGFuY2Ugd2FzIHRoYXdlZC5MVG90YWxJc3N1YW5jZUZvcmNlZAgBDG9sZMQBKFQ6OkJhbGFuY2UAAQxuZXfEAShUOjpCYWxhbmNlABcErFRoZSBgVG90YWxJc3N1YW5jZWAgd2FzIGZvcmNlZnVsbHkgY2hhbmdlZC4QSGVsZAwBGHJlYXNvbjUGAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAGASAU29tZSBiYWxhbmNlIHdhcyBwbGFjZWQgb24gaG9sZC4oQnVybmVkSGVsZAwBGHJlYXNvbjUGAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAGQSgSGVsZCBiYWxhbmNlIHdhcyBidXJuZWQgZnJvbSBhbiBhY2NvdW50LjhUcmFuc2Zlck9uSG9sZBABGHJlYXNvbjUGAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABGHNvdXJjZQQBMFQ6OkFjY291bnRJZAABEGRlc3QEATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABoEFQFBIHRyYW5zZmVyIG9mIGBhbW91bnRgIG9uIGhvbGQgZnJvbSBgc291cmNlYCB0byBgZGVzdGAgd2FzIGluaXRpYXRlZC48VHJhbnNmZXJBbmRIb2xkEAEYcmVhc29uNQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYc291cmNlBAEwVDo6QWNjb3VudElkAAEQZGVzdAQBMFQ6OkFjY291bnRJZAABLHRyYW5zZmVycmVkxAEoVDo6QmFsYW5jZQAbBAkBVGhlIGB0cmFuc2ZlcnJlZGAgYmFsYW5jZSBpcyBwbGFjZWQgb24gaG9sZCBhdCB0aGUgYGRlc3RgIGFjY291bnQuIFJlbGVhc2VkDAEYcmVhc29uNQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAcBJBTb21lIGJhbGFuY2Ugd2FzIHJlbGVhc2VkIGZyb20gaG9sZC4oVW5leHBlY3RlZAQAWQYBOFVuZXhwZWN0ZWRLaW5kAB0EsEFuIHVuZXhwZWN0ZWQvZGVmZW5zaXZlIGV2ZW50IHdhcyB0cmlnZ2VyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0MQYUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjNEJhbGFuY2VTdGF0dXMAAQgQRnJlZQAAACBSZXNlcnZlZAABAAA1BghkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZURSdW50aW1lSG9sZFJlYXNvbgABIBxTZXNzaW9uBAA5BgFocGFsbGV0X3Nlc3Npb246OkhvbGRSZWFzb24AFgAsUG9sa2Fkb3RYY20EAD0GAVhwYWxsZXRfeGNtOjpIb2xkUmVhc29uAB8AHE1vYlJ1bGUEAEEGAYRpbmRpdl9wYWxsZXRfbW9iX3J1bGU6OkhvbGRSZWFzb24ANAAoUHJvb2ZPZkluawQARQYBlGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbms6OkhvbGRSZWFzb24ANQAQR2FtZQQASQYBdGluZGl2X3BhbGxldF9nYW1lOjpIb2xkUmVhc29uADcAFFNjb3JlBABNBgF4aW5kaXZfcGFsbGV0X3Njb3JlOjpIb2xkUmVhc29uADgAHENvaW5hZ2UEAFEGAYBpbmRpdl9wYWxsZXRfY29pbmFnZTo6SG9sZFJlYXNvbgBEABxBaXJkcm9wBABVBgGAaW5kaXZfcGFsbGV0X2FpcmRyb3A6OkhvbGRSZWFzb24ARgAAOQYMOHBhbGxldF9zZXNzaW9uGHBhbGxldChIb2xkUmVhc29uAAEEEEtleXMAAAAAPQYMKHBhbGxldF94Y20YcGFsbGV0KEhvbGRSZWFzb24AAQQ4QXV0aG9yaXplQWxpYXMAAAAAQQYMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQoSG9sZFJlYXNvbgABCBhQYXlvdXQAAAAYQ3JlZGl0AAEAAEUGDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldChIb2xkUmVhc29uAAEEKFByb29mT2ZJbmsAAAAASQYMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldChIb2xkUmVhc29uAAEELFBsYXlEZXBvc2l0AAAAAE0GDEhpbmRpdl9wYWxsZXRfc2NvcmUYcGFsbGV0KEhvbGRSZWFzb24AAQgYUGF5b3V0AAAAGENyZWRpdAABAABRBgxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0KEhvbGRSZWFzb24AAQQcV3JhcHBlZAAAAABVBgxQaW5kaXZfcGFsbGV0X2FpcmRyb3AYcGFsbGV0KEhvbGRSZWFzb24AAQQcQWlyZHJvcAAAAABZBgw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldDhVbmV4cGVjdGVkS2luZAABCDhCYWxhbmNlVXBkYXRlZAAAAFRGYWlsZWRUb011dGF0ZUFjY291bnQAAQAAXQYMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8EATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlxAEwQmFsYW5jZU9mPFQ+AAEMdGlwxAEwQmFsYW5jZU9mPFQ+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLFxoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGEGDGxwYWxsZXRfc2tpcF9mZWVsZXNzX3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEEKEZlZVNraXBwZWQEARhvcmlnaW4xAwHAPFQ6OlJ1bnRpbWVPcmlnaW4gYXMgT3JpZ2luVHJhaXQ+OjpQYWxsZXRzT3JpZ2luAAAEeEEgdHJhbnNhY3Rpb24gZmVlIHdhcyBza2lwcGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGUGDHxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uGHBhbGxldBRFdmVudAQEVAABBDBVc2FnZUNsZWFuZWQEARhlbnRpdHnYAUxUOjpSZXN0cmljdGVkRW50aXR5AAAEfFVzYWdlIGZvciBhbiBlbnRpdHkgaXMgY2xlYW5lZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRpBgw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQURXZlbnQIBFQABEkAAYAcQ3JlYXRlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABHGNyZWF0b3IEATBUOjpBY2NvdW50SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAABHRTb21lIGFzc2V0IGNsYXNzIHdhcyBjcmVhdGVkLhhJc3N1ZWQMASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAAQRgU29tZSBhc3NldHMgd2VyZSBpc3N1ZWQuLFRyYW5zZmVycmVkEAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEQZnJvbQQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQACBHRTb21lIGFzc2V0cyB3ZXJlIHRyYW5zZmVycmVkLhhCdXJuZWQMASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABHGJhbGFuY2XEAShUOjpCYWxhbmNlAAMEbFNvbWUgYXNzZXRzIHdlcmUgZGVzdHJveWVkLixUZWFtQ2hhbmdlZBABIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGGlzc3VlcgQBMFQ6OkFjY291bnRJZAABFGFkbWluBAEwVDo6QWNjb3VudElkAAEcZnJlZXplcgQBMFQ6OkFjY291bnRJZAAEBHBUaGUgbWFuYWdlbWVudCB0ZWFtIGNoYW5nZWQuME93bmVyQ2hhbmdlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAUESFRoZSBvd25lciBjaGFuZ2VkLhhGcm96ZW4IASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQABgR4U29tZSBhY2NvdW50IGB3aG9gIHdhcyBmcm96ZW4uGFRoYXdlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAHBHhTb21lIGFjY291bnQgYHdob2Agd2FzIHRoYXdlZC4sQXNzZXRGcm96ZW4EASBhc3NldF9pZOABKFQ6OkFzc2V0SWQACASEU29tZSBhc3NldCBgYXNzZXRfaWRgIHdhcyBmcm96ZW4uLEFzc2V0VGhhd2VkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAkEhFNvbWUgYXNzZXQgYGFzc2V0X2lkYCB3YXMgdGhhd2VkLkRBY2NvdW50c0Rlc3Ryb3llZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABSGFjY291bnRzX2Rlc3Ryb3llZDgBDHUzMgABSGFjY291bnRzX3JlbWFpbmluZzgBDHUzMgAKBKBBY2NvdW50cyB3ZXJlIGRlc3Ryb3llZCBmb3IgZ2l2ZW4gYXNzZXQuSEFwcHJvdmFsc0Rlc3Ryb3llZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABTGFwcHJvdmFsc19kZXN0cm95ZWQ4AQx1MzIAAUxhcHByb3ZhbHNfcmVtYWluaW5nOAEMdTMyAAsEpEFwcHJvdmFscyB3ZXJlIGRlc3Ryb3llZCBmb3IgZ2l2ZW4gYXNzZXQuSERlc3RydWN0aW9uU3RhcnRlZAQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAAMBNBBbiBhc3NldCBjbGFzcyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBkZXN0cm95ZWQuJERlc3Ryb3llZAQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAANBHRBbiBhc3NldCBjbGFzcyB3YXMgZGVzdHJveWVkLjBGb3JjZUNyZWF0ZWQIASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAAOBIxTb21lIGFzc2V0IGNsYXNzIHdhcyBmb3JjZS1jcmVhdGVkLixNZXRhZGF0YVNldBQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABEG5hbWUYARxWZWM8dTg+AAEYc3ltYm9sGAEcVmVjPHU4PgABIGRlY2ltYWxzDAEIdTgAASRpc19mcm96ZW7IARBib29sAA8EnE5ldyBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGFuIGFzc2V0LjxNZXRhZGF0YUNsZWFyZWQEASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAEAScTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gYXNzZXQuQEFwcHJvdmVkVHJhbnNmZXIQASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhzb3VyY2UEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAEQQxAShBZGRpdGlvbmFsKSBmdW5kcyBoYXZlIGJlZW4gYXBwcm92ZWQgZm9yIHRyYW5zZmVyIHRvIGEgZGVzdGluYXRpb24gYWNjb3VudC5EQXBwcm92YWxDYW5jZWxsZWQMASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkABIE8EFuIGFwcHJvdmFsIGZvciBhY2NvdW50IGBkZWxlZ2F0ZWAgd2FzIGNhbmNlbGxlZCBieSBgb3duZXJgLkxUcmFuc2ZlcnJlZEFwcHJvdmVkFAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQQBMFQ6OkFjY291bnRJZAABLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQATCDEBQW4gYGFtb3VudGAgd2FzIHRyYW5zZmVycmVkIGluIGl0cyBlbnRpcmV0eSBmcm9tIGBvd25lcmAgdG8gYGRlc3RpbmF0aW9uYCBieWB0aGUgYXBwcm92ZWQgYGRlbGVnYXRlYC5IQXNzZXRTdGF0dXNDaGFuZ2VkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkABQE+EFuIGFzc2V0IGhhcyBoYWQgaXRzIGF0dHJpYnV0ZXMgY2hhbmdlZCBieSB0aGUgYEZvcmNlYCBvcmlnaW4uWEFzc2V0TWluQmFsYW5jZUNoYW5nZWQIASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAATxuZXdfbWluX2JhbGFuY2XEAShUOjpCYWxhbmNlABUEAQFUaGUgbWluX2JhbGFuY2Ugb2YgYW4gYXNzZXQgaGFzIGJlZW4gdXBkYXRlZCBieSB0aGUgYXNzZXQgb3duZXIuHFRvdWNoZWQMASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAASRkZXBvc2l0b3IEATBUOjpBY2NvdW50SWQAFgT8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBjcmVhdGVkIHdpdGggYSBkZXBvc2l0IGZyb20gYGRlcG9zaXRvcmAuHEJsb2NrZWQIASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAFwR8U29tZSBhY2NvdW50IGB3aG9gIHdhcyBibG9ja2VkLiREZXBvc2l0ZWQMASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABgE3FNvbWUgYXNzZXRzIHdlcmUgZGVwb3NpdGVkIChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4kV2l0aGRyYXduDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAZBCEBU29tZSBhc3NldHMgd2VyZSB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuPFJlc2VydmVzVXBkYXRlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABIHJlc2VydmVzJQEBTFZlYzxUOjpSZXNlcnZlRGF0YT4AGgTYUmVzZXJ2ZSBpbmZvcm1hdGlvbiB3YXMgc2V0IG9yIHVwZGF0ZWQgZm9yIGBhc3NldF9pZGAuPFJlc2VydmVzUmVtb3ZlZAQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAAbBLxSZXNlcnZlIGluZm9ybWF0aW9uIHdhcyByZW1vdmVkIGZvciBgYXNzZXRfaWRgLjBJc3N1ZWRDcmVkaXQIASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABwExFNvbWUgYXNzZXRzIHdlcmUgaXNzdWVkIGFzIENyZWRpdCAobm8gb3duZXIgeWV0KS4wQnVybmVkQ3JlZGl0CAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAdBIRTb21lIGFzc2V0cyBDcmVkaXQgd2FzIGRlc3Ryb3llZC4oSXNzdWVkRGVidAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAHgS8U29tZSBhc3NldHMgd2VyZSBidXJuZWQgYW5kIGEgRGVidCB3YXMgY3JlYXRlZC4oQnVybmVkRGVidAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAHwTMU29tZSBhc3NldHMgRGVidCB3YXMgZGVzdHJveWVkIChhbmQgYXNzZXRzIGlzc3VlZCkuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0bQYMUHBhbGxldF9hc3NldHNfaG9sZGVyGHBhbGxldBRFdmVudAgEVAAESQABDBBIZWxkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYcmVhc29uNQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAABMRgd2hvYHMgYmFsYW5jZSBvbiBob2xkIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAuIFJlbGVhc2VkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYcmVhc29uNQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYYW1vdW50xAEoVDo6QmFsYW5jZQABBMRgd2hvYHMgYmFsYW5jZSBvbiBob2xkIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAuGEJ1cm5lZBABDHdobwQBMFQ6OkFjY291bnRJZAABIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGHJlYXNvbjUGAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABGGFtb3VudMQBKFQ6OkJhbGFuY2UAAgS4YHdob2BzIGJhbGFuY2Ugb24gaG9sZCB3YXMgYnVybmVkIGJ5IGBhbW91bnRgLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHEGDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQURXZlbnQEBFQAAQxAQXNzZXRSYXRlQ3JlYXRlZAgBKGFzc2V0X2tpbmTgATBUOjpBc3NldEtpbmQAARByYXRlLQEBJEZpeGVkVTEyOAAAAEBBc3NldFJhdGVSZW1vdmVkBAEoYXNzZXRfa2luZOABMFQ6OkFzc2V0S2luZAABAEBBc3NldFJhdGVVcGRhdGVkDAEoYXNzZXRfa2luZOABMFQ6OkFzc2V0S2luZAABDG9sZC0BASRGaXhlZFUxMjgAAQxuZXctAQEkRml4ZWRVMTI4AAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0dQYMXHBhbGxldF9hc3NldF90eF9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBDhBc3NldFR4RmVlUGFpZBABDHdobwQBMFQ6OkFjY291bnRJZAABKGFjdHVhbF9mZWXEAURBc3NldEJhbGFuY2VPZjxUPgABDHRpcMQBREFzc2V0QmFsYW5jZU9mPFQ+AAEgYXNzZXRfaWShAgFoT3B0aW9uPENoYXJnZUFzc2V0SWRPZjxUPj4AAAhZAUEgdHJhbnNhY3Rpb24gZmVlIGBhY3R1YWxfZmVlYCwgb2Ygd2hpY2ggYHRpcGAgd2FzIGFkZGVkIHRvIHRoZSBtaW5pbXVtIGluY2x1c2lvbiBmZWUsuGhhcyBiZWVuIHBhaWQgYnkgYHdob2AgaW4gYW4gYXNzZXQgYGFzc2V0X2lkYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR5BgxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXZlbnQEBFQAAShATmV3SW52dWxuZXJhYmxlcwQBNGludnVsbmVyYWJsZXPMAURWZWM8VDo6QWNjb3VudElkPgAABGxOZXcgSW52dWxuZXJhYmxlcyB3ZXJlIHNldC5ESW52dWxuZXJhYmxlQWRkZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEEdEEgbmV3IEludnVsbmVyYWJsZSB3YXMgYWRkZWQuTEludnVsbmVyYWJsZVJlbW92ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAIEcEFuIEludnVsbmVyYWJsZSB3YXMgcmVtb3ZlZC5QTmV3RGVzaXJlZENhbmRpZGF0ZXMEAUhkZXNpcmVkX2NhbmRpZGF0ZXM4AQx1MzIAAwSkVGhlIG51bWJlciBvZiBkZXNpcmVkIGNhbmRpZGF0ZXMgd2FzIHNldC5ATmV3Q2FuZGlkYWN5Qm9uZAQBLGJvbmRfYW1vdW50xAEwQmFsYW5jZU9mPFQ+AAQEbFRoZSBjYW5kaWRhY3kgYm9uZCB3YXMgc2V0LjhDYW5kaWRhdGVBZGRlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAARxkZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAUEXEEgbmV3IGNhbmRpZGF0ZSBqb2luZWQuUENhbmRpZGF0ZUJvbmRVcGRhdGVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXTEATBCYWxhbmNlT2Y8VD4ABgRwQm9uZCBvZiBhIGNhbmRpZGF0ZSB1cGRhdGVkLkBDYW5kaWRhdGVSZW1vdmVkBAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAHBGBBIGNhbmRpZGF0ZSB3YXMgcmVtb3ZlZC5EQ2FuZGlkYXRlUmVwbGFjZWQMAQxvbGQEATBUOjpBY2NvdW50SWQAAQxuZXcEATBUOjpBY2NvdW50SWQAARxkZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAgE9EFuIGFjY291bnQgd2FzIHJlcGxhY2VkIGluIHRoZSBjYW5kaWRhdGUgbGlzdCBieSBhbm90aGVyIG9uZS5oSW52YWxpZEludnVsbmVyYWJsZVNraXBwZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAkIVQFBbiBhY2NvdW50IHdhcyB1bmFibGUgdG8gYmUgYWRkZWQgdG8gdGhlIEludnVsbmVyYWJsZXMgYmVjYXVzZSB0aGV5IGRpZCBub3QgaGF2ZSBrZXlzyHJlZ2lzdGVyZWQuIE90aGVyIEludnVsbmVyYWJsZXMgbWF5IGhhdmUgYmVlbiBzZXQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0fQYMOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFdmVudAQEVAABEChOZXdTZXNzaW9uBAE0c2Vzc2lvbl9pbmRleDgBMFNlc3Npb25JbmRleAAACDkBTmV3IHNlc3Npb24gaGFzIGhhcHBlbmVkLiBOb3RlIHRoYXQgdGhlIGFyZ3VtZW50IGlzIHRoZSBzZXNzaW9uIGluZGV4LCBub3QgdGhlnGJsb2NrIG51bWJlciBhcyB0aGUgdHlwZSBtaWdodCBzdWdnZXN0LiROZXdRdWV1ZWQAAQhJAVRoZSBgTmV3U2Vzc2lvbmAgZXZlbnQgaW4gdGhlIGN1cnJlbnQgYmxvY2sgYWxzbyBpbXBsaWVzIGEgbmV3IHZhbGlkYXRvciBzZXQgdG8gYmUccXVldWVkLkRWYWxpZGF0b3JEaXNhYmxlZAQBJHZhbGlkYXRvcgQBOFQ6OlZhbGlkYXRvcklkAAIEcFZhbGlkYXRvciBoYXMgYmVlbiBkaXNhYmxlZC5IVmFsaWRhdG9yUmVlbmFibGVkBAEkdmFsaWRhdG9yBAE4VDo6VmFsaWRhdG9ySWQAAwR4VmFsaWRhdG9yIGhhcyBiZWVuIHJlLWVuYWJsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0gQYMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEEPFhjbXBNZXNzYWdlU2VudAQBMG1lc3NhZ2VfaGFzaAgBHFhjbUhhc2gAAATAQW4gSFJNUCBtZXNzYWdlIHdhcyBzZW50IHRvIGEgc2libGluZyBwYXJhY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0hQYMKHBhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAF0JEF0dGVtcHRlZAQBHG91dGNvbWWJBgFQeGNtOjpsYXRlc3Q6Ok91dGNvbWUAAASoRXhlY3V0aW9uIG9mIGFuIFhDTSBtZXNzYWdlIHdhcyBhdHRlbXB0ZWQuEFNlbnQQARhvcmlnaW7gASBMb2NhdGlvbgABLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARxtZXNzYWdlXQIBHFhjbTwoKT4AAShtZXNzYWdlX2lkCAEcWGNtSGFzaAABBGBBbiBYQ00gbWVzc2FnZSB3YXMgc2VudC4oU2VuZEZhaWxlZBABGG9yaWdpbuABIExvY2F0aW9uAAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABFGVycm9ykQYBJFNlbmRFcnJvcgABKG1lc3NhZ2VfaWQIARxYY21IYXNoAAIEeEFuIFhDTSBtZXNzYWdlIGZhaWxlZCB0byBzZW5kLjxQcm9jZXNzWGNtRXJyb3IMARhvcmlnaW7gASBMb2NhdGlvbgABFGVycm9yjQIBIFhjbUVycm9yAAEobWVzc2FnZV9pZAgBHFhjbUhhc2gAAwSEQW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHByb2Nlc3MuSFVuZXhwZWN0ZWRSZXNwb25zZQgBGG9yaWdpbuABIExvY2F0aW9uAAEgcXVlcnlfaWQoARxRdWVyeUlkAAQMWQFRdWVyeSByZXNwb25zZSByZWNlaXZlZCB3aGljaCBkb2VzIG5vdCBtYXRjaCBhIHJlZ2lzdGVyZWQgcXVlcnkuIFRoaXMgbWF5IGJlIGJlY2F1c2UgYVUBbWF0Y2hpbmcgcXVlcnkgd2FzIG5ldmVyIHJlZ2lzdGVyZWQsIGl0IG1heSBiZSBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlIHJlc3BvbnNlLCBvcnBiZWNhdXNlIHRoZSBxdWVyeSB0aW1lZCBvdXQuNFJlc3BvbnNlUmVhZHkIASBxdWVyeV9pZCgBHFF1ZXJ5SWQAASByZXNwb25zZYECASBSZXNwb25zZQAFCF0BUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIGlzIHJlYWR5IGZvciB0YWtpbmcgd2l0aCBgdGFrZV9yZXNwb25zZWAuIFRoZXJlIGlzgG5vIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uIGNhbGwuIE5vdGlmaWVkDAEgcXVlcnlfaWQoARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgABghZAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gaGFzqGJlZW4gZGlzcGF0Y2hlZCBhbmQgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LkBOb3RpZnlPdmVyd2VpZ2h0FAEgcXVlcnlfaWQoARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgAATRhY3R1YWxfd2VpZ2h01QEBGFdlaWdodAABTG1heF9idWRnZXRlZF93ZWlnaHTVAQEYV2VpZ2h0AAcMSQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uWQFjb3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBiZWNhdXNlIHRoZSBkaXNwYXRjaCB3ZWlnaHQgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHdlaWdodORvcmlnaW5hbGx5IGJ1ZGdldGVkIGJ5IHRoaXMgcnVudGltZSBmb3IgdGhlIHF1ZXJ5IHJlc3VsdC5MTm90aWZ5RGlzcGF0Y2hFcnJvcgwBIHF1ZXJ5X2lkKAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAwBCHU4AAEoY2FsbF9pbmRleAwBCHU4AAgIVQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlcmUgd2FzIGEgZ2VuZXJhbCBlcnJvciB3aXRoiGRpc3BhdGNoaW5nIHRoZSBub3RpZmljYXRpb24gY2FsbC5ITm90aWZ5RGVjb2RlRmFpbGVkDAEgcXVlcnlfaWQoARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgACQxRAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgZGlzcGF0Y2ggd2FzIHVuYWJsZSB0byBiZVkBZGVjb2RlZCBpbnRvIGEgYENhbGxgOyB0aGlzIG1pZ2h0IGJlIGR1ZSB0byBkaXNwYXRjaCBmdW5jdGlvbiBoYXZpbmcgYSBzaWduYXR1cmUgd2hpY2iUaXMgbm90IGAob3JpZ2luLCBRdWVyeUlkLCBSZXNwb25zZSlgLkBJbnZhbGlkUmVzcG9uZGVyDAEYb3JpZ2lu4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAAURleHBlY3RlZF9sb2NhdGlvbqECAUBPcHRpb248TG9jYXRpb24+AAoMWQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIG9yaWdpbiBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1UBbm90IG1hdGNoIHRoYXQgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5cSW52YWxpZFJlc3BvbmRlclZlcnNpb24IARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAALHFEBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBvcmlnaW4gbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjRSZXNwb25zZVRha2VuBAEgcXVlcnlfaWQoARxRdWVyeUlkAAwEyFJlY2VpdmVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlYWQgYW5kIHJlbW92ZWQuNEFzc2V0c1RyYXBwZWQMARBoYXNoPAEQSDI1NgABGG9yaWdpbuABIExvY2F0aW9uAAEYYXNzZXRz2QIBPFZlcnNpb25lZEFzc2V0cwANBLhTb21lIGFzc2V0cyBoYXZlIGJlZW4gcGxhY2VkIGluIGFuIGFzc2V0IHRyYXAuVFZlcnNpb25DaGFuZ2VOb3RpZmllZBABLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARhyZXN1bHQ4AShYY21WZXJzaW9uAAEQY29zdGkCARhBc3NldHMAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAAODCUBQW4gWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGhhcyBiZWVuIGF0dGVtcHRlZCB0byBiZSBzZW50LgDgVGhlIGNvc3Qgb2Ygc2VuZGluZyBpdCAoYm9ybmUgYnkgdGhlIGNoYWluKSBpcyBpbmNsdWRlZC5cU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQIASBsb2NhdGlvbuABIExvY2F0aW9uAAEcdmVyc2lvbjgBKFhjbVZlcnNpb24ADwg5AVRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBhIGxvY2F0aW9uIGhhcyBiZWVuIGNoYW5nZWQuIFRoaXMgbWlnaHQgYmUgdGhyb3VnaCBhbsBhdXRvbWF0aWMgbm90aWZpY2F0aW9uIG9yIGEgbWFudWFsIGludGVydmVudGlvbi5QTm90aWZ5VGFyZ2V0U2VuZEZhaWwMASBsb2NhdGlvbuABIExvY2F0aW9uAAEgcXVlcnlfaWQoARxRdWVyeUlkAAEUZXJyb3KNAgEgWGNtRXJyb3IAEAhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9yfHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBpdC5kTm90aWZ5VGFyZ2V0TWlncmF0aW9uRmFpbAgBIGxvY2F0aW9uSQEBRFZlcnNpb25lZExvY2F0aW9uAAEgcXVlcnlfaWQoARxRdWVyeUlkABEIWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcrRtaWdyYXRpbmcgdGhlIGxvY2F0aW9uIHRvIG91ciBuZXcgWENNIGZvcm1hdC5USW52YWxpZFF1ZXJpZXJWZXJzaW9uCAEYb3JpZ2lu4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAEhxVAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgcXVlcmllciBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuOEludmFsaWRRdWVyaWVyEAEYb3JpZ2lu4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAAUBleHBlY3RlZF9xdWVyaWVy4AEgTG9jYXRpb24AAVBtYXliZV9hY3R1YWxfcXVlcmllcqECAUBPcHRpb248TG9jYXRpb24+ABMMXQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIHF1ZXJpZXIgbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNRAW5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5QVmVyc2lvbk5vdGlmeVN0YXJ0ZWQMASxkZXN0aW5hdGlvbuABIExvY2F0aW9uAAEQY29zdGkCARhBc3NldHMAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAAUCFkBQSByZW1vdGUgaGFzIHJlcXVlc3RlZCBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZyb20gdXMgYW5kIHdlIGhhdmUgaG9ub3JlZCBpdC4dAUEgdmVyc2lvbiBpbmZvcm1hdGlvbiBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlbSBhbmQgaXRzIGNvc3QgaXMgaW5jbHVkZWQuWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbuABIExvY2F0aW9uAAEQY29zdGkCARhBc3NldHMAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAAVBD0BV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzZW5kIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb25zLmBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbuABIExvY2F0aW9uAAEQY29zdGkCARhBc3NldHMAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAAWCCUBV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzdG9wcyBzZW5kaW5nIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZThub3RpZmljYXRpb25zLiBGZWVzUGFpZAgBGHBheWluZ+ABIExvY2F0aW9uAAEQZmVlc2kCARhBc3NldHMAFwQxAUZlZXMgd2VyZSBwYWlkIGZyb20gYSBsb2NhdGlvbiBmb3IgYW4gb3BlcmF0aW9uIChvZnRlbiBmb3IgdXNpbmcgYFNlbmRYY21gKS40QXNzZXRzQ2xhaW1lZAwBEGhhc2g8ARBIMjU2AAEYb3JpZ2lu4AEgTG9jYXRpb24AARhhc3NldHPZAgE8VmVyc2lvbmVkQXNzZXRzABgEwFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBjbGFpbWVkIGZyb20gYW4gYXNzZXQgdHJhcGBWZXJzaW9uTWlncmF0aW9uRmluaXNoZWQEARx2ZXJzaW9uOAEoWGNtVmVyc2lvbgAZBIRBIFhDTSB2ZXJzaW9uIG1pZ3JhdGlvbiBmaW5pc2hlZC48QWxpYXNBdXRob3JpemVkDAEcYWxpYXNlcuABIExvY2F0aW9uAAEYdGFyZ2V04AEgTG9jYXRpb24AARhleHBpcnkVAwEsT3B0aW9uPHU2ND4AGghdAUFuIGBhbGlhc2VyYCBsb2NhdGlvbiB3YXMgYXV0aG9yaXplZCBieSBgdGFyZ2V0YCB0byBhbGlhcyBpdCwgYXV0aG9yaXphdGlvbiB2YWxpZCB1bnRpbFhgZXhwaXJ5YCBibG9jayBudW1iZXIuZEFsaWFzQXV0aG9yaXphdGlvblJlbW92ZWQIARxhbGlhc2Vy4AEgTG9jYXRpb24AARh0YXJnZXTgASBMb2NhdGlvbgAbBMxgdGFyZ2V0YCByZW1vdmVkIGFsaWFzIGF1dGhvcml6YXRpb24gZm9yIGBhbGlhc2VyYC5wQWxpYXNlc0F1dGhvcml6YXRpb25zUmVtb3ZlZAQBGHRhcmdldOABIExvY2F0aW9uABwEqGB0YXJnZXRgIHJlbW92ZWQgYWxsIGFsaWFzIGF1dGhvcml6YXRpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIkGECxzdGFnaW5nX3hjbQh2NRh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWTVAQEYV2VpZ2h0AAAAKEluY29tcGxldGUIARB1c2Vk1QEBGFdlaWdodAABFGVycm9yjQYBQEluc3RydWN0aW9uRXJyb3IAAQAURXJyb3IEAI0GAUBJbnN0cnVjdGlvbkVycm9yAAIAAI0GECxzdGFnaW5nX3hjbQh2NRh0cmFpdHNASW5zdHJ1Y3Rpb25FcnJvcgAACAEUaW5kZXgMAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3KNAgEURXJyb3IAAJEGEAx4Y20IdjMYdHJhaXRzJFNlbmRFcnJvcgABHDROb3RBcHBsaWNhYmxlAAAAJFRyYW5zcG9ydAABAChVbnJvdXRhYmxlAAIAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQAAwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAQAPE1pc3NpbmdBcmd1bWVudAAFABBGZWVzAAYAAJUGDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAEMNEludmFsaWRGb3JtYXQEAAgBIFt1ODsgMzJdAAAIgERvd253YXJkIG1lc3NhZ2UgaXMgaW52YWxpZCBYQ00uIFxbIGlkIFxdSFVuc3VwcG9ydGVkVmVyc2lvbgQACAEgW3U4OyAzMl0AAQi8RG93bndhcmQgbWVzc2FnZSBpcyB1bnN1cHBvcnRlZCB2ZXJzaW9uIG9mIFhDTS4gXFsgaWQgXF1ARXhlY3V0ZWREb3dud2FyZAgACAEgW3U4OyAzMl0AAIkGARxPdXRjb21lAAIIxERvd253YXJkIG1lc3NhZ2UgZXhlY3V0ZWQgd2l0aCB0aGUgZ2l2ZW4gb3V0Y29tZS5EXFsgaWQsIG91dGNvbWUgXF0EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSZBgxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEQQFByb2Nlc3NpbmdGYWlsZWQMAQhpZDwBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BFGVycm9ynQYBTFByb2Nlc3NNZXNzYWdlRXJyb3IQYFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgBJAVRoaXMgZXJyb3IgaXMgcHJldHR5IG9wYXF1ZS4gTW9yZSBmaW5lLWdyYWluZWQgZXJyb3JzIG5lZWQgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4ABFUBTWVzc2FnZSBkaXNjYXJkZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAgKHVzdWFsbHkgYSBmb3JtYXQgZXJyb3IpLiRQcm9jZXNzZWQQAQhpZDwBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BLHdlaWdodF91c2Vk1QEBGFdlaWdodATASG93IG11Y2ggd2VpZ2h0IHdhcyB1c2VkIHRvIHByb2Nlc3MgdGhlIG1lc3NhZ2UuARxzdWNjZXNzyAEQYm9vbBiIV2hldGhlciB0aGUgbWVzc2FnZSB3YXMgcHJvY2Vzc2VkLgBJAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdW5kZXJseWluZyBgTWVzc2FnZVByb2Nlc3NvcmAgd2FzIGludGVybmFsbHk1AXN1Y2Nlc3NmdWwuIEl0ICpzb2xlbHkqIG1lYW5zIHRoYXQgdGhlIE1RIHBhbGxldCB3aWxsIHRyZWF0IHRoaXMgYXMgYSBzdWNjZXNzTQFjb25kaXRpb24gYW5kIGRpc2NhcmQgdGhlIG1lc3NhZ2UuIEFueSBpbnRlcm5hbCBlcnJvciBuZWVkcyB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgEEVE1lc3NhZ2UgaXMgcHJvY2Vzc2VkLkhPdmVyd2VpZ2h0RW5xdWV1ZWQQAQhpZAgBIFt1ODsgMzJdBJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW4hAwFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuAShwYWdlX2luZGV4OAEkUGFnZUluZGV4BGBUaGUgcGFnZSBvZiB0aGUgbWVzc2FnZS4BNG1lc3NhZ2VfaW5kZXg4ARxUOjpTaXplBKRUaGUgaW5kZXggb2YgdGhlIG1lc3NhZ2Ugd2l0aGluIHRoZSBwYWdlLgIEjE1lc3NhZ2UgcGxhY2VkIGluIG92ZXJ3ZWlnaHQgcXVldWUuKFBhZ2VSZWFwZWQIARhvcmlnaW4hAwFITWVzc2FnZU9yaWdpbk9mPFQ+BFhUaGUgcXVldWUgb2YgdGhlIHBhZ2UuARRpbmRleDgBJFBhZ2VJbmRleARYVGhlIGluZGV4IG9mIHRoZSBwYWdlLgMEVFRoaXMgcGFnZSB3YXMgcmVhcGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJ0GEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEYJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEANUBARhXZWlnaHQAAwAUWWllbGQABABEU3RhY2tMaW1pdFJlYWNoZWQABQAAoQYMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFdmVudAABIEBCYXRjaEludGVycnVwdGVkCAEUaW5kZXg4AQx1MzIAARRlcnJvchEGATREaXNwYXRjaEVycm9yAAAIVQFCYXRjaCBvZiBkaXNwYXRjaGVzIGRpZCBub3QgY29tcGxldGUgZnVsbHkuIEluZGV4IG9mIGZpcnN0IGZhaWxpbmcgZGlzcGF0Y2ggZ2l2ZW4sIGFzSHdlbGwgYXMgdGhlIGVycm9yLjhCYXRjaENvbXBsZXRlZAABBMhCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBmdWxseSB3aXRoIG5vIGVycm9yLmBCYXRjaENvbXBsZXRlZFdpdGhFcnJvcnMAAgS0QmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgYnV0IGhhcyBlcnJvcnMuNEl0ZW1Db21wbGV0ZWQAAwQdAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggbm8gZXJyb3IuKEl0ZW1GYWlsZWQEARRlcnJvchEGATREaXNwYXRjaEVycm9yAAQEEQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIGVycm9yLjBEaXNwYXRjaGVkQXMEARhyZXN1bHSlBgE4RGlzcGF0Y2hSZXN1bHQABQRYQSBjYWxsIHdhcyBkaXNwYXRjaGVkLkRJZkVsc2VNYWluU3VjY2VzcwAGBGRNYWluIGNhbGwgd2FzIGRpc3BhdGNoZWQuUElmRWxzZUZhbGxiYWNrQ2FsbGVkBAEobWFpbl9lcnJvchEGATREaXNwYXRjaEVycm9yAAcEhFRoZSBmYWxsYmFjayBjYWxsIHdhcyBkaXNwYXRjaGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUGBBhSZXN1bHQIBFQBEARFAREGAQgIT2sEABAAAAAADEVycgQAEQYAAAEAAKkGDDxwYWxsZXRfbXVsdGlzaWcYcGFsbGV0FEV2ZW50BARUAAEULE5ld011bHRpc2lnDAEkYXBwcm92aW5nBAEwVDo6QWNjb3VudElkAAEgbXVsdGlzaWcEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gIASBDYWxsSGFzaAAABIxBIG5ldyBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZ3VuLkBNdWx0aXNpZ0FwcHJvdmFsEAEkYXBwcm92aW5nBAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50mQMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAEEyEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkIGJ5IHNvbWVvbmUuQE11bHRpc2lnRXhlY3V0ZWQUASRhcHByb3ZpbmcEATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnSZAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAARhyZXN1bHSlBgE4RGlzcGF0Y2hSZXN1bHQAAgScQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gZXhlY3V0ZWQuRE11bHRpc2lnQ2FuY2VsbGVkEAEoY2FuY2VsbGluZwQBMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludJkDAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gIASBDYWxsSGFzaAADBKBBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBjYW5jZWxsZWQuMERlcG9zaXRQb2tlZBABDHdobwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAEsb2xkX2RlcG9zaXTEATBCYWxhbmNlT2Y8VD4AASxuZXdfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAEBPBUaGUgZGVwb3NpdCBmb3IgYSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gdXBkYXRlZC9wb2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXStBgwscGFsbGV0X3N1ZG8YcGFsbGV0FEV2ZW50BARUAAEQFFN1ZGlkBAEsc3Vkb19yZXN1bHSlBgE4RGlzcGF0Y2hSZXN1bHQEtFRoZSByZXN1bHQgb2YgdGhlIGNhbGwgbWFkZSBieSB0aGUgc3VkbyB1c2VyLgAEcEEgc3VkbyBjYWxsIGp1c3QgdG9vayBwbGFjZS4oS2V5Q2hhbmdlZAgBDG9sZLEGAVBPcHRpb248VDo6QWNjb3VudElkPgS0VGhlIG9sZCBzdWRvIGtleSAoaWYgb25lIHdhcyBwcmV2aW91c2x5IHNldCkuAQxuZXcEATBUOjpBY2NvdW50SWQEiFRoZSBuZXcgc3VkbyBrZXkgKGlmIG9uZSB3YXMgc2V0KS4BBHhUaGUgc3VkbyBrZXkgaGFzIGJlZW4gdXBkYXRlZC4oS2V5UmVtb3ZlZAACBIBUaGUga2V5IHdhcyBwZXJtYW5lbnRseSByZW1vdmVkLihTdWRvQXNEb25lBAEsc3Vkb19yZXN1bHSlBgE4RGlzcGF0Y2hSZXN1bHQEtFRoZSByZXN1bHQgb2YgdGhlIGNhbGwgbWFkZSBieSB0aGUgc3VkbyB1c2VyLgMEyEEgW3N1ZG9fYXNdKFBhbGxldDo6c3Vkb19hcykgY2FsbCBqdXN0IHRvb2sgcGxhY2UuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0sQYEGE9wdGlvbgQEVAEEAQgQTm9uZQAAABBTb21lBAAEAAABAAC1BgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFdmVudAQEVAABHDRQcm94eUV4ZWN1dGVkBAEYcmVzdWx0pQYBOERpc3BhdGNoUmVzdWx0AAAEvEEgcHJveHkgd2FzIGV4ZWN1dGVkIGNvcnJlY3RseSwgd2l0aCB0aGUgZ2l2ZW4uLFB1cmVDcmVhdGVkGAEQcHVyZQQBMFQ6OkFjY291bnRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXgtAwEMdTE2AAEIYXQ4AURCbG9ja051bWJlckZvcjxUPgABPGV4dHJpbnNpY19pbmRleDgBDHUzMgABCNxBIHB1cmUgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIGJ5IG5ldyBwcm94eSB3aXRoIGdpdmVukGRpc2FtYmlndWF0aW9uIGluZGV4IGFuZCBwcm94eSB0eXBlLihQdXJlS2lsbGVkEAEQcHVyZQQBMFQ6OkFjY291bnRJZAABHHNwYXduZXIEATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABUGRpc2FtYmlndWF0aW9uX2luZGV4LQMBDHUxNgACBJxBIHB1cmUgcHJveHkgd2FzIGtpbGxlZCBieSBpdHMgc3Bhd25lci4kQW5ub3VuY2VkDAEQcmVhbAQBMFQ6OkFjY291bnRJZAABFHByb3h5BAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoPAE0Q2FsbEhhc2hPZjxUPgADBOBBbiBhbm5vdW5jZW1lbnQgd2FzIHBsYWNlZCB0byBtYWtlIGEgY2FsbCBpbiB0aGUgZnV0dXJlLihQcm94eUFkZGVkEAEkZGVsZWdhdG9yBAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlBAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAARRkZWxheTgBREJsb2NrTnVtYmVyRm9yPFQ+AAQESEEgcHJveHkgd2FzIGFkZGVkLjBQcm94eVJlbW92ZWQQASRkZWxlZ2F0b3IEATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUEATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4ABQRQQSBwcm94eSB3YXMgcmVtb3ZlZC4wRGVwb3NpdFBva2VkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEQa2luZLkGASxEZXBvc2l0S2luZAABLG9sZF9kZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAEsbmV3X2RlcG9zaXTEATBCYWxhbmNlT2Y8VD4ABgQJAUEgZGVwb3NpdCBzdG9yZWQgZm9yIHByb3hpZXMgb3IgYW5ub3VuY2VtZW50cyB3YXMgcG9rZWQgLyB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLkGCDBwYWxsZXRfcHJveHksRGVwb3NpdEtpbmQAAQgcUHJveGllcwAAADRBbm5vdW5jZW1lbnRzAAEAAL0GDExpbmRpdl9wYWxsZXRfcGVvcGxlGHBhbGxldBRFdmVudAQEVAABKFBQZXJzb25ob29kUmVjb2duaXplZAgBDHdobygBKFBlcnNvbmFsSWQAAQxrZXkIASxNZW1iZXJPZjxUPgAABPhBbiBpbmRpdmlkdWFsIGhhcyBoYWQgdGhlaXIgcGVyc29uaG9vZCByZWNvZ25pc2VkIGFuZCBpbmRleGVkLkBQZXJzb25PbmJvYXJkaW5nCAEMd2hvKAEoUGVyc29uYWxJZAABDGtleQgBLE1lbWJlck9mPFQ+AAEEEQFBbiBpbmRpdmlkdWFsIGhhcyBoYWQgdGhlaXIgcGVyc29uaG9vZCByZWNvZ25pc2VkIGFnYWluIGFuZCBpbmRleGVkLjxBbGlhc0Rpc3BhdGNoZWQIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAIElEEgY2FsbCB3YXMgZGlzcGF0Y2hlZCB1bmRlciBhbiBhbGlhcy48QWxpYXNBY2NvdW50U2V0CAEUYWxpYXNJAwE8Q29udGV4dHVhbEFsaWFzAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADBLxBbiBhbGlhcy10by1hY2NvdW50IG1hcHBpbmcgd2FzIHNldCBvciB1cGRhdGVkLkRBbGlhc0FjY291bnRVbnNldAgBFGFsaWFzSQMBPENvbnRleHR1YWxBbGlhcwABHGFjY291bnQEATBUOjpBY2NvdW50SWQABASgQW4gYWxpYXMtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyByZW1vdmVkLlBQZXJzb25hbElkQWNjb3VudFNldAgBDHdobygBKFBlcnNvbmFsSWQAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUE0EEgcGVyc29uYWwgSUQtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyBzZXQgb3IgdXBkYXRlZC5YUGVyc29uYWxJZEFjY291bnRVbnNldAgBDHdobygBKFBlcnNvbmFsSWQAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAYEtEEgcGVyc29uYWwgSUQtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyByZW1vdmVkLkRDb2xsZWN0aW9uQ3JlYXRlZAAHBIhUaGUgcGVvcGxlIGNvbGxlY3Rpb24gd2FzIGNyZWF0ZWQuZEZvcmNlUGVyc29uaG9vZFJlY29nbml6ZWQEARhwZW9wbGWxAwFAVmVjPE1lbWJlck9mPFQ+PgAIBLRQZXJzb25ob29kIHdhcyBmb3JjZWZ1bGx5IHJlY29nbml6ZWQgYnkgcm9vdC44QWxpYXNDbGVhbmVkVXAIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAkErEFuIGFsaWFzLXRvLWFjY291bnQgbWFwcGluZyB3YXMgY2xlYW5lZCB1cC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTBBgxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldBRFdmVudAQEVAABRCxDYXNlQ3JlYXRlZAQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEgFRoZSBjYXNlIGluZGV4IHRoYXQgd2FzIGNyZWF0ZWQuAARgQSBjYXNlIGhhcyBiZWVuIGNyZWF0ZWQuIENhbGxiYWNrBAEYcmVzdWx0pQYBOERpc3BhdGNoUmVzdWx0BGxUaGUgcmVzdWx0IG9mIHRoZSBjYWxsYmFjay4BBJxBIGNhbGxiYWNrIHdhcyB0cmlnZ2VyZWQgZnJvbSBtb2ItcnVsZS40Q2FsbGJhY2tFcnJvcgACBPBUaGVyZSB3YXMgYSBjb2RlYyBlcnJvciB3aGVuIHRyeWluZyB0byBleGVjdXRlIHRoZSBjYWxsYmFjay4oQ2FzZUNsb3NlZAgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEfFRoZSBjYXNlIGluZGV4IHRoYXQgd2FzIGNsb3NlZC4BHHZlcmRpY3TBAwEkSnVkZ2VtZW50BHxUaGUgdmVyZGljdCBvZiB0aGUgY2xvc2VkIGNhc2UuAwTMVGhlIGNhc2UgaGFzIGJlZW4gY2xvc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQuFFZvdGVkDAEoY2FzZV9pbmRleDgBJENhc2VJbmRleARIVGhlIGNhc2Ugdm90ZWQgb24uARR2b3RlcggBFEFsaWFzBFRUaGUgYWxpYXMgdGhhdCB2b3RlZC4BHG9waW5pb27BAwEkSnVkZ2VtZW50BGRUaGUgb3BpbmlvbiBvZiB0aGUgdm90ZXIuBASEQSB2b3RlIGhhcyBiZWVuIHBsYWNlZCBvbiBhIGNhc2UuLFZvdGVDbGVhbmVkCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleARIVGhlIGNhc2Ugdm90ZWQgb24uARR2b3RlcggBFEFsaWFzBFRUaGUgYWxpYXMgdGhhdCB2b3RlZC4FBGBBIHZvdGUgaGFzIGJlZW4gY2xlYW5lZC4sQ2FzZVJlbW92ZWQEAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4BEhUaGUgY2FzZSB2b3RlZCBvbi4GBGBBIGNhc2UgaGFzIGJlZW4gcmVtb3ZlZC44Q2FzZUludGVydmVuZWQIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4BIhUaGUgY2FzZSB0aGF0IGhhcyBiZWVuIGludGVydmVuZWQuARx2ZXJkaWN0wQMBJEp1ZGdlbWVudASAVGhlIHZlcmRpY3QgYXBwbGllZCB0byB0aGUgY2FzZS4HBGxBIGNhc2UgaGFzIGJlZW4gaW50ZXJ2ZW5lZC4wVm90ZXNDbGFpbWVkCAEUdm90ZXIIARRBbGlhcwRUVGhlIGFsaWFzIHRoYXQgdm90ZWQuATBjYXNlX2luZGljZXPJAwE4VmVjPENhc2VJbmRleD4EiFRoZSBjYXNlIHRoYXQgaGFzIGJlZW4gaW50ZXJ2ZW5lZC4IBJBDcmVkaXRzIGZvciB2b3RlcyBoYXZlIGJlZW4gY2xhaW1lZC4wUmV3YXJkUGF5b3V0DAEUdm90ZXIIARRBbGlhcwR8VGhlIGFsaWFzIHRoYXQgZWFybmVkIGEgcmV3YXJkLgEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQEnFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgcGF5b3V0LgEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BJxUaGUgcGF5b3V0IGFtb3VudCB0aGF0IHdhcyB0cmFuc2ZlcnJlZC4JBIBBIHJld2FyZCB0aGF0IGhhcyBiZWVuIHBhaWQgb3V0LkhQYXlvdXRSb3VuZFN0YXJ0ZWQMARRyb3VuZDgBKFJvdW5kSW5kZXgEiFRoZSBpbmRleCBvZiB0aGUgbmV3IHBheW91dCByb3VuZC4BPGluaXRpYWxfYmFsYW5jZcQBMEJhbGFuY2VPZjxUPgSwVGhlIGluaXRpYWwgYmFsYW5jZSBhbGxvY2F0ZWQgZm9yIHRoZSByb3VuZC4BMHRvdGFsX3BvaW50cygBJFZvdGVDb3VudATEVG90YWwgYWNjdW11bGF0ZWQgcG9pbnRzIGNsYWltYWJsZSBpbiB0aGlzIHJvdW5kLgoEkEEgbmV3IHBheW91dCByb3VuZCBoYXMgYmVlbiBzdGFydGVkLlRQYXlvdXRSb3VuZHNTY2hlZHVsZWQMARhhbW91bnTEATBCYWxhbmNlT2Y8VD4EeFRoZSBhbW91bnQgb2YgZnVuZHMgcGVyIHJvdW5kLgEUY291bnQ4AQx1MzIEfFRoZSBudW1iZXIgb2Ygcm91bmRzIHNjaGVkdWxlZC4BGHBlcmlvZDgBREJsb2NrTnVtYmVyRm9yPFQ+BLhUaGUgbWluaW11bSBwZXJpb2QgKGluIGJsb2NrcykgYmV0d2VlbiByb3VuZHMuCwSIUGF5b3V0IHJvdW5kcyBoYXZlIGJlZW4gc2NoZWR1bGVkLlRQYXlvdXRTY2hlZHVsZVJlbW92ZWQEARRpbmRleDgBDHUzMgSIVGhlIGluZGV4IG9mIHRoZSByZW1vdmVkIHNjaGVkdWxlLgwEjEEgcGF5b3V0IHNjaGVkdWxlIGhhcyBiZWVuIHJlbW92ZWQuNENyZWRpdENsYWltZWQIARR2b3RlcggBFEFsaWFzBIxUaGUgYWxpYXMgb2YgdGhlIHZvdGVyIHdobyBjbGFpbWVkLgEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BHRUaGUgYW1vdW50IG9mIGNyZWRpdCBjbGFpbWVkLg0E1ENyZWRpdCBoYXMgYmVlbiBjbGFpbWVkIGZyb20gdGhlIHBheW91dCBkaXN0cmlidXRpb24uNFBvaW50c0NsZWFuZWQIARRyb3VuZDgBKFJvdW5kSW5kZXgEvFRoZSByb3VuZCBpbmRleCBmcm9tIHdoaWNoIHBvaW50cyB3ZXJlIHJlbW92ZWQuARR2b3RlcggBFEFsaWFzBJBUaGUgYWxpYXMgd2hvc2UgcG9pbnRzIHdlcmUgcmVtb3ZlZC4OBJhTdGFsZSB2b3RpbmcgcG9pbnRzIGhhdmUgYmVlbiBjbGVhbmVkLixDYXNlVG91Y2hlZAgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEaFRoZSBjYXNlIHRoYXQgd2FzIHRvdWNoZWQuARxyaXBlbmVkyAEQYm9vbASkV2hldGhlciB0aGUgY2FzZSB3YXMgcmlwZW5lZCBhcyBhIHJlc3VsdC4PBJxBIGNhc2UgaGFzIGJlZW4gdG91Y2hlZCAocmUtZXZhbHVhdGVkKS5QVm90aW5nUGVuYWx0eUNsZWFyZWQEAQx3aG8IARRBbGlhcwSQVGhlIGFsaWFzIHdob3NlIHBlbmFsdHkgd2FzIGNsZWFyZWQuEASIQSB2b3RpbmcgcGVuYWx0eSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMUGDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBRFdmVudAQEVAABXEBDYW5kaWRhdGVBcHBsaWVkBAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAABIxDYW5kaWRhdGUgYXBwbGllZCBmb3IgdmVyaWZpY2F0aW9uLkhKdWRnZW1lbnRSZXF1ZXN0ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEEBQFDYW5kaWRhdGUgb3BlbmVkIGEgTW9iIFJ1bGUgY2FzZSBmb3IgdGhlaXIgdmVyaWZpY2F0aW9uIGV2aWRlbmNlLkRKdWRnZW1lbnRQcm92aWRlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASRqdWRnZW1lbnTBAwEkSnVkZ2VtZW50AAIE2E9yYWNsZSBoYXMgcHJvdmlkZWQgdGhlIGp1ZGdlbWVudCBmb3IgYSBNb2IgUnVsZSBjYXNlLjBSZXRyeUdyYW50ZWQIAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEgZmFpbHVyZXM4AQx1MzIAAwhFAUEgY2FuZGlkYXRlIGhhcyBiZWVuIGdyYW50ZWQgYSBmcmVlIHJldHJ5IGF0dGVtcHQgYWZ0ZXIgYSBmYWlsdXJlIHRvIHZlcmlmeSB0aGVpciRldmlkZW5jZS5AUGVyc29uUmVnaXN0ZXJlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASxwZXJzb25hbF9pZCgBKFBlcnNvbmFsSWQABASAUmVnaXN0ZXIgYW4gYWNjb3VudCBhcyBhIHBlcnNvbi5EQ2FuZGlkYXRlUmVmZXJyZWQIASByZWZlcnJlcigBKFBlcnNvbmFsSWQAASByZWZlcnJlZAQBMFQ6OkFjY291bnRJZAAFBGxQZXJzb24gcmVmZXJyZWQgYW4gYWNjb3VudC4gUmVyb2xsZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAYEtEVudHJvcHkgZm9yIGEgY2FuZGlkYXRlIGNoYW5nZWQgYWZ0ZXIgZXhwaXJ5LjxEZXNpZ25Db21taXR0ZWQIAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEscmVzZXJ2ZWRfaWQoAShQZXJzb25hbElkAAcElENhbmRpZGF0ZSBjb21taXR0ZWQgdG8gYW4gaW5rIGRlc2lnbi44RnVsbHlBbGxvY2F0ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAgEvFN0b3JhZ2UgZnVsbHkgYWxsb2NhdGVkIGZvciBhIGNvbW1pdHRlZCBkZXNpZ24uIFRpbWVkT3V0BAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAJBIBDYW5kaWRhdGUgcmVtb3ZlZCBhZnRlciB0aW1lb3V0LiRGbGFrZWRPdXQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAoEeFVuY29tbWl0dGVkIGNhbmRpZGF0ZSByZW1vdmVkLjhUaWNrZXRSZWZlcnJlZAgBIHJlZmVycmVyKAEoUGVyc29uYWxJZAABGHRpY2tldAQBJFQ6OlRpY2tldAALBOxSZWZlcnJhbCB0aWNrZXQgY3JlYXRlZCBieSBzdG9yaW5nIHRoZSBwdWJsaWMga2V5IG9uIGNoYWluLjxUaWNrZXRDYW5jZWxsZWQIASByZWZlcnJlcigBKFBlcnNvbmFsSWQAARh0aWNrZXQEASRUOjpUaWNrZXQADAQZAVJlZmVycmFsIHRpY2tldCByZW1vdmVkIGJ5IHJlbW92aW5nIHRoZSBwdWJsaWMga2V5IGZyb20gY2hhaW4gc3RvcmFnZS40VGlja2V0QXBwbGllZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASByZWZlcnJlcigBKFBlcnNvbmFsSWQADQSoQ2FuZGlkYXRlIGFwcGxpZWQgdXNpbmcgYSByZWZlcnJhbCB0aWNrZXQuLEZhbWlseUFkZGVkDAEUaW5kZXgtAwEsRmFtaWx5SW5kZXgAARBraW5k4QMBKEZhbWlseUtpbmQAAQhpZAgBIEZhbWlseUlkAA4EUERlc2lnbiBmYW1pbHkgYWRkZWQuREFsbEludml0ZXNSZW1vdmVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAPBLhBbGwgaW52aXRlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIGludml0ZXIuSFNvbWVJbnZpdGVzUmVtb3ZlZAQBHGludml0ZXIEATBUOjpBY2NvdW50SWQAEAQNAVNvbWUgaW52aXRlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIGludml0ZXIsIHNvbWUgYXJlIHJlbWFpbmluZy5cSW52aXRlZENhbmRpZGF0ZUFwcGxpZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARxpbnZpdGVyBAEwVDo6QWNjb3VudElkABEEmENhbmRpZGF0ZSBhcHBsaWVkIHVzaW5nIGFuIGludml0YXRpb24uZFJlZmVycmFsVm91Y2hlclJlZ2lzdGVyZWQEASByZWZlcnJlcigBKFBlcnNvbmFsSWQAEgTAQSByZWZlcnJlcidzIHJld2FyZCB2b3VjaGVyIGhhcyBiZWVuIHJlZ2lzdGVyZWQuOEludml0ZXNHcmFudGVkCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFGNvdW50OAEMdTMyABMEoEludml0ZXMgaGF2ZSBiZWVuIGdyYW50ZWQgdG8gYW4gYWNjb3VudC48SW52aXRlVGlja2V0U2V0CAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBJFQ6OlRpY2tldAAUBHhBbiBpbnZpdGUgdGlja2V0IGhhcyBiZWVuIHNldC5USW52aXRlVGlja2V0Q2FuY2VsbGVkCAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBJFQ6OlRpY2tldAAVBJBBbiBpbnZpdGUgdGlja2V0IGhhcyBiZWVuIGNhbmNlbGxlZC5AQ29uZmlndXJhdGlvblNldAQBGGNvbmZpZ+UDAXxDb25maWdSZWNvcmQ8QmxvY2tOdW1iZXJGb3I8VD4+ABYEqFRoZSBwYWxsZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMkGDERpbmRpdl9wYWxsZXRfZ2FtZRhwYWxsZXQURXZlbnQEBFQAAVAcTmV3R2FtZQwBRHJlZ2lzdHJhdGlvbl9lbmRzOAEMdTMyAAEkZ2FtZV9kYXRlOAEMdTMyAAEscmVwb3J0X2VuZHM4AQx1MzIAAARcQSBuZXcgZ2FtZSBpcyBzdGFydGluZy4kR2FtZUVuZGVkBAEUaW5kZXg4AQx1MzIAAQSgVGhlIGdhbWUgYW5kIGl0cyBwb3N0LXByb2Nlc3MgaGFzIGVuZGVkLihHYW1lS2lsbGVkBAEUaW5kZXg4AQx1MzIAAgT8VGhlIGN1cnJlbnQgZ2FtZSB3YXMgZm9yY2Uta2lsbGVkIGJ5IFtgQ29uZmlnOjpNYW5hZ2VyT3JpZ2luYF0uNEdhbWVQaGFzZXNTZXQEARhwaGFzZXMtBAFMUGhhc2VEdXJhdGlvblZhbHVlcwADBBkBVGhlIGdhbWUgcGhhc2UgZHVyYXRpb25zIHdlcmUgb3ZlcnJpZGRlbiBieSBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdLiBTaWduZWRVcAQBDHdob80GAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgAEBIBBIHBsYXllciBzaWduZWQgdXAgZm9yIHRoZSBnYW1lLjxSZXBvcnRTdWJtaXR0ZWQIAQx3aG/NBgF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4AAShnYW1lX2luZGV4OAEMdTMyAAUEgEEgcGxheWVyIHN1Ym1pdHRlZCB0aGVpciByZXBvcnQuKE9mZmJvYXJkZWQEAQx3aG/NBgF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4ABgSIQSBwbGF5ZXIgb2ZmYm9hcmRlZCBmcm9tIHRoZSBnYW1lLiRLaWNrZWRPdXQEARhwbGF5ZXLNBgF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4ABwSIQW4gYXJjaGl2ZWQgcGxheWVyIHdhcyBraWNrZWQgb3V0LjhJbnZpdGVzR3JhbnRlZAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAIBIxJbnZpdGVzIHdlcmUgZ3JhbnRlZCB0byBhbiBhY2NvdW50LjxJbnZpdGVUaWNrZXRTZXQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAAkEZEFuIGludml0ZSB0aWNrZXQgd2FzIHNldC5USW52aXRlVGlja2V0Q2FuY2VsbGVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAKBHxBbiBpbnZpdGUgdGlja2V0IHdhcyBjYW5jZWxsZWQuOEdhbWVzU2NoZWR1bGVkBAEUY291bnQ4AQx1MzIACwRUR2FtZXMgd2VyZSBzY2hlZHVsZWQuUFNjaGVkdWxlZEdhbWVSZW1vdmVkBAE4Z2FtZV9wbGF5X3RpbWU4AQx1MzIADAR0QSBzY2hlZHVsZWQgZ2FtZSB3YXMgcmVtb3ZlZC5AU3RtdFVzYWdlUmVtb3ZlZAQBDHdobwgBIFt1ODsgMzJdAA0EuFN0YXRlbWVudCBzdG9yZSB1c2FnZSByZW1vdmVkIGZvciB0aGUgYWNjb3VudC5EQWxsSW52aXRlc1JlbW92ZWQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAA4EuEFsbCBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlci5IU29tZUludml0ZXNSZW1vdmVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAPBA0BU29tZSBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlciwgc29tZSBhcmUgcmVtYWluaW5nLjhQbGF5RGVwb3NpdFNldAQBGGFtb3VudMQBSE5hdGl2ZUJhbGFuY2VPZjxUPgAQBKBUaGUgY29uZmlndXJlZCBwbGF5IGRlcG9zaXQgd2FzIHVwZGF0ZWQuQEFpcmRyb3BTY2hlZHVsZWQIAShnYW1lX2luZGV4OAEMdTMyAAEgZXZlbnRfaWQIAThBaXJkcm9wRXZlbnRJZAARBNBBbiBhaXJkcm9wIGV2ZW50IHdhcyBzY2hlZHVsZWQgZm9yIHRoZSBjdXJyZW50IGdhbWUuVEFpcmRyb3BTY2hlZHVsZUZhaWxlZAgBKGdhbWVfaW5kZXg4AQx1MzIAARRlcnJvchEGATREaXNwYXRjaEVycm9yABIE6FRoZSBhaXJkcm9wIGV2ZW50IGZvciB0aGUgY3VycmVudCBnYW1lIGZhaWxlZCB0byBzY2hlZHVsZS40R2FtZUNhbmNlbGxlZAQBKGdhbWVfaW5kZXg4AQx1MzIAEwSAR2FtZSBgZ2FtZV9pbmRleGAgd2FzIGNhbmNlbGxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTNBgxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzPEFjY291bnRPclBlcnNvbgQkQWNjb3VudElkAQQBCBxBY2NvdW50BAAEASRBY2NvdW50SWQAAAAYUGVyc29uBAAIARRBbGlhcwABAADRBgxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBRFdmVudAQEVAABJDRDcmVkaXRDbGFpbWVkDAEMd2hvzQYBdEFjY291bnRPclBlcnNvbjxUOjpBY2NvdW50SWQ+BHhUaGUgcGVyc29uIHdobyBjbGFpbWVkIGNyZWRpdC4BLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkBLxEZXN0aW5hdGlvbiBhY2NvdW50IHRoYXQgcmVjZWl2ZWQgdGhlIHRyYW5zZmVyLgEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BExBbW91bnQgdHJhbnNmZXJyZWQuAARwQSBwZXJzb24gaGFzIGNsYWltZWQgY3JlZGl0LlBQZXJzb25ob29kUmVjb2duaXplZAgBDHdob80GAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgSwVGhlIGFjY291bnQgd2hvc2UgcGVyc29uaG9vZCB3YXMgcmVjb2duaXplZC4BHHJlc3VtZWTIARBib29sBBEBV2hldGhlciB0aGlzIHdhcyByZXN1bWluZyBmcm9tIHN1c3BlbnNpb24gb3IgZmlyc3QtdGltZSByZWNvZ25pdGlvbi4BBKRQZXJzb25ob29kIHdhcyByZWNvZ25pemVkIGZvciBhbiBhY2NvdW50LlRQYXlvdXRSb3VuZHNTY2hlZHVsZWQMARhhbW91bnTEATBCYWxhbmNlT2Y8VD4EVFRoZSBhbW91bnQgcGVyIHJvdW5kLgEUY291bnQ4AQx1MzIEVFRoZSBudW1iZXIgb2Ygcm91bmRzLgEgZHVyYXRpb244AURCbG9ja051bWJlckZvcjxUPgSEVGhlIGR1cmF0aW9uIHBlciByb3VuZCBpbiBibG9ja3MuAgSIUGF5b3V0IHJvdW5kcyBoYXZlIGJlZW4gc2NoZWR1bGVkLlRQYXlvdXRTY2hlZHVsZVJlbW92ZWQEARRpbmRleDgBDHUzMgSIVGhlIGluZGV4IG9mIHRoZSByZW1vdmVkIHNjaGVkdWxlLgMEjEEgcGF5b3V0IHNjaGVkdWxlIGhhcyBiZWVuIHJlbW92ZWQuRFJvdW5kVHJhbnNpdGlvbmVkBAEscm91bmRfaW5kZXg4AShSb3VuZEluZGV4BJhUaGUgcm91bmQgaW5kZXggdGhhdCB3YXMgdHJhbnNpdGlvbmVkLgQEeEEgcm91bmQgaGFzIGJlZW4gdHJhbnNpdGlvbmVkLkxQYXlvdXRSb3VuZE9wZXJhdGVkBAEscm91bmRfaW5kZXg4AShSb3VuZEluZGV4BIhUaGUgcm91bmQgaW5kZXggdGhhdCB3YXMgb3BlcmF0ZWQuBQQZAUEgcGF5b3V0IHJvdW5kIGhhcyBiZWVuIG9wZXJhdGVkIChjcmVkaXQgZGlzdHJpYnV0ZWQgdG8gcGFydGljaXBhbnRzKS4kQ2FzaGVkT3V0BAEMd2hvzQYBdEFjY291bnRPclBlcnNvbjxUOjpBY2NvdW50SWQ+BHxUaGUgcGFydGljaXBhbnQgd2hvIGNhc2hlZCBvdXQuBgS4QSBwYXJ0aWNpcGFudCBoYXMgY2FzaGVkIG91dCBzY29yZSBmb3IgcG9pbnRzLnhQZXJzb25ob29kVGhyZXNob2xkU2NoZWR1bGVTZXQABwS8VGhlIHBlcnNvbmhvb2QtdGhyZXNob2xkIHNjaGVkdWxlIGhhcyBiZWVuIHNldC5cQWJzZW5jZUdyYWNlU2NoZWR1bGVTZXQACASgVGhlIGFic2VuY2UtZ3JhY2Ugc2NoZWR1bGUgaGFzIGJlZW4gc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNUGDFhpbmRpdl9wYWxsZXRfZHVtbXlfZGltGHBhbGxldBRFdmVudAQEVAABICxJZHNSZXNlcnZlZAQBFGNvdW50OAEMdTMyAAAEdEEgbnVtYmVyIG9mIElEcyB3YXMgcmVzZXJ2ZWQuJElkUmVuZXdlZAQBCGlkKAEoUGVyc29uYWxJZAABBEhBbiBJRCB3YXMgcmVuZXdlZC4wSWRVbnJlc2VydmVkBAEIaWQoAShQZXJzb25hbElkAAIEaEEgcmVzZXJ2ZWQgSUQgd2FzIHJlbW92ZWQuQFBlb3BsZVJlZ2lzdGVyZWQEARRjb3VudDgBDHUzMgADBGRSZWdpc3RlciBtdWx0aXBsZSBwZW9wbGUuPFBlb3BsZVN1c3BlbmRlZAQBFGNvdW50OAEMdTMyAAQEbFN1c3BlbmQgYSBudW1iZXIgb2YgcGVvcGxlLkRQZXJzb25ob29kUmVzdW1lZAQBCGlkKAEoUGVyc29uYWxJZAAFBIRTb21lb25lJ3MgcGVyc29uaG9vZCB3YXMgcmVzdW1lZC5IU3VzcGVuc2lvbnNTdGFydGVkAAYEfFRoZSBwYWxsZXQgZW5hYmxlZCBzdXNwZW5zaW9ucy5AU3VzcGVuc2lvbnNFbmRlZAAHBIBUaGUgcGFsbGV0IGRpc2FibGVkIHN1c3BlbnNpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNkGDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUYcGFsbGV0FEV2ZW50BARUAAEYeEFsbEF0dGVzdGF0aW9uQWxsb3dhbmNlQ2xlYXJlZAQBIHZlcmlmaWVyBAEwVDo6QWNjb3VudElkAAAE8EFsbCBhdHRlc3RhdGlvbiBhbGxvd2FuY2UgaGFzIGJlZW4gcmVtb3ZlZCBmb3IgdGhlIHZlcmlmaWVyLnRBdHRlc3RhdGlvbkFsbG93YW5jZUluY3JlYXNlZAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgABBC0BQXR0ZXN0YXRpb24gYWxsb3dhbmNlIHdhcyBpbmNyZWFzZWQgZm9yIGFuIGFjY291bnQgYnkgYGNvdW50YCBhdHRlc3RhdGlvbnMuOFBlcnNvbkF0dGVzdGVkCAEkY2FuZGlkYXRlBAEwVDo6QWNjb3VudElkAAEgdmVyaWZpZXIEATBUOjpBY2NvdW50SWQAAgTUQSBuZXcgbGl0ZSBwZXJzb24gd2FzIHJlZ2lzdGVyZWQgdGhyb3VnaCBhdHRlc3RhdGlvbi5IQ29uc3VtZXJSZWdpc3RlcmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADBKxBIGxpdGUgcGVyc29uIHdhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuPEFsaWFzQWNjb3VudFNldAgBFGFsaWFzSQMBPENvbnRleHR1YWxBbGlhcwABHGFjY291bnQEATBUOjpBY2NvdW50SWQABAS8QW4gYWxpYXMtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyBzZXQgb3IgdXBkYXRlZC5EQWxpYXNBY2NvdW50VW5zZXQIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUEoEFuIGFsaWFzLXRvLWFjY291bnQgbWFwcGluZyB3YXMgcmVtb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTdBgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxhwYWxsZXQURXZlbnQEBFQAAThAUGVyc29uUmVnaXN0ZXJlZAgBFGFsaWFzCAEUQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAAEmEEgcGVyc29uIGhhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuUExpdGVQZXJzb25SZWdpc3RlcmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABBKxBIGxpdGUgcGVyc29uIGhhcyByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuZEZyaWVuZFJlcXVlc3RTdG10VXNhZ2VTZXQQARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEMc2VxDAEIdTgAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAIEAQFGcmllbmQgcmVxdWVzdCBzdGF0ZW1lbnQgdXNhZ2UgaGFzIGJlZW4gYXNzaWduZWQgZm9yIGEgc2VxdWVuY2UudEZyaWVuZFJlcXVlc3RTdG10VXNhZ2VSZW1vdmVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAADBMBGcmllbmQgcmVxdWVzdCBzdGF0ZW1lbnQgdXNhZ2UgaGFzIGJlZW4gcmVtb3ZlZC5oUGVyc29uQXV0aG9yaXphdGlvblRvdWNoZWQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAQElEEgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiB3YXMgdG91Y2hlZC6ERXhwaXJlZFVzZXJuYW1lUmVzZXJ2YXRpb25SZW1vdmVkCAEgdXNlcm5hbWV5BAEgVXNlcm5hbWUAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUEsEFuIGV4cGlyZWQgdXNlcm5hbWUgcmVzZXJ2YXRpb24gd2FzIHJlbW92ZWQuUElkZW50aWZpZXJLZXlVcGRhdGVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAGBKBBIGNvbnN1bWVyJ3MgaWRlbnRpZmllciBrZXkgd2FzIHVwZGF0ZWQueFVzZXJuYW1lUmVzZXJ2YXRpb25EdXJhdGlvblNldAQBIGR1cmF0aW9uKAEMdTY0AAcEqFRoZSB1c2VybmFtZSByZXNlcnZhdGlvbiBkdXJhdGlvbiB3YXMgc2V0LlRTdG10U3RvcmVBbGxvd2FuY2VTZXQQARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEMc2VxOAEMdTMyAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAIBMxBbiBhbm9ueW1vdXMgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZSB3YXMgZ3JhbnRlZC5oU3RtdFN0b3JlQWxsb3dhbmNlc0NsZWFyZWQMARhwZXJpb2Q4AQx1MzIAASRmaXJzdF9rZXkIARRBbGlhcwABFGNvdW50OAEMdTMyAAkEzEV4cGlyZWQgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZXMgd2VyZSBjbGVhbmVkIHVwLjRQZXJzb25EZW1vdGVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAKBNxBIGZ1bGwgcGVyc29uIHdhcyBkZW1vdGVkIGR1ZSB0byBleHBpcmVkIGF1dGhvcml6YXRpb24uWExvbmdUZXJtU3RvcmFnZUNsYWltZWQUARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEcY291bnRlcgwBCHU4AAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABKGNvbGxlY3Rpb25hAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24ACwTITG9uZy10ZXJtIHN0b3JhZ2UgaGFzIGJlZW4gY2xhaW1lZCBmb3IgYW4gYWNjb3VudC58TG9uZ1Rlcm1TdG9yYWdlQWxsb2NhdGlvbkZhaWxlZBQBFGFsaWFzCAEUQWxpYXMAARhwZXJpb2Q4AQx1MzIAARxjb3VudGVyDAEIdTgAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEoY29sbGVjdGlvbmEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgAMCFkBQSBsb25nLXRlcm0gc3RvcmFnZSBjbGFpbSB3YXMgYWNjZXB0ZWQgYnV0IHRoZSBkb3duc3RyZWFtIGFsbG9jYXRpb24gZmFpbGVkLiBUaGUgYWxpYXOUaXMgc3RpbGwgbWFya2VkIHNwZW50IGZvciB0aGUgcGVyaW9kLnRMb25nVGVybVN0b3JhZ2VBbGlhc2VzQ2xlYXJlZAgBGHBlcmlvZDgBDHUzMgABFGNvdW50OAEMdTMyAA0EBQFFeHBpcmVkIGxvbmctdGVybSBzdG9yYWdlIGFsaWFzZXMgaGF2ZSBiZWVuIGNsZWFyZWQgZm9yIGEgcGVyaW9kLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOEGDGxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXIYcGFsbGV0FEV2ZW50BARUAAEIaENodW5rUGFnZUhhc2hlc0luaXRpYWxpemVkCAE0cmluZ19leHBvbmVudJEEATBSaW5nRXhwb25lbnQAASx0b3RhbF9wYWdlczgBDHUzMgAABBkBQSBuZXcgY2h1bmsgcGFnZSBoYXNoIHNldCBoYXMgYmVlbiBpbml0aWFsaXplZCAoZS5nLiwgZHVyaW5nIGdlbmVzaXMpLixDaHVua3NBZGRlZAwBNHJpbmdfZXhwb25lbnSRBAEwUmluZ0V4cG9uZW50AAEsc3RhcnRfaW5kZXg4AQx1MzIAARRjb3VudDgBDHUzMgABBCEBTmV3IGNodW5rcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIGFuIGV4aXN0aW5nIG9yIG5ldyBjaHVuayBzZXQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV05QYMUGluZGl2X3BhbGxldF9tZW1iZXJzGHBhbGxldBRFdmVudAQEVAABKCxNZW1iZXJBZGRlZAQBDGtleQgBLE1lbWJlck9mPFQ+AAAE6EFuIGVudGl0eSBoYXMgaGFkIHRoZWlyIG1lbWJlcnNoaXAgcmVjb2duaXNlZCBhbmQgaW5kZXhlZC40TWVtYmVyUmVtb3ZlZAQBDGtleQgBLE1lbWJlck9mPFQ+AAEErEFuIGVudGl0eSBoYXMgaGFkIHRoZWlyIG1lbWJlcnNoaXAgcmV2b2tlZC5sQ29sbGVjdGlvbk1hcmtlZEZvckRlbGV0aW9uBAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAgSoQSBjb2xsZWN0aW9uIGhhcyBiZWVuIG1hcmtlZCBmb3IgZGVsZXRpb24uRENvbGxlY3Rpb25EZWxldGVkBAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAwSQQSBjb2xsZWN0aW9uIGhhcyBiZWVuIGZ1bGx5IGRlbGV0ZWQuJFJpbmdCdWlsdAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAAEBFhBIHJpbmcgcm9vdCB3YXMgYnVpbHQuQE1lbWJlcnNPbmJvYXJkZWQEAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgAFBFxNZW1iZXJzIHdlcmUgb25ib2FyZGVkLixSaW5nc01lcmdlZAwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8YmFzZV9yaW5nX2luZGV4OAEkUmluZ0luZGV4AAFEdGFyZ2V0X3JpbmdfaW5kZXg4ASRSaW5nSW5kZXgABgRYVHdvIHJpbmdzIHdlcmUgbWVyZ2VkLkRPbmJvYXJkaW5nU2l6ZVNldAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8b25ib2FyZGluZ19zaXplOAEMdTMyAAcEtFRoZSBvbmJvYXJkaW5nIHNpemUgd2FzIHNldCBmb3IgYSBjb2xsZWN0aW9uLkhNZW1iZXJTZWxmSW5jbHVkZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABDGtleQgBLE1lbWJlck9mPFQ+AAgEjEEgbWVtYmVyIHNlbGYtaW5jbHVkZWQgaW50byBhIHJpbmcuQE9sZFJvb3RDbGVhbmVkVXAMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBDHUzMgAJBKRBbiBvbGQgcm9vdCByZXZpc2lvbiBoYXMgYmVlbiBjbGVhbmVkIHVwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOkGDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQURXZlbnQEBFQAAWAkQ29pblNwbGl0BAEwb3V0cHV0X2NvdW50OAEMdTMyAAAAPENvaW5UcmFuc2ZlcnJlZAwBCHRvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEcbmV3X2FnZS0DAQx1MTYAAQBYUmVjeWNsZXJMb2FkZWRXaXRoQ29pbgQBFHZhbHVldQMBJENvaW5WYWx1ZQACAHxSZWN5Y2xlckxvYWRlZFdpdGhFeHRlcm5hbEFzc2V0DAEMd2hvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEYYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAMAYFJlY3ljbGVyVW5sb2FkZWRJbnRvQ29pbhABCHRvBAEwVDo6QWNjb3VudElkAAEsaW5wdXRfdmFsdWV1AwEkQ29pblZhbHVlAAEwb3V0cHV0X3ZhbHVldQMBJENvaW5WYWx1ZQABLGlucHV0X2NvdW50OAEMdTMyAAQAhFJlY3ljbGVyVW5sb2FkZWRJbnRvRXh0ZXJuYWxBc3NldBABCHRvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEkQ29pblZhbHVlAAEsaW5wdXRfY291bnQ4AQx1MzIAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ABQCwUmVjeWNsZXJVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0QW5kVm91Y2hlcnMUAQh0bwQBMFQ6OkFjY291bnRJZAABFHZhbHVldQMBJENvaW5WYWx1ZQABLGlucHV0X2NvdW50OAEMdTMyAAFUZXh0ZXJuYWxfYXNzZXRfYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAE0dm91Y2hlcl9jb3VudDgBDHUzMgAGAIRQYWlkVW5sb2FkVG9rZW5SZWdpc3RlcmVkV2l0aENvaW4IAQxmZWXEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AASRkZXN0cm95ZWTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ABwCMUGFpZFVubG9hZFRva2VuUmVnaXN0ZXJlZFdpdGhOYXRpdmUIAQx3aG8EATBUOjpBY2NvdW50SWQAAQxmZWXEAUhOYXRpdmVCYWxhbmNlT2Y8VD4ACACoUGFpZFVubG9hZFRva2VuUmVnaXN0ZXJlZFdpdGhFeHRlcm5hbEFzc2V0CAEMd2hvBAEwVDo6QWNjb3VudElkAAEMZmVlxAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAkAdFBlb3BsZUZyZWVVbmxvYWRUb2tlbkNvbnN1bWVkBAEYcGVyaW9kOAEYUGVyaW9kAAoAhExpdGVQZW9wbGVGcmVlVW5sb2FkVG9rZW5Db25zdW1lZAQBGHBlcmlvZDgBGFBlcmlvZAALAGRSZWN5Y2xlcnNVbmxvYWRlZEludG9Db2luDAEIdG8EATBUOjpBY2NvdW50SWQAATBvdXRwdXRfdmFsdWV1AwEkQ29pblZhbHVlAAEsaW5wdXRfY291bnQ4AQx1MzIADACIUmVjeWNsZXJzVW5sb2FkZWRJbnRvRXh0ZXJuYWxBc3NldAwBCHRvBAEwVDo6QWNjb3VudElkAAEsaW5wdXRfY291bnQ4AQx1MzIAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ADQC4UmVjeWNsZXJzVW5sb2FkZWRJbnRvRXh0ZXJuYWxBc3NldE5vbkFub255bW91cxQBDHdobwQBMFQ6OkFjY291bnRJZAABCHRvBAEwVDo6QWNjb3VudElkAAEsaW5wdXRfY291bnQ4AQx1MzIAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AATBmZWVfY3VycmVuY3ndBAEsRmVlQ3VycmVuY3kADgBkUmVjeWNsZXJVbmxvYWRlZEludG9Db2lucwQBMG91dHB1dF9jb3VudDgBDHUzMgAPAHxDb2luT2ZmYm9hcmRlZEludG9FeHRlcm5hbEFzc2V0DAEIdG8EATBUOjpBY2NvdW50SWQAARR2YWx1ZXUDASRDb2luVmFsdWUAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AEAA8UmVjeWNsZXJDbGVhbmVkDAEUdmFsdWV1AwEkQ29pblZhbHVlAAE8cmVtYWluaW5nX2NvaW5zOAEMdTMyAAFAZGVzdHJveWVkX2Ftb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgARAGRDb25zdW1lZEZyZWVUb2tlbnNDbGVhbmVkBAEYcGVyaW9kOAEYUGVyaW9kABIAaFBhaWRVbmxvYWRUb2tlblJpbmdDbGVhbmVkCAEYcGVyaW9kOAEYUGVyaW9kAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAATAExSZWN5Y2xlckR1c3RDbGVhbmVkABQAaFBhaWRVbmxvYWRUb2tlbkR1c3RDbGVhbmVkABUAnEV4cGlyZWRQYWlkVW5sb2FkVG9rZW5Db2xsZWN0aW9uRGVsZXRlZAQBGHBlcmlvZDgBGFBlcmlvZAAWAFBVbmRlcmx5aW5nQXNzZXRJZFNldAQBIGFzc2V0X2lk4AFURnVuZ2libGVzQXNzZXRJZE9mPFQ+ABcABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV07QYMdGluZGl2X3BhbGxldF9tZW1iZXJzX25vdGlmaWVyGHBhbGxldBRFdmVudAQEVAABGChTdWJzY3JpYmVkBAEccGFyYV9pZJwBGFBhcmFJZAAABFxBIHBhcmFjaGFpbiBzdWJzY3JpYmVkLjBVbnN1YnNjcmliZWQEARxwYXJhX2lknAEYUGFyYUlkAAEEZEEgcGFyYWNoYWluIHVuc3Vic2NyaWJlZC4sVXBkYXRlc1NlbnQIARxwYXJhX2lknAEYUGFyYUlkAAEwdXBkYXRlX2NvdW50OAEMdTMyAAIEgFVwZGF0ZSBiYXRjaCBzZW50IHRvIHN1YnNjcmliZXIuQFVwZGF0ZVNlbmRGYWlsZWQEARxwYXJhX2lknAEYUGFyYUlkAAMExFNlbmRpbmcgcmluZyByb290IHVwZGF0ZXMgdG8gYSBzdWJzY3JpYmVyIGZhaWxlZC48UmVwbGF5UmVxdWVzdGVkDAEccGFyYV9pZJwBGFBhcmFJZAABKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE0aW5kaWNlc19jb3VudDgBDHUzMgAEBLxSZXBsYXkgb2YgcmluZyByb290cyByZXF1ZXN0ZWQgYnkgYSBzdWJzY3JpYmVyLjhCYXRjaEFiYW5kb25lZAQBIHNlcXVlbmNlKAE4U2VxdWVuY2VOdW1iZXIABQTMQSBzdHVjayBiYXRjaCB3YXMgYWJhbmRvbmVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV08QYMUGluZGl2X3BhbGxldF9haXJkcm9wGHBhbGxldBRFdmVudAQEVAABQDhFdmVudFNjaGVkdWxlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAAAAFRTY2hlZHVsZWRFdmVudFJlbW92ZWQEASBldmVudF9pZAgBHEV2ZW50SWQAAQA4RXZlbnRDYW5jZWxsZWQEASBldmVudF9pZAgBHEV2ZW50SWQAAgBMUmVnaXN0cmF0aW9uU3RhcnRlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAADADxBbGlhc1JlZ2lzdGVyZWQMASBldmVudF9pZAgBHEV2ZW50SWQAARBzbG909QYBNEJpZ0VuZGlhblUyNTYAAUhwYXJ0aWNpcGFudF9vcmlnaW75BgFYUmVnaXN0cmF0aW9uRW50cnlPZjxUPgAEAERBY2NvdW50UmVnaXN0ZXJlZAwBIGV2ZW50X2lkCAEcRXZlbnRJZAABEHNsb3T1BgE0QmlnRW5kaWFuVTI1NgABKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQABQA4RHJhd2luZ1dpbm5lcnMIASBldmVudF9pZAgBHEV2ZW50SWQAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgAGADxDbGFpbWluZ1N0YXJ0ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgAHADRFdmVudENhbmNlbGVkBAEgZXZlbnRfaWQIARxFdmVudElkAAgAMFByaXplQ2xhaW1lZBQBIGV2ZW50X2lkCAEcRXZlbnRJZAABEHNsb3T1BgE0QmlnRW5kaWFuVTI1NgABLGJlbmVmaWNpYXJ5BAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWTgATBBc3NldElkT2Y8VD4AARhhbW91bnTEAURBc3NldEJhbGFuY2VPZjxUPgAJAFRDbGVhcmluZ1JlZ2lzdHJhdGlvbnMIASBldmVudF9pZAgBHEV2ZW50SWQAASR1bmNsYWltZWQ4AQx1MzIACgA8Q2xlYXJpbmdXaW5uZXJzBAEgZXZlbnRfaWQIARxFdmVudElkAAsAPEZpbmFsaXppbmdFdmVudAQBIGV2ZW50X2lkCAEcRXZlbnRJZAAMADhFdmVudENvbXBsZXRlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAANADBBc3NldEVuYWJsZWQIASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABGGZ1bmRlZMQBREFzc2V0QmFsYW5jZU9mPFQ+AA4ANEFzc2V0RGlzYWJsZWQIASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABIHJlZnVuZGVkxAFEQXNzZXRCYWxhbmNlT2Y8VD4ADwAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXT1Bgw0aW5kaXZfc3VwcG9ydBR1dGlsczRCaWdFbmRpYW5VMjU2AAMgAAAADAQdAUEgVTI1NiBlbmNvZGVkIGluIGJpZy1lbmRpYW4gZm9ybWF0IGZvciBjb3JyZWN0IGxleGljb2dyYXBoaWMgb3JkZXJpbmcu+QYMUGluZGl2X3BhbGxldF9haXJkcm9wFHR5cGVzRFJlZ2lzdHJhdGlvbkVudHJ5BCRBY2NvdW50SWQBBAEIFEFsaWFzBAEUYWxpYXMIARRBbGlhcwAAABxBY2NvdW50BAEoYWNjb3VudF9pZAQBJEFjY291bnRJZAABAAD9BgxMaW5kaXZfcGFsbGV0X2hvbm91chhwYWxsZXQURXZlbnQEBFQAAQwgVm90ZUNhc3QIARxzdWJqZWN0CAEkU3ViamVjdElkBHhUaGUgc3ViamVjdCB0aGF0IHdhcyB2b3RlZCBvbi4BJGRpcmVjdGlvbg0FASREaXJlY3Rpb24EaFRoZSBkaXJlY3Rpb24gb2YgdGhlIHZvdGUuAATYQSBzdWJqZWN0IHdhcyB2b3RlZCBvbiB3aXRoIGEgcHJldmlvdXNseSB1bnVzZWQgcG9pbnQuKFZvdGVSZXVzZWQQASxvbGRfc3ViamVjdAgBJFN1YmplY3RJZATYVGhlIHN1YmplY3QgdGhhdCBwcmV2aW91c2x5IGhlbGQgdGhlIHJlZGlyZWN0ZWQgcG9pbnQuATRvbGRfZGlyZWN0aW9uDQUBJERpcmVjdGlvbgSQVGhlIHByZXZpb3VzIGRpcmVjdGlvbiBvZiB0aGUgcG9pbnQuASxuZXdfc3ViamVjdAgBJFN1YmplY3RJZATAVGhlIHN1YmplY3QgdGhhdCBub3cgaG9sZHMgdGhlIHJlZGlyZWN0ZWQgcG9pbnQuATRuZXdfZGlyZWN0aW9uDQUBJERpcmVjdGlvbgR4VGhlIG5ldyBkaXJlY3Rpb24gb2YgdGhlIHZvdGUuAQTMQSBwb2ludCB3YXMgcmVkaXJlY3RlZCBmcm9tIG9uZSBzdWJqZWN0IHRvIGFub3RoZXIuNEhvbm91ckNoYW5nZWQMARxzdWJqZWN0CAEkU3ViamVjdElkBJxUaGUgc3ViamVjdCB3aG9zZSBob25vdXIgc2NvcmUgY2hhbmdlZC4BJG9sZF92YWx1ZQEHARhIb25vdXIEjFRoZSBob25vdXIgdmFsdWUgYmVmb3JlIHRoZSB1cGRhdGUuASRuZXdfdmFsdWUBBwEYSG9ub3VyBIhUaGUgaG9ub3VyIHZhbHVlIGFmdGVyIHRoZSB1cGRhdGUuAgSoVGhlIGhvbm91ciBzY29yZSBvZiBhIHN1YmplY3QgaGFzIGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0AQcAAAULAAUHDIxpbmRpdl9wYWxsZXRfc3RvcmFnZV9pbml0aWFsaXphdGlvbhhwYWxsZXQURXZlbnQEBFQAAUQwQXNzZXRDcmVhdGVkAAAE0FRoZSBmb3JlaWduIGFzc2V0IHdhcyBjcmVhdGVkIGFuZCByZXNlcnZlcyB3ZXJlIHNldC5QWGNtRnVuZHNUcmFuc2ZlclNlbnQAAQSwQW4gWENNIGZ1bmRzIHRyYW5zZmVyIHdhcyBzZW50IHRvIEFzc2V0IEh1Yi5gWGNtRnVuZHNUcmFuc2ZlclRpbWVkT3V0AAIEvFRoZSBYQ00gdHJhbnNmZXIgdGltZWQgb3V0IGFuZCB3aWxsIGJlIHJldHJpZWQuNEZ1bmRzVmVyaWZpZWQAAwSUVHJhbnNmZXJyZWQgZnVuZHMgaGF2ZSBiZWVuIHZlcmlmaWVkLihQb3RzRnVuZGVkAAQEaEFsbCBwb3RzIGhhdmUgYmVlbiBmdW5kZWQuiFBlb3BsZUxpdGVBdHRlc3RhdGlvbkFsbG93YW5jZXNTZXQABQTEUGVvcGxlIExpdGUgYXR0ZXN0YXRpb24gYWxsb3dhbmNlcyBoYXZlIGJlZW4gc2V0LlxNb2JSdWxlUGF5b3V0c1NjaGVkdWxlZAAGBJhNb2IgUnVsZSBwYXlvdXQgc2NoZWR1bGUgaGFzIGJlZW4gc2V0LlRTY29yZVBheW91dHNTY2hlZHVsZWQABwSMU2NvcmUgcGF5b3V0IHNjaGVkdWxlIGhhcyBiZWVuIHNldC50T25Qb2xsSW5pdGlhbGl6YXRpb25Db21wbGV0ZWQACATIVGhlIG9uZS10aW1lIG9uX3BvbGwgaW5pdGlhbGl6YXRpb24gaGFzIGNvbXBsZXRlZC5kTWlncmF0aW9uUGVvcGxlUmVjb2duaXplZAAJBLxNaWdyYXRpb246IGluaXRpYWwgcGVvcGxlIGhhdmUgYmVlbiByZWNvZ25pemVkLmhNaWdyYXRpb25PbmJvYXJkaW5nU2l6ZVNldAAKBKBNaWdyYXRpb246IG9uYm9hcmRpbmcgc2l6ZSBoYXMgYmVlbiBzZXQueE1pZ3JhdGlvblByb29mT2ZJbmtJbml0aWFsaXplZAALBNBNaWdyYXRpb246IFByb29mLW9mLUluayBwYWxsZXQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXE1pZ3JhdGlvbkdhbWVzU2NoZWR1bGVkAAwElE1pZ3JhdGlvbjogZ2FtZXMgaGF2ZSBiZWVuIHNjaGVkdWxlZC5cTWlncmF0aW9uSW52aXRlc0dyYW50ZWQADQSUTWlncmF0aW9uOiBpbnZpdGVzIGhhdmUgYmVlbiBncmFudGVkLnxNaWdyYXRpb25SZWltYnVyc2VtZW50VmFsdWVzU2V0AA4E7E1pZ3JhdGlvbjogUHJvb2Ytb2YtSW5rIHJlaW1idXJzZW1lbnQgdmFsdWVzIGhhdmUgYmVlbiBzZXQuhE1pZ3JhdGlvbkF0dGVzdGF0aW9uQWxsb3dhbmNlc1NldAAPBPBNaWdyYXRpb246IFBlb3BsZSBMaXRlIGF0dGVzdGF0aW9uIGFsbG93YW5jZXMgaGF2ZSBiZWVuIHNldC5ITWlncmF0aW9uQ29tcGxldGVkABAEGQFNaWdyYXRpb24gaGFzIGNvbXBsZXRlZCBhbmQgb25fcG9sbCBpbml0aWFsaXphdGlvbiBoYXMgYmVlbiB0cmlnZ2VyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0CQcMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBRFdmVudAQEVAABIDhVcGdyYWRlU3RhcnRlZAQBKG1pZ3JhdGlvbnM4AQx1MzIQ0FRoZSBudW1iZXIgb2YgbWlncmF0aW9ucyB0aGF0IHRoaXMgdXBncmFkZSBjb250YWlucy4AQQFUaGlzIGNhbiBiZSB1c2VkIHRvIGRlc2lnbiBhIHByb2dyZXNzIGluZGljYXRvciBpbiBjb21iaW5hdGlvbiB3aXRoIGNvdW50aW5nIHRoZcxgTWlncmF0aW9uQ29tcGxldGVkYCBhbmQgYE1pZ3JhdGlvblNraXBwZWRgIGV2ZW50cy4ADGhBIFJ1bnRpbWUgdXBncmFkZSBzdGFydGVkLgD4SXRzIGVuZCBpcyBpbmRpY2F0ZWQgYnkgYFVwZ3JhZGVDb21wbGV0ZWRgIG9yIGBVcGdyYWRlRmFpbGVkYC5AVXBncmFkZUNvbXBsZXRlZAABDJhUaGUgY3VycmVudCBydW50aW1lIHVwZ3JhZGUgY29tcGxldGVkLgAdAVRoaXMgaW1wbGllcyB0aGF0IGFsbCBvZiBpdHMgbWlncmF0aW9ucyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGFzIHdlbGwuNFVwZ3JhZGVGYWlsZWQAAgxcUnVudGltZSB1cGdyYWRlIGZhaWxlZC4A6FRoaXMgaXMgdmVyeSBiYWQgYW5kIHdpbGwgcmVxdWlyZSBnb3Zlcm5hbmNlIGludGVydmVudGlvbi5ATWlncmF0aW9uU2tpcHBlZAQBFGluZGV4OAEMdTMyBCkBVGhlIGluZGV4IG9mIHRoZSBza2lwcGVkIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4DBAkBQSBtaWdyYXRpb24gd2FzIHNraXBwZWQgc2luY2UgaXQgd2FzIGFscmVhZHkgZXhlY3V0ZWQgaW4gdGhlIHBhc3QuRE1pZ3JhdGlvbkFkdmFuY2VkCAEUaW5kZXg4AQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2s4AURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4EBFxBIG1pZ3JhdGlvbiBwcm9ncmVzc2VkLkhNaWdyYXRpb25Db21wbGV0ZWQIARRpbmRleDgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vazgBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgUEWEEgTWlncmF0aW9uIGNvbXBsZXRlZC48TWlncmF0aW9uRmFpbGVkCAEUaW5kZXg4AQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2s4AURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4GDExBIE1pZ3JhdGlvbiBmYWlsZWQuAE0BVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHdob2xlIHVwZ3JhZGUgZmFpbGVkIGFuZCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyByZXF1aXJlZC48SGlzdG9yaWNDbGVhcmVkBAEsbmV4dF9jdXJzb3I1BQE8T3B0aW9uPFZlYzx1OD4+BOhTaG91bGQgYmUgcGFzc2VkIHRvIGBjbGVhcl9oaXN0b3JpY2AgaW4gYSBzdWNjZXNzaXZlIGNhbGwuBwTIVGhlIHNldCBvZiBoaXN0b3JpY2FsIG1pZ3JhdGlvbnMgaGFzIGJlZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQNBwgwZnJhbWVfc3lzdGVtFFBoYXNlAAEMOEFwcGx5RXh0cmluc2ljBAA4AQx1MzIAAAAwRmluYWxpemF0aW9uAAEAOEluaXRpYWxpemF0aW9uAAIAABEHAAACPAAVBwAAAhkHABkHAAAECDg4AB0HCDBmcmFtZV9zeXN0ZW1YTGFzdFJ1bnRpbWVVcGdyYWRlSW5mbwAACAEwc3BlY192ZXJzaW9uYAFMY29kZWM6OkNvbXBhY3Q8dTMyPgABJHNwZWNfbmFtZSEHAURDb3c8J3N0YXRpYywgc3RyPgAAIQcEDENvdwQEVAElBwAEACUHAAAAJQcAAAUCACkHCDBmcmFtZV9zeXN0ZW1gQ29kZVVwZ3JhZGVBdXRob3JpemF0aW9uBARUAAAIASRjb2RlX2hhc2g8ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbsgBEGJvb2wAAC0HDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9ja9UBARhXZWlnaHQAASRtYXhfYmxvY2vVAQEYV2VpZ2h0AAEkcGVyX2NsYXNzMQcBhFBlckRpc3BhdGNoQ2xhc3M8V2VpZ2h0c1BlckNsYXNzPgAAMQcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAE1BwAMARhub3JtYWw1BwEEVAABLG9wZXJhdGlvbmFsNQcBBFQAASRtYW5kYXRvcnk1BwEEVAAANQcMMGZyYW1lX3N5c3RlbRhsaW1pdHM8V2VpZ2h0c1BlckNsYXNzAAAQAThiYXNlX2V4dHJpbnNpY9UBARhXZWlnaHQAATRtYXhfZXh0cmluc2ljpQIBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFspQIBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWSlAgE4T3B0aW9uPFdlaWdodD4AADkHDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAIAQxtYXg9BwFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AAE8bWF4X2hlYWRlcl9zaXplCQMBLE9wdGlvbjx1MzI+AAA9Bww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUATgADAEYbm9ybWFsOAEEVAABLG9wZXJhdGlvbmFsOAEEVAABJG1hbmRhdG9yeTgBBFQAAEEHCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZCgBDHU2NAABFHdyaXRlKAEMdTY0AABFBwgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lIQcBRENvdzwnc3RhdGljLCBzdHI+AAEkaW1wbF9uYW1lIQcBRENvdzwnc3RhdGljLCBzdHI+AAFEYXV0aG9yaW5nX3ZlcnNpb244AQx1MzIAATBzcGVjX3ZlcnNpb244AQx1MzIAATBpbXBsX3ZlcnNpb244AQx1MzIAARBhcGlzSQcBHEFwaXNWZWMAAUx0cmFuc2FjdGlvbl92ZXJzaW9uOAEMdTMyAAE4c3lzdGVtX3ZlcnNpb24MAQh1OAAASQcEDENvdwQEVAFNBwAEAE0HAAAATQcAAAJRBwBRBwAABAi9ATgAVQcMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0WQcMKHNwX3J1bnRpbWUYdHJhaXRzLEJsYWtlVHdvMjU2AAAAAF0HEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2sUQmxvY2sIGEhlYWRlcgFcJEV4dHJpbnNpYwFhBwAIARhoZWFkZXJcARhIZWFkZXIAAShleHRyaW5zaWNzcQcBOFZlYzxFeHRyaW5zaWM+AABhBxAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAQAQQ2FsbAEgJFNpZ25hdHVyZQHZAxRFeHRyYQFlBwAEABgAAABlBwh0Y3VtdWx1c19wYWxsZXRfd2VpZ2h0X3JlY2xhaW1QU3RvcmFnZVdlaWdodFJlY2xhaW0IBFQABFMBaQcABABpBwEEUwAAaQcAAAQobQe9BcEFxQXJBc0F0QXZBd0F4QUAbQcAAAQwOQVBBUUFUQVdBWkFdQWBBY0FoQWtBbkFAHEHAAACYQcAdQcMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0wYmxvY2tfd2VpZ2h0PEJsb2NrV2VpZ2h0TW9kZQQEVAABDCBGdWxsQ29yZQQBHGNvbnRleHQ4AURCbG9ja051bWJlckZvcjxUPgAAAERQb3RlbnRpYWxGdWxsQ29yZQwBHGNvbnRleHQ4AURCbG9ja051bWJlckZvcjxUPgABXGZpcnN0X3RyYW5zYWN0aW9uX2luZGV4CQMBLE9wdGlvbjx1MzI+AAE0dGFyZ2V0X3dlaWdodNUBARhXZWlnaHQAAQA4RnJhY3Rpb25PZkNvcmUIARxjb250ZXh0OAFEQmxvY2tOdW1iZXJGb3I8VD4AAVxmaXJzdF90cmFuc2FjdGlvbl9pbmRleAkDASxPcHRpb248dTMyPgACAAB5BwAABi0DAH0HAAACgQcAgQcMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IdW5pbmNsdWRlZF9zZWdtZW50IEFuY2VzdG9yBARIATwADAE4dXNlZF9iYW5kd2lkdGiFBwE0VXNlZEJhbmR3aWR0aAABOHBhcmFfaGVhZF9oYXNomQcBJE9wdGlvbjxIPgABYGNvbnN1bWVkX2dvX2FoZWFkX3NpZ25hbJ0HAYxPcHRpb248cmVsYXlfY2hhaW46OlVwZ3JhZGVHb0FoZWFkPgAAhQcMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IdW5pbmNsdWRlZF9zZWdtZW50NFVzZWRCYW5kd2lkdGgAAAwBNHVtcF9tc2dfY291bnQ4AQx1MzIAATx1bXBfdG90YWxfYnl0ZXM4AQx1MzIAATRocm1wX291dGdvaW5niQcBjEJUcmVlTWFwPFBhcmFJZCwgSHJtcENoYW5uZWxVcGRhdGU+AACJBwQgQlRyZWVNYXAIBEsBnARWAY0HAAQAkQcAAACNBwx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnRESHJtcENoYW5uZWxVcGRhdGUAAAgBJG1zZ19jb3VudDgBDHUzMgABLHRvdGFsX2J5dGVzOAEMdTMyAACRBwAAApUHAJUHAAAECJyNBwCZBwQYT3B0aW9uBARUATwBCBBOb25lAAAAEFNvbWUEADwAAAEAAJ0HBBhPcHRpb24EBFQBoQcBCBBOb25lAAAAEFNvbWUEAKEHAAABAAChBwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OThVcGdyYWRlR29BaGVhZAABCBRBYm9ydAAAABxHb0FoZWFkAAEAAKUHDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDhTZWdtZW50VHJhY2tlcgQESAE8AAwBOHVzZWRfYmFuZHdpZHRohQcBNFVzZWRCYW5kd2lkdGgAAThocm1wX3dhdGVybWFyawkDAYBPcHRpb248cmVsYXlfY2hhaW46OkJsb2NrTnVtYmVyPgABYGNvbnN1bWVkX2dvX2FoZWFkX3NpZ25hbJ0HAYxPcHRpb248cmVsYXlfY2hhaW46OlVwZ3JhZGVHb0FoZWFkPgAAqQcEGE9wdGlvbgQEVAGtBwEIEE5vbmUAAAAQU29tZQQArQcAAAEAAK0HDExwb2xrYWRvdF9wcmltaXRpdmVzCHY5SFVwZ3JhZGVSZXN0cmljdGlvbgABBBxQcmVzZW50AAAAALEHDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtUHJlbGF5X3N0YXRlX3NuYXBzaG90WE1lc3NhZ2luZ1N0YXRlU25hcHNob3QAABABMGRtcV9tcWNfaGVhZDwBRHJlbGF5X2NoYWluOjpIYXNoAAGccmVsYXlfZGlzcGF0Y2hfcXVldWVfcmVtYWluaW5nX2NhcGFjaXR5tQcBjFJlbGF5RGlzcGF0Y2hRdWV1ZVJlbWFpbmluZ0NhcGFjaXR5AAFAaW5ncmVzc19jaGFubmVsc7kHAYhWZWM8KFBhcmFJZCwgQWJyaWRnZWRIcm1wQ2hhbm5lbCk+AAE8ZWdyZXNzX2NoYW5uZWxzuQcBiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AALUHDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtUHJlbGF5X3N0YXRlX3NuYXBzaG90jFJlbGF5RGlzcGF0Y2hRdWV1ZVJlbWFpbmluZ0NhcGFjaXR5AAAIATxyZW1haW5pbmdfY291bnQ4AQx1MzIAAThyZW1haW5pbmdfc2l6ZTgBDHUzMgAAuQcAAAK9BwC9BwAABAicwQcAwQcMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlMQWJyaWRnZWRIcm1wQ2hhbm5lbAAAGAEwbWF4X2NhcGFjaXR5OAEMdTMyAAE4bWF4X3RvdGFsX3NpemU4AQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplOAEMdTMyAAEkbXNnX2NvdW50OAEMdTMyAAEodG90YWxfc2l6ZTgBDHUzMgABIG1xY19oZWFkmQcBME9wdGlvbjxIYXNoPgAAxQcMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjlkQWJyaWRnZWRIb3N0Q29uZmlndXJhdGlvbgAAKAE0bWF4X2NvZGVfc2l6ZTgBDHUzMgABSG1heF9oZWFkX2RhdGFfc2l6ZTgBDHUzMgABWG1heF91cHdhcmRfcXVldWVfY291bnQ4AQx1MzIAAVRtYXhfdXB3YXJkX3F1ZXVlX3NpemU4AQx1MzIAAVxtYXhfdXB3YXJkX21lc3NhZ2Vfc2l6ZTgBDHUzMgABkG1heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZTgBDHUzMgABiGhybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGU4AQx1MzIAAWx2YWxpZGF0aW9uX3VwZ3JhZGVfY29vbGRvd244ASxCbG9ja051bWJlcgABYHZhbGlkYXRpb25fdXBncmFkZV9kZWxheTgBLEJsb2NrTnVtYmVyAAFQYXN5bmNfYmFja2luZ19wYXJhbXPJBwFIQXN5bmNCYWNraW5nUGFyYW1zAADJBxBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OTRhc3luY19iYWNraW5nSEFzeW5jQmFja2luZ1BhcmFtcwAACAFMbWF4X2NhbmRpZGF0ZV9kZXB0aDgBDHUzMgABUGFsbG93ZWRfYW5jZXN0cnlfbGVuOAEMdTMyAADNBwiUY3VtdWx1c19wcmltaXRpdmVzX3BhcmFjaGFpbl9pbmhlcmVudERNZXNzYWdlUXVldWVDaGFpbgAABAA8ASRSZWxheUhhc2gAANEHBCBCVHJlZU1hcAgESwGcBFYBzQcABADVBwAAANUHAAAC2QcA2QcAAAQInM0HAN0HDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudEBJbmJvdW5kTWVzc2FnZUlkAAAIARxzZW50X2F0OAEsQmxvY2tOdW1iZXIAASxyZXZlcnNlX2lkeDgBDHUzMgAA4QcAAALlBwDlBwhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAZwACAEkcmVjaXBpZW50nAEISWQAARBkYXRhGAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAA6QcIfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0sUG9WTWVzc2FnZXMAABgBaHJlbGF5X3N0b3JhZ2Vfcm9vdF9vcl9oYXNoPAFEcmVsYXlfY2hhaW46Okhhc2gAATRjb3JlX3NlbGVjdG9yDAEIdTgAATBidW5kbGVfaW5kZXgMAQh1OAABNHVtcF9tc2dfY291bnQ4AQx1MzIAAUxocm1wX291dGJvdW5kX2NvdW50OAEMdTMyAAFgaHJtcF9vdXRib3VuZF9yZWNpcGllbnRz7QcBLFZlYzxQYXJhSWQ+AADtBwAAApwA8QcMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEYTE92ZXJsYXBwaW5nVXBncmFkZXMAAAQZAUF0dGVtcHQgdG8gdXBncmFkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdoaWxlIGV4aXN0aW5nIHVwZ3JhZGUgcGVuZGluZy5QUHJvaGliaXRlZEJ5UG9sa2Fkb3QAAQRNAVBvbGthZG90IGN1cnJlbnRseSBwcm9oaWJpdHMgdGhpcyBwYXJhY2hhaW4gZnJvbSB1cGdyYWRpbmcgaXRzIHZhbGlkYXRpb24gZnVuY3Rpb24uGFRvb0JpZwACCEUBVGhlIHN1cHBsaWVkIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGNvbXBpbGVkIGludG8gYSBibG9iIGxhcmdlciB0aGFuIFBvbGthZG90IGlzPHdpbGxpbmcgdG8gcnVuLmhWYWxpZGF0aW9uRGF0YU5vdEF2YWlsYWJsZQADBB0BVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWxpZGF0aW9uIGRhdGEgZGlkIG5vdCBydW4gdGhpcyBibG9jay50SG9zdENvbmZpZ3VyYXRpb25Ob3RBdmFpbGFibGUABAQpAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgaG9zdCBjb25maWd1cmF0aW9uIGRpZCBub3QgcnVuIHRoaXMgYmxvY2suME5vdFNjaGVkdWxlZAAFBNhObyB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVwZ3JhZGUgaXMgY3VycmVudGx5IHNjaGVkdWxlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu9QcMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAH5BwRTAAAEAAEIARhWZWM8VD4AAPkHDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQmFsYW5jZUxvY2sEHEJhbGFuY2UBxAAMAQhpZL0BAThMb2NrSWRlbnRpZmllcgABGGFtb3VudMQBHEJhbGFuY2UAARxyZWFzb25z/QcBHFJlYXNvbnMAAP0HDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMcUmVhc29ucwABDAxGZWUAAAAQTWlzYwABAAxBbGwAAgAAAQgAAAL5BwAFCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQkIBFMAAAQADQgBGFZlYzxUPgAACQgMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxSZXNlcnZlRGF0YQhEUmVzZXJ2ZUlkZW50aWZpZXIBvQEcQmFsYW5jZQHEAAgBCGlkvQEBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50xAEcQmFsYW5jZQAADQgAAAIJCAARCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARUIBFMAAAQAGQgBGFZlYzxUPgAAFQgUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAE1BhxCYWxhbmNlAcQACAEIaWQ1BgEISWQAARhhbW91bnTEARxCYWxhbmNlAAAZCAAAAhUIAB0IDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBIQgEUwAABAAlCAEYVmVjPFQ+AAAhCBQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkARAcQmFsYW5jZQHEAAgBCGlkEAEISWQAARhhbW91bnTEARxCYWxhbmNlAAAlCAAAAiEIACkIDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tCAhocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQgUmVsZWFzZXMAAQgkVjFBbmNpZW50AAAACFYyAAEAADEIEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxxzdG9yYWdlGE5vRHJvcAQEVAE1CAAEADUIAQRUAAA1CBg0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zIGZ1bmdpYmxlJGltYmFsYW5jZSRJbWJhbGFuY2UMBEIBxBhPbkRyb3AAOE9wcG9zaXRlT25Ecm9wAAAEARhhbW91bnTEAQRCAAA5CAx8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbhhwYWxsZXQUVXNhZ2UIHEJhbGFuY2UBxCxCbG9ja051bWJlcgE4AAgBEHVzZWTEARxCYWxhbmNlAAEgYXRfYmxvY2s4ASxCbG9ja051bWJlcgAAPQgMfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb24YcGFsbGV0FEVycm9yBARUAAEIHE5vVXNhZ2UAAASAVGhlIG9yaWdpbiBoYXMgbm8gdXNhZ2UgdHJhY2tlZC4cTm90WmVybwABBFhUaGUgdXNhZ2UgaXMgbm90IHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkEIDDRwYWxsZXRfYXNzZXRzFHR5cGVzMEFzc2V0RGV0YWlscwwcQmFsYW5jZQHEJEFjY291bnRJZAEEOERlcG9zaXRCYWxhbmNlAcQAMAEUb3duZXIEASRBY2NvdW50SWQAARhpc3N1ZXIEASRBY2NvdW50SWQAARRhZG1pbgQBJEFjY291bnRJZAABHGZyZWV6ZXIEASRBY2NvdW50SWQAARhzdXBwbHnEARxCYWxhbmNlAAEcZGVwb3NpdMQBOERlcG9zaXRCYWxhbmNlAAEsbWluX2JhbGFuY2XEARxCYWxhbmNlAAE0aXNfc3VmZmljaWVudMgBEGJvb2wAASBhY2NvdW50czgBDHUzMgABLHN1ZmZpY2llbnRzOAEMdTMyAAEkYXBwcm92YWxzOAEMdTMyAAEYc3RhdHVzRQgBLEFzc2V0U3RhdHVzAABFCAw0cGFsbGV0X2Fzc2V0cxR0eXBlcyxBc3NldFN0YXR1cwABDBBMaXZlAAAAGEZyb3plbgABAChEZXN0cm95aW5nAAIAAEkIAAAECOAEAE0IDDRwYWxsZXRfYXNzZXRzFHR5cGVzMEFzc2V0QWNjb3VudBAcQmFsYW5jZQHEOERlcG9zaXRCYWxhbmNlAcQURXh0cmEBECRBY2NvdW50SWQBBAAQARxiYWxhbmNlxAEcQmFsYW5jZQABGHN0YXR1c1EIATRBY2NvdW50U3RhdHVzAAEYcmVhc29uVQgBqEV4aXN0ZW5jZVJlYXNvbjxEZXBvc2l0QmFsYW5jZSwgQWNjb3VudElkPgABFGV4dHJhEAEURXh0cmEAAFEIDDRwYWxsZXRfYXNzZXRzFHR5cGVzNEFjY291bnRTdGF0dXMAAQwYTGlxdWlkAAAAGEZyb3plbgABABxCbG9ja2VkAAIAAFUIDDRwYWxsZXRfYXNzZXRzFHR5cGVzPEV4aXN0ZW5jZVJlYXNvbggcQmFsYW5jZQHEJEFjY291bnRJZAEEARQgQ29uc3VtZXIAAAAoU3VmZmljaWVudAABACxEZXBvc2l0SGVsZAQAxAEcQmFsYW5jZQACADxEZXBvc2l0UmVmdW5kZWQAAwAsRGVwb3NpdEZyb20IAAQBJEFjY291bnRJZAAAxAEcQmFsYW5jZQAEAABZCAAABAzgBAQAXQgMNHBhbGxldF9hc3NldHMUdHlwZXMgQXBwcm92YWwIHEJhbGFuY2UBxDhEZXBvc2l0QmFsYW5jZQHEAAgBGGFtb3VudMQBHEJhbGFuY2UAARxkZXBvc2l0xAE4RGVwb3NpdEJhbGFuY2UAAGEIDDRwYWxsZXRfYXNzZXRzFHR5cGVzNEFzc2V0TWV0YWRhdGEIOERlcG9zaXRCYWxhbmNlAcQ0Qm91bmRlZFN0cmluZwFlCAAUARxkZXBvc2l0xAE4RGVwb3NpdEJhbGFuY2UAARBuYW1lZQgBNEJvdW5kZWRTdHJpbmcAARhzeW1ib2xlCAE0Qm91bmRlZFN0cmluZwABIGRlY2ltYWxzDAEIdTgAASRpc19mcm96ZW7IARBib29sAABlCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAGkIDDRwYWxsZXRfYXNzZXRzGHBhbGxldBRFcnJvcggEVAAESQABYChCYWxhbmNlTG93AAAEFQFBY2NvdW50IGJhbGFuY2UgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRyYW5zZmVyIGFtb3VudC4kTm9BY2NvdW50AAEEkFRoZSBhY2NvdW50IHRvIGFsdGVyIGRvZXMgbm90IGV4aXN0LjBOb1Blcm1pc3Npb24AAgToVGhlIHNpZ25pbmcgYWNjb3VudCBoYXMgbm8gcGVybWlzc2lvbiB0byBkbyB0aGUgb3BlcmF0aW9uLhxVbmtub3duAAMEeFRoZSBnaXZlbiBhc3NldCBJRCBpcyB1bmtub3duLhhGcm96ZW4ABAR0VGhlIG9yaWdpbiBhY2NvdW50IGlzIGZyb3plbi4USW5Vc2UABQR4VGhlIGFzc2V0IElEIGlzIGFscmVhZHkgdGFrZW4uKEJhZFdpdG5lc3MABgRsSW52YWxpZCB3aXRuZXNzIGRhdGEgZ2l2ZW4uOE1pbkJhbGFuY2VaZXJvAAcEjE1pbmltdW0gYmFsYW5jZSBzaG91bGQgYmUgbm9uLXplcm8uTFVuYXZhaWxhYmxlQ29uc3VtZXIACAxZAVVuYWJsZSB0byBpbmNyZW1lbnQgdGhlIGNvbnN1bWVyIHJlZmVyZW5jZSBjb3VudGVycyBvbiB0aGUgYWNjb3VudC4gRWl0aGVyIG5vIHByb3ZpZGVyTQFyZWZlcmVuY2UgZXhpc3RzIHRvIGFsbG93IGEgbm9uLXplcm8gYmFsYW5jZSBvZiBhIG5vbi1zZWxmLXN1ZmZpY2llbnQgYXNzZXQsIG9yIG9uZfBmZXdlciB0aGVuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zdW1lcnMgaGFzIGJlZW4gcmVhY2hlZC4sQmFkTWV0YWRhdGEACQRcSW52YWxpZCBtZXRhZGF0YSBnaXZlbi4oVW5hcHByb3ZlZAAKBMRObyBhcHByb3ZhbCBleGlzdHMgdGhhdCB3b3VsZCBhbGxvdyB0aGUgdHJhbnNmZXIuIFdvdWxkRGllAAsENQFUaGUgc291cmNlIGFjY291bnQgd291bGQgbm90IHN1cnZpdmUgdGhlIHRyYW5zZmVyIGFuZCBpdCBuZWVkcyB0byBzdGF5IGFsaXZlLjRBbHJlYWR5RXhpc3RzAAwEhFRoZSBhc3NldC1hY2NvdW50IGFscmVhZHkgZXhpc3RzLiROb0RlcG9zaXQADQTUVGhlIGFzc2V0LWFjY291bnQgZG9lc24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgZGVwb3NpdC4kV291bGRCdXJuAA4ExFRoZSBvcGVyYXRpb24gd291bGQgcmVzdWx0IGluIGZ1bmRzIGJlaW5nIGJ1cm5lZC4kTGl2ZUFzc2V0AA8IWQFUaGUgYXNzZXQgaXMgYSBsaXZlIGFzc2V0IGFuZCBpcyBhY3RpdmVseSBiZWluZyB1c2VkLiBVc3VhbGx5IGVtaXQgZm9yIG9wZXJhdGlvbnMgc3VjaB0BYXMgYHN0YXJ0X2Rlc3Ryb3lgIHdoaWNoIHJlcXVpcmUgdGhlIGFzc2V0IHRvIGJlIGluIGEgZGVzdHJveWluZyBzdGF0ZS4wQXNzZXROb3RMaXZlABAEyFRoZSBhc3NldCBpcyBub3QgbGl2ZSwgYW5kIGxpa2VseSBiZWluZyBkZXN0cm95ZWQuPEluY29ycmVjdFN0YXR1cwARBLBUaGUgYXNzZXQgc3RhdHVzIGlzIG5vdCB0aGUgZXhwZWN0ZWQgc3RhdHVzLiROb3RGcm96ZW4AEgTYVGhlIGFzc2V0IHNob3VsZCBiZSBmcm96ZW4gYmVmb3JlIHRoZSBnaXZlbiBvcGVyYXRpb24uOENhbGxiYWNrRmFpbGVkABMEhENhbGxiYWNrIGFjdGlvbiByZXN1bHRlZCBpbiBlcnJvcihCYWRBc3NldElkABQEyFRoZSBhc3NldCBJRCBtdXN0IGJlIGVxdWFsIHRvIHRoZSBbYE5leHRBc3NldElkYF0uPENvbnRhaW5zRnJlZXplcwAVBE0BVGhlIGFzc2V0IGNhbm5vdCBiZSBkZXN0cm95ZWQgYmVjYXVzZSBzb21lIGFjY291bnRzIGZvciB0aGlzIGFzc2V0IGNvbnRhaW4gZnJlZXplcy40Q29udGFpbnNIb2xkcwAWBEUBVGhlIGFzc2V0IGNhbm5vdCBiZSBkZXN0cm95ZWQgYmVjYXVzZSBzb21lIGFjY291bnRzIGZvciB0aGlzIGFzc2V0IGNvbnRhaW4gaG9sZHMuPFRvb01hbnlSZXNlcnZlcwAXBIBUcmllZCBzZXR0aW5nIHRvbyBtYW55IHJlc2VydmVzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5tCAQYT3B0aW9uBARUAUEIAQgQTm9uZQAAABBTb21lBABBCAAAAQAAcQgEGE9wdGlvbgQEVAHEAQgQTm9uZQAAABBTb21lBADEAAABAAB1CAQYT3B0aW9uBARUAWEIAQgQTm9uZQAAABBTb21lBABhCAAAAQAAeQgMUHBhbGxldF9hc3NldHNfaG9sZGVyGHBhbGxldBRFcnJvcggEVAAESQABBDBUb29NYW55SG9sZHMAAAQxAU51bWJlciBvZiBob2xkcyBvbiBhbiBhY2NvdW50IHdvdWxkIGV4Y2VlZCB0aGUgY291bnQgb2YgYFJ1bnRpbWVIb2xkUmVhc29uYC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQufQgMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBRFcnJvcgQEVAABDEBVbmtub3duQXNzZXRLaW5kAAAEeFRoZSBnaXZlbiBhc3NldCBJRCBpcyB1bmtub3duLjRBbHJlYWR5RXhpc3RzAAEEUQFUaGUgZ2l2ZW4gYXNzZXQgSUQgYWxyZWFkeSBoYXMgYW4gYXNzaWduZWQgY29udmVyc2lvbiByYXRlIGFuZCBjYW5ub3QgYmUgcmUtY3JlYXRlZC4gT3ZlcmZsb3cAAgTMT3ZlcmZsb3cgb2N1cnJlZCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBpbnZlcnNlIHJhdGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LoEIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAMwBGFZlYzxUPgAAhQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGJCARTAAAEAI0IARhWZWM8VD4AAIkIDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldDRDYW5kaWRhdGVJbmZvCCRBY2NvdW50SWQBBBxCYWxhbmNlAcQACAEMd2hvBAEkQWNjb3VudElkAAEcZGVwb3NpdMQBHEJhbGFuY2UAAI0IAAACiQgAkQgINGZyYW1lX3N1cHBvcnQgUGFsbGV0SWQAAAQAvQEBHFt1ODsgOF0AAJUIDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFcnJvcgQEVAABRERUb29NYW55Q2FuZGlkYXRlcwAABIxUaGUgcGFsbGV0IGhhcyB0b28gbWFueSBjYW5kaWRhdGVzLlxUb29GZXdFbGlnaWJsZUNvbGxhdG9ycwABBKxMZWF2aW5nIHdvdWxkIHJlc3VsdCBpbiB0b28gZmV3IGNhbmRpZGF0ZXMuQEFscmVhZHlDYW5kaWRhdGUAAgR8QWNjb3VudCBpcyBhbHJlYWR5IGEgY2FuZGlkYXRlLjBOb3RDYW5kaWRhdGUAAwRsQWNjb3VudCBpcyBub3QgYSBjYW5kaWRhdGUuUFRvb01hbnlJbnZ1bG5lcmFibGVzAAQEhFRoZXJlIGFyZSB0b28gbWFueSBJbnZ1bG5lcmFibGVzLkxBbHJlYWR5SW52dWxuZXJhYmxlAAUEjEFjY291bnQgaXMgYWxyZWFkeSBhbiBJbnZ1bG5lcmFibGUuPE5vdEludnVsbmVyYWJsZQAGBHxBY2NvdW50IGlzIG5vdCBhbiBJbnZ1bG5lcmFibGUuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAcEnEFjY291bnQgaGFzIG5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElELlhWYWxpZGF0b3JOb3RSZWdpc3RlcmVkAAgEjFZhbGlkYXRvciBJRCBpcyBub3QgeWV0IHJlZ2lzdGVyZWQubEluc2VydFRvQ2FuZGlkYXRlTGlzdEZhaWxlZAAJBJxDb3VsZCBub3QgaW5zZXJ0IGluIHRoZSBjYW5kaWRhdGUgbGlzdC50UmVtb3ZlRnJvbUNhbmRpZGF0ZUxpc3RGYWlsZWQACgSkQ291bGQgbm90IHJlbW92ZSBmcm9tIHRoZSBjYW5kaWRhdGUgbGlzdC40RGVwb3NpdFRvb0xvdwALBPROZXcgZGVwb3NpdCBhbW91bnQgd291bGQgYmUgYmVsb3cgdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQuZFVwZGF0ZUNhbmRpZGF0ZUxpc3RGYWlsZWQADASQQ291bGQgbm90IHVwZGF0ZSB0aGUgY2FuZGlkYXRlIGxpc3QuQEluc3VmZmljaWVudEJvbmQADQQpAURlcG9zaXQgYW1vdW50IGlzIHRvbyBsb3cgdG8gdGFrZSB0aGUgdGFyZ2V0J3Mgc2xvdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QuUFRhcmdldElzTm90Q2FuZGlkYXRlAA4ELQFUaGUgdGFyZ2V0IGFjY291bnQgdG8gYmUgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGlzIG5vdCBhIGNhbmRpZGF0ZS5ASWRlbnRpY2FsRGVwb3NpdAAPBA0BVGhlIHVwZGF0ZWQgZGVwb3NpdCBhbW91bnQgaXMgZXF1YWwgdG8gdGhlIGFtb3VudCBhbHJlYWR5IHJlc2VydmVkLkBJbnZhbGlkVW5yZXNlcnZlABAEPQFDYW5ub3QgbG93ZXIgY2FuZGlkYWN5IGJvbmQgd2hpbGUgb2NjdXB5aW5nIGEgZnV0dXJlIGNvbGxhdG9yIHNsb3QgaW4gdGhlIGxpc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LpkIAAACnQgAnQgAAAQIBDkBAKEIAAACpQgApQgAAAQIOKkIAKkIDChzcF9zdGFraW5nHG9mZmVuY2U8T2ZmZW5jZVNldmVyaXR5AAAEAK0IARxQZXJiaWxsAACtCAw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmJpbGwAAAQAOAEMdTMyAACxCAAABAi1CBgAtQgMHHNwX2NvcmUYY3J5cHRvJEtleVR5cGVJZAAABABwARxbdTg7IDRdAAC5CAw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEVycm9yBARUAAEUMEludmFsaWRQcm9vZgAABGBJbnZhbGlkIG93bmVyc2hpcCBwcm9vZi5cTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQAAQScTm8gYXNzb2NpYXRlZCB2YWxpZGF0b3IgSUQgZm9yIGFjY291bnQuNER1cGxpY2F0ZWRLZXkAAgRkUmVnaXN0ZXJlZCBkdXBsaWNhdGUga2V5LhhOb0tleXMAAwSkTm8ga2V5cyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWNjb3VudC4kTm9BY2NvdW50AAQEGQFLZXkgc2V0dGluZyBhY2NvdW50IGlzIG5vdCBsaXZlLCBzbyBpdCdzIGltcG9zc2libGUgdG8gYXNzb2NpYXRlIGtleXMuBHRFcnJvciBmb3IgdGhlIHNlc3Npb24gcGFsbGV0Lr0IDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQEEUwAABADBCAEYVmVjPFQ+AADBCAAAAj0BAMUICEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAoAQx1NjQAAMkIAAAECMUIOADNCAxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBnARTAAAEANEIASxCVHJlZVNldDxUPgAA0QgEIEJUcmVlU2V0BARUAZwABADtBwAAANUIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB2QgEUwAABADlCAEYVmVjPFQ+AADZCAhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZVhPdXRib3VuZENoYW5uZWxEZXRhaWxzAAAYASRyZWNpcGllbnScARhQYXJhSWQAARRzdGF0Zd0IATRPdXRib3VuZFN0YXRlAAE0c2lnbmFsc19leGlzdMgBEGJvb2wAASxmaXJzdF9pbmRleC0DAQx1MTYAAShsYXN0X2luZGV4LQMBDHUxNgABFGZsYWdz4QgBUE91dGJvdW5kQ2hhbm5lbEZsYWdzAADdCAhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTRPdXRib3VuZFN0YXRlAAEICE9rAAAAJFN1c3BlbmRlZAABAADhCAhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZVBPdXRib3VuZENoYW5uZWxGbGFncwAABAEQYml0czgBDHUzMgAA5QgAAALZCADpCAAABAicLQMA7QgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADxCAhkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTxRdWV1ZUNvbmZpZ0RhdGEAAAwBRHN1c3BlbmRfdGhyZXNob2xkOAEMdTMyAAE4ZHJvcF90aHJlc2hvbGQ4AQx1MzIAAUByZXN1bWVfdGhyZXNob2xkOAEMdTMyAAD1CAxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXJyb3IEBFQAARQ4QmFkUXVldWVDb25maWcAAAQRAVNldHRpbmcgdGhlIHF1ZXVlIGNvbmZpZyBmYWlsZWQgc2luY2Ugb25lIG9mIGl0cyB2YWx1ZXMgd2FzIGludmFsaWQuQEFscmVhZHlTdXNwZW5kZWQAAQSMVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHN1c3BlbmRlZC44QWxyZWFkeVJlc3VtZWQAAgSEVGhlIGV4ZWN1dGlvbiBpcyBhbHJlYWR5IHJlc3VtZWQudFRvb01hbnlBY3RpdmVPdXRib3VuZENoYW5uZWxzAAMEsFRoZXJlIGFyZSB0b28gbWFueSBhY3RpdmUgb3V0Ym91bmQgY2hhbm5lbHMuGFRvb0JpZwAEBFxUaGUgbWVzc2FnZSBpcyB0b28gYmlnLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC75CAwocGFsbGV0X3hjbRhwYWxsZXQsUXVlcnlTdGF0dXMELEJsb2NrTnVtYmVyATgBDBxQZW5kaW5nEAEkcmVzcG9uZGVySQEBRFZlcnNpb25lZExvY2F0aW9uAAFMbWF5YmVfbWF0Y2hfcXVlcmllcv0IAWRPcHRpb248VmVyc2lvbmVkTG9jYXRpb24+AAEwbWF5YmVfbm90aWZ5AQkBQE9wdGlvbjwodTgsIHU4KT4AARx0aW1lb3V0OAEsQmxvY2tOdW1iZXIAAAA8VmVyc2lvbk5vdGlmaWVyCAEYb3JpZ2luSQEBRFZlcnNpb25lZExvY2F0aW9uAAEkaXNfYWN0aXZlyAEQYm9vbAABABRSZWFkeQgBIHJlc3BvbnNlCQkBRFZlcnNpb25lZFJlc3BvbnNlAAEIYXQ4ASxCbG9ja051bWJlcgACAAD9CAQYT3B0aW9uBARUAUkBAQgQTm9uZQAAABBTb21lBABJAQAAAQAAAQkEGE9wdGlvbgQEVAEFCQEIEE5vbmUAAAAQU29tZQQABQkAAAEAAAUJAAAECAwMAAkJCAx4Y21EVmVyc2lvbmVkUmVzcG9uc2UAAQwIVjMEAMUBATB2Mzo6UmVzcG9uc2UAAwAIVjQEADUCATB2NDo6UmVzcG9uc2UABAAIVjUEAIECATB2NTo6UmVzcG9uc2UABQAADQkAAAQIOEkBABEJAAAEDCjVATgAFQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZCQRTAAAEAB0JARhWZWM8VD4AABkJAAAECEkBOAAdCQAAAhkJACEJDChwYWxsZXRfeGNtGHBhbGxldFRWZXJzaW9uTWlncmF0aW9uU3RhZ2UAARBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAABcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQBQTm90aWZ5Q3VycmVudFRhcmdldHMEADUFATxPcHRpb248VmVjPHU4Pj4AAgBoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAwAAJQkAAAQMOAQRAwApCQwocGFsbGV0X3hjbRhwYWxsZXRoUmVtb3RlTG9ja2VkRnVuZ2libGVSZWNvcmQISENvbnN1bWVySWRlbnRpZmllcgEQME1heENvbnN1bWVycwAAEAEYYW1vdW50xAEQdTEyOAABFG93bmVySQEBRFZlcnNpb25lZExvY2F0aW9uAAEYbG9ja2VySQEBRFZlcnNpb25lZExvY2F0aW9uAAEkY29uc3VtZXJzLQkB0EJvdW5kZWRWZWM8KENvbnN1bWVySWRlbnRpZmllciwgdTEyOCksIE1heENvbnN1bWVycz4AAC0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBMQkEUwAABAA1CQEYVmVjPFQ+AAAxCQAABAgQxAA1CQAAAjEJADkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQkEUwAABABBCQEYVmVjPFQ+AAA9CQAABAjESQEAQQkAAAI9CQBFCQgocGFsbGV0X3hjbVhBdXRob3JpemVkQWxpYXNlc0VudHJ5CBhUaWNrZXQBSQkMTUFYAU0JAAgBIGFsaWFzZXJzUQkBeEJvdW5kZWRWZWM8T3JpZ2luQWxpYXNlciwgTUFYPgABGHRpY2tldEkJARhUaWNrZXQAAEkJEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxxzdG9yYWdlIERpc2FibGVkAAAAAE0JDChwYWxsZXRfeGNtGHBhbGxldFBNYXhBdXRob3JpemVkQWxpYXNlcwAAAABRCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAVUJBFMAAAQAWQkBGFZlYzxUPgAAVQkMQHhjbV9ydW50aW1lX2FwaXNIYXV0aG9yaXplZF9hbGlhc2VzNE9yaWdpbkFsaWFzZXIAAAgBIGxvY2F0aW9uSQEBRFZlcnNpb25lZExvY2F0aW9uAAEYZXhwaXJ5FQMBLE9wdGlvbjx1NjQ+AABZCQAAAlUJAF0JDChwYWxsZXRfeGNtGHBhbGxldBRFcnJvcgQEVAABcCxVbnJlYWNoYWJsZQAACF0BVGhlIGRlc2lyZWQgZGVzdGluYXRpb24gd2FzIHVucmVhY2hhYmxlLCBnZW5lcmFsbHkgYmVjYXVzZSB0aGVyZSBpcyBhIG5vIHdheSBvZiByb3V0aW5nGHRvIGl0LixTZW5kRmFpbHVyZQABCEEBVGhlcmUgd2FzIHNvbWUgb3RoZXIgaXNzdWUgKGkuZS4gbm90IHRvIGRvIHdpdGggcm91dGluZykgaW4gc2VuZGluZyB0aGUgbWVzc2FnZS7IUGVyaGFwcyBhIGxhY2sgb2Ygc3BhY2UgZm9yIGJ1ZmZlcmluZyB0aGUgbWVzc2FnZS4gRmlsdGVyZWQAAgScVGhlIG1lc3NhZ2UgZXhlY3V0aW9uIGZhaWxzIHRoZSBmaWx0ZXIuSFVud2VpZ2hhYmxlTWVzc2FnZQADBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5gRGVzdGluYXRpb25Ob3RJbnZlcnRpYmxlAAQE3FRoZSBkZXN0aW5hdGlvbiBgTG9jYXRpb25gIHByb3ZpZGVkIGNhbm5vdCBiZSBpbnZlcnRlZC4URW1wdHkABQSAVGhlIGFzc2V0cyB0byBiZSBzZW50IGFyZSBlbXB0eS44Q2Fubm90UmVhbmNob3IABgQ1AUNvdWxkIG5vdCByZS1hbmNob3IgdGhlIGFzc2V0cyB0byBkZWNsYXJlIHRoZSBmZWVzIGZvciB0aGUgZGVzdGluYXRpb24gY2hhaW4uNFRvb01hbnlBc3NldHMABwTEVG9vIG1hbnkgYXNzZXRzIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLjRJbnZhbGlkT3JpZ2luAAgEeE9yaWdpbiBpcyBpbnZhbGlkIGZvciBzZW5kaW5nLihCYWRWZXJzaW9uAAkEIQFUaGUgdmVyc2lvbiBvZiB0aGUgYFZlcnNpb25lZGAgdmFsdWUgdXNlZCBpcyBub3QgYWJsZSB0byBiZSBpbnRlcnByZXRlZC4sQmFkTG9jYXRpb24ACghBAVRoZSBnaXZlbiBsb2NhdGlvbiBjb3VsZCBub3QgYmUgdXNlZCAoZS5nLiBiZWNhdXNlIGl0IGNhbm5vdCBiZSBleHByZXNzZWQgaW4gdGhlYGRlc2lyZWQgdmVyc2lvbiBvZiBYQ00pLjhOb1N1YnNjcmlwdGlvbgALBLxUaGUgcmVmZXJlbmNlZCBzdWJzY3JpcHRpb24gY291bGQgbm90IGJlIGZvdW5kLkRBbHJlYWR5U3Vic2NyaWJlZAAMBBEBVGhlIGxvY2F0aW9uIGlzIGludmFsaWQgc2luY2UgaXQgYWxyZWFkeSBoYXMgYSBzdWJzY3JpcHRpb24gZnJvbSB1cy5YQ2Fubm90Q2hlY2tPdXRUZWxlcG9ydAANBCkBQ291bGQgbm90IGNoZWNrLW91dCB0aGUgYXNzZXRzIGZvciB0ZWxlcG9ydGF0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4oTG93QmFsYW5jZQAOBEEBVGhlIG93bmVyIGRvZXMgbm90IG93biAoYWxsKSBvZiB0aGUgYXNzZXQgdGhhdCB0aGV5IHdpc2ggdG8gZG8gdGhlIG9wZXJhdGlvbiBvbi4wVG9vTWFueUxvY2tzAA8EwFRoZSBhc3NldCBvd25lciBoYXMgdG9vIG1hbnkgbG9ja3Mgb24gdGhlIGFzc2V0LkxBY2NvdW50Tm90U292ZXJlaWduABAEMQFUaGUgZ2l2ZW4gYWNjb3VudCBpcyBub3QgYW4gaWRlbnRpZmlhYmxlIHNvdmVyZWlnbiBhY2NvdW50IGZvciBhbnkgbG9jYXRpb24uKEZlZXNOb3RNZXQAEQQpAVRoZSBvcGVyYXRpb24gcmVxdWlyZWQgZmVlcyB0byBiZSBwYWlkIHdoaWNoIHRoZSBpbml0aWF0b3IgY291bGQgbm90IG1lZXQuMExvY2tOb3RGb3VuZAASBPRBIHJlbW90ZSBsb2NrIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBjb3VsZCBub3QgYmUgZm91bmQuFEluVXNlABMESQFUaGUgdW5sb2NrIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCBiZWNhdXNlIHRoZXJlIGFyZSBzdGlsbCBjb25zdW1lcnMgb2YgdGhlIGxvY2suaEludmFsaWRBc3NldFVua25vd25SZXNlcnZlABUE8EludmFsaWQgYXNzZXQsIHJlc2VydmUgY2hhaW4gY291bGQgbm90IGJlIGRldGVybWluZWQgZm9yIGl0LnhJbnZhbGlkQXNzZXRVbnN1cHBvcnRlZFJlc2VydmUAFgRFAUludmFsaWQgYXNzZXQsIGRvIG5vdCBzdXBwb3J0IHJlbW90ZSBhc3NldCByZXNlcnZlcyB3aXRoIGRpZmZlcmVudCBmZWVzIHJlc2VydmVzLjxUb29NYW55UmVzZXJ2ZXMAFwRJAVRvbyBtYW55IGFzc2V0cyB3aXRoIGRpZmZlcmVudCByZXNlcnZlIGxvY2F0aW9ucyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci5gTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlABgEfExvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZS5gVG9vTWFueUF1dGhvcml6ZWRBbGlhc2VzABkEuFRvbyBtYW55IGxvY2F0aW9ucyBhdXRob3JpemVkIHRvIGFsaWFzIG9yaWdpbi40RXhwaXJlc0luUGFzdAAaBIxFeHBpcnkgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LjRBbGlhc05vdEZvdW5kABsE0FRoZSBhbGlhcyB0byByZW1vdmUgYXV0aG9yaXphdGlvbiBmb3Igd2FzIG5vdCBmb3VuZC6ETG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yCAEUaW5kZXgMAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3JhCQE4RXhlY3V0aW9uRXJyb3IAHAg1AUxvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZSB3aXRoIHRoZSBhY3R1YWwgWENNIGVycm9yIGFuZCB0aGUgaW5kZXggb2YgdGhliGluc3RydWN0aW9uIHRoYXQgY2F1c2VkIHRoZSBlcnJvci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuYQkMKHBhbGxldF94Y20YZXJyb3JzOEV4ZWN1dGlvbkVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAZQkIUHBhbGxldF9tZXNzYWdlX3F1ZXVlJEJvb2tTdGF0ZQQ0TWVzc2FnZU9yaWdpbgEhAwAYARRiZWdpbjgBJFBhZ2VJbmRleAABDGVuZDgBJFBhZ2VJbmRleAABFGNvdW50OAEkUGFnZUluZGV4AAFAcmVhZHlfbmVpZ2hib3Vyc2kJAYRPcHRpb248TmVpZ2hib3VyczxNZXNzYWdlT3JpZ2luPj4AATRtZXNzYWdlX2NvdW50KAEMdTY0AAEQc2l6ZSgBDHU2NAAAaQkEGE9wdGlvbgQEVAFtCQEIEE5vbmUAAAAQU29tZQQAbQkAAAEAAG0JCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZShOZWlnaGJvdXJzBDRNZXNzYWdlT3JpZ2luASEDAAgBEHByZXYhAwE0TWVzc2FnZU9yaWdpbgABEG5leHQhAwE0TWVzc2FnZU9yaWdpbgAAcQkAAAQIIQM4AHUJCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRBQYWdlCBBTaXplATggSGVhcFNpemUAABgBJHJlbWFpbmluZzgBEFNpemUAAThyZW1haW5pbmdfc2l6ZTgBEFNpemUAASxmaXJzdF9pbmRleDgBEFNpemUAARRmaXJzdDgBEFNpemUAARBsYXN0OAEQU2l6ZQABEGhlYXB5CQGcQm91bmRlZFZlYzx1OCwgSW50b1UzMjxIZWFwU2l6ZSwgU2l6ZT4+AAB5CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQwEUwAABAAYARhWZWM8VD4AAH0JDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQURXJyb3IEBFQAASQsTm90UmVhcGFibGUAAAhJAVBhZ2UgaXMgbm90IHJlYXBhYmxlIGJlY2F1c2UgaXQgaGFzIGl0ZW1zIHJlbWFpbmluZyB0byBiZSBwcm9jZXNzZWQgYW5kIGlzIG5vdCBvbGQcZW5vdWdoLhhOb1BhZ2UAAQSEUGFnZSB0byBiZSByZWFwZWQgZG9lcyBub3QgZXhpc3QuJE5vTWVzc2FnZQACBKhUaGUgcmVmZXJlbmNlZCBtZXNzYWdlIGNvdWxkIG5vdCBiZSBmb3VuZC5AQWxyZWFkeVByb2Nlc3NlZAADBAEBVGhlIG1lc3NhZ2Ugd2FzIGFscmVhZHkgcHJvY2Vzc2VkIGFuZCBjYW5ub3QgYmUgcHJvY2Vzc2VkIGFnYWluLhhRdWV1ZWQABASsVGhlIG1lc3NhZ2UgaXMgcXVldWVkIGZvciBmdXR1cmUgZXhlY3V0aW9uLkhJbnN1ZmZpY2llbnRXZWlnaHQABQQZAVRoZXJlIGlzIHRlbXBvcmFyaWx5IG5vdCBlbm91Z2ggd2VpZ2h0IHRvIGNvbnRpbnVlIHNlcnZpY2luZyBtZXNzYWdlcy5gVGVtcG9yYXJpbHlVbnByb2Nlc3NhYmxlAAYQqFRoaXMgbWVzc2FnZSBpcyB0ZW1wb3JhcmlseSB1bnByb2Nlc3NhYmxlLgBZAVN1Y2ggZXJyb3JzIGFyZSBleHBlY3RlZCwgYnV0IG5vdCBndWFyYW50ZWVkLCB0byByZXNvbHZlIHRoZW1zZWx2ZXMgZXZlbnR1YWxseSB0aHJvdWdoJHJldHJ5aW5nLixRdWV1ZVBhdXNlZAAHDOxUaGUgcXVldWUgaXMgcGF1c2VkIGFuZCBubyBtZXNzYWdlIGNhbiBiZSBleGVjdXRlZCBmcm9tIGl0LgAdAVRoaXMgY2FuIGNoYW5nZSBhdCBhbnkgdGltZSBhbmQgbWF5IHJlc29sdmUgaW4gdGhlIGZ1dHVyZSBieSByZS10cnlpbmcuTFJlY3Vyc2l2ZURpc2FsbG93ZWQACAQxAUFub3RoZXIgY2FsbCBpcyBpbiBwcm9ncmVzcyBhbmQgbmVlZHMgdG8gZmluaXNoIGJlZm9yZSB0aGlzIGNhbGwgY2FuIGhhcHBlbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQugQkMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuhQkAAAQIBAgAiQkIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBOBxCYWxhbmNlAcQkQWNjb3VudElkAQQwTWF4QXBwcm92YWxzAAAQARB3aGVumQMBWFRpbWVwb2ludDxCbG9ja051bWJlcj4AARxkZXBvc2l0xAEcQmFsYW5jZQABJGRlcG9zaXRvcgQBJEFjY291bnRJZAABJGFwcHJvdmFsc40JAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAAjQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAzAEYVmVjPFQ+AACRCQw8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFcnJvcgQEVAABOEBNaW5pbXVtVGhyZXNob2xkAAAEfFRocmVzaG9sZCBtdXN0IGJlIDIgb3IgZ3JlYXRlci48QWxyZWFkeUFwcHJvdmVkAAEErENhbGwgaXMgYWxyZWFkeSBhcHByb3ZlZCBieSB0aGlzIHNpZ25hdG9yeS5ETm9BcHByb3ZhbHNOZWVkZWQAAgScQ2FsbCBkb2Vzbid0IG5lZWQgYW55IChtb3JlKSBhcHByb3ZhbHMuRFRvb0Zld1NpZ25hdG9yaWVzAAMEqFRoZXJlIGFyZSB0b28gZmV3IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LkhUb29NYW55U2lnbmF0b3JpZXMABASsVGhlcmUgYXJlIHRvbyBtYW55IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LlRTaWduYXRvcmllc091dE9mT3JkZXIABQQNAVRoZSBzaWduYXRvcmllcyB3ZXJlIHByb3ZpZGVkIG91dCBvZiBvcmRlcjsgdGhleSBzaG91bGQgYmUgb3JkZXJlZC5MU2VuZGVySW5TaWduYXRvcmllcwAGBA0BVGhlIHNlbmRlciB3YXMgY29udGFpbmVkIGluIHRoZSBvdGhlciBzaWduYXRvcmllczsgaXQgc2hvdWxkbid0IGJlLiBOb3RGb3VuZAAHBKBNdWx0aXNpZyBvcGVyYXRpb24gbm90IGZvdW5kIGluIHN0b3JhZ2UuIE5vdE93bmVyAAgIUQFPbmx5IHRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoZSBtdWx0aXNpZyBpcyBhYmxlIHRvIGNhbmNlbCBpdCBvciB1cGRhdGU0aXRzIGRlcG9zaXRzLixOb1RpbWVwb2ludAAJBB0BTm8gdGltZXBvaW50IHdhcyBnaXZlbiwgeWV0IHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gaXMgYWxyZWFkeSB1bmRlcndheS44V3JvbmdUaW1lcG9pbnQACgQtAUEgZGlmZmVyZW50IHRpbWVwb2ludCB3YXMgZ2l2ZW4gdG8gdGhlIG11bHRpc2lnIG9wZXJhdGlvbiB0aGF0IGlzIHVuZGVyd2F5LkxVbmV4cGVjdGVkVGltZXBvaW50AAsE9EEgdGltZXBvaW50IHdhcyBnaXZlbiwgeWV0IG5vIG11bHRpc2lnIG9wZXJhdGlvbiBpcyB1bmRlcndheS48TWF4V2VpZ2h0VG9vTG93AAwE0FRoZSBtYXhpbXVtIHdlaWdodCBpbmZvcm1hdGlvbiBwcm92aWRlZCB3YXMgdG9vIGxvdy40QWxyZWFkeVN0b3JlZAANBKBUaGUgZGF0YSB0byBiZSBzdG9yZWQgaXMgYWxyZWFkeSBzdG9yZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LpUJDCxwYWxsZXRfc3VkbxhwYWxsZXQURXJyb3IEBFQAAQQsUmVxdWlyZVN1ZG8AAASAU2VuZGVyIG11c3QgYmUgdGhlIFN1ZG8gYWNjb3VudC4EaEVycm9yIGZvciB0aGUgU3VkbyBwYWxsZXQumQkAAAQInQnEAJ0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBoQkEUwAABAClCQEYVmVjPFQ+AAChCQgwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQQkUHJveHlUeXBlAakDLEJsb2NrTnVtYmVyATgADAEgZGVsZWdhdGUEASRBY2NvdW50SWQAAShwcm94eV90eXBlqQMBJFByb3h5VHlwZQABFGRlbGF5OAEsQmxvY2tOdW1iZXIAAKUJAAACoQkAqQkAAAQIrQnEAK0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBsQkEUwAABAC1CQEYVmVjPFQ+AACxCQgwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQQQSGFzaAE8LEJsb2NrTnVtYmVyATgADAEQcmVhbAQBJEFjY291bnRJZAABJGNhbGxfaGFzaDwBEEhhc2gAARhoZWlnaHQ4ASxCbG9ja051bWJlcgAAtQkAAAKxCQC5CQwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuvQkMTGluZGl2X3BhbGxldF9wZW9wbGUUdHlwZXMwUGVyc29uUmVjb3JkCBhNZW1iZXIBCCRBY2NvdW50SWQBBAAIAQxrZXkIARhNZW1iZXIAARxhY2NvdW50sQYBRE9wdGlvbjxBY2NvdW50SWQ+AADBCQxMaW5kaXZfcGFsbGV0X3Blb3BsZRhwYWxsZXQURXJyb3IEBFQAAZQkTm90UGVyc29uAAAE0FRoZSBzdXBwbGllZCBpZGVudGlmaWVyIGRvZXMgbm90IHJlcHJlc2VudCBhIHBlcnNvbi4UTm9LZXkAAQScVGhlIGdpdmVuIHBlcnNvbiBoYXMgbm8gYXNzb2NpYXRlZCBrZXkuOEludmFsaWRDb250ZXh0AAIEKQFUaGUgY29udGV4dCBpcyBub3QgYSBtZW1iZXIgb2YgdGhvc2UgYWxsb3dlZCB0byBoYXZlIGFjY291bnQgYWxpYXNlcyBoZWxkLjhJbnZhbGlkQWNjb3VudAADBGRUaGUgYWNjb3VudCBpcyBub3Qga25vd24uMEFjY291bnRJblVzZQAEBMhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGluIHVzZSB1bmRlciBhbm90aGVyIGFsaWFzLjBJbnZhbGlkUHJvb2YABQRUVGhlIHByb29mIGlzIGludmFsaWQuQEludmFsaWRTaWduYXR1cmUABgRkVGhlIHNpZ25hdHVyZSBpcyBpbnZhbGlkLiROb01lbWJlcnMABwTQVGhlcmUgYXJlIG5vdCB5ZXQgYW55IG1lbWJlcnMgb2Ygb3VyIHBlcnNvbmhvb2Qgc2V0LihJbmNvbXBsZXRlAAgEBQFUaGUgcm9vdCBjYW5ub3QgYmUgZmluYWxpemVkIGFzIHRoZXJlIGFyZSBzdGlsbCB1bnB1c2hlZCBtZW1iZXJzLihTdGlsbEZyZXNoAAkEYFRoZSByb290IGlzIHN0aWxsIGZyZXNoLjhUb29NYW55TWVtYmVycwAKBIhUb28gbWFueSBtZW1iZXJzIGhhdmUgYmVlbiBwdXNoZWQuPEtleUFscmVhZHlJblVzZQALBJRLZXkgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciBwZXJzb24uLEtleU5vdEZvdW5kAAwEoFRoZSBvbGQga2V5IHdhcyBub3QgZm91bmQgd2hlbiBleHBlY3RlZC4wQ291bGROb3RQdXNoAA0EkENvdWxkIG5vdCBwdXNoIG1lbWJlciBpbnRvIHRoZSByaW5nLhxTYW1lS2V5AA4ElFRoZSByZWNvcmQgaXMgYWxyZWFkeSB1c2luZyB0aGlzIGtleS5UUGVyc29uYWxJZE5vdFJlc2VydmVkAA8EdFBlcnNvbmFsIElkIHdhcyBub3QgcmVzZXJ2ZWQugFBlcnNvbmFsSWRSZXNlcnZhdGlvbkNhbm5vdFJlbmV3ABAEkFBlcnNvbmFsIElkIGhhcyBuZXZlciBiZWVuIHJlc2VydmVkLpBQZXJzb25hbElkTm90UmVzZXJ2ZWRPck5vdFJlY29nbml6ZWQAEQTcUGVyc29uYWwgSWQgd2FzIG5vdCByZXNlcnZlZCBvciBub3QgYWxyZWFkeSByZWNvZ25pemVkLixJbnZhbGlkUmluZwASBKxSaW5nIGNhbm5vdCBiZSBtZXJnZWQgaWYgaXQncyB0aGUgdG9wIHJpbmcuSFN1c3BlbnNpb25zUGVuZGluZwATBORSaW5nIGNhbm5vdCBiZSBidWlsdCB3aGlsZSB0aGVyZSBhcmUgc3VzcGVuc2lvbnMgcGVuZGluZy5cUmluZ0Fib3ZlTWVyZ2VUaHJlc2hvbGQAFATUUmluZyBjYW5ub3QgYmUgbWVyZ2VkIGlmIGl0J3Mgbm90IGJlbG93IDEvMiBjYXBhY2l0eS5ISW52YWxpZFN1c3BlbnNpb25zABUEoFN1c3BlbnNpb24gaW5kaWNlcyBwcm92aWRlZCBhcmUgaW52YWxpZC5ETm9NdXRhdGlvblNlc3Npb24AFgQ1AUFuIG11dGF0aW5nIGFjdGlvbiB3YXMgcXVldWVkIHdoZW4gdGhlcmUgd2FzIG5vIG11dGF0aW9uIHNlc3Npb24gaW4gcHJvZ3Jlc3MucENvdWxkTm90U3RhcnRNdXRhdGlvblNlc3Npb24AFwSkQW4gbXV0YXRpbmcgc2Vzc2lvbiBjb3VsZCBub3QgYmUgc3RhcnRlZC5sU3VzcGVuc2lvblNlc3Npb25JblByb2dyZXNzABgE9ENhbm5vdCBtZXJnZSByaW5ncyB3aGlsZSBhIHN1c3BlbnNpb24gc2Vzc2lvbiBpcyBpbiBwcm9ncmVzcy40QWxpYXNOb3RTdGFsZQAZBHxUaGUgYWxpYXMgbWFwcGluZyBpcyBub3Qgc3RhbGUuOFRpbWVPdXRPZlJhbmdlABoEeENhbGwgaXMgdG9vIGxhdGUgb3IgdG9vIGVhcmx5LlhBbGlhc0FjY291bnRBbHJlYWR5U2V0ABsEwEFsaWFzIDwtPiBBY2NvdW50IGlzIGFscmVhZHkgc2V0IGFuZCB1cCB0byBkYXRlLjBOb3RTdXNwZW5kZWQAHATQUGVyc29uaG9vZCBjYW5ub3QgYmUgcmVzdW1lZCBpZiBpdCBpcyBub3Qgc3VzcGVuZGVkLiRTdXNwZW5kZWQAHQRgUGVyc29uaG9vZCBpcyBzdXNwZW5kZWQuTEludmFsaWRLZXlNaWdyYXRpb24AHgSoSW52YWxpZCBzdGF0ZSBmb3IgYXR0ZW1wdGVkIGtleSBtaWdyYXRpb24uTEtleUFscmVhZHlTdXNwZW5kZWQAHwhVAUludmFsaWQgc3VzcGVuc2lvbiBvZiBhIGtleSBiZWxvbmdpbmcgdG8gYSBwZXJzb24gd2hvc2UgaW5kZXggaW4gdGhlIHJpbmcgaGFzIGFscmVhZHm4YmVlbiBpbmNsdWRlZCBpbiB0aGUgcGVuZGluZyBzdXNwZW5zaW9ucyBsaXN0LlRJbnZhbGlkT25ib2FyZGluZ1NpemUAIAToVGhlIG9uYm9hcmRpbmcgc2l6ZSBtdXN0IG5vdCBleGNlZWQgdGhlIG1heGltdW0gcmluZyBzaXplLkBJbnZhbGlkTWVtYmVyS2V5ACEErFRoZSBtZW1iZXIga2V5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIGNyeXB0by50UGVvcGxlQ29sbGVjdGlvbkFscmVhZHlFeGlzdHMAIgS8VGhlIHBlb3BsZSBjb2xsZWN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY3JlYXRlZC40QWxpYXNNaXNtYXRjaAAjBBkBVGhlIHByb3ZpZGVkIGFsaWFzIGRvZXMgbm90IG1hdGNoIHRoZSBhY2NvdW50J3MgY3VycmVudCBhbGlhcyBtYXBwaW5nLjhOb1N0YWxlQWxpYXNlcwAkBKBOb25lIG9mIHRoZSBzdXBwbGllZCBhbGlhc2VzIHdlcmUgc3RhbGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsUJDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0JE1vYkNyZWRpdAQcQmFsYW5jZQHEABABFHZvdGVkOAEMdTMyAAEcY2xlYW5lZDgBDHUzMgABHGNvcnJlY3Q4AQx1MzIAARhjcmVkaXTEARxCYWxhbmNlAADJCQAABAg4CADNCQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldCBPcGVuQ2FzZQQsUnVudGltZUNhbGwBIAAMARRzaW5jZSgBQFNlY3NTaW5jZUdlbmVzaXMAARxkZXRhaWxz0QkBYENhc2VEZXRhaWxzPFJ1bnRpbWVDYWxsPgABFHRhbGx55QkBJFZvdGVUYWxseQAA0QkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQsQ2FzZURldGFpbHMELFJ1bnRpbWVDYWxsASAADAEkc3RhdGVtZW501QkBJFN0YXRlbWVudAABHGNvbnRleHR4AUBKdWRnZW1lbnRDb250ZXh0AAEgY2FsbGJhY2vhCQH8Q2FsbGJhY2s8KENhc2VJbmRleCwgSnVkZ2VtZW50Q29udGV4dCwgSnVkZ2VtZW50KSwgUnVudGltZUNhbGw+AADVCRA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eSRTdGF0ZW1lbnQAAQwoUHJvb2ZPZkluawwBGGRlc2lnbtkJAVRwcm9vZl9vZl9pbms6Oklua1NwZWMAASBldmlkZW5jZQgBMEV2aWRlbmNlSGFzaAABTHByb2JhYmxlX2FjY2VwdGFibGXIARBib29sAAAASElkZW50aXR5Q3JlZGVudGlhbAgBIHBsYXRmb3Jt3QkBQGlkZW50aXR5OjpTb2NpYWwAASBldmlkZW5jZXkEAThpZGVudGl0eTo6RGF0YQABADRVc2VybmFtZVZhbGlkBAEgdXNlcm5hbWV5BAE4aWRlbnRpdHk6OkRhdGEAAgAA2QkUNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkwcHJvb2Zfb2ZfaW5rHElua1NwZWMAARBARGVzaWduZWRFbGVjdGl2ZQgALQMBLEZhbWlseUluZGV4AAAtAwEsRGVzaWduSW5kZXgAAABEUHJvY2VkdXJhbEFjY291bnQIAC0DASxGYW1pbHlJbmRleAAACAEkQWNjb3VudElkAAEASFByb2NlZHVyYWxQZXJzb25hbAgALQMBLEZhbWlseUluZGV4AAAoAShQZXJzb25hbElkAAIAKFByb2NlZHVyYWwIAC0DASxGYW1pbHlJbmRleAAAcAE4UHJvY2VkdXJhbFNlZWQAAwAA3QkUNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkgaWRlbnRpdHkYU29jaWFsAAEMHFR3aXR0ZXIEASB1c2VybmFtZXkEARBEYXRhAAAAGEdpdGh1YgQBIHVzZXJuYW1leQQBEERhdGEAAQAcRGlzY29yZAQBPGRpc3BsYXlfYW5kX3RhZ3kEARBEYXRhAAIAAOEJEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5IENhbGxiYWNrCBhQYXJhbXMALFJ1bnRpbWVDYWxsAAAIATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAA5QkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQkVm90ZVRhbGx5AAAMAQxheWU4AQx1MzIAAQxuYXk4AQx1MzIAASBjb250ZW1wdDgBDHUzMgAA6QkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgUmlwZUNhc2UELFJ1bnRpbWVDYWxsASAACAEcZGV0YWlsc9EJAWBDYXNlRGV0YWlsczxSdW50aW1lQ2FsbD4AARx2ZXJkaWN0wQMBJEp1ZGdlbWVudAAA7QkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgRG9uZUNhc2UAAAgBFHNpbmNlKAFAU2Vjc1NpbmNlR2VuZXNpcwABHHZlcmRpY3TBAwEkSnVkZ2VtZW50AADxCQxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldEhDcmVkaXREaXN0cmlidXRpb24IHEJhbGFuY2UBxCxCbG9ja051bWJlcgE4ABQBFHJvdW5kOAEoUm91bmRJbmRleAABPGluaXRpYWxfYmFsYW5jZcQBHEJhbGFuY2UAAURyZW1haW5pbmdfYmFsYW5jZcQBHEJhbGFuY2UAATB0b3RhbF9wb2ludHMoASRWb3RlQ291bnQAARRzdGFydDgBLEJsb2NrTnVtYmVyAAD1CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfkJBFMAAAQA/QkBGFZlYzxUPgAA+QkMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQ4UGF5b3V0U2NoZWR1bGUIHEJhbGFuY2UBxCxCbG9ja051bWJlcgE4AAwBJHJlbWFpbmluZzgBKFJvdW5kSW5kZXgAAUBhbW91bnRfcGVyX3JvdW5kxAEcQmFsYW5jZQABGHBlcmlvZDgBLEJsb2NrTnVtYmVyAAD9CQAAAvkJAAEKDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyY2VudAAABAAMAQh1OAAABQoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQURXJyb3IEBFQAAVAoTm9TdWNoQ2FzZQAABGBUaGUgY2FzZSBkb2VzIG5vdCBleGlzdC4oTm9TdWNoVm90ZQABBGBUaGUgdm90ZSBkb2VzIG5vdCBleGlzdC4cTm90T3BlbgACBFRUaGUgY2FzZSBpcyBub3Qgb3Blbi4cTm90UmlwZQADBFRUaGUgY2FzZSBpcyBub3QgcmlwZS4cTm90RG9uZQAEBGRUaGUgY2FzZSBpcyBub3QgeWV0IGRvbmUuKENvZGVjRXJyb3IABQRVAVRoZSBkZWNvZGUgb2YgdGhlIGNhbGwgZmFpbGVkLiBNYXliZSB0aGVyZSB3YXMgYSBicmVha2luZyBydW50aW1lIHVwZ3JhZGUgaW4gYmV0d2Vlbj80RGlzcGF0Y2hFcnJvcgAGBE0BVGhlIGNhbGwgZmFpbGVkIHRvIGRpc3BhdGNoLiBNYXliZSB0aGVyZSB3YXMgYSBicmVha2luZyBydW50aW1lIHVwZ3JhZGUgaW4gYmV0d2Vlbj8YUmVjZW50AAcEkFRoZSBjYXNlIGlzIHRvbyByZWNlbnQgdG8gYmUgcmVhcGVkLiBOb0NyZWRpdAAIBKBOb3QgZW5vdWdoIGNyZWRpdCB0byBwYXlvdXQgdGhlIHJld2FyZHMuIE5vUmV3YXJkAAkE1E5vIG1vYiBjcmVkaXQgZGlzdHJpYnV0aW9uIGluIHBsYWNlIHRvIHJld2FyZCB2b3RlcnMuIE5vUG9pbnRzAAoEoE5vIHBvaW50cyB0byBiZSBjb252ZXJ0ZWQgdG8gbW9iIGNyZWRpdC40VG9vTWFueUNsYWltcwALBFRUb28gbWFueSB2b3RlIGNsYWltcy4gTm9QYXlvdXQADARYTm8gcGF5b3V0IGluIHByb2dyZXNzLkhBcml0aG1ldGljT3ZlcmZsb3cADQS0VGhlIHBvaW50IGFuZC9vciBjcmVkaXQgYXJpdGhtZXRpYyBvdmVyZmxvd3MuQFRvb01hbnlTY2hlZHVsZXMADgSAVG9vIG1hbnkgcGF5b3V0IHJvdW5kIHNjaGVkdWxlcy4oTm9TY2hlZHVsZQAPBHxObyBwYXlvdXQgcm91bmQgc2NoZWR1bGUgZm91bmQuJE5vUGVuYWx0eQAQBFhObyB2b3RlIHBlbmFsdHkgZm91bmQuFEVhcmx5ABEElFRoZSB2b3RlIHBlbmFsdHkgaGFzIG5vdCBleHBpcmVkIHlldC4wVW5kZXJQZW5hbHR5ABIE6FRoZSB2b3RlIGNhbm5vdCBiZSBjYXN0IGR1ZSB0byBhIHZvdGluZyBwZW5hbHR5IGluIGVmZmVjdC5YQ2FzZUV4cGlyYXRpb25EaXNhYmxlZAATBB0BVGhlIG9wZW4gY2FzZSBleHBpcmF0aW9uIGlzIGRpc2FibGVkIGR1ZSB0byBpbnN1ZmZpY2llbnQgYWN0aXZlIHZvdGVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuCQoMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0JENhbmRpZGF0ZRAsSnVkZ2VtZW50SWQBOBxEZXBvc2l0AQ0KLEJsb2NrTnVtYmVyATgkQWNjb3VudElkAQQBDBxBcHBsaWVkDAEQY3JlZBEKAaxDcmVkaWJpbGl0eTxEZXBvc2l0LCBQZXJzb25hbElkLCBBY2NvdW50SWQ+AAEcZW50cm9weQgBHEVudHJvcHkAATRlbnRyb3B5X3NpbmNlOAEsQmxvY2tOdW1iZXIAAAAgU2VsZWN0ZWQgARRzaW5jZTgBLEJsb2NrTnVtYmVyAAEQY3JlZBEKAaxDcmVkaWJpbGl0eTxEZXBvc2l0LCBQZXJzb25hbElkLCBBY2NvdW50SWQ+AAEgcmVzZXJ2ZWQoAShQZXJzb25hbElkAAEcZW50cm9weQgBHEVudHJvcHkAARhkZXNpZ27ZCQEcSW5rU3BlYwABKGFsbG9jYXRpb24VCgEoQWxsb2NhdGlvbgABHGp1ZGdpbmcJAwFMT3B0aW9uPEp1ZGdlbWVudElkPgABGGZhaWxlZDgBHENvdW50ZXIAAQAYUHJvdmVuEAEYZGVzaWdu2QkBHElua1NwZWMAASByZXNlcnZlZCgBKFBlcnNvbmFsSWQAATB3YXNfcmVmZXJyZWTIARBib29sAAEsd2FzX2ludml0ZWTIARBib29sAAIAAA0KFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAMQBKEY6OkJhbGFuY2UAABEKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldCxDcmVkaWJpbGl0eQwcRGVwb3NpdAENCihQZXJzb25hbElkASgkQWNjb3VudElkAQQBDCBSZWZlcnJlZAQAKAEoUGVyc29uYWxJZAAAABxEZXBvc2l0BAANCgEcRGVwb3NpdAABABxJbnZpdGVkBAAEASRBY2NvdW50SWQAAgAAFQoMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0KEFsbG9jYXRpb24AAQwcSW5pdGlhbAAAACBJbml0RG9uZQABABBGdWxsAAIAABkKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhQZXJzb24EPEJvdW5kZWRBY2NvdW50cwEdCgAkARhkZXNpZ24hCgE8T3B0aW9uPElua1NwZWM+AAFAYWN0aXZlX3JlZmVycmFscx0KATxCb3VuZGVkQWNjb3VudHMAAWBhbGxvd2VkX3JlZmVycmFsX3RpY2tldHM4ARxDb3VudGVyAAE0YmFkX3JlZmVycmFsczgBHENvdW50ZXIAAVBzdWNjZXNzZnVsX3JlZmVycmFsczgBHENvdW50ZXIAASRyZWZlcnJhbHM4ARxDb3VudGVyAAEsZGVyaXZhdGl2ZXM4ARxDb3VudGVyAAEYYmFubmVkyAEQYm9vbAABYHBlbmRpbmdfcmVmZXJyYWxfcmV3YXJkczgBHENvdW50ZXIAAB0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAMwBGFZlYzxUPgAAIQoEGE9wdGlvbgQEVAHZCQEIEE5vbmUAAAAQU29tZQQA2QkAAAEAACUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKQoEUwAABAAtCgEYVmVjPFQ+AAApCgxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQ4UmVmZXJyYWxUaWNrZXQEGFRpY2tldAEEAAQBGHRpY2tldAQBGFRpY2tldAAALQoAAAIpCgAxCgxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQYRmFtaWx5AAAIARBraW5k4QMBKEZhbWlseUtpbmQAAQhpZAgBIEZhbWlseUlkAAA1CgAABAgtAy0DADkKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldDBEZXNpZ25TdGF0dXMAAQggUmVzZXJ2ZWQAAAAkQ29tbWl0dGVkAAEAAD0KAAAECAQEAEEKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBRFcnJvcgQEVAABoChJblByb2dyZXNzAAAEzEFjY291bnQgaXMgYWxyZWFkeSBhcHBseWluZyB0byBtYWtlIGEgcHJvb2Ytb2YtaW5rLihOb1JlZmVycmFsAAEEeEFjY291bnQgaGFzIG5vdCBiZWVuIHJlZmVycmVkLihCYWRDb250ZXh0AAIE6FRoZSBjYWxsYmFjayBjb250ZXh0IGlzIGludmFsaWQ7IHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi5MVW5leHBlY3RlZEp1ZGdlbWVudAADBCEBVGhlIGluY29taW5nIGp1ZGdlbWVudCBJRCBpcyBub3Qgd2hhdCB3ZSB3ZXJlIGV4cGVjdGluZyBmb3IgdGhlIGFjY291bnQuGE5vQXJncwAEBLhObyBhcmd1bWVudHMgd2VyZSBzdXBwbGllZCB3aXRoIHRoZSBqdWRnZW1lbnQuKE5vdEFwcGxpZWQABQTMVGhlIGFjY291bnQgaGFzIG5vdCBhcHBsaWVkIHRvIG1ha2UgYSBwcm9vZi1vZi1pbmsuLE5vdFNlbGVjdGVkAAYEsFRoZSBjYW5kaWRhdGUgaGFzIG5vdCBjb21taXR0ZWQgdG8gYSBkZXNpZ24uJE5vdFByb3ZlbgAHBKxUaGUgY2FuZGlkYXRlIGRpZCBub3QgcHJvdmUgdGhlbXNlbHZlcyB5ZXQuOEFscmVhZHlTdGFydGVkAAgEyFRoZSBjYW5kaWRhdGUgaGFzIGFscmVhZHkgc3RhcnRlZCB0aGVpciBqdWRnZW1lbnQuKE91dE9mUmFuZ2UACQSAVGhlIHBlcnNvbmFsIElEIGlzIG5vdCBpbiByYW5nZS4wQWxyZWFkeVRha2VuAAoEnFRoZSBwZXJzb25hbCBJRCBoYXMgYWxyZWFkeSBiZWVuIHRha2VuLjxOb01vcmVSZWZlcnJhbHMACwS4VGhlIHBlcnNvbiBoYXMgbm8gbW9yZSByZWZlcnJhbHMgbGVmdCB0byBnaXZlLiBUb29FYXJseQAMBGBUaGUgcmVyb2xsIGlzIHRvbyBlYXJseS40RGVzaWduSW52YWxpZAANBKBUaGUgcmVmZXJyZXIncyBkZXNpZ24gaXMgbm90IHByb2NlZHVyYWwuLERlc2lnblRha2VuAA4EnFRoZSByZWZlcnJlcidzIGRlc2lnbiBpcyBhbHJlYWR5IHRha2VuLiRCYWRQYXJlbnQADwQVAVRoZSByZWZlcnJlciBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHBlcnNvbi4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiRCYWRGYW1pbHkAEASAVGhlIGRlc2lnbiBmYW1pbHkgZG9lc24ndCBleGlzdC4sV3JvbmdGYW1pbHkAEQS0VGhlIGRlc2lnbiBmYW1pbHkgaXMgaW52YWxpZCBmb3IgdGhpcyBjaG9pY2UuLEluZGV4VG9vQmlnABIEQQFUaGUgaW5kZXggb2YgdGhlIGRlc2lnbiBvciB2YXJpYW50IGlzIGJleW9uZCB0aGUgYWxsb3dlZCBtYXhpbXVtIGZvciB0aGUgZmFtaWx5LhBCdXN5ABME+FRoZSBzeXN0ZW0gaXMgYnVzeSB3aXRoIHRvbyBtYW55IGNvbW1pdG1lbnRzOyB0cnkgYWdhaW4gbGF0ZXIuGEJhbm5lZAAUBKhUaGUgcGVyc29uIGhhcyBiZWVuIGJhbm5lZCBmcm9tIHJlZmVycmluZy4oSW1wcm9iYWJsZQAVBCUBVGhlIGNhbmRpZGF0ZSBoYXMgbm90IGRlbW9uc3RyYXRlZCBwcm9iYWJseSB0aHJvdWdoIHRoZSBpbml0aWFsIGV2aWRlbmNlLihJZFJlc2VydmVkABYEwFRoZSBwZXJzb25hbCBpZGVudGl0eSBoYXMgYWxyZWFkeSBiZWVuIHJlc2VydmVkLhhJZFVzZWQAFwToVGhlIHBlcnNvbmFsIGlkZW50aXR5IGlzIGFscmVhZHkgdGFrZW4gYnkgYSBwcm92ZW4gcGVyc29uLjRJbnZhbGlkVGlja2V0ABgEfFRoZSB0aWNrZXQgcHJvdmlkZWQgaXMgaW52YWxpZC4gTm9UaWNrZXQAGQTwVGhlIGNhbGxlciBoYXMgbm90IHByb3ZpZGVkIGEgcmVmZXJyYWwgb3IgaW52aXRhdGlvbiB0aWNrZXQuNE5vdEF1dGhvcml6ZWQAGgSkVGhlIGFjY291bnQgaXMgbm90IGF1dGhvcml6ZWQgdG8gZG8gdGhpcy4kTm90UGVyc29uABsEkFRoZSBwZXJzb25hbCBpZGVudGl0eSBkb2Vzbid0IGV4aXN0LkRSZWZlcnJlZENhbmRpZGF0ZQAcBF0BVGhlIGNhbmRpZGF0ZSBpcyByZWZlcnJlZC4gQnV0IHRoZSBvcGVyYXRpb24gcmVxdWlyZXMgdGhlIGNhbmRpZGF0ZSB0byBub3QgYmUgcmVmZXJyZWQuUE5vdFJlZmVycmVkQ2FuZGlkYXRlAB0EXQFUaGUgY2FuZGlkYXRlIGlzIG5vdCByZWZlcnJlZC4gQnV0IHRoZSBvcGVyYXRpb24gcmVxdWlyZXMgdGhlIGNhbmRpZGF0ZSB0byBiZSByZWZlcnJlZC5ITm9SZXdhcmRUb1JlZ2lzdGVyAB4EoFRoZXJlIGlzIG5vIHJlZmVycmFsIHJld2FyZCB0byByZWdpc3Rlci5AUmV3YXJkVG9SZWdpc3RlcgAfBAUBVGhlcmUgaXMgYSBwZW5kaW5nIHJlZmVycmFsIHJld2FyZCB0aGF0IG11c3QgYmUgcmVnaXN0ZXJlZCBmaXJzdC4kTm9JbnZpdGVyACAERE5vIGludml0ZXIgZm91bmQuQEludmFsaWRTaWduYXR1cmUAIQRISW52YWxpZCBzaWduYXR1cmUuJE5vSW52aXRlcwAiBFBObyBpbnZpdGUgYXZhaWxhYmxlLjhBbHJlYWR5SW52aXRlZAAjBFhJbnZpdGUgaXMgYWxyZWFkeSBzZXQuKE5vUmVmZXJyZXIAJAR0VGhlIHJlZmVycmVyIGlzIG5vdCBhIHBlcnNvbi4wTm90UG9pUGVyc29uACUE6FRoZSBpbmRpdmlkdWFsIGlzIG5vdCBhIHBlcnNvbiByZWNvZ25pemVkIGJ5IHByb29mIG9mIGluay5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAJgSIVGhlIHByb29mIG9mIG93bmVyc2hpcCBpcyBpbnZhbGlkLmhJbnZhbGlkUmVpbWJ1cnNlbWVudFZhbHVlcwAnBJRUaGUgcmVpbWJ1cnNlbWVudCB2YWx1ZXMgYXJlIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkUKAAAECM0GCABJCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXM4QXJjaGl2ZWRQbGF5ZXIELEJsb2NrTnVtYmVyATgBCCBLaWNrYWJsZQgBKGZpcnN0X2dhbWU4AQx1MzIAAThhcmNoaXZlZF9zaW5jZTgBLEJsb2NrTnVtYmVyAAAAKFVua2lja2FibGUEAShmaXJzdF9nYW1lOAEMdTMyAAEAAE0KDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcxhQbGF5ZXIELFBsYXlEZXBvc2l0AVEKACQBKGZpcnN0X2dhbWU4AQx1MzIAAShyZWdpc3RlcmVkyAEQYm9vbAABLHNlbnRfcmVwb3J0yAEQYm9vbAABaGVhcmx5X2F0dGVuZGFuY2VfZW5hY3RtZW50VQoBgE9wdGlvbjxFYXJseUF0dGVuZGFuY2VFbmFjdG1lbnQ+AAEoeWVzX3BlcnNvbgwBCHU4AAE0bm9fbm90X3BlcnNvbgwBCHU4AAFgZXhwZWN0ZWRfbWF4X3ZvdGVfd2VpZ2h0LQMBDHUxNgABLHZvdGVfd2VpZ2h0DAEIdTgAASxjcmVkaWJpbGl0eWEKAXhQbGF5ZXJDcmVkaWJpbGl0eTxQbGF5RGVwb3NpdD4AAFEKFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAMQBKEY6OkJhbGFuY2UAAFUKBBhPcHRpb24EBFQBWQoBCBBOb25lAAAAEFNvbWUEAFkKAAABAABZCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNgRWFybHlBdHRlbmRhbmNlRW5hY3RtZW50AAAIAShhdHRlbmRhbmNlyAEQYm9vbAABLGRpc3Bvc2l0aW9uXQoBRFBsYXllckRpc3Bvc2l0aW9uAABdCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNEUGxheWVyRGlzcG9zaXRpb24AAQwQS2VlcAAAADxBcmNoaXZlS2lja2FibGUAAQBEQXJjaGl2ZVVua2lja2FibGUAAgAAYQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzRFBsYXllckNyZWRpYmlsaXR5BCxQbGF5RGVwb3NpdAFRCgEMHEludml0ZWQAAAAoUmVjb2duaXplZAABABxEZXBvc2l0BABRCgEsUGxheURlcG9zaXQAAgAAZQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzIEdhbWVJbmZvBCRBY2NvdW50SWQBBAAoARRpbmRleDgBDHUzMgABRHJlZ2lzdHJhdGlvbl9lbmRzOAEMdTMyAAFAc2h1ZmZsZV9kZWFkbGluZTgBDHUzMgABJGdhbWVfZGF0ZTgBDHUzMgABLHJlcG9ydF9lbmRzOAEMdTMyAAEUc3RhdGVpCgFQR2FtZVN0YXRlPEFjY291bnRJZD4AAThtYXhfZ3JvdXBfc2l6ZTgBDHUzMgABGHJvdW5kcwwBCHU4AAFIcGVuZGluZ19hdHRlbmRhbmNlOAEMdTMyAAFEYWlyZHJvcF9zY2hlZHVsZWTIARBib29sAABpCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMkR2FtZVN0YXRlBCRBY2NvdW50SWQBBAEUMFJlZ2lzdHJhdGlvbgQBRG5leHRfcGxheWVyX2luZGV4OAEMdTMyAAAAHFNodWZmbGUEARBzdGVwbQoBWFNodWZmbGVTdGVwPEFjY291bnRJZD4AAQAkUmVwb3J0aW5nBAEwcGxheWVyX2NvdW50OAEMdTMyAAIANFBsYXllclByb2Nlc3MEARBzdGVwdQoBcFBsYXllclByb2Nlc3NTdGVwPEFjY291bnRJZD4AAwAoQ2FuY2VsbGluZwQBOGxhc3RfaXRlcmF0aW9ucQoBiE9wdGlvbjxBY2NvdW50T3JQZXJzb248QWNjb3VudElkPj4ABAAAbQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzLFNodWZmbGVTdGVwBCRBY2NvdW50SWQBBAEQLFN0ZXAxSW5zZXJ0BAE4bGFzdF9pdGVyYXRpb25xCgGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgAAADRTdGVwMlJldHJpZXZlCAFEbmV4dF9wbGF5ZXJfaW5kZXg4AQx1MzIAAUxyZWNvZ25pemVkX2ZpbmlzaGVkyAEQYm9vbAABAExTdGVwM0NvbXB1dGVXZWlnaHRzCAE4bGFzdF9pdGVyYXRpb25xCgGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgABMHBsYXllcl9jb3VudDgBDHUzMgACAERTdGVwNEF3YWl0U2Vzc2lvbgQBMHBsYXllcl9jb3VudDgBDHUzMgADAABxCgQYT3B0aW9uBARUAc0GAQgQTm9uZQAAABBTb21lBADNBgAAAQAAdQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzRFBsYXllclByb2Nlc3NTdGVwBCRBY2NvdW50SWQBBAEITFN0ZXAxUHJvY2Vzc1BsYXllcnMIAThsYXN0X2l0ZXJhdGlvbnEKAYhPcHRpb248QWNjb3VudE9yUGVyc29uPEFjY291bnRJZD4+AAEwcGxheWVyX2NvdW50OAEMdTMyAAAARFN0ZXAyQ2xlYXJJbmRpY2VzAAEAAHkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAMkDARhWZWM8VD4AAH0KAAAECAw4AIEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAMkDARhWZWM8VD4AAIUKAAAECAwIAIkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBHQQEUwAABAAZBAEYVmVjPFQ+AACNCgAAAxwAAAAMAJEKDERpbmRpdl9wYWxsZXRfZ2FtZRhwYWxsZXQURXJyb3IEBFQAAXwsR2FtZU9uZ29pbmcAAAQ0R2FtZSBvbmdvaW5nLjhOb1JlZ2lzdHJhdGlvbgABBHhObyByZWdpc3RyYXRpb24gcGhhc2Ugb25nb2luZy5ET3V0ZGF0ZWRHYW1lU2V0dXAAAgRYVGhlIHNldHVwIGlzIG91dGRhdGVkLkBJbnZhbGlkR2FtZVNldHVwAAMEOEludmFsaWQgc2V0dXAuNEludmFsaWRSZXBvcnQABAQ8SW52YWxpZCByZXBvcnQuGE5vR2FtZQAFBEBObyBnYW1lIG9uZ29pbmcuLE5vUmVwb3J0aW5nAAYEYE5vIHJlcG9ydCBwaGFzZSBvbmdvaW5nLjROb3RSZWdpc3RlcmVkAAcEPE5vdCByZWdpc3RlcmVkLkRBbHJlYWR5UmVnaXN0ZXJlZAAIBGhQbGF5ZXIgYWxyZWFkeSByZWdpc3RlcmVkLkRSZXBvcnRBbHJlYWR5U2VudAAJBFBSZXBvcnQgYWxyZWFkeSBzZW50LhRFYXJseQAKBGxPcGVyYXRpb24gaXMgbm90IHZhbGlkIHlldC5ETm90S2lja2FibGVQbGF5ZXIACwSYVGhlIG9wZXJhdGlvbiBleHBlY3QgYSBwbGF5ZXIgYWNjb3VudC5ATm9BcmNoaXZlZFBsYXllcgAMBGRObyBhcmNoaXZlZCBwbGF5ZXIgZm91bmQuIE5vVGlja2V0AA0EQE5vIHRpY2tldCBmb3VuZC4kTm9JbnZpdGVzAA4EUE5vIGludml0ZSBhdmFpbGFibGUuOEFscmVhZHlJbnZpdGVkAA8EWEludml0ZSBpcyBhbHJlYWR5IHNldC5ATm90QWNjb3VudFBsYXllcgAQBPhOb3QgYW4gYWNjb3VudCBiYXNlZCBwbGF5ZXIsIGV4cGVjdGVkIGFuIGFjY291bnQgYmFzZWQgcGxheWVyLmhVc2VJbnZpdGVCdXRBbHJlYWR5UGxheWluZwARBMhUaGUgcGxheWVyIGNhbid0IHVzZSBhbiBpbnZpdGUgaWYgYWxyZWFkeSBwbGF5aW5nLlBUb29NYW55R2FtZVNjaGVkdWxlcwASBEEBVGhlIG51bWJlciBvZiBleGlzdGluZyBzY2hlZHVsZXMgYW5kIG5ldyBzY2hlZHVsZXMgZXhjZWVkcyB0aGUgY29uZmlndXJlZCBsaW1pdC5MTm9TdWNoR2FtZVNjaGVkdWxlZAATBCkBVGhlIGdhbWUgdGhhdCB3YXMgc3VwcG9zZWQgdG8gYmUgcmVtb3ZlZCB3YXMgbm90IGZvdW5kIGluIHNjaGVkdWxlZCBnYW1lcy6ASW52YWxpZFN0YXRlbWVudEFjY291bnRTaWduYXR1cmUAFASsVGhlIHN0YXRlbWVudCBhY2NvdW50IHNpZ25hdHVyZSBpcyBpbnZhbGlkLnBTdGF0ZW1lbnRBY2NvdW50QWxyZWFkeUluVXNlABUE7FRoZSBzdGF0ZW1lbnQgYWNjb3VudCBpcyBhbHJlYWR5IGluIHVzZWQgYnkgYW5vdGhlciBwbGF5ZXIuZEludGVybmFsRXJyb3JJbnZhbGlkU3RhdGUAFgR0SW50ZXJuYWwgZXJyb3IgaW52YWxpZCBzdGF0ZS5ASW52YWxpZEdhbWVTdGF0ZQAXBPBUaGUgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgaW4gdGhlIGN1cnJlbnQgZ2FtZSBzdGF0ZS4gTm9QbGF5ZXIAGARATm8gcGxheWVyIGZvdW5kLpBDYW5ub3RPZmZib2FyZFdoaWxlUmVnaXN0ZXJlZEZvckdhbWUAGQTcVGhlIHBsYXllciBjYW5ub3Qgb2ZmYm9hcmQgd2hpbGUgcmVnaXN0ZXJlZCBmb3IgYSBnYW1lLjBJbnZhbGlkU3RhdGUAGgQ0SW52YWxpZCBzdGF0ZUhJbnZhbGlkUGxheURlcG9zaXQAGwTkYHNldF9wbGF5X2RlcG9zaXRgOiB0aGUgc3VwcGxpZWQgYW1vdW50IG11c3QgYmUgbm9uLXplcm8uiEludmFsaWRBaXJkcm9wVnJmVmFyaWFudEZvckFjY291bnQAHACYSW52YWxpZEFpcmRyb3BWcmZWYXJpYW50Rm9yUmVjb2duaXRpb24AHQBUTm90RWxpZ2libGVGb3JBaXJkcm9wAB4IVQFgY2xhaW1fYWlyZHJvcGA6IHRoZSBjbGFpbWFudCBpcyBub3QgcmVjb2duaXplZCBpbiBwYWxsZXQtc2NvcmUsIG9yIHRoZWlyIG1vc3QgcmVjZW509GF0dGVuZGVkIGdhbWUgZG9lcyBub3QgbWF0Y2ggdGhlIGBnYW1lX2luZGV4YCBvZiB0aGUgYWlyZHJvcC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQulQoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyxQYXJ0aWNpcGFudAQcQmFsYW5jZQHEACQBFHNjb3JlOAEMdTMyAAEYc3RyZWFrmQoBGFN0cmVhawABSGF0dGVuZGFuY2VfaGlzdG9yeZ0KAURBdHRlbmRhbmNlSGlzdG9yeQABGGNyZWRpdMQBHEJhbGFuY2UAAShjYXNoZWRfb3V0yAEQYm9vbAABSHJlYWNoZWRfcGVyc29uaG9vZMgBEGJvb2wAAWxoYXNfZXZlcl9yZWFjaGVkX3BlcnNvbmhvb2TIARBib29sAAEscmVjb2duaXRpb26hCgEsUmVjb2duaXRpb24AAUhsYXN0X2F0dGVuZGVkX2dhbWUJAwEsT3B0aW9uPHUzMj4AAJkKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMYU3RyZWFrAAEIIEF0dGVuZGVkBAA4AQx1MzIAAAAYQWJzZW50BAA4AQx1MzIAAQAAnQoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlc0RBdHRlbmRhbmNlSGlzdG9yeQAABAAMAQh1OAAAoQoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyxSZWNvZ25pdGlvbgABEFBFeHRlcm5hbGx5UmVjb2duaXplZAAAADROb3RSZWNvZ25pemVkAAEAJFN1c3BlbmRlZAQAKAEoUGVyc29uYWxJZAACAChSZWNvZ25pemVkBAAoAShQZXJzb25hbElkAAMAAKUKAAAECDjNBgCpCgxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzLFJvdW5kUGF5b3V0BBxCYWxhbmNlAcQAEAFEcmVtYWluaW5nX2JhbGFuY2XEARxCYWxhbmNlAAEscG9pbnRfcHJpY2XEARxCYWxhbmNlAAEkcmVtYWluZGVyxAEcQmFsYW5jZQABMHRvdGFsX3BvaW50czgBDHUzMgAArQoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyRSb3VuZEluZm8ILEJsb2NrTnVtYmVyATgcQmFsYW5jZQHEAAgBJGZpbmlzaF9hdDgBLEJsb2NrTnVtYmVyAAEYY3JlZGl0xAEcQmFsYW5jZQAAsQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG1CgRTAAAEALkKARhWZWM8VD4AALUKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXM4UGF5b3V0U2NoZWR1bGUIHEJhbGFuY2UBxCxCbG9ja051bWJlcgE4AAwBJHJlbWFpbmluZzgBDHUzMgABQGFtb3VudF9wZXJfcm91bmTEARxCYWxhbmNlAAEgZHVyYXRpb244ASxCbG9ja051bWJlcgAAuQoAAAK1CgC9CgxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBRFcnJvcgQEVAABbCROb3RQZXJzb24AAASMVGhlIGNhbGxpbmcgb3JpZ2luIGlzIG5vdCBhIHBlcnNvbi5cSGFzTm90UmVhY2hlZFBlcnNvbmhvb2QAAQSMVGhlIHBlcnNvbiBkaWRuJ3QgcmVhY2ggcGVyc29uaG9vZC4gTm9SZXdhcmQAAgRQTm8gcmV3YXJkIGF2YWlsYWJsZS4cTm9TY29yZQADBIxUaGUgcGVyc29uIGhhcyBubyBhc3NvY2lhdGVkIHNjb3JlLihOb1NjaGVkdWxlAAQEdE5vIHBheW91dCBzY2hlZHVsZSBhdmFpbGFibGUuQFRvb01hbnlTY2hlZHVsZXMABQS0VG9vIG1hbnkgcGF5b3V0IHNjaGVkdWxlcyBhbHJlYWR5IHJlZ2lzdGVyZWQuKFJlY29nbml6ZWQABgQFAVRoZSBwYXJ0aWNpcGFudCBpcyByZWNvZ25pemVkIG9yIGhhcyBiZWVuIHJlY29nbml6ZWQgYXMgYSBwZXJzb24uPENhc2hPdXRDb29sZG93bgAHBMxUaGUgcGFydGljaXBhbnQgaGFzIGFscmVhZHkgY2FzaGVkIG91dCBpbiB0aGlzIGVyYS5gUm91bmRPbkdvaW5nT3JOb1NjaGVkdWxlAAgElFRoZSByb3VuZCBpcyBvbiBnb2luZyBvciBubyBzY2hlZHVsZS4cTm9Sb3VuZAAJBIRUaGUgcGF5b3V0IHJvdW5kIGhhcyBub3Qgc3RhcnRlZC5sQmFkT3JpZ2luTm90UGVyc29uTm90U2lnbmVkAAoE0FRoZSBvcmlnaW4gaXMgbmVpdGhlciBhIHBlcnNvbiBub3IgYSBzaWduZWQgYWNjb3VudC7AQmFkT3JpZ2luTm90UGVyc29uTm90U2lnbmVkTm90QWNjb3VudFBhcnRpY2lwYW50AAsEPQFUaGUgb3JpZ2luIGlzIG5laXRoZXIgYSBwZXJzb24gbm9yIGEgc2lnbmVkIGFjY291bnQgbm9yIGFuIGFjY291bnQgcGFydGljaXBhbnQunEJhZE9yaWdpbk5vdFNpZ25lZE5vdEFjY291bnRQYXJ0aWNpcGFudAAMBAkBVGhlIG9yaWdpbiBpcyBuZWl0aGVyIGEgc2lnbmVkIGFjY291bnQgbm9yIGFuIGFjY291bnQgcGFydGljaXBhbnQuUEFscmVhZHlQYXJ0aWNpcGF0aW5nAA0EpFRoZSBwYXJ0aWNpcGFudCBpcyBhbHJlYWR5IHBhcnRpY2lwYXRpbmcuREtleU11c3RCZVByb3ZpZGVkAA4EZFRoZSBrZXkgbXVzdCBiZSBwcm92aWRlZC5QS2V5TXVzdE5vdEJlUHJvdmlkZWQADwR0VGhlIGtleSBtdXN0IG5vdCBiZSBwcm92aWRlZC5QSGFzUmVhY2hlZFBlcnNvbmhvb2QAEASMSGFzIHJlYWNoZWQgcGVyc29uaG9vZCBpbiB0aGUgcGFzdC5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAEQSIVGhlIHByb29mIG9mIG93bmVyc2hpcCBpcyBpbnZhbGlkLjhXaW5kb3dUb29MYXJnZQASBD0BQW4gYWJzZW5jZSBncmFjZSB0aWVyIGhhcyBhIHdpbmRvdyBleGNlZWRpbmcgdGhlIG1heGltdW0gdHJhY2thYmxlIGhpc3RvcnkgKDgpLlRBbGxvd2VkTWlzc2VzVG9vTGFyZ2UAEwQhAVRoZSBhbGxvd2VkIG1pc3NlcyBtdXN0IGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgd2luZG93IChvciBib3RoIHplcm8pLmBBYnNlbmNlU2NoZWR1bGVOb3RTb3J0ZWQAFAQxAUFic2VuY2UtZ3JhY2UgdGllcnMgbXVzdCBiZSBzb3J0ZWQgYnkgYXNjZW5kaW5nIGBwb3B1bGF0aW9uX3NpemVfdGhyZXNob2xkYC5cUGVyc29uaG9vZFNjaGVkdWxlRW1wdHkAFQQFAVRoZSBwZXJzb25ob29kLXRocmVzaG9sZCBzY2hlZHVsZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHRpZXIucFBlcnNvbmhvb2RTY29yZVRocmVzaG9sZFplcm8AFgTcQSBwZXJzb25ob29kLXRocmVzaG9sZCB0aWVyIGhhcyBgc2NvcmVfdGhyZXNob2xkID09IDBgLoBQZXJzb25ob29kU2NvcmVUaHJlc2hvbGRUb29MYXJnZQAXBPxBIHBlcnNvbmhvb2QtdGhyZXNob2xkIHRpZXIgZXhjZWVkcyBgTUFYX1BFUlNPTkhPT0RfVEhSRVNIT0xEYC5sUGVyc29uaG9vZFNjaGVkdWxlTm90U29ydGVkABgI2FBlcnNvbmhvb2QtdGhyZXNob2xkIHRpZXJzIG11c3QgYmUgc29ydGVkIGJ5IGFzY2VuZGluZ3BgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAueFBlcnNvbmhvb2RTY2hlZHVsZU5vdE1vbm90b25pYwAZCBEBUGVyc29uaG9vZC10aHJlc2hvbGQgYHNjb3JlX3RocmVzaG9sZGAgdmFsdWVzIG11c3QgYmUgbm9uLWRlY3JlYXNpbmf0YWNyb3NzIHRpZXJzIChhIGxhcmdlciBwb3B1bGF0aW9uIG11c3Qgbm90IGhhdmUgYSBsb3dlciBiYXIpLmhQZXJzb25ob29kU2NoZWR1bGVOb3RUb3RhbAAaCPRUaGUgbGFzdCBwZXJzb25ob29kLXRocmVzaG9sZCB0aWVyIG11c3QgY292ZXIgYWxsIHBvcHVsYXRpb25zqChgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZCA9PSB1MzI6Ok1BWGApLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7BCgxYaW5kaXZfcGFsbGV0X2R1bW15X2RpbRhwYWxsZXQYUmVjb3JkBAxLZXkBCAAIAQxrZXkIAQxLZXkAASRzdXNwZW5kZWTIARBib29sAADFCgxYaW5kaXZfcGFsbGV0X2R1bW15X2RpbRhwYWxsZXQURXJyb3IEBFQAARAkTm90UGVyc29uAAAE3FRoZSBwZXJzb25hbCBJRCBkb2VzIG5vdCBiZWxvbmcgdG8gYSByZWNvZ25pemVkIHBlcnNvbi4wTm90U3VzcGVuZGVkAAEE2FRoZSBwZXJzb25hbCBJRCBkb2VzIG5vdCBiZWxvbmcgdG8gYSBzdXNwZW5kZWQgcGVyc29uLixOb3RSZXNlcnZlZAACBORUaGUgcGVyc29uYWwgSUQgaXMgbm90IHJlc2VydmVkIGFuZCBhd2FpdGluZyByZWNvZ25pdGlvbi40VG9vTWFueVBlb3BsZQADBMBUaGUgb3BlcmF0aW9uIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBtYW55IHBlb3BsZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuyQoMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRR0eXBlczhMaXRlUGVyc29uSW5mbwgYTWVtYmVyAQgYTWV0aG9kAc0KAAgBMHJpbmdfdnJmX2tleQgBGE1lbWJlcgABGG1ldGhvZM0KARhNZXRob2QAAM0KDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUUdHlwZXNEUmVjb2duaXRpb25NZXRob2QEHEFjY291bnQBBAEEMFVuaXF1ZURldmljZQQABAEcQWNjb3VudAAAAADRCgxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlGHBhbGxldBRFcnJvcgQEVAABLFhOb0F0dGVzdGF0aW9uQWxsb3dhbmNlAAAEZE5vIGF0dGVzdGF0aW9uIGFsbG93YW5jZS5sSW52YWxpZEF0dGVzdGF0aW9uU2lnbmF0dXJlAAEE8FRoZSBzaWduYXR1cmUgY3JlYXRlZCBieSB0aGUgY2FuZGlkYXRlJ3MgYWNjb3VudCBpcyBpbnZhbGlkLlxJbnZhbGlkUHJvb2ZPZk93bmVyc2hpcAACBAUBVGhlIHNpZ25hdHVyZSBjcmVhdGVkIGJ5IHRoZSBjYW5kaWRhdGUncyByaW5nIHZyZiBrZXkgaXMgaW52YWxpZC5EQWxyZWFkeVJlZ2lzdGVyZWQAAwSQVGhlIGNhbmRpZGF0ZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPEtleUFscmVhZHlJblVzZQAEBPBUaGUgcmluZyBWUkYga2V5IGlzIGFscmVhZHkgZW5yb2xsZWQgYnkgYW5vdGhlciBsaXRlIHBlcnNvbi4wQWNjb3VudEluVXNlAAUEeFRoZSBhY2NvdW50IGlzIGFscmVhZHkgaW4gdXNlLlhBbGlhc0FjY291bnRBbHJlYWR5U2V0AAYE5FRoZSBhbGlhcyA8LT4gYWNjb3VudCBtYXBwaW5nIGlzIGFscmVhZHkgc2V0IGFuZCBjdXJyZW50LkhBbGlhc0FjY291bnROb3RTZXQABwSkVGhlIGFsaWFzIDwtPiBhY2NvdW50IG1hcHBpbmcgaXMgbm90IHNldC5MQ2FsbEJsb2NrT3V0T2ZSYW5nZQAIBCEBVGhlIHJlcXVlc3RlZCBhbGlhcyBzZXR1cCBibG9jayB3aW5kb3cgaXMgaW52YWxpZCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suTEludmFsaWRBbGlhc0NvbnRleHQACQR0VGhlIGFsaWFzIGNvbnRleHQgaXMgaW52YWxpZC54TGl0ZVBlb3BsZUNvbGxlY3Rpb25Ob3RDcmVhdGVkAAoE/FRoZSBsaXRlIHBlb3BsZSBtZW1iZXIgY29sbGVjdGlvbiBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7VCgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlczBDb25zdW1lckluZm8AABABOGlkZW50aWZpZXJfa2V53QMBXENvbW11bmljYXRpb25JZGVudGlmaWVyAAE0ZnVsbF91c2VybmFtZX0EAUBPcHRpb248VXNlcm5hbWU+AAE0bGl0ZV91c2VybmFtZXkEASBVc2VybmFtZQABLGNyZWRpYmlsaXR52QoBLENyZWRpYmlsaXR5AADZCgxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlcyxDcmVkaWJpbGl0eQABCBBMaXRlAAAAGFBlcnNvbgwBFGFsaWFzCAEUQWxpYXMAASxsYXN0X3VwZGF0ZSgBDHU2NAABHGRlbW90ZWTIARBib29sAAEAAN0KAAAECOEKCADhCgw0aW5kaXZfc3VwcG9ydBR1dGlsczBCaWdFbmRpYW5VMzIAAwQAAAAMBBkBQSB1MzIgZW5jb2RlZCBpbiBiaWctZW5kaWFuIGZvcm1hdCBmb3IgY29ycmVjdCBsZXhpY29ncmFwaGljIG9yZGVyaW5nLuUKDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzXFN0bXRTdG9yZUFsbG93YW5jZUVudHJ5BARUAAAMAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEMc2VxOAEMdTMyAAEUc2luY2UoAQx1NjQAAOkKAAAECATtCgDtCgAABAzhCjgIAPEKDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzZEZyaWVuZFJlcXVlc3RSZWdpc3RyYXRpb24EHEFjY291bnQBBAAIAShhY2NvdW50X2lkBAEcQWNjb3VudAABJHJlZmVyZW5jZYkEAVhGcmllbmRSZXF1ZXN0UmVmZXJlbmNlAAD1CgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfkKBFMAAAQA/QoBGFZlYzxUPgAA+QoMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXNUUmVzZXJ2YXRpb25RdWV1ZUVudHJ5BBxBY2NvdW50AQQACAEcYWNjb3VudAQBHEFjY291bnQAASRqb2luZWRfYXQoAQx1NjQAAP0KAAAC+QoAAQsISHNwX3N0YXRlbWVudF9zdG9yZUhTdGF0ZW1lbnRBbGxvd2FuY2UAAAgBJG1heF9jb3VudDgBDHUzMgABIG1heF9zaXplOAEMdTMyAAAFCwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxhwYWxsZXQURXJyb3IEBFQAAWA8SW52YWxpZFVzZXJuYW1lAAAEnFVzZXJuYW1lIGRvZXMgbm90IGZpdCB0aGUgcmVxdWlyZW1lbnRzLjRVc2VybmFtZVRha2VuAAEEaFVzZXJuYW1lIGlzIGFscmVhZHkgdGFrZW4uREFscmVhZHlSZWdpc3RlcmVkAAIEfENvbnN1bWVyIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAAwScUHJvdmlkZWQgcHJvb2Ygb2Ygb3duZXJzaGlwIGlzIGludmFsaWQuNE5vdFJlZ2lzdGVyZWQABAScUGVyc29uIGlzIG5vdCByZWdpc3RlcmVkIGFzIGEgY29uc3VtZXIuNE5vdEZ1bGxQZXJzb24ABQR4Q29uc3VtZXIgaXMgbm90IGEgZnVsbCBwZXJzb24uNFRvdWNoTm90UmVhZHkABgTMQXR0ZW1wdGVkIHRvIHVwZGF0ZSBwZXJzb24gYXV0aG9yaXphdGlvbiB0b28gZWFybHkuNE5vUmVzZXJ2YXRpb24ABwRoUmVzZXJ2YXRpb24gaXMgbm90IGFjdGl2ZS5QTm90UmVzZXJ2YXRpb25Ib2xkZXIACAQVAVRoZSBsaW5rZWQgbGl0ZSBpZGVudGl0eSBpcyBub3QgdGhlIGFjdGl2ZSBob2xkZXIgb2YgdGhlIHJlc2VydmF0aW9uLmBVc2VybmFtZVJlc2VydmF0aW9uVGFrZW4ACQTkVGhlIHVzZXJuYW1lIGluIHRoZSByZXNlcnZhdGlvbiByZXF1ZXN0IGlzIGFscmVhZHkgdGFrZW4uQFJlc2VydmF0aW9uRnJlc2gACgSAVGhlIHJlc2VydmF0aW9uIGhhcyBub3QgZXhwaXJlZC5ATm9MaW5rZWRJZGVudGl0eQALBJxUaGVyZSBpcyBubyBsaXRlIGNvbnN1bWVyIHRvIGJlIGxpbmtlZC40QWxyZWFkeUxpbmtlZAAMBPhUaGUgbGl0ZSBjb25zdW1lciBpcyBhbHJlYWR5IGxpbmtlZCB0byBhIGZ1bGwgcGVyc29uIGNvbnN1bWVyLlBQZXJzb25BdXRoTm90RXhwaXJlZAANBLxUaGUgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiBoYXMgbm90IGV4cGlyZWQgeWV0LjhBbHJlYWR5RGVtb3RlZAAOBJBUaGUgcGVyc29uIGhhcyBhbHJlYWR5IGJlZW4gZGVtb3RlZC4kUXVldWVGdWxsAA8EgFF1ZXVlIGZvciB0aGlzIHVzZXJuYW1lIGlzIGZ1bGwuKE5vdEluUXVldWUAEAS4QWNjb3VudCBpcyBub3QgaW4gdGhlIHF1ZXVlIGZvciB0aGlzIHVzZXJuYW1lLlRBbHJlYWR5SGFzUmVzZXJ2YXRpb24AEQTcQWNjb3VudCBhbHJlYWR5IGhhcyBhIHJlc2VydmF0aW9uIGZvciBhbm90aGVyIHVzZXJuYW1lLnBJbnZhbGlkRnJpZW5kUmVxdWVzdFNlcXVlbmNlABIE0EZyaWVuZCByZXF1ZXN0IHNlcXVlbmNlIGlzIGludmFsaWQgZm9yIHRoZSBjb25zdW1lci5oSW52YWxpZEZyaWVuZFJlcXVlc3RQZXJpb2QAEwTARnJpZW5kIHJlcXVlc3QgcGVyaW9kIGlzIG5vdCB0aGUgY3VycmVudCBwZXJpb2QujEZyaWVuZFJlcXVlc3RSZWdpc3RyYXRpb25Ob3RFeHBpcmVkABQEvEZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbiBpcyBub3QgZXhwaXJlZCB5ZXQumEZyaWVuZFJlcXVlc3RSZWdpc3RyYXRpb25BbHJlYWR5RXhpc3RzABUEBQFGcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gYWxyZWFkeSBleGlzdHMgZm9yIHRoZSBhbGlhcy9jb250ZXh0LnBTdG10U3RvcmVSZXBsYWNlbWVudFRvb0Vhcmx5ABYEGQFUaGUgcmVwbGFjZW1lbnQgY29vbGRvd24gaGFzIG5vdCBlbGFwc2VkIHNpbmNlIHRoZSBlbnRyeSB3YXMgbGFzdCBzZXQujExvbmdUZXJtU3RvcmFnZUNsZWFudXBMaW1pdEV4Y2VlZGVkABcE7FRoZSBwcm92aWRlZCBgbGltaXRgIGV4Y2VlZHMgYExvbmdUZXJtU3RvcmFnZUNsZWFudXBMaW1pdGAuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgkLAAAECJEEOAANCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARELBFMAAAQAGQsBGFZlYzxUPgAAEQsMbGluZGl2X3BhbGxldF9jaHVua3NfbWFuYWdlchhwYWxsZXQ4VW5jaGVja2VkQ2h1bmsEBFQAAAQAFQsBIFQ6OkNodW5rAAAVCwwodmVyaWZpYWJsZRByaW5nLFN0YXRpY0NodW5rAANgAAAADAAZCwAAAhELAB0LDGxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXIYcGFsbGV0FEVycm9yBARUAAEMNENodW5rTm90Rm91bmQAAASgVGhlIHJlcXVlc3RlZCBjaHVuayBpbmRleCBkb2Vzbid0IGV4aXN0LjRJbnZhbGlkQ2h1bmtzAAEEsFRoZSBwcm92aWRlZCBjaHVuayBkYXRhIGNvdWxkbid0IGJlIGRlY29kZWQuREludmFsaWRDaHVua1JhbmdlAAIE3FRoZSBzdGFydCBpbmRleCBpc24ndCBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGVuZCBpbmRleC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuIQsMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzOENvbGxlY3Rpb25JbmZvCBxBY2NvdW50AQQgTG9jYXRpb24B4AAQARRvd25lciULAYhDb2xsZWN0aW9uT3duZXI8QWNjb3VudCwgTG9jYXRpb24+AAEQbW9kZSkLASBSaW5nTW9kZQABJHJpbmdfc2l6ZZEEATBSaW5nRXhwb25lbnQAAVBzZWxmX2luY2x1c2lvbl9kZWxheRUDASxPcHRpb248dTY0PgAAJQsMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzPENvbGxlY3Rpb25Pd25lcggcQWNjb3VudAEEIExvY2F0aW9uAeABCCBFeHRlcm5hbAQA4AEgTG9jYXRpb24AAAAUTG9jYWwEAAQBHEFjY291bnQAAQAAKQsQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkgUmluZ01vZGUAAQgoQXBwZW5kT25seQAAACBGbGV4aWJsZQABAAAtCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABACxAwEYVmVjPFQ+AAAxCwAABAgIOAA1CwxQaW5kaXZfcGFsbGV0X21lbWJlcnMUdHlwZXMgUmluZ1Jvb3QEBFQAAAwBEHJvb3Q5CwEwTWVtYmVyc09mPFQ+AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEwaW50ZXJtZWRpYXRlPQsBREludGVybWVkaWF0ZU9mPFQ+AAA5CwwodmVyaWZpYWJsZRByaW5nRE1lbWJlcnNDb21taXRtZW50AAMAAwAADAA9CwwodmVyaWZpYWJsZRByaW5nKE1lbWJlcnNTZXQAA1ADAAAMAEELAAAEDAg44QoARQsMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzHE9sZFJvb3QEBFQAAAgBEHJvb3Q5CwEwTWVtYmVyc09mPFQ+AAEsYXJjaGl2ZWRfYXQoAQx1NjQAAEkLAAAEDAg4OABNCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABACxAwEYVmVjPFQ+AABRCxA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eShSaW5nU3RhdHVzAAAMARR0b3RhbDgBDHUzMgABIGluY2x1ZGVkOAEMdTMyAAE8aW1tdXRhYmxlX3NpbmNlFQMBLE9wdGlvbjx1NjQ+AABVCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATgEUwAABADJAwEYVmVjPFQ+AABZCwAABAgICABdCxA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eTBSaW5nUG9zaXRpb24AAQwoT25ib2FyZGluZwgBKHF1ZXVlX3BhZ2U4ASRQYWdlSW5kZXgAASRxdWV1ZWRfYXQoAQx1NjQAAAAgSW5jbHVkZWQMAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEkcmluZ19wYWdlOAEkUGFnZUluZGV4AAE0cmluZ19wb3NpdGlvbjgBDHUzMgABACRTdXNwZW5kZWQAAgAAYQsQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHlAUmluZ01lbWJlcnNTdGF0ZQAABAEQbW9kZWULAUBSaW5nTXV0YXRpb25Nb2RlAABlCxA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eUBSaW5nTXV0YXRpb25Nb2RlAAEIKEFwcGVuZE9ubHkAAAAgTXV0YXRpbmcEAAwBCHU4AAEAAGkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEALEDARhWZWM8VD4AAG0LDFBpbmRpdl9wYWxsZXRfbWVtYmVycxhwYWxsZXQURXJyb3IEBFQAAXAkTm90TWVtYmVyAAAE0FRoZSBzdXBwbGllZCBpZGVudGlmaWVyIGRvZXMgbm90IHJlcHJlc2VudCBhIG1lbWJlci4YTm9Sb290AAEERFJpbmcgaGFzIG5vIHJvb3QuMEludmFsaWRQcm9vZgACBFRUaGUgcHJvb2YgaXMgaW52YWxpZC4oSW5jb21wbGV0ZQADBAUBVGhlIHJvb3QgY2Fubm90IGJlIGZpbmFsaXplZCBhcyB0aGVyZSBhcmUgc3RpbGwgdW5wdXNoZWQgbWVtYmVycy44VG9vTWFueU1lbWJlcnMABASIVG9vIG1hbnkgbWVtYmVycyBoYXZlIGJlZW4gcHVzaGVkLjxLZXlBbHJlYWR5SW5Vc2UABQSUS2V5IGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgbWVtYmVyLixLZXlOb3RGb3VuZAAGBKBUaGUgb2xkIGtleSB3YXMgbm90IGZvdW5kIHdoZW4gZXhwZWN0ZWQuMENvdWxkTm90UHVzaAAHBJBDb3VsZCBub3QgcHVzaCBtZW1iZXIgaW50byB0aGUgcmluZy4sSW52YWxpZFJpbmcACASsUmluZyBjYW5ub3QgYmUgbWVyZ2VkIGlmIGl0J3MgdGhlIHRvcCByaW5nLkhTdXNwZW5zaW9uc1BlbmRpbmcACQTkUmluZyBjYW5ub3QgYmUgYnVpbHQgd2hpbGUgdGhlcmUgYXJlIHN1c3BlbnNpb25zIHBlbmRpbmcuXFJpbmdBYm92ZU1lcmdlVGhyZXNob2xkAAoE1FJpbmcgY2Fubm90IGJlIG1lcmdlZCBpZiBpdCdzIG5vdCBiZWxvdyAxLzIgY2FwYWNpdHkuSEludmFsaWRTdXNwZW5zaW9ucwALBKBTdXNwZW5zaW9uIGluZGljZXMgcHJvdmlkZWQgYXJlIGludmFsaWQuQE5vUmVtb3ZhbFNlc3Npb24ADAQtAUEgbXV0YXRpbmcgYWN0aW9uIHdhcyBxdWV1ZWQgd2hlbiB0aGVyZSB3YXMgbm8gcmVtb3ZhbCBzZXNzaW9uIGluIHByb2dyZXNzLmxDb3VsZE5vdFN0YXJ0UmVtb3ZhbFNlc3Npb24ADQScQSByZW1vdmFsIHNlc3Npb24gY291bGQgbm90IGJlIHN0YXJ0ZWQuYFJlbW92YWxTZXNzaW9uSW5Qcm9ncmVzcwAOBOhDYW5ub3QgbWVyZ2UgcmluZ3Mgd2hpbGUgYSByZW1vdmFsIHNlc3Npb24gaXMgaW4gcHJvZ3Jlc3MuTEtleUFscmVhZHlTdXNwZW5kZWQADwhVAUludmFsaWQgc3VzcGVuc2lvbiBvZiBhIGtleSBiZWxvbmdpbmcgdG8gYSBtZW1iZXIgd2hvc2UgaW5kZXggaW4gdGhlIHJpbmcgaGFzIGFscmVhZHm4YmVlbiBpbmNsdWRlZCBpbiB0aGUgcGVuZGluZyBzdXNwZW5zaW9ucyBsaXN0LlRJbnZhbGlkT25ib2FyZGluZ1NpemUAEAToVGhlIG9uYm9hcmRpbmcgc2l6ZSBtdXN0IG5vdCBleGNlZWQgdGhlIG1heGltdW0gcmluZyBzaXplLkBJbnZhbGlkTWVtYmVyS2V5ABEErFRoZSBtZW1iZXIga2V5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIGNyeXB0by5IQ29sbGVjdGlvbk5vdEZvdW5kABIEeFRoZSBjb2xsZWN0aW9uIGRvZXMgbm90IGV4aXN0LlxDb2xsZWN0aW9uQWxyZWFkeUV4aXN0cwATBHhUaGUgY29sbGVjdGlvbiBhbHJlYWR5IGV4aXN0cy5IVG9vTWFueUNvbGxlY3Rpb25zABQEkFRvbyBtYW55IGNvbGxlY3Rpb25zIGZvciB0aGlzIG93bmVyLmhJbnZhbGlkUmluZ1NpemVGb3JGbGV4aWJsZQAVBBEBRmxleGlibGUgY29sbGVjdGlvbnMgbXVzdCB1c2UgdGhlIE1heEZsZXhpYmxlUmluZ0V4cG9uZW50IHJpbmcgc2l6ZS5MSW52YWxpZFJpbmdFeHBvbmVudAAWBIxUaGUgcmluZyBleHBvbmVudCBpcyBub3Qgc3VwcG9ydGVkLkxQcmVtYXR1cmVPbmJvYXJkaW5nABcEtEluc3VmZmljaWVudCBtZW1iZXJzIGluIHRoZSBxdWV1ZSB0byBvbmJvYXJkLmxDb2xsZWN0aW9uTWFya2VkRm9yRGVsZXRpb24AGAT0VGhlIGNvbGxlY3Rpb24gaXMgbWFya2VkIGZvciBkZWxldGlvbiBhbmQgY2Fubm90IGJlIG1vZGlmaWVkLkhOb3RDb2xsZWN0aW9uT3duZXIAGQS4VGhlIGNhbGxlciBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSBjb2xsZWN0aW9uLjROb3RPbmJvYXJkaW5nABoEqFRoZSBtZW1iZXIgaXMgbm90IGluIHRoZSBvbmJvYXJkaW5nIHF1ZXVlLjhOb3RoaW5nVG9CdWlsZAAbBHxUaGVyZSBpcyBubyByaW5nIHJvb3QgdG8gYnVpbGQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnELDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQoTG9ja2VkQ29pbgAACAEYcmVhc29udQsBKExvY2tSZWFzb24AARR1bnRpbCgBDHU2NAAAdQsMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldChMb2NrUmVhc29uAAEEOEZhaWxlZERpc3BhdGNoBAEccmV0cmllcwwBCHU4AAAAAHkLAAAEDHUDOAgAfQsAAAQIdQM4AIELDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQURXJyb3IEBFQAAYRQTWVtYmVyS2V5QWxyZWFkeVVzZWQAAABASW52YWxpZE1lbWJlcktleQABADRJbnRlcm5hbEVycm9yAAIAXFJlY3ljbGVyQWxyZWFkeVVubG9hZGVkAAMAUEludmFsaWRDb25zb2xpZGF0aW9uAAQATENvbnNvbGlkYXRpb25Ub29CaWcABQA8Q29pblZhbHVlVG9vQmlnAAYARENvaW5WYWx1ZVRvb1NtYWxsAAcAWENvaW5WYWx1ZUlzTGVzc1RoYW5GZWUACABMQ29pblZhbHVlT3V0T2ZCb3VuZAAJAGBMb3NzeUNvaW5WYWx1ZUNvbnZlcnNpb24ACgghAVRoZSBjb2luIHZhbHVlIGNhbm5vdCBiZSBsb3NzbGVzc2x5IGNvbnZlcnRlZCB0byBhbiBhc3NldCBhbW91bnQgYmVjYXVzZfRgVW5kZXJseWluZ0Fzc2V0VW5pdGAgaXMgbm90IGV2ZW5seSBkaXZpc2libGUgYnkgYDJefHZhbHVlfGAuREludmFsaWRBbGlhc1Byb29mAAsATE5vVW5sb2FkaW5nUmVjeWNsZXIADABUUHJvb2ZBbmRBbGlhc01pc21hdGNoAA0AOE5vdGhpbmdUb0J1aWxkAA4AMFRvb01hbnlSaW5ncwAPAFRBZGRyZXNzQWxyZWFkeUhhc0NvaW4AEABcSW52YWxpZFByb29mT2ZPd25lcnNoaXAAEQAsRW1wdHlJbnB1dHMAEgBAUmVjeWNsZXJNaXNtYXRjaAATBAkBVGhlIGZlZSByZWN5Y2xlciBpbiB0aGUgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRoZSBjYWxsJ3MgcmVjeWNsZXIuYEluc3VmZmljaWVudFVubG9hZEZvckZlZQAUBLxUaGUgdG90YWwgdW5sb2FkZWQgYW1vdW50IGlzIGxlc3MgdGhhbiB0aGUgZmVlLkRBbGlhc05vdFByZW1hcmtlZAAVBDkBVGhlIGZpcnN0IGFsaWFzIHdhcyBub3QgcHJlLW1hcmtlZCBieSBleHRlbnNpb24gKHJlcXVpcmVkIGZvciBGcm9tT3V0cHV0IGZlZSkuXEludmFsaWRSZWN5Y2xlclJldmlzaW9uABYESQFUaGUgcmVjeWNsZXIgcmV2aXNpb24gZG9lcyBub3QgbWF0Y2ggKHJlY3ljbGVyIG1heSBub3QgZXhpc3Qgb3IgaGFzIGJlZW4gcmVidWlsdCkuMEludmFsaWRTcGxpdAAXAERGcmVzaENvaW5SZXF1aXJlZAAYBMhUaGlzIG9wZXJhdGlvbiByZXF1aXJlcyBhIGZyZXNoIGNvaW4gKGBhZ2UgPT0gMGApLmhDYW5ub3RDb252ZXJ0TmF0aXZlVG9Bc3NldAAZAGhNYXhGZWVOb3RBbGxvd2VkRm9yUHJlcGFpZAAaBLxXaGVuIHVzaW5nIFByZXBhaWQgZmVlIG1vZGUsIG1heF9mZWUgbXVzdCBiZSAwLkhNYXhGZWVFeGNlZWRzSW5wdXQAGwSoVGhlIG1heF9mZWUgZXhjZWVkcyB0aGUgdG90YWwgaW5wdXQgdmFsdWUuNEludmFsaWRNYXhGZWUAHATYVGhlIG1heCBmZWUgYXJndW1lbnQgZG9lc24ndCBzYXRpc2Z5IHRoZSByZXF1aXJlbWVudHMueENhbm5vdENyZWF0ZVJlY3ljbGVyQ29sbGVjdGlvbgAdBCkBVGhlIHJlY3ljbGVyIGNvbGxlY3Rpb24gZG9lcyBub3QgZXhpc3QgYW5kIGNvdWxkIG5vdCBiZSBjcmVhdGVkIG9uLWRlbWFuZC40QXNzZXRJZE5vdFNldAAeBLRUaGUgdW5kZXJseWluZyBhc3NldCBpZCBoYXMgbm90IGJlZW4gc2V0IHlldC5EQXNzZXRJZEFscmVhZHlTZXQAHwQNAVRoZSB1bmRlcmx5aW5nIGFzc2V0IGlkIGhhcyBhbHJlYWR5IGJlZW4gc2V0IGFuZCBjYW5ub3QgYmUgY2hhbmdlZC4wVW5rbm93bkFzc2V0ACAEJQFUaGUgcHJvcG9zZWQgdW5kZXJseWluZyBhc3NldCBpZCBkb2VzIG5vdCBleGlzdCBpbiBbYENvbmZpZzo6RnVuZ2libGVzYF0uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LoULAAAECAkDCQMAiQsEGE9wdGlvbgQEVAFRCwEIEE5vbmUAAAAQU29tZQQAUQsAAAEAAI0LBBhPcHRpb24EBFQBcQMBCBBOb25lAAAAEFNvbWUEAHEDAAABAACRCwQYT3B0aW9uBARUAXUDAQgQTm9uZQAAABBTb21lBAB1AwAAAQAAlQsMdGluZGl2X3BhbGxldF9tZW1iZXJzX25vdGlmaWVyFHR5cGVzOFN1YnNjcmliZXJJbmZvBARUAAAMASxjb2xsZWN0aW9uc+kEARkBQm91bmRlZFZlYzwoSWRlbnRpZmllciwgUmluZ0V4cG9uZW50KSwgVDo6TWF4Q29sbGVjdGlvbnNQZXJTdWJzY3JpYmVyPgABSGxhc3RfaW5pdF9zZXF1ZW5jZSgBOFNlcXVlbmNlTnVtYmVyAAEwcGFsbGV0X2luZGV4DAEIdTgAAJkLDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchR0eXBlcyxQYWdpbmdTdGF0ZQQsQmxvY2tOdW1iZXIBOAAMASh3cml0ZV9wYWdlLQMBDHUxNgABJHNlbmRfcGFnZS0DAQx1MTYAAURsYXN0X3VwZGF0ZV9ibG9jazgBLEJsb2NrTnVtYmVyAACdCwAABAwtAwg4AKELDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchR0eXBlc0BQZW5kaW5nSW5pdFN0YXRlBARUAAAYASxjb2xsZWN0aW9uc+kEARkBQm91bmRlZFZlYzwoSWRlbnRpZmllciwgUmluZ0V4cG9uZW50KSwgVDo6TWF4Q29sbGVjdGlvbnNQZXJTdWJzY3JpYmVyPgABYGN1cnJlbnRfY29sbGVjdGlvbl9pbmRleDgBDHUzMgABQGFmdGVyX3JpbmdfaW5kZXgJAwFET3B0aW9uPFJpbmdJbmRleD4AASBzZXF1ZW5jZSgBOFNlcXVlbmNlTnVtYmVyAAEsc291cmNlX3RpbWUoAQx1NjQAATBwYWxsZXRfaW5kZXgMAQh1OAAApQsMdGluZGl2X3BhbGxldF9tZW1iZXJzX25vdGlmaWVyFHR5cGVzWEJhdGNoRGlzdHJpYnV0aW9uU3RhdGUELEJsb2NrTnVtYmVyATgAEAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgABLHNvdXJjZV90aW1lKAEMdTY0AAEkc2VhbGVkX2F0OAEsQmxvY2tOdW1iZXIAAVRyZW1haW5pbmdfc3Vic2NyaWJlcnM4AQx1MzIAAKkLAAAECJwIAK0LDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchhwYWxsZXQURXJyb3IEBFQAATRIU3Vic2NyaWJlck5vdEZvdW5kAAAEVFN1YnNjcmliZXIgbm90IGZvdW5kLkRBbHJlYWR5U3Vic2NyaWJlZAABBGhTdWJzY3JpYmVyIGFscmVhZHkgZXhpc3RzLkhUb29NYW55U3Vic2NyaWJlcnMAAgRwTWF4aW11bSBzdWJzY3JpYmVycyByZWFjaGVkLlhJbnZhbGlkQ29sbGVjdGlvbnNMaXN0AAMEPQFDb2xsZWN0aW9ucyBsaXN0IG11c3QgYmUgc29ydGVkIGluIHN0cmljdGx5IGFzY2VuZGluZyBvcmRlciB3aXRoIG5vIGR1cGxpY2F0ZXMuOFRvb01hbnlVcGRhdGVzAAQE0FRvbyBtYW55IHJpbmcgcm9vdCB1cGRhdGVzIHRvIGZpdCBpbiBhIHNpbmdsZSBiYXRjaC40WGNtU2VuZEZhaWxlZAAFBEBYQ00gc2VuZCBmYWlsZWQuZE5vdFN1YnNjcmliZWRUb0NvbGxlY3Rpb24ABgTkU3Vic2NyaWJlciBpcyBub3Qgc3Vic2NyaWJlZCB0byB0aGUgcmVxdWVzdGVkIGNvbGxlY3Rpb24uQEludmFsaWRSaW5nSW5kZXgABwSAUmluZyByb290IGluZGV4IGlzIG91dCBvZiByYW5nZS5YRXhjZWVkc0NoYW5uZWxDYXBhY2l0eQAIBAEBUmVxdWVzdGVkIHVwZGF0ZXMgZXhjZWVkIHRoZSBzdWJzY3JpYmVyJ3MgSFJNUCBjaGFubmVsIGNhcGFjaXR5LjROb0JhdGNoQWN0aXZlAAkEXE5vIGFjdGl2ZSBiYXRjaCBleGlzdHMuNE5vUGVuZGluZ0luaXQACgS4Tm8gcGVuZGluZyBpbml0aWFsaXphdGlvbiBmb3IgdGhpcyBzdWJzY3JpYmVyLlBSZXBsYXlDb29sZG93bkFjdGl2ZQALBA0BUmVwbGF5IGNvb2xkb3duIGhhcyBub3QgZWxhcHNlZCBmb3IgdGhpcyBzdWJzY3JpYmVyIGFuZCBjb2xsZWN0aW9uLkBFbXB0eVJpbmdJbmRpY2VzAAwE5FJlcGxheSByZXF1ZXN0ZWQgd2l0aCBhbiBlbXB0eSBsaXN0IG9mIHJpbmcgcm9vdCBpbmRpY2VzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6xCwxQaW5kaXZfcGFsbGV0X2FpcmRyb3AUdHlwZXMsQWN0aXZlRXZlbnQIHEFzc2V0SWQB4DBBc3NldEJhbGFuY2UBxAAMAQhpZAgBHEV2ZW50SWQAARBpbmZvAQUBgEV2ZW50SW5mbzxBc3NldElkLCBBc3NldEJhbGFuY2U+AAEYc3RhdHVztQsBGFN0YXR1cwAAtQsMUGluZGl2X3BhbGxldF9haXJkcm9wFHR5cGVzGFN0YXR1cwABHCRTY2hlZHVsZWQAAAAsUmVnaXN0ZXJpbmcEAUh0b3RhbF9wYXJ0aWNpcGFudHM4AQx1MzIAAQAsRHJhd1dpbm5lcnMQAUh0b3RhbF9wYXJ0aWNpcGFudHM4AQx1MzIAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABNHdpbm5lcnNfYWRkZWQ4AQx1MzIAATxmcm9tX3dpbm5lcl9rZXn1BgE0QmlnRW5kaWFuVTI1NgACACBDbGFpbWluZwwBSHRvdGFsX3BhcnRpY2lwYW50czgBDHUzMgABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAEcY2xhaW1lZDgBDHUzMgADAFRDbGVhcmluZ1JlZ2lzdHJhdGlvbnMQAUh0b3RhbF9wYXJ0aWNpcGFudHM4AQx1MzIAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABHGNsYWltZWQ4AQx1MzIAAVRjbGVhbmVkX3JlZ2lzdHJhdGlvbnM4AQx1MzIABAA8Q2xlYXJpbmdXaW5uZXJzEAFIdG90YWxfcGFydGljaXBhbnRzOAEMdTMyAAFEZWZmZWN0aXZlX3dpbm5lcnM4AQx1MzIAARxjbGFpbWVkOAEMdTMyAAE8Y2xlYW5lZF93aW5uZXJzOAEMdTMyAAUAKEZpbmFsaXppbmcIAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABHGNsYWltZWQ4AQx1MzIABgAAuQsAAAQIvQsIAL0LDDRpbmRpdl9zdXBwb3J0FHV0aWxzMEJpZ0VuZGlhblU2NAADCAAAAAwEGQFBIHU2NCBlbmNvZGVkIGluIGJpZy1lbmRpYW4gZm9ybWF0IGZvciBjb3JyZWN0IGxleGljb2dyYXBoaWMgb3JkZXJpbmcuwQsAAAQICPUGAMULAAAECAj5BgDJCwxQaW5kaXZfcGFsbGV0X2FpcmRyb3AYcGFsbGV0FEVycm9yBARUAAFQUFByaXplQmVsb3dNaW5CYWxhbmNlAAAATE5vV2lubmVyc0NvbmZpZ3VyZWQAAQA4VG9vTWFueVdpbm5lcnMAAgBESW52YWxpZEV2ZW50VGltZXMAAwBARHVwbGljYXRlRXZlbnRJZAAEAEBOb1NjaGVkdWxlZEV2ZW50AAUAMFVua25vd25FdmVudAAGACxXcm9uZ1N0YXR1cwAHBOBPcGVyYXRpb24gcmVxdWlyZXMgYSBzcGVjaWZpYyBzdGF0dXMgdGhlIGV2ZW50IGlzbid0IGluLmROb3RBY2NlcHRpbmdSZWdpc3RyYXRpb25zAAgALE5vdENsYWltaW5nAAkAUENsYWltaW5nV2luZG93Q2xvc2VkAAoEtENsYWltIGF0dGVtcHRlZCBhZnRlciB0aGUgZXZlbnQncyBgZW5kX3RpbWVgLkBFbnRyb3B5U2xvdFRha2VuAAsAPEludmFsaWRWcmZQcm9vZgAMAFRVbnN1cHBvcnRlZEFjY291bnRLZXkADQQJAVN1cHBsaWVkIGFjY291bnQgaWQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbnkgc3IyNTUxOSBwdWJsaWMga2V5LlhJbnZhbGlkTWVtYmVyc2hpcFByb29mAA4AME5vU3VjaFdpbm5lcgAPAExQYXJ0aWNpcGFudE92ZXJmbG93ABAAXFByaXplQWxsb2NhdGlvbk92ZXJmbG93ABEAPEFzc2V0Tm90RW5hYmxlZAASBOBUaGUgcHJpemUgYXNzZXQgaGFzIG5vdCBiZWVuIGVuYWJsZWQgdmlhIGBlbmFibGVfYXNzZXRgLkxBc3NldEFscmVhZHlFbmFibGVkABME/GBlbmFibGVfYXNzZXRgIHdhcyBjYWxsZWQgZm9yIGFuIGFzc2V0IHRoYXQgaXMgYWxyZWFkeSBlbmFibGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7NCwxMaW5kaXZfcGFsbGV0X2hvbm91chR0eXBlcyRQb2ludEluZm8AABABHHN1YmplY3QIASRTdWJqZWN0SWQAATRzdWJqZWN0X2FsaWFzCAEwU3ViamVjdEFsaWFzAAEkZGlyZWN0aW9uDQUBJERpcmVjdGlvbgABMGxhc3RfdXNlZF9hdCgBHFNlY29uZHMAANELDExpbmRpdl9wYWxsZXRfaG9ub3VyGHBhbGxldBRFcnJvcgQEVAABDChBcml0aG1ldGljAAAECQFBcml0aG1ldGljIGVycm9yIGxpa2Ugb3Zlci91bmRlcmZsb3csIGRpdmlzaW9uIGJ5IHplcm8gb3Igc2ltaWxhci5MU3ViamVjdEFscmVhZHlWb3RlZAABBPxUaGVyZSBpcyBhbHJlYWR5IGEgdm90ZSBieSB0aGUgc2FtZSB2b3RlciBmb3IgdGhlIHNhbWUgc3ViamVjdC4wSW52YWxpZFByb29mAAIEsFRoZSBwcm92aWRlZCByaW5nIHByb29mIGZhaWxlZCB2ZXJpZmljYXRpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtULDIxpbmRpdl9wYWxsZXRfc3RvcmFnZV9pbml0aWFsaXphdGlvbhhwYWxsZXQsT25Qb2xsU3RhdGUAASQgSW5hY3RpdmUAAAA0Q3JlYXRpbmdBc3NldAABAEBYY21GdW5kc1RyYW5zZmVyAAIAOFZlcmlmeWluZ0Z1bmRzAAMALEZ1bmRpbmdQb3RzAAQAmFNldHRpbmdQZW9wbGVMaXRlQXR0ZXN0YXRpb25BbGxvd2FuY2VzAAUAYFNjaGVkdWxpbmdNb2JSdWxlUGF5b3V0cwAGAFhTY2hlZHVsaW5nU2NvcmVQYXlvdXRzAAcAEERvbmUACAAA2QsMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBRFcnJvcgQEVAABBBxPbmdvaW5nAAAE6FRoZSBvcGVyYXRpb24gY2Fubm90IGNvbXBsZXRlIHNpbmNlIHNvbWUgTUJNcyBhcmUgb25nb2luZy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu3QsIRHBhbGxldF9taWdyYXRpb25zME1ibUlzT25nb2luZwABDAxZZXMAAAAITm8AAQAUU3R1Y2sAAgAA4QsEGE9wdGlvbgQEVAHlCwEIEE5vbmUAAAAQU29tZQQA5QsAAAEAAOULCERwYWxsZXRfbWlncmF0aW9ucyxNYm1Qcm9ncmVzcwAAEAFEY3VycmVudF9taWdyYXRpb244AQx1MzIAAUB0b3RhbF9taWdyYXRpb25zOAEMdTMyAAFcY3VycmVudF9taWdyYXRpb25fc3RlcHM4AQx1MzIAAWxjdXJyZW50X21pZ3JhdGlvbl9tYXhfc3RlcHMJAwEsT3B0aW9uPHUzMj4AAOkLCERwYWxsZXRfbWlncmF0aW9ucyRNYm1TdGF0dXMAAAwBHG9uZ29pbmfdCwEwTWJtSXNPbmdvaW5nAAEgcHJvZ3Jlc3PhCwFMT3B0aW9uPE1ibVByb2dyZXNzPgABIHByZWZpeGVzNAEwVmVjPFZlYzx1OD4+AADtCwhIc3BfY29uc2Vuc3VzX3Nsb3RzMFNsb3REdXJhdGlvbgAABAAoAQx1NjQAAPELEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2skTGF6eUJsb2NrCBhIZWFkZXIBXCRFeHRyaW5zaWMBYQcACAEYaGVhZGVyXAEYSGVhZGVyAAEoZXh0cmluc2ljc/ULAVBWZWM8T3BhcXVlRXh0cmluc2ljPgAA9QsAAAL5CwD5Cwgoc3BfcnVudGltZTxPcGFxdWVFeHRyaW5zaWMAAAQAGAEcVmVjPHU4PgAA/QsIKHNwX3J1bnRpbWVYRXh0cmluc2ljSW5jbHVzaW9uTW9kZQABCDRBbGxFeHRyaW5zaWNzAAAANE9ubHlJbmhlcmVudHMAAQAAAQwIHHNwX2NvcmU4T3BhcXVlTWV0YWRhdGEAAAQAGAEcVmVjPHU4PgAABQwEGE9wdGlvbgQEVAEBDAEIEE5vbmUAAAAQU29tZQQAAQwAAAEAAAkMDDRmcmFtZV9zdXBwb3J0OHZpZXdfZnVuY3Rpb25zOFZpZXdGdW5jdGlvbklkAAAIARhwcmVmaXjBAQEgW3U4OyAxNl0AARhzdWZmaXjBAQEgW3U4OyAxNl0AAA0MBBhSZXN1bHQIBFQBGARFAREMAQgIT2sEABgAAAAADEVycgQAEQwAAAEAABEMDDRmcmFtZV9zdXBwb3J0OHZpZXdfZnVuY3Rpb25zZFZpZXdGdW5jdGlvbkRpc3BhdGNoRXJyb3IAAQw4Tm90SW1wbGVtZW50ZWQAAAAgTm90Rm91bmQEAAkMAThWaWV3RnVuY3Rpb25JZAABABRDb2RlYwACAAAVDAQYUmVzdWx0CARUAaUGBEUBGQwBCAhPawQApQYAAAAADEVycgQAGQwAAAEAABkMDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBAAdDAFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EACEMAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAHQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAE0EENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAMAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgBUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAsANFVua25vd25PcmlnaW4ADAAAIQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQADAEIdTgAAgAAJQwIMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGEpDAGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAKQwEIEJUcmVlTWFwCARLAb0BBFYBGAAEAC0MAAAALQwAAAIxDAAxDAAABAi9ARgANQwIMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2thecgBEGJvb2wAASxmYXRhbF9lcnJvcsgBEGJvb2wAARhlcnJvcnMlDAEwSW5oZXJlbnREYXRhAAA5DAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAAD0MBBhSZXN1bHQIBFQBQQwERQEZDAEICE9rBABBDAAAAAAMRXJyBAAZDAAAAQAAQQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkoAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXM0AUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXM0AUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5KAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGXIARBib29sAABFDAwoc3Bfc2Vzc2lvbixydW50aW1lX2FwaWhPcGFxdWVHZW5lcmF0ZWRTZXNzaW9uS2V5cwAACAEQa2V5cxgBHFZlYzx1OD4AARRwcm9vZhgBHFZlYzx1OD4AAEkMBBhPcHRpb24EBFQBTQwBCBBOb25lAAAAEFNvbWUEAE0MAAABAABNDAAAAlEMAFEMAAAECBi1CABVDAxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXNMUnVudGltZURpc3BhdGNoSW5mbwgcQmFsYW5jZQHEGFdlaWdodAHVAQAMARh3ZWlnaHTVAQEYV2VpZ2h0AAEUY2xhc3MJBgE0RGlzcGF0Y2hDbGFzcwABLHBhcnRpYWxfZmVlxAEcQmFsYW5jZQAAWQwMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzKEZlZURldGFpbHMEHEJhbGFuY2UBxAAIATRpbmNsdXNpb25fZmVlXQwBdE9wdGlvbjxJbmNsdXNpb25GZWU8QmFsYW5jZT4+AAEMdGlwxAEcQmFsYW5jZQAAXQwEGE9wdGlvbgQEVAFhDAEIEE5vbmUAAAAQU29tZQQAYQwAAAEAAGEMDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlczBJbmNsdXNpb25GZWUEHEJhbGFuY2UBxAAMASBiYXNlX2ZlZcQBHEJhbGFuY2UAARxsZW5fZmVlxAEcQmFsYW5jZQABTGFkanVzdGVkX3dlaWdodF9mZWXEARxCYWxhbmNlAABlDAQYUmVzdWx0CARUAWkMBEUBbQwBCAhPawQAaQwAAAAADEVycgQAbQwAAAEAAGkMAAACEQMAbQwMQHhjbV9ydW50aW1lX2FwaXMQZmVlcxRFcnJvcgABGDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQBMV2VpZ2h0Tm90Q29tcHV0YWJsZQACAExVbmhhbmRsZWRYY21WZXJzaW9uAAMANEFzc2V0Tm90Rm91bmQABAAoVW5yb3V0YWJsZQAFAABxDAQYUmVzdWx0CARUAdUBBEUBbQwBCAhPawQA1QEAAAAADEVycgQAbQwAAAEAAHUMBBhSZXN1bHQIBFQBxARFAW0MAQgIT2sEAMQAAAAADEVycgQAbQwAAAEAAHkMBBhSZXN1bHQIBFQB2QIERQFtDAEICE9rBADZAgAAAAAMRXJyBABtDAAAAQAAfQwEGFJlc3VsdAgEVAGBDARFAaUMAQgIT2sEAIEMAAAAAAxFcnIEAKUMAAABAACBDAxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuRENhbGxEcnlSdW5FZmZlY3RzBBRFdmVudAH9BQAQAUBleGVjdXRpb25fcmVzdWx0hQwBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAE4ZW1pdHRlZF9ldmVudHORDAEoVmVjPEV2ZW50PgABJGxvY2FsX3hjbZUMAWBPcHRpb248VmVyc2lvbmVkWGNtPCgpPj4AAThmb3J3YXJkZWRfeGNtc5kMAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAAhQwEGFJlc3VsdAgEVAGJDARFAY0MAQgIT2sEAIkMAAAAAAxFcnIEAI0MAAABAACJDAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQb3N0RGlzcGF0Y2hJbmZvAAAIATRhY3R1YWxfd2VpZ2h0pQIBOE9wdGlvbjxXZWlnaHQ+AAEgcGF5c19mZWUNBgEQUGF5cwAAjQwIKHNwX3J1bnRpbWVkRGlzcGF0Y2hFcnJvcldpdGhQb3N0SW5mbwQQSW5mbwGJDAAIASRwb3N0X2luZm+JDAEQSW5mbwABFGVycm9yEQYBNERpc3BhdGNoRXJyb3IAAJEMAAAC/QUAlQwEGE9wdGlvbgQEVAGVAQEIEE5vbmUAAAAQU29tZQQAlQEAAAEAAJkMAAACnQwAnQwAAAQISQGhDAChDAAAApUBAKUMDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW4URXJyb3IAAQg0VW5pbXBsZW1lbnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAAKkMBBhSZXN1bHQIBFQBrQwERQGlDAEICE9rBACtDAAAAAAMRXJyBAClDAAAAQAArQwMQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkBYY21EcnlSdW5FZmZlY3RzBBRFdmVudAH9BQAMAUBleGVjdXRpb25fcmVzdWx0iQYBHE91dGNvbWUAAThlbWl0dGVkX2V2ZW50c5EMAShWZWM8RXZlbnQ+AAE4Zm9yd2FyZGVkX3hjbXOZDAG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AALEMBBhSZXN1bHQIBFQBBARFAbUMAQgIT2sEAAQAAAAADEVycgQAtQwAAAEAALUMDEB4Y21fcnVudGltZV9hcGlzLGNvbnZlcnNpb25zFEVycm9yAAEILFVuc3VwcG9ydGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAAuQwIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlNENvbGxhdGlvbkluZm8AABgBPHVwd2FyZF9tZXNzYWdlczQBSFZlYzxVcHdhcmRNZXNzYWdlPgABTGhvcml6b250YWxfbWVzc2FnZXPhBwFgVmVjPE91dGJvdW5kSHJtcE1lc3NhZ2U+AAFMbmV3X3ZhbGlkYXRpb25fY29kZb0MAYxPcHRpb248cmVsYXlfY2hhaW46OlZhbGlkYXRpb25Db2RlPgABbHByb2Nlc3NlZF9kb3dud2FyZF9tZXNzYWdlczgBDHUzMgABOGhybXBfd2F0ZXJtYXJrOAFgcmVsYXlfY2hhaW46OkJsb2NrTnVtYmVyAAEkaGVhZF9kYXRhTAEgSGVhZERhdGEAAL0MBBhPcHRpb24EBFQBwQwBCBBOb25lAAAAEFNvbWUEAMEMAAABAADBDAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAAYARxWZWM8dTg+AADFDAQYUmVzdWx0CARUARAERQElBwEICE9rBAAQAAAAAAxFcnIEACUHAAABAADJDAQYT3B0aW9uBARUASUHAQgQTm9uZQAAABBTb21lBAAlBwAAAQAAzQwAAAIlBwDRDAhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZTBSdW50aW1lRXJyb3IAAXwYU3lzdGVtBABVBwFwZnJhbWVfc3lzdGVtOjpFcnJvcjxSdW50aW1lPgAAADxQYXJhY2hhaW5TeXN0ZW0EAPEHAbxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtOjpFcnJvcjxSdW50aW1lPgABACBCYWxhbmNlcwQAKQgBfHBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZT4ACgBET3JpZ2luUmVzdHJpY3Rpb24EAD0IAbxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uOjpFcnJvcjxSdW50aW1lPgANABhBc3NldHMEAGkIAXRwYWxsZXRfYXNzZXRzOjpFcnJvcjxSdW50aW1lPgAOADBBc3NldHNIb2xkZXIEAHkIAZBwYWxsZXRfYXNzZXRzX2hvbGRlcjo6RXJyb3I8UnVudGltZT4ADwAkQXNzZXRSYXRlBAB9CAGEcGFsbGV0X2Fzc2V0X3JhdGU6OkVycm9yPFJ1bnRpbWU+ABAARENvbGxhdG9yU2VsZWN0aW9uBACVCAGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXJyb3I8UnVudGltZT4AFQAcU2Vzc2lvbgQAuQgBeHBhbGxldF9zZXNzaW9uOjpFcnJvcjxSdW50aW1lPgAWACRYY21wUXVldWUEAPUIAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgAeACxQb2xrYWRvdFhjbQQAXQkBaHBhbGxldF94Y206OkVycm9yPFJ1bnRpbWU+AB8AME1lc3NhZ2VRdWV1ZQQAfQkBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgAiABxVdGlsaXR5BACBCQF4cGFsbGV0X3V0aWxpdHk6OkVycm9yPFJ1bnRpbWU+ACgAIE11bHRpc2lnBACRCQF8cGFsbGV0X211bHRpc2lnOjpFcnJvcjxSdW50aW1lPgApABBTdWRvBACVCQFscGFsbGV0X3N1ZG86OkVycm9yPFJ1bnRpbWU+ACoAFFByb3h5BAC5CQFwcGFsbGV0X3Byb3h5OjpFcnJvcjxSdW50aW1lPgAsABhQZW9wbGUEAMEJAYxpbmRpdl9wYWxsZXRfcGVvcGxlOjpFcnJvcjxSdW50aW1lPgAzABxNb2JSdWxlBAAFCgGUaW5kaXZfcGFsbGV0X21vYl9ydWxlOjpFcnJvcjxSdW50aW1lPgA0AChQcm9vZk9mSW5rBABBCgGkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6RXJyb3I8UnVudGltZT4ANQAQR2FtZQQAkQoBhGluZGl2X3BhbGxldF9nYW1lOjpFcnJvcjxSdW50aW1lPgA3ABRTY29yZQQAvQoBiGluZGl2X3BhbGxldF9zY29yZTo6RXJyb3I8UnVudGltZT4AOAAgRHVtbXlEaW0EAMUKAZhpbmRpdl9wYWxsZXRfZHVtbXlfZGltOjpFcnJvcjxSdW50aW1lPgA7AChQZW9wbGVMaXRlBADRCgGgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlOjpFcnJvcjxSdW50aW1lPgA+ACRSZXNvdXJjZXMEAAULAZhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzOjpFcnJvcjxSdW50aW1lPgA/ADRDaHVua3NNYW5hZ2VyBAAdCwGsaW5kaXZfcGFsbGV0X2NodW5rc19tYW5hZ2VyOjpFcnJvcjxSdW50aW1lPgBAABxNZW1iZXJzBABtCwGQaW5kaXZfcGFsbGV0X21lbWJlcnM6OkVycm9yPFJ1bnRpbWU+AEMAHENvaW5hZ2UEAIELAZBpbmRpdl9wYWxsZXRfY29pbmFnZTo6RXJyb3I8UnVudGltZT4ARAA8TWVtYmVyc05vdGlmaWVyBACtCwG0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXI6OkVycm9yPFJ1bnRpbWU+AEUAHEFpcmRyb3AEAMkLAZBpbmRpdl9wYWxsZXRfYWlyZHJvcDo6RXJyb3I8UnVudGltZT4ARgAYSG9ub3VyBADRCwGMaW5kaXZfcGFsbGV0X2hvbm91cjo6RXJyb3I8UnVudGltZT4ARwBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEANkLAYRwYWxsZXRfbWlncmF0aW9uczo6RXJyb3I8UnVudGltZT4AYgAArBhTeXN0ZW0BGFN5c3RlbVAcQWNjb3VudAEBBAIE5QVBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACABOggVGhlIGZ1bGwgYWNjb3VudCBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQgSUQuADhFeHRyaW5zaWNDb3VudAAAOAQABLggVG90YWwgZXh0cmluc2ljcyBjb3VudCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suAEBJbmhlcmVudHNBcHBsaWVkAQDIBAAEpCBXaGV0aGVyIGFsbCBpbmhlcmVudHMgaGF2ZSBiZWVuIGFwcGxpZWQuACxCbG9ja1dlaWdodAEA8QUYAAAAAAAABIggVGhlIGN1cnJlbnQgd2VpZ2h0IGZvciB0aGUgYmxvY2suACRCbG9ja1NpemUAADgEAAywIFRvdGFsIHNpemUgKGluIGJ5dGVzKSBvZiB0aGUgY3VycmVudCBibG9jay4AyCBUcmFja3MgdGhlIHNpemUgb2YgdGhlIGhlYWRlciBhbmQgYWxsIGV4dHJpbnNpY3MuACRCbG9ja0hhc2gBAQQFODyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmCBNYXAgb2YgYmxvY2sgbnVtYmVycyB0byBibG9jayBoYXNoZXMuADRFeHRyaW5zaWNEYXRhAQEEBTgYBAAEPQEgRXh0cmluc2ljcyBkYXRhIGZvciB0aGUgY3VycmVudCBibG9jayAobWFwcyBhbiBleHRyaW5zaWMncyBpbmRleCB0byBpdHMgZGF0YSkuABhOdW1iZXIBADgQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLgAoUGFyZW50SGFzaAEAPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwIEhhc2ggb2YgdGhlIHByZXZpb3VzIGJsb2NrLgAYRGlnZXN0AQBkBAAE8CBEaWdlc3Qgb2YgdGhlIGN1cnJlbnQgYmxvY2ssIGFsc28gcGFydCBvZiB0aGUgYmxvY2sgaGVhZGVyLgAYRXZlbnRzAQD1BQQAHKAgRXZlbnRzIGRlcG9zaXRlZCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suAB0BIE5PVEU6IFRoZSBpdGVtIGlzIHVuYm91bmQgYW5kIHNob3VsZCB0aGVyZWZvcmUgbmV2ZXIgYmUgcmVhZCBvbiBjaGFpbi7QIEl0IGNvdWxkIG90aGVyd2lzZSBpbmZsYXRlIHRoZSBQb1Ygc2l6ZSBvZiBhIGJsb2NrLgAtASBFdmVudHMgaGF2ZSBhIGxhcmdlIGluLW1lbW9yeSBzaXplLiBCb3ggdGhlIGV2ZW50cyB0byBub3QgZ28gb3V0LW9mLW1lbW9yefwganVzdCBpbiBjYXNlIHNvbWVvbmUgc3RpbGwgcmVhZHMgdGhlbSBmcm9tIHdpdGhpbiB0aGUgcnVudGltZS4AKEV2ZW50Q291bnQBADgQAAAAAAS4IFRoZSBudW1iZXIgb2YgZXZlbnRzIGluIHRoZSBgRXZlbnRzPFQ+YCBsaXN0LgAsRXZlbnRUb3BpY3MBAQQCPBUHBAAoJQEgTWFwcGluZyBiZXR3ZWVuIGEgdG9waWMgKHJlcHJlc2VudGVkIGJ5IFQ6Okhhc2gpIGFuZCBhIHZlY3RvciBvZiBpbmRleGVzlCBvZiBldmVudHMgaW4gdGhlIGA8RXZlbnRzPFQ+PmAgbGlzdC4AUQEgQWxsIHRvcGljIHZlY3RvcnMgaGF2ZSBkZXRlcm1pbmlzdGljIHN0b3JhZ2UgbG9jYXRpb25zIGRlcGVuZGluZyBvbiB0aGUgdG9waWMuIFRoaXNFASBhbGxvd3MgbGlnaHQtY2xpZW50cyB0byBsZXZlcmFnZSB0aGUgY2hhbmdlcyB0cmllIHN0b3JhZ2UgdHJhY2tpbmcgbWVjaGFuaXNtIGFuZOQgaW4gY2FzZSBvZiBjaGFuZ2VzIGZldGNoIHRoZSBsaXN0IG9mIGV2ZW50cyBvZiBpbnRlcmVzdC4AWQEgVGhlIHZhbHVlIGhhcyB0aGUgdHlwZSBgKEJsb2NrTnVtYmVyRm9yPFQ+LCBFdmVudEluZGV4KWAgYmVjYXVzZSBpZiB3ZSB1c2VkIG9ubHkganVzdE0BIHRoZSBgRXZlbnRJbmRleGAgdGhlbiBpbiBjYXNlIGlmIHRoZSB0b3BpYyBoYXMgdGhlIHNhbWUgY29udGVudHMgb24gdGhlIG5leHQgYmxvY2sBASBubyBub3RpZmljYXRpb24gd2lsbCBiZSB0cmlnZ2VyZWQgdGh1cyB0aGUgZXZlbnQgbWlnaHQgYmUgbG9zdC4ASExhc3RSdW50aW1lVXBncmFkZQAAHQcEAARVASBTdG9yZXMgdGhlIGBzcGVjX3ZlcnNpb25gIGFuZCBgc3BlY19uYW1lYCBvZiB3aGVuIHRoZSBsYXN0IHJ1bnRpbWUgdXBncmFkZSBoYXBwZW5lZC4AREJsb2Nrc1RpbGxVcGdyYWRlAAAMBAAE7CBOdW1iZXIgb2YgYmxvY2tzIHRpbGwgdGhlIHBlbmRpbmcgY29kZSB1cGdyYWRlIGlzIGFwcGxpZWQuAFRVcGdyYWRlZFRvVTMyUmVmQ291bnQBAMgEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuAGBVcGdyYWRlZFRvVHJpcGxlUmVmQ291bnQBAMgEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC4AOEV4ZWN1dGlvblBoYXNlAAANBwQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suAERBdXRob3JpemVkVXBncmFkZQAAKQcEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgBgRXh0cmluc2ljV2VpZ2h0UmVjbGFpbWVkAQDVAQgAABygIFRoZSB3ZWlnaHQgcmVjbGFpbWVkIGZvciB0aGUgZXh0cmluc2ljLgAhASBUaGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSBleHRyaW5zaWMgZXhlY3V0aW9uLiEBIE1vcmUgcHJlY2lzZWx5IHRoaXMgaW5mb3JtYXRpb24gaXMgcmVtb3ZlZCBpbiBgbm90ZV9hcHBsaWVkX2V4dHJpbnNpY2AuAHEBIExvZ2ljIGRvaW5nIHNvbWUgcG9zdCBkaXNwYXRjaCB3ZWlnaHQgcmVkdWN0aW9uIG11c3QgdXBkYXRlIHRoaXMgc3RvcmFnZSB0byBhdm9pZCBkdXBsaWNhdGUsIHJlZHVjdGlvbi4AASQAAQEGABgwQmxvY2tXZWlnaHRzLQeJAQcA8gUqAQALACBKqdEBAgCAAgJlzR0AAQvAVg3vRQECAMABAQsAmPc+XQECAOABAQAAAmXNHQABC8DeX1m6AQIAYAIBCwAgSqnRAQIAgAIBBwCIUmp0AgCgAAJlzR0AAAAABNAgQmxvY2sgJiBleHRyaW5zaWNzIHdlaWdodHM6IGJhc2UgdmFsdWVzIGFuZCBsaW1pdHMuACxCbG9ja0xlbmd0aDkHNAAAPAAAAFAAAABQAAAEqCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBibG9jayAoaW4gYnl0ZXMpLgA4QmxvY2tIYXNoQ291bnQ4EAAQAAAEVQEgTWF4aW11bSBudW1iZXIgb2YgYmxvY2sgbnVtYmVyIHRvIGJsb2NrIGhhc2ggbWFwcGluZ3MgdG8ga2VlcCAob2xkZXN0IHBydW5lZCBmaXJzdCkuACBEYldlaWdodEEHQEB4fQEAAAAAAOH1BQAAAAAECQEgVGhlIHdlaWdodCBvZiBydW50aW1lIGRhdGFiYXNlIG9wZXJhdGlvbnMgdGhlIHJ1bnRpbWUgY2FuIGludm9rZS4AHFZlcnNpb25FB8kERG5leHQtcGVvcGxlLXBhc2VvRG5leHQtcGVvcGxlLXBhc2VvAQAAAF1CDwAAAAAAVN1xjVzFMmLUAQAAAATnBSGg09L4AQAAANe92KJyyg1lAgAAAN9qy2iZB2CbBQAAADfjl/x8kfXkAgAAAMzZ3mOWyJnKAQAAAED+OtQB+JWaBgAAANK8mJfu0I8VAwAAAPeLJ4vlP0VMAgAAAKs8BXIpH+uLAgAAALydiZBPW5I/AQAAADfIuxNQqaKoBAAAAPP/FNWrUnBZAwAAAG/1LuhY5sW9AgAAAJGxyLFjKOuSAgAAAJ/7UFqnONacAQAAANC6x75KawkgAQAAAJKH+w4CG8hUAQAAAIQ7b4zsgJjHAQAAAOqT4/FvPWliAwAAAPvFd7nXR+/WAQAAAAMAAAABBIQgR2V0IHRoZSBjaGFpbidzIGluLWNvZGUgdmVyc2lvbi4AKFNTNThQcmVmaXgtAwgqABSoIFRoZSBkZXNpZ25hdGVkIFNTNTggcHJlZml4IG9mIHRoaXMgY2hhaW4uADkBIFRoaXMgcmVwbGFjZXMgdGhlICJzczU4Rm9ybWF0IiBwcm9wZXJ0eSBkZWNsYXJlZCBpbiB0aGUgY2hhaW4gc3BlYy4gUmVhc29uIGlzMQEgdGhhdCB0aGUgcnVudGltZSBzaG91bGQga25vdyBhYm91dCB0aGUgcHJlZml4IGluIG9yZGVyIHRvIG1ha2UgdXNlIG9mIGl0IGFzcCBhbiBpZGVudGlmaWVyIG9mIHRoZSBjaGFpbi4AAVUHABwsUnVudGltZUNhbGwgBIwgVGhlIGFnZ3JlZ2F0ZWQgYFJ1bnRpbWVDYWxsYCB0eXBlLhROb25jZTgESQEgVGhpcyBzdG9yZXMgdGhlIG51bWJlciBvZiBwcmV2aW91cyB0cmFuc2FjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGEgc2VuZGVyIGFjY291bnQuEEhhc2g8BJggVGhlIG91dHB1dCBvZiB0aGUgYEhhc2hpbmdgIGZ1bmN0aW9uLhxIYXNoaW5nWQcEIQEgVGhlIGhhc2hpbmcgc3lzdGVtIChhbGdvcml0aG0pIGJlaW5nIHVzZWQgaW4gdGhlIHJ1bnRpbWUgKGUuZy4gQmxha2UyKS4kQWNjb3VudElkBATIIFRoZSB1c2VyIGFjY291bnQgaWRlbnRpZmllciB0eXBlIGZvciB0aGUgcnVudGltZS4UQmxvY2tdBwhhASBUaGUgQmxvY2sgdHlwZSB1c2VkIGJ5IHRoZSBydW50aW1lLiBUaGlzIGlzIHVzZWQgYnkgYGNvbnN0cnVjdF9ydW50aW1lYCB0byByZXRyaWV2ZSB0aGXMIGV4dHJpbnNpY3Mgb3Igb3RoZXIgYmxvY2sgc3BlY2lmaWMgZGF0YSBhcyBuZWVkZWQuLEFjY291bnREYXRh6QUIYQEgRGF0YSB0byBiZSBhc3NvY2lhdGVkIHdpdGggYW4gYWNjb3VudCAob3RoZXIgdGhhbiBub25jZS90cmFuc2FjdGlvbiBjb3VudGVyLCB3aGljaCB0aGlzZCBwYWxsZXQgZG9lcyByZWdhcmRsZXNzKS4AAAAAPFBhcmFjaGFpblN5c3RlbQE8UGFyYWNoYWluU3lzdGVtfDxCbG9ja1dlaWdodE1vZGUAAHUHBAAYfCBUaGUgY3VycmVudCBibG9jayB3ZWlnaHQgbW9kZS4AdQEgVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSBtYXhpbXVtIGFsbG93ZWQgYmxvY2sgd2VpZ2h0LCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWVIIFtgYmxvY2tfd2VpZ2h0YF0uACUBIEtpbGxlZCBpbiBbYFNlbGY6Om9uX2luaXRpYWxpemVgXSBhbmQgc2V0IGJ5IHRoZSBbYGJsb2NrX3dlaWdodGBdIGxvZ2ljLgBEUHJldmlvdXNDb3JlQ291bnQAAHkHBAAMBQEgVGhlIGNvcmUgY291bnQgYXZhaWxhYmxlIHRvIHRoZSBwYXJhY2hhaW4gaW4gdGhlIHByZXZpb3VzIGJsb2NrLgB1ASBUaGlzIGlzIG1haW5seSB1c2VkIGZvciBvZmZjaGFpbiBmdW5jdGlvbmFsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCB0YXJnZXQgYmxvY2sgd2VpZ2h0LgBEVW5pbmNsdWRlZFNlZ21lbnQBAH0HBAAYSQEgTGF0ZXN0IGluY2x1ZGVkIGJsb2NrIGRlc2NlbmRhbnRzIHRoZSBydW50aW1lIGFjY2VwdGVkLiBJbiBvdGhlciB3b3JkcywgdGhlc2UgYXJlYQEgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGJsb2NrIHdoaWNoIGhhdmUgbm90IGJlZW4gaW5jbHVkZWQgaW4gdGhlIG9ic2VydmVkTCByZWxheS1jaGFpbiBzdGF0ZS4AdQEgVGhlIHNlZ21lbnQgbGVuZ3RoIGlzIGxpbWl0ZWQgYnkgdGhlIGNhcGFjaXR5IHJldHVybmVkIGZyb20gdGhlIFtgQ29uc2Vuc3VzSG9va2BdIGNvbmZpZ3VyZWQ8IGluIHRoZSBwYWxsZXQuAGxBZ2dyZWdhdGVkVW5pbmNsdWRlZFNlZ21lbnQAAKUHBAAMaQEgU3RvcmFnZSBmaWVsZCB0aGF0IGtlZXBzIHRyYWNrIG9mIGJhbmR3aWR0aCB1c2VkIGJ5IHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgYWxvbmcgd2l0aCB0aGUtASBsYXRlc3QgSFJNUCB3YXRlcm1hcmsuIFVzZWQgZm9yIGxpbWl0aW5nIHRoZSBhY2NlcHRhbmNlIG9mIG5ldyBibG9ja3Mgd2l0aJAgcmVzcGVjdCB0byByZWxheSBjaGFpbiBjb25zdHJhaW50cy4AVFBlbmRpbmdWYWxpZGF0aW9uQ29kZQEAGAQAGFkBIEluIGNhc2Ugb2YgYSBzY2hlZHVsZWQgdXBncmFkZSwgdGhpcyBzdG9yYWdlIGZpZWxkIGNvbnRhaW5zIHRoZSB2YWxpZGF0aW9uIGNvZGUgdG8gYmUkIGFwcGxpZWQuAD0BIEFzIHNvb24gYXMgdGhlIHJlbGF5IGNoYWluIGdpdmVzIHVzIHRoZSBnby1haGVhZCBzaWduYWwsIHdlIHdpbGwgb3ZlcndyaXRlIHRoZWUBIFtgOnBlbmRpbmdfY29kZWBdW3NwX2NvcmU6OnN0b3JhZ2U6OndlbGxfa25vd25fa2V5czo6UEVORElOR19DT0RFXSB3aGljaCB3aWxsIHJlc3VsdCB0aGV1ASBuZXh0IGJsb2NrIHRvIGJlIHByb2Nlc3NlZCB3aXRoIHRoZSBuZXcgdmFsaWRhdGlvbiBjb2RlLiBUaGlzIGNvbmNsdWRlcyB0aGUgdXBncmFkZSBwcm9jZXNzLgBETmV3VmFsaWRhdGlvbkNvZGUAABgEABRdASBWYWxpZGF0aW9uIGNvZGUgdGhhdCBpcyBzZXQgYnkgdGhlIHBhcmFjaGFpbiBhbmQgaXMgdG8gYmUgY29tbXVuaWNhdGVkIHRvIGNvbGxhdG9yIGFuZHggY29uc2VxdWVudGx5IHRoZSByZWxheS1jaGFpbi4AZQEgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrIGlmIG5vIG90aGVyIHBhbGxldCBhbHJlYWR5IHNldCwgdGhlIHZhbHVlLgA4VmFsaWRhdGlvbkRhdGEAAEgEAAzQIFRoZSBbYFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhYF0gc2V0IGZvciB0aGlzIGJsb2NrLgBxASBUaGlzIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBvbmx5IG9uY2UgYnkgdGhlIFtgUGFsbGV0OjpzZXRfdmFsaWRhdGlvbl9kYXRhYF0gaW5oZXJlbnQuAFBEaWRTZXRWYWxpZGF0aW9uQ29kZQEAyAQABOAgV2VyZSB0aGUgdmFsaWRhdGlvbiBkYXRhIHNldCB0byBub3RpZnkgdGhlIHJlbGF5IGNoYWluPwBkTGFzdFJlbGF5Q2hhaW5CbG9ja051bWJlcgEAOBAAAAAADB0BIFRoZSByZWxheSBjaGFpbiBibG9jayBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBsYXN0IHBhcmFjaGFpbiBibG9jay4AiCBUaGlzIGlzIHVwZGF0ZWQgaW4gYG9uX2ZpbmFsaXplYC4AYFVwZ3JhZGVSZXN0cmljdGlvblNpZ25hbAEAqQcEABx1ASBBbiBvcHRpb24gd2hpY2ggaW5kaWNhdGVzIGlmIHRoZSByZWxheS1jaGFpbiByZXN0cmljdHMgc2lnbmFsbGluZyBhIHZhbGlkYXRpb24gY29kZSB1cGdyYWRlLmEBIEluIG90aGVyIHdvcmRzLCBpZiB0aGlzIGlzIGBTb21lYCBhbmQgW2BOZXdWYWxpZGF0aW9uQ29kZWBdIGlzIGBTb21lYCB0aGVuIHRoZSBwcm9kdWNlZGwgY2FuZGlkYXRlIHdpbGwgYmUgaW52YWxpZC4AcQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgYSBtaXJyb3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZm9yIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBmcm9tIHRoZW0BIHJlbGF5LWNoYWluLiBUaGlzIHZhbHVlIGlzIGVwaGVtZXJhbCB3aGljaCBtZWFucyBpdCBkb2Vzbid0IGhpdCB0aGUgc3RvcmFnZS4gVGhpcyB2YWx1ZSBpc2Agc2V0IGFmdGVyIHRoZSBpbmhlcmVudC4AOFVwZ3JhZGVHb0FoZWFkAQCdBwQAFNwgT3B0aW9uYWwgdXBncmFkZSBnby1haGVhZCBzaWduYWwgZnJvbSB0aGUgcmVsYXktY2hhaW4uAHEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIGEgbWlycm9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gZnJvbSB0aGVtASByZWxheS1jaGFpbi4gVGhpcyB2YWx1ZSBpcyBlcGhlbWVyYWwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBoaXQgdGhlIHN0b3JhZ2UuIFRoaXMgdmFsdWUgaXNgIHNldCBhZnRlciB0aGUgaW5oZXJlbnQuADxSZWxheVN0YXRlUHJvb2YAAFAEABjEIFRoZSBzdGF0ZSBwcm9vZiBmb3IgdGhlIGxhc3QgcmVsYXkgcGFyZW50IGJsb2NrLgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuAFhSZWxldmFudE1lc3NhZ2luZ1N0YXRlAACxBwQAHGUBIFRoZSBzbmFwc2hvdCBvZiBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gbWVzc2FnaW5nIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBhcyBwZXJIIHRoZSByZWxheSBwYXJlbnQuAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AREhvc3RDb25maWd1cmF0aW9uAADFBwQAGCkBIFRoZSBwYXJhY2hhaW4gaG9zdCBjb25maWd1cmF0aW9uIHRoYXQgd2FzIG9idGFpbmVkIGZyb20gdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgA4TGFzdERtcU1xY0hlYWQBAM0HgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPQgVGhlIGxhc3QgZG93bndhcmQgbWVzc2FnZSBxdWV1ZSBjaGFpbiBoZWFkIHdlIGhhdmUgb2JzZXJ2ZWQuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAEBMYXN0SHJtcE1xY0hlYWRzAQDRBwQAEEkBIFRoZSBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWRzIHdlIGhhdmUgb2JzZXJ2ZWQgcGVyIGVhY2ggY2hhbm5lbCBpbmNvbWluZyBjaGFubmVsLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LgBkUHJvY2Vzc2VkRG93bndhcmRNZXNzYWdlcwEAOBAAAAAADMggTnVtYmVyIG9mIGRvd253YXJkIG1lc3NhZ2VzIHByb2Nlc3NlZCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AcExhc3RQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2UAAN0HBAAMlCBUaGUgbGFzdCBwcm9jZXNzZWQgZG93bndhcmQgbWVzc2FnZS4AXQEgV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgdG8gZmlsdGVyIHRoZSBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZC4ANEhybXBXYXRlcm1hcmsBADgQAAAAAASgIEhSTVAgd2F0ZXJtYXJrIHRoYXQgd2FzIHNldCBpbiBhIGJsb2NrLgBgTGFzdFByb2Nlc3NlZEhybXBNZXNzYWdlAADdBwQADIQgVGhlIGxhc3QgcHJvY2Vzc2VkIEhSTVAgbWVzc2FnZS4AXQEgV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgdG8gZmlsdGVyIHRoZSBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZC4AUEhybXBPdXRib3VuZE1lc3NhZ2VzAQDhBwQADKQgSFJNUCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AOFVwd2FyZE1lc3NhZ2VzAQA0BAAMrCBVcHdhcmQgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A8CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgZm9yIGVhY2ggbmV3IGJsb2NrLgBUUGVuZGluZ1Vwd2FyZE1lc3NhZ2VzAQA0BAAEMQEgVXB3YXJkIG1lc3NhZ2VzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgYW5kIG5vdCB5ZXQgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uAFBQZW5kaW5nVXB3YXJkU2lnbmFscwEANAQADC0BIFVwd2FyZCBzaWduYWxzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgYW5kIG5vdCB5ZXQgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uANggVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2ZpbmFsaXplYCBmb3IgZWFjaCBibG9jay4ATFBlbmRpbmdBcHByb3ZlZFBlZXIAAHgEAAQ5ASBUaGUgYXBwcm92ZWQgcGVlciBpZCB0byBiZSBzZW50IGFzIGEgVU1QIHNpZ25hbCBvbiB0aGUgbGFzdCBibG9jayBvZiB0aGUgUG9WLgBcVXB3YXJkRGVsaXZlcnlGZWVGYWN0b3IBAC0BQAAAZKeztuANAAAAAAAAAAAE5CBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieSBmb3IgVU1QLgCEQW5ub3VuY2VkSHJtcE1lc3NhZ2VzUGVyQ2FuZGlkYXRlAQA4EAAAAAAIZQEgVGhlIG51bWJlciBvZiBIUk1QIG1lc3NhZ2VzIHdlIG9ic2VydmVkIGluIGBvbl9pbml0aWFsaXplYCBhbmQgdGh1cyB1c2VkIHRoYXQgbnVtYmVyIGZvcvAgYW5ub3VuY2luZyB0aGUgd2VpZ2h0IG9mIGBvbl9pbml0aWFsaXplYCBhbmQgYG9uX2ZpbmFsaXplYC4AaFJlc2VydmVkWGNtcFdlaWdodE92ZXJyaWRlAADVAQQACF0BIFRoZSB3ZWlnaHQgd2UgcmVzZXJ2ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jayBmb3IgcHJvY2Vzc2luZyBYQ01QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC4AZFJlc2VydmVkRG1wV2VpZ2h0T3ZlcnJpZGUAANUBBAAIWQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIERNUCBtZXNzYWdlcy4gVGhpc7ggb3ZlcnJpZGVzIHRoZSBhbW91bnQgc2V0IGluIHRoZSBDb25maWcgdHJhaXQuAGBDdXN0b21WYWxpZGF0aW9uSGVhZERhdGEAABgEAAwpASBBIGN1c3RvbSBoZWFkIGRhdGEgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgcmVzdWx0IG9mIGB2YWxpZGF0ZV9ibG9ja2AuABEBIFNlZSBgUGFsbGV0OjpzZXRfY3VzdG9tX3ZhbGlkYXRpb25faGVhZF9kYXRhYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4ASFBvVk1lc3NhZ2VzVHJhY2tlcgAA6QcEAAxVASBUcmFja3MgY3VtdWxhdGl2ZSBgVU1QYCBhbmQgYEhSTVBgIG1lc3NhZ2VzIHNlbnQgYWNyb3NzIGJsb2NrcyBpbiB0aGUgY3VycmVudCBgUG9WYC4AdQEgQWNyb3NzIGRpZmZlcmVudCBjYW5kaWRhdGVzL1BvVnMgdGhlIGJ1ZGdldHMgYXJlIHRyYWNrZWQgYnkgW2BBZ2dyZWdhdGVkVW5pbmNsdWRlZFNlZ21lbnRgXS4AAUAAASkGAAQoU2VsZlBhcmFJZJwQ3gUAAAS4IFJldHVybnMgdGhlIHBhcmFjaGFpbiBJRCB3ZSBhcmUgcnVubmluZyB3aXRoLgAB8QcAAAABAAAkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAKCAAAAAAAAAAAASgIFRoZSBjdXJyZW50IHRpbWUgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAkRGlkVXBkYXRlAQDIBAAQ2CBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgaGFzIGJlZW4gdXBkYXRlZCBpbiB0aGlzIGJsb2NrLgBVASBUaGlzIHZhbHVlIGlzIHVwZGF0ZWQgdG8gYHRydWVgIHVwb24gc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uIG9mIGEgdGltZXN0YW1wIGJ5IGEgbm9kZS5FASBJdCBpcyB0aGVuIGNoZWNrZWQgYXQgdGhlIGVuZCBvZiBlYWNoIGJsb2NrIGV4ZWN1dGlvbiBpbiB0aGUgYG9uX2ZpbmFsaXplYCBob29rLgABsAAABDRNaW5pbXVtUGVyaW9kKCAAAAAAAAAAABiMIFRoZSBtaW5pbXVtIHBlcmlvZCBiZXR3ZWVuIGJsb2Nrcy4ATQEgQmUgYXdhcmUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgKmV4cGVjdGVkKiBwZXJpb2QgdGhhdCB0aGUgYmxvY2sgcHJvZHVjdGlvbkkBIGFwcGFyYXR1cyBwcm92aWRlcy4gWW91ciBjaG9zZW4gY29uc2Vuc3VzIHN5c3RlbSB3aWxsIGdlbmVyYWxseSB3b3JrIHdpdGggdGhpcyB0b2EBIGRldGVybWluZSBhIHNlbnNpYmxlIGJsb2NrIHRpbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgQXVyYSBwYWxsZXQgaXQgd2lsbCBiZSBkb3VibGUgdGhpc3AgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAAEGE1vbWVudCgEmCBUeXBlIHVzZWQgZm9yIGV4cHJlc3NpbmcgYSB0aW1lc3RhbXAuAAIAADRQYXJhY2hhaW5JbmZvATRQYXJhY2hhaW5JbmZvBCxQYXJhY2hhaW5JZAEAnBBkAAAAAAABuAAAAAAAAAMAADRXZWlnaHRSZWNsYWltAAAAAAAAAAQIgQEgUGFsbGV0IHRvIHVzZSBhbG9uZ3NpZGUgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBbYFN0b3JhZ2VXZWlnaHRSZWNsYWltYF0sIHRoZSBwYWxsZXQgcHJvdmlkZXOMIHdlaWdodCBpbmZvcm1hdGlvbiBhbmQgYmVuY2htYXJrcy4AIEJhbGFuY2VzASBCYWxhbmNlcxw0VG90YWxJc3N1YW5jZQEAxEAAAAAAAAAAAAAAAAAAAAAABJggVGhlIHRvdGFsIHVuaXRzIGlzc3VlZCBpbiB0aGUgc3lzdGVtLgBASW5hY3RpdmVJc3N1YW5jZQEAxEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uABxBY2NvdW50AQEEAgTpBQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGAJASBUaGUgQmFsYW5jZXMgcGFsbGV0IGV4YW1wbGUgb2Ygc3RvcmluZyB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUgexkCICAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3RvcmFnZU1hcFNoaW08U2VsZjo6QWNjb3VudDxSdW50aW1lPiwgZnJhbWVfc3lzdGVtOjpQcm92aWRlcjxSdW50aW1lPiwgQWNjb3VudElkLCBTZWxmOjpBY2NvdW50RGF0YTxCYWxhbmNlPj4MICB9ECBgYGAAFQEgWW91IGNhbiBhbHNvIHN0b3JlIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQgaW4gdGhlIGBTeXN0ZW1gIHBhbGxldC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHt0ICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTeXN0ZW0MICB9ECBgYGAAUQEgQnV0IHRoaXMgY29tZXMgd2l0aCB0cmFkZW9mZnMsIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUgc3lzdGVtIHBhbGxldCBzdG9yZXNtASBgZnJhbWVfc3lzdGVtYCBkYXRhIGFsb25nc2lkZSB0aGUgYWNjb3VudCBkYXRhIGNvbnRyYXJ5IHRvIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUpASBgQmFsYW5jZXNgIHBhbGxldCwgd2hpY2ggdXNlcyBhIGBTdG9yYWdlTWFwYCB0byBzdG9yZSBiYWxhbmNlcyBkYXRhIG9ubHkuQQEgTk9URTogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIHBhbGxldCBpcyB1c2VkIHRvIHN0b3JlIGJhbGFuY2VzLgAUTG9ja3MBAQQCBPUHBAAQuCBBbnkgbGlxdWlkaXR5IGxvY2tzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAgUmVzZXJ2ZXMBAQQCBAUIBAAMpCBOYW1lZCByZXNlcnZlcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gABRIb2xkcwEBBAIEEQgEAARsIEhvbGRzIG9uIGFjY291bnQgYmFsYW5jZXMuABxGcmVlemVzAQEEAgQdCAQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuAAG8AAEtBgAQSEV4aXN0ZW50aWFsRGVwb3NpdMRAAMqaOwAAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEAIE1heExvY2tzOBAyAAAAEPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHRoYXQgc2hvdWxkIGV4aXN0IG9uIGFuIGFjY291bnQu3CBOb3Qgc3RyaWN0bHkgZW5mb3JjZWQsIGJ1dCB1c2VkIGZvciB3ZWlnaHQgZXN0aW1hdGlvbi4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAsTWF4UmVzZXJ2ZXM4EDIAAAAMDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gAChNYXhGcmVlemVzOBAAAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgABKQgAEERSdW50aW1lSG9sZFJlYXNvbjUGBHQgVGhlIG92ZXJhcmNoaW5nIGhvbGQgcmVhc29uLhxCYWxhbmNlxARsIFRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQuRFJlc2VydmVJZGVudGlmaWVyvQEMaCBUaGUgSUQgdHlwZSBmb3IgcmVzZXJ2ZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gQEZyZWV6ZUlkZW50aWZpZXIQBGQgVGhlIElEIHR5cGUgZm9yIGZyZWV6ZXMuAAoAAEhUcmFuc2FjdGlvblBheW1lbnQBSFRyYW5zYWN0aW9uUGF5bWVudAxETmV4dEZlZU11bHRpcGxpZXIBAC0BQAAAZKeztuANAAAAAAAAAAAAADhTdG9yYWdlVmVyc2lvbgEALQgEAAAAPFR4UGF5bWVudENyZWRpdAAAMQgEAAzwIFRoZSBgT25DaGFyZ2VUcmFuc2FjdGlvbmAgc3RvcmVzIHRoZSB3aXRoZHJhd24gdHggZmVlIGhlcmUuADUBIFVzZSBgd2l0aGRyYXdfdHhmZWVgIGFuZCBgcmVtYWluaW5nX3R4ZmVlYCB0byBhY2Nlc3MgZnJvbSBvdXRzaWRlIHRoZSBjcmF0ZS4AAAFdBgAEYE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcgwEBVRZASBBIGZlZSBtdWx0aXBsaWVyIGZvciBgT3BlcmF0aW9uYWxgIGV4dHJpbnNpY3MgdG8gY29tcHV0ZSAidmlydHVhbCB0aXAiIHRvIGJvb3N0IHRoZWlyLCBgcHJpb3JpdHlgAFEBIFRoaXMgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgYGZpbmFsX2ZlZWAgdG8gb2J0YWluIGEgInZpcnR1YWwgdGlwIiB0aGF0IGlzIGxhdGVy9CBhZGRlZCB0byBhIHRpcCBjb21wb25lbnQgaW4gcmVndWxhciBgcHJpb3JpdHlgIGNhbGN1bGF0aW9ucy5NASBJdCBtZWFucyB0aGF0IGEgYE5vcm1hbGAgdHJhbnNhY3Rpb24gY2FuIGZyb250LXJ1biBhIHNpbWlsYXJseS1zaXplZCBgT3BlcmF0aW9uYWxgQQEgZXh0cmluc2ljICh3aXRoIG5vIHRpcCksIGJ5IGluY2x1ZGluZyBhIHRpcCB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIHZpcnR1YWwgdGlwLgA8IGBgYHJ1c3QsaWdub3JlQCAvLyBGb3IgYE5vcm1hbGCMIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwKTsAVCAvLyBGb3IgYE9wZXJhdGlvbmFsYBEBIGxldCB2aXJ0dWFsX3RpcCA9IChpbmNsdXNpb25fZmVlICsgdGlwKSAqIE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcjvEIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwICsgdmlydHVhbF90aXApOxAgYGBgAFEBIE5vdGUgdGhhdCBzaW5jZSB3ZSB1c2UgYGZpbmFsX2ZlZWAgdGhlIG11bHRpcGxpZXIgYXBwbGllcyBhbHNvIHRvIHRoZSByZWd1bGFyIGB0aXBgXQEgc2VudCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4gU28sIG5vdCBvbmx5IGRvZXMgdGhlIHRyYW5zYWN0aW9uIGdldCBhIHByaW9yaXR5IGJ1bXAgYmFzZWRhASBvbiB0aGUgYGluY2x1c2lvbl9mZWVgLCBidXQgd2UgYWxzbyBhbXBsaWZ5IHRoZSBpbXBhY3Qgb2YgdGlwcyBhcHBsaWVkIHRvIGBPcGVyYXRpb25hbGA4IHRyYW5zYWN0aW9ucy4AAAAACwAASFNraXBGZWVsZXNzUGF5bWVudAAAAWEGAAAAAAAMAABET3JpZ2luUmVzdHJpY3Rpb24BRE9yaWdpblJlc3RyaWN0aW9uBBhVc2FnZXMAAQQC2DkIBAAEjCBUaGUgY3VycmVudCB1c2FnZSBmb3IgZWFjaCBlbnRpdHkuAAHUAAFlBgAAAT0IAARAUmVzdHJpY3RlZEVudGl0edgkUQEgVGhlIHR5cGUgdGhhdCByZXByZXNlbnQgdGhlIGVudGl0aWVzIHRyYWNrZWQsIGl0cyBhbGxvd2FuY2UgYW5kIHRoZSBjb252ZXJzaW9uIGZyb22YIG9yaWdpbiBpcyBib3VuZGVkIGluIFtgUmVzdHJpY3Rpb25gXS4AHQEgVGhpcyBpcyB0aGUgY2Fub25pY2FsIG9yaWdpbiBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHVzYWdlIHRyYWNraW5nLowgRWFjaCBlbnRpdHkgaXMgdHJhY2tlZCBzZXBhcmF0ZWx5LgBJASBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIG9yaWdpbiBhcyBhIG11bHRpcGxlIG9yaWdpbiBjYW4gcmVwcmVzZW50IGEgc2luZ2xlIGVudGl0eS5hASBGb3IgZXhhbXBsZSwgaW1hZ2luZSBhIERBTyBvcmlnaW4gd2l0aCBhIHBlcmNlbnRhZ2Ugb2Ygdm90ZXJzLCB3ZSB3YW50IHRvIHRyYWNrIHRoZSBEQU+sIGVudGl0eSByZWdhcmRsZXNzIG9mIHRoZSB2b3RlciBwZXJjZW50YWdlLgANAAAYQXNzZXRzARhBc3NldHMYFEFzc2V0AAEEAuBBCAQABFQgRGV0YWlscyBvZiBhbiBhc3NldC4AHEFjY291bnQAAQgCAkkITQgEAATkIFRoZSBob2xkaW5ncyBvZiBhIHNwZWNpZmljIGFjY291bnQgZm9yIGEgc3BlY2lmaWMgYXNzZXQuACRBcHByb3ZhbHMAAQwCAgJZCF0IBAAMWQEgQXBwcm92ZWQgYmFsYW5jZSB0cmFuc2ZlcnMuIEZpcnN0IGJhbGFuY2UgaXMgdGhlIGFtb3VudCBhcHByb3ZlZCBmb3IgdHJhbnNmZXIuIFNlY29uZOggaXMgdGhlIGFtb3VudCBvZiBgVDo6Q3VycmVuY3lgIHJlc2VydmVkIGZvciBzdG9yaW5nIHRoaXMuSQEgRmlyc3Qga2V5IGlzIHRoZSBhc3NldCBJRCwgc2Vjb25kIGtleSBpcyB0aGUgb3duZXIgYW5kIHRoaXJkIGtleSBpcyB0aGUgZGVsZWdhdGUuACBNZXRhZGF0YQEBBALgYQhQAAAAAAAAAAAAAAAAAAAAAAAAAAAEWCBNZXRhZGF0YSBvZiBhbiBhc3NldC4AIFJlc2VydmVzAQEEAuAdAQQABPwgTWFwcyBhbiBhc3NldCB0byBhIGxpc3Qgb2YgaXRzIGNvbmZpZ3VyZWQgcmVzZXJ2ZSBpbmZvcm1hdGlvbi4ALE5leHRBc3NldElkAADgBAAkbQEgVGhlIGFzc2V0IElEIGVuZm9yY2VkIGZvciB0aGUgbmV4dCBhc3NldCBjcmVhdGlvbiwgaWYgYW55IHByZXNlbnQuIE90aGVyd2lzZSwgdGhpcyBzdG9yYWdlUCBpdGVtIGhhcyBubyBlZmZlY3QuAGUBIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc2V0dGluZyB1cCBjb25zdHJhaW50cyBmb3IgSURzIG9mIHRoZSBuZXcgYXNzZXRzLiBGb3IgZXhhbXBsZSwgYnlpASBwcm92aWRpbmcgYW4gaW5pdGlhbCBbYE5leHRBc3NldElkYF0gYW5kIHVzaW5nIHRoZSBbYGNyYXRlOjpBdXRvSW5jQXNzZXRJZGBdIGNhbGxiYWNrLCBhbuggYXV0by1pbmNyZW1lbnQgbW9kZWwgY2FuIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyBhc3NldCBJRHMuACEBIFRoZSBpbml0aWFsIG5leHQgYXNzZXQgSUQgY2FuIGJlIHNldCB1c2luZyB0aGUgW2BHZW5lc2lzQ29uZmlnYF0gb3IgdGhlIQEgW1NldE5leHRBc3NldElkXShgbWlncmF0aW9uOjpuZXh0X2Fzc2V0X2lkOjpTZXROZXh0QXNzZXRJZGApIG1pZ3JhdGlvbi4AAdwAAWkGABxAUmVtb3ZlSXRlbXNMaW1pdDgQ6AMAAAxRASBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIGRlc3Ryb3kgcGVyIGBkZXN0cm95X2FjY291bnRzYCBhbmQgYGRlc3Ryb3lfYXBwcm92YWxzYCBjYWxsLgA5ASBNdXN0IGJlIGNvbmZpZ3VyZWQgdG8gcmVzdWx0IGluIGEgd2VpZ2h0IHRoYXQgbWFrZXMgZWFjaCBjYWxsIGZpdCBpbiBhIGJsb2NrLgAwQXNzZXREZXBvc2l0xEAAypo7AAAAAAAAAAAAAAAABPggVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGFuIGFzc2V0LgBMQXNzZXRBY2NvdW50RGVwb3NpdMRAAPRpswIAAAAAAAAAAAAAAAhFASBUaGUgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYSBub24tcHJvdmlkZXIgYXNzZXQgYWNjb3VudCB0byBiZTAgbWFpbnRhaW5lZC4ATE1ldGFkYXRhRGVwb3NpdEJhc2XEQACoW+kDAAAAAAAAAAAAAAAEUQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgbWV0YWRhdGEgdG8geW91ciBhc3NldC4AWE1ldGFkYXRhRGVwb3NpdFBlckJ5dGXEQADh9QUAAAAAAAAAAAAAAAAIVQEgVGhlIGFkZGl0aW9uYWwgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciB0aGUgbnVtYmVyIG9mIGJ5dGVzIHlvdSBzdG9yZSBpbiB5b3VyKCBtZXRhZGF0YS4APEFwcHJvdmFsRGVwb3NpdMRAAMqaOwAAAAAAAAAAAAAAAAQhASBUaGUgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGNyZWF0aW5nIGEgbmV3IGFwcHJvdmFsLgAsU3RyaW5nTGltaXQ4EDIAAAAE4CBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBuYW1lIG9yIHN5bWJvbCBzdG9yZWQgb24tY2hhaW4uAAFpCAAUHEJhbGFuY2XEBJwgVGhlIHVuaXRzIGluIHdoaWNoIHdlIHJlY29yZCBiYWxhbmNlcy4cQXNzZXRJZOAEjCBJZGVudGlmaWVyIGZvciB0aGUgY2xhc3Mgb2YgYXNzZXQuQEFzc2V0SWRQYXJhbWV0ZXLgHFkBIFdyYXBwZXIgYXJvdW5kIGBTZWxmOjpBc3NldElkYCB0byB1c2UgaW4gZGlzcGF0Y2hhYmxlIGNhbGwgc2lnbmF0dXJlcy4gQWxsb3dzIHRoZSB1c2VRASBvZiBjb21wYWN0IGVuY29kaW5nIGluIGluc3RhbmNlcyBvZiB0aGUgcGFsbGV0LCB3aGljaCB3aWxsIHByZXZlbnQgYnJlYWtpbmcgY2hhbmdlcwUBIHJlc3VsdGluZyBmcm9tIHRoZSByZW1vdmFsIG9mIGBIYXNDb21wYWN0YCBmcm9tIGBTZWxmOjpBc3NldElkYC4AWQEgVGhpcyB0eXBlIGluY2x1ZGVzIHRoZSBgRnJvbTxTZWxmOjpBc3NldElkPmAgYm91bmQsIHNpbmNlIHRpZ2h0bHkgY291cGxlZCBwYWxsZXRzIG1heUUBIHdhbnQgdG8gY29udmVydCBhbiBgQXNzZXRJZGAgaW50byBhIHBhcmFtZXRlciBmb3IgY2FsbGluZyBkaXNwYXRjaGFibGUgZnVuY3Rpb25zKCBkaXJlY3RseS4sUmVzZXJ2ZURhdGEhAQToIEluZm9ybWF0aW9uIGFib3V0IHJlc2VydmUgbG9jYXRpb25zIGZvciBhIGNsYXNzIG9mIGFzc2V0LhRFeHRyYRAE+CBBZGRpdGlvbmFsIGRhdGEgdG8gYmUgc3RvcmVkIHdpdGggYW4gYWNjb3VudCdzIGFzc2V0IGJhbGFuY2UuEGgqWdUaueSKjIzEGP+XCNKnApetC0vdPaS3RimmWm5cNGFzc2V0X2RldGFpbHMECGlk4G0IBKggUHJvdmlkZSB0aGUgYXNzZXQgZGV0YWlscyBmb3IgYXNzZXQgYGlkYC4AaCpZ1Rq55IqMjMQY/5cI0lMax+IbdrEh52Hkc0GaGwIoYmFsYW5jZV9vZggMd2hvBAhpZOBxCAS0IFByb3ZpZGUgdGhlIGJhbGFuY2Ugb2YgYHdob2AgZm9yIGFzc2V0IGBpZGAuAGgqWdUaueSKjIzEGP+XCNIuh2akDRtp1hUb2AHldVBeMGdldF9tZXRhZGF0YQQIaWTgdQgEwCBQcm92aWRlIHRoZSBjb25maWd1cmVkIG1ldGFkYXRhIGZvciBhc3NldCBgaWRgLgBoKlnVGrnkioyMxBj/lwjSZPY/KSPjmCgkMWOBrh5phkRnZXRfcmVzZXJ2ZXNfZGF0YQQIaWTgJQEE1CBQcm92aWRlIHRoZSBjb25maWd1cmVkIHJlc2VydmVzIGRhdGEgZm9yIGFzc2V0IGBpZGAuAA4AADBBc3NldHNIb2xkZXIBMEFzc2V0c0hvbGRlcggUSG9sZHMBAQgCAkkIEQgEAAQNASBBIG1hcCB0aGF0IHN0b3JlcyBob2xkcyBhcHBsaWVkIG9uIGFuIGFjY291bnQgZm9yIGEgZ2l2ZW4gQXNzZXRJZC4AOEJhbGFuY2VzT25Ib2xkAAEIAgJJCMQEAARpASBBIG1hcCB0aGF0IHN0b3JlcyB0aGUgY3VycmVudCB0b3RhbCBiYWxhbmNlIG9uIGhvbGQgZm9yIGV2ZXJ5IGFjY291bnQgb24gYSBnaXZlbiBBc3NldElkLgAAAW0GAAABeQgABERSdW50aW1lSG9sZFJlYXNvbjUGBHwgVGhlIG92ZXJhcmNoaW5nIGZyZWV6ZSByZWFzb24uAA8AACRBc3NldFJhdGUBJEFzc2V0UmF0ZQRYQ29udmVyc2lvblJhdGVUb05hdGl2ZQABBALgLQEEAAwdASBNYXBzIGFuIGFzc2V0IHRvIGl0cyBmaXhlZCBwb2ludCByZXByZXNlbnRhdGlvbiBpbiB0aGUgbmF0aXZlIGJhbGFuY2UuAE0BIEUuZy4gYG5hdGl2ZV9hbW91bnQgPSBhc3NldF9hbW91bnQgKiBDb252ZXJzaW9uUmF0ZVRvTmF0aXZlOjo8VD46OmdldChhc3NldF9raW5kKWAAASkBAAFxBgAAAX0IAAQkQXNzZXRLaW5k4ARFASBUaGUgdHlwZSBmb3IgYXNzZXQga2luZHMgZm9yIHdoaWNoIHRoZSBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgaXMgc2V0LgAQAAA4QXNzZXRUeFBheW1lbnQAAAF1BgAAAAAAEQAAKEF1dGhvcnNoaXABKEF1dGhvcnNoaXAEGEF1dGhvcgAABAQABGQgQXV0aG9yIG9mIGN1cnJlbnQgYmxvY2suAAAAAAAAABQAAERDb2xsYXRvclNlbGVjdGlvbgFEQ29sbGF0b3JTZWxlY3Rpb24UNEludnVsbmVyYWJsZXMBAIEIBAAEEQEgVGhlIGludnVsbmVyYWJsZSwgcGVybWlzc2lvbmVkIGNvbGxhdG9ycy4gVGhpcyBsaXN0IG11c3QgYmUgc29ydGVkLgA0Q2FuZGlkYXRlTGlzdAEAhQgEABRpASBUaGUgKGNvbW11bml0eSwgbGltaXRlZCkgY29sbGF0aW9uIGNhbmRpZGF0ZXMuIGBDYW5kaWRhdGVzYCBhbmQgYEludnVsbmVyYWJsZXNgIHNob3VsZCBiZVAgbXV0dWFsbHkgZXhjbHVzaXZlLgB1ASBUaGlzIGxpc3QgaXMgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBieSBkZXBvc2l0IGFuZCB3aGVuIHRoZSBkZXBvc2l0cyBhcmUgZXF1YWwsIHRoZSBsZWFzdKAgcmVjZW50bHkgdXBkYXRlZCBpcyBjb25zaWRlcmVkIGdyZWF0ZXIuAERMYXN0QXV0aG9yZWRCbG9jawEBBAUEOBAAAAAABIQgTGFzdCBibG9jayBhdXRob3JlZCBieSBjb2xsYXRvci4ARERlc2lyZWRDYW5kaWRhdGVzAQA4EAAAAAAMeCBEZXNpcmVkIG51bWJlciBvZiBjYW5kaWRhdGVzLgB1ASBUaGlzIHNob3VsZCBpZGVhbGx5IGFsd2F5cyBiZSBsZXNzIHRoYW4gW2BDb25maWc6Ok1heENhbmRpZGF0ZXNgXSBmb3Igd2VpZ2h0cyB0byBiZSBjb3JyZWN0LgA0Q2FuZGlkYWN5Qm9uZAEAxEAAAAAAAAAAAAAAAAAAAAAADLggRml4ZWQgYW1vdW50IHRvIGRlcG9zaXQgdG8gYmVjb21lIGEgY29sbGF0b3IuAEEBIFdoZW4gYSBjb2xsYXRvciBjYWxscyBgbGVhdmVfaW50ZW50YCB0aGV5IGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhlIGRlcG9zaXQgYmFjay4AATEBAAF5BgAYFFBvdElkkQggUG90U3Rha2UE9CBBY2NvdW50IElkZW50aWZpZXIgZnJvbSB3aGljaCB0aGUgaW50ZXJuYWwgUG90IGlzIGdlbmVyYXRlZC4ANE1heENhbmRpZGF0ZXM4EGQAAAAMyCBNYXhpbXVtIG51bWJlciBvZiBjYW5kaWRhdGVzIHRoYXQgd2Ugc2hvdWxkIGhhdmUuAMwgVGhpcyBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgaW52dWxuZXJhYmxlcy4AUE1pbkVsaWdpYmxlQ29sbGF0b3JzOBAEAAAADFUBIE1pbmltdW0gbnVtYmVyIGVsaWdpYmxlIGNvbGxhdG9ycy4gU2hvdWxkIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4gemVyby4gVGhpcyBpbmNsdWRlc1EBIEludnVsbmVyYWJsZSBjb2xsYXRvcnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIG9uZSBjb2xsYXRvciB3aG8gY2FuRCBwcm9kdWNlIGEgYmxvY2suAEBNYXhJbnZ1bG5lcmFibGVzOBAUAAAABIQgTWF4aW11bSBudW1iZXIgb2YgaW52dWxuZXJhYmxlcy4ANEtpY2tUaHJlc2hvbGQ4EDAqAAAAACxwb3RfYWNjb3VudASAbW9kbFBvdFN0YWtlAAAAAAAAAAAAAAAAAAAAAAAAAAAEoCBHZXRzIHRoaXMgcGFsbGV0J3MgZGVyaXZlZCBwb3QgYWNjb3VudC4AAZUIAAQsVmFsaWRhdG9ySWQEBHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLgAVAAAcU2Vzc2lvbgEcU2Vzc2lvbiAoVmFsaWRhdG9ycwEAzAQABHwgVGhlIGN1cnJlbnQgc2V0IG9mIHZhbGlkYXRvcnMuADBDdXJyZW50SW5kZXgBADgQAAAAAAR4IEN1cnJlbnQgaW5kZXggb2YgdGhlIHNlc3Npb24uADRRdWV1ZWRDaGFuZ2VkAQDIBAAIOQEgVHJ1ZSBpZiB0aGUgdW5kZXJseWluZyBlY29ub21pYyBpZGVudGl0aWVzIG9yIHdlaWdodGluZyBiZWhpbmQgdGhlIHZhbGlkYXRvcnOkIGhhcyBjaGFuZ2VkIGluIHRoZSBxdWV1ZWQgdmFsaWRhdG9yIHNldC4AKFF1ZXVlZEtleXMBAJkIBAAIPQEgVGhlIHF1ZXVlZCBrZXlzIGZvciB0aGUgbmV4dCBzZXNzaW9uLiBXaGVuIHRoZSBuZXh0IHNlc3Npb24gYmVnaW5zLCB0aGVzZSBrZXlz4CB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZGF0b3IncyBzZXNzaW9uIGtleXMuAEhEaXNhYmxlZFZhbGlkYXRvcnMBAKEIBAAUgCBJbmRpY2VzIG9mIGRpc2FibGVkIHZhbGlkYXRvcnMuAD0BIFRoZSB2ZWMgaXMgYWx3YXlzIGtlcHQgc29ydGVkIHNvIHRoYXQgd2UgY2FuIGZpbmQgd2hldGhlciBhIGdpdmVuIHZhbGlkYXRvciBpcz0BIGRpc2FibGVkIHVzaW5nIGJpbmFyeSBzZWFyY2guIEl0IGdldHMgY2xlYXJlZCB3aGVuIGBvbl9zZXNzaW9uX2VuZGluZ2AgcmV0dXJuc2QgYSBuZXcgc2V0IG9mIGlkZW50aXRpZXMuACBOZXh0S2V5cwABBAUEOQEEAAScIFRoZSBuZXh0IHNlc3Npb24ga2V5cyBmb3IgYSB2YWxpZGF0b3IuACBLZXlPd25lcgABBAWxCAQEAAQJASBUaGUgb3duZXIgb2YgYSBrZXkuIFRoZSBrZXkgaXMgdGhlIGBLZXlUeXBlSWRgICsgdGhlIGVuY29kZWQga2V5LgBERXh0ZXJuYWxseVNldEtleXMAAQQFBBAEABAxASBBY2NvdW50cyB3aG9zZSBrZXlzIHdlcmUgc2V0IHZpYSBgU2Vzc2lvbkludGVyZmFjZWAgKGV4dGVybmFsIHBhdGgpIHdpdGhvdXQ5ASBpbmNyZW1lbnRpbmcgdGhlIGNvbnN1bWVyIHJlZmVyZW5jZSBvciBwbGFjaW5nIGEga2V5IGRlcG9zaXQuIGBkb19wdXJnZV9rZXlzYDkBIG9ubHkgZGVjcmVtZW50cyBjb25zdW1lcnMgZm9yIGFjY291bnRzIHRoYXQgd2VyZSByZWdpc3RlcmVkIHRocm91Z2ggdGhlIGxvY2FsQCBzZXNzaW9uIHBhbGxldC4AATUBAAF9BgAEKEtleURlcG9zaXTEQAAAAAAAAAAAAAAAAAAAAAAEpCBUaGUgYW1vdW50IHRvIGJlIGhlbGQgd2hlbiBzZXR0aW5nIGtleXMuAAG5CAAILFZhbGlkYXRvcklkBAR0IEEgc3RhYmxlIElEIGZvciBhIHZhbGlkYXRvci4QS2V5czkBBCggVGhlIGtleXMuABYAABBBdXJhARBBdXJhCCxBdXRob3JpdGllcwEAvQgEAARsIFRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQuACxDdXJyZW50U2xvdAEAxQggAAAAAAAAAAAMgCBUaGUgY3VycmVudCBzbG90IG9mIHRoaXMgYmxvY2suAJQgVGhpcyB3aWxsIGJlIHNldCBpbiBgb25faW5pdGlhbGl6ZWAuAAAABDBTbG90RHVyYXRpb24oIOAuAAAAAAAAFA0BIFRoZSBzbG90IGR1cmF0aW9uIEF1cmEgc2hvdWxkIHJ1biB3aXRoLCBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzLgAhASBUaGUgZWZmZWN0aXZlIHZhbHVlIG9mIHRoaXMgdHlwZSBjYW4gYmUgY2hhbmdlZCB3aXRoIGEgcnVudGltZSB1cGdyYWRlLgA1ASBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZWl0aGVyIHVzZSBbYE1pbmltdW1QZXJpb2RUaW1lc1R3b2BdIG9yIGEgY29uc3QuAAAELEF1dGhvcml0eUlkPQEEmCBUaGUgaWRlbnRpZmllciB0eXBlIGZvciBhbiBhdXRob3JpdHkuABcAABxBdXJhRXh0ARxBdXJhRXh0CCxBdXRob3JpdGllcwEAvQgEABSUIFNlcnZlcyBhcyBjYWNoZSBmb3IgdGhlIGF1dGhvcml0aWVzLgBxASBUaGUgYXV0aG9yaXRpZXMgaW4gQXVSYSBhcmUgb3ZlcndyaXR0ZW4gaW4gYG9uX2luaXRpYWxpemVgIHdoZW4gd2Ugc3dpdGNoIHRvIGEgbmV3IHNlc3Npb24sXQEgYnV0IHdlIHJlcXVpcmUgdGhlIG9sZCBhdXRob3JpdGllcyB0byB2ZXJpZnkgdGhlIHNlYWwgd2hlbiB2YWxpZGF0aW5nIGEgUG9WLiBUaGlzIHdpbGwNASBhbHdheXMgYmUgdXBkYXRlZCB0byB0aGUgbGF0ZXN0IEF1UmEgYXV0aG9yaXRpZXMgaW4gYG9uX2ZpbmFsaXplYC4ANFJlbGF5U2xvdEluZm8AAMkIBAAQCQEgQ3VycmVudCByZWxheSBjaGFpbiBzbG90IHBhaXJlZCB3aXRoIGEgbnVtYmVyIG9mIGF1dGhvcmVkIGJsb2Nrcy4AZQEgVGhpcyBpcyB1cGRhdGVkIGluIFtgRml4ZWRWZWxvY2l0eUNvbnNlbnN1c0hvb2s6Om9uX3N0YXRlX3Byb29mYF0gd2l0aCB0aGUgY3VycmVudCByZWxhedwgY2hhaW4gc2xvdCBhcyBwcm92aWRlZCBieSB0aGUgcmVsYXkgY2hhaW4gc3RhdGUgcHJvb2YuAAAAAAAAABgAACRYY21wUXVldWUBJFhjbXBRdWV1ZRxQSW5ib3VuZFhjbXBTdXNwZW5kZWQBAM0IBAAgDQEgVGhlIHN1c3BlbmRlZCBpbmJvdW5kIFhDTVAgY2hhbm5lbHMuIEFsbCBvdGhlcnMgYXJlIG5vdCBzdXNwZW5kZWQuAHEBIFRoaXMgaXMgYSBgU3RvcmFnZVZhbHVlYCBpbnN0ZWFkIG9mIGEgYFN0b3JhZ2VNYXBgIHNpbmNlIHdlIGV4cGVjdCBtdWx0aXBsZSByZWFkcyBwZXIgYmxvY2tpASB0byBkaWZmZXJlbnQga2V5cyB3aXRoIGEgb25lIGJ5dGUgcGF5bG9hZC4gVGhlIGFjY2VzcyB0byBgQm91bmRlZEJUcmVlU2V0YCB3aWxsIGJlIGNhY2hlZBUBIHdpdGhpbiB0aGUgYmxvY2sgYW5kIHRoZXJlZm9yZSBvbmx5IGluY2x1ZGVkIG9uY2UgaW4gdGhlIHByb29mIHNpemUuAGUBIE5PVEU6IFRoZSBQb1YgYmVuY2htYXJraW5nIGNhbm5vdCBrbm93IHRoaXMgYW5kIHdpbGwgb3Zlci1lc3RpbWF0ZSwgYnV0IHRoZSBhY3R1YWwgcHJvb2ZEIHdpbGwgYmUgc21hbGxlci4ASE91dGJvdW5kWGNtcFN0YXR1cwEA1QgEABhdASBUaGUgbm9uLWVtcHR5IFhDTVAgY2hhbm5lbHMgaW4gb3JkZXIgb2YgYmVjb21pbmcgbm9uLWVtcHR5LCBhbmQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdFEBIGFuZCBsYXN0IG91dGJvdW5kIG1lc3NhZ2UuIElmIHRoZSB0d28gaW5kaWNlcyBhcmUgZXF1YWwsIHRoZW4gaXQgaW5kaWNhdGVzIGFuIGVtcHR5WQEgcXVldWUgYW5kIHRoZXJlIG11c3QgYmUgYSBub24tYE9rYCBgT3V0Ym91bmRTdGF0dXNgLiBXZSBhc3N1bWUgcXVldWVzIGdyb3cgbm8gZ3JlYXRlclkBIHRoYW4gNjU1MzUgaXRlbXMuIFF1ZXVlIGluZGljZXMgZm9yIG5vcm1hbCBtZXNzYWdlcyBiZWdpbiBhdCBvbmU7IHplcm8gaXMgcmVzZXJ2ZWQgaW4RASBjYXNlIG9mIHRoZSBuZWVkIHRvIHNlbmQgYSBoaWdoLXByaW9yaXR5IHNpZ25hbCBtZXNzYWdlIHRoaXMgYmxvY2suCQEgVGhlIGJvb2wgaXMgdHJ1ZSBpZiB0aGVyZSBpcyBhIHNpZ25hbCBtZXNzYWdlIHdhaXRpbmcgdG8gYmUgc2VudC4AUE91dGJvdW5kWGNtcE1lc3NhZ2VzAQEIAgXpCO0IBAAEvCBUaGUgbWVzc2FnZXMgb3V0Ym91bmQgaW4gYSBnaXZlbiBYQ01QIGNoYW5uZWwuADhTaWduYWxNZXNzYWdlcwEBBAKc7QgEAASgIEFueSBzaWduYWwgbWVzc2FnZXMgd2FpdGluZyB0byBiZSBzZW50LgAsUXVldWVDb25maWcBAPEIMCAAAAAwAAAACAAAAAQVASBUaGUgY29uZmlndXJhdGlvbiB3aGljaCBjb250cm9scyB0aGUgZHluYW1pY3Mgb2YgdGhlIG91dGJvdW5kIHF1ZXVlLgA4UXVldWVTdXNwZW5kZWQBAMgEAARBASBXaGV0aGVyIG9yIG5vdCB0aGUgWENNUCBxdWV1ZSBpcyBzdXNwZW5kZWQgZnJvbSBleGVjdXRpbmcgaW5jb21pbmcgWENNcyBvciBub3QuAEREZWxpdmVyeUZlZUZhY3RvcgEBBAWcLQFAAABkp7O24A0AAAAAAAAAAATEIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5LgABQQEAAYEGAAxMTWF4SW5ib3VuZFN1c3BlbmRlZDgQ6AMAABRJASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5ib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGJlIHN1c3BlbmRlZCBzaW11bHRhbmVvdXNseS4AXQEgQW55IGZ1cnRoZXIgY2hhbm5lbCBzdXNwZW5zaW9ucyB3aWxsIGZhaWwgYW5kIG1lc3NhZ2VzIG1heSBnZXQgZHJvcHBlZCB3aXRob3V0IGZ1cnRoZXJFASBub3RpY2UuIENob29zaW5nIGEgaGlnaCB2YWx1ZSAoMTAwMCkgaXMgb2theTsgdGhlIHRyYWRlLW9mZiB0aGF0IGlzIGRlc2NyaWJlZCBpbtggW2BJbmJvdW5kWGNtcFN1c3BlbmRlZGBdIHN0aWxsIGFwcGxpZXMgYXQgdGhhdCBzY2FsZS4AZE1heEFjdGl2ZU91dGJvdW5kQ2hhbm5lbHM4EIAAAAAgZQEgTWF4aW1hbCBudW1iZXIgb2Ygb3V0Ym91bmQgWENNUCBjaGFubmVscyB0aGF0IGNhbiBoYXZlIG1lc3NhZ2VzIHF1ZXVlZCBhdCB0aGUgc2FtZSB0aW1lLgBVASBJZiB0aGlzIGlzIHJlYWNoZWQsIHRoZW4gbm8gZnVydGhlciBtZXNzYWdlcyBjYW4gYmUgc2VudCB0byBjaGFubmVscyB0aGF0IGRvIG5vdCB5ZXRdASBoYXZlIGEgbWVzc2FnZSBxdWV1ZWQuIFRoaXMgc2hvdWxkIGJlIHNldCB0byB0aGUgZXhwZWN0ZWQgbWF4aW11bSBvZiBvdXRib3VuZCBjaGFubmVsc2EBIHdoaWNoIGlzIGRldGVybWluZWQgYnkgW2BTZWxmOjpDaGFubmVsSW5mb2BdLiBJdCBpcyBpbXBvcnRhbnQgdG8gc2V0IHRoaXMgbGFyZ2UgZW5vdWdoLF0BIHNpbmNlIG90aGVyd2lzZSB0aGUgY29uZ2VzdGlvbiBjb250cm9sIHByb3RvY29sIHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQgYW5kIG1lc3NhZ2VzUQEgbWF5IGJlIGRyb3BwZWQuIFRoaXMgdmFsdWUgaW5jcmVhc2VzIHRoZSBQb1YgYW5kIHNob3VsZCB0aGVyZWZvcmUgbm90IGJlIHBpY2tlZCB0b29NASBoaWdoLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIHBheSBhdHRlbnRpb24gdG8gbm90IG9wZW4gbW9yZSBjaGFubmVscyB0aGFuIHRoaXMgdmFsdWUuACxNYXhQYWdlU2l6ZTgQAJwBABS4IFRoZSBtYXhpbWFsIHBhZ2Ugc2l6ZSBmb3IgSFJNUCBtZXNzYWdlIHBhZ2VzLgBhASBBIGxvd2VyIGxpbWl0IGNhbiBiZSBzZXQgZHluYW1pY2FsbHksIGJ1dCB0aGlzIGlzIHRoZSBoYXJkLWxpbWl0IGZvciB0aGUgUG9WIHdvcnN0IGNhc2VVASBiZW5jaG1hcmtpbmcuIFRoZSBsaW1pdCBmb3IgdGhlIHNpemUgb2YgYSBtZXNzYWdlIGlzIHNsaWdodGx5IGJlbG93IHRoaXMsIHNpbmNlIHNvbWW4IG92ZXJoZWFkIGlzIGluY3VycmVkIGZvciBlbmNvZGluZyB0aGUgZm9ybWF0LgAB9QgAAAAeAAAsUG9sa2Fkb3RYY20BLFBvbGthZG90WGNtPDBRdWVyeUNvdW50ZXIBACggAAAAAAAAAAAEiCBUaGUgbGF0ZXN0IGF2YWlsYWJsZSBxdWVyeSBpbmRleC4AHFF1ZXJpZXMAAQQCKPkIBAAEVCBUaGUgb25nb2luZyBxdWVyaWVzLgAoQXNzZXRUcmFwcwEBBAY8OBAAAAAAEGggVGhlIGV4aXN0aW5nIGFzc2V0IHRyYXBzLgBhASBLZXkgaXMgdGhlIGJsYWtlMiAyNTYgaGFzaCBvZiAob3JpZ2luLCB2ZXJzaW9uZWQgYEFzc2V0c2ApIHBhaXIuIFZhbHVlIGlzIHRoZSBudW1iZXIgb2YdASB0aW1lcyB0aGlzIHBhaXIgaGFzIGJlZW4gdHJhcHBlZCAodXN1YWxseSBqdXN0IDEgaWYgaXQgZXhpc3RzIGF0IGFsbCkuADhTYWZlWGNtVmVyc2lvbgAAOAQACGEBIERlZmF1bHQgdmVyc2lvbiB0byBlbmNvZGUgWENNIHdoZW4gbGF0ZXN0IHZlcnNpb24gb2YgZGVzdGluYXRpb24gaXMgdW5rbm93bi4gSWYgYE5vbmVgLD0BIHRoZW4gdGhlIGRlc3RpbmF0aW9ucyB3aG9zZSBYQ00gdmVyc2lvbiBpcyB1bmtub3duIGFyZSBjb25zaWRlcmVkIHVucmVhY2hhYmxlLgBAU3VwcG9ydGVkVmVyc2lvbgABCAUCDQk4BAAE8CBUaGUgTGF0ZXN0IHZlcnNpb25zIHRoYXQgd2Uga25vdyB2YXJpb3VzIGxvY2F0aW9ucyBzdXBwb3J0LgBAVmVyc2lvbk5vdGlmaWVycwABCAUCDQkoBAAEBQEgQWxsIGxvY2F0aW9ucyB0aGF0IHdlIGhhdmUgcmVxdWVzdGVkIHZlcnNpb24gbm90aWZpY2F0aW9ucyBmcm9tLgBQVmVyc2lvbk5vdGlmeVRhcmdldHMAAQgFAg0JEQkEAAhxASBUaGUgdGFyZ2V0IGxvY2F0aW9ucyB0aGF0IGFyZSBzdWJzY3JpYmVkIHRvIG91ciB2ZXJzaW9uIGNoYW5nZXMsIGFzIHdlbGwgYXMgdGhlIG1vc3QgcmVjZW50lCBvZiBvdXIgdmVyc2lvbnMgd2UgaW5mb3JtZWQgdGhlbSBvZi4AVFZlcnNpb25EaXNjb3ZlcnlRdWV1ZQEAFQkEAAxlASBEZXN0aW5hdGlvbnMgd2hvc2UgbGF0ZXN0IFhDTSB2ZXJzaW9uIHdlIHdvdWxkIGxpa2UgdG8ga25vdy4gRHVwbGljYXRlcyBub3QgYWxsb3dlZCwgYW5kcQEgdGhlIGB1MzJgIGNvdW50ZXIgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IGEgc2VuZCB0byB0aGUgZGVzdGluYXRpb24gaGFzIGJlZW4gYXR0ZW1wdGVkLIwgd2hpY2ggaXMgdXNlZCBhcyBhIHByaW9yaXRpemF0aW9uLgBAQ3VycmVudE1pZ3JhdGlvbgAAIQkEAAScIFRoZSBjdXJyZW50IG1pZ3JhdGlvbidzIHN0YWdlLCBpZiBhbnkuAFRSZW1vdGVMb2NrZWRGdW5naWJsZXMAAQwFAgIlCSkJBAAE8CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIGEgcmVtb3RlIGNoYWluLgA8TG9ja2VkRnVuZ2libGVzAAEEAgQ5CQQABOAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiB0aGlzIGNoYWluLgBUWGNtRXhlY3V0aW9uU3VzcGVuZGVkAQDIBAAEtCBHbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgA8U2hvdWxkUmVjb3JkWGNtAQDIBAAcWQEgV2hldGhlciBvciBub3QgaW5jb21pbmcgWENNcyAoYm90aCBleGVjdXRlZCBsb2NhbGx5IGFuZCByZWNlaXZlZCkgc2hvdWxkIGJlIHJlY29yZGVkLsQgT25seSBvbmUgWENNIHByb2dyYW0gd2lsbCBiZSByZWNvcmRlZCBhdCBhIHRpbWUuKQEgVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGluIHJ1bnRpbWUgQVBJcywgYW5kIGl0J3MgYWR2aXNlZCBpdCBzdGF5cyBmYWxzZQ0BIGZvciBhbGwgb3RoZXIgdXNlIGNhc2VzLCBzbyBhcyB0byBub3QgZGVncmFkZSByZWd1bGFyIHBlcmZvcm1hbmNlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uACxSZWNvcmRlZFhjbQAAXQIEABhJASBJZiBbYFNob3VsZFJlY29yZFhjbWBdIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoZSBsYXN0IFhDTSBwcm9ncmFtIGV4ZWN1dGVkIGxvY2FsbHlUIHdpbGwgYmUgc3RvcmVkIGhlcmUuKQEgUnVudGltZSBBUElzIGNhbiBmZXRjaCB0aGUgWENNIHRoYXQgd2FzIGV4ZWN1dGVkIGJ5IGFjY2Vzc2luZyB0aGlzIHZhbHVlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uAERBdXRob3JpemVkQWxpYXNlcwABBAJJAUUJBAAMZQEgTWFwIG9mIGF1dGhvcml6ZWQgYWxpYXNlcnMgb2YgbG9jYWwgb3JpZ2lucy4gRWFjaCBsb2NhbCBsb2NhdGlvbiBjYW4gYXV0aG9yaXplIGEgbGlzdCBvZlkBIG90aGVyIGxvY2F0aW9ucyB0byBhbGlhcyBpbnRvIGl0LiBFYWNoIGFsaWFzZXIgaXMgb25seSB2YWxpZCB1bnRpbCBpdHMgaW5uZXIgYGV4cGlyeWA4IGJsb2NrIG51bWJlci4AAUUBCAECuQFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAACAtkBVGhpcyBleHRyaW5zaWMgdXNlcyBgV2VpZ2h0TGltaXQ6OlVubGltaXRlZGAsIHBsZWFzZSBtaWdyYXRlIHRvIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAABhQYAEERVbml2ZXJzYWxMb2NhdGlvbuQYAgkCAHkXBIQgVGhpcyBjaGFpbidzIFVuaXZlcnNhbCBMb2NhdGlvbi4AUEFkdmVydGlzZWRYY21WZXJzaW9uOBAFAAAACCUBIFRoZSBsYXRlc3Qgc3VwcG9ydGVkIHZlcnNpb24gdGhhdCB3ZSBhZHZlcnRpc2UuIEdlbmVyYWxseSBqdXN0IHNldCBpdCB0b4QgYHBhbGxldF94Y206OkN1cnJlbnRYY21WZXJzaW9uYC4AKE1heExvY2tlcnM4EAgAAAAEGQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2FsIFhDTSBsb2NrcyB0aGF0IGEgc2luZ2xlIGFjY291bnQgbWF5IGhhdmUuAFhNYXhSZW1vdGVMb2NrQ29uc3VtZXJzOBAAAAAABPwgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN1bWVycyBhIHNpbmdsZSByZW1vdGUgbG9jayBtYXkgaGF2ZS4AAV0JBBgCvFVzZSBgTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yYCBpbnN0ZWFkARgyMC4wLjAILFJ1bnRpbWVDYWxsIARkIFRoZSBydW50aW1lIGBDYWxsYCB0eXBlLnBSZW1vdGVMb2NrQ29uc3VtZXJJZGVudGlmaWVyEATEIFRoZSBJRCB0eXBlIGZvciBsb2NhbCBjb25zdW1lcnMgb2YgcmVtb3RlIGxvY2tzLgAfAAAoQ3VtdWx1c1hjbQABGQMAAZUGAAAAAAAgAAAwTWVzc2FnZVF1ZXVlATBNZXNzYWdlUXVldWUMMEJvb2tTdGF0ZUZvcgEBBAUhA2UJdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMwgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBhbmQgbGFzdCAobm9uLWVtcHR5KSBwYWdlcy4ALFNlcnZpY2VIZWFkAAAhAwQABLwgVGhlIG9yaWdpbiBhdCB3aGljaCB3ZSBzaG91bGQgYmVnaW4gc2VydmljaW5nLgAUUGFnZXMAAQgFBXEJdQkEAASIIFRoZSBtYXAgb2YgcGFnZSBpbmRpY2VzIHRvIHBhZ2VzLgABHQMAAZkGABAgSGVhcFNpemU4EACcAQAUPQEgVGhlIHNpemUgb2YgdGhlIHBhZ2U7IHRoaXMgaW1wbGllcyB0aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgd2hpY2ggY2FuIGJlIHNlbnQuAFkBIEEgZ29vZCB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBleHBlY3RlZCBtZXNzYWdlIHNpemVzLCB0aGVpciB3ZWlnaHRzLCB0aGUgd2VpZ2h0IHRoYXQgaXNdASBhdmFpbGFibGUgZm9yIHByb2Nlc3NpbmcgdGhlbSBhbmQgdGhlIG1heGltYWwgbmVlZGVkIG1lc3NhZ2Ugc2l6ZS4gVGhlIG1heGltYWwgbWVzc2FnZREBIHNpemUgaXMgc2xpZ2h0bHkgbG93ZXIgdGhhbiB0aGlzIGFzIGRlZmluZWQgYnkgW2BNYXhNZXNzYWdlTGVuT2ZgXS4AIE1heFN0YWxlOBAIAAAADF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdGFsZSBwYWdlcyAoaS5lLiBvZiBvdmVyd2VpZ2h0IG1lc3NhZ2VzKSBhbGxvd2VkIGJlZm9yZSBjdWxsaW5nUQEgY2FuIGhhcHBlbi4gT25jZSB0aGVyZSBhcmUgbW9yZSBzdGFsZSBwYWdlcyB0aGFuIHRoaXMsIHRoZW4gaGlzdG9yaWNhbCBwYWdlcyBtYXkgYmX8IGRyb3BwZWQsIGV2ZW4gaWYgdGhleSBjb250YWluIHVucHJvY2Vzc2VkIG92ZXJ3ZWlnaHQgbWVzc2FnZXMuADRTZXJ2aWNlV2VpZ2h0pQIsAQcAWED7ogIA4AAYQQEgVGhlIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgd2hpY2ggc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvcqggc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pbml0aWFsaXplYC4A/CBUaGlzIG1heSBiZSBsZWdpdGltYXRlbHkgYE5vbmVgIGluIHRoZSBjYXNlIHRoYXQgeW91IHdpbGwgY2FsbF0BIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgbWFudWFsbHkgb3Igc2V0IFtgU2VsZjo6SWRsZU1heFNlcnZpY2VXZWlnaHRgXSB0byBoYXZlVCBpdCBydW4gaW4gYG9uX2lkbGVgLgBQSWRsZU1heFNlcnZpY2VXZWlnaHSlAiwBBwBYQPuiAgDgABRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgABfQkABBBTaXplOARUIFBhZ2UvaGVhcCBzaXplIHR5cGUuACIAABxVdGlsaXR5AAElAwABoQYABExiYXRjaGVkX2NhbGxzX2xpbWl0OBCqKgAABKggVGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgYmF0Y2hlZCBjYWxscy4AAYEJAAgsUnVudGltZUNhbGwgBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS40UGFsbGV0c09yaWdpbjEDBPAgVGhlIGNhbGxlciBvcmlnaW4sIG92ZXJhcmNoaW5nIHR5cGUgb2YgYWxsIHBhbGxldHMgb3JpZ2lucy4AKAAAIE11bHRpc2lnASBNdWx0aXNpZwQkTXVsdGlzaWdzAAEIBQKFCYkJBAAElCBUaGUgc2V0IG9mIG9wZW4gbXVsdGlzaWcgb3BlcmF0aW9ucy4AAZEDAAGpBgAMLERlcG9zaXRCYXNlxEAAPJFgBAAAAAAAAAAAAAAAGFkBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24gb3IgdG+EIHN0b3JlIGEgZGlzcGF0Y2ggY2FsbCBmb3IgbGF0ZXIuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpczEBIGA0ICsgc2l6ZW9mKChCbG9ja051bWJlciwgQmFsYW5jZSwgQWNjb3VudElkKSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpc4AgYDMyICsgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLgA0RGVwb3NpdEZhY3RvcsRAACC8vgAAAAAAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuADhNYXhTaWduYXRvcmllczgQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4AAZEJAAQsUnVudGltZUNhbGwgBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AKQAAEFN1ZG8BEFN1ZG8EDEtleQAABAQABIQgVGhlIGBBY2NvdW50SWRgIG9mIHRoZSBzdWRvIGtleS4AAZ0DAAGtBgAAAZUJAAQsUnVudGltZUNhbGwgBEggQSBzdWRvLWFibGUgY2FsbC4AKgAAPFZlcmlmeVNpZ25hdHVyZQAAAAAABCRTaWduYXR1cmXZAwT0IFNpZ25hdHVyZSB0eXBlIHRoYXQgdGhlIGV4dGVuc2lvbiBvZiB0aGlzIHBhbGxldCBjYW4gdmVyaWZ5LgArAAAUUHJveHkBFFByb3h5CBxQcm94aWVzAQEEBQSZCUQAAAAAAAAAAAAAAAAAAAAAAAhFASBUaGUgc2V0IG9mIGFjY291bnQgcHJveGllcy4gTWFwcyB0aGUgYWNjb3VudCB3aGljaCBoYXMgZGVsZWdhdGVkIHRvIHRoZSBhY2NvdW50cyEBIHdoaWNoIGFyZSBiZWluZyBkZWxlZ2F0ZWQgdG8sIHRvZ2V0aGVyIHdpdGggdGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQuADRBbm5vdW5jZW1lbnRzAQEEBQSpCUQAAAAAAAAAAAAAAAAAAAAAAASsIFRoZSBhbm5vdW5jZW1lbnRzIG1hZGUgYnkgdGhlIHByb3h5IChrZXkpLgABoQMAAbUGABhAUHJveHlEZXBvc2l0QmFzZcRAAAx3QgMAAAAAAAAAAAAAABARASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgcHJveHkuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpcyUBIGBzaXplb2YoQmFsYW5jZSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpcyBgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLgBIUHJveHlEZXBvc2l0RmFjdG9yxEAAAbLEAAAAAAAAAAAAAAAAFLwgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHByb3h5IGFkZGVkLgA1ASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyAzMiBieXRlcyBwbHVzIGFuIGluc3RhbmNlIG9mIGBQcm94eVR5cGVgIG1vcmUgaW50byBhYQEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuIFRodXMsIHdoZW4gY29uZmlndXJpbmcgYFByb3h5RGVwb3NpdEZhY3RvcmAgb25lIHNob3VsZCB0YWtl9CBpbnRvIGFjY291bnQgYDMyICsgcHJveHlfdHlwZS5lbmNvZGUoKS5sZW4oKWAgYnl0ZXMgb2YgZGF0YS4AKE1heFByb3hpZXM4ECAAAAAE8CBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHJveGllcyBhbGxvd2VkIGZvciBhIHNpbmdsZSBhY2NvdW50LgAoTWF4UGVuZGluZzgQIAAAAARFASBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZS1kZWxheWVkIGFubm91bmNlbWVudHMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwZW5kaW5nLgBcQW5ub3VuY2VtZW50RGVwb3NpdEJhc2XEQAAUJnIDAAAAAAAAAAAAAAAQMQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhbiBhbm5vdW5jZW1lbnQuAEkBIFRoaXMgaXMgaGVsZCB3aGVuIGEgbmV3IHN0b3JhZ2UgaXRlbSBob2xkaW5nIGEgYEJhbGFuY2VgIGlzIGNyZWF0ZWQgKHR5cGljYWxseSAxNiAgYnl0ZXMpLgBkQW5ub3VuY2VtZW50RGVwb3NpdEZhY3RvcsRAAAJkiQEAAAAAAAAAAAAAABDUIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBhbm5vdW5jZW1lbnQgbWFkZS4AWQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgYW4gYEFjY291bnRJZGAsIGBIYXNoYCBhbmQgYEJsb2NrTnVtYmVyYCAodHlwaWNhbGx5IDY4IGJ5dGVzKYwgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLgABuQkACCxSdW50aW1lQ2FsbCAEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLiRQcm94eVR5cGWpAxBVASBBIGtpbmQgb2YgcHJveHk7IHNwZWNpZmllZCB3aXRoIHRoZSBwcm94eSBhbmQgcGFzc2VkIGluIHRvIHRoZSBgSXNQcm94eWFibGVgIGZpbHRlci5RASBUaGUgaW5zdGFuY2UgZmlsdGVyIGRldGVybWluZXMgd2hldGhlciBhIGdpdmVuIGNhbGwgbWF5IGJlIHByb3hpZWQgdW5kZXIgdGhpcyB0eXBlLgBNASBJTVBPUlRBTlQ6IGBEZWZhdWx0YCBtdXN0IGJlIHByb3ZpZGVkIGFuZCBNVVNUIEJFIHRoZSB0aGUgKm1vc3QgcGVybWlzc2l2ZSogdmFsdWUuCBgJ14NGcnoO9YwPoDuvoyPLxRSI2SoapxN7A7+1DvwXRGNoZWNrX3Blcm1pc3Npb25zCBBjYWxsIChwcm94eV90eXBlqQPIBPQgQ2hlY2sgaWYgYSBgUnVudGltZUNhbGxgIGlzIGFsbG93ZWQgZm9yIGEgZ2l2ZW4gYFByb3h5VHlwZWAuABgJ14NGcnoO9YwPoDuvoyMXFLBgfWKvCjs7CtLF1VxYLGlzX3N1cGVyc2V0CCB0b19jaGVja6kDHGFnYWluc3SpA8gE9CBDaGVjayBpZiBvbmUgYFByb3h5VHlwZWAgaXMgYSBzdWJzZXQgb2YgYW5vdGhlciBgUHJveHlUeXBlYC4ALAAAGFBlb3BsZQEYUGVvcGxlJBBLZXlzAAEEAggoBAAUSQEgVGhlIGN1cnJlbnQgaW5kaXZpZHVhbHMgd2UgcmVjb2duaXNlLCBidXQgbm90IG5lY2Vzc2FyaWx5IHlldCBpbmNsdWRlZCBpbiBhIHJpbmcuAHUBIExvb2stdXAgZnJvbSB0aGUgY3J5cHRvIChwdWJsaWMpIGtleSB0byB0aGUgaW1tdXRhYmxlIElEIG9mIHRoZSBpbmRpdmlkdWFsIChgUGVyc29uYWxJZGApLiBBXQEgcGVyc29uIGNhbiBoYXZlIHR3byBkaWZmZXJlbnQgZW50cmllcyBpbiB0aGlzIG1hcCBpZiB0aGV5IHF1ZXVlZCBhIGtleSBtaWdyYXRpb24gd2hpY2hkIGhhc24ndCBiZWVuIGVuYWN0ZWQgeWV0LgA4Q291bnRlckZvcktleXMBADgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAAYUGVvcGxlAAEEAii9CQQADEkBIFRoZSBjdXJyZW50IGluZGl2aWR1YWxzIHdlIHJlY29nbmlzZSwgYnV0IG5vdCBuZWNlc3NhcmlseSB5ZXQgaW5jbHVkZWQgaW4gYSByaW5nLgBlASBJbW11dGFibGUgSUQgb2YgdGhlIGluZGl2aWR1YWwgKGBQZXJzb25hbElkYCkgdG8gaW5mb3JtYXRpb24gYWJvdXQgdGhlaXIga2V5IGFuZCBzdGF0dXMuADhBbGlhc1RvQWNjb3VudAABBAJJAwQEAATMIENvbnZlcnNpb24gb2YgYSBjb250ZXh0dWFsIGFsaWFzIHRvIGFuIGFjY291bnQgSUQuADhBY2NvdW50VG9BbGlhcwABBAIERQMEAATMIENvbnZlcnNpb24gb2YgYW4gYWNjb3VudCBJRCB0byBhIGNvbnRleHR1YWwgYWxpYXMuAExBY2NvdW50VG9QZXJzb25hbElkAAEEAgQoBAAQvCBBc3NvY2lhdGlvbiBvZiBhbiBhY2NvdW50IElEIHRvIGEgcGVyc29uYWwgSUQuACEBIE1hbmFnZWQgd2l0aCBgc2V0X3BlcnNvbmFsX2lkX2FjY291bnRgIGFuZCBgdW5zZXRfcGVyc29uYWxfaWRfYWNjb3VudGAu+CBSZXZlcnNlIGxvb2t1cCBpcyBpbnNpZGUgYFBlb3BsZWAgc3RvcmFnZSwgaW5zaWRlIHRoZSByZWNvcmQuADhOZXh0UGVyc29uYWxJZAEAKCAAAAAAAAAAAAS4IFRoZSBuZXh0IGZyZWUgYW5kIG5ldmVyIHJlc2VydmVkIHBlcnNvbmFsIElELgBcUGVvcGxlQ29sbGVjdGlvbkNyZWF0ZWQBAMgEAATAIFdoZXRoZXIgdGhlIHBlb3BsZSBjb2xsZWN0aW9uIGhhcyBiZWVuIGNyZWF0ZWQuAEhSZXNlcnZlZFBlcnNvbmFsSWQAAQQFKBAEAATAIENhbmRpZGF0ZXMnIHJlc2VydmVkIGlkZW50aXRpZXMgd2hpY2ggd2UgdHJhY2suAAGtAwABvQYAEDBSaW5nRXhwb25lbnSRBAQJBE0BIFRoZSByaW5nIGV4cG9uZW50IHVzZWQgdG8gb3BlcmF0ZSB0aGUgcGVvcGxlIG1lbWJlciBjb2xsZWN0aW9uIGluIGBNZW1iZXJTZXJ2aWNlYC4AXE9uYm9hcmRpbmdRdWV1ZVBhZ2VTaXplOBAeAAAACEkBIE1heGltdW0gbnVtYmVyIG9mIHBlb3BsZSBpbmNsdWRlZCBpbiBhbiBvbmJvYXJkaW5nIHF1ZXVlIHBhZ2UgYmVmb3JlIGEgbmV3IG9uZSBpcyQgY3JlYXRlZC4AZFN0YWxlQWxpYXNDbGVhbnVwSW50ZXJ2YWw4EJYAAAAEMQEgSW50ZXJ2YWwgKGluIGJsb2NrcykgYXQgd2hpY2ggdGhlIG9mZmNoYWluIHdvcmtlciBydW5zIHN0YWxlIGFsaWFzIGNsZWFudXAuAHBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlOBBYAgAAFD0BIFRoZSBhbW91bnQgb2YgYmxvY2sgbnVtYmVyIHRvbGVyYW5jZSB3ZSBhbGxvdyBmb3IgYSBzZXR1cCBhY2NvdW50IHRyYW5zYWN0aW9uLgAFASBgc2V0X2FsaWFzX2FjY291bnRgIGFuZCBgc2V0X3BlcnNvbmFsX2lkX2FjY291bnRgIGNhbGxzIGNvbnRhaW5zUQEgYGNhbGxfdmFsaWRfYXRgIGFzIGEgcGFyYW1ldGVyLCB0aG9zZSBjYWxscyBhcmUgdmFsaWQgaWYgdGhlIGJsb2NrIG51bWJlciBpcyB3aXRoaW5YIHRoZSB0b2xlcmFuY2UgcGVyaW9kLgABwQkAAAAzAAAcTW9iUnVsZQEcTW9iUnVsZTAcQ3JlZGl0cwEBBAIIxQlwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASMIFRoZSB2b3RpbmcgcmVjb3JkcyBvZiBhbGwgYWxpYXNlcy4APFZvdGluZ1BlbmFsdGllcwABBAIIOAQACHEBIFRoZSB2b3RlIHBlbmFsdGllcyBvZiB1c2VycyBhbmQgdGhlaXIgc3RhcnRpbmcgbW9tZW50LiBWb3RlcnMgd2l0aCBwZW5hbHRpZXMgY2Fubm90IHZvdGUgaW7MIGNvbnRlbXB0IHVudGlsIHRoZSBwZW5hbHR5IGV4cGlyZXMgYW5kIGlzIHJlbW92ZWQuADBWb3RpbmdQb2ludHMBAQgGAskJOBAAAAAACGUBIFRoZSBhY2N1bXVsYXRlZCBwb2ludHMgb2YgYWxsIGFsaWFzZXMsIGR1cmluZyBlYWNoIGZ1bmRpbmcgcm91bmQuIFRoZSBwb2ludHMgYWNjdW11bGF0ZWQhASBkdXJpbmcgcm91bmQgYE5gIGNhbiBiZSByZWRlZW1lZCBmb3IgcmV3YXJkcyBvbmx5IGR1cmluZyByb3VuZCBgTiArIDFgLgAUVm90ZXMAAQgCAskJwQMEAAS4IEFsbCB2b3RlcyBjYXN0LCBzZWdyZWdhdGVkIGJ5IGNhc2UgYW5kIHZvdGVyLgAkQ2FzZUNvdW50AQA4EAAAAAAEEQEgVGhlIG51bWJlciBvZiBjYXNlcywgb3BlbiBvciByZWNlbnRseSBjbG9zZWQsIHN0b3JlZCBpbiB0aGUgcGFsbGV0LgAkT3BlbkNhc2VzAAEEAjjNCQQABCkBIFRoZSBvcGVuIGNhc2VzIHJlY29yZGVkIGluIHRoZSBwYWxsZXQuIFRoZXNlIGNhc2VzIGNhbiBzdGlsbCBiZSB2b3RlZCBvbi4AJFJpcGVDYXNlcwABBAI46QkEAAx1ASBUaGUgcmlwZSBjYXNlcyByZWNvcmRlZCBpbiB0aGUgcGFsbGV0LiBUaGUgdm90aW5nIGhhcyBjb25jbHVkZWQgb24gdGhlc2UgY2FzZXMgYW5kIGEgdmVyZGljdGUBIGhhcyBiZWVuIHJlYWNoZWQsIGJ1dCB0aGV5IGNhbm5vdCBiZSByZW1vdmVkIHlldCBpbiBvcmRlciB0byBhbGxvdyBwZW9wbGUgdG8gY2xhaW0gdGhlaXIcIHZvdGVzLgAkRG9uZUNhc2VzAAEEAjjtCQQACGEBIFRoZSBkb25lIGNhc2VzIHJlY29yZGVkIGluIHRoZSBwYWxsZXQuIFRoZXNlIGNhc2VzIGFyZSBvYnNvbGV0ZSBhbmQgY2FuIGJlIHJlbW92ZWQgZnJvbSQgc3RvcmFnZS4AREFjY3VtdWxhdGVkUG9pbnRzAQAoIAAAAAAAAAAACHUBIFRoZSBudW1iZXIgb2YgcG9pbnRzIGFjY3VtdWxhdGVkIHRocm91Z2ggY29ycmVjdCB2b3RlcyBkdXJpbmcgdGhlIGN1cnJlbnQgcGF5b3V0IHJvdW5kLiBUaGlzdQEgYW1vdW50IGlzIGdvaW5nIHRvIGRldGVybWluZSB0aGUgcG9pbnQvcmV3YXJkIGV4Y2hhbmdlIHJhdGUgb2YgdGhlIG5leHQgcmV3YXJkIHBheW91dCByb3VuZC4ASFBheW91dERpc3RyaWJ1dGlvbgAA8QkEAATYIERlc2NyaWJlcyB0aGUgcGFyYW1ldGVycyBvZiB0aGUgY3VycmVudCBwYXlvdXQgcm91bmQuADhSb3VuZFNjaGVkdWxlcwEA9QkEAAS4IERlc2NyaWJlcyB0aGUgc2NoZWR1bGVzIG9mIHRoZSBwYXlvdXQgcm91bmRzLgAsQWN0aXZlU2luY2UAACgEAAhtASBUaGUgdGltZXN0YW1wLCBpbiBzZWNvbmRzLCBvZiB0aGUgbW9tZW50IGVub3VnaCBhY3RpdmUgdm90ZXJzIHdlcmUgZGV0ZWN0ZWQgYW5kIHZvdGluZyB3YXMxASBlbmFibGVkLiBUaGlzIHZhbHVlIHdpbGwgbm90IGJlIHByZXNlbnQgaWYgdGhlcmUgYXJlIHRvbyBmZXcgYWN0aXZlIHZvdGVycy4AAb0DAAHBBgA4UEN1cnJlbmN5TG9jYXRpb25JbmZv4DABAwBxFwQyBXbI6wsE9CBUaGUgbG9jYXRpb24gb2YgdGhlIHVzZWQgY3VycmVuY3kuIEl0IGlzIGluZm9ybWF0aW9uYWwgb25seS4AUE1heFZvdGVDbGFpbUR1cmF0aW9uKCCAUQEAAAAAAAQFASBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGEgY2FzZSB0aW1lcyBvdXQgYW5kIGNhbiBiZSByZWFwZWQuADxNaW5DYXNlRHVyYXRpb244EFgCAAAEQQEgVGhlIG51bWJlciBvZiBzZWNvbmRzIGEgY2FzZSBtdXN0IHN0YXkgb3BlbiBmb3Igdm90aW5nIGJlZm9yZSBpdCBjYW4gYmUgY2xvc2VkLgBETWF4Vm90aW5nRHVyYXRpb244ELAEAAAELQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHNlY29uZHMgZm9yIHdoaWNoIGEgY2FzZSBjb3VsZCBzdGF5IG9wZW4gZm9yIHZvdGluZy4ARE1pblR1cm5vdXROb21pbmFsOBABAAAABEUBIFRoZSBtaW5pbXVtIG51bWJlciBvZiB2b3RlcyBhIGNhc2UgbXVzdCByZWNlaXZlIGJlZm9yZSBhIHZlcmRpY3QgY2FuIGJlIHJlYWNoZWQuAFBNaW5UdXJub3V0UGVyY2VudGFnZQEKBAoIZQEgVGhlIG1pbmltdW0gbnVtYmVyIG9mIHZvdGVzIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgdG90YWwgdm90ZXIgY291bnQgYSBjYXNlIG11c3QgcmVjZWl2ZYQgYmVmb3JlIGEgdmVyZGljdCBjYW4gYmUgcmVhY2hlZC4AVFZvdGluZ1BlbmFsdHlEdXJhdGlvbjgQwKgAAATQIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYSBwZW5hbHR5IGlzIGFwcGxpZWQgZm9yLgBETWF4Vm90ZXNDbGFpbWFibGU4EAoAAAAE9CBUaGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgY2xhaW1hYmxlIGluIGEgc2luZ2xlIGV4dHJpbnNpYy4AUE9mZmNoYWluV29ya0ludGVydmFsOBCWAAAABLAgVGhlIGludGVydmFsIGF0IHdoaWNoIG9mZmNoYWluIHdvcmtlciBydW5zLgBMQ2xlYW5Wb3Rlc0JhdGNoU2l6ZTgQ6AMAAAQlASBNYXhpbXVtIG51bWJlciBvZiB2b3RlcyB0aGF0IHdpbGwgYmUgY2xlYW5lZCBkdXJpbmcgb2ZmY2hhaW4gd29ya2VyIHJ1bi4AaFZvdGVzT3BlbkZvckNsYWltc0R1cmF0aW9uOBBYAgAACBUBIFRoZSB0aW1lIGluIHNlY29uZHMgZHVyaW5nIHdoaWNoIHZvdGVzIGNhbiBiZSBjbGFpbWVkIG9uIGRvbmUgY2FzZXMuwCBNZWFzdXJlZCBmcm9tIHRoZSB0aW1lIHRoZSBjYXNlIGJlY29tZXMgJ0RvbmUnLgBUTWluaW11bVZvdGVyVGhyZXNob2xkOBADAAAACGUBIFRoZSBtaW5pbXVtIG51bWJlciBvZiBhY3RpdmUgdm90ZXJzIHJlcXVpcmVkIHRvIGFsbG93IHZvdGluZy4gV2hlbiB0aGlzIHRocmVzaG9sZCBpcyBub3SEIG1ldCwgb3BlbiBjYXNlcyBjYW5ub3QgdGltZSBvdXQuADxtb2JfcnVsZV9wb3RfaWQEgG1vZGxNb2JSd3JkcwAAAAAAAAAAAAAAAAAAAAAAAAAABOAgR2V0IGEgdW5pcXVlLCBpbmFjY2Vzc2libGUgYWNjb3VudCBJRCBmcm9tIHRoZSBgUG90SWRgLgBAbW9iX3J1bGVfY29udGV4dAiAcG9wOnBvbGthZG90Lm5ldHdvcmsvbW9iLXJ1bGUgICAIUQEgVGhlIGNvbnRleHQgdXNlZCBmb3IgdGhlIHByb29mcyByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgYXMgYSBwZXJzb25hbCBhbGlhcyBpbiBtb2IYIHJ1bGUuAAEFCgAAADQAAChQcm9vZk9mSW5rAShQcm9vZk9mSW5rLChDYW5kaWRhdGVzAAEEAgQJCgQABEkBIFRoZSBjdXJyZW50IHBlcnNvbmFsIGlkZW50aXRpZXMgd2hpY2ggYXJlIGdvaW5nIHRocm91Z2ggdGhlIHByb29mLW9mLWluayBwcm9jZXNzLgAYUGVvcGxlAAEEBSgZCgQACHEBIFRoZSBwZXJzb25hbCBpZGVudGl0aWVzIHdoaWNoIHdlIHRyYWNrOyBhbGwgd2hpY2ggaGF2ZSBiZWVuIHJlY29nbml6ZWQgdGhyb3VnaCBwcm9vZi1vZi1pbms0IGFyZSBpbiBoZXJlLgA8UmVmZXJyYWxUaWNrZXRzAAEEBSglCgQABAkBIFRoZSB0aWNrZXRzIHN0b3JlZCBvbi1jaGFpbiByZWFkeSB0byBiZSB1c2VkIHRvIHJlZmVyIGNhbmRpZGF0ZXMuADhEZXNpZ25GYW1pbGllcwABBAItAzEKBAAEqCBUaGUgY3VycmVudCBkZXNpZ24gZmFtaWxpZXMgd2UgcmVjb2duaXNlLgBAQ29tbWl0dGVkRGVzaWducwABCAICNQo5CgQABNQgVGhlIGNvbW1pdHRlZCBkZXNpZ25zIHdoaWNoIGFyZSBubyBsb25nZXIgYXZhaWxhYmxlLgA8QWxsb2NhdGlvbkNvdW50AQA4EAAAAAAEsCBUaGUgbnVtYmVyIG9mIGp1ZGdlbWVudHMgY3VycmVudGx5IG9uZ29pbmcuADRDb25maWd1cmF0aW9uAQDlA6BAnQQABAAAAOgDAAAAAAAEAAAAACAAAAAAACAAAAAAAAgAAABAnQQABEwgVGhlIGNvbmZpZ3VyYXRpb24uAEBBdmFpbGFibGVJbnZpdGVzAQEEAgQ4EAAAAAAE+CBOdW1iZXIgb2YgaW52aXRhdGlvbnMgYXZhaWxhYmxlIHRvIGRpc3RyaWJ1dGUgZm9yIGFuIGFjY291bnQuADhQZW5kaW5nSW52aXRlcwABCAICPQoQBAAMHQEgUGVuZGluZyBpbnZpdGF0aW9ucyBmb3IgZWFjaCBpbnZpdGVyIChhbiBhY2NvdW50IHRoYXQgaW52aXRlcyBvdGhlcnMpLgBZASBJZiB0aGUga2V5IGAoaW52aXRlciwgdGlja2V0KWAgZXhpc3RzLCB0aGVuIHRoZSB0aWNrZXQgaXMgY3VycmVudGx5IGEgcGVuZGluZyBpbnZpdGUuAGxSZWZlcnJlclJlaW1idXJzZW1lbnRWYWx1ZXMAAOkDBAAUYQEgVGhlIHZhbHVlcyBvZiB0aGUgcmVpbWJ1cnNlbWVudCBhd2FyZGVkIHRvIHJlZmVycmVycywgYWxvbmcgd2l0aCBob3cgbWFueSBvZiBlYWNoIHZhbHVlbQEgc2hvdWxkIGJlIGF3YXJkZWQuIFRoZXNlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHJldmVyc2Ugb3JkZXIgb2YgdGhlaXIgcHJpb3JpdHksIHNvIHRoZSBsYXN0QQEgdmFsdWUgaW4gdGhlIGxpc3Qgd2lsbCBiZSB0aGUgZmlyc3Qgb25lIHRvIGJlIHVzZWQgYnkgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtLgBFASBTdG9yYWdlIGl0ZW0gbmFtZSBrZWVwcyB0aGUgbGVnYWN5IHByZWZpeCBmb3Igc3RvcmFnZSByZWFkYWJpbGl0eSBjb21wYXRpYmlsaXR5LgBsUmVmZXJyZWRSZWltYnVyc2VtZW50VmFsdWVzAADpAwQAFGEBIFRoZSB2YWx1ZXMgb2YgdGhlIHJlaW1idXJzZW1lbnQgYXdhcmRlZCB0byByZWZlcnJlZCBwZW9wbGUsIGFsb25nIHdpdGggaG93IG1hbnkgb2YgZWFjaHEBIHZhbHVlIHNob3VsZCBiZSBhd2FyZGVkLiBUaGVzZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiByZXZlcnNlIG9yZGVyIG9mIHRoZWlyIHByaW9yaXR5LCBzbyB0aGVVASBsYXN0IHZhbHVlIGluIHRoZSBsaXN0IHdpbGwgYmUgdGhlIGZpcnN0IG9uZSB0byBiZSB1c2VkIGJ5IHRoZSByZWltYnVyc2VtZW50IHN5c3RlbS4ARQEgU3RvcmFnZSBpdGVtIG5hbWUga2VlcHMgdGhlIGxlZ2FjeSBwcmVmaXggZm9yIHN0b3JhZ2UgcmVhZGFiaWxpdHkgY29tcGF0aWJpbGl0eS4AAc0DAAHFBgAMSE1heEFjdGl2ZVJlZmVycmFsczgQCgAAAAj0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgcmVmZXJyYWxzIGEgdXNlciBjYW4gaGF2ZSBvcGVuLlggSXQgY2Fubm90IGV4Y2VlZCAyMDAuABRQb3RJZJEIIFBvSVBvdF9fIOwgQWNjb3VudCBJZGVudGlmaWVyIGZyb20gd2hpY2ggdGhlIHJld2FyZCBwb3QgaXMgZ2VuZXJhdGVkLgApASBUaGUgYWNjb3VudCBtdXN0IGJlIGZ1bmRlZCBzbyByZXdhcmRzIGNhbiBiZSBwYWlkIGR1cmluZyByZWdpc3RyYXRpb24gYW5kYCByZWZlcnJhbCByZXdhcmQgY2xhaW1zLgARASBUaGUgYFBhbGxldElkYCBtdXN0IGJlIGEgY29uc3RhbnQgYXMgaXQgaXMgZXhwb3NlZCBpbiB0aGUgbWV0YWRhdGEuZQEgQ2hhbmdpbmcgdGhpcyB2YWx1ZSB3aXRoIGEgcnVudGltZSB1cGdyYWRlIGNhbiBiZSBkb25lIGF0IGFueSB0aW1lLCB0aGUgbmV3IGFjY291bnQgd2lsbJAgdGhlbiBuZWVkIHRvIGJlIGZ1bmRlZCBhY2NvcmRpbmdseS4ATHByb29mX29mX2lua19wb3RfaWQEgG1vZGxQb0lQb3RfXwAAAAAAAAAAAAAAAAAAAAAAAAAABNQgVGhlIGFjY291bnQgSUQgb2YgdGhlIHBvdCB1c2VkIGZvciByZXdhcmQgdHJhbnNmZXJzLgABQQoACDxUaWNrZXRTaWduYXR1cmXZAwyIIFNpZ25hdHVyZSB1c2VkIHRvIHZlcmlmeSB0aWNrZXRzLgABASBDYW4gdmVyaWZ5IHdoZXRoZXIgYW4gYFNlbGY6OlRpY2tldFB1YmxpY2AgY3JlYXRlZCBhIHNpZ25hdHVyZS4YVGlja2V0BASYIFRpY2tldCB0eXBlIHVzZWQgdG8gcmVmZXIgY2FuZGlkYXRlcy4ANQAAEEdhbWUBEEdhbWVUUFN0b3JlZFBoYXNlRHVyYXRpb25zAAAtBAQADPQgUGhhc2UtZHVyYXRpb24gb3ZlcnJpZGUgc2V0IGJ5IFtgQ29uZmlnOjpNYW5hZ2VyT3JpZ2luYF0gdmlh4CBgc2V0X2dhbWVfcGhhc2VzYC4gYE5vbmVgIG1lYW5zIHRoZSBjaGFpbiBmYWxscyBiYWNrIHRvcCBgVDo6RGVmYXVsdFBoYXNlRHVyYXRpb25zYC4ARFBsYXlEZXBvc2l0QW1vdW50AQDEQADIF6gEAAAAAAAAAAAAAAAQPQEgVGhlIGNvbmZpZ3VyZWQgbmF0aXZlIGJhbGFuY2UgaGVsZCBhcyBkZXBvc2l0IHdoZW4gYW4gYWNjb3VudCBwbGF5ZXIgc2lnbnMgdXAuADEBIFRoaXMgdmFsdWUgaXMgb25seSB1c2VkIGZvciBuZXcgZGVwb3NpdCBjcmVhdGlvbnM7IGV4aXN0aW5nIGFjdGl2ZSBkZXBvc2l0c6ggcmV0YWluIHRoZSBhbW91bnQgdGhleSB3ZXJlIGNyZWF0ZWQgd2l0aC4AEE5mdHMAAQgCAkUKOAQAJCkBIEFsbCBtaW50ZWQgTkZUcywga2V5ZWQgYnkgb3duZXIgYW5kIE5GVCBoYXNoLiBUaGUgdmFsdWUgaXMgYSBVbml4LXNlY29uZHM1ASB0aW1lc3RhbXAgc2V0IHdoZW5ldmVyIHRoZSBlbnRyeSBpcyB3cml0dGVuOiBieSB0aGUgYHJlcG9ydGAgZXh0cmluc2ljIGZvciBhNQEgZnJlc2ggYFBlcnNvbmAgdm90ZSwgYnkgYG1pbnRfYXR0ZW5kYW5jZV9uZnRzYCB3aGVuIGFuIGF0dGVuZGVlJ3MgYXR0ZW5kYW5jZTEBIGlzIGZpbmFsaXNlZCwgb3IgYnkgYHByb21vdGVfbmZ0X2NhbmRpZGF0ZXNgIHdoZW4gYSBoZWxkIGBOb3RQZXJzb25gIE5GVCBpczUBIHJlc29sdmVkLiBCYWNrZmlsbCB3cml0ZXMgb3ZlcndyaXRlIGFuIGVhcmxpZXIgdGltZXN0YW1wIG9uIHRoZSBzYW1lIGtleSDigJQxASB0aGUgdmFsdWUgaXMgdGhlcmVmb3JlIHRoZSAqbW9zdCByZWNlbnQqIG1pbnQgdGltZSwgbm90IHRoZSBmaXJzdC4gV2l0aGluIGE5ASBzaW5nbGUgZ2FtZSB0aGVzZSB0aW1lc3RhbXBzIGFyZSBib3VuZGVkIHRvZ2V0aGVyICh0eXBpY2FsbHkgdGhlIHNhbWUgYmxvY2spLDUBIHNvIGNsaWVudHMgY2FuIHVzZSB0aGVtIGFzIGEgcGVyLWdhbWUgdmVyc2lvbiBtYXJrZXIgKGUuZy4gbWFwcGluZyBvbGQgbWludHPUIHRvIG9uZSBpbWFnZSBjb2xsZWN0aW9uIGFuZCBuZXdlciBtaW50cyB0byBhbm90aGVyKS4ANE5mdENhbmRpZGF0ZXMAAQgCAkUKEAQAJCkBIENhbmRpZGF0ZSBORlRzIHN0YWdlZCBmcm9tIGBOb3RQZXJzb25gIHJlcG9ydHMsIGhlbGQgdW50aWwgdGhlIGF0dGVzdGVlJ3NcIGF0dGVuZGFuY2UgaXMgZGVjaWRlZC4AOQEgRHVyaW5nIHRoZSByZXBvcnRpbmcgcGhhc2UgYSBgTm90UGVyc29uYCB2b3RlIHN0YWdlcyB0aGUgTkZUIGhlcmUgcmF0aGVyIHRoYW49ASBtaW50aW5nIGRpcmVjdGx5IGludG8gW2BOZnRzYF06IHRoZSBhdHRlc3RlZSBvbmx5IGVhcm5zIHRoZSBORlQgaWYgdGhleSBlbmQgdXAhASBjbGFzc2VkIGFzIGhhdmluZyBhdHRlbmRlZC4gVGhlIGZpcnN0IGtleSBpcyB0aGUgcHJvc3BlY3RpdmUgb3duZXIgKHRoZSEBIGF0dGVzdGVlKSwgdGhlIHNlY29uZCBpcyB0aGUgTkZUIGhhc2ggKHNhbWUgZGVyaXZhdGlvbiBhcyBpbiBbYE5mdHNgXSkuIQEgUmVzb2x2ZWQgZW50cmllcyBhcmUgZWl0aGVyIHByb21vdGVkIGludG8gW2BOZnRzYF0gb3IgZGlzY2FyZGVkIOKAlCBzZWXUIGBwcm9tb3RlX25mdF9jYW5kaWRhdGVzYCAvIGBkaXNjYXJkX25mdF9jYW5kaWRhdGVzYC4APEFyY2hpdmVkUGxheWVycwABBALNBkkKBAAEKQEgQWxsIHRoZSBwbGF5ZXIgd2l0aCB6ZXJvIHNjb3JlIGJ1dCBzdGlsbCBvbmJvYXJkZWQgaW4gaW5kaXZfcGFsbGV0X3Njb3JlLgAcUGxheWVycwABBALNBk0KBAAQcCBBbGwgdGhlIHBsYXllciBpbiB0aGUgZ2FtZS4AIQEgQWNjb3VudC1iYXNlZCBwbGF5ZXIgYWNjb3VudHMgaW4gdGhpcyBzdG9yYWdlIGFuZCBzdGF0ZW1lbnQgYWNjb3VudHMgaW6kIFtgU3RtdEFjY291bnRUb0FsaWFzYF0gbXVzdCBub3Qgb3ZlcmxhcC4AJEdhbWVJbmRleAEAOBAAAAAABGAgVGhlIGN1cnJlbnQgZ2FtZSBpbmRleC4AEEdhbWUAAGUKBAAEzCBUaGUgaW5mb3JtYXRpb24gZm9yIHRoZSBuZXh0IGdhbWUgb3Igb25nb2luZyBnYW1lLgAsR2FtZUhpc3RvcnkAAQQFODgEAAhhASBUaGUgbWFwcGluZyBmcm9tIHBhc3QgZ2FtZXMsIGlkZW50aWZpZWQgYnkgdGhlaXIgZ2FtZSBpbmRleCwgdG8gdGhlIHN0YXJ0IHRpbWVzdGFtcCwgaW54IHNlY29uZHMgc2luY2UgdGhlIFVOSVggZXBvY2guAFxQbGF5ZXJBdHRlbmRhbmNlSGlzdG9yeQEBBALNBnkKBAAIMQEgRW50cmllcyBvZiBwcmV2aW91c2x5IGF0dGVuZGVkIGdhbWVzIG9mIGVhY2ggcGxheWVyLiBSZXRhaW5lZCBvbiBgb2ZmYm9hcmRgCQEgYW5kIGBraWNrb3V0YC4gQm91bmRlZCBieSBgTWF4QXR0ZW5kYW5jZUhpc3RvcnlEZXB0aGAgcGVyIHBsYXllci4AUEdhbWVQYXJ0aWNpcGFudENvdW50AQEEBTg4EAAAAAAQ8CBDb3VudCBvZiBjb25maXJtZWQgYXR0ZW5kZWVzIHBlciBnYW1lIGluZGV4LiBJbmNyZW1lbnRlZCBieRkBIFtgUGFsbGV0Ojpub3RlX2F0dGVuZGFuY2VgXSBmb3IgZXZlcnkgYXR0ZW5kYW5jZSBlbnRyeSwgcmVnYXJkbGVzcyBvZvwgd2hldGhlciB0aGUgcGxheWVyIGlzIHJlY29yZGVkIGFzIGBBY2NvdW50T3JQZXJzb246OlBlcnNvbmAgb3L0IGBBY2NvdW50T3JQZXJzb246OkFjY291bnRgLiBFeHBvc2VkIGZvciBvZmYtY2hhaW4gY29uc3VtZXJzLgA0SW5kZXhUb1BsYXllcgABBAV9Cs0GBAAE5CBUaGUgbWFwcGluZyBmcm9tIHJvdW5kIGluZGV4IGFuZCBwbGF5ZXIgaW5kZXggdG8gcGxheWVyLgA0UGxheWVyVG9JbmRleAABBALNBoEKBAAE4CBUaGUgbWFwcGluZyBmcm9tIHBsYXllciB0byB0aGVpciBpbmRpY2VzIGluIGVhY2ggcm91bmQuAERTaHVmZmxlUmVjb2duaXplZAABCAUGhQrNBgQABAEBIFN0b3JhZ2UgdXNlZCB0byBjb21wdXRlIHRoZSBzaHVmZmxlIG9yZGVyIG9mIHJlY29nbml6ZWQgcGVvcGxlLgBQU2h1ZmZsZU5vdFJlY29nbml6ZWQAAQgFBoUKzQYEAARVASBTdG9yYWdlIHVzZWQgdG8gY29tcHV0ZSB0aGUgc2h1ZmZsZSBvcmRlciBvZiBub3QgcmVjb2duaXplZCBwZW9wbGUsIGkuZS4gY2FuZGlkYXRlcy4ANEdhbWVTY2hlZHVsZXMBAIkKBAAAAEBBdmFpbGFibGVJbnZpdGVzAQEEAgQ4EAAAAAAE6CBOdW1iZXIgb2YgaW52aXRlcyBhdmFpbGFibGUgdG8gZGlzdHJpYnV0ZSBmb3IgYW4gYWNjb3VudC4AOFBlbmRpbmdJbnZpdGVzAAEIAgI9ChAEABCIIFBlbmRpbmcgaW52aXRlcyBmb3IgZWFjaCBpbnZpdGVyLgBpASBJZiB0aGUga2V5IGAoaW52aXRlciwgdGlja2V0KWAgZXhpc3RzIHRoZW4gdGhlIHRpY2tldCBpcyBjdXJyZW50bHkgYSBwZW5kaW5nIGludml0ZSwgZnJvbTQgdGhlIGludml0ZXIuAEhBbGlhc1RvU3RtdEFjY291bnQAAQQCCAQEABxZASBNYXBwaW5nIGZyb20gYWxpYXMgdG8gdGhlIGFjY291bnQgaWQgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBzdGF0ZW1lbnQgc3RvcmUuAEEBIEFjY291bnQtYmFzZWQgcGxheWVyIHNpbXBseSB1c2UgdGhlaXIgYWNjb3VudCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRoaXMgbWFwcGluZy4BASBSZXZlcnNlIG1hcHBpbmcgaXMgYXZhaWxhYmxlIGluIHN0b3JhZ2UgW2BTdG10QWNjb3VudFRvQWxpYXNgXS4A7CBUaGlzIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWxpYXMtYmFzZWQgcGxheWVyIGdldHMgYXJjaGl2ZWQuVQEgVGhpcyBpcyB1cGRhdGVkIHdoZW4gdGhlIGFsaWFzLWJhc2VkIHBsYXllciBzaWducyB1cCB3aXRoIGFub3RoZXIgc3RhdGVtZW50IGFjY291bnQuAEhTdG10QWNjb3VudFRvQWxpYXMAAQQCBAgEACRZASBNYXBwaW5nIGZyb20gdGhlIGFjY291bnQgaWQgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHN0YXRlbWVudCBzdG9yZSB0byB0aGUgYWxpYXMuAEEBIEFjY291bnQtYmFzZWQgcGxheWVyIHNpbXBseSB1c2UgdGhlaXIgYWNjb3VudCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRoaXMgbWFwcGluZy4BASBSZXZlcnNlIG1hcHBpbmcgaXMgYXZhaWxhYmxlIGluIHN0b3JhZ2UgW2BBbGlhc1RvU3RtdEFjY291bnRgXS7sIFRoaXMgaXMgcmVtb3ZlZCB3aGVuIHRoZSBhbGlhcy1iYXNlZCBwbGF5ZXIgZ2V0cyBhcmNoaXZlZC5VASBUaGlzIGlzIHVwZGF0ZWQgd2hlbiB0aGUgYWxpYXMtYmFzZWQgcGxheWVyIHNpZ25zIHVwIHdpdGggYW5vdGhlciBzdGF0ZW1lbnQgYWNjb3VudC4AZQEgU3RhdGVtZW50IGFjY291bnRzIGluIHRoaXMgc3RvcmFnZSBhbmQgYWNjb3VudC1iYXNlZCBwbGF5ZXIgYWNjb3VudHMgaW4gW2BQbGF5ZXJzYF0gbXVzdDQgbm90IG92ZXJsYXAuAGBDb21tdW5pY2F0aW9uSWRlbnRpZmllcnMAAQQCBN0DBAAMaQEgVGhlIGNvbW11bmljYXRpb24gaWRlbnRpZmllcnMgdXNlZCBieSBwbGF5ZXJzIHRvIGVzdGFibGlzaCBhbiBlbmNyeXB0ZWQgUDJQIGNvbm5lY3Rpb24gaW5tASBvcmRlciB0byBwbGF5IHRoZSBnYW1lLiBUaGUgYWNjb3VudCB1bmRlciB3aGljaCB0aGUgY29tbXVuaWNhdGlvbiBpZGVudGlmaWVyIGlzIHJlZ2lzdGVyZWQZASBzaG91bGQgYmUgdGhlIHNhbWUgYWNjb3VudCB1c2VkIHRvIGludGVyYWN0IHdpdGggdGhlIHN0YXRlbWVudCBzdG9yZS4AAfUDAAHJBgAwJE1heFJvdW5kczgQAwAAACSgIFRoZSBtYXhpbXVtIG51bWJlciBvZiByb3VuZHMgaW4gYSBnYW1lLgDoIE5vdGU6IHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJvdW5kcyBpcyBjb25maWd1cmVkIHBlciBnYW1lLgBBASBUT0RPOiBpZiB0aGlzIGJvdW5kIGlzIHJhaXNlZCBtZWFuaW5nZnVsbHkgKGUuZy4gYWJvdmUgfjUpIG9yIHdoZW4gdGltZSBhbGxvd3MsWQEgcmV2aXNpdCB0aGUgYHByb2Nlc3NfcGxheWVyc2AgYW5kIGByZXBvcnRgIGJlbmNobWFya3MgdG8gYWRkIGEgYExpbmVhcjwxLCBNYXhSb3VuZHM+YBUBIHN3ZWVwLiBDdXJyZW50bHkgdGhleSBiZW5jaCBhdCBmaXhlZCBgTWF4Um91bmRzYCBzbyBnYW1lcyB3aXRoIGZld2VyjCByb3VuZHMgb3ZlcnBheSBmb3IgcGVyLXJvdW5kIHdvcmsu7CBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvaW5kaXZpZHVhbGl0eS9pc3N1ZXMvMjQ0ADBNYXhHcm91cFNpemU4EAYAAAAMqCBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwLgAZASBOb3RlOiB0aGUgYWN0dWFsIG51bWJlciBvZiBwbGF5ZXJzIGluIGEgZ3JvdXAgaXMgY29uZmlndXJlZCBwZXIgZ2FtZS4AME1pbkdyb3VwU2l6ZTgQAAAAACCoIFRoZSBtaW5pbXVtIG51bWJlciBvZiBwbGF5ZXJzIGluIGEgZ3JvdXAuAGUBIFdoZW4gc2NoZWR1bGluZyBhIGdhbWUgdGhlIHZhbHVlIGZvciBgbWF4X2dyb3VwX3NpemVgIG11c3QgYmUgYXQgbGVhc3QgdGhpcyBtaW5pbXVtICsgMS4AJQEgSW4gb3JkZXIgdG8gaGF2ZSBubyBzaW5nbGUtcGxheWVyIGdyb3VwcywgdGhpcyB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDIuAFEBIE5vdGU6IHRoZSBhY3R1YWwgbWluaW11bSBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwIGlzIGNvbmZpZ3VyZWQgcGVyIGdhbWUsIGl0IGlzWCBgbWF4X2dyb3VwX3NpemUgLSAxYC4AVE5vblBsYXlpbmdLaWNrb3V0VGltZTgQgFM7AAwVASBUaGUgdGltZSBhZnRlciB3aGljaCBhIHBsYXllciB0aGF0IGlzIG5vdCBwbGF5aW5nIGNhbiBiZSBraWNrZWQgb3V0LgC8IFRoaXMgaXMgb25seSBmb3IgYWNjb3VudCBwbGF5ZXJzLCBub3QgcGVyc29ucy4ASERlZmF1bHRQbGF5RGVwb3NpdMRAAMgXqAQAAAAAAAAAAAAAAAhRASBUaGUgZGVmYXVsdCBwbGF5IGRlcG9zaXQgKG5hdGl2ZSBiYWxhbmNlKSB1c2VkIHdoZW4gW2BQbGF5RGVwb3NpdEFtb3VudGBdIGhhcyBuZXZlcnAgYmVlbiBleHBsaWNpdGx5IGNvbmZpZ3VyZWQuAFREZWZhdWx0UGhhc2VEdXJhdGlvbnMtBGAsAQAAPAAAAB4AAABYAgAAPAAAAID0AwAIEQEgVGhlIGRlZmF1bHQgZHVyYXRpb25zIG9mIGVhY2ggZ2FtZSBwaGFzZSwgaW4gc2Vjb25kcy4gT3ZlcnJpZGRlbiBhdKQgcnVudGltZSB2aWEgW2BQYWxsZXQ6OnNldF9nYW1lX3BoYXNlc2BdLgBATWF4R2FtZVNjaGVkdWxlczgQDAAAAATsIFRoZSBNYXhpbXVtIG51bWJlciBvZiBnYW1lIHNjaGVkdWxlcyB0aGUgcGFsbGV0IGNhbiBzdG9yZS4AZE1heEF0dGVuZGFuY2VIaXN0b3J5RGVwdGg4EAwAAAAIXQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhc3QgZ2FtZXMgZm9yIHdoaWNoIHBsYXllciBhdHRlbmRhbmNlIGlzIHN0b3JlZC4gQW55IGF0dGVuZGFuY2UBASBlbnRyaWVzIG9sZGVyIHRoYW4gdGhpcyB3aWxsIGJlIGltbWluZW50bHkgcHVyZ2VkIGZyb20gc3RvcmFnZS4ANEFpcmRyb3BTb3VyY2UEgG1vZGxwb3AvZ2FkcwAAAAAAAAAAAAAAAAAAAAAAAAAACOQgQWNjb3VudCB0aGF0IGZ1bmRzIHRoZSBwZXItZ2FtZSBhaXJkcm9wIHByaXplIGFsbG9jYXRpb24NASAoYG1heF93aW5uZXJzIMOXIGFzc2V0X2Ftb3VudGAgaXMgdHJhbnNmZXJyZWQgcGVyIHNjaGVkdWxlZCBnYW1lKS4AbHByb29mX29mX293bmVyc2hpcF9tc2dfYmFzZQiAcG9wOmdhbWU6c3RtdF9hY2NvdW50X2Zvcl9hbGlhczoQGQEgVGhlIGJhc2UgbWVzc2FnZSBvZiB0aGUgcHJvb2Ygb2Ygb3duZXJzaGlwIG9mIGFuIGFjY291bnQgYnkgYW4gYWxpYXMuADUBIFRoZSBmdWxsIG1lc3NhZ2UgaXMgdGhpcyBiYXNlIGNvbmNhdGVuYXRlZCB0byB0aGUgYWxpYXMgYW5kIHRoZW4gaGFzaGVkIHdpdGisIGBibGFrZTJfMjU2YCAoYmxha2UyIHdpdGggMjU2IGJpdCBvdXRwdXQpLgA4bWF4X2VuYWN0bWVudHM4EBAAAAAUOQEgTWF4aW11bSBudW1iZXIgb2YgZnVsbCBlYXJseS1hdHRlbmRhbmNlIGVuYWN0bWVudHMgYSBzaW5nbGUgYHJlcG9ydGAgY2FsbCBjYW4ZASB0cmlnZ2VyOiBldmVyeSB1bmlxdWUgY28tcGxheWVyIGFjcm9zcyBhbGwgcm91bmRzLCBwbHVzIHRoZSByZXBvcnRlci4AGQEgVXNlZCBib3RoIGFzIHRoZSBwcmUtZGlzcGF0Y2ggb3ZlcmNoYXJnZSBib3VuZCBvbiBgcmVwb3J0YCBhbmQgYXMgdGhlxCB1cHBlciBib3VuZCBvZiBpdHMgYExpbmVhcmAgYmVuY2htYXJrIGNvbXBvbmVudC4AVGFpcmRyb3BfZXZlbnRfaWRfYmFzZY0KcHBvcDpnYW1lOmFpcmRyb3A6ICAgICAgICAgICAIWQEgVGhlIGJhc2Ugc3RyaW5nIGZvciB0aGUgYWlyZHJvcCBldmVudCBJRCBkZXJpdmF0aW9uLiBUaGUgYWN0dWFsIGV2ZW50IElEIGlzIHRoaXMgYmFzZbQgY29uY2F0ZW5hdGVkIHdpdGggdGhlIGdhbWUgaW5kZXggQkUgZW5jb2RlZC4AAZEKABA8VGlja2V0U2lnbmF0dXJl2QMEiCBTaWduYXR1cmUgdXNlZCB0byB2ZXJpZnkgdGlja2V0cy5AQWNjb3VudFNpZ25hdHVyZdkDBGAgU2lnbmF0dXJlIGZvciBhY2NvdW50cy44QWlyZHJvcEFzc2V0SWTgBJAgQXNzZXQgaWQgdXNlZCBieSBbYFNlbGY6OkFpcmRyb3BgXS5MQWlyZHJvcEFzc2V0QmFsYW5jZcQEpCBBc3NldCBiYWxhbmNlIHVzZWQgYnkgW2BTZWxmOjpBaXJkcm9wYF0uADcAABRTY29yZQEUU2NvcmUsMFBhcnRpY2lwYW50cwABBALNBpUKBAAEfCBUaGUgcGFydGljaXBhbnRzIGluZm9ybWF0aW9ucy4ATFBlcnNvbmhvb2RUaHJlc2hvbGQBADgQAAAAAATIIFRoZSBzY29yZSB0aHJlc2hvbGQgcmVxdWlyZWQgdG8gcmVhY2ggcGVyc29uaG9vZC4AbFBlcnNvbmhvb2RUaHJlc2hvbGRTY2hlZHVsZQEASQTEGIgTAAABAAAAECcAAAMAAAAgTgAABgAAALiIAAAKAAAAUMMAAA8AAAD/////FQAAACgdASBSdW50aW1lLWNvbmZpZ3VyYWJsZSBzY2hlZHVsZSBvZiBwZXJzb25ob29kLXRocmVzaG9sZCB0aWVycywgc29ydGVkIGJ5HQEgYXNjZW5kaW5nIGBwb3B1bGF0aW9uX3NpemVfdGhyZXNob2xkYC4gRWFjaCB0aWVyIHNwZWNpZmllcyB0aGUgc2NvcmUgYR0BIHBhcnRpY2lwYW50IG11c3QgcmVhY2ggdG8gYmUgcmVjb2duaXplZCBhcyBhIHBlcnNvbiBhdCB0aGF0IHBvcHVsYXRpb24cIGxldmVsLgAFASBEZWZhdWx0cyB0byBbYERlZmF1bHRQZXJzb25ob29kVGhyZXNob2xkVGllcnNgXSB1bnRpbCBnb3Zlcm5hbmNlAQEgb3ZlcnJpZGVzIGl0IHZpYSBbYFBhbGxldDo6c2V0X3BlcnNvbmhvb2RfdGhyZXNob2xkX3NjaGVkdWxlYF0uABEBIEEgbmV3IHNjaGVkdWxlIHRha2VzIGVmZmVjdCBhdCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgcmVwb3J0IHNlc3Npb278IHdoZW4gYHVwZGF0ZV90aHJlc2hvbGRzKClgIHJlY2FsY3VsYXRlcyBgUGVyc29uaG9vZFRocmVzaG9sZGAuAFBBYnNlbmNlR3JhY2VTY2hlZHVsZQEAPQSUGIgTAAAGBRAnAAAFBCBOAAAEA7iIAAADAlDDAAACAf////8GASApASBSdW50aW1lLWNvbmZpZ3VyYWJsZSBzY2hlZHVsZSBvZiBhYnNlbmNlLWdyYWNlIHRpZXJzLCBzb3J0ZWQgYnkgYXNjZW5kaW5nDQEgcG9wdWxhdGlvbiBzaXplIHRocmVzaG9sZC4gRWFjaCB0aWVyIHNwZWNpZmllcyBob3cgbWFueSBtaXNzZXMgYXJlDQEgdG9sZXJhdGVkIHdpdGhpbiByZWNlbnQgZ2FtZXMgYmVmb3JlIGEgcGFydGljaXBhbnQncyBwZXJzb25ob29kIGlzLCBzdXNwZW5kZWQuAB0BIERlZmF1bHRzIHRvIFtgRGVmYXVsdEFic2VuY2VHcmFjZVRpZXJzYF0gdW50aWwgZ292ZXJuYW5jZSBvdmVycmlkZXMgaXQNASB2aWEgW2BQYWxsZXQ6OnNldF9hYnNlbmNlX2dyYWNlX3NjaGVkdWxlYF0uIEFuIGVtcHR5IHNjaGVkdWxlIChzZXT4IGV4cGxpY2l0bHkgYnkgZ292ZXJuYW5jZSkgZGlzYWJsZXMgdGhlIGdyYWNlIHBlcmlvZCBlbnRpcmVseS4AREFic2VuY2VHcmFjZVJhdGlvAQAFCQgAABgVASBUaGUgY3VycmVudGx5IGFjdGl2ZSBhYnNlbmNlLWdyYWNlIHJhdGlvIGAoYWxsb3dlZF9taXNzZXMsIHdpbmRvdylgLCUBIGRlcml2ZWQgZnJvbSBgQWJzZW5jZUdyYWNlU2NoZWR1bGVgIGFuZCB0aGUgY3VycmVudCBhY3RpdmUtcGVyc29uIGNvdW50LgARASBVcGRhdGVkIGVhY2ggdGltZSBgdXBkYXRlX3RocmVzaG9sZHMoKWAgcnVucyAoYXQgdGhlIHN0YXJ0IG9mIGV2ZXJ5HQEgYXR0ZW5kYW5jZSByZXBvcnQgc2Vzc2lvbikuIFJlYWQgYnkgYHNldF9hdHRlbmRhbmNlYCB0byBkZWNpZGUgd2hldGhlcowgYSBwYXJ0aWNpcGFudCBzaG91bGQgYmUgc3VzcGVuZGVkLgBIQ3VycmVudFJvdW5kUG9pbnRzAQA4EAAAAAAEtCBUaGUgYWNjdW11bGF0ZWQgcG9pbnRzIGluIHRoZSBjdXJyZW50IHJvdW5kLgBEQ3VycmVudFJvdW5kSW5kZXgBADgQAAAAAByAIFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCByb3VuZC4AXQEgVGhpcyBtdXN0IGJlIHRoZSBzdW0gb2YgYWxsIHBvaW50cyBhY2N1bXVsYXRlZCBpbiBgUm91bmRzUG9pbnRzRm9yUGFydGljaXBhbnRgIGZvciB0aGU8IGN1cnJlbnQgcm91bmQuAFEBICoqV0FSTklORyoqOiBUaGlzIHN0b3JhZ2UgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggYFJvdW5kc1BvaW50c0ZvclBhcnRpY2lwYW50YCwgdXNltCBgZm4gYWRkX3BvaW50c190b19wYXJ0aWNpcGFudGAgdG8gdXBkYXRlIGl0LgBoUm91bmRzUG9pbnRzRm9yUGFydGljaXBhbnQBAQgCAqUKOBAAAAAAGNAgVGhlIHBvaW50cyBhY2N1bXVsYXRlZCBieSBhIHBhcnRpY2lwYW50IGluIGEgcm91bmQuAFEBIEZvciB0aGUgY3VycmVudCByb3VuZCwgdGhpcyBzdG9yYWdlIG11c3QgYmUgdXBkYXRlZCBhbG9uZ3NpZGUgYEN1cnJlbnRSb3VuZFBvaW50c2AuADEBICoqV0FSTklORyoqOiBUaGlzIHN0b3JhZ2UgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggYEN1cnJlbnRSb3VuZFBvaW50c2AsIHVzZbQgYGZuIGFkZF9wb2ludHNfdG9fcGFydGljaXBhbnRgIHRvIHVwZGF0ZSBpdC4AMFJvdW5kUGF5b3V0cwABBAI4qQoEABCoIFRoZSByb3VuZHMgdGhhdCBhcmUgY3VycmVudGx5IHBheWluZyBvdXQuABEBIFJvdW5kcyBhcmUgcGF5aW5nIG91dCBhZnRlciB0aGV5IGhhdmUgZmluaXNoZWQgYWNjdW11bGF0aW5nIHBvaW50cy4lASBXaGVuIGFsbCB0aGVpciBwb2ludHMgaGF2ZSBiZWVuIHBhaWQgb3V0LCB0aGV5IGFyZSByZW1vdmVkIGZyb20gc3RvcmFnZS4ANFJvdW5kUGxhbm5pbmcAAK0KBAAM/CBUaGUgcGxhbm5pbmcgb2YgdGhlIGN1cnJlbnQgcm91bmQgdGhhdCBpcyBhY2N1bXVsYXRpbmcgcG9pbnRzLgA9ASBJZiBub25lIHRoZSBjdXJyZW50IHJvdW5kIGlzIG9uZ29pbmcgYW5kIHdpbGwgYmUgcGxhbm5lZCBvbiB0aGUgbmV4dCBzY2hlZHVsZS4AOFJvdW5kU2NoZWR1bGVzAQCxCgQABLggRGVzY3JpYmVzIHRoZSBzY2hlZHVsZXMgb2YgdGhlIHBheW91dCByb3VuZHMuAAExBAAB0QYAEFBDdXJyZW5jeUxvY2F0aW9uSW5mb+AwAQMAcRcEMgV2yOsLBPQgVGhlIGxvY2F0aW9uIG9mIHRoZSB1c2VkIGN1cnJlbmN5LiBJdCBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuAFBPZmZjaGFpbldvcmtJbnRlcnZhbDgQAgAAAASwIFRoZSBpbnRlcnZhbCBhdCB3aGljaCBvZmZjaGFpbiB3b3JrZXIgcnVucy4AMHNjb3JlX3BvdF9pZASAbW9kbHNjb3JlcG90AAAAAAAAAAAAAAAAAAAAAAAAAAAE4CBHZXQgYSB1bmlxdWUsIGluYWNjZXNzaWJsZSBhY2NvdW50IElEIGZyb20gdGhlIGBQb3RJZGAuADRzY29yZV9jb250ZXh0CIBwb3A6cG9sa2Fkb3QubmV0d29yay9zY29yZSAgICAgIAhZASBUaGUgY29udGV4dCB1c2VkIGZvciB0aGUgcHJvb2ZzIHJlcXVpcmVkIHRvIGF1dGhlbnRpY2F0ZSBhcyBhIHBlcnNvbmFsIGFsaWFzIGluIHNjb3JlICBwYWxsZXQuAAG9CgAAADgAACBEdW1teURpbQEgRHVtbXlEaW0ILFJlc2VydmVkSWRzAAEEAigQBAAE3CBUaGUgcGVyc29uYWwgSURzIHRoYXQgYXJlIHJlc2VydmVkIGJ5IHVucHJvdmVuIHBlb3BsZS4AGFBlb3BsZQABBAUowQoEAAS4IFRoZSBwZW9wbGUgd2UgdHJhY2sgYWxvbmcgd2l0aCB0aGVpciByZWNvcmRzLgABVQQAAdUGAAABxQoAAAA7AAAoUGVvcGxlTGl0ZQEoUGVvcGxlTGl0ZRQoTGl0ZVBlb3BsZQABBAIEyQoEAAAAOEFsaWFzVG9BY2NvdW50AAEEAkkDBAQABOAgQ29udmVyc2lvbiBvZiBhIGxpdGUgY29udGV4dHVhbCBhbGlhcyB0byBhbiBhY2NvdW50IElELgA4QWNjb3VudFRvQWxpYXMAAQQCBEUDBAAE4CBDb252ZXJzaW9uIG9mIGFuIGFjY291bnQgSUQgdG8gYSBsaXRlIGNvbnRleHR1YWwgYWxpYXMuAGxMaXRlUGVvcGxlQ29sbGVjdGlvbkNyZWF0ZWQBAMgEAATwIFdoZXRoZXIgdGhlIGxpdGUgcGVvcGxlIG1lbWJlciBjb2xsZWN0aW9uIGhhcyBiZWVuIGNyZWF0ZWQuAFBBdHRlc3RhdGlvbkFsbG93YW5jZQEBBAIEOBAAAAAABCkBIE51bWJlciBvZiBhdHRlc3RhdGlvbnMgYXZhaWxhYmxlIHRvIGRpc3RyaWJ1dGUgZm9yIGEgdmVyaWZpZXIgYWNjb3VudCBpZC4AAW0EAAHZBgAMQExpdGVSaW5nRXhwb25lbnSRBAQJBMwgUmluZyBleHBvbmVudCB1c2VkIGZvciB0aGUgbGl0ZSBwZW9wbGUgY29sbGVjdGlvbi4ASExpdGVPbmJvYXJkaW5nU2l6ZTgQAwAAAAT8IE9uYm9hcmRpbmcgc2l6ZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIGxpdGUgcGVvcGxlIGNvbGxlY3Rpb24uAHRhY2NvdW50X3NldHVwX2Jsb2NrX3RvbGVyYW5jZTgQWAIAAAQtASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBvZiB0b2xlcmFuY2Ugd2UgYWxsb3cgZm9yIGFuIGFsaWFzIHNldHVwIHRyYW5zYWN0aW9uLgAB0QoABFBBdHRlc3RhdGlvblNpZ25hdHVyZdkDCGEBIFNpZ25hdHVyZSBnZW5lcmF0ZWQgYnkgbGl0ZSBwZW9wbGUgYW5kIHVzZWQgYnkgdmVyaWZpZXJzIHRvIGNsYWltIGF0dGVzdGF0aW9ucyBvbiB0aGVpciAgYmVoYWxmLgA+AAAkUmVzb3VyY2VzASRSZXNvdXJjZXMsJENvbnN1bWVycwABBAIE1QoEAAQpASBBY2NvdW50cyB1c2VkIHRvIGlkZW50aWZ5IGNvbnN1bWVycyBtYXBwZWQgdG8gdGhlaXIgY29uc3VtZXIgaW5mb3JtYXRpb24uAGBTdGF0ZW1lbnRTdG9yZUFsbG93YW5jZXMAAQgGAt0K5QoEABRxASBBY2NvdW50cyBhc3NvY2lhdGVkIHdpdGggYSBzdGF0ZW1lbnQgc3RvcmUgc2xvdCB0aHJvdWdoIGFuIGFub255bW91cyBhbGxvd2FuY2UsIHBlciBwZXJpb2QuAGEBIFRoZSBwZXJpb2Qga2V5IGlzIGEgYmlnLWVuZGlhbiBlbmNvZGVkIGRheSBudW1iZXIgKHNlY29uZHMgc2luY2UgVW5peCBlcG9jaCAvIDg2NDAwKSBzb3EBIHRoYXQgYElkZW50aXR5YC1oYXNoZWQgaXRlcmF0aW9uIHlpZWxkcyBlbnRyaWVzIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIgdG8gYmUgcmVtb3ZlZCBieSB0aGVEIG9mZmNoYWluIHdvcmtlci4AbFN0bXRTdG9yZUFsbG93YW5jZUJ5QWNjb3VudAABCAIC6QoQBAAUQQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBhIHN0YXRlbWVudCBhY2NvdW50IHRvIGFsbCBpdHMgYWN0aXZlIGFub255bW91cyBhbGxvd2FuY2VzLgBFASBLZXllZCBieSBgKEFjY291bnRJZCwgKEJpZ0VuZGlhblUzMiBwZXJpb2QsIHUzMiBzZXEsIEFsaWFzKSlgIOKGkiBgKClgLiBNdWx0aXBsZUkBIGVudHJpZXMgcGVyIGFjY291bnQgYXJlIHBvc3NpYmxlIHdoZW4gdGhlIHNhbWUgc3RhdGVtZW50IGFjY291bnQgaXMgYXV0aG9yaXplZCBiecwgZGlmZmVyZW50IGFsaWFzZXMgb3IgYWNyb3NzIGdyYWNlLXdpbmRvdyBvdmVybGFwcy4AgEZyaWVuZFJlcXVlc3RSZWdpc3RyYXRpb25CeUFsaWFzAAEEAgjxCgQABCkBIEZyaWVuZCByZXF1ZXN0IHJlZ2lzdHJhdGlvbiBieSBhbm9ueW1vdXMgYWxpYXMgaW4gZnJpZW5kIHJlcXVlc3QgY29udGV4dC4AbEZyaWVuZFJlcXVlc3RBbGlhc0J5QWNjb3VudAABBAIECAQABCUBIFJldmVyc2UgbG9va3VwIGZyb20gZnJpZW5kIHJlcXVlc3Qgc3RhdGVtZW50IGFjY291bnQgdG8gYW5vbnltb3VzIGFsaWFzLgBsU3BlbnRMb25nVGVybVN0b3JhZ2VBbGlhc2VzAAEIBgLdChAEACBJASBBbGlhc2VzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gdXNlZCB0byBjbGFpbSBsb25nLXRlcm0gc3RvcmFnZSBpbiBhIGdpdmVuIHBlcmlvZC4AWQEgS2V5ZWQgYnkgYChwZXJpb2QsIGFsaWFzKWAuIEVhY2ggY291bnRlciB2YWx1ZSBpbiB0aGUgcHJvb2YgY29udGV4dCBwcm9kdWNlcyBhIHVuaXF1ZV0BIGFsaWFzLCBzbyBhIHBlcnNvbiBjYW4gaGF2ZSB1cCB0byBgTG9uZ1Rlcm1TdG9yYWdlQ2xhaW1zUGVyUGVyaW9kYCBlbnRyaWVzIHBlciBwZXJpb2QuNQEgT2xkIHBlcmlvZHMgY2FuIGJlIGNsZWFuZWQgdXAgdmlhIGBjbGVhcl9leHBpcmVkX2xvbmdfdGVybV9zdG9yYWdlX2FsaWFzZXNgLgBBASBUaGUgcGVyaW9kIGtleSBpcyBgQmlnRW5kaWFuVTMyYCB3aXRoIGBJZGVudGl0eWAgc28gaXRlcmF0aW9uIHlpZWxkcyBlbnRyaWVzIGlu6CBjaHJvbm9sb2dpY2FsIG9yZGVyLCBtYXRjaGluZyBgU3RhdGVtZW50U3RvcmVBbGxvd2FuY2VzYC4APFVzZXJuYW1lT3duZXJPZgABBAJ5BAQEABhxASBSZXZlcnNlIGxvb2t1cCBmcm9tIGB1c2VybmFtZWAgdG8gdGhlIGBBY2NvdW50SWRgIHRoYXQgaGFzIHJlZ2lzdGVyZWQgaXQuIFRoZSBgb3duZXJgIHZhbHVlZQEgc2hvdWxkIGJlIGEga2V5IGluIHRoZSBgQ29uc3VtZXJzYCBtYXAuIFRoZXJlIGNhbiBiZSBhdCBtb3N0IDIgdXNlcm5hbWVzIHBvaW50aW5nIHRvIHRoZTggc2FtZSBgb3duZXJgOnEBIC0gdXNlcm5hbWUgYXNzb2NpYXRlZCB3aXRoIGEgY29uc3VtZXIncyBsaXRlIHBlcnNvbiBpZGVudGl0eSAtIHRoaXMgd2lsbCBhbHdheXMgYmUgcHJlc2VudDtZASAtIG9wdGlvbmFsbHkgYW5vdGhlciB1c2VybmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbnN1bWVyJ3MgZnVsbCBwZXJzb24gaWRlbnRpdHksIGlmOCAgIGFwcGxpY2FibGUuADhBY2NvdW50T2ZBbGlhcwABBAIIBAQABGkBIFJldmVyc2UgbG9va3VwIGZyb20gcmVnaXN0ZXJlZCBhbGlhc2VzIHRvIHRoZSBgQWNjb3VudElkYCB1c2VkIHRvIHJlZ2lzdGVyIGFzIGEgY29uc3VtZXIuAGxVc2VybmFtZVJlc2VydmF0aW9uRHVyYXRpb24BACggAAAAAAAAAAAIVQEgVGhlIGFtb3VudCBvZiB0aW1lIGZvciB3aGljaCBhIHVzZXJuYW1lIHJlc2VydmF0aW9uIGlzIHZhbGlkLCBpbiBzZWNvbmRzLiBBZnRlciB0aGlz0CB0aW1lIHBlcmlvZCBlbGFwc2VzLCB0aGUgcmVzZXJ2YXRpb24gY2FuIGJlIHZvaWRlZC4AYFVzZXJuYW1lUmVzZXJ2YXRpb25RdWV1ZQABBAJ5BPUKBAAIcQEgTWFwIGZyb20gYSByZXNlcnZlZCBgdXNlcm5hbWVgIHRvIGEgcXVldWUgb2YgYFJlc2VydmF0aW9uUXVldWVFbnRyeWAgaXRlbXMsIGVhY2ggaG9sZGluZyBhbmEBIGFjY291bnQgYW5kIHRoZSB0aW1lc3RhbXAgd2hlbiBpdCBqb2luZWQuIE9sZCByZXNlcnZhdGlvbnMgY2FuIGJlIHJlbW92ZWQgZnJvbSBzdG9yYWdlLgA0UmVzZXJ2YXRpb25PZgABBAIEeQQEAAhlASBSZXZlcnNlIGxvb2t1cCBmcm9tIGFuIGFjY291bnQgdG8gdGhlIHVzZXJuYW1lIGl0IGhhcyByZXNlcnZlZC4gRWFjaCBhY2NvdW50IGNhbiBoYXZlIGF0nCBtb3N0IG9uZSBhY3RpdmUgcmVzZXJ2YXRpb24gYXQgYSB0aW1lLgABgQQAAd0GAFhETWF4VXNlcm5hbWVMZW5ndGg4ECAAAAAELQEgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgdXNlcm5hbWUsIGluY2x1ZGluZyBhbnkgcG90ZW50aWFsIHRyYWlsaW5nIGRpZ2l0cy4ARE1pblVzZXJuYW1lTGVuZ3RoOBAGAAAABIggVGhlIG1pbmltdW0gbGVuZ3RoIG9mIGEgdXNlcm5hbWUuAEhQZXJzb25BdXRoRHVyYXRpb244EACjAgAMVQEgVGhlIGR1cmF0aW9uIG9mIHRpbWUsIGluIHNlY29uZHMsIGZvciB3aGljaCBhIHBlcnNvbidzIGF1dGhvcml6YXRpb24gaXMgdmFsaWQuIEFmdGVyUQEgdGhpcyBwZXJpb2QgZWxhcHNlcywgcGVvcGxlIHdpbGwgbm8gbG9uZ2VyIGJlIGNvbnNpZGVyZWQgYWN0aXZlLCBidXQgdGhlaXIgcmVzb3VyY2UNASBhbGxvd2FuY2VzIHNob3VsZCBkZWZhdWx0IHRvIHRoZSBzYW1lIHZhbHVlcyB1c2VkIGZvciBsaXRlIHBlb3BsZS4AbE1pblBlcnNvbkF1dGhVcGRhdGVJbnRlcnZhbDgQgFEBAAhVASBUaGUgbWluaW11bSBpbnRlcnZhbCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB3aGljaCBtdXN0IHBhc3MgYmVmb3JlIHVwZGF0aW5nIGEgcGVyc29uJ3M8IGF1dGhvcml6YXRpb24uAGRNYXhSZXNlcnZhdGlvblF1ZXVlTGVuZ3RoOBAKAAAABCkBIE1heGltdW0gbnVtYmVyIG9mIGFjY291bnRzIHRoYXQgY2FuIHF1ZXVlIGZvciBhIHNpbmdsZSByZXNlcnZlZCB1c2VybmFtZS4AUEFjY291bnRzQXBpQWxsb3dhbmNlAQsgAgAAAADQBwAE0CBUaGUgU3RhdGVtZW50IFN0b3JlIGFsbG93YW5jZSBmb3IgdGhlIGFjY291bnRzIEFQSS4AXFN0bXRTdG9yZVNsb3RzUGVyUGVyaW9kOBAUAAAABDkBIE1heGltdW0gbnVtYmVyIG9mIHN0YXRlbWVudCBzdG9yZSBzbG90cyBhIHBlcnNvbiBjYW4gY2xhaW0gd2l0aGluIG9uZSBwZXJpb2QuAGxMaXRlU3RtdFN0b3JlU2xvdHNQZXJQZXJpb2Q4EAoAAAAQTQEgTWF4aW11bSBudW1iZXIgb2Ygc3RhdGVtZW50IHN0b3JlIHNsb3RzIGEgbGl0ZSBwZXJzb24gY2FuIGNsYWltIHdpdGhpbiBvbmUgcGVyaW9kLgBNASBTYW1lIHNlbWFudGljcyBhcyBgU3RtdFN0b3JlU2xvdHNQZXJQZXJpb2RgIGJ1dCBhcHBsaWVkIHdoZW4gdGhlIHByb29mIHRhcmdldHMgdGhl/CBsaXRlLXBlb3BsZSBjb2xsZWN0aW9uIHZpYSBgTWVtYmVyc2hpcENvbGxlY3Rpb246OkxpdGVQZW9wbGVgLgBUU3RtdFN0b3JlQ2xlYW51cExpbWl0OBAyAAAABFkBIE1heGltdW0gbnVtYmVyIG9mIHN0YWxlIHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2UgZW50cmllcyB0byByZW1vdmUgcGVyIGNsZWFudXAgY2FsbC4AcFN0bXRTdG9yZVJlcGxhY2VtZW50Q29vbGRvd244EDwAAAAINQEgTWluaW11bSB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IG11c3QgcGFzcyBiZWZvcmUgYW4gYWxpYXMgY2FuIHJlcGxhY2UgaXRzIG93buAgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZSBlbnRyeSB3aXRoaW4gdGhlIHNhbWUgcGVyaW9kLgBQU3RtdFN0b3JlR3JhY2VXaW5kb3c4EACjAgAQVQEgRXh0cmEgdGltZSwgaW4gc2Vjb25kcywgZHVyaW5nIHdoaWNoIHN0YXRlbWVudC1zdG9yZSBhbGxvd2FuY2VzIGZyb20gYW4gZW5kZWQgcGVyaW9kuCByZW1haW4gYWN0aXZlIGJlZm9yZSBjbGVhbnVwIG1heSByZXZva2UgdGhlbS4AKQEgQWZ0ZXIgdGhpcyBlbGFwc2VzLCB0aGUgYWxsb3dhbmNlcyB3aWxsIGV2ZW50dWFsbHkgYmUgY2xlYW5lZCBieSB0aGUgT0NXLgBYRnJpZW5kUmVxdWVzdEFsbG93YW5jZQELIAEAAAAAKAAABCUBIFRoZSBTdGF0ZW1lbnQgU3RvcmUgYWxsb3dhbmNlIGZvciBmcmllbmQgcmVxdWVzdCBzdGF0ZW1lbnQgcmVnaXN0cmF0aW9uLgBsRnJpZW5kUmVxdWVzdFNsb3RzUGVyUGVyaW9kDAQQFEkBIE1heGltdW0gbnVtYmVyIG9mIGZyaWVuZCByZXF1ZXN0cyBhIHBlcnNvbiBjYW4gc2VuZCB3aXRoaW4gb25lIHJhdGUtbGltaXQgcGVyaW9kLgBVASBGb3IgZXhhbXBsZSwgaWYgdGhpcyBpcyBgOGAsIGVhY2ggcGVyc29uIGNhbiBzZW5kIHVwIHRvIDggZnJpZW5kIHJlcXVlc3RzIGR1cmluZyB0aGVZASBwZXJpb2Qgc2VsZWN0ZWQgYnkgYEZyaWVuZFJlcXVlc3RQZXJpb2REdXJhdGlvbmAuIFdoZW4gdGhlIHBlcmlvZCBhZHZhbmNlcywgdGhlIHNsb3RzHCByZXNldC4AfExpdGVGcmllbmRSZXF1ZXN0U2xvdHNQZXJQZXJpb2QMBAgQXQEgTWF4aW11bSBudW1iZXIgb2YgZnJpZW5kIHJlcXVlc3RzIGEgbGl0ZSBwZXJzb24gY2FuIHNlbmQgd2l0aGluIG9uZSByYXRlLWxpbWl0IHBlcmlvZC4AXQEgU2FtZSBzZW1hbnRpY3MgYXMgYEZyaWVuZFJlcXVlc3RTbG90c1BlclBlcmlvZGAgYnV0IGFwcGxpZWQgd2hlbiB0aGUgcHJvb2YgdGFyZ2V0cyB0aGX8IGxpdGUtcGVvcGxlIGNvbGxlY3Rpb24gdmlhIGBNZW1iZXJzaGlwQ29sbGVjdGlvbjo6TGl0ZVBlb3BsZWAuAGxGcmllbmRSZXF1ZXN0UGVyaW9kRHVyYXRpb244EIBRAQAkDQEgUm9sbGluZyB0aW1lIHdpbmRvdyBmb3IgcmF0ZS1saW1pdGluZyBmcmllbmQgcmVxdWVzdHMsIGluIHNlY29uZHMuADUBIFRpbWUgaXMgZGl2aWRlZCBpbnRvIGZpeGVkLWR1cmF0aW9uIHBlcmlvZHMuIFRoZSBwZXJpb2QgaW5kZXggaXMgY29tcHV0ZWQgYXOoIGBub3dfc2VjcyAvIEZyaWVuZFJlcXVlc3RQZXJpb2REdXJhdGlvbmAuAGEBIEZvciBleGFtcGxlLCBpZiB0aGlzIGlzIGA4Nl80MDBgICgyNCBob3VycyksIHBlcmlvZCBgMGAgaXMgdGhlIGZpcnN0IDI0IGhvdXJzIHNpbmNlIHRoZRkBIFVuaXggZXBvY2gsIHBlcmlvZCBgMWAgaXMgdGhlIG5leHQgMjQgaG91cnMsIGFuZCBzbyBvbi4gQ29tYmluZWQgd2l0aGUBIGBGcmllbmRSZXF1ZXN0U2xvdHNQZXJQZXJpb2RgLCB0aGlzIGRlZmluZXMgaG93IG1hbnkgZnJpZW5kIHJlcXVlc3RzIGNhbiBiZSBzZW50IGluIGVhY2ggIHBlcmlvZC4AYEZyaWVuZFJlcXVlc3RHcmFjZVdpbmRvdzgQEA4AABRFASBFeHRyYSB0aW1lLCBpbiBzZWNvbmRzLCBkdXJpbmcgd2hpY2ggdGhlIHByZXZpb3VzIGZyaWVuZCByZXF1ZXN0IHBlcmlvZCBpcyBzdGlsbGwgYWNjZXB0ZWQgYWZ0ZXIgYSByb2xsb3Zlci4AZQEgVGhpcyBhbGxvd3MgdHJhbnNhY3Rpb25zIGNyZWF0ZWQgY2xvc2UgdG8gYSBwZXJpb2QgYm91bmRhcnkgdG8gc3RpbGwgYmUgaW5jbHVkZWQgZXZlbiBpZtQgdGhleSBhcmUgZXhlY3V0ZWQganVzdCBhZnRlciB0aGUgbmV4dCBwZXJpb2QgYmVnaW5zLgB4RnJpZW5kUmVxdWVzdFJldGVudGlvbkR1cmF0aW9uKCCAOgkAAAAAABRhASBEdXJhdGlvbiBmb3Igd2hpY2ggZnJpZW5kIHJlcXVlc3QgcmVnaXN0cmF0aW9ucyB3aWxsIGJlIHJldGFpbmVkLiBTcGVjaWZpZWQgaW4gc2Vjb25kcy4AIQEgQSByZWdpc3RyYXRpb24gaXMgY3JlYXRlZCBmb3IgYSBzcGVjaWZpYyBwZXJpb2QuIE9uY2UgdGhpcyBwZXJpb2QgZW5kcywhASB0aGUgcmVnaXN0cmF0aW9uIHJlbWFpbnMgdmFsaWQgZm9yIHRoZSBjb25maWd1cmVkIGR1cmF0aW9uLCBhZnRlciB3aGljaPAgaXQgY2FuIGJlIGNsZWFuZWQgdXAuIFNlZSBgZnJpZW5kX3JlcXVlc3RfZXhwaXJhdGlvbl90aW1lYC4AWE9mZmNoYWluV29ya2VySW50ZXJ2YWw4EAEAAAAE7CBOdW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gb2ZmY2hhaW4td29ya2VyIG1haW50ZW5hbmNlIHJ1bnMuAHRMb25nVGVybVN0b3JhZ2VQZXJpb2REdXJhdGlvbjgQAHUSABQFASBUaGUgZHVyYXRpb24gb2YgYSBsb25nLXRlcm0gc3RvcmFnZSBjbGFpbWluZyBwZXJpb2QsIGluIHNlY29uZHMuADUBIFRpbWUgaXMgZGl2aWRlZCBpbnRvIGZpeGVkLWR1cmF0aW9uIHBlcmlvZHMuIFRoZSBwZXJpb2QgaW5kZXggaXMgY29tcHV0ZWQgYXMlASBgbm93X3NlY3MgLyBMb25nVGVybVN0b3JhZ2VQZXJpb2REdXJhdGlvbmAuIEVhY2ggcGVyc29uIGNhbiBzdWJtaXQgdXAgdG/QIGBMb25nVGVybVN0b3JhZ2VDbGFpbXNQZXJQZXJpb2RgIGNsYWltcyBwZXIgcGVyaW9kLgB4TG9uZ1Rlcm1TdG9yYWdlQ2xhaW1zUGVyUGVyaW9kDARkEAkBIE1heGltdW0gbnVtYmVyIG9mIGxvbmctdGVybSBzdG9yYWdlIGNsYWltcyBwZXIgcGVyc29uIHBlciBwZXJpb2QuAEkBIEVhY2ggY2xhaW0gdXNlcyBhIGRpZmZlcmVudCBjb3VudGVyIHZhbHVlICgwLi5jbGFpbXNfcGVyX3BlcmlvZCkgd2hpY2ggcHJvZHVjZXMgYSkBIGRpc3RpbmN0IGFsaWFzIGluIHRoZSBwcm9vZiBjb250ZXh0LCBlbnN1cmluZyBvbmUgY2xhaW0gcGVyIGNvdW50ZXIgc2xvdC4AaExvbmdUZXJtU3RvcmFnZUdyYWNlV2luZG93OBAQDgAAEFEBIEV4dHJhIHRpbWUsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCB0aGUgcHJldmlvdXMgbG9uZy10ZXJtIHN0b3JhZ2UgcGVyaW9kIGlzIHN0aWxsbCBhY2NlcHRlZCBhZnRlciBhIHJvbGxvdmVyLgBZASBTYW1lIHNlbWFudGljcyBhcyBgRnJpZW5kUmVxdWVzdEdyYWNlV2luZG93YCBidXQgYXBwbGllZCB0byBsb25nLXRlcm0gc3RvcmFnZSBjbGFpbXMuAGxMb25nVGVybVN0b3JhZ2VDbGVhbnVwTGltaXQ4EBQAAAAUSQEgTWF4aW11bSBudW1iZXIgb2Ygc3BlbnQgbG9uZy10ZXJtIHN0b3JhZ2UgYWxpYXNlcyB0aGF0IGNhbiBiZSBjbGVhcmVkIGluIGEgc2luZ2xlwCBgY2xlYXJfZXhwaXJlZF9sb25nX3Rlcm1fc3RvcmFnZV9hbGlhc2VzYCBjYWxsLgBNASBCb3VuZHMgdGhlIHdvcnN0LWNhc2Ugd2VpZ2h0IG9mIHRoZSBjbGVhbnVwIGV4dHJpbnNpYzsgY2FsbGVycyBtdXN0IHBhc3MgYSBgbGltaXRgcCBubyBncmVhdGVyIHRoYW4gdGhpcyB2YWx1ZS4AAQULAARET2ZmY2hhaW5TaWduYXR1cmXZAwhRASBTaWduYXR1cmUgdHlwZSBmb3IgZW5zdXJpbmcgb3duZXJzaGlwIG9mIHByb3ZpZGVkIGFjY291bnRzIGluIGNhc2Ugb2YgcmVnaXN0cmF0aW9uczwgdGhyb3VnaCBhbGlhcy4MIRHg3xnelWO1gwHl9+AHQzctPqaLOkqqGKlYqKzXGkNkY3VycmVudF9zdG10X3N0b3JlX3BlcmlvZAA4BFEBIFJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZSBwZXJpb2QgKGRheSBudW1iZXIgc2luY2UgVW5peCBlcG9jaCkuACER4N8Z3pVjtYMB5ffgB0OsyCXIQ169nTW8DbXqdg6WbHN0bXRfc3RvcmVfc2xvdF9jb250ZXh0X2ZvcggYcGVyaW9kOAxzZXE4CBAhASBSZXR1cm5zIHRoZSBwcm9vZiBjb250ZXh0IGZvciBhIHN0YXRlbWVudCBzdG9yZSBzbG90IGNsYWltIGF0IHRoZSBnaXZlblAgYHBlcmlvZGAgYW5kIGBzZXFgLgA9ASBMYXlvdXQ6IGBTU1NfU0xPVDo8cGVyaW9kICg0IGJ5dGVzIEJFKT48c2VxICg0IGJ5dGVzIEJFKT5gIHBhZGRlZCB0byAzMiBieXRlcy4AIRHg3xnelWO1gwHl9+AHQz2D3IsbpYqbeQdxbBmpYvdoZnJpZW5kX3JlcXVlc3RfY29udGV4dF9mb3IIGHBlcmlvZDgMc2VxDAgIJQEgUmV0dXJucyB0aGUgcHJvb2YgY29udGV4dCBmb3IgYSBmcmllbmQgcmVxdWVzdCByZWdpc3RyYXRpb24gYXQgdGhlIGdpdmVuUCBgcGVyaW9kYCBhbmQgYHNlcWAuAD8AADRDaHVua3NNYW5hZ2VyATRDaHVua3NNYW5hZ2VyCBhDaHVua3MAAQgFBQkLDQsEAAQZASBQYWdpbmF0ZWQgY29sbGVjdGlvbiBvZiBjaHVua3MgKFJpbmdFeHBvbmVudCAtPiBQYWdlSW5kZXggLT4gQ2h1bmtzKS4APENodW5rUGFnZUhhc2hlcwABCAUFCQsIBAAEiCBUaGUgaGFzaCBmb3IgZWFjaCBwYWdlIG9mIGNodW5rcy4AAY0EAAHhBgAEIFBhZ2VTaXplOBD/AAAABMwgTnVtYmVyIG9mIGNodW5rcyBwZXIgcGFnZS4gTXVzdCBiZSBhIHBvd2VyIG9mIHR3by4AAR0LAAQUQ2h1bmsVCwRwIFRoZSB0eXBlIG9mIGEgc2luZ2xlIGNodW5rLgBAAAAcTWVtYmVycwEcTWVtYmVyc0QsQ29sbGVjdGlvbnMAAQQGCCELBAAE4CBJbmZvcm1hdGlvbiBhYm91dCBlYWNoIGNvbGxlY3Rpb24sIGtleWVkIGJ5IGlkZW50aWZpZXIuAFBTdXNwZW5kZWRDb2xsZWN0aW9ucwABBAYIIQsEAAghASBDb2xsZWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBtYXJrZWQgZm9yIGRlbGV0aW9uIGFuZCBhcmUgYmVpbmcgcHJvY2Vzc2VkLlkBIE9uY2UgYSBjb2xsZWN0aW9uIGlzIG1vdmVkIGhlcmUsIG5vcm1hbCBvcGVyYXRpb25zIHdpbGwgZmFpbCB3aXRoIENvbGxlY3Rpb25Ob3RGb3VuZC4ANElkZW50aWZpZXJzT2YAAQQCJQstCwQABMwgVGhlIGlkZW50aWZpZXJzIG9mIGNvbGxlY3Rpb25zIG93bmVkIGJ5IGFuIGVudGl0eS4AEFJvb3QAAQgGAjELNQsEAASIIFRoZSBjdXJyZW50IG1lbWJlcnMgd2UgcmVjb2duaXNlLgAgT2xkUm9vdHMAAQwGBgZBC0ULBAAkQQEgT2xkIHJpbmcgcm9vdHMgYXJlIHJldGFpbmVkIGZvciBhIGdyYWNlIHBlcmlvZCBzbyB0aGF0IHByb29mcyBnZW5lcmF0ZWQgYWdhaW5zdGUBIHByZXZpb3VzIHJldmlzaW9ucyByZW1haW4gdmFsaWQuIEVhY2ggcm9vdCBpbiB0aGUgbWFwIGlzIGlkZW50aWZpZWQgYnkgdGhlIGNvbXBvc2l0ZSBrZXktASBgKGNvbGxlY3Rpb24sIHJpbmcgaW5kZXgsIHJpbmcgcmV2aXNpb24pYC4gRW50cmllcyBjYW4gYmUgY2xlYW5lZCB1cCBhZnRlciUBIGBPbGRSb290UmV0ZW50aW9uRHVyYXRpb25gIGhhcyBwYXNzZWQgc2luY2UgdGhlIGBhcmNoaXZlZF9hdGAgdGltZXN0YW1wLgA5ASBUaGlzIHN0b3JhZ2UgY2FuIGNvbnRhaW4gc29tZSByb290cyBmb3IgZGVsZXRlZCBjb2xsZWN0aW9ucyBvciByZW1vdmVkIHJpbmdzLl0BIFRoZSBjYWxsIGB2ZXJpZnlfbWVtYmVyc2hpcF9hdF9yZXZgIGFuZCBvdGhlciBvcGVyYXRpb24gdXNpbmcgb2xkIHJvb3RzIG11c3QgY2hlY2sgdGhlQQEgZXhpc3RlbmNlIG9mIHRoZSBjb2xsZWN0aW9uIGFuZCB0aGUgcm9vdCBpbiBvcmRlciB0byBub3QgdmFsaWRhdGUgYWdhaW5zdCBkdXN0LvAgVGhlIG9sZCByb290cyB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIHJldGVudGlvbiBkdXJhdGlvbi4AQEN1cnJlbnRSaW5nSW5kZXgBAQQGCDgQAAAAAATkIEtlZXBzIHRyYWNrIG9mIHRoZSByaW5nIGluZGV4IGN1cnJlbnRseSBiZWluZyBwb3B1bGF0ZWQuADhPbmJvYXJkaW5nU2l6ZQEBBAYIOBAAAAAABPggTWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyBxdWV1ZWQgYmVmb3JlIG9uYm9hcmRpbmcgdG8gYSByaW5nLgAgUmluZ0tleXMBAQwGAgVJC00LBAAQYQEgQm90aCB0aGUga2V5cyB0aGF0IGFyZSBpbmNsdWRlZCBpbiBidWlsdCByaW5ncyBhbmQgdGhlIGtleXMgdGhhdCB3aWxsIGJlIHVzZWQgaW4gZnV0dXJlWQEgcmluZ3MuIFBhZ2luYXRlZCBieSAoSWRlbnRpZmllciwgUmluZ0luZGV4LCBQYWdlSW5kZXgpIHdoZXJlIGVhY2ggcGFnZSBjb250YWlucyB1cCB0b3UBIGBSaW5nQ2FwYWNpdHlGcm9tRXhwb25lbnRgIGtleXMuIFRoZSBwYWdlIHNpemUgZXF1YWxzIHRoZSBmbGV4aWJsZSByaW5nIGV4cG9uZW50J3MgY2FwYWNpdHks9CBlbnN1cmluZyBGbGV4aWJsZSBjb2xsZWN0aW9ucyBuZXZlciBuZWVkIG1vcmUgdGhhbiBvbmUgcGFnZS4AOFJpbmdLZXlzU3RhdHVzAQEIBgIxC1ELJAAAAAAAAAAAAAhhASBTdG9yZXMgdGhlIG1ldGEgaW5mb3JtYXRpb24gZm9yIGVhY2ggcmluZywgdGhlIG51bWJlciBvZiBrZXlzIGFuZCBob3cgbWFueSBhcmUgYWN0dWFsbHlYIGluY2x1ZGVkIGluIHRoZSByb290LgBIUGVuZGluZ1N1c3BlbnNpb25zAQEIBgUxC1ULBAAMaQEgQSBtYXAgb2YgYWxsIHJpbmdzIHdoaWNoIGN1cnJlbnRseSBoYXZlIHBlbmRpbmcgc3VzcGVuc2lvbnMgYW5kIG5lZWQgY2xlYW5pbmcsIGFsb25nIHdpdGgRASB0aGVpciByZXNwZWN0aXZlIG51bWJlciBvZiBzdXNwZW5kZWQga2V5cyB3aGljaCBuZWVkIHRvIGJlIHJlbW92ZWQubQEgTm90ZTogQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgc2luZ2xlLXBhZ2UgcmluZ3MsIHNvIGJvdW5kZWQgYnkgYFJpbmdDYXBhY2l0eUZyb21FeHBvbmVudGAuADRBY3RpdmVNZW1iZXJzAQEEBgg4EAAAAAAE0CBUaGUgbnVtYmVyIG9mIG1lbWJlcnMgY3VycmVudGx5IGluY2x1ZGVkIGluIGEgcmluZy4AHE1lbWJlcnMAAQgGAlkLXQsEABhdASBUaGUgY3VycmVudCBtZW1iZXJzIGluIGVhY2ggY29sbGVjdGlvbiAoZWl0aGVyIGluY2x1ZGVkIGluIHJpbmdzLCBzdXNwZW5kZWQgYW5kIHF1ZXVlZCEBIGZvciByZW1vdmFsIGZyb20gYSByaW5nLCBzdXNwZW5kZWQgYW5kIG5vdCBpbiBhbnkgcmluZywgb3Igb25ib2FyZGluZykuAA0BIENvbGxlY3Rpb24gaWRlbnRpZmllciB0byBtZW1iZXIgcHVibGljIGtleSB0byB0aGUgbWVtYmVyJ3Mgc3RhdHVzLgCoIEEga2V5IGNhbiBiZWxvbmcgdG8gbXVsdGlwbGUgY29sbGVjdGlvbnMuAChSaW5nc1N0YXRlAQEEBghhCwQABPwgVGhlIGN1cnJlbnQgc3RhdGUgb2YgYWxsIHJpbmdzIG1hbmFnZWQgZm9yIGEgZ2l2ZW4gaWRlbnRpZmllci4AKFN0YWxlUmluZ3MAAQgGBTELEAQABMwgU2V0IG9mIHJpbmdzIHdoaWNoIGFyZSBzdGFsZSBhbmQgcmVxdWlyZSBidWlsZGluZy4AQFF1ZXVlUGFnZUluZGljZXMBAQQGCBkHIAAAAAAAAAAABDkBIEtlZXBzIHRyYWNrIG9mIHRoZSBwYWdlIGluZGljZXMgb2YgdGhlIGhlYWQgYW5kIHRhaWwgb2YgdGhlIG9uYm9hcmRpbmcgcXVldWUuADxPbmJvYXJkaW5nUXVldWUBAQgGBTELaQsEAAQtASBQYWdpbmF0ZWQgY29sbGVjdGlvbiBvZiBtZW1iZXIgcHVibGljIGtleXMgcmVhZHkgdG8gYmUgaW5jbHVkZWQgaW4gYSByaW5nLgBEUmluZ0RlbGV0aW9uUXVldWUAAQwGBQVJCxAEABSYIFF1ZXVlIG9mIHJpbmcgcGFnZXMgcGVuZGluZyBkZWxldGlvbi4AFQEgVGhpcyBpcyB1c2VkIGJvdGggYnkgYHJlbW92ZV9yaW5nYCAoaW5kaXZpZHVhbCByaW5nIGRlbGV0aW9uKSBhbmQgYnkZASBjb2xsZWN0aW9uIGRlbGV0aW9uLiBSaW5nIHBhZ2VzIGFyZSBwcm9jZXNzZWQgZnJvbSB0aGlzIHF1ZXVlIHZpYSBPQ1esIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb3BlcmF0aW9uIHF1ZXVlZCB0aGVtLgABnQQAAeUGABg4TWF4Q29sbGVjdGlvbnM4EGQAAAAExCBNYXhpbXVtIG51bWJlciBvZiBjb2xsZWN0aW9ucyBhbiBvd25lciBjYW4gaGF2ZS4AXE9uYm9hcmRpbmdRdWV1ZVBhZ2VTaXplOBD/AAAACE0BIE1heGltdW0gbnVtYmVyIG9mIG1lbWJlcnMgaW5jbHVkZWQgaW4gYW4gb25ib2FyZGluZyBxdWV1ZSBwYWdlIGJlZm9yZSBhIG5ldyBvbmUgaXMkIGNyZWF0ZWQuAFxNYXhGbGV4aWJsZVJpbmdFeHBvbmVudJEEBAkMXQEgVGhlIG1heGltdW0gcmluZyBleHBvbmVudCB1c2VkIGZvciBGbGV4aWJsZSBjb2xsZWN0aW9ucy4gVGhpcyBhbHNvIGRldGVybWluZXMgdGhlIHBhZ2VVASBzaXplIGZvciBwYWdpbmF0ZWQgcmluZyBrZXkgc3RvcmFnZS4gRmxleGlibGUgY29sbGVjdGlvbnMgY2FuIG9ubHkgdXNlIHJpbmcgc2l6ZXMgdXA8IHRvIHRoaXMgdmFsdWUuAFxSaW5nQnVpbGRpbmdNZW1iZXJMaW1pdDgQZAAAAAhhASBNYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIHRoYXQgY2FuIGJlIGluY2x1ZGVkIGluIGEgcmluZyB0aHJvdWdoIGEgc2luZ2xlIHJvb3QgYnVpbGRpbmcYIGNhbGwuAGBPbGRSb290UmV0ZW50aW9uRHVyYXRpb24oIFgCAAAAAAAACFEBIER1cmF0aW9uIGluIHNlY29uZHMgdGhhdCBvbGQgcmluZyByb290cyBhcmUgcmV0YWluZWQgYmVmb3JlIHRoZXkgY2FuIGJlIGNsZWFuZWQgdXAuSQEgVGhpcyBhbGxvd3MgcHJvb2ZzIGdlbmVyYXRlZCB3aXRoIG9sZGVyIHJvb3RzIHRvIHJlbWFpbiB2YWxpZCBmb3IgYSBncmFjZSBwZXJpb2QuAFhPZmZjaGFpbldvcmtlckludGVydmFsOBABAAAABOQgVGhlIG51bWJlciBvZiBibG9ja3MgYmV0d2VlbiBvZmZjaGFpbiB3b3JrZXIgZXhlY3V0aW9ucy4AAW0LAAQgTG9jYXRpb27gBDkBIExvY2F0aW9uIHR5cGUgZm9yIGlkZW50aWZ5aW5nIGNvbGxlY3Rpb24gb3duZXJzIGZyb20gb3RoZXIgY2hhaW5zL3BhcmFjaGFpbnMuAEMAABxDb2luYWdlARxDb2luYWdlQDBDb2luc0J5T3duZXIAAQQFBHEDBAAQQCBDb2lucyBieSBvd25lci4AXQEgVGhpcyBzdG9yYWdlIG1hcCBjb250YWlucyBhbGwgdGhlIGNvaW5zIGN1cnJlbnRseSBjaXJjdWxhdGluZy4gVGhlIGNvaW4gaXMgbWludGVkIHdoZW4lASB1bmxvYWRlZCBmcm9tIHRoZSByZWN5Y2xlciwgYW5kIGRlc3Ryb3llZCB3aGVuIGxvYWRlZCBpbnRvIHRoZSByZWN5Y2xlci4ALExvY2tlZENvaW5zAAEEBQRxCwQAEAUBIFRlbXBvcmFyeSBsb2NrIGV4cGlyeSBmb3IgY29pbnMgdGhhdCBwcmV2aW91c2x5IGZhaWxlZCBkaXNwYXRjaC4AZQEgQSBjb2luIG93bmVyIGVudHJ5IGlzIGxvY2tlZCB1bnRpbCB0aGUgc3RvcmVkIFVuaXggdGltZXN0YW1wLCBwcmV2ZW50aW5nIHJlcGVhdGVkIGZhaWxlZJQgZGlzcGF0Y2ggYXR0ZW1wdHMgaW4gYSBzaG9ydCBwZXJpb2QuAGhUb3RhbFZhbHVlT2ZEZXN0cm95ZWRDb2lucwEAxEAAAAAAAAAAAAAAAAAAAAAAFKggVGhlIHRvdGFsIHZhbHVlIG9mIGNvaW5zIHRoYXQgd2VyZSBidXJudC4AaQEgVGhpcyB0cmFja3MgdmFsdWUgdGhhdCBpcyBpbnRlbnRpb25hbGx5IGRlc3Ryb3llZCBhcyBwYXJ0IG9mIHByb3RvY29sIGZsb3dzIChmb3IgZXhhbXBsZTplASByZWN5Y2xlciBleHBpcmF0aW9uIGNsZWFudXAgYW5kIG91dHB1dC10b2tlbiBzcGFtIHBlbmFsdHkgcGF0aCkuIFRoaXMgc3RvcmFnZSBpdGVtIGtlZXBzyCB0cmFjayBvZiB0aGUgdG90YWwgdmFsdWUgb2Ygc3VjaCBkZXN0cm95ZWQgY29pbnMuAGBDb25zdW1lZEZyZWVVbmxvYWRUb2tlbnMAAQgFBckJEAQAGMQgQ29uc3VtZWQgZnJlZSB1bmxvYWQgdG9rZW5zIGJ5IHBlcmlvZCBhbmQgYWxpYXMuAFUBIFRoaXMgc3RvcmFnZSBrZWVwcyB0cmFjayBvZiB0aGUgZnJlZSB1bmxvYWQgdG9rZW5zIHRoYXQgaGF2ZSBiZWVuIGNvbnN1bWVkIGJ5IHBlb3BsZawgYW5kIGxpdGUgcGVvcGxlLCB0byBhdm9pZCBkb3VibGUgc3BlbmRpbmcuAHAgSXQgaXMgY2xlYXJlZCBwZXJpb2RpY2FsbHkuAGRSZWN5Y2xlckNvbGxlY3Rpb25DcmVhdGVkAAEEBXUDEAQASBEBIFRyYWNrcyB3aGV0aGVyIGEgcmVjeWNsZXIgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgZ2l2ZW4gY29pbiB2YWx1ZS4AMQEgUmVjeWNsZXIgY29sbGVjdGlvbnMgYXJlIG5vcm1hbGx5IGNyZWF0ZWQgZWFnZXJseSBkdXJpbmcgb25lLXRpbWUgYG9uX3BvbGxg3CBpbml0aWFsaXphdGlvbiBhZnRlciBgVW5kZXJseWluZ0Fzc2V0SWRgIGhhcyBiZWVuIHNldC4dASBbYFJlY3ljbGVyTWFuYWdlcjo6ZW5zdXJlX2NvbGxlY3Rpb25fZXhpc3RzYF0gcmVtYWlucyB0aGUgZmFsbGJhY2sgZm9yAQEgZmlyc3QtdXNlIG9yIHJlY292ZXJ5IHBhdGhzIHdoZW4gYSBjb2xsZWN0aW9uIGlzIHN0aWxsIG1pc3NpbmcuAFUBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUmVjeWNsZXJNYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBVASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUmVjeWNsZXJNYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDpBASAqIFtSZWN5Y2xlckNvbGxlY3Rpb25DcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIGNvaW4gdmFsdWUuVQEgKiBbUmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXhdIC0gdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGluZGV4IGZvciBlYWNoIGNvaW4gdmFsdWUuWQEgKiBbUmVjeWNsZXJzQ29pblRvUmVjeWNsZXJdIC0gdGhlIG1hcHBpbmcgZnJvbSBtZW1iZXIga2V5IHRvIHRoZSBjb2luIHZhbHVlIGl0IGlzIGluLmEBICogW1JlY3ljbGVyc1VubG9hZGVkXSAtIHRoZSByZWN5Y2xlcnMnIHVubG9hZGVkIGFsaWFzZXMsIGluZGV4ZWQgYnkgY29pbiB2YWx1ZSBhbmQgcmluZyQgICBpbmRleC4pASAqIFtSZWN5Y2xlcnNEdXN0aW5nXSAtIG1hcmtzIHJpbmdzIHdpdGggdW5sb2FkZWQgYWxpYXNlcyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgB0UmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXgAAQQFdQM4BABAxCBMYXN0IHJlbW92ZWQgcmluZyBpbmRleCBwZXIgcmVjeWNsZXIgY29pbiB2YWx1ZS4ARQEgUmluZ3MgYXJlIHJlbW92ZWQgc2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZyb20gaW5kZXggMC4gVGhlIG5leHQgcmluZyB0byBjaGVjayBmb3ItASBleHBpcmF0aW9uIGlzIGBsYXN0X3JlbW92ZWQgKyAxYCAob3IgYDBgIGlmIG5vdGhpbmcgaGFzIGJlZW4gcmVtb3ZlZCB5ZXQpLgBVASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFJlY3ljbGVyTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AVQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFJlY3ljbGVyTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ6QQEgKiBbUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBjb2luIHZhbHVlLlUBICogW1JlY3ljbGVyc0xhc3RSZW1vdmVkUmluZ0luZGV4XSAtIHRoZSBsYXN0IHJlbW92ZWQgcmluZyBpbmRleCBmb3IgZWFjaCBjb2luIHZhbHVlLlkBICogW1JlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyXSAtIHRoZSBtYXBwaW5nIGZyb20gbWVtYmVyIGtleSB0byB0aGUgY29pbiB2YWx1ZSBpdCBpcyBpbi5hASAqIFtSZWN5Y2xlcnNVbmxvYWRlZF0gLSB0aGUgcmVjeWNsZXJzJyB1bmxvYWRlZCBhbGlhc2VzLCBpbmRleGVkIGJ5IGNvaW4gdmFsdWUgYW5kIHJpbmckICAgaW5kZXguKQEgKiBbUmVjeWNsZXJzRHVzdGluZ10gLSBtYXJrcyByaW5ncyB3aXRoIHVubG9hZGVkIGFsaWFzZXMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AXFJlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyAAEEBQh1AwQAQBEBIE1hcHBpbmcgZnJvbSBhIHJlY3ljbGVyIG1lbWJlciBrZXkgdG8gdGhlIGNvaW4gdmFsdWUgaXQgYmVsb25ncyB0by4ATQEgV2hlbiBhIGNvaW4gaXMgbG9hZGVkIGludG8gYSByZWN5Y2xlciwgdGhlIG1lbWJlciBrZXkgaXMgcmVjb3JkZWQgaGVyZSBzbyB0aGF0IHRoZQ0BIHBhbGxldCBjYW4gbG9vayB1cCB3aGljaCBjb2luIHZhbHVlIHRoZSBtZW1iZXIga2V5IGNvcnJlc3BvbmRzIHRvLgBVASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFJlY3ljbGVyTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AVQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFJlY3ljbGVyTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ6QQEgKiBbUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBjb2luIHZhbHVlLlUBICogW1JlY3ljbGVyc0xhc3RSZW1vdmVkUmluZ0luZGV4XSAtIHRoZSBsYXN0IHJlbW92ZWQgcmluZyBpbmRleCBmb3IgZWFjaCBjb2luIHZhbHVlLlkBICogW1JlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyXSAtIHRoZSBtYXBwaW5nIGZyb20gbWVtYmVyIGtleSB0byB0aGUgY29pbiB2YWx1ZSBpdCBpcyBpbi5hASAqIFtSZWN5Y2xlcnNVbmxvYWRlZF0gLSB0aGUgcmVjeWNsZXJzJyB1bmxvYWRlZCBhbGlhc2VzLCBpbmRleGVkIGJ5IGNvaW4gdmFsdWUgYW5kIHJpbmckICAgaW5kZXguKQEgKiBbUmVjeWNsZXJzRHVzdGluZ10gLSBtYXJrcyByaW5ncyB3aXRoIHVubG9hZGVkIGFsaWFzZXMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4ARFJlY3ljbGVyc1VubG9hZGVkAAEMBQUFeQsQBABANQEgVGhlIHJlY3ljbGVycycgdW5sb2FkZWQgYWxpYXNlcywgaW5kZXhlZCBieSAoY29pbiB2YWx1ZSwgcmluZyBpbmRleCwgYWxpYXMpLgBVASBXaGVuIGEgY29pbiBpcyB1bmxvYWRlZCBmcm9tIGEgcmVjeWNsZXIsIHRoZSBhbGlhcyBwcm9kdWNlZCBieSB0aGUgcmluZy1WUkYgcHJvb2YgaXMZASBzdG9yZWQgaGVyZSB0byBwcmV2ZW50IGRvdWJsZS1zcGVuZGluZyB3aXRoaW4gdGhlIHNhbWUgcmVjeWNsZXIgcmluZy4AVQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BSZWN5Y2xlck1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFUBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BSZWN5Y2xlck1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OkEBICogW1JlY3ljbGVyQ29sbGVjdGlvbkNyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgY29pbiB2YWx1ZS5VASAqIFtSZWN5Y2xlcnNMYXN0UmVtb3ZlZFJpbmdJbmRleF0gLSB0aGUgbGFzdCByZW1vdmVkIHJpbmcgaW5kZXggZm9yIGVhY2ggY29pbiB2YWx1ZS5ZASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGNvaW4gdmFsdWUgaXQgaXMgaW4uYQEgKiBbUmVjeWNsZXJzVW5sb2FkZWRdIC0gdGhlIHJlY3ljbGVycycgdW5sb2FkZWQgYWxpYXNlcywgaW5kZXhlZCBieSBjb2luIHZhbHVlIGFuZCByaW5nJCAgIGluZGV4LikBICogW1JlY3ljbGVyc0R1c3RpbmddIC0gbWFya3MgcmluZ3Mgd2l0aCB1bmxvYWRlZCBhbGlhc2VzIHBlbmRpbmcgcmVtb3ZhbC4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAEBSZWN5Y2xlcnNEdXN0aW5nAAEEBX0LEAQASAUBIE1hcmtzIHJlY3ljbGVyIHJpbmdzIHRoYXQgaGF2ZSB1bmxvYWRlZCBhbGlhc2VzIHBlbmRpbmcgcmVtb3ZhbC4AIQEgV2hlbiBhIHJlY3ljbGVyIHJpbmcgaXMgcmVtb3ZlZCwgdGhlIGNsZWFudXAgb2YgaXRzIHVubG9hZGVkIGFsaWFzZXMgaW5RASBbUmVjeWNsZXJzVW5sb2FkZWRdIGlzIHBlcmZvcm1lZCBncmFkdWFsbHkgdGhyb3VnaCB0aGlzIHN0b3JhZ2UgaXRlbS4gQW4gZW50cnkgaGVyZVEBIGluZGljYXRlcyB0aGF0IHVubG9hZGVkIGFsaWFzZXMgZm9yIHRoZSBnaXZlbiBjb2luIHZhbHVlIGFuZCByaW5nIGluZGV4IHN0aWxsIGV4aXN0WCBhbmQgc2hvdWxkIGJlIGR1c3RlZC4AVQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BSZWN5Y2xlck1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFUBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BSZWN5Y2xlck1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OkEBICogW1JlY3ljbGVyQ29sbGVjdGlvbkNyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgY29pbiB2YWx1ZS5VASAqIFtSZWN5Y2xlcnNMYXN0UmVtb3ZlZFJpbmdJbmRleF0gLSB0aGUgbGFzdCByZW1vdmVkIHJpbmcgaW5kZXggZm9yIGVhY2ggY29pbiB2YWx1ZS5ZASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGNvaW4gdmFsdWUgaXQgaXMgaW4uYQEgKiBbUmVjeWNsZXJzVW5sb2FkZWRdIC0gdGhlIHJlY3ljbGVycycgdW5sb2FkZWQgYWxpYXNlcywgaW5kZXhlZCBieSBjb2luIHZhbHVlIGFuZCByaW5nJCAgIGluZGV4LikBICogW1JlY3ljbGVyc0R1c3RpbmddIC0gbWFya3MgcmluZ3Mgd2l0aCB1bmxvYWRlZCBhbGlhc2VzIHBlbmRpbmcgcmVtb3ZhbC4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAFhQYWlkVW5sb2FkVG9rZW5NZW1iZXJzAAEEBQgQBAA4CQEgTWFwcGluZyBmcm9tIGEgcGFpZCB0b2tlbiBtZW1iZXIga2V5IHRvIHRoZSBwZXJpb2QgaXQgYmVsb25ncyB0by4ARQEgV2hlbiBhIHVzZXIgcGF5cyBmb3IgYSByZWN5Y2xlciB1bmxvYWQgdG9rZW4sIHRoZSBtZW1iZXIga2V5IGlzIHJlY29yZGVkIGhlcmUgc28hASB0aGF0IHRoZSBwYWxsZXQgY2FuIGxvb2sgdXAgd2hpY2ggcGVyaW9kIHRoZSBtZW1iZXIga2V5IGNvcnJlc3BvbmRzIHRvLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBcUGFpZFVubG9hZFRva2VuQ29uc3VtZWQAAQwGBQXtChAEADj0IENvbnN1bWVkIHBhaWQgdW5sb2FkIHRva2VucyBieSBwZXJpb2QsIHJpbmcgaW5kZXggYW5kIGFsaWFzLgBJASBXaGVuIGEgcGFpZCB1bmxvYWQgdG9rZW4gaXMgY29uc3VtZWQsIHRoZSBhbGlhcyBwcm9kdWNlZCBieSB0aGUgcmluZy1WUkYgcHJvb2YgaXP0IHN0b3JlZCBoZXJlIHRvIHByZXZlbnQgZG91YmxlLXNwZW5kaW5nIHdpdGhpbiB0aGUgc2FtZSByaW5nLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBsUGFpZFRva2VuQ29sbGVjdGlvbnNDcmVhdGVkAAEEBuEKEAQAOAkBIFRyYWNrcyB3aGV0aGVyIGEgcGFpZCB0b2tlbiBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBnaXZlbiBwZXJpb2QuAFUBIFVzZXMgYElkZW50aXR5YCBoYXNoZXIgc28gdGhhdCBpdGVyYXRpb24geWllbGRzIHBlcmlvZHMgaW4gb3JkZXIsIGVuYWJsaW5nIGVmZmljaWVudHAgY2xlYW51cCBvZiBleHBpcmVkIHBlcmlvZHMuAFEBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUGFpZFRrbk1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BQYWlkVGtuTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ68CAqIFtQYWlkVW5sb2FkVG9rZW5NZW1iZXJzXSAtIHRyYWNrcyByZWdpc3RlcmVkIG1lbWJlciBrZXlzLhkBICogW1BhaWRVbmxvYWRUb2tlbkNvbnN1bWVkXSAtIHRoZSBjb25zdW1lZCBwYWlkIHVubG9hZCB0b2tlbiBhbGlhc2VzLjkBICogW1BhaWRUb2tlbkNvbGxlY3Rpb25zQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBwZXJpb2QuRQEgKiBbUGFpZFVubG9hZFRva2VuRHVzdGluZ10gLSBtYXJrcyBwZXJpb2RzIHdpdGggY29uc3VtZWQgdG9rZW5zIHBlbmRpbmcgcmVtb3ZhbC4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAFhQYWlkVW5sb2FkVG9rZW5EdXN0aW5nAAEEBuEKEAQAQC0BIE1hcmtzIHBhaWQgdW5sb2FkIHRva2VuIHBlcmlvZHMgdGhhdCBoYXZlIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAFkBIFdoZW4gYSBwYWlkIHVubG9hZCB0b2tlbiBjb2xsZWN0aW9uIGlzIHJlbW92ZWQsIHRoZSBjbGVhbnVwIG9mIGl0cyBjb25zdW1lZCB0b2tlbnMgaW5VASBbUGFpZFVubG9hZFRva2VuQ29uc3VtZWRdIGlzIHBlcmZvcm1lZCBncmFkdWFsbHkgdGhyb3VnaCB0aGlzIHN0b3JhZ2UgaXRlbS4gQW4gZW50cnlNASBoZXJlIGluZGljYXRlcyB0aGF0IGNvbnN1bWVkIHRva2VucyBmb3IgdGhlIGdpdmVuIHBlcmlvZCBzdGlsbCBleGlzdCBhbmQgc2hvdWxkIGJlICBkdXN0ZWQuAFEBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUGFpZFRrbk1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BQYWlkVGtuTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ68CAqIFtQYWlkVW5sb2FkVG9rZW5NZW1iZXJzXSAtIHRyYWNrcyByZWdpc3RlcmVkIG1lbWJlciBrZXlzLhkBICogW1BhaWRVbmxvYWRUb2tlbkNvbnN1bWVkXSAtIHRoZSBjb25zdW1lZCBwYWlkIHVubG9hZCB0b2tlbiBhbGlhc2VzLjkBICogW1BhaWRUb2tlbkNvbGxlY3Rpb25zQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBwZXJpb2QuRQEgKiBbUGFpZFVubG9hZFRva2VuRHVzdGluZ10gLSBtYXJrcyBwZXJpb2RzIHdpdGggY29uc3VtZWQgdG9rZW5zIHBlbmRpbmcgcmVtb3ZhbC4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAHhQYWlkVW5sb2FkVG9rZW5OZXh0UmluZ1RvQ2xlYW4AAQQG4Qo4BABg9CBUcmFja3MgdGhlIG5leHQgcmluZyBpbmRleCB0byBjbGVhbiBmb3IgZWFjaCBleHBpcmVkIHBlcmlvZC4ANQEgVXNlZCBieSB0aGUgT0NXIHRvIGRldGVybWluZSBjbGVhbnVwIHByb2dyZXNzIGFuZCBieSB0aGUgY29sbGVjdGlvbiBkZWxldGlvbsQgZXh0cmluc2ljIHRvIHZlcmlmeSBhbGwgcmluZ3MgaGF2ZSBiZWVuIGNsZWFuZWQuAD0BIFJpbmdzIGFyZSBjbGVhbmVkIHNlcXVlbnRpYWxseSAob25lIHBlciBPQ1cgaW50ZXJ2YWwpIHJhdGhlciB0aGFuIGFsbCBhdCBvbmNlLj0BIFRoaXMgaXMgaW50ZW50aW9uYWw6IGEgc2luZ2xlIHN0b3JhZ2UgY3Vyc29yIGVuYWJsZXMgTygxKSBjb21wbGV0aW9uIGNoZWNrcyBpbswgYm90aCBbYFBhaWRUa25NYW5hZ2VyOjplbnN1cmVfY2FuX2NsZWFuX3JpbmdgXSBhbmRFASBbYFBhaWRUa25NYW5hZ2VyOjplbnN1cmVfY2FuX2RlbGV0ZV9jb2xsZWN0aW9uYF0uIFRoZSBhbHRlcm5hdGl2ZSDigJQgc3VibWl0dGluZ1UBIGFsbCByaW5nIGNsZWFucyBpbiBwYXJhbGxlbCDigJQgd291bGQgcmVxdWlyZSBmZXRjaGluZyByaW5nIG1lbWJlcnMgdG8gY2hlY2sgd2hldGhlck0BIGVhY2ggcmluZyB3YXMgYWxyZWFkeSBjbGVhbmVkIChzaW5jZSBgcmluZ19zdGF0dXNgIHN0aWxsIHJlcG9ydHMgYHRvdGFsID4gMGAgYWZ0ZXJVASBjbGVhbnVwIGJlY2F1c2UgcmluZ3MgYXJlIG5vdCByZW1vdmVkIHVudGlsIGNvbGxlY3Rpb24gZGVsZXRpb24pLiBDbGVhbnVwIG9mIGV4cGlyZWRNASBjb2xsZWN0aW9ucyBpcyBub3QgdGltZS1jcml0aWNhbCwgc28gdGhlIHNpbXBsZXIgc2VxdWVudGlhbCBhcHByb2FjaCBpcyBwcmVmZXJyZWQuAFEBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUGFpZFRrbk1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BQYWlkVGtuTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ68CAqIFtQYWlkVW5sb2FkVG9rZW5NZW1iZXJzXSAtIHRyYWNrcyByZWdpc3RlcmVkIG1lbWJlciBrZXlzLhkBICogW1BhaWRVbmxvYWRUb2tlbkNvbnN1bWVkXSAtIHRoZSBjb25zdW1lZCBwYWlkIHVubG9hZCB0b2tlbiBhbGlhc2VzLjkBICogW1BhaWRUb2tlbkNvbGxlY3Rpb25zQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBwZXJpb2QuRQEgKiBbUGFpZFVubG9hZFRva2VuRHVzdGluZ10gLSBtYXJrcyBwZXJpb2RzIHdpdGggY29uc3VtZWQgdG9rZW5zIHBlbmRpbmcgcmVtb3ZhbC4dASAqIFtQYWlkVW5sb2FkVG9rZW5OZXh0UmluZ1RvQ2xlYW5dIC0gc2VxdWVudGlhbCByaW5nIGNsZWFudXAgcHJvZ3Jlc3MuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBcSW5pdGlhbGl6ZVBhbGxldEFjY291bnQAABAEABjQIFdoZXRoZXIgdGhlIG9uZS10aW1lIHBhbGxldCBpbml0aWFsaXphdGlvbiBoYXMgcnVuLgBZASBTZXQgYnkgW2BQYWxsZXQ6OmRvX2luaXRpYWxpemVgXSBvbmNlIHJlY3ljbGVyIGNvbGxlY3Rpb25zIGFyZSBjcmVhdGVkIGFuZCB0aGUgcGFsbGV0PQEgYWNjb3VudCBoYXMgYmVlbiBlbnN1cmVkIHRvIGhvbGQgdGhlIG1pbmltdW0gYmFsYW5jZSBvZiBbYFVuZGVybHlpbmdBc3NldElkYF0uUQEgSW5pdGlhbGl6YXRpb24gaXMgZ2F0ZWQgb24gYFVuZGVybHlpbmdBc3NldElkYCBiZWluZyBzZXQsIHNvIHRoaXMgc3RheXMgdW5zZXQgdW50aWzsIGdvdmVybmFuY2UgaGFzIGNhbGxlZCBbYFBhbGxldDo6c2V0X3VuZGVybHlpbmdfYXNzZXRfaWRgXS4ARFVuZGVybHlpbmdBc3NldElkAADgBAAYnCBUaGUgdW5kZXJseWluZyBhc3NldCBpZCBmb3IgdGhlIGNvaW5zLgDUIFNldCBvbmNlIGJ5IFtgQ29uZmlnOjpVbmRlcmx5aW5nQXNzZXRJZE1hbmFnZXJgXSB2aWFVASBbYFBhbGxldDo6c2V0X3VuZGVybHlpbmdfYXNzZXRfaWRgXS4gV2hpbGUgdW5zZXQsIGV2ZXJ5IGNvaW4vcmVjeWNsZXIgb3BlcmF0aW9uIHRoYXQNASBuZWVkcyB0aGUgdW5kZXJseWluZyBhc3NldCBmYWlscyB3aXRoIFtgRXJyb3I6OkFzc2V0SWROb3RTZXRgXSAob3IpASBbYEN1c3RvbUludmFsaWRpdHk6OkFzc2V0SWROb3RTZXRgXSBpbiB0cmFuc2FjdGlvbiBleHRlbnNpb24gdmFsaWRhdGlvbikuAAGlBAAB6QYAQFBSZWN5Y2xlclJpbmdFeHBvbmVudJEEBAoEsCBUaGUgcmluZyBleHBvbmVudCBmb3IgcmVjeWNsZXIgY29sbGVjdGlvbnMuAGxQYWlkVW5sb2FkVG9rZW5SaW5nRXhwb25lbnSRBAQKBNQgVGhlIHJpbmcgZXhwb25lbnQgZm9yIHBhaWQgdW5sb2FkIHRva2VuIGNvbGxlY3Rpb25zLgBMVW5kZXJseWluZ0Fzc2V0VW5pdMRAECcAAAAAAAAAAAAAAAAAAAS8IFRoZSB1bml0IG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0IG9mIHRoZSBjb2lucy4APE1pbmltdW1FeHBvbmVudHUDBAAEpCBUaGUgbWluaW11bSBleHBvbmVudCBmb3IgdGhlIGNvaW4gdmFsdWUuADxNYXhpbXVtRXhwb25lbnR1AwQOBKQgVGhlIG1heGltdW0gZXhwb25lbnQgZm9yIHRoZSBjb2luIHZhbHVlLgCETWluaW11bUV4cG9uZW50Rm9yT3V0cHV0VW5sb2FkRmVldQMEACBdASBUaGUgbWluaW11bSBjb2luIGV4cG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gZGlzcGF0Y2ggYSBjYWxsIGB1bmxvYWRfcmVjeWNsZXJfKmAgd2l0aNQgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBgQXNVbmxvYWRUb2tlbkZyb21PdXRwdXRgLgBhASBUaGlzIGVuc3VyZXMgdGhlIGZlZSBjb2luIGlzIGxhcmdlIGVub3VnaCB0byBwZW5hbGl6ZSBmYWlsaW5nIHRyYW5zYWN0aW9ucywgYnV0IGl0IGRvZXO4IG5vdCBuZWVkIHRvIGNvdmVyIHRoZSB3aG9sZSB1bmxvYWQgdG9rZW4gZmVlLgBRASBUaGUgaGVscGVyIGZ1bmN0aW9uIGB3ZWlnaHRfZm9yX3VubG9hZF9yZWN5Y2xlcl9wYXlpbmdfdXNpbmdfb3V0cHV0YCBjYW4gYmUgdXNlZCB0b8wgZXZhbHVhdGUgdGhlIHdvcnN0LWNhc2Ugd2VpZ2h0IGZvciB0aGlzIG9wZXJhdGlvbi4APE1heFNwbGl0T3V0cHV0czgQIAAAAASsIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvdXRwdXRzIGZvciBhIHNwbGl0LgBATWF4Q29uc29saWRhdGlvbjgQQAAAAATcIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGlhcyBwcm9vZnMgaW4gYSBjb25zb2xpZGF0aW9uLgBITWF4QmF0Y2hVbnBhaWRMb2FkOBAKAAAACLggVGhlIG1heGltdW0gbnVtYmVyIG9mIGlubmVyIGNhbGxzIGluIGEgc2luZ2xlDQEgW2BDYWxsOjpsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXRfdW5wYWlkX2JhdGNoYF0gZGlzcGF0Y2guAJRVbmxvYWRUb2tlblRpbWVQZXJpb2RQZW9wbGVMaXRlUGVvcGxlOBCAUQEABOAgVGhlIHRpbWUgcGVyaW9kIGR1cmF0aW9uIGZvciB1bmxvYWQgdG9rZW5zLCBpbiBzZWNvbmRzLgCoVW5sb2FkVG9rZW5BbGxvd2FuY2VQZXJUaW1lUGVyaW9kRm9yUGVvcGxlxEAALTEBAAAAAAAAAAAAAAAAFF0BIFRoZSBhbGxvd2FuY2Ugb2YgdW5sb2FkIHRva2VucyB0aGF0IGEgcGVyc29uIGNhbiB1c2UgcGVyIHRpbWUgcGVyaW9kLCBleHByZXNzZWQgaW4gdGhlSCB1bmRlcmx5aW5nIGFzc2V0LgBVASBVc2UgcGFsbGV0IHZpZXcgdG8gZmV0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgbnVtYmVyIG9mIHVubG9hZCB0b2tlbnMgZ2l2ZW4gdGhlIGN1cnJlbnRkIHByaWNlIGZvciB1bmxvYWQgdG9rZW5zLgC4VW5sb2FkVG9rZW5BbGxvd2FuY2VQZXJUaW1lUGVyaW9kRm9yTGl0ZVBlb3BsZcRAgJaYAAAAAAAAAAAAAAAAABRhASBUaGUgYWxsb3dhbmNlIG9mIHVubG9hZCB0b2tlbnMgdGhhdCBhIGxpdGUgcGVyc29uIGNhbiB1c2UgcGVyIHRpbWUgcGVyaW9kLCBleHByZXNzZWQgaW5YIHRoZSB1bmRlcmx5aW5nIGFzc2V0LgBZASBVc2UgcGFsbGV0J3MgZ2V0X2ZyZWVfdW5sb2FkX3Rva2VuX2luZm8oKSB0byBmZXRjaCB0aGUgY29ycmVzcG9uZGluZyBudW1iZXIgb2YgdW5sb2FkyCB0b2tlbnMgZ2l2ZW4gdGhlIGN1cnJlbnQgcHJpY2UgZm9yIHVubG9hZCB0b2tlbnMuAIBNYXhGcmVlVW5sb2FkVG9rZW5zUGVyVGltZVBlcmlvZDgQ6AMAABAZASBIYXJkIHVwcGVyIGJvdW5kIG9uIHRoZSBudW1iZXIgb2YgZnJlZSB1bmxvYWQgdG9rZW5zIHBlciB0aW1lIHBlcmlvZC4AjCBUaGUgZWZmZWN0aXZlIGZyZWUgdG9rZW4gbGltaXQgaXM6CQEgYG1pbihhbGxvd2FuY2UgLyBjdXJyZW50X2ZlZSwgTWF4RnJlZVVubG9hZFRva2Vuc1BlclRpbWVQZXJpb2QpYC4AWE9mZmNoYWluV29ya2VySW50ZXJ2YWw4EAQAAAAE5CBUaGUgbnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIG9mZmNoYWluIHdvcmtlciBleGVjdXRpb25zLgBUQ29pbkZhaWx1cmVMb2NrUGVyaW9kKCA8AAAAAAAAABBRASBUaGUgYmFzZSBudW1iZXIgb2Ygc2Vjb25kcyB0byBsb2NrIGEgY29pbiBhZnRlciBhIGZhaWxlZCBkaXNwYXRjaCBpbiBgQXNDb2luYCBmbG93LgA9ASBUaGUgYWN0dWFsIGxvY2sgZHVyYXRpb24gaXMgZXhwb25lbnRpYWw6IGAyXnJldHJpZXMgKiBiYXNlYCB3aGVyZSBgcmV0cmllc2AgaXOQIHRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUgZmFpbHVyZXMuADhwYWxsZXRfYWNjb3VudASAbW9kbGNvaW5hZ2UgAAAAAAAAAAAAAAAAAAAAAAAAAAAEeCBUaGUgYWNjb3VudCBpZCBvZiB0aGUgcGFsbGV0LgABgQsAAER6wnEsinalKsO6EKKQIeyZ+S8k7m09V0l+jzxSYVxhYWhnZXRfZnJlZV91bmxvYWRfdG9rZW5faW5mbwCFCyRNASBHZXQgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIGZyZWUgdW5sb2FkIHRva2VucyBkaXN0cmlidXRlZCB0byBwZW9wbGUgYW5kIGxpdGUgcGVvcGxlrCBnaXZlbiB0aGUgY3VycmVudCBwcmljZSBmb3IgdW5sb2FkIHRva2Vucy4AXQEgSWYgYW4gZWxlbWVudCBpcyBgTm9uZWAsIG5vIHByaWNlIGlzIGN1cnJlbnRseSBhdmFpbGFibGUgYW5kIGNvbnZlcnNpb24gYmV0d2VlbiBuYXRpdmXEIGFuZCB0aGUgdW5kZXJseWluZyBhc3NldCBuZWVkcyB0byBiZSBjb25maWd1cmVkLgC4IFJldHVybnM6IGAobGltaXRfcGVvcGxlLCBsaW1pdF9saXRlX3Blb3BsZSlgLgDoIEVhY2ggZWxlbWVudCBpcyBgTm9uZWAgd2hlbiBpdHMgbGltaXQgY2Fubm90IGJlIGNvbXB1dGVkLgB6wnEsinalKsO6EKKQIeyZc90Zgp9pxJOe+stmiqyDq2BnZXRfcmVjeWNsZXJfcmluZ19zdGF0dXMIFHZhbHVldQMUaW5kZXg4iQsE6CBHZXQgdGhlIHJpbmcgc3RhdHVzIGZvciBhIHJlY3ljbGVyIGF0IGEgZ2l2ZW4gcmluZyBpbmRleC4AesJxLIp2pSrDuhCikCHsmUjaWO2oVeqVUL69KqJbffJoZ2V0X3JlY3ljbGVyX3JpbmdfcmV2aXNpb24IFHZhbHVldQMUaW5kZXg4CQME8CBHZXQgdGhlIHJpbmcgcmV2aXNpb24gZm9yIGEgcmVjeWNsZXIgYXQgYSBnaXZlbiByaW5nIGluZGV4LgB6wnEsinalKsO6EKKQIeyZte/GgJpr82sDrlf0xmwEiWhnZXRfcGFpZF90b2tlbl9yaW5nX3N0YXR1cwgYcGVyaW9kOBRpbmRleDiJCwQdASBHZXQgdGhlIHJpbmcgc3RhdHVzIGZvciBhIHBhaWQgdG9rZW4gYXQgYSBnaXZlbiBwZXJpb2QgYW5kIHJpbmcgaW5kZXguAHrCcSyKdqUqw7oQopAh7Jmg9sMQ9qgqn3x27yB//Z41cGdldF9wYWlkX3Rva2VuX3JpbmdfcmV2aXNpb24IGHBlcmlvZDgUaW5kZXg4CQMEJQEgR2V0IHRoZSByaW5nIHJldmlzaW9uIGZvciBhIHBhaWQgdG9rZW4gYXQgYSBnaXZlbiBwZXJpb2QgYW5kIHJpbmcgaW5kZXguAHrCcSyKdqUqw7oQopAh7JluvFXpnNfiPnMl4+z82ZtmiGdldF9wYWlkX3VubG9hZF90b2tlbl9mZWVfaW5fYXNzZXQAcQgQEQEgR2V0IHRoZSBjdXJyZW50IGZlZSBpbiB0aGUgdW5kZXJseWluZyBhc3NldCBmb3IgcGFpZCB1bmxvYWQgdG9rZW5zLgBdASBJZiBub25lIGlzIHJldHVybmVkIGl0IG1lYW5zIHRoYXQgbm8gcHJpY2UgaXMgY3VycmVudGx5IGF2YWlsYWJsZSwgYW5kIHNvbWUgY29udmVyc2lvbgEBIGJldHdlZW4gbmF0aXZlIGFuZCB0aGUgdW5kZXJseWluZyBhc3NldCBuZWVkcyB0byBiZSBjb25maWd1cmVkLgB6wnEsinalKsO6EKKQIeyZzr1EoM9R1bqZT2wP4Czp6oxnZXRfcGFpZF91bmxvYWRfdG9rZW5fZmVlX2luX25hdGl2ZQDEBA0BIEdldCB0aGUgY3VycmVudCBmZWUgaW4gdGhlIG5hdGl2ZSBjdXJyZW5jeSBmb3IgcGFpZCB1bmxvYWQgdG9rZW5zLgB6wnEsinalKsO6EKKQIeyZnl6QXlmqQJ+xgGt4maYXhURnZXRfY29pbl9ieV9vd25lcgQUb3duZXIEjQsEhCBHZXQgY29pbiBkZXRhaWxzIGZvciBhbiBhY2NvdW50LgB6wnEsinalKsO6EKKQIeyZ2pwW6SSCpfejl/Gf/KR/GkxnZXRfY29pbl9sb2NrX3VudGlsBBRvd25lcgQVAwxVASBHZXQgdGhlIFVuaXggdGltZXN0YW1wIHVudGlsIHdoaWNoIGEgY29pbiBpcyBjdXJyZW50bHkgbG9ja2VkIGFmdGVyIGZhaWxlZCBkaXNwYXRjaC4ASQEgUmV0dXJucyBgTm9uZWAgd2hlbiB0aGVyZSBpcyBubyBsb2NrIG9yIHdoZW4gdGhlIHN0b3JlZCBsb2NrIGhhcyBhbHJlYWR5IGV4cGlyZWQuAHrCcSyKdqUqw7oQopAh7JlkYyioeXgK/BLhQllgEWBQYGdldF9yZWN5Y2xlcl9tZW1iZXJfaW5mbwQYbWVtYmVyCJELBNwgR2V0IHRoZSBjb2luIHZhbHVlIGZvciBhIHNwZWNpZmljIHJlY3ljbGVyIG1lbWJlciBrZXkuAHrCcSyKdqUqw7oQopAh7JlPIgcKQ3zRVELlPomgKmh0UGlzX3BhaWRfdG9rZW5fbWVtYmVyBBhtZW1iZXIIyATUIENoZWNrIHdoZXRoZXIgYSBwYWlkIHRva2VuIG1lbWJlciBrZXkgaXMgcmVnaXN0ZXJlZC4AesJxLIp2pSrDuhCikCHsmSz2R2QhM2Gdfx48vF24ezhQZ2V0X3JlY3ljbGVyX21lbWJlcnMIFHZhbHVldQMUaW5kZXg4sQMIkCBHZXQgdGhlIG1lbWJlcnMgb2YgYSByZWN5Y2xlciByaW5nLg0BIFJlcXVpcmVkIHRvIGJ1aWxkIHRoZSByaW5nIGNvbW1pdG1lbnQgKGFjY3VtdWxhdG9yKSBmb3IgdGhlIHByb29mLgB6wnEsinalKsO6EKKQIeyZ8Tj8IGjyPgD2VQ7tzmJPYWxnZXRfcGFpZF90b2tlbl9yaW5nX21lbWJlcnMIGHBlcmlvZDgUaW5kZXg4sQMImCBHZXQgdGhlIG1lbWJlcnMgb2YgYSBwYWlkIHRva2VuIHJpbmcuDQEgUmVxdWlyZWQgdG8gYnVpbGQgdGhlIHJpbmcgY29tbWl0bWVudCAoYWNjdW11bGF0b3IpIGZvciB0aGUgcHJvb2YuAHrCcSyKdqUqw7oQopAh7JkF2qg6IjGFaW4l7IHksnyGaGlzX3JlY3ljbGVyX2FsaWFzX3VubG9hZGVkDBR2YWx1ZXUDFGluZGV4OBRhbGlhcwjIDPQgQ2hlY2sgaWYgYSByZWN5Y2xlciBhbGlhcyBoYXMgYWxyZWFkeSBiZWVuIHVubG9hZGVkIChzcGVudCkuAPAgSWYgdGhlIHJlY3ljbGVyIGlzIG5vdCBsaXZlLCB0aGUgcmVzdWx0IGlzIG5vdCBzaWduaWZpY2FudC4AesJxLIp2pSrDuhCikCHsmS6NiyqbxAjIWuSgBYhX0I9waXNfcGFpZF90b2tlbl9hbGlhc19jb25zdW1lZAwYcGVyaW9kOBRpbmRleDgUYWxpYXMIyAzAIENoZWNrIGlmIGEgcGFpZCB1bmxvYWQgdG9rZW4gaGFzIGJlZW4gY29uc3VtZWQuAPQgSWYgdGhlIHBlcmlvZCBpcyBub3QgY3VycmVudCwgdGhlIHJlc3VsdCBpcyBub3Qgc2lnbmlmaWNhbnQuAHrCcSyKdqUqw7oQopAh7Jm/EtB6iDYdDvU17ItcGeXTcGlzX2ZyZWVfdG9rZW5fYWxpYXNfY29uc3VtZWQIGHBlcmlvZDgUYWxpYXMIyAzAIENoZWNrIGlmIGEgZnJlZSB1bmxvYWQgdG9rZW4gaGFzIGJlZW4gY29uc3VtZWQuAPQgSWYgdGhlIHBlcmlvZCBpcyBub3QgY3VycmVudCwgdGhlIHJlc3VsdCBpcyBub3Qgc2lnbmlmaWNhbnQuAHrCcSyKdqUqw7oQopAh7JmRsy8uvB8r+d6VykJZ3bjFuHdlaWdodF9mb3JfdW5sb2FkX3JlY3ljbGVyX3BheWluZ191c2luZ19vdXRwdXQA1QEUMQEgR2V0IHRoZSB3b3JzdC1jYXNlIHdlaWdodCBmb3IgYSB0cmFuc2FjdGlvbiB1c2luZyBvdXRwdXQtYmFzZWQgZmVlIHBheW1lbnQuACkBIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbWF4aW11bSB3ZWlnaHQgZm9yIHRyYW5zYWN0aW9ucyBkaXNwYXRjaGVkIHdpdGhVASBgQXNVbmxvYWRUb2tlbkZyb21PdXRwdXRgLCB1c2VmdWwgZm9yIHJ1bnRpbWUgY29uZmlndXJhdGlvbiB0byBmaW5kIGEgZ29vZCB2YWx1ZSBmb3KUIGBNaW5pbXVtRXhwb25lbnRGb3JPdXRwdXRVbmxvYWRGZWVgLgBEAAA8TWVtYmVyc05vdGlmaWVyATxNZW1iZXJzTm90aWZpZXIwLFN1YnNjcmliZXJzAAEEBpyVCwQABEEBIFN1YnNjcmliZXIgcmVnaXN0cnkgd2l0aCB0aGVpciBzdWJzY3JpYmVkIGNvbGxlY3Rpb25zIGFuZCBpbml0aWFsaXphdGlvbiBzdGF0ZS4AVENvdW50ZXJGb3JTdWJzY3JpYmVycwEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwAExTZWFsZWRCYXRjaFNlcXVlbmNlAQAoIAAAAAAAAAAADIggU2VxdWVuY2UgbnVtYmVyIGZvciBzZWFsZWQgYmF0Y2gu9CBJbmNyZW1lbnRlZCB3aGVuIGEgYmF0Y2ggaXMgc2VhbGVkIC0gcmVhZHkgZm9yIGRpc3RyaWJ1dGlvbi7wIFNlcnZlcyBhcyB0aGUgYmF0Y2ggaWRlbnRpZmllciBmb3IgcmVwbGF5IGFuZCBkaXN0cmlidXRpb24uACRQYWdlU3RhdGUBAJkLIAAAAAAAAAAABPAgUGFnaW5nIHN0YXRlOiB3cml0ZSBwYWdlLCBzZW5kIHBhZ2UsIGFuZCBsYXN0IHVwZGF0ZSBibG9jay4AOFBlbmRpbmdVcGRhdGVzAAEMBgYGnQsQBAAMfCBDaGFuZ2VkIHJpbmcgcm9vdCBrZXlzLCBwYWdlZC4xASBLZXk6IChwYWdlX2luZGV4LCBpZGVudGlmaWVyLCByaW5nX2luZGV4KS4gUG9wdWxhdGVkIGJ5IGBPblJpbmdSb290Q2hhbmdlYCw5ASBjb25zdW1lZCBieSBgZW5xdWV1ZV91cGRhdGVzYCBvbmUgcGFnZSBhdCBhIHRpbWUgZnJvbSBgUGFnZVN0YXRlOjpzZW5kX3BhZ2VgLgBAUGFnZVVwZGF0ZXNDb3VudAEBBAYtAzgQAAAAAAS0IFBlci1wYWdlIGNvdW50IG9mIGVudHJpZXMgaW4gUGVuZGluZ1VwZGF0ZXMuACxQZW5kaW5nSW5pdAABBAacoQsEAAS8IFN0YXRlIGZvciBwYWdpbmF0ZWQgc3Vic2NyaWJlciBpbml0aWFsaXphdGlvbi4AVENvdW50ZXJGb3JQZW5kaW5nSW5pdAEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwAEhTZWFsZWRCYXRjaEluZGljZXMAAQQGCPkEBAAE3CBJbmRpY2VzIHBlciBjb2xsZWN0aW9uIGZvciB0aGUgc2VhbGVkIChjdXJyZW50KSBiYXRjaC4AMEN1cnJlbnRCYXRjaAAApQsEAASIIEN1cnJlbnQgYmF0Y2ggZGlzdHJpYnV0aW9uIHN0YXRlLgBsU3Vic2NyaWJlcnNXaXRoQ3VycmVudEJhdGNoAAEEBpwQBAAE6CBUcmFja3Mgd2hpY2ggc3Vic2NyaWJlcnMgaGF2ZSByZWNlaXZlZCB0aGUgY3VycmVudCBiYXRjaC4AOExhc3RSZXBsYXlUaW1lAAEIBgapCygEAAjQIExhc3QgcmVwbGF5IHRpbWUgcGVyIChzdWJzY3JpYmVyLCBjb2xsZWN0aW9uKSBwYWlyLtAgVXNlZCB0byBlbmZvcmNlIGEgY29vbGRvd24gYmV0d2VlbiByZXBsYXkgcmVxdWVzdHMuAAHlBAAB7QYAKDhNYXhTdWJzY3JpYmVyczgQCgAAAAScIE1heGltdW0gbnVtYmVyIG9mIHN1YnNjcmliZXJzIGFsbG93ZWQuAEhNYXhVcGRhdGVzUGVyQmF0Y2g4EAoAAAAEbCBNYXhpbXVtIHVwZGF0ZXMgcGVyIGJhdGNoLgBsTWF4Q29sbGVjdGlvbnNQZXJTdWJzY3JpYmVyOBADAAAABMwgTWF4aW11bSBjb2xsZWN0aW9ucyBhIHN1YnNjcmliZXIgY2FuIHN1YnNjcmliZSB0by4AOE1heENvbGxlY3Rpb25zOBBkAAAABJAgTWF4aW11bSBudW1iZXIgb2YgcmluZyBjb2xsZWN0aW9ucy4ATFVwZGF0ZVRyaWdnZXJCbG9ja3M4EAEAAAAExCBNaW5pbXVtIG51bWJlciBvZiBibG9ja3MgYmV0d2VlbiB1cGRhdGUgYmF0Y2hlcy4AWFVwZGF0ZVRyaWdnZXJUaHJlc2hvbGQ4EAEAAAAE7CBNaW5pbXVtIG51bWJlciBvZiB1cGRhdGVzIHRvIHRyaWdnZXIgaW1tZWRpYXRlIGJhdGNoIHNlbmQuAGRSZXF1ZXN0UmVwbGF5UmVtb3RlV2VpZ2h01QEMQZwABCUBIFBlci1pbmRleCB3ZWlnaHQgc3VyY2hhcmdlIGZvciByZW1vdGUgZXhlY3V0aW9uIG9uIHRoZSBzdWJzY3JpYmVyIGNoYWluLgBYT2ZmY2hhaW5Xb3JrZXJJbnRlcnZhbDgQAQAAAATcIE1pbmltdW0gbnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIG9mZmNoYWluIHdvcmtlciBydW5zLgBEU3R1Y2tCYXRjaFRpbWVvdXQ4EGQAAAAE5CBOdW1iZXIgb2YgYmxvY2tzIGFmdGVyIHdoaWNoIGEgc3R1Y2sgYmF0Y2ggaXMgYWJhbmRvbmVkLgBUUmVwbGF5Q29vbGRvd25TZWNvbmRzKCA8AAAAAAAAAARZASBDb29sZG93biwgaW4gc2Vjb25kcywgYmV0d2VlbiByZXBsYXkgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIHN1YnNjcmliZXIgYW5kIGNvbGxlY3Rpb24uAAGtCwAAAEUAABxBaXJkcm9wARxBaXJkcm9wGBhFdmVudHMAAQQFCLELBAAE2CBSZWdpc3RlcmVkIGFpcmRyb3AgZXZlbnRzLCBrZXllZCBieSB0aGVpciBpZGVudGlmaWVyLgA4QWN0aW9uU2NoZWR1bGUAAQgGBrkLEAQACF0BIFBlbmRpbmcgbGlmZWN5Y2xlIGFjdGlvbnMgZm9yIHJlZ2lzdGVyZWQgZXZlbnRzLCBvcmRlcmVkIGJ5IHRoZSB0aW1lc3RhbXAgYXQgd2hpY2ggdGhlaCBhY3Rpb24gc2hvdWxkIHRha2UgcGxhY2UuADRSZWdpc3RyYXRpb25zAAEIBQbBC/kGBAAIDQEgUGVyLWV2ZW50IHBhcnRpY2lwYW50IHJlZ2lzdHJhdGlvbnMsIGtleWVkIGJ5IDMyLWJ5dGUgZW50cm9weSBzbG90mCBpbiBiaWctZW5kaWFuIG9yZGVyIHVuZGVyIGBJZGVudGl0eWAuABxXaW5uZXJzAAEIBQLFC/UGBAAIcQEgV2lubmVycyBmb3IgYW4gZXZlbnQsIGtleWVkIGJ5IHRoZSBldmVudCBpZGVudGlmaWVyIGFuZCB0aGVpciByZWdpc3RyYXRpb24gZW50cnkuIFRoaXMgbWFwc+ggdG8gdGhlIHBhcnRpY2lwYW50J3MgdGlja2V0IGZvciBvZmZjaGFpbiBsb29rdXAgcHVycG9zZXMuADBFdmVudEVudHJvcHkAAQQFCPUGBAAIXQEgRW50cm9weSBzZWVkIGNhcHR1cmVkIGF0IGRyYXcgdGltZSwgcGVyIGV2ZW50LiBUaGlzIHNlcnZlcyBhcyBhIHBhcnRpdGlvbiBwb2ludCBpbiB0aGXwIHBhcnRpY2lwYXRpb24gdGlja2V0IG9yZGVyZWQgbGlzdCBpbiBvcmRlciB0byBwaWNrIHdpbm5lcnMuADxTdXBwb3J0ZWRBc3NldHMAAQQF4MQEABBlASBQZXItYXNzZXQgZW5hYmxlbWVudCBnYXRlLiBBbiBhc3NldCBpcyB1c2FibGUgZm9yIHNjaGVkdWxpbmcgZXZlbnRzIGlmZiBpdCBpcyBwcmVzZW50IGluZQEgdGhpcyBtYXA7IHRoZSBzdG9yZWQgdmFsdWUgaXMgdGhlIGFtb3VudCB0aGUgcGFsbGV0IHRyYW5zZmVycmVkIGludG8gaXRzIHBvdCB0byBrZWVwIHRoZVUBIHBvdCdzIGFzc2V0IGFjY291bnQgYWxpdmUgKHRoZSBhc3NldCdzIEVEIGF0IHRoZSB0aW1lIG9mIGVuYWJsaW5nKS4gYGVuYWJsZV9hc3NldGAgL8ggYGRpc2FibGVfYXNzZXRgIGFyZSB0aGUgb25seSB3YXlzIHRvIG11dGF0ZSB0aGlzLgAB/QQAAfEGABQgUGFsbGV0SWSRCCBwb3AvYWRycATAIFBhbGxldCBpZCB1c2VkIHRvIGRlcml2ZSB0aGUgcHJpemUgcG90IGFjY291bnQuAChDbGVhckxpbWl0OBBkAAAACNQgTWF4aW11bSBudW1iZXIgb2YgcmVnaXN0cmF0aW9uIGVudHJpZXMgcHJvY2Vzc2VkIHBlcuggYGNsZWFuX3VwX3tyZWdpc3RyYXRpb25zLHdpbm5lcnN9X2F1dGhvcml6ZWRgIGludm9jYXRpb24uACREcmF3TGltaXQ4EGQAAAAEMQEgTWF4aW11bSBudW1iZXIgb2Ygd2lubmVyIHNsb3RzIGluc2VydGVkIHBlciBgZHJhd193aW5uZXJzX2F1dGhvcml6ZWRgIGNhbGwuAFhPZmZjaGFpbldvcmtlckludGVydmFsOBABAAAABNggSG93IGZyZXF1ZW50bHkgdGhlIG9mZmNoYWluIHdvcmtlciBmaXJlcyAoaW4gYmxvY2tzKS4AOGFpcmRyb3BfcG90X2lkBIBtb2RscG9wL2FkcnAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0IEFjY291bnQgaWQgb2YgdGhlIHByaXplIHBvdC4AAckLAAAARgAAGEhvbm91cgEYSG9ub3VyDBhQb2ludHMAAQQCCM0LBAAQmCBQb2ludHMgdGhhdCBoYXZlIGJlZW4gdXNlZCBieSB2b3RlcnMuAHUBIFJlY29yZHMgaW4gW2BQb2ludHNgXSB0cmFjayB1c2VkIHBvaW50cyB0byBwcmV2ZW50IGRvdWJsZS1zcGVuZGluZyBhbmQgZW5mb3JjZSByYXRlLWxpbWl0aW5neCBiYXNlZCBvbiB0aGUgbGFzdCB1c2FnZSB0aW1lLgAUVm90ZXMAAQQCCBAEABB8IFZvdGVzIHRoYXQgaGF2ZSBiZWVuIGJlc3Rvd2VkLgBVASBQcmV2ZW50cyBkb3VibGUtdm90aW5nIG9uIHRoZSBzYW1lIHN1YmplY3QgYnkgdGhlIHNhbWUgdm90ZXIsIGFzIFtgU3ViamVjdEFsaWFzYF0gaXPQIHVuaXF1ZWx5IGRlcml2ZWQgZnJvbSBbYFN1YmplY3RJZGBdIGZvciBlYWNoIHZvdGVyLgAUVGFsbHkAAQQCCAEHBAAEMQEgQWJzb2x1dGUgaG9ub3VyIHNjb3JlIG9mIGEgc3ViamVjdC4gSW5pdGlhbGl6ZWQgdG8gLTEgdG8gb2Zmc2V0IHNlbGYtdm90ZXMuAAEFBQAB/QYACExQb2ludEZyZWV6ZUR1cmF0aW9uKCCAUQEAAAAAAAQFASBEdXJhdGlvbiBpbiBzZWNvbmRzIHRoYXQgbXVzdCBwYXNzIGJlZm9yZSBhIHBvaW50IGNhbiBiZSByZXVzZWQuADRDYWxsTW9ydGFsaXR5KCAsAQAAAAAAAAQ9ASBEdXJhdGlvbiBpbiBzZWNvbmRzIGEgYGJlc3Rvd2AgY2FsbCByZW1haW5zIHZhbGlkIGFmdGVyIGl0cyBgY2FsbF92YWxpZF9mcm9tYC4AAdELAAAARwAAVFN0b3JhZ2VJbml0aWFsaXphdGlvbgFUU3RvcmFnZUluaXRpYWxpemF0aW9uCDBPblBvbGxTdGF0dXMBANULBAAE9CBDdXJyZW50IHN0YXRlIG9mIHRoZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGluIG9uX3BvbGwgaG9vay4AWFhjbVRyYW5zZmVySW5pdGlhdGVkQXQAADgEAAi4IEJsb2NrIG51bWJlciB3aGVuIFhDTSB0cmFuc2ZlciB3YXMgaW5pdGlhdGVkLoAgVXNlZCB0byB0cmFjayB0cmFuc2ZlciB0aW1lb3V0LgAAAQUHAAAAAAA8AABQTXVsdGlCbG9ja01pZ3JhdGlvbnMBUE11bHRpQmxvY2tNaWdyYXRpb25zCBhDdXJzb3IAABkFBAAM2CBUaGUgY3VycmVudGx5IGFjdGl2ZSBtaWdyYXRpb24gdG8gcnVuIGFuZCBpdHMgY3Vyc29yLgC8IGBOb25lYCBpbmRpY2F0ZXMgdGhhdCBubyBtaWdyYXRpb24gaXMgcnVubmluZy4AIEhpc3RvcmljAAEEBS0FEAQAELQgU2V0IG9mIGFsbCBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQgbWlncmF0aW9ucy4AcQEgVGhpcyBpcyB1c2VkIGFzIGJsYWNrbGlzdCwgdG8gbm90IHJlLWV4ZWN1dGUgbWlncmF0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gcmVtb3ZlZCBmcm9tIHRoZTEBIGNvZGViYXNlIHlldC4gR292ZXJuYW5jZSBjYW4gcmVndWxhcmx5IGNsZWFyIHRoaXMgb3V0IHZpYSBgY2xlYXJfaGlzdG9yaWNgLgABEQUAAQkHAAgwQ3Vyc29yTWF4TGVuOBAAAAEAEKQgVGhlIG1heGltYWwgbGVuZ3RoIG9mIGFuIGVuY29kZWQgY3Vyc29yLgBlASBBIGdvb2QgZGVmYXVsdCBuZWVkcyB0byBzZWxlY3RlZCBzdWNoIHRoYXQgbm8gbWlncmF0aW9uIHdpbGwgZXZlciBoYXZlIGEgY3Vyc29yIHdpdGggTUVMCQEgYWJvdmUgdGhpcyBsaW1pdC4gVGhpcyBpcyBzdGF0aWNhbGx5IGNoZWNrZWQgaW4gYGludGVncml0eV90ZXN0YC4AQElkZW50aWZpZXJNYXhMZW44EAABAAAQtCBUaGUgbWF4aW1hbCBsZW5ndGggb2YgYW4gZW5jb2RlZCBpZGVudGlmaWVyLgBVASBBIGdvb2QgZGVmYXVsdCBuZWVkcyB0byBzZWxlY3RlZCBzdWNoIHRoYXQgbm8gbWlncmF0aW9uIHdpbGwgZXZlciBoYXZlIGFuIGlkZW50aWZpZXItASB3aXRoIE1FTCBhYm92ZSB0aGlzIGxpbWl0LiBUaGlzIGlzIHN0YXRpY2FsbHkgY2hlY2tlZCBpbiBgaW50ZWdyaXR5X3Rlc3RgLgAB2QsAABALIBmazjVk0JZOLE1Km6RplE28/2ps4aTQsnxvzALSTDhvbmdvaW5nX3N0YXR1cwDdCwSoIFJldHVybnMgdGhlIG9uZ29pbmcgc3RhdHVzIG9mIG1pZ3JhdGlvbnMuAAsgGZrONWTQlk4sTUqbpGlevXdssV2bkS4njU0tYsWhIHByb2dyZXNzAOELEAkBIFJldHVybnMgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgbWlncmF0aW9uLCBpZiBhbnkuAFEBIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgbWlncmF0aW9uJ3MgcHJvZ3Jlc3MsHQEgaW5jbHVkaW5nIHRoZSBudW1iZXIgb2Ygc3RlcHMgY29tcGxldGVkIGFuZCB0aGUgbWF4aW11bSBhbGxvd2VkIHN0ZXBzLgALIBmazjVk0JZOLE1Km6RpRq9LzsbzWnu77p2fwQlb4URhZmZlY3RlZF9wcmVmaXhlcwA0DAEBIFJldHVybnMgdGhlIHN0b3JhZ2UgcHJlZml4ZXMgYWZmZWN0ZWQgYnkgdGhlIGN1cnJlbnQgbWlncmF0aW9uLgAZASBDYW4gYmUgZW1wdHkgaWYgdGhlIG1pZ3JhdGlvbiBkb2VzIG5vdCBrbm93IG9yIHRoZXJlIGFyZSBubyBwcmVmaXhlcy4ACyAZms41ZNCWTixNSpukaapMKKBvGYhFvRuynsYgXd0Yc3RhdHVzAOkLBPAgUmV0dXJucyB0aGUgY29tcHJlaGVuc2l2ZSBzdGF0dXMgb2YgbXVsdGktYmxvY2sgbWlncmF0aW9ucy4AYgAACAQFACDZAwQAWAAECAwQFBgcICQoLDA0ODxAREhMUFRYWEF1dGhvcml6ZVZhbHVlVHJhbnNmZXI5BRBQVmVyaWZ5TXVsdGlTaWduYXR1cmVBBRAgQXNQZXJzb25FBRBcQXNQcm9vZk9mSW5rUGFydGljaXBhbnRRBRBIU2NvcmVBc1BhcnRpY2lwYW50XQUQNEdhbWVBc0ludml0ZWRpBRA4UGVvcGxlTGl0ZUF1dGh1BRAgQXNNZW1iZXKBBRAkQXNDb2luYWdljQUQLEFzUmVzb3VyY2VzoQUQKEhvbm91ckF1dGitBRA0QXV0aG9yaXplQ2FsbLkFEDxSZXN0cmljdE9yaWdpbnO9BRBIQ2hlY2tOb25aZXJvU2VuZGVywQUQQENoZWNrU3BlY1ZlcnNpb27FBTg4Q2hlY2tUeFZlcnNpb27JBTgwQ2hlY2tHZW5lc2lzzQU8OENoZWNrTW9ydGFsaXR50QU8KENoZWNrTm9uY2XZBRAsQ2hlY2tXZWlnaHTdBRBQQ2hhcmdlQXNzZXRUeFBheW1lbnThBRBQU3RvcmFnZVdlaWdodFJlY2xhaW0QEFQcQXVyYUFwaQg0c2xvdF9kdXJhdGlvbgDtCwyQIFJldHVybnMgdGhlIHNsb3QgZHVyYXRpb24gZm9yIEF1cmEuACUBIEN1cnJlbnRseSwgb25seSB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhpcyB0eXBlIGF0IGdlbmVzaXMgd2lsbCBiZSB1c2VkLgAsYXV0aG9yaXRpZXMAwQgEnCBSZXR1cm4gdGhlIGN1cnJlbnQgc2V0IG9mIGF1dGhvcml0aWVzLgAEuCBBUEkgbmVjZXNzYXJ5IGZvciBibG9jayBhdXRob3JzaGlwIHdpdGggYXVyYS4EAFBSZWxheVBhcmVudE9mZnNldEFwaQRMcmVsYXlfcGFyZW50X29mZnNldAA4BPQgRmV0Y2ggdGhlIHNsb3Qgb2Zmc2V0IHRoYXQgaXMgZXhwZWN0ZWQgZnJvbSB0aGUgcmVsYXkgY2hhaW4uABAFASBBUEkgdG8gdGVsbCB0aGUgbm9kZSBzaWRlIGhvdyB0aGUgcmVsYXkgcGFyZW50IHNob3VsZCBiZSBjaG9zZW4uAGkBIEEgbGFyZ2VyIG9mZnNldCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVsYXkgcGFyZW50IHNob3VsZCBub3QgYmUgdGhlIHRpcCBvZiB0aGUgcmVsYXkgY2hhaW4sMQEgYnV0IGBOYCBibG9ja3MgYmVoaW5kIHRoZSB0aXAuIFRoaXMgb2Zmc2V0IGlzIHRoZW4gZW5mb3JjZWQgYnkgdGhlIHJ1bnRpbWUuBABgQXVyYVVuaW5jbHVkZWRTZWdtZW50QXBpBDhjYW5fYnVpbGRfdXBvbgg0aW5jbHVkZWRfaGFzaDwQc2xvdMUIyCg5ASBXaGV0aGVyIGl0IGlzIGxlZ2FsIHRvIGV4dGVuZCB0aGUgY2hhaW4sIGFzc3VtaW5nIHRoZSBnaXZlbiBibG9jayBpcyB0aGUgbW9zdDUBIHJlY2VudGx5IGluY2x1ZGVkIG9uZSBhcy1vZiB0aGUgcmVsYXkgcGFyZW50IHRoYXQgd2lsbCBiZSBidWlsdCBhZ2FpbnN0LCBhbmRwIHRoZSBnaXZlbiByZWxheSBjaGFpbiBzbG90LgBRASBUaGlzIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvZ2ljIHRoZSBydW50aW1lIHVzZXMgd2hlbiB2YWxpZGF0aW5nIGJsb2NrcyB0bzggYXZvaWQgaXNzdWVzLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgZW1wdHksIGkuZS4gYGluY2x1ZGVkX2hhc2ggPT0gYXRgLCB3aGVyZSBhdCBpcyB0aGUgYmxvY2thASB3aG9zZSBzdGF0ZSB3ZSBhcmUgcXVlcnlpbmcgYWdhaW5zdCwgdGhpcyBtdXN0IGFsd2F5cyByZXR1cm4gYHRydWVgIGFzIGxvbmcgYXMgdGhlIHNsb3S8IGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlIGluY2x1ZGVkIGJsb2NrIGl0c2VsZi4ANDUBIFRoaXMgcnVudGltZSBBUEkgaXMgdXNlZCB0byBpbmZvcm0gcG90ZW50aWFsIGJsb2NrIGF1dGhvcnMgd2hldGhlciB0aGV5IHdpbGwlASBoYXZlIHRoZSByaWdodCB0byBhdXRob3IgYXQgYSBzbG90LCBhc3N1bWluZyB0aGV5IGhhdmUgY2xhaW1lZCB0aGUgc2xvdC4AdQEgSW4gcGFydGljdWxhciwgdGhpcyBBUEkgYWxsb3dzIEF1cmEtYmFzZWQgcGFyYWNoYWlucyB0byByZWd1bGF0ZSB0aGVpciAidW5pbmNsdWRlZCBzZWdtZW50IixtASB3aGljaCBpcyB0aGUgc2VjdGlvbiBvZiB0aGUgaGVhZCBvZiB0aGUgY2hhaW4gd2hpY2ggaGFzIG5vdCB5ZXQgYmVlbiBtYWRlIGF2YWlsYWJsZSBpbiB0aGU0IHJlbGF5IGNoYWluLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgc2hvcnQsIEF1cmEgY2hhaW5zIHdpbGwgYWxsb3cgYXV0aG9ycyB0byBjcmVhdGUgbXVsdGlwbGVdASBibG9ja3MgcGVyIHNsb3QgaW4gb3JkZXIgdG8gYnVpbGQgYSBiYWNrbG9nLiBXaGVuIGl0IGlzIHNhdHVyYXRlZCwgdGhpcyBBUEkgd2lsbCBsaW1pdKggdGhlIGFtb3VudCBvZiBibG9ja3MgdGhhdCBjYW4gYmUgY3JlYXRlZC4AJCBDaGFuZ2VzOpEBIC0gVmVyc2lvbiAyOiBVcGRhdGUgdG8gYGNhbl9idWlsZF91cG9uYCB0byB0YWtlIGEgcmVsYXkgY2hhaW4gYFNsb3RgIGluc3RlYWQgb2YgYSBwYXJhY2hhaW4gYFNsb3RgLggAEENvcmUMHHZlcnNpb24ARQcEkCBSZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgA0ZXhlY3V0ZV9ibG9jawQUYmxvY2vxCxAEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay4AQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlclz9CwRBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuAAQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LhQAIE1ldGFkYXRhDCBtZXRhZGF0YQABDASMIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGEgcnVudGltZS4ATG1ldGFkYXRhX2F0X3ZlcnNpb24EHHZlcnNpb244BQwQpCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBhdCBhIGdpdmVuIHZlcnNpb24uAAUBIElmIHRoZSBnaXZlbiBgdmVyc2lvbmAgaXNuJ3Qgc3VwcG9ydGVkLCB0aGlzIHdpbGwgcmV0dXJuIGBOb25lYC51ASBVc2UgW2BTZWxmOjptZXRhZGF0YV92ZXJzaW9uc2BdIHRvIGZpbmQgb3V0IGFib3V0IHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgBEbWV0YWRhdGFfdmVyc2lvbnMAyQMMpCBSZXR1cm5zIHRoZSBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbnMuAMAgVGhpcyBjYW4gYmUgdXNlZCB0byBjYWxsIGBtZXRhZGF0YV9hdF92ZXJzaW9uYC4ABAEBIFRoZSBgTWV0YWRhdGFgIGFwaSB0cmFpdCB0aGF0IHJldHVybnMgbWV0YWRhdGEgZm9yIHRoZSBydW50aW1lLggATFJ1bnRpbWVWaWV3RnVuY3Rpb24EVGV4ZWN1dGVfdmlld19mdW5jdGlvbgggcXVlcnlfaWQJDBRpbnB1dBgNDAR8IEV4ZWN1dGUgYSB2aWV3IGZ1bmN0aW9uIHF1ZXJ5LgAEpCBSdW50aW1lIEFQSSBmb3IgZXhlY3V0aW5nIHZpZXcgZnVuY3Rpb25zBAAwQmxvY2tCdWlsZGVyEDxhcHBseV9leHRyaW5zaWMEJGV4dHJpbnNpY2EHFQwQbCBBcHBseSB0aGUgZ2l2ZW4gZXh0cmluc2ljLgA5ASBSZXR1cm5zIGFuIGluY2x1c2lvbiBvdXRjb21lIHdoaWNoIHNwZWNpZmllcyBpZiB0aGlzIGV4dHJpbnNpYyBpcyBpbmNsdWRlZCBpbkwgdGhpcyBibG9jayBvciBub3QuADhmaW5hbGl6ZV9ibG9jawBcBGggRmluaXNoIHRoZSBjdXJyZW50IGJsb2NrLgBMaW5oZXJlbnRfZXh0cmluc2ljcwQgaW5oZXJlbnQlDHEHBD0BIEdlbmVyYXRlIGluaGVyZW50IGV4dHJpbnNpY3MuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgA8Y2hlY2tfaW5oZXJlbnRzCBRibG9ja/ELEGRhdGElDDUMBFUBIENoZWNrIHRoYXQgdGhlIGluaGVyZW50cyBhcmUgdmFsaWQuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgAEcQEgVGhlIGBCbG9ja0J1aWxkZXJgIGFwaSB0cmFpdCB0aGF0IHByb3ZpZGVzIHRoZSByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBidWlsZGluZyBhIGJsb2NrLhgAWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2U5DAh0eGEHKGJsb2NrX2hhc2g8PQwkaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgAETQEgVGhlIGBUYWdnZWRUcmFuc2FjdGlvblF1ZXVlYCBhcGkgdHJhaXQgZm9yIGludGVyZmVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIHF1ZXVlLgwARE9mZmNoYWluV29ya2VyQXBpBDxvZmZjaGFpbl93b3JrZXIEGGhlYWRlclwQBMggU3RhcnRzIHRoZSBvZmYtY2hhaW4gdGFzayBmb3IgZ2l2ZW4gYmxvY2sgaGVhZGVyLgAEZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS4IACxTZXNzaW9uS2V5cwhUZ2VuZXJhdGVfc2Vzc2lvbl9rZXlzCBRvd25lchgQc2VlZDUFRQwcFQEgR2VuZXJhdGUgYSBzZXQgb2Ygc2Vzc2lvbiBrZXlzIHdpdGggb3B0aW9uYWxseSB1c2luZyB0aGUgZ2l2ZW4gc2VlZC4JASBUaGUga2V5cyBzaG91bGQgYmUgc3RvcmVkIHdpdGhpbiB0aGUga2V5c3RvcmUgZXhwb3NlZCB2aWEgcnVudGltZTwgZXh0ZXJuYWxpdGllcy4AsCBUaGUgc2VlZCBuZWVkcyB0byBiZSBhIHZhbGlkIGB1dGY4YCBzdHJpbmcuANAgUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIFNDQUxFIGVuY29kZWQgcHVibGljIGtleXMuAExkZWNvZGVfc2Vzc2lvbl9rZXlzBBxlbmNvZGVkGEkMDJggRGVjb2RlIHRoZSBnaXZlbiBwdWJsaWMgc2Vzc2lvbiBrZXlzLgDcIFJldHVybnMgdGhlIGxpc3Qgb2YgcHVibGljIHJhdyBwdWJsaWMga2V5cyArIGtleSB0eXBlLgAEaCBTZXNzaW9uIGtleXMgcnVudGltZSBhcGkuCAA8QWNjb3VudE5vbmNlQXBpBDRhY2NvdW50X25vbmNlBBxhY2NvdW50BDgEwCBHZXQgY3VycmVudCBhY2NvdW50IG5vbmNlIG9mIGdpdmVuIGBBY2NvdW50SWRgLgAEgCBUaGUgQVBJIHRvIHF1ZXJ5IGFjY291bnQgbm9uY2UuBABUVHJhbnNhY3Rpb25QYXltZW50QXBpEChxdWVyeV9pbmZvCAx1eHRhBwxsZW44VQwAAERxdWVyeV9mZWVfZGV0YWlscwgMdXh0YQcMbGVuOFkMAABMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h01QHEAABMcXVlcnlfbGVuZ3RoX3RvX2ZlZQQYbGVuZ3RoOMQAAAAQAGRUcmFuc2FjdGlvblBheW1lbnRDYWxsQXBpEDxxdWVyeV9jYWxsX2luZm8IEGNhbGwgDGxlbjhVDARJASBRdWVyeSBpbmZvcm1hdGlvbiBvZiBhIGRpc3BhdGNoIGNsYXNzLCB3ZWlnaHQsIGFuZCBmZWUgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC4AWHF1ZXJ5X2NhbGxfZmVlX2RldGFpbHMIEGNhbGwgDGxlbjhZDAS0IFF1ZXJ5IGZlZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gZW5jb2RlZCBgQ2FsbGAuAExxdWVyeV93ZWlnaHRfdG9fZmVlBBh3ZWlnaHTVAcQEAQEgUXVlcnkgdGhlIG91dHB1dCBvZiB0aGUgY3VycmVudCBgV2VpZ2h0VG9GZWVgIGdpdmVuIHNvbWUgaW5wdXQuAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGg4xAQBASBRdWVyeSB0aGUgb3V0cHV0IG9mIHRoZSBjdXJyZW50IGBMZW5ndGhUb0ZlZWAgZ2l2ZW4gc29tZSBpbnB1dC4AAAwANFhjbVBheW1lbnRBcGkQfHF1ZXJ5X2FjY2VwdGFibGVfcGF5bWVudF9hc3NldHMELHhjbV92ZXJzaW9uOGUMFLQgUmV0dXJucyBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwYXltZW50IGFzc2V0cy4AMCAjIEFyZ3VtZW50cwBoICogYHhjbV92ZXJzaW9uYDogVmVyc2lvbi4AQHF1ZXJ5X3hjbV93ZWlnaHQEHG1lc3NhZ2WVAXEMFKggUmV0dXJucyBhIHdlaWdodCBuZWVkZWQgdG8gZXhlY3V0ZSBhIFhDTS4AMCAjIEFyZ3VtZW50cwB0ICogYG1lc3NhZ2VgOiBgVmVyc2lvbmVkWGNtYC4AZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodNUBFGFzc2V0EQN1DBjoIENvbnZlcnRzIGEgd2VpZ2h0IGludG8gYSBmZWUgZm9yIHRoZSBzcGVjaWZpZWQgYEFzc2V0SWRgLgAwICMgQXJndW1lbnRzAIggKiBgd2VpZ2h0YDogY29udmVydGlibGUgYFdlaWdodGAufCAqIGBhc3NldGA6IGBWZXJzaW9uZWRBc3NldElkYC4ATHF1ZXJ5X2RlbGl2ZXJ5X2ZlZXMMLGRlc3RpbmF0aW9uSQEcbWVzc2FnZZUBIGFzc2V0X2lkEQN5DChgIFF1ZXJ5IGRlbGl2ZXJ5IGZlZXMgVjIuAB0BIEdldCBkZWxpdmVyeSBmZWVzIGZvciBzZW5kaW5nIGEgc3BlY2lmaWMgYG1lc3NhZ2VgIHRvIGEgYGRlc3RpbmF0aW9uYC70IFRoZXNlIGFsd2F5cyBjb21lIGluIGEgc3BlY2lmaWMgYXNzZXQsIGRlZmluZWQgYnkgdGhlIGNoYWluLgAwICMgQXJndW1lbnRzgQEgKiBgbWVzc2FnZWA6IFRoZSBtZXNzYWdlIHRoYXQnbGwgYmUgc2VudCwgbmVjZXNzYXJ5IGJlY2F1c2UgbW9zdCBkZWxpdmVyeSBmZWVzIGFyZSBiYXNlZCBvbiB0aGVcICAgc2l6ZSBvZiB0aGUgbWVzc2FnZS5hASAqIGBkZXN0aW5hdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0byBzZW5kIHRoZSBtZXNzYWdlIHRvLiBEaWZmZXJlbnQgZGVzdGluYXRpb25zIG1heSB1c2XAICAgZGlmZmVyZW50IHNlbmRlcnMgdGhhdCBjaGFyZ2UgZGlmZmVyZW50IGZlZXMuACxwIEEgdHJhaXQgb2YgWENNIHBheW1lbnQgQVBJLgCoIEFQSSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciBvYnRhaW5pbmc6AMQgKiB0aGUgd2VpZ2h0IHJlcXVpcmVkIHRvIGV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UsBQEgKiBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBgQXNzZXRJZGBzIGZvciBtZXNzYWdlIGV4ZWN1dGlvbiBwYXltZW50LAEBICogdGhlIGNvc3Qgb2YgdGhlIHdlaWdodCBpbiB0aGUgc3BlY2lmaWVkIGFjY2VwdGFibGUgYEFzc2V0SWRgLqAgKiB0aGUgZmVlcyBmb3IgYW4gWENNIG1lc3NhZ2UgZGVsaXZlcnkuAPAgVG8gZGV0ZXJtaW5lIHRoZSBleGVjdXRpb24gd2VpZ2h0IG9mIHRoZSBjYWxscyByZXF1aXJlZCBmb3J1ASBbYHhjbTo6bGF0ZXN0OjpJbnN0cnVjdGlvbjo6VHJhbnNhY3RgXSBpbnN0cnVjdGlvbiwgYFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGlgIGNhbiBiZSB1c2VkLggAJERyeVJ1bkFwaQgwZHJ5X3J1bl9jYWxsDBhvcmlnaW4xAxBjYWxsIExyZXN1bHRfeGNtc192ZXJzaW9uOH0MBEQgRHJ5IHJ1biBjYWxsIFYyLgAsZHJ5X3J1bl94Y20IPG9yaWdpbl9sb2NhdGlvbkkBDHhjbd0CqQwEUCBEcnkgcnVuIFhDTSBwcm9ncmFtACSxASBBUEkgZm9yIGRyeS1ydW5uaW5nIGV4dHJpbnNpY3MgYW5kIFhDTSBwcm9ncmFtcyB0byBnZXQgdGhlIHByb2dyYW1zIHRoYXQgbmVlZCB0byBiZSBwYXNzZWQgdG8gdGhlIGZlZXMgQVBJLgCBASBBbGwgY2FsbHMgcmV0dXJuIGEgdmVjdG9yIG9mIHR1cGxlcyAobG9jYXRpb24sIHhjbSkgd2hlcmUgZWFjaCAieGNtIiBpcyBleGVjdXRlZCBpbiAibG9jYXRpb24iLuQgSWYgdGhlcmUncyBsb2NhbCBleGVjdXRpb24sIHRoZSBsb2NhdGlvbiB3aWxsIGJlICJIZXJlIi4dASBUaGlzIHZlY3RvciBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgYm90aCBleGVjdXRpb24gYW5kIGRlbGl2ZXJ5IGZlZXMuAJkBIENhbGxzIG9yIFhDTXMgbWlnaHQgZmFpbCB3aGVuIGV4ZWN1dGVkLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgcmVzdWx0IG9mIHRoZXNlIGNhbGxzIHdpbGwgYmUgYW4gYEVycmAuZQEgSW4gdGhvc2UgY2FzZXMsIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIGEgdmFsaWQgcmVzdWx0LCB3aXRoIHRoZSBleGVjdXRpb24gZXJyb3IgaW5zaWRlIGl0LmUBIFRoZSBvbmx5IHJlYXNvbnMgd2h5IHRoZXNlIGNhbGxzIG1pZ2h0IHJldHVybiBhbiBlcnJvciBhcmUgbGlzdGVkIGluIHRoZSBbYEVycm9yYF0gZW51bS4IAFBMb2NhdGlvblRvQWNjb3VudEFwaQRAY29udmVydF9sb2NhdGlvbgQgbG9jYXRpb25JAbEMBJAgQ29udmVydHMgYExvY2F0aW9uYCB0byBgQWNjb3VudElkYC4ABA0BIEFQSSBmb3IgdXNlZnVsIGNvbnZlcnNpb25zIGJldHdlZW4gWENNIGBMb2NhdGlvbmAgYW5kIGBBY2NvdW50SWRgLgQAKE1vYlJ1bGVBcGkEIHZvdGVkX29uCBR2b3RlcggkZG9uZV9vbmx5yMkDDFkBIFJldHVybnMgYSBsaXN0IG9mIGNhc2VzIHdoZXJlIHRoZSB1c2VyIGhhcyBhIHZvdGUgc3RvcmVkIG9uIGNoYWluLiBJZiB0aGUgYGRvbmVfb25seWBVASBmbGFnIGlzIHNldCwgb25seSBjYXNlcyB0aGF0IGFyZSBkb25lIGFuZCByZWFkeSB0byBiZSBjbGFpbWVkIHdpbGwgYmUgcmV0dXJuZWQuIFRoaXMFASBmdW5jdGlvbiBkb2VzIG5vdCB0YWtlIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdm90ZSBpbnRvIGFjY291bnQuAAS0IFRoZSBBUEkgdG8gcXVlcnkgdGhlIHJld2FyZHMgZm9yIG1vYiBjcmVkaXQuBAA0UHJvb2ZPZklua0FwaQREY2FuZGlkYWN5X2RlcG9zaXQAxATUIFJldHVybnMgdGhlIGRlcG9zaXQgbmVjZXNzYXJ5IHRvIGJlY29tZSBhIGNhbmRpZGF0ZS4ABOwgVGhlIEFQSSB0byBxdWVyeSB0aGUgZGVwb3NpdCBmb3IgYSBwcm9vZiBvZiBpbmsgY2FuZGlkYWN5LgQANFBhbGxldEdhbWVBcGkEMHBsYXlfZGVwb3NpdADEBLggUmV0dXJucyB0aGUgZGVwb3NpdCBuZWNlc3NhcnkgdG8gcGxheSBhIGdhbWUuAASsIFRoZSBBUEkgdG8gcXVlcnkgdGhlIGRlcG9zaXQgZm9yIGdhbWVwbGF5LgQAUENvbGxlY3RDb2xsYXRpb25JbmZvBFhjb2xsZWN0X2NvbGxhdGlvbl9pbmZvBBhoZWFkZXJcuQwQnCBDb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgD0IFRoZSBnaXZlbiBgaGVhZGVyYCBpcyB0aGUgaGVhZGVyIG9mIHRoZSBidWlsdCBibG9jayBmb3IgdGhhdKggd2UgYXJlIGNvbGxlY3RpbmcgdGhlIGNvbGxhdGlvbiBpbmZvIGZvci4AFNggUnVudGltZSBhcGkgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbGxhdGlvbi4ARCBWZXJzaW9uIGhpc3Rvcnk6AQEgLSBWZXJzaW9uIDI6IENoYW5nZWQgW2BTZWxmOjpjb2xsZWN0X2NvbGxhdGlvbl9pbmZvYF0gc2lnbmF0dXJlNQEgLSBWZXJzaW9uIDM6IFNpZ25hbHMgdG8gdGhlIG5vZGUgdG8gdXNlIHZlcnNpb24gMSBvZiBbYFBhcmFjaGFpbkJsb2NrRGF0YWBdLgwAOEdlbmVzaXNCdWlsZGVyDCxidWlsZF9zdGF0ZQQQanNvbhjFDChlASBCdWlsZCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gYSBKU09OIGJsb2Igbm90IHVzaW5nIGFueSBkZWZhdWx0cyBhbmQgc3RvcmUgaXQgaW4gdGhlJCBzdG9yYWdlLgApASBJbiB0aGUgY2FzZSBvZiBhIEZSQU1FLWJhc2VkIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gZGVzZXJpYWxpemVzIHRoZSBmdWxsVQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIHRoZSBnaXZlbiBKU09OIGJsb2IgYW5kIHB1dHMgaXQgaW50byB0aGUgc3RvcmFnZS4gSWYgdGhlVQEgcHJvdmlkZWQgSlNPTiBibG9iIGlzIGluY29ycmVjdCBvciBpbmNvbXBsZXRlIG9yIHRoZSBkZXNlcmlhbGl6YXRpb24gZmFpbHMsIGFuIGVycm9yNCBpcyByZXR1cm5lZC4AXQEgUGxlYXNlIG5vdGUgdGhhdCBwcm92aWRlZCBKU09OIGJsb2IgbXVzdCBjb250YWluIGFsbCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZpZWxkcywgbm9cIGRlZmF1bHRzIHdpbGwgYmUgdXNlZC4AKGdldF9wcmVzZXQECGlkyQw1BThhASBSZXR1cm5zIGEgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiBgUnVudGltZUdlbmVzaXNDb25maWdgIGlkZW50aWZpZWQgYnkYIGBpZGAuAFUBIElmIGBpZGAgaXMgYE5vbmVgIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVmYXVsdEkBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2Agc3RydWN0IG9mIHRoZSBydW50aW1lLiBJbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgZGVmYXVsdGAgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYC4AIQEgT3RoZXJ3aXNlIGZ1bmN0aW9uIHJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiwgbmFtZWRRASBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldCBpZGVudGlmaWVkIGJ5IGBpZGAsIG9yIGBOb25lYCBpZiBzdWNoIHByZXNldCBkb2VzIG5vdGEBIGV4aXN0LiBSZXR1cm5lZCBgVmVjPHU4PmAgY29udGFpbnMgYnl0ZXMgb2YgSlNPTiBibG9iIChwYXRjaCkgd2hpY2ggY29tcHJpc2VzIGEgbGlzdCBvZk0BIChwb3RlbnRpYWxseSBuZXN0ZWQpIGtleS12YWx1ZSBwYWlycyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgY3VzdG9taXppbmcgdGhlIGRlZmF1bHRlASBydW50aW1lIGdlbmVzaXMgY29uZmlnLiBUaGUgcGF0Y2ggc2hhbGwgYmUgbWVyZ2VkIChyZmM3Mzg2KSB3aXRoIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uYQEgb2YgdGhlIGRlZmF1bHQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIGdlbmVzaXMgY29uZmlnIHRoYXQgY2FuhCBiZSB1c2VkIGluIGBidWlsZF9zdGF0ZWAgbWV0aG9kLgAwcHJlc2V0X25hbWVzAM0MEFEBIFJldHVybnMgYSBsaXN0IG9mIGlkZW50aWZpZXJzIGZvciBhdmFpbGFibGUgYnVpbHRpbiBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldHMuAGEBIFRoZSBwcmVzZXRzIGZyb20gdGhlIGxpc3QgY2FuIGJlIHF1ZXJpZWQgd2l0aCBbYEdlbmVzaXNCdWlsZGVyOjpnZXRfcHJlc2V0YF0gbWV0aG9kLiBJZgEBIG5vIG5hbWVkIHByZXNldHMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lIHRoZSBsaXN0IGlzIGVtcHR5LgAE8CBBUEkgdG8gaW50ZXJhY3Qgd2l0aCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZvciB0aGUgcnVudGltZQQAIP0F0QwA";
|
|
2
|
+
|
|
3
|
+
export { binMeta as default };
|