@paraspell/descriptors 14.0.0 → 14.1.0-rc.1
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/dist/ahp.d.ts +42 -18
- package/dist/ahp_metadata-zM1M2eiK.js +3 -0
- package/dist/bridgeHub.d.ts +29 -5
- package/dist/{bridgeHub_metadata-Li64-Pg1.js → bridgeHub_metadata-DyoXb_6R.js} +1 -1
- package/dist/common-types.d.ts +407 -32
- package/dist/hydration.d.ts +38 -14
- package/dist/hydration_metadata-DYhdNf0W.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +20 -19
- package/dist/metadataTypes-CUg9Gk37.js +3 -0
- package/dist/metadataTypes.d.ts +1 -1
- package/dist/moonbeam.d.ts +28 -4
- package/package.json +3 -3
- package/dist/ahp_metadata-CN_MTTeF.js +0 -3
- package/dist/hydration_metadata-0UTkhPaM.js +0 -3
- package/dist/metadataTypes-uOlhw_Gc.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const binMeta = "bWV0YRAlEAAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAg8aHlkcmFkeF9ydW50aW1lLFJ1bnRpbWVDYWxsAAENARhTeXN0ZW0EABABrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3lzdGVtLCBSdW50aW1lPgABACRUaW1lc3RhbXAEADABuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgADACBCYWxhbmNlcwQAOAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ABwBcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQEAFAB8QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlUcmFuc2FjdGlvblBheW1lbnQsIFJ1bnRpbWU+AMsAIFRyZWFzdXJ5BABoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgALABxVdGlsaXR5BAB4AbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFV0aWxpdHksIFJ1bnRpbWU+AA0AIFByZWltYWdlBADoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByZWltYWdlLCBSdW50aW1lPgAPACBJZGVudGl0eQQA8AG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AEQAkRGVtb2NyYWN5BAClAQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEZW1vY3JhY3ksIFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAyQEB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGVjaG5pY2FsQ29tbWl0dGVlLCBSdW50aW1lPgAZABRQcm94eQQA0QEBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+AB0AIE11bHRpc2lnBADdAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aXNpZywgUnVudGltZT4AHwAcVW5pcXVlcwQA6QEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VW5pcXVlcywgUnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBAAFAgHdAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGF0ZVRyaWVNaWdyYXRpb24sIFJ1bnRpbWU+ACMAQENvbnZpY3Rpb25Wb3RpbmcEAB0CAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbnZpY3Rpb25Wb3RpbmcsIFJ1bnRpbWU+ACQAJFJlZmVyZW5kYQQAMQIBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVmZXJlbmRhLCBSdW50aW1lPgAlACRXaGl0ZWxpc3QEADkCAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFdoaXRlbGlzdCwgUnVudGltZT4AJwAoRGlzcGF0Y2hlcgQAPQIBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RGlzcGF0Y2hlciwgUnVudGltZT4AKAA0QXNzZXRSZWdpc3RyeQQAQQIByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSZWdpc3RyeSwgUnVudGltZT4AMwAYQ2xhaW1zBABlAgGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDbGFpbXMsIFJ1bnRpbWU+ADUAOEdlbmVzaXNIaXN0b3J5BABtAgHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHZW5lc2lzSGlzdG9yeSwgUnVudGltZT4ANwAgT21uaXBvb2wEAHECAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sLCBSdW50aW1lPgA7AEBUcmFuc2FjdGlvblBhdXNlBACJAgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUcmFuc2FjdGlvblBhdXNlLCBSdW50aW1lPgA8ABhEdXN0ZXIEAI0CAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER1c3RlciwgUnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAkQIB4QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T21uaXBvb2xXYXJlaG91c2VMTSwgUnVudGltZT4APgBcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcEAJUCAfEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgA/AAxPVEMEAMkCAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9UQywgUnVudGltZT4AQAA4Q2lyY3VpdEJyZWFrZXIEAM0CAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENpcmN1aXRCcmVha2VyLCBSdW50aW1lPgBBABhSb3V0ZXIEAOECAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJvdXRlciwgUnVudGltZT4AQwAsRHluYW1pY0ZlZXMEAPkCAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER5bmFtaWNGZWVzLCBSdW50aW1lPgBEABxTdGFraW5nBAAFAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFraW5nLCBSdW50aW1lPgBFAChTdGFibGVzd2FwBAAJAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFibGVzd2FwLCBSdW50aW1lPgBGABRCb25kcwQALQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Qm9uZHMsIFJ1bnRpbWU+AEcAOE90Y1NldHRsZW1lbnRzBAAxAwHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPdGNTZXR0bGVtZW50cywgUnVudGltZT4ASAAMTEJQBAA1AwGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxMQlAsIFJ1bnRpbWU+AEkADFhZSwQAQQMBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLLCBSdW50aW1lPgBKACRSZWZlcnJhbHMEAEUDAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVycmFscywgUnVudGltZT4ASwAsTGlxdWlkYXRpb24EAFUDAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPExpcXVpZGF0aW9uLCBSdW50aW1lPgBMAAxIU00EAF0DAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhTTSwgUnVudGltZT4AUgAYU2lnbmV0BAB5AwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTaWduZXQsIFJ1bnRpbWU+AFQAMEV0aERpc3BlbnNlcgQAuQMBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RXRoRGlzcGVuc2VyLCBSdW50aW1lPgBVABxHaWdhSGR4BADBAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHaWdhSGR4LCBSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAxQMBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8R2lnYUhkeFJld2FyZHMsIFJ1bnRpbWU+AFcAGFRva2VucwQAyQMBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VG9rZW5zLCBSdW50aW1lPgBNAChDdXJyZW5jaWVzBADNAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdXJyZW5jaWVzLCBSdW50aW1lPgBPABxWZXN0aW5nBADVAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxWZXN0aW5nLCBSdW50aW1lPgBRAAxFVk0EAOEDAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVWTSwgUnVudGltZT4AWgAgRXRoZXJldW0EAP0DAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEV0aGVyZXVtLCBSdW50aW1lPgBcACxFVk1BY2NvdW50cwQALQQBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RVZNQWNjb3VudHMsIFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQAMQQB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgBfADhYWUtXYXJlaG91c2VMTQQAQQQBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLV2FyZWhvdXNlTE0sIFJ1bnRpbWU+AGAAOFJlbGF5Q2hhaW5JbmZvBABFBAHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWxheUNoYWluSW5mbywgUnVudGltZT4AyQAMRENBBABJBAGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEQ0EsIFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQAVQQBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NoZWR1bGVyLCBSdW50aW1lPgAFADxQYXJhY2hhaW5TeXN0ZW0EAFkEAdEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFjaGFpblN5c3RlbSwgUnVudGltZT4AZwA0UGFyYWNoYWluSW5mbwQApQQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluSW5mbywgUnVudGltZT4AaQAsUG9sa2Fkb3RYY20EAKkEAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgBrAChDdW11bHVzWGNtBABpBgG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgBtADBNZXNzYWdlUXVldWUEAG0GAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AcgBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEAHUGAeUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tNaWdyYXRpb25zLCBSdW50aW1lPgB0ABxPcm1sWGNtBACVBgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPcm1sWGNtLCBSdW50aW1lPgCHABxYVG9rZW5zBACZBgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxYVG9rZW5zLCBSdW50aW1lPgCJAERDb2xsYXRvclNlbGVjdGlvbgQApQYB2QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29sbGF0b3JTZWxlY3Rpb24sIFJ1bnRpbWU+AKMAHFNlc3Npb24EAKkGAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNlc3Npb24sIFJ1bnRpbWU+AKUAJEVtYU9yYWNsZQQAtQYBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RW1hT3JhY2xlLCBSdW50aW1lPgDKACRCcm9hZGNhc3QEALkGAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJyb2FkY2FzdCwgUnVudGltZT4AzAAwRmVlUHJvY2Vzc29yBAC9BgHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxGZWVQcm9jZXNzb3IsIFJ1bnRpbWU+AM8AABAMMGZyYW1lX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABLBhyZW1hcmsEARhyZW1hcmsUARxWZWM8dTg+AAAMaE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsuAIhDYW4gYmUgZXhlY3V0ZWQgYnkgZXZlcnkgYG9yaWdpbmAuOHNldF9oZWFwX3BhZ2VzBAEUcGFnZXMYAQx1NjQAAQT4U2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEARBjb2RlFAEcVmVjPHU4PgACBGRTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUuXHNldF9jb2RlX3dpdGhvdXRfY2hlY2tzBAEQY29kZRQBHFZlYzx1OD4AAxAZAVNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZSB3aXRob3V0IGRvaW5nIGFueSBjaGVja3Mgb2YgdGhlIGdpdmVuIGBjb2RlYC4AUQFOb3RlIHRoYXQgcnVudGltZSB1cGdyYWRlcyB3aWxsIG5vdCBydW4gaWYgdGhpcyBpcyBjYWxsZWQgd2l0aCBhIG5vdC1pbmNyZWFzaW5nIHNwZWMgdmVyc2lvbiEsc2V0X3N0b3JhZ2UEARRpdGVtcxwBNFZlYzxLZXlWYWx1ZT4ABARoU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBAEQa2V5cyQBIFZlYzxLZXk+AAUEdEtpbGwgc29tZSBpdGVtcyBmcm9tIHN0b3JhZ2UuLGtpbGxfcHJlZml4CAEYcHJlZml4FAEMS2V5AAEcc3Via2V5cygBDHUzMgAGEBEBS2lsbCBhbGwgc3RvcmFnZSBpdGVtcyB3aXRoIGEga2V5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHByZWZpeC4AOQEqKk5PVEU6KiogV2UgcmVseSBvbiB0aGUgUm9vdCBvcmlnaW4gdG8gcHJvdmlkZSB1cyB0aGUgbnVtYmVyIG9mIHN1YmtleXMgdW5kZXI9AXRoZSBwcmVmaXggd2UgYXJlIHJlbW92aW5nIHRvIGFjY3VyYXRlbHkgY2FsY3VsYXRlIHRoZSB3ZWlnaHQgb2YgdGhpcyBmdW5jdGlvbi5EcmVtYXJrX3dpdGhfZXZlbnQEARhyZW1hcmsUARxWZWM8dTg+AAcEpE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsgYW5kIGVtaXQgZXZlbnQuRGF1dGhvcml6ZV91cGdyYWRlBAEkY29kZV9oYXNoLAEcVDo6SGFzaAAJEGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi6AYXV0aG9yaXplX3VwZ3JhZGVfd2l0aG91dF9jaGVja3MEASRjb2RlX2hhc2gsARxUOjpIYXNoAAogYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgBdAVdBUk5JTkc6IFRoaXMgYXV0aG9yaXplcyBhbiB1cGdyYWRlIHRoYXQgd2lsbCB0YWtlIHBsYWNlIHdpdGhvdXQgYW55IHNhZmV0eSBjaGVja3MsIGZvclkBZXhhbXBsZSB0aGF0IHRoZSBzcGVjIG5hbWUgcmVtYWlucyB0aGUgc2FtZSBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaW5jcmVhc2VzLiBOb3TwcmVjb21tZW5kZWQgZm9yIG5vcm1hbCB1c2UuIFVzZSBgYXV0aG9yaXplX3VwZ3JhZGVgIGluc3RlYWQuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4uYGFwcGx5X2F1dGhvcml6ZWRfdXBncmFkZQQBEGNvZGUUARxWZWM8dTg+AAskVQFQcm92aWRlIHRoZSBwcmVpbWFnZSAocnVudGltZSBiaW5hcnkpIGBjb2RlYCBmb3IgYW4gdXBncmFkZSB0aGF0IGhhcyBiZWVuIGF1dGhvcml6ZWQuAEkBSWYgdGhlIGF1dGhvcml6YXRpb24gcmVxdWlyZWQgYSB2ZXJzaW9uIGNoZWNrLCB0aGlzIGNhbGwgd2lsbCBlbnN1cmUgdGhlIHNwZWMgbmFtZehyZW1haW5zIHVuY2hhbmdlZCBhbmQgdGhhdCB0aGUgc3BlYyB2ZXJzaW9uIGhhcyBpbmNyZWFzZWQuAFkBRGVwZW5kaW5nIG9uIHRoZSBydW50aW1lJ3MgYE9uU2V0Q29kZWAgY29uZmlndXJhdGlvbiwgdGhpcyBmdW5jdGlvbiBtYXkgZGlyZWN0bHkgYXBwbHkRAXRoZSBuZXcgYGNvZGVgIGluIHRoZSBzYW1lIGJsb2NrIG9yIGF0dGVtcHQgdG8gc2NoZWR1bGUgdGhlIHVwZ3JhZGUuAGBBbGwgb3JpZ2lucyBhcmUgYWxsb3dlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuFAAAAggAGAAABQYAHAAAAiAAIAAABAgUFAAkAAACFAAoAAAFBQAsCDxwcmltaXRpdmVfdHlwZXMQSDI1NgAABAAEASBbdTg7IDMyXQAAMAxAcGFsbGV0X3RpbWVzdGFtcBhwYWxsZXQQQ2FsbAQEVAABBAxzZXQEAQxub3c0ASRUOjpNb21lbnQAAExUU2V0IHRoZSBjdXJyZW50IHRpbWUuAFUBVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtRwaGFzZSwgaWYgdGhpcyBjYWxsIGhhc24ndCBiZWVuIGludm9rZWQgYnkgdGhhdCB0aW1lLgBBAVRoZSB0aW1lc3RhbXAgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lIGJ5IHRoZSBhbW91bnQgc3BlY2lmaWVkIGJ5aFtgQ29uZmlnOjpNaW5pbXVtUGVyaW9kYF0uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFEBVGhpcyBkaXNwYXRjaCBjbGFzcyBpcyBfTWFuZGF0b3J5XyB0byBlbnN1cmUgaXQgZ2V0cyBleGVjdXRlZCBpbiB0aGUgYmxvY2suIEJlIGF3YXJlUQF0aGF0IGNoYW5naW5nIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgY2FsbCBjb3VsZCByZXN1bHQgZXhoYXVzdGluZyB0aGUgcmVzb3VyY2VzIGluIGGEYmxvY2sgdG8gZXhlY3V0ZSBhbnkgb3RoZXIgY2FsbHMuADQjIyBDb21wbGV4aXR5MQEtIGBPKDEpYCAoTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBgT25UaW1lc3RhbXBTZXRgIG11c3QgYWxzbyBiZSBgTygxKWApVQEtIDEgc3RvcmFnZSByZWFkIGFuZCAxIHN0b3JhZ2UgbXV0YXRpb24gKGNvZGVjIGBPKDEpYCBiZWNhdXNlIG9mIGBEaWRVcGRhdGU6OnRha2VgIGluQCAgYG9uX2ZpbmFsaXplYCnULSAxIGV2ZW50IGhhbmRsZXIgYG9uX3RpbWVzdGFtcF9zZXRgLiBNdXN0IGJlIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuNAAABhgAOAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBBDYWxsCARUAARJAAEkUHRyYW5zZmVyX2FsbG93X2RlYXRoCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWU8AShUOjpCYWxhbmNlAAAc1FRyYW5zZmVyIHNvbWUgbGlxdWlkIGZyZWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQuADUBYHRyYW5zZmVyX2FsbG93X2RlYXRoYCB3aWxsIHNldCB0aGUgYEZyZWVCYWxhbmNlYCBvZiB0aGUgc2VuZGVyIGFuZCByZWNlaXZlci4RAUlmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0sG9mIHRoZSB0cmFuc2ZlciwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIHRyYW5zYWN0b3IuOGZvcmNlX3RyYW5zZmVyDAEYc291cmNlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZTwBKFQ6OkJhbGFuY2UAAghhAUV4YWN0bHkgYXMgYHRyYW5zZmVyX2FsbG93X2RlYXRoYCwgZXhjZXB0IHRoZSBvcmlnaW4gbXVzdCBiZSByb290IGFuZCB0aGUgc291cmNlIGFjY291bnREbWF5IGJlIHNwZWNpZmllZC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlPAEoVDo6QmFsYW5jZQADGFkBU2FtZSBhcyB0aGUgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Rga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuAOg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGluc3RlYWQuAPBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF06IHN0cnVjdC5QYWxsZXQuaHRtbCNtZXRob2QudHJhbnNmZXIwdHJhbnNmZXJfYWxsCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZUQBEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRAAShUOjpCYWxhbmNlAAUMsFVucmVzZXJ2ZSBzb21lIGJhbGFuY2UgZnJvbSBhIHVzZXIgYnkgZm9yY2UuAGxDYW4gb25seSBiZSBjYWxsZWQgYnkgUk9PVC5AdXBncmFkZV9hY2NvdW50cwQBDHdob0gBRFZlYzxUOjpBY2NvdW50SWQ+AAYgcFVwZ3JhZGUgYSBzcGVjaWZpZWQgYWNjb3VudC4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVwZ3JhZGVkLgBVAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIGF0IGxlYXN0IGFsbCBidXQgMTAlIG9mIHRoZSBhY2NvdW50cyBuZWVkZWQgdG9BAWJlIHVwZ3JhZGVkLiAoV2UgbGV0IHNvbWUgbm90IGhhdmUgdG8gYmUgdXBncmFkZWQganVzdCBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlWHBvc3NpYmlsaXR5IG9mIGNodXJuKS5EZm9yY2Vfc2V0X2JhbGFuY2UIAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVlPAEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb25MAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGE8AShUOjpCYWxhbmNlAAkUuEFkanVzdCB0aGUgdG90YWwgaXNzdWFuY2UgaW4gYSBzYXR1cmF0aW5nIHdheS4A/ENhbiBvbmx5IGJlIGNhbGxlZCBieSByb290IGFuZCBhbHdheXMgbmVlZHMgYSBwb3NpdGl2ZSBgZGVsdGFgLgAkIyBFeGFtcGxlEGJ1cm4IARR2YWx1ZTwBKFQ6OkJhbGFuY2UAAShrZWVwX2FsaXZlRAEQYm9vbAAKHPxCdXJuIHRoZSBzcGVjaWZpZWQgbGlxdWlkIGZyZWUgYmFsYW5jZSBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudC4AJQFJZiB0aGUgb3JpZ2luJ3MgYWNjb3VudCBlbmRzIHVwIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0CQFvZiB0aGUgYnVybiBhbmQgYGtlZXBfYWxpdmVgIGlzIGZhbHNlLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AUQFVbmxpa2Ugc2VuZGluZyBmdW5kcyB0byBhIF9idXJuXyBhZGRyZXNzLCB3aGljaCBtZXJlbHkgbWFrZXMgdGhlIGZ1bmRzIGluYWNjZXNzaWJsZSwhAXRoaXMgYGJ1cm5gIG9wZXJhdGlvbiB3aWxsIHJlZHVjZSB0b3RhbCBpc3N1YW5jZSBieSB0aGUgYW1vdW50IF9idXJuZWRfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy48AAAGQABAAAAFBwBEAAAFAABIAAACAABMDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXNMQWRqdXN0bWVudERpcmVjdGlvbgABCCBJbmNyZWFzZQAAACBEZWNyZWFzZQABAABQDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQQQ2FsbAQEVAABFDBzZXRfY3VycmVuY3kEASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgAANKBTZXQgc2VsZWN0ZWQgY3VycmVuY3kgZm9yIGdpdmVuIGFjY291bnQuAGEBVGhpcyBhbGxvd3MgdG8gc2V0IGEgY3VycmVuY3kgZm9yIGFuIGFjY291bnQgaW4gd2hpY2ggYWxsIHRyYW5zYWN0aW9uIGZlZXMgd2lsbCBiZSBwYWlkLnxBY2NvdW50IGJhbGFuY2UgY2Fubm90IGJlIHplcm8uAG0BSW4gY2FzZSBvZiBzdWZmaWNpZW50IGFzc2V0LCB0aGUgY2hvc2VuIGN1cnJlbmN5IG11c3QgYmUgaW4gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llc0EBSW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgYXNzZXQsIHRoZSBjaG9zZW4gY3VycmVuY3kgbXVzdCBoYXZlIGEgWFlLIHBvb2wgd2l0aCBET1QAcQFXaGVuIGN1cnJlbmN5IGlzIHNldCwgZml4ZWQgZmVlIGlzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IHRvIHBheSBmb3IgdGhlIGN1cnJlbmN5IGNoYW5nZQD4RVZNIGFjY291bnRzIGFyZSBub3cgYWxsb3dlZCB0byBjaGFuZ2UgdGhpZXIgcGF5bWVudCBjdXJyZW5jeS4AqEVtaXRzIGBDdXJyZW5jeVNldGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjBhZGRfY3VycmVuY3kIASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgABFHByaWNlVAEUUHJpY2UAARzIQWRkIGEgY3VycmVuY3kgdG8gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llcy4AkE9ubHkgbWVtYmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgBBAUN1cnJlbmN5IG11c3Qgbm90IGJlIGFscmVhZHkgYWNjZXB0ZWQuIENvcmUgYXNzZXQgaWQgY2Fubm90IGJlIGV4cGxpY2l0bHkgYWRkZWQuALBFbWl0cyBgQ3VycmVuY3lBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjxyZW1vdmVfY3VycmVuY3kEASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgACGNRSZW1vdmUgY3VycmVuY3kgZnJvbSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgY3VycmVuY2llc7RPbmx5IHNlbGVjdGVkIG1lbWJlcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24AdENvcmUgYXNzZXQgY2Fubm90IGJlIHJlbW92ZWQuAKBFbWl0cyBgQ3VycmVuY3lSZW1vdmVkYCB3aGVuIHN1Y2Nlc3NmdWwuWHJlc2V0X3BheW1lbnRfY3VycmVuY3kEAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAMUvFJlc2V0IGN1cnJlbmN5IG9mIHRoZSBzcGVjaWZpZWQgYWNjb3VudCB0byBIRFguFQFJZiB0aGUgYWNjb3VudCBpcyBFVk0gYWNjb3VudCwgdGhlIHBheW1lbnQgY3VycmVuY3kgaXMgcmVzZXQgdG8gV0VUSC64T25seSBzZWxlY3RlZCBtZW1iZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgCQRW1pdHMgYEN1cnJlbmN5U2V0YCB3aGVuIHN1Y2Nlc3NmdWwuPGRpc3BhdGNoX3Blcm1pdCQBEGZyb21YARBIMTYwAAEIdG9YARBIMTYwAAEUdmFsdWVgARBVMjU2AAEQZGF0YRQBHFZlYzx1OD4AASRnYXNfbGltaXQYAQx1NjQAASBkZWFkbGluZWABEFUyNTYAAQR2CAEIdTgAAQRyLAEQSDI1NgABBHMsARBIMjU2AAQghERpc3BhdGNoIGEgcHJlLXNpZ25lZCBFVk0gcGVybWl0LgDoVW5zaWduZWQ6IHRoZSBFVk0gYWNjb3VudCBgZnJvbWAgcGF5cyBmb3IgdGhlIGRpc3BhdGNoIHZpYZhgd2l0aGRyYXdfZmVlYCBpbiBpdHMgY2hvc2VuIGN1cnJlbmN5LgABAVNpZ25lZDogdGhlIHNpZ25lciAocGF5bWFzdGVyKSBwYXlzIGJvdGggdGhlIFN1YnN0cmF0ZSBleHRyaW5zaWP4ZmVlIGFuZCB0aGUgRVZNLXNpZGUgZ2FzOyBgcGVybWl0LmZyb21gIGlzIHRvdWNoZWQgb25seSBieSB0aGWcaW5uZXIgY2FsbCdzIGVmZmVjdHMuIFJvb3QgaXMgcmVqZWN0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlQMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEAEABEHUxMjgAAFgIPHByaW1pdGl2ZV90eXBlcxBIMTYwAAAEAFwBIFt1ODsgMjBdAABcAAADFAAAAAgAYAg8cHJpbWl0aXZlX3R5cGVzEFUyNTYAAAQAZAEgW3U2NDsgNF0AAGQAAAMEAAAAGABoDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0EENhbGwIBFQABEkAARgsc3BlbmRfbG9jYWwIARhhbW91bnQ8ATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABUEFjY291bnRJZExvb2t1cE9mPFQ+AANEuFByb3Bvc2UgYW5kIGFwcHJvdmUgYSBzcGVuZCBvZiB0cmVhc3VyeSBmdW5kcy4ASCMjIERpc3BhdGNoIE9yaWdpbgBFAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0IGBhbW91bnRgLgAsIyMjIERldGFpbHNFAU5PVEU6IEZvciByZWNvcmQta2VlcGluZyBwdXJwb3NlcywgdGhlIHByb3Bvc2VyIGlzIGRlZW1lZCB0byBiZSBlcXVpdmFsZW50IHRvIHRoZTBiZW5lZmljaWFyeS4AOCMjIyBQYXJhbWV0ZXJzQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLugtIGBiZW5lZmljaWFyeWA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgdHJhbnNmZXIuACQjIyBFdmVudHMAtEVtaXRzIFtgRXZlbnQ6OlNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLjxyZW1vdmVfYXBwcm92YWwEASxwcm9wb3NhbF9pZGwBNFByb3Bvc2FsSW5kZXgABFQtAUZvcmNlIGEgcHJldmlvdXNseSBhcHByb3ZlZCBwcm9wb3NhbCB0byBiZSByZW1vdmVkIGZyb20gdGhlIGFwcHJvdmFsIHF1ZXVlLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAwFRoZSBvcmlnaW5hbCBkZXBvc2l0IHdpbGwgbm8gbG9uZ2VyIGJlIHJldHVybmVkLgA4IyMjIFBhcmFtZXRlcnOgLSBgcHJvcG9zYWxfaWRgOiBUaGUgaW5kZXggb2YgYSBwcm9wb3NhbAA4IyMjIENvbXBsZXhpdHmsLSBPKEEpIHdoZXJlIGBBYCBpcyB0aGUgbnVtYmVyIG9mIGFwcHJvdmFscwAoIyMjIEVycm9yc0UBLSBbYEVycm9yOjpQcm9wb3NhbE5vdEFwcHJvdmVkYF06IFRoZSBgcHJvcG9zYWxfaWRgIHN1cHBsaWVkIHdhcyBub3QgZm91bmQgaW4gdGhlUQEgIGFwcHJvdmFsIHF1ZXVlLCBpLmUuLCB0aGUgcHJvcG9zYWwgaGFzIG5vdCBiZWVuIGFwcHJvdmVkLiBUaGlzIGNvdWxkIGFsc28gbWVhbiB0aGVZASAgcHJvcG9zYWwgZG9lcyBub3QgZXhpc3QgYWx0b2dldGhlciwgdGh1cyB0aGVyZSBpcyBubyB3YXkgaXQgd291bGQgaGF2ZSBiZWVuIGFwcHJvdmVkVCAgaW4gdGhlIGZpcnN0IHBsYWNlLhRzcGVuZBABKGFzc2V0X2tpbmRwAURCb3g8VDo6QXNzZXRLaW5kPgABGGFtb3VudDwBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAXhCb3g8QmVuZWZpY2lhcnlMb29rdXBPZjxULCBJPj4AASh2YWxpZF9mcm9tdAFwT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQsIEk+PgAFaLhQcm9wb3NlIGFuZCBhcHByb3ZlIGEgc3BlbmQgb2YgdHJlYXN1cnkgZnVuZHMuAEgjIyBEaXNwYXRjaCBPcmlnaW4AHQFNdXN0IGJlIFtgQ29uZmlnOjpTcGVuZE9yaWdpbmBdIHdpdGggdGhlIGBTdWNjZXNzYCB2YWx1ZSBiZWluZyBhdCBsZWFzdFUBYGFtb3VudGAgb2YgYGFzc2V0X2tpbmRgIGluIHRoZSBuYXRpdmUgYXNzZXQuIFRoZSBhbW91bnQgb2YgYGFzc2V0X2tpbmRgIGlzIGNvbnZlcnRlZNRmb3IgYXNzZXJ0aW9uIHVzaW5nIHRoZSBbYENvbmZpZzo6QmFsYW5jZUNvbnZlcnRlcmBdLgAoIyMgRGV0YWlscwBJAUNyZWF0ZSBhbiBhcHByb3ZlZCBzcGVuZCBmb3IgdHJhbnNmZXJyaW5nIGEgc3BlY2lmaWMgYGFtb3VudGAgb2YgYGFzc2V0X2tpbmRgIHRvIGFhAWRlc2lnbmF0ZWQgYmVuZWZpY2lhcnkuIFRoZSBzcGVuZCBtdXN0IGJlIGNsYWltZWQgdXNpbmcgdGhlIGBwYXlvdXRgIGRpc3BhdGNoYWJsZSB3aXRoaW50dGhlIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4AOCMjIyBQYXJhbWV0ZXJzFQEtIGBhc3NldF9raW5kYDogQW4gaW5kaWNhdG9yIG9mIHRoZSBzcGVjaWZpYyBhc3NldCBjbGFzcyB0byBiZSBzcGVudC5BAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAuuC0gYGJlbmVmaWNpYXJ5YDogVGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSBzcGVuZC5VAS0gYHZhbGlkX2Zyb21gOiBUaGUgYmxvY2sgbnVtYmVyIGZyb20gd2hpY2ggdGhlIHNwZW5kIGNhbiBiZSBjbGFpbWVkLiBJdCBjYW4gcmVmZXIgdG8ZASAgdGhlIHBhc3QgaWYgdGhlIHJlc3VsdGluZyBzcGVuZCBoYXMgbm90IHlldCBleHBpcmVkIGFjY29yZGluZyB0byB0aGVFASAgW2BDb25maWc6OlBheW91dFBlcmlvZGBdLiBJZiBgTm9uZWAsIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZCBpbW1lZGlhdGVseSBhZnRlciwgIGFwcHJvdmFsLgAkIyMgRXZlbnRzAMhFbWl0cyBbYEV2ZW50OjpBc3NldFNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLhhwYXlvdXQEARRpbmRleCgBKFNwZW5kSW5kZXgABkw4Q2xhaW0gYSBzcGVuZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA4TXVzdCBiZSBzaWduZWQAKCMjIERldGFpbHMAVQFTcGVuZHMgbXVzdCBiZSBjbGFpbWVkIHdpdGhpbiBzb21lIHRlbXBvcmFsIGJvdW5kcy4gQSBzcGVuZCBtYXkgYmUgY2xhaW1lZCB3aXRoaW4gb25l1FtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXSBmcm9tIHRoZSBgdmFsaWRfZnJvbWAgYmxvY2suVQFJbiBjYXNlIG9mIGEgcGF5b3V0IGZhaWx1cmUsIHRoZSBzcGVuZCBzdGF0dXMgbXVzdCBiZSB1cGRhdGVkIHdpdGggdGhlIGBjaGVja19zdGF0dXNg3GRpc3BhdGNoYWJsZSBiZWZvcmUgcmV0cnlpbmcgd2l0aCB0aGUgY3VycmVudCBmdW5jdGlvbi4AOCMjIyBQYXJhbWV0ZXJzbC0gYGluZGV4YDogVGhlIHNwZW5kIGluZGV4LgAkIyMgRXZlbnRzAJBFbWl0cyBbYEV2ZW50OjpQYWlkYF0gaWYgc3VjY2Vzc2Z1bC4wY2hlY2tfc3RhdHVzBAEUaW5kZXgoAShTcGVuZEluZGV4AAdMKQFDaGVjayB0aGUgc3RhdHVzIG9mIHRoZSBzcGVuZCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHN0b3JhZ2UgaWYgcHJvY2Vzc2VkLgBIIyMgRGlzcGF0Y2ggT3JpZ2luADxNdXN0IGJlIHNpZ25lZC4AKCMjIERldGFpbHMAAQFUaGUgc3RhdHVzIGNoZWNrIGlzIGEgcHJlcmVxdWlzaXRlIGZvciByZXRyeWluZyBhIGZhaWxlZCBwYXlvdXQuSQFJZiBhIHNwZW5kIGhhcyBlaXRoZXIgc3VjY2VlZGVkIG9yIGV4cGlyZWQsIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZSBieSB0aGlz7GZ1bmN0aW9uLiBJbiBzdWNoIGluc3RhbmNlcywgdHJhbnNhY3Rpb24gZmVlcyBhcmUgcmVmdW5kZWQuADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwD4RW1pdHMgW2BFdmVudDo6UGF5bWVudEZhaWxlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIGZhaWxlZC4BAUVtaXRzIFtgRXZlbnQ6OlNwZW5kUHJvY2Vzc2VkYF0gaWYgdGhlIHNwZW5kIHBheW91dCBoYXMgc3VjY2VlZC4odm9pZF9zcGVuZAQBFGluZGV4KAEoU3BlbmRJbmRleAAIQHxWb2lkIHByZXZpb3VzbHkgYXBwcm92ZWQgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AhE11c3QgYmUgW2BDb25maWc6OlJlamVjdE9yaWdpbmBdLgAoIyMgRGV0YWlscwAdAUEgc3BlbmQgdm9pZCBpcyBvbmx5IHBvc3NpYmxlIGlmIHRoZSBwYXlvdXQgaGFzIG5vdCBiZWVuIGF0dGVtcHRlZCB5ZXQuADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwDARW1pdHMgW2BFdmVudDo6QXNzZXRTcGVuZFZvaWRlZGBdIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLmwAAAYoAHAAAAQAAHQEGE9wdGlvbgQEVAEoAQgQTm9uZQAAABBTb21lBAAoAAABAAB4DDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQQQ2FsbAQEVAABIBRiYXRjaAQBFGNhbGxzfAF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAASHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuAFUBVGhpcyB3aWxsIHJldHVybiBgT2tgIGluIGFsbCBjaXJjdW1zdGFuY2VzLiBUbyBkZXRlcm1pbmUgdGhlIHN1Y2Nlc3Mgb2YgdGhlIGJhdGNoLCBhbjEBZXZlbnQgaXMgZGVwb3NpdGVkLiBJZiBhIGNhbGwgZmFpbGVkIGFuZCB0aGUgYmF0Y2ggd2FzIGludGVycnVwdGVkLCB0aGVuIHRoZVUBYEJhdGNoSW50ZXJydXB0ZWRgIGV2ZW50IGlzIGRlcG9zaXRlZCwgYWxvbmcgd2l0aCB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgY2FsbHMgbWFkZU0BYW5kIHRoZSBlcnJvciBvZiB0aGUgZmFpbGVkIGNhbGwuIElmIGFsbCB3ZXJlIHN1Y2Nlc3NmdWwsIHRoZW4gdGhlIGBCYXRjaENvbXBsZXRlZGBMZXZlbnQgaXMgZGVwb3NpdGVkLjRhc19kZXJpdmF0aXZlCAEUaW5kZXiAAQx1MTYAARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABNNxTZW5kIGEgY2FsbCB0aHJvdWdoIGFuIGluZGV4ZWQgcHNldWRvbnltIG9mIHRoZSBzZW5kZXIuAFUBRmlsdGVyIGZyb20gb3JpZ2luIGFyZSBwYXNzZWQgYWxvbmcuIFRoZSBjYWxsIHdpbGwgYmUgZGlzcGF0Y2hlZCB3aXRoIGFuIG9yaWdpbiB3aGljaLx1c2UgdGhlIHNhbWUgZmlsdGVyIGFzIHRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsLgBFAU5PVEU6IElmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFueSBhY2NvdW50LWJhc2VkIGZpbHRlcmluZyBpcyBub3QgaG9ub3JlZCAoaS5lLmEBYmVjYXVzZSB5b3UgZXhwZWN0IGBwcm94eWAgdG8gaGF2ZSBiZWVuIHVzZWQgcHJpb3IgaW4gdGhlIGNhbGwgc3RhY2sgYW5kIHlvdSBkbyBub3Qgd2FudFEBdGhlIGNhbGwgcmVzdHJpY3Rpb25zIHRvIGFwcGx5IHRvIGFueSBzdWItYWNjb3VudHMpLCB0aGVuIHVzZSBgYXNfbXVsdGlfdGhyZXNob2xkXzFgfGluIHRoZSBNdWx0aXNpZyBwYWxsZXQgaW5zdGVhZC4A9E5PVEU6IFByaW9yIHRvIHZlcnNpb24gKjEyLCB0aGlzIHdhcyBjYWxsZWQgYGFzX2xpbWl0ZWRfc3ViYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiRiYXRjaF9hbGwEARRjYWxsc3wBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAjTsU2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzIGFuZCBhdG9taWNhbGx5IGV4ZWN1dGUgdGhlbS4hAVRoZSB3aG9sZSB0cmFuc2FjdGlvbiB3aWxsIHJvbGxiYWNrIGFuZCBmYWlsIGlmIGFueSBvZiB0aGUgY2FsbHMgZmFpbGVkLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLixkaXNwYXRjaF9hcwgBJGFzX29yaWdpboQBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAMYyERpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBwcm92aWRlZCBvcmlnaW4uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uADQjIyBDb21wbGV4aXR5HC0gTygxKS4sZm9yY2VfYmF0Y2gEARRjYWxsc3wBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABDR8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLtRVbmxpa2UgYGJhdGNoYCwgaXQgYWxsb3dzIGVycm9ycyBhbmQgd29uJ3QgaW50ZXJydXB0LgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBNAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sd2l0aF93ZWlnaHQIARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodOQBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4caWZfZWxzZQgBEG1haW4MAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEgZmFsbGJhY2sMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAZcFQFEaXNwYXRjaCBhIGZhbGxiYWNrIGNhbGwgaW4gdGhlIGV2ZW50IHRoZSBtYWluIGNhbGwgZmFpbHMgdG8gZXhlY3V0ZS6wTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4A5FRoaXMgZnVuY3Rpb24gZmlyc3QgYXR0ZW1wdHMgdG8gZGlzcGF0Y2ggdGhlIGBtYWluYCBjYWxsLtRJZiB0aGUgYG1haW5gIGNhbGwgZmFpbHMsIHRoZSBgZmFsbGJhY2tgIGlzIGF0dGVtdGVkLhUBaWYgdGhlIGZhbGxiYWNrIGlzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLCB0aGUgd2VpZ2h0cyBvZiBib3RoIGNhbGxzJQFhcmUgYWNjdW11bGF0ZWQgYW5kIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG1haW4gY2FsbCBlcnJvciBpcyBkZXBvc2l0ZWQuANxJbiB0aGUgZXZlbnQgb2YgYSBmYWxsYmFjayBmYWlsdXJlIHRoZSB3aG9sZSBjYWxsIGZhaWxzaHdpdGggdGhlIHdlaWdodHMgcmV0dXJuZWQuAEEBLSBgbWFpbmA6IFRoZSBtYWluIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSBhY3Rpb24gdG8gZXhlY3V0ZS49AS0gYGZhbGxiYWNrYDogVGhlIGZhbGxiYWNrIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZCBpbiBjYXNlIHRoZSBgbWFpbmAgY2FsbCBmYWlscy4ARCMjIERpc3BhdGNoIExvZ2ljQQEtIElmIHRoZSBvcmlnaW4gaXMgYHJvb3RgLCBib3RoIHRoZSBtYWluIGFuZCBmYWxsYmFjayBjYWxscyBhcmUgZXhlY3V0ZWQgd2l0aG91dHggIGFwcGx5aW5nIGFueSBvcmlnaW4gZmlsdGVycy5JAS0gSWYgdGhlIG9yaWdpbiBpcyBub3QgYHJvb3RgLCB0aGUgb3JpZ2luIGZpbHRlciBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIGBtYWluYCBhbmRMICBgZmFsbGJhY2tgIGNhbGxzLgAsIyMgVXNlIENhc2VZAS0gU29tZSB1c2UgY2FzZXMgbWlnaHQgaW52b2x2ZSBzdWJtaXR0aW5nIGEgYGJhdGNoYCB0eXBlIGNhbGwgaW4gZWl0aGVyIG1haW4sIGZhbGxiYWNrKCAgb3IgYm90aC5QZGlzcGF0Y2hfYXNfZmFsbGlibGUIASRhc19vcmlnaW6EAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAHFMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgBRAUFsbW9zdCB0aGUgc2FtZSBhcyBbYFBhbGxldDo6ZGlzcGF0Y2hfYXNgXSBidXQgZm9yd2FyZHMgYW55IGVycm9yIG9mIHRoZSBpbm5lciBjYWxsLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy58AAACDACAAAAFBACECDxoeWRyYWR4X3J1bnRpbWUwT3JpZ2luQ2FsbGVyAAEYGHN5c3RlbQQAiAF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAQBIVGVjaG5pY2FsQ29tbWl0dGVlBACMAQEBcGFsbGV0X2NvbGxlY3RpdmU6Ok9yaWdpbjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABxPcmlnaW5zBACQAXRwYWxsZXRfY3VzdG9tX29yaWdpbnM6Ok9yaWdpbgAmACBFdGhlcmV1bQQAlAFccGFsbGV0X2V0aGVyZXVtOjpPcmlnaW4AXAAsUG9sa2Fkb3RYY20EAJgBSHBhbGxldF94Y206Ok9yaWdpbgBrAChDdW11bHVzWGNtBADcAWhjdW11bHVzX3BhbGxldF94Y206Ok9yaWdpbgBtAACIDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoJFJhd09yaWdpbgQkQWNjb3VudElkAQABEBBSb290AAAAGFNpZ25lZAQAAAEkQWNjb3VudElkAAEAEE5vbmUAAgAoQXV0aG9yaXplZAADAACMCERwYWxsZXRfY29sbGVjdGl2ZSRSYXdPcmlnaW4IJEFjY291bnRJZAEABEkAAQwcTWVtYmVycwgAKAEsTWVtYmVyQ291bnQAACgBLE1lbWJlckNvdW50AAAAGE1lbWJlcgQAAAEkQWNjb3VudElkAAEAIF9QaGFudG9tAAIAAJAUPGh5ZHJhZHhfcnVudGltZShnb3Zlcm5hbmNlHG9yaWdpbnNUcGFsbGV0X2N1c3RvbV9vcmlnaW5zGE9yaWdpbgABJERXaGl0ZWxpc3RlZENhbGxlcgAAAExSZWZlcmVuZHVtQ2FuY2VsbGVyAAEAQFJlZmVyZW5kdW1LaWxsZXIAAgAwR2VuZXJhbEFkbWluAAMANE9tbmlwb29sQWRtaW4ABAAkVHJlYXN1cmVyAAUAHFNwZW5kZXIABgAYVGlwcGVyAAcASEVjb25vbWljUGFyYW1ldGVycwAIAACUCDxwYWxsZXRfZXRoZXJldW0kUmF3T3JpZ2luAAEETEV0aGVyZXVtVHJhbnNhY3Rpb24EAFgBEEgxNjAAAAAAmAwocGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIDFhjbQQAnAEgTG9jYXRpb24AAAAgUmVzcG9uc2UEAJwBIExvY2F0aW9uAAEAAJwQLHN0YWdpbmdfeGNtCHY1IGxvY2F0aW9uIExvY2F0aW9uAAAIARxwYXJlbnRzCAEIdTgAASBpbnRlcmlvcqABJEp1bmN0aW9ucwAAoBAsc3RhZ2luZ194Y20IdjUkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBACkAUhBcmM8W0p1bmN0aW9uOyAxXT4AAQAIWDIEAMABSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQAxAFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BADIAUhBcmM8W0p1bmN0aW9uOyA0XT4ABAAIWDUEAMwBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQA0AFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BADUAUhBcmM8W0p1bmN0aW9uOyA3XT4ABwAIWDgEANgBSEFyYzxbSnVuY3Rpb247IDhdPgAIAACkAAADAQAAAKgAqBAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABsAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrrAFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya6wBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXg0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya6wBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5XAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQAPAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoCAEIdTgAARBkYXRhBAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlktAEYQm9keUlkAAEQcGFydLwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAsAEkTmV0d29ya0lkAAkAAKwEGE9wdGlvbgQEVAGwAQgQTm9uZQAAABBTb21lBACwAAABAACwECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiROZXR3b3JrSWQAASAkQnlHZW5lc2lzBAAEASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIYAQx1NjQAAShibG9ja19oYXNoBAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAIEV0aGVyZXVtBAEgY2hhaW5faWQ0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAC0EAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQAuAEcW3U4OyA0XQABABRJbmRleAQAbAEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAAC4AAADBAAAAAgAvBAMeGNtCHYzIGp1bmN0aW9uIEJvZHlQYXJ0AAEUFFZvaWNlAAAAHE1lbWJlcnMEARRjb3VudGwBDHUzMgABACBGcmFjdGlvbggBDG5vbWwBDHUzMgABFGRlbm9tbAEMdTMyAAIAREF0TGVhc3RQcm9wb3J0aW9uCAEMbm9tbAEMdTMyAAEUZGVub21sAQx1MzIAAwBITW9yZVRoYW5Qcm9wb3J0aW9uCAEMbm9tbAEMdTMyAAEUZGVub21sAQx1MzIABAAAwAAAAwIAAACoAMQAAAMDAAAAqADIAAADBAAAAKgAzAAAAwUAAACoANAAAAMGAAAAqADUAAADBwAAAKgA2AAAAwgAAACoANwMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIFFJlbGF5AAAAQFNpYmxpbmdQYXJhY2hhaW4EAOABGFBhcmFJZAABAADgDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEACgBDHUzMgAA5Awoc3Bfd2VpZ2h0cyR3ZWlnaHRfdjIYV2VpZ2h0AAAIASByZWZfdGltZTQBDHU2NAABKHByb29mX3NpemU0AQx1NjQAAOgMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQQQ2FsbAQEVAABFDRub3RlX3ByZWltYWdlBAEUYnl0ZXMUARxWZWM8dTg+AAAQdFJlZ2lzdGVyIGEgcHJlaW1hZ2Ugb24tY2hhaW4uAFUBSWYgdGhlIHByZWltYWdlIHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCwgbm8gZmVlcyBvciBkZXBvc2l0cyBhcmUgdGFrZW4gZm9yIHByb3ZpZGluZ1UBdGhlIHByZWltYWdlLiBPdGhlcndpc2UsIGEgZGVwb3NpdCBpcyB0YWtlbiBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgdGhlIHByZWltYWdlLjx1bm5vdGVfcHJlaW1hZ2UEARBoYXNoLAEcVDo6SGFzaAABGNxDbGVhciBhbiB1bnJlcXVlc3RlZCBwcmVpbWFnZSBmcm9tIHRoZSBydW50aW1lIHN0b3JhZ2UuAPxJZiBgbGVuYCBpcyBwcm92aWRlZCwgdGhlbiBpdCB3aWxsIGJlIGEgbXVjaCBjaGVhcGVyIG9wZXJhdGlvbi4AAQEtIGBoYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByZWltYWdlIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmUuuC0gYGxlbmA6IFRoZSBsZW5ndGggb2YgdGhlIHByZWltYWdlIG9mIGBoYXNoYC5AcmVxdWVzdF9wcmVpbWFnZQQBEGhhc2gsARxUOjpIYXNoAAIQQQFSZXF1ZXN0IGEgcHJlaW1hZ2UgYmUgdXBsb2FkZWQgdG8gdGhlIGNoYWluIHdpdGhvdXQgcGF5aW5nIGFueSBmZWVzIG9yIGRlcG9zaXRzLgBVAUlmIHRoZSBwcmVpbWFnZSByZXF1ZXN0cyBoYXMgYWxyZWFkeSBiZWVuIHByb3ZpZGVkIG9uLWNoYWluLCB3ZSB1bnJlc2VydmUgYW55IGRlcG9zaXQ5AWEgdXNlciBtYXkgaGF2ZSBwYWlkLCBhbmQgdGFrZSB0aGUgY29udHJvbCBvZiB0aGUgcHJlaW1hZ2Ugb3V0IG9mIHRoZWlyIGhhbmRzLkh1bnJlcXVlc3RfcHJlaW1hZ2UEARBoYXNoLAEcVDo6SGFzaAADDLxDbGVhciBhIHByZXZpb3VzbHkgbWFkZSByZXF1ZXN0IGZvciBhIHByZWltYWdlLgAtAU5PVEU6IFRISVMgTVVTVCBOT1QgQkUgQ0FMTEVEIE9OIGBoYXNoYCBNT1JFIFRJTUVTIFRIQU4gYHJlcXVlc3RfcHJlaW1hZ2VgLjhlbnN1cmVfdXBkYXRlZAQBGGhhc2hlc+wBMFZlYzxUOjpIYXNoPgAEDLxFbnN1cmUgdGhhdCB0aGUgYnVsayBvZiBwcmUtaW1hZ2VzIGlzIHVwZ3JhZGVkLgA9AVRoZSBjYWxsZXIgcGF5cyBubyBmZWUgaWYgYXQgbGVhc3QgOTAlIG9mIHByZS1pbWFnZXMgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu7AAAAiwA8Aw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBBDYWxsBARUAAFgNGFkZF9yZWdpc3RyYXIEARxhY2NvdW50AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AABx4QWRkIGEgcmVnaXN0cmFyIHRvIHRoZSBzeXN0ZW0uAPxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6UmVnaXN0cmFyT3JpZ2luYC4AqC0gYGFjY291bnRgOiB0aGUgYWNjb3VudCBvZiB0aGUgcmVnaXN0cmFyLgCURW1pdHMgYFJlZ2lzdHJhckFkZGVkYCBpZiBzdWNjZXNzZnVsLjBzZXRfaWRlbnRpdHkEARBpbmZv9AFsQm94PFQ6OklkZW50aXR5SW5mb3JtYXRpb24+AAEoKQFTZXQgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm9ybWF0aW9uIGFuZCByZXNlcnZlIHRoZSBhcHByb3ByaWF0ZSBkZXBvc2l0LgBVAUlmIHRoZSBhY2NvdW50IGFscmVhZHkgaGFzIGlkZW50aXR5IGluZm9ybWF0aW9uLCB0aGUgZGVwb3NpdCBpcyB0YWtlbiBhcyBwYXJ0IHBheW1lbnRQZm9yIHRoZSBuZXcgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgCMLSBgaW5mb2A6IFRoZSBpZGVudGl0eSBpbmZvcm1hdGlvbi4AiEVtaXRzIGBJZGVudGl0eVNldGAgaWYgc3VjY2Vzc2Z1bC4gc2V0X3N1YnMEARBzdWJzhQEBZFZlYzwoVDo6QWNjb3VudElkLCBEYXRhKT4AAiSMU2V0IHRoZSBzdWItYWNjb3VudHMgb2YgdGhlIHNlbmRlci4AVQFQYXltZW50OiBBbnkgYWdncmVnYXRlIGJhbGFuY2UgcmVzZXJ2ZWQgYnkgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxscyB3aWxsIGJlIHJldHVybmVkLQFhbmQgYW4gYW1vdW50IGBTdWJBY2NvdW50RGVwb3NpdGAgd2lsbCBiZSByZXNlcnZlZCBmb3IgZWFjaCBpdGVtIGluIGBzdWJzYC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCwLSBgc3Vic2A6IFRoZSBpZGVudGl0eSdzIChuZXcpIHN1Yi1hY2NvdW50cy44Y2xlYXJfaWRlbnRpdHkAAyA5AUNsZWFyIGFuIGFjY291bnQncyBpZGVudGl0eSBpbmZvIGFuZCBhbGwgc3ViLWFjY291bnRzIGFuZCByZXR1cm4gYWxsIGRlcG9zaXRzLgDsUGF5bWVudDogQWxsIHJlc2VydmVkIGJhbGFuY2VzIG9uIHRoZSBhY2NvdW50IGFyZSByZXR1cm5lZC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCYRW1pdHMgYElkZW50aXR5Q2xlYXJlZGAgaWYgc3VjY2Vzc2Z1bC5EcmVxdWVzdF9qdWRnZW1lbnQIASRyZWdfaW5kZXhsAThSZWdpc3RyYXJJbmRleAABHG1heF9mZWU8ATBCYWxhbmNlT2Y8VD4ABECUUmVxdWVzdCBhIGp1ZGdlbWVudCBmcm9tIGEgcmVnaXN0cmFyLgBVAVBheW1lbnQ6IEF0IG1vc3QgYG1heF9mZWVgIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIHBheW1lbnQgdG8gdGhlIHJlZ2lzdHJhciBpZiBqdWRnZW1lbnQYZ2l2ZW4uADUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGFQcmVnaXN0ZXJlZCBpZGVudGl0eS4AHQEtIGByZWdfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgcmVxdWVzdGVkLlUBLSBgbWF4X2ZlZWA6IFRoZSBtYXhpbXVtIGZlZSB0aGF0IG1heSBiZSBwYWlkLiBUaGlzIHNob3VsZCBqdXN0IGJlIGF1dG8tcG9wdWxhdGVkIGFzOgAwYGBgbm9jb21waWxlyFJlZ2lzdHJhcnM6OjxUPjo6Z2V0KCkuZ2V0KHJlZ19pbmRleCkudW53cmFwKCkuZmVlDGBgYACkRW1pdHMgYEp1ZGdlbWVudFJlcXVlc3RlZGAgaWYgc3VjY2Vzc2Z1bC44Y2FuY2VsX3JlcXVlc3QEASRyZWdfaW5kZXgoAThSZWdpc3RyYXJJbmRleAAFKGhDYW5jZWwgYSBwcmV2aW91cyByZXF1ZXN0LgD4UGF5bWVudDogQSBwcmV2aW91c2x5IHJlc2VydmVkIGRlcG9zaXQgaXMgcmV0dXJuZWQgb24gc3VjY2Vzcy4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgBFAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyBubyBsb25nZXIgcmVxdWVzdGVkLgCsRW1pdHMgYEp1ZGdlbWVudFVucmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLhxzZXRfZmVlCAEUaW5kZXhsAThSZWdpc3RyYXJJbmRleAABDGZlZTwBMEJhbGFuY2VPZjxUPgAGHBkBU2V0IHRoZSBmZWUgcmVxdWlyZWQgZm9yIGEganVkZ2VtZW50IHRvIGJlIHJlcXVlc3RlZCBmcm9tIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LlQtIGBmZWVgOiB0aGUgbmV3IGZlZS44c2V0X2FjY291bnRfaWQIARRpbmRleGwBOFJlZ2lzdHJhckluZGV4AAEMbmV3AAFQQWNjb3VudElkTG9va3VwT2Y8VD4ABxy8Q2hhbmdlIHRoZSBhY2NvdW50IGFzc29jaWF0ZWQgd2l0aCBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC5wLSBgbmV3YDogdGhlIG5ldyBhY2NvdW50IElELihzZXRfZmllbGRzCAEUaW5kZXhsAThSZWdpc3RyYXJJbmRleAABGGZpZWxkcxgBKQE8VDo6SWRlbnRpdHlJbmZvcm1hdGlvbiBhcyBJZGVudGl0eUluZm9ybWF0aW9uUHJvdmlkZXI+OjoKRmllbGRzSWRlbnRpZmllcgAIHKhTZXQgdGhlIGZpZWxkIGluZm9ybWF0aW9uIGZvciBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC4NAS0gYGZpZWxkc2A6IHRoZSBmaWVsZHMgdGhhdCB0aGUgcmVnaXN0cmFyIGNvbmNlcm5zIHRoZW1zZWx2ZXMgd2l0aC5EcHJvdmlkZV9qdWRnZW1lbnQQASRyZWdfaW5kZXhsAThSZWdpc3RyYXJJbmRleAABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkanVkZ2VtZW50jQEBXEp1ZGdlbWVudDxCYWxhbmNlT2Y8VD4+AAEgaWRlbnRpdHksARxUOjpIYXNoAAk8uFByb3ZpZGUgYSBqdWRnZW1lbnQgZm9yIGFuIGFjY291bnQncyBpZGVudGl0eS4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50sG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYHJlZ19pbmRleGAuACEBLSBgcmVnX2luZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIGJlaW5nIG1hZGUuVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuSQEtIGBqdWRnZW1lbnRgOiB0aGUganVkZ2VtZW50IG9mIHRoZSByZWdpc3RyYXIgb2YgaW5kZXggYHJlZ19pbmRleGAgYWJvdXQgYHRhcmdldGAuXQEtIGBpZGVudGl0eWA6IFRoZSBoYXNoIG9mIHRoZSBbYElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcmBdIGZvciB0aGF0IHRoZSBqdWRnZW1lbnQgaXMsICBwcm92aWRlZC4AsE5vdGU6IEp1ZGdlbWVudHMgZG8gbm90IGFwcGx5IHRvIGEgdXNlcm5hbWUuAJRFbWl0cyBgSnVkZ2VtZW50R2l2ZW5gIGlmIHN1Y2Nlc3NmdWwuNGtpbGxfaWRlbnRpdHkEARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAKMEEBUmVtb3ZlIGFuIGFjY291bnQncyBpZGVudGl0eSBhbmQgc3ViLWFjY291bnQgaW5mb3JtYXRpb24gYW5kIHNsYXNoIHRoZSBkZXBvc2l0cy4AYQFQYXltZW50OiBSZXNlcnZlZCBiYWxhbmNlcyBmcm9tIGBzZXRfc3Vic2AgYW5kIGBzZXRfaWRlbnRpdHlgIGFyZSBzbGFzaGVkIGFuZCBoYW5kbGVkIGJ5RQFgU2xhc2hgLiBWZXJpZmljYXRpb24gcmVxdWVzdCBkZXBvc2l0cyBhcmUgbm90IHJldHVybmVkOyB0aGV5IHNob3VsZCBiZSBjYW5jZWxsZWSAbWFudWFsbHkgdXNpbmcgYGNhbmNlbF9yZXF1ZXN0YC4A+FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IG1hdGNoIGBUOjpGb3JjZU9yaWdpbmAuAFUBLSBgdGFyZ2V0YDogdGhlIGFjY291bnQgd2hvc2UgaWRlbnRpdHkgdGhlIGp1ZGdlbWVudCBpcyB1cG9uLiBUaGlzIG11c3QgYmUgYW4gYWNjb3VudHQgIHdpdGggYSByZWdpc3RlcmVkIGlkZW50aXR5LgCURW1pdHMgYElkZW50aXR5S2lsbGVkYCBpZiBzdWNjZXNzZnVsLhxhZGRfc3ViCAEMc3ViAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhAQEBEERhdGEACxysQWRkIHRoZSBnaXZlbiBhY2NvdW50IHRvIHRoZSBzZW5kZXIncyBzdWJzLgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZDh0byB0aGUgc2VuZGVyLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWRYc3ViIGlkZW50aXR5IG9mIGBzdWJgLihyZW5hbWVfc3ViCAEMc3ViAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhAQEBEERhdGEADBDMQWx0ZXIgdGhlIGFzc29jaWF0ZWQgbmFtZSBvZiB0aGUgZ2l2ZW4gc3ViLWFjY291bnQuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbW92ZV9zdWIEAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgANHMBSZW1vdmUgdGhlIGdpdmVuIGFjY291bnQgZnJvbSB0aGUgc2VuZGVyJ3Mgc3Vicy4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWQ4dG8gdGhlIHNlbmRlci4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4gcXVpdF9zdWIADiiMUmVtb3ZlIHRoZSBzZW5kZXIgYXMgYSBzdWItYWNjb3VudC4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWS0dG8gdGhlIHNlbmRlciAoKm5vdCogdGhlIG9yaWdpbmFsIGRlcG9zaXRvcikuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZDxzdXBlci1pZGVudGl0eS4ARQFOT1RFOiBUaGlzIHNob3VsZCBub3Qgbm9ybWFsbHkgYmUgdXNlZCwgYnV0IGlzIHByb3ZpZGVkIGluIHRoZSBjYXNlIHRoYXQgdGhlIG5vbi0RAWNvbnRyb2xsZXIgb2YgYW4gYWNjb3VudCBpcyBtYWxpY2lvdXNseSByZWdpc3RlcmVkIGFzIGEgc3ViLWFjY291bnQuWGFkZF91c2VybmFtZV9hdXRob3JpdHkMASRhdXRob3JpdHkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGHN1ZmZpeBQBHFZlYzx1OD4AAShhbGxvY2F0aW9uKAEMdTMyAA8UVQFBZGQgYW4gYEFjY291bnRJZGAgd2l0aCBwZXJtaXNzaW9uIHRvIGdyYW50IHVzZXJuYW1lcyB3aXRoIGEgZ2l2ZW4gYHN1ZmZpeGAgYXBwZW5kZWQuAEUBVGhlIGF1dGhvcml0eSBjYW4gZ3JhbnQgdXAgdG8gYGFsbG9jYXRpb25gIHVzZXJuYW1lcy4gVG8gdG9wIHVwIHRoZSBhbGxvY2F0aW9uIG9ySQFjaGFuZ2UgdGhlIGFjY291bnQgdXNlZCB0byBncmFudCB1c2VybmFtZXMsIHRoaXMgY2FsbCBjYW4gYmUgdXNlZCB3aXRoIHRoZSB1cGRhdGVkzHBhcmFtZXRlcnMgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uLmRyZW1vdmVfdXNlcm5hbWVfYXV0aG9yaXR5CAEYc3VmZml4FAEcVmVjPHU4PgABJGF1dGhvcml0eQABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAExFJlbW92ZSBgYXV0aG9yaXR5YCBmcm9tIHRoZSB1c2VybmFtZSBhdXRob3JpdGllcy5Ac2V0X3VzZXJuYW1lX2ZvchABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgdXNlcm5hbWUUARxWZWM8dTg+AAEkc2lnbmF0dXJlkQEBcE9wdGlvbjxUOjpPZmZjaGFpblNpZ25hdHVyZT4AATh1c2VfYWxsb2NhdGlvbkQBEGJvb2wAETQNAVNldCB0aGUgdXNlcm5hbWUgZm9yIGB3aG9gLiBNdXN0IGJlIGNhbGxlZCBieSBhIHVzZXJuYW1lIGF1dGhvcml0eS4AWQFJZiBgdXNlX2FsbG9jYXRpb25gIGlzIHNldCwgdGhlIGF1dGhvcml0eSBtdXN0IGhhdmUgYSB1c2VybmFtZSBhbGxvY2F0aW9uIGF2YWlsYWJsZSB0b0UBc3BlbmQuIE90aGVyd2lzZSwgdGhlIGF1dGhvcml0eSB3aWxsIG5lZWQgdG8gcHV0IHVwIGEgZGVwb3NpdCBmb3IgcmVnaXN0ZXJpbmcgdGhlJHVzZXJuYW1lLgCwVXNlcnMgY2FuIGVpdGhlciBwcmUtc2lnbiB0aGVpciB1c2VybmFtZXMgb3JIYWNjZXB0IHRoZW0gbGF0ZXIuADxVc2VybmFtZXMgbXVzdDrYICAtIE9ubHkgY29udGFpbiBsb3dlcmNhc2UgQVNDSUkgY2hhcmFjdGVycyBvciBkaWdpdHMuNQEgIC0gV2hlbiBjb21iaW5lZCB3aXRoIHRoZSBzdWZmaXggb2YgdGhlIGlzc3VpbmcgYXV0aG9yaXR5IGJlIF9sZXNzIHRoYW5fIHRoZWAgICAgYE1heFVzZXJuYW1lTGVuZ3RoYC48YWNjZXB0X3VzZXJuYW1lBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AEghNAUFjY2VwdCBhIGdpdmVuIHVzZXJuYW1lIHRoYXQgYW4gYGF1dGhvcml0eWAgZ3JhbnRlZC4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSBmdWxsiHVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC5ccmVtb3ZlX2V4cGlyZWRfYXBwcm92YWwEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgATDGEBUmVtb3ZlIGFuIGV4cGlyZWQgdXNlcm5hbWUgYXBwcm92YWwuIFRoZSB1c2VybmFtZSB3YXMgYXBwcm92ZWQgYnkgYW4gYXV0aG9yaXR5IGJ1dCBuZXZlclUBYWNjZXB0ZWQgYnkgdGhlIHVzZXIgYW5kIG11c3Qgbm93IGJlIGJleW9uZCBpdHMgZXhwaXJhdGlvbi4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZZxmdWxsIHVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC5Qc2V0X3ByaW1hcnlfdXNlcm5hbWUEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAUBDEBU2V0IGEgZ2l2ZW4gdXNlcm5hbWUgYXMgdGhlIHByaW1hcnkuIFRoZSB1c2VybmFtZSBzaG91bGQgaW5jbHVkZSB0aGUgc3VmZml4Ljx1bmJpbmRfdXNlcm5hbWUEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAVDFkBU3RhcnQgdGhlIHByb2Nlc3Mgb2YgcmVtb3ZpbmcgYSB1c2VybmFtZSBieSBwbGFjaW5nIGl0IGluIHRoZSB1bmJpbmRpbmcgdXNlcm5hbWVzIG1hcC4hAU9uY2UgdGhlIGdyYWNlIHBlcmlvZCBoYXMgcGFzc2VkLCB0aGUgdXNlcm5hbWUgY2FuIGJlIGRlbGV0ZWQgYnkgY2FsbGluZ8BbcmVtb3ZlX3VzZXJuYW1lXShjcmF0ZTo6Q2FsbDo6cmVtb3ZlX3VzZXJuYW1lKS48cmVtb3ZlX3VzZXJuYW1lBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AFghhAVBlcm1hbmVudGx5IGRlbGV0ZSBhIHVzZXJuYW1lIHdoaWNoIGhhcyBiZWVuIHVuYmluZGluZyBmb3IgbG9uZ2VyIHRoYW4gdGhlIGdyYWNlIHBlcmlvZC5JAUNhbGxlciBpcyByZWZ1bmRlZCB0aGUgZmVlIGlmIHRoZSB1c2VybmFtZSBleHBpcmVkIGFuZCB0aGUgcmVtb3ZhbCB3YXMgc3VjY2Vzc2Z1bC40a2lsbF91c2VybmFtZQQBIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABcIXQFDYWxsIHdpdGggW0ZvcmNlT3JpZ2luXShjcmF0ZTo6Q29uZmlnOjpGb3JjZU9yaWdpbikgcHJpdmlsZWdlcyB3aGljaCBkZWxldGVzIGEgdXNlcm5hbWWsYW5kIHNsYXNoZXMgYW55IGRlcG9zaXQgYXNzb2NpYXRlZCB3aXRoIGl0LgRwSWRlbnRpdHkgcGFsbGV0IGRlY2xhcmF0aW9uLvQMPHBhbGxldF9pZGVudGl0eRhsZWdhY3kwSWRlbnRpdHlJbmZvBChGaWVsZExpbWl0AAAkAShhZGRpdGlvbmFs+AGQQm91bmRlZFZlYzwoRGF0YSwgRGF0YSksIEZpZWxkTGltaXQ+AAEcZGlzcGxheQEBARBEYXRhAAEUbGVnYWwBAQEQRGF0YQABDHdlYgEBARBEYXRhAAEQcmlvdAEBARBEYXRhAAEUZW1haWwBAQEQRGF0YQABPHBncF9maW5nZXJwcmludIEBAUBPcHRpb248W3U4OyAyMF0+AAEUaW1hZ2UBAQEQRGF0YQABHHR3aXR0ZXIBAQEQRGF0YQAA+AxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfwEUwAABAB9AQEYVmVjPFQ+AAD8AAAECAEBAQEAAQEMPHBhbGxldF9pZGVudGl0eRR0eXBlcxBEYXRhAAGYEE5vbmUAAAAQUmF3MAQABQEAAAEAEFJhdzEEAAkBAAACABBSYXcyBAANAQAAAwAQUmF3MwQAEQEAAAQAEFJhdzQEALgAAAUAEFJhdzUEABUBAAAGABBSYXc2BAAZAQAABwAQUmF3NwQAHQEAAAgAEFJhdzgEACEBAAAJABBSYXc5BAAlAQAACgAUUmF3MTAEACkBAAALABRSYXcxMQQALQEAAAwAFFJhdzEyBAAxAQAADQAUUmF3MTMEADUBAAAOABRSYXcxNAQAOQEAAA8AFFJhdzE1BAA9AQAAEAAUUmF3MTYEAEEBAAARABRSYXcxNwQARQEAABIAFFJhdzE4BABJAQAAEwAUUmF3MTkEAE0BAAAUABRSYXcyMAQAXAAAFQAUUmF3MjEEAFEBAAAWABRSYXcyMgQAVQEAABcAFFJhdzIzBABZAQAAGAAUUmF3MjQEAF0BAAAZABRSYXcyNQQAYQEAABoAFFJhdzI2BABlAQAAGwAUUmF3MjcEAGkBAAAcABRSYXcyOAQAbQEAAB0AFFJhdzI5BABxAQAAHgAUUmF3MzAEAHUBAAAfABRSYXczMQQAeQEAACAAFFJhdzMyBAAEAAAhACxCbGFrZVR3bzI1NgQABAAAIgAYU2hhMjU2BAAEAAAjACRLZWNjYWsyNTYEAAQAACQALFNoYVRocmVlMjU2BAAEAAAlAAAFAQAAAwAAAAAIAAkBAAADAQAAAAgADQEAAAMCAAAACAARAQAAAwMAAAAIABUBAAADBQAAAAgAGQEAAAMGAAAACAAdAQAAAwcAAAAIACEBAAADCAAAAAgAJQEAAAMJAAAACAApAQAAAwoAAAAIAC0BAAADCwAAAAgAMQEAAAMMAAAACAA1AQAAAw0AAAAIADkBAAADDgAAAAgAPQEAAAMPAAAACABBAQAAAxAAAAAIAEUBAAADEQAAAAgASQEAAAMSAAAACABNAQAAAxMAAAAIAFEBAAADFQAAAAgAVQEAAAMWAAAACABZAQAAAxcAAAAIAF0BAAADGAAAAAgAYQEAAAMZAAAACABlAQAAAxoAAAAIAGkBAAADGwAAAAgAbQEAAAMcAAAACABxAQAAAx0AAAAIAHUBAAADHgAAAAgAeQEAAAMfAAAACAB9AQAAAvwAgQEEGE9wdGlvbgQEVAFcAQgQTm9uZQAAABBTb21lBABcAAABAACFAQAAAokBAIkBAAAECAABAQCNAQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzJEp1ZGdlbWVudAQcQmFsYW5jZQFAARwcVW5rbm93bgAAABxGZWVQYWlkBABAARxCYWxhbmNlAAEAKFJlYXNvbmFibGUAAgAkS25vd25Hb29kAAMAJE91dE9mRGF0ZQAEAChMb3dRdWFsaXR5AAUAJEVycm9uZW91cwAGAACRAQQYT3B0aW9uBARUAZUBAQgQTm9uZQAAABBTb21lBACVAQAAAQAAlQEIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAAQwcRWQyNTUxOQQAmQEBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BACZAQFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBACdAQFAZWNkc2E6OlNpZ25hdHVyZQACAACZAQAAA0AAAAAIAJ0BAAADQQAAAAgAoQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAClAQxAcGFsbGV0X2RlbW9jcmFjeRhwYWxsZXQQQ2FsbAQEVAABUBxwcm9wb3NlCAEgcHJvcG9zYWypAQFAQm91bmRlZENhbGxPZjxUPgABFHZhbHVlPAEwQmFsYW5jZU9mPFQ+AAAknFByb3Bvc2UgYSBzZW5zaXRpdmUgYWN0aW9uIHRvIGJlIHRha2VuLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdIBoYXZlIGZ1bmRzIHRvIGNvdmVyIHRoZSBkZXBvc2l0LgDULSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCBwcmVpbWFnZS4VAS0gYHZhbHVlYDogVGhlIGFtb3VudCBvZiBkZXBvc2l0IChtdXN0IGJlIGF0IGxlYXN0IGBNaW5pbXVtRGVwb3NpdGApLgBERW1pdHMgYFByb3Bvc2VkYC4Yc2Vjb25kBAEgcHJvcG9zYWxsASRQcm9wSW5kZXgAARi0U2lnbmFscyBhZ3JlZW1lbnQgd2l0aCBhIHBhcnRpY3VsYXIgcHJvcG9zYWwuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlchEBbXVzdCBoYXZlIGZ1bmRzIHRvIGNvdmVyIHRoZSBkZXBvc2l0LCBlcXVhbCB0byB0aGUgb3JpZ2luYWwgZGVwb3NpdC4AyC0gYHByb3Bvc2FsYDogVGhlIGluZGV4IG9mIHRoZSBwcm9wb3NhbCB0byBzZWNvbmQuEHZvdGUIASRyZWZfaW5kZXhsATxSZWZlcmVuZHVtSW5kZXgAARB2b3RltQEBZEFjY291bnRWb3RlPEJhbGFuY2VPZjxUPj4AAhwxAVZvdGUgaW4gYSByZWZlcmVuZHVtLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0IHRoZSBwcm9wb3NhbDu4b3RoZXJ3aXNlIGl0IGlzIGEgdm90ZSB0byBrZWVwIHRoZSBzdGF0dXMgcXVvLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A3C0gYHJlZl9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uQGVtZXJnZW5jeV9jYW5jZWwEASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAAyBNAVNjaGVkdWxlIGFuIGVtZXJnZW5jeSBjYW5jZWxsYXRpb24gb2YgYSByZWZlcmVuZHVtLiBDYW5ub3QgaGFwcGVuIHR3aWNlIHRvIHRoZSBzYW1lLHJlZmVyZW5kdW0uAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBDYW5jZWxsYXRpb25PcmlnaW5gLgDQLWByZWZfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gY2FuY2VsLgA8V2VpZ2h0OiBgTygxKWAuQGV4dGVybmFsX3Byb3Bvc2UEASBwcm9wb3NhbKkBAUBCb3VuZGVkQ2FsbE9mPFQ+AAQYLQFTY2hlZHVsZSBhIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGUgYW4gZXh0ZXJuYWwscmVmZXJlbmR1bS4A6FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYEV4dGVybmFsT3JpZ2luYC4A1C0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwuZGV4dGVybmFsX3Byb3Bvc2VfbWFqb3JpdHkEASBwcm9wb3NhbKkBAUBCb3VuZGVkQ2FsbE9mPFQ+AAUsVQFTY2hlZHVsZSBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWQgbmV4dCBvbmNlIGl0IGlzIGxlZ2FsIHRvIHNjaGVkdWxlXGFuIGV4dGVybmFsIHJlZmVyZW5kdW0uAOxUaGUgZGlzcGF0Y2ggb2YgdGhpcyBjYWxsIG11c3QgYmUgYEV4dGVybmFsTWFqb3JpdHlPcmlnaW5gLgDULSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBwcmVpbWFnZSBoYXNoIG9mIHRoZSBwcm9wb3NhbC4ASQFVbmxpa2UgYGV4dGVybmFsX3Byb3Bvc2VgLCBibGFja2xpc3RpbmcgaGFzIG5vIGVmZmVjdCBvbiB0aGlzIGFuZCBpdCBtYXkgcmVwbGFjZSBhmHByZS1zY2hlZHVsZWQgYGV4dGVybmFsX3Byb3Bvc2VgIGNhbGwuADhXZWlnaHQ6IGBPKDEpYGBleHRlcm5hbF9wcm9wb3NlX2RlZmF1bHQEASBwcm9wb3NhbKkBAUBCb3VuZGVkQ2FsbE9mPFQ+AAYsRQFTY2hlZHVsZSBhIG5lZ2F0aXZlLXR1cm5vdXQtYmlhcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCBuZXh0IG9uY2UgaXQgaXMgbGVnYWwgdG+Ac2NoZWR1bGUgYW4gZXh0ZXJuYWwgcmVmZXJlbmR1bS4A6FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgRXh0ZXJuYWxEZWZhdWx0T3JpZ2luYC4A1C0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwuAEkBVW5saWtlIGBleHRlcm5hbF9wcm9wb3NlYCwgYmxhY2tsaXN0aW5nIGhhcyBubyBlZmZlY3Qgb24gdGhpcyBhbmQgaXQgbWF5IHJlcGxhY2UgYZhwcmUtc2NoZWR1bGVkIGBleHRlcm5hbF9wcm9wb3NlYCBjYWxsLgA4V2VpZ2h0OiBgTygxKWAoZmFzdF90cmFjawwBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAE0dm90aW5nX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgAHQE0BU2NoZWR1bGUgdGhlIGN1cnJlbnRseSBleHRlcm5hbGx5LXByb3Bvc2VkIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWRhAWltbWVkaWF0ZWx5LiBJZiB0aGVyZSBpcyBubyBleHRlcm5hbGx5LXByb3Bvc2VkIHJlZmVyZW5kdW0gY3VycmVudGx5LCBvciBpZiB0aGVyZSBpcyBvbmXoYnV0IGl0IGlzIG5vdCBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0aGVuIGl0IGZhaWxzLgDQVGhlIGRpc3BhdGNoIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBGYXN0VHJhY2tPcmlnaW5gLgD0LSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjdXJyZW50IGV4dGVybmFsIHByb3Bvc2FsLl0BLSBgdm90aW5nX3BlcmlvZGA6IFRoZSBwZXJpb2QgdGhhdCBpcyBhbGxvd2VkIGZvciB2b3Rpbmcgb24gdGhpcyBwcm9wb3NhbC4gSW5jcmVhc2VkIHRviAlNdXN0IGJlIGFsd2F5cyBncmVhdGVyIHRoYW4gemVyby41AQlGb3IgYEZhc3RUcmFja09yaWdpbmAgbXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRoYW4gYEZhc3RUcmFja1ZvdGluZ1BlcmlvZGAuUQEtIGBkZWxheWA6IFRoZSBudW1iZXIgb2YgYmxvY2sgYWZ0ZXIgdm90aW5nIGhhcyBlbmRlZCBpbiBhcHByb3ZhbCBhbmQgdGhpcyBzaG91bGQgYmW4ICBlbmFjdGVkLiBUaGlzIGRvZXNuJ3QgaGF2ZSBhIG1pbmltdW0gYW1vdW50LgBARW1pdHMgYFN0YXJ0ZWRgLgA4V2VpZ2h0OiBgTygxKWA0dmV0b19leHRlcm5hbAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAgkuFZldG8gYW5kIGJsYWNrbGlzdCB0aGUgZXh0ZXJuYWwgcHJvcG9zYWwgaGFzaC4A2FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYFZldG9PcmlnaW5gLgAtAS0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwgdG8gdmV0byBhbmQgYmxhY2tsaXN0LgA8RW1pdHMgYFZldG9lZGAuAPxXZWlnaHQ6IGBPKFYgKyBsb2coVikpYCB3aGVyZSBWIGlzIG51bWJlciBvZiBgZXhpc3RpbmcgdmV0b2Vyc2BEY2FuY2VsX3JlZmVyZW5kdW0EASRyZWZfaW5kZXhsATxSZWZlcmVuZHVtSW5kZXgACRxQUmVtb3ZlIGEgcmVmZXJlbmR1bS4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgDULSBgcmVmX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGNhbmNlbC4ARCMgV2VpZ2h0OiBgTygxKWAuIGRlbGVnYXRlDAEIdG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGNvbnZpY3Rpb269AQEoQ29udmljdGlvbgABHGJhbGFuY2VAATBCYWxhbmNlT2Y8VD4AClA5AURlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgKHdpdGggc29tZSBnaXZlbiBjb252aWN0aW9uKSBvZiB0aGUgc2VuZGluZyBhY2NvdW50LgBVAVRoZSBiYWxhbmNlIGRlbGVnYXRlZCBpcyBsb2NrZWQgZm9yIGFzIGxvbmcgYXMgaXQncyBkZWxlZ2F0ZWQsIGFuZCB0aGVyZWFmdGVyIGZvciB0aGXIdGltZSBhcHByb3ByaWF0ZSBmb3IgdGhlIGNvbnZpY3Rpb24ncyBsb2NrIHBlcmlvZC4AXQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGVpdGhlcjp0ICAtIGJlIGRlbGVnYXRpbmcgYWxyZWFkeTsgb3JZASAgLSBoYXZlIG5vIHZvdGluZyBhY3Rpdml0eSAoaWYgdGhlcmUgaXMsIHRoZW4gaXQgd2lsbCBuZWVkIHRvIGJlIHJlbW92ZWQvY29uc29saWRhdGVklCAgICB0aHJvdWdoIGByZWFwX3ZvdGVgIG9yIGB1bnZvdGVgKS4ARQEtIGB0b2A6IFRoZSBhY2NvdW50IHdob3NlIHZvdGluZyB0aGUgYHRhcmdldGAgYWNjb3VudCdzIHZvdGluZyBwb3dlciB3aWxsIGZvbGxvdy5VAS0gYGNvbnZpY3Rpb25gOiBUaGUgY29udmljdGlvbiB0aGF0IHdpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIGRlbGVnYXRlZCB2b3Rlcy4gV2hlbiB0aGVBASAgYWNjb3VudCBpcyB1bmRlbGVnYXRlZCwgdGhlIGZ1bmRzIHdpbGwgYmUgbG9ja2VkIGZvciB0aGUgY29ycmVzcG9uZGluZyBwZXJpb2QuYQEtIGBiYWxhbmNlYDogVGhlIGFtb3VudCBvZiB0aGUgYWNjb3VudCdzIGJhbGFuY2UgdG8gYmUgdXNlZCBpbiBkZWxlZ2F0aW5nLiBUaGlzIG11c3Qgbm90tCAgYmUgbW9yZSB0aGFuIHRoZSBhY2NvdW50J3MgY3VycmVudCBiYWxhbmNlLgBIRW1pdHMgYERlbGVnYXRlZGAuAD0BV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kdW1zIHRoZSB2b3RlciBkZWxlZ2F0aW5nIHRvIGhhc8ggIHZvdGVkIG9uLiBXZWlnaHQgaXMgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLih1bmRlbGVnYXRlAAswzFVuZGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciBvZiB0aGUgc2VuZGluZyBhY2NvdW50LgBdAVRva2VucyBtYXkgYmUgdW5sb2NrZWQgZm9sbG93aW5nIG9uY2UgYW4gYW1vdW50IG9mIHRpbWUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2NrIHBlcmlvZNxvZiB0aGUgY29udmljdGlvbiB3aXRoIHdoaWNoIHRoZSBkZWxlZ2F0aW9uIHdhcyBpc3N1ZWQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlVGN1cnJlbnRseSBkZWxlZ2F0aW5nLgBQRW1pdHMgYFVuZGVsZWdhdGVkYC4APQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmR1bXMgdGhlIHZvdGVyIGRlbGVnYXRpbmcgdG8gaGFzyCAgdm90ZWQgb24uIFdlaWdodCBpcyBjaGFyZ2VkIGFzIGlmIG1heGltdW0gdm90ZXMuWGNsZWFyX3B1YmxpY19wcm9wb3NhbHMADBRwQ2xlYXJzIGFsbCBwdWJsaWMgcHJvcG9zYWxzLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uADxXZWlnaHQ6IGBPKDEpYC4YdW5sb2NrBAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADRygVW5sb2NrIHRva2VucyB0aGF0IGhhdmUgYW4gZXhwaXJlZCBsb2NrLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgADmx8UmVtb3ZlIGEgdm90ZSBmb3IgYSByZWZlcmVuZHVtLgAMSWY6iC0gdGhlIHJlZmVyZW5kdW0gd2FzIGNhbmNlbGxlZCwgb3J8LSB0aGUgcmVmZXJlbmR1bSBpcyBvbmdvaW5nLCBvcpAtIHRoZSByZWZlcmVuZHVtIGhhcyBlbmRlZCBzdWNoIHRoYXT8ICAtIHRoZSB2b3RlIG9mIHRoZSBhY2NvdW50IHdhcyBpbiBvcHBvc2l0aW9uIHRvIHRoZSByZXN1bHQ7IG9y1CAgLSB0aGVyZSB3YXMgbm8gY29udmljdGlvbiB0byB0aGUgYWNjb3VudCdzIHZvdGU7IG9yhCAgLSB0aGUgYWNjb3VudCBtYWRlIGEgc3BsaXQgdm90ZV0BLi4udGhlbiB0aGUgdm90ZSBpcyByZW1vdmVkIGNsZWFubHkgYW5kIGEgZm9sbG93aW5nIGNhbGwgdG8gYHVubG9ja2AgbWF5IHJlc3VsdCBpbiBtb3JlWGZ1bmRzIGJlaW5nIGF2YWlsYWJsZS4AqElmLCBob3dldmVyLCB0aGUgcmVmZXJlbmR1bSBoYXMgZW5kZWQgYW5kOuwtIGl0IGZpbmlzaGVkIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQsIGFuZNwtIHRoZSBhY2NvdW50IG1hZGUgYSBzdGFuZGFyZCB2b3RlIHdpdGggY29udmljdGlvbiwgYW5kvC0gdGhlIGxvY2sgcGVyaW9kIG9mIHRoZSBjb252aWN0aW9uIGlzIG5vdCBvdmVyWQEuLi50aGVuIHRoZSBsb2NrIHdpbGwgYmUgYWdncmVnYXRlZCBpbnRvIHRoZSBvdmVyYWxsIGFjY291bnQncyBsb2NrLCB3aGljaCBtYXkgaW52b2x2ZVkBKm92ZXJsb2NraW5nKiAod2hlcmUgdGhlIHR3byBsb2NrcyBhcmUgY29tYmluZWQgaW50byBhIHNpbmdsZSBsb2NrIHRoYXQgaXMgdGhlIG1heGltdW3kb2YgYm90aCB0aGUgYW1vdW50IGxvY2tlZCBhbmQgdGhlIHRpbWUgaXMgaXQgbG9ja2VkIGZvcikuAEkBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduZXIgbXVzdCBoYXZlIGEgdm90ZYhyZWdpc3RlcmVkIGZvciByZWZlcmVuZHVtIGBpbmRleGAuAPQtIGBpbmRleGA6IFRoZSBpbmRleCBvZiByZWZlcmVuZHVtIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuAFUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS5EcmVtb3ZlX290aGVyX3ZvdGUIARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AA88fFJlbW92ZSBhIHZvdGUgZm9yIGEgcmVmZXJlbmR1bS4ATQFJZiB0aGUgYHRhcmdldGAgaXMgZXF1YWwgdG8gdGhlIHNpZ25lciwgdGhlbiB0aGlzIGZ1bmN0aW9uIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0by0BYHJlbW92ZV92b3RlYC4gSWYgbm90IGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhlIHZvdGUgbXVzdCBoYXZlIGV4cGlyZWQsVQFlaXRoZXIgYmVjYXVzZSB0aGUgcmVmZXJlbmR1bSB3YXMgY2FuY2VsbGVkLCBiZWNhdXNlIHRoZSB2b3RlciBsb3N0IHRoZSByZWZlcmVuZHVtIG9ymGJlY2F1c2UgdGhlIGNvbnZpY3Rpb24gcGVyaW9kIGlzIG92ZXIuAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBNAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQ7IHRoaXMgYWNjb3VudCBtdXN0IGhhdmUgdm90ZWQgZm9yVCAgcmVmZXJlbmR1bSBgaW5kZXhgLvQtIGBpbmRleGA6IFRoZSBpbmRleCBvZiByZWZlcmVuZHVtIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuAFUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS4kYmxhY2tsaXN0CAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAATxtYXliZV9yZWZfaW5kZXh0AVxPcHRpb248UmVmZXJlbmR1bUluZGV4PgAQPEUBUGVybWFuZW50bHkgcGxhY2UgYSBwcm9wb3NhbCBpbnRvIHRoZSBibGFja2xpc3QuIFRoaXMgcHJldmVudHMgaXQgZnJvbSBldmVyIGJlaW5nPHByb3Bvc2VkIGFnYWluLgBRAUlmIGNhbGxlZCBvbiBhIHF1ZXVlZCBwdWJsaWMgb3IgZXh0ZXJuYWwgcHJvcG9zYWwsIHRoZW4gdGhpcyB3aWxsIHJlc3VsdCBpbiBpdCBiZWluZ1EBcmVtb3ZlZC4gSWYgdGhlIGByZWZfaW5kZXhgIHN1cHBsaWVkIGlzIGFuIGFjdGl2ZSByZWZlcmVuZHVtIHdpdGggdGhlIHByb3Bvc2FsIGhhc2gsaHRoZW4gaXQgd2lsbCBiZSBjYW5jZWxsZWQuAOxUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBCbGFja2xpc3RPcmlnaW5gLgD4LSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBwcm9wb3NhbCBoYXNoIHRvIGJsYWNrbGlzdCBwZXJtYW5lbnRseS5FAS0gYHJlZl9pbmRleGA6IEFuIG9uZ29pbmcgcmVmZXJlbmR1bSB3aG9zZSBoYXNoIGlzIGBwcm9wb3NhbF9oYXNoYCwgd2hpY2ggd2lsbCBiZShjYW5jZWxsZWQuAEEBV2VpZ2h0OiBgTyhwKWAgKHRob3VnaCBhcyB0aGlzIGlzIGFuIGhpZ2gtcHJpdmlsZWdlIGRpc3BhdGNoLCB3ZSBhc3N1bWUgaXQgaGFzIGFQICByZWFzb25hYmxlIHZhbHVlKS48Y2FuY2VsX3Byb3Bvc2FsBAEocHJvcF9pbmRleGwBJFByb3BJbmRleAARHEhSZW1vdmUgYSBwcm9wb3NhbC4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBDYW5jZWxQcm9wb3NhbE9yaWdpbmAuANAtIGBwcm9wX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSBwcm9wb3NhbCB0byBjYW5jZWwuAORXZWlnaHQ6IGBPKHApYCB3aGVyZSBgcCA9IFB1YmxpY1Byb3BzOjo8VD46OmRlY29kZV9sZW4oKWAwc2V0X21ldGFkYXRhCAEUb3duZXLBAQE0TWV0YWRhdGFPd25lcgABKG1heWJlX2hhc2jFAQE8T3B0aW9uPFQ6Okhhc2g+ABI82FNldCBvciBjbGVhciBhIG1ldGFkYXRhIG9mIGEgcHJvcG9zYWwgb3IgYSByZWZlcmVuZHVtLgAsUGFyYW1ldGVyczrMLSBgb3JpZ2luYDogTXVzdCBjb3JyZXNwb25kIHRvIHRoZSBgTWV0YWRhdGFPd25lcmAuPQEgICAgLSBgRXh0ZXJuYWxPcmlnaW5gIGZvciBhbiBleHRlcm5hbCBwcm9wb3NhbCB3aXRoIHRoZSBgU3VwZXJNYWpvcml0eUFwcHJvdmVgQCAgICAgIHRocmVzaG9sZC5ZASAgICAtIGBFeHRlcm5hbERlZmF1bHRPcmlnaW5gIGZvciBhbiBleHRlcm5hbCBwcm9wb3NhbCB3aXRoIHRoZSBgU3VwZXJNYWpvcml0eUFnYWluc3RgQCAgICAgIHRocmVzaG9sZC5FASAgICAtIGBFeHRlcm5hbE1ham9yaXR5T3JpZ2luYCBmb3IgYW4gZXh0ZXJuYWwgcHJvcG9zYWwgd2l0aCB0aGUgYFNpbXBsZU1ham9yaXR5YEAgICAgICB0aHJlc2hvbGQuyCAgICAtIGBTaWduZWRgIGJ5IGEgY3JlYXRvciBmb3IgYSBwdWJsaWMgcHJvcG9zYWwu9CAgICAtIGBTaWduZWRgIHRvIGNsZWFyIGEgbWV0YWRhdGEgZm9yIGEgZmluaXNoZWQgcmVmZXJlbmR1bS7kICAgIC0gYFJvb3RgIHRvIHNldCBhIG1ldGFkYXRhIGZvciBhbiBvbmdvaW5nIHJlZmVyZW5kdW0utC0gYG93bmVyYDogYW4gaWRlbnRpZmllciBvZiBhIG1ldGFkYXRhIG93bmVyLlEBLSBgbWF5YmVfaGFzaGA6IFRoZSBoYXNoIG9mIGFuIG9uLWNoYWluIHN0b3JlZCBwcmVpbWFnZS4gYE5vbmVgIHRvIGNsZWFyIGEgbWV0YWRhdGEuRGZvcmNlX3JlbW92ZV92b3RlCAEYdGFyZ2V0AAFsY3JhdGU6OkFjY291bnRJZExvb2t1cE9mPFQ+AAEUaW5kZXgoAXRjcmF0ZTo6dHlwZXM6OlJlZmVyZW5kdW1JbmRleAATPLhBbGxvdyB0byBmb3JjZSByZW1vdmUgYSB2b3RlIGZvciBhIHJlZmVyZW5kdW0uACkBU2FtZSBhcyBgcmVtb3ZlX290aGVyX3ZvdGVgLCBleGNlcHQgdGhlIHNjb3BlIGlzIG92ZXJyaWRlbiBieSBmb3JjZWQgZmxhZy70VGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgVm90ZVJlbW92YWxPcmlnaW5gLgCsT25seSBhbGxvd2VkIGlmIHRoZSByZWZlcmVuZHVtIGlzIGZpbmlzaGVkLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ATQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkOyB0aGlzIGFjY291bnQgbXVzdCBoYXZlIHZvdGVkIGZvclQgIHJlZmVyZW5kdW0gYGluZGV4YC70LSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcmVmZXJlbmR1bSBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLgBVAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkBEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyRwcmVpbWFnZXMcQm91bmRlZAgEVAEMBEgBrQEBDBhMZWdhY3kEARBoYXNoLAEkSDo6T3V0cHV0AAAAGElubGluZQQAsQEBNEJvdW5kZWRJbmxpbmUAAQAYTG9va3VwCAEQaGFzaCwBJEg6Ok91dHB1dAABDGxlbigBDHUzMgACAACtAQwoc3BfcnVudGltZRh0cmFpdHMsQmxha2VUd28yNTYAAAAAsQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAC1AQxAcGFsbGV0X2RlbW9jcmFjeRB2b3RlLEFjY291bnRWb3RlBBxCYWxhbmNlAUABCCBTdGFuZGFyZAgBEHZvdGW5AQEQVm90ZQABHGJhbGFuY2VAARxCYWxhbmNlAAAAFFNwbGl0CAEMYXllQAEcQmFsYW5jZQABDG5heUABHEJhbGFuY2UAAQAAuQEMQHBhbGxldF9kZW1vY3JhY3kQdm90ZRBWb3RlAAAEAAgAAAC9AQxAcGFsbGV0X2RlbW9jcmFjeShjb252aWN0aW9uKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAADBAQxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlczRNZXRhZGF0YU93bmVyAAEMIEV4dGVybmFsAAAAIFByb3Bvc2FsBAAoASRQcm9wSW5kZXgAAQAoUmVmZXJlbmR1bQQAKAE8UmVmZXJlbmR1bUluZGV4AAIAAMUBBBhPcHRpb24EBFQBLAEIEE5vbmUAAAAQU29tZQQALAAAAQAAyQEMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBBDYWxsCARUAARJAAEgLHNldF9tZW1iZXJzDAEsbmV3X21lbWJlcnNIAURWZWM8VDo6QWNjb3VudElkPgABFHByaW1lzQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEkb2xkX2NvdW50KAEsTWVtYmVyQ291bnQAAGCAU2V0IHRoZSBjb2xsZWN0aXZlJ3MgbWVtYmVyc2hpcC4ARQEtIGBuZXdfbWVtYmVyc2A6IFRoZSBuZXcgbWVtYmVyIGxpc3QuIEJlIG5pY2UgdG8gdGhlIGNoYWluIGFuZCBwcm92aWRlIGl0IHNvcnRlZC7gLSBgcHJpbWVgOiBUaGUgcHJpbWUgbWVtYmVyIHdob3NlIHZvdGUgc2V0cyB0aGUgZGVmYXVsdC5ZAS0gYG9sZF9jb3VudGA6IFRoZSB1cHBlciBib3VuZCBmb3IgdGhlIHByZXZpb3VzIG51bWJlciBvZiBtZW1iZXJzIGluIHN0b3JhZ2UuIFVzZWQgZm9yUCAgd2VpZ2h0IGVzdGltYXRpb24uANRUaGUgZGlzcGF0Y2ggb2YgdGhpcyBjYWxsIG11c3QgYmUgYFNldE1lbWJlcnNPcmlnaW5gLgBRAU5PVEU6IERvZXMgbm90IGVuZm9yY2UgdGhlIGV4cGVjdGVkIGBNYXhNZW1iZXJzYCBsaW1pdCBvbiB0aGUgYW1vdW50IG9mIG1lbWJlcnMsIGJ1dCEBICAgICAgdGhlIHdlaWdodCBlc3RpbWF0aW9ucyByZWx5IG9uIGl0IHRvIGVzdGltYXRlIGRpc3BhdGNoYWJsZSB3ZWlnaHQuACgjIFdBUk5JTkc6AFkBVGhlIGBwYWxsZXQtY29sbGVjdGl2ZWAgY2FuIGFsc28gYmUgbWFuYWdlZCBieSBsb2dpYyBvdXRzaWRlIG9mIHRoZSBwYWxsZXQgdGhyb3VnaCB0aGW4aW1wbGVtZW50YXRpb24gb2YgdGhlIHRyYWl0IFtgQ2hhbmdlTWVtYmVyc2BdLlUBQW55IGNhbGwgdG8gYHNldF9tZW1iZXJzYCBtdXN0IGJlIGNhcmVmdWwgdGhhdCB0aGUgbWVtYmVyIHNldCBkb2Vzbid0IGdldCBvdXQgb2Ygc3luY6R3aXRoIG90aGVyIGxvZ2ljIG1hbmFnaW5nIHRoZSBtZW1iZXIgc2V0LgA4IyMgQ29tcGxleGl0eTpQLSBgTyhNUCArIE4pYCB3aGVyZTrgICAtIGBNYCBvbGQtbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCngICAtIGBOYCBuZXctbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCmYICAtIGBQYCBwcm9wb3NhbHMtY291bnQgKGNvZGUtYm91bmRlZCkcZXhlY3V0ZQgBIHByb3Bvc2FsDAF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZGwBDHUzMgABJPBEaXNwYXRjaCBhIHByb3Bvc2FsIGZyb20gYSBtZW1iZXIgdXNpbmcgdGhlIGBNZW1iZXJgIG9yaWdpbi4AqE9yaWdpbiBtdXN0IGJlIGEgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aXZlLgA4IyMgQ29tcGxleGl0eTpcLSBgTyhCICsgTSArIFApYCB3aGVyZTrYLSBgQmAgaXMgYHByb3Bvc2FsYCBzaXplIGluIGJ5dGVzIChsZW5ndGgtZmVlLWJvdW5kZWQpiC0gYE1gIG1lbWJlcnMtY291bnQgKGNvZGUtYm91bmRlZCmoLSBgUGAgY29tcGxleGl0eSBvZiBkaXNwYXRjaGluZyBgcHJvcG9zYWxgHHByb3Bvc2UMASR0aHJlc2hvbGRsASxNZW1iZXJDb3VudAABIHByb3Bvc2FsDAF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZGwBDHUzMgACOPhBZGQgYSBuZXcgcHJvcG9zYWwgdG8gZWl0aGVyIGJlIHZvdGVkIG9uIG9yIGV4ZWN1dGVkIGRpcmVjdGx5LgCEUmVxdWlyZXMgdGhlIHNlbmRlciB0byBiZSBtZW1iZXIuAEEBYHRocmVzaG9sZGAgZGV0ZXJtaW5lcyB3aGV0aGVyIGBwcm9wb3NhbGAgaXMgZXhlY3V0ZWQgZGlyZWN0bHkgKGB0aHJlc2hvbGQgPCAyYClUb3IgcHV0IHVwIGZvciB2b3RpbmcuADQjIyBDb21wbGV4aXR5rC0gYE8oQiArIE0gKyBQMSlgIG9yIGBPKEIgKyBNICsgUDIpYCB3aGVyZTrgICAtIGBCYCBpcyBgcHJvcG9zYWxgIHNpemUgaW4gYnl0ZXMgKGxlbmd0aC1mZWUtYm91bmRlZCncICAtIGBNYCBpcyBtZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKcQgIC0gYnJhbmNoaW5nIGlzIGluZmx1ZW5jZWQgYnkgYHRocmVzaG9sZGAgd2hlcmU69CAgICAtIGBQMWAgaXMgcHJvcG9zYWwgZXhlY3V0aW9uIGNvbXBsZXhpdHkgKGB0aHJlc2hvbGQgPCAyYCn8ICAgIC0gYFAyYCBpcyBwcm9wb3NhbHMtY291bnQgKGNvZGUtYm91bmRlZCkgKGB0aHJlc2hvbGQgPj0gMmApEHZvdGUMASBwcm9wb3NhbCwBHFQ6Okhhc2gAARRpbmRleGwBNFByb3Bvc2FsSW5kZXgAARxhcHByb3ZlRAEQYm9vbAADJPBBZGQgYW4gYXllIG9yIG5heSB2b3RlIGZvciB0aGUgc2VuZGVyIHRvIHRoZSBnaXZlbiBwcm9wb3NhbC4AjFJlcXVpcmVzIHRoZSBzZW5kZXIgdG8gYmUgYSBtZW1iZXIuAEkBVHJhbnNhY3Rpb24gZmVlcyB3aWxsIGJlIHdhaXZlZCBpZiB0aGUgbWVtYmVyIGlzIHZvdGluZyBvbiBhbnkgcGFydGljdWxhciBwcm9wb3NhbFEBZm9yIHRoZSBmaXJzdCB0aW1lIGFuZCB0aGUgY2FsbCBpcyBzdWNjZXNzZnVsLiBTdWJzZXF1ZW50IHZvdGUgY2hhbmdlcyB3aWxsIGNoYXJnZSBhEGZlZS40IyMgQ29tcGxleGl0eQkBLSBgTyhNKWAgd2hlcmUgYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpTGRpc2FwcHJvdmVfcHJvcG9zYWwEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAFKFkBRGlzYXBwcm92ZSBhIHByb3Bvc2FsLCBjbG9zZSwgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzeXN0ZW0sIHJlZ2FyZGxlc3Mgb2YgaXRzIGN1cnJlbnQYc3RhdGUuAIhNdXN0IGJlIGNhbGxlZCBieSB0aGUgUm9vdCBvcmlnaW4uACxQYXJhbWV0ZXJzOh0BKiBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCB0aGF0IHNob3VsZCBiZSBkaXNhcHByb3ZlZC4ANCMjIENvbXBsZXhpdHmsTyhQKSB3aGVyZSBQIGlzIHRoZSBudW1iZXIgb2YgbWF4IHByb3Bvc2FscxRjbG9zZRABNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEUaW5kZXhsATRQcm9wb3NhbEluZGV4AAFUcHJvcG9zYWxfd2VpZ2h0X2JvdW5k5AEYV2VpZ2h0AAEwbGVuZ3RoX2JvdW5kbAEMdTMyAAZgTQFDbG9zZSBhIHZvdGUgdGhhdCBpcyBlaXRoZXIgYXBwcm92ZWQsIGRpc2FwcHJvdmVkIG9yIHdob3NlIHZvdGluZyBwZXJpb2QgaGFzIGVuZGVkLgBVAU1heSBiZSBjYWxsZWQgYnkgYW55IHNpZ25lZCBhY2NvdW50IGluIG9yZGVyIHRvIGZpbmlzaCB2b3RpbmcgYW5kIGNsb3NlIHRoZSBwcm9wb3NhbC4ASQFJZiBjYWxsZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgaXQgd2lsbCBvbmx5IGNsb3NlIHRoZSB2b3RlIGlmIGl0IGlzvGhhcyBlbm91Z2ggdm90ZXMgdG8gYmUgYXBwcm92ZWQgb3IgZGlzYXBwcm92ZWQuAEkBSWYgY2FsbGVkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgYWJzdGVudGlvbnMgYXJlIGNvdW50ZWQgYXMgcmVqZWN0aW9ucyUBdW5sZXNzIHRoZXJlIGlzIGEgcHJpbWUgbWVtYmVyIHNldCBhbmQgdGhlIHByaW1lIG1lbWJlciBjYXN0IGFuIGFwcHJvdmFsLgBhAUlmIHRoZSBjbG9zZSBvcGVyYXRpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSB3aXRoIGRpc2FwcHJvdmFsLCB0aGUgdHJhbnNhY3Rpb24gZmVlIHdpbGxdAWJlIHdhaXZlZC4gT3RoZXJ3aXNlIGV4ZWN1dGlvbiBvZiB0aGUgYXBwcm92ZWQgb3BlcmF0aW9uIHdpbGwgYmUgY2hhcmdlZCB0byB0aGUgY2FsbGVyLgBhASsgYHByb3Bvc2FsX3dlaWdodF9ib3VuZGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgY29uc3VtZWQgYnkgZXhlY3V0aW5nIHRoZSBjbG9zZWQkcHJvcG9zYWwuYQErIGBsZW5ndGhfYm91bmRgOiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHByb3Bvc2FsIGluIHN0b3JhZ2UuIENoZWNrZWQgdmlhNQFgc3RvcmFnZTo6cmVhZGAgc28gaXQgaXMgYHNpemVfb2Y6Ojx1MzI+KCkgPT0gNGAgbGFyZ2VyIHRoYW4gdGhlIHB1cmUgbGVuZ3RoLgA0IyMgQ29tcGxleGl0eXQtIGBPKEIgKyBNICsgUDEgKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpyCAgLSBgUDFgIGlzIHRoZSBjb21wbGV4aXR5IG9mIGBwcm9wb3NhbGAgcHJlaW1hZ2UupCAgLSBgUDJgIGlzIHByb3Bvc2FsLWNvdW50IChjb2RlLWJvdW5kZWQpEGtpbGwEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAHHCUBRGlzYXBwcm92ZSB0aGUgcHJvcG9zYWwgYW5kIGJ1cm4gdGhlIGNvc3QgaGVsZCBmb3Igc3RvcmluZyB0aGlzIHByb3Bvc2FsLgAsUGFyYW1ldGVyczqULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLgkBLSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCB0aGF0IHNob3VsZCBiZSBraWxsZWQuAEkBRW1pdHMgYEtpbGxlZGAgYW5kIGBQcm9wb3NhbENvc3RCdXJuZWRgIGlmIGFueSBjb3N0IHdhcyBoZWxkIGZvciBhIGdpdmVuIHByb3Bvc2FsLlRyZWxlYXNlX3Byb3Bvc2FsX2Nvc3QEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAIJEkBUmVsZWFzZSB0aGUgY29zdCBoZWxkIGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgb25jZSB0aGUgZ2l2ZW4gcHJvcG9zYWwgaXMgY29tcGxldGVkLgBVAUlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29zdCBmb3IgdGhlIGdpdmVuIHByb3Bvc2FsLCB0aGlzIGNhbGwgd2lsbCBoYXZlIG5vIGVmZmVjdC4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLrAtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsLgANAUVtaXRzIGBQcm9wb3NhbENvc3RSZWxlYXNlZGAgaWYgYW55IGNvc3QgaGVsZCBmb3IgYSBnaXZlbiBwcm9wb3NhbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuzQEEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAADRAQwwcGFsbGV0X3Byb3h5GHBhbGxldBBDYWxsBARUAAEsFHByb3h5DAEQcmVhbAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAFAZm9yY2VfcHJveHlfdHlwZdUBAVBPcHRpb248VDo6UHJveHlUeXBlPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAkTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXNlZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LiRhZGRfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAEkRQFSZWdpc3RlciBhIHByb3h5IGFjY291bnQgZm9yIHRoZSBzZW5kZXIgdGhhdCBpcyBhYmxlIHRvIG1ha2UgY2FsbHMgb24gaXRzIGJlaGFsZi4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoRAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byBtYWtlIGEgcHJveHku/C0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgYWxsb3dlZCBmb3IgdGhpcyBwcm94eSBhY2NvdW50Lk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4wcmVtb3ZlX3Byb3h5DAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgACHKhVbnJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczolAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byByZW1vdmUgYXMgYSBwcm94eS5BAS0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgY3VycmVudGx5IGVuYWJsZWQgZm9yIHRoZSByZW1vdmVkIHByb3h5IGFjY291bnQuOHJlbW92ZV9wcm94aWVzAAMYtFVucmVnaXN0ZXIgYWxsIHByb3h5IGFjY291bnRzIGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAEEBV0FSTklORzogVGhpcyBtYXkgYmUgY2FsbGVkIG9uIGFjY291bnRzIGNyZWF0ZWQgYnkgYHB1cmVgLCBob3dldmVyIGlmIGRvbmUsIHRoZW5ZAXRoZSB1bnJlc2VydmVkIGZlZXMgd2lsbCBiZSBpbmFjY2Vzc2libGUuICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqLGNyZWF0ZV9wdXJlDAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXiAAQx1MTYABEg5AVNwYXduIGEgZnJlc2ggbmV3IGFjY291bnQgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIG90aGVyd2lzZSBpbmFjY2Vzc2libGUsIGFuZPxpbml0aWFsaXplIGl0IHdpdGggYSBwcm94eSBvZiBgcHJveHlfdHlwZWAgZm9yIGBvcmlnaW5gIHNlbmRlci4AbFJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLgBRAS0gYHByb3h5X3R5cGVgOiBUaGUgdHlwZSBvZiB0aGUgcHJveHkgdGhhdCB0aGUgc2VuZGVyIHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBvdmVyIHRoZU0BbmV3IGFjY291bnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSBtb3N0IHBlcm1pc3NpdmUgYFByb3h5VHlwZWAgcG9zc2libGUgdG94YWxsb3cgZm9yIG1heGltdW0gZmxleGliaWxpdHkuUQEtIGBpbmRleGA6IEEgZGlzYW1iaWd1YXRpb24gaW5kZXgsIGluIGNhc2UgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHNhbWVdAXRyYW5zYWN0aW9uIChlLmcuIHdpdGggYHV0aWxpdHk6OmJhdGNoYCkuIFVubGVzcyB5b3UncmUgdXNpbmcgYGJhdGNoYCB5b3UgcHJvYmFibHkganVzdEB3YW50IHRvIHVzZSBgMGAuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLgBRAUZhaWxzIHdpdGggYER1cGxpY2F0ZWAgaWYgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLCBmcm9tIHRoZZhzYW1lIHNlbmRlciwgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgDkRmFpbHMgaWYgdGhlcmUgYXJlIGluc3VmZmljaWVudCBmdW5kcyB0byBwYXkgZm9yIGRlcG9zaXQuJGtpbGxfcHVyZRQBHHNwYXduZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAEUaW5kZXiAAQx1MTYAARhoZWlnaHRsAURCbG9ja051bWJlckZvcjxUPgABJGV4dF9pbmRleGwBDHUzMgAFQKBSZW1vdmVzIGEgcHJldmlvdXNseSBzcGF3bmVkIHB1cmUgcHJveHkuAEkBV0FSTklORzogKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiogQW55IGZ1bmRzIGhlbGQgaW4gaXQgd2lsbCBiZTRpbmFjY2Vzc2libGUuAFkBUmVxdWlyZXMgYSBgU2lnbmVkYCBvcmlnaW4sIGFuZCB0aGUgc2VuZGVyIGFjY291bnQgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieSBhIGNhbGwgdG+UYHB1cmVgIHdpdGggY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLgA5AS0gYHNwYXduZXJgOiBUaGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY2FsbGVkIGBwdXJlYCB0byBjcmVhdGUgdGhpcyBhY2NvdW50LlUBLSBgaW5kZXhgOiBUaGUgZGlzYW1iaWd1YXRpb24gaW5kZXggb3JpZ2luYWxseSBwYXNzZWQgdG8gYGNyZWF0ZV9wdXJlYC4gUHJvYmFibHkgYDBgLuwtIGBwcm94eV90eXBlYDogVGhlIHByb3h5IHR5cGUgb3JpZ2luYWxseSBwYXNzZWQgdG8gYHB1cmVgLikBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgcHVyZWAgd2FzIHByb2Nlc3NlZC41AS0gYGV4dF9pbmRleGA6IFRoZSBleHRyaW5zaWMgaW5kZXggaW4gd2hpY2ggdGhlIGNhbGwgdG8gYHB1cmVgIHdhcyBwcm9jZXNzZWQuADUBRmFpbHMgd2l0aCBgTm9QZXJtaXNzaW9uYCBpbiBjYXNlIHRoZSBjYWxsZXIgaXMgbm90IGEgcHJldmlvdXNseSBjcmVhdGVkIHB1cmXcYWNjb3VudCB3aG9zZSBgcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2gsATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGXVAQFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAJLE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAKhSZW1vdmVzIGFueSBjb3JyZXNwb25kaW5nIGFubm91bmNlbWVudChzKS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LjBwb2tlX2RlcG9zaXQACiBJAVBva2UgLyBBZGp1c3QgZGVwb3NpdHMgbWFkZSBmb3IgcHJveGllcyBhbmQgYW5ub3VuY2VtZW50cyBiYXNlZCBvbiBjdXJyZW50IHZhbHVlcy4NAVRoaXMgY2FuIGJlIHVzZWQgYnkgYWNjb3VudHMgdG8gcG9zc2libHkgbG93ZXIgdGhlaXIgbG9ja2VkIGFtb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtUBBBhPcHRpb24EBFQB2QEBCBBOb25lAAAAEFNvbWUEANkBAAABAADZAQw8aHlkcmFkeF9ydW50aW1lGHN5c3RlbSRQcm94eVR5cGUAARgMQW55AAAALENhbmNlbFByb3h5AAEAKEdvdmVybmFuY2UAAgAgVHJhbnNmZXIAAwAkTGlxdWlkaXR5AAQAPExpcXVpZGl0eU1pbmluZwAFAADdAQw8cGFsbGV0X211bHRpc2lnGHBhbGxldBBDYWxsBARUAAEUUGFzX211bHRpX3RocmVzaG9sZF8xCAFEb3RoZXJfc2lnbmF0b3JpZXNIAURWZWM8VDo6QWNjb3VudElkPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAwUQFJbW1lZGlhdGVseSBkaXNwYXRjaCBhIG11bHRpLXNpZ25hdHVyZSBjYWxsIHVzaW5nIGEgc2luZ2xlIGFwcHJvdmFsIGZyb20gdGhlIGNhbGxlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA9AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUBAW11bHRpLXNpZ25hdHVyZSwgYnV0IGRvIG5vdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYXBwcm92YWwgcHJvY2Vzcy6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgC4UmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0LgA0IyMgQ29tcGxleGl0eRkBTyhaICsgQykgd2hlcmUgWiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBjYWxsIGFuZCBDIGl0cyBleGVjdXRpb24gd2VpZ2h0LiBhc19tdWx0aRQBJHRocmVzaG9sZIABDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzSAFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnThAQGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAGcVQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuALBJZiB0aGVyZSBhcmUgZW5vdWdoLCB0aGVuIGRpc3BhdGNoIHRoZSBjYWxsLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgAdAU5PVEU6IFVubGVzcyB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgZ2VuZXJhbGx5IHdhbnQgdG8gdXNlGQFgYXBwcm92ZV9hc19tdWx0aWAgaW5zdGVhZCwgc2luY2UgaXQgb25seSByZXF1aXJlcyBhIGhhc2ggb2YgdGhlIGNhbGwuAFkBUmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0IGlmIGB0aHJlc2hvbGRgIGlzIGV4YWN0bHkgYDFgLiBPdGhlcndpc2VVAW9uIHN1Y2Nlc3MsIHJlc3VsdCBpcyBgT2tgIGFuZCB0aGUgcmVzdWx0IGZyb20gdGhlIGludGVyaW9yIGNhbGwsIGlmIGl0IHdhcyBleGVjdXRlZCzcbWF5IGJlIGZvdW5kIGluIHRoZSBkZXBvc2l0ZWQgYE11bHRpc2lnRXhlY3V0ZWRgIGV2ZW50LgA0IyMgQ29tcGxleGl0eVAtIGBPKFMgKyBaICsgQ2FsbClgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLiEBLSBPbmUgY2FsbCBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oWilgIHdoZXJlIGBaYCBpcyB0eC1sZW4uvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50LmwtIFRoZSB3ZWlnaHQgb2YgdGhlIGBjYWxsYC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuQGFwcHJvdmVfYXNfbXVsdGkUASR0aHJlc2hvbGSAAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc0gBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW504QEBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABJGNhbGxfaGFzaAQBIFt1ODsgMzJdAAEobWF4X3dlaWdodOQBGFdlaWdodAACeFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi7MLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuADUBTk9URTogSWYgdGhpcyBpcyB0aGUgZmluYWwgYXBwcm92YWwsIHlvdSB3aWxsIHdhbnQgdG8gdXNlIGBhc19tdWx0aWAgaW5zdGVhZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50Lk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC48Y2FuY2VsX2FzX211bHRpEAEkdGhyZXNob2xkgAEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXNIAURWZWM8VDo6QWNjb3VudElkPgABJHRpbWVwb2ludOUBAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AA1RVAUNhbmNlbCBhIHByZS1leGlzdGluZywgb24tZ29pbmcgbXVsdGlzaWcgdHJhbnNhY3Rpb24uIEFueSBkZXBvc2l0IHJlc2VydmVkIHByZXZpb3VzbHnEZm9yIHRoaXMgb3BlcmF0aW9uIHdpbGwgYmUgdW5yZXNlcnZlZCBvbiBzdWNjZXNzLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuXQEtIGB0aW1lcG9pbnRgOiBUaGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5kIHRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWx4dHJhbnNhY3Rpb24gZm9yIHRoaXMgZGlzcGF0Y2guzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC4wLSBPbmUgZXZlbnQuhC0gSS9POiAxIHJlYWQgYE8oUylgLCBvbmUgcmVtb3ZlLnAtIFN0b3JhZ2U6IHJlbW92ZXMgb25lIGl0ZW0uMHBva2VfZGVwb3NpdAwBJHRocmVzaG9sZIABDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzSAFEVmVjPFQ6OkFjY291bnRJZD4AASRjYWxsX2hhc2gEASBbdTg7IDMyXQAENPRQb2tlIHRoZSBkZXBvc2l0IHJlc2VydmVkIGZvciBhbiBleGlzdGluZyBtdWx0aXNpZyBvcGVyYXRpb24uAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgdGhlIG9yaWdpbmFsIGRlcG9zaXRvciBvZlx0aGUgbXVsdGlzaWcgb3BlcmF0aW9uLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AGQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBuZWVkZWQgZm9yIHRoaXMgbXVsdGlzaWcuPQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gYXJlIHBhcnQgb2YgdGhlLCAgbXVsdGlzaWcuBQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0aGlzIGRlcG9zaXQgaXMgcmVzZXJ2ZWQgZm9yLgCMRW1pdHMgYERlcG9zaXRQb2tlZGAgaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu4QEEGE9wdGlvbgQEVAHlAQEIEE5vbmUAAAAQU29tZQQA5QEAAAEAAOUBCDxwYWxsZXRfbXVsdGlzaWckVGltZXBvaW50BCxCbG9ja051bWJlcgEoAAgBGGhlaWdodCgBLEJsb2NrTnVtYmVyAAEUaW5kZXgoAQx1MzIAAOkBDDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQQQ2FsbAgEVAAESQABaBhjcmVhdGUIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAQAkBSXNzdWUgYSBuZXcgY29sbGVjdGlvbiBvZiBub24tZnVuZ2libGUgaXRlbXMgZnJvbSBhIHB1YmxpYyBvcmlnaW4uAB0BVGhpcyBuZXcgY29sbGVjdGlvbiBoYXMgbm8gaXRlbXMgaW5pdGlhbGx5IGFuZCBpdHMgb3duZXIgaXMgdGhlIG9yaWdpbi4AYQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byB0aGUgY29uZmlndXJlZCBgQ3JlYXRlT3JpZ2luYCBhbmQgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZyZWUuAKxgSXRlbURlcG9zaXRgIGZ1bmRzIG9mIHNlbmRlciBhcmUgcmVzZXJ2ZWQuACxQYXJhbWV0ZXJzOmEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgY29sbGVjdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlLkUBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjb2xsZWN0aW9uLiBUaGUgYWRtaW4gaXMgdGhlIGluaXRpYWwgYWRkcmVzcyBvZiBlYWNomG1lbWJlciBvZiB0aGUgY29sbGVjdGlvbidzIGFkbWluIHRlYW0uAJhFbWl0cyBgQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAwZm9yY2VfY3JlYXRlDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATBmcmVlX2hvbGRpbmdEARBib29sAAFEGQFJc3N1ZSBhIG5ldyBjb2xsZWN0aW9uIG9mIG5vbi1mdW5naWJsZSBpdGVtcyBmcm9tIGEgcHJpdmlsZWdlZCBvcmlnaW4uAKxUaGlzIG5ldyBjb2xsZWN0aW9uIGhhcyBubyBpdGVtcyBpbml0aWFsbHkuAKRUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gLgCcVW5saWtlIGBjcmVhdGVgLCBubyBmdW5kcyBhcmUgcmVzZXJ2ZWQuAEkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgaXRlbS4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlLjkBLSBgb3duZXJgOiBUaGUgb3duZXIgb2YgdGhpcyBjb2xsZWN0aW9uIG9mIGl0ZW1zLiBUaGUgb3duZXIgaGFzIGZ1bGwgc3VwZXJ1c2VyNCAgcGVybWlzc2lvbnMhAW92ZXIgdGhpcyBpdGVtLCBidXQgbWF5IGxhdGVyIGNoYW5nZSBhbmQgY29uZmlndXJlIHRoZSBwZXJtaXNzaW9ucyB1c2luZ5BgdHJhbnNmZXJfb3duZXJzaGlwYCBhbmQgYHNldF90ZWFtYC4ArEVtaXRzIGBGb3JjZUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgHGRlc3Ryb3kIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEcd2l0bmVzc+0BAThEZXN0cm95V2l0bmVzcwACPJxEZXN0cm95IGEgY29sbGVjdGlvbiBvZiBmdW5naWJsZSBpdGVtcy4AXQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGVob3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4ABQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gdG8gYmUgZGVzdHJveWVkLjEBLSBgd2l0bmVzc2A6IEluZm9ybWF0aW9uIG9uIHRoZSBpdGVtcyBtaW50ZWQgaW4gdGhlIGNvbGxlY3Rpb24uIFRoaXMgbXVzdCBiZSBjb3JyZWN0LgCgRW1pdHMgYERlc3Ryb3llZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBkV2VpZ2h0OiBgTyhuICsgbSlgIHdoZXJlOlQtIGBuID0gd2l0bmVzcy5pdGVtc2B4LSBgbSA9IHdpdG5lc3MuaXRlbV9tZXRhZGF0YXNgaC0gYGEgPSB3aXRuZXNzLmF0dHJpYnV0ZXNgEG1pbnQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyygTWludCBhbiBpdGVtIG9mIGEgcGFydGljdWxhciBjb2xsZWN0aW9uLgBBAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgSXNzdWVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAOAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgbWludGVkLsgtIGBpdGVtYDogVGhlIGl0ZW0gdmFsdWUgb2YgdGhlIGl0ZW0gdG8gYmUgbWludGVkLtgtIGBiZW5lZmljaWFyeWA6IFRoZSBpbml0aWFsIG93bmVyIG9mIHRoZSBtaW50ZWQgaXRlbS4AlEVtaXRzIGBJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgEGJ1cm4MAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABLGNoZWNrX293bmVyzQEBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4ABDxYRGVzdHJveSBhIHNpbmdsZSBpdGVtLgD0T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgYmUgZWl0aGVyOoAtIHRoZSBBZG1pbiBvZiB0aGUgYGNvbGxlY3Rpb25gO2gtIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOwDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIGJ1cm5lZC6wLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIGJ1cm5lZC5RAS0gYGNoZWNrX293bmVyYDogSWYgYFNvbWVgIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBgV3JvbmdPd25lcmAgdW5sZXNzIHRoZXggIGl0ZW0gaXMgb3duZWQgYnkgdGhpcyB2YWx1ZS4AtEVtaXRzIGBCdXJuZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgYnVybmVkLgA4V2VpZ2h0OiBgTygxKWB8TW9kZXM6IGBjaGVja19vd25lci5pc19zb21lKClgLiB0cmFuc2ZlcgwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAVEwE1vdmUgYW4gaXRlbSBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLgC0VGhpcyByZXNldHMgdGhlIGFwcHJvdmVkIGFjY291bnQgb2YgdGhlIGl0ZW0uAPRPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBiZSBlaXRoZXI6gC0gdGhlIEFkbWluIG9mIHRoZSBgY29sbGVjdGlvbmA7aC0gdGhlIE93bmVyIG9mIHRoZSBgaXRlbWA7NQEtIHRoZSBhcHByb3ZlZCBkZWxlZ2F0ZSBmb3IgdGhlIGBpdGVtYCAoaW4gdGhpcyBjYXNlLCB0aGUgYXBwcm92YWwgaXMgcmVzZXQpLgAoQXJndW1lbnRzOvQtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgdHJhbnNmZXJyZWQuxC0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSB0cmFuc2ZlcnJlZC7cLSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIHJlY2VpdmUgb3duZXJzaGlwIG9mIHRoZSBpdGVtLgBQRW1pdHMgYFRyYW5zZmVycmVkYC4AOFdlaWdodDogYE8oMSlgJHJlZGVwb3NpdAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARRpdGVtc/EBAThWZWM8VDo6SXRlbUlkPgAGRJhSZWV2YWx1YXRlIHRoZSBkZXBvc2l0cyBvbiBzb21lIGl0ZW1zLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBgY29sbGVjdGlvbmAuALAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gdG8gYmUgZnJvemVuLikBLSBgaXRlbXNgOiBUaGUgaXRlbXMgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgZGVwb3NpdHMgd2lsbCBiZSByZWV2YWx1YXRlZC4ALQFOT1RFOiBUaGlzIGV4aXN0cyBhcyBhIGJlc3QtZWZmb3J0IGZ1bmN0aW9uLiBBbnkgaXRlbXMgd2hpY2ggYXJlIHVua25vd24gb3I5AWluIHRoZSBjYXNlIHRoYXQgdGhlIG93bmVyIGFjY291bnQgZG9lcyBub3QgaGF2ZSByZXNlcnZhYmxlIGZ1bmRzIHRvIHBheSBmb3IgYU0BZGVwb3NpdCBpbmNyZWFzZSBhcmUgaWdub3JlZC4gR2VuZXJhbGx5IHRoZSBvd25lciBpc24ndCBnb2luZyB0byBjYWxsIHRoaXMgb24gaXRlbXNVAXdob3NlIGV4aXN0aW5nIGRlcG9zaXQgaXMgbGVzcyB0aGFuIHRoZSByZWZyZXNoZWQgZGVwb3NpdCBhcyBpdCB3b3VsZCBvbmx5IGNvc3QgdGhlbSx4c28gaXQncyBvZiBsaXR0bGUgY29uc2VxdWVuY2UuAFkBSXQgd2lsbCBzdGlsbCByZXR1cm4gYW4gZXJyb3IgaW4gdGhlIGNhc2UgdGhhdCB0aGUgY29sbGVjdGlvbiBpcyB1bmtub3duIG9mIHRoZSBzaWduZXJwaXMgbm90IHBlcm1pdHRlZCB0byBjYWxsIGl0LgBgV2VpZ2h0OiBgTyhpdGVtcy5sZW4oKSlgGGZyZWV6ZQgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAcoyERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVyIG9mIGFuIGl0ZW0uAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIGZyb3plbi6wLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAQdGhhdwgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAgoqFJlLWFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlciBvZiBhbiBpdGVtLgA9AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A4C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSB0aGF3ZWQusC0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSB0aGF3ZWQuADxFbWl0cyBgVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgRGZyZWV6ZV9jb2xsZWN0aW9uBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAJJPxEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgZm9yIGEgd2hvbGUgY29sbGVjdGlvbi4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBgY29sbGVjdGlvbmAuALAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gdG8gYmUgZnJvemVuLgBkRW1pdHMgYENvbGxlY3Rpb25Gcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWA8dGhhd19jb2xsZWN0aW9uBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAKJNxSZS1hbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciBhIHdob2xlIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGBjb2xsZWN0aW9uYC4AsC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB0byBiZSB0aGF3ZWQuAGRFbWl0cyBgQ29sbGVjdGlvblRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEkbmV3X293bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ACyyEQ2hhbmdlIHRoZSBPd25lciBvZiBhIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A9C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB3aG9zZSBvd25lciBzaG91bGQgYmUgY2hhbmdlZC4JAS0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGNvbGxlY3Rpb24uIFRoZXkgbXVzdCBoYXZlIGNhbGxlZEkBICBgc2V0X2FjY2VwdF9vd25lcnNoaXBgIHdpdGggYGNvbGxlY3Rpb25gIGluIG9yZGVyIGZvciB0aGlzIG9wZXJhdGlvbiB0byBzdWNjZWVkLgBURW1pdHMgYE93bmVyQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYCBzZXRfdGVhbRABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADDDUQ2hhbmdlIHRoZSBJc3N1ZXIsIEFkbWluIGFuZCBGcmVlemVyIG9mIGEgY29sbGVjdGlvbi4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDwLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIHdob3NlIHRlYW0gc2hvdWxkIGJlIGNoYW5nZWQuuC0gYGlzc3VlcmA6IFRoZSBuZXcgSXNzdWVyIG9mIHRoaXMgY29sbGVjdGlvbi6wLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgY29sbGVjdGlvbi7ALSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGNvbGxlY3Rpb24uAFBFbWl0cyBgVGVhbUNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWBAYXBwcm92ZV90cmFuc2ZlcgwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgANOBUBQXBwcm92ZSBhbiBpdGVtIHRvIGJlIHRyYW5zZmVycmVkIGJ5IGEgZGVsZWdhdGVkIHRoaXJkLXBhcnR5IGFjY291bnQuAE0BVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIG11c3QgYmX4ZWl0aGVyIHRoZSBvd25lciBvZiB0aGUgYGl0ZW1gIG9yIHRoZSBhZG1pbiBvZiB0aGUgY29sbGVjdGlvbi4ARQEtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2Zlci4VAS0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyLhkBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0byBkZWxlZ2F0ZSBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIHRoZSBpdGVtLgAZAUltcG9ydGFudCBOT1RFOiBUaGUgYGFwcHJvdmVkYCBhY2NvdW50IGdldHMgcmVzZXQgYWZ0ZXIgZWFjaCB0cmFuc2Zlci4AkEVtaXRzIGBBcHByb3ZlZFRyYW5zZmVyYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWA8Y2FuY2VsX2FwcHJvdmFsDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAAVBtYXliZV9jaGVja19kZWxlZ2F0Zc0BAXBPcHRpb248QWNjb3VudElkTG9va3VwT2Y8VD4+AA5AEQFDYW5jZWwgdGhlIHByaW9yIGFwcHJvdmFsIGZvciB0aGUgdHJhbnNmZXIgb2YgYW4gaXRlbSBieSBhIGRlbGVnYXRlLgBYT3JpZ2luIG11c3QgYmUgZWl0aGVyOlQtIHRoZSBgRm9yY2VgIG9yaWdpbjv8LSBgU2lnbmVkYCB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluIG9mIHRoZSBgY29sbGVjdGlvbmA75C0gYFNpZ25lZGAgd2l0aCB0aGUgc2lnbmVyIGJlaW5nIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOwAoQXJndW1lbnRzOj0BLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIG9mIHdob3NlIGFwcHJvdmFsIHdpbGwgYmUgY2FuY2VsbGVkLg0BLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIG9mIHdob3NlIGFwcHJvdmFsIHdpbGwgYmUgY2FuY2VsbGVkLlEBLSBgbWF5YmVfY2hlY2tfZGVsZWdhdGVgOiBJZiBgU29tZWAgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZ2l2ZW4gYWNjb3VudCBpcyB0aGUgb25lIHRvsCAgd2hpY2ggcGVybWlzc2lvbiBvZiB0cmFuc2ZlciBpcyBkZWxlZ2F0ZWQuAJRFbWl0cyBgQXBwcm92YWxDYW5jZWxsZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYERmb3JjZV9pdGVtX3N0YXR1cxwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEwZnJlZV9ob2xkaW5nRAEQYm9vbAABJGlzX2Zyb3plbkQBEGJvb2wAD0CUQWx0ZXIgdGhlIGF0dHJpYnV0ZXMgb2YgYSBnaXZlbiBpdGVtLgB0T3JpZ2luIG11c3QgYmUgYEZvcmNlT3JpZ2luYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbS6YLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgaXRlbS6gLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBpdGVtLpgtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBpdGVtLqgtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgaXRlbS5RAS0gYGZyZWVfaG9sZGluZ2A6IFdoZXRoZXIgYSBkZXBvc2l0IGlzIHRha2VuIGZvciBob2xkaW5nIGFuIGl0ZW0gb2YgdGhpcyBjb2xsZWN0aW9uLjkBLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGlzIGNvbGxlY3Rpb24gaXMgZnJvemVuIGV4Y2VwdCBmb3IgcGVybWlzc2lvbmVkL2FkbWluNGluc3RydWN0aW9ucy4A4EVtaXRzIGBJdGVtU3RhdHVzQ2hhbmdlZGAgd2l0aCB0aGUgaWRlbnRpdHkgb2YgdGhlIGl0ZW0uADhXZWlnaHQ6IGBPKDEpYDRzZXRfYXR0cmlidXRlEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heWJlX2l0ZW31AQFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXn5AQFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWX9AQF0Qm91bmRlZFZlYzx1OCwgVDo6VmFsdWVMaW1pdD4AEESoU2V0IGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlNGBjb2xsZWN0aW9uYC4AUQFJZiB0aGUgb3JpZ2luIGlzIFNpZ25lZCwgdGhlbiBmdW5kcyBvZiBzaWduZXIgYXJlIHJlc2VydmVkIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTopAWBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiAoa2V5LmxlbiArIHZhbHVlLmxlbilgIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuADkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBzZXQuBQEtIGBtYXliZV9pdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gc2V0LogtIGBrZXlgOiBUaGUga2V5IG9mIHRoZSBhdHRyaWJ1dGUuzC0gYHZhbHVlYDogVGhlIHZhbHVlIHRvIHdoaWNoIHRvIHNldCB0aGUgYXR0cmlidXRlLgBURW1pdHMgYEF0dHJpYnV0ZVNldGAuADhXZWlnaHQ6IGBPKDEpYDxjbGVhcl9hdHRyaWJ1dGUMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbfUBAURPcHRpb248VDo6SXRlbUlkPgABDGtlefkBAWxCb3VuZGVkVmVjPHU4LCBUOjpLZXlMaW1pdD4AETiwQ2xlYXIgYW4gYXR0cmlidXRlIGZvciBhIGNvbGxlY3Rpb24gb3IgaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgDAQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBjb2xsZWN0aW9uJ3Mgb3duZXIuAEEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBjbGVhci4NAS0gYG1heWJlX2l0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBjbGVhci6ILSBga2V5YDogVGhlIGtleSBvZiB0aGUgYXR0cmlidXRlLgBkRW1pdHMgYEF0dHJpYnV0ZUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWAwc2V0X21ldGFkYXRhEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARBkYXRhAQIBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wAEkR0U2V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgBRAUlmIHRoZSBvcmlnaW4gaXMgU2lnbmVkLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOvRgTWV0YWRhdGFEZXBvc2l0QmFzZSArIERlcG9zaXRQZXJCeXRlICogZGF0YS5sZW5gIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuADkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBzZXQu7C0gYGl0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBzZXQuTQEtIGBkYXRhYDogVGhlIGdlbmVyYWwgaW5mb3JtYXRpb24gb2YgdGhpcyBpdGVtLiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLjUBLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGUgbWV0YWRhdGEgc2hvdWxkIGJlIGZyb3plbiBhZ2FpbnN0IGZ1cnRoZXIgY2hhbmdlcy4AUEVtaXRzIGBNZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYDhjbGVhcl9tZXRhZGF0YQgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkABM0fENsZWFyIHRoZSBtZXRhZGF0YSBmb3IgYW4gaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUcYGl0ZW1gLgDAQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBjb2xsZWN0aW9uJ3Mgb3duZXIuAEEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBjbGVhci70LSBgaXRlbWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFxzZXRfY29sbGVjdGlvbl9tZXRhZGF0YQwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBkYXRhAQIBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wAFECIU2V0IHRoZSBtZXRhZGF0YSBmb3IgYSBjb2xsZWN0aW9uLgBVAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2ZEdGhlIGBjb2xsZWN0aW9uYC4AWQFJZiB0aGUgb3JpZ2luIGlzIGBTaWduZWRgLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOvRgTWV0YWRhdGFEZXBvc2l0QmFzZSArIERlcG9zaXRQZXJCeXRlICogZGF0YS5sZW5gIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuABEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIHVwZGF0ZS5NAS0gYGRhdGFgOiBUaGUgZ2VuZXJhbCBpbmZvcm1hdGlvbiBvZiB0aGlzIGl0ZW0uIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuNQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoZSBtZXRhZGF0YSBzaG91bGQgYmUgZnJvemVuIGFnYWluc3QgZnVydGhlciBjaGFuZ2VzLgB4RW1pdHMgYENvbGxlY3Rpb25NZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYGRjbGVhcl9jb2xsZWN0aW9uX21ldGFkYXRhBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAVMJBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGEgY29sbGVjdGlvbi4AVQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mRHRoZSBgY29sbGVjdGlvbmAuAMBBbnkgZGVwb3NpdCBpcyBmcmVlZCBmb3IgdGhlIGNvbGxlY3Rpb24ncyBvd25lci4AJQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuAIhFbWl0cyBgQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFBzZXRfYWNjZXB0X293bmVyc2hpcAQBQG1heWJlX2NvbGxlY3Rpb271AQFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AFigRAVNldCAob3IgcmVzZXQpIHRoZSBhY2NlcHRhbmNlIG9mIG93bmVyc2hpcCBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQuAGEBT3JpZ2luIG11c3QgYmUgYFNpZ25lZGAgYW5kIGlmIGBtYXliZV9jb2xsZWN0aW9uYCBpcyBgU29tZWAsIHRoZW4gdGhlIHNpZ25lciBtdXN0IGhhdmUgYUxwcm92aWRlciByZWZlcmVuY2UuAFEBLSBgbWF5YmVfY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIG93bmVyc2hpcCB0aGUgc2lnbmVyIGlzYQEgIHdpbGxpbmcgdG8gYWNjZXB0LCBvciBpZiBgTm9uZWAsIGFuIGluZGljYXRpb24gdGhhdCB0aGUgc2lnbmVyIGlzIHdpbGxpbmcgdG8gYWNjZXB0IG5vXCAgb3duZXJzaGlwIHRyYW5zZmVyYWwuAIxFbWl0cyBgT3duZXJzaGlwQWNjZXB0YW5jZUNoYW5nZWRgLmRzZXRfY29sbGVjdGlvbl9tYXhfc3VwcGx5CAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heF9zdXBwbHkoAQx1MzIAFyzgU2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gY291bGQgaGF2ZS4AVQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mRHRoZSBgY29sbGVjdGlvbmAuAOROb3RlOiBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IHN1Y2NlZWQgb25jZSBwZXIgY29sbGVjdGlvbi4A7C0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB0byBjaGFuZ2UuEQEtIGBtYXhfc3VwcGx5YDogVGhlIG1heGltdW0gYW1vdW50IG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBjb3VsZCBoYXZlLgDURW1pdHMgYENvbGxlY3Rpb25NYXhTdXBwbHlTZXRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4kc2V0X3ByaWNlEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRwcmljZfUBAVxPcHRpb248SXRlbVByaWNlPFQsIEk+PgABRHdoaXRlbGlzdGVkX2J1eWVyzQEBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4AGCyUU2V0IChvciByZXNldCkgdGhlIHByaWNlIGZvciBhbiBpdGVtLgABAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgbXVzdCBiZSB0aGUgb3duZXIgb2YgdGhlIGFzc2V0IGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6gLSBgaXRlbWA6IFRoZSBpdGVtIHRvIHNldCB0aGUgcHJpY2UgZm9yLg0BLSBgcHJpY2VgOiBUaGUgcHJpY2UgZm9yIHRoZSBpdGVtLiBQYXNzIGBOb25lYCwgdG8gcmVzZXQgdGhlIHByaWNlLvQtIGBidXllcmA6IFJlc3RyaWN0cyB0aGUgYnV5IG9wZXJhdGlvbiB0byBhIHNwZWNpZmljIGFjY291bnQuAOxFbWl0cyBgSXRlbVByaWNlU2V0YCBvbiBzdWNjZXNzIGlmIHRoZSBwcmljZSBpcyBub3QgYE5vbmVgLuxFbWl0cyBgSXRlbVByaWNlUmVtb3ZlZGAgb24gc3VjY2VzcyBpZiB0aGUgcHJpY2UgaXMgYE5vbmVgLiBidXlfaXRlbQwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEkYmlkX3ByaWNlQAE8SXRlbVByaWNlPFQsIEk+ABkkqEFsbG93cyB0byBidXkgYW4gaXRlbSBpZiBpdCdzIHVwIGZvciBzYWxlLgD4T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IG5vdCBiZSB0aGUgb3duZXIgb2YgdGhlIGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6sLSBgaXRlbWA6IFRoZSBpdGVtIHRoZSBzZW5kZXIgd2FudHMgdG8gYnV5LtgtIGBiaWRfcHJpY2VgOiBUaGUgcHJpY2UgdGhlIHNlbmRlciBpcyB3aWxsaW5nIHRvIHBheS4AeEVtaXRzIGBJdGVtQm91Z2h0YCBvbiBzdWNjZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7tAQw4cGFsbGV0X3VuaXF1ZXMUdHlwZXM4RGVzdHJveVdpdG5lc3MAAAwBFGl0ZW1zbAEMdTMyAAE4aXRlbV9tZXRhZGF0YXNsAQx1MzIAAShhdHRyaWJ1dGVzbAEMdTMyAADxAQAAAkAA9QEEGE9wdGlvbgQEVAFAAQgQTm9uZQAAABBTb21lBABAAAABAAD5AQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAP0BDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAAQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAAFAgxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBBDYWxsBARUAAEYWGNvbnRyb2xfYXV0b19taWdyYXRpb24EATBtYXliZV9jb25maWcJAgFcT3B0aW9uPE1pZ3JhdGlvbkxpbWl0cz4AAAyAQ29udHJvbCB0aGUgYXV0b21hdGljIG1pZ3JhdGlvbi4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFtgQ29uZmlnOjpDb250cm9sT3JpZ2luYF0uQGNvbnRpbnVlX21pZ3JhdGUMARhsaW1pdHMNAgE8TWlncmF0aW9uTGltaXRzAAE8cmVhbF9zaXplX3VwcGVyKAEMdTMyAAEwd2l0bmVzc190YXNrEQIBQE1pZ3JhdGlvblRhc2s8VD4AAVS4Q29udGludWUgdGhlIG1pZ3JhdGlvbiBmb3IgdGhlIGdpdmVuIGBsaW1pdHNgLgDsVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgY2FuIGJlIGFueSBzaWduZWQgYWNjb3VudC4AXQFUaGlzIHRyYW5zYWN0aW9uIGhhcyBOTyBNT05FVEFSWSBJTkNFTlRJVkVTLiBjYWxsaW5nIGl0IHdpbGwgbm90IHJld2FyZCBhbnlvbmUuIEFsYmVpdCzsVXBvbiBzdWNjZXNzZnVsIGV4ZWN1dGlvbiwgdGhlIHRyYW5zYWN0aW9uIGZlZSBpcyByZXR1cm5lZC4AQQFUaGUgKHBvdGVudGlhbGx5IG92ZXItZXN0aW1hdGVkKSBvZiB0aGUgYnl0ZSBsZW5ndGggb2YgYWxsIHRoZSBkYXRhIHJlYWQgbXVzdCBiZVkBcHJvdmlkZWQgZm9yIHVwLWZyb250IGZlZS1wYXltZW50IGFuZCB3ZWlnaGluZy4gSW4gZXNzZW5jZSwgdGhlIGNhbGxlciBpcyBndWFyYW50ZWVpbmdJAXRoYXQgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGBNaWdyYXRpb25UYXNrYCB3aXRoIHRoZSBnaXZlbiBgbGltaXRzYCB3aWxsIG5vdCBleGNlZWSUYHJlYWxfc2l6ZV91cHBlcmAgYnl0ZXMgb2YgcmVhZCBkYXRhLgBFAVRoZSBgd2l0bmVzc190YXNrYCBpcyBtZXJlbHkgYSBoZWxwZXIgdG8gcHJldmVudCB0aGUgY2FsbGVyIGZyb20gYmVpbmcgc2xhc2hlZCBvcl0BZ2VuZXJhbGx5IHRyaWdnZXIgYSBtaWdyYXRpb24gdGhhdCB0aGV5IGRvIG5vdCBpbnRlbmQuIFRoaXMgcGFyYW1ldGVyIGlzIGp1c3QgYSBtZXNzYWdlPQFmcm9tIGNhbGxlciwgc2F5aW5nIHRoYXQgdGhleSBiZWxpZXZlZCBgd2l0bmVzc190YXNrYCB3YXMgdGhlIGxhc3Qgc3RhdGUgb2YgdGhlWQFtaWdyYXRpb24sIGFuZCB0aGV5IG9ubHkgd2lzaCBmb3IgdGhlaXIgdHJhbnNhY3Rpb24gdG8gZG8gYW55dGhpbmcsIGlmIHRoaXMgYXNzdW1wdGlvbhEBaG9sZHMuIEluIGNhc2UgYHdpdG5lc3NfdGFza2AgZG9lcyBub3QgbWF0Y2gsIHRoZSB0cmFuc2FjdGlvbiBmYWlscy4AOQFCYXNlZCBvbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiBbYE1pZ3JhdGlvblRhc2s6Om1pZ3JhdGVfdW50aWxfZXhoYXVzdGlvbmBdLCB0aGVNAXJlY29tbWVuZGVkIHdheSBvZiBkb2luZyB0aGlzIGlzIHRvIHBhc3MgYSBgbGltaXRgIHRoYXQgb25seSBib3VuZHMgYGNvdW50YCwgYXMgdGhlnGBzaXplYCBsaW1pdCBjYW4gYWx3YXlzIGJlIG92ZXJ3cml0dGVuLkhtaWdyYXRlX2N1c3RvbV90b3AIARBrZXlzJAEwVmVjPFZlYzx1OD4+AAEwd2l0bmVzc19zaXplKAEMdTMyAAIQCQFNaWdyYXRlIHRoZSBsaXN0IG9mIHRvcCBrZXlzIGJ5IGl0ZXJhdGluZyBlYWNoIG9mIHRoZW0gb25lIGJ5IG9uZS4AVQFUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBwcm9jZXNzIHRyYWNrZXIgKFtgTWlncmF0aW9uUHJvY2Vzc2BdKSwgYW5k/HNob3VsZCBvbmx5IGJlIHVzZWQgaW4gY2FzZSBhbnkga2V5cyBhcmUgbGVmdG92ZXIgZHVlIHRvIGEgYnVnLlBtaWdyYXRlX2N1c3RvbV9jaGlsZAwBEHJvb3QUARxWZWM8dTg+AAEoY2hpbGRfa2V5cyQBMFZlYzxWZWM8dTg+PgABKHRvdGFsX3NpemUoAQx1MzIAAxgRAU1pZ3JhdGUgdGhlIGxpc3Qgb2YgY2hpbGQga2V5cyBieSBpdGVyYXRpbmcgZWFjaCBvZiB0aGVtIG9uZSBieSBvbmUuAA0BQWxsIG9mIHRoZSBnaXZlbiBjaGlsZCBrZXlzIG11c3QgYmUgcHJlc2VudCB1bmRlciBvbmUgYGNoaWxkX3Jvb3RgLgBVAVRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBnbG9iYWwgbWlncmF0aW9uIHByb2Nlc3MgdHJhY2tlciAoW2BNaWdyYXRpb25Qcm9jZXNzYF0pLCBhbmT8c2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBjYXNlIGFueSBrZXlzIGFyZSBsZWZ0b3ZlciBkdWUgdG8gYSBidWcuVHNldF9zaWduZWRfbWF4X2xpbWl0cwQBGGxpbWl0cw0CATxNaWdyYXRpb25MaW1pdHMABAS4U2V0IHRoZSBtYXhpbXVtIGxpbWl0IG9mIHRoZSBzaWduZWQgbWlncmF0aW9uLkhmb3JjZV9zZXRfcHJvZ3Jlc3MIATBwcm9ncmVzc190b3AVAgE0UHJvZ3Jlc3NPZjxUPgABOHByb2dyZXNzX2NoaWxkFQIBNFByb2dyZXNzT2Y8VD4ABSTIRm9yY2VmdWxseSBzZXQgdGhlIHByb2dyZXNzIHRoZSBydW5uaW5nIG1pZ3JhdGlvbi4AXQFUaGlzIGlzIG9ubHkgdXNlZnVsIGluIG9uZSBjYXNlOiB0aGUgbmV4dCBrZXkgdG8gbWlncmF0ZSBpcyB0b28gYmlnIHRvIGJlIG1pZ3JhdGVkIHdpdGhVAWEgc2lnbmVkIGFjY291bnQsIGluIGEgcGFyYWNoYWluIGNvbnRleHQsIGFuZCB3ZSBzaW1wbHkgd2FudCB0byBza2lwIGl0LiBBIHJlYXNvbmFibGVhAWV4YW1wbGUgb2YgdGhpcyB3b3VsZCBiZSBgOmNvZGU6YCwgd2hpY2ggaXMgYm90aCB2ZXJ5IGV4cGVuc2l2ZSB0byBtaWdyYXRlLCBhbmQgY29tbW9ubHmkdXNlZCwgc28gcHJvYmFibHkgaXQgaXMgYWxyZWFkeSBtaWdyYXRlZC4AXQFJbiBjYXNlIHlvdSBtZXNzIHRoaW5ncyB1cCwgeW91IGNhbiBhbHNvLCBpbiBwcmluY2lwbGUsIHVzZSB0aGlzIHRvIHJlc2V0IHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuCQIEGE9wdGlvbgQEVAENAgEIEE5vbmUAAAAQU29tZQQADQIAAAEAAA0CDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0PE1pZ3JhdGlvbkxpbWl0cwAACAEQc2l6ZSgBDHUzMgABEGl0ZW0oAQx1MzIAABECDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0NE1pZ3JhdGlvblRhc2sEBFQAABQBMHByb2dyZXNzX3RvcBUCATRQcm9ncmVzc09mPFQ+AAE4cHJvZ3Jlc3NfY2hpbGQVAgE0UHJvZ3Jlc3NPZjxUPgABEHNpemUoAQx1MzIAASR0b3BfaXRlbXMoAQx1MzIAASxjaGlsZF9pdGVtcygBDHUzMgAAFQIMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQgUHJvZ3Jlc3MEJE1heEtleUxlbgABDBxUb1N0YXJ0AAAAHExhc3RLZXkEABkCAWRCb3VuZGVkVmVjPHU4LCBNYXhLZXlMZW4+AAEAIENvbXBsZXRlAAIAABkCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAHQIMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQQQ2FsbAgEVAAESQABHBB2b3RlCAEocG9sbF9pbmRleGwBRFBvbGxJbmRleE9mPFQsIEk+AAEQdm90ZSECAXBBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VCwgST4+AAAkGQFWb3RlIGluIGEgcG9sbC4gSWYgYHZvdGUuaXNfYXllKClgLCB0aGUgdm90ZSBpcyB0byBlbmFjdCB0aGUgcHJvcG9zYWw7uG90aGVyd2lzZSBpdCBpcyBhIHZvdGUgdG8ga2VlcCB0aGUgc3RhdHVzIHF1by4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAMgtIGBwb2xsX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSBwb2xsIHRvIHZvdGUgZm9yLoQtIGB2b3RlYDogVGhlIHZvdGUgY29uZmlndXJhdGlvbi4AFQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhlIHZvdGVyIGhhcyB2b3RlZCBvbi4gZGVsZWdhdGUQARRjbGFzc4ABNENsYXNzT2Y8VCwgST4AAQh0bwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoY29udmljdGlvbikCAShDb252aWN0aW9uAAEcYmFsYW5jZUABPEJhbGFuY2VPZjxULCBJPgABXE0BRGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciAod2l0aCBzb21lIGdpdmVuIGNvbnZpY3Rpb24pIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGFocGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yRQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkIHRocm91Z2hMICAgIGByZW1vdmVfdm90ZWApLgBFAS0gYHRvYDogVGhlIGFjY291bnQgd2hvc2Ugdm90aW5nIHRoZSBgdGFyZ2V0YCBhY2NvdW50J3Mgdm90aW5nIHBvd2VyIHdpbGwgZm9sbG93Ll0BLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gZGVsZWdhdGUuIFRvIGRlbGVnYXRlIG11bHRpcGxlIGNsYXNzZXMsIG11bHRpcGxlIGNhbGxzgCAgdG8gdGhpcyBmdW5jdGlvbiBhcmUgcmVxdWlyZWQuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuKHVuZGVsZWdhdGUEARRjbGFzc4ABNENsYXNzT2Y8VCwgST4AAjhNAVVuZGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciBvZiB0aGUgc2VuZGluZyBhY2NvdW50IGZvciBhIHBhcnRpY3VsYXIgY2xhc3Mgb2YgcG9sbHMuAF0BVG9rZW5zIG1heSBiZSB1bmxvY2tlZCBmb2xsb3dpbmcgb25jZSBhbiBhbW91bnQgb2YgdGltZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvY2sgcGVyaW9kCQFvZiB0aGUgY29udmljdGlvbiB3aXRoIHdoaWNoIHRoZSBkZWxlZ2F0aW9uIHdhcyBpc3N1ZWQgaGFzIHBhc3NlZC4ARQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgYmVUY3VycmVudGx5IGRlbGVnYXRpbmcuAPAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byByZW1vdmUgdGhlIGRlbGVnYXRpb24gZnJvbS4AUEVtaXRzIGBVbmRlbGVnYXRlZGAuACUBV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoZSB2b3RlciBkZWxlZ2F0aW5nIHRvIGhhc00BICB2b3RlZCBvbi4gV2VpZ2h0IGlzIGluaXRpYWxseSBjaGFyZ2VkIGFzIGlmIG1heGltdW0gdm90ZXMsIGJ1dCBpcyByZWZ1bmRlZCBsYXRlci4YdW5sb2NrCAEUY2xhc3OAATRDbGFzc09mPFQsIEk+AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyRdAVJlbW92ZSB0aGUgbG9jayBjYXVzZWQgYnkgcHJpb3Igdm90aW5nL2RlbGVnYXRpbmcgd2hpY2ggaGFzIGV4cGlyZWQgd2l0aGluIGEgcGFydGljdWxhchhjbGFzcy4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAKAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byB1bmxvY2suuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlCAEUY2xhc3MtAgFUT3B0aW9uPENsYXNzT2Y8VCwgST4+AAEUaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgAEdGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAAxJZjpwLSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBvcmQtIHRoZSBwb2xsIGlzIG9uZ29pbmcsIG9yeC0gdGhlIHBvbGwgaGFzIGVuZGVkIHN1Y2ggdGhhdPwgIC0gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQgd2FzIGluIG9wcG9zaXRpb24gdG8gdGhlIHJlc3VsdDsgb3LUICAtIHRoZXJlIHdhcyBubyBjb252aWN0aW9uIHRvIHRoZSBhY2NvdW50J3Mgdm90ZTsgb3KEICAtIHRoZSBhY2NvdW50IG1hZGUgYSBzcGxpdCB2b3RlXQEuLi50aGVuIHRoZSB2b3RlIGlzIHJlbW92ZWQgY2xlYW5seSBhbmQgYSBmb2xsb3dpbmcgY2FsbCB0byBgdW5sb2NrYCBtYXkgcmVzdWx0IGluIG1vcmVYZnVuZHMgYmVpbmcgYXZhaWxhYmxlLgCQSWYsIGhvd2V2ZXIsIHRoZSBwb2xsIGhhcyBlbmRlZCBhbmQ67C0gaXQgZmluaXNoZWQgY29ycmVzcG9uZGluZyB0byB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCwgYW5k3C0gdGhlIGFjY291bnQgbWFkZSBhIHN0YW5kYXJkIHZvdGUgd2l0aCBjb252aWN0aW9uLCBhbmS8LSB0aGUgbG9jayBwZXJpb2Qgb2YgdGhlIGNvbnZpY3Rpb24gaXMgbm90IG92ZXJZAS4uLnRoZW4gdGhlIGxvY2sgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG8gdGhlIG92ZXJhbGwgYWNjb3VudCdzIGxvY2ssIHdoaWNoIG1heSBpbnZvbHZlWQEqb3ZlcmxvY2tpbmcqICh3aGVyZSB0aGUgdHdvIGxvY2tzIGFyZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIGxvY2sgdGhhdCBpcyB0aGUgbWF4aW11beRvZiBib3RoIHRoZSBhbW91bnQgbG9ja2VkIGFuZCB0aGUgdGltZSBpcyBpdCBsb2NrZWQgZm9yKS4ASQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25lciBtdXN0IGhhdmUgYSB2b3RlcHJlZ2lzdGVyZWQgZm9yIHBvbGwgYGluZGV4YC4A3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC5VAS0gYGNsYXNzYDogT3B0aW9uYWwgcGFyYW1ldGVyLCBpZiBnaXZlbiBpdCBpbmRpY2F0ZXMgdGhlIGNsYXNzIG9mIHRoZSBwb2xsLiBGb3IgcG9sbHPwICB3aGljaCBoYXZlIGZpbmlzaGVkIG9yIGFyZSBjYW5jZWxsZWQsIHRoaXMgbXVzdCBiZSBgU29tZWAuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLkRyZW1vdmVfb3RoZXJfdm90ZQwBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUY2xhc3OAATRDbGFzc09mPFQsIEk+AAEUaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgAFQGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAE0BSWYgdGhlIGB0YXJnZXRgIGlzIGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8tAWByZW1vdmVfdm90ZWAuIElmIG5vdCBlcXVhbCB0byB0aGUgc2lnbmVyLCB0aGVuIHRoZSB2b3RlIG11c3QgaGF2ZSBleHBpcmVkLCUBZWl0aGVyIGJlY2F1c2UgdGhlIHBvbGwgd2FzIGNhbmNlbGxlZCwgYmVjYXVzZSB0aGUgdm90ZXIgbG9zdCB0aGUgcG9sbCBvcphiZWNhdXNlIHRoZSBjb252aWN0aW9uIHBlcmlvZCBpcyBvdmVyLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AYQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkOyB0aGlzIGFjY291bnQgbXVzdCBoYXZlIHZvdGVkIGZvciBwb2xsKCAgYGluZGV4YC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcG9sbCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLoQtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiB0aGUgcG9sbC4ARQFXZWlnaHQ6IGBPKFIgKyBsb2cgUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuRGZvcmNlX3JlbW92ZV92b3RlDAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRjbGFzc4ABNENsYXNzT2Y8VCwgST4AARRpbmRleCgBRFBvbGxJbmRleE9mPFQsIEk+ABM4uEFsbG93IHRvIGZvcmNlIHJlbW92ZSBhIHZvdGUgZm9yIGEgcmVmZXJlbmR1bS4A9FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYFZvdGVSZW1vdmFsT3JpZ2luYC4ArE9ubHkgYWxsb3dlZCBpZiB0aGUgcmVmZXJlbmR1bSBpcyBmaW5pc2hlZC4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAE0BLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZDsgdGhpcyBhY2NvdW50IG11c3QgaGF2ZSB2b3RlZCBmb3JUICByZWZlcmVuZHVtIGBpbmRleGAu9C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHJlZmVyZW5kdW0gb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC4AVQFXZWlnaHQ6IGBPKFIgKyBsb2cgUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiByZWZlcmVuZGEgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4hAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUsQWNjb3VudFZvdGUEHEJhbGFuY2UBQAEMIFN0YW5kYXJkCAEQdm90ZSUCARBWb3RlAAEcYmFsYW5jZUABHEJhbGFuY2UAAAAUU3BsaXQIAQxheWVAARxCYWxhbmNlAAEMbmF5QAEcQmFsYW5jZQABADBTcGxpdEFic3RhaW4MAQxheWVAARxCYWxhbmNlAAEMbmF5QAEcQmFsYW5jZQABHGFic3RhaW5AARxCYWxhbmNlAAIAACUCDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRBWb3RlAAAEAAgAAAApAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nKGNvbnZpY3Rpb24oQ29udmljdGlvbgABHBBOb25lAAAAIExvY2tlZDF4AAEAIExvY2tlZDJ4AAIAIExvY2tlZDN4AAMAIExvY2tlZDR4AAQAIExvY2tlZDV4AAUAIExvY2tlZDZ4AAYAAC0CBBhPcHRpb24EBFQBgAEIEE5vbmUAAAAQU29tZQQAgAAAAQAAMQIMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0EENhbGwIBFQABEkAASQYc3VibWl0DAE8cHJvcG9zYWxfb3JpZ2luhAFcQm94PFBhbGxldHNPcmlnaW5PZjxUPj4AASBwcm9wb3NhbKkBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+AAFAZW5hY3RtZW50X21vbWVudDUCAYhEaXNwYXRjaFRpbWU8QmxvY2tOdW1iZXJGb3I8VCwgST4+AAAksFByb3Bvc2UgYSByZWZlcmVuZHVtIG9uIGEgcHJpdmlsZWdlZCBhY3Rpb24uAFkBLSBgb3JpZ2luYDogbXVzdCBiZSBgU3VibWl0T3JpZ2luYCBhbmQgdGhlIGFjY291bnQgbXVzdCBoYXZlIGBTdWJtaXNzaW9uRGVwb3NpdGAgZnVuZHMwICBhdmFpbGFibGUuLQEtIGBwcm9wb3NhbF9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIHByb3Bvc2FsIHNob3VsZCBiZSBleGVjdXRlZC5sLSBgcHJvcG9zYWxgOiBUaGUgcHJvcG9zYWwuFQEtIGBlbmFjdG1lbnRfbW9tZW50YDogVGhlIG1vbWVudCB0aGF0IHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZW5hY3RlZC4ASEVtaXRzIGBTdWJtaXR0ZWRgLlhwbGFjZV9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAASCsUG9zdCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSByZWZlcmVuZHVtLgA5AS0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBmdW5kcyBhdmFpbGFibGUgZm9yIHRoZaAgIHJlZmVyZW5kdW0ncyB0cmFjaydzIERlY2lzaW9uIERlcG9zaXQuUQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgc3VibWl0dGVkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBpcyB5ZXQgdG8gYmUkICBwb3N0ZWQuAHhFbWl0cyBgRGVjaXNpb25EZXBvc2l0UGxhY2VkYC5ccmVmdW5kX2RlY2lzaW9uX2RlcG9zaXQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAACHCkBUmVmdW5kIHRoZSBEZWNpc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLk0BLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBEZWNpc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AgEVtaXRzIGBEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZGAuGGNhbmNlbAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AAMYdENhbmNlbCBhbiBvbmdvaW5nIHJlZmVyZW5kdW0uAJwtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgQ2FuY2VsT3JpZ2luYC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gYmUgY2FuY2VsbGVkLgBIRW1pdHMgYENhbmNlbGxlZGAuEGtpbGwEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAAEGNBDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAJQtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgS2lsbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4AkEVtaXRzIGBLaWxsZWRgIGFuZCBgRGVwb3NpdFNsYXNoZWRgLkBudWRnZV9yZWZlcmVuZHVtBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgABRAdAUFkdmFuY2UgYSByZWZlcmVuZHVtIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6kLSBgaW5kZXhgOiB0aGUgcmVmZXJlbmR1bSB0byBiZSBhZHZhbmNlZC5Ib25lX2Zld2VyX2RlY2lkaW5nBAEUdHJhY2uAATxUcmFja0lkT2Y8VCwgST4ABiQJAUFkdmFuY2UgYSB0cmFjayBvbnRvIGl0cyBuZXh0IGxvZ2ljYWwgc3RhdGUuIE9ubHkgdXNlZCBpbnRlcm5hbGx5LgBsLSBgb3JpZ2luYDogbXVzdCBiZSBgUm9vdGAukC0gYHRyYWNrYDogdGhlIHRyYWNrIHRvIGJlIGFkdmFuY2VkLgBRAUFjdGlvbiBpdGVtIGZvciB3aGVuIHRoZXJlIGlzIG5vdyBvbmUgZmV3ZXIgcmVmZXJlbmR1bSBpbiB0aGUgZGVjaWRpbmcgcGhhc2UgYW5kIHRoZRUBYERlY2lkaW5nQ291bnRgIGlzIG5vdCB5ZXQgdXBkYXRlZC4gVGhpcyBtZWFucyB0aGF0IHdlIHNob3VsZCBlaXRoZXI6JQEtIGJlZ2luIGRlY2lkaW5nIGFub3RoZXIgcmVmZXJlbmR1bSAoYW5kIGxlYXZlIGBEZWNpZGluZ0NvdW50YCBhbG9uZSk7IG9ycC0gZGVjcmVtZW50IGBEZWNpZGluZ0NvdW50YC5kcmVmdW5kX3N1Ym1pc3Npb25fZGVwb3NpdAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AAccMQFSZWZ1bmQgdGhlIFN1Ym1pc3Npb24gRGVwb3NpdCBmb3IgYSBjbG9zZWQgcmVmZXJlbmR1bSBiYWNrIHRvIHRoZSBkZXBvc2l0b3IuAJwtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIG9yIGBSb290YC5VAS0gYGluZGV4YDogVGhlIGluZGV4IG9mIGEgY2xvc2VkIHJlZmVyZW5kdW0gd2hvc2UgU3VibWlzc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AiEVtaXRzIGBTdWJtaXNzaW9uRGVwb3NpdFJlZnVuZGVkYC4wc2V0X21ldGFkYXRhCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAAShtYXliZV9oYXNoxQEBPE9wdGlvbjxUOjpIYXNoPgAIHJhTZXQgb3IgY2xlYXIgbWV0YWRhdGEgb2YgYSByZWZlcmVuZHVtLgAsUGFyYW1ldGVyczpFAS0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAgYnkgYSBjcmVhdG9yIG9mIGEgcmVmZXJlbmR1bSBvciBieSBhbnlvbmUgdG8gY2xlYXIgYZAgIG1ldGFkYXRhIG9mIGEgZmluaXNoZWQgcmVmZXJlbmR1bS4NAS0gYGluZGV4YDogIFRoZSBpbmRleCBvZiBhIHJlZmVyZW5kdW0gdG8gc2V0IG9yIGNsZWFyIG1ldGFkYXRhIGZvci5RAS0gYG1heWJlX2hhc2hgOiBUaGUgaGFzaCBvZiBhbiBvbi1jaGFpbiBzdG9yZWQgcHJlaW1hZ2UuIGBOb25lYCB0byBjbGVhciBhIG1ldGFkYXRhLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41AhA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMgc2NoZWR1bGUwRGlzcGF0Y2hUaW1lBCxCbG9ja051bWJlcgEoAQgIQXQEACgBLEJsb2NrTnVtYmVyAAAAFEFmdGVyBAAoASxCbG9ja051bWJlcgABAAA5AgxAcGFsbGV0X3doaXRlbGlzdBhwYWxsZXQQQ2FsbAQEVAABEDh3aGl0ZWxpc3RfY2FsbAQBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAAABccmVtb3ZlX3doaXRlbGlzdGVkX2NhbGwEASRjYWxsX2hhc2gsARxUOjpIYXNoAAEAZGRpc3BhdGNoX3doaXRlbGlzdGVkX2NhbGwMASRjYWxsX2hhc2gsARxUOjpIYXNoAAFAY2FsbF9lbmNvZGVkX2xlbigBDHUzMgABTGNhbGxfd2VpZ2h0X3dpdG5lc3PkARhXZWlnaHQAAgCcZGlzcGF0Y2hfd2hpdGVsaXN0ZWRfY2FsbF93aXRoX3ByZWltYWdlBAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuPQIMRHBhbGxldF9kaXNwYXRjaGVyGHBhbGxldBBDYWxsBARUAAEcUGRpc3BhdGNoX2FzX3RyZWFzdXJ5BAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAABgZGlzcGF0Y2hfYXNfYWF2ZV9tYW5hZ2VyBAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAQBEbm90ZV9hYXZlX21hbmFnZXIEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAIYJQFTZXRzIHRoZSBBYXZlIG1hbmFnZXIgYWNjb3VudCB0byBiZSB1c2VkIGFzIG9yaWdpbiBmb3IgZGlzcGF0Y2hpbmcgY2FsbHMuAMhUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlcyBhbnkgQUNMIGluIHRoZSBwb29sLgBVAVRoaXMgaXMgaW50ZW50ZWQgdG8gYmUgbWFpbmx5IHVzZWQgaW4gdGVzdG5ldCBlbnZpcm9ubWVudHMsIHdoZXJlIHRoZSBtYW5hZ2VyIGFjY291bnREY2FuIGJlIGRpZmZlcmVudC5cZGlzcGF0Y2hfd2l0aF9leHRyYV9nYXMIARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABJGV4dHJhX2dhcxgBDHU2NAADEHxEaXNwYXRjaCBhIGNhbGwgd2l0aCBleHRyYSBnYXMuAPxUaGlzIGFsbG93cyBleGVjdXRpbmcgY2FsbHMgd2l0aCBhZGRpdGlvbmFsIHdlaWdodCAoZ2FzKSBsaW1pdC7AVGhlIGV4dHJhIGdhcyBpcyBub3QgcmVmdW5kZWQsIGV2ZW4gaWYgbm90IHVzZWQuRGRpc3BhdGNoX2V2bV9jYWxsBAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABCRoRXhlY3V0ZSBhIHNpbmdsZSBFVk0gY2FsbC71AVRoaXMgZXh0cmluc2ljIHdpbGwgZmFpbCBpZiB0aGUgRVZNIGNhbGwgcmV0dXJucyBhbnkgb3RoZXIgRXhpdFJlYXNvbiB0aGFuIGBFeGl0U3VjY2VlZChSZXR1cm5lZClgIG9yIGBFeGl0U3VjY2VlZChTdG9wcGVkKWAuPQFMb29rIHRoZSBbaHlkcmFkeF9ydW50aW1lOjpldm06OnJ1bm5lcjo6V3JhcFJ1bm5lcl0gaW1wbGVtZW50YXRpb24gZm9yIGRldGFpbHMuACxQYXJhbWV0ZXJzOmgtIGBvcmlnaW5gOiBTaWduZWQgb3JpZ2luLhUBLSBgY2FsbGA6IHByZXN1bWFibHkgYHBhbGxldF9ldm06OkNhbGw6OmNhbGxgIGFzIGJveGVkIGBSdW50aW1lQ2FsbGAuAKBFbWl0cyBgRXZtQ2FsbEZhaWxlZGAgZXZlbnQgd2hlbiBmYWlsZWQubGRpc3BhdGNoX2FzX2VtZXJnZW5jeV9hZG1pbgQBEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAUwvERpc3BhdGNoIGEgY2FsbCBhcyB0aGUgZW1lcmdlbmN5IGFkbWluIGFjY291bnQuAB0BVGhpcyBpcyBhIGZhc3QgcGF0aCBmb3IgdGhlIFRlY2huaWNhbCBDb21taXR0ZWUgdG8gcmVhY3QgdG8gZW1lcmdlbmNpZXMhAShlLmcuLCBwYXVzaW5nIGV4cGxvaXRlZCBtYXJrZXRzKSB3aXRob3V0IHdhaXRpbmcgZm9yIGEgZnVsbCByZWZlcmVuZHVtLg0BVGhlIGlubmVyIGNhbGwgaXMgZGlzcGF0Y2hlZCBhcyBhIFNpZ25lZCBvcmlnaW4gZnJvbSB0aGUgY29uZmlndXJlZGBlbWVyZ2VuY3kgYWRtaW4gYWNjb3VudC4ALFBhcmFtZXRlcnM6GQEtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYEVtZXJnZW5jeUFkbWluT3JpZ2luYCAoVEMgbWFqb3JpdHkgb3IgUm9vdCku+C0gYGNhbGxgOiBUaGUgcnVudGltZSBjYWxsIHRvIGRpc3BhdGNoIGFzIHRoZSBlbWVyZ2VuY3kgYWRtaW4uADEBRW1pdHMgYEVtZXJnZW5jeUFkbWluQ2FsbERpc3BhdGNoZWRgIHdpdGggdGhlIGNhbGwgaGFzaCBhbmQgZGlzcGF0Y2ggcmVzdWx0LlxkaXNwYXRjaF93aXRoX2ZlZV9wYXllcgQBEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAcABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkECDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkYcGFsbGV0EENhbGwEBFQAARQgcmVnaXN0ZXIkASBhc3NldF9pZHQBSE9wdGlvbjxUOjpBc3NldElkPgABEG5hbWVFAgFwT3B0aW9uPE5hbWU8VDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVNAgEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdPUBATxPcHRpb248QmFsYW5jZT4AARhzeW1ib2xFAgF4T3B0aW9uPFN5bWJvbDxUOjpTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHNRAgEoT3B0aW9uPHU4PgABIGxvY2F0aW9uVQIBeE9wdGlvbjxUOjpBc3NldE5hdGl2ZUxvY2F0aW9uPgABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnREARBib29sAAAwVFJlZ2lzdGVyIGEgbmV3IGFzc2V0LgDYTmV3IGFzc2V0IGlzIGdpdmVuIGBOZXh0QXNzZXRJZGAgLSBzZXF1ZW50aWFsIGFzc2V0IGlkADkBQXNzZXQncyBpZCBpcyBvcHRpb25hbCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBieSBhbm90aGVyIGFzc2V0IGlmIGl0J3MgcHJvdmlkZWQu3FByb3ZpZGVkIGBhc3NldF9pZGAgbXVzdCBiZSBmcm9tIHdpdGhpbiByZXNlcnZlZCByYW5nZS4JAUlmIGBhc3NldF9pZGAgaXMgYE5vbmVgLCBuZXcgYXNzZXQgaXMgZ2l2ZW4gaWQgZm9yIHNlcXVlbnRpYWwgaWRzLgBBAUFzc2V0J3MgbmFtZSBpcyBvcHRpb25hbCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBieSBhbm90aGVyIGFzc2V0IGlmIGl0J3MgcHJvdmlkZWQuWQJBZGRzIG1hcHBpbmcgYmV0d2VlbiBgbmFtZWAgYW5kIGFzc2lnbmVkIGBhc3NldF9pZGAgc28gYXNzZXQgaWQgY2FuIGJlIHJldHJpZXZlZCBieSBuYW1lIHRvbyAoTm90ZTogdGhpcyBhcHByb2FjaCBpcyB1c2VkIGluIEFNTSBpbXBsZW1lbnRhdGlvbiAoeHlrKSkApEVtaXRzICdSZWdpc3RlcmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuGHVwZGF0ZSQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABEG5hbWVFAgFwT3B0aW9uPE5hbWU8VDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVdAgFET3B0aW9uPEFzc2V0VHlwZT4AAUxleGlzdGVudGlhbF9kZXBvc2l09QEBPE9wdGlvbjxCYWxhbmNlPgABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnRhAgEwT3B0aW9uPGJvb2w+AAEYc3ltYm9sRQIBeE9wdGlvbjxTeW1ib2w8VDo6U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzUQIBKE9wdGlvbjx1OD4AASBsb2NhdGlvblUCAXhPcHRpb248VDo6QXNzZXROYXRpdmVMb2NhdGlvbj4AAShgVXBkYXRlIHJlZ2lzdGVyZWQgYXNzZXQuACUBQWxsIHBhcmFtZXRlcmVzIGFyZSBvcHRpb25hbCBhbmQgdmFsdWUgaXMgbm90IHVwZGF0ZWQgaWYgcGFyYW0gaXMgYE5vbmVgLgAxAWBkZWNpbWFsc2AgLSBjYW4gYmUgdXBkYXRlIGJ5IGBVcGRhdGVPcmlnaW5gIG9ubHkgaWYgaXQgd2Fzbid0IHNldCB5ZXQuIE9ubHkBAWBSZWdpc3RyeU9yaWdpbmAgY2FuIHVwZGF0ZSBgZGVjaW1hbHNgIGlmIGl0IHdhcyBwcmV2aW91c2x5IHNldC4A1GBsb2NhdGlvbmAgLSBjYW4gYmUgdXBkYXRlZCBvbmx5IGJ5IGBSZWdpc3RyeU9yaWdpbmAuAJhFbWl0cyBgVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkRyZWdpc3Rlcl9leHRlcm5hbAQBIGxvY2F0aW9uWQIBWFQ6OkFzc2V0TmF0aXZlTG9jYXRpb24ABAAkYmFuX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAUALHVuYmFuX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAYABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkUCBBhPcHRpb24EBFQBSQIBCBBOb25lAAAAEFNvbWUEAEkCAAABAABJAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAE0CDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkUdHlwZXMkQXNzZXRUeXBlAAEYFFRva2VuAAAADFhZSwABAChTdGFibGVTd2FwAAIAEEJvbmQAAwAgRXh0ZXJuYWwABAAURXJjMjAABQAAUQIEGE9wdGlvbgQEVAEIAQgQTm9uZQAAABBTb21lBAAIAAABAABVAgQYT3B0aW9uBARUAVkCAQgQTm9uZQAAABBTb21lBABZAgAAAQAAWQIMPGh5ZHJhZHhfcnVudGltZQx4Y200QXNzZXRMb2NhdGlvbgAABACcASBMb2NhdGlvbgAAXQIEGE9wdGlvbgQEVAFNAgEIEE5vbmUAAAAQU29tZQQATQIAAAEAAGECBBhPcHRpb24EBFQBRAEIEE5vbmUAAAAQU29tZQQARAAAAQAAZQIMNHBhbGxldF9jbGFpbXMYcGFsbGV0EENhbGwEBFQAAQQUY2xhaW0EAUhldGhlcmV1bV9zaWduYXR1cmVpAgE4RWNkc2FTaWduYXR1cmUAAAT0Q2xhaW0geEhEWCBieSBwcm92aWRpbmcgc2lnbmVkIG1lc3NhZ2Ugd2l0aCBFdGhlcmV1bSBhZGRyZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5pAgw0cGFsbGV0X2NsYWltcxh0cmFpdHM4RWNkc2FTaWduYXR1cmUAAAQAnQEBIFt1ODsgNjVdAABtAgxYcGFsbGV0X2dlbmVzaXNfaGlzdG9yeRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5xAgw8cGFsbGV0X29tbmlwb29sGHBhbGxldBBDYWxsBARUAAFAJGFkZF90b2tlbhABFGFzc2V0KAEoVDo6QXNzZXRJZAABNGluaXRpYWxfcHJpY2VUARRQcmljZQABKHdlaWdodF9jYXB1AgEcUGVybWlsbAABOHBvc2l0aW9uX293bmVyAAEwVDo6QWNjb3VudElkAAFAHQFBZGQgbmV3IHRva2VuIHRvIG9tbmlwb29sIGluIHF1YW50aXR5IGBhbW91bnRgIGF0IHByaWNlIGBpbml0aWFsX3ByaWNlYADFAUluaXRpYWwgbGlxdWlkaXR5IG11c3QgYmUgdHJhbnNmZXJyZWQgdG8gcG9vbCdzIGFjY291bnQgZm9yIHRoaXMgbmV3IHRva2VuIG1hbnVhbGx5IHByaW9yIHRvIGNhbGxpbmcgYGFkZF90b2tlbmAuAORJbml0aWFsIGxpcXVpZGl0eSBpcyBwb29sJ3MgYWNjb3VudCBiYWxhbmNlIG9mIHRoZSB0b2tlbi4AyFBvc2l0aW9uIE5GVCB0b2tlbiBpcyBtaW50ZWQgZm9yIGBwb3NpdGlvbl9vd25lcmAuACxQYXJhbWV0ZXJzOokBLSBgYXNzZXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0IGFkZGVkIHRvIHRoZSBwb29sLiBNdXN0IGJlIHJlZ2lzdGVyZWQgaW4gQXNzZXQgcmVnaXN0cnmALSBgaW5pdGlhbF9wcmljZWA6IEluaXRpYWwgcHJpY2U1AS0gYHBvc2l0aW9uX293bmVyYDogYWNjb3VudCBpZCBmb3Igd2hpY2ggc2hhcmUgYXJlIGRpc3RyaWJ1dGVkIGluIGZvcm0gb24gTkZUgC0gYHdlaWdodF9jYXBgOiBhc3NldCB3ZWlnaHQgY2FwAKRFbWl0cyBgVG9rZW5BZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA0YWRkX2xpcXVpZGl0eQgBFGFzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAlD8QWRkIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIHRvIE9tbmlwb29sAGEBYGFkZF9saXF1aWRpdHlgIGFkZHMgc3BlY2lmaWVkIGFzc2V0IGFtb3VudCB0byBPbW5pcG9vbCBhbmQgaW4gZXhjaGFuZ2UgZ2l2ZXMgdGhlIG9yaWdpbvBjb3JyZXNwb25kaW5nIHNoYXJlcyBhbW91bnQgaW4gZm9ybSBvZiBORlQgYXQgY3VycmVudCBwcmljZS4AhQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBBRERfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAGEBTkZUIGlzIG1pbnRlZCB1c2luZyBOVEZIYW5kbGVyIHdoaWNoIGltcGxlbWVudHMgbm9uLWZ1bmdpYmxlcyB0cmFpdHMgZnJvbSBmcmFtZV9zdXBwb3J0LgBZAUFzc2V0IHdlaWdodCBjYXAgbXVzdCBiZSByZXNwZWN0ZWQsIG90aGVyd2lzZSBgQXNzZXRXZWlnaHRFeGNlZWRlZGAgZXJyb3IgaXMgcmV0dXJuZWQueQFBc3NldCB3ZWlnaHQgaXMgcmF0aW8gYmV0d2VlbiBuZXcgSHViQXNzZXQgcmVzZXJ2ZSBhbmQgdG90YWwgcmVzZXJ2ZSBvZiBIdWIgYXNzZXQgaW4gT21uaXBvb2wuANUBQWRkIGxpcXVpZGl0eSBmYWlscyBpZiBwcmljZSBkaWZmZXJlbmNlIGJldHdlZW4gc3BvdCBwcmljZSBhbmQgb3JhY2xlIHByaWNlIGlzIGhpZ2hlciB0aGFuIGFsbG93ZWQgYnkgYFByaWNlQmFycmllcmAuACxQYXJhbWV0ZXJzOmUBLSBgYXNzZXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0IGFkZGVkIHRvIHRoZSBwb29sLiBNdXN0IGJlIGFscmVhZHkgaW4gdGhlIHBvb2y0LSBgYW1vdW50YDogQW1vdW50IG9mIGFzc2V0IGFkZGVkIHRvIG9tbmlwb29sALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AYGFkZF9saXF1aWRpdHlfd2l0aF9saW1pdAwBFGFzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAUBtaW5fc2hhcmVzX2xpbWl0QAEcQmFsYW5jZQANXAEBQWRkIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIHRvIE9tbmlwb29sLgBwTGltaXQgcHJvdGVjdGlvbiBpcyBhcHBsaWVkLgBhAWBhZGRfbGlxdWlkaXR5YCBhZGRzIHNwZWNpZmllZCBhc3NldCBhbW91bnQgdG8gT21uaXBvb2wgYW5kIGluIGV4Y2hhbmdlIGdpdmVzIHRoZSBvcmlnaW7wY29ycmVzcG9uZGluZyBzaGFyZXMgYW1vdW50IGluIGZvcm0gb2YgTkZUIGF0IGN1cnJlbnQgcHJpY2UuAIUBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gQUREX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBhAU5GVCBpcyBtaW50ZWQgdXNpbmcgTlRGSGFuZGxlciB3aGljaCBpbXBsZW1lbnRzIG5vbi1mdW5naWJsZXMgdHJhaXRzIGZyb20gZnJhbWVfc3VwcG9ydC4AWQFBc3NldCB3ZWlnaHQgY2FwIG11c3QgYmUgcmVzcGVjdGVkLCBvdGhlcndpc2UgYEFzc2V0V2VpZ2h0RXhjZWVkZWRgIGVycm9yIGlzIHJldHVybmVkLnkBQXNzZXQgd2VpZ2h0IGlzIHJhdGlvIGJldHdlZW4gbmV3IEh1YkFzc2V0IHJlc2VydmUgYW5kIHRvdGFsIHJlc2VydmUgb2YgSHViIGFzc2V0IGluIE9tbmlwb29sLgDVAUFkZCBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldCBhZGRlZCB0byB0aGUgcG9vbC4gTXVzdCBiZSBhbHJlYWR5IGluIHRoZSBwb29stC0gYGFtb3VudGA6IEFtb3VudCBvZiBhc3NldCBhZGRlZCB0byBvbW5pcG9vbIUBLSBgbWluX3NoYXJlc19saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGRlbHRhIHNoYXJlIGFzc2V0IHRoZSB1c2VyIHNob3VsZCByZWNlaXZlIGluIHRoZSBwb3NpdGlvbgC0RW1pdHMgYExpcXVpZGl0eUFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERhZGRfYWxsX2xpcXVpZGl0eQgBFGFzc2V0KAEoVDo6QXNzZXRJZAABQG1pbl9zaGFyZXNfbGltaXRAARxCYWxhbmNlABFQ5EFkZCBhbGwgYXZhaWxhYmxlIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIHRvIE9tbmlwb29sLgAtAURlcG9zaXRzIHRoZSBjYWxsZXIncyBlbnRpcmUgZnJlZSBiYWxhbmNlIG9mIGBhc3NldGAuIEVxdWl2YWxlbnQgdG8gY2FsbGluZ9xgZG9fYWRkX2xpcXVpZGl0eWAgd2l0aCBgYW1vdW50ID0gZnJlZV9iYWxhbmNlKGFzc2V0KWAuAIUBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gQUREX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBhAU5GVCBpcyBtaW50ZWQgdXNpbmcgTlRGSGFuZGxlciB3aGljaCBpbXBsZW1lbnRzIG5vbi1mdW5naWJsZXMgdHJhaXRzIGZyb20gZnJhbWVfc3VwcG9ydC4AWQFBc3NldCB3ZWlnaHQgY2FwIG11c3QgYmUgcmVzcGVjdGVkLCBvdGhlcndpc2UgYEFzc2V0V2VpZ2h0RXhjZWVkZWRgIGVycm9yIGlzIHJldHVybmVkLnkBQXNzZXQgd2VpZ2h0IGlzIHJhdGlvIGJldHdlZW4gbmV3IEh1YkFzc2V0IHJlc2VydmUgYW5kIHRvdGFsIHJlc2VydmUgb2YgSHViIGFzc2V0IGluIE9tbmlwb29sLgCdAUZhaWxzIGlmIHByaWNlIGRpZmZlcmVuY2UgYmV0d2VlbiBzcG90IHByaWNlIGFuZCBvcmFjbGUgcHJpY2UgaXMgaGlnaGVyIHRoYW4gYWxsb3dlZCBieSBgUHJpY2VCYXJyaWVyYC4ALFBhcmFtZXRlcnM6LQEtIGBhc3NldGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBhZGQuIE11c3QgYWxyZWFkeSBiZSBpbiB0aGUgcG9vbC6FAS0gYG1pbl9zaGFyZXNfbGltaXRgOiBUaGUgbWluaW11bSBhbW91bnQgb2Ygc2hhcmVzIHRoZSBjYWxsZXIgZXhwZWN0cyB0byByZWNlaXZlIGluIHRoZSBwb3NpdGlvbi4AtEVtaXRzIGBMaXF1aWRpdHlBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBAcmVtb3ZlX2xpcXVpZGl0eQgBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARhhbW91bnRAARxCYWxhbmNlAANMEQFSZW1vdmUgbGlxdWlkaXR5IG9mIGFzc2V0IGBhc3NldGAgaW4gcXVhbnRpdHkgYGFtb3VudGAgZnJvbSBPbW5pcG9vbABhAWByZW1vdmVfbGlxdWlkaXR5YCByZW1vdmVzIHNwZWNpZmllZCBzaGFyZXMgYW1vdW50IGZyb20gZ2l2ZW4gUG9zaXRpb25JZCAoTkZUIGluc3RhbmNlKS4AkQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBSRU1PVkVfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAF0BaWYgYWxsIHNoYXJlcyBmcm9tIGdpdmVuIHBvc2l0aW9uIGFyZSByZW1vdmVkLCBwb3NpdGlvbiBpcyBkZXN0cm95ZWQgYW5kIE5GVCBpcyBidXJuZWQuAOEBUmVtb3ZlIGxpcXVpZGl0eSBmYWlscyBpZiBwcmljZSBkaWZmZXJlbmNlIGJldHdlZW4gc3BvdCBwcmljZSBhbmQgb3JhY2xlIHByaWNlIGlzIGhpZ2hlciB0aGFuIGFsbG93ZWQgYnkgYFByaWNlQmFycmllcmAuAOUBRHluYW1pYyB3aXRoZHJhd2FsIGZlZSBpcyBhcHBsaWVkIGlmIHdpdGhkcmF3YWwgaXMgbm90IHNhZmUuIEl0IGlzIGNhbGN1bGF0ZWQgdXNpbmcgc3BvdCBwcmljZSBhbmQgZXh0ZXJuYWwgcHJpY2Ugb3JhY2xlLtxXaXRoZHJhd2FsIGlzIGNvbnNpZGVyZWQgc2FmZSB3aGVuIHRyYWRpbmcgaXMgZGlzYWJsZWQuACxQYXJhbWV0ZXJzOjEBLSBgcG9zaXRpb25faWRgOiBUaGUgaWRlbnRpZmllciBvZiBwb3NpdGlvbiB3aGljaCBsaXF1aWRpdHkgaXMgcmVtb3ZlZCBmcm9tLsgtIGBhbW91bnRgOiBBbW91bnQgb2Ygc2hhcmVzIHJlbW92ZWQgZnJvbSBvbW5pcG9vbAC8RW1pdHMgYExpcXVpZGl0eVJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AbHJlbW92ZV9saXF1aWRpdHlfd2l0aF9saW1pdAwBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARhhbW91bnRAARxCYWxhbmNlAAEkbWluX2xpbWl0QAEcQmFsYW5jZQAOWBEBUmVtb3ZlIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIGZyb20gT21uaXBvb2wAcExpbWl0IHByb3RlY3Rpb24gaXMgYXBwbGllZC4AYQFgcmVtb3ZlX2xpcXVpZGl0eWAgcmVtb3ZlcyBzcGVjaWZpZWQgc2hhcmVzIGFtb3VudCBmcm9tIGdpdmVuIFBvc2l0aW9uSWQgKE5GVCBpbnN0YW5jZSkuAJEBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gUkVNT1ZFX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBdAWlmIGFsbCBzaGFyZXMgZnJvbSBnaXZlbiBwb3NpdGlvbiBhcmUgcmVtb3ZlZCwgcG9zaXRpb24gaXMgZGVzdHJveWVkIGFuZCBORlQgaXMgYnVybmVkLgDhAVJlbW92ZSBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgDlAUR5bmFtaWMgd2l0aGRyYXdhbCBmZWUgaXMgYXBwbGllZCBpZiB3aXRoZHJhd2FsIGlzIG5vdCBzYWZlLiBJdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHNwb3QgcHJpY2UgYW5kIGV4dGVybmFsIHByaWNlIG9yYWNsZS7cV2l0aGRyYXdhbCBpcyBjb25zaWRlcmVkIHNhZmUgd2hlbiB0cmFkaW5nIGlzIGRpc2FibGVkLgAsUGFyYW1ldGVyczoxAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgcG9zaXRpb24gd2hpY2ggbGlxdWlkaXR5IGlzIHJlbW92ZWQgZnJvbS7ILSBgYW1vdW50YDogQW1vdW50IG9mIHNoYXJlcyByZW1vdmVkIGZyb20gb21uaXBvb2wFAS0gYG1pbl9saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGFzc2V0IHRvIGJlIHJlbW92ZWQgZm9yIHRoZSB1c2VyALxFbWl0cyBgTGlxdWlkaXR5UmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBQcmVtb3ZlX2FsbF9saXF1aWRpdHkIASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEkbWluX2xpbWl0QAEcQmFsYW5jZQAPUIhSZW1vdmUgYWxsIGxpcXVpZGl0eSBmcm9tIHBvc2l0aW9uAHBMaW1pdCBwcm90ZWN0aW9uIGlzIGFwcGxpZWQuAFkBYHJlbW92ZV9hbGxfbGlxdWlkaXR5YCByZW1vdmVzIGFsbCBzaGFyZXMgYW1vdW50IGZyb20gZ2l2ZW4gUG9zaXRpb25JZCAoTkZUIGluc3RhbmNlKS4AkQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBSRU1PVkVfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAF0BaWYgYWxsIHNoYXJlcyBmcm9tIGdpdmVuIHBvc2l0aW9uIGFyZSByZW1vdmVkLCBwb3NpdGlvbiBpcyBkZXN0cm95ZWQgYW5kIE5GVCBpcyBidXJuZWQuAPEBUmVtb3ZlIGFsbCBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgDlAUR5bmFtaWMgd2l0aGRyYXdhbCBmZWUgaXMgYXBwbGllZCBpZiB3aXRoZHJhd2FsIGlzIG5vdCBzYWZlLiBJdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHNwb3QgcHJpY2UgYW5kIGV4dGVybmFsIHByaWNlIG9yYWNsZS7cV2l0aGRyYXdhbCBpcyBjb25zaWRlcmVkIHNhZmUgd2hlbiB0cmFkaW5nIGlzIGRpc2FibGVkLgAsUGFyYW1ldGVyczpVAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgcG9zaXRpb24gd2hpY2ggbGlxdWlkaXR5IGlzIGVudGlyZWx5IHJlbW92ZWQgZnJvbS4AvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAEhzYWNyaWZpY2VfcG9zaXRpb24EASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAQcnFNhY3JpZmljZSBMUCBwb3NpdGlvbiBpbiBmYXZvciBvZiBwb29sLgA9AUEgcG9zaXRpb24gaXMgZGVzdHJveWVkIGFuZCBsaXF1aWRpdHkgb3duZWQgYnkgTFAgYmVjb21lcyBwb29sIG93bmVkIGxpcXVpZGl0eS4AvE9ubHkgb3duZXIgb2YgcG9zaXRpb24gY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uAGhFbWl0cyBgUG9zaXRpb25EZXN0cm95ZWRgLhBzZWxsEAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAThtaW5fYnV5X2Ftb3VudEABHEJhbGFuY2UABUS0RXhlY3V0ZSBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuAJBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBPbW5pcG9vbC4AfEh1YiBhc3NldCBpcyB0cmFkZWQgc2VwYXJhdGVseS4ABQJBc3NldCdzIHRyYWRhYmxlIHN0YXRlcyBtdXN0IGNvbnRhaW4gU0VMTCBmbGFnIGZvciBhc3NldF9pbiBhbmQgQlVZIGZsYWcgZm9yIGFzc2V0X291dCwgb3RoZXJ3aXNlIGBOb3RBbGxvd2VkYCBlcnJvciBpcyByZXR1cm5lZC4ALFBhcmFtZXRlcnM6qC0gYGFzc2V0X2luYDogSUQgb2YgYXNzZXQgc29sZCB0byB0aGUgcG9vbLwtIGBhc3NldF9vdXRgOiBJRCBvZiBhc3NldCBib3VnaHQgZnJvbSB0aGUgcG9vbIAtIGBhbW91bnRgOiBBbW91bnQgb2YgYXNzZXQgc29sZNgtIGBtaW5fYnV5X2Ftb3VudGA6IE1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIHJlY2VpdmUA3EVtaXRzIGBTZWxsRXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ADGJ1eRABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAE8bWF4X3NlbGxfYW1vdW50QAEcQmFsYW5jZQAGRLRFeGVjdXRlIGEgc3dhcCBvZiBgYXNzZXRfb3V0YCBmb3IgYGFzc2V0X2luYC4AkFByaWNlIGlzIGRldGVybWluZWQgYnkgdGhlIE9tbmlwb29sLgB8SHViIGFzc2V0IGlzIHRyYWRlZCBzZXBhcmF0ZWx5LgAFAkFzc2V0J3MgdHJhZGFibGUgc3RhdGVzIG11c3QgY29udGFpbiBTRUxMIGZsYWcgZm9yIGFzc2V0X2luIGFuZCBCVVkgZmxhZyBmb3IgYXNzZXRfb3V0LCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgAsUGFyYW1ldGVyczqoLSBgYXNzZXRfaW5gOiBJRCBvZiBhc3NldCBzb2xkIHRvIHRoZSBwb29svC0gYGFzc2V0X291dGA6IElEIG9mIGFzc2V0IGJvdWdodCBmcm9tIHRoZSBwb29sgC0gYGFtb3VudGA6IEFtb3VudCBvZiBhc3NldCBzb2xkvC0gYG1heF9zZWxsX2Ftb3VudGA6IE1heGltdW0gYW1vdW50IHRvIGJlIHNvbGQuANhFbWl0cyBgQnV5RXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AYHNldF9hc3NldF90cmFkYWJsZV9zdGF0ZQgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABFHN0YXRleQIBLFRyYWRhYmlsaXR5AAcgeFVwZGF0ZSBhc3NldCdzIHRyYWRhYmxlIHN0YXRlLgAsUGFyYW1ldGVyczpYLSBgYXNzZXRfaWRgOiBhc3NldCBpZFAtIGBzdGF0ZWA6IG5ldyBzdGF0ZQDMRW1pdHMgYFRyYWRhYmxlU3RhdGVVcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAFByZWZ1bmRfcmVmdXNlZF9hc3NldAwBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASRyZWNpcGllbnQAATBUOjpBY2NvdW50SWQACCSwUmVmdW5kIGdpdmVuIGFtb3VudCBvZiBhc3NldCB0byBhIHJlY2lwaWVudC4AWQJBIHJlZnVuZCBpcyBuZWVkZWQgd2hlbiBhIHRva2VuIGlzIHJlZnVzZWQgdG8gYmUgYWRkZWQgdG8gT21uaXBvb2wsIGFuZCBpbml0aWFsIGxpcXVpZGl0eSBvZiB0aGUgYXNzZXQgaGFzIGJlZW4gYWxyZWFkeSB0cmFuc2ZlcnJlZCB0byBwb29sJ3MgYWNjb3VudC4AjQFUcmFuc2ZlciBjYW4gYmUgZXhlY3V0ZWQgb25seSBpZiBhc3NldCBpcyBub3QgaW4gT21uaXBvb2wgYW5kIHBvb2wncyBiYWxhbmNlIGhhcyBzdWZmaWNpZW50IGFtb3VudC4AyE9ubHkgYEF1dGhvcml0eU9yaWdpbmAgY2FuIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uAFRFbWl0cyBgQXNzZXRSZWZ1bmRlZGBQc2V0X2Fzc2V0X3dlaWdodF9jYXAIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQxjYXB1AgEcUGVybWlsbAAJIGRVcGRhdGUgYXNzZXQncyB3ZWlnaHQgY2FwACxQYXJhbWV0ZXJzOlgtIGBhc3NldF9pZGA6IGFzc2V0IGlkXC0gYGNhcGA6IG5ldyB3ZWlnaHQgY2FwANBFbWl0cyBgQXNzZXRXZWlnaHRDYXBVcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAGx3aXRoZHJhd19wcm90b2NvbF9saXF1aWRpdHkQASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEUcHJpY2V9AgFIKEJhbGFuY2UsIEJhbGFuY2UpAAEQZGVzdAABMFQ6OkFjY291bnRJZAALLGxSZW1vdmVzIHByb3RvY29sIGxpcXVpZGl0eS4AhQFQcm90b2NvbCBsaXF1aWRpdHkgaXMgbGlxdWlkaXR5IGZyb20gc2FjcmlmaWNlZCBwb3NpdGlvbnMuIEluIG9yZGVyIHRvIHJlbW92ZSBwcm90b2NvbCBsaXF1aWRpdHkseQF3ZSBuZWVkIHRoZSBrbm93IHRoZSBwcmljZSBvZiB0aGUgcG9zaXRpb24gYXQgdGhlIHRpbWUgb2Ygc2FjcmlmaWNlLiBIZW5jZSB0aGlzIHNwZWNpZmljIGNhbGwuALRPbmx5IGBBdXRob3JpdHlPcmlnaW5gIGNhbiBwZXJmb3JtIHRoaXMgY2FsbC4AeQFOb3RlIHRoYXQgc2FjcmlmaWNlIHBvc2l0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUuIFRoZXJlIGlzIG5vIGxvbmdlciBhIG5lZWQgZm9yIHRoYXQuAGEBSXQgd29ya3MgdGhlIHNhbWUgd2F5IGFzIHJlbW92ZSBsaXF1aWRpdHkgY2FsbCwgYnV0IHBvc2l0aW9uIGlzIHRlbXBvcmFyeSByZWNvbnN0cnVjdGVkLgAwcmVtb3ZlX3Rva2VuCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEsYmVuZWZpY2lhcnkAATBUOjpBY2NvdW50SWQADCxwUmVtb3ZlcyB0b2tlbiBmcm9tIE9tbmlwb29sLgBFAUFzc2V0J3MgdHJhZGFiaWxpdHkgbXVzdCBiZSBGUk9aRU4sIG90aGVyd2lzZSBgQXNzZXROb3RGcm96ZW5gIGVycm9yIGlzIHJldHVybmVkLgBhAVJlbWFpbmluZyBzaGFyZXMgbXVzdCBiZWxvbmcgdG8gcHJvdG9jb2wsIG90aGVyd2lzZSBgU2hhcmVzUmVtYWluaW5nYCBlcnJvciBpcyByZXR1cm5lZC4AeQFQcm90b2NvbCdzIGxpcXVpZGl0eSBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgYmVuZWZpY2lhcnkgYWNjb3VudCBhbmQgaHViIGFzc2V0IGFtb3VudCBpcyBidXJuZWQuALRPbmx5IGBBdXRob3JpdHlPcmlnaW5gIGNhbiBwZXJmb3JtIHRoaXMgY2FsbC4ArEVtaXRzIGBUb2tlblJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wc2V0X3NsaXBfZmVlBAEgc2xpcF9mZWWBAgFUT3B0aW9uPFNsaXBGZWVDb25maWc+ABAgkFNldCBvciBjbGVhciBzbGlwIGZlZSBjb25maWd1cmF0aW9uLgAxAVdoZW4gc2V0IHRvIGBTb21lKGNvbmZpZylgLCBzbGlwIGZlZXMgYXJlIGVuYWJsZWQgd2l0aCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy6sV2hlbiBzZXQgdG8gYE5vbmVgLCBzbGlwIGZlZXMgYXJlIGRpc2FibGVkLgDAQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IGBVcGRhdGVUcmFkYWJpbGl0eU9yaWdpbmAuAGRFbWl0cyBgU2xpcEZlZVNldGAgZXZlbnQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnUCDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVybWlsbAAABAAoAQx1MzIAAHkCDDxwYWxsZXRfb21uaXBvb2wUdHlwZXMsVHJhZGFiaWxpdHkAAAQBEGJpdHMIAQh1OAAAfQIAAAQIQEAAgQIEGE9wdGlvbgQEVAGFAgEIEE5vbmUAAAAQU29tZQQAhQIAAAEAAIUCDDxwYWxsZXRfb21uaXBvb2wUdHlwZXM0U2xpcEZlZUNvbmZpZwAABAEwbWF4X3NsaXBfZmVldQIBHFBlcm1pbGwAAIkCDGBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2UYcGFsbGV0EENhbGwEBFQAAQhEcGF1c2VfdHJhbnNhY3Rpb24IASxwYWxsZXRfbmFtZRQBHFZlYzx1OD4AATRmdW5jdGlvbl9uYW1lFAEcVmVjPHU4PgAAAEx1bnBhdXNlX3RyYW5zYWN0aW9uCAEscGFsbGV0X25hbWUUARxWZWM8dTg+AAE0ZnVuY3Rpb25fbmFtZRQBHFZlYzx1OD4AAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMujQIMNHBhbGxldF9kdXN0ZXIYcGFsbGV0EENhbGwEBFQAAQwwZHVzdF9hY2NvdW50CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABLGN1cnJlbmN5X2lkKAEoVDo6QXNzZXRJZAAAMFxEdXN0IHNwZWNpZmllZCBhY2NvdW50LnUBSUYgYWNjb3VudCBiYWxhbmNlIGlzIDwgbWluLiBleGlzdGVudGlhbCBkZXBvc2l0IG9mIGdpdmVuIGN1cnJlbmN5LCBhbmQgYWNjb3VudCBpcyBhbGxvd2VkIHRvEQFiZSBkdXN0ZWQsIHRoZSByZW1haW5pbmcgYmFsYW5jZSBpcyB0cmFuc2ZlcnJlZCB0byB0cmVhc3VyeSBhY2NvdW50LgB5AUluIGNhc2Ugb2YgQVRva2VuLCB3ZSBwZXJmb3JtIGFuIGVyYzIwIGR1c3QsIHdoaWNoIGRvZXMgYSB3aWh0ZHJhdyBhbGwgdG8gdGhlIHRyZWFzdXJ5IGFjY291bnSRAU5vdGUgdGhhdCBpbiB0aGlzIGNhc2UsIHRoZSB0cmVhc3VyeSB3aWxsIGp1c3QgcmVjZWl2ZSB0aGUgdW5kZXJseWluZyB0b2tlbiwgbm90IHRoZSBhdG9rZW4gdmFyaWFudC4ADQFUaGUgdHJhbnNhY3Rpb24gZmVlIGlzIHJldHVybmVkIGJhY2sgaW4gY2FzZSBvZiBzdWNjZXNzZnVsIGR1c3RpbmcuAJRUcmVhc3VyeSBhY2NvdW50IGNhbiBuZXZlciBiZSBkdXN0ZWQuAJRFbWl0cyBgRHVzdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuRHdoaXRlbGlzdF9hY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGE0BQWRkIGFjY291bnQgdG8gbGlzdCBvZiB3aGl0ZWxpc3QgYWNjb3VudHMuIEFjY291bnQgd2hpY2ggYXJlIGV4Y2x1ZGVkIGZyb20gZHVzdGluZy4pAUlmIHN1Y2ggYWNjb3VudCBzaG91bGQgYmUgZHVzdGVkIC0gYEFjY291bnRXaGl0ZWxpc3RlZGAgZXJyb3IgaXMgcmV0dXJuZWQuiE9ubHkgcm9vdCBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AkEVtaXRzIGBBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBUcmVtb3ZlX2Zyb21fd2hpdGVsaXN0BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAACEF0BUmVtb3ZlIGFjY291bnQgZnJvbSBsaXN0IG9mIHdoaXRlbGlzdCBhY2NvdW50cy4gVGhhdCBtZWFucyBhY2NvdW50IGNhbiBiZSBkdXN0ZWQgYWdhaW4uAJhFbWl0cyBgUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMukQIMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBBDYWxsCARUAARJAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpUCDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAQEVAABREhjcmVhdGVfZ2xvYmFsX2Zhcm0gATR0b3RhbF9yZXdhcmRzQAEcQmFsYW5jZQABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVRscm5hX3ByaWNlX2FkanVzdG1lbnRUASRGaXhlZFUxMjgAAHD8Q3JlYXRlIGEgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMuAEUBYG93bmVyYCBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IGB0b3RhbF9yZXdhcmRzYCBiYWxhbmNlLiBUaGVzZSBmdW5kcyB3aWxsIGJlpHRyYW5zZmVycmVkIGZyb20gYG93bmVyYCB0byBmYXJtIGFjY291bnQuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczpVAS0gYG9yaWdpbmA6IGFjY291bnQgYWxsb3dlZCB0byBjcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbShyb290LCBnb3Zlcm5hbmNlKS41AS0gYHRvdGFsX3Jld2FyZHNgOiB0b3RhbCByZXdhcmRzIHBsYW5uZWQgdG8gZGlzdHJpYnV0ZS4gVGhlc2UgcmV3YXJkcyB3aWxsIGJl3GRpc3RyaWJ1dGVkIGJldHdlZW4gYWxsIHlpZWxkIGZhcm1zIGluIHRoZSBnbG9iYWwgZmFybS5ZAS0gYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kc2A6IHBsYW5uZWQgbnVtYmVyIG9mIHBlcmlvZHMgdG8gZGlzdHJpYnV0ZSBgdG90YWxfcmV3YXJkc2AuKQFXQVJOOiBUSElTIElTIE5PVCBIQVJEIERFQURMSU5FLiBOb3QgYWxsIHJld2FyZHMgaGF2ZSB0byBiZSBkaXN0cmlidXRlZCBpbl0BYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kc2AuIFJld2FyZHMgYXJlIGRpc3RyaWJ1dGVkIGJhc2VkIG9uIHRoZSBzaXR1YXRpb24gaW4gdGhlIHlpZWxkQQFmYXJtcyBhbmQgY2FuIGJlIGRpc3RyaWJ1dGVkIGluIGEgbG9uZ2VyLCB0aG91Z2ggbmV2ZXIgaW4gYSBzaG9ydGVyLCB0aW1lIGZyYW1lLlkBLSBgYmxvY2tzX3Blcl9wZXJpb2RgOiAgbnVtYmVyIG9mIGJsb2NrcyBpbiBhIHNpbmdsZSBwZXJpb2QuIE1pbi4gbnVtYmVyIG9mIGJsb2NrcyBwZXIwcGVyaW9kIGlzIDEuwC0gYHJld2FyZF9jdXJyZW5jeWA6IHBheW9mZiBjdXJyZW5jeSBvZiByZXdhcmRzLjkBLSBgb3duZXJgOiBsaXEuIG1pbmluZyBmYXJtIG93bmVyLiBUaGlzIGFjY291bnQgd2lsbCBiZSBhYmxlIHRvIG1hbmFnZSBjcmVhdGVkZGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbS4pAS0gYHlpZWxkX3Blcl9wZXJpb2RgOiBwZXJjZW50YWdlIHJldHVybiBvbiBgcmV3YXJkX2N1cnJlbmN5YCBvZiBhbGwgZmFybXMukQEtIGBtaW5fZGVwb3NpdGA6IG1pbmltdW0gYW1vdW50IG9mIExQIHNoYXJlcyB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZyBieSBlYWNoIHVzZXIuTQEtIGBscm5hX3ByaWNlX2FkanVzdG1lbnRgOiBwcmljZSBhZGp1c3RtZW50IGJldHdlZW4gYFtMUk5BXWAgYW5kIGByZXdhcmRfY3VycmVuY3lgLgCoRW1pdHMgYEdsb2JhbEZhcm1DcmVhdGVkYCB3aGVuIHN1Y2Nlc3NmdWwuAFR0ZXJtaW5hdGVfZ2xvYmFsX2Zhcm0EAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACNJxUZXJtaW5hdGUgZXhpc3RpbmcgbGlxLiBtaW5pbmcgcHJvZ3JhbS4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AEQFXQVJOOiBUbyBzdWNjZXNzZnVsbHkgdGVybWluYXRlIGEgZ2xvYmFsIGZhcm0sIGZhcm0gaGF2ZSB0byBiZSBlbXB0eeAoYWxsIHlpZWxkIGZhcm1zIGluIHRoZSBnbG9iYWwgZmFybSBtdXN0IGJlIHRlcm1pbmF0ZWQpLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7cLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byBiZSB0ZXJtaW5hdGVkLgDMRW1pdHMgYEdsb2JhbEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERjcmVhdGVfeWllbGRfZmFybRABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAE0bG95YWx0eV9jdXJ2ZZ0CAVBPcHRpb248TG95YWx0eUN1cnZlPgADSNxDcmVhdGUgeWllbGQgZmFybSBmb3IgZ2l2ZW4gYGFzc2V0X2lkYCBpbiB0aGUgb21uaXBvb2wuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgDsQXNzZXQgd2l0aCBgYXNzZXRfaWRgIGhhcyB0byBiZSByZWdpc3RlcmVkIGluIHRoZSBvbW5pcG9vbC5VAUF0IG1vc3Qgb25lIGBhY3RpdmVgIHlpZWxkIGZhcm0gY2FuIGV4aXN0IGluIG9uZSBnbG9iYWwgZmFybSBmb3IgdGhlIHNhbWUgYGFzc2V0X2lkYC4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIHRvIHdoaWNoIGEgeWllbGQgZmFybSB3aWxsIGJlIGFkZGVkLh0BLSBgYXNzZXRfaWRgOiBpZCBvZiBhIGFzc2V0IGluIHRoZSBvbW5pcG9vbC4gWWllbGQgZmFybSB3aWxsIGJlIGNyZWF0ZWRhAWZvciB0aGlzIGFzc2V0IGFuZCB1c2VyIHdpbGwgYmUgYWJsZSB0byBsb2NrIExQIHNoYXJlcyBpbnRvIHRoaXMgeWllbGQgZmFybSBpbW1lZGlhdGVseS6gLSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0ncyBtdWx0aXBsaWVyLl0BLSBgbG95YWx0eV9jdXJ2ZWA6IGN1cnZlIHRvIGNhbGN1bGF0ZSBsb3lhbHR5IG11bHRpcGxpZXIgdG8gZGlzdHJpYnV0ZSByZXdhcmRzIHRvIHVzZXJz4HdpdGggdGltZSBpbmNlbnRpdmUuIGBOb25lYCBtZWFucyBubyBsb3lhbHR5IG11bHRpcGxpZXIuALxFbWl0cyBgWWllbGRGYXJtQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBEdXBkYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgAEMHxVcGRhdGUgeWllbGQgZmFybSdzIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuIQEtIGBhc3NldF9pZGA6IGlkIG9mIHRoZSBhc3NldCBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS6wLSBgbXVsdGlwbGllcmA6IG5ldyB5aWVsZCBmYXJtJ3MgbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADxzdG9wX3lpZWxkX2Zhcm0IAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFQLhTdG9wIGxpcXVpZGl0eSBtaW1pbmcgZm9yIHNwZWNpZmljIHlpZWxkIGZhcm0uADEBVGhpcyBmdW5jdGlvbiBjbGFpbXMgcmV3YXJkcyBmcm9tIGBHbG9iYWxGYXJtYCBsYXN0IHRpbWUgYW5kIHN0b3AgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u4GBkZXBvc2l0X3NoYXJlcygpYCBpcyBub3QgYWxsb3dlZCBvbiBzdG9wcGVkIHlpZWxkIGZhcm0uBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4FAS0gYGdsb2JhbF9mYXJtX2lkYDogZmFybSBpZCBpbiB3aGljaCB5aWVsZCBmYXJtIHdpbGwgYmUgY2FuY2VsZWQuIQEtIGBhc3NldF9pZGA6IGlkIG9mIHRoZSBhc3NldCBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS4AvEVtaXRzIGBZaWVsZEZhcm1TdG9wcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERyZXN1bWVfeWllbGRfZmFybRABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAZM+FJlc3VtZSBpbmNlbnRpdml6YXRpb24gb2YgdGhlIGFzc2V0IHJlcHJlc2VudGVkIGJ5IHlpZWxkIGZhcm0uAC0BVGhpcyBmdW5jdGlvbiByZXN1bWUgaW5jZW50aXZpemF0aW9uIG9mIHRoZSBhc3NldCBmcm9tIHRoZSBgR2xvYmFsRmFybWAgYW5kMQFyZXN0b3JlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvciB0aGUgeWllbGQgZmFybS4gVXNlcnMgd2lsbCBiZSBhYmxlIHRvIGRlcG9zaXQsZGNsYWltIGFuZCB3aXRoZHJhdyBhZ2Fpbi4AEQFXQVJOOiBZaWVsZCBmYXJtKGFuZCB1c2VycykgaXMgTk9UIHJld2FyZGVkIGZvciB0aW1lIGl0IHdhcyBzdG9wcGVkLgCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHJlc3VtZWQu2C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB0aGUgeWllbGQgZmFybSB0byBiZSByZXN1bWVkLiEBLSBgYXNzZXRfaWRgOiBpZCBvZiB0aGUgYXNzZXQgaWRlbnRpZnlpbmcgeWllbGQgZmFybSBpbiB0aGUgZ2xvYmFsIGZhcm0umC0gYG11bHRpcGxpZXJgOiB5aWVsZCBmYXJtIG11bHRpcGxpZXIuALxFbWl0cyBgWWllbGRGYXJtUmVzdW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBQdGVybWluYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAHUFRUZXJtaW5hdGUgeWllbGQgZmFybS4AgQFUaGlzIGZ1bmN0aW9uIG1hcmtzIGEgeWllbGQgZmFybSBhcyByZWFkeSB0byBiZSByZW1vdmVkIGZyb20gc3RvcmFnZSB3aGVuIGl0J3MgZW1wdHkuIFVzZXJzIHdpbGxlAWJlIGFibGUgdG8gb25seSB3aXRoZHJhdyBzaGFyZXMod2l0aG91dCBjbGFpbWluZyByZXdhcmRzIGZyb20geWllbGQgZmFybSkuIFVucGFpZCByZXdhcmRzfQF3aWxsIGJlIHRyYW5zZmVycmVkIGJhY2sgdG8gZ2xvYmFsIGZhcm0gYW5kIGl0IHdpbGwgYmUgdXNlZCB0byBkaXN0cmlidXRlIHRvIG90aGVyIHlpZWxkIGZhcm1zLgDcWWllbGQgZmFybSBtdXN0IGJlIHN0b3BwZWQgYmVmb3JlIGl0IGNhbiBiZSB0ZXJtaW5hdGVkLgBxAU9ubHkgZ2xvYmFsIGZhcm0ncyBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4gWWllbGQgZmFybSBzdGF5cyBpbiB0aGUgc3RvcmFnZSB1bnRpbCBpdCdzbQFlbXB0eShhbGwgZmFybSBlbnRyaWVzIGFyZSB3aXRoZHJhd24pLiBMYXN0IHdpdGhkcmF3biBmcm9tIHlpZWxkIGZhcm0gdHJpZ2dlciByZW1vdmluZyBmcm9tMHRoZSBzdG9yYWdlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4xAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSBzaG91bGQgYmUgdGVybWluYXRlZC7ULSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHlpZWxkIGZhcm0gdG8gYmUgdGVybWluYXRlZC7ULSBgYXNzZXRfaWRgOiBpZCBvZiB0aGUgYXNzZXQgaWRlbnRpZnlpbmcgeWllbGQgZmFybS4AyEVtaXRzIGBZaWVsZEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhkZXBvc2l0X3NoYXJlcwwBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAAIOOxEZXBvc2l0IG9tbmlwb29sIHBvc2l0aW9uKExQIHNoYXJlcykgdG8gYSBsaXF1aWRpdHkgbWluaW5nLgBxAVRoaXMgZnVuY3Rpb24gdHJhbnNmZXJzIG9tbmlwb29sIHBvc2l0aW9uIGZyb20gYG9yaWdpbmAgdG8gcGFsbGV0J3MgYWNjb3VudCBhbmQgbWludCBORlQgZm9yRQFgb3JpZ2luYCBhY2NvdW50LiBNaW50ZWQgTkZUIHJlcHJlc2VudHMgZGVwb3NpdCBpbiB0aGUgbGlxdWlkaXR5IG1pbmluZy4gVXNlciBjYW4hAWRlcG9zaXQgb21uaXBvb2wgcG9zaXRpb24gYXMgYSB3aG9sZShhbGwgdGhlIExQIHNoYXJlcyBpbiB0aGUgcG9zaXRpb24pLgAsUGFyYW1ldGVyczpBAS0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBkZXBvc2l0IGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuPQEtIGBnbG9iYWxfZmFybV9pZGA6IGlkIG9mIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gZGVwb3NpdCBMUCBzaGFyZXMuyC0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGRlcG9zaXQgdG8uXQEtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZy4AuEVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AQHJlZGVwb3NpdF9zaGFyZXMMAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQACTzwUmVkZXBvc2l0IExQIHNoYXJlcyBpbiB0aGUgYWxyZWFkeSBsb2NrZWQgb21uaXBvb2wgcG9zaXRpb24uAFEBVGhpcyBmdW5jdGlvbiBjcmVhdGUgeWllbGQgZmFybSBlbnRyeSBmb3IgZXhpc3RpbmcgZGVwb3NpdC4gQW1vdW50IG9mIHJlZGVwb3NpdGVkIExQLQFzaGFyZXMgaXMgc2FtZSBhcyBhbW91bnQgc2hhcmVzIHdoaWNoIGFyZSBhbHJlYWR5IGRlcG9zaXRlZCBpbiB0aGUgZGVwb3NpdC4AuFRoaXMgZnVuY3Rpb24gRE9FU04nVCBjcmVhdGUgbmV3IGRlcG9zaXQoTkZUKS4ALFBhcmFtZXRlcnM6uC0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBkZXBvc2l0IHRvIHJlZGVwb3NpdC5VAS0gYGdsb2JhbF9mYXJtX2lkYDogaWQgb2YgdGhlIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gcmVkZXBvc2l0IExQIHNoYXJlcy7gLSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHRoZSB5aWVsZCBmYXJtIHRvIHJlZGVwb3NpdCB0by7cLSBgZGVwb3NpdF9pZGA6IGlkZW50aWZpZXIgb2YgdGhlIGRlcG9zaXQgdG8gcmVkZXBvc2l0LgDARW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADRjbGFpbV9yZXdhcmRzCAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAAKMGEBQ2xhaW0gcmV3YXJkcyBmcm9tIGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSBmb3IgZGVwb3NpdCByZXByZXNlbnRlZCBieSB0aGUgYGRlcG9zaXRfaWRgLgBtAVRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlIHVzZXIgcmV3YXJkcyBmcm9tIGxpcXVpZGl0eSBtaW5pbmcgYW5kIHRyYW5zZmVyIHJld2FyZHMgdG8gYG9yaWdpbmD8YWNjb3VudC4gQ2xhaW1pbmcgbXVsdGlwbGUgdGltZSB0aGUgc2FtZSBwZXJpb2QgaXMgbm90IGFsbG93ZWQuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBvd25lciBvZiBkZXBvc2l0LtwtIGBkZXBvc2l0X2lkYDogaWQgb2YgdGhlIGRlcG9zaXQgdG8gY2xhaW0gcmV3YXJkcyBmb3Iu+C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB0aGUgeWllbGQgZmFybSB0byBjbGFpbSByZXdhcmRzIGZyb20uALBFbWl0cyBgUmV3YXJkQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA8d2l0aGRyYXdfc2hhcmVzCAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAALUFUBVGhpcyBmdW5jdGlvbiBjbGFpbSByZXdhcmRzIGFuZCB3aXRoZHJhdyBMUCBzaGFyZXMgZnJvbSB5aWVsZCBmYXJtLiBPbW5pcG9vbCBwb3NpdGlvblEBaXMgdHJhbnNmZXJyZWQgdG8gb3JpZ2luIG9ubHkgaWYgdGhpcyBpcyBsYXN0IHdpdGhkcmF3IGluIHRoZSBkZXBvc2l0IGFuZCBkZXBvc2l0IGlzUQFkZXN0cm95ZWQuIFRoaXMgZnVuY3Rpb24gY2xhaW0gcmV3YXJkcyBvbmx5IGlmIHlpZWxkIGZhcm0gaXMgbm90IHRlcm1pbmF0ZWQgYW5kIHVzZXK8ZGlkbid0IGFscmVhZHkgY2xhaW0gcmV3YXJkcyBpbiBjdXJyZW50IHBlcmlvZC4ATQFVbmNsYWltYWJsZSByZXdhcmRzIHJlcHJlc2VudHMgcmV3YXJkcyB3aGljaCB1c2VyIHdvbid0IGJlIGFibGUgdG8gY2xhaW0gYmVjYXVzZSBvZkkBZXhpdGluZyBlYXJseSBhbmQgdGhlc2UgcmV3YXJkcyB3aWxsIGJlIHRyYW5zZmVycmVkIGJhY2sgdG8gZ2xvYmFsIGZhcm0gZm9yIGZ1dHVyZTxyZWRpc3RyaWJ1dGlvbi4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IG93bmVyIG9mIGRlcG9zaXQu3C0gYGRlcG9zaXRfaWRgOiBpZCBvZiB0aGUgZGVwb3NpdCB0byBjbGFpbSByZXdhcmRzIGZvci74LSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHRoZSB5aWVsZCBmYXJtIHRvIGNsYWltIHJld2FyZHMgZnJvbS4AGEVtaXRzOsQqIGBSZXdhcmRDbGFpbWVkYCBldmVudCBpZiBjbGFpbWVkIHJld2FyZHMgaXMgPiAwpCogYFNoYXJlc1dpdGhkcmF3bmAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsXQEqIGBEZXBvc2l0RGVzdHJveWVkYCBldmVudCB3aGVuIHRoaXMgd2FzIGxhc3Qgd2l0aGRyYXcgZnJvbSB0aGUgZGVwb3NpdCBhbmQgZGVwb3NpdCB3YXMoZGVzdHJveWVkLgBIdXBkYXRlX2dsb2JhbF9mYXJtEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoAUhjcmF0ZTo6UGVyaW9kT2Y8VD4AAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAw41FRoaXMgZXh0cmluc2ljIHVwZGF0ZXMgZ2xvYmFsIGZhcm0ncyBtYWluIHBhcmFtZXRlcnMuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczpVAS0gYG9yaWdpbmA6IGFjY291bnQgYWxsb3dlZCB0byBjcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbShyb290LCBnb3Zlcm5hbmNlKS7QLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiB0aGUgZ2xvYmFsIGZhcm0gdG8gdXBkYXRlLlkBLSBgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYDogcGxhbm5lZCBudW1iZXIgb2YgcGVyaW9kcyB0byBkaXN0cmlidXRlIGB0b3RhbF9yZXdhcmRzYC4pAS0gYHlpZWxkX3Blcl9wZXJpb2RgOiBwZXJjZW50YWdlIHJldHVybiBvbiBgcmV3YXJkX2N1cnJlbmN5YCBvZiBhbGwgZmFybXMukQEtIGBtaW5fZGVwb3NpdGA6IG1pbmltdW0gYW1vdW50IG9mIExQIHNoYXJlcyB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZyBieSBlYWNoIHVzZXIuAMBFbWl0cyBgR2xvYmFsRmFybVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4oam9pbl9mYXJtcwgBMGZhcm1fZW50cmllc6UCAREBQm91bmRlZFZlYzwoR2xvYmFsRmFybUlkLCBZaWVsZEZhcm1JZCksIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAA0kRQFUaGlzIGZ1bmN0aW9uIGFsbG93cyB1c2VyIHRvIGpvaW4gbXVsdGlwbGUgZmFybXMgd2l0aCBhIHNpbmdsZSBvbW5pcG9vbCBwb3NpdGlvbi4ALFBhcmFtZXRlcnM6QQEtIGBvcmlnaW5gOiBvd25lciBvZiB0aGUgb21uaXBvb2wgcG9zaXRpb24gdG8gZGVwb3NpdCBpbnRvIHRoZSBsaXF1aWRpdHkgbWluaW5nLqAtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGZhcm1zIHRvIGpvaW4uXQEtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZy4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVwYWRkX2xpcXVpZGl0eV9hbmRfam9pbl9mYXJtcxABMGZhcm1fZW50cmllc6UCAREBQm91bmRlZFZlYzwoR2xvYmFsRmFybUlkLCBZaWVsZEZhcm1JZCksIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AARRhc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAFAbWluX3NoYXJlc19saW1pdPUBATxPcHRpb248QmFsYW5jZT4ADixdAVRoaXMgZnVuY3Rpb24gYWxsb3dzIHVzZXIgdG8gYWRkIGxpcXVpZGl0eSB0aGVuIHVzZSB0aGF0IHNoYXJlcyB0byBqb2luIG11bHRpcGxlIGZhcm1zLgAsUGFyYW1ldGVyczpBAS0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBkZXBvc2l0IGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuoC0gYGZhcm1fZW50cmllc2A6IGxpc3Qgb2YgZmFybXMgdG8gam9pbi4VAS0gYGFzc2V0YDogaWQgb2YgdGhlIGFzc2V0IHRvIGJlIGRlcG9zaXRlZCBpbnRvIHRoZSBsaXF1aWRpdHkgbWluaW5nLikBLSBgYW1vdW50YDogYW1vdW50IG9mIHRoZSBhc3NldCB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZy6FAS0gYG1pbl9zaGFyZXNfbGltaXRgOiBUaGUgbWluIGFtb3VudCBvZiBkZWx0YSBzaGFyZSBhc3NldCB0aGUgdXNlciBzaG91bGQgcmVjZWl2ZSBpbiB0aGUgcG9zaXRpb24A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmUoZXhpdF9mYXJtcwgBKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAATh5aWVsZF9mYXJtX2lkc7ECAdBCb3VuZGVkVmVjPFlpZWxkRmFybUlkLCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AA88jEV4aXQgZnJvbSBhbGwgc3BlY2lmaWVkIHlpZWxkIGZhcm1zAF0BVGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gd2l0aGRyYXcgc2hhcmVzIGFuZCBjbGFpbSByZXdhcmRzIChpZiBhdmFpbGFibGUpIGZyb20gYWxsqHNwZWNpZmllZCB5aWVsZCBmYXJtcyBmb3IgYSBnaXZlbiBkZXBvc2l0LgAsUGFyYW1ldGVyczqoLSBgb3JpZ2luYDogYWNjb3VudCBvd25lciBvZiBkZXBvc2l0KG5mdCku3C0gYGRlcG9zaXRfaWRgOiBpZCBvZiB0aGUgZGVwb3NpdCB0byBjbGFpbSByZXdhcmRzIGZvci7gLSBgeWllbGRfZmFybV9pZHNgOiBpZChzKSBvZiB5aWVsZCBmYXJtKHMpIHRvIGV4aXQgZnJvbS4AGEVtaXRzOqwqIGBSZXdhcmRDbGFpbWVkYCBmb3IgZWFjaCBzdWNjZXNzZnVsIGNsYWltyCogYFNoYXJlc1dpdGhkcmF3bmAgZm9yIGVhY2ggc3VjY2Vzc2Z1bCB3aXRoZHJhd2Fs2CogYERlcG9zaXREZXN0cm95ZWRgIGlmIHRoZSBkZXBvc2l0IGlzIGZ1bGx5IHdpdGhkcmF3bgDAYWRkX2xpcXVpZGl0eV9zdGFibGVzd2FwX29tbmlwb29sX2FuZF9qb2luX2Zhcm1zEAE4c3RhYmxlX3Bvb2xfaWQoAShUOjpBc3NldElkAAFQc3RhYmxlX2Fzc2V0X2Ftb3VudHO5AgEFAUJvdW5kZWRWZWM8QXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAEwZmFybV9lbnRyaWVzxQIBNQFPcHRpb248Qm91bmRlZFZlYzwoR2xvYmFsRmFybUlkLCBZaWVsZEZhcm1JZCksIFQ6OgpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+PgABQG1pbl9zaGFyZXNfbGltaXT1AQE8T3B0aW9uPEJhbGFuY2U+ABBI+FRoaXMgZnVuY3Rpb24gYWxsb3dzIHVzZXIgdG8gYWRkIGxpcXVpZGl0eSB0byBzdGFibGVzd2FwIHBvb2ws2HRoZW4gYWRkaW5nIHRoZSBzdGFibGUgc2hhcmVzIGFzIGxpcXVpZGl0eSB0byBvbW5pcG9vbNR0aGVuIHVzZSB0aGF0IG9tbmlwb29sIHNoYXJlcyB0byBqb2luIG11bHRpcGxlIGZhcm1zLgCNAUlmIGZhcm0gZW50cmllcyBhcmUgbm90IHNwZWNpZmllZCAoZW1wdHkgdmVjdG9vKSwgdGhlbiB0aGUgbGlxdWlkaXRpZXMgYXJlIHN0aWxsIGFkZGVkIHRvIHRoZSBwb29scwAsUGFyYW1ldGVyczpBAS0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBkZXBvc2l0IGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuCQEtIGBzdGFibGVfcG9vbF9pZGA6IGlkIG9mIHRoZSBzdGFibGVzd2FwIHBvb2wgdG8gYWRkIGxpcXVpZGl0eSB0by5hAS0gYHN0YWJsZV9hc3NldF9hbW91bnRzYDogYW1vdW50IG9mIGVhY2ggYXNzZXQgdG8gYmUgZGVwb3NpdGVkIGludG8gdGhlIHN0YWJsZXN3YXAgcG9vbC6gLSBgZmFybV9lbnRyaWVzYDogbGlzdCBvZiBmYXJtcyB0byBqb2luLmEBLSBgbWluX3NoYXJlc19saW1pdGA6IG9wdGlvbmFsIG1pbmltdW0gT21uaXBvb2wgc2hhcmVzIHRvIHJlY2VpdmUgKHNsaXBwYWdlIHByb3RlY3Rpb24pLlEBICAgICAgICAgICAgICAgICAgICAgIEFwcGxpZXMgdG8gT21uaXBvb2wgc3RlcCBvbmx5LiBOb25lIGRlZmF1bHRzIHRvIG5vIHByb3RlY3Rpb24uALBFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50cyBmcm9tIGJvdGggcG9vbNhFbWl0cyBgU2hhcmVzRGVwb3NpdGVkYCBldmVudCBmb3IgdGhlIGZpcnN0IGZhcm0gZW50cnkdAUVtaXRzIGBTaGFyZXNSZWRlcG9zaXRlZGAgZXZlbnQgZm9yIGVhY2ggZmFybSBlbnRyeSBhZnRlciB0aGUgZmlyc3Qgb25lAMxyZW1vdmVfbGlxdWlkaXR5X3N0YWJsZXN3YXBfb21uaXBvb2xfYW5kX2V4aXRfZmFybXMQASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAFIb21uaXBvb2xfbWluX2xpbWl0QAEcQmFsYW5jZQABaHN0YWJsZXN3YXBfbWluX2Ftb3VudHNfb3V0uQIBBQFCb3VuZGVkVmVjPEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABKGRlcG9zaXRfaWT1AQFET3B0aW9uPERlcG9zaXRJZD4AEWRlAVJlbW92ZSBsaXF1aWRpdHkgZnJvbSBzdGFibGVzd2FwIGFuZCBvbW5pcG9vbCwgb3B0aW9uYWxseSBleGl0aW5nIGFzc29jaWF0ZWQgeWllbGQgZmFybXMuAJkBVGhpcyBleHRyaW5zaWMgcmV2ZXJzZXMgdGhlIG9wZXJhdGlvbiBwZXJmb3JtZWQgYnkgYGFkZF9saXF1aWRpdHlfc3RhYmxlc3dhcF9vbW5pcG9vbF9hbmRfam9pbl9mYXJtc2AsMQF3aXRoIG9wdGlvbmFsIGZhcm0gZXhpdCB0byBtYXRjaCB0aGUgb3B0aW9uYWwgZmFybSBqb2luIGluIHRoZSBhZGQgZnVuY3Rpb24uAKRJdCBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIG9yZGVyOskBMS4gW09QVElPTkFMXSBJZiBkZXBvc2l0X2lkIGlzIHByb3ZpZGVkOiBFeGl0cyBmcm9tIEFMTCB5aWVsZCBmYXJtcyBhc3NvY2lhdGVkIHdpdGggdGhlIGRlcG9zaXQgKGNsYWltaW5nIHJld2FyZHMpmQEyLiBSZW1vdmVzIGxpcXVpZGl0eSBmcm9tIHRoZSBvbW5pcG9vbCB0byByZXRyaWV2ZSBzdGFibGVzd2FwIHNoYXJlcyAocHJvdGVjdGVkIGJ5IG9tbmlwb29sX21pbl9saW1pdCnVATMuIFJlbW92ZXMgbGlxdWlkaXR5IGZyb20gdGhlIHN0YWJsZXN3YXAgcG9vbCB0byByZXRyaWV2ZSB1bmRlcmx5aW5nIGFzc2V0cyAocHJvdGVjdGVkIGJ5IHN0YWJsZXN3YXBfbWluX2Ftb3VudHNfb3V0KQChAVRoZSBzdGFiZWxzd2FwIGxpcXVpZGl0eSBhc3NldCByZW1vdmFsIHN0cmF0ZWd5IGlzIGRldGVybWluZWQgYnkgdGhlIGBtaW5fYW1vdW50c19vdXRgIHBhcmFtZXRlciBsZW5ndGg6SQEtIElmIDEgYXNzZXQgaXMgc3BlY2lmaWVkOiBVc2VzIGByZW1vdmVfbGlxdWlkaXR5X29uZV9hc3NldGAgKHRyYWRpbmcgZmVlIGFwcGxpZXMpMQEtIElmIG11bHRpcGxlIGFzc2V0czogVXNlcyBgcmVtb3ZlX2xpcXVpZGl0eWAgKHByb3BvcnRpb25hbCwgbm8gdHJhZGluZyBmZWUpACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBPd25lciBvZiB0aGUgb21uaXBvb2wgcG9zaXRpb24ZAS0gYHBvc2l0aW9uX2lkYDogVGhlIG9tbmlwb29sIHBvc2l0aW9uIE5GVCBJRCB0byByZW1vdmUgbGlxdWlkaXR5IGZyb22FAS0gYG9tbmlwb29sX21pbl9saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGFzc2V0IHRvIGJlIHJlbW92ZWQgZnJvbSBvbW5pcG9vbCAoc2xpcHBhZ2UgcHJvdGVjdGlvbinVAS0gYHN0YWJsZXN3YXBfbWluX2Ftb3VudHNfb3V0YDogQXNzZXQgSURzIGFuZCBtaW5pbXVtIGFtb3VudHMgbWluaW11bSBhbW91bnRzIG9mIGVhY2ggYXNzZXQgdG8gcmVjZWl2ZSBmcm9tIG9tbmlwb29sLnUBLSBgZGVwb3NpdF9pZGA6IE9wdGlvbmFsIGxpcXVpZGl0eSBtaW5pbmcgZGVwb3NpdCBORlQgSUQuIElmIHByb3ZpZGVkLCBleGl0cyBhbGwgZmFybXMgZmlyc3QuADRFbWl0cyBldmVudHM6QQEtIElmIGRlcG9zaXRfaWQgcHJvdmlkZWQ6IGBSZXdhcmRDbGFpbWVkYCwgYFNoYXJlc1dpdGhkcmF3bmAsIGBEZXBvc2l0RGVzdHJveWVkYCEBLSBBbHdheXM6IE9tbmlwb29sJ3MgYExpcXVpZGl0eVJlbW92ZWRgLCBTdGFibGVzd2FwJ3MgYExpcXVpZGl0eVJlbW92ZWRgAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6ZAgw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzLFBlcnF1aW50aWxsAAAEABgBDHU2NAAAnQIEGE9wdGlvbgQEVAGhAgEIEE5vbmUAAAAQU29tZQQAoQIAAAEAAKECDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczBMb3lhbHR5Q3VydmUAAAgBZGluaXRpYWxfcmV3YXJkX3BlcmNlbnRhZ2VUASRGaXhlZFUxMjgAAShzY2FsZV9jb2VmKAEMdTMyAAClAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAakCBFMAAAQArQIBGFZlYzxUPgAAqQIAAAQIKCgArQIAAAKpAgCxAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AAC1AgAAAigAuQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG9AgRTAAAEAMECARhWZWM8VD4AAL0CDDhoeWRyYWR4X3RyYWl0cyhzdGFibGVzd2FwLEFzc2V0QW1vdW50BBxBc3NldElkASgACAEgYXNzZXRfaWQoARxBc3NldElkAAEYYW1vdW50QAEQdTEyOAAAwQIAAAK9AgDFAgQYT3B0aW9uBARUAaUCAQgQTm9uZQAAABBTb21lBAClAgAAAQAAyQIMKHBhbGxldF9vdGMYcGFsbGV0EENhbGwEBFQAARAscGxhY2Vfb3JkZXIUASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAFIcGFydGlhbGx5X2ZpbGxhYmxlRAEQYm9vbAAASFhDcmVhdGUgYSBuZXcgT1RDIG9yZGVyBCAsUGFyYW1ldGVyczqkLSBgYXNzZXRfaW5gOiBBc3NldCB3aGljaCBpcyBiZWluZyBib3VnaHSgLSBgYXNzZXRfb3V0YDogQXNzZXQgd2hpY2ggaXMgYmVpbmcgc29sZNgtIGBhbW91bnRfaW5gOiBBbW91bnQgdGhhdCB0aGUgb3JkZXIgaXMgc2Vla2luZyB0byBidXnALSBgYW1vdW50X291dGA6IEFtb3VudCB0aGF0IHRoZSBvcmRlciBpcyBzZWxsaW5nSQEtIGBwYXJ0aWFsbHlfZmlsbGFibGVgOiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB1c2VycyBjYW4gZmlsbCB0aGUgb3JkZXIgcGFydGlhbGx5ADBWYWxpZGF0aW9uczp0LSBhc3NldF9pbiBtdXN0IGJlIHJlZ2lzdGVyZWRFAS0gYW1vdW50X2luIG11c3QgYmUgaGlnaGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgb2YgYXNzZXRfaW4gbXVsdGlwbGllZCBieXggIEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXJNAS0gYW1vdW50X291dCBtdXN0IGJlIGhpZ2hlciB0aGFuIHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IG9mIGFzc2V0X291dCBtdWx0aXBsaWVkIGJ5eCAgRXhpc3RlbnRpYWxEZXBvc2l0TXVsdGlwbGllcgAcRXZlbnRzOoQtIGBQbGFjZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5IcGFydGlhbF9maWxsX29yZGVyCAEgb3JkZXJfaWQoARxPcmRlcklkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABQHRGaWxsIGFuIE9UQyBvcmRlciAocGFydGlhbGx5KQQgLFBhcmFtZXRlcnM6dC0gYG9yZGVyX2lkYDogSUQgb2YgdGhlIG9yZGVy6C0gYGFtb3VudF9pbmA6IEFtb3VudCB3aXRoIHdoaWNoIHRoZSBvcmRlciBpcyBiZWluZyBmaWxsZWQAMFZhbGlkYXRpb25zOogtIG9yZGVyIG11c3QgYmUgcGFydGlhbGx5X2ZpbGxhYmxljQEtIGFmdGVyIHRoZSBwYXJ0aWFsX2ZpbGwsIHRoZSByZW1haW5pbmcgb3JkZXIuYW1vdW50X2luIG11c3QgYmUgaGlnaGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXTgICBvZiBhc3NldF9pbiBtdWx0aXBsaWVkIGJ5IEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXKRAS0gYWZ0ZXIgdGhlIHBhcnRpYWxfZmlsbCwgdGhlIHJlbWFpbmluZyBvcmRlci5hbW91bnRfb3V0IG11c3QgYmUgaGlnaGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXTkICBvZiBhc3NldF9vdXQgbXVsdGlwbGllZCBieSBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyABxFdmVudHM60GBQYXJ0aWFsbHlGaWxsZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4oZmlsbF9vcmRlcgQBIG9yZGVyX2lkKAEcT3JkZXJJZAACIHhGaWxsIGFuIE9UQyBvcmRlciAoY29tcGxldGVseSkEICxQYXJhbWV0ZXJzOnQtIGBvcmRlcl9pZGA6IElEIG9mIHRoZSBvcmRlcgAcRXZlbnRzOqxgRmlsbGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuIERlcHJlY2F0ZWQuyGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuMGNhbmNlbF9vcmRlcgQBIG9yZGVyX2lkKAEcT3JkZXJJZAADLGBDYW5jZWwgYW4gb3BlbiBPVEMgb3JkZXIEICxQYXJhbWV0ZXJzOnQtIGBvcmRlcl9pZGA6IElEIG9mIHRoZSBvcmRlcpgtIGBhc3NldGA6IEFzc2V0IHdoaWNoIGlzIGJlaW5nIGZpbGxlZKAtIGBhbW91bnRgOiBBbW91bnQgd2hpY2ggaXMgYmVpbmcgZmlsbGVkADBWYWxpZGF0aW9uczpcLSBjYWxsZXIgaXMgb3JkZXIgb3duZXIAoEVtaXRzIGBDYW5jZWxsZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuzQIMWHBhbGxldF9jaXJjdWl0X2JyZWFrZXIYcGFsbGV0EENhbGwEBFQAATBYc2V0X3RyYWRlX3ZvbHVtZV9saW1pdAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABSHRyYWRlX3ZvbHVtZV9saW1pdKkCASgodTMyLCB1MzIpAAAkkFNldCB0cmFkZSB2b2x1bWUgbGltaXQgZm9yIGFuIGFzc2V0LgAsUGFyYW1ldGVyczotAS0gYG9yaWdpbmA6IFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbC4gTXVzdCBiZSBgVXBkYXRlTGltaXRzT3JpZ2luYKAtIGBhc3NldF9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIGFuIGFzc2V0KQEtIGB0cmFkZV92b2x1bWVfbGltaXRgOiBOZXcgdHJhZGUgdm9sdW1lIGxpbWl0IHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZQDYRW1pdHMgYFRyYWRlVm9sdW1lTGltaXRDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAFxzZXRfYWRkX2xpcXVpZGl0eV9saW1pdAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABPGxpcXVpZGl0eV9saW1pdNECAUhPcHRpb248KHUzMiwgdTMyKT4AASSUU2V0IGFkZCBsaXF1aWRpdHkgbGltaXQgZm9yIGFuIGFzc2V0LgAsUGFyYW1ldGVyczotAS0gYG9yaWdpbmA6IFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbC4gTXVzdCBiZSBgVXBkYXRlTGltaXRzT3JpZ2luYKAtIGBhc3NldF9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIGFuIGFzc2V0NQEtIGBsaXF1aWRpdHlfbGltaXRgOiBPcHRpb25hbCBhZGQgbGlxdWlkaXR5IGxpbWl0IHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZQDcRW1pdHMgYEFkZExpcXVpZGl0eUxpbWl0Q2hhbmdlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBoc2V0X3JlbW92ZV9saXF1aWRpdHlfbGltaXQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAATxsaXF1aWRpdHlfbGltaXTRAgFIT3B0aW9uPCh1MzIsIHUzMik+AAIkoFNldCByZW1vdmUgbGlxdWlkaXR5IGxpbWl0IGZvciBhbiBhc3NldC4ALFBhcmFtZXRlcnM6LQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYFVwZGF0ZUxpbWl0c09yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldEEBLSBgbGlxdWlkaXR5X2xpbWl0YDogT3B0aW9uYWwgcmVtb3ZlIGxpcXVpZGl0eSBsaW1pdCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2UA6EVtaXRzIGBSZW1vdmVMaXF1aWRpdHlMaW1pdENoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOGxvY2tkb3duX2Fzc2V0CAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEUdW50aWwoAURCbG9ja051bWJlckZvcjxUPgADKHRMb2NrZG93biBhbiBhc3NldCBmb3IgbWludGluZwCkQ2FuIGJlIGNhbGxlZCBvbmx5IGJ5IGFuIGF1dGhvcml0eSBvcmlnaW4ALFBhcmFtZXRlcnM6IQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYEF1dGhvcml0eU9yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldOwtIGB1bnRpbGA6IFRoZSBibG9jayBudW1iZXIgdW50aWwgd2hpY2ggdGhlIGFzc2V0IGlzIGxvY2tlZADILy8vIEVtaXRzIGBBc3NldExvY2tkb3duZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5MZm9yY2VfbGlmdF9sb2NrZG93bgQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAEKLhSZW1vdmUgYXNzZXQgbG9ja2Rvd24gcmVnYXJkbGVzcyBvZiB0aGUgc3RhdGUuAKRDYW4gYmUgY2FsbGVkIG9ubHkgYnkgYW4gYXV0aG9yaXR5IG9yaWdpbgAsUGFyYW1ldGVyczoAIQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYEF1dGhvcml0eU9yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldADMRW1pdHMgYEFzc2V0TG9ja2Rvd25SZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHJlbGVhc2VfZGVwb3NpdAgBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFOHBSZWxlYXNlIGRlcG9zaXQgb2YgYW4gYXNzZXQuADkBSXQgcmVsZWFzZXMgYWxsIHRoZSBwYWxsZXQgcmVzZXJ2ZWQgYmFsYW5jZSBvZiB0aGUgYXNzZXQgZm9yIHRoZSBnaXZlbiBhY2NvdW50ADUBQ2FuIGJlIGNhbGxlZCBieSBhbnkgb3JpZ2luLCBidXQgb25seSBpZiB0aGUgYXNzZXQgaXMgbm90IGluIGFjdGl2ZSBsb2NrZG93bi4A0FRoZSBjYWxsZXIgZG9lcyBub3QgcGF5IGZvciB0aGlzIGNhbGwgaWYgc3VjY2Vzc2Z1bC4ALFBhcmFtZXRlcnM6FQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIENhbiBiZSBzaWduZWQgb3Igcm9vdC7ALSBgd2hvYDogVGhlIGFjY291bnQgdGhhdCBpcyBzYXZpbmcgdGhlIGRlcG9zaXQuqC0gYGFzc2V0X2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LgC4RW1pdHMgYERlcG9zaXRSZWxlYXNlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLoBzZXRfZ2xvYmFsX3dpdGhkcmF3X2xpbWl0X3BhcmFtcwQBKHBhcmFtZXRlcnPVAgH0R2xvYmFsV2l0aGRyYXdMaW1pdFBhcmFtZXRlcnM8VDo6QmFsYW5jZSwgcHJpbWl0aXZlczo6TW9tZW50PgAGCOBTZXQgdGhlIGdsb2JhbCB3aXRoZHJhdyBsaW1pdCAocmVmZXJlbmNlIGN1cnJlbmN5IHVuaXRzKZxDYW4gYmUgY2FsbGVkIG9ubHkgYnkgYXV0aG9yaXR5IG9yaWdpbi5ccmVzZXRfd2l0aGRyYXdfbG9ja2Rvd24ABwgNAVJlc2V0IHRoZSBnbG9iYWwgbG9ja2Rvd24gYW5kIGFjY3VtdWxhdG9yIHRvIHplcm8gYXQgY3VycmVudCBibG9jay6cQ2FuIGJlIGNhbGxlZCBvbmx5IGJ5IGF1dGhvcml0eSBvcmlnaW4uTGFkZF9lZ3Jlc3NfYWNjb3VudHMEASBhY2NvdW50c0gBRFZlYzxUOjpBY2NvdW50SWQ+AAgAWHJlbW92ZV9lZ3Jlc3NfYWNjb3VudHMEASBhY2NvdW50c0gBRFZlYzxUOjpBY2NvdW50SWQ+AAkAcHNldF9nbG9iYWxfd2l0aGRyYXdfbG9ja2Rvd24EARR1bnRpbBgBSHByaW1pdGl2ZXM6Ok1vbWVudAAKAEhzZXRfYXNzZXRfY2F0ZWdvcnkIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASBjYXRlZ29yedkCAWxPcHRpb248R2xvYmFsQXNzZXRDYXRlZ29yeT4ACwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu0QIEGE9wdGlvbgQEVAGpAgEIEE5vbmUAAAAQU29tZQQAqQIAAAEAANUCDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyFHR5cGVzdEdsb2JhbFdpdGhkcmF3TGltaXRQYXJhbWV0ZXJzCBxCYWxhbmNlAUAYTW9tZW50ARgACAEUbGltaXRAARxCYWxhbmNlAAEYd2luZG93GAEYTW9tZW50AADZAgQYT3B0aW9uBARUAd0CAQgQTm9uZQAAABBTb21lBADdAgAAAQAA3QIMWHBhbGxldF9jaXJjdWl0X2JyZWFrZXIYcGFsbGV0TEdsb2JhbEFzc2V0Q2F0ZWdvcnkAAQggRXh0ZXJuYWwAAAAUTG9jYWwAAQAA4QIMVHBhbGxldF9yb3V0ZV9leGVjdXRvchhwYWxsZXQQQ2FsbAQEVAABFBBzZWxsFAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABKFQ6OkJhbGFuY2UAAThtaW5fYW1vdW50X291dEABKFQ6OkJhbGFuY2UAARRyb3V0ZeUCAURSb3V0ZTxUOjpBc3NldElkPgAANPxFeGVjdXRlcyBhIHNlbGwgd2l0aCBhIHNlcmllcyBvZiB0cmFkZXMgc3BlY2lmaWVkIGluIHRoZSByb3V0ZS4BAVRoZSBwcmljZSBmb3IgZWFjaCB0cmFkZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIEFNTS4AlC0gYG9yaWdpbmA6IFRoZSBleGVjdXRvciBvZiB0aGUgdHJhZGXELSBgYXNzZXRfaW5gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gc2VsbNQtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gcmVjZWl2ZbwtIGBhbW91bnRfaW5gOiBUaGUgYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gc2VsbAUBLSBgbWluX2Ftb3VudF9vdXRgOiBUaGUgbWluaW11bSBhbW91bnQgb2YgYGFzc2V0X291dGAgdG8gcmVjZWl2ZS7RAi0gYHJvdXRlYDogU2VyaWVzIG9mIFtgVHJhZGU8QXNzZXRJZD5gXSB0byBiZSBleGVjdXRlZC4gQSBbYFRyYWRlPEFzc2V0SWQ+YF0gc3BlY2lmaWVzIHRoZSBhc3NldCBwYWlyIChgYXNzZXRfaW5gLCBgYXNzZXRfb3V0YCkgYW5kIHRoZSBBTU0gKGBwb29sYCkgaW4gd2hpY2ggdGhlIHRyYWRlIGlzIGV4ZWN1dGVkLtwJCSAgIElmIG5vdCBzcGVjaWZpZWQsIHRoYW4gdGhlIG9uLWNoYWluIHJvdXRlIGlzIHVzZWQuGQEJCSAgIElmIG5vIG9uLWNoYWluIGlzIHByZXNlbnQsIHRoZW4gb21uaXBvb2wgcm91dGUgaXMgdXNlZCBhcyBkZWZhdWx0AJhFbWl0cyBgUm91dGVFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLgxidXkUASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEoYW1vdW50X291dEABKFQ6OkJhbGFuY2UAATRtYXhfYW1vdW50X2luQAEoVDo6QmFsYW5jZQABFHJvdXRl5QIBRFJvdXRlPFQ6OkFzc2V0SWQ+AAE0+EV4ZWN1dGVzIGEgYnV5IHdpdGggYSBzZXJpZXMgb2YgdHJhZGVzIHNwZWNpZmllZCBpbiB0aGUgcm91dGUuAQFUaGUgcHJpY2UgZm9yIGVhY2ggdHJhZGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY29ycmVzcG9uZGluZyBBTU0uAJQtIGBvcmlnaW5gOiBUaGUgZXhlY3V0b3Igb2YgdGhlIHRyYWRlKQEtIGBhc3NldF9pbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBzd2FwcGVkIHRvIGJ1eSBgYXNzZXRfb3V0YMQtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYnV5wC0gYGFtb3VudF9vdXRgOiBUaGUgYW1vdW50IG9mIGBhc3NldF9vdXRgIHRvIGJ1eREBLSBgbWF4X2Ftb3VudF9pbmA6IFRoZSBtYXggYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gc3BlbmQgb24gdGhlIGJ1eS7RAi0gYHJvdXRlYDogU2VyaWVzIG9mIFtgVHJhZGU8QXNzZXRJZD5gXSB0byBiZSBleGVjdXRlZC4gQSBbYFRyYWRlPEFzc2V0SWQ+YF0gc3BlY2lmaWVzIHRoZSBhc3NldCBwYWlyIChgYXNzZXRfaW5gLCBgYXNzZXRfb3V0YCkgYW5kIHRoZSBBTU0gKGBwb29sYCkgaW4gd2hpY2ggdGhlIHRyYWRlIGlzIGV4ZWN1dGVkLtwJCSAgIElmIG5vdCBzcGVjaWZpZWQsIHRoYW4gdGhlIG9uLWNoYWluIHJvdXRlIGlzIHVzZWQuGQEJCSAgIElmIG5vIG9uLWNoYWluIGlzIHByZXNlbnQsIHRoZW4gb21uaXBvb2wgcm91dGUgaXMgdXNlZCBhcyBkZWZhdWx0AJhFbWl0cyBgUm91dGVFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLiRzZXRfcm91dGUIAShhc3NldF9wYWly9QIBVEFzc2V0UGFpcjxUOjpBc3NldElkPgABJG5ld19yb3V0ZeUCAURSb3V0ZTxUOjpBc3NldElkPgACVLxTZXRzIHRoZSBvbi1jaGFpbiByb3V0ZSBmb3IgYSBnaXZlbiBhc3NldCBwYWlyLgD4VGhlIG5ldyByb3V0ZSBpcyB2YWxpZGF0ZWQgYnkgYmVpbmcgZXhlY3V0ZWQgaW4gYSBkcnktcnVuIG1vZGUAhQFJZiB0aGVyZSBpcyBubyByb3V0ZSBleHBsaWNpdGx5IHNldCBmb3IgYW4gYXNzZXQgcGFpciwgdGhlbiB3ZSB1c2UgdGhlIG9tbmlwb29sIHJvdXRlIGFzIGRlZmF1bHQuACkBV2hlbiBhIG5ldyByb3V0ZSBpcyBzZXQsIHdlIGNvbXBhcmUgaXQgdG8gdGhlIGV4aXN0aW5nIChvciBkZWZhdWx0KSByb3V0ZS6hAVRoZSBjb21wYXJpc29uIGhhcHBlbnMgYnkgY2FsY3VsYXRpbmcgc2VsbCBhbW91bnRfb3V0cyBmb3IgdGhlIHJvdXRlcywgYnV0IGFsc28gZm9yIHRoZSBpbnZlcnNlZCByb3V0ZXMuAGUBVGhlIHJvdXRlIGlzIHN0b3JlZCBpbiBhbiBvcmRlcmVkIG1hbm5lciwgYmFzZWQgb24gdGhlIG9kZXIgb2YgdGhlIGlkcyBpbiB0aGUgYXNzZXQgcGFpci4A9ElmIHRoZSByb3V0ZSBpcyBzZXQgc3VjY2Vzc2Z1bGx5LCB0aGVuIHRoZSBmZWUgaXMgcGF5ZWQgYmFjay4AqC0gYG9yaWdpbmA6IFRoZSBvcmlnaW4gb2YgdGhlIHJvdXRlIHNldHRlci0BLSBgYXNzZXRfcGFpcmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC1wYWlyIGZvciB3aGljaCB0aGUgcm91dGUgaXMgc2V04QItIGBuZXdfcm91dGVgOiBTZXJpZXMgb2YgW2BUcmFkZTxBc3NldElkPmBdIHRvIGJlIGV4ZWN1dGVkLiBBIFtgVHJhZGU8QXNzZXRJZD5gXSBzcGVjaWZpZXMgdGhlIGFzc2V0IHBhaXIgKGBhc3NldF9pbmAsIGBhc3NldF9vdXRgKSBhbmQgdGhlIEFNTSAoYHBvb2xgKSBpbiB3aGljaCB0aGUgdHJhZGUgaXMgZXhlY3V0ZWQuAJRFbWl0cyBgUm91dGVVcGRhdGVkYCB3aGVuIHN1Y2Nlc3NmdWwuACkBRmFpbHMgd2l0aCBgUm91dGVVcGRhdGVJc05vdFN1Y2Nlc3NmdWxgIGVycm9yIHdoZW4gZmFpbGVkIHRvIHNldCB0aGUgcm91dGUASGZvcmNlX2luc2VydF9yb3V0ZQgBKGFzc2V0X3BhaXL1AgFUQXNzZXRQYWlyPFQ6OkFzc2V0SWQ+AAEkbmV3X3JvdXRl5QIBRFJvdXRlPFQ6OkFzc2V0SWQ+AAM4kQFGb3JjZSBpbnNlcnRzIHRoZSBvbi1jaGFpbiByb3V0ZSBmb3IgYSBnaXZlbiBhc3NldCBwYWlyLCBzbyB0aGVyZSBpcyBubyBhbnkgdmFsaWRhdGlvbiBmb3IgdGhlIHJvdXRlAKhDYW4gb25seSBiZSBjYWxsZWQgYnkgVDo6Rm9yY2VJbnNlcnRPcmlnaW4AZQFUaGUgcm91dGUgaXMgc3RvcmVkIGluIGFuIG9yZGVyZWQgbWFubmVyLCBiYXNlZCBvbiB0aGUgb2RlciBvZiB0aGUgaWRzIGluIHRoZSBhc3NldCBwYWlyLgD0SWYgdGhlIHJvdXRlIGlzIHNldCBzdWNjZXNzZnVsbHksIHRoZW4gdGhlIGZlZSBpcyBwYXllZCBiYWNrLgCoLSBgb3JpZ2luYDogVGhlIG9yaWdpbiBvZiB0aGUgcm91dGUgc2V0dGVyLQEtIGBhc3NldF9wYWlyYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LXBhaXIgZm9yIHdoaWNoIHRoZSByb3V0ZSBpcyBzZXThAi0gYG5ld19yb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC4AlEVtaXRzIGBSb3V0ZVVwZGF0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4AIHNlbGxfYWxsEAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABOG1pbl9hbW91bnRfb3V0QAEoVDo6QmFsYW5jZQABFHJvdXRl5QIBRFJvdXRlPFQ6OkFzc2V0SWQ+AAQ4/EV4ZWN1dGVzIGEgc2VsbCB3aXRoIGEgc2VyaWVzIG9mIHRyYWRlcyBzcGVjaWZpZWQgaW4gdGhlIHJvdXRlLsRJdCBzZWxscyBhbGwgcmVkdWNpYmxlIHVzZXIgYmFsYW5jZSBvZiBgYXNzZXRfaW5gAQFUaGUgcHJpY2UgZm9yIGVhY2ggdHJhZGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY29ycmVzcG9uZGluZyBBTU0uAJQtIGBvcmlnaW5gOiBUaGUgZXhlY3V0b3Igb2YgdGhlIHRyYWRlxC0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHNlbGzULSBgYXNzZXRfb3V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHJlY2VpdmUFAS0gYG1pbl9hbW91bnRfb3V0YDogVGhlIG1pbmltdW0gYW1vdW50IG9mIGBhc3NldF9vdXRgIHRvIHJlY2VpdmUu0QItIGByb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC7cCQkgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGFuIHRoZSBvbi1jaGFpbiByb3V0ZSBpcyB1c2VkLhkBCQkgICBJZiBubyBvbi1jaGFpbiBpcyBwcmVzZW50LCB0aGVuIG9tbmlwb29sIHJvdXRlIGlzIHVzZWQgYXMgZGVmYXVsdACYRW1pdHMgYFJvdXRlRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuUCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6QIEUwAABADxAgEYVmVjPFQ+AADpAgw4aHlkcmFkeF90cmFpdHMYcm91dGVyFFRyYWRlBBxBc3NldElkASgADAEQcG9vbO0CAURQb29sVHlwZTxBc3NldElkPgABIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAAO0CDDhoeWRyYWR4X3RyYWl0cxhyb3V0ZXIgUG9vbFR5cGUEHEFzc2V0SWQBKAEYDFhZSwAAAAxMQlAAAQAoU3RhYmxlc3dhcAQAKAEcQXNzZXRJZAACACBPbW5pcG9vbAADABBBYXZlAAQADEhTTQAFAADxAgAAAukCAPUCDDhoeWRyYWR4X3RyYWl0cxhyb3V0ZXIkQXNzZXRQYWlyBBxBc3NldElkASgACAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAAA+QIMTHBhbGxldF9keW5hbWljX2ZlZXMYcGFsbGV0EENhbGwEBFQAAQg0c2V0X2Fzc2V0X2ZlZQgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGNvbmZpZ/0CAVhBc3NldEZlZUNvbmZpZzxUOjpGZWU+AAAgiFNldCBmZWUgY29uZmlndXJhdGlvbiBmb3IgYW4gYXNzZXQAcQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBzZXR0aW5nIGVpdGhlciBmaXhlZCBvciBkeW5hbWljIGZlZSBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGFzc2V0LgAsIyBBcmd1bWVudHOYKiBgb3JpZ2luYCAtIEF1dGhvcml0eSBvcmlnaW4gcmVxdWlyZWSgKiBgYXNzZXRfaWRgIC0gVGhlIGFzc2V0IElEIHRvIGNvbmZpZ3VyZcQqIGBjb25maWdgIC0gRmVlIGNvbmZpZ3VyYXRpb24gKEZpeGVkIG9yIER5bmFtaWMpQHJlbW92ZV9hc3NldF9mZWUEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASANAVJlbW92ZSBmZWUgY29uZmlndXJhdGlvbiBmb3IgYW4gYXNzZXQgKHdpbGwgdXNlIGRlZmF1bHQgcGFyYW1ldGVycykALQFUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYW55IGN1c3RvbSBmZWUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBhc3NldC59AUFmdGVyIHJlbW92YWwsIHRoZSBhc3NldCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBkeW5hbWljIGZlZSBwYXJhbWV0ZXJzIGNvbmZpZ3VyZWQgaW4gdGhlIHJ1bnRpbWUuACwjIEFyZ3VtZW50c5gqIGBvcmlnaW5gIC0gQXV0aG9yaXR5IG9yaWdpbiByZXF1aXJlZNwqIGBhc3NldF9pZGAgLSBUaGUgYXNzZXQgSUQgdG8gcmVtb3ZlIGNvbmZpZ3VyYXRpb24gZm9yBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLv0CDExwYWxsZXRfZHluYW1pY19mZWVzFHR5cGVzOEFzc2V0RmVlQ29uZmlnBAxGZWUBdQIBCBRGaXhlZAgBJGFzc2V0X2ZlZXUCAQxGZWUAATBwcm90b2NvbF9mZWV1AgEMRmVlAAAAHER5bmFtaWMIAUBhc3NldF9mZWVfcGFyYW1zAQMBOEZlZVBhcmFtczxGZWU+AAFMcHJvdG9jb2xfZmVlX3BhcmFtcwEDAThGZWVQYXJhbXM8RmVlPgABAAABAwxMcGFsbGV0X2R5bmFtaWNfZmVlcxR0eXBlcyRGZWVQYXJhbXMEDEZlZQF1AgAQARxtaW5fZmVldQIBDEZlZQABHG1heF9mZWV1AgEMRmVlAAEUZGVjYXlUASRGaXhlZFUxMjgAATRhbXBsaWZpY2F0aW9uVAEkRml4ZWRVMTI4AAAFAww4cGFsbGV0X3N0YWtpbmcYcGFsbGV0EENhbGwEBFQAARRIaW5pdGlhbGl6ZV9zdGFraW5nAAAcRQFTdGFraW5nIHBhbGxldCBpbml0aWFsaXphdGlvbi4gVGhpcyBjYWxsIHdpbGwgcmVzZXJ2ZWQgYHBvdGAncyBiYWxhbmNlIHRvIHByZXZlbnQFAWFjY291bnQgZHVzdGluZyBhbmQgc3RhcnQgY29sbGVjdGluZyBmZWVzIGZyb20gdHJhZGVzIGFzIHJld2FyZHMuAGkBYHBvdGDigJlzIGFjY291bnQgaGFzIHRvIGhhdmUgYSBiYWxhbmNlIHdoaWNoIHdpbGwgYmUgcmVzZXJ2ZWQgdG8gcHJldmVudCBhY2NvdW50IGR1c3RpbmcuAMRFbWl0cyBgU3Rha2luZ0luaXRpYWxpemVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuABRzdGFrZQQBGGFtb3VudEABHEJhbGFuY2UAATisU3Rha2UgYGFtb3VudGAgaW50byBhIG5ldyBzdGFraW5nIHBvc2l0aW9uLgBZAWBzdGFrZWAgbG9ja3Mgc3BlY2lmaWVkIGBhbW91bnRgIGludG8gc3Rha2luZyBhbmQgY3JlYXRlcyBuZXcgTkZUIHJlcHJlc2VudGluZyBzdGFraW5nJHBvc2l0aW9uLjkBVXNlcnMgY2FuIHN0YWtlIGBOYXRpdmVBc3NldElkYCBiYWxhbmNlIHdoaWNoIGlzIG5vdCB2ZXN0ZWQgb3IgYWxyZWFkeSBzdGFrZWQuADEBU3Rha2luZyBwYWxsZXQgbXVzdCBiZSBpbml0aWFsaXplZCBvdGhlcndpc2UgZXh0cmluc2ljIHdpbGwgZmFpbCB3aXRoIGVycm9yLgAsUGFyYW1ldGVyczpRAS0gYGFtb3VudGA6IEFtb3VudCBvZiBuYXRpdmUgYXNzZXQgdG8gYmUgc3Rha2VkLiBgYW1vdW50YCBjYW4ndCBiZSB2ZXN0ZWQgb3IgYWxyZWFkeRhzdGFrZWQAuEVtaXRzIGBQb3NpdGlvbkNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOGluY3JlYXNlX3N0YWtlCAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABGGFtb3VudEABHEJhbGFuY2UAAkBdAUV4dHJpbnNpYyB0byBpbmNyZWFzZSBzdGFrZWQgYW1vdW50IG9mIGV4aXN0aW5nIHN0YWtpbmcgcG9zaXRpb24gYnkgc3BlY2lmaWVkIGBhbW91bnRgLgBVAWBpbmNyZWFzZV9zdGFrZWAgaW5jcmVhc2VzIHN0YWtlZCBhbW91bnQgb2YgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IGBwb3N0aW9uX2lkYCBieSB0aGV8YGFtb3VudGAgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLjUBU3Rha2luZyBwb3NpdGlvbiBtdXN0IGV4aXN0IGFuZCBgb3JpZ2luYCBoYXMgdG8gYmUgdGhlIG93bmVyIG9mIHRoZSBwb3NpdGlvbi74VXNlcnMgY2FuIHN0YWtlIHRva2VucyB3aGljaCBhcmUgbm90IHZlc3RlZCBvciBhbHJlYWR5IHN0YWtlZC41AVBvc2l0aW9uJ3MgcGFyYW1zIGUuZyBwb2ludHMgYXJlIHVwZGF0ZWQgdG8gb2Zmc2V0IHN0YWtlIGluY3JlYXNlIGFuZCByZXdhcmRz9GFjY3VtdWxhdGVkIHVudGlsIHRoaXMgcG9pbnQgYXJlIHBhaWQgYW5kIGxvY2tlZCB0byB0aGUgdXNlci4ALFBhcmFtZXRlcnM6OQEtIGBwb3NpdGlvbl9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb3NpdGlvbiB3aGljaCBzdGFrZSB3aWxsIGJlIGluY3JlYXNlZC5xAS0gYGFtb3VudGA6IEFtb3VudCBvZiBuYXRpdmUgYXNzZXQgdG8gYmUgYWRkZWQgdG8gc3Rha2VkIGFtb3VudC4gYGFtb3VudGAgY2FuJ3QgYmUgdmVzdGVkIG9yOGFscmVhZHkgc3Rha2VkAKRFbWl0cyBgU3Rha2VBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAUY2xhaW0EASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAM44ENsYWltIHJld2FyZHMgYWNjdW11bGF0ZWQgZm9yIHNwZWNpZmljIHN0YWtpbmcgcG9zaXRpb24uAFEBRnVuY3Rpb24gY2FsY3VsYXRlcyBhbW91bnQgb2YgcmV3YXJkcyB0byBwYXkgZm9yIHNwZWNpZmllZCBzdGFraW5nIHBvc2l0aW9uIGJhc2VkIG9uXQF0aGUgYW1vdW50IG9mIHBvaW50cyBwb3NpdGlvbiBhY2N1bXVsYXRlZC4gRnVuY3Rpb24gYWxzbyB1bmxvY2tzIGFsbCB0aGUgcmV3YXJkcyBsb2NrZWTgZnJvbSBgaW5jcmVhc2Vfc3Rha2VgIGJhc2VkIG9uIHRoZSBhbW91bnQgb2YgdGhlIHBvaW50cy4AaQFUaGlzIGFjdGlvbiBpcyBwZW5hbGl6ZWQgYnkgcmVtb3ZpbmcgYWxsIHRoZSBwb2ludHMgYW5kIHJldHVybmluZyBhbGxvY2F0ZWQgdW5wYWlkIHJld2FyZHNMZm9yIHJlZGlzdHJpYnV0aW9uLgAsUGFyYW1ldGVyczoVAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBvc2l0aW9uIHRvIGNsYWltIHJld2FyZHMgZm9yLgC0RW1pdHMgYFJld2FyZHNDbGFpbWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuABx1bnN0YWtlBAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAAEMEkBRnVuY3Rpb24gcGF5cyByZXdhcmRzLCB1bmxvY2tzIGFsbCB0aGUgc3Rha2VkIGFzc2V0cyBhbmQgZGVzdHJveXMgc3Rha2luZyBwb3NpdGlvbmxzcGVjaWZpZWQgYnkgYHBvc2l0aW9uX2lkYC4AWQFGdW5jdGlvbiBjYWxjdWxhdGVzIGFuZCBwYXlzIGxhdGVzdCByZXdhcmRzLCB1bmxvY2tzIGFsbCB0aGUgbG9ja2VkIHJld2FyZHMgYW5kIHN0YWtlZCEBdG9rZW5zIGZvciBzdGFraW5nIHBvc2l0aW9uIGFuZCBidXJucyBORlQgcmVwcmVzZW50aW5nIHN0YWtpbmcgcG9zaXRpb24uIQFVbnBhaWQgYWxsb2NhdGVkIHJld2FyZHMgYXJlIHJldHVybmVkIHRvIHRoZSBTdGFraW5nIGZvciByZWRpc3RyaWJ1dGlvbi4ALFBhcmFtZXRlcnM6AQEtIGBwb3NpdGlvbl9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb3NpdGlvbiB0byBiZSBkZXN0cm95ZWQuAPRFbWl0cyBgUmV3YXJkc0NsYWltZWRgIGFuZCBgVW5zdGFrZWRgIGV2ZW50cyB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4JAwxEcGFsbGV0X3N0YWJsZXN3YXAYcGFsbGV0EENhbGwEBFQAATgsY3JlYXRlX3Bvb2wQASxzaGFyZV9hc3NldCgBKFQ6OkFzc2V0SWQAARhhc3NldHMNAwHQQm91bmRlZFZlYzxUOjpBc3NldElkLCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABNGFtcGxpZmljYXRpb26AAQx1MTYAAQxmZWV1AgEcUGVybWlsbAAAOLxDcmVhdGUgYSBzdGFibGUgcG9vbCB3aXRoIGdpdmVuIGxpc3Qgb2YgYXNzZXRzLgD4QWxsIGFzc2V0cyBtdXN0IGJlIGNvcnJlY3RseSByZWdpc3RlcmVkIGluIGBUOjpBc3NldFJlZ2lzdHJ5YC5tAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHNlZWQgdGhlIHBvb2wgd2l0aCBsaXF1aWRpdHkuIFVzZSBgYWRkX2Fzc2V0c19saXF1aWRpdHlgIHRvIHByb3ZpZGVIaW5pdGlhbCBsaXF1aWRpdHkuACxQYXJhbWV0ZXJzOpgtIGBvcmlnaW5gOiBNdXN0IGJlIFQ6OkF1dGhvcml0eU9yaWdpbtQtIGBzaGFyZV9hc3NldGA6IFByZXJlZ2lzdGVyZWQgc2hhcmUgYXNzZXQgaWRlbnRpZmllcnQtIGBhc3NldHNgOiBMaXN0IG9mIEFzc2V0IGlkc5QtIGBhbXBsaWZpY2F0aW9uYDogUG9vbCBhbXBsaWZpY2F0aW9u8C0gYGZlZWA6IGZlZSB0byBiZSBhcHBsaWVkIG9uIHRyYWRlIGFuZCBsaXF1aWRpdHkgb3BlcmF0aW9ucwCgRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCBpZiBzdWNjZXNzZnVsLjx1cGRhdGVfcG9vbF9mZWUIARxwb29sX2lkKAEoVDo6QXNzZXRJZAABDGZlZXUCARxQZXJtaWxsAAEoSFVwZGF0ZSBwb29sJ3MgZmVlLgDMaWYgcG9vbCBkb2VzIG5vdCBleGlzdCwgYFBvb2xOb3RGb3VuZGAgaXMgcmV0dXJuZWQuACxQYXJhbWV0ZXJzOpgtIGBvcmlnaW5gOiBNdXN0IGJlIFQ6OkF1dGhvcml0eU9yaWdpbmwtIGBwb29sX2lkYDogcG9vbCB0byB1cGRhdGVULSBgZmVlYDogbmV3IHBvb2wgZmVlAJxFbWl0cyBgRmVlVXBkYXRlZGAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC5QdXBkYXRlX2FtcGxpZmljYXRpb24QARxwb29sX2lkKAEoVDo6QXNzZXRJZAABTGZpbmFsX2FtcGxpZmljYXRpb26AAQx1MTYAASxzdGFydF9ibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAEkZW5kX2Jsb2NrKAFEQmxvY2tOdW1iZXJGb3I8VD4AAihwVXBkYXRlIHBvb2wncyBhbXBsaWZpY2F0aW9uLgAsUGFyYW1ldGVyczqYLSBgb3JpZ2luYDogTXVzdCBiZSBUOjpBdXRob3JpdHlPcmlnaW5sLSBgcG9vbF9pZGA6IHBvb2wgdG8gdXBkYXRl3C0gYGZpbmFsX2FtcGxpZmljYXRpb25gOiBuZXcgZGVzaXJlZCBwb29sIGFtcGxpZmljYXRpb251AS0gYHN0YXJ0X2Jsb2NrYDogYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGFtcGxpZmljYXRpb24gc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBmaW5hbF9hbXBsaWNhdGlvbjkBLSBgZW5kX2Jsb2NrYDogYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGFtcGxpZmljYXRpb24gcmVhY2hlcyBmaW5hbF9hbXBsaWZpY2F0aW9uAMRFbWl0cyBgQW1wbGlmaWNhdGlvblVwZGF0ZWRgIGV2ZW50IGlmIHN1Y2Nlc3NmdWwuUGFkZF9saXF1aWRpdHlfc2hhcmVzEAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAARhzaGFyZXNAARxCYWxhbmNlAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAFAbWF4X2Fzc2V0X2Ftb3VudEABHEJhbGFuY2UABDwdAUFkZCBsaXF1aWRpdHkgdG8gc2VsZWN0ZWQgcG9vbCBnaXZlbiBleGFjdCBhbW91bnQgb2Ygc2hhcmVzIHRvIHJlY2VpdmUuADkBU2ltaWxhciB0byBgYWRkX2xpcXVpZGl0eWAgYnV0IExQIHNwZWNpZmllcyBleGFjdCBhbW91bnQgb2Ygc2hhcmVzIHRvIHJlY2VpdmUuAN0BVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWQgbWFpbmx5IGJ5IG9uLWNoYWluIHJvdXRpbmcgd2hlbiBhIHN3YXAgYmV0d2VlbiBPbW5pcG9vbCBhc3NldCBhbmQgc3RhYmxlIGFzc2V0IGlzIHBlcmZvcm1lZC4ALFBhcmFtZXRlcnM6eC0gYG9yaWdpbmA6IGxpcXVpZGl0eSBwcm92aWRlclAtIGBwb29sX2lkYDogUG9vbCBJZJwtIGBzaGFyZXNgOiBhbW91bnQgb2Ygc2hhcmVzIHRvIHJlY2VpdmXoLSBgYXNzZXRfaWRgOiBhc3NldCBpZCBvZiBhbiBhc3NldCB0byBwcm92aWRlIGFzIGxpcXVpZGl0eegtIGBtYXhfYXNzZXRfYW1vdW50YDogc2xpcHBhZ2UgbGltaXQuIE1heCBhbW91bnQgb2YgYXNzZXQuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5ocmVtb3ZlX2xpcXVpZGl0eV9vbmVfYXNzZXQQARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABMHNoYXJlX2Ftb3VudEABHEJhbGFuY2UAAThtaW5fYW1vdW50X291dEABHEJhbGFuY2UABUSQUmVtb3ZlIGxpcXVpZGl0eSBmcm9tIHNlbGVjdGVkIHBvb2wuAMhXaXRoZHJhd3MgbGlxdWlkaXR5IG9mIHNlbGVjdGVkIGFzc2V0IGZyb20gYSBwb29sLgAxAVNoYXJlIGFtb3VudCBpcyBidXJuZWQgYW5kIExQIHJlY2VpdmVzIGNvcnJlc3BvbmRpbmcgYW1vdW50IG9mIGNob3NlbiBhc3NldC4AsFdpdGhkcmF3IGZlZSBpcyBhcHBsaWVkIHRvIHRoZSBhc3NldCBhbW91bnQuACxQYXJhbWV0ZXJzOngtIGBvcmlnaW5gOiBsaXF1aWRpdHkgcHJvdmlkZXJQLSBgcG9vbF9pZGA6IFBvb2wgSWSQLSBgYXNzZXRfaWRgOiBpZCBvZiBhc3NldCB0byByZWNlaXZluC0gJ3NoYXJlX2Ftb3VudCc6IGFtb3VudCBvZiBzaGFyZXMgdG8gd2l0aGRyYXe0LSAnbWluX2Ftb3VudF9vdXQnOiBtaW5pbXVtIGFtb3VudCB0byByZWNlaXZlALxFbWl0cyBgTGlxdWlkaXR5UmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLuBFbWl0cyBgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlR3aXRoZHJhd19hc3NldF9hbW91bnQQARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAUBtYXhfc2hhcmVfYW1vdW50QAEcQmFsYW5jZQAGNE0BUmVtb3ZlIGxpcXVpZGl0eSBmcm9tIHNlbGVjdGVkIHBvb2wgYnkgc3BlY2lmeWluZyBleGFjdCBhbW91bnQgb2YgYXNzZXQgdG8gcmVjZWl2ZS4AyQFTaW1pbGFyIHRvIGByZW1vdmVfbGlxdWlkaXR5X29uZV9hc3NldGAgYnV0IExQIHNwZWNpZmllcyBleGFjdCBhbW91bnQgb2YgYXNzZXQgdG8gcmVjZWl2ZSBpbnN0ZWFkIG9mIHNoYXJlIGFtb3VudC4ALFBhcmFtZXRlcnM6eC0gYG9yaWdpbmA6IGxpcXVpZGl0eSBwcm92aWRlclAtIGBwb29sX2lkYDogUG9vbCBJZJAtIGBhc3NldF9pZGA6IGlkIG9mIGFzc2V0IHRvIHJlY2VpdmWYLSAnYW1vdW50JzogYW1vdW50IG9mIGFzc2V0IHRvIHJlY2VpdmUNAS0gJ21heF9zaGFyZV9hbW91bnQnOiBTbGlwcGFnZSBsaW1pdC4gTWF4IGFtb3VudCBvZiBzaGFyZXMgdG8gYnVybi4AvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwu4EVtaXRzIGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuEHNlbGwUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAE4bWluX2J1eV9hbW91bnRAARxCYWxhbmNlAAc0tEV4ZWN1dGUgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogb3JpZ2luIG9mIHRoZSBjYWxsZXJkLSBgcG9vbF9pZGA6IElkIG9mIGEgcG9vbKgtIGBhc3NldF9pbmA6IElEIG9mIGFzc2V0IHNvbGQgdG8gdGhlIHBvb2y8LSBgYXNzZXRfb3V0YDogSUQgb2YgYXNzZXQgYm91Z2h0IGZyb20gdGhlIHBvb2zULSBgYW1vdW50X2luYDogQW1vdW50IG9mIGFzc2V0IHRvIGJlIHNvbGQgdG8gdGhlIHBvb2zYLSBgbWluX2J1eV9hbW91bnRgOiBNaW5pbXVtIGFtb3VudCByZXF1aXJlZCB0byByZWNlaXZlANxFbWl0cyBgU2VsbEV4ZWN1dGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuIERlcHJlY2F0ZWQu4EVtaXRzIGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAxidXkUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABPG1heF9zZWxsX2Ftb3VudEABHEJhbGFuY2UACDS0RXhlY3V0ZSBhIHN3YXAgb2YgYGFzc2V0X291dGAgZm9yIGBhc3NldF9pbmAuACxQYXJhbWV0ZXJzOiwtIGBvcmlnaW5gOmQtIGBwb29sX2lkYDogSWQgb2YgYSBwb29svC0gYGFzc2V0X291dGA6IElEIG9mIGFzc2V0IGJvdWdodCBmcm9tIHRoZSBwb29sqC0gYGFzc2V0X2luYDogSUQgb2YgYXNzZXQgc29sZCB0byB0aGUgcG9vbOAtIGBhbW91bnRfb3V0YDogQW1vdW50IG9mIGFzc2V0IHRvIHJlY2VpdmUgZnJvbSB0aGUgcG9vbNgtIGBtYXhfc2VsbF9hbW91bnRgOiBNYXhpbXVtIGFtb3VudCBhbGxvd2VkIHRvIGJlIHNvbGQA2EVtaXRzIGBCdXlFeGVjdXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLiBEZXByZWNhdGVkLuBFbWl0cyBgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBgc2V0X2Fzc2V0X3RyYWRhYmxlX3N0YXRlDAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRzdGF0ZREDASxUcmFkYWJpbGl0eQAJQOBVcGRhdGUgdGhlIHRyYWRhYmxlIHN0YXRlIG9mIGEgc3BlY2lmaWMgYXNzZXQgaW4gYSBwb29sLgCdA1RoaXMgZnVuY3Rpb24gYWxsb3dzIHVwZGF0aW5nIHRoZSB0cmFkYWJpbGl0eSBzdGF0ZSBvZiBhbiBhc3NldCB3aXRoaW4gYSBwb29sLiBUaGUgdHJhZGFiaWxpdHkgc3RhdGUgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBhc3NldCBjYW4gYmUgdXNlZCBmb3Igc3BlY2lmaWMgb3BlcmF0aW9ucyBzdWNoIGFzIGFkZGluZyBsaXF1aWRpdHksIHJlbW92aW5nIGxpcXVpZGl0eSwgYnV5aW5nLCBvciBzZWxsaW5nLgAsUGFyYW1ldGVyczrELSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6VXBkYXRlVHJhZGFiaWxpdHlPcmlnaW5gLtQtIGBwb29sX2lkYDogVGhlIElEIG9mIHRoZSBwb29sIGNvbnRhaW5pbmcgdGhlIGFzc2V0Li0BLSBgYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHdob3NlIHRyYWRhYmlsaXR5IHN0YXRlIGlzIHRvIGJlIHVwZGF0ZWQuyC0gYHN0YXRlYDogVGhlIG5ldyB0cmFkYWJpbGl0eSBzdGF0ZSBvZiB0aGUgYXNzZXQuAMxFbWl0cyBgVHJhZGFibGVTdGF0ZVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AICMgRXJyb3Jz3C0gYFBvb2xOb3RGb3VuZGA6IElmIHRoZSBzcGVjaWZpZWQgcG9vbCBkb2VzIG5vdCBleGlzdC4NAS0gYEFzc2V0Tm90SW5Qb29sYDogSWYgdGhlIHNwZWNpZmllZCBhc3NldCBpcyBub3QgcGFydCBvZiB0aGUgcG9vbC4AQHJlbW92ZV9saXF1aWRpdHkMARxwb29sX2lkKAEoVDo6QXNzZXRJZAABMHNoYXJlX2Ftb3VudEABHEJhbGFuY2UAATxtaW5fYW1vdW50c19vdXS5AgEFAUJvdW5kZWRWZWM8QXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AApswFJlbW92ZSBsaXF1aWRpdHkgZnJvbSBhIHNlbGVjdGVkIHBvb2wgdW5pZm9ybWx5LgAxAVRoaXMgZnVuY3Rpb24gYWxsb3dzIGEgbGlxdWlkaXR5IHByb3ZpZGVyIHRvIHdpdGhkcmF3IGxpcXVpZGl0eSBmcm9tIGEgcG9vbC6VAVRoZSBwcm92aWRlciBzcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBzaGFyZXMgdG8gYnVybiBhbmQgdGhlIG1pbmltdW0gYW1vdW50cyBvZiBlYWNoIGFzc2V0IHRvIHJlY2VpdmUuACxQYXJhbWV0ZXJzOowtIGBvcmlnaW5gOiBUaGUgbGlxdWlkaXR5IHByb3ZpZGVyLvwtIGBwb29sX2lkYDogVGhlIElEIG9mIHRoZSBwb29sIGZyb20gd2hpY2ggdG8gcmVtb3ZlIGxpcXVpZGl0eS68LSBgc2hhcmVfYW1vdW50YDogVGhlIGFtb3VudCBvZiBzaGFyZXMgdG8gYnVybi55AS0gYG1pbl9hbW91bnRzX291dGA6IEEgYm91bmRlZCB2ZWN0b3Igc3BlY2lmeWluZyB0aGUgbWluaW11bSBhbW91bnRzIG9mIGVhY2ggYXNzZXQgdG8gcmVjZWl2ZS4AvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwu4EVtaXRzIGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuACAjIEVycm9yc9gtIGBJbnZhbGlkQXNzZXRBbW91bnRgOiBJZiB0aGUgYHNoYXJlX2Ftb3VudGAgaXMgemVyby4RAS0gYEluc3VmZmljaWVudFNoYXJlc2A6IElmIHRoZSBwcm92aWRlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBzaGFyZXMu3C0gYFBvb2xOb3RGb3VuZGA6IElmIHRoZSBzcGVjaWZpZWQgcG9vbCBkb2VzIG5vdCBleGlzdC78LSBgVW5rbm93bkRlY2ltYWxzYDogSWYgdGhlIGFzc2V0IGRlY2ltYWxzIGNhbm5vdCBiZSByZXRyaWV2ZWQuWQEtIGBJbmNvcnJlY3RBc3NldHNgOiBJZiB0aGUgcHJvdmlkZWQgYG1pbl9hbW91bnRzX291dGAgZG9lcyBub3QgbWF0Y2ggdGhlIHBvb2wgYXNzZXRzLvgtIGBOb3RBbGxvd2VkYDogSWYgdGhlIGFzc2V0IGlzIG5vdCBhbGxvd2VkIGZvciB0aGUgb3BlcmF0aW9uLlEBLSBgU2xpcHBhZ2VMaW1pdGA6IElmIHRoZSBhbW91bnQgcmVjZWl2ZWQgaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgbWluaW11bSBhbW91bnQupQEtIGBJbnN1ZmZpY2llbnRMaXF1aWRpdHlSZW1haW5pbmdgOiBJZiB0aGUgcmVtYWluaW5nIGxpcXVpZGl0eSBpbiB0aGUgcG9vbCBpcyBiZWxvdyB0aGUgbWluaW11bSByZXF1aXJlZC4AMCMgSW52YXJpYW50c0UBLSBFbnN1cmVzIHRoYXQgdGhlIHBvb2wncyByZXNlcnZlcyBhcmUgdXBkYXRlZCBjb3JyZWN0bHkgYWZ0ZXIgbGlxdWlkaXR5IHJlbW92YWwuyC0gRW5zdXJlcyB0aGF0IHRoZSBwb29sJ3MgaW52YXJpYW50IGlzIG1haW50YWluZWQuVGNyZWF0ZV9wb29sX3dpdGhfcGVncxgBLHNoYXJlX2Fzc2V0KAEoVDo6QXNzZXRJZAABGGFzc2V0cw0DAdBCb3VuZGVkVmVjPFQ6OkFzc2V0SWQsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAE0YW1wbGlmaWNhdGlvboABDHUxNgABDGZlZXUCARxQZXJtaWxsAAEocGVnX3NvdXJjZRUDAXRCb3VuZGVkUGVnU291cmNlczxUOjpBc3NldElkPgABOG1heF9wZWdfdXBkYXRlKQMBHFBlcmJpbGwAC3ToQ3JlYXRlIGEgc3RhYmxlIHBvb2wgd2l0aCBhIGdpdmVuIGxpc3Qgb2YgYXNzZXRzIGFuZCBwZWdzLgBtAlRoaXMgZnVuY3Rpb24gYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBzdGFibGUgcG9vbCB3aXRoIHNwZWNpZmllZCBhc3NldHMsIGFtcGxpZmljYXRpb24sIGZlZSwgYW5kIHBlZyBzb3VyY2VzLiBUaGUgcG9vbCBpcyBpZGVudGlmaWVkIGJ5IGEgc2hhcmUgYXNzZXQuAI0CUGVnIHRhcmdldCBwcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHJldHJpZXZpbmcgdGhlIHRhcmdldCBwZWcgZnJvbSB0aGUgb3JhY2xlIC0gaXQgaXMgdGhlIHByaWNlIG9mIHRoZSBhc3NldCBmcm9tIHRoZSBwZWcgc291cmNlZGVub21pbmF0ZWQgaW4gdGhlIG90aGVyIHBvb2wgYXNzZXRzLgAsUGFyYW1ldGVyczqkLSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6QXV0aG9yaXR5T3JpZ2luYC7YLSBgc2hhcmVfYXNzZXRgOiBQcmVyZWdpc3RlcmVkIHNoYXJlIGFzc2V0IGlkZW50aWZpZXIu5C0gYGFzc2V0c2A6IExpc3Qgb2YgYXNzZXQgSURzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBwb29sLsAtIGBhbXBsaWZpY2F0aW9uYDogUG9vbCBhbXBsaWZpY2F0aW9uIHBhcmFtZXRlci70LSBgZmVlYDogRmVlIHRvIGJlIGFwcGxpZWQgb24gdHJhZGUgYW5kIGxpcXVpZGl0eSBvcGVyYXRpb25zLj0BLSBgcGVnX3NvdXJjZWA6IEJvdW5kZWQgdmVjdG9yIHNwZWNpZnlpbmcgdGhlIHNvdXJjZSBvZiB0aGUgcGVnIGZvciBlYWNoIGFzc2V0LuQtIGBtYXhfcGVnX3VwZGF0ZWA6IE1heGltdW0gYWxsb3dlZCBwZWcgdXBkYXRlIHBlciBibG9jay4AoEVtaXRzIGBQb29sQ3JlYXRlZGAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC7IRW1pdHMgYEFtcGxpZmljYXRpb25DaGFuZ2luZ2AgZXZlbnQgaWYgc3VjY2Vzc2Z1bC4AICMgRXJyb3JzTQEtIGBJbmNvcnJlY3RBc3NldHNgOiBJZiB0aGUgYXNzZXRzIGFyZSB0aGUgc2FtZSBvciBsZXNzIHRoYW4gMiBhc3NldHMgYXJlIHByb3ZpZGVkLg0BLSBgTWF4QXNzZXRzRXhjZWVkZWRgOiBJZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgYXNzZXRzIGlzIGV4Y2VlZGVkLvwtIGBQb29sRXhpc3RzYDogSWYgYSBwb29sIHdpdGggdGhlIGdpdmVuIGFzc2V0cyBhbHJlYWR5IGV4aXN0cy4hAS0gYFNoYXJlQXNzZXRJblBvb2xBc3NldHNgOiBJZiB0aGUgc2hhcmUgYXNzZXQgaXMgYW1vbmcgdGhlIHBvb2wgYXNzZXRzLlkBLSBgQXNzZXROb3RSZWdpc3RlcmVkYDogSWYgb25lIG9yIG1vcmUgYXNzZXRzIGFyZSBub3QgcmVnaXN0ZXJlZCBpbiB0aGUgQXNzZXRSZWdpc3RyeS4RAS0gYEludmFsaWRBbXBsaWZpY2F0aW9uYDogSWYgdGhlIGFtcGxpZmljYXRpb24gcGFyYW1ldGVyIGlzIGludmFsaWQu8C0gYEluY29ycmVjdEluaXRpYWxQZWdzYDogSWYgdGhlIGluaXRpYWwgcGVncyBhcmUgaW5jb3JyZWN0LhkBLSBgTWlzc2luZ1RhcmdldFBlZ09yYWNsZWA6IElmIHRoZSB0YXJnZXQgcGVnIG9yYWNsZSBlbnRyeSBpcyBtaXNzaW5nLgkBLSBgSW5jb3JyZWN0QXNzZXREZWNpbWFsc2A6IElmIHRoZSBhc3NldHMgaGF2ZSBkaWZmZXJlbnQgZGVjaW1hbHMuAFBhZGRfYXNzZXRzX2xpcXVpZGl0eQwBHHBvb2xfaWQoAShUOjpBc3NldElkAAEYYXNzZXRzuQIBBQFCb3VuZGVkVmVjPEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABKG1pbl9zaGFyZXNAARxCYWxhbmNlAAxIfEFkZCBsaXF1aWRpdHkgdG8gc2VsZWN0ZWQgcG9vbC4AUQFGaXJzdCBjYWxsIG9mIGBhZGRfYXNzZXRzX2xpcXVpZGl0eWAgbXVzdCBwcm92aWRlICJpbml0aWFsIGxpcXVpZGl0eSIgb2YgYWxsIGFzc2V0cy4AhQFJZiB0aGVyZSBpcyBsaXF1aWRpdHkgYWxyZWFkeSBpbiB0aGUgcG9vbCwgTFAgY2FuIHByb3ZpZGUgbGlxdWlkaXR5IG9mIGFueSBudW1iZXIgb2YgcG9vbCBhc3NldHMuALRMUCBtdXN0IGhhdmUgc3VmZmljaWVudCBhbW91bnQgb2YgZWFjaCBhc3NldC4AvE9yaWdpbiBpcyBnaXZlbiBjb3JyZXNwb25kaW5nIGFtb3VudCBvZiBzaGFyZXMuACxQYXJhbWV0ZXJzOngtIGBvcmlnaW5gOiBsaXF1aWRpdHkgcHJvdmlkZXJQLSBgcG9vbF9pZGA6IFBvb2wgSWTILSBgYXNzZXRzYDogYXNzZXQgaWQgYW5kIGxpcXVpZGl0eSBhbW91bnQgcHJvdmlkZWTMLSBgbWluX3NoYXJlc2A6IG1pbmltdW0gYW1vdW50IG9mIHNoYXJlcyB0byByZWNlaXZlALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5cdXBkYXRlX2Fzc2V0X3BlZ19zb3VyY2UMARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKHBlZ19zb3VyY2UZAwFUUGVnU291cmNlPFQ6OkFzc2V0SWQ+AA1M1FVwZGF0ZSB0aGUgcGVnIHNvdXJjZSBmb3IgYSBzcGVjaWZpYyBhc3NldCBpbiBhIHBvb2wuACEBVGhpcyBmdW5jdGlvbiBhbGxvd3MgdXBkYXRpbmcgdGhlIHBlZyBzb3VyY2UgZm9yIGFuIGFzc2V0IHdpdGhpbiBhIHBvb2wuRQFUaGUgcG9vbCBtdXN0IGV4aXN0IGFuZCBoYXZlIHBlZ3MgY29uZmlndXJlZC4gVGhlIGFzc2V0IG11c3QgYmUgcGFydCBvZiB0aGUgcG9vbC4NAVRoZSBjdXJyZW50IHByaWNlIGlzIGFsd2F5cyBwcmVzZXJ2ZWQgd2hlbiB1cGRhdGluZyB0aGUgcGVnIHNvdXJjZS4ALFBhcmFtZXRlcnM6pC0gYG9yaWdpbmA6IE11c3QgYmUgYFQ6OkF1dGhvcml0eU9yaWdpbmAu1C0gYHBvb2xfaWRgOiBUaGUgSUQgb2YgdGhlIHBvb2wgY29udGFpbmluZyB0aGUgYXNzZXQuEQEtIGBhc3NldF9pZGA6IFRoZSBJRCBvZiB0aGUgYXNzZXQgd2hvc2UgcGVnIHNvdXJjZSBpcyB0byBiZSB1cGRhdGVkLsQtIGBwZWdfc291cmNlYDogVGhlIG5ldyBwZWcgc291cmNlIGZvciB0aGUgYXNzZXQuAMxFbWl0cyBgUG9vbFBlZ1NvdXJjZVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AICMgRXJyb3Jz3C0gYFBvb2xOb3RGb3VuZGA6IElmIHRoZSBzcGVjaWZpZWQgcG9vbCBkb2VzIG5vdCBleGlzdC7sLSBgTm9QZWdTb3VyY2VgOiBJZiB0aGUgcG9vbCBkb2VzIG5vdCBoYXZlIHBlZ3MgY29uZmlndXJlZC4NAS0gYEFzc2V0Tm90SW5Qb29sYDogSWYgdGhlIHNwZWNpZmllZCBhc3NldCBpcyBub3QgcGFydCBvZiB0aGUgcG9vbC4AaHVwZGF0ZV9wb29sX21heF9wZWdfdXBkYXRlCAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAThtYXhfcGVnX3VwZGF0ZSkDARxQZXJiaWxsAA5A0FVwZGF0ZSB0aGUgbWF4aW11bSBwZWcgdXBkYXRlIHBlcmNlbnRhZ2UgZm9yIGEgcG9vbC4AIQFUaGlzIGZ1bmN0aW9uIGFsbG93cyB1cGRhdGluZyB0aGUgbWF4aW11bSBwZXJjZW50YWdlIGJ5IHdoaWNoIHBlZyB2YWx1ZXOoY2FuIGNoYW5nZSBpbiBhIHBvb2wgd2l0aCBwZWdzIGNvbmZpZ3VyZWQuACxQYXJhbWV0ZXJzOqQtIGBvcmlnaW5gOiBNdXN0IGJlIGBUOjpBdXRob3JpdHlPcmlnaW5gLqgtIGBwb29sX2lkYDogVGhlIElEIG9mIHRoZSBwb29sIHRvIHVwZGF0ZS7oLSBgbWF4X3BlZ191cGRhdGVgOiBUaGUgbmV3IG1heGltdW0gcGVnIHVwZGF0ZSBwZXJjZW50YWdlLgDYRW1pdHMgYFBvb2xNYXhQZWdVcGRhdGVVcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuACAjIEVycm9yc9wtIGBQb29sTm90Rm91bmRgOiBJZiB0aGUgc3BlY2lmaWVkIHBvb2wgZG9lcyBub3QgZXhpc3Qu7C0gYE5vUGVnU291cmNlYDogSWYgdGhlIHBvb2wgZG9lcyBub3QgaGF2ZSBwZWdzIGNvbmZpZ3VyZWQuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4NAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AAARAwxEcGFsbGV0X3N0YWJsZXN3YXAUdHlwZXMsVHJhZGFiaWxpdHkAAAQBEGJpdHMIAQh1OAAAFQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZAwRTAAAEACUDARhWZWM8VD4AABkDDERwYWxsZXRfc3RhYmxlc3dhcBR0eXBlcyRQZWdTb3VyY2UEHEFzc2V0SWQBKAEMFFZhbHVlBAB9AgEcUGVnVHlwZQAAABhPcmFjbGUEAB0DAXwoU291cmNlLCBPcmFjbGVQZXJpb2QsIEFzc2V0SWQpAAEAIE1NT3JhY2xlBABYAShFdm1BZGRyZXNzAAIAAB0DAAAEDCEBIQMoACEDDDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUwT3JhY2xlUGVyaW9kAAEYJExhc3RCbG9jawAAABRTaG9ydAABAChUZW5NaW51dGVzAAIAEEhvdXIAAwAMRGF5AAQAEFdlZWsABQAAJQMAAAIZAwApAww0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmJpbGwAAAQAKAEMdTMyAAAtAwwwcGFsbGV0X2JvbmRzGHBhbGxldBBDYWxsBARUAAEIFGlzc3VlDAEgYXNzZXRfaWQoARxBc3NldElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABIG1hdHVyaXR5GAEYTW9tZW50AABUZElzc3VlIG5ldyBmdW5naWJsZSBib25kcy7UTmV3IGFzc2V0IGlkIGlzIHJlZ2lzdGVyZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBib25kcy4pAVRoZSBudW1iZXIgb2YgYm9uZHMgaXNzdWVkIGlzIDE6MSB0byB0aGUgYGFtb3VudGAgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXQuGQFUaGUgYm9uZCBhc3NldCBpcyByZWdpc3RlcmVkIHdpdGggdGhlIGVtcHR5IHN0cmluZyBmb3IgdGhlIGFzc2V0IG5hbWUsBQFhbmQgd2l0aCB0aGUgc2FtZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0LuxCb25kcyBjYW4gYmUgcmVkZWVtZWQgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0IG9uY2UgbWF0dXJlLlkBVGhlIHVuZGVybHlpbmcgYXNzZXQgaXMgZGViaXRlZCBmcm9tIGBUOjpJc3N1ZXJBY2NvdW50YCwgYW5kIHRoZSBib25kcyBhcmUgY3JlZGl0ZWQgdG9EdGhlIHNhbWUgYWNjb3VudC5pAVdoZW4gaXNzdWluZyBuZXcgYm9uZHMgd2l0aCB0aGUgdW5kZXJseWluZyBhc3NldCBhbmQgbWF0dXJpdHkgdGhhdCBtYXRjaGVzIGV4aXN0aW5nIGJvbmRzLD0BbmV3IGFtb3VudCBvZiB0aGVzZSBleGlzdGluZyBib25kcyBpcyBpc3N1ZWQsIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgbmV3IGJvbmRzLg0BSXQncyBwb3NzaWJsZSB0byBpc3N1ZSBuZXcgYm9uZHMgZm9yIGJvbmRzIHRoYXQgYXJlIGFscmVhZHkgbWF0dXJlLgAsUGFyYW1ldGVyczqULSBgb3JpZ2luYDogbXVzdCBiZSBgVDo6SXNzdWVPcmlnaW5gLoQtIGBhc3NldF9pZGA6IHVuZGVybHlpbmcgYXNzZXQgaWS4LSBgYW1vdW50YDogdGhlIGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldB0BLSBgbWF0dXJpdHlgOiBVbml4IHRpbWUgaW4gbWlsbGlzZWNvbmRzLCB3aGVuIHRoZSBib25kcyB3aWxsIGJlIG1hdHVyZS4ANQFFbWl0cyBgQm9uZFRva2VuQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsIGFuZCBuZXcgYm9uZHMgd2VyZSByZWdpc3RlcmVkLqhFbWl0cyBgQm9uZHNJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AGHJlZGVlbQgBHGJvbmRfaWQoARxBc3NldElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABMJhSZWRlZW0gYm9uZHMgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0LnUBVGhlIGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldCB0aGUgYG9yaWdpbmAgcmVjZWl2ZXMgaXMgMToxIHRvIHRoZSBgYW1vdW50YCBvZiB0aGUgYm9uZHMuyEFueW9uZSB3aG8gaG9sZHMgdGhlIGJvbmRzIGlzIGFibGUgdG8gcmVkZWVtIHRoZW0uuEJvbmRzIGNhbiBiZSBib3RoIHBhcnRpYWxseSBvciBmdWxseSByZWRlZW1lZC4ALFBhcmFtZXRlcnM6WC0gYG9yaWdpbmA6IGFjY291bnQgaWRsLSBgYXNzZXRfaWRgOiBib25kIGFzc2V0IGlkGQEtIGBhbW91bnRgOiB0aGUgYW1vdW50IG9mIHRoZSBib25kcyB0byByZWRlZW0gZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0ALBFbWl0cyBgQm9uZHNSZWRlZW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuMQMMWHBhbGxldF9vdGNfc2V0dGxlbWVudHMYcGFsbGV0EENhbGwEBFQAAQRAc2V0dGxlX290Y19vcmRlcgwBGG90Y19pZCgBHE9yZGVySWQAARhhbW91bnRAARxCYWxhbmNlAAEUcm91dGXlAgFMUm91dGU8QXNzZXRJZE9mPFQ+PgAAULBDbG9zZSBhbiBleGlzdGluZyBPVEMgYXJiaXRyYWdlIG9wcG9ydHVuaXR5LgDURXhlY3V0ZXMgYSB0cmFkZSBiZXR3ZWVuIGFuIE9UQyBvcmRlciBhbmQgc29tZSByb3V0ZS5VAUlmIHRoZSBPVEMgb3JkZXIgaXMgcGFydGlhbGx5IGZpbGxhYmxlLCB0aGUgZXh0cmluc2ljIGZhaWxzIGlmIHRoZSBleGlzdGluZyBhcmJpdHJhZ2XUb3Bwb3J0dW5pdHkgaXMgbm90IGNsb3NlZCBvciByZWR1Y2VkIGFmdGVyIHRoZSB0cmFkZS5hAUlmIHRoZSBPVEMgb3JkZXIgaXMgbm90IHBhcnRpYWxseSBmaWxsYWJsZSwgZmFpbHMgaWYgdGhlcmUgaXMgbm8gcHJvZml0IGFmdGVyIHRoZSB0cmFkZS4AEQFgT3JpZ2luYCBjYWxsaW5nIHRoaXMgZXh0cmluc2ljIGlzIG5vdCBwYXlpbmcgb3IgcmVjZWl2aW5nIGFueXRoaW5nLgAlAVRoZSBwcm9maXQgbWFkZSBieSBjbG9zaW5nIHRoZSBhcmJpdHJhZ2UgaXMgdHJhbnNmZXJyZWQgdG8gYEZlZVJlY2VpdmVyYC4ALFBhcmFtZXRlcnM6OQEtIGBvcmlnaW5gOiBTaWduZWQgb3IgdW5zaWduZWQgb3JpZ2luLiBVbnNpZ25lZCBvcmlnaW4gZG9lc24ndCBwYXkgdGhlIFRYIGZlZSysCQkJYnV0IGNhbiBiZSBzdWJtaXR0ZWQgb25seSBieSBhIGNvbGxhdG9yLhEBLSBgb3RjX2lkYDogSUQgb2YgdGhlIE9UQyBvcmRlciB3aXRoIGV4aXN0aW5nIGFyYml0cmFnZSBvcHBvcnR1bml0eS64LSBgYW1vdW50YDogQW1vdW50IG5lY2Vzc2FyeSB0byBjbG9zZSB0aGUgYXJiLiEBLSBgcm91dGVgOiBUaGUgcm91dGUgd2UgdHJhZGUgYWdhaW5zdC4gUmVxdWlyZWQgZm9yIHRoZSBmZWUgY2FsY3VsYXRpb24uAJxFbWl0cyBgRXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjUDDChwYWxsZXRfbGJwGHBhbGxldBBDYWxsBARUAAEYLGNyZWF0ZV9wb29sLAEocG9vbF9vd25lcgABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAE4YXNzZXRfYV9hbW91bnRAARxCYWxhbmNlAAEcYXNzZXRfYigBHEFzc2V0SWQAAThhc3NldF9iX2Ftb3VudEABHEJhbGFuY2UAAThpbml0aWFsX3dlaWdodCgBJExCUFdlaWdodAABMGZpbmFsX3dlaWdodCgBJExCUFdlaWdodAABMHdlaWdodF9jdXJ2ZTkDATxXZWlnaHRDdXJ2ZVR5cGUAAQxmZWWpAgEoKHUzMiwgdTMyKQABNGZlZV9jb2xsZWN0b3IAATBUOjpBY2NvdW50SWQAATByZXBheV90YXJnZXRAARxCYWxhbmNlAACE/ENyZWF0ZSBhIG5ldyBsaXF1aWRpdHkgYm9vdHN0cmFwcGluZyBwb29sIGZvciBnaXZlbiBhc3NldCBwYWlyLgDYRm9yIGFueSBhc3NldCBwYWlyLCBvbmx5IG9uZSBwb29sIGNhbiBleGlzdCBhdCBhIHRpbWUuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFQ6OkNyZWF0ZVBvb2xPcmlnaW5gLlUBVGhlIHBvb2wgaXMgY3JlYXRlZCB3aXRoIGluaXRpYWwgbGlxdWlkaXR5IHByb3ZpZGVkIGJ5IHRoZSBgcG9vbF9vd25lcmAgd2hvIG11c3QgaGF2ZVhzdWZmaWNpZW50IGZ1bmRzIGZyZWUuAKEBVGhlIHBvb2wgc3RhcnRzIHVuaW5pdGlhbGl6ZWQgYW5kIHVwZGF0ZV9wb29sIGNhbGwgc2hvdWxkIGJlIGNhbGxlZCBvbmNlIGNyZWF0ZWQgdG8gc2V0IHRoZSBzdGFydCBibG9jay4AOQFUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBkaXNwYXRjaGVkIGZyb20gZ292ZXJuaW5nIGVudGl0eSBgVDo6Q3JlYXRlUG9vbE9yaWdpbmAALFBhcmFtZXRlcnM6xC0gYHBvb2xfb3duZXJgOiB0aGUgZnV0dXJlIG93bmVyIG9mIHRoZSBuZXcgcG9vbC4hAS0gYGFzc2V0X2FgOiB7IGFzc2V0X2lkLCBhbW91bnQgfSBBc3NldCBJRCBhbmQgaW5pdGlhbCBsaXF1aWRpdHkgYW1vdW50LiEBLSBgYXNzZXRfYmA6IHsgYXNzZXRfaWQsIGFtb3VudCB9IEFzc2V0IElEIGFuZCBpbml0aWFsIGxpcXVpZGl0eSBhbW91bnQuoQEtIGBpbml0aWFsX3dlaWdodGA6IEluaXRpYWwgd2VpZ2h0IG9mIHRoZSBhc3NldF9hLiAxXzAwMF8wMDAgY29ycmVzcG9uZGluZyB0byAxJSBhbmQgMTAwXzAwMF8wMDAgdG8gMTAwJZx0aGlzIHNob3VsZCBiZSBoaWdoZXIgdGhhbiBmaW5hbCB3ZWlnaHSRAS0gYGZpbmFsX3dlaWdodGA6IEZpbmFsIHdlaWdodCBvZiB0aGUgYXNzZXRfYS4gMV8wMDBfMDAwIGNvcnJlc3BvbmRpbmcgdG8gMSUgYW5kIDEwMF8wMDBfMDAwIHRvIDEwMCWgdGhpcyBzaG91bGQgYmUgbG93ZXIgdGhhbiBpbml0aWFsIHdlaWdodEEBLSBgd2VpZ2h0X2N1cnZlYDogVGhlIHdlaWdodCBmdW5jdGlvbiB1c2VkIHRvIHVwZGF0ZSB0aGUgTEJQIHdlaWdodHMuIEN1cnJlbnRseSwNAXRoZXJlIGlzIG9ubHkgb25lIHdlaWdodCBmdW5jdGlvbiBpbXBsZW1lbnRlZCwgdGhlIGxpbmVhciBmdW5jdGlvbi49AS0gYGZlZWA6IFRoZSB0cmFkaW5nIGZlZSBjaGFyZ2VkIG9uIGV2ZXJ5IHRyYWRlIGRpc3RyaWJ1dGVkIHRvIGBmZWVfY29sbGVjdG9yYC4lAS0gYGZlZV9jb2xsZWN0b3JgOiBUaGUgYWNjb3VudCB0byB3aGljaCB0cmFkaW5nIGZlZXMgd2lsbCBiZSB0cmFuc2ZlcnJlZC6dAS0gYHJlcGF5X3RhcmdldGA6IFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIHJlcGF5IHRvIHNlcGFyYXRlIGZlZV9jb2xsZWN0b3IgYWNjb3VudC4gVW50aWwgdGhpcyBhbW91bnQgaXP0cmVhY2hlZCwgZmVlIHdpbGwgYmUgaW5jcmVhc2VkIHRvIDIwJSBhbmQgdGFrZW4gZnJvbSB0aGUgcG9vbACoRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAJ0BQkVXQVJFOiBXZSBhcmUgdGFraW5nIHRoZSBmZWUgZnJvbSB0aGUgYWNjdW11bGF0ZWQgYXNzZXQuIElmIHRoZSBhY2N1bXVsYXRlZCBhc3NldCBpcyBzb2xkIHRvIHRoZSBwb29sLHkBdGhlIGZlZSBjb3N0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSBwb29sLiBJZiBpdHMgYm91Z2h0IGZyb20gdGhlIHBvb2wgdGhlIGJ1eWVyIGJlYXJzIHRoZSBjb3N0LmkBVGhpcyBpbmNyZWFzZXMgdGhlIHByaWNlIG9mIHRoZSBzb2xkIGFzc2V0IG9uIGV2ZXJ5IHRyYWRlLiBNYWtlIHN1cmUgdG8gb25seSBydW4gdGhpcyB3aXRobHByZXZpb3VzbHkgaWxsaXF1aWQgYXNzZXRzLkB1cGRhdGVfcG9vbF9kYXRhJAEccG9vbF9pZAABJFBvb2xJZDxUPgABKHBvb2xfb3duZXLNAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AARRzdGFydHQBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAQxlbmR0AWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAE4aW5pdGlhbF93ZWlnaHR0AURPcHRpb248TEJQV2VpZ2h0PgABMGZpbmFsX3dlaWdodHQBRE9wdGlvbjxMQlBXZWlnaHQ+AAEMZmVl0QIBSE9wdGlvbjwodTMyLCB1MzIpPgABNGZlZV9jb2xsZWN0b3LNAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AATByZXBheV90YXJnZXT1AQE8T3B0aW9uPEJhbGFuY2U+AAFIbFVwZGF0ZSBwb29sIGRhdGEgb2YgYSBwb29sLgANAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgcG9vbCBvd25lci4ABQFUaGUgcG9vbCBjYW4gYmUgdXBkYXRlZCBvbmx5IGlmIHRoZSBzYWxlIGhhcyBub3QgYWxyZWFkeSBzdGFydGVkLgAZAUF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbmFsIHBhcmFtZXRlcnMgaGFzIHRvIGJlIHNwZWNpZmllZC4ALFBhcmFtZXRlcnM62C0gYHBvb2xfaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcG9vbCB0byBiZSB1cGRhdGVkLiUBLSBgc3RhcnRgOiBUaGUgbmV3IHN0YXJ0aW5nIHRpbWUgb2YgdGhlIHNhbGUuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLhUBLSBgZW5kYDogVGhlIG5ldyBlbmRpbmcgdGltZSBvZiB0aGUgc2FsZS4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuHQEtIGBpbml0aWFsX3dlaWdodGA6IFRoZSBuZXcgaW5pdGlhbCB3ZWlnaHQuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLg0BLSBgZmluYWxfd2VpZ2h0YDogVGhlIG5ldyBmaW5hbCB3ZWlnaHQuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLkEBLSBgZmVlYDogVGhlIG5ldyB0cmFkaW5nIGZlZSBjaGFyZ2VkIG9uIGV2ZXJ5IHRyYWRlLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC5BAS0gYGZlZV9jb2xsZWN0b3JgOiBUaGUgbmV3IHJlY2VpdmVyIG9mIHRyYWRpbmcgZmVlcy4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuAKhFbWl0cyBgUG9vbFVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40YWRkX2xpcXVpZGl0eQgBIGFtb3VudF9hPQMBXChBc3NldElkLCBCYWxhbmNlT2Y8VD4pAAEgYW1vdW50X2I9AwFcKEFzc2V0SWQsIEJhbGFuY2VPZjxUPikAAjBgQWRkIGxpcXVpZGl0eSB0byBhIHBvb2wuAE0BQXNzZXRzIHRvIGFkZCBoYXMgdG8gbWF0Y2ggdGhlIHBvb2wgYXNzZXRzLiBBdCBsZWFzdCBvbmUgYW1vdW50IGhhcyB0byBiZSBub24temVyby4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQgYnkgdGhlIHBvb2wgb3duZXIuACxQYXJhbWV0ZXJzOpwtIGBwb29sX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBvb2wBAS0gYGFtb3VudF9hYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGFuZCB0aGUgYW1vdW50IHRvIGFkZC4dAS0gYGFtb3VudF9iYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNlY29uZCBhc3NldCBhbmQgdGhlIGFtb3VudCB0byBhZGQuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5AcmVtb3ZlX2xpcXVpZGl0eQQBHHBvb2xfaWQAASRQb29sSWQ8VD4AAyxNAVRyYW5zZmVyIGFsbCB0aGUgbGlxdWlkaXR5IGZyb20gYSBwb29sIGJhY2sgdG8gdGhlIHBvb2wgb3duZXIgYW5kIGRlc3Ryb3kgdGhlIHBvb2wuwFRoZSBwb29sIGRhdGEgYXJlIGFsc28gcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlLgCwVGhlIHBvb2wgY2FuJ3QgYmUgZGVzdHJveWVkIGR1cmluZyB0aGUgc2FsZS4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQgYnkgdGhlIHBvb2wgb3duZXIuACxQYXJhbWV0ZXJzOgEBLSBgYW1vdW50X2FgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYW5kIHRoZSBhbW91bnQgdG8gYWRkLgCkRW1pdHMgJ0xpcXVpZGl0eVJlbW92ZWQnIHdoZW4gc3VjY2Vzc2Z1bC4Qc2VsbBABIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AASRtYXhfbGltaXRAATBCYWxhbmNlT2Y8VD4ABDyEVHJhZGUgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuAFUBRXhlY3V0ZXMgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLiBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBwb29sIGFuZCBpcyUBYWZmZWN0ZWQgYnkgdGhlIGFtb3VudCBhbmQgcHJvcG9ydGlvbiBvZiB0aGUgcG9vbCBhc3NldHMgYW5kIHRoZSB3ZWlnaHRzLgDQVHJhZGluZyBgZmVlYCBpcyBkaXN0cmlidXRlZCB0byB0aGUgYGZlZV9jb2xsZWN0b3JgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGJlaW5nIHRyYW5zZmVycmVkIGZyb20gdGhlIGFjY291bnQgdG8gdGhlIHBvb2wuaQEtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgcG9vbCB0byB0aGUgYWNjb3VudC6QLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBgYXNzZXRfaW5g7QEtIGBtYXhfbGltaXRgOiBtaW5pbXVtIGFtb3VudCBvZiBgYXNzZXRfb3V0YCAvIGFtb3VudCBvZiBhc3NldF9vdXQgdG8gYmUgb2J0YWluZWQgZnJvbSB0aGUgcG9vbCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X2luYC4AxEVtaXRzIGBTZWxsRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIHdoZW4gc3VjY2Vzc2Z1bC4MYnV5EAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABJG1heF9saW1pdEABMEJhbGFuY2VPZjxUPgAFPIRUcmFkZSBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4AVQFFeGVjdXRlcyBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuIFByaWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHBvb2wgYW5kIGlzNQFhZmZlY3RlZCBieSB0aGUgYW1vdW50IGFuZCB0aGUgcHJvcG9ydGlvbiBvZiB0aGUgcG9vbCBhc3NldHMgYW5kIHRoZSB3ZWlnaHRzLgDQVHJhZGluZyBgZmVlYCBpcyBkaXN0cmlidXRlZCB0byB0aGUgYGZlZV9jb2xsZWN0b3JgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGJlaW5nIHRyYW5zZmVycmVkIGZyb20gdGhlIGFjY291bnQgdG8gdGhlIHBvb2wuaQEtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgcG9vbCB0byB0aGUgYWNjb3VudC6YLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBgYXNzZXRfb3V0YC5NAS0gYG1heF9saW1pdGA6IG1heGltdW0gYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gYmUgc29sZCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X291dGAuAMBFbWl0cyBgQnV5RXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQMIKHBhbGxldF9sYnA8V2VpZ2h0Q3VydmVUeXBlAAEEGExpbmVhcgAAAAA9AwAABAgoQABBAwwocGFsbGV0X3h5axhwYWxsZXQQQ2FsbAQEVAABHCxjcmVhdGVfcG9vbBABHGFzc2V0X2EoARxBc3NldElkAAEgYW1vdW50X2FAARxCYWxhbmNlAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYkABHEJhbGFuY2UAACSUQ3JlYXRlIG5ldyBwb29sIGZvciBnaXZlbiBhc3NldCBwYWlyLgBRAVJlZ2lzdGVycyBuZXcgcG9vbCBmb3IgZ2l2ZW4gYXNzZXQgcGFpciAoYGFzc2V0IGFgIGFuZCBgYXNzZXQgYmApIGluIGFzc2V0IHJlZ2lzdHJ5LnEBQXNzZXQgcmVnaXN0cnkgY3JlYXRlcyBuZXcgaWQgb3IgcmV0dXJucyBwcmV2aW91c2x5IGNyZWF0ZWQgb25lIGlmIHN1Y2ggcG9vbCBleGlzdGVkIGJlZm9yZS4A8FBvb2wgaXMgY3JlYXRlZCB3aXRoIGluaXRpYWwgbGlxdWlkaXR5IHByb3ZpZGVkIGJ5IGBvcmlnaW5gLnkBU2hhcmVzIGFyZSBpc3N1ZWQgd2l0aCBzcGVjaWZpZWQgaW5pdGlhbCBwcmljZSBhbmQgcmVwcmVzZW50cyBwcm9wb3J0aW9uIG9mIGFzc2V0IGluIHRoZSBwb29sLgCoRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuNGFkZF9saXF1aWRpdHkQARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEgYW1vdW50X2FAARxCYWxhbmNlAAFIYW1vdW50X2JfbWF4X2xpbWl0QAEcQmFsYW5jZQABFNBBZGQgbGlxdWlkaXR5IHRvIHByZXZpb3VzbHkgY3JlYXRlZCBhc3NldCBwYWlyIHBvb2wuAJRTaGFyZXMgYXJlIGlzc3VlZCB3aXRoIGN1cnJlbnQgcHJpY2UuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5kYWRkX2xpcXVpZGl0eV93aXRoX2xpbWl0cxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABHEJhbGFuY2UAAUhhbW91bnRfYl9tYXhfbGltaXRAARxCYWxhbmNlAAEobWluX3NoYXJlc0ABHEJhbGFuY2UABQBAcmVtb3ZlX2xpcXVpZGl0eQwBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAATBzaGFyZV9hbW91bnRAARxCYWxhbmNlAAIYMQFSZW1vdmUgbGlxdWlkaXR5IGZyb20gc3BlY2lmaWMgbGlxdWlkaXR5IHBvb2wgaW4gdGhlIGZvcm0gb2YgYnVybmluZyBzaGFyZXMuANBJZiBsaXF1aWRpdHkgaW4gdGhlIHBvb2wgcmVhY2hlcyAwLCBpdCBpcyBkZXN0cm95ZWQuAKRFbWl0cyAnTGlxdWlkaXR5UmVtb3ZlZCcgd2hlbiBzdWNjZXNzZnVsLrRFbWl0cyAnUG9vbERlc3Ryb3llZCcgd2hlbiBwb29sIGlzIGRlc3Ryb3llZC5wcmVtb3ZlX2xpcXVpZGl0eV93aXRoX2xpbWl0cxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAATBzaGFyZV9hbW91bnRAARxCYWxhbmNlAAEwbWluX2Ftb3VudF9hQAEcQmFsYW5jZQABMG1pbl9hbW91bnRfYkABHEJhbGFuY2UABgAQc2VsbBQBIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEkbWF4X2xpbWl0QAEcQmFsYW5jZQABIGRpc2NvdW50RAEQYm9vbAADIHRUcmFkZSBhc3NldCBpbiBmb3IgYXNzZXQgb3V0LgBlAUV4ZWN1dGVzIGEgc3dhcCBvZiBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4gUHJpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbGlxdWlkaXR5IHBvb2wuAOkBYG1heF9saW1pdGAgLSBtaW5pbXVtIGFtb3VudCBvZiBgYXNzZXRfb3V0YCAvIGFtb3VudCBvZiBhc3NldF9vdXQgdG8gYmUgb2J0YWluZWQgZnJvbSB0aGUgcG9vbCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X2luYC4AxEVtaXRzIGBTZWxsRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIHdoZW4gc3VjY2Vzc2Z1bC4MYnV5FAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASRtYXhfbGltaXRAARxCYWxhbmNlAAEgZGlzY291bnREARBib29sAAQcdFRyYWRlIGFzc2V0IGluIGZvciBhc3NldCBvdXQuAGUBRXhlY3V0ZXMgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLiBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBsaXF1aWRpdHkgcG9vbC4ASQFgbWF4X2xpbWl0YCAtIG1heGltdW0gYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gYmUgc29sZCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X291dGAuwEVtaXRzIGBCdXlFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLiBEZXByZWNhdGVkLshFbWl0cyBgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZGAgd2hlbiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5FAwxAcGFsbGV0X3JlZmVycmFscxhwYWxsZXQQQ2FsbAQEVAABFDRyZWdpc3Rlcl9jb2RlBAEQY29kZUkDAWxSZWZlcnJhbENvZGU8VDo6Q29kZUxlbmd0aD4AADRsUmVnaXN0ZXIgbmV3IHJlZmVycmFsIGNvZGUuAIxgb3JpZ2luYCBwYXlzIHRoZSByZWdpc3RyYXRpb24gZmVlLqhgY29kZWAgaXMgYXNzaWduZWQgdG8gdGhlIGdpdmVuIGBhY2NvdW50YC4A5Exlbmd0aCBvZiB0aGUgYGNvZGVgIG11c3QgYmUgYXQgbGVhc3QgYFQ6Ok1pbkNvZGVMZW5ndGhgLrRNYXhpbXVtIGxlbmd0aCBpcyBsaW1pdGVkIHRvIGBUOjpDb2RlTGVuZ3RoYC6RAWBjb2RlYCBtdXN0IGNvbnRhaW4gb25seSBhbGZhLW51bWVyaWMgY2hhcmFjdGVycyBhbmQgYWxsIGNoYXJhY3RlcnMgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZS4ALFBhcmFtZXRlcnM65C0gYGNvZGVgOiBDb2RlIHRvIHJlZ2lzdGVyLiBNdXN0IGZvbGxvdyB0aGUgcmVzdHJpY3Rpb25zLgC0RW1pdHMgYENvZGVSZWdpc3RlcmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuJGxpbmtfY29kZQQBEGNvZGVJAwFsUmVmZXJyYWxDb2RlPFQ6OkNvZGVMZW5ndGg+AAEoaExpbmsgYSBjb2RlIHRvIGFuIGFjY291bnQuACkBYENvZGVgIG11c3QgYmUgdmFsaWQgcmVnaXN0ZXJlZCBjb2RlLiBPdGhlcndpc2UgYEludmFsaWRDb2RlYCBpcyByZXR1cm5lZC4A9FNpZ25lciBhY2NvdW50IGlzIGxpbmtlZCB0byB0aGUgcmVmZXJyYWwgYWNjb3VudCBvZiB0aGUgY29kZS4ALFBhcmFtZXRlcnM60C0gYGNvZGVgOiBDb2RlIHRvIHVzZSB0byBsaW5rIHRoZSBzaWduZXIgYWNjb3VudCB0by4ApEVtaXRzIGBDb2RlTGlua2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuHGNvbnZlcnQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAhjAQ29udmVydCBhY2NydWVkIGFzc2V0IGFtb3VudCB0byByZXdhcmQgY3VycmVuY3kuACxQYXJhbWV0ZXJzOtwtIGBhc3NldF9pZGA6IElkIG9mIGFuIGFzc2V0IHRvIGNvbnZlcnQgdG8gUmV3YXJkQXNzZXQuAKBFbWl0cyBgQ29udmVydGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuNGNsYWltX3Jld2FyZHMAAyRkQ2xhaW0gYWNjdW11bGF0ZWQgcmV3YXJkcwBJAUlGIHRoZXJlIGlzIGFueSBhc3NldCBpbiB0aGUgcmV3YXJkIHBvdCwgYWxsIGlzIGNvbnZlcnRlZCB0byBSZXdhcmRDdXJyZW5jeSBmaXJzdC4AGQFSZXdhcmQgYW1vdW50IGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHNoYXJlcyBvZiB0aGUgc2lnbmVyIGFjY291bnQuANUBaWYgdGhlIHNpZ25lciBhY2NvdW50IGlzIHJlZmVycmVyIGFjY291bnQsIHRvdGFsIGFjY3VtdWxhdGVkIHJld2FyZHMgaXMgdXBkYXRlZCBhcyB3ZWxsIGFzIHJlZmVycmVyIGxldmVsIGlmIHJlYWNoZWQuAJhFbWl0cyBgQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlRzZXRfcmV3YXJkX3BlcmNlbnRhZ2UMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRsZXZlbE0DARRMZXZlbAABHHJld2FyZHNRAwE8RmVlRGlzdHJpYnV0aW9uAAQgcFNldCBhc3NldCByZXdhcmQgcGVyY2VudGFnZXMALFBhcmFtZXRlcnM6WC0gYGFzc2V0X2lkYDogYXNzZXQgaWRALSBgbGV2ZWxgOiBsZXZlbIwtIGByZXdhcmRzYDogcmV3YXJkIGZlZSBwZXJjZW50YWdlcwDIRW1pdHMgYEFzc2V0UmV3YXJkc1VwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuSQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABNAwhAcGFsbGV0X3JlZmVycmFscxRMZXZlbAABGBBOb25lAAAAFFRpZXIwAAEAFFRpZXIxAAIAFFRpZXIyAAMAFFRpZXIzAAQAFFRpZXI0AAUAAFEDCEBwYWxsZXRfcmVmZXJyYWxzPEZlZURpc3RyaWJ1dGlvbgAACAEgcmVmZXJyZXJ1AgEcUGVybWlsbAABGHRyYWRlcnUCARxQZXJtaWxsAABVAwxIcGFsbGV0X2xpcXVpZGF0aW9uGHBhbGxldBBDYWxsBARUAAEMJGxpcXVpZGF0ZRQBQGNvbGxhdGVyYWxfYXNzZXQoARxBc3NldElkAAEoZGVidF9hc3NldCgBHEFzc2V0SWQAARB1c2VyWAEoRXZtQWRkcmVzcwABNGRlYnRfdG9fY292ZXJAARxCYWxhbmNlAAEUcm91dGXlAgE4Um91dGU8QXNzZXRJZD4AAGy0TGlxdWlkYXRlcyBhbiBleGlzdGluZyBtb25leSBtYXJrZXQgcG9zaXRpb24ugENhbiBiZSBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQuANxQZXJmb3JtcyBhIGZsYXNoIGxvYW4gdG8gZ2V0IGZ1bmRzIHRvIHBheSBmb3IgdGhlIGRlYnQuOQFSZWNlaXZlZCBjb2xsYXRlcmFsIGlzIHN3YXBwZWQgYW5kIHRoZSBwcm9maXQgaXMgdHJhbnNmZXJyZWQgdG8gYEZlZVJlY2VpdmVyYC4AMQFQZXJtaXNzaW9ubGVzcyBhbmQgY2FsbGVyLXN1cHBsaWVkIGByb3V0ZWAgYXJlIGludGVudGlvbmFsLiBUaGlzIGNhbGwgZXhpc3RzHQFvbmx5IHRvIGtlZXAgdGhlIG1vbmV5IG1hcmtldCBzb2x2ZW50OiB0aGUgZ29hbCBpcyB0aGF0IHRoZSBwb3NpdGlvbiBpcy0BbGlxdWlkYXRlZCwgbm90IHRoYXQgdGhlIHByb3RvY29sIGNhcHR1cmVzIHRoZSBzdXJwbHVzLiBBIGNhbGxlciBjYW4gcGljayBhGQFgcm91dGVgIHRoYXQgcHJpY2VzIHRoZSBjb2xsYXRlcmFsIHNvIHRoYXQgbGl0dGxlIG9yIG5vIHByb2ZpdCByZWFjaGVzOQFgRmVlUmVjZWl2ZXJgIOKAlCB0aGF0IGlzIGFjY2VwdGFibGUuIEl0IGlzIG5vdCBhbiBleHBsb2l0OiBhbnlvbmUgY2FuIGFscmVhZHkxAWxpcXVpZGF0ZSB0aGUgc2FtZSBwb3NpdGlvbiBieSBjYWxsaW5nIEFhdmUncyBgbGlxdWlkYXRpb25DYWxsYCBkaXJlY3RseSBhbmQtAWtlZXAgdGhlIGVudGlyZSBib251cyB0aGVtc2VsdmVzLiBTbyByZXBvcnRzIGZyYW1pbmcgdGhlIG9wZW4gb3JpZ2luIG9yIHRoZTUBYXR0YWNrZXItY2hvc2VuIHJvdXRlIGFzIGEgZnVuZC1yZWRpcmVjdGlvbiB2dWxuZXJhYmlsaXR5IGFyZSBvdXQgb2Ygc2NvcGUgYnkxAWRlc2lnbjsgdGhlIG9ubHkgaW52YXJpYW50IHRoYXQgbWF0dGVycyBoZXJlIGlzIHRoYXQgdW5oZWFsdGh5IHBvc2l0aW9ucyBjYW5EYWx3YXlzIGJlIGNsb3NlZC4ALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IFNpZ25lZCBvcmlnaW4uFQEtIGBjb2xsYXRlcmFsX2Fzc2V0YDogQXNzZXQgSUQgdXNlZCBhcyBjb2xsYXRlcmFsIGluIHRoZSBNTSBwb3NpdGlvbi7kLSBgZGVidF9hc3NldGA6IEFzc2V0IElEIHVzZWQgYXMgZGVidCBpbiB0aGUgTU0gcG9zaXRpb24uDQEtIGB1c2VyYDogRVZNIGFkZHJlc3Mgb2YgdGhlIE1NIHBvc2l0aW9uIHRoYXQgd2Ugd2FudCB0byBsaXF1aWRhdGUu3C0gYGRlYnRfdG9fY292ZXJgOiBBbW91bnQgb2YgZGVidCB3ZSB3YW50IHRvIGxpcXVpZGF0ZS4hAS0gYHJvdXRlYDogVGhlIHJvdXRlIHdlIHRyYWRlIGFnYWluc3QuIFJlcXVpcmVkIGZvciB0aGUgZmVlIGNhbGN1bGF0aW9uLgCkRW1pdHMgYExpcXVpZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AWHNldF9ib3Jyb3dpbmdfY29udHJhY3QEASBjb250cmFjdFgBKEV2bUFkZHJlc3MAAQSoU2V0IHRoZSBib3Jyb3dpbmcgbWFya2V0IGNvbnRyYWN0IGFkZHJlc3MuTGxpcXVpZGF0ZV93aXRoX3Bvb2wcARBwb29sWAEoRXZtQWRkcmVzcwABQGNvbGxhdGVyYWxfYXNzZXQoARxBc3NldElkAAEoZGVidF9hc3NldCgBHEFzc2V0SWQAARB1c2VyWAEoRXZtQWRkcmVzcwABNGRlYnRfdG9fY292ZXJAARxCYWxhbmNlAAEUcm91dGXlAgE4Um91dGU8QXNzZXRJZD4AAUR1bnNpZ25lZF9wcmlvcml0eVkDAUBPcHRpb248UHJpb3JpdHk+AAJsWQFMaXF1aWRhdGVzIGFuIGV4aXN0aW5nIG1vbmV5IG1hcmtldCBwb3NpdGlvbiwgYWRkcmVzc2luZyB0aGUgbWFya2V0J3MgcG9vbCBleHBsaWNpdGx5LgA1AUJlaGF2ZXMgZXhhY3RseSBsaWtlIGBsaXF1aWRhdGVgOyB0aGUgZXh0cmEgYHBvb2xgIHBhcmFtZXRlciBpcyBhIGNvbnNpc3RlbmN5NQFhc3NlcnRpb24sIG5vdCBhIHJvdXRlcjogaXQgbXVzdCBlcXVhbCB0aGUgcG9vbCBjb250cmFjdCB0aGUgbGlxdWlkYXRpb24gcGF0aC0BcmVzb2x2ZXMgb24gaXRzIG93biAodGhlIGdpZ2FoZHggcG9vbCBmb3IgR0lHQUhEWC1jb2xsYXRlcmFsIHBvc2l0aW9ucywgdGhlMQFib3Jyb3dpbmcgY29udHJhY3Qgb3RoZXJ3aXNlKSwgb3IgdGhlIGNhbGwgZmFpbHMgd2l0aCBgUG9vbEFkZHJlc3NNaXNtYXRjaGAuMQFUaGlzIGxldHMgYSBtdWx0aS1tb25leS1tYXJrZXQgd29ya2VyIHN0YXRlIHdoaWNoIG1hcmtldCBhIGRlY2lzaW9uIHdhcyBtYWRlRQFhZ2FpbnN0IGFuZCBndWFyYW50ZWVzIHRoZSBsaXF1aWRhdGlvbiBjYW4gbmV2ZXIgZXhlY3V0ZSBhZ2FpbnN0IGEgZGlmZmVyZW50IG9uZS4AOQFVbmxpa2UgYGxpcXVpZGF0ZWAsIHRoaXMgY2FsbCBpcyBub3QgcHVibGljbHkgZGlzcGF0Y2hhYmxlOiB0aGUgb3JpZ2luIG11c3QgYmU5AW5vbmUsIGFuZCBgVmFsaWRhdGVVbnNpZ25lZGAgcmVqZWN0cyBleHRlcm5hbGx5IHJlY2VpdmVkIHRyYW5zYWN0aW9ucywgc28gb25seTEBYSBjb2xsYXRvcidzIG93biBsaXF1aWRhdGlvbiB3b3JrZXIgY2FuIHN1Ym1pdCBpdC4gVGhlIHB1YmxpYyBwZXJtaXNzaW9ubGVzc2RwYXRoIHJlbWFpbnMgYGxpcXVpZGF0ZWAuACxQYXJhbWV0ZXJzOsAtIGBvcmlnaW5gOiBNdXN0IGJlIG5vbmUgKHVuc2lnbmVkIHRyYW5zYWN0aW9uKS4hAS0gYHBvb2xgOiBFVk0gYWRkcmVzcyBvZiB0aGUgbW9uZXktbWFya2V0IHBvb2wgdGhpcyBsaXF1aWRhdGlvbiB0YXJnZXRzLhUBLSBgY29sbGF0ZXJhbF9hc3NldGA6IEFzc2V0IElEIHVzZWQgYXMgY29sbGF0ZXJhbCBpbiB0aGUgTU0gcG9zaXRpb24u5C0gYGRlYnRfYXNzZXRgOiBBc3NldCBJRCB1c2VkIGFzIGRlYnQgaW4gdGhlIE1NIHBvc2l0aW9uLg0BLSBgdXNlcmA6IEVWTSBhZGRyZXNzIG9mIHRoZSBNTSBwb3NpdGlvbiB0aGF0IHdlIHdhbnQgdG8gbGlxdWlkYXRlLtwtIGBkZWJ0X3RvX2NvdmVyYDogQW1vdW50IG9mIGRlYnQgd2Ugd2FudCB0byBsaXF1aWRhdGUuIQEtIGByb3V0ZWA6IFRoZSByb3V0ZSB3ZSB0cmFkZSBhZ2FpbnN0LiBSZXF1aXJlZCBmb3IgdGhlIGZlZSBjYWxjdWxhdGlvbi6FAS0gYHVuc2lnbmVkX3ByaW9yaXR5YDogT3B0aW9uYWwgcHJpb3JpdHkgYWRkZWQgb24gdG9wIG9mIGBCQVNFX1VOU0lHTkVEX0xJUVVJREFUSU9OX1BSSU9SSVRZYCBmb3KAdW5zaWduZWQgbGlxdWlkYXRpb24gZXh0cmluc2ljcy4ApEVtaXRzIGBMaXF1aWRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5ZAwQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAAF0DDChwYWxsZXRfaHNtGHBhbGxldBBDYWxsBARUAAEcUGFkZF9jb2xsYXRlcmFsX2Fzc2V0HAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAATBwdXJjaGFzZV9mZWV1AgEcUGVybWlsbAABZG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRUAUBDb2VmZmljaWVudFJhdGlvAAEwYnV5X2JhY2tfZmVldQIBHFBlcm1pbGwAATBidXliYWNrX3JhdGUpAwEcUGVyYmlsbAABOG1heF9pbl9ob2xkaW5n9QEBPE9wdGlvbjxCYWxhbmNlPgAAYGhBZGQgYSBuZXcgY29sbGF0ZXJhbCBhc3NldABVAVRoaXMgZnVuY3Rpb24gYWRkcyBhIG5ldyBhc3NldCBhcyBhbiBhcHByb3ZlZCBjb2xsYXRlcmFsIGZvciBIb2xsYXIuIE9ubHkgY2FsbGFibGUgYnl0dGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS4ALFBhcmFtZXRlcnM6YC0gYG9yaWdpbmA6IE11c3QgYmUgUm9vdMAtIGBhc3NldF9pZGA6IEFzc2V0IElEIHRvIGJlIGFkZGVkIGFzIGNvbGxhdGVyYWwZAS0gYHBvb2xfaWRgOiBTdGFibGVTd2FwIHBvb2wgSUQgd2hlcmUgdGhpcyBhc3NldCBhbmQgSG9sbGFyIGFyZSBwYWlyZWRpAS0gYHB1cmNoYXNlX2ZlZWA6IEZlZSBhcHBsaWVkIHdoZW4gYnV5aW5nIEhvbGxhciB3aXRoIHRoaXMgYXNzZXQgKGFkZGVkIHRvIHB1cmNoYXNlIHByaWNlKV0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE1heGltdW0gYnV5IHByaWNlIGNvZWZmaWNpZW50IGZvciBIU00gdG8gYnV5IGJhY2sgSG9sbGFyRQEtIGBidXlfYmFja19mZWVgOiBGZWUgYXBwbGllZCB3aGVuIGJ1eWluZyBiYWNrIEhvbGxhciAoc3VidHJhY3RlZCBmcm9tIGJ1eSBwcmljZSlhAS0gYGJ1eWJhY2tfcmF0ZWA6IFBhcmFtZXRlciB0aGF0IGNvbnRyb2xzIGhvdyBxdWlja2x5IEhTTSBjYW4gYnV5IEhvbGxhciB3aXRoIHRoaXMgYXNzZXQZAS0gYG1heF9pbl9ob2xkaW5nYDogT3B0aW9uYWwgbWF4aW11bSBhbW91bnQgb2YgY29sbGF0ZXJhbCBIU00gY2FuIGhvbGQAGEVtaXRzOvQtIGBDb2xsYXRlcmFsQWRkZWRgIHdoZW4gdGhlIGNvbGxhdGVyYWwgaXMgc3VjY2Vzc2Z1bGx5IGFkZGVkABxFcnJvcnM6LQEtIGBBc3NldEFscmVhZHlBcHByb3ZlZGAgaWYgdGhlIGFzc2V0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBhcyBhIGNvbGxhdGVyYWxRAS0gYFBvb2xBbHJlYWR5SGFzQ29sbGF0ZXJhbGAgaWYgYW5vdGhlciBhc3NldCBmcm9tIHRoZSBzYW1lIHBvb2wgaXMgYWxyZWFkeSBhcHByb3ZlZAEBLSBgSG9sbGFyTm90SW5Qb29sYCBpZiBIb2xsYXIgaXMgbm90IGZvdW5kIGluIHRoZSBzcGVjaWZpZWQgcG9vbDUBLSBgQXNzZXROb3RJblBvb2xgIGlmIHRoZSBjb2xsYXRlcmFsIGFzc2V0IGlzIG5vdCBmb3VuZCBpbiB0aGUgc3BlY2lmaWVkIHBvb2yQLSBPdGhlciBlcnJvcnMgZnJvbSB1bmRlcmx5aW5nIGNhbGxzXHJlbW92ZV9jb2xsYXRlcmFsX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE8ZFJlbW92ZSBhIGNvbGxhdGVyYWwgYXNzZXQAjQFSZW1vdmVzIGFuIGFzc2V0IGZyb20gdGhlIGFwcHJvdmVkIGNvbGxhdGVyYWxzIGxpc3QuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS5RAVRoZSBjb2xsYXRlcmFsIG11c3QgaGF2ZSBhIHplcm8gYmFsYW5jZSBpbiB0aGUgSFNNIGFjY291bnQgYmVmb3JlIGl0IGNhbiBiZSByZW1vdmVkLgAsUGFyYW1ldGVyczpgLSBgb3JpZ2luYDogTXVzdCBiZSBSb290xC0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gcmVtb3ZlIGZyb20gY29sbGF0ZXJhbHMAGEVtaXRzOgUBLSBgQ29sbGF0ZXJhbFJlbW92ZWRgIHdoZW4gdGhlIGNvbGxhdGVyYWwgaXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQAHEVycm9yczoBAS0gYEFzc2V0Tm90QXBwcm92ZWRgIGlmIHRoZSBhc3NldCBpcyBub3QgYSByZWdpc3RlcmVkIGNvbGxhdGVyYWwhAS0gYENvbGxhdGVyYWxOb3RFbXB0eWAgaWYgdGhlIEhTTSBhY2NvdW50IHN0aWxsIGhvbGRzIHNvbWUgb2YgdGhpcyBhc3NldFx1cGRhdGVfY29sbGF0ZXJhbF9hc3NldBgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABMHB1cmNoYXNlX2ZlZWEDATxPcHRpb248UGVybWlsbD4AAWRtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50ZQMBYE9wdGlvbjxDb2VmZmljaWVudFJhdGlvPgABMGJ1eV9iYWNrX2ZlZWEDATxPcHRpb248UGVybWlsbD4AATBidXliYWNrX3JhdGVpAwE8T3B0aW9uPFBlcmJpbGw+AAE4bWF4X2luX2hvbGRpbmdtAwFcT3B0aW9uPE9wdGlvbjxCYWxhbmNlPj4AAkyIVXBkYXRlIGNvbGxhdGVyYWwgYXNzZXQgcGFyYW1ldGVycwCdAVVwZGF0ZXMgdGhlIHBhcmFtZXRlcnMgZm9yIGFuIGV4aXN0aW5nIGNvbGxhdGVyYWwgYXNzZXQuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS4hAUVhY2ggcGFyYW1ldGVyIGlzIG9wdGlvbmFsIGFuZCBvbmx5IHByb3ZpZGVkIHBhcmFtZXRlcnMgd2lsbCBiZSB1cGRhdGVkLgAsUGFyYW1ldGVyczpgLSBgb3JpZ2luYDogTXVzdCBiZSBSb290gC0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gdXBkYXRltC0gYHB1cmNoYXNlX2ZlZWA6IE5ldyBwdXJjaGFzZSBmZWUgKG9wdGlvbmFsKR0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE5ldyBtYXggYnV5IHByaWNlIGNvZWZmaWNpZW50IChvcHRpb25hbCm0LSBgYnV5X2JhY2tfZmVlYDogTmV3IGJ1eSBiYWNrIGZlZSAob3B0aW9uYWwp3C0gYGJ1eWJhY2tfcmF0ZWA6IE5ldyBidXliYWNrIHJhdGUgcGFyYW1ldGVyIChvcHRpb25hbCnkLSBgbWF4X2luX2hvbGRpbmdgOiBOZXcgbWF4aW11bSBob2xkaW5nIGFtb3VudCAob3B0aW9uYWwpABhFbWl0czoFAS0gYENvbGxhdGVyYWxVcGRhdGVkYCB3aGVuIHRoZSBjb2xsYXRlcmFsIGlzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkABxFcnJvcnM6AQEtIGBBc3NldE5vdEFwcHJvdmVkYCBpZiB0aGUgYXNzZXQgaXMgbm90IGEgcmVnaXN0ZXJlZCBjb2xsYXRlcmFsEHNlbGwQASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABOHNsaXBwYWdlX2xpbWl0QAEcQmFsYW5jZQADbERTZWxsIGFzc2V0IHRvIEhTTQB4VGhpcyBmdW5jdGlvbiBhbGxvd3MgdXNlcnMgdG868DEuIFNlbGwgSG9sbGFyIGJhY2sgdG8gSFNNIGluIGV4Y2hhbmdlIGZvciBjb2xsYXRlcmFsIGFzc2V0cxEBMi4gU2VsbCBjb2xsYXRlcmFsIGFzc2V0cyB0byBIU00gaW4gZXhjaGFuZ2UgZm9yIG5ld2x5IG1pbnRlZCBIb2xsYXIAdQFUaGUgdmFsaWQgcGFpcnMgbXVzdCBpbmNsdWRlIEhvbGxhciBhcyBvbmUgc2lkZSBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbCBhcyB0aGUgb3RoZXIgc2lkZS4ALFBhcmFtZXRlcnM6lC0gYG9yaWdpbmA6IEFjY291bnQgc2VsbGluZyB0aGUgYXNzZXSELSBgYXNzZXRfaW5gOiBBc3NldCBJRCBiZWluZyBzb2xkkC0gYGFzc2V0X291dGA6IEFzc2V0IElEIGJlaW5nIGJvdWdodKQtIGBhbW91bnRfaW5gOiBBbW91bnQgb2YgYXNzZXRfaW4gdG8gc2VsbPgtIGBzbGlwcGFnZV9saW1pdGA6IE1pbmltdW0gYW1vdW50IG91dCBmb3Igc2xpcHBhZ2UgcHJvdGVjdGlvbgAYRW1pdHM6oC0gYFN3YXBwZWQzYCB3aGVuIHRoZSBzZWxsIGlzIHN1Y2Nlc3NmdWwAHEVycm9yczolAS0gYEludmFsaWRBc3NldFBhaXJgIGlmIHRoZSBwYWlyIGlzIG5vdCBIb2xsYXIgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWz0LSBgQXNzZXROb3RBcHByb3ZlZGAgaWYgdGhlIGNvbGxhdGVyYWwgYXNzZXQgaXNuJ3QgcmVnaXN0ZXJlZEEBLSBgU2xpcHBhZ2VMaW1pdEV4Y2VlZGVkYCBpZiB0aGUgYW1vdW50IHJlY2VpdmVkIGlzIGxlc3MgdGhhbiB0aGUgc2xpcHBhZ2UgbGltaXQlAS0gYE1heEJ1eUJhY2tFeGNlZWRlZGAgaWYgdGhlIHNlbGwgd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGJ1eSBiYWNrIHJhdGUZAS0gYE1heEJ1eVByaWNlRXhjZWVkZWRgIGlmIHRoZSBzZWxsIHdvdWxkIGV4Y2VlZCB0aGUgbWF4aW11bSBidXkgcHJpY2UdAS0gYEluc3VmZmljaWVudENvbGxhdGVyYWxCYWxhbmNlYCBpZiBIU00gZG9lc24ndCBoYXZlIGVub3VnaCBjb2xsYXRlcmFsYQEtIGBJbnZhbGlkRVZNSW50ZXJhY3Rpb25gIGlmIHRoZXJlJ3MgYW4gZXJyb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgSG9sbGFyIEVSQzIwIGNvbnRyYWN0kC0gT3RoZXIgZXJyb3JzIGZyb20gdW5kZXJseWluZyBjYWxscwxidXkQASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEoYW1vdW50X291dEABHEJhbGFuY2UAAThzbGlwcGFnZV9saW1pdEABHEJhbGFuY2UABGRIQnV5IGFzc2V0IGZyb20gSFNNAHhUaGlzIGZ1bmN0aW9uIGFsbG93cyB1c2VycyB0bzq4MS4gQnV5IEhvbGxhciBmcm9tIEhTTSB1c2luZyBjb2xsYXRlcmFsIGFzc2V0c7gyLiBCdXkgY29sbGF0ZXJhbCBhc3NldHMgZnJvbSBIU00gdXNpbmcgSG9sbGFyAHUBVGhlIHZhbGlkIHBhaXJzIG11c3QgaW5jbHVkZSBIb2xsYXIgYXMgb25lIHNpZGUgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWwgYXMgdGhlIG90aGVyIHNpZGUuACxQYXJhbWV0ZXJzOpAtIGBvcmlnaW5gOiBBY2NvdW50IGJ1eWluZyB0aGUgYXNzZXS0LSBgYXNzZXRfaW5gOiBBc3NldCBJRCBiZWluZyBzb2xkIGJ5IHRoZSB1c2VywC0gYGFzc2V0X291dGA6IEFzc2V0IElEIGJlaW5nIGJvdWdodCBieSB0aGUgdXNlcqgtIGBhbW91bnRfb3V0YDogQW1vdW50IG9mIGFzc2V0X291dCB0byBidXn0LSBgc2xpcHBhZ2VfbGltaXRgOiBNYXhpbXVtIGFtb3VudCBpbiBmb3Igc2xpcHBhZ2UgcHJvdGVjdGlvbgAYRW1pdHM6nC0gYFN3YXBwZWQzYCB3aGVuIHRoZSBidXkgaXMgc3VjY2Vzc2Z1bAAcRXJyb3JzOiUBLSBgSW52YWxpZEFzc2V0UGFpcmAgaWYgdGhlIHBhaXIgaXMgbm90IEhvbGxhciBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbPQtIGBBc3NldE5vdEFwcHJvdmVkYCBpZiB0aGUgY29sbGF0ZXJhbCBhc3NldCBpc24ndCByZWdpc3RlcmVkIQEtIGBTbGlwcGFnZUxpbWl0RXhjZWVkZWRgIGlmIHRoZSBhbW91bnQgaW5wdXQgZXhjZWVkcyB0aGUgc2xpcHBhZ2UgbGltaXQ9AS0gYE1heEhvbGRpbmdFeGNlZWRlZGAgaWYgdGhlIGJ1eSB3b3VsZCBjYXVzZSBIU00gdG8gZXhjZWVkIGl0cyBtYXhpbXVtIGhvbGRpbmdhAS0gYEludmFsaWRFVk1JbnRlcmFjdGlvbmAgaWYgdGhlcmUncyBhbiBlcnJvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBIb2xsYXIgRVJDMjAgY29udHJhY3SQLSBPdGhlciBlcnJvcnMgZnJvbSB1bmRlcmx5aW5nIGNhbGxzRGV4ZWN1dGVfYXJiaXRyYWdlCAFMY29sbGF0ZXJhbF9hc3NldF9pZCgBKFQ6OkFzc2V0SWQAASRhcmJpdHJhZ2VxAwFET3B0aW9uPEFyYml0cmFnZT4ABYhZAUV4ZWN1dGUgYXJiaXRyYWdlIG9wcG9ydHVuaXR5IGJldHdlZW4gSFNNIGFuZCBjb2xsYXRlcmFsIHN0YWJsZSBwb29sIHVzaW5nIGZsYXNoIGxvYW5zAFEBVGhpcyBjYWxsIGlzIGRlc2lnbmVkIHRvIGJlIHRyaWdnZXJlZCBhdXRvbWF0aWNhbGx5IGJ5IG9mZmNoYWluIHdvcmtlcnMuIEl0IGV4ZWN1dGVzWQFhcmJpdHJhZ2UgYnkgdGFraW5nIGEgZmxhc2ggbG9hbiBmcm9tIHRoZSBHSE8gY29udHJhY3QgYW5kIHBlcmZvcm1pbmcgdHJhZGVzIHRvIHByb2ZpdOhmcm9tIHByaWNlIGltYmFsYW5jZXMgYmV0d2VlbiBIU00gYW5kIHRoZSBTdGFibGVTd2FwIHBvb2wuAHRUaGUgYXJiaXRyYWdlIGV4ZWN1dGlvbiBmbG93OtQxLiBUYWtlcyBhIGZsYXNoIGxvYW4gb2YgSG9sbGFyIGZyb20gdGhlIEdITyBjb250cmFjdEEBMi4gRXhlY3V0ZXMgdHJhZGVzIGJldHdlZW4gSFNNIGFuZCBTdGFibGVTd2FwIHBvb2wgYmFzZWQgb24gYXJiaXRyYWdlIGRpcmVjdGlvbjrJASAgIC0gRm9yIEhvbGxhckluIChidXkgZGlyZWN0aW9uKTogU2VsbCBIb2xsYXIgdG8gSFNNIGZvciBjb2xsYXRlcmFsLCB0aGVuIHNlbGwgY29sbGF0ZXJhbCBiYWNrIGZvciBIb2xsYXIgaW4gcG9vbJkBICAgLSBGb3IgSG9sbGFyT3V0IChzZWxsIGRpcmVjdGlvbik6IFNlbGwgSG9sbGFyIGZvciBjb2xsYXRlcmFsIGluIHBvb2wsIHRoZW4gYnV5IEhvbGxhciBiYWNrIGZyb20gSFNNYDMuIFJlcGF5cyB0aGUgZmxhc2ggbG9hblUBNC4gQW55IHJlbWFpbmluZyBwcm9maXQgKGluIGNvbGxhdGVyYWwpIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBBcmJpdHJhZ2VQcm9maXRSZWNlaXZlcgBhAVRoaXMgaGVscHMgbWFpbnRhaW4gdGhlIHBlZyBvZiBIb2xsYXIgYnkgcHJvZml0aW5nIGZyb20gYW5kIGNvcnJlY3RpbmcgcHJpY2UgaW1iYWxhbmNlcy4VAVRoZSBjYWxsIGlzIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBleGVjdXRlZCBieSBvZmZjaGFpbiB3b3JrZXJzLgAsUGFyYW1ldGVyczqMLSBgb3JpZ2luYDogTXVzdCBiZSBOb25lICh1bnNpZ25lZCkxAS0gYGNvbGxhdGVyYWxfYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGNvbGxhdGVyYWwgYXNzZXQgdG8gdXNlIGZvciBhcmJpdHJhZ2VpAS0gYGFyYml0cmFnZWA6IE9wdGlvbmFsIGFyYml0cmFnZSBwYXJhbWV0ZXJzIChkaXJlY3Rpb24gYW5kIGFtb3VudCkuIElmIE5vbmUsIHRoZSBmdW5jdGlvbikBICB3aWxsIGF1dG9tYXRpY2FsbHkgZmluZCBhbmQgY2FsY3VsYXRlIHRoZSBvcHRpbWFsIGFyYml0cmFnZSBvcHBvcnR1bml0eS4AGEVtaXRzOtgtIGBBcmJpdHJhZ2VFeGVjdXRlZGAgd2hlbiB0aGUgYXJiaXRyYWdlIGlzIHN1Y2Nlc3NmdWwAHEVycm9yczpJAS0gYEZsYXNoTWludGVyTm90U2V0YCBpZiB0aGUgZmxhc2ggbWludGVyIGNvbnRyYWN0IGFkZHJlc3MgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQBAS0gYEFzc2V0Tm90QXBwcm92ZWRgIGlmIHRoZSBhc3NldCBpcyBub3QgYSByZWdpc3RlcmVkIGNvbGxhdGVyYWwlAS0gYE5vQXJiaXRyYWdlT3Bwb3J0dW5pdHlgIGlmIHRoZXJlJ3Mgbm8gcHJvZml0YWJsZSBhcmJpdHJhZ2Ugb3Bwb3J0dW5pdHktAS0gYE1heEJ1eVByaWNlRXhjZWVkZWRgIGlmIHRoZSBhcmJpdHJhZ2Ugd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGJ1eSBwcmljZRkBLSBgTWF4QnV5QmFja0V4Y2VlZGVkYCBpZiB0aGUgYXJiaXRyYWdlIHdvdWxkIGV4Y2VlZCB0aGUgYnV5YmFjayBsaW1pdGEBLSBgSW52YWxpZEVWTUludGVyYWN0aW9uYCBpZiB0aGVyZSdzIGFuIGVycm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEhvbGxhciBFUkMyMCBjb250cmFjdJAtIE90aGVyIGVycm9ycyBmcm9tIHVuZGVybHlpbmcgY2FsbHNAc2V0X2ZsYXNoX21pbnRlcgQBRGZsYXNoX21pbnRlcl9hZGRyWAEoRXZtQWRkcmVzcwAGPJRTZXQgdGhlIGZsYXNoIG1pbnRlciBjb250cmFjdCBhZGRyZXNzAFUBQ29uZmlndXJlcyB0aGUgRVZNIGFkZHJlc3Mgb2YgdGhlIGZsYXNoIGxvYW4gY29udHJhY3QgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFyYml0cmFnZVkBb3BlcmF0aW9ucy4gVGhpcyBjb250cmFjdCBtdXN0IHN1cHBvcnQgdGhlIEVSQy0zMTU2IGZsYXNoIGxvYW4gc3RhbmRhcmQgYW5kIGJlIHRydXN0ZWScdG8gaGFuZGxlIGZsYXNoIGxvYW5zIG9mIEhvbGxhciB0b2tlbnMuACxQYXJhbWV0ZXJzOsAtIGBvcmlnaW5gOiBNdXN0IGJlIGF1dGhvcml6ZWQgKGdvdmVybmFuY2Uvcm9vdCkNAS0gYGZsYXNoX21pbnRlcl9hZGRyYDogVGhlIEVWTSBhZGRyZXNzIG9mIHRoZSBmbGFzaCBtaW50ZXIgY29udHJhY3QAGEVtaXRzOvgtIGBGbGFzaE1pbnRlclNldGAgd2hlbiB0aGUgYWRkcmVzcyBpcyBzdWNjZXNzZnVsbHkgY29uZmlndXJlZAAcRXJyb3JzOsgtIEF1dGhvcml6YXRpb24gZXJyb3JzIGlmIG9yaWdpbiBpcyBub3QgYXV0aG9yaXplZAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5hAwQYT3B0aW9uBARUAXUCAQgQTm9uZQAAABBTb21lBAB1AgAAAQAAZQMEGE9wdGlvbgQEVAFUAQgQTm9uZQAAABBTb21lBABUAAABAABpAwQYT3B0aW9uBARUASkDAQgQTm9uZQAAABBTb21lBAApAwAAAQAAbQMEGE9wdGlvbgQEVAH1AQEIEE5vbmUAAAAQU29tZQQA9QEAAAEAAHEDBBhPcHRpb24EBFQBdQMBCBBOb25lAAAAEFNvbWUEAHUDAAABAAB1AwwocGFsbGV0X2hzbRR0eXBlcyRBcmJpdHJhZ2UAAQgkSG9sbGFyT3V0BABAARxCYWxhbmNlAAAAIEhvbGxhckluBABAARxCYWxhbmNlAAEAAHkDDDRwYWxsZXRfc2lnbmV0GHBhbGxldBBDYWxsBARUAAEkKHNldF9jb25maWcQAURzaWduYXR1cmVfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABTG1heF9jaGFpbl9pZF9sZW5ndGgoAQx1MzIAAUxtYXhfZXZtX2RhdGFfbGVuZ3RoKAEMdTMyAAEgY2hhaW5faWSxAQG0Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0NIQUlOX0lEX0xFTkdUSD4+AAAonFNldCBvciB1cGRhdGUgdGhlIHNpZ25ldCBjb25maWd1cmF0aW9uLgDkQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byB1cGRhdGUgdGhlIGNvbmZpZ3VyYXRpb24uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAu9C0gYHNpZ25hdHVyZV9kZXBvc2l0YDogRGVwb3NpdCBhbW91bnQgZm9yIHNpZ25hdHVyZSByZXF1ZXN0cy7ELSBgbWF4X2NoYWluX2lkX2xlbmd0aGA6IE1heGltdW0gY2hhaW4gSUQgbGVuZ3RoLvQtIGBtYXhfZXZtX2RhdGFfbGVuZ3RoYDogTWF4aW11bSBFVk0gdHJhbnNhY3Rpb24gZGF0YSBsZW5ndGguqC0gYGNoYWluX2lkYDogVGhlIENBSVAtMiBjaGFpbiBpZGVudGlmaWVyLjh3aXRoZHJhd19mdW5kcwgBJHJlY2lwaWVudAABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABGJxXaXRoZHJhdyBmdW5kcyBmcm9tIHRoZSBwYWxsZXQgYWNjb3VudC4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYC7YLSBgcmVjaXBpZW50YDogQWNjb3VudCB0byByZWNlaXZlIHRoZSB3aXRoZHJhd24gZnVuZHMufC0gYGFtb3VudGA6IEFtb3VudCB0byB3aXRoZHJhdy4Qc2lnbhgBHHBheWxvYWQEASBbdTg7IDMyXQABLGtleV92ZXJzaW9uKAEMdTMyAAEQcGF0aH0DAaRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfUEFUSF9MRU5HVEg+PgABEGFsZ2+BAwGkQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0FMR09fTEVOR1RIPj4AARBkZXN0hQMBpEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9ERVNUX0xFTkdUSD4+AAEYcGFyYW1ziQMBrEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9QQVJBTVNfTEVOR1RIPj4AAgSEUmVxdWVzdCBhIHNpZ25hdHVyZSBmb3IgYSBwYXlsb2FkSHNpZ25fYmlkaXJlY3Rpb25hbCQBWHNlcmlhbGl6ZWRfdHJhbnNhY3Rpb26NAwHAQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX1RSQU5TQUNUSU9OX0xFTkdUSD4+AAEgY2FpcDJfaWSFAwFwQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8NjQ+PgABLGtleV92ZXJzaW9uKAEMdTMyAAEQcGF0aH0DAaRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfUEFUSF9MRU5HVEg+PgABEGFsZ2+BAwGkQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0FMR09fTEVOR1RIPj4AARBkZXN0hQMBpEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9ERVNUX0xFTkdUSD4+AAEYcGFyYW1ziQMBrEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9QQVJBTVNfTEVOR1RIPj4AAXRvdXRwdXRfZGVzZXJpYWxpemF0aW9uX3NjaGVtYZEDAaxCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfU0NIRU1BX0xFTkdUSD4+AAFwcmVzcG9uZF9zZXJpYWxpemF0aW9uX3NjaGVtYZEDAaxCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfU0NIRU1BX0xFTkdUSD4+AAMEwFJlcXVlc3QgYSBzaWduYXR1cmUgZm9yIGEgc2VyaWFsaXplZCB0cmFuc2FjdGlvbhxyZXNwb25kCAEscmVxdWVzdF9pZHOVAwG4Qm91bmRlZFZlYzxbdTg7IDMyXSwgQ29uc3RVMzI8TUFYX0JBVENIX1NJWkU+PgABKHNpZ25hdHVyZXOdAwG8Qm91bmRlZFZlYzxTaWduYXR1cmUsIENvbnN0VTMyPE1BWF9CQVRDSF9TSVpFPj4ABAS0UmVzcG9uZCB0byBzaWduYXR1cmUgcmVxdWVzdHMgKGJhdGNoIHN1cHBvcnQpNHJlc3BvbmRfZXJyb3IEARhlcnJvcnOtAwHMQm91bmRlZFZlYzxFcnJvclJlc3BvbnNlLCBDb25zdFUzMjxNQVhfQkFUQ0hfU0laRT4+AAUEyFJlcG9ydCBzaWduYXR1cmUgZ2VuZXJhdGlvbiBlcnJvcnMgKGJhdGNoIHN1cHBvcnQpVHJlc3BvbmRfYmlkaXJlY3Rpb25hbAwBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABRHNlcmlhbGl6ZWRfb3V0cHV0jQMB2EJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9TRVJJQUxJWkVEX09VVFBVVF9MRU5HVEg+PgABJHNpZ25hdHVyZaEDASRTaWduYXR1cmUABgSYUHJvdmlkZSBhIHJlYWQgcmVzcG9uc2Ugd2l0aCBzaWduYXR1cmUUcGF1c2UABxD0UGF1c2UgdGhlIHNpZ25ldCBzbyB0aGF0IG5vIG5ldyBzaWduaW5nIHJlcXVlc3RzIGNhbiBiZSBtYWRlLgAsUGFyYW1ldGVyczqgLSBgb3JpZ2luYDogTXVzdCBzYXRpc2Z5IGBVcGRhdGVPcmlnaW5gLhx1bnBhdXNlAAgQ+FVucGF1c2UgdGhlIHNpZ25ldCBzbyB0aGF0IHNpZ25pbmcgcmVxdWVzdHMgYXJlIGFsbG93ZWQgYWdhaW4uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLn0DDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAgQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACFAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAIkDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAjQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACRAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAJUDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAJkDARhWZWM8VD4AAJkDAAACBACdAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaEDBFMAAAQAqQMBGFZlYzxUPgAAoQMMNHBhbGxldF9zaWduZXQYcGFsbGV0JFNpZ25hdHVyZQAADAEUYmlnX3KlAwEsQWZmaW5lUG9pbnQAAQRzBAEgW3U4OyAzMl0AASxyZWNvdmVyeV9pZAgBCHU4AAClAww0cGFsbGV0X3NpZ25ldBhwYWxsZXQsQWZmaW5lUG9pbnQAAAgBBHgEASBbdTg7IDMyXQABBHkEASBbdTg7IDMyXQAAqQMAAAKhAwCtAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbEDBFMAAAQAtQMBGFZlYzxUPgAAsQMMNHBhbGxldF9zaWduZXQYcGFsbGV0NEVycm9yUmVzcG9uc2UAAAgBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABNGVycm9yX21lc3NhZ2WJAwHIQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0VSUk9SX01FU1NBR0VfTEVOR1RIPj4AALUDAAACsQMAuQMMQHBhbGxldF9kaXNwZW5zZXIYcGFsbGV0EENhbGwEBFQAARAwcmVxdWVzdF9mdW5kEAEIdG9YAShFdm1BZGRyZXNzAAEYYW1vdW50QAEcQmFsYW5jZQABKHJlcXVlc3RfaWQEARxCeXRlczMyAAEIdHi9AwFQRXZtVHJhbnNhY3Rpb25QYXJhbXMAABz0UmVxdWVzdCBFVEggZnJvbSB0aGUgZXh0ZXJuYWwgZmF1Y2V0IGZvciBhIGdpdmVuIEVWTSBhZGRyZXNzLgAsUGFyYW1ldGVyczqoLSBgdG9gOiBUYXJnZXQgRVZNIGFkZHJlc3MgdG8gcmVjZWl2ZSBFVEguuC0gYGFtb3VudGA6IEFtb3VudCBvZiBFVEggKGluIHdlaSkgdG8gcmVxdWVzdC4JAS0gYHJlcXVlc3RfaWRgOiBDbGllbnQtc3VwcGxpZWQgcmVxdWVzdCBJRDsgbXVzdCBtYXRjaCBkZXJpdmVkIElELg0BLSBgdHhgOiBQYXJhbWV0ZXJzIGZvciB0aGUgRVZNIHRyYW5zYWN0aW9uIHN1Ym1pdHRlZCB0byB0aGUgZmF1Y2V0LihzZXRfY29uZmlnGAE4ZmF1Y2V0X2FkZHJlc3NYAShFdm1BZGRyZXNzAAFQbWluX2ZhdWNldF90aHJlc2hvbGRAARxCYWxhbmNlAAEsbWluX3JlcXVlc3RAARxCYWxhbmNlAAEwbWF4X2Rpc3BlbnNlQAEcQmFsYW5jZQABNGRpc3BlbnNlcl9mZWVAARxCYWxhbmNlAAFIZmF1Y2V0X2JhbGFuY2Vfd2VpQAEcQmFsYW5jZQABNKhTZXQgb3IgdXBkYXRlIHRoZSBkaXNwZW5zZXIgY29uZmlndXJhdGlvbi4A/E9uIGZpcnN0IGNhbGwsIHRoZSBwYWxsZXQgc3RhcnRzIHVucGF1c2VkLiBPbiBzdWJzZXF1ZW50IGNhbGxzLHBgcGF1c2VkYCBzdGF0ZSBpcyBwcmVzZXJ2ZWQuACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAuEQEtIGBmYXVjZXRfYWRkcmVzc2A6IEVWTSBhZGRyZXNzIG9mIHRoZSBleHRlcm5hbCBnYXMgZmF1Y2V0IGNvbnRyYWN0LhkBLSBgbWluX2ZhdWNldF90aHJlc2hvbGRgOiBNaW5pbXVtIHJlbWFpbmluZyBFVEggKHdlaSkgYWZ0ZXIgYSByZXF1ZXN0LqAtIGBtaW5fcmVxdWVzdGA6IE1pbmltdW0gcmVxdWVzdCBhbW91bnQupC0gYG1heF9kaXNwZW5zZWA6IE1heGltdW0gcmVxdWVzdCBhbW91bnQu2C0gYGRpc3BlbnNlcl9mZWVgOiBGbGF0IGZlZSBpbiBgRmVlQXNzZXRgIHBlciByZXF1ZXN0LvAtIGBmYXVjZXRfYmFsYW5jZV93ZWlgOiBUcmFja2VkIGZhdWNldCBFVEggYmFsYW5jZSAoaW4gd2VpKS4UcGF1c2UAAhABAVBhdXNlIHRoZSBkaXNwZW5zZXIgc28gdGhhdCBubyBuZXcgZnVuZGluZyByZXF1ZXN0cyBjYW4gYmUgbWFkZS4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYC4cdW5wYXVzZQADEAUBVW5wYXVzZSB0aGUgZGlzcGVuc2VyIHNvIHRoYXQgZnVuZGluZyByZXF1ZXN0cyBhcmUgYWxsb3dlZCBhZ2Fpbi4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYARcRGlzcGF0Y2hhYmxlIGZ1bmN0aW9ucy69AwhAcGFsbGV0X2Rpc3BlbnNlclBFdm1UcmFuc2FjdGlvblBhcmFtcwAAGAEUdmFsdWVAARB1MTI4AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzQAEQdTEyOAABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc0ABEHUxMjgAARRub25jZRgBDHU2NAABIGNoYWluX2lkGAEMdTY0AADBAww4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0EENhbGwEBFQAARwoZ2lnYV9zdGFrZQQBGGFtb3VudEABHEJhbGFuY2UAAFxBAUxvY2sgSERYIGluIHRoZSBjYWxsZXIncyBhY2NvdW50LCBtaW50IHN0SERYLCBhbmQgc3VwcGx5IGl0IHRvIHRoZSBtb25leSBtYXJrZXQuADEBVGhlIHBhbGxldCBsb2NrcyBgYW1vdW50YCBIRFggaW4gdGhlIGNhbGxlcidzIGFjY291bnQgdW5kZXIgYENvbmZpZzo6TG9ja0lkYDUBKHNvIGl0IHJlbWFpbnMgdm90ZWFibGUgdmlhIGBMb2NrYWJsZUN1cnJlbmN5YCBzZW1hbnRpY3MpLCBtaW50cyBzdEhEWCBhdCB0aGUxAWN1cnJlbnQgZXhjaGFuZ2UgcmF0ZSwgYW5kIHN1cHBsaWVzIHRoZSBzdEhEWCB0byB0aGUgbW9uZXkgbWFya2V0LiBUaGUgbW9uZXkFAW1hcmtldCBtaW50cyBHSUdBSERYIChhVG9rZW4pIHRvIHRoZSBjYWxsZXIncyBFVk0tbWFwcGVkIGFkZHJlc3MuADUBYFN0YWtlc1tjYWxsZXJdLmdpZ2FoZHhgIHJlY29yZHMgdGhlICoqYWN0dWFsKiogYVRva2VuIGFtb3VudCByZXR1cm5lZCBieSB0aGUVAW1vbmV5IG1hcmtldCAobWF5IGRpZmZlciBmcm9tIHRoZSByZXF1ZXN0ZWQgbWludCBhbW91bnQgYnkgcm91bmRpbmcpLgD8RmFpbHMgd2l0aCBgQmVsb3dNaW5TdGFrZWAgaWYgYGFtb3VudCA8IENvbmZpZzo6TWluU3Rha2VgLCB3aXRoDQFgQmxvY2tlZEJ5RXh0ZXJuYWxMb2NrYCBpZiBgQ29uZmlnOjpFeHRlcm5hbENsYWltczo6b24oY2FsbGVyKSA+IDBg+Ch0aGUgY2FsbGVyIGhvbGRzIGEgbm9uLWFsbG93ZWQgbG9jayDigJQgc3RyaWN0IHBvbGljeSByZWplY3Rz8HN0YWtlIGFkbWlzc2lvbiBlbnRpcmVseSksIHdpdGggYEluc3VmZmljaWVudEZyZWVCYWxhbmNlYCBpZuBgZnJlZV9iYWxhbmNlIOKIkiBvd25fZ2lnYWhkeF9jb21taXRtZW50IDwgYW1vdW50YCwgd2l0aMRgU3RIZHhNaW50RmFpbGVkYCBpZiBzdEhEWCBtaW50aW5nIGZhaWxzLCBvciB3aXRoBQFgTW9uZXlNYXJrZXRTdXBwbHlGYWlsZWRgIGlmIHRoZSBBQVZFIGBQb29sLnN1cHBseWAgY2FsbCByZXZlcnRzLgAsUGFyYW1ldGVyczoVAS0gYGFtb3VudGA6IEhEWCBhbW91bnQgdG8gc3Rha2UuIE11c3QgYmUgYXQgbGVhc3QgYENvbmZpZzo6TWluU3Rha2VgLgCURW1pdHMgYFN0YWtlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAwZ2lnYV91bnN0YWtlBAE4Z2lnYWhkeF9hbW91bnRAARxCYWxhbmNlAAF8BQFVbnN0YWtlIHRoZSBjYWxsZXIncyBHSUdBSERYIGFuZCBvcGVuIGEgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9uLgA5AUJ1cm5zIGBnaWdhaGR4X2Ftb3VudGAgb2YgdGhlIGNhbGxlcidzIEdJR0FIRFggdGhyb3VnaCB0aGUgbW9uZXkgbWFya2V0LCB3aGljaDEBcmV0dXJucyBzdEhEWCB0byB0aGUgY2FsbGVyOyB0aGUgcGFsbGV0IHRoZW4gYnVybnMgdGhhdCBzdEhEWC4gVGhlIEhEWCB2YWx1ZSUBKGN1cnJlbnQgcmF0ZSDDlyBgZ2lnYWhkeF9hbW91bnRgKSBpcyBtb3ZlZCBpbnRvIGEgc2luZ2xlIHBlbmRpbmctdW5zdGFrZT0BcG9zaXRpb24gd2l0aCBhIGNvb2xkb3duIG9mIGBDb25maWc6OkNvb2xkb3duUGVyaW9kYC4gQW55IHBvcnRpb24gb2YgdGhlIHBheW91dCEBdGhhdCBleGNlZWRzIHRoZSB1c2VyJ3MgYWN0aXZlIHN0YWtlIHByaW5jaXBhbCBpcyBwYWlkIGFzIHlpZWxkIGZyb20gdGhlQGdpZ2Fwb3QgYWNjb3VudC4ARQFBdCBtb3N0IG9uZSBwZW5kaW5nIHBvc2l0aW9uIHBlciBhY2NvdW50IOKAlCB0aGUgY2FsbGVyIG11c3QgYHVubG9ja2AgYW4gZXhpc3RpbmclAXBvc2l0aW9uIGJlZm9yZSBjYWxsaW5nIGFnYWluLCBvdGhlcndpc2UgYFBlbmRpbmdVbnN0YWtlQWxyZWFkeUV4aXN0c2AgaXMkcmV0dXJuZWQuACUBSW1wbGVtZW50YXRpb24gZGV0YWlsIChtdXN0IG1hdGNoIGBMb2NrYWJsZUFUb2tlbi5zb2xgKTogdGhlIGxvY2stbWFuYWdlcjUBcHJlY29tcGlsZSAoYDB4MDgwNmApIHJlYWRzIGBTdGFrZXNbd2hvXS5naWdhaGR4YCBhbmQgdHJlYXRzIGl0IGFzIHRoZSB1c2VyJ3PcbG9ja2VkIEdJR0FIRFguIFRoZSBhVG9rZW4gY29udHJhY3QgcmVqZWN0cyBidXJucyB3aGVyZSEBYGFtb3VudCA+IGJhbGFuY2UgLSBsb2NrZWRgLCBzbyB0aGUgcGFsbGV0ICoqcHJlLWRlY3JlbWVudHMgYGdpZ2FoZHhgIGJ5LQFgZ2lnYWhkeF9hbW91bnRgIGJlZm9yZSB0aGUgbW9uZXktbWFya2V0IGNhbGwqKi4gVGhlIGRpc3BhdGNoYWJsZSBydW5zIGluIGEVAXN0b3JhZ2UgbGF5ZXIgc28gYW55IGZhaWx1cmUgcm9sbHMgYmFjayB0aGUgcHJlLWRlY3JlbWVudCBhdG9taWNhbGx5LgAdAUZhaWxzIHdpdGggYE5vU3Rha2VgIGlmIHRoZSBjYWxsZXIgaGFzIG5vIGFjdGl2ZSBzdGFrZSwgYFplcm9BbW91bnRgIGlmKQFgZ2lnYWhkeF9hbW91bnQgPT0gMGAsIGBJbnN1ZmZpY2llbnRTdGFrZWAgaWYgYGdpZ2FoZHhfYW1vdW50YCBleGNlZWRzIHRoZRUBY2FsbGVyJ3MgYFN0YWtlcy5naWdhaGR4YCwgb3IgYE1vbmV5TWFya2V0V2l0aGRyYXdGYWlsZWRgIGlmIHRoZSBBQVZFdGBQb29sLndpdGhkcmF3YCBjYWxsIHJldmVydHMuACxQYXJhbWV0ZXJzOjEBLSBgZ2lnYWhkeF9hbW91bnRgOiBHSUdBSERYIChhVG9rZW4pIGFtb3VudCB0byB1bnN0YWtlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbtAgIHplcm8gYW5kIG5vdCBleGNlZWQgdGhlIGNhbGxlcidzIGBTdGFrZXMuZ2lnYWhkeGAuAJxFbWl0cyBgVW5zdGFrZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ARHNldF9wb29sX2NvbnRyYWN0BAEgY29udHJhY3RYAShFdm1BZGRyZXNzAAJQHQFTZXQgdGhlIEFBVkUgVjMgUG9vbCBjb250cmFjdCBhZGRyZXNzIHVzZWQgYnkgdGhlIG1vbmV5LW1hcmtldCBhZGFwdGVyLgANAVJlZnVzZXMgdG8gc3dhcCB0aGUgcG9vbCB3aGlsZSBnaWdhaGR4IChhVG9rZW4gLyBzdEhEWCkgaXMgc3RpbGwgaW4dAWNpcmN1bGF0aW9uIOKAlCBhIHN3YXAgbWlkLWZsaWdodCB3b3VsZCByb3V0ZSBzdWJzZXF1ZW50IGBnaWdhX3Vuc3Rha2VgDQFjYWxscyB0byBhIHBvb2wgdGhhdCBkb2Vzbid0IGhvbGQgdGhlIHVzZXIncyBhdG9rZW5zLCByZXZlcnRpbmcgdGhlDQFidXJuIGFuZCBsZWF2aW5nIEhEWCBwZXJtYW5lbnRseSBsb2NrZWQuIFJldHVybnMgYE91dHN0YW5kaW5nU3Rha2VgkHdoZW4gdG90YWwgc3RIRFggc3VwcGx5IGlzIG5vbi16ZXJvLgD4Tm90ZTogaXQgaXMgbm90IGVub3VnaCB0byBjaGVjayBgVG90YWxMb2NrZWQgPT0gMGAgKHRoZSBzdW0gb2b8YFN0YWtlcy5oZHhgKS4gV2hlbiBhbiB1bnN0YWtlIHBheW91dCBleGNlZWRzIHRoZSB1c2VyJ3MgYWN0aXZlAQFzdGFrZSwgdGhlIGFjdGl2ZSBzdGFrZSBpcyBkcmFpbmVkIGJ1dCBgU3Rha2VzLmdpZ2FoZHhgIChhbmQgdGhlAQFjb3JyZXNwb25kaW5nIGFUb2tlbiBiYWxhbmNlKSBjYW4gc3RheSBub24temVybyDigJQgdGhvc2UgdG9rZW5zhHJlbWFpbiBib3VuZCB0byB0aGUgY3VycmVudCBwb29sLgAsUGFyYW1ldGVyczqkLSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6QXV0aG9yaXR5T3JpZ2luYC7wLSBgY29udHJhY3RgOiBIMTYwIGFkZHJlc3Mgb2YgdGhlIG5ldyBBQVZFIFYzIFBvb2wgY29udHJhY3QuAMhFbWl0cyBgUG9vbENvbnRyYWN0VXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAYdW5sb2NrBAEscG9zaXRpb25faWQoAURCbG9ja051bWJlckZvcjxUPgADLBUBUmVsZWFzZSBhIHNpbmdsZSBwZW5kaW5nLXVuc3Rha2UgcG9zaXRpb24gd2hvc2UgY29vbGRvd24gaGFzIGVsYXBzZWQuABUBRmFpbHMgd2l0aCBgUGVuZGluZ1Vuc3Rha2VOb3RGb3VuZGAgaWYgbm8gcG9zaXRpb24gd2l0aCBgcG9zaXRpb25faWRgKQFleGlzdHMsIG9yIGBDb29sZG93bk5vdEVsYXBzZWRgIGlmIHRoZSB0YXJnZXRlZCBwb3NpdGlvbiBpcyBzdGlsbCBjb29saW5nLgAsUGFyYW1ldGVyczoJAS0gYHBvc2l0aW9uX2lkYDogaWQgb2YgdGhlIHBvc2l0aW9uIHRvIHJlbGVhc2UgKGFzIHJlY29yZGVkIGluIHRoZcAgIGBVbnN0YWtlZGAgZXZlbnQgZm9yIHRoZSBvcmlnaW5hdGluZyB1bnN0YWtlKS4AnEVtaXRzIGBVbmxvY2tlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4Y2FuY2VsX3Vuc3Rha2UEASxwb3NpdGlvbl9pZCgBREJsb2NrTnVtYmVyRm9yPFQ+AARICQFDYW5jZWwgYSBzaW5nbGUgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9uLCBmb2xkaW5nIGl0cyBgYW1vdW50YCBIRFjgYmFjayBpbnRvIHRoZSBhY3RpdmUgc3Rha2UgYXQgdGhlIGN1cnJlbnQgZXhjaGFuZ2UgcmF0ZS4A/FRoZSBwZW5kaW5nIEhEWCBpcyBhbHJlYWR5IGxvY2tlZCBpbiB0aGUgY2FsbGVyJ3MgYWNjb3VudDsgdGhpcwEBZXh0cmluc2ljIHJlbGFiZWxzIGl0IGFzIGFjdGl2ZSBzdGFrZSBhbmQgbWludHMgZnJlc2ggYVRva2VucyBhdPh0b2RheSdzIHJhdGUuIFRoZSBudW1iZXIgb2YgYVRva2VucyBtaW50ZWQgbWF5IGRpZmZlciBmcm9tIHRoZeRhbW91bnQgYnVybmVkIGF0IHVuc3Rha2UgdGltZSBpZiB0aGUgZXhjaGFuZ2UgcmF0ZSBtb3ZlZC4A/ENvb2xkb3duIGlzIG5vdCBhIGdhdGUg4oCUIGNhbmNlbGxhdGlvbiBpcyB2YWxpZCB0aHJvdWdob3V0IHRoZchwZW5kaW5nIHdpbmRvdywgdW50aWwgdGhlIGNhbGxlciBpbnZva2VzIGB1bmxvY2tgLgARAUZhaWxzIHdpdGggYFBlbmRpbmdVbnN0YWtlTm90Rm91bmRgIGlmIGBwb3NpdGlvbl9pZGAgaXMgbm90IHByZXNlbnQuACxQYXJhbWV0ZXJzOrgtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBwb3NpdGlvbiB0byBjYW5jZWwuALxFbWl0cyBgVW5zdGFrZUNhbmNlbGxlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAcbWlncmF0ZQAFTPhNaWdyYXRlIHRoZSBjYWxsZXIncyBsZWdhY3kgTkZUIHN0YWtpbmcgcG9zaXRpb24gaW50byBnaWdhaGR4LgD0QXRvbWljYWxseTogZGVzdHJveXMgdGhlIGxlZ2FjeSBwb3NpdGlvbiB2aWEgYExlZ2FjeVN0YWtpbmc6Og0BZm9yY2VfdW5zdGFrZWAgKHBheWluZyBvdXQgMTAwJSBvZiByZXdhcmRzIOKAlCBubyBzaWdtb2lkIHNsYXNoLCBub/x1bmNsYWltYWJsZS1wZXJpb2QgcGVuYWx0eSksIHRoZW4gcmUtc3Rha2VzIHRoZSBmcmVlZCBIRFggdW5kZXIJAXRoZSBzYW1lIGFkbWlzc2lvbiBnYXRlIGFzIGBnaWdhX3N0YWtlYC4gUmVmdXNlcyBwYXJ0aWFsIG1pZ3JhdGlvbuDigJQgdGhlIGxlZ2FjeSBwb3NpdGlvbiBpcyBjb25zdW1lZCB3aG9sZSBvciBub3QgYXQgYWxsLgD8QWRtaXNzaW9uIHJ1bnMgKmFmdGVyKiBgZm9yY2VfdW5zdGFrZWAgc28gdGhlIGxlZ2FjeSBsb2NrIGlzIG5voGxvbmdlciBjb3VudGVkIGFnYWluc3QgYEV4dGVybmFsQ2xhaW1zYC4A+EZhaWxzIHdpdGggYEJlbG93TWluU3Rha2VgIGlmIHRoZSBsZWdhY3kgcG9zaXRpb24gdW5sb2NrcyBsZXNz8HRoYW4gYENvbmZpZzo6TWluU3Rha2VgLCB3aXRoIGBCbG9ja2VkQnlFeHRlcm5hbExvY2tgIGlmIHRoZfxjYWxsZXIgc3RpbGwgY2FycmllcyBhbm90aGVyIG5vbi1vdmVybGFwLXdoaXRlbGlzdGVkIGxvY2ssIHdpdGgFAWBJbnN1ZmZpY2llbnRGcmVlQmFsYW5jZWAgaWYgdGhlIHBvc3QtdW5zdGFrZSBiYWxhbmNlIGNhbid0IGNvdmVy9HRoZSBuZXcgZ2lnYWhkeCBjbGFpbSwgb3Igd2l0aCB3aGF0ZXZlciBlcnJvciBgZm9yY2VfdW5zdGFrZWDocmFpc2VzIChlLmcuIG9uZ29pbmcgcmVmZXJlbmR1bSB2b3RlLCBubyBsZWdhY3kgcG9zaXRpb24pLgDERW1pdHMgYE1pZ3JhdGVkRnJvbUxlZ2FjeWAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRyZWFsaXplX3lpZWxkAAYoFQFSZWFsaXplIHRoZSBjYWxsZXIncyBhY2NydWVkIHlpZWxkIGludG8gdGhlaXIgbG9ja2VkIHN0YWtlIHByaW5jaXBhbC4AFQFNb3ZlcyB0aGUgSERYIHZhbHVlIHRoZSBjYWxsZXIncyBHSUdBSERYIGhhcyBnYWluZWQgc2luY2UgaXQgd2FzIGxhc3QhAXJlY29uY2lsZWQgKGByYXRlIMOXIGdpZ2FoZHgg4oiSIFN0YWtlc1t3aG9dLmhkeGApIGZyb20gdGhlIGdpZ2Fwb3QgaW50bxEBdGhlIGNhbGxlcidzIGFjY291bnQsIGZvbGRzIGl0IGludG8gYFN0YWtlc1t3aG9dLmhkeGAsIGFuZCByZWZyZXNoZXMBAXRoZSBsb2NrLiBHSUdBSERYIGJhbGFuY2UgYW5kIHRoZSBleGNoYW5nZSByYXRlIGFyZSB1bmNoYW5nZWQuIEEFAWNhbGxlciB3aXRoIG5vIGFjY3J1ZWQgeWllbGQgKG9yIG5vIHN0YWtlKSBpcyBhIHN1Y2Nlc3NmdWwgbm8tb3AuAPBFbWl0cyBgWWllbGRSZWFsaXplZGAgZXZlbnQgd2hlbiB0aGVyZSB3YXMgeWllbGQgdG8gcmVhbGl6ZS4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsUDDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzGHBhbGxldBBDYWxsBARUAAEENGNsYWltX3Jld2FyZHMAADARAUNvbnZlcnQgdGhlIGNhbGxlcidzIGFjY3VtdWxhdGVkIEhEWCByZXdhcmRzIGludG8gR0lHQUhEWCBieSBzdGFraW5ncHRoZW0gb24gdGhlIGNhbGxlcidzIGJlaGFsZi4ACQFUaGUgZnVsbCBgUGVuZGluZ1Jld2FyZHNbd2hvXWAgc3VtIGlzIHRha2VuIGF0b21pY2FsbHkuIFRoZSBIRFggaXP8dHJhbnNmZXJyZWQgZnJvbSB0aGUgYWxsb2NhdGVkLXJld2FyZHMgcG90IHRvIHRoZSBjYWxsZXIncyBmcmVlCQFiYWxhbmNlLCB0aGVuIGBwYWxsZXRfZ2lnYWhkeDo6ZG9fc3Rha2VgIGlzIGNhbGxlZCB0byBtaW50IEdJR0FIRFiEaW50byB0aGUgY2FsbGVyJ3Mgc3Rha2UgcG9zaXRpb24uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBzaWduZWQgYnkgdGhlIHVzZXIgY2xhaW1pbmcuALRFbWl0cyBgUmV3YXJkc0NsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuyQMMLG9ybWxfdG9rZW5zGG1vZHVsZRBDYWxsBARUAAEUIHRyYW5zZmVyDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQAANNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgAFAWB0cmFuc2ZlcmAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIu4El0IHdpbGwgZGVjcmVhc2UgdGhlIHRvdGFsIGlzc3VhbmNlIG9mIHRoZSBzeXN0ZW0gYnkgdGhl/GBUcmFuc2ZlckZlZWAuIElmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbAEBZGVwb3NpdCBhcyBhIHJlc3VsdCBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIufC0gYGN1cnJlbmN5X2lkYDogY3VycmVuY3kgdHlwZS6wLSBgYW1vdW50YDogZnJlZSBiYWxhbmNlIGFtb3VudCB0byB0cmFuc2Zlci4wdHJhbnNmZXJfYWxsDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEoa2VlcF9hbGl2ZUQBEGJvb2wAAUzQVHJhbnNmZXIgYWxsIHJlbWFpbmluZyBiYWxhbmNlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgDwTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVf+GJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXQgYW55IGxvY2tlZCwgcmVzZXJ2ZWQsIG9yIGV4aXN0ZW50aWFsCQFkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmUgdHJhbnNmZXJyZWQgYnn8dGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVk+GFjY291bnQsIHlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55sHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZSBkZXBvc2l0cywgZXRjLi4uAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLvAtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAFASAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbCBvZiB0aGUgZnVuZHMgdGhlIGFjY291bnQgaGFzLCBjYXVzaW5nBQEgIHRoZSBzZW5kZXIgYWNjb3VudCB0byBiZSBraWxsZWQgKGZhbHNlKSwgb3IgdHJhbnNmZXIgZXZlcnl0aGluZwkBICBleGNlcHQgYXQgbGVhc3QgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQsIHdoaWNoIHdpbGwgZ3VhcmFudGVlIHRvnCAga2VlcCB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUgKHRydWUpLkx0cmFuc2Zlcl9rZWVwX2FsaXZlDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQACLAUBU2FtZSBhcyB0aGUgW2B0cmFuc2ZlcmBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXKEd2lsbCBub3Qga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuALg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2ZlcmBdIGluc3RlYWQuAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLrAtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5zZmVyLjhmb3JjZV90cmFuc2ZlchABGHNvdXJjZQABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQADJBEBRXhhY3RseSBhcyBgdHJhbnNmZXJgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2VkYWNjb3VudCBtYXkgYmUgc3BlY2lmaWVkLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgCcLSBgc291cmNlYDogVGhlIHNlbmRlciBvZiB0aGUgdHJhbnNmZXIuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLrAtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5zZmVyLixzZXRfYmFsYW5jZRABDHdobwABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEgbmV3X2ZyZWU8AShUOjpCYWxhbmNlAAEwbmV3X3Jlc2VydmVkPAEoVDo6QmFsYW5jZQAEIJBTZXQgdGhlIGJhbGFuY2VzIG9mIGEgZ2l2ZW4gYWNjb3VudC4ACQFUaGlzIHdpbGwgYWx0ZXIgYEZyZWVCYWxhbmNlYCBhbmQgYFJlc2VydmVkQmFsYW5jZWAgaW4gc3RvcmFnZS4gaXTMd2lsbCBhbHNvIGRlY3JlYXNlIHRoZSB0b3RhbCBpc3N1YW5jZSBvZiB0aGUgc3lzdGVtDQEoYFRvdGFsSXNzdWFuY2VgKS4gSWYgdGhlIG5ldyBmcmVlIG9yIHJlc2VydmVkIGJhbGFuY2UgaXMgYmVsb3cgdGhl0GV4aXN0ZW50aWFsIGRlcG9zaXQsIGl0IHdpbGwgcmVhcCB0aGUgYEFjY291bnRJbmZvYC4AsFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLs0DDERwYWxsZXRfY3VycmVuY2llcxhtb2R1bGUQQ2FsbAQEVAABDCB0cmFuc2ZlcgwBEGRlc3QAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEYYW1vdW50PAEwQmFsYW5jZU9mPFQ+AAAQ9FRyYW5zZmVyIHNvbWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQgdW5kZXIgYGN1cnJlbmN5X2lkYC4A5FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSx0cmFuc2FjdG9yLmB0cmFuc2Zlcl9uYXRpdmVfY3VycmVuY3kIARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAARhhbW91bnQ8ATBCYWxhbmNlT2Y8VD4AARDEVHJhbnNmZXIgc29tZSBuYXRpdmUgY3VycmVuY3kgdG8gYW5vdGhlciBhY2NvdW50LgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuOHVwZGF0ZV9iYWxhbmNlDAEMd2hvAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABGGFtb3VudNEDASxBbW91bnRPZjxUPgACDMx1cGRhdGUgYW1vdW50IG9mIGFjY291bnQgYHdob2AgdW5kZXIgYGN1cnJlbmN5X2lkYC4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7RAwAABQ0A1QMMMG9ybWxfdmVzdGluZxhtb2R1bGUQQ2FsbAQEVAABEBRjbGFpbQAAADx2ZXN0ZWRfdHJhbnNmZXIIARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASBzY2hlZHVsZdkDAVBWZXN0aW5nU2NoZWR1bGVPZjxUPgABAGB1cGRhdGVfdmVzdGluZ19zY2hlZHVsZXMIAQx3aG8AAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABRHZlc3Rpbmdfc2NoZWR1bGVz3QMBZFZlYzxWZXN0aW5nU2NoZWR1bGVPZjxUPj4AAgAkY2xhaW1fZm9yBAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAMABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtkDCDBvcm1sX3Zlc3Rpbmc8VmVzdGluZ1NjaGVkdWxlCCxCbG9ja051bWJlcgEoHEJhbGFuY2UBQAAQARRzdGFydCgBLEJsb2NrTnVtYmVyAAEYcGVyaW9kKAEsQmxvY2tOdW1iZXIAATBwZXJpb2RfY291bnQoAQx1MzIAAShwZXJfcGVyaW9kPAEcQmFsYW5jZQAA3QMAAALZAwDhAwwocGFsbGV0X2V2bRhwYWxsZXQQQ2FsbAQEVAABECB3aXRoZHJhdwgBHGFkZHJlc3NYARBIMTYwAAEUdmFsdWVAATBCYWxhbmNlT2Y8VD4AAATgV2l0aGRyYXcgYmFsYW5jZSBmcm9tIEVWTSBpbnRvIGN1cnJlbmN5L2JhbGFuY2VzIHBhbGxldC4QY2FsbCgBGHNvdXJjZVgBEEgxNjAAARh0YXJnZXRYARBIMTYwAAEUaW5wdXQUARxWZWM8dTg+AAEUdmFsdWVgARBVMjU2AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+UDATBPcHRpb248VTI1Nj4AARRub25jZeUDATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdOkDAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN08QMBREF1dGhvcml6YXRpb25MaXN0AAEEXQFJc3N1ZSBhbiBFVk0gY2FsbCBvcGVyYXRpb24uIFRoaXMgaXMgc2ltaWxhciB0byBhIG1lc3NhZ2UgY2FsbCB0cmFuc2FjdGlvbiBpbiBFdGhlcmV1bS4YY3JlYXRlJAEYc291cmNlWAEQSDE2MAABEGluaXQUARxWZWM8dTg+AAEUdmFsdWVgARBVMjU2AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+UDATBPcHRpb248VTI1Nj4AARRub25jZeUDATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdOkDAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN08QMBREF1dGhvcml6YXRpb25MaXN0AAIIUQFJc3N1ZSBhbiBFVk0gY3JlYXRlIG9wZXJhdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGEgY29udHJhY3QgY3JlYXRpb24gdHJhbnNhY3Rpb24gaW4kRXRoZXJldW0uHGNyZWF0ZTIoARhzb3VyY2VYARBIMTYwAAEQaW5pdBQBHFZlYzx1OD4AARBzYWx0LAEQSDI1NgABFHZhbHVlYAEQVTI1NgABJGdhc19saW1pdBgBDHU2NAABPG1heF9mZWVfcGVyX2dhc2ABEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXPlAwEwT3B0aW9uPFUyNTY+AAEUbm9uY2XlAwEwT3B0aW9uPFUyNTY+AAEsYWNjZXNzX2xpc3TpAwFYVmVjPChIMTYwLCBWZWM8SDI1Nj4pPgABSGF1dGhvcml6YXRpb25fbGlzdPEDAURBdXRob3JpemF0aW9uTGlzdAADBHxJc3N1ZSBhbiBFVk0gY3JlYXRlMiBvcGVyYXRpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuUDBBhPcHRpb24EBFQBYAEIEE5vbmUAAAAQU29tZQQAYAAAAQAA6QMAAALtAwDtAwAABAhY7ADxAwAAAvUDAPUDECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXA3NzAyVEF1dGhvcml6YXRpb25MaXN0SXRlbQAAEAEgY2hhaW5faWQYAQx1NjQAARxhZGRyZXNzWAEcQWRkcmVzcwABFG5vbmNlYAEQVTI1NgABJHNpZ25hdHVyZfkDAXRNYWxsZWFibGVUcmFuc2FjdGlvblNpZ25hdHVyZQAA+QMQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzB0TWFsbGVhYmxlVHJhbnNhY3Rpb25TaWduYXR1cmUAAAwBMG9kZF95X3Bhcml0eUQBEGJvb2wAAQRyLAEQSDI1NgABBHMsARBIMjU2AAD9Aww8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBBDYWxsBARUAAEEIHRyYW5zYWN0BAEsdHJhbnNhY3Rpb24BBAEsVHJhbnNhY3Rpb24AAASEVHJhbnNhY3QgYW4gRXRoZXJldW0gdHJhbnNhY3Rpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgEEDCBldGhlcmV1bSx0cmFuc2FjdGlvbjRUcmFuc2FjdGlvblYzAAEQGExlZ2FjeQQABQQBRExlZ2FjeVRyYW5zYWN0aW9uAAAAHEVJUDI5MzAEABUEAUhFSVAyOTMwVHJhbnNhY3Rpb24AAQAcRUlQMTU1OQQAJQQBSEVJUDE1NTlUcmFuc2FjdGlvbgACABxFSVA3NzAyBAApBAFIRUlQNzcwMlRyYW5zYWN0aW9uAAMAAAUEECBldGhlcmV1bSx0cmFuc2FjdGlvbhhsZWdhY3lETGVnYWN5VHJhbnNhY3Rpb24AABwBFG5vbmNlYAEQVTI1NgABJGdhc19wcmljZWABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEYYWN0aW9uCQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEUaW5wdXQUARRCeXRlcwABJHNpZ25hdHVyZQ0EAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAACQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uGGxlZ2FjeURUcmFuc2FjdGlvbkFjdGlvbgABCBBDYWxsBABYARBIMTYwAAAAGENyZWF0ZQABAAANBBAgZXRoZXJldW0sdHJhbnNhY3Rpb24YbGVnYWN5UFRyYW5zYWN0aW9uU2lnbmF0dXJlAAAMAQR2EQQBVFRyYW5zYWN0aW9uUmVjb3ZlcnlJZAABBHIsARBIMjU2AAEEcywBEEgyNTYAABEEECBldGhlcmV1bSx0cmFuc2FjdGlvbhhsZWdhY3lUVHJhbnNhY3Rpb25SZWNvdmVyeUlkAAAEABgBDHU2NAAAFQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzBIRUlQMjkzMFRyYW5zYWN0aW9uAAAkASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlYAEQVTI1NgABJGdhc19wcmljZWABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEYYWN0aW9uCQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEUaW5wdXQUARRCeXRlcwABLGFjY2Vzc19saXN0GQQBKEFjY2Vzc0xpc3QAASRzaWduYXR1cmUhBAFQVHJhbnNhY3Rpb25TaWduYXR1cmUAABkEAAACHQQAHQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzA4QWNjZXNzTGlzdEl0ZW0AAAgBHGFkZHJlc3NYARxBZGRyZXNzAAEwc3RvcmFnZV9rZXlz7AEkVmVjPEgyNTY+AAAhBBAgZXRoZXJldW0sdHJhbnNhY3Rpb24cZWlwMjkzMFBUcmFuc2FjdGlvblNpZ25hdHVyZQAADAEwb2RkX3lfcGFyaXR5RAEQYm9vbAABBHIsARBIMjU2AAEEcywBEEgyNTYAACUEECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXAxNTU5SEVJUDE1NTlUcmFuc2FjdGlvbgAAKAEgY2hhaW5faWQYAQx1NjQAARRub25jZWABEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXNgARBVMjU2AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABJGdhc19saW1pdGABEFUyNTYAARhhY3Rpb24JBAFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZWABEFUyNTYAARRpbnB1dBQBFEJ5dGVzAAEsYWNjZXNzX2xpc3QZBAEoQWNjZXNzTGlzdAABJHNpZ25hdHVyZSEEAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAAKQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDc3MDJIRUlQNzcwMlRyYW5zYWN0aW9uAAAsASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc2ABEFUyNTYAATxtYXhfZmVlX3Blcl9nYXNgARBVMjU2AAEkZ2FzX2xpbWl0YAEQVTI1NgABLGRlc3RpbmF0aW9uCQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEQZGF0YRQBFEJ5dGVzAAEsYWNjZXNzX2xpc3QZBAEoQWNjZXNzTGlzdAABSGF1dGhvcml6YXRpb25fbGlzdPEDAURBdXRob3JpemF0aW9uTGlzdAABJHNpZ25hdHVyZSEEAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAALQQMTHBhbGxldF9ldm1fYWNjb3VudHMYcGFsbGV0EENhbGwEBFQAASRAYmluZF9ldm1fYWRkcmVzcwAAMKRCaW5kcyBhIFN1YnN0cmF0ZSBhZGRyZXNzIHRvIEVWTSBhZGRyZXNzLm0BQWZ0ZXIgYmluZGluZywgdGhlIEVWTSBpcyBhYmxlIHRvIGNvbnZlcnQgYW4gRVZNIGFkZHJlc3MgdG8gdGhlIG9yaWdpbmFsIFN1YnN0cmF0ZSBhZGRyZXNzLq0BV2l0aG91dCBiaW5kaW5nLCB0aGUgRVZNIGNvbnZlcnRzIGFuIEVWTSBhZGRyZXNzIHRvIGEgdHJ1bmNhdGVkIFN1YnN0cmF0ZSBhZGRyZXNzLCB3aGljaCBkb2Vzbid0IGNvcnJlc3BvbmRYdG8gdGhlIG9yaWdpbiBhZGRyZXNzLgAFAUJpbmRpbmcgYW4gYWRkcmVzcyBpcyBub3QgbmVjZXNzYXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBFVk0uoEluY3JlYXNlcyBgc3VmZmljaWVudHNgIGZvciB0aGUgYWNjb3VudC4ALFBhcmFtZXRlcnM6wC0gYG9yaWdpbmA6IFN1YnN0cmF0ZSBhY2NvdW50IGJpbmRpbmcgYW4gYWRkcmVzcwC4RW1pdHMgYEV2bUFjY291bnRCb3VuZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlRhZGRfY29udHJhY3RfZGVwbG95ZXIEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwABHGEBQWRkcyBhbiBFVk0gYWRkcmVzcyB0byB0aGUgbGlzdCBvZiBhZGRyZXNzZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBkZXBsb3kgc21hcnQgY29udHJhY3RzLgAsUGFyYW1ldGVyczpJAS0gYG9yaWdpbmA6IFN1YnN0cmF0ZSBhY2NvdW50IHdoaXRlbGlzdGluZyBhbiBhZGRyZXNzLiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC6wLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgd2hpdGVsaXN0ZWQAsEVtaXRzIGBEZXBsb3llckFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuYHJlbW92ZV9jb250cmFjdF9kZXBsb3llcgQBHGFkZHJlc3NYAShFdm1BZGRyZXNzAAIcdQFSZW1vdmVzIGFuIEVWTSBhZGRyZXNzIGZyb20gdGhlIGxpc3Qgb2YgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHNtYXJ0IGNvbnRyYWN0cy4ALFBhcmFtZXRlcnM6mQEtIGBvcmlnaW5gOiBTdWJzdHJhdGUgYWNjb3VudCByZW1vdmluZyB0aGUgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7sLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSB3aGl0ZWxpc3QAuEVtaXRzIGBEZXBsb3llclJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5ocmVub3VuY2VfY29udHJhY3RfZGVwbG95ZXIAAxyhAVJlbW92ZXMgdGhlIGFjY291bnQncyBFVk0gYWRkcmVzcyBmcm9tIHRoZSBsaXN0IG9mIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGRlcGxveSBzbWFydCBjb250cmFjdHMu2QFCYXNlZCBvbiB0aGUgYmVzdCBwcmFjdGljZXMsIHRoaXMgZXh0cmluc2ljIGNhbiBiZSBjYWxsZWQgYnkgYW55IHdoaXRlbGlzdGVkIGFjY291bnQgdG8gcmVub3VuY2UgdGhlaXIgb3duIHBlcm1pc3Npb24uACxQYXJhbWV0ZXJzOjEBLSBgb3JpZ2luYDogU3Vic3RyYXRlIGFjY291bnQgcmVtb3ZpbmcgdGhlaXIgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LgC4RW1pdHMgYERlcGxveWVyUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkBhcHByb3ZlX2NvbnRyYWN0BAEcYWRkcmVzc1gBKEV2bUFkZHJlc3MABCRJAUFkZHMgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgY29udHJhY3RzIHRvIG1hbmFnZSBiYWxhbmNlcy4A/EVmZmVjdGl2ZWx5IGdpdmluZyBpdCBhbGxvd2FuY2UgdG8gZm9yIGFueSBiYWxhbmNlcyBhbmQgdG9rZW5zLgAsUGFyYW1ldGVyczqgLSBgb3JpZ2luYDogIE11c3QgYmUgYENvbnRyb2xsZXJPcmlnaW5gLswtIGBhZGRyZXNzYDogQ29udHJhY3QgYWRkcmVzcyB0aGF0IHdpbGwgYmUgYXBwcm92ZWQAvEVtaXRzIGBDb250cmFjdEFwcHJvdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuTGRpc2FwcHJvdmVfY29udHJhY3QEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwAFHF0BUmVtb3ZlcyBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCBmcm9tIHRoZSBsaXN0IG9mIGFwcHJvdmVkIGNvbnRyYWN0cyB0byBtYW5hZ2UgYmFsYW5jZXMuACxQYXJhbWV0ZXJzOpwtIGBvcmlnaW5gOiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7YLSBgYWRkcmVzc2A6IENvbnRyYWN0IGFkZHJlc3MgdGhhdCB3aWxsIGJlIGRpc2FwcHJvdmVkAMhFbWl0cyBgQ29udHJhY3REaXNhcHByb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRjbGFpbV9hY2NvdW50DAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABJHNpZ25hdHVyZZUBASRTaWduYXR1cmUABiz8UHJvdmVzIG93bmVyc2hpcCBvZiBhbiBhY2NvdW50IGFuZCBiaW5kcyBpdCB0byB0aGUgRVZNIGFkZHJlc3MuUQFUaGlzIGlzIHVzZWZ1bCBmb3IgYWNjb3VudHMgdGhhdCB3YW50IHRvIHN1Ym1pdCBzb21lIHN1YnN0cmF0ZSB0cmFuc2FjdGlvbiwgYnV0IG9ubHl1AXJlY2VpdmVkIHNvbWUgRVJDMjAgYmFsYW5jZSBhbmQgYFN5c3RlbWAgcGFsbGV0IGRvZXNuJ3QgcmVnaXN0ZXIgdGhlbSBhcyBhIHN1YnN0cmF0ZSBhY2NvdW50LgAsUGFyYW1ldGVyczpwLSBgb3JpZ2luYDogVW5zaWduZWQgb3JpZ2luLtgtIGBhY2NvdW50YDogQWNjb3VudCBwcm92aW5nIG93bmVyc2hpcCBvZiB0aGUgYWRkcmVzcy4FAS0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gYmUgc2V0IGFzIGZlZSBjdXJyZW5jeSBmb3IgdGhlIGFjY291bnQuSQEtIGBzaWduYXR1cmVgOiBTaWduZWQgbWVzc2FnZSBieSB0aGUgYWNjb3VudCB0aGF0IHByb3ZlcyBvd25lcnNoaXAgb2YgdGhlIGFjY291bnQuALRFbWl0cyBgQWNjb3VudENsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC44c2V0X250dF9taW50ZXIIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhtaW50ZXJYAShFdm1BZGRyZXNzAAckPQFTZXRzIHRoZSBOVFQgbWludGVyIGZvciBhbiBhc3NldC4gVGhlIG1pbnRlciBpcyB0aGUgb25seSBFVk0gYWRkcmVzcyBhbGxvd2VkIHRv1G1pbnQvYnVybiB0aGUgYXNzZXQgdmlhIHRoZSBNdWx0aUN1cnJlbmN5IHByZWNvbXBpbGUuACxQYXJhbWV0ZXJzOpwtIGBvcmlnaW5gOiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC6gLSBgYXNzZXRfaWRgOiBBc3NldCB3aG9zZSBtaW50ZXIgaXMgc2V0LsQtIGBtaW50ZXJgOiBFVk0gYWRkcmVzcyBvZiB0aGUgTlRUIHNwb2tlIG1hbmFnZXIuAKxFbWl0cyBgTnR0TWludGVyU2V0YCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuQGNsZWFyX250dF9taW50ZXIEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQACCA5AUNsZWFycyB0aGUgTlRUIG1pbnRlciBmb3IgYW4gYXNzZXQsIHN0b3BwaW5nIGFsbCBtaW50L2J1cm4gdmlhIHRoZSBwcmVjb21waWxlLlEBQWN0cyBhcyBhbiBlbWVyZ2VuY3kgc3RvcCwgdGhlcmVmb3JlIGl0IGlzIGdhdGVkIGJ5IHRoZSBmYXN0ZXIgYE50dEVtZXJnZW5jeU9yaWdpbmAuACxQYXJhbWV0ZXJzOqQtIGBvcmlnaW5gOiBNdXN0IGJlIGBOdHRFbWVyZ2VuY3lPcmlnaW5gLrAtIGBhc3NldF9pZGA6IEFzc2V0IHdob3NlIG1pbnRlciBpcyBjbGVhcmVkLgC8RW1pdHMgYE50dE1pbnRlckNsZWFyZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuMQQMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAQEVAABPEhjcmVhdGVfZ2xvYmFsX2Zhcm0kATR0b3RhbF9yZXdhcmRzQAEcQmFsYW5jZQABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABSGluY2VudGl2aXplZF9hc3NldCgBHEFzc2V0SWQAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAAAdPRDcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMuAD0BYG93bmVyYCBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IGB0b3RhbF9yZXdhcmRzYCBiYWxhbmNlLiBUaGlzIGZ1bmQgd2lsbCBiZaR0cmFuc2ZlcnJlZCBmcm9tIGBvd25lcmAgdG8gZmFybSBhY2NvdW50LmUBSW4gY2FzZSBvZiBgcmV3YXJkX2N1cnJlbmN5YCBpcyBpbnN1ZmZpY2llbnQgYXNzZXQsIGZhcm0ncyBgb3duZXJgIGhhcyB0byBwYXkgZXhpc3RlbnRpYWwdAWRlcG9zaXQgZm9yIGdsb2JhbCBmYXJtIGFjY291bnQgYW5kIGZvciBsaXF1aWRpdHkgbWluaW5nIGBwb3RgIGFjY291bnQuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4xAS0gYHRvdGFsX3Jld2FyZHNgOiB0b3RhbCByZXdhcmRzIHBsYW5uZWQgdG8gZGlzdHJpYnV0ZS4gVGhpcyByZXdhcmRzIHdpbGwgYmXcZGlzdHJpYnV0ZWQgYmV0d2VlbiBhbGwgeWllbGQgZmFybXMgaW4gdGhlIGdsb2JhbCBmYXJtLlkBLSBgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYDogcGxhbm5lZCBudW1iZXIgb2YgcGVyaW9kcyB0byBkaXN0cmlidXRlIGB0b3RhbF9yZXdhcmRzYC4pAVdBUk46IFRISVMgSVMgTk9UIEhBUkQgREVBRExJTkUuIE5vdCBhbGwgcmV3YXJkcyBoYXZlIHRvIGJlIGRpc3RyaWJ1dGVkIGluXQFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYC4gUmV3YXJkcyBhcmUgZGlzdHJpYnV0ZWQgYmFzZWQgb24gdGhlIHNpdHVhdGlvbiBpbiB0aGUgeWllbGRhAWZhcm1zIGFuZCBjYW4gYmUgZGlzdHJpYnV0ZWQgaW4gYSBsb25nZXIgdGltZSBmcmFtZSBidXQgbmV2ZXIgaW4gdGhlIHNob3J0ZXIgdGltZSBmcmFtZS5ZAS0gYGJsb2Nrc19wZXJfcGVyaW9kYDogIG51bWJlciBvZiBibG9ja3MgaW4gYSBzaW5nbGUgcGVyaW9kLiBNaW4uIG51bWJlciBvZiBibG9ja3MgcGVyMHBlcmlvZCBpcyAxLmUBLSBgaW5jZW50aXZpemVkX2Fzc2V0YDogYXNzZXQgdG8gYmUgaW5jZW50aXZpemVkIGluIFhZSyBwb29scy4gQWxsIHlpZWxkIGZhcm1zIGFkZGVkIGludG8RAWxpcS4gbWluaW5nIHByb2dyYW0gaGF2ZSB0byBoYXZlIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGluIHRoZWlyIHBhaXIuwC0gYHJld2FyZF9jdXJyZW5jeWA6IHBheW9mZiBjdXJyZW5jeSBvZiByZXdhcmRzLpQtIGBvd25lcmA6IGxpcS4gbWluaW5nIHByb2dyYW0gb3duZXIuOQEtIGB5aWVsZF9wZXJfcGVyaW9kYDogcGVyY2VudGFnZSByZXR1cm4gb24gYHJld2FyZF9jdXJyZW5jeWAgb2YgYWxsIGZhcm1zIHAuYS4JAS0gYG1pbl9kZXBvc2l0YDogbWluaW11bSBhbW91bnQgd2hpY2ggY2FuIGJlIGRlcG9zaXRlZCB0byB0aGUgZmFybVQtIGBwcmljZV9hZGp1c3RtZW50YDrARW1pdHMgYEdsb2JhbEZhcm1DcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuSHVwZGF0ZV9nbG9iYWxfZmFybQgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAABKJxVcGRhdGUgZ2xvYmFsIGZhcm0ncyBwcmljZXMgYWRqdXN0bWVudC4AqE9ubHkgZmFybSdzIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7MLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiB0aGUgZ2xvYmFsIGZhcm0gdG8gdXBkYXRl0C0gYHByaWNlX2FkanVzdG1lbnRgOiBuZXcgdmFsdWUgZm9yIHByaWNlIGFkanVzdG1lbnQAwEVtaXRzIGBHbG9iYWxGYXJtVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlR0ZXJtaW5hdGVfZ2xvYmFsX2Zhcm0EAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACLJxUZXJtaW5hdGUgZXhpc3RpbmcgbGlxLiBtaW5pbmcgcHJvZ3JhbS4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4A0QFXQVJOOiBUbyBzdWNjZXNzZnVsbHkgdGVybWluYXRlIGEgZmFybSwgZmFybSBoYXZlIHRvIGJlIGVtcHR5KGFsbCB5aWVsZCBmYXJtcyBpbiBoZSBnbG9iYWwgZmFybSBtdXN0IGJlIHRlcm1pbmF0ZWQpLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7cLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byBiZSB0ZXJtaW5hdGVkLgDMRW1pdHMgYEdsb2JhbEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuRGNyZWF0ZV95aWVsZF9mYXJtEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AA0i8QWRkIHlpZWxkIGZhcm0gZm9yIGdpdmVuIGBhc3NldF9wYWlyYCBYWUsgcG9vbC4EIKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uAFUBT25seSBYWUtzIHdpdGggYGFzc2V0X3BhaXJgIHdpdGggYGluY2VudGl2aXplZF9hc3NldGAgY2FuIGJlIGFkZGVkIGludG8gdGhlIGZhcm0uIFhZSxUBcG9vbCBmb3IgYGFzc2V0X3BhaXJgIGhhcyB0byBleGlzdCB0byBzdWNjZXNzZnVsbHkgY3JlYXRlIHlpZWxkIGZhcm0uIQFZaWVsZCBmYXJtIGZvciBzYW1lIGBhc3NldF9wYWlyYCBjYW4gZXhpc3Qgb25seSBvbmNlIGluIHRoZSBnbG9iYWwgZmFybS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuAQEtIGBmYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgdG8gd2hpY2ggYSB5aWVsZCBmYXJtIHdpbGwgYmUgYWRkZWQuXQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtLiBMaXEuIG1pbmluZyB3aWxsIGJlIGFsbG93ZWQgZm9yIHRoaXMxAWBhc3NldF9wYWlyYCBhbmQgb25lIG9mIHRoZSBhc3NldHMgaW4gdGhlIHBhaXIgbXVzdCBiZSBgaW5jZW50aXZpemVkX2Fzc2V0YC6YLSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0gbXVsdGlwbGllci5dAS0gYGxveWFsdHlfY3VydmVgOiBjdXJ2ZSB0byBjYWxjdWxhdGUgbG95YWx0eSBtdWx0aXBsaWVyIHRvIGRpc3RyaWJ1dGUgcmV3YXJkcyB0byB1c2Vyc+B3aXRoIHRpbWUgaW5jZW50aXZlLiBgTm9uZWAgbWVhbnMgbm8gbG95YWx0eSBtdWx0aXBsaWVyLgC8RW1pdHMgYFlpZWxkRmFybUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EdXBkYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAQsdFVwZGF0ZSB5aWVsZCBmYXJtIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLqgtIGBtdWx0aXBsaWVyYDogbmV3IHlpZWxkIGZhcm0gbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHN0b3BfeWllbGRfZmFybQgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIABTykU3RvcCBsaXEuIG1pbWluZyBmb3Igc3BlY2lmaWMgeWllbGQgZmFybS4ANQFUaGlzIGZ1bmN0aW9uIGNsYWltcyByZXdhcmRzIGZyb20gYEdsb2JhbEZhcm1gIGxhc3QgdGltZSBhbmQgc3RvcHMgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uQQFgZGVwb3NpdF9zaGFyZXMoKWAgYW5kIGBjbGFpbV9yZXdhcmRzKClgIGFyZSBub3QgYWxsb3dlZCBvbiBjYW5jZWxlZCB5aWVsZCBmYXJtLgQgoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuBQEtIGBnbG9iYWxfZmFybV9pZGA6IGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIGNhbmNlbGVkLvgtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBmYXJtLgC8RW1pdHMgYFlpZWxkRmFybVN0b3BwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EcmVzdW1lX3lpZWxkX2Zhcm0QAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAZEpFJlc3VtZSB5aWVsZCBmYXJtIGZvciBzdG9wcGVkIHlpZWxkIGZhcm0uAFUBVGhpcyBmdW5jdGlvbiByZXN1bWUgaW5jZW50aXZpemF0aW9uIGZyb20gYEdsb2JhbEZhcm1gIGFuZCByZXN0b3JlIGZ1bGwgZnVuY3Rpb25hbGl0eSEBZm9yIHlpZWxkIGZhcm0uIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBkZXBvc2l0LCBjbGFpbSBhbmQgd2l0aGRyYXcgYWdhaW4uAORXQVJOOiBZaWVsZCBmYXJtIGlzIE5PVCByZXdhcmRlZCBmb3IgdGltZSBpdCB3YXMgc3RvcHBlZC4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIGluIHdoaWNoIHlpZWxkIGZhcm0gd2lsbCBiZSByZXN1bWVkLsgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgeWllbGQgZmFybSB0byBiZSByZXN1bWVkLgUBLSBgYXNzZXRfcGFpcmA6IGFzc2V0IHBhaXIgaWRlbnRpZnlpbmcgeWllbGQgZmFybSBpbiBnbG9iYWwgZmFybS7ILSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0gbXVsdGlwbGllciBpbiB0aGUgZmFybS4AvEVtaXRzIGBZaWVsZEZhcm1SZXN1bWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuUHRlcm1pbmF0ZV95aWVsZF9mYXJtDAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgAHTERSZW1vdmUgeWllbGQgZmFybQCBAVRoaXMgZnVuY3Rpb24gbWFya3MgYSB5aWVsZCBmYXJtIGFzIHJlYWR5IHRvIGJlIHJlbW92ZWQgZnJvbSBzdG9yYWdlIHdoZW4gaXQncyBlbXB0eS4gVXNlcnMgd2lsbGUBYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3IHNoYXJlcyh3aXRob3V0IGNsYWltaW5nIHJld2FyZHMgZnJvbSB5aWVsZCBmYXJtKS4gVW5wYWlkIHJld2FyZHNxAXdpbGwgYmUgdHJhbnNmZXJyZWQgYmFjayB0byBnbG9iYWwgZmFybSBhbmQgd2lsbCBiZSB1c2VkIHRvIGRpc3RyaWJ1dGUgdG8gb3RoZXIgeWllbGQgZmFybXMuAOBZaWVsZCBmYXJtIG11c3QgYmUgc3RvcHBlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgBxAU9ubHkgZ2xvYmFsIGZhcm0ncyBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4gWWllbGQgZmFybSBzdGF5cyBpbiB0aGUgc3RvcmFnZSB1bnRpbCBpdCdzbQFlbXB0eShhbGwgZmFybSBlbnRyaWVzIGFyZSB3aXRoZHJhd24pLiBMYXN0IHdpdGhkcmF3biBmcm9tIHlpZWxkIGZhcm0gdHJpZ2dlciByZW1vdmluZyBmcm9tMHRoZSBzdG9yYWdlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZmFybSBpZCBmcm9tIHdoaWNoIHlpZWxkIGZhcm0gc2hvdWxkIGJlIHRlcm1pbmF0ZWQu1C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGJlIHRlcm1pbmF0ZWQuFQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS4AyEVtaXRzIGBZaWVsZEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuOGRlcG9zaXRfc2hhcmVzEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABNHNoYXJlc19hbW91bnRAARxCYWxhbmNlAAg4jERlcG9zaXQgTFAgc2hhcmVzIHRvIGEgbGlxLiBtaW5pbmcuAFEBVGhpcyBmdW5jdGlvbiB0cmFuc2ZlcnMgTFAgc2hhcmVzIGZyb20gYG9yaWdpbmAgdG8gcGFsbGV0J3MgYWNjb3VudCBhbmQgbWludCBuZnQgZm9yDQFgb3JpZ2luYCBhY2NvdW50LiBNaW50ZWQgbmZ0IHJlcHJlc2VudHMgZGVwb3NpdCBpbiB0aGUgbGlxLiBtaW5pbmcuACxQYXJhbWV0ZXJzOi0BLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0dGBzaGFyZXNfYW1vdW50YCBvZiBMUCBzaGFyZXMuPQEtIGBnbG9iYWxfZmFybV9pZGA6IGlkIG9mIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gZGVwb3NpdCBMUCBzaGFyZXMuyC0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGRlcG9zaXQgdG8uHQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyBMUCBzaGFyZXMgdXNlciB3YW50cyB0byBkZXBvc2l0LvQtIGBzaGFyZXNfYW1vdW50YDogYW1vdW50IG9mIExQIHNoYXJlcyB1c2VyIHdhbnRzIHRvIGRlcG9zaXQuALhFbWl0cyBgU2hhcmVzRGVwb3NpdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuKGpvaW5fZmFybXMMATBmYXJtX2VudHJpZXM5BAERAUJvdW5kZWRWZWM8KEdsb2JhbEZhcm1JZCwgWWllbGRGYXJtSWQpLCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAATRzaGFyZXNfYW1vdW50QAEcQmFsYW5jZQAMNLRKb2luIG11bHRpcGxlIGZhcm1zIHdpdGggYSBnaXZlbiBzaGFyZSBhbW91bnQA/FRoZSBzaGFyZSBpcyBkZXBvc2l0ZWQgdG8gdGhlIGZpcnN0IGZhcm0gb2YgdGhlIHNwZWNpZmllZCBmYW1zLNBhbmQgdGhlbiByZWRlcG9zaXQgdGhlIHNoYXJlcyB0byB0aGUgcmVtYWluaW5nIGZhcm1zACxQYXJhbWV0ZXJzOi0BLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IQEtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGdsb2JhbCBmYXJtIGlkIGFuZCB5aWVsZCBmYXJtIGlkIHBhaXJzIHRvIGpvaW4dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIExQIHNoYXJlcyB1c2VyIHdhbnRzIHRvIGRlcG9zaXQu9C0gYHNoYXJlc19hbW91bnRgOiBhbW91bnQgb2YgTFAgc2hhcmVzIHVzZXIgd2FudHMgdG8gZGVwb3NpdC4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVwYWRkX2xpcXVpZGl0eV9hbmRfam9pbl9mYXJtcxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABHEJhbGFuY2UAAUhhbW91bnRfYl9tYXhfbGltaXRAARxCYWxhbmNlAAEwZmFybV9lbnRyaWVzOQQBEQFCb3VuZGVkVmVjPChHbG9iYWxGYXJtSWQsIFlpZWxkRmFybUlkKSwgVDo6TWF4RmFybUVudHJpZXNQZXJEZXBvc2l0PgANPC0BQWRkIGxpcXVpZGl0eSB0byBYWUsgcG9vbCBhbmQgam9pbiBtdWx0aXBsZSBmYXJtcyB3aXRoIGEgZ2l2ZW4gc2hhcmUgYW1vdW50AAkBVGhlIHNoYXJlIGlzIGRlcG9zaXRlZCB0byB0aGUgZmlyc3QgZmFybSBvZiB0aGUgc3BlY2lmaWVkIGVudHJpZXMs0GFuZCB0aGVuIHJlZGVwb3NpdCB0aGUgc2hhcmVzIHRvIHRoZSByZW1haW5pbmcgZmFybXMALFBhcmFtZXRlcnM6LQEtIGBvcmlnaW5gOiBhY2NvdW50IGRlcG9zaXRpbmcgTFAgc2hhcmVzLiBUaGlzIGFjY291bnQgaGFzIHRvIGhhdmUgYXQgbGVhc3TQLSBgYXNzZXRfYWA6IGFzc2V0IGlkIG9mIHRoZSBmaXJzdCBhc3NldCBpbiB0aGUgcGFpctQtIGBhc3NldF9iYDogYXNzZXQgaWQgb2YgdGhlIHNlY29uZCBhc3NldCBpbiB0aGUgcGFpcsgtIGBhbW91bnRfYWA6IGFtb3VudCBvZiB0aGUgZmlyc3QgYXNzZXQgdG8gZGVwb3NpdBUBLSBgYW1vdW50X2JfbWF4X2xpbWl0YDogbWF4aW11bSBhbW91bnQgb2YgdGhlIHNlY29uZCBhc3NldCB0byBkZXBvc2l0IQEtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGdsb2JhbCBmYXJtIGlkIGFuZCB5aWVsZCBmYXJtIGlkIHBhaXJzIHRvIGpvaW4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVAcmVkZXBvc2l0X3NoYXJlcxABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAk85FJlZGVwb3NpdCBhbHJlYWR5IGxvY2tlZCBMUCBzaGFyZXMgdG8gYW5vdGhlciB5aWVsZCBmYXJtLgBlAVRoaXMgZnVuY3Rpb24gY3JlYXRlIHlpZWxkIGZhcm0gZW50cnkgZm9yIGV4aXN0aW5nIGRlcG9zaXQuIExQIHNoYXJlcyBhcmUgbm90IHRyYW5zZmVycmVk1GFuZCBhbW91bnQgb2YgTFAgc2hhcmVzIGlzIGJhc2VkIG9uIGV4aXN0aW5nIGRlcG9zaXQuAKRUaGlzIGZ1bmN0aW9uIERPRVNOJ1QgY3JlYXRlIG5ldyBkZXBvc2l0LgAsUGFyYW1ldGVyczoxAS0gYG9yaWdpbmA6IGFjY291bnQgZGVwb3NpdGluZyBMUCBzaGFyZXMuIFRoaXMgYWNjb3VudCBoYXZlIHRvIGhhdmUgYXQgbGVhc3SsLSBgZ2xvYmFsX2Zhcm1faWRgOiBnbG9iYWwgZmFybSBpZGVudGlmaWVyLuQtIGB5aWVsZF9mYXJtX2lkYDogeWllbGQgZmFybSBpZGVudGlmaWVyIHJlZGVwb3NpdGluZyB0by4ZAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIExQIHNoYXJlcyB1c2VyIHdhbnQgdG8gZGVwb3NpdC6oLSBgZGVwb3NpdF9pZGA6IGlkZW50aWZpZXIgb2YgdGhlIGRlcG9zaXQuAMBFbWl0cyBgU2hhcmVzUmVkZXBvc2l0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40Y2xhaW1fcmV3YXJkcwgBKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQACiwNAUNsYWltIHJld2FyZHMgZnJvbSBsaXEuIG1pbmluZyBmb3IgZGVwb3NpdCByZXByZXNlbnRlZCBieSBgbmZ0X2lkYC4AWQFUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZSB1c2VyIHJld2FyZHMgZnJvbSBsaXEuIG1pbmluZyBhbmQgdHJhbnNmZXIgcmV3YXJkcyB0byBgb3JpZ2luYOhhY2NvdW50LiBDbGFpbWluZyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgYWxsb3dlZCBvbmx5IG9uY2UuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS78LSBgeWllbGRfZmFybV9pZGA6IHlpZWxkIGZhcm0gaWRlbnRpZmllciB0byBjbGFpbSByZXdhcmRzIGZyb20uALBFbWl0cyBgUmV3YXJkQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjx3aXRoZHJhd19zaGFyZXMMAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAC1gVAVdpdGhkcmF3IExQIHNoYXJlcyBmcm9tIGxpcS4gbWluaW5nIHdpdGggcmV3YXJkIGNsYWltaW5nIGlmIHBvc3NpYmxlLgAVAUxpc3Qgb2YgcG9zc2libGUgY2FzZXMgb2YgdHJhbnNmZXJzIG9mIExQIHNoYXJlcyBhbmQgY2xhaW1lZCByZXdhcmRzOgBRASogeWllbGQgZmFybSBpcyBhY3RpdmUoeWllbGQgZmFybSBpcyBub3Qgc3RvcHBlZCkgLSBjbGFpbSBhbmQgdHJhbnNmZXIgcmV3YXJkcyhpZiBpdNh3YXNuJ3QgY2xhaW1lZCBpbiB0aGlzIHBlcmlvZCkgYW5kIHRyYW5zZmVyIExQIHNoYXJlcy7sKiBsaXEuIG1pbmluZyBpcyBzdG9wcGVkIC0gY2xhaW0gYW5kIHRyYW5zZmVyIHJld2FyZHMoaWYgaXTYd2Fzbid0IGNsYWltZWQgaW4gdGhpcyBwZXJpb2QpIGFuZCB0cmFuc2ZlciBMUCBzaGFyZXMuBQEqIHlpZWxkIGZhcm0gd2FzIHRlcm1pbmF0ZWQgLSBvbmx5IExQIHNoYXJlcyB3aWxsIGJlIHRyYW5zZmVycmVkLuwqIGZhcm0gd2FzIHRlcm1pbmF0ZWQgLSBvbmx5IExQIHNoYXJlcyB3aWxsIGJlIHRyYW5zZmVycmVkLgA1AVVzZXIncyB1bmNsYWltYWJsZSByZXdhcmRzIHdpbGwgYmUgdHJhbnNmZXJyZWQgYmFjayB0byBnbG9iYWwgZmFybSdzIGFjY291bnQuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS4FAS0gYHlpZWxkX2Zhcm1faWRgOiB5aWVsZCBmYXJtIGlkZW50aWZpZXIgdG8gZGl0aGRyYXcgc2hhcmVzIGZyb20uBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLgAYRW1pdHM6hCogYFJld2FyZENsYWltZWRgIGlmIGNsYWltIGhhcHBlbqQqIGBTaGFyZXNXaXRoZHJhd25gIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bChleGl0X2Zhcm1zDAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEwZmFybV9lbnRyaWVzPQQB0EJvdW5kZWRWZWM8WWllbGRGYXJtSWQsIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4ADkCMRXhpdCBmcm9tIGFsbCBzcGVjaWZpZWQgeWllbGQgZmFybXMAXQFUaGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byB3aXRoZHJhdyBzaGFyZXMgYW5kIGNsYWltIHJld2FyZHMgKGlmIGF2YWlsYWJsZSkgZnJvbSBhbGyoc3BlY2lmaWVkIHlpZWxkIGZhcm1zIGZvciBhIGdpdmVuIGRlcG9zaXQuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS4dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0ocykgaW4gZ2xvYmFsIGZhcm0ocyku2C0gYGZhcm1fZW50cmllc2A6IGlkKHMpIG9mIHlpZWxkIGZhcm0ocykgdG8gZXhpdCBmcm9tLgAYRW1pdHM6rCogYFJld2FyZENsYWltZWRgIGZvciBlYWNoIHN1Y2Nlc3NmdWwgY2xhaW3IKiBgU2hhcmVzV2l0aGRyYXduYCBmb3IgZWFjaCBzdWNjZXNzZnVsIHdpdGhkcmF3YWzYKiBgRGVwb3NpdERlc3Ryb3llZGAgaWYgdGhlIGRlcG9zaXQgaXMgZnVsbHkgd2l0aGRyYXduAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41BAwocGFsbGV0X3h5axR0eXBlcyRBc3NldFBhaXIAAAgBIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAADkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBqQIEUwAABACtAgEYVmVjPFQ+AAA9BAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AABBBAxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0EENhbGwIBFQABEkAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQQMWHBhbGxldF9yZWxheWNoYWluX2luZm8YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuSQQMKHBhbGxldF9kY2EYcGFsbGV0EENhbGwEBFQAAQwgc2NoZWR1bGUIASBzY2hlZHVsZU0EAdRTY2hlZHVsZTxUOjpBY2NvdW50SWQsIFQ6OkFzc2V0SWQsIEJsb2NrTnVtYmVyRm9yPFQ+PgABVHN0YXJ0X2V4ZWN1dGlvbl9ibG9ja3QBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAGQ9AUNyZWF0ZXMgYSBuZXcgRENBIChEb2xsYXItQ29zdCBBdmVyYWdpbmcpIHNjaGVkdWxlIGFuZCBwbGFucyB0aGUgbmV4dCBleGVjdXRpb25gZm9yIHRoZSBzcGVjaWZpZWQgYmxvY2suAC0BSWYgdGhlIGJsb2NrIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBleGVjdXRpb24gaXMgcGxhbm5lZCBmb3IgdGhlIG5leHQgYmxvY2suSQFJZiB0aGUgZ2l2ZW4gYmxvY2sgaXMgZnVsbCwgdGhlIGV4ZWN1dGlvbiB3aWxsIGJlIHBsYW5uZWQgaW4gdGhlIHN1YnNlcXVlbnQgYmxvY2suAFEBT25jZSB0aGUgc2NoZWR1bGUgaXMgY3JlYXRlZCwgdGhlIHNwZWNpZmllZCBgdG90YWxfYW1vdW50YCB3aWxsIGJlIHJlc2VydmVkIGZvciBEQ0EuHQFUaGUgcmVzZXJ2YXRpb24gY3VycmVuY3kgd2lsbCBiZSB0aGUgYGFtb3VudF9pbmAgY3VycmVuY3kgb2YgdGhlIG9yZGVyLgDgVHJhZGVzIGFyZSBleGVjdXRlZCBhcyBsb25nIGFzIHRoZXJlIGlzIGJ1ZGdldCByZW1haW5pbmdNAWZyb20gdGhlIGluaXRpYWwgYHRvdGFsX2Ftb3VudGAgYWxsb2NhdGlvbiwgdW5sZXNzIGB0b3RhbF9hbW91bnRgIGlzIDAsIHRoZW4gdHJhZGVzqGFyZSBleGVjdXRlZCB1bnRpbCBzY2hlZHVsZSBpcyB0ZXJtaW5hdGVkLgBVAUlmIGEgdHJhZGUgZmFpbHMgZHVlIHRvIHNsaXBwYWdlIGxpbWl0IG9yIHByaWNlIHN0YWJpbGl0eSBlcnJvcnMsIGl0IHdpbGwgYmUgcmV0cmllZC7USWYgdGhlIG51bWJlciBvZiByZXRyaWVzIHJlYWNoZXMgdGhlIG1heGltdW0gYWxsb3dlZCywdGhlIHNjaGVkdWxlIHdpbGwgYmUgdGVybWluYXRlZCBwZXJtYW5lbnRseS74SW4gdGhlIGNhc2Ugb2YgYSBzdWNjZXNzZnVsIHRyYWRlLCB0aGUgcmV0cnkgY291bnRlciBpcyByZXNldC4ALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IHNjaGVkdWxlIG93bmVyeC0gYHNjaGVkdWxlYDogc2NoZWR1bGUgZGV0YWlscykBLSBgc3RhcnRfZXhlY3V0aW9uX2Jsb2NrYDogZmlyc3QgcG9zc2libGUgZXhlY3V0aW9uIGJsb2NrIGZvciB0aGUgc2NoZWR1bGUA/EVtaXRzIGBTY2hlZHVsZWRgIGFuZCBgRXhlY3V0aW9uUGxhbm5lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAkdGVybWluYXRlCAEsc2NoZWR1bGVfaWQoAShTY2hlZHVsZUlkAAFQbmV4dF9leGVjdXRpb25fYmxvY2t0AWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAEsCQFUZXJtaW5hdGVzIGEgRENBIHNjaGVkdWxlIGFuZCByZW1vdmUgaXQgY29tcGxldGVseSBmcm9tIHRoZSBjaGFpbi4AQQFUaGlzIGNhbiBiZSBjYWxsZWQgYnkgYm90aCBzY2hlZHVsZSBvd25lciBvciB0aGUgY29uZmlndXJlZCBgVDo6VGVybWluYXRlT3JpZ2luYAAsUGFyYW1ldGVyczpoLSBgb3JpZ2luYDogc2NoZWR1bGUgb3duZXJwLSBgc2NoZWR1bGVfaWRgOiBzY2hlZHVsZSBpZBUBLSBgbmV4dF9leGVjdXRpb25fYmxvY2tgOiBibG9jayBudW1iZXIgd2hlcmUgdGhlIHNjaGVkdWxlIGlzIHBsYW5uZWQuAKRFbWl0cyBgVGVybWluYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA8dW5sb2NrX3Jlc2VydmVzCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAI0XQFVbmxvY2tzIERDQSByZXNlcnZlcyBvZiBwcm92aWRlZCBhc3NldCBmb3IgdGhlIGNhbGxlciBpZiB0aGV5IGhhdmUgbm8gYWN0aXZlIHNjaGVkdWxlcy4ANQFUaGlzIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBoZWxwIHVzZXJzIHJlY292ZXIgdGhlaXIgcmVzZXJ2ZWQgZnVuZHMgaW4gY2FzZfRhIERDQSBzY2hlZHVsZSB3YXMgdGVybWluYXRlZCBidXQgbGVmdCBzb21lIHJlc2VydmVkIGFtb3VudHMuAAkBVGhpcyBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgdXNlciBoYXMgbm8gYWN0aXZlIERDQSBzY2hlZHVsZXMuACxQYXJhbWV0ZXJzOvwtIGBvcmlnaW5gOiBUaGUgYWNjb3VudCB0byB1bmxvY2sgcmVzZXJ2ZXMgZm9yIChtdXN0IGJlIHNpZ25lZCkFAS0gYGFzc2V0X2lkYDogVGhlIGFzc2V0IElEIGZvciB3aGljaCByZXNlcnZlcyBzaG91bGQgYmUgdW5sb2NrZWQuALhFbWl0cyBgUmVzZXJ2ZVVubG9ja2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5NBAwocGFsbGV0X2RjYRR0eXBlcyBTY2hlZHVsZQwkQWNjb3VudElkAQAcQXNzZXRJZAEoLEJsb2NrTnVtYmVyASgAHAEUb3duZXIAASRBY2NvdW50SWQAARhwZXJpb2QoASxCbG9ja051bWJlcgABMHRvdGFsX2Ftb3VudEABHEJhbGFuY2UAASxtYXhfcmV0cmllc1ECAShPcHRpb248dTg+AAFMc3RhYmlsaXR5X3RocmVzaG9sZGEDATxPcHRpb248UGVybWlsbD4AASBzbGlwcGFnZWEDATxPcHRpb248UGVybWlsbD4AARRvcmRlclEEAThPcmRlcjxBc3NldElkPgAAUQQMKHBhbGxldF9kY2EUdHlwZXMUT3JkZXIEHEFzc2V0SWQBKAEIEFNlbGwUASBhc3NldF9pbigBHEFzc2V0SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABOG1pbl9hbW91bnRfb3V0QAEcQmFsYW5jZQABFHJvdXRl5QIB6EJvdW5kZWRWZWM8VHJhZGU8QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9OVU1CRVJfT0ZfVFJBREVTPj4AAAAMQnV5FAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABKGFtb3VudF9vdXRAARxCYWxhbmNlAAE0bWF4X2Ftb3VudF9pbkABHEJhbGFuY2UAARRyb3V0ZeUCAehCb3VuZGVkVmVjPFRyYWRlPEFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfTlVNQkVSX09GX1RSQURFUz4+AAEAAFUEDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBBDYWxsBARUAAEoIHNjaGVkdWxlEAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPRAgGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAARwQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrLhhjYW5jZWwIARB3aGVuKAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleCgBDHUzMgABBJRDYW5jZWwgYW4gYW5vbnltb3VzbHkgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX25hbWVkFAEIaWQEASBUYXNrTmFtZQABEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj0QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAIEWFNjaGVkdWxlIGEgbmFtZWQgdGFzay4wY2FuY2VsX25hbWVkBAEIaWQEASBUYXNrTmFtZQADBHhDYW5jZWwgYSBuYW1lZCBzY2hlZHVsZWQgdGFzay44c2NoZWR1bGVfYWZ0ZXIQARRhZnRlcigBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPRAgGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABASoQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrIGFmdGVyIGEgZGVsYXkuUHNjaGVkdWxlX25hbWVkX2FmdGVyFAEIaWQEASBUYXNrTmFtZQABFGFmdGVyKAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY9ECAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAFBJBTY2hlZHVsZSBhIG5hbWVkIHRhc2sgYWZ0ZXIgYSBkZWxheS4kc2V0X3JldHJ5DAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AARxyZXRyaWVzCAEIdTgAARhwZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgAGMFkBU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0IHdpbGxVAWJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwgaXQkc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjxzZXRfcmV0cnlfbmFtZWQMAQhpZAQBIFRhc2tOYW1lAAEccmV0cmllcwgBCHU4AAEYcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4ABzBdAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgbmFtZWQgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdF0Bd2lsbCBiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsMGl0IHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC4wY2FuY2VsX3JldHJ5BAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4ACASoUmVtb3ZlcyB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIHRhc2suSGNhbmNlbF9yZXRyeV9uYW1lZAQBCGlkBAEgVGFza05hbWUACQS8Q2FuY2VsIHRoZSByZXRyeSBjb25maWd1cmF0aW9uIG9mIGEgbmFtZWQgdGFzay4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuWQQMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAAQhMc2V0X3ZhbGlkYXRpb25fZGF0YQQBEGRhdGFdBAFUUGFyYWNoYWluSW5oZXJlbnREYXRhAAAkgFNldCB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGRhdGEuAEEBVGhpcyBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb26IcGhhc2UgaWYgdGhlIGNhbGwgd2FzIG5vdCBpbnZva2VkLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYEluaGVyZW50YAAhAUFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gdXBncmFkZXMgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBmdW5jdGlvboRpZiB0aGUgYXBwcm9wcmlhdGUgdGltZSBoYXMgY29tZS5gc3Vkb19zZW5kX3Vwd2FyZF9tZXNzYWdlBAEcbWVzc2FnZRQBNFVwd2FyZE1lc3NhZ2UAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuXQQIlGN1bXVsdXNfcHJpbWl0aXZlc19wYXJhY2hhaW5faW5oZXJlbnRUUGFyYWNoYWluSW5oZXJlbnREYXRhAAAYATx2YWxpZGF0aW9uX2RhdGFhBAFcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEAAURyZWxheV9jaGFpbl9zdGF0ZWkEAVRzcF90cmllOjpTdG9yYWdlUHJvb2YAAURkb3dud2FyZF9tZXNzYWdlc3EEAWxWZWM8SW5ib3VuZERvd253YXJkTWVzc2FnZT4AAUxob3Jpem9udGFsX21lc3NhZ2VzeQQBpEJUcmVlTWFwPFBhcmFJZCwgVmVjPEluYm91bmRIcm1wTWVzc2FnZT4+AAFgcmVsYXlfcGFyZW50X2Rlc2NlbmRhbnRzjQQBQFZlYzxSZWxheUhlYWRlcj4AAUBjb2xsYXRvcl9wZWVyX2lkoQQBWE9wdGlvbjxBcHByb3ZlZFBlZXJJZD4AAGEEDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4XFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhCARIASwETgEoABABLHBhcmVudF9oZWFkZQQBIEhlYWREYXRhAAFMcmVsYXlfcGFyZW50X251bWJlcigBBE4AAWRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290LAEESAABMG1heF9wb3Zfc2l6ZSgBDHUzMgAAZQQMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXMgSGVhZERhdGEAAAQAFAEcVmVjPHU4PgAAaQQMHHNwX3RyaWU0c3RvcmFnZV9wcm9vZjBTdG9yYWdlUHJvb2YAAAQBKHRyaWVfbm9kZXNtBAFEQlRyZWVTZXQ8VmVjPHU4Pj4AAG0EBCBCVHJlZVNldAQEVAEUAAQAJAAAAHEEAAACdQQAdQQIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc1hJbmJvdW5kRG93bndhcmRNZXNzYWdlBCxCbG9ja051bWJlcgEoAAgBHHNlbnRfYXQoASxCbG9ja051bWJlcgABDG1zZxQBPERvd253YXJkTWVzc2FnZQAAeQQEIEJUcmVlTWFwCARLAeAEVgF9BAAEAIUEAAAAfQQAAAKBBACBBAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBKAAIARxzZW50X2F0KAEsQmxvY2tOdW1iZXIAARBkYXRhFAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAAhQQAAAKJBACJBAAABAjgfQQAjQQAAAKRBACRBBAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgEoEEhhc2gAABQBLHBhcmVudF9oYXNoLAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVybAEYTnVtYmVyAAEoc3RhdGVfcm9vdCwBMEhhc2g6Ok91dHB1dAABPGV4dHJpbnNpY3Nfcm9vdCwBMEhhc2g6Ok91dHB1dAABGGRpZ2VzdJUEARhEaWdlc3QAAJUEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0GERpZ2VzdAAABAEQbG9nc5kEATxWZWM8RGlnZXN0SXRlbT4AAJkEAAACnQQAnQQQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QoRGlnZXN0SXRlbQABFChQcmVSdW50aW1lCAC4AURDb25zZW5zdXNFbmdpbmVJZAAAFAEcVmVjPHU4PgAGACRDb25zZW5zdXMIALgBRENvbnNlbnN1c0VuZ2luZUlkAAAUARxWZWM8dTg+AAQAEFNlYWwIALgBRENvbnNlbnN1c0VuZ2luZUlkAAAUARxWZWM8dTg+AAUAFE90aGVyBAAUARxWZWM8dTg+AAAAZFJ1bnRpbWVFbnZpcm9ubWVudFVwZGF0ZWQACAAAoQQEGE9wdGlvbgQEVAGFAwEIEE5vbmUAAAAQU29tZQQAhQMAAAEAAKUEDFhzdGFnaW5nX3BhcmFjaGFpbl9pbmZvGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkEDChwYWxsZXRfeGNtGHBhbGxldBBDYWxsBARUAAFEEHNlbmQIARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxtZXNzYWdl+QQBVEJveDxWZXJzaW9uZWRYY208KCk+PgAAADx0ZWxlcG9ydF9hc3NldHMQARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzMQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAAUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAB0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZWggIGZlZSBvbiB0aGUgYGRlc3RgIGNoYWluLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLlxyZXNlcnZlX3RyYW5zZmVyX2Fzc2V0cxABEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHMxBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbSgBDHUzMgACeF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWwseGRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLgA9AWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gYW5kIG1heSBub3QgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC5NASAtIGBhc3NldHNgIGhhdmUgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5VASAtIGBhc3NldHNgIGhhdmUgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLmEBIC0gYGFzc2V0c2AgaGF2ZSByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZWEBICAgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YPQgICB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuAD0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuHGV4ZWN1dGUIARxtZXNzYWdlNQYBtEJveDxWZXJzaW9uZWRYY208PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+PgABKG1heF93ZWlnaHTkARhXZWlnaHQAAyDQRXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSBmcm9tIGEgbG9jYWwsIHNpZ25lZCwgb3JpZ2luLgBNAUFuIGV2ZW50IGlzIGRlcG9zaXRlZCBpbmRpY2F0aW5nIHdoZXRoZXIgYG1zZ2AgY291bGQgYmUgZXhlY3V0ZWQgY29tcGxldGVseSBvciBvbmx5KHBhcnRpYWxseS4AXQFObyBtb3JlIHRoYW4gYG1heF93ZWlnaHRgIHdpbGwgYmUgdXNlZCBpbiBpdHMgYXR0ZW1wdGVkIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBsZXNzIHRoYW5BAXRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgdGhhdCB0aGUgbWVzc2FnZSBjb3VsZCB0YWtlIHRvIGJlIGV4ZWN1dGVkLCB0aGVuIG5vfGV4ZWN1dGlvbiBhdHRlbXB0IHdpbGwgYmUgbWFkZS5EZm9yY2VfeGNtX3ZlcnNpb24IASBsb2NhdGlvbpwBNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uKAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb250AUhPcHRpb248WGNtVmVyc2lvbj4ABRRZAVNldCBhIHNhZmUgWENNIHZlcnNpb24gKHRoZSB2ZXJzaW9uIHRoYXQgWENNIHNob3VsZCBiZSBlbmNvZGVkIHdpdGggaWYgdGhlIG1vc3QgcmVjZW50tHZlcnNpb24gYSBkZXN0aW5hdGlvbiBjYW4gYWNjZXB0IGlzIHVua25vd24pLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLjkBLSBgbWF5YmVfeGNtX3ZlcnNpb25gOiBUaGUgZGVmYXVsdCBYQ00gZW5jb2RpbmcgdmVyc2lvbiwgb3IgYE5vbmVgIHRvIGRpc2FibGUueGZvcmNlX3N1YnNjcmliZV92ZXJzaW9uX25vdGlmeQQBIGxvY2F0aW9urQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ABhA5AUFzayBhIGxvY2F0aW9uIHRvIG5vdGlmeSB1cyByZWdhcmRpbmcgdGhlaXIgWENNIHZlcnNpb24gYW5kIGFueSBjaGFuZ2VzIHRvIGl0LgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLlkBLSBgbG9jYXRpb25gOiBUaGUgbG9jYXRpb24gdG8gd2hpY2ggd2Ugc2hvdWxkIHN1YnNjcmliZSBmb3IgWENNIHZlcnNpb24gbm90aWZpY2F0aW9ucy6AZm9yY2VfdW5zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbq0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAcYSQFSZXF1aXJlIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIHNob3VsZCBubyBsb25nZXIgbm90aWZ5IHVzIHJlZ2FyZGluZyBhbnkgWENNQHZlcnNpb24gY2hhbmdlcy4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi49AS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgc3Vic2NyaWJlZCBmb3IgWENNIHZlcnNpb26oICBub3RpZmljYXRpb25zIHdoaWNoIHdlIG5vIGxvbmdlciBkZXNpcmUufGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMUARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzMQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQACHhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5cbGltaXRlZF90ZWxlcG9ydF9hc3NldHMUARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzMQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQACUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLCB1cCB0byBlbm91Z2ggdG8gcGF5IGZvciBgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLkBmb3JjZV9zdXNwZW5zaW9uBAEkc3VzcGVuZGVkRAEQYm9vbAAKEPRTZXQgb3IgdW5zZXQgdGhlIGdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u0C0gYHN1c3BlbmRlZGA6IGB0cnVlYCB0byBzdXNwZW5kLCBgZmFsc2VgIHRvIHJlc3VtZS48dHJhbnNmZXJfYXNzZXRzFAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmtBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0czEGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtKAEMdTMyAAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAuEXQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCzQZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUsIG9yIHRocm91Z2ggdGVsZXBvcnRzLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZjUBaW5kZXggYGZlZV9hc3NldF9pdGVtYCAoaGVuY2UgcmVmZXJyZWQgdG8gYXMgYGZlZXNgKSwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3JBAWB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHQgaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhl3G9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AYQFgYXNzZXRzYCAoZXhjbHVkaW5nIGBmZWVzYCkgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBvciBvdGhlcndpc2UgYmUgdGVsZXBvcnRhYmxlsHRvIGBkZXN0YCwgbm8gbGltaXRhdGlvbnMgaW1wb3NlZCBvbiBgZmVlc2AuTQEgLSBmb3IgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uIGNoYWluIGFuZE0BICAgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG9EICAgYGJlbmVmaWNpYXJ5YC5hASAtIGZvciBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0byBgZGVzdGAgY2hhaW5ZASAgIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmQgZGVwb3NpdCB0aGVtUCAgIHRvIGBiZW5lZmljaWFyeWAuXQEgLSBmb3IgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXNdASAgIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGAgdG8gbWludNQgICBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlEBIC0gZm9yIHRlbGVwb3J0czogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0byBtaW50L3RlbGVwb3J0sCAgIGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4tAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgWDIoUGFyZW50LFUBICBQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBYMShQYXJhY2hhaW4oLi4pKWAgdG8gc2VuZGggIGZyb20gcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5FAS0gYHdlaWdodF9saW1pdGA6IFRoZSByZW1vdGUtc2lkZSB3ZWlnaHQgbGltaXQsIGlmIGFueSwgZm9yIHRoZSBYQ00gZmVlIHB1cmNoYXNlLjBjbGFpbV9hc3NldHMIARhhc3NldHMxBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AASxiZW5lZmljaWFyea0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAwYVQFDbGFpbXMgYXNzZXRzIHRyYXBwZWQgb24gdGhpcyBwYWxsZXQgYmVjYXVzZSBvZiBsZWZ0b3ZlciBhc3NldHMgZHVyaW5nIFhDTSBleGVjdXRpb24uAKwtIGBvcmlnaW5gOiBBbnlvbmUgY2FuIGNhbGwgdGhpcyBleHRyaW5zaWMuXQEtIGBhc3NldHNgOiBUaGUgZXhhY3QgYXNzZXRzIHRoYXQgd2VyZSB0cmFwcGVkLiBVc2UgdGhlIHZlcnNpb24gdG8gc3BlY2lmeSB3aGF0IHZlcnNpb26Yd2FzIHRoZSBsYXRlc3Qgd2hlbiB0aGV5IHdlcmUgdHJhcHBlZC5FAS0gYGJlbmVmaWNpYXJ5YDogVGhlIGxvY2F0aW9uL2FjY291bnQgd2hlcmUgdGhlIGNsYWltZWQgYXNzZXRzIHdpbGwgYmUgZGVwb3NpdGVkLox0cmFuc2Zlcl9hc3NldHNfdXNpbmdfdHlwZV9hbmRfdGhlbhwBEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0czEGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABUGFzc2V0c190cmFuc2Zlcl90eXBlYQYBREJveDxUcmFuc2ZlclR5cGU+AAE4cmVtb3RlX2ZlZXNfaWRlBgFUQm94PFZlcnNpb25lZEFzc2V0SWQ+AAFIZmVlc190cmFuc2Zlcl90eXBlYQYBREJveDxUcmFuc2ZlclR5cGU+AAFIY3VzdG9tX3hjbV9vbl9kZXN0+QQBVEJveDxWZXJzaW9uZWRYY208KCk+PgABMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAANwFUBVHJhbnNmZXIgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB1c2luZyBleHBsaWNpdCB0cmFuc2Zlcmh0eXBlcyBmb3IgYXNzZXRzIGFuZCBmZWVzLgBZAWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3IgbWF5IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuIENhbGxlciBtdXN07HByb3ZpZGUgdGhlIGBhc3NldHNfdHJhbnNmZXJfdHlwZWAgdG8gYmUgdXNlZCBmb3IgYGFzc2V0c2A6UQEgLSBgVHJhbnNmZXJUeXBlOjpMb2NhbFJlc2VydmVgOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6RGVzdGluYXRpb25SZXNlcnZlYDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLlkBIC0gYFRyYW5zZmVyVHlwZTo6UmVtb3RlUmVzZXJ2ZShyZXNlcnZlKWA6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byBgcmVzZXJ2ZWBhASAgIGNoYWluIHRvIG1vdmUgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXJVASAgIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLiBUeXBpY2FsbHmUICAgdGhlIHJlbW90ZSBgcmVzZXJ2ZWAgaXMgQXNzZXQgSHViLkUBIC0gYFRyYW5zZmVyVHlwZTo6VGVsZXBvcnRgOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBYQ00gdG8gYGRlc3RgIGNoYWluIHRv6CAgIG1pbnQvdGVsZXBvcnQgYXNzZXRzIGFuZCBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC4AVQFPbiB0aGUgZGVzdGluYXRpb24gY2hhaW4sIGFzIHdlbGwgYXMgYW55IGludGVybWVkaWFyeSBob3BzLCBgQnV5RXhlY3V0aW9uYCBpcyB1c2VkIHRvIQFidXkgZXhlY3V0aW9uIHVzaW5nIHRyYW5zZmVycmVkIGBhc3NldHNgIGlkZW50aWZpZWQgYnkgYHJlbW90ZV9mZWVzX2lkYC5ZAU1ha2Ugc3VyZSBlbm91Z2ggb2YgdGhlIHNwZWNpZmllZCBgcmVtb3RlX2ZlZXNfaWRgIGFzc2V0IGlzIGluY2x1ZGVkIGluIHRoZSBnaXZlbiBsaXN0YQFvZiBgYXNzZXRzYC4gYHJlbW90ZV9mZWVzX2lkYCBzaG91bGQgYmUgZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAuIElmIG1vcmUgd2VpZ2h0WQFpcyBuZWVkZWQgdGhhbiBgd2VpZ2h0X2xpbWl0YCwgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCBhbmQgdGhlIHNlbnQgYXNzZXRzIG1heSBiZSBhdCByaXNrLgBFAWByZW1vdGVfZmVlc19pZGAgbWF5IHVzZSBkaWZmZXJlbnQgdHJhbnNmZXIgdHlwZSB0aGFuIHJlc3Qgb2YgYGFzc2V0c2AgYW5kIGNhbiBiZZxzcGVjaWZpZWQgdGhyb3VnaCBgZmVlc190cmFuc2Zlcl90eXBlYC4AYQFUaGUgY2FsbGVyIG5lZWRzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgaGFwcGVuIHRvIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMgb25jZSB0aGV5IHJlYWNoQQF0aGUgYGRlc3RgIGNoYWluLiBUaGlzIGlzIGRvbmUgdGhyb3VnaCB0aGUgYGN1c3RvbV94Y21fb25fZGVzdGAgcGFyYW1ldGVyLCB3aGljaPxjb250YWlucyB0aGUgaW5zdHJ1Y3Rpb25zIHRvIGV4ZWN1dGUgb24gYGRlc3RgIGFzIGEgZmluYWwgc3RlcC58ICBUaGlzIGlzIHVzdWFsbHkgYXMgc2ltcGxlIGFzOlEBICBgWGNtKHZlYyFbRGVwb3NpdEFzc2V0IHsgYXNzZXRzOiBXaWxkKEFsbENvdW50ZWQoYXNzZXRzLmxlbigpKSksIGJlbmVmaWNpYXJ5IH1dKWAsMQEgIGJ1dCBjb3VsZCBiZSBzb21ldGhpbmcgbW9yZSBleG90aWMgbGlrZSBzZW5kaW5nIHRoZSBgYXNzZXRzYCBldmVuIGZ1cnRoZXIuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb209ASAgcmVsYXkgdG8gcGFyYWNoYWluLCBvciBgKHBhcmVudHM6IDIsIChHbG9iYWxDb25zZW5zdXMoLi4pLCAuLikpYCB0byBzZW5kIGZyb230ICBwYXJhY2hhaW4gYWNyb3NzIGEgYnJpZGdlIHRvIGFub3RoZXIgZWNvc3lzdGVtIGRlc3RpbmF0aW9uLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy49AS0gYGFzc2V0c190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgYXNzZXRzYC4hAS0gYHJlbW90ZV9mZWVzX2lkYDogT25lIG9mIHRoZSBpbmNsdWRlZCBgYXNzZXRzYCB0byBiZSB1c2VkIHRvIHBheSBmZWVzLkkBLSBgZmVlc190cmFuc2Zlcl90eXBlYDogVGhlIFhDTSBgVHJhbnNmZXJUeXBlYCB1c2VkIHRvIHRyYW5zZmVyIHRoZSBgZmVlc2AgYXNzZXRzLlkBLSBgY3VzdG9tX3hjbV9vbl9kZXN0YDogVGhlIFhDTSB0byBiZSBleGVjdXRlZCBvbiBgZGVzdGAgY2hhaW4gYXMgdGhlIGxhc3Qgc3RlcCBvZiB0aGVZASAgdHJhbnNmZXIsIHdoaWNoIGFsc28gZGV0ZXJtaW5lcyB3aGF0IGhhcHBlbnMgdG8gdGhlIGFzc2V0cyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5QYWRkX2F1dGhvcml6ZWRfYWxpYXMIARxhbGlhc2VyrQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxleHBpcmVzWQMBLE9wdGlvbjx1NjQ+AA4sXQFBdXRob3JpemUgYW5vdGhlciBgYWxpYXNlcmAgbG9jYXRpb24gdG8gYWxpYXMgaW50byB0aGUgbG9jYWwgYG9yaWdpbmAgbWFraW5nIHRoaXMgY2FsbC4pAVRoZSBgYWxpYXNlcmAgaXMgb25seSBhdXRob3JpemVkIHVudGlsIHRoZSBwcm92aWRlZCBgZXhwaXJ5YCBibG9jayBudW1iZXIuSQFUaGUgY2FsbCBjYW4gYWxzbyBiZSB1c2VkIGZvciBhIHByZXZpb3VzbHkgYXV0aG9yaXplZCBhbGlhcyBpbiBvcmRlciB0byB1cGRhdGUgaXRzWGBleHBpcnlgIGJsb2NrIG51bWJlci4AUQFVc3VhbGx5IHVzZWZ1bCB0byBhbGxvdyB5b3VyIGxvY2FsIGFjY291bnQgdG8gYmUgYWxpYXNlZCBpbnRvIGZyb20gYSByZW1vdGUgbG9jYXRpb270YWxzbyB1bmRlciB5b3VyIGNvbnRyb2wgKGxpa2UgeW91ciBhY2NvdW50IG9uIGFub3RoZXIgY2hhaW4pLgBRAVdBUk5JTkc6IG1ha2Ugc3VyZSB0aGUgY2FsbGVyIGBvcmlnaW5gICh5b3UpIHRydXN0cyB0aGUgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFjdCBpblkBdGhlaXIveW91ciBuYW1lLiBPbmNlIGF1dGhvcml6ZWQgdXNpbmcgdGhpcyBjYWxsLCB0aGUgYGFsaWFzZXJgIGNhbiBmcmVlbHkgaW1wZXJzb25hdGXUYG9yaWdpbmAgaW4gWENNIHByb2dyYW1zIGV4ZWN1dGVkIG9uIHRoZSBsb2NhbCBjaGFpbi5ccmVtb3ZlX2F1dGhvcml6ZWRfYWxpYXMEARxhbGlhc2VyrQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4ADwhdAVJlbW92ZSBhIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmAgZnJvbSB0aGUgbGlzdCBvZiBsb2NhdGlvbnMgdGhhdCBjYW4gYWxpYXMgaW50b5B0aGUgbG9jYWwgYG9yaWdpbmAgbWFraW5nIHRoaXMgY2FsbC50cmVtb3ZlX2FsbF9hdXRob3JpemVkX2FsaWFzZXMAEAhJAVJlbW92ZSBhbGwgcHJldmlvdXNseSBhdXRob3JpemVkIGBhbGlhc2VyYHMgdGhhdCBjYW4gYWxpYXMgaW50byB0aGUgbG9jYWwgYG9yaWdpbmBEbWFraW5nIHRoaXMgY2FsbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMurQQIDHhjbURWZXJzaW9uZWRMb2NhdGlvbgABDAhWMwQAsQQBRHYzOjpNdWx0aUxvY2F0aW9uAAMACFY0BADFBAEwdjQ6OkxvY2F0aW9uAAQACFY1BACcATB2NTo6TG9jYXRpb24ABQAAsQQQLHN0YWdpbmdfeGNtCHYzNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3K1BAEkSnVuY3Rpb25zAAC1BBAMeGNtCHYzJGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAuQQBIEp1bmN0aW9uAAEACFgyCAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgACAAhYMwwAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgADAAhYNBAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAQACFg1FAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAFAAhYNhgAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAGAAhYNxwAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAcACFg4IAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAIAAC5BBAMeGNtCHYzIGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQAbAEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya70EAURPcHRpb248TmV0d29ya0lkPgABCGlkBAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JrvQQBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXg0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya70EAURPcHRpb248TmV0d29ya0lkPgABDGtleVwBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEADwBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YQQBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZLQBGEJvZHlJZAABEHBhcnS8ASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAMEEASROZXR3b3JrSWQACQAAvQQEGE9wdGlvbgQEVAHBBAEIEE5vbmUAAAAQU29tZQQAwQQAAAEAAMEEEAx4Y20IdjMganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyGAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZDQBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAMUEECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3LJBAEkSnVuY3Rpb25zAADJBBAsc3RhZ2luZ194Y20IdjQkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBADNBAFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBADdBAFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBADhBAFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BADlBAFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BADpBAFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BADtBAFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BADxBAFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BAD1BAFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAM0EAAADAQAAANEEANEEECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAGwBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmvVBAFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya9UEAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4NAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmvVBAFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXlcASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAA8ARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWS0ARhCb2R5SWQAARBwYXJ0vAEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBADZBAEkTmV0d29ya0lkAAkAANUEBBhPcHRpb24EBFQB2QQBCBBOb25lAAAAEFNvbWUEANkEAAABAADZBBAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyGAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZDQBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAN0EAAADAgAAANEEAOEEAAADAwAAANEEAOUEAAADBAAAANEEAOkEAAADBQAAANEEAO0EAAADBgAAANEEAPEEAAADBwAAANEEAPUEAAADCAAAANEEAPkECAx4Y20wVmVyc2lvbmVkWGNtBCxSdW50aW1lQ2FsbAABDAhWMwQA/QQBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BABpBQFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAIVjUEALUFAVB2NTo6WGNtPFJ1bnRpbWVDYWxsPgAFAAD9BAwMeGNtCHYzDFhjbQQQQ2FsbAAABAABBQFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAAQUAAAIFBQAFBQwMeGNtCHYzLEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAAkFASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAAkFASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAJBQEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABIHJlc3BvbnNlIQUBIFJlc3BvbnNlAAEobWF4X3dlaWdodOQBGFdlaWdodAABHHF1ZXJpZXJJBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMJBQEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyebEEATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzCQUBLE11bHRpQXNzZXRzAAEQZGVzdLEEATRNdWx0aUxvY2F0aW9uAAEMeGNt/QQBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZE0FAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdOQBGFdlaWdodAABEGNhbGxRBQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAC1BAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABVBQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyebEEATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3SxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlWQUBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50CQUBLE11bHRpQXNzZXRzAAEcbWF4aW1hbEQBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmWxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3SxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvVQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlcxEFAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAD9BAEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAD9BAEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cwkFASxNdWx0aUFzc2V0cwABGHRpY2tldLEEATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAJBQEsTXVsdGlBc3NldHMAHAAsRXhwZWN0QXNzZXQEAAkFASxNdWx0aUFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAEkFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACUFAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAQQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb1UFAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAFUFAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAuQQBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrwQQBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9utQQBVEludGVyaW9yTXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0EQUBKE11bHRpQXNzZXQAASB1bmxvY2tlcrEEATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQRBQEoTXVsdGlBc3NldAABGHRhcmdldLEEATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXQRBQEoTXVsdGlBc3NldAABFG93bmVysQQBNE11bHRpTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0EQUBKE11bHRpQXNzZXQAARhsb2NrZXKxBAE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EALEEATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkkFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAACQUQDHhjbQh2MyhtdWx0aWFzc2V0LE11bHRpQXNzZXRzAAAEAA0FATxWZWM8TXVsdGlBc3NldD4AAA0FAAACEQUAEQUQDHhjbQh2MyhtdWx0aWFzc2V0KE11bHRpQXNzZXQAAAgBCGlkFQUBHEFzc2V0SWQAAQxmdW4ZBQEsRnVuZ2liaWxpdHkAABUFEAx4Y20IdjMobXVsdGlhc3NldBxBc3NldElkAAEIIENvbmNyZXRlBACxBAE0TXVsdGlMb2NhdGlvbgAAACBBYnN0cmFjdAQABAEgW3U4OyAzMl0AAQAAGQUQDHhjbQh2MyhtdWx0aWFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAA8ARB1MTI4AAAALE5vbkZ1bmdpYmxlBAAdBQE0QXNzZXRJbnN0YW5jZQABAAAdBRAMeGNtCHYzKG11bHRpYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEADwBEHUxMjgAAQAYQXJyYXk0BAC4ARxbdTg7IDRdAAIAGEFycmF5OAQAIQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAQQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAACEFDAx4Y20IdjMgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAAkFASxNdWx0aUFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEACUFAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAoAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAMQUBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BABBBQE4TWF5YmVFcnJvckNvZGUABQAAJQUEGE9wdGlvbgQEVAEpBQEIEE5vbmUAAAAQU29tZQQAKQUAAAEAACkFAAAECCgtBQAtBRAMeGNtCHYzGHRyYWl0cxRFcnJvcgABoCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAYAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgBMVW5oYW5kbGVkWGNtVmVyc2lvbgAjAEhXZWlnaHRMaW1pdFJlYWNoZWQEAOQBGFdlaWdodAAkABxCYXJyaWVyACUATFdlaWdodE5vdENvbXB1dGFibGUAJgBERXhjZWVkc1N0YWNrTGltaXQAJwAAMQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE1BQRTAAAEAD0FARhWZWM8VD4AADUFDAx4Y20IdjMoUGFsbGV0SW5mbwAAGAEUaW5kZXhsAQx1MzIAARBuYW1lOQUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWU5BQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmwBDHUzMgABFG1pbm9ybAEMdTMyAAEUcGF0Y2hsAQx1MzIAADkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAPQUAAAI1BQBBBQwMeGNtCHYzOE1heWJlRXJyb3JDb2RlAAEMHFN1Y2Nlc3MAAAAURXJyb3IEAEUFAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgABADhUcnVuY2F0ZWRFcnJvcgQARQUBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAIAAEUFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAASQUEGE9wdGlvbgQEVAGxBAEIEE5vbmUAAAAQU29tZQQAsQQAAAEAAE0FDAx4Y20IdjMoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAAFEFDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBQBHFZlYzx1OD4AAFUFDAx4Y20IdjNEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9usQQBNE11bHRpTG9jYXRpb24AASBxdWVyeV9pZDQBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AABZBRAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQACQUBLE11bHRpQXNzZXRzAAAAEFdpbGQEAF0FAThXaWxkTXVsdGlBc3NldAABAABdBRAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWQVBQEcQXNzZXRJZAABDGZ1bmEFATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAbAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkFQUBHEFzc2V0SWQAAQxmdW5hBQE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRsAQx1MzIAAwAAYQUQDHhjbQh2MyhtdWx0aWFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAABlBQwMeGNtCHYzLFdlaWdodExpbWl0AAEIJFVubGltaXRlZAAAABxMaW1pdGVkBADkARhXZWlnaHQAAQAAaQUMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABABtBQFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAbQUAAAJxBQBxBQwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAdQUBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAHUFARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAdQUBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEgcmVzcG9uc2WNBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAEccXVlcmllcqEFAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHN1BQEYQXNzZXRzAAEsYmVuZWZpY2lhcnnFBAEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHN1BQEYQXNzZXRzAAEQZGVzdMUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRNBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3TkARhXZWlnaHQAARBjYWxsUQUBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAyQQBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAKUFAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHOpBQEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyecUEASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyAAEQZGVzdMUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlqQUBLEFzc2V0RmlsdGVyAAEQd2FudHUFARhBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c6kFASxBc3NldEZpbHRlcgABHHJlc2VydmXFBAEgTG9jYXRpb24AAQx4Y21pBQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyAAEQZGVzdMUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvpQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXN9BQEUQXNzZXQAATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAGkFASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAGkFASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzdQUBGEFzc2V0cwABGHRpY2tldMUEASBMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAdQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAdQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAKEFAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAAlBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAEEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+lBQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAClBQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EANEEASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya9kEASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbskEAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtaQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXR9BQEUQXNzZXQAASB1bmxvY2tlcsUEASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0fQUBFEFzc2V0AAEYdGFyZ2V0xQQBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXR9BQEUQXNzZXQAARRvd25lcsUEASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXR9BQEUQXNzZXQAARhsb2NrZXLFBAEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXdEARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADFBAEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luoQUBQE9wdGlvbjxMb2NhdGlvbj4ALwAAdQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0GEFzc2V0cwAABAB5BQEoVmVjPEFzc2V0PgAAeQUAAAJ9BQB9BRAsc3RhZ2luZ194Y20IdjQUYXNzZXQUQXNzZXQAAAgBCGlkgQUBHEFzc2V0SWQAAQxmdW6FBQEsRnVuZ2liaWxpdHkAAIEFECxzdGFnaW5nX3hjbQh2NBRhc3NldBxBc3NldElkAAAEAMUEASBMb2NhdGlvbgAAhQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAA8ARB1MTI4AAAALE5vbkZ1bmdpYmxlBACJBQE0QXNzZXRJbnN0YW5jZQABAACJBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEADwBEHUxMjgAAQAYQXJyYXk0BAC4ARxbdTg7IDRdAAIAGEFycmF5OAQAIQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAQQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAAI0FDCxzdGFnaW5nX3hjbQh2NCBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAdQUBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEACUFAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAoAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAkQUBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BABBBQE4TWF5YmVFcnJvckNvZGUABQAAkQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVBQRTAAAEAJ0FARhWZWM8VD4AAJUFDCxzdGFnaW5nX3hjbQh2NChQYWxsZXRJbmZvAAAYARRpbmRleGwBDHUzMgABEG5hbWWZBQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZZkFAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9ybAEMdTMyAAEUbWlub3JsAQx1MzIAARRwYXRjaGwBDHUzMgAAmQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACdBQAAApUFAKEFBBhPcHRpb24EBFQBxQQBCBBOb25lAAAAEFNvbWUEAMUEAAABAAClBQwsc3RhZ2luZ194Y20IdjREUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9uxQQBIExvY2F0aW9uAAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEobWF4X3dlaWdodOQBGFdlaWdodAAAqQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBAB1BQEYQXNzZXRzAAAAEFdpbGQEAK0FASRXaWxkQXNzZXQAAQAArQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZIEFARxBc3NldElkAAEMZnVusQUBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBABsAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWSBBQEcQXNzZXRJZAABDGZ1brEFATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudGwBDHUzMgADAACxBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAALUFDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQAuQUBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AALkFAAACvQUAvQUMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAMEFARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBADBBQEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAMEFARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABIHJlc3BvbnNl2QUBIFJlc3BvbnNlAAEobWF4X3dlaWdodOQBGFdlaWdodAABHHF1ZXJpZXL5BQFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzwQUBGEFzc2V0cwABLGJlbmVmaWNpYXJ5nAEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHPBBQEYQXNzZXRzAAEQZGVzdJwBIExvY2F0aW9uAAEMeGNttQUBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZE0FAShPcmlnaW5LaW5kAAFMZmFsbGJhY2tfbWF4X3dlaWdodP0FAThPcHRpb248V2VpZ2h0PgABEGNhbGxRBQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBACgAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAABBgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzBQYBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnmcASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzBQYBLEFzc2V0RmlsdGVyAAEQZGVzdJwBIExvY2F0aW9uAAEMeGNttQUBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmUFBgEsQXNzZXRGaWx0ZXIAARB3YW50wQUBGEFzc2V0cwABHG1heGltYWxEARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzBQYBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZZwBIExvY2F0aW9uAAEMeGNttQUBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABEGRlc3ScASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvAQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzBQYBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPJBQEUQXNzZXQAATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEALUFASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEALUFASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzwQUBGEFzc2V0cwABGHRpY2tldJwBIExvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BADBBQEYQXNzZXRzABwALEV4cGVjdEFzc2V0BADBBQEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQA+QUBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAN0FAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAQQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mbwEGAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAAEGAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAqAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmuwASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbqABQEludGVyaW9yTG9jYXRpb24AAQx4Y221BQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldMkFARRBc3NldAABIHVubG9ja2VynAEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldMkFARRBc3NldAABGHRhcmdldJwBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXTJBQEUQXNzZXQAARRvd25lcpwBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldMkFARRBc3NldAABGGxvY2tlcpwBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3RAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAnAEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lu+QUBQE9wdGlvbjxMb2NhdGlvbj4ALwAcUGF5RmVlcwQBFGFzc2V0yQUBFEFzc2V0ADAAQEluaXRpYXRlVHJhbnNmZXIUASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEscmVtb3RlX2ZlZXMRBgFsT3B0aW9uPEFzc2V0VHJhbnNmZXJGaWx0ZXI+AAE8cHJlc2VydmVfb3JpZ2luRAEQYm9vbAABGGFzc2V0cxkGAeBCb3VuZGVkVmVjPEFzc2V0VHJhbnNmZXJGaWx0ZXIsIE1heEFzc2V0VHJhbnNmZXJGaWx0ZXJzPgABKHJlbW90ZV94Y221BQEcWGNtPCgpPgAxAERFeGVjdXRlV2l0aE9yaWdpbggBRGRlc2NlbmRhbnRfb3JpZ2luIQYBYE9wdGlvbjxJbnRlcmlvckxvY2F0aW9uPgABDHhjbbUFASRYY208Q2FsbD4AMgAgU2V0SGludHMEARRoaW50cyUGAYRCb3VuZGVkVmVjPEhpbnQsIEhpbnROdW1WYXJpYW50cz4AMwAAwQUQLHN0YWdpbmdfeGNtCHY1FGFzc2V0GEFzc2V0cwAABADFBQEoVmVjPEFzc2V0PgAAxQUAAALJBQDJBRAsc3RhZ2luZ194Y20IdjUUYXNzZXQUQXNzZXQAAAgBCGlkzQUBHEFzc2V0SWQAAQxmdW7RBQEsRnVuZ2liaWxpdHkAAM0FECxzdGFnaW5nX3hjbQh2NRRhc3NldBxBc3NldElkAAAEAJwBIExvY2F0aW9uAADRBRAsc3RhZ2luZ194Y20IdjUUYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEADwBEHUxMjgAAAAsTm9uRnVuZ2libGUEANUFATRBc3NldEluc3RhbmNlAAEAANUFECxzdGFnaW5nX3hjbQh2NRRhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQAPAEQdTEyOAABABhBcnJheTQEALgBHFt1ODsgNF0AAgAYQXJyYXk4BAAhAQEcW3U4OyA4XQADABxBcnJheTE2BABBAQEgW3U4OyAxNl0ABAAcQXJyYXkzMgQABAEgW3U4OyAzMl0ABQAA2QUMLHN0YWdpbmdfeGNtCHY1IFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBADBBQEYQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQA3QUBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EACgBOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBADpBQGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAEEFAThNYXliZUVycm9yQ29kZQAFAADdBQQYT3B0aW9uBARUAeEFAQgQTm9uZQAAABBTb21lBADhBQAAAQAA4QUAAAQIKOUFAOUFEAx4Y20IdjUYdHJhaXRzFEVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAEABgBDHU2NAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiADRUb29NYW55QXNzZXRzACMATFVuaGFuZGxlZFhjbVZlcnNpb24AJABIV2VpZ2h0TGltaXRSZWFjaGVkBADkARhXZWlnaHQAJQAcQmFycmllcgAmAExXZWlnaHROb3RDb21wdXRhYmxlACcAREV4Y2VlZHNTdGFja0xpbWl0ACgAAOkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB7QUEUwAABAD1BQEYVmVjPFQ+AADtBQwsc3RhZ2luZ194Y20IdjUoUGFsbGV0SW5mbwAAGAEUaW5kZXhsAQx1MzIAARBuYW1l8QUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWXxBQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmwBDHUzMgABFG1pbm9ybAEMdTMyAAEUcGF0Y2hsAQx1MzIAAPEFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAA9QUAAALtBQD5BQQYT3B0aW9uBARUAZwBCBBOb25lAAAAEFNvbWUEAJwAAAEAAP0FBBhPcHRpb24EBFQB5AEIEE5vbmUAAAAQU29tZQQA5AAAAQAAAQYMLHN0YWdpbmdfeGNtCHY1RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEobWF4X3dlaWdodOQBGFdlaWdodAAABQYQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBADBBQEYQXNzZXRzAAAAEFdpbGQEAAkGASRXaWxkQXNzZXQAAQAACQYQLHN0YWdpbmdfeGNtCHY1FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZM0FARxBc3NldElkAAEMZnVuDQYBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBABsAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWTNBQEcQXNzZXRJZAABDGZ1bg0GATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudGwBDHUzMgADAAANBhAsc3RhZ2luZ194Y20IdjUUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAABEGBBhPcHRpb24EBFQBFQYBCBBOb25lAAAAEFNvbWUEABUGAAABAAAVBhAsc3RhZ2luZ194Y20IdjUUYXNzZXRMQXNzZXRUcmFuc2ZlckZpbHRlcgABDCBUZWxlcG9ydAQABQYBLEFzc2V0RmlsdGVyAAAAOFJlc2VydmVEZXBvc2l0BAAFBgEsQXNzZXRGaWx0ZXIAAQA8UmVzZXJ2ZVdpdGhkcmF3BAAFBgEsQXNzZXRGaWx0ZXIAAgAAGQYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEVBgRTAAAEAB0GARhWZWM8VD4AAB0GAAACFQYAIQYEGE9wdGlvbgQEVAGgAQgQTm9uZQAAABBTb21lBACgAAABAAAlBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASkGBFMAAAQALQYBGFZlYzxUPgAAKQYMLHN0YWdpbmdfeGNtCHY1EEhpbnQAAQQwQXNzZXRDbGFpbWVyBAEgbG9jYXRpb26cASBMb2NhdGlvbgAAAAAtBgAAAikGADEGCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYzBAAJBQE8djM6Ok11bHRpQXNzZXRzAAMACFY0BAB1BQEodjQ6OkFzc2V0cwAEAAhWNQQAwQUBKHY1OjpBc3NldHMABQAANQYIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYzBAA5BgFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEAEkGAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAAhWNQQAVQYBUHY1OjpYY208UnVudGltZUNhbGw+AAUAADkGDAx4Y20IdjMMWGNtBBBDYWxsAAAEAD0GAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAA9BgAAAkEGAEEGDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQACQUBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQACQUBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAAkFASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEgcmVzcG9uc2UhBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAEccXVlcmllckkFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cwkFASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5sQQBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMJBQEsTXVsdGlBc3NldHMAARBkZXN0sQQBNE11bHRpTG9jYXRpb24AAQx4Y239BAEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kTQUBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N05AEYV2VpZ2h0AAEQY2FsbEUGAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJsAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplbAEMdTMyAAEwbWF4X2NhcGFjaXR5bAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRsAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9ybAEMdTMyAAEYc2VuZGVybAEMdTMyAAEkcmVjaXBpZW50bAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EALUEAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAFUFAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5sQQBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c1kFAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdLEEATRNdWx0aUxvY2F0aW9uAAEMeGNt/QQBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmVZBQFATXVsdGlBc3NldEZpbHRlcgABEHdhbnQJBQEsTXVsdGlBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c1kFAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZbEEATRNdWx0aUxvY2F0aW9uAAEMeGNt/QQBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c1kFAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdLEEATRNdWx0aUxvY2F0aW9uAAEMeGNt/QQBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm9VBQFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzEQUBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEADkGASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEADkGASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzCQUBLE11bHRpQXNzZXRzAAEYdGlja2V0sQQBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQANAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZDQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h05AEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAAkFASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQACQUBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQASQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAJQUBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABBBQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvVQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4bAEMdTMyAAEQbmFtZRQBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmwBDHUzMgABPG1pbl9jcmF0ZV9taW5vcmwBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAVQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAC5BAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmvBBAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb261BAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNt/QQBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXQRBQEoTXVsdGlBc3NldAABIHVubG9ja2VysQQBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldBEFAShNdWx0aUFzc2V0AAEYdGFyZ2V0sQQBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldBEFAShNdWx0aUFzc2V0AAEUb3duZXKxBAE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXQRBQEoTXVsdGlBc3NldAABGGxvY2tlcrEEATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3RAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAsQQBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luSQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAABFBgwMeGNtOGRvdWJsZV9lbmNvZGVkNERvdWJsZUVuY29kZWQEBFQAAAQBHGVuY29kZWQUARxWZWM8dTg+AABJBgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEAE0GAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AABNBgAAAlEGAFEGDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAB1BQEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAdQUBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAB1BQEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZDQBHFF1ZXJ5SWQAASByZXNwb25zZY0FASBSZXNwb25zZQABKG1heF93ZWlnaHTkARhXZWlnaHQAARxxdWVyaWVyoQUBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c3UFARhBc3NldHMAASxiZW5lZmljaWFyecUEASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c3UFARhBc3NldHMAARBkZXN0xQQBIExvY2F0aW9uAAEMeGNtaQUBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZE0FAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdOQBGFdlaWdodAABEGNhbGxFBgFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBADJBAFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQApQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c6kFASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5xQQBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHOpBQEsQXNzZXRGaWx0ZXIAARBkZXN0xQQBIExvY2F0aW9uAAEMeGNtaQUBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWpBQEsQXNzZXRGaWx0ZXIAARB3YW50dQUBGEFzc2V0cwABHG1heGltYWxEARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZcUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOpBQEsQXNzZXRGaWx0ZXIAARBkZXN0xQQBIExvY2F0aW9uAAEMeGNtaQUBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm+lBQFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHOpBQEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc30FARRBc3NldAABMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQASQYBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQASQYBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHN1BQEYQXNzZXRzAAEYdGlja2V0xQQBIExvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAB1BQEYQXNzZXRzABwALEV4cGVjdEFzc2V0BAB1BQEYQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAoQUBQE9wdGlvbjxMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACUFAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAQQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb6UFAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAKUFAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQA0QQBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr2QQBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uyQQBQEludGVyaW9yTG9jYXRpb24AAQx4Y21pBQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldH0FARRBc3NldAABIHVubG9ja2VyxQQBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXR9BQEUQXNzZXQAARh0YXJnZXTFBAEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldH0FARRBc3NldAABFG93bmVyxQQBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldH0FARRBc3NldAABGGxvY2tlcsUEASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAMUEASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW6hBQFAT3B0aW9uPExvY2F0aW9uPgAvAABVBgwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEAFkGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AABZBgAAAl0GAF0GDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BADBBQEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAwQUBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BADBBQEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZDQBHFF1ZXJ5SWQAASByZXNwb25zZdkFASBSZXNwb25zZQABKG1heF93ZWlnaHTkARhXZWlnaHQAARxxdWVyaWVy+QUBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c8EFARhBc3NldHMAASxiZW5lZmljaWFyeZwBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzwQUBGEFzc2V0cwABEGRlc3ScASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRNBQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHT9BQE4T3B0aW9uPFdlaWdodD4AARBjYWxsRQYBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAoAFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAAQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5nAEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABEGRlc3ScASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlBQYBLEFzc2V0RmlsdGVyAAEQd2FudMEFARhBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABHHJlc2VydmWcASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMFBgEsQXNzZXRGaWx0ZXIAARBkZXN0nAEgTG9jYXRpb24AAQx4Y221BQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mbwEGAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cwUGASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzyQUBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABVBgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABVBgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c8EFARhBc3NldHMAARh0aWNrZXScASBMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAwQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAwQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAPkFAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADdBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAEEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm8BBgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAABBgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAKgBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrsAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26gAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNttQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXTJBQEUQXNzZXQAASB1bmxvY2tlcpwBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXTJBQEUQXNzZXQAARh0YXJnZXScASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0yQUBFEFzc2V0AAEUb3duZXKcASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXTJBQEUQXNzZXQAARhsb2NrZXKcASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAJwBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbvkFAUBPcHRpb248TG9jYXRpb24+AC8AHFBheUZlZXMEARRhc3NldMkFARRBc3NldAAwAEBJbml0aWF0ZVRyYW5zZmVyFAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzEQYBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbkQBEGJvb2wAARhhc3NldHMZBgHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNttQUBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbiEGAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y21VBgEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHMlBgGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAGEGEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQArQQBRFZlcnNpb25lZExvY2F0aW9uAAMAAGUGCAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABDAhWMwQAFQUBLHYzOjpBc3NldElkAAMACFY0BACBBQEsdjQ6OkFzc2V0SWQABAAIVjUEAM0FASx2NTo6QXNzZXRJZAAFAABpBgxIY3VtdWx1c19wYWxsZXRfeGNtGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLm0GDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQQQ2FsbAQEVAABCCRyZWFwX3BhZ2UIAThtZXNzYWdlX29yaWdpbnEGAUhNZXNzYWdlT3JpZ2luT2Y8VD4AAShwYWdlX2luZGV4KAEkUGFnZUluZGV4AAAEPQFSZW1vdmUgYSBwYWdlIHdoaWNoIGhhcyBubyBtb3JlIG1lc3NhZ2VzIHJlbWFpbmluZyB0byBiZSBwcm9jZXNzZWQgb3IgaXMgc3RhbGUuSGV4ZWN1dGVfb3ZlcndlaWdodBABOG1lc3NhZ2Vfb3JpZ2lucQYBSE1lc3NhZ2VPcmlnaW5PZjxUPgABEHBhZ2UoASRQYWdlSW5kZXgAARRpbmRleCgBHFQ6OlNpemUAATB3ZWlnaHRfbGltaXTkARhXZWlnaHQAATR4RXhlY3V0ZSBhbiBvdmVyd2VpZ2h0IG1lc3NhZ2UuAE0BVGVtcG9yYXJ5IHByb2Nlc3NpbmcgZXJyb3JzIHdpbGwgYmUgcHJvcGFnYXRlZCB3aGVyZWFzIHBlcm1hbmVudCBlcnJvcnMgYXJlIHRyZWF0ZWRUYXMgc3VjY2VzcyBjb25kaXRpb24uAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLjUBLSBgbWVzc2FnZV9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgYXJyaXZlZC49AS0gYHBhZ2VgOiBUaGUgcGFnZSBpbiB0aGUgcXVldWUgaW4gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgaXMgc2l0dGluZy4JAS0gYGluZGV4YDogVGhlIGluZGV4IGludG8gdGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkLlkBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCBhbGxvd2VkIHRvIGJlIGNvbnN1bWVkIGluIHRoZSBleGVjdXRpb25EICBvZiB0aGUgbWVzc2FnZS4A9EJlbmNobWFyayBjb21wbGV4aXR5IGNvbnNpZGVyYXRpb25zOiBPKGluZGV4ICsgd2VpZ2h0X2xpbWl0KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMucQYIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQwQSGVyZQAAABhQYXJlbnQAAQAcU2libGluZwQA4AEYUGFyYUlkAAIAAHUGDERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQQQ2FsbAQEVAABEEBmb3JjZV9zZXRfY3Vyc29yBAEYY3Vyc29yeQYBTE9wdGlvbjxDdXJzb3JPZjxUPj4AABRdAUFsbG93cyByb290IHRvIHNldCBhIGN1cnNvciB0byBmb3JjZWZ1bGx5IHN0YXJ0LCBzdG9wIG9yIGZvcndhcmQgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLgBJAVNob3VsZCBub3JtYWxseSBub3QgYmUgbmVlZGVkIGFuZCBpcyBvbmx5IGluIHBsYWNlIGFzIGVtZXJnZW5jeSBtZWFzdXJlLiBOb3RlIHRoYXQFAXJlc3RhcnRpbmcgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzIGluIHRoaXMgbWFubmVyIHdpbGwgbm90IGNhbGwgdGhlLQFbYE1pZ3JhdGlvblN0YXR1c0hhbmRsZXI6OnN0YXJ0ZWRgXSBob29rIG9yIGVtaXQgYW4gYFVwZ3JhZGVTdGFydGVkYCBldmVudC5cZm9yY2Vfc2V0X2FjdGl2ZV9jdXJzb3IMARRpbmRleCgBDHUzMgABMGlubmVyX2N1cnNvcoUGAVhPcHRpb248UmF3Q3Vyc29yT2Y8VD4+AAEoc3RhcnRlZF9hdHQBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AARhZAUFsbG93cyByb290IHRvIHNldCBhbiBhY3RpdmUgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQvZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEUBVGhpcyBpcyBhbiBlZGdlLWNhc2UgdmVyc2lvbiBvZiBbYFNlbGY6OmZvcmNlX3NldF9jdXJzb3JgXSB0aGF0IGFsbG93cyB0byBzZXQgdGhlYQFgc3RhcnRlZF9hdGAgdmFsdWUgdG8gdGhlIG5leHQgYmxvY2sgbnVtYmVyLiBPdGhlcndpc2UgdGhpcyB3b3VsZCBub3QgYmUgcG9zc2libGUsIHNpbmNlRQFgZm9yY2Vfc2V0X2N1cnNvcmAgdGFrZXMgYW4gYWJzb2x1dGUgYmxvY2sgbnVtYmVyLiBTZXR0aW5nIGBzdGFydGVkX2F0YCB0byBgTm9uZWABAWluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBwbHVzIG9uZSBzaG91bGQgYmUgdXNlZC5IZm9yY2Vfb25ib2FyZF9tYm1zAAIQoEZvcmNlcyB0aGUgb25ib2FyZGluZyBvZiB0aGUgbWlncmF0aW9ucy4AXQFUaGlzIHByb2Nlc3MgaGFwcGVucyBhdXRvbWF0aWNhbGx5IG9uIGEgcnVudGltZSB1cGdyYWRlLiBJdCBpcyBpbiBwbGFjZSBhcyBhbiBlbWVyZ2VuY3n8bWVhc3VyZW1lbnQuIFRoZSBjdXJzb3IgbmVlZHMgdG8gYmUgYE5vbmVgIGZvciB0aGlzIHRvIHN1Y2NlZWQuOGNsZWFyX2hpc3RvcmljBAEgc2VsZWN0b3KJBgGgSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3I8SWRlbnRpZmllck9mPFQ+PgADFGhDbGVhcnMgdGhlIGBIaXN0b3JpY2Agc2V0LgANAWBtYXBfY3Vyc29yYCBtdXN0IGJlIHNldCB0byB0aGUgbGFzdCB2YWx1ZSB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGVdAWBIaXN0b3JpY0NsZWFyZWRgIGV2ZW50LiBUaGUgZmlyc3QgdGltZSBgTm9uZWAgY2FuIGJlIHVzZWQuIGBsaW1pdGAgbXVzdCBiZSBjaG9zZW4gaW4gYah3YXkgdGhhdCB3aWxsIHJlc3VsdCBpbiBhIHNlbnNpYmxlIHdlaWdodC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMueQYEGE9wdGlvbgQEVAF9BgEIEE5vbmUAAAAQU29tZQQAfQYAAAEAAH0GCERwYWxsZXRfbWlncmF0aW9uczxNaWdyYXRpb25DdXJzb3IIGEN1cnNvcgGNAyxCbG9ja051bWJlcgEoAQgYQWN0aXZlBACBBgGEQWN0aXZlQ3Vyc29yPEN1cnNvciwgQmxvY2tOdW1iZXI+AAAAFFN0dWNrAAEAAIEGCERwYWxsZXRfbWlncmF0aW9uczBBY3RpdmVDdXJzb3IIGEN1cnNvcgGNAyxCbG9ja051bWJlcgEoAAwBFGluZGV4KAEMdTMyAAEwaW5uZXJfY3Vyc29yhQYBOE9wdGlvbjxDdXJzb3I+AAEoc3RhcnRlZF9hdCgBLEJsb2NrTnVtYmVyAACFBgQYT3B0aW9uBARUAY0DAQgQTm9uZQAAABBTb21lBACNAwAAAQAAiQYIRHBhbGxldF9taWdyYXRpb25zXEhpc3RvcmljQ2xlYW51cFNlbGVjdG9yBAhJZAF9AwEIIFNwZWNpZmljBACNBgEcVmVjPElkPgAAACBXaWxkY2FyZAgBFGxpbWl0dAEsT3B0aW9uPHUzMj4AATxwcmV2aW91c19jdXJzb3KRBgE8T3B0aW9uPFZlYzx1OD4+AAEAAI0GAAACfQMAkQYEGE9wdGlvbgQEVAEUAQgQTm9uZQAAABBTb21lBAAUAAABAACVBgwgb3JtbF94Y20YbW9kdWxlEENhbGwEBFQAAQREc2VuZF9hc19zb3ZlcmVpZ24IARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxtZXNzYWdl+QQBVEJveDxWZXJzaW9uZWRYY208KCk+PgAABKxTZW5kIGFuIFhDTSBtZXNzYWdlIGFzIHBhcmFjaGFpbiBzb3ZlcmVpZ24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpkGDDBvcm1sX3h0b2tlbnMYbW9kdWxlEENhbGwEBFQAARggdHJhbnNmZXIQASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAADBsVHJhbnNmZXIgbmF0aXZlIGN1cnJlbmNpZXMuAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuABEBSXQncyBhIG5vLW9wIGlmIGFueSBlcnJvciBvbiBsb2NhbCBYQ00gZXhlY3V0aW9uIG9yIG1lc3NhZ2Ugc2VuZGluZy74Tm90ZSBzZW5kaW5nIGFzc2V0cyBvdXQgcGVyIHNlIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZXkgd291bGQgYmURAXJlY2VpdmVkLiBSZWNlaXZpbmcgZGVwZW5kcyBvbiBpZiB0aGUgWENNIG1lc3NhZ2UgY291bGQgYmUgZGVsaXZlcmVk3GJ5IHRoZSBuZXR3b3JrLCBhbmQgaWYgdGhlIHJlY2VpdmluZyBjaGFpbiB3b3VsZCBoYW5kbGVMbWVzc2FnZXMgY29ycmVjdGx5Lkx0cmFuc2Zlcl9tdWx0aWFzc2V0DAEUYXNzZXSdBgFMQm94PFZlcnNpb25lZEFzc2V0PgABEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAEwRFRyYW5zZmVyIGBBc3NldGAuAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuABEBSXQncyBhIG5vLW9wIGlmIGFueSBlcnJvciBvbiBsb2NhbCBYQ00gZXhlY3V0aW9uIG9yIG1lc3NhZ2Ugc2VuZGluZy74Tm90ZSBzZW5kaW5nIGFzc2V0cyBvdXQgcGVyIHNlIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZXkgd291bGQgYmURAXJlY2VpdmVkLiBSZWNlaXZpbmcgZGVwZW5kcyBvbiBpZiB0aGUgWENNIG1lc3NhZ2UgY291bGQgYmUgZGVsaXZlcmVk3GJ5IHRoZSBuZXR3b3JrLCBhbmQgaWYgdGhlIHJlY2VpdmluZyBjaGFpbiB3b3VsZCBoYW5kbGVMbWVzc2FnZXMgY29ycmVjdGx5LkR0cmFuc2Zlcl93aXRoX2ZlZRQBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAQxmZWVAAShUOjpCYWxhbmNlAAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAAlTsVHJhbnNmZXIgbmF0aXZlIGN1cnJlbmNpZXMgc3BlY2lmeWluZyB0aGUgZmVlIGFuZCBhbW91bnQgYXMkc2VwYXJhdGUuAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuAA0BYGZlZWAgaXMgdGhlIGFtb3VudCB0byBiZSBzcGVudCB0byBwYXkgZm9yIGV4ZWN1dGlvbiBpbiBkZXN0aW5hdGlvbvhjaGFpbi4gQm90aCBmZWUgYW5kIGFtb3VudCB3aWxsIGJlIHN1YnRyYWN0ZWQgZm9ybSB0aGUgY2FsbGVycyBiYWxhbmNlLgANAUlmIGBmZWVgIGlzIG5vdCBoaWdoIGVub3VnaCB0byBjb3ZlciBmb3IgdGhlIGV4ZWN1dGlvbiBjb3N0cyBpbiB0aGXkZGVzdGluYXRpb24gY2hhaW4sIHRoZW4gdGhlIGFzc2V0cyB3aWxsIGJlIHRyYXBwZWQgaW4gdGhlRGRlc3RpbmF0aW9uIGNoYWluABEBSXQncyBhIG5vLW9wIGlmIGFueSBlcnJvciBvbiBsb2NhbCBYQ00gZXhlY3V0aW9uIG9yIG1lc3NhZ2Ugc2VuZGluZy74Tm90ZSBzZW5kaW5nIGFzc2V0cyBvdXQgcGVyIHNlIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZXkgd291bGQgYmURAXJlY2VpdmVkLiBSZWNlaXZpbmcgZGVwZW5kcyBvbiBpZiB0aGUgWENNIG1lc3NhZ2UgY291bGQgYmUgZGVsaXZlcmVk3GJ5IHRoZSBuZXR3b3JrLCBhbmQgaWYgdGhlIHJlY2VpdmluZyBjaGFpbiB3b3VsZCBoYW5kbGVMbWVzc2FnZXMgY29ycmVjdGx5LnB0cmFuc2Zlcl9tdWx0aWFzc2V0X3dpdGhfZmVlEAEUYXNzZXSdBgFMQm94PFZlcnNpb25lZEFzc2V0PgABDGZlZZ0GAUxCb3g8VmVyc2lvbmVkQXNzZXQ+AAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAA1TsVHJhbnNmZXIgYEFzc2V0YCBzcGVjaWZ5aW5nIHRoZSBmZWUgYW5kIGFtb3VudCBhcyBzZXBhcmF0ZS4A/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4A2GBmZWVgIGlzIHRoZSBBc3NldCB0byBiZSBzcGVudCB0byBwYXkgZm9yIGV4ZWN1dGlvbiBpbgkBZGVzdGluYXRpb24gY2hhaW4uIEJvdGggZmVlIGFuZCBhbW91bnQgd2lsbCBiZSBzdWJ0cmFjdGVkIGZvcm0gdGhlEQFjYWxsZXJzIGJhbGFuY2UgRm9yIG5vdyB3ZSBvbmx5IGFjY2VwdCBmZWUgYW5kIGFzc2V0IGhhdmluZyB0aGUgc2FtZThgTG9jYXRpb25gIGlkLgANAUlmIGBmZWVgIGlzIG5vdCBoaWdoIGVub3VnaCB0byBjb3ZlciBmb3IgdGhlIGV4ZWN1dGlvbiBjb3N0cyBpbiB0aGXkZGVzdGluYXRpb24gY2hhaW4sIHRoZW4gdGhlIGFzc2V0cyB3aWxsIGJlIHRyYXBwZWQgaW4gdGhlRGRlc3RpbmF0aW9uIGNoYWluABEBSXQncyBhIG5vLW9wIGlmIGFueSBlcnJvciBvbiBsb2NhbCBYQ00gZXhlY3V0aW9uIG9yIG1lc3NhZ2Ugc2VuZGluZy74Tm90ZSBzZW5kaW5nIGFzc2V0cyBvdXQgcGVyIHNlIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZXkgd291bGQgYmURAXJlY2VpdmVkLiBSZWNlaXZpbmcgZGVwZW5kcyBvbiBpZiB0aGUgWENNIG1lc3NhZ2UgY291bGQgYmUgZGVsaXZlcmVk3GJ5IHRoZSBuZXR3b3JrLCBhbmQgaWYgdGhlIHJlY2VpdmluZyBjaGFpbiB3b3VsZCBoYW5kbGVMbWVzc2FnZXMgY29ycmVjdGx5LmB0cmFuc2Zlcl9tdWx0aWN1cnJlbmNpZXMQAShjdXJyZW5jaWVzoQYBgFZlYzwoVDo6Q3VycmVuY3lJZCwgVDo6QmFsYW5jZSk+AAEgZmVlX2l0ZW0oAQx1MzIAARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAAEPAUBVHJhbnNmZXIgc2V2ZXJhbCBjdXJyZW5jaWVzIHNwZWNpZnlpbmcgdGhlIGl0ZW0gdG8gYmUgdXNlZCBhcyBmZWUA/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4ADQFgZmVlX2l0ZW1gIGlzIGluZGV4IG9mIHRoZSBjdXJyZW5jaWVzIHR1cGxlIHRoYXQgd2Ugd2FudCB0byB1c2UgZm9yHHBheW1lbnQAEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuUHRyYW5zZmVyX211bHRpYXNzZXRzEAEYYXNzZXRzMQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEgZmVlX2l0ZW0oAQx1MzIAARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAAFPPhUcmFuc2ZlciBzZXZlcmFsIGBBc3NldGAgc3BlY2lmeWluZyB0aGUgaXRlbSB0byBiZSB1c2VkIGFzIGZlZQD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgDkYGZlZV9pdGVtYCBpcyBpbmRleCBvZiB0aGUgQXNzZXRzIHRoYXQgd2Ugd2FudCB0byB1c2UgZm9yHHBheW1lbnQAEQFJdCdzIGEgbm8tb3AgaWYgYW55IGVycm9yIG9uIGxvY2FsIFhDTSBleGVjdXRpb24gb3IgbWVzc2FnZSBzZW5kaW5nLvhOb3RlIHNlbmRpbmcgYXNzZXRzIG91dCBwZXIgc2UgZG9lc24ndCBndWFyYW50ZWUgdGhleSB3b3VsZCBiZREBcmVjZWl2ZWQuIFJlY2VpdmluZyBkZXBlbmRzIG9uIGlmIHRoZSBYQ00gbWVzc2FnZSBjb3VsZCBiZSBkZWxpdmVyZWTcYnkgdGhlIG5ldHdvcmssIGFuZCBpZiB0aGUgcmVjZWl2aW5nIGNoYWluIHdvdWxkIGhhbmRsZUxtZXNzYWdlcyBjb3JyZWN0bHkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLp0GCAx4Y204VmVyc2lvbmVkQXNzZXQAAQwIVjMEABEFATh2Mzo6TXVsdGlBc3NldAADAAhWNAQAfQUBJHY0OjpBc3NldAAEAAhWNQQAyQUBJHY1OjpBc3NldAAFAAChBgAAAj0DAKUGDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBBDYWxsBARUAAEkRHNldF9pbnZ1bG5lcmFibGVzBAEMbmV3SAFEVmVjPFQ6OkFjY291bnRJZD4AADQxAVNldCB0aGUgbGlzdCBvZiBpbnZ1bG5lcmFibGUgKGZpeGVkKSBjb2xsYXRvcnMuIFRoZXNlIGNvbGxhdG9ycyBtdXN0IGRvIHNvbWXQcHJlcGFyYXRpb24sIG5hbWVseSB0byBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLgBZAVRoZSBjYWxsIHdpbGwgcmVtb3ZlIGFueSBhY2NvdW50cyB0aGF0IGhhdmUgbm90IHJlZ2lzdGVyZWQga2V5cyBmcm9tIHRoZSBzZXQuIFRoYXQgaXMsXQFpdCBpcyBub24tYXRvbWljOyB0aGUgY2FsbGVyIGFjY2VwdHMgYWxsIGBBY2NvdW50SWRgcyBwYXNzZWQgaW4gYG5ld2AgX2luZGl2aWR1YWxseV8gYXMxAWFjY2VwdGFibGUgSW52dWxuZXJhYmxlcywgYW5kIGlzIG5vdCBwcm9wb3NpbmcgYSBfc2V0XyBvZiBuZXcgSW52dWxuZXJhYmxlcy4AWQFUaGlzIGNhbGwgZG9lcyBub3QgbWFpbnRhaW4gbXV0dWFsIGV4Y2x1c2l2aXR5IG9mIGBJbnZ1bG5lcmFibGVzYCBhbmQgYENhbmRpZGF0ZXNgLiBJdGEBaXMgcmVjb21tZW5kZWQgdG8gdXNlIGEgYmF0Y2ggb2YgYGFkZF9pbnZ1bG5lcmFibGVgIGFuZCBgcmVtb3ZlX2ludnVsbmVyYWJsZWAgaW5zdGVhZC4gQVEBYGJhdGNoX2FsbGAgY2FuIGFsc28gYmUgdXNlZCB0byBlbmZvcmNlIGF0b21pY2l0eS4gSWYgYW55IGNhbmRpZGF0ZXMgYXJlIGluY2x1ZGVkIGluTQFgbmV3YCwgdGhleSBzaG91bGQgYmUgcmVtb3ZlZCB3aXRoIGByZW1vdmVfaW52dWxuZXJhYmxlX2NhbmRpZGF0ZWAgYWZ0ZXIgZXhlY3V0aW9uLgCUTXVzdCBiZSBjYWxsZWQgYnkgdGhlIGBVcGRhdGVPcmlnaW5gLlhzZXRfZGVzaXJlZF9jYW5kaWRhdGVzBAEMbWF4KAEMdTMyAAEUVQFTZXQgdGhlIGlkZWFsIG51bWJlciBvZiBub24taW52dWxuZXJhYmxlIGNvbGxhdG9ycy4gSWYgbG93ZXJpbmcgdGhpcyBudW1iZXIsIHRoZW4gdGhlYQFudW1iZXIgb2YgcnVubmluZyBjb2xsYXRvcnMgY291bGQgYmUgaGlnaGVyIHRoYW4gdGhpcyBmaWd1cmUuIEFzaWRlIGZyb20gdGhhdCBlZGdlIGNhc2UsNQF0aGVyZSBzaG91bGQgYmUgbm8gb3RoZXIgd2F5IHRvIGhhdmUgbW9yZSBjYW5kaWRhdGVzIHRoYW4gdGhlIGRlc2lyZWQgbnVtYmVyLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLkhzZXRfY2FuZGlkYWN5X2JvbmQEARBib25kQAEwQmFsYW5jZU9mPFQ+AAIceFNldCB0aGUgY2FuZGlkYWN5IGJvbmQgYW1vdW50LgBRAUlmIHRoZSBjYW5kaWRhY3kgYm9uZCBpcyBpbmNyZWFzZWQgYnkgdGhpcyBjYWxsLCBhbGwgY3VycmVudCBjYW5kaWRhdGVzIHdoaWNoIGhhdmUgYU0BZGVwb3NpdCBsb3dlciB0aGFuIHRoZSBuZXcgYm9uZCB3aWxsIGJlIGtpY2tlZCBmcm9tIHRoZSBsaXN0IGFuZCBnZXQgdGhlaXIgZGVwb3NpdHMUYmFjay4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5UcmVnaXN0ZXJfYXNfY2FuZGlkYXRlAAMQQQFSZWdpc3RlciB0aGlzIGFjY291bnQgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIFRoZSBhY2NvdW50IG11c3QgKGEpIGFscmVhZHkgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMgYW5kIChiKSBiZSBhYmxlIHRvIHJlc2VydmUgdGhlIGBDYW5kaWRhY3lCb25kYC4A3FRoaXMgY2FsbCBpcyBub3QgYXZhaWxhYmxlIHRvIGBJbnZ1bG5lcmFibGVgIGNvbGxhdG9ycy4wbGVhdmVfaW50ZW50AAQUVQFEZXJlZ2lzdGVyIGBvcmlnaW5gIGFzIGEgY29sbGF0b3IgY2FuZGlkYXRlLiBOb3RlIHRoYXQgdGhlIGNvbGxhdG9yIGNhbiBvbmx5IGxlYXZlIG9uDQFzZXNzaW9uIGNoYW5nZS4gVGhlIGBDYW5kaWRhY3lCb25kYCB3aWxsIGJlIHVucmVzZXJ2ZWQgaW1tZWRpYXRlbHkuABkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGNhbmRpZGF0ZXMgd291bGQgZHJvcCBiZWxvd1xgTWluRWxpZ2libGVDb2xsYXRvcnNgLkBhZGRfaW52dWxuZXJhYmxlBAEMd2hvAAEwVDo6QWNjb3VudElkAAUQRQFBZGQgYSBuZXcgYWNjb3VudCBgd2hvYCB0byB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgd2hvYCBtdXN0IGhhdmUdAXJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLiBJZiBgd2hvYCBpcyBhIGNhbmRpZGF0ZSwgdGhleSB3aWxsIGJlIHJlbW92ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuTHJlbW92ZV9pbnZ1bG5lcmFibGUEAQx3aG8AATBUOjpBY2NvdW50SWQABhBhAVJlbW92ZSBhbiBhY2NvdW50IGB3aG9gIGZyb20gdGhlIGxpc3Qgb2YgYEludnVsbmVyYWJsZXNgIGNvbGxhdG9ycy4gYEludnVsbmVyYWJsZXNgIG11c3QoYmUgc29ydGVkLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLix1cGRhdGVfYm9uZAQBLG5ld19kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAccXQFVcGRhdGUgdGhlIGNhbmRpZGFjeSBib25kIG9mIGNvbGxhdG9yIGNhbmRpZGF0ZSBgb3JpZ2luYCB0byBhIG5ldyBhbW91bnQgYG5ld19kZXBvc2l0YC4AQQFTZXR0aW5nIGEgYG5ld19kZXBvc2l0YCB0aGF0IGlzIGxvd2VyIHRoYW4gdGhlIGN1cnJlbnQgZGVwb3NpdCB3aGlsZSBgb3JpZ2luYCBpc+BvY2N1cHlpbmcgYSB0b3AtYERlc2lyZWRDYW5kaWRhdGVzYCBzbG90IGlzIG5vdCBhbGxvd2VkLgBZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgYG9yaWdpbmAgaXMgbm90IGEgY29sbGF0b3IgY2FuZGlkYXRlLCB0aGUgdXBkYXRlZCBib25kIGlzIGxvd2VyGQF0aGFuIHRoZSBtaW5pbXVtIGNhbmRpZGFjeSBib25kLCBhbmQvb3IgdGhlIGFtb3VudCBjYW5ub3QgYmUgcmVzZXJ2ZWQuTHRha2VfY2FuZGlkYXRlX3Nsb3QIARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEYdGFyZ2V0AAEwVDo6QWNjb3VudElkAAgcTQFUaGUgY2FsbGVyIGBvcmlnaW5gIHJlcGxhY2VzIGEgY2FuZGlkYXRlIGB0YXJnZXRgIGluIHRoZSBjb2xsYXRvciBjYW5kaWRhdGUgbGlzdCBieVUBcmVzZXJ2aW5nIGBkZXBvc2l0YC4gVGhlIGFtb3VudCBgZGVwb3NpdGAgcmVzZXJ2ZWQgYnkgdGhlIGNhbGxlciBtdXN0IGJlIGdyZWF0ZXIgdGhhbuB0aGUgZXhpc3RpbmcgYm9uZCBvZiB0aGUgdGFyZ2V0IGl0IGlzIHRyeWluZyB0byByZXBsYWNlLgBZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIGNhbGxlciBpcyBhbHJlYWR5IGEgY29sbGF0b3IgY2FuZGlkYXRlIG9yIGludnVsbmVyYWJsZSwgdGhlVQFjYWxsZXIgZG9lcyBub3QgaGF2ZSByZWdpc3RlcmVkIHNlc3Npb24ga2V5cywgdGhlIHRhcmdldCBpcyBub3QgYSBjb2xsYXRvciBjYW5kaWRhdGUsvGFuZC9vciB0aGUgYGRlcG9zaXRgIGFtb3VudCBjYW5ub3QgYmUgcmVzZXJ2ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkGDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQQQ2FsbAQEVAABCCBzZXRfa2V5cwgBEGtleXOtBgEcVDo6S2V5cwABFHByb29mFAEcVmVjPHU4PgAAJORTZXRzIHRoZSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyIHRvIGBrZXlzYC4dAUFsbG93cyBhbiBhY2NvdW50IHRvIHNldCBpdHMgc2Vzc2lvbiBrZXkgcHJpb3IgdG8gYmVjb21pbmcgYSB2YWxpZGF0b3IuwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2lnbmVkLgA0IyMgQ29tcGxleGl0eVkBLSBgTygxKWAuIEFjdHVhbCBjb3N0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBsZW5ndGggb2YgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgICBmaXhlZC4ocHVyZ2Vfa2V5cwABMMhSZW1vdmVzIGFueSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyLgDAVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgYWNjb3VudCBtdXN0IGJlIGVpdGhlciBiZV0BY29udmVydGlibGUgdG8gYSB2YWxpZGF0b3IgSUQgdXNpbmcgdGhlIGNoYWluJ3MgdHlwaWNhbCBhZGRyZXNzaW5nIHN5c3RlbSAodGhpcyB1c3VhbGx5UQFtZWFucyBiZWluZyBhIGNvbnRyb2xsZXIgYWNjb3VudCkgb3IgZGlyZWN0bHkgY29udmVydGlibGUgaW50byBhIHZhbGlkYXRvciBJRCAod2hpY2iUdXN1YWxseSBtZWFucyBiZWluZyBhIHN0YXNoIGFjY291bnQpLgA0IyMgQ29tcGxleGl0eT0BLSBgTygxKWAgaW4gbnVtYmVyIG9mIGtleSB0eXBlcy4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZpggIGBUOjpLZXlzOjprZXlfaWRzKClgIHdoaWNoIGlzIGZpeGVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6tBgw8aHlkcmFkeF9ydW50aW1lGG9wYXF1ZSxTZXNzaW9uS2V5cwAABAEQYXVyYbEGAcQ8QXVyYSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAACxBhBEc3BfY29uc2Vuc3VzX2F1cmEcc3IyNTUxOSxhcHBfc3IyNTUxORhQdWJsaWMAAAQABAE8c3IyNTUxOTo6UHVibGljAAC1BgxEcGFsbGV0X2VtYV9vcmFjbGUYcGFsbGV0EENhbGwEBFQAASQoYWRkX29yYWNsZQgBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAAg+EFkZCBhbiBvcmFjbGUgdG8gdGhlIHdoaXRlbGlzdCBzbyBpdCBpcyB0cmFja2VkIGJ5IHRoZSBwYWxsZXQuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBgQXV0aG9yaXR5T3JpZ2luYIgtIGBzb3VyY2VgOiBkYXRhIHNvdXJjZSBpZGVudGlmaWVyjC0gYGFzc2V0c2A6IHRoZSBhc3NldCBwYWlyIHRvIHRyYWNrALxFbWl0cyBgQWRkZWRUb1doaXRlbGlzdGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRyZW1vdmVfb3JhY2xlCAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAASAZAVJlbW92ZSBhbiBvcmFjbGUgZnJvbSB0aGUgd2hpdGVsaXN0IGFuZCBkZWxldGUgYWxsIGl0cyBzdG9yZWQgZW50cmllcy4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IGBBdXRob3JpdHlPcmlnaW5giC0gYHNvdXJjZWA6IGRhdGEgc291cmNlIGlkZW50aWZpZXKsLSBgYXNzZXRzYDogdGhlIGFzc2V0IHBhaXIgdG8gc3RvcCB0cmFja2luZwDMRW1pdHMgYFJlbW92ZWRGcm9tV2hpdGVsaXN0YCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuVHVwZGF0ZV9iaWZyb3N0X29yYWNsZQwBHGFzc2V0X2GtBAGQQm94PHBvbGthZG90X3hjbTo6VmVyc2lvbmVkTG9jYXRpb24+AAEcYXNzZXRfYq0EAZBCb3g8cG9sa2Fkb3RfeGNtOjpWZXJzaW9uZWRMb2NhdGlvbj4AARRwcmljZX0CAUgoQmFsYW5jZSwgQmFsYW5jZSkAAiRVAVVwZGF0ZSBhbiBvcmFjbGUgZW50cnkgZm9yIEJJRlJPU1RfU09VUkNFLiBUaGluIHdyYXBwZXIgYXJvdW5kIGBzZXRfZXh0ZXJuYWxfb3JhY2xlYC4ALFBhcmFtZXRlcnM6aQEtIGBvcmlnaW5gOiBzaWduZWQgb3JpZ2luIOKAlCBtdXN0IGJlIGF1dGhvcml6ZWQgZm9yIHRoZSBzcGVjaWZpYyBgKEJJRlJPU1RfU09VUkNFLCBwYWlyKWCwLSBgYXNzZXRfYWA6IFhDTSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QgYXNzZXS0LSBgYXNzZXRfYmA6IFhDTSBsb2NhdGlvbiBvZiB0aGUgc2Vjb25kIGFzc2V0uC0gYHByaWNlYDogcHJpY2UgYXMgYChudW1lcmF0b3IsIGRlbm9taW5hdG9yKWAA2EVtaXRzIGBPcmFjbGVVcGRhdGVkYCBldmVudCBvbiB0aGUgbmV4dCBgb25fZmluYWxpemVgLkxzZXRfZXh0ZXJuYWxfb3JhY2xlEAEYc291cmNlIQEBGFNvdXJjZQABHGFzc2V0X2GtBAGQQm94PHBvbGthZG90X3hjbTo6VmVyc2lvbmVkTG9jYXRpb24+AAEcYXNzZXRfYq0EAZBCb3g8cG9sa2Fkb3RfeGNtOjpWZXJzaW9uZWRMb2NhdGlvbj4AARRwcmljZX0CAUgoQmFsYW5jZSwgQmFsYW5jZSkABjTUU3VibWl0IGFuIG9yYWNsZSBwcmljZSB1cGRhdGUgZm9yIGFuIGV4dGVybmFsIHNvdXJjZS4AsFRoZSBjYWxsIGlzIGZlZWxlc3Mgb24gc3VjY2VzcyAoYFBheXM6Ok5vYCkuACxQYXJhbWV0ZXJzOlkBLSBgb3JpZ2luYDogc2lnbmVkIG9yaWdpbiDigJQgbXVzdCBiZSBhdXRob3JpemVkIGZvciB0aGUgc3BlY2lmaWMgYChzb3VyY2UsIHBhaXIpYCB2aWFoICBgYWRkX2F1dGhvcml6ZWRfYWNjb3VudGBpAS0gYHNvdXJjZWA6IGV4dGVybmFsIHNvdXJjZSBpZGVudGlmaWVyIChtdXN0IGJlIHJlZ2lzdGVyZWQgdmlhIGByZWdpc3Rlcl9leHRlcm5hbF9zb3VyY2VgKbAtIGBhc3NldF9hYDogWENNIGxvY2F0aW9uIG9mIHRoZSBmaXJzdCBhc3NldLQtIGBhc3NldF9iYDogWENNIGxvY2F0aW9uIG9mIHRoZSBzZWNvbmQgYXNzZXQhAS0gYHByaWNlYDogcHJpY2UgYXMgYChudW1lcmF0b3IsIGRlbm9taW5hdG9yKWAg4oCUIGJvdGggbXVzdCBiZSBub24temVybwDYRW1pdHMgYE9yYWNsZVVwZGF0ZWRgIGV2ZW50IG9uIHRoZSBuZXh0IGBvbl9maW5hbGl6ZWAuaHNldF9leHRlcm5hbF9vcmFjbGVfYnlfaWRzEAEYc291cmNlIQEBGFNvdXJjZQABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAARRwcmljZX0CAUgoQmFsYW5jZSwgQmFsYW5jZSkACEgBAVVwZGF0ZSBhbiBleHRlcm5hbCBvcmFjbGUgZW50cnkgdXNpbmcgbG9jYWwgYEFzc2V0SWRgcyBkaXJlY3RseS4AQQFDaGVhcGVyIHZhcmlhbnQgb2YgYHNldF9leHRlcm5hbF9vcmFjbGVgIGZvciBjYWxsZXJzIHRoYXQgYWxyZWFkeSBrbm93IHRoZSBsb2NhbC0BQXNzZXRJZHMg4oCUIHNraXBzIHRoZSBgVmVyc2lvbmVkTG9jYXRpb25gIOKGkiBgQXNzZXRJZGAgY29udmVyc2lvbiBhbmQgdGhlLQFgQXNzZXRSZWdpc3RyeTo6TG9jYXRpb25Bc3NldHNgIHN0b3JhZ2UgcmVhZC4gQXV0aG9yaXphdGlvbiBzaGFyZXMgdGhlIHNhbWXUYEF1dGhvcml6ZWRBY2NvdW50c2Agc3RvcmFnZSBhcyB0aGUgbG9jYXRpb24gdmFyaWFudC4ALFBhcmFtZXRlcnM6WQEtIGBvcmlnaW5gOiBzaWduZWQgb3JpZ2luIOKAlCBtdXN0IGJlIGF1dGhvcml6ZWQgZm9yIHRoZSBzcGVjaWZpYyBgKHNvdXJjZSwgcGFpcilgIHZpYWggIGBhZGRfYXV0aG9yaXplZF9hY2NvdW50YGkBLSBgc291cmNlYDogZXh0ZXJuYWwgc291cmNlIGlkZW50aWZpZXIgKG11c3QgYmUgcmVnaXN0ZXJlZCB2aWEgYHJlZ2lzdGVyX2V4dGVybmFsX3NvdXJjZWAptC0gYGFzc2V0X2FgOiBsb2NhbCBBc3NldElkIG9mIHRoZSBmaXJzdCBhc3NldLgtIGBhc3NldF9iYDogbG9jYWwgQXNzZXRJZCBvZiB0aGUgc2Vjb25kIGFzc2V0IQEtIGBwcmljZWA6IHByaWNlIGFzIGAobnVtZXJhdG9yLCBkZW5vbWluYXRvcilgIOKAlCBib3RoIG11c3QgYmUgbm9uLXplcm8AsFRoZSBjYWxsIGlzIGZlZWxlc3Mgb24gc3VjY2VzcyAoYFBheXM6Ok5vYCkuANhFbWl0cyBgT3JhY2xlVXBkYXRlZGAgZXZlbnQgb24gdGhlIG5leHQgYG9uX2ZpbmFsaXplYC5gcmVnaXN0ZXJfZXh0ZXJuYWxfc291cmNlBAEYc291cmNlIQEBGFNvdXJjZQADHJhSZWdpc3RlciBhIG5ldyBleHRlcm5hbCBvcmFjbGUgc291cmNlLgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogYEF1dGhvcml0eU9yaWdpbmDALSBgc291cmNlYDogOC1ieXRlIHNvdXJjZSBpZGVudGlmaWVyIHRvIHJlZ2lzdGVyANxFbWl0cyBgRXh0ZXJuYWxTb3VyY2VSZWdpc3RlcmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuWHJlbW92ZV9leHRlcm5hbF9zb3VyY2UEARhzb3VyY2UhAQEYU291cmNlAAUgVQFSZW1vdmUgYW4gZXh0ZXJuYWwgb3JhY2xlIHNvdXJjZSwgaXRzIHBlci1wYWlyIGF1dGhvcml6YXRpb25zLCBhbmQgQUxMIG9yYWNsZSBkYXRhIGl0TQFldmVyIHdyb3RlIChib3RoIGNvbW1pdHRlZCBgT3JhY2xlc2Agcm93cyBhbmQgYW55IGluLWZsaWdodCBgQWNjdW11bGF0b3JgIGVudHJpZXMpLgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogYEF1dGhvcml0eU9yaWdpbmCcLSBgc291cmNlYDogc291cmNlIGlkZW50aWZpZXIgdG8gcmVtb3ZlANBFbWl0cyBgRXh0ZXJuYWxTb3VyY2VSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuWGFkZF9hdXRob3JpemVkX2FjY291bnQMARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQABHGFjY291bnQAATBUOjpBY2NvdW50SWQABDA1AUF1dGhvcml6ZSBgYWNjb3VudGAgdG8gc3VibWl0IG9yYWNsZSB1cGRhdGVzIGZvciBhIHNwZWNpZmljIGAoc291cmNlLCBwYWlyKWAuADUBQXV0aG9yaXphdGlvbiBpcyBzY29wZWQgcGVyLXBhaXIgc28gYSBjb21wcm9taXNlZCBhY2NvdW50IGNhbiBvbmx5IHVwZGF0ZSB0aGXwcGFpcnMgaXQgd2FzIGV4cGxpY2l0bHkgZ3JhbnRlZCwgbGltaXRpbmcgRERvUyBibGFzdCByYWRpdXMuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBgQXV0aG9yaXR5T3JpZ2luYA0BLSBgc291cmNlYDogZXh0ZXJuYWwgc291cmNlIGlkZW50aWZpZXIgKG11c3QgYWxyZWFkeSBiZSByZWdpc3RlcmVkKQkBLSBgYXNzZXRzYDogdGhlIGFzc2V0IHBhaXIgdG8gYXV0aG9yaXplIOKAlCBzdG9yZWQgaW4gb3JkZXJlZCBmb3JtlC0gYGFjY291bnRgOiB0aGUgYWNjb3VudCB0byBhdXRob3JpemUA1EVtaXRzIGBBdXRob3JpemVkQWNjb3VudEFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuZHJlbW92ZV9hdXRob3JpemVkX2FjY291bnQMARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQABHGFjY291bnQAATBUOjpBY2NvdW50SWQAByRBAVJldm9rZSBvcmFjbGUtdXBkYXRlIGF1dGhvcml6YXRpb24gZm9yIGBhY2NvdW50YCBvbiBhIHNwZWNpZmljIGAoc291cmNlLCBwYWlyKWAuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBgQXV0aG9yaXR5T3JpZ2luYA0BLSBgc291cmNlYDogZXh0ZXJuYWwgc291cmNlIGlkZW50aWZpZXIgKG11c3QgYWxyZWFkeSBiZSByZWdpc3RlcmVkKQEBLSBgYXNzZXRzYDogdGhlIGFzc2V0IHBhaXIgdG8gcmV2b2tlIOKAlCBtYXRjaGVkIGluIG9yZGVyZWQgZm9ybYgtIGBhY2NvdW50YDogdGhlIGFjY291bnQgdG8gcmV2b2tlANxFbWl0cyBgQXV0aG9yaXplZEFjY291bnRSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrkGDEBwYWxsZXRfYnJvYWRjYXN0GHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLr0GDFBwYWxsZXRfZmVlX3Byb2Nlc3NvchhwYWxsZXQQQ2FsbAQEVAABBBxjb252ZXJ0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAAEqE1hbnVhbCBjb252ZXJzaW9uIHRyaWdnZXIuIFBlcm1pc3Npb25sZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7BBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNUY2hlY2tfbm9uX3plcm9fc2VuZGVySENoZWNrTm9uWmVyb1NlbmRlcgQEVAAAAADFBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNIY2hlY2tfc3BlY192ZXJzaW9uQENoZWNrU3BlY1ZlcnNpb24EBFQAAAAAyQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zQGNoZWNrX3R4X3ZlcnNpb244Q2hlY2tUeFZlcnNpb24EBFQAAAAAzQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zNGNoZWNrX2dlbmVzaXMwQ2hlY2tHZW5lc2lzBARUAAAAANEGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczxjaGVja19tb3J0YWxpdHk4Q2hlY2tNb3J0YWxpdHkEBFQAAAQA1QYBDEVyYQAA1QYQKHNwX3J1bnRpbWUcZ2VuZXJpYwxlcmEMRXJhAAEBBCBJbW1vcnRhbAAAABxNb3J0YWwxBAAIAAABABxNb3J0YWwyBAAIAAACABxNb3J0YWwzBAAIAAADABxNb3J0YWw0BAAIAAAEABxNb3J0YWw1BAAIAAAFABxNb3J0YWw2BAAIAAAGABxNb3J0YWw3BAAIAAAHABxNb3J0YWw4BAAIAAAIABxNb3J0YWw5BAAIAAAJACBNb3J0YWwxMAQACAAACgAgTW9ydGFsMTEEAAgAAAsAIE1vcnRhbDEyBAAIAAAMACBNb3J0YWwxMwQACAAADQAgTW9ydGFsMTQEAAgAAA4AIE1vcnRhbDE1BAAIAAAPACBNb3J0YWwxNgQACAAAEAAgTW9ydGFsMTcEAAgAABEAIE1vcnRhbDE4BAAIAAASACBNb3J0YWwxOQQACAAAEwAgTW9ydGFsMjAEAAgAABQAIE1vcnRhbDIxBAAIAAAVACBNb3J0YWwyMgQACAAAFgAgTW9ydGFsMjMEAAgAABcAIE1vcnRhbDI0BAAIAAAYACBNb3J0YWwyNQQACAAAGQAgTW9ydGFsMjYEAAgAABoAIE1vcnRhbDI3BAAIAAAbACBNb3J0YWwyOAQACAAAHAAgTW9ydGFsMjkEAAgAAB0AIE1vcnRhbDMwBAAIAAAeACBNb3J0YWwzMQQACAAAHwAgTW9ydGFsMzIEAAgAACAAIE1vcnRhbDMzBAAIAAAhACBNb3J0YWwzNAQACAAAIgAgTW9ydGFsMzUEAAgAACMAIE1vcnRhbDM2BAAIAAAkACBNb3J0YWwzNwQACAAAJQAgTW9ydGFsMzgEAAgAACYAIE1vcnRhbDM5BAAIAAAnACBNb3J0YWw0MAQACAAAKAAgTW9ydGFsNDEEAAgAACkAIE1vcnRhbDQyBAAIAAAqACBNb3J0YWw0MwQACAAAKwAgTW9ydGFsNDQEAAgAACwAIE1vcnRhbDQ1BAAIAAAtACBNb3J0YWw0NgQACAAALgAgTW9ydGFsNDcEAAgAAC8AIE1vcnRhbDQ4BAAIAAAwACBNb3J0YWw0OQQACAAAMQAgTW9ydGFsNTAEAAgAADIAIE1vcnRhbDUxBAAIAAAzACBNb3J0YWw1MgQACAAANAAgTW9ydGFsNTMEAAgAADUAIE1vcnRhbDU0BAAIAAA2ACBNb3J0YWw1NQQACAAANwAgTW9ydGFsNTYEAAgAADgAIE1vcnRhbDU3BAAIAAA5ACBNb3J0YWw1OAQACAAAOgAgTW9ydGFsNTkEAAgAADsAIE1vcnRhbDYwBAAIAAA8ACBNb3J0YWw2MQQACAAAPQAgTW9ydGFsNjIEAAgAAD4AIE1vcnRhbDYzBAAIAAA/ACBNb3J0YWw2NAQACAAAQAAgTW9ydGFsNjUEAAgAAEEAIE1vcnRhbDY2BAAIAABCACBNb3J0YWw2NwQACAAAQwAgTW9ydGFsNjgEAAgAAEQAIE1vcnRhbDY5BAAIAABFACBNb3J0YWw3MAQACAAARgAgTW9ydGFsNzEEAAgAAEcAIE1vcnRhbDcyBAAIAABIACBNb3J0YWw3MwQACAAASQAgTW9ydGFsNzQEAAgAAEoAIE1vcnRhbDc1BAAIAABLACBNb3J0YWw3NgQACAAATAAgTW9ydGFsNzcEAAgAAE0AIE1vcnRhbDc4BAAIAABOACBNb3J0YWw3OQQACAAATwAgTW9ydGFsODAEAAgAAFAAIE1vcnRhbDgxBAAIAABRACBNb3J0YWw4MgQACAAAUgAgTW9ydGFsODMEAAgAAFMAIE1vcnRhbDg0BAAIAABUACBNb3J0YWw4NQQACAAAVQAgTW9ydGFsODYEAAgAAFYAIE1vcnRhbDg3BAAIAABXACBNb3J0YWw4OAQACAAAWAAgTW9ydGFsODkEAAgAAFkAIE1vcnRhbDkwBAAIAABaACBNb3J0YWw5MQQACAAAWwAgTW9ydGFsOTIEAAgAAFwAIE1vcnRhbDkzBAAIAABdACBNb3J0YWw5NAQACAAAXgAgTW9ydGFsOTUEAAgAAF8AIE1vcnRhbDk2BAAIAABgACBNb3J0YWw5NwQACAAAYQAgTW9ydGFsOTgEAAgAAGIAIE1vcnRhbDk5BAAIAABjACRNb3J0YWwxMDAEAAgAAGQAJE1vcnRhbDEwMQQACAAAZQAkTW9ydGFsMTAyBAAIAABmACRNb3J0YWwxMDMEAAgAAGcAJE1vcnRhbDEwNAQACAAAaAAkTW9ydGFsMTA1BAAIAABpACRNb3J0YWwxMDYEAAgAAGoAJE1vcnRhbDEwNwQACAAAawAkTW9ydGFsMTA4BAAIAABsACRNb3J0YWwxMDkEAAgAAG0AJE1vcnRhbDExMAQACAAAbgAkTW9ydGFsMTExBAAIAABvACRNb3J0YWwxMTIEAAgAAHAAJE1vcnRhbDExMwQACAAAcQAkTW9ydGFsMTE0BAAIAAByACRNb3J0YWwxMTUEAAgAAHMAJE1vcnRhbDExNgQACAAAdAAkTW9ydGFsMTE3BAAIAAB1ACRNb3J0YWwxMTgEAAgAAHYAJE1vcnRhbDExOQQACAAAdwAkTW9ydGFsMTIwBAAIAAB4ACRNb3J0YWwxMjEEAAgAAHkAJE1vcnRhbDEyMgQACAAAegAkTW9ydGFsMTIzBAAIAAB7ACRNb3J0YWwxMjQEAAgAAHwAJE1vcnRhbDEyNQQACAAAfQAkTW9ydGFsMTI2BAAIAAB+ACRNb3J0YWwxMjcEAAgAAH8AJE1vcnRhbDEyOAQACAAAgAAkTW9ydGFsMTI5BAAIAACBACRNb3J0YWwxMzAEAAgAAIIAJE1vcnRhbDEzMQQACAAAgwAkTW9ydGFsMTMyBAAIAACEACRNb3J0YWwxMzMEAAgAAIUAJE1vcnRhbDEzNAQACAAAhgAkTW9ydGFsMTM1BAAIAACHACRNb3J0YWwxMzYEAAgAAIgAJE1vcnRhbDEzNwQACAAAiQAkTW9ydGFsMTM4BAAIAACKACRNb3J0YWwxMzkEAAgAAIsAJE1vcnRhbDE0MAQACAAAjAAkTW9ydGFsMTQxBAAIAACNACRNb3J0YWwxNDIEAAgAAI4AJE1vcnRhbDE0MwQACAAAjwAkTW9ydGFsMTQ0BAAIAACQACRNb3J0YWwxNDUEAAgAAJEAJE1vcnRhbDE0NgQACAAAkgAkTW9ydGFsMTQ3BAAIAACTACRNb3J0YWwxNDgEAAgAAJQAJE1vcnRhbDE0OQQACAAAlQAkTW9ydGFsMTUwBAAIAACWACRNb3J0YWwxNTEEAAgAAJcAJE1vcnRhbDE1MgQACAAAmAAkTW9ydGFsMTUzBAAIAACZACRNb3J0YWwxNTQEAAgAAJoAJE1vcnRhbDE1NQQACAAAmwAkTW9ydGFsMTU2BAAIAACcACRNb3J0YWwxNTcEAAgAAJ0AJE1vcnRhbDE1OAQACAAAngAkTW9ydGFsMTU5BAAIAACfACRNb3J0YWwxNjAEAAgAAKAAJE1vcnRhbDE2MQQACAAAoQAkTW9ydGFsMTYyBAAIAACiACRNb3J0YWwxNjMEAAgAAKMAJE1vcnRhbDE2NAQACAAApAAkTW9ydGFsMTY1BAAIAAClACRNb3J0YWwxNjYEAAgAAKYAJE1vcnRhbDE2NwQACAAApwAkTW9ydGFsMTY4BAAIAACoACRNb3J0YWwxNjkEAAgAAKkAJE1vcnRhbDE3MAQACAAAqgAkTW9ydGFsMTcxBAAIAACrACRNb3J0YWwxNzIEAAgAAKwAJE1vcnRhbDE3MwQACAAArQAkTW9ydGFsMTc0BAAIAACuACRNb3J0YWwxNzUEAAgAAK8AJE1vcnRhbDE3NgQACAAAsAAkTW9ydGFsMTc3BAAIAACxACRNb3J0YWwxNzgEAAgAALIAJE1vcnRhbDE3OQQACAAAswAkTW9ydGFsMTgwBAAIAAC0ACRNb3J0YWwxODEEAAgAALUAJE1vcnRhbDE4MgQACAAAtgAkTW9ydGFsMTgzBAAIAAC3ACRNb3J0YWwxODQEAAgAALgAJE1vcnRhbDE4NQQACAAAuQAkTW9ydGFsMTg2BAAIAAC6ACRNb3J0YWwxODcEAAgAALsAJE1vcnRhbDE4OAQACAAAvAAkTW9ydGFsMTg5BAAIAAC9ACRNb3J0YWwxOTAEAAgAAL4AJE1vcnRhbDE5MQQACAAAvwAkTW9ydGFsMTkyBAAIAADAACRNb3J0YWwxOTMEAAgAAMEAJE1vcnRhbDE5NAQACAAAwgAkTW9ydGFsMTk1BAAIAADDACRNb3J0YWwxOTYEAAgAAMQAJE1vcnRhbDE5NwQACAAAxQAkTW9ydGFsMTk4BAAIAADGACRNb3J0YWwxOTkEAAgAAMcAJE1vcnRhbDIwMAQACAAAyAAkTW9ydGFsMjAxBAAIAADJACRNb3J0YWwyMDIEAAgAAMoAJE1vcnRhbDIwMwQACAAAywAkTW9ydGFsMjA0BAAIAADMACRNb3J0YWwyMDUEAAgAAM0AJE1vcnRhbDIwNgQACAAAzgAkTW9ydGFsMjA3BAAIAADPACRNb3J0YWwyMDgEAAgAANAAJE1vcnRhbDIwOQQACAAA0QAkTW9ydGFsMjEwBAAIAADSACRNb3J0YWwyMTEEAAgAANMAJE1vcnRhbDIxMgQACAAA1AAkTW9ydGFsMjEzBAAIAADVACRNb3J0YWwyMTQEAAgAANYAJE1vcnRhbDIxNQQACAAA1wAkTW9ydGFsMjE2BAAIAADYACRNb3J0YWwyMTcEAAgAANkAJE1vcnRhbDIxOAQACAAA2gAkTW9ydGFsMjE5BAAIAADbACRNb3J0YWwyMjAEAAgAANwAJE1vcnRhbDIyMQQACAAA3QAkTW9ydGFsMjIyBAAIAADeACRNb3J0YWwyMjMEAAgAAN8AJE1vcnRhbDIyNAQACAAA4AAkTW9ydGFsMjI1BAAIAADhACRNb3J0YWwyMjYEAAgAAOIAJE1vcnRhbDIyNwQACAAA4wAkTW9ydGFsMjI4BAAIAADkACRNb3J0YWwyMjkEAAgAAOUAJE1vcnRhbDIzMAQACAAA5gAkTW9ydGFsMjMxBAAIAADnACRNb3J0YWwyMzIEAAgAAOgAJE1vcnRhbDIzMwQACAAA6QAkTW9ydGFsMjM0BAAIAADqACRNb3J0YWwyMzUEAAgAAOsAJE1vcnRhbDIzNgQACAAA7AAkTW9ydGFsMjM3BAAIAADtACRNb3J0YWwyMzgEAAgAAO4AJE1vcnRhbDIzOQQACAAA7wAkTW9ydGFsMjQwBAAIAADwACRNb3J0YWwyNDEEAAgAAPEAJE1vcnRhbDI0MgQACAAA8gAkTW9ydGFsMjQzBAAIAADzACRNb3J0YWwyNDQEAAgAAPQAJE1vcnRhbDI0NQQACAAA9QAkTW9ydGFsMjQ2BAAIAAD2ACRNb3J0YWwyNDcEAAgAAPcAJE1vcnRhbDI0OAQACAAA+AAkTW9ydGFsMjQ5BAAIAAD5ACRNb3J0YWwyNTAEAAgAAPoAJE1vcnRhbDI1MQQACAAA+wAkTW9ydGFsMjUyBAAIAAD8ACRNb3J0YWwyNTMEAAgAAP0AJE1vcnRhbDI1NAQACAAA/gAkTW9ydGFsMjU1BAAIAAD/AADZBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMsY2hlY2tfbm9uY2UoQ2hlY2tOb25jZQQEVAAABABsASBUOjpOb25jZQAA3QYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zMGNoZWNrX3dlaWdodCxDaGVja1dlaWdodAQEVAAAAADhBghocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnRgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW50BARUAAAEADwBMEJhbGFuY2VPZjxUPgAA5QYINHBhbGxldF9jbGFpbXM0VmFsaWRhdGVDbGFpbQQEVAAAAADpBgh0ZnJhbWVfbWV0YWRhdGFfaGFzaF9leHRlbnNpb25EQ2hlY2tNZXRhZGF0YUhhc2gEBFQAAAQBEG1vZGXtBgEQTW9kZQAA7QYIdGZyYW1lX21ldGFkYXRhX2hhc2hfZXh0ZW5zaW9uEE1vZGUAAQggRGlzYWJsZWQAAAAcRW5hYmxlZAABAADxBgQYT3B0aW9uBARUAQQBCBBOb25lAAAAEFNvbWUEAAQAAAEAAPUGCDBmcmFtZV9zeXN0ZW0sQWNjb3VudEluZm8IFE5vbmNlASgsQWNjb3VudERhdGEB+QYAFAEUbm9uY2UoARROb25jZQABJGNvbnN1bWVycygBIFJlZkNvdW50AAEkcHJvdmlkZXJzKAEgUmVmQ291bnQAASxzdWZmaWNpZW50cygBIFJlZkNvdW50AAEQZGF0YfkGASxBY2NvdW50RGF0YQAA+QYMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxBY2NvdW50RGF0YQQcQmFsYW5jZQFAABABEGZyZWVAARxCYWxhbmNlAAEgcmVzZXJ2ZWRAARxCYWxhbmNlAAEYZnJvemVuQAEcQmFsYW5jZQABFGZsYWdz/QYBKEV4dHJhRmxhZ3MAAP0GDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMoRXh0cmFGbGFncwAABABAARB1MTI4AAABBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUAeQADAEYbm9ybWFs5AEEVAABLG9wZXJhdGlvbmFs5AEEVAABJG1hbmRhdG9yeeQBBFQAAAUHAAACCQcACQcIMGZyYW1lX3N5c3RlbSxFdmVudFJlY29yZAgERQENBwRUASwADAEUcGhhc2X5CAEUUGhhc2UAARRldmVudA0HAQRFAAEYdG9waWNz7AEYVmVjPFQ+AAANBwg8aHlkcmFkeF9ydW50aW1lMFJ1bnRpbWVFdmVudAABFQEYU3lzdGVtBAARBwFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgABACBCYWxhbmNlcwQAOQcBfHBhbGxldF9iYWxhbmNlczo6RXZlbnQ8UnVudGltZT4ABwBIVHJhbnNhY3Rpb25QYXltZW50BABBBwGocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AAkAXE11bHRpVHJhbnNhY3Rpb25QYXltZW50BABFBwHAcGFsbGV0X3RyYW5zYWN0aW9uX211bHRpX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AMsAIFRyZWFzdXJ5BABJBwF8cGFsbGV0X3RyZWFzdXJ5OjpFdmVudDxSdW50aW1lPgALABxVdGlsaXR5BABNBwFUcGFsbGV0X3V0aWxpdHk6OkV2ZW50AA0AIFByZWltYWdlBABVBwF8cGFsbGV0X3ByZWltYWdlOjpFdmVudDxSdW50aW1lPgAPACBJZGVudGl0eQQAWQcBfHBhbGxldF9pZGVudGl0eTo6RXZlbnQ8UnVudGltZT4AEQAkRGVtb2NyYWN5BABdBwGAcGFsbGV0X2RlbW9jcmFjeTo6RXZlbnQ8UnVudGltZT4AEwBIVGVjaG5pY2FsQ29tbWl0dGVlBABlBwH8cGFsbGV0X2NvbGxlY3RpdmU6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTI+ABkAFFByb3h5BABpBwFwcGFsbGV0X3Byb3h5OjpFdmVudDxSdW50aW1lPgAdACBNdWx0aXNpZwQAcQcBfHBhbGxldF9tdWx0aXNpZzo6RXZlbnQ8UnVudGltZT4AHwAcVW5pcXVlcwQAdQcBeHBhbGxldF91bmlxdWVzOjpFdmVudDxSdW50aW1lPgAgAEhTdGF0ZVRyaWVNaWdyYXRpb24EAHkHAaxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkV2ZW50PFJ1bnRpbWU+ACMAQENvbnZpY3Rpb25Wb3RpbmcEAIUHAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkV2ZW50PFJ1bnRpbWU+ACQAJFJlZmVyZW5kYQQAiQcBgHBhbGxldF9yZWZlcmVuZGE6OkV2ZW50PFJ1bnRpbWU+ACUAJFdoaXRlbGlzdAQAkQcBgHBhbGxldF93aGl0ZWxpc3Q6OkV2ZW50PFJ1bnRpbWU+ACcAKERpc3BhdGNoZXIEAKEHAYRwYWxsZXRfZGlzcGF0Y2hlcjo6RXZlbnQ8UnVudGltZT4AKAA0QXNzZXRSZWdpc3RyeQQApQcBlHBhbGxldF9hc3NldF9yZWdpc3RyeTo6RXZlbnQ8UnVudGltZT4AMwAYQ2xhaW1zBACpBwF0cGFsbGV0X2NsYWltczo6RXZlbnQ8UnVudGltZT4ANQA8Q29sbGF0b3JSZXdhcmRzBACxBwGccGFsbGV0X2NvbGxhdG9yX3Jld2FyZHM6OkV2ZW50PFJ1bnRpbWU+ADkAQENvbGxhdG9yUm90YXRpb24EALUHAaBwYWxsZXRfY29sbGF0b3Jfcm90YXRpb246OkV2ZW50PFJ1bnRpbWU+ADoAIE9tbmlwb29sBAC5BwF8cGFsbGV0X29tbmlwb29sOjpFdmVudDxSdW50aW1lPgA7AEBUcmFuc2FjdGlvblBhdXNlBAC9BwGgcGFsbGV0X3RyYW5zYWN0aW9uX3BhdXNlOjpFdmVudDxSdW50aW1lPgA8ABhEdXN0ZXIEAMEHAXRwYWxsZXRfZHVzdGVyOjpFdmVudDxSdW50aW1lPgA9AExPbW5pcG9vbFdhcmVob3VzZUxNBADFBwFJAXdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjpFdmVudDxSdW50aW1lLCB3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6Ckluc3RhbmNlMT4APgBcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcEAMkHAcBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZzo6RXZlbnQ8UnVudGltZT4APwAMT1RDBADNBwFocGFsbGV0X290Yzo6RXZlbnQ8UnVudGltZT4AQAA4Q2lyY3VpdEJyZWFrZXIEANEHAZhwYWxsZXRfY2lyY3VpdF9icmVha2VyOjpFdmVudDxSdW50aW1lPgBBABhSb3V0ZXIEANUHAZRwYWxsZXRfcm91dGVfZXhlY3V0b3I6OkV2ZW50PFJ1bnRpbWU+AEMALER5bmFtaWNGZWVzBADZBwGMcGFsbGV0X2R5bmFtaWNfZmVlczo6RXZlbnQ8UnVudGltZT4ARAAcU3Rha2luZwQA3QcBeHBhbGxldF9zdGFraW5nOjpFdmVudDxSdW50aW1lPgBFAChTdGFibGVzd2FwBADhBwGEcGFsbGV0X3N0YWJsZXN3YXA6OkV2ZW50PFJ1bnRpbWU+AEYAFEJvbmRzBAD5BwFwcGFsbGV0X2JvbmRzOjpFdmVudDxSdW50aW1lPgBHADhPdGNTZXR0bGVtZW50cwQA/QcBmHBhbGxldF9vdGNfc2V0dGxlbWVudHM6OkV2ZW50PFJ1bnRpbWU+AEgADExCUAQAAQgBaHBhbGxldF9sYnA6OkV2ZW50PFJ1bnRpbWU+AEkADFhZSwQACQgBaHBhbGxldF94eWs6OkV2ZW50PFJ1bnRpbWU+AEoAJFJlZmVycmFscwQADQgBgHBhbGxldF9yZWZlcnJhbHM6OkV2ZW50PFJ1bnRpbWU+AEsALExpcXVpZGF0aW9uBAAVCAGIcGFsbGV0X2xpcXVpZGF0aW9uOjpFdmVudDxSdW50aW1lPgBMAAxIU00EABkIAWhwYWxsZXRfaHNtOjpFdmVudDxSdW50aW1lPgBSABhTaWduZXQEAB0IAXRwYWxsZXRfc2lnbmV0OjpFdmVudDxSdW50aW1lPgBUADBFdGhEaXNwZW5zZXIEACEIAYBwYWxsZXRfZGlzcGVuc2VyOjpFdmVudDxSdW50aW1lPgBVABxHaWdhSGR4BAAlCAF4cGFsbGV0X2dpZ2FoZHg6OkV2ZW50PFJ1bnRpbWU+AFYAOEdpZ2FIZHhSZXdhcmRzBAApCAGYcGFsbGV0X2dpZ2FoZHhfcmV3YXJkczo6RXZlbnQ8UnVudGltZT4AVwAYVG9rZW5zBAAtCAFsb3JtbF90b2tlbnM6OkV2ZW50PFJ1bnRpbWU+AE0AKEN1cnJlbmNpZXMEADEIAYRwYWxsZXRfY3VycmVuY2llczo6RXZlbnQ8UnVudGltZT4ATwAcVmVzdGluZwQANQgBcG9ybWxfdmVzdGluZzo6RXZlbnQ8UnVudGltZT4AUQAMRVZNBAA5CAFocGFsbGV0X2V2bTo6RXZlbnQ8UnVudGltZT4AWgAgRXRoZXJldW0EAEEIAVhwYWxsZXRfZXRoZXJldW06OkV2ZW50AFwALEVWTUFjY291bnRzBABlCAGMcGFsbGV0X2V2bV9hY2NvdW50czo6RXZlbnQ8UnVudGltZT4AXQBIWFlLTGlxdWlkaXR5TWluaW5nBABpCAGscGFsbGV0X3h5a19saXF1aWRpdHlfbWluaW5nOjpFdmVudDxSdW50aW1lPgBfADhYWUtXYXJlaG91c2VMTQQAbQgBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXZlbnQ8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTI+AGAAOFJlbGF5Q2hhaW5JbmZvBABxCAGYcGFsbGV0X3JlbGF5Y2hhaW5faW5mbzo6RXZlbnQ8UnVudGltZT4AyQAMRENBBAB1CAFocGFsbGV0X2RjYTo6RXZlbnQ8UnVudGltZT4AQgAkU2NoZWR1bGVyBAB5CAGAcGFsbGV0X3NjaGVkdWxlcjo6RXZlbnQ8UnVudGltZT4ABQA8UGFyYWNoYWluU3lzdGVtBAB9CAG8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbTo6RXZlbnQ8UnVudGltZT4AZwAsUG9sa2Fkb3RYY20EAIEIAWhwYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgBrAChDdW11bHVzWGNtBACRCAGIY3VtdWx1c19wYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgBtACRYY21wUXVldWUEAJUIAaRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlOjpFdmVudDxSdW50aW1lPgBvADBNZXNzYWdlUXVldWUEAJkIAZBwYWxsZXRfbWVzc2FnZV9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AcgBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEAKEIAYRwYWxsZXRfbWlncmF0aW9uczo6RXZlbnQ8UnVudGltZT4AdAAcT3JtbFhjbQQApQgBYG9ybWxfeGNtOjpFdmVudDxSdW50aW1lPgCHABxYVG9rZW5zBACpCAFwb3JtbF94dG9rZW5zOjpFdmVudDxSdW50aW1lPgCJADRVbmtub3duVG9rZW5zBACtCAFob3JtbF91bmtub3duX3Rva2Vuczo6RXZlbnQAiwBEQ29sbGF0b3JTZWxlY3Rpb24EALEIAaRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uOjpFdmVudDxSdW50aW1lPgCjABxTZXNzaW9uBAC1CAF4cGFsbGV0X3Nlc3Npb246OkV2ZW50PFJ1bnRpbWU+AKUAJEVtYU9yYWNsZQQAuQgBhHBhbGxldF9lbWFfb3JhY2xlOjpFdmVudDxSdW50aW1lPgDKACRCcm9hZGNhc3QEAM0IAYBwYWxsZXRfYnJvYWRjYXN0OjpFdmVudDxSdW50aW1lPgDMADBGZWVQcm9jZXNzb3IEAPUIAZBwYWxsZXRfZmVlX3Byb2Nlc3Nvcjo6RXZlbnQ8UnVudGltZT4AzwAAEQcMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXZlbnQEBFQAASBARXh0cmluc2ljU3VjY2VzcwQBNGRpc3BhdGNoX2luZm8VBwFERGlzcGF0Y2hFdmVudEluZm8AAASQQW4gZXh0cmluc2ljIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuPEV4dHJpbnNpY0ZhaWxlZAgBOGRpc3BhdGNoX2Vycm9yIQcBNERpc3BhdGNoRXJyb3IAATRkaXNwYXRjaF9pbmZvFQcBRERpc3BhdGNoRXZlbnRJbmZvAAEEUEFuIGV4dHJpbnNpYyBmYWlsZWQuLENvZGVVcGRhdGVkAAIEUGA6Y29kZWAgd2FzIHVwZGF0ZWQuKE5ld0FjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAMEaEEgbmV3IGFjY291bnQgd2FzIGNyZWF0ZWQuNEtpbGxlZEFjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAQEWEFuIGFjY291bnQgd2FzIHJlYXBlZC4gUmVtYXJrZWQIARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARBoYXNoLAEcVDo6SGFzaAAFBHBPbiBvbi1jaGFpbiByZW1hcmsgaGFwcGVuZWQuRFVwZ3JhZGVBdXRob3JpemVkCAEkY29kZV9oYXNoLAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb25EARBib29sAAYEaEFuIHVwZ3JhZGUgd2FzIGF1dGhvcml6ZWQugFJlamVjdGVkSW52YWxpZEF1dGhvcml6ZWRVcGdyYWRlCAEkY29kZV9oYXNoLAEcVDo6SGFzaAABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IABwQRAUFuIGludmFsaWQgYXV0aG9yaXplZCB1cGdyYWRlIHdhcyByZWplY3RlZCB3aGlsZSB0cnlpbmcgdG8gYXBwbHkgaXQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuFQcIMGZyYW1lX3N5c3RlbUREaXNwYXRjaEV2ZW50SW5mbwAADAEYd2VpZ2h05AEYV2VpZ2h0AAEUY2xhc3MZBwE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlHQcBEFBheXMAABkHDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoNERpc3BhdGNoQ2xhc3MAAQwYTm9ybWFsAAAALE9wZXJhdGlvbmFsAAEAJE1hbmRhdG9yeQACAAAdBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAAAhBwgoc3BfcnVudGltZTREaXNwYXRjaEVycm9yAAE8FE90aGVyAAAAMENhbm5vdExvb2t1cAABACRCYWRPcmlnaW4AAgAYTW9kdWxlBAAlBwEsTW9kdWxlRXJyb3IAAwBEQ29uc3VtZXJSZW1haW5pbmcABAAsTm9Qcm92aWRlcnMABQBAVG9vTWFueUNvbnN1bWVycwAGABRUb2tlbgQAKQcBKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQALQcBPEFyaXRobWV0aWNFcnJvcgAIADRUcmFuc2FjdGlvbmFsBAAxBwFIVHJhbnNhY3Rpb25hbEVycm9yAAkAJEV4aGF1c3RlZAAKAChDb3JydXB0aW9uAAsALFVuYXZhaWxhYmxlAAwAOFJvb3ROb3RBbGxvd2VkAA0AEFRyaWUEADUHASRUcmllRXJyb3IADgAAJQcIKHNwX3J1bnRpbWUsTW9kdWxlRXJyb3IAAAgBFGluZGV4CAEIdTgAARRlcnJvcrgBjFt1ODsgTUFYX01PRFVMRV9FUlJPUl9FTkNPREVEX1NJWkVdAAApBwgoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAAAtBwg0c3BfYXJpdGhtZXRpYzxBcml0aG1ldGljRXJyb3IAAQwkVW5kZXJmbG93AAAAIE92ZXJmbG93AAEAOERpdmlzaW9uQnlaZXJvAAIAADEHCChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAAA1Bwwoc3BfcnVudGltZTBwcm92aW5nX3RyaWUkVHJpZUVycm9yAAE4QEludmFsaWRTdGF0ZVJvb3QAAABISW5jb21wbGV0ZURhdGFiYXNlAAEAUFZhbHVlQXRJbmNvbXBsZXRlS2V5AAIAMERlY29kZXJFcnJvcgADACxJbnZhbGlkSGFzaAAEADBEdXBsaWNhdGVLZXkABQA4RXh0cmFuZW91c05vZGUABgA8RXh0cmFuZW91c1ZhbHVlAAcAXEV4dHJhbmVvdXNIYXNoUmVmZXJlbmNlAAgAVEludmFsaWRDaGlsZFJlZmVyZW5jZQAJADRWYWx1ZU1pc21hdGNoAAoAPEluY29tcGxldGVQcm9vZgALADBSb290TWlzbWF0Y2gADAAsRGVjb2RlRXJyb3IADQAAOQcMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQURXZlbnQIBFQABEkAAVgcRW5kb3dlZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAATBmcmVlX2JhbGFuY2VAAShUOjpCYWxhbmNlAAAEuEFuIGFjY291bnQgd2FzIGNyZWF0ZWQgd2l0aCBzb21lIGZyZWUgYmFsYW5jZS4gRHVzdExvc3QIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABCD0BQW4gYWNjb3VudCB3YXMgcmVtb3ZlZCB3aG9zZSBiYWxhbmNlIHdhcyBub24temVybyBidXQgYmVsb3cgRXhpc3RlbnRpYWxEZXBvc2l0LHhyZXN1bHRpbmcgaW4gYW4gb3V0cmlnaHQgbG9zcy4gVHJhbnNmZXIMARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAIETFRyYW5zZmVyIHN1Y2NlZWRlZC4oQmFsYW5jZVNldAgBDHdobwABMFQ6OkFjY291bnRJZAABEGZyZWVAAShUOjpCYWxhbmNlAAMEaEEgYmFsYW5jZSB3YXMgc2V0IGJ5IHJvb3QuIFJlc2VydmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAEBOBTb21lIGJhbGFuY2Ugd2FzIHJlc2VydmVkIChtb3ZlZCBmcm9tIGZyZWUgdG8gcmVzZXJ2ZWQpLihVbnJlc2VydmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAFBOhTb21lIGJhbGFuY2Ugd2FzIHVucmVzZXJ2ZWQgKG1vdmVkIGZyb20gcmVzZXJ2ZWQgdG8gZnJlZSkuSFJlc2VydmVSZXBhdHJpYXRlZBABEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAUhkZXN0aW5hdGlvbl9zdGF0dXM9BwEYU3RhdHVzAAYITQFTb21lIGJhbGFuY2Ugd2FzIG1vdmVkIGZyb20gdGhlIHJlc2VydmUgb2YgdGhlIGZpcnN0IGFjY291bnQgdG8gdGhlIHNlY29uZCBhY2NvdW50LthGaW5hbCBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIGJhbGFuY2UgdHlwZS4cRGVwb3NpdAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UABwTYU29tZSBhbW91bnQgd2FzIGRlcG9zaXRlZCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuIFdpdGhkcmF3CAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAIBB0BU29tZSBhbW91bnQgd2FzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4cU2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACQQBAVNvbWUgYW1vdW50IHdhcyByZW1vdmVkIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIG1pc2JlaGF2aW9yKS4YTWludGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAKBJxTb21lIGFtb3VudCB3YXMgbWludGVkIGludG8gYW4gYWNjb3VudC4YQnVybmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQALBJxTb21lIGFtb3VudCB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC4kU3VzcGVuZGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAMBBUBU29tZSBhbW91bnQgd2FzIHN1c3BlbmRlZCBmcm9tIGFuIGFjY291bnQgKGl0IGNhbiBiZSByZXN0b3JlZCBsYXRlcikuIFJlc3RvcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQANBKRTb21lIGFtb3VudCB3YXMgcmVzdG9yZWQgaW50byBhbiBhY2NvdW50LiBVcGdyYWRlZAQBDHdobwABMFQ6OkFjY291bnRJZAAOBGBBbiBhY2NvdW50IHdhcyB1cGdyYWRlZC4YSXNzdWVkBAEYYW1vdW50QAEoVDo6QmFsYW5jZQAPBC0BVG90YWwgaXNzdWFuY2Ugd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBjcmVkaXQgdG8gYmUgYmFsYW5jZWQuJFJlc2NpbmRlZAQBGGFtb3VudEABKFQ6OkJhbGFuY2UAEAQlAVRvdGFsIGlzc3VhbmNlIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgZGVidCB0byBiZSBiYWxhbmNlZC4YTG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQARBGBTb21lIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlABIEaFNvbWUgYmFsYW5jZSB3YXMgdW5sb2NrZWQuGEZyb3plbggBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAEwRgU29tZSBiYWxhbmNlIHdhcyBmcm96ZW4uGFRoYXdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAFARgU29tZSBiYWxhbmNlIHdhcyB0aGF3ZWQuTFRvdGFsSXNzdWFuY2VGb3JjZWQIAQxvbGRAAShUOjpCYWxhbmNlAAEMbmV3QAEoVDo6QmFsYW5jZQAVBKxUaGUgYFRvdGFsSXNzdWFuY2VgIHdhcyBmb3JjZWZ1bGx5IGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0PQcUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjNEJhbGFuY2VTdGF0dXMAAQgQRnJlZQAAACBSZXNlcnZlZAABAABBBwxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEESFRyYW5zYWN0aW9uRmVlUGFpZAwBDHdobwABMFQ6OkFjY291bnRJZAABKGFjdHVhbF9mZWVAATBCYWxhbmNlT2Y8VD4AAQx0aXBAATBCYWxhbmNlT2Y8VD4AAAhZAUEgdHJhbnNhY3Rpb24gZmVlIGBhY3R1YWxfZmVlYCwgb2Ygd2hpY2ggYHRpcGAgd2FzIGFkZGVkIHRvIHRoZSBtaW5pbXVtIGluY2x1c2lvbiBmZWUsXGhhcyBiZWVuIHBhaWQgYnkgYHdob2AuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0RQcMgHBhbGxldF90cmFuc2FjdGlvbl9tdWx0aV9wYXltZW50GHBhbGxldBRFdmVudAQEVAABFCxDdXJyZW5jeVNldAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBMEFzc2V0SWRPZjxUPgAACCxDdXJyZW5jeVNldDxbd2hvLCBjdXJyZW5jeV00Q3VycmVuY3lBZGRlZAQBIGFzc2V0X2lkKAEwQXNzZXRJZE9mPFQ+AAEIbE5ldyBhY2NlcHRlZCBjdXJyZW5jeSBhZGRlZChbY3VycmVuY3ldPEN1cnJlbmN5UmVtb3ZlZAQBIGFzc2V0X2lkKAEwQXNzZXRJZE9mPFQ+AAIIZEFjY2VwdGVkIGN1cnJlbmN5IHJlbW92ZWQoW2N1cnJlbmN5XTBGZWVXaXRoZHJhd24UAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoATBBc3NldElkT2Y8VD4AAURuYXRpdmVfZmVlX2Ftb3VudEABMEJhbGFuY2VPZjxUPgABVG5vbl9uYXRpdmVfZmVlX2Ftb3VudEABMEJhbGFuY2VPZjxUPgABWGRlc3RpbmF0aW9uX2FjY291bnRfaWQAATBUOjpBY2NvdW50SWQAAwisVHJhbnNhY3Rpb24gZmVlIHBhaWQgaW4gbm9uLW5hdGl2ZSBjdXJyZW5jeUkBW0FjY291bnQsIEN1cnJlbmN5LCBOYXRpdmUgZmVlIGFtb3VudCwgTm9uLW5hdGl2ZSBmZWUgYW1vdW50LCBEZXN0aW5hdGlvbiBhY2NvdW50XTBGZWVTcG9uc29yZWQIARBmcm9tWAEQSDE2MAABJGZlZV9wYXllcgABMFQ6OkFjY291bnRJZAAEBJxTaWduZWQtYnJhbmNoIGRpc3BhdGNoIHBlcm1pdCBmZWUgcGF5ZXIEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRJBww8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABMCBTcGVuZGluZwQBQGJ1ZGdldF9yZW1haW5pbmdAATxCYWxhbmNlT2Y8VCwgST4AAATkV2UgaGF2ZSBlbmRlZCBhIHNwZW5kIHBlcmlvZCBhbmQgd2lsbCBub3cgYWxsb2NhdGUgZnVuZHMuHEF3YXJkZWQMAThwcm9wb3NhbF9pbmRleCgBNFByb3Bvc2FsSW5kZXgAARRhd2FyZEABPEJhbGFuY2VPZjxULCBJPgABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAQR8U29tZSBmdW5kcyBoYXZlIGJlZW4gYWxsb2NhdGVkLhRCdXJudAQBLGJ1cm50X2Z1bmRzQAE8QmFsYW5jZU9mPFQsIEk+AAIEiFNvbWUgb2Ygb3VyIGZ1bmRzIGhhdmUgYmVlbiBidXJudC4gUm9sbG92ZXIEAUByb2xsb3Zlcl9iYWxhbmNlQAE8QmFsYW5jZU9mPFQsIEk+AAMELQFTcGVuZGluZyBoYXMgZmluaXNoZWQ7IHRoaXMgaXMgdGhlIGFtb3VudCB0aGF0IHJvbGxzIG92ZXIgdW50aWwgbmV4dCBzcGVuZC4cRGVwb3NpdAQBFHZhbHVlQAE8QmFsYW5jZU9mPFQsIEk+AAQEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGRlcG9zaXRlZC40U3BlbmRBcHByb3ZlZAwBOHByb3Bvc2FsX2luZGV4KAE0UHJvcG9zYWxJbmRleAABGGFtb3VudEABPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAUEnEEgbmV3IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLjxVcGRhdGVkSW5hY3RpdmUIASxyZWFjdGl2YXRlZEABPEJhbGFuY2VPZjxULCBJPgABLGRlYWN0aXZhdGVkQAE8QmFsYW5jZU9mPFQsIEk+AAYEzFRoZSBpbmFjdGl2ZSBmdW5kcyBvZiB0aGUgcGFsbGV0IGhhdmUgYmVlbiB1cGRhdGVkLkhBc3NldFNwZW5kQXBwcm92ZWQYARRpbmRleCgBKFNwZW5kSW5kZXgAAShhc3NldF9raW5kcAEwVDo6QXNzZXRLaW5kAAEYYW1vdW50QAFQQXNzZXRCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABOFQ6OkJlbmVmaWNpYXJ5AAEodmFsaWRfZnJvbSgBUEJsb2NrTnVtYmVyRm9yPFQsIEk+AAEkZXhwaXJlX2F0KAFQQmxvY2tOdW1iZXJGb3I8VCwgST4ABwS0QSBuZXcgYXNzZXQgc3BlbmQgcHJvcG9zYWwgaGFzIGJlZW4gYXBwcm92ZWQuQEFzc2V0U3BlbmRWb2lkZWQEARRpbmRleCgBKFNwZW5kSW5kZXgACAR0QW4gYXBwcm92ZWQgc3BlbmQgd2FzIHZvaWRlZC4QUGFpZAgBFGluZGV4KAEoU3BlbmRJbmRleAABKHBheW1lbnRfaWRwAWQ8VDo6UGF5bWFzdGVyIGFzIFBheT46OklkAAkETEEgcGF5bWVudCBoYXBwZW5lZC40UGF5bWVudEZhaWxlZAgBFGluZGV4KAEoU3BlbmRJbmRleAABKHBheW1lbnRfaWRwAWQ8VDo6UGF5bWFzdGVyIGFzIFBheT46OklkAAoEkEEgcGF5bWVudCBmYWlsZWQgYW5kIGNhbiBiZSByZXRyaWVkLjhTcGVuZFByb2Nlc3NlZAQBFGluZGV4KAEoU3BlbmRJbmRleAALCE0BQSBzcGVuZCB3YXMgcHJvY2Vzc2VkIGFuZCByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UuIEl0IG1pZ2h0IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHlwcGFpZCBvciBpdCBtYXkgaGF2ZSBleHBpcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldE0HDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQURXZlbnQAASBAQmF0Y2hJbnRlcnJ1cHRlZAgBFGluZGV4KAEMdTMyAAEUZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgAACFUBQmF0Y2ggb2YgZGlzcGF0Y2hlcyBkaWQgbm90IGNvbXBsZXRlIGZ1bGx5LiBJbmRleCBvZiBmaXJzdCBmYWlsaW5nIGRpc3BhdGNoIGdpdmVuLCBhc0h3ZWxsIGFzIHRoZSBlcnJvci44QmF0Y2hDb21wbGV0ZWQAAQTIQmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgZnVsbHkgd2l0aCBubyBlcnJvci5gQmF0Y2hDb21wbGV0ZWRXaXRoRXJyb3JzAAIEtEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGJ1dCBoYXMgZXJyb3JzLjRJdGVtQ29tcGxldGVkAAMEHQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIG5vIGVycm9yLihJdGVtRmFpbGVkBAEUZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgAEBBEBQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBlcnJvci4wRGlzcGF0Y2hlZEFzBAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAUEWEEgY2FsbCB3YXMgZGlzcGF0Y2hlZC5ESWZFbHNlTWFpblN1Y2Nlc3MABgRkTWFpbiBjYWxsIHdhcyBkaXNwYXRjaGVkLlBJZkVsc2VGYWxsYmFja0NhbGxlZAQBKG1haW5fZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgAHBIRUaGUgZmFsbGJhY2sgY2FsbCB3YXMgZGlzcGF0Y2hlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRRBwQYUmVzdWx0CARUAXAERQEhBwEICE9rBABwAAAAAAxFcnIEACEHAAABAABVBww8cGFsbGV0X3ByZWltYWdlGHBhbGxldBRFdmVudAQEVAABDBROb3RlZAQBEGhhc2gsARxUOjpIYXNoAAAEaEEgcHJlaW1hZ2UgaGFzIGJlZW4gbm90ZWQuJFJlcXVlc3RlZAQBEGhhc2gsARxUOjpIYXNoAAEEeEEgcHJlaW1hZ2UgaGFzIGJlZW4gcmVxdWVzdGVkLhxDbGVhcmVkBAEQaGFzaCwBHFQ6Okhhc2gAAgRsQSBwcmVpbWFnZSBoYXMgYmVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0WQcMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQURXZlbnQEBFQAAVgsSWRlbnRpdHlTZXQEAQx3aG8AATBUOjpBY2NvdW50SWQAAATsQSBuYW1lIHdhcyBzZXQgb3IgcmVzZXQgKHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBqdWRnZW1lbnRzKS48SWRlbnRpdHlDbGVhcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABBMxBIG5hbWUgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSByZXR1cm5lZC44SWRlbnRpdHlLaWxsZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAIExEEgbmFtZSB3YXMgcmVtb3ZlZCBhbmQgdGhlIGdpdmVuIGJhbGFuY2Ugc2xhc2hlZC5ISnVkZ2VtZW50UmVxdWVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4KAE4UmVnaXN0cmFySW5kZXgAAwScQSBqdWRnZW1lbnQgd2FzIGFza2VkIGZyb20gYSByZWdpc3RyYXIuUEp1ZGdlbWVudFVucmVxdWVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4KAE4UmVnaXN0cmFySW5kZXgABASIQSBqdWRnZW1lbnQgcmVxdWVzdCB3YXMgcmV0cmFjdGVkLjhKdWRnZW1lbnRHaXZlbggBGHRhcmdldAABMFQ6OkFjY291bnRJZAABPHJlZ2lzdHJhcl9pbmRleCgBOFJlZ2lzdHJhckluZGV4AAUElEEganVkZ2VtZW50IHdhcyBnaXZlbiBieSBhIHJlZ2lzdHJhci44UmVnaXN0cmFyQWRkZWQEATxyZWdpc3RyYXJfaW5kZXgoAThSZWdpc3RyYXJJbmRleAAGBFhBIHJlZ2lzdHJhciB3YXMgYWRkZWQuQFN1YklkZW50aXR5QWRkZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAHBPRBIHN1Yi1pZGVudGl0eSB3YXMgYWRkZWQgdG8gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IHBhaWQuQFN1YklkZW50aXRpZXNTZXQMARBtYWluAAEwVDo6QWNjb3VudElkAAE4bnVtYmVyX29mX3N1YnMoAQx1MzIAASxuZXdfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAIBLxBbiBhY2NvdW50J3Mgc3ViLWlkZW50aXRpZXMgd2VyZSBzZXQgKGluIGJ1bGspLkhTdWJJZGVudGl0eVJlbmFtZWQIAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAkEIQFBIGdpdmVuIHN1Yi1hY2NvdW50J3MgYXNzb2NpYXRlZCBuYW1lIHdhcyBjaGFuZ2VkIGJ5IGl0cyBzdXBlci1pZGVudGl0eS5IU3ViSWRlbnRpdHlSZW1vdmVkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4ACgQJAUEgc3ViLWlkZW50aXR5IHdhcyByZW1vdmVkIGZyb20gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IGZyZWVkLkhTdWJJZGVudGl0eVJldm9rZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgALCBkBQSBzdWItaWRlbnRpdHkgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gZGVwb3NpdCByZXBhdHJpYXRlZCBmcm9tIHRoZchtYWluIGlkZW50aXR5IGFjY291bnQgdG8gdGhlIHN1Yi1pZGVudGl0eSBhY2NvdW50LjhBdXRob3JpdHlBZGRlZAQBJGF1dGhvcml0eQABMFQ6OkFjY291bnRJZAAMBHxBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgYWRkZWQuQEF1dGhvcml0eVJlbW92ZWQEASRhdXRob3JpdHkAATBUOjpBY2NvdW50SWQADQSEQSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIHJlbW92ZWQuLFVzZXJuYW1lU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4ADgR0QSB1c2VybmFtZSB3YXMgc2V0IGZvciBgd2hvYC44VXNlcm5hbWVRdWV1ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgABKGV4cGlyYXRpb24oAURCbG9ja051bWJlckZvcjxUPgAPBBkBQSB1c2VybmFtZSB3YXMgcXVldWVkLCBidXQgYHdob2AgbXVzdCBhY2NlcHQgaXQgcHJpb3IgdG8gYGV4cGlyYXRpb25gLkhQcmVhcHByb3ZhbEV4cGlyZWQEARR3aG9zZQABMFQ6OkFjY291bnRJZAAQBDkBQSBxdWV1ZWQgdXNlcm5hbWUgcGFzc2VkIGl0cyBleHBpcmF0aW9uIHdpdGhvdXQgYmVpbmcgY2xhaW1lZCBhbmQgd2FzIHJlbW92ZWQuSFByaW1hcnlVc2VybmFtZVNldAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABEEAQFBIHVzZXJuYW1lIHdhcyBzZXQgYXMgYSBwcmltYXJ5IGFuZCBjYW4gYmUgbG9va2VkIHVwIGZyb20gYHdob2AuXERhbmdsaW5nVXNlcm5hbWVSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AEghdAUEgZGFuZ2xpbmcgdXNlcm5hbWUgKGFzIGluLCBhIHVzZXJuYW1lIGNvcnJlc3BvbmRpbmcgdG8gYW4gYWNjb3VudCB0aGF0IGhhcyByZW1vdmVkIGl0c2xpZGVudGl0eSkgaGFzIGJlZW4gcmVtb3ZlZC48VXNlcm5hbWVVbmJvdW5kBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AEwRwQSB1c2VybmFtZSBoYXMgYmVlbiB1bmJvdW5kLjxVc2VybmFtZVJlbW92ZWQEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAUBHBBIHVzZXJuYW1lIGhhcyBiZWVuIHJlbW92ZWQuOFVzZXJuYW1lS2lsbGVkBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AFQRsQSB1c2VybmFtZSBoYXMgYmVlbiBraWxsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0XQcMQHBhbGxldF9kZW1vY3JhY3kYcGFsbGV0FEV2ZW50BARUAAFEIFByb3Bvc2VkCAE4cHJvcG9zYWxfaW5kZXgoASRQcm9wSW5kZXgAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAAEvEEgbW90aW9uIGhhcyBiZWVuIHByb3Bvc2VkIGJ5IGEgcHVibGljIGFjY291bnQuGFRhYmxlZAgBOHByb3Bvc2FsX2luZGV4KAEkUHJvcEluZGV4AAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABBNhBIHB1YmxpYyBwcm9wb3NhbCBoYXMgYmVlbiB0YWJsZWQgZm9yIHJlZmVyZW5kdW0gdm90ZS44RXh0ZXJuYWxUYWJsZWQAAgSUQW4gZXh0ZXJuYWwgcHJvcG9zYWwgaGFzIGJlZW4gdGFibGVkLhxTdGFydGVkCAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAEkdGhyZXNob2xkYQcBNFZvdGVUaHJlc2hvbGQAAwRcQSByZWZlcmVuZHVtIGhhcyBiZWd1bi4YUGFzc2VkBAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAQErEEgcHJvcG9zYWwgaGFzIGJlZW4gYXBwcm92ZWQgYnkgcmVmZXJlbmR1bS4kTm90UGFzc2VkBAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAUErEEgcHJvcG9zYWwgaGFzIGJlZW4gcmVqZWN0ZWQgYnkgcmVmZXJlbmR1bS4kQ2FuY2VsbGVkBAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAYEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjYW5jZWxsZWQuJERlbGVnYXRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGHRhcmdldAABMFQ6OkFjY291bnRJZAAHBNxBbiBhY2NvdW50IGhhcyBkZWxlZ2F0ZWQgdGhlaXIgdm90ZSB0byBhbm90aGVyIGFjY291bnQuLFVuZGVsZWdhdGVkBAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAIBORBbiBhY2NvdW50IGhhcyBjYW5jZWxsZWQgYSBwcmV2aW91cyBkZWxlZ2F0aW9uIG9wZXJhdGlvbi4YVmV0b2VkDAEMd2hvAAEwVDo6QWNjb3VudElkAAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARR1bnRpbCgBREJsb2NrTnVtYmVyRm9yPFQ+AAkElEFuIGV4dGVybmFsIHByb3Bvc2FsIGhhcyBiZWVuIHZldG9lZC4sQmxhY2tsaXN0ZWQEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAKBMRBIHByb3Bvc2FsX2hhc2ggaGFzIGJlZW4gYmxhY2tsaXN0ZWQgcGVybWFuZW50bHkuFFZvdGVkDAEUdm90ZXIAATBUOjpBY2NvdW50SWQAASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAARB2b3RltQEBZEFjY291bnRWb3RlPEJhbGFuY2VPZjxUPj4ACwSQQW4gYWNjb3VudCBoYXMgdm90ZWQgaW4gYSByZWZlcmVuZHVtIFNlY29uZGVkCAEgc2Vjb25kZXIAATBUOjpBY2NvdW50SWQAAShwcm9wX2luZGV4KAEkUHJvcEluZGV4AAwEjEFuIGFjY291bnQgaGFzIHNlY2NvbmRlZCBhIHByb3Bvc2FsQFByb3Bvc2FsQ2FuY2VsZWQEAShwcm9wX2luZGV4KAEkUHJvcEluZGV4AA0EYEEgcHJvcG9zYWwgZ290IGNhbmNlbGVkLixNZXRhZGF0YVNldAgBFG93bmVywQEBNE1ldGFkYXRhT3duZXIEPE1ldGFkYXRhIG93bmVyLgEQaGFzaCwBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDgTUTWV0YWRhdGEgZm9yIGEgcHJvcG9zYWwgb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIHNldC48TWV0YWRhdGFDbGVhcmVkCAEUb3duZXLBAQE0TWV0YWRhdGFPd25lcgQ8TWV0YWRhdGEgb3duZXIuARBoYXNoLAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4PBORNZXRhZGF0YSBmb3IgYSBwcm9wb3NhbCBvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2xlYXJlZC5MTWV0YWRhdGFUcmFuc2ZlcnJlZAwBKHByZXZfb3duZXLBAQE0TWV0YWRhdGFPd25lcgRgUHJldmlvdXMgbWV0YWRhdGEgb3duZXIuARRvd25lcsEBATRNZXRhZGF0YU93bmVyBExOZXcgbWV0YWRhdGEgb3duZXIuARBoYXNoLAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4QBKxNZXRhZGF0YSBoYXMgYmVlbiB0cmFuc2ZlcnJlZCB0byBuZXcgb3duZXIuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0YQcMQHBhbGxldF9kZW1vY3JhY3k4dm90ZV90aHJlc2hvbGQ0Vm90ZVRocmVzaG9sZAABDFBTdXBlck1ham9yaXR5QXBwcm92ZQAAAFBTdXBlck1ham9yaXR5QWdhaW5zdAABADhTaW1wbGVNYWpvcml0eQACAABlBwxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0FEV2ZW50CARUAARJAAEoIFByb3Bvc2VkEAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABOHByb3Bvc2FsX2luZGV4KAE0UHJvcG9zYWxJbmRleAABNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEkdGhyZXNob2xkKAEsTWVtYmVyQ291bnQAAAhJAUEgbW90aW9uIChnaXZlbiBoYXNoKSBoYXMgYmVlbiBwcm9wb3NlZCAoYnkgZ2l2ZW4gYWNjb3VudCkgd2l0aCBhIHRocmVzaG9sZCAoZ2l2ZW48YE1lbWJlckNvdW50YCkuFFZvdGVkFAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEUdm90ZWREARBib29sAAEMeWVzKAEsTWVtYmVyQ291bnQAAQhubygBLE1lbWJlckNvdW50AAEIBQFBIG1vdGlvbiAoZ2l2ZW4gaGFzaCkgaGFzIGJlZW4gdm90ZWQgb24gYnkgZ2l2ZW4gYWNjb3VudCwgbGVhdmluZxUBYSB0YWxseSAoeWVzIHZvdGVzIGFuZCBubyB2b3RlcyBnaXZlbiByZXNwZWN0aXZlbHkgYXMgYE1lbWJlckNvdW50YCkuIEFwcHJvdmVkBAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAgTAQSBtb3Rpb24gd2FzIGFwcHJvdmVkIGJ5IHRoZSByZXF1aXJlZCB0aHJlc2hvbGQuLERpc2FwcHJvdmVkBAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAwTQQSBtb3Rpb24gd2FzIG5vdCBhcHByb3ZlZCBieSB0aGUgcmVxdWlyZWQgdGhyZXNob2xkLiBFeGVjdXRlZAgBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAQEIQFBIG1vdGlvbiB3YXMgZXhlY3V0ZWQ7IHJlc3VsdCB3aWxsIGJlIGBPa2AgaWYgaXQgcmV0dXJuZWQgd2l0aG91dCBlcnJvci44TWVtYmVyRXhlY3V0ZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdFEHAThEaXNwYXRjaFJlc3VsdAAFBEkBQSBzaW5nbGUgbWVtYmVyIGRpZCBzb21lIGFjdGlvbjsgcmVzdWx0IHdpbGwgYmUgYE9rYCBpZiBpdCByZXR1cm5lZCB3aXRob3V0IGVycm9yLhhDbG9zZWQMATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABDHllcygBLE1lbWJlckNvdW50AAEIbm8oASxNZW1iZXJDb3VudAAGBFUBQSBwcm9wb3NhbCB3YXMgY2xvc2VkIGJlY2F1c2UgaXRzIHRocmVzaG9sZCB3YXMgcmVhY2hlZCBvciBhZnRlciBpdHMgZHVyYXRpb24gd2FzIHVwLhhLaWxsZWQEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAHBFhBIHByb3Bvc2FsIHdhcyBraWxsZWQuSFByb3Bvc2FsQ29zdEJ1cm5lZAgBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEMd2hvAAEwVDo6QWNjb3VudElkAAgEsFNvbWUgY29zdCBmb3Igc3RvcmluZyBhIHByb3Bvc2FsIHdhcyBidXJuZWQuUFByb3Bvc2FsQ29zdFJlbGVhc2VkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAQx3aG8AATBUOjpBY2NvdW50SWQACQS4U29tZSBjb3N0IGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgd2FzIHJlbGVhc2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGkHDDBwYWxsZXRfcHJveHkYcGFsbGV0FEV2ZW50BARUAAEcNFByb3h5RXhlY3V0ZWQEARhyZXN1bHRRBwE4RGlzcGF0Y2hSZXN1bHQAAAS8QSBwcm94eSB3YXMgZXhlY3V0ZWQgY29ycmVjdGx5LCB3aXRoIHRoZSBnaXZlbi4sUHVyZUNyZWF0ZWQQARBwdXJlAAEwVDo6QWNjb3VudElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleIABDHUxNgABCNxBIHB1cmUgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkIGJ5IG5ldyBwcm94eSB3aXRoIGdpdmVukGRpc2FtYmlndWF0aW9uIGluZGV4IGFuZCBwcm94eSB0eXBlLihQdXJlS2lsbGVkEAEQcHVyZQABMFQ6OkFjY291bnRJZAABHHNwYXduZXIAATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBl2QEBMFQ6OlByb3h5VHlwZQABUGRpc2FtYmlndWF0aW9uX2luZGV4gAEMdTE2AAIEnEEgcHVyZSBwcm94eSB3YXMga2lsbGVkIGJ5IGl0cyBzcGF3bmVyLiRBbm5vdW5jZWQMARByZWFsAAEwVDo6QWNjb3VudElkAAEUcHJveHkAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gsATRDYWxsSGFzaE9mPFQ+AAME4EFuIGFubm91bmNlbWVudCB3YXMgcGxhY2VkIHRvIG1ha2UgYSBjYWxsIGluIHRoZSBmdXR1cmUuKFByb3h5QWRkZWQQASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUAATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBl2QEBMFQ6OlByb3h5VHlwZQABFGRlbGF5KAFEQmxvY2tOdW1iZXJGb3I8VD4ABARIQSBwcm94eSB3YXMgYWRkZWQuMFByb3h5UmVtb3ZlZBABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgAFBFBBIHByb3h5IHdhcyByZW1vdmVkLjBEZXBvc2l0UG9rZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAARBraW5kbQcBLERlcG9zaXRLaW5kAAEsb2xkX2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4AASxuZXdfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAGBAkBQSBkZXBvc2l0IHN0b3JlZCBmb3IgcHJveGllcyBvciBhbm5vdW5jZW1lbnRzIHdhcyBwb2tlZCAvIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0bQcIMHBhbGxldF9wcm94eSxEZXBvc2l0S2luZAABCBxQcm94aWVzAAAANEFubm91bmNlbWVudHMAAQAAcQcMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXZlbnQEBFQAARQsTmV3TXVsdGlzaWcMASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAAEjEEgbmV3IG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVndW4uQE11bHRpc2lnQXBwcm92YWwQASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnTlAQFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAQTIQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQgYnkgc29tZW9uZS5ATXVsdGlzaWdFeGVjdXRlZBQBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludOUBAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABGHJlc3VsdFEHAThEaXNwYXRjaFJlc3VsdAACBJxBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBleGVjdXRlZC5ETXVsdGlzaWdDYW5jZWxsZWQQAShjYW5jZWxsaW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW505QEBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAMEoEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZC4wRGVwb3NpdFBva2VkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAASxvbGRfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAQE8FRoZSBkZXBvc2l0IGZvciBhIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkL3Bva2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHUHDDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQURXZlbnQIBFQABEkAAWwcQ3JlYXRlZAwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARxjcmVhdG9yAAEwVDo6QWNjb3VudElkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAARsQSBgY29sbGVjdGlvbmAgd2FzIGNyZWF0ZWQuMEZvcmNlQ3JlYXRlZAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABBIRBIGBjb2xsZWN0aW9uYCB3YXMgZm9yY2UtY3JlYXRlZC4kRGVzdHJveWVkBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAACBHRBIGBjb2xsZWN0aW9uYCB3YXMgZGVzdHJveWVkLhhJc3N1ZWQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAMEVEFuIGBpdGVtYCB3YXMgaXNzdWVkLixUcmFuc2ZlcnJlZBABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAQEaEFuIGBpdGVtYCB3YXMgdHJhbnNmZXJyZWQuGEJ1cm5lZAwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQABQRgQW4gYGl0ZW1gIHdhcyBkZXN0cm95ZWQuGEZyb3plbggBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAYEXFNvbWUgYGl0ZW1gIHdhcyBmcm96ZW4uGFRoYXdlZAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAcEXFNvbWUgYGl0ZW1gIHdhcyB0aGF3ZWQuQENvbGxlY3Rpb25Gcm96ZW4EAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAgEdFNvbWUgYGNvbGxlY3Rpb25gIHdhcyBmcm96ZW4uQENvbGxlY3Rpb25UaGF3ZWQEAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAkEdFNvbWUgYGNvbGxlY3Rpb25gIHdhcyB0aGF3ZWQuME93bmVyQ2hhbmdlZAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAASRuZXdfb3duZXIAATBUOjpBY2NvdW50SWQACgRIVGhlIG93bmVyIGNoYW5nZWQuLFRlYW1DaGFuZ2VkEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABFGFkbWluAAEwVDo6QWNjb3VudElkAAEcZnJlZXplcgABMFQ6OkFjY291bnRJZAALBHBUaGUgbWFuYWdlbWVudCB0ZWFtIGNoYW5nZWQuQEFwcHJvdmVkVHJhbnNmZXIQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUAATBUOjpBY2NvdW50SWQADAgxAUFuIGBpdGVtYCBvZiBhIGBjb2xsZWN0aW9uYCBoYXMgYmVlbiBhcHByb3ZlZCBieSB0aGUgYG93bmVyYCBmb3IgdHJhbnNmZXIgYnk0YSBgZGVsZWdhdGVgLkRBcHByb3ZhbENhbmNlbGxlZBABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZQABMFQ6OkFjY291bnRJZAANCBkBQW4gYXBwcm92YWwgZm9yIGEgYGRlbGVnYXRlYCBhY2NvdW50IHRvIHRyYW5zZmVyIHRoZSBgaXRlbWAgb2YgYW4gaXRlbahgY29sbGVjdGlvbmAgd2FzIGNhbmNlbGxlZCBieSBpdHMgYG93bmVyYC5ESXRlbVN0YXR1c0NoYW5nZWQEAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAA4EEQFBIGBjb2xsZWN0aW9uYCBoYXMgaGFkIGl0cyBhdHRyaWJ1dGVzIGNoYW5nZWQgYnkgdGhlIGBGb3JjZWAgb3JpZ2luLlRDb2xsZWN0aW9uTWV0YWRhdGFTZXQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQZGF0YQECAXhCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5EARBib29sAA8EtE5ldyBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGEgYGNvbGxlY3Rpb25gLmRDb2xsZWN0aW9uTWV0YWRhdGFDbGVhcmVkBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAQBLRNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhIGBjb2xsZWN0aW9uYC4sTWV0YWRhdGFTZXQQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABEGRhdGEBAgF4Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuRAEQYm9vbAARBJhOZXcgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhbiBpdGVtLjxNZXRhZGF0YUNsZWFyZWQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAASBJhNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBpdGVtLixSZWRlcG9zaXRlZAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAAUBzdWNjZXNzZnVsX2l0ZW1z8QEBOFZlYzxUOjpJdGVtSWQ+ABMEmE1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGFuIGl0ZW0uMEF0dHJpYnV0ZVNldBABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt9QEBRE9wdGlvbjxUOjpJdGVtSWQ+AAEMa2V5+QEBbEJvdW5kZWRWZWM8dTgsIFQ6OktleUxpbWl0PgABFHZhbHVl/QEBdEJvdW5kZWRWZWM8dTgsIFQ6OlZhbHVlTGltaXQ+ABQEBQFOZXcgYXR0cmlidXRlIG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYSBgY29sbGVjdGlvbmAgb3IgYGl0ZW1gLkBBdHRyaWJ1dGVDbGVhcmVkDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heWJlX2l0ZW31AQFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXn5AQFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+ABUEBQFBdHRyaWJ1dGUgbWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYSBgY29sbGVjdGlvbmAgb3IgYGl0ZW1gLmhPd25lcnNoaXBBY2NlcHRhbmNlQ2hhbmdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABQG1heWJlX2NvbGxlY3Rpb271AQFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AFgTAT3duZXJzaGlwIGFjY2VwdGFuY2UgaGFzIGNoYW5nZWQgZm9yIGFuIGFjY291bnQuWENvbGxlY3Rpb25NYXhTdXBwbHlTZXQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEobWF4X3N1cHBseSgBDHUzMgAXBKRNYXggc3VwcGx5IGhhcyBiZWVuIHNldCBmb3IgYSBjb2xsZWN0aW9uLjBJdGVtUHJpY2VTZXQQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFHByaWNlQAE8SXRlbVByaWNlPFQsIEk+AAFEd2hpdGVsaXN0ZWRfYnV5ZXLNAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AGASMVGhlIHByaWNlIHdhcyBzZXQgZm9yIHRoZSBpbnN0YW5jZS5ASXRlbVByaWNlUmVtb3ZlZAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkABkEnFRoZSBwcmljZSBmb3IgdGhlIGluc3RhbmNlIHdhcyByZW1vdmVkLihJdGVtQm91Z2h0FAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRwcmljZUABPEl0ZW1QcmljZTxULCBJPgABGHNlbGxlcgABMFQ6OkFjY291bnRJZAABFGJ1eWVyAAEwVDo6QWNjb3VudElkABoETEFuIGl0ZW0gd2FzIGJvdWdodC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR5BwxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFdmVudAQEVAABECBNaWdyYXRlZAwBDHRvcCgBDHUzMgABFGNoaWxkKAEMdTMyAAEcY29tcHV0ZX0HAUBNaWdyYXRpb25Db21wdXRlAAAIOQFHaXZlbiBudW1iZXIgb2YgYCh0b3AsIGNoaWxkKWAga2V5cyB3ZXJlIG1pZ3JhdGVkIHJlc3BlY3RpdmVseSwgd2l0aCB0aGUgZ2l2ZW4oYGNvbXB1dGVgLhxTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAEEtFNvbWUgYWNjb3VudCBnb3Qgc2xhc2hlZCBieSB0aGUgZ2l2ZW4gYW1vdW50LlRBdXRvTWlncmF0aW9uRmluaXNoZWQAAgSEVGhlIGF1dG8gbWlncmF0aW9uIHRhc2sgZmluaXNoZWQuGEhhbHRlZAQBFGVycm9ygQcBIEVycm9yPFQ+AAME7E1pZ3JhdGlvbiBnb3QgaGFsdGVkIGR1ZSB0byBhbiBlcnJvciBvciBtaXNzLWNvbmZpZ3VyYXRpb24uBHBJbm5lciBldmVudHMgb2YgdGhpcyBwYWxsZXQufQcMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXRATWlncmF0aW9uQ29tcHV0ZQABCBhTaWduZWQAAAAQQXV0bwABAACBBwxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFcnJvcgQEVAABGDxNYXhTaWduZWRMaW1pdHMAAASATWF4IHNpZ25lZCBsaW1pdHMgbm90IHJlc3BlY3RlZC4oS2V5VG9vTG9uZwABHLRBIGtleSB3YXMgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgbWF4aW11bS4AEQFUaGlzIG1lYW5zIHRoYXQgdGhlIG1pZ3JhdGlvbiBoYWx0ZWQgYXQgdGhlIGN1cnJlbnQgW2BQcm9ncmVzc2BdIGFuZAEBY2FuIGJlIHJlc3VtZWQgd2l0aCBhIGxhcmdlciBbYGNyYXRlOjpDb25maWc6Ok1heEtleUxlbmBdIHZhbHVlLiEBUmV0cnlpbmcgd2l0aCB0aGUgc2FtZSBbYGNyYXRlOjpDb25maWc6Ok1heEtleUxlbmBdIHZhbHVlIHdpbGwgbm90IHdvcmsuRQFUaGUgdmFsdWUgc2hvdWxkIG9ubHkgYmUgaW5jcmVhc2VkIHRvIGF2b2lkIGEgc3RvcmFnZSBtaWdyYXRpb24gZm9yIHRoZSBjdXJyZW50bHmQc3RvcmVkIFtgY3JhdGU6OlByb2dyZXNzOjpMYXN0S2V5YF0uOE5vdEVub3VnaEZ1bmRzAAIElHN1Ym1pdHRlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBmdW5kcy4oQmFkV2l0bmVzcwADBGhCYWQgd2l0bmVzcyBkYXRhIHByb3ZpZGVkLmRTaWduZWRNaWdyYXRpb25Ob3RBbGxvd2VkAAQEJQFTaWduZWQgbWlncmF0aW9uIGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgdGhlIG1heGltdW0gbGltaXQgaXMgbm90IHNldCB5ZXQuMEJhZENoaWxkUm9vdAAFBGBCYWQgY2hpbGQgcm9vdCBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuhQcMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQURXZlbnQIBFQABEkAARQkRGVsZWdhdGVkCAAAATBUOjpBY2NvdW50SWQAAAABMFQ6OkFjY291bnRJZAAABB0BQW4gYWNjb3VudCBoYXMgZGVsZWdhdGVkIHRoZWlyIHZvdGUgdG8gYW5vdGhlciBhY2NvdW50LiBcW3dobywgdGFyZ2V0XF0sVW5kZWxlZ2F0ZWQEAAABMFQ6OkFjY291bnRJZAABBPRBbiBcW2FjY291bnRcXSBoYXMgY2FuY2VsbGVkIGEgcHJldmlvdXMgZGVsZWdhdGlvbiBvcGVyYXRpb24uFFZvdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEQdm90ZSECAXBBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VCwgST4+AAIEUEFuIGFjY291bnQgaGFzIHZvdGVkLFZvdGVSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEQdm90ZSECAXBBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VCwgST4+AAMEXEEgdm90ZSBoYXMgYmVlbiByZW1vdmVkMFZvdGVVbmxvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABFGNsYXNzgAE0Q2xhc3NPZjxULCBJPgAEBEUBVGhlIGxvY2t1cCBwZXJpb2Qgb2YgYSBjb252aWN0aW9uIHZvdGUgZXhwaXJlZCwgYW5kIHRoZSBmdW5kcyBoYXZlIGJlZW4gdW5sb2NrZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0iQcMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEV2ZW50CARUAARJAAFAJFN1Ym1pdHRlZAwBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRyYWNrgAE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWypAQFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4ABIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gc3VibWl0dGVkLlREZWNpc2lvbkRlcG9zaXRQbGFjZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnRAATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgEElFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHBsYWNlZC5cRGVjaXNpb25EZXBvc2l0UmVmdW5kZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnRAATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgIEnFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHJlZnVuZGVkLjhEZXBvc2l0U2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudEABPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAwRsQSBkZXBvc2l0IGhhcyBiZWVuIHNsYXNoZWQuPERlY2lzaW9uU3RhcnRlZBABFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRyYWNrgAE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWypAQFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5jQcBIFQ6OlRhbGx5BLhUaGUgY3VycmVudCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBAS8QSByZWZlcmVuZHVtIGhhcyBtb3ZlZCBpbnRvIHRoZSBkZWNpZGluZyBwaGFzZS44Q29uZmlybVN0YXJ0ZWQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBQA4Q29uZmlybUFib3J0ZWQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBgAkQ29uZmlybWVkCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmNBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBwQhAUEgcmVmZXJlbmR1bSBoYXMgZW5kZWQgaXRzIGNvbmZpcm1hdGlvbiBwaGFzZSBhbmQgaXMgcmVhZHkgZm9yIGFwcHJvdmFsLiBBcHByb3ZlZAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4IBA0BQSByZWZlcmVuZHVtIGhhcyBiZWVuIGFwcHJvdmVkIGFuZCBpdHMgcHJvcG9zYWwgaGFzIGJlZW4gc2NoZWR1bGVkLiBSZWplY3RlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5jQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgkErEEgcHJvcG9zYWwgaGFzIGJlZW4gcmVqZWN0ZWQgYnkgcmVmZXJlbmR1bS4gVGltZWRPdXQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseY0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4KBNhBIHJlZmVyZW5kdW0gaGFzIGJlZW4gdGltZWQgb3V0IHdpdGhvdXQgYmVpbmcgZGVjaWRlZC4kQ2FuY2VsbGVkCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmNBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCwSAQSByZWZlcmVuZHVtIGhhcyBiZWVuIGNhbmNlbGxlZC4YS2lsbGVkCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmNBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uDAR0QSByZWZlcmVuZHVtIGhhcyBiZWVuIGtpbGxlZC5kU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudEABPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuDQSkVGhlIHN1Ym1pc3Npb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC4sTWV0YWRhdGFTZXQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoLAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4OBJxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIHNldC48TWV0YWRhdGFDbGVhcmVkCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaCwBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDwSsTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldI0HDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcUdHlwZXMUVGFsbHkIFFZvdGVzAUAUVG90YWwAAAwBEGF5ZXNAARRWb3RlcwABEG5heXNAARRWb3RlcwABHHN1cHBvcnRAARRWb3RlcwAAkQcMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0FEV2ZW50BARUAAEMPENhbGxXaGl0ZWxpc3RlZAQBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAAABYV2hpdGVsaXN0ZWRDYWxsUmVtb3ZlZAQBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAAQBkV2hpdGVsaXN0ZWRDYWxsRGlzcGF0Y2hlZAgBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHSVBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSVBwQYUmVzdWx0CARUAZkHBEUBnQcBCAhPawQAmQcAAAAADEVycgQAnQcAAAEAAJkHDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBvc3REaXNwYXRjaEluZm8AAAgBNGFjdHVhbF93ZWlnaHT9BQE4T3B0aW9uPFdlaWdodD4AASBwYXlzX2ZlZR0HARBQYXlzAACdBwgoc3BfcnVudGltZWREaXNwYXRjaEVycm9yV2l0aFBvc3RJbmZvBBBJbmZvAZkHAAgBJHBvc3RfaW5mb5kHARBJbmZvAAEUZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgAAoQcMRHBhbGxldF9kaXNwYXRjaGVyGHBhbGxldBRFdmVudAQEVAABDHRUcmVhc3VyeU1hbmFnZXJDYWxsRGlzcGF0Y2hlZAgBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHSVBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAABkQWF2ZU1hbmFnZXJDYWxsRGlzcGF0Y2hlZAgBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHSVBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAQBwRW1lcmdlbmN5QWRtaW5DYWxsRGlzcGF0Y2hlZAgBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHSVBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSlBwxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5GHBhbGxldBRFdmVudAQEVAABGFhFeGlzdGVudGlhbERlcG9zaXRQYWlkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEkZmVlX2Fzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAAjQRXhpc3RlbnRpYWwgZGVwb3NpdCBmb3IgaW5zdWZmaWNpbmV0IGFzc2V0IHdhcyBwYWlkLpxgU3VmZmljaWVuY3lDaGVja2AgdHJpZ2dlcnMgdGhpcyBldmVudC4oUmVnaXN0ZXJlZCABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKGFzc2V0X25hbWVFAgGYT3B0aW9uPEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0Pj4AAShhc3NldF90eXBlTQIBJEFzc2V0VHlwZQABTGV4aXN0ZW50aWFsX2RlcG9zaXRAARxCYWxhbmNlAAE4eGNtX3JhdGVfbGltaXT1AQE8T3B0aW9uPEJhbGFuY2U+AAEYc3ltYm9sRQIBmE9wdGlvbjxCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHNRAgEoT3B0aW9uPHU4PgABNGlzX3N1ZmZpY2llbnREARBib29sAAEEVEFzc2V0IHdhcyByZWdpc3RlcmVkLhxVcGRhdGVkIAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEoYXNzZXRfbmFtZUUCAZhPcHRpb248Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVNAgEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdEABHEJhbGFuY2UAATh4Y21fcmF0ZV9saW1pdPUBATxPcHRpb248QmFsYW5jZT4AARhzeW1ib2xFAgGYT3B0aW9uPEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0Pj4AASBkZWNpbWFsc1ECAShPcHRpb248dTg+AAE0aXNfc3VmZmljaWVudEQBEGJvb2wAAgRIQXNzZXQgd2FzIHVwZGF0ZWQuLExvY2F0aW9uU2V0CAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEgbG9jYXRpb25ZAgFYVDo6QXNzZXROYXRpdmVMb2NhdGlvbgADBIROYXRpdmUgbG9jYXRpb24gc2V0IGZvciBhbiBhc3NldC4sQXNzZXRCYW5uZWQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQABAREQXNzZXQgd2FzIGJhbm5lZC40QXNzZXRVbmJhbm5lZAQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFBGBBc3NldCdzIGJhbiB3YXMgcmVtb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSpBww0cGFsbGV0X2NsYWltcxhwYWxsZXQURXZlbnQEBFQAAQQUQ2xhaW0MAAABMFQ6OkFjY291bnRJZAAArQcBPEV0aGVyZXVtQWRkcmVzcwAAQAEwQmFsYW5jZU9mPFQ+AAAABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0rQcMNHBhbGxldF9jbGFpbXMYdHJhaXRzPEV0aGVyZXVtQWRkcmVzcwAABABcASBbdTg7IDIwXQAAsQcMXHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzGHBhbGxldBRFdmVudAQEVAABBEBDb2xsYXRvclJld2FyZGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABIGN1cnJlbmN5KAE0VDo6Q3VycmVuY3lJZAAABFhDb2xsYXRvciB3YXMgcmV3YXJkZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0tQcMYHBhbGxldF9jb2xsYXRvcl9yb3RhdGlvbhhwYWxsZXQURXZlbnQEBFQAAQQ8Q29sbGF0b3JCZW5jaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE0c2Vzc2lvbl9pbmRleCgBMFNlc3Npb25JbmRleAAAAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLkHDDxwYWxsZXRfb21uaXBvb2wYcGFsbGV0FEV2ZW50BARUAAE4KFRva2VuQWRkZWQMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAThpbml0aWFsX2Ftb3VudEABHEJhbGFuY2UAATRpbml0aWFsX3ByaWNlVAEUUHJpY2UAAAR4QW4gYXNzZXQgd2FzIGFkZGVkIHRvIE9tbmlwb29sMFRva2VuUmVtb3ZlZAwBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAATRodWJfd2l0aGRyYXduQAEcQmFsYW5jZQABBIhBbiBhc3NldCB3YXMgcmVtb3ZlZCBmcm9tIE9tbmlwb29sOExpcXVpZGl0eUFkZGVkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAAgSwTGlxdWlkaXR5IG9mIGFuIGFzc2V0IHdhcyBhZGRlZCB0byBPbW5pcG9vbC5ATGlxdWlkaXR5UmVtb3ZlZBQBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAThzaGFyZXNfcmVtb3ZlZEABHEJhbGFuY2UAAQxmZWVUASRGaXhlZFUxMjgAAwTATGlxdWlkaXR5IG9mIGFuIGFzc2V0IHdhcyByZW1vdmVkIGZyb20gT21uaXBvb2wuYFByb3RvY29sTGlxdWlkaXR5UmVtb3ZlZBQBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAShodWJfYW1vdW50QAEcQmFsYW5jZQABOHNoYXJlc19yZW1vdmVkQAEcQmFsYW5jZQAEBLRQUm90b2NvbCBMaXF1aWRpdHkgd2FzIHJlbW92ZWQgZnJvbSBPbW5pcG9vbC4wU2VsbEV4ZWN1dGVkJAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABNGh1Yl9hbW91bnRfaW5AARxCYWxhbmNlAAE4aHViX2Ftb3VudF9vdXRAARxCYWxhbmNlAAFAYXNzZXRfZmVlX2Ftb3VudEABHEJhbGFuY2UAAUxwcm90b2NvbF9mZWVfYW1vdW50QAEcQmFsYW5jZQAFCFBTZWxsIHRyYWRlIGV4ZWN1dGVkLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkLEJ1eUV4ZWN1dGVkJAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABNGh1Yl9hbW91bnRfaW5AARxCYWxhbmNlAAE4aHViX2Ftb3VudF9vdXRAARxCYWxhbmNlAAFAYXNzZXRfZmVlX2Ftb3VudEABHEJhbGFuY2UAAUxwcm90b2NvbF9mZWVfYW1vdW50QAEcQmFsYW5jZQAGCExCdXkgdHJhZGUgZXhlY3V0ZWQuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQ8UG9zaXRpb25DcmVhdGVkGAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEUYXNzZXQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABGHNoYXJlc0ABHEJhbGFuY2UAARRwcmljZVQBFFByaWNlAAcEwExQIFBvc2l0aW9uIHdhcyBjcmVhdGVkIGFuZCBORlQgaW5zdGFuY2UgbWludGVkLkRQb3NpdGlvbkRlc3Ryb3llZAgBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAAIBMhMUCBQb3NpdGlvbiB3YXMgZGVzdHJveWVkIGFuZCBORlQgaW5zdGFuY2UgYnVybmVkLjxQb3NpdGlvblVwZGF0ZWQYASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAARRhc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEYc2hhcmVzQAEcQmFsYW5jZQABFHByaWNlVAEUUHJpY2UACQRgTFAgUG9zaXRpb24gd2FzIHVwZGF0ZWQuUFRyYWRhYmxlU3RhdGVVcGRhdGVkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEUc3RhdGV5AgEsVHJhZGFiaWxpdHkACgSgQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBoYXMgYmVlbiB1cGRhdGVkLjRBc3NldFJlZnVuZGVkDAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABJHJlY2lwaWVudAABMFQ6OkFjY291bnRJZAALBEkBQW1vdW50IGhhcyBiZWVuIHJlZnVuZGVkIGZvciBhc3NldCB3aGljaCBoYXMgbm90IGJlZW4gYWNjZXB0ZWQgdG8gYWRkIHRvIG9tbmlwb29sLlRBc3NldFdlaWdodENhcFVwZGF0ZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQxjYXB1AgEcUGVybWlsbAAMBJBBc3NldCdzIHdlaWdodCBjYXAgaGFzIGJlZW4gdXBkYXRlZC4oU2xpcEZlZVNldAQBIHNsaXBfZmVlgQIBVE9wdGlvbjxTbGlwRmVlQ29uZmlnPgANBIxTbGlwIGZlZSBjb25maWd1cmF0aW9uIHdhcyB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldL0HDGBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2UYcGFsbGV0FEV2ZW50BARUAAEIRFRyYW5zYWN0aW9uUGF1c2VkCAFEcGFsbGV0X25hbWVfYnl0ZXMUARxWZWM8dTg+AAFMZnVuY3Rpb25fbmFtZV9ieXRlcxQBHFZlYzx1OD4AAARIUGF1c2VkIHRyYW5zYWN0aW9uTFRyYW5zYWN0aW9uVW5wYXVzZWQIAURwYWxsZXRfbmFtZV9ieXRlcxQBHFZlYzx1OD4AAUxmdW5jdGlvbl9uYW1lX2J5dGVzFAEcVmVjPHU4PgABBFBVbnBhdXNlZCB0cmFuc2FjdGlvbgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMEHDDRwYWxsZXRfZHVzdGVyGHBhbGxldBRFdmVudAQEVAABDBhEdXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAAEPEFjY291bnQgZHVzdGVkLhRBZGRlZAQBDHdobwABMFQ6OkFjY291bnRJZAABBIxBY2NvdW50IGFkZGVkIHRvIG5vbi1kdXN0YWJsZSBsaXN0LhxSZW1vdmVkBAEMd2hvAAEwVDo6QWNjb3VudElkAAIEnEFjY291bnQgcmVtb3ZlZCBmcm9tIG5vbi1kdXN0YWJsZSBsaXN0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMUHDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQIBFQABEkAAQxcR2xvYmFsRmFybUFjY1JQWlVwZGF0ZWQMAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABOHRvdGFsX3NoYXJlc196QAEcQmFsYW5jZQAABNRHbG9iYWwgZmFybSBhY2N1bXVsYXRlZCByZXdhcmQgcGVyIHNoYXJlIHdhcyB1cGRhdGVkLlxZaWVsZEZhcm1BY2NSUFZTVXBkYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABTHRvdGFsX3ZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAEE7FlpZWxkIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciB2YWx1ZWQgc2hhcmUgd2FzIHVwZGF0ZWQuVEFsbFJld2FyZHNEaXN0cmlidXRlZAQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAIE8Edsb2JhbCBmYXJtIGhhcyBubyBtb3JlIHJld2FyZHMgdG8gZGlzdHJpYnV0ZSBpbiB0aGUgbW9tZW50LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMkHDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQEBFQAATRER2xvYmFsRmFybUNyZWF0ZWQoAQhpZCgBMEdsb2JhbEZhcm1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAE0dG90YWxfcmV3YXJkc0ABHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAFAeWllbGRfcGVyX3BlcmlvZJkCASxQZXJxdWludGlsbAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABVG1heF9yZXdhcmRfcGVyX3BlcmlvZEABHEJhbGFuY2UAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVRscm5hX3ByaWNlX2FkanVzdG1lbnRUASRGaXhlZFUxMjgAAARwTmV3IGdsb2JhbCBmYXJtIHdhcyBjcmVhdGVkLkRHbG9iYWxGYXJtVXBkYXRlZBABCGlkKAEwR2xvYmFsRmFybUlkAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzKAEsUGVyaW9kT2Y8VD4AAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAEEXEdsb2JhbCBmYXJtIHdhcyB1cGRhdGVkUEdsb2JhbEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAFUdW5kaXN0cmlidXRlZF9yZXdhcmRzQAEcQmFsYW5jZQACBGxHbG9iYWwgZmFybSB3YXMgdGVybWluYXRlZC5AWWllbGRGYXJtQ3JlYXRlZBQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAE0bG95YWx0eV9jdXJ2ZZ0CAVBPcHRpb248TG95YWx0eUN1cnZlPgADBJROZXcgeWllbGQgZmFybSB3YXMgYWRkZWQgdG8gdGhlIGZhcm0uQFlpZWxkRmFybVVwZGF0ZWQUAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgAEBIhZaWVsZCBmYXJtIG11bHRpcGxpZXIgd2FzIHVwZGF0ZWQuQFlpZWxkRmFybVN0b3BwZWQQAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAAFBJhZaWVsZCBmYXJtIGZvciBgYXNzZXRfaWRgIHdhcyBzdG9wcGVkLkBZaWVsZEZhcm1SZXN1bWVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIABgSYWWllbGQgZmFybSBmb3IgYGFzc2V0X2lkYCB3YXMgcmVzdW1lZC5MWWllbGRGYXJtVGVybWluYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAcEvFlpZWxkIGZhcm0gd2FzIHRlcm1pbmF0ZWQgZnJvbSB0aGUgZ2xvYmFsIGZhcm0uPFNoYXJlc0RlcG9zaXRlZBwBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABNHNoYXJlc19hbW91bnRAARxCYWxhbmNlAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAAIBKhOZXcgTFAgc2hhcmVzKExQIHBvc2l0aW9uKSB3ZXJlIGRlcG9zaXRlZC5EU2hhcmVzUmVkZXBvc2l0ZWQcAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAATRzaGFyZXNfYW1vdW50QAEcQmFsYW5jZQABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQACQQBAUFscmVhZHkgbG9ja2VkIExQIHNoYXJlcyB3ZXJlIHJlZGVwb3NpdGVkIHRvIGFub3RoZXIgeWllbGQgZmFybS40UmV3YXJkQ2xhaW1lZBgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEcY2xhaW1lZEABHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAKBFRSZXdhcmRzIHdlcmUgY2xhaW1lZC48U2hhcmVzV2l0aGRyYXduFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAALBGRMUCBzaGFyZXMgd2VyZSB3aXRoZHJhd24uQERlcG9zaXREZXN0cm95ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAwEHQFBbGwgTFAgc2hhcmVzIHdlcmUgdW5sb2NrZWQgYW5kIE5GVCByZXByZXNlbnRpbmcgZGVwb3NpdCB3YXMgZGVzdHJveWVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldM0HDChwYWxsZXRfb3RjGHBhbGxldBRFdmVudAQEVAABECRDYW5jZWxsZWQEASBvcmRlcl9pZCgBHE9yZGVySWQAAARsQW4gT3JkZXIgaGFzIGJlZW4gY2FuY2VsbGVkGEZpbGxlZBQBIG9yZGVyX2lkKAEcT3JkZXJJZAABDHdobwABMFQ6OkFjY291bnRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABDGZlZUABHEJhbGFuY2UAAQiMQW4gT3JkZXIgaGFzIGJlZW4gY29tcGxldGVseSBmaWxsZWTERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZDxQYXJ0aWFsbHlGaWxsZWQUASBvcmRlcl9pZCgBHE9yZGVySWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAAQxmZWVAARxCYWxhbmNlAAIIiEFuIE9yZGVyIGhhcyBiZWVuIHBhcnRpYWxseSBmaWxsZWTERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZBhQbGFjZWQYASBvcmRlcl9pZCgBHE9yZGVySWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAFIcGFydGlhbGx5X2ZpbGxhYmxlRAEQYm9vbAADBGBBbiBPcmRlciBoYXMgYmVlbiBwbGFjZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTRBwxYcGFsbGV0X2NpcmN1aXRfYnJlYWtlchhwYWxsZXQURXZlbnQEBFQAATRcVHJhZGVWb2x1bWVMaW1pdENoYW5nZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAUh0cmFkZV92b2x1bWVfbGltaXSpAgEoKHUzMiwgdTMyKQAABKxUcmFkZSB2b2x1bWUgbGltaXQgb2YgYW4gYXNzZXQgd2FzIGNoYW5nZWQuYEFkZExpcXVpZGl0eUxpbWl0Q2hhbmdlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABPGxpcXVpZGl0eV9saW1pdNECAUhPcHRpb248KHUzMiwgdTMyKT4AAQSwQWRkIGxpcXVpZGl0eSBsaW1pdCBvZiBhbiBhc3NldCB3YXMgY2hhbmdlZC5sUmVtb3ZlTGlxdWlkaXR5TGltaXRDaGFuZ2VkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE8bGlxdWlkaXR5X2xpbWl00QIBSE9wdGlvbjwodTMyLCB1MzIpPgACBLxSZW1vdmUgbGlxdWlkaXR5IGxpbWl0IG9mIGFuIGFzc2V0IHdhcyBjaGFuZ2VkLjRBc3NldExvY2tkb3duCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEUdW50aWwoAURCbG9ja051bWJlckZvcjxUPgADBFhBc3NldCB3ZW50IHRvIGxvY2tkb3duUEFzc2V0TG9ja2Rvd25SZW1vdmVkBAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAQEaEFzc2V0IGxvY2tkb3duIHdhcyByZW1vdmVkPERlcG9zaXRSZWxlYXNlZAgBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFBKxBbGwgcmVzZXJ2ZWQgYW1vdW50IG9mIGRlcG9zaXQgd2FzIHJlbGVhc2VkWFdpdGhkcmF3TG9ja2Rvd25MaWZ0ZWQABgQdAUdsb2JhbCB3aXRoZHJhdyBsb2NrZG93biB3YXMgbGlmdGVkIChlaXRoZXIgYXV0b21hdGljYWxseSBvciBieSByZXNldCkuVFdpdGhkcmF3TG9ja2Rvd25SZXNldAAHBAkBV2l0aGRyYXcgbG9ja2Rvd24gYWNjdW11bGF0b3IgYW5kIHN0YXRlcyB3ZXJlIHJlc2V0IGJ5IGdvdmVybmFuY2UuaFdpdGhkcmF3TGltaXRDb25maWdVcGRhdGVkCAEUbGltaXRAAShUOjpCYWxhbmNlAAEYd2luZG93GAFIcHJpbWl0aXZlczo6TW9tZW50AAgE1Edsb2JhbCB3aXRoZHJhdyBsaW1pdCBjb25maWcgcGFyYW1ldGVycyB3ZXJlIHVwZGF0ZWQuZFdpdGhkcmF3TG9ja2Rvd25UcmlnZ2VyZWQEARR1bnRpbBgBSHByaW1pdGl2ZXM6Ok1vbWVudAAJBLxHbG9iYWwgd2l0aGRyYXcgbG9ja2Rvd24gd2FzIHNldCBieSBnb3Zlcm5hbmNlLkxFZ3Jlc3NBY2NvdW50c0FkZGVkBAEUY291bnQoAQx1MzIACgSwQSBudW1iZXIgb2YgZWdyZXNzIGFjY291bnRzIGFkZGVkIHRvIGEgbGlzdC5URWdyZXNzQWNjb3VudHNSZW1vdmVkBAEUY291bnQoAQx1MzIACwTAQSBudW1iZXIgb2YgZWdyZXNzIGFjY291bnRzIHJlbW92ZWQgZnJvbSBhIGxpc3QuUEFzc2V0Q2F0ZWdvcnlVcGRhdGVkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEgY2F0ZWdvcnnZAgFsT3B0aW9uPEdsb2JhbEFzc2V0Q2F0ZWdvcnk+AAwEgEFzc2V0IGNhdGVnb3J5IG92ZXJyaWRlIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV01QcMVHBhbGxldF9yb3V0ZV9leGVjdXRvchhwYWxsZXQURXZlbnQEBFQAAQggRXhlY3V0ZWQUASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEoVDo6QmFsYW5jZQABKGFtb3VudF9vdXRAAShUOjpCYWxhbmNlAAEgZXZlbnRfaWQoAURJbmNyZW1lbnRhbElkVHlwZQAABNBUaGUgcm91dGUgd2l0aCB0cmFkZXMgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkMFJvdXRlVXBkYXRlZAQBJGFzc2V0X2lkc7UCATxWZWM8VDo6QXNzZXRJZD4AAQTQVGhlIHJvdXRlIHdpdGggdHJhZGVzIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBleGVjdXRlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNkHDExwYWxsZXRfZHluYW1pY19mZWVzGHBhbGxldBRFdmVudAQEVAABCERBc3NldEZlZUNvbmZpZ1NldAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGHBhcmFtc/0CAVhBc3NldEZlZUNvbmZpZzxUOjpGZWU+AAAEkEFzc2V0IGZlZSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHNldFRBc3NldEZlZUNvbmZpZ1JlbW92ZWQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQSgQXNzZXQgZmVlIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gcmVtb3ZlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldN0HDDhwYWxsZXRfc3Rha2luZxhwYWxsZXQURXZlbnQEBFQAARw8UG9zaXRpb25DcmVhdGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABFHN0YWtlQAEcQmFsYW5jZQAABNBOZXcgc3Rha2luZyBwb3NpdGlvbiB3YXMgY3JlYXRlZCBhbmQgTkZUIHdhcyBtaW50ZWQuKFN0YWtlQWRkZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEUc3Rha2VAARxCYWxhbmNlAAEsdG90YWxfc3Rha2VAARxCYWxhbmNlAAE4bG9ja2VkX3Jld2FyZHNAARxCYWxhbmNlAAE4c2xhc2hlZF9wb2ludHNAARRQb2ludAABSHBheWFibGVfcGVyY2VudGFnZVQBJEZpeGVkVTEyOAABBMhTdGFrZWQgYW1vdW50IGZvciBleGlzdGluZyBwb3NpdGlvbiB3YXMgaW5jcmVhc2VkLjhSZXdhcmRzQ2xhaW1lZBwBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAATBwYWlkX3Jld2FyZHNAARxCYWxhbmNlAAFAdW5sb2NrZWRfcmV3YXJkc0ABHEJhbGFuY2UAAThzbGFzaGVkX3BvaW50c0ABFFBvaW50AAFYc2xhc2hlZF91bnBhaWRfcmV3YXJkc0ABHEJhbGFuY2UAAUhwYXlhYmxlX3BlcmNlbnRhZ2VUASRGaXhlZFUxMjgAAgRUUmV3YXJkcyB3ZXJlIGNsYWltZWQuIFVuc3Rha2VkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABOHVubG9ja2VkX3N0YWtlQAEcQmFsYW5jZQADBLxTdGFrZWQgYW1vdW50IHdhcyB3aXRoZHJhd24gYW5kIE5GVCB3YXMgYnVybmVkLkhTdGFraW5nSW5pdGlhbGl6ZWQEAVBub25fZHVzdGFibGVfYmFsYW5jZUABHEJhbGFuY2UABARgU3Rha2luZyB3YXMgaW5pdGlhbGl6ZWQuVEFjY3VtdWxhdGVkUnBzVXBkYXRlZAgBPGFjY3VtdWxhdGVkX3Jwc1QBJEZpeGVkVTEyOAABLHRvdGFsX3N0YWtlQAEcQmFsYW5jZQAFBNRTdGFraW5nJ3MgYGFjY3VtdWxhdGVkX3Jld2FyZF9wZXJfc3Rha2VgIHdhcyB1cGRhdGVkLjRGb3JjZVVuc3Rha2VkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABFHN0YWtlQAEcQmFsYW5jZQABOGxvY2tlZF9yZXdhcmRzQAEcQmFsYW5jZQABMHBhaWRfcmV3YXJkc0ABHEJhbGFuY2UABggFAVBvc2l0aW9uIHdhcyBmb3JjZS11bnN0YWtlZCB0aHJvdWdoIHRoZSBHSUdBSERYIG1pZ3JhdGlvbiBoZWxwZXIu7ERpc3RpbmN0IGZyb20gYFVuc3Rha2VkYCBiZWNhdXNlIG5vIHJld2FyZHMgd2VyZSBmb3JmZWl0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV04QcMRHBhbGxldF9zdGFibGVzd2FwGHBhbGxldBRFdmVudAQEVAABLCxQb29sQ3JlYXRlZBQBHHBvb2xfaWQoAShUOjpBc3NldElkAAEYYXNzZXRztQIBPFZlYzxUOjpBc3NldElkPgABNGFtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABDGZlZXUCARxQZXJtaWxsAAEMcGVn6QcByE9wdGlvbjxQb29sUGVnSW5mbzxCbG9ja051bWJlckZvcjxUPiwgVDo6QXNzZXRJZD4+AAAETEEgcG9vbCB3YXMgY3JlYXRlZC4oRmVlVXBkYXRlZAgBHHBvb2xfaWQoAShUOjpBc3NldElkAAEMZmVldQIBHFBlcm1pbGwAAQRoUG9vbCBmZWUgaGFzIGJlZW4gdXBkYXRlZC44TGlxdWlkaXR5QWRkZWQQARxwb29sX2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABGHNoYXJlc0ABHEJhbGFuY2UAARhhc3NldHPBAgFwVmVjPEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+PgACBKhMaXF1aWRpdHkgb2YgYW4gYXNzZXQgd2FzIGFkZGVkIHRvIGEgcG9vbC5ATGlxdWlkaXR5UmVtb3ZlZBQBHHBvb2xfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYc2hhcmVzQAEcQmFsYW5jZQABHGFtb3VudHPBAgFwVmVjPEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+PgABDGZlZUABHEJhbGFuY2UAAwRITGlxdWlkaXR5IHJlbW92ZWQuMFNlbGxFeGVjdXRlZBwBDHdobwABMFQ6OkFjY291bnRJZAABHHBvb2xfaWQoAShUOjpBc3NldElkAAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABDGZlZUABHEJhbGFuY2UABAiNAVNlbGwgdHJhZGUgZXhlY3V0ZWQuIFRyYWRlIGZlZSBwYWlkIGluIGFzc2V0IGxlYXZpbmcgdGhlIHBvb2wgKGFscmVhZHkgc3VidHJhY3RlZCBmcm9tIGFtb3VudF9vdXQpLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkLEJ1eUV4ZWN1dGVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAEMZmVlQAEcQmFsYW5jZQAFCHkBQnV5IHRyYWRlIGV4ZWN1dGVkLiBUcmFkZSBmZWUgcGFpZCBpbiBhc3NldCBlbnRlcmluZyB0aGUgcG9vbCAoYWxyZWFkeSBpbmNsdWRlZCBpbiBhbW91bnRfaW4pLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkUFRyYWRhYmxlU3RhdGVVcGRhdGVkDAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRzdGF0ZREDASxUcmFkYWJpbGl0eQAGBKBBc3NldCdzIHRyYWRhYmxlIHN0YXRlIGhhcyBiZWVuIHVwZGF0ZWQuVEFtcGxpZmljYXRpb25DaGFuZ2luZxQBHHBvb2xfaWQoAShUOjpBc3NldElkAAFUY3VycmVudF9hbXBsaWZpY2F0aW9u5QcBKE5vblplcm9VMTYAAUxmaW5hbF9hbXBsaWZpY2F0aW9u5QcBKE5vblplcm9VMTYAASxzdGFydF9ibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAEkZW5kX2Jsb2NrKAFEQmxvY2tOdW1iZXJGb3I8VD4ABwTUQW1wbGlmaWNhdGlvbiBvZiBhIHBvb2wgaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGNoYW5nZS40UG9vbERlc3Ryb3llZAQBHHBvb2xfaWQoAShUOjpBc3NldElkAAgEaEEgcG9vbCBoYXMgYmVlbiBkZXN0cm95ZWQuUFBvb2xQZWdTb3VyY2VVcGRhdGVkDAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAShwZWdfc291cmNlGQMBVFBlZ1NvdXJjZTxUOjpBc3NldElkPgAJBIRQb29sIHBlZyBzb3VyY2UgaGFzIGJlZW4gdXBkYXRlZC5cUG9vbE1heFBlZ1VwZGF0ZVVwZGF0ZWQIARxwb29sX2lkKAEoVDo6QXNzZXRJZAABOG1heF9wZWdfdXBkYXRlKQMBHFBlcmJpbGwACgSUUG9vbCBtYXggcGVnIHVwZGF0ZSBoYXMgYmVlbiB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOUHBChOb25aZXJvVTE2AAAEAIAAAADpBwQYT3B0aW9uBARUAe0HAQgQTm9uZQAAABBTb21lBADtBwAAAQAA7QcMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzLFBvb2xQZWdJbmZvCCxCbG9ja051bWJlcgEoHEFzc2V0SWQBKAAQARhzb3VyY2UVAwFoQm91bmRlZFBlZ1NvdXJjZXM8QXNzZXRJZD4AASh1cGRhdGVkX2F0KAEsQmxvY2tOdW1iZXIAAThtYXhfcGVnX3VwZGF0ZSkDARxQZXJiaWxsAAEcY3VycmVudPEHASxCb3VuZGVkUGVncwAA8QcMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAF9AgRTAAAEAPUHARhWZWM8VD4AAPUHAAACfQIA+QcMMHBhbGxldF9ib25kcxhwYWxsZXQURXZlbnQEBFQAAQwwVG9rZW5DcmVhdGVkEAEYaXNzdWVyAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoARxBc3NldElkAAEcYm9uZF9pZCgBHEFzc2V0SWQAASBtYXR1cml0eRgBGE1vbWVudAAABGxBIGJvbmQgYXNzZXQgd2FzIHJlZ2lzdGVyZWQYSXNzdWVkEAEYaXNzdWVyAAEwVDo6QWNjb3VudElkAAEcYm9uZF9pZCgBHEFzc2V0SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEMZmVlQAEoVDo6QmFsYW5jZQABBFBOZXcgYm9uZCB3ZXJlIGlzc3VlZCBSZWRlZW1lZAwBDHdobwABMFQ6OkFjY291bnRJZAABHGJvbmRfaWQoARxBc3NldElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQACBExCb25kcyB3ZXJlIHJlZGVlbWVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0/QcMWHBhbGxldF9vdGNfc2V0dGxlbWVudHMYcGFsbGV0FEV2ZW50BARUAAEEIEV4ZWN1dGVkCAEgYXNzZXRfaWQoATBBc3NldElkT2Y8VD4AARhwcm9maXRAARxCYWxhbmNlAAAEZEEgdHJhZGUgaGFzIGJlZW4gZXhlY3V0ZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQBCAwocGFsbGV0X2xicBhwYWxsZXQURXZlbnQEBFQAARgsUG9vbENyZWF0ZWQIARBwb29sAAEkUG9vbElkPFQ+AAEQZGF0YQUIAZRQb29sPFQ6OkFjY291bnRJZCwgQmxvY2tOdW1iZXJGb3I8VD4+AAAEsFBvb2wgd2FzIGNyZWF0ZWQgYnkgdGhlIGBDcmVhdGVQb29sYCBvcmlnaW4uLFBvb2xVcGRhdGVkCAEQcG9vbAABJFBvb2xJZDxUPgABEGRhdGEFCAGUUG9vbDxUOjpBY2NvdW50SWQsIEJsb2NrTnVtYmVyRm9yPFQ+PgABBFxQb29sIGRhdGEgd2VyZSB1cGRhdGVkLjhMaXF1aWRpdHlBZGRlZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABMEJhbGFuY2VPZjxUPgABIGFtb3VudF9iQAEwQmFsYW5jZU9mPFQ+AAIEnE5ldyBsaXF1aWRpdHkgd2FzIHByb3ZpZGVkIHRvIHRoZSBwb29sLkBMaXF1aWRpdHlSZW1vdmVkFAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABIGFtb3VudF9hQAEwQmFsYW5jZU9mPFQ+AAEgYW1vdW50X2JAATBCYWxhbmNlT2Y8VD4AAwT8TGlxdWlkaXR5IHdhcyByZW1vdmVkIGZyb20gdGhlIHBvb2wgYW5kIHRoZSBwb29sIHdhcyBkZXN0cm95ZWQuMFNlbGxFeGVjdXRlZBwBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AAShzYWxlX3ByaWNlQAEwQmFsYW5jZU9mPFQ+AAEkZmVlX2Fzc2V0KAEcQXNzZXRJZAABKGZlZV9hbW91bnRAATBCYWxhbmNlT2Y8VD4ABAg4U2FsZSBleGVjdXRlZC7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZCxCdXlFeGVjdXRlZBwBDHdobwABMFQ6OkFjY291bnRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAASBhc3NldF9pbigBHEFzc2V0SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AASRidXlfcHJpY2VAATBCYWxhbmNlT2Y8VD4AASRmZWVfYXNzZXQoARxBc3NldElkAAEoZmVlX2Ftb3VudEABMEJhbGFuY2VPZjxUPgAFCEhQdXJjaGFzZSBleGVjdXRlZC7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAUICChwYWxsZXRfbGJwEFBvb2wIJEFjY291bnRJZAEALEJsb2NrTnVtYmVyASgAKAEUb3duZXIAASRBY2NvdW50SWQAARRzdGFydHQBTE9wdGlvbjxCbG9ja051bWJlcj4AAQxlbmR0AUxPcHRpb248QmxvY2tOdW1iZXI+AAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQABOGluaXRpYWxfd2VpZ2h0KAEkTEJQV2VpZ2h0AAEwZmluYWxfd2VpZ2h0KAEkTEJQV2VpZ2h0AAEwd2VpZ2h0X2N1cnZlOQMBPFdlaWdodEN1cnZlVHlwZQABDGZlZakCASgodTMyLCB1MzIpAAE0ZmVlX2NvbGxlY3RvcgABJEFjY291bnRJZAABMHJlcGF5X3RhcmdldEABHEJhbGFuY2UAAAkIDChwYWxsZXRfeHlrGHBhbGxldBRFdmVudAQEVAABGDhMaXF1aWRpdHlBZGRlZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABHEJhbGFuY2UAASBhbW91bnRfYkABHEJhbGFuY2UAAAScTmV3IGxpcXVpZGl0eSB3YXMgcHJvdmlkZWQgdG8gdGhlIHBvb2wuQExpcXVpZGl0eVJlbW92ZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEYc2hhcmVzQAEcQmFsYW5jZQABBJBMaXF1aWRpdHkgd2FzIHJlbW92ZWQgZnJvbSB0aGUgcG9vbC4sUG9vbENyZWF0ZWQYAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAFUaW5pdGlhbF9zaGFyZXNfYW1vdW50QAEcQmFsYW5jZQABLHNoYXJlX3Rva2VuKAEcQXNzZXRJZAABEHBvb2wAATBUOjpBY2NvdW50SWQAAgREUG9vbCB3YXMgY3JlYXRlZC40UG9vbERlc3Ryb3llZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASxzaGFyZV90b2tlbigBHEFzc2V0SWQAARBwb29sAAEwVDo6QWNjb3VudElkAAMETFBvb2wgd2FzIGRlc3Ryb3llZC4wU2VsbEV4ZWN1dGVkIAEMd2hvAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAShzYWxlX3ByaWNlQAEcQmFsYW5jZQABJGZlZV9hc3NldCgBHEFzc2V0SWQAAShmZWVfYW1vdW50QAEcQmFsYW5jZQABEHBvb2wAATBUOjpBY2NvdW50SWQABAhQQXNzZXQgc2FsZSBleGVjdXRlZC7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZCxCdXlFeGVjdXRlZCABDHdobwABMFQ6OkFjY291bnRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAASBhc3NldF9pbigBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEkYnV5X3ByaWNlQAEcQmFsYW5jZQABJGZlZV9hc3NldCgBHEFzc2V0SWQAAShmZWVfYW1vdW50QAEcQmFsYW5jZQABEHBvb2wAATBUOjpBY2NvdW50SWQABQhgQXNzZXQgcHVyY2hhc2UgZXhlY3V0ZWQuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQNCAxAcGFsbGV0X3JlZmVycmFscxhwYWxsZXQURXZlbnQEBFQAARw4Q29kZVJlZ2lzdGVyZWQIARBjb2RlSQMBbFJlZmVycmFsQ29kZTxUOjpDb2RlTGVuZ3RoPgABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAASIUmVmZXJyYWwgY29kZSBoYXMgYmVlbiByZWdpc3RlcmVkLihDb2RlTGlua2VkDAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABEGNvZGVJAwFsUmVmZXJyYWxDb2RlPFQ6OkNvZGVMZW5ndGg+AAFAcmVmZXJyYWxfYWNjb3VudAABMFQ6OkFjY291bnRJZAABBLBSZWZlcnJhbCBjb2RlIGhhcyBiZWVuIGxpbmtlZCB0byBhbiBhY2NvdW50LiRDb252ZXJ0ZWQIARBmcm9tEQgBXEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+AAEIdG8RCAFcQXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4AAgSgQXNzZXQgaGFzIGJlZW4gY29udmVydGVkIHRvIFJld2FyZEFzc2V0LkBDb252ZXJzaW9uRmFpbGVkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYcmVhc29uIQcBNERpc3BhdGNoRXJyb3IAAwT4QSBwZW5kaW5nIGFzc2V0IGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQ7IHNraXBwZWQsIG5vdCBibG9ja2luZy4cQ2xhaW1lZAwBDHdobwABMFQ6OkFjY291bnRJZAABQHJlZmVycmVyX3Jld2FyZHNAARxCYWxhbmNlAAE0dHJhZGVfcmV3YXJkc0ABHEJhbGFuY2UABARAUmV3YXJkcyBjbGFpbWVkLkxBc3NldFJld2FyZHNVcGRhdGVkDAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEUbGV2ZWxNAwEUTGV2ZWwAARxyZXdhcmRzUQMBPEZlZURpc3RyaWJ1dGlvbgAFBHxOZXcgYXNzZXQgcmV3YXJkcyBoYXMgYmVlbiBzZXQuHExldmVsVXAIAQx3aG8AATBUOjpBY2NvdW50SWQAARRsZXZlbE0DARRMZXZlbAAGBGxSZWZlcnJlciByZWFjaGVkIG5ldyBsZXZlbC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQRCAhAcGFsbGV0X3JlZmVycmFscyxBc3NldEFtb3VudAQcQXNzZXRJZAEoAAgBIGFzc2V0X2lkKAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAABUIDEhwYWxsZXRfbGlxdWlkYXRpb24YcGFsbGV0FEV2ZW50BARUAAEIKExpcXVpZGF0ZWQQARB1c2VyWAEoRXZtQWRkcmVzcwABQGNvbGxhdGVyYWxfYXNzZXQoARxBc3NldElkAAEoZGVidF9hc3NldCgBHEFzc2V0SWQAARhwcm9maXRAARxCYWxhbmNlAAAEpE1vbmV5IG1hcmtldCBwb3NpdGlvbiBoYXMgYmVlbiBsaXF1aWRhdGVkREdpZ2FIZHhMaXF1aWRhdGVkEAEQdXNlclgBKEV2bUFkZHJlc3MAASxkZWJ0X3JlcGFpZEABHEJhbGFuY2UAAShoZHhfc2VpemVkQAEcQmFsYW5jZQABOGdpZ2FoZHhfc2VpemVkQAEcQmFsYW5jZQABEPxBIGdpZ2FoZHggTW9uZXkgTWFya2V0IHBvc2l0aW9uIHdhcyBsaXF1aWRhdGVkIGJ5IHRoZSBwcm90b2NvbC7sYGhkeF9zZWl6ZWRgIGlzIHRoZSBtYXRjaGluZyBIRFggbW92ZWQgZnJvbSB0aGUgYm9ycm93ZXIgdG/8dGhlIGdpZ2FoZHggbGlxdWlkYXRpb24gYWNjb3VudDsgYGdpZ2FoZHhfc2VpemVkYCBpcyB0aGUgYVRva2Vu6GFtb3VudCB0cmFuc2ZlcnJlZCBvdXQgb2YgdGhlIGJvcnJvd2VyJ3MgZ2lnYWhkeCBwb3NpdGlvbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQZCAwocGFsbGV0X2hzbRhwYWxsZXQURXZlbnQEBFQAARQ8Q29sbGF0ZXJhbEFkZGVkGAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAATBwdXJjaGFzZV9mZWV1AgEcUGVybWlsbAABZG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRUAUBDb2VmZmljaWVudFJhdGlvAAEwYnV5X2JhY2tfZmVldQIBHFBlcm1pbGwAATBidXliYWNrX3JhdGUpAwEcUGVyYmlsbAAAJIBBIG5ldyBjb2xsYXRlcmFsIGFzc2V0IHdhcyBhZGRlZAAsUGFyYW1ldGVyczrULSBgYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGFzc2V0IGFkZGVkIGFzIGNvbGxhdGVyYWzwLSBgcG9vbF9pZGA6IFRoZSBTdGFibGVTd2FwIHBvb2wgSUQgd2hlcmUgdGhpcyBhc3NldCBiZWxvbmdzAQEtIGBwdXJjaGFzZV9mZWVgOiBGZWUgYXBwbGllZCB3aGVuIGJ1eWluZyBIb2xsYXIgd2l0aCB0aGlzIGFzc2V0XQEtIGBtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50YDogTWF4aW11bSBidXkgcHJpY2UgY29lZmZpY2llbnQgZm9yIEhTTSB0byBidXkgYmFjayBIb2xsYXLULSBgYnV5X2JhY2tfZmVlYDogRmVlIGFwcGxpZWQgd2hlbiBidXlpbmcgYmFjayBIb2xsYXJhAS0gYGJ1eWJhY2tfcmF0ZWA6IFBhcmFtZXRlciB0aGF0IGNvbnRyb2xzIGhvdyBxdWlja2x5IEhTTSBjYW4gYnV5IEhvbGxhciB3aXRoIHRoaXMgYXNzZXREQ29sbGF0ZXJhbFJlbW92ZWQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARB4QSBjb2xsYXRlcmFsIGFzc2V0IHdhcyByZW1vdmVkACxQYXJhbWV0ZXJzOugtIGBhc3NldF9pZGA6IFRoZSBJRCBvZiB0aGUgYXNzZXQgcmVtb3ZlZCBmcm9tIGNvbGxhdGVyYWxzRENvbGxhdGVyYWxVcGRhdGVkGAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEwcHVyY2hhc2VfZmVlYQMBPE9wdGlvbjxQZXJtaWxsPgABZG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRlAwFgT3B0aW9uPENvZWZmaWNpZW50UmF0aW8+AAEwYnV5X2JhY2tfZmVlYQMBPE9wdGlvbjxQZXJtaWxsPgABMGJ1eWJhY2tfcmF0ZWkDATxPcHRpb248UGVyYmlsbD4AAThtYXhfaW5faG9sZGluZ20DAVxPcHRpb248T3B0aW9uPEJhbGFuY2U+PgACJHhBIGNvbGxhdGVyYWwgYXNzZXQgd2FzIHVwZGF0ZWQALFBhcmFtZXRlcnM60C0gYGFzc2V0X2lkYDogVGhlIElEIG9mIHRoZSB1cGRhdGVkIGNvbGxhdGVyYWwgYXNzZXQNAS0gYHB1cmNoYXNlX2ZlZWA6IE5ldyBwdXJjaGFzZSBmZWUgaWYgdXBkYXRlZCAoTm9uZSBpZiBub3QgY2hhbmdlZCl1AS0gYG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRgOiBOZXcgbWF4IGJ1eSBwcmljZSBjb2VmZmljaWVudCBpZiB1cGRhdGVkIChOb25lIGlmIG5vdCBjaGFuZ2VkKQ0BLSBgYnV5X2JhY2tfZmVlYDogTmV3IGJ1eSBiYWNrIGZlZSBpZiB1cGRhdGVkIChOb25lIGlmIG5vdCBjaGFuZ2VkKQ0BLSBgYnV5YmFja19yYXRlYDogTmV3IGJ1eWJhY2sgcmF0ZSBpZiB1cGRhdGVkIChOb25lIGlmIG5vdCBjaGFuZ2VkKT0BLSBgbWF4X2luX2hvbGRpbmdgOiBOZXcgbWF4IGNvbGxhdGVyYWwgaG9sZGluZyBpZiB1cGRhdGVkIChOb25lIGlmIG5vdCBjaGFuZ2VkKURBcmJpdHJhZ2VFeGVjdXRlZBABJGFyYml0cmFnZQgBCHU4AAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE0aG9sbGFyX2Ftb3VudEABHEJhbGFuY2UAARhwcm9maXRAARxCYWxhbmNlAAMUfEFyYml0cmFnZSBleGVjdXRlZCBzdWNjZXNzZnVsbHkALFBhcmFtZXRlcnM64C0gYGFzc2V0X2lkYDogVGhlIGNvbGxhdGVyYWwgYXNzZXQgdXNlZCBpbiB0aGUgYXJiaXRyYWdlQQEtIGBob2xsYXJfYW1vdW50YDogQW1vdW50IG9mIEhvbGxhciB0aGF0IHdhcyBpbmNsdWRlZCBpbiB0aGUgYXJiaXRyYWdlIG9wZXJhdGlvbjhGbGFzaE1pbnRlclNldAQBMGZsYXNoX21pbnRlclgBKEV2bUFkZHJlc3MABBBgRmxhc2ggbWludGVyIGFkZHJlc3Mgc2V0ACxQYXJhbWV0ZXJzOvgtIGBmbGFzaF9taW50ZXJgOiBUaGUgRVZNIGFkZHJlc3Mgb2YgdGhlIGZsYXNoIG1pbnRlciBjb250cmFjdAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldB0IDDRwYWxsZXRfc2lnbmV0GHBhbGxldBRFdmVudAQEVAABJDRDb25maWdVcGRhdGVkEAFEc2lnbmF0dXJlX2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4AAUxtYXhfY2hhaW5faWRfbGVuZ3RoKAEMdTMyAAFMbWF4X2V2bV9kYXRhX2xlbmd0aCgBDHUzMgABIGNoYWluX2lkFAEcVmVjPHU4PgAABJhTaWduZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkLhhQYXVzZWQAAQTkU2lnbmV0IGhhcyBiZWVuIHBhdXNlZC4gTm8gbmV3IHJlcXVlc3RzIHdpbGwgYmUgYWNjZXB0ZWQuIFVucGF1c2VkAAIE5FNpZ25ldCBoYXMgYmVlbiB1bnBhdXNlZC4gTmV3IHJlcXVlc3RzIGFyZSBhbGxvd2VkIGFnYWluLjhGdW5kc1dpdGhkcmF3bggBGGFtb3VudEABMEJhbGFuY2VPZjxUPgABJHJlY2lwaWVudAABMFQ6OkFjY291bnRJZAADBKRGdW5kcyBoYXZlIGJlZW4gd2l0aGRyYXduIGZyb20gdGhlIHBhbGxldEhTaWduYXR1cmVSZXF1ZXN0ZWQkARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARxwYXlsb2FkBAEgW3U4OyAzMl0AASxrZXlfdmVyc2lvbigBDHUzMgABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AASBjaGFpbl9pZBQBHFZlYzx1OD4AARBwYXRoFAEcVmVjPHU4PgABEGFsZ28UARxWZWM8dTg+AAEQZGVzdBQBHFZlYzx1OD4AARhwYXJhbXMUARxWZWM8dTg+AAQEeEEgc2lnbmF0dXJlIGhhcyBiZWVuIHJlcXVlc3RlZGhTaWduQmlkaXJlY3Rpb25hbFJlcXVlc3RlZCwBGHNlbmRlcgABMFQ6OkFjY291bnRJZAABWHNlcmlhbGl6ZWRfdHJhbnNhY3Rpb24UARxWZWM8dTg+AAEgY2FpcDJfaWQUARxWZWM8dTg+AAEsa2V5X3ZlcnNpb24oAQx1MzIAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEQcGF0aBQBHFZlYzx1OD4AARBhbGdvFAEcVmVjPHU4PgABEGRlc3QUARxWZWM8dTg+AAEYcGFyYW1zFAEcVmVjPHU4PgABdG91dHB1dF9kZXNlcmlhbGl6YXRpb25fc2NoZW1hFAEcVmVjPHU4PgABcHJlc3BvbmRfc2VyaWFsaXphdGlvbl9zY2hlbWEUARxWZWM8dTg+AAUEgFNpZ24gYmlkaXJlY3Rpb25hbCByZXF1ZXN0IGV2ZW50SFNpZ25hdHVyZVJlc3BvbmRlZAwBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABJHJlc3BvbmRlcgABMFQ6OkFjY291bnRJZAABJHNpZ25hdHVyZaEDASRTaWduYXR1cmUABgRgU2lnbmF0dXJlIHJlc3BvbnNlIGV2ZW50OFNpZ25hdHVyZUVycm9yDAEocmVxdWVzdF9pZAQBIFt1ODsgMzJdAAEkcmVzcG9uZGVyAAEwVDo6QWNjb3VudElkAAEUZXJyb3IUARxWZWM8dTg+AAcEVFNpZ25hdHVyZSBlcnJvciBldmVudGRSZXNwb25kQmlkaXJlY3Rpb25hbEV2ZW50EAEocmVxdWVzdF9pZAQBIFt1ODsgMzJdAAEkcmVzcG9uZGVyAAEwVDo6QWNjb3VudElkAAFEc2VyaWFsaXplZF9vdXRwdXQUARxWZWM8dTg+AAEkc2lnbmF0dXJloQMBJFNpZ25hdHVyZQAIBGxSZXNwb25kIGJpZGlyZWN0aW9uYWwgZXZlbnQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQhCAxAcGFsbGV0X2Rpc3BlbnNlchhwYWxsZXQURXZlbnQEBFQAARA0Q29uZmlnVXBkYXRlZBgBOGZhdWNldF9hZGRyZXNzWAEoRXZtQWRkcmVzcwABUG1pbl9mYXVjZXRfdGhyZXNob2xkQAEcQmFsYW5jZQABLG1pbl9yZXF1ZXN0QAEcQmFsYW5jZQABMG1heF9kaXNwZW5zZUABHEJhbGFuY2UAATRkaXNwZW5zZXJfZmVlQAEcQmFsYW5jZQABSGZhdWNldF9iYWxhbmNlX3dlaUABHEJhbGFuY2UAAATARGlzcGVuc2VyIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gc2V0IG9yIHVwZGF0ZWQuGFBhdXNlZAABBPBEaXNwZW5zZXIgaGFzIGJlZW4gcGF1c2VkLiBObyBuZXcgcmVxdWVzdHMgd2lsbCBiZSBhY2NlcHRlZC4gVW5wYXVzZWQAAgTwRGlzcGVuc2VyIGhhcyBiZWVuIHVucGF1c2VkLiBOZXcgcmVxdWVzdHMgYXJlIGFsbG93ZWQgYWdhaW4uNEZ1bmRSZXF1ZXN0ZWQQAShyZXF1ZXN0X2lkBAEcQnl0ZXMzMgTIVW5pcXVlIHJlcXVlc3QgSUQgZGVyaXZlZCBmcm9tIHJlcXVlc3QgcGFyYW1ldGVycy4BJHJlcXVlc3RlcgABMFQ6OkFjY291bnRJZASMQWNjb3VudCB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdC4BCHRvWAEoRXZtQWRkcmVzcwSIVGFyZ2V0IEVWTSBhZGRyZXNzIHRvIHJlY2VpdmUgRVRILgEYYW1vdW50QAEcQmFsYW5jZQSEUmVxdWVzdGVkIGFtb3VudCBvZiBFVEggKGluIHdlaSkuAxC8QSBmdW5kaW5nIHJlcXVlc3QgaGFzIGJlZW4gc3VibWl0dGVkIHRvIFNpZ05ldC4ADQFOb3RlOiBUaGlzIGluZGljYXRlcyB0aGUgcmVxdWVzdCB3YXMgZm9ybWVkIGFuZCBzdWJtaXR0ZWQsIG5vdCB0aGF06HRoZSBFVk0gdHJhbnNhY3Rpb24gaGFzIGJlZW4gaW5jbHVkZWQgb24gdGhlIHRhcmdldCBjaGFpbi4EOFBhbGxldCBldmVudHMuJQgMOHBhbGxldF9naWdhaGR4GHBhbGxldBRFdmVudAQEVAABHBhTdGFrZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAEcZ2lnYWhkeEABHEJhbGFuY2UAAAAgVW5zdGFrZWQYAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAE4Z2lnYWhkeF9hbW91bnRAARxCYWxhbmNlAAEYcGF5b3V0QAEcQmFsYW5jZQABLHlpZWxkX3NoYXJlQAEcQmFsYW5jZQABKGV4cGlyZXNfYXQoAURCbG9ja051bWJlckZvcjxUPgABACBVbmxvY2tlZAwBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkKAFEQmxvY2tOdW1iZXJGb3I8VD4AARhhbW91bnRAARxCYWxhbmNlAAIAQFVuc3Rha2VDYW5jZWxsZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEYYW1vdW50QAEcQmFsYW5jZQABHGdpZ2FoZHhAARxCYWxhbmNlAAMATFBvb2xDb250cmFjdFVwZGF0ZWQEASBjb250cmFjdFgBKEV2bUFkZHJlc3MABABITWlncmF0ZWRGcm9tTGVnYWN5DAEMd2hvAAEwVDo6QWNjb3VudElkAAEwaGR4X3VubG9ja2VkQAEcQmFsYW5jZQABQGdpZ2FoZHhfcmVjZWl2ZWRAARxCYWxhbmNlAAUQ/ENhbGxlciBtaWdyYXRlZCB0aGVpciBsZWdhY3kgTkZUIHN0YWtpbmcgcG9zaXRpb24gaW50byBnaWdhaGR4LvRgaGR4X3VubG9ja2VkYCBpcyB0aGUgc3VtIG9mIGxlZ2FjeSBzdGFrZSArIHByZXZpb3VzbHkgbG9ja2VkAQFyZXdhcmRzICsgZnJlc2hseSBwYWlkIHJld2FyZHM7IGBnaWdhaGR4X3JlY2VpdmVkYCBpcyB0aGUgYVRva2VutGFtb3VudCBhY3R1YWxseSBjcmVkaXRlZCBieSB0aGUgbW9uZXkgbWFya2V0LjRZaWVsZFJlYWxpemVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEcQmFsYW5jZQAGDAUBQWNjcnVlZCB5aWVsZCB3YXMgbW92ZWQgZnJvbSB0aGUgZ2lnYXBvdCBpbnRvIHRoZSBjYWxsZXIncyBsb2NrZWT0c3Rha2UgcHJpbmNpcGFsLiBgYW1vdW50YCBpcyB0aGUgSERYIHRyYW5zZmVycmVkIGFuZCBhZGRlZCB0bwUBYFN0YWtlc1t3aG9dLmhkeGA7IGBnaWdhaGR4YCBhbmQgdGhlIGV4Y2hhbmdlIHJhdGUgYXJlIHVuY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQpCAxYcGFsbGV0X2dpZ2FoZHhfcmV3YXJkcxhwYWxsZXQURXZlbnQEBFQAAQxMUmV3YXJkUG9vbEFsbG9jYXRlZBQBJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAABIHRyYWNrX2lkgAEoVDo6VHJhY2tJZAABMHRvdGFsX3Jld2FyZEABHEJhbGFuY2UAAVB0b3RhbF93ZWlnaHRlZF92b3Rlc0ABEHUxMjgAAUB2b3RlcnNfcmVtYWluaW5nKAEMdTMyAAAI/FJld2FyZHMgZm9yIGEgY29tcGxldGVkIHJlZmVyZW5kdW0gaGF2ZSBiZWVuIGFsbG9jYXRlZCBmcm9tIHRoZUBhY2N1bXVsYXRvciBwb3QuSFVzZXJSZXdhcmRSZWNvcmRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAABNHJld2FyZF9hbW91bnRAARxCYWxhbmNlAAEI/EEgdXNlcidzIHNoYXJlIG9mIGEgcmVmZXJlbmR1bSdzIHJld2FyZCBwb29sIHdhcyBhZGRlZCB0byB0aGVpckRgUGVuZGluZ1Jld2FyZHNgLjhSZXdhcmRzQ2xhaW1lZAwBDHdobwABMFQ6OkFjY291bnRJZAABJHRvdGFsX2hkeEABHEJhbGFuY2UAAUBnaWdhaGR4X3JlY2VpdmVkQAEcQmFsYW5jZQACCPxBIHVzZXIgY29udmVydGVkIHRoZWlyIGFjY3VtdWxhdGVkIEhEWCByZXdhcmRzIGludG8gR0lHQUhEWCB2aWFAYGNsYWltX3Jld2FyZHNgLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldC0IDCxvcm1sX3Rva2Vucxhtb2R1bGUURXZlbnQEBFQAAUQcRW5kb3dlZAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAQjsQW4gYWNjb3VudCB3YXMgcmVtb3ZlZCB3aG9zZSBiYWxhbmNlIHdhcyBub24temVybyBidXQgYmVsb3fIRXhpc3RlbnRpYWxEZXBvc2l0LCByZXN1bHRpbmcgaW4gYW4gb3V0cmlnaHQgbG9zcy4gVHJhbnNmZXIQASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAIETFRyYW5zZmVyIHN1Y2NlZWRlZC4gUmVzZXJ2ZWQMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAME4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAQE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkFAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABGHN0YXR1cz0HATRCYWxhbmNlU3RhdHVzAAUI9FNvbWUgcmVzZXJ2ZWQgYmFsYW5jZSB3YXMgcmVwYXRyaWF0ZWQgKG1vdmVkIGZyb20gcmVzZXJ2ZWQgdG9EYW5vdGhlciBhY2NvdW50KS4oQmFsYW5jZVNldBABLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABEGZyZWVAAShUOjpCYWxhbmNlAAEgcmVzZXJ2ZWRAAShUOjpCYWxhbmNlAAYEaEEgYmFsYW5jZSB3YXMgc2V0IGJ5IHJvb3QuQFRvdGFsSXNzdWFuY2VTZXQIASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAcEuFRoZSB0b3RhbCBpc3N1YW5jZSBvZiBhbiBjdXJyZW5jeSBoYXMgYmVlbiBzZXQkV2l0aGRyYXduDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAIBOxTb21lIGJhbGFuY2VzIHdlcmUgd2l0aGRyYXduIChlLmcuIHBheSBmb3IgdHJhbnNhY3Rpb24gZmVlKRxTbGFzaGVkEAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEsZnJlZV9hbW91bnRAAShUOjpCYWxhbmNlAAE8cmVzZXJ2ZWRfYW1vdW50QAEoVDo6QmFsYW5jZQAJBNRTb21lIGJhbGFuY2VzIHdlcmUgc2xhc2hlZCAoZS5nLiBkdWUgdG8gbWlzLWJlaGF2aW9yKSREZXBvc2l0ZWQMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAoEmERlcG9zaXRlZCBzb21lIGJhbGFuY2UgaW50byBhbiBhY2NvdW50HExvY2tTZXQQARxsb2NrX2lkIQEBOExvY2tJZGVudGlmaWVyAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQALBFRTb21lIGZ1bmRzIGFyZSBsb2NrZWQsTG9ja1JlbW92ZWQMARxsb2NrX2lkIQEBOExvY2tJZGVudGlmaWVyAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAwEfFNvbWUgbG9ja2VkIGZ1bmRzIHdlcmUgdW5sb2NrZWQYTG9ja2VkDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQANBHRTb21lIGZyZWUgYmFsYW5jZSB3YXMgbG9ja2VkLiBVbmxvY2tlZAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UADgR4U29tZSBsb2NrZWQgYmFsYW5jZSB3YXMgZnJlZWQuGElzc3VlZAgBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UADwAkUmVzY2luZGVkCAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAQAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDEIDERwYWxsZXRfY3VycmVuY2llcxhtb2R1bGUURXZlbnQEBFQAARAsVHJhbnNmZXJyZWQQASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgAABGhDdXJyZW5jeSB0cmFuc2ZlciBzdWNjZXNzLjhCYWxhbmNlVXBkYXRlZAwBLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW500QMBLEFtb3VudE9mPFQ+AAEEXFVwZGF0ZSBiYWxhbmNlIHN1Y2Nlc3MuJERlcG9zaXRlZAwBLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAIEQERlcG9zaXQgc3VjY2Vzcy4kV2l0aGRyYXduDAEsY3VycmVuY3lfaWQoATxDdXJyZW5jeUlkT2Y8VD4AAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AAwREV2l0aGRyYXcgc3VjY2Vzcy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ1CAwwb3JtbF92ZXN0aW5nGG1vZHVsZRRFdmVudAQEVAABDFBWZXN0aW5nU2NoZWR1bGVBZGRlZAwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABQHZlc3Rpbmdfc2NoZWR1bGXZAwFQVmVzdGluZ1NjaGVkdWxlT2Y8VD4AAARsQWRkZWQgbmV3IHZlc3Rpbmcgc2NoZWR1bGUuHENsYWltZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AAQRAQ2xhaW1lZCB2ZXN0aW5nLlxWZXN0aW5nU2NoZWR1bGVzVXBkYXRlZAQBDHdobwABMFQ6OkFjY291bnRJZAACBGhVcGRhdGVkIHZlc3Rpbmcgc2NoZWR1bGVzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDkIDChwYWxsZXRfZXZtGHBhbGxldBRFdmVudAQEVAABFAxMb2cEAQxsb2c9CAEMTG9nAAAEfEV0aGVyZXVtIGV2ZW50cyBmcm9tIGNvbnRyYWN0cy4cQ3JlYXRlZAQBHGFkZHJlc3NYARBIMTYwAAEEtEEgY29udHJhY3QgaGFzIGJlZW4gY3JlYXRlZCBhdCBnaXZlbiBhZGRyZXNzLjRDcmVhdGVkRmFpbGVkBAEcYWRkcmVzc1gBEEgxNjAAAgQFAUEgY29udHJhY3Qgd2FzIGF0dGVtcHRlZCB0byBiZSBjcmVhdGVkLCBidXQgdGhlIGV4ZWN1dGlvbiBmYWlsZWQuIEV4ZWN1dGVkBAEcYWRkcmVzc1gBEEgxNjAAAwT4QSBjb250cmFjdCBoYXMgYmVlbiBleGVjdXRlZCBzdWNjZXNzZnVsbHkgd2l0aCBzdGF0ZXMgYXBwbGllZC44RXhlY3V0ZWRGYWlsZWQEARxhZGRyZXNzWAEQSDE2MAAEBGUBQSBjb250cmFjdCBoYXMgYmVlbiBleGVjdXRlZCB3aXRoIGVycm9ycy4gU3RhdGVzIGFyZSByZXZlcnRlZCB3aXRoIG9ubHkgZ2FzIGZlZXMgYXBwbGllZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ9CAwgZXRoZXJldW0MbG9nDExvZwAADAEcYWRkcmVzc1gBEEgxNjAAARh0b3BpY3PsASRWZWM8SDI1Nj4AARBkYXRhFAEUQnl0ZXMAAEEIDDxwYWxsZXRfZXRoZXJldW0YcGFsbGV0FEV2ZW50AAEEIEV4ZWN1dGVkFAEQZnJvbVgBEEgxNjAAAQh0b1gBEEgxNjAAAUB0cmFuc2FjdGlvbl9oYXNoLAEQSDI1NgABLGV4aXRfcmVhc29uRQgBKEV4aXRSZWFzb24AAShleHRyYV9kYXRhFAEcVmVjPHU4PgAABMhBbiBldGhlcmV1bSB0cmFuc2FjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldEUIDCBldm1fY29yZRRlcnJvcihFeGl0UmVhc29uAAEQHFN1Y2NlZWQEAEkIASxFeGl0U3VjY2VlZAAAABRFcnJvcgQATQgBJEV4aXRFcnJvcgABABhSZXZlcnQEAF0IAShFeGl0UmV2ZXJ0AAIAFEZhdGFsBABhCAEkRXhpdEZhdGFsAAMAAEkIDCBldm1fY29yZRRlcnJvcixFeGl0U3VjY2VlZAABDBxTdG9wcGVkAAAAIFJldHVybmVkAAEAIFN1aWNpZGVkAAIAAE0IDCBldm1fY29yZRRlcnJvciRFeGl0RXJyb3IAAUA4U3RhY2tVbmRlcmZsb3cAAAA0U3RhY2tPdmVyZmxvdwABACxJbnZhbGlkSnVtcAACADBJbnZhbGlkUmFuZ2UAAwBERGVzaWduYXRlZEludmFsaWQABAAsQ2FsbFRvb0RlZXAABQA8Q3JlYXRlQ29sbGlzaW9uAAYATENyZWF0ZUNvbnRyYWN0TGltaXQABwAsSW52YWxpZENvZGUEAFEIARhPcGNvZGUADwAsT3V0T2ZPZmZzZXQACAAgT3V0T2ZHYXMACQAkT3V0T2ZGdW5kAAoALFBDVW5kZXJmbG93AAsALENyZWF0ZUVtcHR5AAwAFE90aGVyBABVCAFEQ293PCdzdGF0aWMsIHN0cj4ADQAgTWF4Tm9uY2UADgAAUQgMIGV2bV9jb3JlGG9wY29kZRhPcGNvZGUAAAQACAEIdTgAAFUIBAxDb3cEBFQBWQgABABZCAAAAFkIAAAFAgBdCAwgZXZtX2NvcmUUZXJyb3IoRXhpdFJldmVydAABBCBSZXZlcnRlZAAAAABhCAwgZXZtX2NvcmUUZXJyb3IkRXhpdEZhdGFsAAEQME5vdFN1cHBvcnRlZAAAAEhVbmhhbmRsZWRJbnRlcnJ1cHQAAQBAQ2FsbEVycm9yQXNGYXRhbAQATQgBJEV4aXRFcnJvcgACABRPdGhlcgQAVQgBRENvdzwnc3RhdGljLCBzdHI+AAMAAGUIDExwYWxsZXRfZXZtX2FjY291bnRzGHBhbGxldBRFdmVudAQEVAABIBRCb3VuZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARxhZGRyZXNzWAEoRXZtQWRkcmVzcwAABFBCaW5kaW5nIHdhcyBjcmVhdGVkLjREZXBsb3llckFkZGVkBAEMd2hvWAEoRXZtQWRkcmVzcwABBExEZXBsb3llciB3YXMgYWRkZWQuPERlcGxveWVyUmVtb3ZlZAQBDHdob1gBKEV2bUFkZHJlc3MAAgRURGVwbG95ZXIgd2FzIHJlbW92ZWQuQENvbnRyYWN0QXBwcm92ZWQEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwADBFhDb250cmFjdCB3YXMgYXBwcm92ZWQuTENvbnRyYWN0RGlzYXBwcm92ZWQEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwAEBGRDb250cmFjdCB3YXMgZGlzYXBwcm92ZWQuOEFjY291bnRDbGFpbWVkCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFBFBBY2NvdW50IHdhcyBjbGFpbWVkLjBOdHRNaW50ZXJTZXQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhtaW50ZXJYAShFdm1BZGRyZXNzAAYEgE5UVCBtaW50ZXIgd2FzIHNldCBmb3IgYW4gYXNzZXQuQE50dE1pbnRlckNsZWFyZWQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQABwSQTlRUIG1pbnRlciB3YXMgY2xlYXJlZCBmb3IgYW4gYXNzZXQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0aQgMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQEBFQAATRER2xvYmFsRmFybUNyZWF0ZWQsAQhpZCgBMEdsb2JhbEZhcm1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAE0dG90YWxfcmV3YXJkc0ABHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAFAeWllbGRfcGVyX3BlcmlvZJkCASxQZXJxdWludGlsbAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABSGluY2VudGl2aXplZF9hc3NldCgBHEFzc2V0SWQAAVRtYXhfcmV3YXJkX3Blcl9wZXJpb2RAARxCYWxhbmNlAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAAABHBOZXcgZ2xvYmFsIGZhcm0gd2FzIGNyZWF0ZWQuREdsb2JhbEZhcm1VcGRhdGVkCAEIaWQoATBHbG9iYWxGYXJtSWQAAUBwcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAEEtEdsb2JhbCBmYXJtJ3MgYHByaWNlX2FkanVzdG1lbnRgIHdhcyB1cGRhdGVkLkBZaWVsZEZhcm1DcmVhdGVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAgScTmV3IHlpZWxkIGZhcm0gd2FzIGFkZGVkIGludG8gdGhlIGZhcm0uUEdsb2JhbEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAFUdW5kaXN0cmlidXRlZF9yZXdhcmRzQAEcQmFsYW5jZQADBGxHbG9iYWwgZmFybSB3YXMgdGVybWluYXRlZC48U2hhcmVzRGVwb3NpdGVkGAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAEgbHBfdG9rZW4oARxBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAEBHBOZXcgTFAgdG9rZW5zIHdhcyBkZXBvc2l0ZWQuRFNoYXJlc1JlZGVwb3NpdGVkGAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAEgbHBfdG9rZW4oARxBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAFBMxMUCB0b2tlbiB3YXMgcmVkZXBvc2l0ZWQgZm9yIGEgbmV3IHlpZWxkIGZhcm0gZW50cnk0UmV3YXJkQ2xhaW1lZBgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEcY2xhaW1lZEABHEJhbGFuY2UAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAGBFBSZXdhcmRzIHdhcyBjbGFpbWVkLjxTaGFyZXNXaXRoZHJhd24YAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABIGxwX3Rva2VuKAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAcEYExQIHRva2VucyB3YXMgd2l0aGRyYXduLkBZaWVsZEZhcm1TdG9wcGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgAIBJhZaWVsZCBmYXJtIGZvciBhc3NldCBwYWlyIHdhcyBzdG9wcGVkLkBZaWVsZEZhcm1SZXN1bWVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgAJBJhZaWVsZCBmYXJtIGZvciBhc3NldCBwYWlyIHdhcyByZXN1bWVkLkxZaWVsZEZhcm1UZXJtaW5hdGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgAKBKxZaWVsZCBmYXJtIHdhcyB0ZXJtaW5hdGVkIGZyb20gZ2xvYmFsIGZhcm0uQFlpZWxkRmFybVVwZGF0ZWQUAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAsEiFlpZWxkIGZhcm0gbXVsdGlwbGllciB3YXMgdXBkYXRlZC5ARGVwb3NpdERlc3Ryb3llZAgBDHdobwABMFQ6OkFjY291bnRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQADASsTkZUIHJlcHJlc2VudGluZyBkZXBvc2l0IGhhcyBiZWVuIGRlc3Ryb3llZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldG0IDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXZlbnQIBFQABEkAAQxcR2xvYmFsRmFybUFjY1JQWlVwZGF0ZWQMAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABOHRvdGFsX3NoYXJlc196QAEcQmFsYW5jZQAABNRHbG9iYWwgZmFybSBhY2N1bXVsYXRlZCByZXdhcmQgcGVyIHNoYXJlIHdhcyB1cGRhdGVkLlxZaWVsZEZhcm1BY2NSUFZTVXBkYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABTHRvdGFsX3ZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAEE7FlpZWxkIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciB2YWx1ZWQgc2hhcmUgd2FzIHVwZGF0ZWQuVEFsbFJld2FyZHNEaXN0cmlidXRlZAQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAIE8Edsb2JhbCBmYXJtIGhhcyBubyBtb3JlIHJld2FyZHMgdG8gZGlzdHJpYnV0ZSBpbiB0aGUgbW9tZW50LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHEIDFhwYWxsZXRfcmVsYXljaGFpbl9pbmZvGHBhbGxldBRFdmVudAQEVAABBExDdXJyZW50QmxvY2tOdW1iZXJzCAFYcGFyYWNoYWluX2Jsb2NrX251bWJlcigBREJsb2NrTnVtYmVyRm9yPFQ+AAFccmVsYXljaGFpbl9ibG9ja19udW1iZXIoAURCbG9ja051bWJlckZvcjxUPgAACFRDdXJyZW50IGJsb2NrIG51bWJlcnPMWyBQYXJhY2hhaW4gYmxvY2sgbnVtYmVyLCBSZWxheWNoYWluIEJsb2NrIG51bWJlciBdBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0dQgMKHBhbGxldF9kY2EYcGFsbGV0FEV2ZW50BARUAAEkQEV4ZWN1dGlvblN0YXJ0ZWQIAQhpZCgBKFNjaGVkdWxlSWQAARRibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAAEcFRoZSBEQ0EgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQkU2NoZWR1bGVkFAEIaWQoAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4AATB0b3RhbF9hbW91bnRAARxCYWxhbmNlAAEUb3JkZXJRBAFET3JkZXI8VDo6QXNzZXRJZD4AAQScVGhlIERDQSBpcyBzY2hlZHVsZWQgZm9yIG5leHQgZXhlY3V0aW9uQEV4ZWN1dGlvblBsYW5uZWQMAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARRibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAIEiFRoZSBEQ0EgaXMgcGxhbm5lZCBmb3IgYmxvY2tudW1iZXI0VHJhZGVFeGVjdXRlZBABCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQADBJhUaGUgRENBIHRyYWRlIGlzIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCxUcmFkZUZhaWxlZAwBCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IABASEVGhlIERDQSB0cmFkZSBleGVjdXRpb24gaXMgZmFpbGVkKFRlcm1pbmF0ZWQMAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARRlcnJvciEHATREaXNwYXRjaEVycm9yAAUE7FRoZSBEQ0EgaXMgdGVybWluYXRlZCBhbmQgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIGNoYWluJENvbXBsZXRlZAgBCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAAGBOhUaGUgRENBIGlzIGNvbXBsZXRlZCBhbmQgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIGNoYWluaFJhbmRvbW5lc3NHZW5lcmF0aW9uRmFpbGVkCAEUYmxvY2soAURCbG9ja051bWJlckZvcjxUPgABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IABwRBAVJhbmRvbW5lc3MgZ2VuZXJhdGlvbiBmYWlsZWQgcG9zc2libHkgY29taW5nIGZyb20gbWlzc2luZyBkYXRhIGFib3V0IHJlbGF5IGNoYWluPFJlc2VydmVVbmxvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAIBPREQ0EgcmVzZXJ2ZSBmb3IgdGhlIGdpdmVuIGFzc2V0IGhhdmUgYmVlbiB1bmxvY2tlZCBmb3IgYSB1c2VyBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0eQgMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEV2ZW50BARUAAEoJFNjaGVkdWxlZAgBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4KAEMdTMyAAAEUFNjaGVkdWxlZCBzb21lIHRhc2suIENhbmNlbGVkCAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgoAQx1MzIAAQRMQ2FuY2VsZWQgc29tZSB0YXNrLihEaXNwYXRjaGVkDAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAIEVERpc3BhdGNoZWQgc29tZSB0YXNrLiBSZXRyeVNldBABEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgABGHBlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEccmV0cmllcwgBCHU4AAMEoFNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHNvbWUgdGFzay44UmV0cnlDYW5jZWxsZWQIARB0YXNrqQIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk8QYBQE9wdGlvbjxUYXNrTmFtZT4ABASsQ2FuY2VsIGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjxDYWxsVW5hdmFpbGFibGUIARB0YXNrqQIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk8QYBQE9wdGlvbjxUYXNrTmFtZT4ABQQpAVRoZSBjYWxsIGZvciB0aGUgcHJvdmlkZWQgaGFzaCB3YXMgbm90IGZvdW5kIHNvIHRoZSB0YXNrIGhhcyBiZWVuIGFib3J0ZWQuOFBlcmlvZGljRmFpbGVkCAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAYEPQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJlbmV3ZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2suLFJldHJ5RmFpbGVkCAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAcIXQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJldHJpZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2sgb3IgdGhlcmWcd2FzIG5vdCBlbm91Z2ggd2VpZ2h0IHRvIHJlc2NoZWR1bGUgaXQuVFBlcm1hbmVudGx5T3ZlcndlaWdodAgBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgAIBPBUaGUgZ2l2ZW4gdGFzayBjYW4gbmV2ZXIgYmUgZXhlY3V0ZWQgc2luY2UgaXQgaXMgb3ZlcndlaWdodC5AQWdlbmRhSW5jb21wbGV0ZQQBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgAJBIRBZ2VuZGEgaXMgaW5jb21wbGV0ZSBmcm9tIGB3aGVuYC4EMEV2ZW50cyB0eXBlLn0IDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBRFdmVudAQEVAABGGBWYWxpZGF0aW9uRnVuY3Rpb25TdG9yZWQAAATQVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGFwcGx5LmRWYWxpZGF0aW9uRnVuY3Rpb25BcHBsaWVkBAFUcmVsYXlfY2hhaW5fYmxvY2tfbnVtKAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEERQFUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB3YXMgYXBwbGllZCBhcyBvZiB0aGUgY29udGFpbmVkIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlci5sVmFsaWRhdGlvbkZ1bmN0aW9uRGlzY2FyZGVkAAIEsFRoZSByZWxheS1jaGFpbiBhYm9ydGVkIHRoZSB1cGdyYWRlIHByb2Nlc3MuYERvd253YXJkTWVzc2FnZXNSZWNlaXZlZAQBFGNvdW50KAEMdTMyAAMEAQFTb21lIGRvd253YXJkIG1lc3NhZ2VzIGhhdmUgYmVlbiByZWNlaXZlZCBhbmQgd2lsbCBiZSBwcm9jZXNzZWQuZERvd253YXJkTWVzc2FnZXNQcm9jZXNzZWQIASx3ZWlnaHRfdXNlZOQBGFdlaWdodAABIGRtcV9oZWFkLAFEcmVsYXlfY2hhaW46Okhhc2gABATgRG93bndhcmQgbWVzc2FnZXMgd2VyZSBwcm9jZXNzZWQgdXNpbmcgdGhlIGdpdmVuIHdlaWdodC5EVXB3YXJkTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2jxBgE8T3B0aW9uPFhjbUhhc2g+AAUEuEFuIHVwd2FyZCBtZXNzYWdlIHdhcyBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSBCAwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAXQkQXR0ZW1wdGVkBAEcb3V0Y29tZYUIAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbpwBIExvY2F0aW9uAAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABHG1lc3NhZ2W1BQEcWGNtPCgpPgABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAEEYEFuIFhDTSBtZXNzYWdlIHdhcyBzZW50LihTZW5kRmFpbGVkEAEYb3JpZ2lunAEgTG9jYXRpb24AASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEUZXJyb3KNCAEkU2VuZEVycm9yAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAAgR4QW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHNlbmQuPFByb2Nlc3NYY21FcnJvcgwBGG9yaWdpbpwBIExvY2F0aW9uAAEUZXJyb3LlBQEgWGNtRXJyb3IAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAADBIRBbiBYQ00gbWVzc2FnZSBmYWlsZWQgdG8gcHJvY2Vzcy5IVW5leHBlY3RlZFJlc3BvbnNlCAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQABAxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABIHJlc3BvbnNl2QUBIFJlc3BvbnNlAAUIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZBgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAGCFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZBgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAABNGFjdHVhbF93ZWlnaHTkARhXZWlnaHQAAUxtYXhfYnVkZ2V0ZWRfd2VpZ2h05AEYV2VpZ2h0AAcMSQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uWQFjb3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBiZWNhdXNlIHRoZSBkaXNwYXRjaCB3ZWlnaHQgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHdlaWdodORvcmlnaW5hbGx5IGJ1ZGdldGVkIGJ5IHRoaXMgcnVudGltZSBmb3IgdGhlIHF1ZXJ5IHJlc3VsdC5MTm90aWZ5RGlzcGF0Y2hFcnJvcgwBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAgIVQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlcmUgd2FzIGEgZ2VuZXJhbCBlcnJvciB3aXRoiGRpc3BhdGNoaW5nIHRoZSBub3RpZmljYXRpb24gY2FsbC5ITm90aWZ5RGVjb2RlRmFpbGVkDAEgcXVlcnlfaWQYARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgACQxRAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgZGlzcGF0Y2ggd2FzIHVuYWJsZSB0byBiZVkBZGVjb2RlZCBpbnRvIGEgYENhbGxgOyB0aGlzIG1pZ2h0IGJlIGR1ZSB0byBkaXNwYXRjaCBmdW5jdGlvbiBoYXZpbmcgYSBzaWduYXR1cmUgd2hpY2iUaXMgbm90IGAob3JpZ2luLCBRdWVyeUlkLCBSZXNwb25zZSlgLkBJbnZhbGlkUmVzcG9uZGVyDAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAAURleHBlY3RlZF9sb2NhdGlvbvkFAUBPcHRpb248TG9jYXRpb24+AAoMWQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIG9yaWdpbiBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1UBbm90IG1hdGNoIHRoYXQgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5cSW52YWxpZFJlc3BvbmRlclZlcnNpb24IARhvcmlnaW6cASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAALHFEBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBvcmlnaW4gbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjRSZXNwb25zZVRha2VuBAEgcXVlcnlfaWQYARxRdWVyeUlkAAwEyFJlY2VpdmVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlYWQgYW5kIHJlbW92ZWQuNEFzc2V0c1RyYXBwZWQMARBoYXNoLAEQSDI1NgABGG9yaWdpbpwBIExvY2F0aW9uAAEYYXNzZXRzMQYBPFZlcnNpb25lZEFzc2V0cwANBLhTb21lIGFzc2V0cyBoYXZlIGJlZW4gcGxhY2VkIGluIGFuIGFzc2V0IHRyYXAuVFZlcnNpb25DaGFuZ2VOb3RpZmllZBABLGRlc3RpbmF0aW9unAEgTG9jYXRpb24AARhyZXN1bHQoAShYY21WZXJzaW9uAAEQY29zdMEFARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAODCUBQW4gWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGhhcyBiZWVuIGF0dGVtcHRlZCB0byBiZSBzZW50LgDgVGhlIGNvc3Qgb2Ygc2VuZGluZyBpdCAoYm9ybmUgYnkgdGhlIGNoYWluKSBpcyBpbmNsdWRlZC5cU3VwcG9ydGVkVmVyc2lvbkNoYW5nZWQIASBsb2NhdGlvbpwBIExvY2F0aW9uAAEcdmVyc2lvbigBKFhjbVZlcnNpb24ADwg5AVRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBhIGxvY2F0aW9uIGhhcyBiZWVuIGNoYW5nZWQuIFRoaXMgbWlnaHQgYmUgdGhyb3VnaCBhbsBhdXRvbWF0aWMgbm90aWZpY2F0aW9uIG9yIGEgbWFudWFsIGludGVydmVudGlvbi5QTm90aWZ5VGFyZ2V0U2VuZEZhaWwMASBsb2NhdGlvbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkAAEUZXJyb3LlBQEgWGNtRXJyb3IAEAhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9yfHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBpdC5kTm90aWZ5VGFyZ2V0TWlncmF0aW9uRmFpbAgBIGxvY2F0aW9urQQBRFZlcnNpb25lZExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkABEIWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcrRtaWdyYXRpbmcgdGhlIGxvY2F0aW9uIHRvIG91ciBuZXcgWENNIGZvcm1hdC5USW52YWxpZFF1ZXJpZXJWZXJzaW9uCAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAEhxVAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgcXVlcmllciBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuOEludmFsaWRRdWVyaWVyEAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQAAUBleHBlY3RlZF9xdWVyaWVynAEgTG9jYXRpb24AAVBtYXliZV9hY3R1YWxfcXVlcmllcvkFAUBPcHRpb248TG9jYXRpb24+ABMMXQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIHF1ZXJpZXIgbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNRAW5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5QVmVyc2lvbk5vdGlmeVN0YXJ0ZWQMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEQY29zdMEFARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAUCFkBQSByZW1vdGUgaGFzIHJlcXVlc3RlZCBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZyb20gdXMgYW5kIHdlIGhhdmUgaG9ub3JlZCBpdC4dAUEgdmVyc2lvbiBpbmZvcm1hdGlvbiBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlbSBhbmQgaXRzIGNvc3QgaXMgaW5jbHVkZWQuWFZlcnNpb25Ob3RpZnlSZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEQY29zdMEFARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAVBD0BV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzZW5kIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb25zLmBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEQY29zdMEFARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAWCCUBV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzdG9wcyBzZW5kaW5nIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZThub3RpZmljYXRpb25zLiBGZWVzUGFpZAgBGHBheWluZ5wBIExvY2F0aW9uAAEQZmVlc8EFARhBc3NldHMAFwQxAUZlZXMgd2VyZSBwYWlkIGZyb20gYSBsb2NhdGlvbiBmb3IgYW4gb3BlcmF0aW9uIChvZnRlbiBmb3IgdXNpbmcgYFNlbmRYY21gKS40QXNzZXRzQ2xhaW1lZAwBEGhhc2gsARBIMjU2AAEYb3JpZ2lunAEgTG9jYXRpb24AARhhc3NldHMxBgE8VmVyc2lvbmVkQXNzZXRzABgEwFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBjbGFpbWVkIGZyb20gYW4gYXNzZXQgdHJhcGBWZXJzaW9uTWlncmF0aW9uRmluaXNoZWQEARx2ZXJzaW9uKAEoWGNtVmVyc2lvbgAZBIRBIFhDTSB2ZXJzaW9uIG1pZ3JhdGlvbiBmaW5pc2hlZC48QWxpYXNBdXRob3JpemVkDAEcYWxpYXNlcpwBIExvY2F0aW9uAAEYdGFyZ2V0nAEgTG9jYXRpb24AARhleHBpcnlZAwEsT3B0aW9uPHU2ND4AGghdAUFuIGBhbGlhc2VyYCBsb2NhdGlvbiB3YXMgYXV0aG9yaXplZCBieSBgdGFyZ2V0YCB0byBhbGlhcyBpdCwgYXV0aG9yaXphdGlvbiB2YWxpZCB1bnRpbFhgZXhwaXJ5YCBibG9jayBudW1iZXIuZEFsaWFzQXV0aG9yaXphdGlvblJlbW92ZWQIARxhbGlhc2VynAEgTG9jYXRpb24AARh0YXJnZXScASBMb2NhdGlvbgAbBMxgdGFyZ2V0YCByZW1vdmVkIGFsaWFzIGF1dGhvcml6YXRpb24gZm9yIGBhbGlhc2VyYC5wQWxpYXNlc0F1dGhvcml6YXRpb25zUmVtb3ZlZAQBGHRhcmdldJwBIExvY2F0aW9uABwEqGB0YXJnZXRgIHJlbW92ZWQgYWxsIGFsaWFzIGF1dGhvcml6YXRpb25zLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIUIECxzdGFnaW5nX3hjbQh2NRh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWTkARhXZWlnaHQAAAAoSW5jb21wbGV0ZQgBEHVzZWTkARhXZWlnaHQAARRlcnJvcokIAUBJbnN0cnVjdGlvbkVycm9yAAEAFEVycm9yBACJCAFASW5zdHJ1Y3Rpb25FcnJvcgACAACJCBAsc3RhZ2luZ194Y20IdjUYdHJhaXRzQEluc3RydWN0aW9uRXJyb3IAAAgBFGluZGV4CAFASW5zdHJ1Y3Rpb25JbmRleAABFGVycm9y5QUBFEVycm9yAACNCBAMeGNtCHYzGHRyYWl0cyRTZW5kRXJyb3IAARw0Tm90QXBwbGljYWJsZQAAACRUcmFuc3BvcnQAAQAoVW5yb3V0YWJsZQACAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAAMAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAEADxNaXNzaW5nQXJndW1lbnQABQAQRmVlcwAGAACRCAxIY3VtdWx1c19wYWxsZXRfeGNtGHBhbGxldBRFdmVudAQEVAABDDRJbnZhbGlkRm9ybWF0BAAEASBbdTg7IDMyXQAACIBEb3dud2FyZCBtZXNzYWdlIGlzIGludmFsaWQgWENNLiBcWyBpZCBcXUhVbnN1cHBvcnRlZFZlcnNpb24EAAQBIFt1ODsgMzJdAAEIvERvd253YXJkIG1lc3NhZ2UgaXMgdW5zdXBwb3J0ZWQgdmVyc2lvbiBvZiBYQ00uIFxbIGlkIFxdQEV4ZWN1dGVkRG93bndhcmQIAAQBIFt1ODsgMzJdAACFCAEcT3V0Y29tZQACCMREb3dud2FyZCBtZXNzYWdlIGV4ZWN1dGVkIHdpdGggdGhlIGdpdmVuIG91dGNvbWUuRFxbIGlkLCBvdXRjb21lIFxdBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0lQgMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEEPFhjbXBNZXNzYWdlU2VudAQBMG1lc3NhZ2VfaGFzaAQBHFhjbUhhc2gAAATAQW4gSFJNUCBtZXNzYWdlIHdhcyBzZW50IHRvIGEgc2libGluZyBwYXJhY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0mQgMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFdmVudAQEVAABEEBQcm9jZXNzaW5nRmFpbGVkDAEIaWQsARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuARRlcnJvcp0IAUxQcm9jZXNzTWVzc2FnZUVycm9yEGBUaGUgZXJyb3IgdGhhdCBvY2N1cnJlZC4ASQFUaGlzIGVycm9yIGlzIHByZXR0eSBvcGFxdWUuIE1vcmUgZmluZS1ncmFpbmVkIGVycm9ycyBuZWVkIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAARVAU1lc3NhZ2UgZGlzY2FyZGVkIGR1ZSB0byBhbiBlcnJvciBpbiB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgICh1c3VhbGx5IGEgZm9ybWF0IGVycm9yKS4kUHJvY2Vzc2VkEAEIaWQsARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuASx3ZWlnaHRfdXNlZOQBGFdlaWdodATASG93IG11Y2ggd2VpZ2h0IHdhcyB1c2VkIHRvIHByb2Nlc3MgdGhlIG1lc3NhZ2UuARxzdWNjZXNzRAEQYm9vbBiIV2hldGhlciB0aGUgbWVzc2FnZSB3YXMgcHJvY2Vzc2VkLgBJAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdW5kZXJseWluZyBgTWVzc2FnZVByb2Nlc3NvcmAgd2FzIGludGVybmFsbHk1AXN1Y2Nlc3NmdWwuIEl0ICpzb2xlbHkqIG1lYW5zIHRoYXQgdGhlIE1RIHBhbGxldCB3aWxsIHRyZWF0IHRoaXMgYXMgYSBzdWNjZXNzTQFjb25kaXRpb24gYW5kIGRpc2NhcmQgdGhlIG1lc3NhZ2UuIEFueSBpbnRlcm5hbCBlcnJvciBuZWVkcyB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgEEVE1lc3NhZ2UgaXMgcHJvY2Vzc2VkLkhPdmVyd2VpZ2h0RW5xdWV1ZWQQAQhpZAQBIFt1ODsgMzJdBJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuAShwYWdlX2luZGV4KAEkUGFnZUluZGV4BGBUaGUgcGFnZSBvZiB0aGUgbWVzc2FnZS4BNG1lc3NhZ2VfaW5kZXgoARxUOjpTaXplBKRUaGUgaW5kZXggb2YgdGhlIG1lc3NhZ2Ugd2l0aGluIHRoZSBwYWdlLgIEjE1lc3NhZ2UgcGxhY2VkIGluIG92ZXJ3ZWlnaHQgcXVldWUuKFBhZ2VSZWFwZWQIARhvcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+BFhUaGUgcXVldWUgb2YgdGhlIHBhZ2UuARRpbmRleCgBJFBhZ2VJbmRleARYVGhlIGluZGV4IG9mIHRoZSBwYWdlLgMEVFRoaXMgcGFnZSB3YXMgcmVhcGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJ0IEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEYJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEAOQBGFdlaWdodAADABRZaWVsZAAEAERTdGFja0xpbWl0UmVhY2hlZAAFAAChCAxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEgOFVwZ3JhZGVTdGFydGVkBAEobWlncmF0aW9ucygBDHUzMhDQVGhlIG51bWJlciBvZiBtaWdyYXRpb25zIHRoYXQgdGhpcyB1cGdyYWRlIGNvbnRhaW5zLgBBAVRoaXMgY2FuIGJlIHVzZWQgdG8gZGVzaWduIGEgcHJvZ3Jlc3MgaW5kaWNhdG9yIGluIGNvbWJpbmF0aW9uIHdpdGggY291bnRpbmcgdGhlzGBNaWdyYXRpb25Db21wbGV0ZWRgIGFuZCBgTWlncmF0aW9uU2tpcHBlZGAgZXZlbnRzLgAMaEEgUnVudGltZSB1cGdyYWRlIHN0YXJ0ZWQuAPhJdHMgZW5kIGlzIGluZGljYXRlZCBieSBgVXBncmFkZUNvbXBsZXRlZGAgb3IgYFVwZ3JhZGVGYWlsZWRgLkBVcGdyYWRlQ29tcGxldGVkAAEMmFRoZSBjdXJyZW50IHJ1bnRpbWUgdXBncmFkZSBjb21wbGV0ZWQuAB0BVGhpcyBpbXBsaWVzIHRoYXQgYWxsIG9mIGl0cyBtaWdyYXRpb25zIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYXMgd2VsbC40VXBncmFkZUZhaWxlZAACDFxSdW50aW1lIHVwZ3JhZGUgZmFpbGVkLgDoVGhpcyBpcyB2ZXJ5IGJhZCBhbmQgd2lsbCByZXF1aXJlIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uLkBNaWdyYXRpb25Ta2lwcGVkBAEUaW5kZXgoAQx1MzIEKQFUaGUgaW5kZXggb2YgdGhlIHNraXBwZWQgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgMECQFBIG1pZ3JhdGlvbiB3YXMgc2tpcHBlZCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBleGVjdXRlZCBpbiB0aGUgcGFzdC5ETWlncmF0aW9uQWR2YW5jZWQIARRpbmRleCgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaygBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgQEXEEgbWlncmF0aW9uIHByb2dyZXNzZWQuSE1pZ3JhdGlvbkNvbXBsZXRlZAgBFGluZGV4KAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rKAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBQRYQSBNaWdyYXRpb24gY29tcGxldGVkLjxNaWdyYXRpb25GYWlsZWQIARRpbmRleCgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaygBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgYMTEEgTWlncmF0aW9uIGZhaWxlZC4ATQFUaGlzIGltcGxpZXMgdGhhdCB0aGUgd2hvbGUgdXBncmFkZSBmYWlsZWQgYW5kIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHJlcXVpcmVkLjxIaXN0b3JpY0NsZWFyZWQEASxuZXh0X2N1cnNvcpEGATxPcHRpb248VmVjPHU4Pj4E6FNob3VsZCBiZSBwYXNzZWQgdG8gYGNsZWFyX2hpc3RvcmljYCBpbiBhIHN1Y2Nlc3NpdmUgY2FsbC4HBMhUaGUgc2V0IG9mIGhpc3RvcmljYWwgbWlncmF0aW9ucyBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUIDCBvcm1sX3hjbRhtb2R1bGUURXZlbnQEBFQAAQQQU2VudAgBCHRvnAEgTG9jYXRpb24AARxtZXNzYWdltQUBHFhjbTwoKT4AAASEWENNIG1lc3NhZ2Ugc2VudC4gXFt0bywgbWVzc2FnZVxdBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0qQgMMG9ybWxfeHRva2Vucxhtb2R1bGUURXZlbnQEBFQAAQREVHJhbnNmZXJyZWRBc3NldHMQARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARhhc3NldHPBBQEYQXNzZXRzAAEMZmVlyQUBFEFzc2V0AAEQZGVzdJwBIExvY2F0aW9uAAAEdFRyYW5zZmVycmVkIGBBc3NldGAgd2l0aCBmZWUuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0rQgMTG9ybWxfdW5rbm93bl90b2tlbnMYbW9kdWxlFEV2ZW50AAEIJERlcG9zaXRlZAgBFGFzc2V0yQUBFEFzc2V0AAEMd2hvnAEgTG9jYXRpb24AAARARGVwb3NpdCBzdWNjZXNzLiRXaXRoZHJhd24IARRhc3NldMkFARRBc3NldAABDHdob5wBIExvY2F0aW9uAAEERFdpdGhkcmF3IHN1Y2Nlc3MuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0sQgMZHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb24YcGFsbGV0FEV2ZW50BARUAAEoQE5ld0ludnVsbmVyYWJsZXMEATRpbnZ1bG5lcmFibGVzSAFEVmVjPFQ6OkFjY291bnRJZD4AAARsTmV3IEludnVsbmVyYWJsZXMgd2VyZSBzZXQuREludnVsbmVyYWJsZUFkZGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABBHRBIG5ldyBJbnZ1bG5lcmFibGUgd2FzIGFkZGVkLkxJbnZ1bG5lcmFibGVSZW1vdmVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAACBHBBbiBJbnZ1bG5lcmFibGUgd2FzIHJlbW92ZWQuUE5ld0Rlc2lyZWRDYW5kaWRhdGVzBAFIZGVzaXJlZF9jYW5kaWRhdGVzKAEMdTMyAAMEpFRoZSBudW1iZXIgb2YgZGVzaXJlZCBjYW5kaWRhdGVzIHdhcyBzZXQuQE5ld0NhbmRpZGFjeUJvbmQEASxib25kX2Ftb3VudEABMEJhbGFuY2VPZjxUPgAEBGxUaGUgY2FuZGlkYWN5IGJvbmQgd2FzIHNldC44Q2FuZGlkYXRlQWRkZWQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAFBFxBIG5ldyBjYW5kaWRhdGUgam9pbmVkLlBDYW5kaWRhdGVCb25kVXBkYXRlZAgBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAYEcEJvbmQgb2YgYSBjYW5kaWRhdGUgdXBkYXRlZC5AQ2FuZGlkYXRlUmVtb3ZlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQABwRgQSBjYW5kaWRhdGUgd2FzIHJlbW92ZWQuRENhbmRpZGF0ZVJlcGxhY2VkDAEMb2xkAAEwVDo6QWNjb3VudElkAAEMbmV3AAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAIBPRBbiBhY2NvdW50IHdhcyByZXBsYWNlZCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QgYnkgYW5vdGhlciBvbmUuaEludmFsaWRJbnZ1bG5lcmFibGVTa2lwcGVkBAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAAJCFUBQW4gYWNjb3VudCB3YXMgdW5hYmxlIHRvIGJlIGFkZGVkIHRvIHRoZSBJbnZ1bG5lcmFibGVzIGJlY2F1c2UgdGhleSBkaWQgbm90IGhhdmUga2V5c8hyZWdpc3RlcmVkLiBPdGhlciBJbnZ1bG5lcmFibGVzIG1heSBoYXZlIGJlZW4gc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLUIDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQURXZlbnQEBFQAARAoTmV3U2Vzc2lvbgQBNHNlc3Npb25faW5kZXgoATBTZXNzaW9uSW5kZXgAAAg5AU5ldyBzZXNzaW9uIGhhcyBoYXBwZW5lZC4gTm90ZSB0aGF0IHRoZSBhcmd1bWVudCBpcyB0aGUgc2Vzc2lvbiBpbmRleCwgbm90IHRoZZxibG9jayBudW1iZXIgYXMgdGhlIHR5cGUgbWlnaHQgc3VnZ2VzdC4kTmV3UXVldWVkAAEISQFUaGUgYE5ld1Nlc3Npb25gIGV2ZW50IGluIHRoZSBjdXJyZW50IGJsb2NrIGFsc28gaW1wbGllcyBhIG5ldyB2YWxpZGF0b3Igc2V0IHRvIGJlHHF1ZXVlZC5EVmFsaWRhdG9yRGlzYWJsZWQEASR2YWxpZGF0b3IAAThUOjpWYWxpZGF0b3JJZAACBHBWYWxpZGF0b3IgaGFzIGJlZW4gZGlzYWJsZWQuSFZhbGlkYXRvclJlZW5hYmxlZAQBJHZhbGlkYXRvcgABOFQ6OlZhbGlkYXRvcklkAAMEeFZhbGlkYXRvciBoYXMgYmVlbiByZS1lbmFibGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLkIDERwYWxsZXRfZW1hX29yYWNsZRhwYWxsZXQURXZlbnQEBFQAARxAQWRkZWRUb1doaXRlbGlzdAgBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAAEiE9yYWNsZSB3YXMgYWRkZWQgdG8gdGhlIHdoaXRlbGlzdC5QUmVtb3ZlZEZyb21XaGl0ZWxpc3QIARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQABBJhPcmFjbGUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgd2hpdGVsaXN0LjRPcmFjbGVVcGRhdGVkDAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARx1cGRhdGVzvQgBdEJUcmVlTWFwPE9yYWNsZVBlcmlvZCwgUHJpY2U+AAIEYE9yYWNsZSBwcmljZSB3YXMgdXBkYXRlZGBFeHRlcm5hbFNvdXJjZVJlZ2lzdGVyZWQEARhzb3VyY2UhAQEYU291cmNlAAMEpEFuIGV4dGVybmFsIG9yYWNsZSBzb3VyY2Ugd2FzIHJlZ2lzdGVyZWQuVEV4dGVybmFsU291cmNlUmVtb3ZlZAQBGHNvdXJjZSEBARhTb3VyY2UABASYQW4gZXh0ZXJuYWwgb3JhY2xlIHNvdXJjZSB3YXMgcmVtb3ZlZC5YQXV0aG9yaXplZEFjY291bnRBZGRlZAwBGHNvdXJjZSEBARhTb3VyY2UAARBwYWlyqQIBSChBc3NldElkLCBBc3NldElkKQABHGFjY291bnQAATBUOjpBY2NvdW50SWQABQT0QW4gYWNjb3VudCB3YXMgYXV0aG9yaXplZCB0byB1cGRhdGUgdGhlIGdpdmVuIChzb3VyY2UsIHBhaXIpLmBBdXRob3JpemVkQWNjb3VudFJlbW92ZWQMARhzb3VyY2UhAQEYU291cmNlAAEQcGFpcqkCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAYEDQFBbiBhdXRob3JpemF0aW9uIHdhcyByZW1vdmVkIGZvciB0aGUgZ2l2ZW4gKHNvdXJjZSwgcGFpciwgYWNjb3VudCkuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0vQgEIEJUcmVlTWFwCARLASEDBFYBwQgABADFCAAAAMEIDDRoeWRyYV9keF9tYXRoFHJhdGlvFFJhdGlvAAAIAQRuQAEQdTEyOAABBGRAARB1MTI4AADFCAAAAskIAMkIAAAECCEDwQgAzQgMQHBhbGxldF9icm9hZGNhc3QYcGFsbGV0FEV2ZW50BARUAAEEIFN3YXBwZWQzIAEcc3dhcHBlcgABMFQ6OkFjY291bnRJZAABGGZpbGxlcgABMFQ6OkFjY291bnRJZAABLGZpbGxlcl90eXBl0QgBGEZpbGxlcgABJG9wZXJhdGlvbtUIAThUcmFkZU9wZXJhdGlvbgABGGlucHV0c9kIAShWZWM8QXNzZXQ+AAEcb3V0cHV0c9kIAShWZWM8QXNzZXQ+AAEQZmVlc+EIAVhWZWM8RmVlPFQ6OkFjY291bnRJZD4+AAE8b3BlcmF0aW9uX3N0YWNr7QgBSFZlYzxFeGVjdXRpb25UeXBlPgAAIDxUcmFkZSBleGVjdXRlZC4A8FN3YXBwZWQzIGlzIGEgZml4ZWQgYW5kIHJlbmFtZWQgdmVyc2lvbiBvZiBvcmlnaW5hbCBTd2FwcGVkLAUBYXMgU3dhcHBlZCBjb250YWluZWQgd3JvbmcgaW5wdXQvb3V0cHV0IGFtb3VudHMgZm9yIFhZSyBidXkgdHJhZGUA9FN3YXBwZWQzIGlzIGEgZml4ZWQgYW5kIHJlbmFtZWQgdmVyc2lvbiBvZiBvcmlnaW5hbCBTd2FwcGVkMyzgYXMgU3dhcHBlZCBjb250YWluZWQgd3JvbmcgZmlsbGVyIGFjY291bnQgb24gQUFWRSB0cmFkZXMABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV00QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMYRmlsbGVyAAEcIE9tbmlwb29sAAAAKFN0YWJsZXN3YXAEACgBHEFzc2V0SWQAAQAMWFlLBAAoARxBc3NldElkAAIADExCUAADAAxPVEMEACgBKE90Y09yZGVySWQABAAQQUFWRQAFAAxIU00ABgAA1QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXM4VHJhZGVPcGVyYXRpb24AARQcRXhhY3RJbgAAACBFeGFjdE91dAABABRMaW1pdAACADBMaXF1aWRpdHlBZGQAAwA8TGlxdWlkaXR5UmVtb3ZlAAQAANkIAAAC3QgA3QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMUQXNzZXQAAAgBFGFzc2V0KAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAOEIAAAC5QgA5QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMMRmVlBCRBY2NvdW50SWQBAAAMARRhc3NldCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEsZGVzdGluYXRpb27pCAFYRGVzdGluYXRpb248QWNjb3VudElkPgAA6QgMQHBhbGxldF9icm9hZGNhc3QUdHlwZXMsRGVzdGluYXRpb24EJEFjY291bnRJZAEAAQgcQWNjb3VudAQAAAEkQWNjb3VudElkAAAAGEJ1cm5lZAABAADtCAAAAvEIAPEIDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzNEV4ZWN1dGlvblR5cGUAARgYUm91dGVyBAAoAURJbmNyZW1lbnRhbElkVHlwZQAAAAxEQ0EIACgBKFNjaGVkdWxlSWQAACgBREluY3JlbWVudGFsSWRUeXBlAAEAFEJhdGNoBAAoAURJbmNyZW1lbnRhbElkVHlwZQACACBPbW5pcG9vbAQAKAFESW5jcmVtZW50YWxJZFR5cGUAAwAsWGNtRXhjaGFuZ2UEACgBREluY3JlbWVudGFsSWRUeXBlAAQADFhjbQgABAEgW3U4OyAzMl0AACgBREluY3JlbWVudGFsSWRUeXBlAAUAAPUIDFBwYWxsZXRfZmVlX3Byb2Nlc3NvchhwYWxsZXQURXZlbnQEBFQAAQwsRmVlUmVjZWl2ZWQMARRhc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEYdHJhZGVyzQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAAEYEZlZSByZWNlaXZlZCBmcm9tIHRyYWRlLiRDb252ZXJ0ZWQMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEcaGR4X291dEABHEJhbGFuY2UAAQS8QXNzZXQgY29udmVydGVkIHRvIEhEWCBhbmQgZGlzdHJpYnV0ZWQgdG8gcG90cy5AQ29udmVyc2lvbkZhaWxlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGHJlYXNvbiEHATREaXNwYXRjaEVycm9yAAIEsENvbnZlcnNpb24gZmFpbGVkIChsb2dnZWQgYnV0IG5vdCBibG9ja2luZykuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0+QgIMGZyYW1lX3N5c3RlbRRQaGFzZQABDDhBcHBseUV4dHJpbnNpYwQAKAEMdTMyAAAAMEZpbmFsaXphdGlvbgABADhJbml0aWFsaXphdGlvbgACAAD9CAgwZnJhbWVfc3lzdGVtWExhc3RSdW50aW1lVXBncmFkZUluZm8AAAgBMHNwZWNfdmVyc2lvbmwBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWVVCAFEQ293PCdzdGF0aWMsIHN0cj4AAAEJCDBmcmFtZV9zeXN0ZW1gQ29kZVVwZ3JhZGVBdXRob3JpemF0aW9uBARUAAAIASRjb2RlX2hhc2gsARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbkQBEGJvb2wAAAUJDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9ja+QBGFdlaWdodAABJG1heF9ibG9ja+QBGFdlaWdodAABJHBlcl9jbGFzcwkJAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAAkJDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBDQkADAEYbm9ybWFsDQkBBFQAASxvcGVyYXRpb25hbA0JAQRUAAEkbWFuZGF0b3J5DQkBBFQAAA0JDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWPkARhXZWlnaHQAATRtYXhfZXh0cmluc2lj/QUBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFs/QUBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWT9BQE4T3B0aW9uPFdlaWdodD4AABEJDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXgVCQFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AAAVCQw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUASgADAEYbm9ybWFsKAEEVAABLG9wZXJhdGlvbmFsKAEEVAABJG1hbmRhdG9yeSgBBFQAABkJCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZBgBDHU2NAABFHdyaXRlGAEMdTY0AAAdCQgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lVQgBRENvdzwnc3RhdGljLCBzdHI+AAEkaW1wbF9uYW1lVQgBRENvdzwnc3RhdGljLCBzdHI+AAFEYXV0aG9yaW5nX3ZlcnNpb24oAQx1MzIAATBzcGVjX3ZlcnNpb24oAQx1MzIAATBpbXBsX3ZlcnNpb24oAQx1MzIAARBhcGlzIQkBHEFwaXNWZWMAAUx0cmFuc2FjdGlvbl92ZXJzaW9uKAEMdTMyAAE4c3lzdGVtX3ZlcnNpb24IAQh1OAAAIQkEDENvdwQEVAElCQAEACUJAAAAJQkAAAIpCQApCQAABAghASgALQkMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0MQkQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jaxRCbG9jawgYSGVhZGVyAZEEJEV4dHJpbnNpYwE1CQAIARhoZWFkZXKRBAEYSGVhZGVyAAEoZXh0cmluc2ljc0UJAThWZWM8RXh0cmluc2ljPgAANQkMRGZwX3NlbGZfY29udGFpbmVkTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAQAQQ2FsbAEMJFNpZ25hdHVyZQGVASRFeHRlbnNpb24BOQkABABBCQEBAWdlbmVyaWM6OlVuY2hlY2tlZEV4dHJpbnNpYzxBZGRyZXNzLCBDYWxsLCBTaWduYXR1cmUsIEV4dGVuc2lvbj4AADkJCHRjdW11bHVzX3BhbGxldF93ZWlnaHRfcmVjbGFpbVBTdG9yYWdlV2VpZ2h0UmVjbGFpbQgEVAAEUwE9CQAEAD0JAQRTAAA9CQAABCjBBsUGyQbNBtEG2QbdBuEG5QbpBgBBCRAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAQAQQ2FsbAEMJFNpZ25hdHVyZQGVARRFeHRyYQE5CQAEABQAAABFCQAAAjUJAEkJDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBTQkEUwAABABVCQEYVmVjPFQ+AABNCQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEJhbGFuY2VMb2NrBBxCYWxhbmNlAUAADAEIaWQhAQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnRAARxCYWxhbmNlAAEccmVhc29uc1EJARxSZWFzb25zAABRCQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzHFJlYXNvbnMAAQwMRmVlAAAAEE1pc2MAAQAMQWxsAAIAAFUJAAACTQkAWQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFdCQRTAAAEAGEJARhWZWM8VD4AAF0JDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyASEBHEJhbGFuY2UBQAAIAQhpZCEBAURSZXNlcnZlSWRlbnRpZmllcgABGGFtb3VudEABHEJhbGFuY2UAAGEJAAACXQkAZQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFpCQRTAAAEAIEJARhWZWM8VD4AAGkJFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBbQkcQmFsYW5jZQFAAAgBCGlkbQkBCElkAAEYYW1vdW50QAEcQmFsYW5jZQAAbQkIPGh5ZHJhZHhfcnVudGltZURSdW50aW1lSG9sZFJlYXNvbgABECBQcmVpbWFnZQQAcQkBbHBhbGxldF9wcmVpbWFnZTo6SG9sZFJlYXNvbgAPAEhUZWNobmljYWxDb21taXR0ZWUEAHUJAexwYWxsZXRfY29sbGVjdGl2ZTo6SG9sZFJlYXNvbjxwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZAEhTdGF0ZVRyaWVNaWdyYXRpb24EAHkJAZxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkhvbGRSZWFzb24AIwAsUG9sa2Fkb3RYY20EAH0JAVhwYWxsZXRfeGNtOjpIb2xkUmVhc29uAGsAAHEJDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0KEhvbGRSZWFzb24AAQQgUHJlaW1hZ2UAAAAAdQkMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldChIb2xkUmVhc29uBARJAAEESFByb3Bvc2FsU3VibWlzc2lvbgAAAAB5CQxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldChIb2xkUmVhc29uAAEEPFNsYXNoRm9yTWlncmF0ZQAAAAB9CQwocGFsbGV0X3hjbRhwYWxsZXQoSG9sZFJlYXNvbgABBDhBdXRob3JpemVBbGlhcwAAAACBCQAAAmkJAIUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBiQkEUwAABACNCQEYVmVjPFQ+AACJCRQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAXAcQmFsYW5jZQFAAAgBCGlkcAEISWQAARhhbW91bnRAARxCYWxhbmNlAACNCQAAAokJAJEJDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6VCQhocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQgUmVsZWFzZXMAAQgkVjFBbmNpZW50AAAACFYyAAEAAJkJDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQURXJyb3IEBFQAATRMVW5zdXBwb3J0ZWRDdXJyZW5jeQAABIxTZWxlY3RlZCBjdXJyZW5jeSBpcyBub3Qgc3VwcG9ydGVkLixaZXJvQmFsYW5jZQABBIxBY2NvdW50IGJhbGFuY2Ugc2hvdWxkIGJlIG5vbi16ZXJvLjxBbHJlYWR5QWNjZXB0ZWQAAgTcQ3VycmVuY3kgaXMgYWxyZWFkeSBpbiB0aGUgbGlzdCBvZiBhY2NlcHRlZCBjdXJyZW5jaWVzLkxDb3JlQXNzZXROb3RBbGxvd2VkAAMEbQFJdCBpcyBub3QgYWxsb3dlZCB0byBhZGQgQ29yZSBBc3NldCBhcyBhY2NlcHRlZCBjdXJyZW5jeS4gQ29yZSBhc3NldCBpcyBhY2NlcHRlZCBieSBkZXNpZ24uJFplcm9QcmljZQAEBHhGYWxsYmFjayBwcmljZSBjYW5ub3QgYmUgemVyby5URmFsbGJhY2tQcmljZU5vdEZvdW5kAAUEdEZhbGxiYWNrIHByaWNlIHdhcyBub3QgZm91bmQuIE92ZXJmbG93AAYENE1hdGggb3ZlcmZsb3dQRXZtQWNjb3VudE5vdEFsbG93ZWQABwT8SXQgaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHBheW1lbnQgY3VycmVuY3kgb2YgYW4gRVZNIGFjY291bnQuQEV2bVBlcm1pdEV4cGlyZWQACARMRVZNIHBlcm1pdCBleHBpcmVkLkBFdm1QZXJtaXRJbnZhbGlkAAkEWEVWTSBwZXJtaXQgaXMgaW52YWxpZC5sRXZtUGVybWl0Q2FsbEV4ZWN1dGlvbkVycm9yAAoEXEVWTSBwZXJtaXQgY2FsbCBmYWlsZWQuUEV2bVBlcm1pdFJ1bm5lckVycm9yAAsEXEVWTSBwZXJtaXQgY2FsbCBmYWlsZWQufEV2bVBlcm1pdE5vbmNlSW52YXJpYW50VmlvbGF0ZWQADASkRVZNIHBlcm1pdCBtdXN0IG5vdCBhZmZlY3QgYWNjb3VudCBub25jZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQunQkIPHBhbGxldF90cmVhc3VyeSBQcm9wb3NhbAgkQWNjb3VudElkAQAcQmFsYW5jZQFAABABIHByb3Bvc2VyAAEkQWNjb3VudElkAAEUdmFsdWVAARxCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASRBY2NvdW50SWQAARBib25kQAEcQmFsYW5jZQAAoQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEoBFMAAAQAtQIBGFZlYzxUPgAApQkIPHBhbGxldF90cmVhc3VyeSxTcGVuZFN0YXR1cxQkQXNzZXRLaW5kAXAwQXNzZXRCYWxhbmNlAUAsQmVuZWZpY2lhcnkBACxCbG9ja051bWJlcgEoJFBheW1lbnRJZAFwABgBKGFzc2V0X2tpbmRwASRBc3NldEtpbmQAARhhbW91bnRAATBBc3NldEJhbGFuY2UAASxiZW5lZmljaWFyeQABLEJlbmVmaWNpYXJ5AAEodmFsaWRfZnJvbSgBLEJsb2NrTnVtYmVyAAEkZXhwaXJlX2F0KAEsQmxvY2tOdW1iZXIAARhzdGF0dXOpCQFcUGF5bWVudFN0YXRlPFBheW1lbnRJZD4AAKkJCDxwYWxsZXRfdHJlYXN1cnkwUGF5bWVudFN0YXRlBAhJZAFwAQwcUGVuZGluZwAAACRBdHRlbXB0ZWQEAQhpZHABCElkAAEAGEZhaWxlZAACAACtCQg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABAAhAQEcW3U4OyA4XQAAsQkMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXJyb3IIBFQABEkAASwwSW52YWxpZEluZGV4AAAErE5vIHByb3Bvc2FsLCBib3VudHkgb3Igc3BlbmQgYXQgdGhhdCBpbmRleC5AVG9vTWFueUFwcHJvdmFscwABBIBUb28gbWFueSBhcHByb3ZhbHMgaW4gdGhlIHF1ZXVlLlhJbnN1ZmZpY2llbnRQZXJtaXNzaW9uAAIIRQFUaGUgc3BlbmQgb3JpZ2luIGlzIHZhbGlkIGJ1dCB0aGUgYW1vdW50IGl0IGlzIGFsbG93ZWQgdG8gc3BlbmQgaXMgbG93ZXIgdGhhbiB0aGVMYW1vdW50IHRvIGJlIHNwZW50LkxQcm9wb3NhbE5vdEFwcHJvdmVkAAMEfFByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC5YRmFpbGVkVG9Db252ZXJ0QmFsYW5jZQAEBFEBVGhlIGJhbGFuY2Ugb2YgdGhlIGFzc2V0IGtpbmQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHRoZSBiYWxhbmNlIG9mIHRoZSBuYXRpdmUgYXNzZXQuMFNwZW5kRXhwaXJlZAAFBLBUaGUgc3BlbmQgaGFzIGV4cGlyZWQgYW5kIGNhbm5vdCBiZSBjbGFpbWVkLixFYXJseVBheW91dAAGBKRUaGUgc3BlbmQgaXMgbm90IHlldCBlbGlnaWJsZSBmb3IgcGF5b3V0LkBBbHJlYWR5QXR0ZW1wdGVkAAcEnFRoZSBwYXltZW50IGhhcyBhbHJlYWR5IGJlZW4gYXR0ZW1wdGVkLixQYXlvdXRFcnJvcgAIBMxUaGVyZSB3YXMgc29tZSBpc3N1ZSB3aXRoIHRoZSBtZWNoYW5pc20gb2YgcGF5bWVudC4wTm90QXR0ZW1wdGVkAAkEpFRoZSBwYXlvdXQgd2FzIG5vdCB5ZXQgYXR0ZW1wdGVkL2NsYWltZWQuMEluY29uY2x1c2l2ZQAKBMRUaGUgcGF5bWVudCBoYXMgbmVpdGhlciBmYWlsZWQgbm9yIHN1Y2NlZWRlZCB5ZXQuBHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC61CQw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEVycm9yBARUAAEEMFRvb01hbnlDYWxscwAABFxUb28gbWFueSBjYWxscyBiYXRjaGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC65CQg8cGFsbGV0X3ByZWltYWdlQE9sZFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAHEJhbGFuY2UBQAEILFVucmVxdWVzdGVkCAEcZGVwb3NpdL0JAVAoQWNjb3VudElkLCBCYWxhbmNlKQABDGxlbigBDHUzMgAAACRSZXF1ZXN0ZWQMARxkZXBvc2l0wQkBcE9wdGlvbjwoQWNjb3VudElkLCBCYWxhbmNlKT4AARRjb3VudCgBDHUzMgABDGxlbnQBLE9wdGlvbjx1MzI+AAEAAL0JAAAECABAAMEJBBhPcHRpb24EBFQBvQkBCBBOb25lAAAAEFNvbWUEAL0JAAABAADFCQg8cGFsbGV0X3ByZWltYWdlNFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAGFRpY2tldAHJCQEILFVucmVxdWVzdGVkCAEYdGlja2V0zQkBTChBY2NvdW50SWQsIFRpY2tldCkAAQxsZW4oAQx1MzIAAAAkUmVxdWVzdGVkDAEwbWF5YmVfdGlja2V00QkBbE9wdGlvbjwoQWNjb3VudElkLCBUaWNrZXQpPgABFGNvdW50KAEMdTMyAAEkbWF5YmVfbGVudAEsT3B0aW9uPHUzMj4AAQAAyQkUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZURIb2xkQ29uc2lkZXJhdGlvbhQEQQAERgAEUgAERAAIRnAAAAQAQAEoRjo6QmFsYW5jZQAAzQkAAAQIAMkJANEJBBhPcHRpb24EBFQBzQkBCBBOb25lAAAAEFNvbWUEAM0JAAABAADVCQAABAgsKADZCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAN0JDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0FEVycm9yBARUAAEgGFRvb0JpZwAABKBQcmVpbWFnZSBpcyB0b28gbGFyZ2UgdG8gc3RvcmUgb24tY2hhaW4uMEFscmVhZHlOb3RlZAABBKRQcmVpbWFnZSBoYXMgYWxyZWFkeSBiZWVuIG5vdGVkIG9uLWNoYWluLjROb3RBdXRob3JpemVkAAIEyFRoZSB1c2VyIGlzIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uIE5vdE5vdGVkAAME/FRoZSBwcmVpbWFnZSBjYW5ub3QgYmUgcmVtb3ZlZCBzaW5jZSBpdCBoYXMgbm90IHlldCBiZWVuIG5vdGVkLiRSZXF1ZXN0ZWQABAQJAUEgcHJlaW1hZ2UgbWF5IG5vdCBiZSByZW1vdmVkIHdoZW4gdGhlcmUgYXJlIG91dHN0YW5kaW5nIHJlcXVlc3RzLjBOb3RSZXF1ZXN0ZWQABQQtAVRoZSBwcmVpbWFnZSByZXF1ZXN0IGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIG5vIG91dHN0YW5kaW5nIHJlcXVlc3RzIGV4aXN0LhxUb29NYW55AAYEVQFNb3JlIHRoYW4gYE1BWF9IQVNIX1VQR1JBREVfQlVMS19DT1VOVGAgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIGF0IG9uY2UuGFRvb0ZldwAHBORUb28gZmV3IGhhc2hlcyB3ZXJlIHJlcXVlc3RlZCB0byBiZSB1cGdyYWRlZCAoaS5lLiB6ZXJvKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu4QkMPHBhbGxldF9pZGVudGl0eRR0eXBlczBSZWdpc3RyYXRpb24MHEJhbGFuY2UBQDRNYXhKdWRnZW1lbnRzADBJZGVudGl0eUluZm8B9AAMAShqdWRnZW1lbnRz5QkB/EJvdW5kZWRWZWM8KFJlZ2lzdHJhckluZGV4LCBKdWRnZW1lbnQ8QmFsYW5jZT4pLCBNYXhKdWRnZW1lbnRzPgABHGRlcG9zaXRAARxCYWxhbmNlAAEQaW5mb/QBMElkZW50aXR5SW5mbwAA5QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHpCQRTAAAEAO0JARhWZWM8VD4AAOkJAAAECCiNAQDtCQAAAukJAPEJAAAECED1CQD1CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABABIARhWZWM8VD4AAPkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB/QkEUwAABAAFCgEYVmVjPFQ+AAD9CQQYT3B0aW9uBARUAQEKAQgQTm9uZQAAABBTb21lBAABCgAAAQAAAQoMPHBhbGxldF9pZGVudGl0eRR0eXBlczRSZWdpc3RyYXJJbmZvDBxCYWxhbmNlAUAkQWNjb3VudElkAQAcSWRGaWVsZAEYAAwBHGFjY291bnQAASRBY2NvdW50SWQAAQxmZWVAARxCYWxhbmNlAAEYZmllbGRzGAEcSWRGaWVsZAAABQoAAAL9CQAJCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAA0KDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXNMQXV0aG9yaXR5UHJvcGVydGllcwQcQWNjb3VudAEAAAgBKGFjY291bnRfaWQAARxBY2NvdW50AAEoYWxsb2NhdGlvbigBKEFsbG9jYXRpb24AABEKDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXNMVXNlcm5hbWVJbmZvcm1hdGlvbggcQWNjb3VudAEAHEJhbGFuY2UBQAAIARRvd25lcgABHEFjY291bnQAASBwcm92aWRlchUKAURQcm92aWRlcjxCYWxhbmNlPgAAFQoMPHBhbGxldF9pZGVudGl0eRR0eXBlcyBQcm92aWRlcgQcQmFsYW5jZQFAAQwoQWxsb2NhdGlvbgAAAEBBdXRob3JpdHlEZXBvc2l0BABAARxCYWxhbmNlAAEAGFN5c3RlbQACAAAZCgAABAwAKBUKAB0KDDxwYWxsZXRfaWRlbnRpdHkYcGFsbGV0FEVycm9yBARUAAF4SFRvb01hbnlTdWJBY2NvdW50cwAABFxUb28gbWFueSBzdWJzLWFjY291bnRzLiBOb3RGb3VuZAABBFBBY2NvdW50IGlzbid0IGZvdW5kLiBOb3ROYW1lZAACBFBBY2NvdW50IGlzbid0IG5hbWVkLihFbXB0eUluZGV4AAMEMEVtcHR5IGluZGV4LihGZWVDaGFuZ2VkAAQEPEZlZSBpcyBjaGFuZ2VkLihOb0lkZW50aXR5AAUESE5vIGlkZW50aXR5IGZvdW5kLjxTdGlja3lKdWRnZW1lbnQABgREU3RpY2t5IGp1ZGdlbWVudC44SnVkZ2VtZW50R2l2ZW4ABwRASnVkZ2VtZW50IGdpdmVuLkBJbnZhbGlkSnVkZ2VtZW50AAgESEludmFsaWQganVkZ2VtZW50LjBJbnZhbGlkSW5kZXgACQRUVGhlIGluZGV4IGlzIGludmFsaWQuNEludmFsaWRUYXJnZXQACgRYVGhlIHRhcmdldCBpcyBpbnZhbGlkLkRUb29NYW55UmVnaXN0cmFycwALBOhNYXhpbXVtIGFtb3VudCBvZiByZWdpc3RyYXJzIHJlYWNoZWQuIENhbm5vdCBhZGQgYW55IG1vcmUuOEFscmVhZHlDbGFpbWVkAAwEcEFjY291bnQgSUQgaXMgYWxyZWFkeSBuYW1lZC4YTm90U3ViAA0EcFNlbmRlciBpcyBub3QgYSBzdWItYWNjb3VudC4gTm90T3duZWQADgSIU3ViLWFjY291bnQgaXNuJ3Qgb3duZWQgYnkgc2VuZGVyLnRKdWRnZW1lbnRGb3JEaWZmZXJlbnRJZGVudGl0eQAPBNBUaGUgcHJvdmlkZWQganVkZ2VtZW50IHdhcyBmb3IgYSBkaWZmZXJlbnQgaWRlbnRpdHkuWEp1ZGdlbWVudFBheW1lbnRGYWlsZWQAEAT4RXJyb3IgdGhhdCBvY2N1cnMgd2hlbiB0aGVyZSBpcyBhbiBpc3N1ZSBwYXlpbmcgZm9yIGp1ZGdlbWVudC40SW52YWxpZFN1ZmZpeAARBIBUaGUgcHJvdmlkZWQgc3VmZml4IGlzIHRvbyBsb25nLlBOb3RVc2VybmFtZUF1dGhvcml0eQASBOBUaGUgc2VuZGVyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBpc3N1ZSBhIHVzZXJuYW1lLjBOb0FsbG9jYXRpb24AEwTEVGhlIGF1dGhvcml0eSBjYW5ub3QgYWxsb2NhdGUgYW55IG1vcmUgdXNlcm5hbWVzLkBJbnZhbGlkU2lnbmF0dXJlABQEqFRoZSBzaWduYXR1cmUgb24gYSB1c2VybmFtZSB3YXMgbm90IHZhbGlkLkRSZXF1aXJlc1NpZ25hdHVyZQAVBAkBU2V0dGluZyB0aGlzIHVzZXJuYW1lIHJlcXVpcmVzIGEgc2lnbmF0dXJlLCBidXQgbm9uZSB3YXMgcHJvdmlkZWQuPEludmFsaWRVc2VybmFtZQAWBLBUaGUgdXNlcm5hbWUgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzLjRVc2VybmFtZVRha2VuABcEeFRoZSB1c2VybmFtZSBpcyBhbHJlYWR5IHRha2VuLihOb1VzZXJuYW1lABgEmFRoZSByZXF1ZXN0ZWQgdXNlcm5hbWUgZG9lcyBub3QgZXhpc3QuKE5vdEV4cGlyZWQAGQQtAVRoZSB1c2VybmFtZSBjYW5ub3QgYmUgZm9yY2VmdWxseSByZW1vdmVkIGJlY2F1c2UgaXQgY2FuIHN0aWxsIGJlIGFjY2VwdGVkLiBUb29FYXJseQAaBBkBVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSByZW1vdmVkIGJlY2F1c2UgaXQncyBzdGlsbCBpbiB0aGUgZ3JhY2UgcGVyaW9kLjBOb3RVbmJpbmRpbmcAGwTsVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm90IHVuYmluZGluZy5AQWxyZWFkeVVuYmluZGluZwAcBPxUaGUgdXNlcm5hbWUgY2Fubm90IGJlIHVuYm91bmQgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHVuYmluZGluZy5YSW5zdWZmaWNpZW50UHJpdmlsZWdlcwAdCEUBVGhlIGFjdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHByaXZpbGVnZXMgKGUuZy4gYXV0aG9yaXR50HRyeWluZyB0byB1bmJpbmQgYSB1c2VybmFtZSBwcm92aWRlZCBieSB0aGUgc3lzdGVtKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuIQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAElCgRTAAAEACkKARhWZWM8VD4AACUKAAAEDCipAQAAKQoAAAIlCgAtCgAABAgxCkAAMQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQASAEYVmVjPFQ+AAA1CgxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlczhSZWZlcmVuZHVtSW5mbwwsQmxvY2tOdW1iZXIBKCBQcm9wb3NhbAGpARxCYWxhbmNlAUABCBxPbmdvaW5nBAA5CgHAUmVmZXJlbmR1bVN0YXR1czxCbG9ja051bWJlciwgUHJvcG9zYWwsIEJhbGFuY2U+AAAAIEZpbmlzaGVkCAEgYXBwcm92ZWREARBib29sAAEMZW5kKAEsQmxvY2tOdW1iZXIAAQAAOQoMQHBhbGxldF9kZW1vY3JhY3kUdHlwZXNAUmVmZXJlbmR1bVN0YXR1cwwsQmxvY2tOdW1iZXIBKCBQcm9wb3NhbAGpARxCYWxhbmNlAUAAFAEMZW5kKAEsQmxvY2tOdW1iZXIAASBwcm9wb3NhbKkBASBQcm9wb3NhbAABJHRocmVzaG9sZGEHATRWb3RlVGhyZXNob2xkAAEUZGVsYXkoASxCbG9ja051bWJlcgABFHRhbGx5PQoBOFRhbGx5PEJhbGFuY2U+AAA9CgxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlcxRUYWxseQQcQmFsYW5jZQFAAAwBEGF5ZXNAARxCYWxhbmNlAAEQbmF5c0ABHEJhbGFuY2UAARx0dXJub3V0QAEcQmFsYW5jZQAAQQoMQHBhbGxldF9kZW1vY3JhY3kQdm90ZRhWb3RpbmcQHEJhbGFuY2UBQCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoIE1heFZvdGVzAAEIGERpcmVjdAwBFHZvdGVzRQoB9EJvdW5kZWRWZWM8KFJlZmVyZW5kdW1JbmRleCwgQWNjb3VudFZvdGU8QmFsYW5jZT4pLCBNYXhWb3Rlcz4AASxkZWxlZ2F0aW9uc1EKAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9yVQoBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AAAAoRGVsZWdhdGluZxQBHGJhbGFuY2VAARxCYWxhbmNlAAEYdGFyZ2V0AAEkQWNjb3VudElkAAEoY29udmljdGlvbr0BAShDb252aWN0aW9uAAEsZGVsZWdhdGlvbnNRCgFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvclUKAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AAEAAEUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBSQoEUwAABABNCgEYVmVjPFQ+AABJCgAABAgotQEATQoAAAJJCgBRCgxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlcyxEZWxlZ2F0aW9ucwQcQmFsYW5jZQFAAAgBFHZvdGVzQAEcQmFsYW5jZQABHGNhcGl0YWxAARxCYWxhbmNlAABVCgxAcGFsbGV0X2RlbW9jcmFjeRB2b3RlJFByaW9yTG9jawgsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAUAACAAoASxCbG9ja051bWJlcgAAQAEcQmFsYW5jZQAAWQoAAAQIqQFhBwBdCgAABAgoMQoAYQoMQHBhbGxldF9kZW1vY3JhY3kYcGFsbGV0FEVycm9yBARUAAFgIFZhbHVlTG93AAAENFZhbHVlIHRvbyBsb3c8UHJvcG9zYWxNaXNzaW5nAAEEXFByb3Bvc2FsIGRvZXMgbm90IGV4aXN0PEFscmVhZHlDYW5jZWxlZAACBJRDYW5ub3QgY2FuY2VsIHRoZSBzYW1lIHByb3Bvc2FsIHR3aWNlRER1cGxpY2F0ZVByb3Bvc2FsAAMEVFByb3Bvc2FsIGFscmVhZHkgbWFkZUxQcm9wb3NhbEJsYWNrbGlzdGVkAAQEaFByb3Bvc2FsIHN0aWxsIGJsYWNrbGlzdGVkRE5vdFNpbXBsZU1ham9yaXR5AAUEqE5leHQgZXh0ZXJuYWwgcHJvcG9zYWwgbm90IHNpbXBsZSBtYWpvcml0eSxJbnZhbGlkSGFzaAAGBDBJbnZhbGlkIGhhc2goTm9Qcm9wb3NhbAAHBFBObyBleHRlcm5hbCBwcm9wb3NhbDRBbHJlYWR5VmV0b2VkAAgEmElkZW50aXR5IG1heSBub3QgdmV0byBhIHByb3Bvc2FsIHR3aWNlRFJlZmVyZW5kdW1JbnZhbGlkAAkEhFZvdGUgZ2l2ZW4gZm9yIGludmFsaWQgcmVmZXJlbmR1bSxOb25lV2FpdGluZwAKBFBObyBwcm9wb3NhbHMgd2FpdGluZyBOb3RWb3RlcgALBMRUaGUgZ2l2ZW4gYWNjb3VudCBkaWQgbm90IHZvdGUgb24gdGhlIHJlZmVyZW5kdW0uME5vUGVybWlzc2lvbgAMBMhUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uLkRBbHJlYWR5RGVsZWdhdGluZwANBIhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGRlbGVnYXRpbmcuREluc3VmZmljaWVudEZ1bmRzAA4E/FRvbyBoaWdoIGEgYmFsYW5jZSB3YXMgcHJvdmlkZWQgdGhhdCB0aGUgYWNjb3VudCBjYW5ub3QgYWZmb3JkLjROb3REZWxlZ2F0aW5nAA8EoFRoZSBhY2NvdW50IGlzIG5vdCBjdXJyZW50bHkgZGVsZWdhdGluZy4oVm90ZXNFeGlzdAAQCFUBVGhlIGFjY291bnQgY3VycmVudGx5IGhhcyB2b3RlcyBhdHRhY2hlZCB0byBpdCBhbmQgdGhlIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCB1bnRpbOh0aGVzZSBhcmUgcmVtb3ZlZCwgZWl0aGVyIHRocm91Z2ggYHVudm90ZWAgb3IgYHJlYXBfdm90ZWAuREluc3RhbnROb3RBbGxvd2VkABEE2FRoZSBpbnN0YW50IHJlZmVyZW5kdW0gb3JpZ2luIGlzIGN1cnJlbnRseSBkaXNhbGxvd2VkLiBOb25zZW5zZQASBJREZWxlZ2F0aW9uIHRvIG9uZXNlbGYgbWFrZXMgbm8gc2Vuc2UuPFdyb25nVXBwZXJCb3VuZAATBFBJbnZhbGlkIHVwcGVyIGJvdW5kLjxNYXhWb3Rlc1JlYWNoZWQAFASATWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgcmVhY2hlZC4cVG9vTWFueQAVBIBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyByZWFjaGVkLjxWb3RpbmdQZXJpb2RMb3cAFgRUVm90aW5nIHBlcmlvZCB0b28gbG93QFByZWltYWdlTm90RXhpc3QAFwRwVGhlIHByZWltYWdlIGRvZXMgbm90IGV4aXN0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5lCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASwEUwAABADsARhWZWM8VD4AAGkKAAAECABwAG0KCERwYWxsZXRfY29sbGVjdGl2ZRRWb3RlcwgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKAAUARRpbmRleCgBNFByb3Bvc2FsSW5kZXgAASR0aHJlc2hvbGQoASxNZW1iZXJDb3VudAABEGF5ZXNIAThWZWM8QWNjb3VudElkPgABEG5heXNIAThWZWM8QWNjb3VudElkPgABDGVuZCgBLEJsb2NrTnVtYmVyAABxCgxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0FEVycm9yCARUAARJAAEwJE5vdE1lbWJlcgAABFxBY2NvdW50IGlzIG5vdCBhIG1lbWJlckREdXBsaWNhdGVQcm9wb3NhbAABBHxEdXBsaWNhdGUgcHJvcG9zYWxzIG5vdCBhbGxvd2VkPFByb3Bvc2FsTWlzc2luZwACBExQcm9wb3NhbCBtdXN0IGV4aXN0KFdyb25nSW5kZXgAAwRATWlzbWF0Y2hlZCBpbmRleDREdXBsaWNhdGVWb3RlAAQEWER1cGxpY2F0ZSB2b3RlIGlnbm9yZWRIQWxyZWFkeUluaXRpYWxpemVkAAUEgE1lbWJlcnMgYXJlIGFscmVhZHkgaW5pdGlhbGl6ZWQhIFRvb0Vhcmx5AAYEAQFUaGUgY2xvc2UgY2FsbCB3YXMgbWFkZSB0b28gZWFybHksIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB2b3RpbmcuQFRvb01hbnlQcm9wb3NhbHMABwT8VGhlcmUgY2FuIG9ubHkgYmUgYSBtYXhpbXVtIG9mIGBNYXhQcm9wb3NhbHNgIGFjdGl2ZSBwcm9wb3NhbHMuTFdyb25nUHJvcG9zYWxXZWlnaHQACATQVGhlIGdpdmVuIHdlaWdodCBib3VuZCBmb3IgdGhlIHByb3Bvc2FsIHdhcyB0b28gbG93LkxXcm9uZ1Byb3Bvc2FsTGVuZ3RoAAkE0FRoZSBnaXZlbiBsZW5ndGggYm91bmQgZm9yIHRoZSBwcm9wb3NhbCB3YXMgdG9vIGxvdy5UUHJpbWVBY2NvdW50Tm90TWVtYmVyAAoEdFByaW1lIGFjY291bnQgaXMgbm90IGEgbWVtYmVyOFByb3Bvc2FsQWN0aXZlAAsEZFByb3Bvc2FsIGlzIHN0aWxsIGFjdGl2ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQudQoAAAQIeQpAAHkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBfQoEUwAABACBCgEYVmVjPFQ+AAB9CggwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQAkUHJveHlUeXBlAdkBLEJsb2NrTnVtYmVyASgADAEgZGVsZWdhdGUAASRBY2NvdW50SWQAAShwcm94eV90eXBl2QEBJFByb3h5VHlwZQABFGRlbGF5KAEsQmxvY2tOdW1iZXIAAIEKAAACfQoAhQoAAAQIiQpAAIkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBjQoEUwAABACRCgEYVmVjPFQ+AACNCggwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQAQSGFzaAEsLEJsb2NrTnVtYmVyASgADAEQcmVhbAABJEFjY291bnRJZAABJGNhbGxfaGFzaCwBEEhhc2gAARhoZWlnaHQoASxCbG9ja051bWJlcgAAkQoAAAKNCgCVCgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQumQoAAAQIAAQAnQoIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAUAkQWNjb3VudElkAQAwTWF4QXBwcm92YWxzAAAQARB3aGVu5QEBWFRpbWVwb2ludDxCbG9ja051bWJlcj4AARxkZXBvc2l0QAEcQmFsYW5jZQABJGRlcG9zaXRvcgABJEFjY291bnRJZAABJGFwcHJvdmFsc6EKAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAAoQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQASAEYVmVjPFQ+AAClCgw8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFcnJvcgQEVAABOEBNaW5pbXVtVGhyZXNob2xkAAAEfFRocmVzaG9sZCBtdXN0IGJlIDIgb3IgZ3JlYXRlci48QWxyZWFkeUFwcHJvdmVkAAEErENhbGwgaXMgYWxyZWFkeSBhcHByb3ZlZCBieSB0aGlzIHNpZ25hdG9yeS5ETm9BcHByb3ZhbHNOZWVkZWQAAgScQ2FsbCBkb2Vzbid0IG5lZWQgYW55IChtb3JlKSBhcHByb3ZhbHMuRFRvb0Zld1NpZ25hdG9yaWVzAAMEqFRoZXJlIGFyZSB0b28gZmV3IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LkhUb29NYW55U2lnbmF0b3JpZXMABASsVGhlcmUgYXJlIHRvbyBtYW55IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LlRTaWduYXRvcmllc091dE9mT3JkZXIABQQNAVRoZSBzaWduYXRvcmllcyB3ZXJlIHByb3ZpZGVkIG91dCBvZiBvcmRlcjsgdGhleSBzaG91bGQgYmUgb3JkZXJlZC5MU2VuZGVySW5TaWduYXRvcmllcwAGBA0BVGhlIHNlbmRlciB3YXMgY29udGFpbmVkIGluIHRoZSBvdGhlciBzaWduYXRvcmllczsgaXQgc2hvdWxkbid0IGJlLiBOb3RGb3VuZAAHBKBNdWx0aXNpZyBvcGVyYXRpb24gbm90IGZvdW5kIGluIHN0b3JhZ2UuIE5vdE93bmVyAAgIUQFPbmx5IHRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoZSBtdWx0aXNpZyBpcyBhYmxlIHRvIGNhbmNlbCBpdCBvciB1cGRhdGU0aXRzIGRlcG9zaXRzLixOb1RpbWVwb2ludAAJBB0BTm8gdGltZXBvaW50IHdhcyBnaXZlbiwgeWV0IHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gaXMgYWxyZWFkeSB1bmRlcndheS44V3JvbmdUaW1lcG9pbnQACgQtAUEgZGlmZmVyZW50IHRpbWVwb2ludCB3YXMgZ2l2ZW4gdG8gdGhlIG11bHRpc2lnIG9wZXJhdGlvbiB0aGF0IGlzIHVuZGVyd2F5LkxVbmV4cGVjdGVkVGltZXBvaW50AAsE9EEgdGltZXBvaW50IHdhcyBnaXZlbiwgeWV0IG5vIG11bHRpc2lnIG9wZXJhdGlvbiBpcyB1bmRlcndheS48TWF4V2VpZ2h0VG9vTG93AAwE0FRoZSBtYXhpbXVtIHdlaWdodCBpbmZvcm1hdGlvbiBwcm92aWRlZCB3YXMgdG9vIGxvdy40QWxyZWFkeVN0b3JlZAANBKBUaGUgZGF0YSB0byBiZSBzdG9yZWQgaXMgYWxyZWFkeSBzdG9yZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqkKDDhwYWxsZXRfdW5pcXVlcxR0eXBlc0RDb2xsZWN0aW9uRGV0YWlscwgkQWNjb3VudElkAQA4RGVwb3NpdEJhbGFuY2UBQAAoARRvd25lcgABJEFjY291bnRJZAABGGlzc3VlcgABJEFjY291bnRJZAABFGFkbWluAAEkQWNjb3VudElkAAEcZnJlZXplcgABJEFjY291bnRJZAABNHRvdGFsX2RlcG9zaXRAAThEZXBvc2l0QmFsYW5jZQABMGZyZWVfaG9sZGluZ0QBEGJvb2wAARRpdGVtcygBDHUzMgABOGl0ZW1fbWV0YWRhdGFzKAEMdTMyAAEoYXR0cmlidXRlcygBDHUzMgABJGlzX2Zyb3plbkQBEGJvb2wAAK0KAAAEDABAQACxCgw4cGFsbGV0X3VuaXF1ZXMUdHlwZXMsSXRlbURldGFpbHMIJEFjY291bnRJZAEAOERlcG9zaXRCYWxhbmNlAUAAEAEUb3duZXIAASRBY2NvdW50SWQAASBhcHByb3ZlZM0BAURPcHRpb248QWNjb3VudElkPgABJGlzX2Zyb3plbkQBEGJvb2wAARxkZXBvc2l0QAE4RGVwb3NpdEJhbGFuY2UAALUKDDhwYWxsZXRfdW5pcXVlcxR0eXBlc0hDb2xsZWN0aW9uTWV0YWRhdGEIOERlcG9zaXRCYWxhbmNlAUAsU3RyaW5nTGltaXQAAAwBHGRlcG9zaXRAAThEZXBvc2l0QmFsYW5jZQABEGRhdGEBAgFsQm91bmRlZFZlYzx1OCwgU3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuRAEQYm9vbAAAuQoMOHBhbGxldF91bmlxdWVzFHR5cGVzMEl0ZW1NZXRhZGF0YQg4RGVwb3NpdEJhbGFuY2UBQCxTdHJpbmdMaW1pdAAADAEcZGVwb3NpdEABOERlcG9zaXRCYWxhbmNlAAEQZGF0YQECAWxCb3VuZGVkVmVjPHU4LCBTdHJpbmdMaW1pdD4AASRpc19mcm96ZW5EARBib29sAAC9CgAABAxA9QH5AQDBCgAABAj9AUAAxQoAAAQIQM0BAMkKDDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQURXJyb3IIBFQABEkAAVgwTm9QZXJtaXNzaW9uAAAE6FRoZSBzaWduaW5nIGFjY291bnQgaGFzIG5vIHBlcm1pc3Npb24gdG8gZG8gdGhlIG9wZXJhdGlvbi5EVW5rbm93bkNvbGxlY3Rpb24AAQR0VGhlIGdpdmVuIGl0ZW0gSUQgaXMgdW5rbm93bi40QWxyZWFkeUV4aXN0cwACBLhUaGUgaXRlbSBJRCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgZm9yIGFuIGl0ZW0uKFdyb25nT3duZXIAAwToVGhlIG93bmVyIHR1cm5lZCBvdXQgdG8gYmUgZGlmZmVyZW50IHRvIHdoYXQgd2FzIGV4cGVjdGVkLihCYWRXaXRuZXNzAAQEbEludmFsaWQgd2l0bmVzcyBkYXRhIGdpdmVuLhRJblVzZQAFBHRUaGUgaXRlbSBJRCBpcyBhbHJlYWR5IHRha2VuLhhGcm96ZW4ABgSEVGhlIGl0ZW0gb3IgY29sbGVjdGlvbiBpcyBmcm96ZW4uNFdyb25nRGVsZWdhdGUABwT0VGhlIGRlbGVnYXRlIHR1cm5lZCBvdXQgdG8gYmUgZGlmZmVyZW50IHRvIHdoYXQgd2FzIGV4cGVjdGVkLihOb0RlbGVnYXRlAAgEeFRoZXJlIGlzIG5vIGRlbGVnYXRlIGFwcHJvdmVkLihVbmFwcHJvdmVkAAkExE5vIGFwcHJvdmFsIGV4aXN0cyB0aGF0IHdvdWxkIGFsbG93IHRoZSB0cmFuc2Zlci4oVW5hY2NlcHRlZAAKBCUBVGhlIG5hbWVkIG93bmVyIGhhcyBub3Qgc2lnbmVkIG93bmVyc2hpcCBvZiB0aGUgY29sbGVjdGlvbiBpcyBhY2NlcHRhYmxlLhhMb2NrZWQACwRMVGhlIGl0ZW0gaXMgbG9ja2VkLkBNYXhTdXBwbHlSZWFjaGVkAAwEbEFsbCBpdGVtcyBoYXZlIGJlZW4gbWludGVkLkxNYXhTdXBwbHlBbHJlYWR5U2V0AA0EkFRoZSBtYXggc3VwcGx5IGhhcyBhbHJlYWR5IGJlZW4gc2V0LkRNYXhTdXBwbHlUb29TbWFsbAAOBEEBVGhlIHByb3ZpZGVkIG1heCBzdXBwbHkgaXMgbGVzcyB0byB0aGUgYW1vdW50IG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBhbHJlYWR5IGhhcy4sVW5rbm93bkl0ZW0ADwR0VGhlIGdpdmVuIGl0ZW0gSUQgaXMgdW5rbm93bi4oTm90Rm9yU2FsZQAQBFRJdGVtIGlzIG5vdCBmb3Igc2FsZS4kQmlkVG9vTG93ABEEcFRoZSBwcm92aWRlZCBiaWQgaXMgdG9vIGxvdy4oTm9NZXRhZGF0YQASBFRObyBtZXRhZGF0YSBpcyBmb3VuZC40V3JvbmdNZXRhZGF0YQATBKBXcm9uZyBtZXRhZGF0YSBrZXkvdmFsdWUgYnl0ZXMgc3VwcGxpZWQuREF0dHJpYnV0ZU5vdEZvdW5kABQEaEFuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuOFdyb25nQXR0cmlidXRlABUEpFdyb25nIGF0dHJpYnV0ZSBrZXkvdmFsdWUgYnl0ZXMgc3VwcGxpZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ls0KAAAECACAANEKDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRhWb3RpbmcUHEJhbGFuY2UBQCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoJFBvbGxJbmRleAEoIE1heFZvdGVzAAEIHENhc3RpbmcEANUKAchDYXN0aW5nPEJhbGFuY2UsIEJsb2NrTnVtYmVyLCBQb2xsSW5kZXgsIE1heFZvdGVzPgAAAChEZWxlZ2F0aW5nBADtCgGsRGVsZWdhdGluZzxCYWxhbmNlLCBBY2NvdW50SWQsIEJsb2NrTnVtYmVyPgABAADVCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUcQ2FzdGluZxAcQmFsYW5jZQFALEJsb2NrTnVtYmVyASgkUG9sbEluZGV4ASggTWF4Vm90ZXMAAAwBFHZvdGVz2QoB3EJvdW5kZWRWZWM8KFBvbGxJbmRleCwgQWNjb3VudFZvdGU8QmFsYW5jZT4pLCBNYXhWb3Rlcz4AASxkZWxlZ2F0aW9uc+UKAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9y6QoBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AANkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB3QoEUwAABADhCgEYVmVjPFQ+AADdCgAABAgoIQIA4QoAAALdCgDlCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzLERlbGVnYXRpb25zBBxCYWxhbmNlAUAACAEUdm90ZXNAARxCYWxhbmNlAAEcY2FwaXRhbEABHEJhbGFuY2UAAOkKDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZSRQcmlvckxvY2sILEJsb2NrTnVtYmVyASgcQmFsYW5jZQFAAAgAKAEsQmxvY2tOdW1iZXIAAEABHEJhbGFuY2UAAO0KDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZShEZWxlZ2F0aW5nDBxCYWxhbmNlAUAkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKAAUARxiYWxhbmNlQAEcQmFsYW5jZQABGHRhcmdldAABJEFjY291bnRJZAABKGNvbnZpY3Rpb24pAgEoQ29udmljdGlvbgABLGRlbGVnYXRpb25z5QoBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3LpCgF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgAA8QoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAH1CgRTAAAEAPkKARhWZWM8VD4AAPUKAAAECIBAAPkKAAAC9QoA/QoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQURXJyb3IIBFQABEkAATAoTm90T25nb2luZwAABFBQb2xsIGlzIG5vdCBvbmdvaW5nLiBOb3RWb3RlcgABBKxUaGUgZ2l2ZW4gYWNjb3VudCBkaWQgbm90IHZvdGUgb24gdGhlIHBvbGwuME5vUGVybWlzc2lvbgACBMhUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uLjxOb1Blcm1pc3Npb25ZZXQAAwRZAVRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24gcmlnaHQgbm93IGJ1dCB3aWxsIGRvIGluIHRoZSBmdXR1cmUuREFscmVhZHlEZWxlZ2F0aW5nAAQEiFRoZSBhY2NvdW50IGlzIGFscmVhZHkgZGVsZWdhdGluZy40QWxyZWFkeVZvdGluZwAFCFUBVGhlIGFjY291bnQgY3VycmVudGx5IGhhcyB2b3RlcyBhdHRhY2hlZCB0byBpdCBhbmQgdGhlIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCB1bnRpbKB0aGVzZSBhcmUgcmVtb3ZlZCB0aHJvdWdoIGByZW1vdmVfdm90ZWAuREluc3VmZmljaWVudEZ1bmRzAAYE/FRvbyBoaWdoIGEgYmFsYW5jZSB3YXMgcHJvdmlkZWQgdGhhdCB0aGUgYWNjb3VudCBjYW5ub3QgYWZmb3JkLjROb3REZWxlZ2F0aW5nAAcEoFRoZSBhY2NvdW50IGlzIG5vdCBjdXJyZW50bHkgZGVsZWdhdGluZy4gTm9uc2Vuc2UACASURGVsZWdhdGlvbiB0byBvbmVzZWxmIG1ha2VzIG5vIHNlbnNlLjxNYXhWb3Rlc1JlYWNoZWQACQSATWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgcmVhY2hlZC4sQ2xhc3NOZWVkZWQACgQ5AVRoZSBjbGFzcyBtdXN0IGJlIHN1cHBsaWVkIHNpbmNlIGl0IGlzIG5vdCBlYXNpbHkgZGV0ZXJtaW5hYmxlIGZyb20gdGhlIHN0YXRlLiBCYWRDbGFzcwALBIRUaGUgY2xhc3MgSUQgc3VwcGxpZWQgaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuAQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4UmVmZXJlbmR1bUluZm8gHFRyYWNrSWQBgDRSdW50aW1lT3JpZ2luAYQYTW9tZW50ASgQQ2FsbAGpARxCYWxhbmNlAUAUVGFsbHkBjQckQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAakCARgcT25nb2luZwQABQsBjQFSZWZlcmVuZHVtU3RhdHVzPFRyYWNrSWQsIFJ1bnRpbWVPcmlnaW4sIE1vbWVudCwgQ2FsbCwgQmFsYW5jZSwgVGFsbHksCkFjY291bnRJZCwgU2NoZWR1bGVBZGRyZXNzLD4AAAAgQXBwcm92ZWQMACgBGE1vbWVudAAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAANCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAQAgUmVqZWN0ZWQMACgBGE1vbWVudAAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAANCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAgAkQ2FuY2VsbGVkDAAoARhNb21lbnQAAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAMAIFRpbWVkT3V0DAAoARhNb21lbnQAAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAQAGEtpbGxlZAQAKAEYTW9tZW50AAUAAAULDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzQFJlZmVyZW5kdW1TdGF0dXMgHFRyYWNrSWQBgDRSdW50aW1lT3JpZ2luAYQYTW9tZW50ASgQQ2FsbAGpARxCYWxhbmNlAUAUVGFsbHkBjQckQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAakCACwBFHRyYWNrgAEcVHJhY2tJZAABGG9yaWdpboQBNFJ1bnRpbWVPcmlnaW4AASBwcm9wb3NhbKkBARBDYWxsAAEkZW5hY3RtZW50NQIBUERpc3BhdGNoVGltZTxNb21lbnQ+AAEkc3VibWl0dGVkKAEYTW9tZW50AAFIc3VibWlzc2lvbl9kZXBvc2l0CQsBbERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPgABQGRlY2lzaW9uX2RlcG9zaXQNCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AASBkZWNpZGluZxELAXhPcHRpb248RGVjaWRpbmdTdGF0dXM8TW9tZW50Pj4AARR0YWxseY0HARRUYWxseQABIGluX3F1ZXVlRAEQYm9vbAABFGFsYXJtGQsBhE9wdGlvbjwoTW9tZW50LCBTY2hlZHVsZUFkZHJlc3MpPgAACQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMcRGVwb3NpdAgkQWNjb3VudElkAQAcQmFsYW5jZQFAAAgBDHdobwABJEFjY291bnRJZAABGGFtb3VudEABHEJhbGFuY2UAAA0LBBhPcHRpb24EBFQBCQsBCBBOb25lAAAAEFNvbWUEAAkLAAABAAARCwQYT3B0aW9uBARUARULAQgQTm9uZQAAABBTb21lBAAVCwAAAQAAFQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4RGVjaWRpbmdTdGF0dXMELEJsb2NrTnVtYmVyASgACAEUc2luY2UoASxCbG9ja051bWJlcgABKGNvbmZpcm1pbmd0AUxPcHRpb248QmxvY2tOdW1iZXI+AAAZCwQYT3B0aW9uBARUAR0LAQgQTm9uZQAAABBTb21lBAAdCwAAAQAAHQsAAAQIKKkCACELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQMEUwAABAChBgEYVmVjPFQ+AAAlCwAAAikLACkLAAAECIAtCwAtCwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczBUcmFja0RldGFpbHMMHEJhbGFuY2UBQBhNb21lbnQBKBBOYW1lAVkIACQBEG5hbWVZCAEQTmFtZQABMG1heF9kZWNpZGluZygBDHUzMgABQGRlY2lzaW9uX2RlcG9zaXRAARxCYWxhbmNlAAE4cHJlcGFyZV9wZXJpb2QoARhNb21lbnQAATxkZWNpc2lvbl9wZXJpb2QoARhNb21lbnQAAThjb25maXJtX3BlcmlvZCgBGE1vbWVudAABUG1pbl9lbmFjdG1lbnRfcGVyaW9kKAEYTW9tZW50AAEwbWluX2FwcHJvdmFsMQsBFEN1cnZlAAEsbWluX3N1cHBvcnQxCwEUQ3VydmUAADELDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzFEN1cnZlAAEMQExpbmVhckRlY3JlYXNpbmcMARhsZW5ndGgpAwEcUGVyYmlsbAABFGZsb29yKQMBHFBlcmJpbGwAARBjZWlsKQMBHFBlcmJpbGwAAABEU3RlcHBlZERlY3JlYXNpbmcQARRiZWdpbikDARxQZXJiaWxsAAEMZW5kKQMBHFBlcmJpbGwAARBzdGVwKQMBHFBlcmJpbGwAARhwZXJpb2QpAwEcUGVyYmlsbAABAChSZWNpcHJvY2FsDAEYZmFjdG9yNQsBIEZpeGVkSTY0AAEgeF9vZmZzZXQ1CwEgRml4ZWRJNjQAASB5X29mZnNldDULASBGaXhlZEk2NAACAAA1Cww0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCBGaXhlZEk2NAAABAA5CwEMaTY0AAA5CwAABQwAPQsMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEVycm9yCARUAARJAAE4KE5vdE9uZ29pbmcAAARoUmVmZXJlbmR1bSBpcyBub3Qgb25nb2luZy4oSGFzRGVwb3NpdAABBLhSZWZlcmVuZHVtJ3MgZGVjaXNpb24gZGVwb3NpdCBpcyBhbHJlYWR5IHBhaWQuIEJhZFRyYWNrAAIEnFRoZSB0cmFjayBpZGVudGlmaWVyIGdpdmVuIHdhcyBpbnZhbGlkLhBGdWxsAAMEMQFUaGVyZSBhcmUgYWxyZWFkeSBhIGZ1bGwgY29tcGxlbWVudCBvZiByZWZlcmVuZGEgaW4gcHJvZ3Jlc3MgZm9yIHRoaXMgdHJhY2suKFF1ZXVlRW1wdHkABASAVGhlIHF1ZXVlIG9mIHRoZSB0cmFjayBpcyBlbXB0eS40QmFkUmVmZXJlbmR1bQAFBORUaGUgcmVmZXJlbmR1bSBpbmRleCBwcm92aWRlZCBpcyBpbnZhbGlkIGluIHRoaXMgY29udGV4dC4sTm90aGluZ1RvRG8ABgSsVGhlcmUgd2FzIG5vdGhpbmcgdG8gZG8gaW4gdGhlIGFkdmFuY2VtZW50LhxOb1RyYWNrAAcEoE5vIHRyYWNrIGV4aXN0cyBmb3IgdGhlIHByb3Bvc2FsIG9yaWdpbi4oVW5maW5pc2hlZAAIBAEBQW55IGRlcG9zaXQgY2Fubm90IGJlIHJlZnVuZGVkIHVudGlsIGFmdGVyIHRoZSBkZWNpc2lvbiBpcyBvdmVyLjBOb1Blcm1pc3Npb24ACQSoVGhlIGRlcG9zaXQgcmVmdW5kZXIgaXMgbm90IHRoZSBkZXBvc2l0b3IuJE5vRGVwb3NpdAAKBMxUaGUgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgc2luY2Ugbm9uZSB3YXMgbWFkZS4kQmFkU3RhdHVzAAsE0FRoZSByZWZlcmVuZHVtIHN0YXR1cyBpcyBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbi5AUHJlaW1hZ2VOb3RFeGlzdAAMBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuhFByZWltYWdlU3RvcmVkV2l0aERpZmZlcmVudExlbmd0aAANBBUBVGhlIHByZWltYWdlIGlzIHN0b3JlZCB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIHRoZSBvbmUgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkELDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFcnJvcgQEVAABFExVbmF2YWlsYWJsZVByZUltYWdlAAAEyFRoZSBwcmVpbWFnZSBvZiB0aGUgY2FsbCBoYXNoIGNvdWxkIG5vdCBiZSBsb2FkZWQuPFVuZGVjb2RhYmxlQ2FsbAABBHhUaGUgY2FsbCBjb3VsZCBub3QgYmUgZGVjb2RlZC5gSW52YWxpZENhbGxXZWlnaHRXaXRuZXNzAAIE7FRoZSB3ZWlnaHQgb2YgdGhlIGRlY29kZWQgY2FsbCB3YXMgaGlnaGVyIHRoYW4gdGhlIHdpdG5lc3MuUENhbGxJc05vdFdoaXRlbGlzdGVkAAMEdFRoZSBjYWxsIHdhcyBub3Qgd2hpdGVsaXN0ZWQuWENhbGxBbHJlYWR5V2hpdGVsaXN0ZWQABASgVGhlIGNhbGwgd2FzIGFscmVhZHkgd2hpdGVsaXN0ZWQ7IE5vLU9wLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5FCwxEcGFsbGV0X2Rpc3BhdGNoZXIYcGFsbGV0FEVycm9yBARUAAEoNEV2bUNhbGxGYWlsZWQAAAg9AVRoZSBFVk0gY2FsbCBleGVjdXRpb24gZmFpbGVkLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgRVZNIHJldHVybnMgYW4gZXhpdCByZWFzb270b3RoZXIgdGhhbiBgRXhpdFN1Y2NlZWQoUmV0dXJuZWQpYCBvciBgRXhpdFN1Y2NlZWQoU3RvcHBlZClgLihOb3RFdm1DYWxsAAEEbQFUaGUgcHJvdmlkZWQgY2FsbCBpcyBub3QgYW4gRVZNIGNhbGwuIFRoaXMgZXh0cmluc2ljIG9ubHkgYWNjZXB0cyBgcGFsbGV0X2V2bTo6Q2FsbDo6Y2FsbGAuLEV2bU91dE9mR2FzAAIEcFRoZSBFVk0gY2FsbCByYW4gb3V0IG9mIGdhcy6ARXZtQXJpdGhtZXRpY092ZXJmbG93T3JVbmRlcmZsb3cAAwT0VGhlIEVWTSBjYWxsIHJlc3VsdGVkIGluIGFuIGFyaXRobWV0aWMgb3ZlcmZsb3cgb3IgdW5kZXJmbG93LlRBYXZlU3VwcGx5Q2FwRXhjZWVkZWQABASQQWF2ZSAtIHN1cHBseSBjYXAgaGFzIGJlZW4gZXhjZWVkZWQuVEFhdmVCb3Jyb3dDYXBFeGNlZWRlZAAFBJBBYXZlIC0gYm9ycm93IGNhcCBoYXMgYmVlbiBleGNlZWRlZC6EQWF2ZUhlYWx0aEZhY3Rvck5vdEJlbG93VGhyZXNob2xkAAYEwEFhdmUgLSBoZWFsdGggZmFjdG9yIGlzIG5vdCBiZWxvdyB0aGUgdGhyZXNob2xkLrRBYXZlSGVhbHRoRmFjdG9yTG93ZXJUaGFuTGlxdWlkYXRpb25UaHJlc2hvbGQABwT0QWF2ZSAtIGhlYWx0aCBmYWN0b3IgaXMgbGVzc2VyIHRoYW4gdGhlIGxpcXVpZGF0aW9uIHRocmVzaG9sZHhDb2xsYXRlcmFsQ2Fubm90Q292ZXJOZXdCb3Jyb3cACATsQWF2ZSAtIHRoZXJlIGlzIG5vdCBlbm91Z2ggY29sbGF0ZXJhbCB0byBjb3ZlciBhIG5ldyBib3Jyb3dEQWF2ZVJlc2VydmVQYXVzZWQACQToQWF2ZSAtIHRoZSByZXNlcnZlIGlzIHBhdXNlZCBhbmQgbm8gb3BlcmF0aW9ucyBhcmUgYWxsb3dlZASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5JCwxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5FHR5cGVzMEFzc2V0RGV0YWlscwQsU3RyaW5nTGltaXQAABwBEG5hbWVFAgFkT3B0aW9uPE5hbWU8U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVNAgEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdEABHEJhbGFuY2UAARhzeW1ib2xFAgFsT3B0aW9uPFN5bWJvbDxTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHNRAgEoT3B0aW9uPHU4PgABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnREARBib29sAABNCwxUcGFsbGV0X2Fzc2V0X3JlZ2lzdHJ5GHBhbGxldBRFcnJvcgQEVAABPDROb0lkQXZhaWxhYmxlAAAEcQFBc3NldCBJRCBpcyBub3QgYXZhaWxhYmxlLiBUaGlzIG9ubHkgaGFwcGVucyB3aGVuIGl0IHJlYWNoZXMgdGhlIE1BWCB2YWx1ZSBvZiBnaXZlbiBpZCB0eXBlLjRBc3NldE5vdEZvdW5kAAEEdEludmFsaWQgYXNzZXQgbmFtZSBvciBzeW1ib2wuIFRvb1Nob3J0AAIEyExlbmd0aCBvZiBuYW1lIG9yIHN5bWJvbCBpcyBsZXNzIHRoYW4gbWluLiBsZW5ndGguNEludmFsaWRTeW1ib2wAAwTQQXNzZXQncyBzeW1ib2wgY2FuJ3QgY29udGFpbiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgLkhBc3NldE5vdFJlZ2lzdGVyZWQABATEQXNzZXQgSUQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gdGhlIGFzc2V0LXJlZ2lzdHJ5LlhBc3NldEFscmVhZHlSZWdpc3RlcmVkAAUEcEFzc2V0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5USW52YWxpZFNoYXJlZEFzc2V0TGVuAAYE7EluY29ycmVjdCBudW1iZXIgb2YgYXNzZXRzIHByb3ZpZGVkIHRvIGNyZWF0ZSBzaGFyZWQgYXNzZXQuUENhbm5vdFVwZGF0ZUxvY2F0aW9uAAcEdENhbm5vdCB1cGRhdGUgYXNzZXQgbG9jYXRpb24uSE5vdEluUmVzZXJ2ZWRSYW5nZQAIBKxTZWxlY3RlZCBhc3NldCBpZCBpcyBvdXQgb2YgcmVzZXJ2ZWQgcmFuZ2UuZExvY2F0aW9uQWxyZWFkeVJlZ2lzdGVyZWQACQTETG9jYXRpb24gYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggZGlmZmVyZW50IGFzc2V0LiRGb3JiaWRkZW4ACgSgT3JpZ2luIGlzIGZvcmJpZGRlbiB0byBzZXQvdXBkYXRlIHZhbHVlLkxJbnN1ZmZpY2llbnRCYWxhbmNlAAsEQEJhbGFuY2UgdG9vIGxvdy5oRm9yYmlkZGVuU3VmZmljaWVuY3lDaGFuZ2UADATMU3VmZmljaWVudCBhc3NldHMgY2FuJ3QgYmUgY2hhbmdlZCB0byBpbnN1ZmZpY2llbnQuSEFzc2V0QWxyZWFkeUJhbm5lZAANBGBBc3NldCBpcyBhbHJlYWR5IGJhbm5lZC44QXNzZXROb3RCYW5uZWQADgRQQXNzZXQgaXMgbm90IGJhbm5lZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuUQsMNHBhbGxldF9jbGFpbXMYcGFsbGV0FEVycm9yBARUAAEMYEludmFsaWRFdGhlcmV1bVNpZ25hdHVyZQAABHxFdGhlcmV1bSBzaWduYXR1cmUgaXMgbm90IHZhbGlkXE5vQ2xhaW1PckFscmVhZHlDbGFpbWVkAAEESENsYWltIGlzIG5vdCB2YWxpZDxCYWxhbmNlT3ZlcmZsb3cAAgTcVmFsdWUgcmVhY2hlZCBtYXhpbXVtIGFuZCBjYW5ub3QgYmUgaW5jcmVtZW50ZWQgZnVydGhlcgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5VCwhYcGFsbGV0X2dlbmVzaXNfaGlzdG9yeRRDaGFpbgAACAEwZ2VuZXNpc19oYXNoLAEQSDI1NgABPGxhc3RfYmxvY2tfaGFzaCwBEEgyNTYAAFkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAEgBGFZlYzxUPgAAXQsMXHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzGHBhbGxldBRFcnJvcgQEVAABAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5hCww8cGFsbGV0X29tbmlwb29sFHR5cGVzKEFzc2V0U3RhdGUEHEJhbGFuY2UBQAAUASxodWJfcmVzZXJ2ZUABHEJhbGFuY2UAARhzaGFyZXNAARxCYWxhbmNlAAE8cHJvdG9jb2xfc2hhcmVzQAEcQmFsYW5jZQABDGNhcEABEHUxMjgAASB0cmFkYWJsZXkCASxUcmFkYWJpbGl0eQAAZQsMPHBhbGxldF9vbW5pcG9vbBR0eXBlcyBQb3NpdGlvbggcQmFsYW5jZQFAHEFzc2V0SWQBKAAQASBhc3NldF9pZCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEYc2hhcmVzQAEcQmFsYW5jZQABFHByaWNlfQIBSChCYWxhbmNlLCBCYWxhbmNlKQAAaQsQNGh5ZHJhX2R4X21hdGggb21uaXBvb2wUdHlwZXM0U2lnbmVkQmFsYW5jZQABCCBQb3NpdGl2ZQQAQAEcQmFsYW5jZQAAACBOZWdhdGl2ZQQAQAEcQmFsYW5jZQABAABtCww8cGFsbGV0X29tbmlwb29sGHBhbGxldBRFcnJvcgQEVAABjExJbnN1ZmZpY2llbnRCYWxhbmNlAAAEPEJhbGFuY2UgdG9vIGxvd0RBc3NldEFscmVhZHlBZGRlZAABBHBBc3NldCBpcyBhbHJlYWR5IGluIG9tbmlwb29sNEFzc2V0Tm90Rm91bmQAAgRgQXNzZXQgaXMgbm90IGluIG9tbmlwb29sOE1pc3NpbmdCYWxhbmNlAAMEGQFGYWlsZWQgdG8gYWRkIHRva2VuIHRvIE9tbmlwb29sIGR1ZSB0byBpbnN1ZmZpY2llbnQgaW5pdGlhbCBsaXF1aWRpdHkuYEludmFsaWRJbml0aWFsQXNzZXRQcmljZQAEBHBJbnZhbGlkIGluaXRpYWwgYXNzZXQgcHJpY2UuSEJ1eUxpbWl0Tm90UmVhY2hlZAAFBORTbGlwcGFnZSBwcm90ZWN0aW9uIC0gbWluaW11bSBsaW1pdCBoYXMgbm90IGJlZW4gcmVhY2hlZC5EU2VsbExpbWl0RXhjZWVkZWQABgTYU2xpcHBhZ2UgcHJvdGVjdGlvbiAtIG1heGltdW0gbGltaXQgaGFzIGJlZW4gZXhjZWVkZWQuQFBvc2l0aW9uTm90Rm91bmQABwRwUG9zaXRpb24gaGFzIG5vdCBiZWVuIGZvdW5kLkhJbnN1ZmZpY2llbnRTaGFyZXMACAR8SW5zdWZmaWNpZW50IHNoYXJlcyBpbiBwb3NpdGlvbihOb3RBbGxvd2VkAAkEiEFzc2V0IGlzIG5vdCBhbGxvd2VkIHRvIGJlIHRyYWRlZC4kRm9yYmlkZGVuAAoExFNpZ25lZCBhY2NvdW50IGlzIG5vdCBvd25lciBvZiBwb3NpdGlvbiBpbnN0YW5jZS5YQXNzZXRXZWlnaHRDYXBFeGNlZWRlZAALBIxBc3NldCB3ZWlnaHQgY2FwIGhhcyBiZWVuIGV4Y2VlZGVkLkhBc3NldE5vdFJlZ2lzdGVyZWQADASkQXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnlUSW5zdWZmaWNpZW50TGlxdWlkaXR5AA0ExFByb3ZpZGVkIGxpcXVpZGl0eSBpcyBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgbGltaXRkSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAAOBLBUcmFkZWQgYW1vdW50IGlzIGJlbG93IG1pbmltdW0gYWxsb3dlZCBsaW1pdGBTYW1lQXNzZXRUcmFkZU5vdEFsbG93ZWQADwS8U2VsbCBvciBidXkgd2l0aCBzYW1lIGFzc2V0IGlkcyBpcyBub3QgYWxsb3dlZC5MSHViQXNzZXRVcGRhdGVFcnJvcgAQBBUBSHViIGFzc2V0IHJlc2VydmUgdXBkYXRlIGFmdGVyIHRyYWRlIHJlc3VsdGVkIGluIHVuZXhwZWN0ZWQgRGVjcmVhc2UuTEludmFsaWRTaGFyZXNBbW91bnQAEQSYQW1vdW50IG9mIHNoYXJlcyBwcm92aWRlZCBjYW5ub3QgYmUgMC5wSW52YWxpZEh1YkFzc2V0VHJhZGFibGVTdGF0ZQASBJRIdWIgYXNzZXQgaXMgb25seSBhbGxvd2VkIHRvIGJlIHNvbGQuVEFzc2V0UmVmdW5kTm90QWxsb3dlZAATBJBBc3NldCBpcyBub3QgYWxsb3dlZCB0byBiZSByZWZ1bmRlZC5MTWF4T3V0UmF0aW9FeGNlZWRlZAAUBLxNYXggZnJhY3Rpb24gb2YgYXNzZXQgdG8gYnV5IGhhcyBiZWVuIGV4Y2VlZGVkLkhNYXhJblJhdGlvRXhjZWVkZWQAFQTATWF4IGZyYWN0aW9uIG9mIGFzc2V0IHRvIHNlbGwgaGFzIGJlZW4gZXhjZWVkZWQuWFByaWNlRGlmZmVyZW5jZVRvb0hpZ2gAFgS8TWF4IGFsbG93ZWQgcHJpY2UgZGlmZmVyZW5jZSBoYXMgYmVlbiBleGNlZWRlZC5ISW52YWxpZE9yYWNsZVByaWNlABcEoEludmFsaWQgb3JhY2xlIHByaWNlIC0gZGl2aXNpb24gYnkgemVyby5QSW52YWxpZFdpdGhkcmF3YWxGZWUAGASMRmFpbGVkIHRvIGNhbGN1bGF0ZSB3aXRoZHJhd2FsIGZlZS4wRmVlT3ZlcmRyYWZ0ABkE1E1vcmUgdGhhbiBhbGxvd2VkIGFtb3VudCBvZiBmZWUgaGFzIGJlZW4gdHJhbnNmZXJyZWQuPFNoYXJlc1JlbWFpbmluZwAaBD0BVG9rZW4gY2Fubm90IGJlIHJlbW92ZWQgZnJvbSBPbW5pcG9vbCBkdWUgdG8gc2hhcmVzIHN0aWxsIG93bmVkIGJ5IG90aGVyIHVzZXJzLjhBc3NldE5vdEZyb3plbgAbBAkBVG9rZW4gY2Fubm90IGJlIHJlbW92ZWQgZnJvbSBPbW5pcG9vbCBiZWNhdXNlIGFzc2V0IGlzIG5vdCBmcm96ZW4uNFplcm9BbW91bnRPdXQAHAS4Q2FsY3VsYXRlZCBhbW91bnQgb3V0IGZyb20gc2VsbCB0cmFkZSBpcyB6ZXJvLnhFeGlzdGVudGlhbERlcG9zaXROb3RBdmFpbGFibGUAHQS4RXhpc3RlbnRpYWwgZGVwb3NpdCBvZiBhc3NldCBpcyBub3QgYXZhaWxhYmxlLjRTbGlwcGFnZUxpbWl0AB4ETFNsaXBwYWdlIHByb3RlY3Rpb25YUHJvdG9jb2xGZWVOb3RDb25zdW1lZAAfBKRFeHRyYSBwcm90b2NvbCBmZWUgaGFzIG5vdCBiZWVuIGNvbnN1bWVkLkRNYXhTbGlwRmVlVG9vSGlnaAAgBORTbGlwIGZlZSBjb25maWd1cmF0aW9uIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbWF4aW11bSAoNTAlKS44SW52YXJpYW50RXJyb3IAIQT0SW52YXJpYW50IGNoZWNrIGZhaWxlZCBpbnNpZGUgYSB0cmFkZSBvciBsaXF1aWRpdHkgb3BlcmF0aW9uLmRJbnZhbGlkT21uaXBvb2xIdWJSZXNlcnZlACIIPQFIdWIgYXNzZXQgZnJlZSBiYWxhbmNlIGluIHRoZSBwcm90b2NvbCBhY2NvdW50IGlzIGxlc3MgdGhhbiB0aGUgc3VtIG9mIHJlY29yZGVkSQFhc3NldCBodWIgcmVzZXJ2ZXMuIEluZGljYXRlcyBjb3JydXB0ZWQgaHViLWFzc2V0IGFjY291bnRpbmc7IHNob3VsZCBuZXZlciBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnELAAAECHULdQsAdQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAB5CwxgcGFsbGV0X3RyYW5zYWN0aW9uX3BhdXNlGHBhbGxldBRFcnJvcgQEVAABDCxDYW5ub3RQYXVzZQAABDRjYW4gbm90IHBhdXNlQEludmFsaWRDaGFyYWN0ZXIAAQRoaW52YWxpZCBjaGFyYWN0ZXIgZW5jb2RpbmcsTmFtZVRvb0xvbmcAAgSgcGFsbGV0IG5hbWUgb3IgZnVuY3Rpb24gbmFtZSBpcyB0b28gbG9uZwSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC59Cww0cGFsbGV0X2R1c3RlchhwYWxsZXQURXJyb3IEBFQAARhIQWNjb3VudFdoaXRlbGlzdGVkAAAEhEFjY291bnQgaXMgZXhjbHVkZWQgZnJvbSBkdXN0aW5nLlRBY2NvdW50Tm90V2hpdGVsaXN0ZWQAAQTAQWNjb3VudCBpcyBub3QgcHJlc2VudCBpbiB0aGUgbm9uLWR1c3RhYmxlIGxpc3QuLFplcm9CYWxhbmNlAAIEUFRoZSBiYWxhbmNlIGlzIHplcm8uOE5vblplcm9CYWxhbmNlAAMEqQFUaGUgYmFsYW5jZSB3YXMgbm90IGZ1bGx5IGR1c3RlZCwgdGhlcmUgaXMgc29tZSBsZWZ0b3ZlciBvbiB0aGUgYWNjb3VudC4gTm9ybWFsbHksIGl0IHNob3VsZCBuZXZlciBoYXBwZW4uREJhbGFuY2VTdWZmaWNpZW50AAQEvFRoZSBiYWxhbmNlIGlzIHN1ZmZpY2llbnQgdG8ga2VlcCBhY2NvdW50IG9wZW4uUFJlc2VydmVBY2NvdW50Tm90U2V0AAUEbFJlc2VydmUgYWNjb3VudCBpcyBub3Qgc2V0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6BCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4R2xvYmFsRmFybURhdGEIBFQABEkAAEgBCGlkKAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASh1cGRhdGVkX2F0KAEsUGVyaW9kT2Y8VD4AATh0b3RhbF9zaGFyZXNfekABHEJhbGFuY2UAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAE8cGVuZGluZ19yZXdhcmRzQAEcQmFsYW5jZQABYGFjY3VtdWxhdGVkX3BhaWRfcmV3YXJkc0ABHEJhbGFuY2UAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzKAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAFIaW5jZW50aXZpemVkX2Fzc2V0KAEoVDo6QXNzZXRJZAABVG1heF9yZXdhcmRfcGVyX3BlcmlvZEABHEJhbGFuY2UAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVhsaXZlX3lpZWxkX2Zhcm1zX2NvdW50KAEMdTMyAAFcdG90YWxfeWllbGRfZmFybXNfY291bnQoAQx1MzIAAUBwcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAEUc3RhdGWFCwEkRmFybVN0YXRlAACFCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXMkRmFybVN0YXRlAAEMGEFjdGl2ZQAAABxTdG9wcGVkAAEAKFRlcm1pbmF0ZWQAAgAAiQsAAAQMKCgoAI0LDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczRZaWVsZEZhcm1EYXRhCARUAARJAAAwAQhpZCgBGEZhcm1JZAABKHVwZGF0ZWRfYXQoASxQZXJpb2RPZjxUPgABMHRvdGFsX3NoYXJlc0ABHEJhbGFuY2UAAUx0b3RhbF92YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATRsb3lhbHR5X2N1cnZlnQIBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAEUc3RhdGWFCwEkRmFybVN0YXRlAAE0ZW50cmllc19jb3VudBgBDHU2NAABSGxlZnRfdG9fZGlzdHJpYnV0ZUABHEJhbGFuY2UAATR0b3RhbF9zdG9wcGVkKAEsUGVyaW9kT2Y8VD4AAJELDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlcyxEZXBvc2l0RGF0YQgEVAAESQAADAEYc2hhcmVzQAEcQmFsYW5jZQABLGFtbV9wb29sX2lkKAEwVDo6QW1tUG9vbElkAAFIeWllbGRfZmFybV9lbnRyaWVzlQsB9EJvdW5kZWRWZWM8WWllbGRGYXJtRW50cnk8VCwgST4sIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AAJULDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBmQsEUwAABACdCwEYVmVjPFQ+AACZCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4WWllbGRGYXJtRW50cnkIBFQABEkAACABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAE0dmFsdWVkX3NoYXJlc0ABHEJhbGFuY2UAAUBhY2N1bXVsYXRlZF9ycHZzVAEkRml4ZWRVMTI4AAFsYWNjdW11bGF0ZWRfY2xhaW1lZF9yZXdhcmRzQAEcQmFsYW5jZQABKGVudGVyZWRfYXQoASxQZXJpb2RPZjxUPgABKHVwZGF0ZWRfYXQoASxQZXJpb2RPZjxUPgABTHN0b3BwZWRfYXRfY3JlYXRpb24oASxQZXJpb2RPZjxUPgAAnQsAAAKZCwChCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEVycm9yCARUAARJAAF0SEdsb2JhbEZhcm1Ob3RGb3VuZAAABGxHbG9iYWwgZmFybSBkb2VzIG5vdCBleGlzdC5EWWllbGRGYXJtTm90Rm91bmQAAQRoWWllbGQgZmFybSBkb2VzIG5vdCBleGlzdC5MRG91YmxlQ2xhaW1JblBlcmlvZAACBMhNdWx0aXBsZSBjbGFpbXMgaW4gdGhlIHNhbWUgcGVyaW9kIGlzIG5vdCBhbGxvd2VkLlxMaXF1aWRpdHlNaW5pbmdDYW5jZWxlZAADBHRMaXF1aWRpdHkgbWluaW5nIGlzIGNhbmNlbGVkLlxMaXF1aWRpdHlNaW5pbmdJc0FjdGl2ZQAEBIRMaXF1aWRpdHkgbWluaW5nIGlzIG5vdCBjYW5jZWxlZC5sTGlxdWlkaXR5TWluaW5nSXNOb3RTdG9wcGVkAAUEVQFMaXF1aWRpdHkgbWluaW5nIGlzIGluIGBhY3RpdmVgIG9yIGB0ZXJtaW5hdGVkYCBzdGF0ZSBhbmQgYWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQuJEZvcmJpZGRlbgAGBKRBY2NvdW50IGlzIG5vdCBhbGxvd2VkIHRvIHBlcmZvcm0gYWN0aW9uLkRJbnZhbGlkTXVsdGlwbGllcgAHBIRZaWVsZCBmYXJtIG11bHRpcGxpZXIgY2FuJ3QgYmUgMC5YWWllbGRGYXJtQWxyZWFkeUV4aXN0cwAIBAkBWWllbGQgZmFybSB3aXRoIGdpdmVuIGBhbW1fcG9vbF9pZGAgYWxyZWFkeSBleGlzdHMgaW4gZ2xvYmFsIGZhcm0ueEludmFsaWRJbml0aWFsUmV3YXJkUGVyY2VudGFnZQAJBD0BTG95YWx0eSBjdXJ2ZSdzIGluaXRpYWwgcmV3YXJkIHBlcmNlbnRhZ2UgaXMgbm90IHZhbGlkLiBWYWxpZCByYW5nZSBpczogWzAsIDEpLlBHbG9iYWxGYXJtSXNOb3RFbXB0eQAKBLRPbmUgb3IgbW9yZSB5aWVsZCBmYXJtcyBleGlzdCBpbiBnbG9iYWwgZmFybS5gTWlzc2luZ0luY2VudGl2aXplZEFzc2V0AAsE+EZhcm0ncyBgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBtaXNzaW5nIGluIHByb3ZpZGVkIGFzc2V0IHBhaXIuhEluc3VmZmljaWVudFJld2FyZEN1cnJlbmN5QmFsYW5jZQAMBKhSZXdhcmQgY3VycmVuY3kgYmFsYW5jZSBpcyBub3Qgc3VmZmljaWVudC5YSW52YWxpZEJsb2Nrc1BlclBlcmlvZAANBHRCbG9ja3MgcGVyIHBlcmlvZCBjYW4ndCBiZSAwLlRJbnZhbGlkWWllbGRQZXJQZXJpb2QADgRwWWllbGQgcGVyIHBlcmlvZCBjYW4ndCBiZSAwLkxJbnZhbGlkVG90YWxSZXdhcmRzAA8ExFRvdGFsIHJld2FyZHMgaXMgbGVzcyB0aGFuIGBNaW5Ub3RhbEZhcm1SZXdhcmRzYC50SW52YWxpZFBsYW5uZWRZaWVsZGluZ1BlcmlvZHMAEAQJAVBsYW5uZWQgeWllbGRpbmcgcGVyaW9kcyBpcyBsZXNzIHRoYW4gYE1pblBsYW5uZWRZaWVsZGluZ1BlcmlvZHNgLlBNYXhFbnRyaWVzUGVyRGVwb3NpdAARBLBNYXhpbXVtIG51bWJlciBvZiBsb2NrcyByZWFjaGVkIGZvciBkZXBvc2l0LihEb3VibGVMb2NrABIE4FRyeWluZyB0byBsb2NrIExQIHNoYXJlcyBpbnRvIGFscmVhZHkgbG9ja2VkIHlpZWxkIGZhcm0uWFlpZWxkRmFybUVudHJ5Tm90Rm91bmQAEwTEWWllbGQgZmFybSBlbnRyeSBkb2Vzbid0IGV4aXN0IGZvciBnaXZlbiBkZXBvc2l0LkBHbG9iYWxGYXJtSXNGdWxsABQISQFNYXggbnVtYmVyIG9mIHlpZWxkIGZhcm1zIGluIGdsb2JhbCBmYXJtIHdhcyByZWFjaGVkLiBHbG9iYWwgZmFybSBjYW4ndCBhY2NlcHQgbmV3+HlpZWxkIGZhcm1zIHVudGlsIHNvbWUgeWllbGQgZmFybSBpcyBub3QgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuREludmFsaWRNaW5EZXBvc2l0ABUEtEludmFsaWQgbWluLiBkZXBvc2l0IHdhcyBzZXQgZm9yIGdsb2JhbCBmYXJtLlhJbnZhbGlkUHJpY2VBZGp1c3RtZW50ABYEnFByaWNlIGFkanVzdG1lbnQgbXVsdGlwbGllciBjYW4ndCBiZSAwLkRFcnJvckdldEFjY291bnRJZAAXBIBBY2NvdW50IGNyZWF0aW9uIGZyb20gaWQgZmFpbGVkLlRJbmNvcnJlY3RWYWx1ZWRTaGFyZXMAGAQlAVZhbHVlIG9mIGRlcG9zaXRlZCBzaGFyZXMgYW1vdW50IGluIHJld2FyZCBjdXJyZW5jeSBpcyBiZWxsb3cgbWluLiBsaW1pdC5sUmV3YXJkQ3VycmVuY3lOb3RSZWdpc3RlcmVkABkE2GByZXdhcmRfY3VycmVuY3lgIGlzIG5vdCByZWdpc3RlcmVkIGluIGFzc2V0IHJlZ2lzdHJ5LnhJbmNlbnRpdml6ZWRBc3NldE5vdFJlZ2lzdGVyZWQAGgTkYGluY2VudGl2aXplZF9hc3NldGAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkuREFtbVBvb2xJZE1pc21hdGNoABsE9FByb3ZpZGVkIGBhbW1fcG9vbF9pZGAgZG9lc24ndCBtYXRjaCBkZXBvc2l0J3MgYGFtbV9wb29sX2lkYC5ESW5jb25zaXN0ZW50U3RhdGUEAKULAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yABwIZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQupQsMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldFhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAFERFlpZWxkRmFybU5vdEZvdW5kAAAASEdsb2JhbEZhcm1Ob3RGb3VuZAABAFBMaXF1aWRpdHlJc05vdEFjdGl2ZQACAFRHbG9iYWxGYXJtSXNOb3RBY3RpdmUAAwA8RGVwb3NpdE5vdEZvdW5kAAQANEludmFsaWRQZXJpb2QABQBsTm90RW5vdWdoUmV3YXJkc0luWWllbGRGYXJtAAYAZEludmFsaWRMaXZlWWllbEZhcm1zQ291bnQABwBsSW52YWxpZFRvdGFsWWllbGRGYXJtc0NvdW50AAgAcEludmFsaWRZaWVsZEZhcm1FbnRyaWVzQ291bnQACQBISW52YWxpZFRvdGFsU2hhcmVzAAoATEludmFsaWRWYWx1ZWRTaGFyZXMACwBMSW52YWxpZFRvdGFsU2hhcmVzWgAMAHRJbnZhbGlkUGFpZEFjY3VtdWxhdGVkUmV3YXJkcwANADRJbnZhbGlkRmFybUlkAA4AYEludmFsaWRMb3lhbHR5TXVsdGlwbGllcgAPAHBOb0V4aXN0ZW50aWFsRGVwb3NpdEZvckFzc2V0ABAAAKkLDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IEBFQAASQ0QXNzZXROb3RGb3VuZAAABHRBc3NldCBpcyBub3QgaW4gdGhlIG9tbmlwb29sLiRGb3JiaWRkZW4AAQSsU2lnbmVkIGFjY291bnQgaXMgbm90IG93bmVyIG9mIHRoZSBkZXBvc2l0LkhaZXJvQ2xhaW1lZFJld2FyZHMAAgRcUmV3YXJkcyB0byBjbGFpbSBhcmUgMC5ESW5jb25zaXN0ZW50U3RhdGUEAK0LAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAMIZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy5IT3JhY2xlTm90QXZhaWxhYmxlAAQEvE9yYWNsZSBjb3VsZCBub3QgYmUgZm91bmQgZm9yIHJlcXVlc3RlZCBhc3NldHMubFByaWNlQWRqdXN0bWVudE5vdEF2YWlsYWJsZQAFBDEBT3JhY2xlIHByb3ZpZGluZyBgcHJpY2VfYWRqdXN0bWVudGAgY291bGQgbm90IGJlIGZvdW5kIGZvciByZXF1ZXN0ZWQgYXNzZXRzLlhOb0Zhcm1FbnRyaWVzU3BlY2lmaWVkAAYEaE5vIGZhcm1zIHNwZWNpZmllZCB0byBqb2luRE5vQXNzZXRzU3BlY2lmaWVkAAcElE5vIGFzc2V0cyBzcGVjaWZpZWQgaW4gdGhlIHdpdGhkcmF3YWxIUG9zaXRpb25JZE1pc21hdGNoAAgEKQFUaGUgcHJvdmlkZWQgcG9zaXRpb25faWQgZG9lcyBub3QgbWF0Y2ggdGhlIGRlcG9zaXQncyBhc3NvY2lhdGVkIHBvc2l0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6tCwyAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0WEluY29uc2lzdGVudFN0YXRlRXJyb3IAAQhETWlzc2luZ0xwUG9zaXRpb24AAABMRGVwb3NpdERhdGFOb3RGb3VuZAABAACxCwgocGFsbGV0X290YxRPcmRlcggkQWNjb3VudElkAQAcQXNzZXRJZAEoABgBFG93bmVyAAEkQWNjb3VudElkAAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABSHBhcnRpYWxseV9maWxsYWJsZUQBEGJvb2wAALULDChwYWxsZXRfb3RjGHBhbGxldBRFcnJvcgQEVAABIEhBc3NldE5vdFJlZ2lzdGVyZWQAAASAQXNzZXQgZG9lcyBub3QgZXhpc3QgaW4gcmVnaXN0cnk0T3JkZXJOb3RGb3VuZAABBFRPcmRlciBjYW5ub3QgYmUgZm91bmRET3JkZXJJZE91dE9mQm91bmQAAgSIU2l6ZSBvZiBvcmRlciBJRCBleGNlZWRzIHRoZSBib3VuZGRPcmRlck5vdFBhcnRpYWxseUZpbGxhYmxlAAME+ENhbm5vdCBwYXJ0aWFsbHkgZmlsbCBhbiBvcmRlciB3aGljaCBpcyBub3QgcGFydGlhbGx5IGZpbGxhYmxlTE9yZGVyQW1vdW50VG9vU21hbGwABAxhAU9yZGVyIGFtb3VudF9pbiBhbmQgYW1vdW50X291dCBtdXN0IGF0IGFsbCB0aW1lcyBiZSBncmVhdGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXT0Zm9yIHRoZSBhc3NldCBtdWx0aXBsaWVkIGJ5IHRoZSBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyLvBBIGZpbGwgb3JkZXIgbWF5IG5vdCBsZWF2ZSBiZWhpbmQgYW1vdW50cyBzbWFsbGVyIHRoYW4gdGhpcy4kTWF0aEVycm9yAAUEcEVycm9yIHdpdGggbWF0aCBjYWxjdWxhdGlvbnMkRm9yYmlkZGVuAAYE6FRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGNvbXBsZXRlIHRoZSBhY3Rpb25oSW5zdWZmaWNpZW50UmVzZXJ2ZWRBbW91bnQABwR8UmVzZXJ2ZWQgYW1vdW50IG5vdCBzdWZmaWNpZW50LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC65CwhYcGFsbGV0X2NpcmN1aXRfYnJlYWtlckBUcmFkZVZvbHVtZUxpbWl0BARUAAAMASR2b2x1bWVfaW5AAShUOjpCYWxhbmNlAAEodm9sdW1lX291dEABKFQ6OkJhbGFuY2UAARRsaW1pdEABKFQ6OkJhbGFuY2UAAL0LCFhwYWxsZXRfY2lyY3VpdF9icmVha2VyOExpcXVpZGl0eUxpbWl0BARUAAAIASRsaXF1aWRpdHlAAShUOjpCYWxhbmNlAAEUbGltaXRAAShUOjpCYWxhbmNlAADBCwxYcGFsbGV0X2NpcmN1aXRfYnJlYWtlchR0eXBlczhMb2NrZG93blN0YXR1cwgsQmxvY2tOdW1iZXIBKBxCYWxhbmNlAUABCBhMb2NrZWQEACgBLEJsb2NrTnVtYmVyAAAAIFVubG9ja2VkBAA9AwFYKEJsb2NrTnVtYmVyLCBCYWxhbmNlKQABAADFCwAABAhAGADJCwxYcGFsbGV0X2NpcmN1aXRfYnJlYWtlchhwYWxsZXQURXJyb3IEBFQAATRESW52YWxpZExpbWl0VmFsdWUAAATISW52YWxpZCB2YWx1ZSBmb3IgYSBsaW1pdC4gTGltaXQgbXVzdCBiZSBub24temVyby58TGlxdWlkaXR5TGltaXROb3RTdG9yZWRGb3JBc3NldAABBLxBbGxvd2VkIGxpcXVpZGl0eSBsaW1pdCBpcyBub3Qgc3RvcmVkIGZvciBhc3NldGBUb2tlbk91dGZsb3dMaW1pdFJlYWNoZWQAAgS4VG9rZW4gdHJhZGUgb3V0ZmxvdyBwZXIgYmxvY2sgaGFzIGJlZW4gcmVhY2hlZFxUb2tlbkluZmx1eExpbWl0UmVhY2hlZAADBLRUb2tlbiB0cmFkZSBpbmZsdXggcGVyIGJsb2NrIGhhcyBiZWVuIHJlYWNoZWSATWF4TGlxdWlkaXR5TGltaXRQZXJCbG9ja1JlYWNoZWQABATkTWF4aW11bSBwb29sJ3MgbGlxdWlkaXR5IGxpbWl0IHBlciBibG9jayBoYXMgYmVlbiByZWFjaGVkKE5vdEFsbG93ZWQABQSQQXNzZXQgaXMgbm90IGFsbG93ZWQgdG8gaGF2ZSBhIGxpbWl0PEFzc2V0SW5Mb2NrZG93bgAGDDkBQXNzZXQgc3RpbGwgaW4gbG9ja2Rvd24gYXMgaXQgcmVhY2hlZCB0aGUgYWxsb3dlZCBkZXBvc2l0IGxpbWl0IGZvciB0aGUgcGVyaW9kcQFRdWVyeSB0aGUgYGFzc2V0X2xvY2tkb3duX3N0YXRlYCBzdG9yYWdlIHRvIGRldGVybWluZSB1bnRpbCB3aGljaCBibG9jayB0aGUgYXNzZXQgaXMgbG9ja2VkLLhzbyB0aGF0IHRoZSBkZXBvc2l0IGNhbiBiZSByZWxlYXNlZCBhZnRlcndhcmQuSEFzc2V0Tm90SW5Mb2NrZG93bgAHBGhBc3NldCBpcyBub3QgaW4gYSBsb2NrZG93bjRJbnZhbGlkQW1vdW50AAgEeEludmFsaWQgYW1vdW50IHRvIHNhdmUgZGVwb3NpdKREZXBvc2l0TGltaXRFeGNlZWRlZEZvcldoaXRlbGlzdGVkQWNjb3VudAAJCOhEZXBvc2l0IGxpbWl0IHdvdWxkIGJlIGV4Y2VlZGVkIGZvciBhIHdoaXRlbGlzdGVkIGFjY291bnQuEQFPcGVyYXRpb24gcmVqZWN0ZWQgdG8gcHJldmVudCBmdW5kcyBiZWluZyBsb2NrZWQgb24gc3lzdGVtIGFjY291bnRzLlhXaXRoZHJhd0xvY2tkb3duQWN0aXZlAAoEbQFHbG9iYWwgbG9ja2Rvd24gaXMgYWN0aXZlIGFuZCB3aXRoZHJhd2FscyB0aGF0IHBhcnRpY2lwYXRlIGluIHRoZSBnbG9iYWwgbGltaXQgYXJlIGJsb2NrZWQubEdsb2JhbFdpdGhkcmF3TGltaXRFeGNlZWRlZAALBLUBQXBwbHlpbmcgdGhlIGluY3JlbWVudCB3b3VsZCBleGNlZWQgdGhlIGNvbmZpZ3VyZWQgZ2xvYmFsIGxpbWl0IC0+IGxvY2tkb3duIGlzIHRyaWdnZXJlZCBhbmQgb3BlcmF0aW9uIGZhaWxzLlBGYWlsZWRUb0NvbnZlcnRBc3NldAAMBPBBc3NldCB0byB3aXRoZHJhdyBjYW5ub3QgYmUgY29udmVydGVkIHRvIHJlZmVyZW5jZSBjdXJyZW5jeS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuzQsMVHBhbGxldF9yb3V0ZV9leGVjdXRvchhwYWxsZXQURXJyb3IEBFQAAShMVHJhZGluZ0xpbWl0UmVhY2hlZAAABIhUaGUgdHJhZGluZyBsaW1pdCBoYXMgYmVlbiByZWFjaGVkRE1heFRyYWRlc0V4Y2VlZGVkAAEEtFRoZSB0aGUgbWF4IG51bWJlciBvZiB0cmFkZXMgbGltaXQgaXMgcmVhY2hlZEBQb29sTm90U3VwcG9ydGVkAAIEyFRoZSBBTU0gcG9vbCBpcyBub3Qgc3VwcG9ydGVkIGZvciBleGVjdXRpbmcgdHJhZGVzTEluc3VmZmljaWVudEJhbGFuY2UAAwTQVGhlIHVzZXIgaGFzIG5vdCBlbm91Z2ggYmFsYW5jZSB0byBleGVjdXRlIHRoZSB0cmFkZVhSb3V0ZUNhbGN1bGF0aW9uRmFpbGVkAAQEDQFUaGUgY2FsY3VsYXRpb24gb2Ygcm91dGUgdHJhZGUgYW1vdW50cyBmYWlsZWQgaW4gdGhlIHVuZGVybHlpbmcgQU1NMEludmFsaWRSb3V0ZQAFBFBUaGUgcm91dGUgaXMgaW52YWxpZGhSb3V0ZVVwZGF0ZUlzTm90U3VjY2Vzc2Z1bAAGBIxUaGUgcm91dGUgdXBkYXRlIHdhcyBub3Qgc3VjY2Vzc2Z1bEBSb3V0ZUhhc05vT3JhY2xlAAcEtFJvdXRlIGNvbnRhaW5zIGFzc2V0cyB0aGF0IGhhcyBubyBvcmFjbGUgZGF0YVRJbnZhbGlkUm91dGVFeGVjdXRpb24ACATAVGhlIHJvdXRlIGV4ZWN1dGlvbiBmYWlsZWQgaW4gdGhlIHVuZGVybHlpbmcgQU1NKE5vdEFsbG93ZWQACQSMVHJhZGluZyBzYW1lIGFzc2V0cyBpcyBub3QgYWxsb3dlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu0QsMTHBhbGxldF9keW5hbWljX2ZlZXMUdHlwZXMgRmVlRW50cnkIDEZlZQF1AhRCbG9jawEoAAwBJGFzc2V0X2ZlZXUCAQxGZWUAATBwcm90b2NvbF9mZWV1AgEMRmVlAAEkdGltZXN0YW1wKAEUQmxvY2sAANULDExwYWxsZXRfZHluYW1pY19mZWVzGHBhbGxldBRFcnJvcgQEVAABBFBJbnZhbGlkRmVlUGFyYW1ldGVycwAABHxJbnZhbGlkIGZlZSBwYXJhbWV0ZXJzIHByb3ZpZGVkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkLDDhwYWxsZXRfc3Rha2luZxR0eXBlcyxTdGFraW5nRGF0YQAADAEsdG90YWxfc3Rha2VAARxCYWxhbmNlAAFwYWNjdW11bGF0ZWRfcmV3YXJkX3Blcl9zdGFrZVQBJEZpeGVkVTEyOAABUHBvdF9yZXNlcnZlZF9iYWxhbmNlQAEcQmFsYW5jZQAA3QsMOHBhbGxldF9zdGFraW5nFHR5cGVzIFBvc2l0aW9uBCxCbG9ja051bWJlcgEoABwBFHN0YWtlQAEcQmFsYW5jZQABNGFjdGlvbl9wb2ludHNAARRQb2ludAABQHJld2FyZF9wZXJfc3Rha2VUASRGaXhlZFUxMjgAAShjcmVhdGVkX2F0KAEsQmxvY2tOdW1iZXIAAWBhY2N1bXVsYXRlZF9zbGFzaF9wb2ludHNAARRQb2ludAABaGFjY3VtdWxhdGVkX3VucGFpZF9yZXdhcmRzQAEcQmFsYW5jZQABaGFjY3VtdWxhdGVkX2xvY2tlZF9yZXdhcmRzQAEcQmFsYW5jZQAA4QsMOHBhbGxldF9zdGFraW5nFHR5cGVzGFZvdGluZwQgTWF4Vm90ZXMAAAQBFHZvdGVz5QsBtEJvdW5kZWRWZWM8KFJlZmVyZW5kdW1JbmRleCwgVm90ZSksIE1heFZvdGVzPgAA5QsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHpCwRTAAAEAPULARhWZWM8VD4AAOkLAAAECCjtCwDtCww4cGFsbGV0X3N0YWtpbmcUdHlwZXMQVm90ZQAACAEYYW1vdW50QAEcQmFsYW5jZQABKGNvbnZpY3Rpb27xCwEoQ29udmljdGlvbgAA8QsMOHBhbGxldF9zdGFraW5nFHR5cGVzKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAAD1CwAAAukLAPkLAAAECAAoAP0LDDhwYWxsZXRfc3Rha2luZxhwYWxsZXQURXJyb3IEBFQAATxMSW5zdWZmaWNpZW50QmFsYW5jZQAABExCYWxhbmNlIGlzIHRvbyBsb3cuREluc3VmZmljaWVudFN0YWtlAAEEZFN0YWtlZCBhbW91bnQgaXMgdG9vIGxvdy5AUG9zaXRpb25Ob3RGb3VuZAACBJBTdGFraW5nIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBmb3VuZC48TWF4Vm90ZXNSZWFjaGVkAAME6E1heGltdW0gYW1vdW50IG9mIHZvdGVzIHdlcmUgcmVhY2hlZCBmb3Igc3Rha2luZyBwb3NpdGlvbi44Tm90SW5pdGlhbGl6ZWQABARsU3Rha2luZyBpcyBub3QgaW5pdGlhbGl6ZWQuSEFscmVhZHlJbml0aWFsaXplZAAFBHxTdGFraW5nIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuKEFyaXRobWV0aWMABgREQXJpdGhtZXRpYyBlcnJvci5ETWlzc2luZ1BvdEJhbGFuY2UABwRYUG90J3MgYmFsYW5jZSBpcyB6ZXJvLlRQb3NpdGlvbkFscmVhZHlFeGlzdHMACASIQWNjb3VudCdzIHBvc2l0aW9uIGFscmVhZHkgZXhpc3RzLiRGb3JiaWRkZW4ACQS8U2lnbmVyIGlzIG5vdCBhbiBvd25lciBvZiB0aGUgc3Rha2luZyBwb3NpdGlvbi40RXhpc3RpbmdWb3RlcwAKBIxQb3NpdGlvbiBjb250YWlucyByZWdpc3RlcmVkIHZvdGVzLlhFeGlzdGluZ1Byb2Nlc3NlZFZvdGVzAAsEhQFQb3NpdGlvbiBjb250YWlucyBwcm9jZXNzZWQgdm90ZXMuIFJlbW92ZWQgdGhlc2Ugdm90ZXMgZmlyc3QgYmVmb3JlIGluY3JlYXNpbmcgc3Rha2Ugb3IgY2xhaW1pbmcuSEFjdGl2ZVZvdGVzT25nb2luZwAMDBEBUmV0YWluZWQgZm9yIEFQSS9lcnJvci1pbmRleCBzdGFiaWxpdHkuIE5vIGxvbmdlciBlbWl0dGVkOiBtaWdyYXRpb24dAShgZm9yY2VfdW5zdGFrZWApIG5vdyByZWZ1c2VzIGFueSByZWdpc3RlcmVkIHZvdGUgd2l0aCBgRXhpc3RpbmdWb3Rlc2AssG1hdGNoaW5nIHRoZSByZWd1bGFyIGB1bnN0YWtlYCBwcmVjb25kaXRpb24uVEJsb2NrZWRCeUV4dGVybmFsTG9jawANDPBDYWxsZXIncyBIRFggaXMgY2xhaW1lZCBieSBhbm90aGVyIHBhbGxldCAoZS5nLiBgZ2hkeGxvY2tgKS4NAVN0cmljdCBwb2xpY3k6IGxlZ2FjeSBzdGFraW5nIHJlZnVzZXMgYW55IEhEWCBiYWNraW5nIHRoYXQgb3ZlcmxhcHOYd2l0aCBhIG5vbi13aGl0ZWxpc3RlZCBsb2NrIGVsc2V3aGVyZS5ESW5jb25zaXN0ZW50U3RhdGUEAAEMAVhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAA4IZQFBY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZCBiZWNhdXNlIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZGB0byBwcm90b2NvbCBtYWludGFpbmVycy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuAQwMOHBhbGxldF9zdGFraW5nGHBhbGxldFhJbmNvbnNpc3RlbnRTdGF0ZUVycm9yAAEUQFBvc2l0aW9uTm90Rm91bmQAAABYTmVnYXRpdmVQZW5kaW5nUmV3YXJkcwABAFROZWdhdGl2ZVVucGFpZFJld2FyZHMAAgBAVG9vTWFueVBvc2l0aW9ucwADAChBcml0aG1ldGljAAQAAAUMDERwYWxsZXRfc3RhYmxlc3dhcBR0eXBlcyBQb29sSW5mbwgcQXNzZXRJZAEoLEJsb2NrTnVtYmVyASgAGAEYYXNzZXRzDQMBxEJvdW5kZWRWZWM8QXNzZXRJZCwgQ29uc3RVMzI8TUFYX0FTU0VUU19JTl9QT09MPj4AAVRpbml0aWFsX2FtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABTGZpbmFsX2FtcGxpZmljYXRpb27lBwEoTm9uWmVyb1UxNgABNGluaXRpYWxfYmxvY2soASxCbG9ja051bWJlcgABLGZpbmFsX2Jsb2NrKAEsQmxvY2tOdW1iZXIAAQxmZWV1AgEcUGVybWlsbAAACQwMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzMFBvb2xTbmFwc2hvdAQcQXNzZXRJZAEoABwBGGFzc2V0cw0DAcRCb3VuZGVkVmVjPEFzc2V0SWQsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAEgcmVzZXJ2ZXMNDAHYQm91bmRlZFZlYzxBc3NldFJlc2VydmUsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAE0YW1wbGlmaWNhdGlvbkABEHUxMjgAAQxmZWV1AgEcUGVybWlsbAABJGJsb2NrX2ZlZXUCARxQZXJtaWxsAAEQcGVnc/EHAcRCb3VuZGVkVmVjPFBlZ1R5cGUsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAE4c2hhcmVfaXNzdWFuY2VAARxCYWxhbmNlAAANDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAREMBFMAAAQAFQwBGFZlYzxUPgAAEQwQNGh5ZHJhX2R4X21hdGgoc3RhYmxlc3dhcBR0eXBlczBBc3NldFJlc2VydmUAAAgBGGFtb3VudEABHEJhbGFuY2UAASBkZWNpbWFscwgBCHU4AAAVDAAAAhEMABkMBDhSYW5nZUluY2x1c2l2ZQQMSWR4AeUHAAgBFHN0YXJ05QcBDElkeAABDGVuZOUHAQxJZHgAAB0MDERwYWxsZXRfc3RhYmxlc3dhcBhwYWxsZXQURXJyb3IEBFQAAYQ8SW5jb3JyZWN0QXNzZXRzAAAEGQFDcmVhdGluZyBhIHBvb2wgd2l0aCBzYW1lIGFzc2V0cyBvciBsZXNzIHRoYW4gMiBhc3NldHMgaXMgbm90IGFsbG93ZWQuRE1heEFzc2V0c0V4Y2VlZGVkAAEErE1heGltdW0gbnVtYmVyIG9mIGFzc2V0cyBoYXMgYmVlbiBleGNlZWRlZC4wUG9vbE5vdEZvdW5kAAIEoEEgcG9vbCB3aXRoIGdpdmVuIGFzc2V0cyBkb2VzIG5vdCBleGlzdC4oUG9vbEV4aXN0cwADBKBBIHBvb2wgd2l0aCBnaXZlbiBhc3NldHMgYWxyZWFkeSBleGlzdHMuOEFzc2V0Tm90SW5Qb29sAAQEZEFzc2V0IGlzIG5vdCBpbiB0aGUgcG9vbC5cU2hhcmVBc3NldE5vdFJlZ2lzdGVyZWQABQSoU2hhcmUgYXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gUmVnaXN0cnkuWFNoYXJlQXNzZXRJblBvb2xBc3NldHMABgTIU2hhcmUgYXNzZXQgaXMgYW1vdW50IGFzc2V0cyB3aGVuIGNyZWF0aW5nIGEgcG9vbC5IQXNzZXROb3RSZWdpc3RlcmVkAAcE2E9uZSBvciBtb3JlIGFzc2V0cyBhcmUgbm90IHJlZ2lzdGVyZWQgaW4gQXNzZXRSZWdpc3RyeUhJbnZhbGlkQXNzZXRBbW91bnQACAQBAUludmFsaWQgYXNzZXQgYW1vdW50IHByb3ZpZGVkLiBBbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby5MSW5zdWZmaWNpZW50QmFsYW5jZQAJBORCYWxhbmNlIG9mIGFuIGFzc2V0IGlzIG5vdCBzdWZmaWNpZW50IHRvIHBlcmZvcm0gYSB0cmFkZS5ISW5zdWZmaWNpZW50U2hhcmVzAAoEBQFCYWxhbmNlIG9mIGEgc2hhcmUgYXNzZXQgaXMgbm90IHN1ZmZpY2llbnQgdG8gd2l0aGRyYXcgbGlxdWlkaXR5LlRJbnN1ZmZpY2llbnRMaXF1aWRpdHkACwS8TGlxdWlkaXR5IGhhcyBub3QgcmVhY2hlZCB0aGUgcmVxdWlyZWQgbWluaW11bS54SW5zdWZmaWNpZW50TGlxdWlkaXR5UmVtYWluaW5nAAwE5Eluc3VmZmljaWVudCBsaXF1aWRpdHkgbGVmdCBpbiB0aGUgcG9vbCBhZnRlciB3aXRoZHJhd2FsLmRJbnN1ZmZpY2llbnRUcmFkaW5nQW1vdW50AA0E6EFtb3VudCBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gdHJhZGluZyBhbW91bnQgY29uZmlndXJlZC5IQnV5TGltaXROb3RSZWFjaGVkAA4EwE1pbmltdW0gbGltaXQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgZHVyaW5nIHRyYWRlLkRTZWxsTGltaXRFeGNlZWRlZAAPBLRNYXhpbXVtIGxpbWl0IGhhcyBiZWVuIGV4Y2VlZGVkIGR1cmluZyB0cmFkZS5cSW52YWxpZEluaXRpYWxMaXF1aWRpdHkAEAScSW5pdGlhbCBsaXF1aWRpdHkgb2YgYXNzZXQgbXVzdCBiZSA+IDAuUEludmFsaWRBbXBsaWZpY2F0aW9uABEEqEFtcGxpZmljYXRpb24gaXMgb3V0c2lkZSBjb25maWd1cmVkIHJhbmdlLmBJbnN1ZmZpY2llbnRTaGFyZUJhbGFuY2UAEgQZAVJlbWFpbmluZyBiYWxhbmNlIG9mIHNoYXJlIGFzc2V0IGlzIGJlbG93IGFzc2V0J3MgZXhpc3RlbnRpYWwgZGVwb3NpdC4oTm90QWxsb3dlZAATBMxOb3QgYWxsb3dlZCB0byBwZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiBnaXZlbiBhc3NldC4kUGFzdEJsb2NrABQEjEZ1dHVyZSBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuRFNhbWVBbXBsaWZpY2F0aW9uABUExE5ldyBhbXBsaWZpY2F0aW9uIGlzIGVxdWFsIHRvIHRoZSBwcmV2aW91cyB2YWx1ZS40U2xpcHBhZ2VMaW1pdAAWBFBTbGlwcGFnZSBwcm90ZWN0aW9uLjxVbmtub3duRGVjaW1hbHMAFwSIRmFpbGVkIHRvIHJldHJpZXZlIGFzc2V0IGRlY2ltYWxzLlBJbmNvcnJlY3RJbml0aWFsUGVncwAYBIxMaXN0IG9mIHByb3ZpZGVkIHBlZ3MgaXMgaW5jb3JyZWN0LlhNaXNzaW5nVGFyZ2V0UGVnT3JhY2xlABkEgEZhaWxlZCB0byByZXRyaWV2ZSBvcmFjbGUgZW50cnkuWEluY29ycmVjdEFzc2V0RGVjaW1hbHMAGgQlAUNyZWF0aW5nIHBvb2wgd2l0aCBwZWdzIGlzIG5vdCBhbGxvd2VkIGZvciBhc3NldCB3aXRoIGRpZmZlcmVudCBkZWNpbWFscy4sTm9QZWdTb3VyY2UAGwSMUG9vbCBkb2VzIG5vdCBoYXZlIHBlZ3MgY29uZmlndXJlZC40WmVyb0Ftb3VudE91dAAcBJhUcmFkZSB3b3VsZCByZXN1bHQgaW4gemVybyBhbW91bnQgb3V0LjBaZXJvQW1vdW50SW4AHQSUVHJhZGUgd291bGQgcmVzdWx0IGluIHplcm8gYW1vdW50IGluLjhJbnZhcmlhbnRFcnJvcgAeBPRJbnZhcmlhbnQgY2hlY2sgZmFpbGVkIGluc2lkZSBhIHRyYWRlIG9yIGxpcXVpZGl0eSBvcGVyYXRpb24uZEluc3VmZmljaWVudFNoYXJlSXNzdWFuY2UAHwQNAUF0dGVtcHQgdG8gYnVybiBtb3JlIHNoYXJlcyB0aGFuIHRoZSBwb29sJ3MgdHJhY2tlZCBzaGFyZSBpc3N1YW5jZS5gVW5hY2NvdW50ZWRTaGFyZUlzc3VhbmNlACAEqQFUb3RhbCBpc3N1YW5jZSBvZiBwb29sIHNoYXJlcyBleGNlZWRzIHRoZSBwYWxsZXQtdHJhY2tlZCBpc3N1YW5jZSAtIHNoYXJlcyB3ZXJlIG1pbnRlZCBvdXRzaWRlIHRoZSBwYWxsZXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiEMAAAECCgYACUMDDBwYWxsZXRfYm9uZHMYcGFsbGV0FEVycm9yBARUAAEcNE5vdFJlZ2lzdGVyZWQAAARMQm9uZCBub3QgcmVnaXN0ZXJlZCROb3RNYXR1cmUAAQRIQm9uZCBpcyBub3QgbWF0dXJlPEludmFsaWRNYXR1cml0eQACBGBNYXR1cml0eSBub3QgbG9uZyBlbm91Z2g8RGlzYWxsb3dlZEFzc2V0AAMErEFzc2V0IHR5cGUgbm90IGFsbG93ZWQgZm9yIHVuZGVybHlpbmcgYXNzZXQ0QXNzZXROb3RGb3VuZAAEBKhBc3NldCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBgQXNzZXRSZWdpc3RyeWA8SW52YWxpZEJvbmROYW1lAAUEcEdlbmVyYXRlZCBuYW1lIGlzIG5vdCB2YWxpZC48RmFpbFRvUGFyc2VOYW1lAAYEmEJvbmQncyBuYW1lIHBhcnNpbmcgd2FzIG5vdyBzdWNjZXNzZnVsBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LikMDFhwYWxsZXRfb3RjX3NldHRsZW1lbnRzGHBhbGxldBRFcnJvcgQEVAABHDRPcmRlck5vdEZvdW5kAAAETE90YyBvcmRlciBub3QgZm91bmRQTm90UGFydGlhbGx5RmlsbGFibGUAAQSMT1RDIG9yZGVyIGlzIG5vdCBwYXJ0aWFsbHkgZmlsbGFibGUwSW52YWxpZFJvdXRlAAIEvFByb3ZpZGVkIHJvdXRlIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4aXN0aW5nIHJvdXRlUEJhbGFuY2VJbmNvbnNpc3RlbmN5AAMEnEluaXRpYWwgYW5kIGZpbmFsIGJhbGFuY2UgYXJlIGRpZmZlcmVudEhUcmFkZUFtb3VudFRvb0hpZ2gABASIVHJhZGUgYW1vdW50IGhpZ2hlciB0aGFuIG5lY2Vzc2FyeURUcmFkZUFtb3VudFRvb0xvdwAFBIRUcmFkZSBhbW91bnQgbG93ZXIgdGhhbiBuZWNlc3NhcnlEUHJpY2VOb3RBdmFpbGFibGUABgSIUHJpY2UgZm9yIGEgcm91dGUgaXMgbm90IGF2YWlsYWJsZQSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tDAwocGFsbGV0X2xicBhwYWxsZXQURXJyb3IEBFQAAVx4Q2Fubm90Q3JlYXRlUG9vbFdpdGhTYW1lQXNzZXRzAAAEfFBvb2wgYXNzZXRzIGNhbiBub3QgYmUgdGhlIHNhbWUgTm90T3duZXIAAQRsQWNjb3VudCBpcyBub3QgYSBwb29sIG93bmVyLFNhbGVTdGFydGVkAAIEUFNhbGUgYWxyZWFkeSBzdGFydGVkMFNhbGVOb3RFbmRlZAADBGRTYWxlIGlzIHN0aWxsIGluIHByb2dyZXNzQFNhbGVJc05vdFJ1bm5pbmcABARMU2FsZSBpcyBub3QgcnVubmluZ1xNYXhTYWxlRHVyYXRpb25FeGNlZWRlZAAFBGRTYWxlIGR1cmF0aW9uIGlzIHRvbyBsb25nWENhbm5vdEFkZFplcm9MaXF1aWRpdHkABgSgTGlxdWlkaXR5IGJlaW5nIGFkZGVkIHNob3VsZCBub3QgYmUgemVyb2BJbnN1ZmZpY2llbnRBc3NldEJhbGFuY2UABwRUQXNzZXQgYmFsYW5jZSB0b28gbG93MFBvb2xOb3RGb3VuZAAIBExQb29sIGRvZXMgbm90IGV4aXN0RFBvb2xBbHJlYWR5RXhpc3RzAAkEdFBvb2wgaGFzIGJlZW4gYWxyZWFkeSBjcmVhdGVkREludmFsaWRCbG9ja1JhbmdlAAoETEludmFsaWQgYmxvY2sgcmFuZ2VYV2VpZ2h0Q2FsY3VsYXRpb25FcnJvcgALBERDYWxjdWxhdGlvbiBlcnJvcjRJbnZhbGlkV2VpZ2h0AAwEaFdlaWdodCBzZXQgaXMgb3V0IG9mIHJhbmdlKFplcm9BbW91bnQADQSgQ2FuIG5vdCBwZXJmb3JtIGEgdHJhZGUgd2l0aCB6ZXJvIGFtb3VudEhNYXhJblJhdGlvRXhjZWVkZWQADgRgVHJhZGUgYW1vdW50IGlzIHRvbyBoaWdoTE1heE91dFJhdGlvRXhjZWVkZWQADwRgVHJhZGUgYW1vdW50IGlzIHRvbyBoaWdoQEZlZUFtb3VudEludmFsaWQAEARISW52YWxpZCBmZWUgYW1vdW50TFRyYWRpbmdMaW1pdFJlYWNoZWQAEQRUVHJhZGluZyBsaW1pdCByZWFjaGVkIE92ZXJmbG93ABIEnEFuIHVuZXhwZWN0ZWQgaW50ZWdlciBvdmVyZmxvdyBvY2N1cnJlZDxOb3RoaW5nVG9VcGRhdGUAEwRETm90aGluZyB0byB1cGRhdGVUSW5zdWZmaWNpZW50TGlxdWlkaXR5ABQEvExpcXVpZGl0eSBoYXMgbm90IHJlYWNoZWQgdGhlIHJlcXVpcmVkIG1pbmltdW0uZEluc3VmZmljaWVudFRyYWRpbmdBbW91bnQAFQSoQW1vdW50IGlzIGxlc3MgdGhhbiBtaW5pbXVtIHRyYWRpbmcgbGltaXQugEZlZUNvbGxlY3RvcldpdGhBc3NldEFscmVhZHlVc2VkABYEsE5vdCBtb3JlIHRoYW4gb25lIGZlZSBjb2xsZWN0b3IgcGVyIGFzc2V0IGlkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LjEMDChwYWxsZXRfeHlrGHBhbGxldBRFcnJvcgQEVAABXHhDYW5ub3RDcmVhdGVQb29sV2l0aFNhbWVBc3NldHMAAATcSXQgaXMgbm90IGFsbG93ZWQgdG8gY3JlYXRlIGEgcG9vbCBiZXR3ZWVuIHNhbWUgYXNzZXRzLlRJbnN1ZmZpY2llbnRMaXF1aWRpdHkAAQS8TGlxdWlkaXR5IGhhcyBub3QgcmVhY2hlZCB0aGUgcmVxdWlyZWQgbWluaW11bS5kSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAACBJhBbW91bnQgaXMgbGVzcyB0aGFuIG1pbiB0cmFkaW5nIGxpbWl0LjRaZXJvTGlxdWlkaXR5AAMESExpcXVpZGl0eSBpcyB6ZXJvLlhJbnZhbGlkTWludGVkTGlxdWlkaXR5AAQEIE92ZXJmbG93WEludmFsaWRMaXF1aWRpdHlBbW91bnQABQQgT3ZlcmZsb3dgQXNzZXRBbW91bnRFeGNlZWRlZExpbWl0AAYEmEFzc2V0IGFtb3VudCBoYXMgZXhjZWVkZWQgZ2l2ZW4gbGltaXQuaEFzc2V0QW1vdW50Tm90UmVhY2hlZExpbWl0AAcEpEFzc2V0IGFtb3VudCBoYXMgbm90IHJlYWNoZWQgZ2l2ZW4gbGltaXQuYEluc3VmZmljaWVudEFzc2V0QmFsYW5jZQAIBIBBc3NldCBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LnBJbnN1ZmZpY2llbnRQb29sQXNzZXRCYWxhbmNlAAkEnE5vdCBlbm91Z2ggYXNzZXQgbGlxdWlkaXR5IGluIHRoZSBwb29sLoRJbnN1ZmZpY2llbnROYXRpdmVDdXJyZW5jeUJhbGFuY2UACgSwTm90IGVub3VnaCBjb3JlIGFzc2V0IGxpcXVpZGl0eSBpbiB0aGUgcG9vbC5EVG9rZW5Qb29sTm90Rm91bmQACwS8TGlxdWlkaXR5IHBvb2wgZm9yIGdpdmVuIGFzc2V0cyBkb2VzIG5vdCBleGlzdC5YVG9rZW5Qb29sQWxyZWFkeUV4aXN0cwAMBLxMaXF1aWRpdHkgcG9vbCBmb3IgZ2l2ZW4gYXNzZXRzIGFscmVhZHkgZXhpc3RzLlRBZGRBc3NldEFtb3VudEludmFsaWQADQQgT3ZlcmZsb3dgUmVtb3ZlQXNzZXRBbW91bnRJbnZhbGlkAA4EIE92ZXJmbG93WFNlbGxBc3NldEFtb3VudEludmFsaWQADwQgT3ZlcmZsb3dUQnV5QXNzZXRBbW91bnRJbnZhbGlkABAEIE92ZXJmbG93QEZlZUFtb3VudEludmFsaWQAEQQgT3ZlcmZsb3dMTWF4T3V0UmF0aW9FeGNlZWRlZAASBBEBTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gYnV5IGluIHNpbmdsZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBleGNlZWRlZC5ITWF4SW5SYXRpb0V4Y2VlZGVkABMEFQFNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBleGNlZWRlZC4gT3ZlcmZsb3cAFAQgT3ZlcmZsb3dAQ2Fubm90Q3JlYXRlUG9vbAAVBLhQb29sIGNhbm5vdCBiZSBjcmVhdGVkIGR1ZSB0byBvdXRzaWRlIGZhY3RvcnMuNFNsaXBwYWdlTGltaXQAFgRQU2xpcHBhZ2UgcHJvdGVjdGlvbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuNQwAAAQITQNAADkMAAAECChNAwA9DAAABAwoQAAAQQwMQHBhbGxldF9yZWZlcnJhbHMYcGFsbGV0FEVycm9yBARUAAE4HFRvb0xvbmcAAARoUmVmZXJyYWwgY29kZSBpcyB0b28gbG9uZy4gVG9vU2hvcnQAAQRsUmVmZXJyYWwgY29kZSBpcyB0b28gc2hvcnQuQEludmFsaWRDaGFyYWN0ZXIAAgRNAVJlZmVycmFsIGNvZGUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIuIE9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQuNEFscmVhZHlFeGlzdHMAAwR0UmVmZXJyYWwgY29kZSBhbHJlYWR5IGV4aXN0cy4sSW52YWxpZENvZGUABAQhAVByb3ZpZGVkIHJlZmVycmFsIGNvZGUgaXMgaW52YWxpZC4gRWl0aGVyIGRvZXMgbm90IGV4aXN0IG9yIGlzIHRvbyBsb25nLjRBbHJlYWR5TGlua2VkAAUE2EFjY291bnQgaXMgYWxyZWFkeSBsaW5rZWQgdG8gYW5vdGhlciByZWZlcnJhbCBhY2NvdW50LihaZXJvQW1vdW50AAYEyE5vdGhpbmcgaW4gdGhlIHJlZmVycmFsIHBvdCBhY2NvdW50IGZvciB0aGUgYXNzZXQuOExpbmtOb3RBbGxvd2VkAAcE/ExpbmtpbmcgYW4gYWNjb3VudCB0byB0aGUgc2FtZSByZWZlcnJhbCBhY2NvdW50IGlzIG5vdCBhbGxvd2VkLmhJbmNvcnJlY3RSZXdhcmRDYWxjdWxhdGlvbgAIBJEBQ2FsY3VsYXRlZCByZXdhcmRzIGFyZSBtb3JlIHRoYW4gdGhlIGZlZSBhbW91bnQuIFRoaXMgY2FuIGhhcHBlbiBpZiBwZXJjZW50YWdlcyBhcmUgaW5jb3JyZWN0bHkgc2V0LmRJbmNvcnJlY3RSZXdhcmRQZXJjZW50YWdlAAkE7EdpdmVuIHJlZmVycmVyIGFuZCB0cmFkZXIgcGVyY2VudGFnZXMgZXhjZWVkcyAxMDAlIHBlcmNlbnQuREFscmVhZHlSZWdpc3RlcmVkAAoEqFRoZSBhY2NvdW50IGhhcyBhbHJlYWR5IGEgY29kZSByZWdpc3RlcmVkLjRQcmljZU5vdEZvdW5kAAsElFByaWNlIGZvciBnaXZlbiBhc3NldCBwYWlyIG5vdCBmb3VuZC6QQ29udmVyc2lvbk1pblRyYWRpbmdBbW91bnROb3RSZWFjaGVkAAwE7E1pbmltdW0gdHJhZGluZyBhbW91bnQgZm9yIGNvbnZlcnNpb24gaGFzIG5vdCBiZWVuIHJlYWNoZWQucENvbnZlcnNpb25aZXJvQW1vdW50UmVjZWl2ZWQADQSUWmVybyBhbW91bnQgcmVjZWl2ZWQgZnJvbSBjb252ZXJzaW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5FDAxIcGFsbGV0X2xpcXVpZGF0aW9uGHBhbGxldBRFcnJvcgQEVAABRFRBc3NldENvbnZlcnNpb25GYWlsZWQAAASgQXNzZXRJZCB0byBFVk0gYWRkcmVzcyBjb252ZXJzaW9uIGZhaWxlZFRMaXF1aWRhdGlvbkNhbGxGYWlsZWQAAQRcTGlxdWlkYXRpb24gY2FsbCBmYWlsZWQwSW52YWxpZFJvdXRlAAIEvFByb3ZpZGVkIHJvdXRlIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4aXN0aW5nIHJvdXRlNE5vdFByb2ZpdGFibGUAAwTkTGlxdWlkYXRpb24gd2FzIG5vdCBwcm9maXRhYmxlIGVub3VnaCB0byByZXBheSBmbGFzaCBsb2FuREZsYXNoTWludGVyTm90U2V0AAQEOQFGbGFzaCBtaW50ZXIgY29udHJhY3QgYWRkcmVzcyBub3Qgc2V0LiBJdCBpcyByZXF1aXJlZCBmb3IgSG9sbGFyIGxpcXVpZGF0aW9ucy5YSW52YWxpZExpcXVpZGF0aW9uRGF0YQAFBIRJbnZhbGlkIGxpcXVpZGF0aW9uIGRhdGEgcHJvdmlkZWRQVW5zdXBwb3J0ZWREZWJ0QXNzZXQABgS4R2lnYWhkeCBsaXF1aWRhdGlvbiBvbmx5IHN1cHBvcnRzIEhPTExBUiBkZWJ0LkROb0dpZ2FIZHhQb3NpdGlvbgAHBKBCb3Jyb3dlciBoYXMgbm8gYWN0aXZlIGdpZ2FoZHggcG9zaXRpb24uSFJlYWxpemVZaWVsZEZhaWxlZAAIBB0BUmVhbGl6aW5nIHRoZSBib3Jyb3dlcidzIGFjY3J1ZWQgZ2lnYWhkeCB5aWVsZCBiZWZvcmUgdGhlIHNlaXplIGZhaWxlZC5oTGlxdWlkYXRpb25BY2NvdW50Tm90Qm91bmQACQgNAVRoZSBnaWdhaGR4IGxpcXVpZGF0aW9uIGFjY291bnQgaXMgbm90IGJvdW5kIHRvIGl0cyBFVk0gYWRkcmVzcywgc28RAXRoZSBzZWl6ZWQgYVRva2VuIHdvdWxkIGxhbmQgaW4gYSBkaWZmZXJlbnQgYWNjb3VudCB0aGFuIHRoZSBsZWRnZXIuWENsZWFyVm90aW5nTG9ja3NGYWlsZWQACgSwU2VsZWN0aXZlIHZvdGUgY2xlYXJpbmcgZmFpbGVkIGJlZm9yZSBzZWl6ZS4wQm9ycm93RmFpbGVkAAsE7FRyZWFzdXJ5J3MgSE9MTEFSIGJvcnJvdyBhZ2FpbnN0IHRoZSBHSUdBSERYIHBvb2wgcmV2ZXJ0ZWQuLFNlaXplRmFpbGVkAAwE2EZpbmFsIHN0YXRlIG1vdmUgKEhEWCB0cmFuc2ZlciArIGxvY2sgcmVmcmVzaCkgZmFpbGVkLkRHaWdhSGR4UG9vbE5vdFNldAANBOhHSUdBSERYIHBvb2wgY29udHJhY3QgYWRkcmVzcyBub3Qgc2V0IGluIGBwYWxsZXRfZ2lnYWhkeGAuKE5vUG9vbERlYnQADggJAUJvcnJvd2VyIGhhcyBubyBgZGVidF9hc3NldGAgZGVidCBvbiB0aGUgR0lHQUhEWCBwb29sLCBzbyB0aGVyZSBpc1Rub3RoaW5nIHRvIGxpcXVpZGF0ZS4sUmVwYXlGYWlsZWQADwQJAVJlcGF5aW5nIHRoZSB1bmNvbnN1bWVkIHByb3RvY29sLWJvcnJvd2VkIEhPTExBUiBzdXJwbHVzIHJldmVydGVkLkxQb29sQWRkcmVzc01pc21hdGNoABAINQFUaGUgYHBvb2xgIHByb3ZpZGVkIHRvIGBsaXF1aWRhdGVfd2l0aF9wb29sYCBpcyBub3QgdGhlIHBvb2wgdGhpcyBsaXF1aWRhdGlvblh3b3VsZCBleGVjdXRlIGFnYWluc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkMDChwYWxsZXRfaHNtFHR5cGVzOENvbGxhdGVyYWxJbmZvBBxBc3NldElkASgAGAEccG9vbF9pZCgBHEFzc2V0SWQAATBwdXJjaGFzZV9mZWV1AgEcUGVybWlsbAABZG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRUAUBDb2VmZmljaWVudFJhdGlvAAEwYnV5YmFja19yYXRlKQMBHFBlcmJpbGwAATBidXlfYmFja19mZWV1AgEcUGVybWlsbAABOG1heF9pbl9ob2xkaW5n9QEBPE9wdGlvbjxCYWxhbmNlPgAATQwMKHBhbGxldF9oc20YcGFsbGV0FEVycm9yBARUAAFUQEFzc2V0Tm90QXBwcm92ZWQAAAyMQXNzZXQgaXMgbm90IGFwcHJvdmVkIGFzIGNvbGxhdGVyYWwAZQFUaGUgb3BlcmF0aW9uIGF0dGVtcHRlZCB0byB1c2UgYW4gYXNzZXQgdGhhdCBpcyBub3QgcmVnaXN0ZXJlZCBhcyBhbiBhcHByb3ZlZCBjb2xsYXRlcmFsLlBBc3NldEFscmVhZHlBcHByb3ZlZAABDJxBc3NldCBpcyBhbHJlYWR5IGFwcHJvdmVkIGFzIGNvbGxhdGVyYWwAFQFBdHRlbXB0ZWQgdG8gYWRkIGFuIGFzc2V0IHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGFzIGEgY29sbGF0ZXJhbC5gUG9vbEFscmVhZHlIYXNDb2xsYXRlcmFsAAIM0EFub3RoZXIgYXNzZXQgZnJvbSB0aGUgc2FtZSBwb29sIGlzIGFscmVhZHkgYXBwcm92ZWQADQFPbmx5IG9uZSBhc3NldCBmcm9tIGVhY2ggU3RhYmxlU3dhcCBwb29sIGNhbiBiZSB1c2VkIGFzIGNvbGxhdGVyYWwuQEludmFsaWRBc3NldFBhaXIAAwzoSW52YWxpZCBhc3NldCBwYWlyLCBtdXN0IGJlIEhvbGxhciBhbmQgYXBwcm92ZWQgY29sbGF0ZXJhbAC9AVRoZSBhc3NldCBwYWlyIGZvciBidXkvc2VsbCBvcGVyYXRpb25zIG11c3QgaW5jbHVkZSBIb2xsYXIgYXMgb25lIHNpZGUgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWwgYXMgdGhlIG90aGVyLkxNYXhCdXlQcmljZUV4Y2VlZGVkAAQMWE1heCBidXkgcHJpY2UgZXhjZWVkZWQASQFUaGUgY2FsY3VsYXRlZCBidXkgcHJpY2UgZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkIGJ1eSBwcmljZSBmb3IgdGhlIGNvbGxhdGVyYWwuSE1heEJ1eUJhY2tFeGNlZWRlZAAFDLBNYXggYnV5IGJhY2sgYW1vdW50IGluIHNpbmdsZSBibG9jayBleGNlZWRlZAClAVRoZSBhbW91bnQgb2YgSG9sbGFyIGJlaW5nIHNvbGQgdG8gSFNNIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCBpbiBhIHNpbmdsZSBibG9jayBmb3IgdGhpcyBjb2xsYXRlcmFsLkhNYXhIb2xkaW5nRXhjZWVkZWQABgyoTWF4IGhvbGRpbmcgYW1vdW50IGZvciBjb2xsYXRlcmFsIGV4Y2VlZGVkAHUBVGhlIG9wZXJhdGlvbiB3b3VsZCBjYXVzZSB0aGUgSFNNIHRvIGhvbGQgbW9yZSBvZiB0aGUgY29sbGF0ZXJhbCB0aGFuIHRoZSBjb25maWd1cmVkIG1heGltdW0uVFNsaXBwYWdlTGltaXRFeGNlZWRlZAAHDFxTbGlwcGFnZSBsaW1pdCBleGNlZWRlZAABAVRoZSBjYWxjdWxhdGVkIGFtb3VudCBpcyB3b3JzZSB0aGFuIHRoZSBwcm92aWRlZCBzbGlwcGFnZSBsaW1pdC5USW52YWxpZEVWTUludGVyYWN0aW9uAAgMgEludmFsaWQgRVZNIGNvbnRyYWN0IGludGVyYWN0aW9uANxUaGUgY2FsbCB0byB0aGUgRVZNIGNvbnRyYWN0IChHSE8gSG9sbGFyIHRva2VuKSBmYWlsZWQuWERlY2ltYWxSZXRyaWV2YWxGYWlsZWQACQxgRGVjaW1hbCByZXRyaWV2YWwgZmFpbGVkAOBGYWlsZWQgdG8gcmV0cmlldmUgdGhlIGRlY2ltYWwgaW5mb3JtYXRpb24gZm9yIGFuIGFzc2V0LlhOb0FyYml0cmFnZU9wcG9ydHVuaXR5AAoMYE5vIGFyYml0cmFnZSBvcHBvcnR1bml0eQApAVRoZXJlIGlzIG5vIHByb2ZpdGFibGUgYXJiaXRyYWdlIG9wcG9ydHVuaXR5IGZvciB0aGUgc3BlY2lmaWVkIGNvbGxhdGVyYWwuNEFzc2V0Tm90Rm91bmQACwxUQXNzZXQgbm90IGluIHRoZSBwb29sALhUaGUgc3BlY2lmaWVkIGFzc2V0IHdhcyBub3QgZm91bmQgaW4gdGhlIHBvb2wuQEludmFsaWRQb29sU3RhdGUADAx4UHJvdmlkZWQgcG9vbCBzdGF0ZSBpcyBpbnZhbGlkAOhUaGUgcmV0cmlldmVkIHBvb2wgc3RhdGUgaGFzIGluY29uc2lzdGVudCBvciBpbnZhbGlkIGRhdGEuSENvbGxhdGVyYWxOb3RFbXB0eQANDFxDb2xsYXRlcmFsIGlzIG5vdCBlbXB0eQBZAUNhbm5vdCByZW1vdmUgYSBjb2xsYXRlcmFsIGFzc2V0IHRoYXQgc3RpbGwgaGFzIGEgbm9uLXplcm8gYmFsYW5jZSBpbiB0aGUgSFNNIGFjY291bnQuOEFzc2V0Tm90SW5Qb29sAA4MVEFzc2V0IG5vdCBpbiB0aGUgcG9vbADoVGhlIGNvbGxhdGVyYWwgYXNzZXQgaXMgbm90IHByZXNlbnQgaW4gdGhlIHNwZWNpZmllZCBwb29sLjxIb2xsYXJOb3RJblBvb2wADwxkSG9sbGFyIGlzIG5vdCBpbiB0aGUgcG9vbADYVGhlIEhvbGxhciBhc3NldCBpcyBub3QgcHJlc2VudCBpbiB0aGUgc3BlY2lmaWVkIHBvb2wudEluc3VmZmljaWVudENvbGxhdGVyYWxCYWxhbmNlABAMfEluc3VmZmljaWVudCBjb2xsYXRlcmFsIGJhbGFuY2UAPQFUaGUgSFNNIGRvZXMgbm90IGhhdmUgZW5vdWdoIG9mIHRoZSBjb2xsYXRlcmFsIGFzc2V0IHRvIGNvbXBsZXRlIHRoZSBvcGVyYXRpb24udEhvbGxhckNvbnRyYWN0QWRkcmVzc05vdEZvdW5kABEMeEdITyBDb250cmFjdCBhZGRyZXNzIG5vdCBmb3VuZAAJAVRoZSBFVk0gYWRkcmVzcyBmb3IgdGhlIEdITyAoSG9sbGFyKSB0b2tlbiBjb250cmFjdCB3YXMgbm90IGZvdW5kLnRNYXhOdW1iZXJPZkNvbGxhdGVyYWxzUmVhY2hlZAASBORIU00gY29udGFpbnMgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBjb2xsYXRlcmFsIGFzc2V0cy5ERmxhc2hNaW50ZXJOb3RTZXQAEwRwRmxhc2ggbWludGVyIGFkZHJlc3Mgbm90IHNldFBJbnZhbGlkQXJiaXRyYWdlRGF0YQAUBIhQcm92aWRlZCBhcmJpdHJhZ2UgZGF0YSBpcyBpbnZhbGlkBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlEMDDRwYWxsZXRfc2lnbmV0GHBhbGxldEBTaWduZXRDb25maWdEYXRhBBxCYWxhbmNlAUAAFAEYcGF1c2VkRAEQYm9vbAABRHNpZ25hdHVyZV9kZXBvc2l0QAEcQmFsYW5jZQABTG1heF9jaGFpbl9pZF9sZW5ndGgoAQx1MzIAAUxtYXhfZXZtX2RhdGFfbGVuZ3RoKAEMdTMyAAEgY2hhaW5faWSxAQG0Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0NIQUlOX0lEX0xFTkdUSD4+AABVDAw0cGFsbGV0X3NpZ25ldBhwYWxsZXQURXJyb3IEBFQAASA0Tm90Q29uZmlndXJlZAAABJhUaGUgcGFsbGV0IGhhcyBub3QgYmVlbiBjb25maWd1cmVkIHlldBhQYXVzZWQAAQS4UGFsbGV0IGlzIHBhdXNlZCBhbmQgY2Fubm90IHByb2Nlc3MgdGhpcyBjYWxsLkRJbnN1ZmZpY2llbnRGdW5kcwACBIRJbnN1ZmZpY2llbnQgZnVuZHMgZm9yIHdpdGhkcmF3YWxISW52YWxpZFRyYW5zYWN0aW9uAAMEgEludmFsaWQgdHJhbnNhY3Rpb24gZGF0YSAoZW1wdHkpSEludmFsaWRJbnB1dExlbmd0aAAEBIBBcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCxEYXRhVG9vTG9uZwAFBLxUcmFuc2FjdGlvbiBkYXRhIGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIGxlbmd0aDhJbnZhbGlkQWRkcmVzcwAGBMRJbnZhbGlkIGFkZHJlc3MgZm9ybWF0IC0gbXVzdCBiZSBleGFjdGx5IDIwIGJ5dGVzPEludmFsaWRHYXNQcmljZQAHBAUBUHJpb3JpdHkgZmVlIGNhbm5vdCBleGNlZWQgbWF4IGZlZSBwZXIgZ2FzIChFSVAtMTU1OSByZXF1aXJlbWVudCkEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuWQwMQHBhbGxldF9kaXNwZW5zZXIYcGFsbGV0TERpc3BlbnNlckNvbmZpZ0RhdGEAABwBGHBhdXNlZEQBEGJvb2wAAUhmYXVjZXRfYmFsYW5jZV93ZWlAARxCYWxhbmNlAAE4ZmF1Y2V0X2FkZHJlc3NYAShFdm1BZGRyZXNzAAFQbWluX2ZhdWNldF90aHJlc2hvbGRAARxCYWxhbmNlAAEsbWluX3JlcXVlc3RAARxCYWxhbmNlAAEwbWF4X2Rpc3BlbnNlQAEcQmFsYW5jZQABNGRpc3BlbnNlcl9mZWVAARxCYWxhbmNlAABdDAxAcGFsbGV0X2Rpc3BlbnNlchhwYWxsZXQURXJyb3IEBFQAATQ0Tm90Q29uZmlndXJlZAAABJxUaGUgcGFsbGV0IGhhcyBub3QgYmVlbiBjb25maWd1cmVkIHlldC5ARHVwbGljYXRlUmVxdWVzdAABBIRSZXF1ZXN0IElEIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC40U2VyaWFsaXphdGlvbgACBHRGYWlsZWQgdG8gKGRlKXNlcmlhbGl6ZSBkYXRhLjRJbnZhbGlkT3V0cHV0AAMEuE91dHB1dCBkYXRhIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5ASW52YWxpZFJlcXVlc3RJZAAEBPxSZXF1ZXN0IElEIGRvZXMgbm90IG1hdGNoIHRoZSBkZXJpdmVkIElEIGZvciB0aGUgcHJvdmlkZWQgZGF0YS4YUGF1c2VkAAUEuFBhbGxldCBpcyBwYXVzZWQgYW5kIGNhbm5vdCBwcm9jZXNzIHRoaXMgY2FsbC44QW1vdW50VG9vU21hbGwABgTEUmVxdWVzdGVkIGFtb3VudCBpcyBiZWxvdyB0aGUgY29uZmlndXJlZCBtaW5pbXVtLjhBbW91bnRUb29MYXJnZQAHBMBSZXF1ZXN0ZWQgYW1vdW50IGV4Y2VlZHMgdGhlIGNvbmZpZ3VyZWQgbWF4aW11bS44SW52YWxpZEFkZHJlc3MACATYRVZNIGFkZHJlc3MgcGFyYW1ldGVyIGlzIGludmFsaWQgKGUuZy4sIHplcm8gYWRkcmVzcykubEZhdWNldEJhbGFuY2VCZWxvd1RocmVzaG9sZAAJBDEBRmF1Y2V0IGJhbGFuY2Ugd291bGQgZmFsbCBiZWxvdyB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQgYWZ0ZXIgdGhpcyByZXF1ZXN0LkROb3RFbm91Z2hGZWVGdW5kcwAKBNRDYWxsZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggYmFsYW5jZSBvZiB0aGUgZmVlIGFzc2V0LlBOb3RFbm91Z2hGYXVjZXRGdW5kcwALBOBDYWxsZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggYmFsYW5jZSBvZiB0aGUgZmF1Y2V0IGFzc2V0LjRJbnZhbGlkQ29uZmlnAAwEIQFDb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlIGludmFsaWQgKGUuZy4sIG1pbl9yZXF1ZXN0ID4gbWF4X2Rpc3BlbnNlKS4EOFBhbGxldCBlcnJvcnMuYQwMOHBhbGxldF9naWdhaGR4GHBhbGxldCxTdGFrZVJlY29yZAAAEAEMaGR4QAEcQmFsYW5jZQABHGdpZ2FoZHhAARxCYWxhbmNlAAEkdW5zdGFraW5nQAEcQmFsYW5jZQABPHVuc3Rha2luZ19jb3VudIABDHUxNgAAZQwMOHBhbGxldF9naWdhaGR4GHBhbGxldDhQZW5kaW5nVW5zdGFrZQAABAEYYW1vdW50QAEcQmFsYW5jZQAAaQwMOHBhbGxldF9naWdhaGR4GHBhbGxldBRFcnJvcgQEVAABRDRCZWxvd01pblN0YWtlAAAEpFN0YWtlIGFtb3VudCBpcyBiZWxvdyBgQ29uZmlnOjpNaW5TdGFrZWAuXEluc3VmZmljaWVudEZyZWVCYWxhbmNlAAEI9ENhbGxlciBkb2Vzbid0IGhhdmUgZW5vdWdoIHVuZW5jdW1iZXJlZCBIRFggdG8gYmFjayB0aGUgc3Rha2XQYWZ0ZXIgc3VidHJhY3RpbmcgdGhlaXIgZXhpc3RpbmcgZ2lnYWhkeCBjb21taXRtZW50LlRCbG9ja2VkQnlFeHRlcm5hbExvY2sAAhQJAUNhbGxlciBob2xkcyBhIG5vbi1vdmVybGFwcGluZyBsb2NrIChsZWdhY3kgc3Rha2luZywgdmVzdGluZywg4oCmKfByZXBvcnRlZCBieSBgQ29uZmlnOjpFeHRlcm5hbENsYWltc2AuIFN0cmljdCBwb2xpY3k6IGdpZ2FoZHjwYWRtaXNzaW9uIHJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gaGF2ZSBubyBjbGFpbXMgb24gdGhlaXIgSERY5G90aGVyIHRoYW4gdGhvc2UgdGhlIHJ1bnRpbWUgZXhwbGljaXRseSBhbGxvd3MgdG8gY29leGlzdPwoZS5nLiBgcHljb252b3RgKS4gUmVsZWFzZSB0aGUgY29uZmxpY3RpbmcgbG9jayBiZWZvcmUgc3Rha2luZy5ESW5zdWZmaWNpZW50U3Rha2UAAwTUVW5zdGFrZSBhbW91bnQgZXhjZWVkcyB0aGUgY2FsbGVyJ3MgYFN0YWtlcy5naWdhaGR4YC4cTm9TdGFrZQAEBIhDYWxsZXIgaGFzIG5vIGFjdGl2ZSBzdGFrZSByZWNvcmQuKFplcm9BbW91bnQABQSoQW1vdW50IG11c3QgYmUgc3RyaWN0bHkgZ3JlYXRlciB0aGFuIHplcm8uPFN0SGR4TWludEZhaWxlZAAGEPRzdEhEWCBtaW50IGZhaWxlZCAoYXNzZXQgbm90IHJlZ2lzdGVyZWQsIG1heCBpc3N1YW5jZSBoaXQsIG9y8G90aGVyIGBmdW5naWJsZXM6Ok11dGF0ZTo6bWludF9pbnRvYCBwcmVjb25kaXRpb24gdmlvbGF0ZWQpLhEBRGlzdGluY3QgZnJvbSBgTW9uZXlNYXJrZXRTdXBwbHlGYWlsZWRgIOKAlCB0aGlzIGlzIGEgc3Vic3RyYXRlLXNpZGW4YXNzZXQtcmVnaXN0cnkgZXJyb3IsIG5vdCBhbiBBQVZFLXNpZGUgcmV2ZXJ0LlxNb25leU1hcmtldFN1cHBseUZhaWxlZAAHDBEBQUFWRSBgUG9vbC5zdXBwbHlgIHJldmVydGVkIOKAlCB0eXBpY2FsIGNhdXNlczogY2FsbGVyJ3MgRVZNIGFkZHJlc3P4aXMgbm90IGJvdW5kLCB0aGUgYXNzZXQgcmVzZXJ2ZSBpcyBtaXNjb25maWd1cmVkLCBvciBgUG9vbGAgaXMccGF1c2VkLmRNb25leU1hcmtldFdpdGhkcmF3RmFpbGVkAAgEeEFBVkUgYFBvb2wud2l0aGRyYXdgIHJldmVydGVkLiBPdmVyZmxvdwAJBPhBcml0aG1ldGljIG92ZXJmbG93IGR1cmluZyByYXRlLCBsb2NrLCBvciBzdG9yYWdlIHVwZGF0ZSBtYXRoLkhDb29sZG93bk5vdEVsYXBzZWQACgQJAVRoZSBjb29sZG93biBwZXJpb2QgaGFzIG5vdCB5ZXQgZWxhcHNlZCBmb3IgdGhlIHRhcmdldGVkIHBvc2l0aW9uLlhQZW5kaW5nVW5zdGFrZU5vdEZvdW5kAAsEHQFObyBwZW5kaW5nIHVuc3Rha2UgcG9zaXRpb24gd2l0aCB0aGUgc3VwcGxpZWQgaWQgZXhpc3RzIGZvciB0aGUgY2FsbGVyLlhUb29NYW55UGVuZGluZ1Vuc3Rha2VzAAwEFQFDYWxsZXIgaGFzIHJlYWNoZWQgYENvbmZpZzo6TWF4UGVuZGluZ1Vuc3Rha2VzYCBjb25jdXJyZW50IHBvc2l0aW9ucy5AT3V0c3RhbmRpbmdTdGFrZQANDAEBYHNldF9wb29sX2NvbnRyYWN0YCB3YXMgY2FsbGVkIHdoaWxlIGdpZ2FoZHggKGFUb2tlbiAvIHN0SERYKSBpcwEBc3RpbGwgaW4gY2lyY3VsYXRpb24uIFRoZSBwb29sIGlzIHNldHRhYmxlIG9ubHkgd2hlbiB0b3RhbCBzdEhEWDxzdXBwbHkgaXMgemVyby4sU3Rha2VGcm96ZW4ADgz4VW5zdGFrZSB3b3VsZCBkcm9wIGBTdGFrZXNbd2hvXS5oZHhgIGJlbG93IHRoZSBIRFggYmFja2luZyB0aGUJAWNhbGxlcidzIGFjdGl2ZSB2b3RlcyAoYFQ6OlZvdGluZ0NvbW1pdG1lbnRgKTsgcmVtb3ZlIHRoZSByZWxldmFudFxjb252aWN0aW9uIHZvdGVzIGZpcnN0LixTZWl6ZUZhaWxlZAAPCAEBYHNsYXNoYCBmYWxsYmFjayBjb3VsZCBub3QgZXh0cmFjdCB0aGUgZnVsbCBgc2VpemVfaGR4YCBmcm9tIHRoZeRib3Jyb3dlcidzIGFjY291bnQgKGUuZy4gZXhpc3RlbnRpYWwtZGVwb3NpdCBjb25zdHJhaW50KS5MR2lnYXBvdEluc3VmZmljaWVudAAQCPhUaGUgZ2lnYXBvdCBsYWNrcyB0aGUgSERYIHRvIGNvdmVyIHRoZSBjYWxsZXIncyBhY2NydWVkIHlpZWxkLgEBT25seSByZWFjaGFibGUgaW4gYSBkcmFpbmVkL2Zsb29yZWQgc3RhdGUsIG5vdCBub3JtYWwgb3BlcmF0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5tDAxYcGFsbGV0X2dpZ2FoZHhfcmV3YXJkcxR0eXBlc0xSZWZlcmVuZHVtTGl2ZVRhbGx5AAAIATh0b3RhbF93ZWlnaHRlZEABEHUxMjgAATB2b3RlcnNfY291bnQoAQx1MzIAAHEMDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzFHR5cGVzPFJlZmVyZW5kYVJld2FyZAQcVHJhY2tJZAGAABQBIHRyYWNrX2lkgAEcVHJhY2tJZAABMHRvdGFsX3Jld2FyZEABHEJhbGFuY2UAAVB0b3RhbF93ZWlnaHRlZF92b3Rlc0ABEHUxMjgAAUB2b3RlcnNfcmVtYWluaW5nKAEMdTMyAAFAcmVtYWluaW5nX3Jld2FyZEABHEJhbGFuY2UAAHUMDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzFHR5cGVzOFVzZXJWb3RlUmVjb3JkAAAMAUhzdGFrZWRfdm90ZV9hbW91bnRAARxCYWxhbmNlAAEoY29udmljdGlvbikCAShDb252aWN0aW9uAAEgd2VpZ2h0ZWRAARB1MTI4AAB5DAxYcGFsbGV0X2dpZ2FoZHhfcmV3YXJkcxhwYWxsZXQURXJyb3IEBFQAAQxATm9QZW5kaW5nUmV3YXJkcwAABHhgUGVuZGluZ1Jld2FyZHNbd2hvXWAgaXMgemVyby48UG90SW5zdWZmaWNpZW50AAEEBQFOb3QgZW5vdWdoIHJld2FyZHMgaW4gdGhlIGFsbG9jYXRlZCBwb3QgdG8gY292ZXIgdGhlIGFtb3VudCBvd2VkLiBPdmVyZmxvdwACBLRBcml0aG1ldGljIG92ZXJmbG93IGR1cmluZyBzaGFyZSBjb21wdXRhdGlvbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQufQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGBDARTAAAEAIUMARhWZWM8VD4AAIEMCCxvcm1sX3Rva2VucyxCYWxhbmNlTG9jawQcQmFsYW5jZQFAAAgBCGlkIQEBOExvY2tJZGVudGlmaWVyAAEYYW1vdW50QAEcQmFsYW5jZQAAhQwAAAKBDACJDAgsb3JtbF90b2tlbnMsQWNjb3VudERhdGEEHEJhbGFuY2UBQAAMARBmcmVlQAEcQmFsYW5jZQABIHJlc2VydmVkQAEcQmFsYW5jZQABGGZyb3plbkABHEJhbGFuY2UAAI0MDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBkQwEUwAABACVDAEYVmVjPFQ+AACRDAgsb3JtbF90b2tlbnMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyASEBHEJhbGFuY2UBQAAIAQhpZCEBAURSZXNlcnZlSWRlbnRpZmllcgABGGFtb3VudEABHEJhbGFuY2UAAJUMAAACkQwAmQwMLG9ybWxfdG9rZW5zGG1vZHVsZRRFcnJvcgQEVAABIDRCYWxhbmNlVG9vTG93AAAEWFRoZSBiYWxhbmNlIGlzIHRvbyBsb3dcQW1vdW50SW50b0JhbGFuY2VGYWlsZWQAAQScQ2Fubm90IGNvbnZlcnQgQW1vdW50IGludG8gQmFsYW5jZSB0eXBlVExpcXVpZGl0eVJlc3RyaWN0aW9ucwACBNBGYWlsZWQgYmVjYXVzZSBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIGR1ZSB0byBsb2NraW5nQE1heExvY2tzRXhjZWVkZWQAAwS0RmFpbGVkIGJlY2F1c2UgdGhlIG1heGltdW0gbG9ja3Mgd2FzIGV4Y2VlZGVkJEtlZXBBbGl2ZQAEBIxUcmFuc2Zlci9wYXltZW50IHdvdWxkIGtpbGwgYWNjb3VudEhFeGlzdGVudGlhbERlcG9zaXQABQToVmFsdWUgdG9vIGxvdyB0byBjcmVhdGUgYWNjb3VudCBkdWUgdG8gZXhpc3RlbnRpYWwgZGVwb3NpdCxEZWFkQWNjb3VudAAGBIhCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0PFRvb01hbnlSZXNlcnZlcwAHAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6dDAxEcGFsbGV0X2N1cnJlbmNpZXMYbW9kdWxlFEVycm9yBARUAAEQXEFtb3VudEludG9CYWxhbmNlRmFpbGVkAAAEvFVuYWJsZSB0byBjb252ZXJ0IHRoZSBBbW91bnQgdHlwZSBpbnRvIEJhbGFuY2UuNEJhbGFuY2VUb29Mb3cAAQRMQmFsYW5jZSBpcyB0b28gbG93LjREZXBvc2l0RmFpbGVkAAIEeERlcG9zaXQgcmVzdWx0IGlzIG5vdCBleHBlY3RlZDBOb3RTdXBwb3J0ZWQAAwSwT3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgY3VycmVuY3kEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuoQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHZAwRTAAAEAN0DARhWZWM8VD4AAKUMDDBvcm1sX3Zlc3RpbmcYbW9kdWxlFEVycm9yBARUAAEYRFplcm9WZXN0aW5nUGVyaW9kAAAEWFZlc3RpbmcgcGVyaW9kIGlzIHplcm9YWmVyb1Zlc3RpbmdQZXJpb2RDb3VudAABBFxOdW1iZXIgb2YgdmVzdHMgaXMgemVyb2RJbnN1ZmZpY2llbnRCYWxhbmNlVG9Mb2NrAAIEmEluc3VmZmljaWVudCBhbW91bnQgb2YgYmFsYW5jZSB0byBsb2NrXFRvb01hbnlWZXN0aW5nU2NoZWR1bGVzAAMEsFRoaXMgYWNjb3VudCBoYXZlIHRvbyBtYW55IHZlc3Rpbmcgc2NoZWR1bGVzJEFtb3VudExvdwAEBJRUaGUgdmVzdGVkIHRyYW5zZmVyIGFtb3VudCBpcyB0b28gbG93bE1heFZlc3RpbmdTY2hlZHVsZXNFeGNlZWRlZAAFBORGYWlsZWQgYmVjYXVzZSB0aGUgbWF4aW11bSB2ZXN0aW5nIHNjaGVkdWxlcyB3YXMgZXhjZWVkZWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuqQwIKHBhbGxldF9ldm0wQ29kZU1ldGFkYXRhAAAIARBzaXplGAEMdTY0AAEQaGFzaCwBEEgyNTYAAK0MAAAECFgsALEMDChwYWxsZXRfZXZtGHBhbGxldBRFcnJvcgQEVAABPChCYWxhbmNlTG93AAAEkE5vdCBlbm91Z2ggYmFsYW5jZSB0byBwZXJmb3JtIGFjdGlvbixGZWVPdmVyZmxvdwABBIBDYWxjdWxhdGluZyB0b3RhbCBmZWUgb3ZlcmZsb3dlZDxQYXltZW50T3ZlcmZsb3cAAgSQQ2FsY3VsYXRpbmcgdG90YWwgcGF5bWVudCBvdmVyZmxvd2VkOFdpdGhkcmF3RmFpbGVkAAMETFdpdGhkcmF3IGZlZSBmYWlsZWQ4R2FzUHJpY2VUb29Mb3cABARUR2FzIHByaWNlIGlzIHRvbyBsb3cuMEludmFsaWROb25jZQAFBEBOb25jZSBpcyBpbnZhbGlkOEdhc0xpbWl0VG9vTG93AAYEVEdhcyBsaW1pdCBpcyB0b28gbG93LmRHYXNMaW1pdEV4Y2VlZHNCbG9ja0xpbWl0AAcEiEdhcyBsaW1pdCBleGNlZWRzIGJsb2NrIGdhcyBsaW1pdC44SW52YWxpZENoYWluSWQACARgVGhlIGNoYWluIGlkIGlzIGludmFsaWQuQEludmFsaWRTaWduYXR1cmUACQRkdGhlIHNpZ25hdHVyZSBpcyBpbnZhbGlkLihSZWVudHJhbmN5AAoEOEVWTSByZWVudHJhbmN5aFRyYW5zYWN0aW9uTXVzdENvbWVGcm9tRU9BAAsEJEVJUC0zNjA3LCRVbmRlZmluZWQADARAVW5kZWZpbmVkIGVycm9yLlhDcmVhdGVPcmlnaW5Ob3RBbGxvd2VkAA0EKQFBZGRyZXNzIG5vdCBhbGxvd2VkIHRvIGRlcGxveSBjb250cmFjdHMgZWl0aGVyIHZpYSBDUkVBVEUgb3IgQ0FMTChDUkVBVEUpLnRUcmFuc2FjdGlvbkdhc0xpbWl0RXhjZWVkc0NhcAAOBPBFSVAtNzgyNTogVHJhbnNhY3Rpb24gZ2FzIGxpbWl0IGV4Y2VlZHMgcHJvdG9jb2wgY2FwICgyXjI0KS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQutQwAAAQMAQS5DM0MALkMCBhmcF9ycGNEVHJhbnNhY3Rpb25TdGF0dXMAABwBQHRyYW5zYWN0aW9uX2hhc2gsARBIMjU2AAFEdHJhbnNhY3Rpb25faW5kZXgoAQx1MzIAARBmcm9tWAEcQWRkcmVzcwABCHRvvQwBPE9wdGlvbjxBZGRyZXNzPgABQGNvbnRyYWN0X2FkZHJlc3O9DAE8T3B0aW9uPEFkZHJlc3M+AAEQbG9nc8EMASBWZWM8TG9nPgABKGxvZ3NfYmxvb23FDAEUQmxvb20AAL0MBBhPcHRpb24EBFQBWAEIEE5vbmUAAAAQU29tZQQAWAAAAQAAwQwAAAI9CADFDAggZXRoYmxvb20UQmxvb20AAAQAyQwBQFt1ODsgQkxPT01fU0laRV0AAMkMAAADAAEAAAgAzQwMIGV0aGVyZXVtHHJlY2VpcHQkUmVjZWlwdFY0AAEQGExlZ2FjeQQA0QwBREVJUDY1OFJlY2VpcHREYXRhAAAAHEVJUDI5MzAEANEMAUhFSVAyOTMwUmVjZWlwdERhdGEAAQAcRUlQMTU1OQQA0QwBSEVJUDE1NTlSZWNlaXB0RGF0YQACABxFSVA3NzAyBADRDAFIRUlQNzcwMlJlY2VpcHREYXRhAAMAANEMDCBldGhlcmV1bRxyZWNlaXB0REVJUDY1OFJlY2VpcHREYXRhAAAQASxzdGF0dXNfY29kZQgBCHU4AAEgdXNlZF9nYXNgARBVMjU2AAEobG9nc19ibG9vbcUMARRCbG9vbQABEGxvZ3PBDAEgVmVjPExvZz4AANUMDCBldGhlcmV1bRRibG9jaxRCbG9jawQEVAEBBAAMARhoZWFkZXLZDAEYSGVhZGVyAAEwdHJhbnNhY3Rpb25z4QwBGFZlYzxUPgABGG9tbWVyc+UMASxWZWM8SGVhZGVyPgAA2QwMIGV0aGVyZXVtGGhlYWRlchhIZWFkZXIAADwBLHBhcmVudF9oYXNoLAEQSDI1NgABLG9tbWVyc19oYXNoLAEQSDI1NgABLGJlbmVmaWNpYXJ5WAEQSDE2MAABKHN0YXRlX3Jvb3QsARBIMjU2AAFEdHJhbnNhY3Rpb25zX3Jvb3QsARBIMjU2AAE0cmVjZWlwdHNfcm9vdCwBEEgyNTYAAShsb2dzX2Jsb29txQwBFEJsb29tAAEoZGlmZmljdWx0eWABEFUyNTYAARhudW1iZXJgARBVMjU2AAEkZ2FzX2xpbWl0YAEQVTI1NgABIGdhc191c2VkYAEQVTI1NgABJHRpbWVzdGFtcBgBDHU2NAABKGV4dHJhX2RhdGEUARRCeXRlcwABIG1peF9oYXNoLAEQSDI1NgABFG5vbmNl3QwBDEg2NAAA3QwMOGV0aGVyZXVtX3R5cGVzEGhhc2gMSDY0AAAEACEBARxbdTg7IDhdAADhDAAAAgEEAOUMAAAC2QwA6QwAAALNDADtDAAAArkMAPEMDDxwYWxsZXRfZXRoZXJldW0YcGFsbGV0FEVycm9yBARUAAEIQEludmFsaWRTaWduYXR1cmUAAARUU2lnbmF0dXJlIGlzIGludmFsaWQuMFByZUxvZ0V4aXN0cwABBNhQcmUtbG9nIGlzIHByZXNlbnQsIHRoZXJlZm9yZSB0cmFuc2FjdCBpcyBub3QgYWxsb3dlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu9QwAAAQMKFhYAPkMDExwYWxsZXRfZXZtX2FjY291bnRzGHBhbGxldBRFcnJvcgQEVAABIGxUcnVuY2F0ZWRBY2NvdW50QWxyZWFkeVVzZWQAAASIQWN0aXZlIEVWTSBhY2NvdW50IGNhbm5vdCBiZSBib3VuZExBZGRyZXNzQWxyZWFkeUJvdW5kAAEEYEFkZHJlc3MgaXMgYWxyZWFkeSBib3VuZGBCb3VuZEFkZHJlc3NDYW5ub3RCZVVzZWQAAgRwQm91bmQgYWRkcmVzcyBjYW5ub3QgYmUgdXNlZFRBZGRyZXNzTm90V2hpdGVsaXN0ZWQAAwRcQWRkcmVzcyBub3Qgd2hpdGVsaXN0ZWRASW52YWxpZFNpZ25hdHVyZQAEBHRQcm92aWRlZCBzaWduYXR1cmUgaXMgaW52YWxpZFBBY2NvdW50QWxyZWFkeUV4aXN0cwAFBKxBY2NvdW50IGFscmVhZHkgZXhpc3RzIGluIHRoZSBzeXN0ZW0gcGFsbGV0YEluc3VmZmljaWVudEFzc2V0QmFsYW5jZQAGBLxJbnN1ZmZpY2llbnQgYXNzZXQgYmFsYW5jZSBvZiB0aGUgY2xhaW1lZCBhc3NldFBJbnZhbGlkTWludGVyQWRkcmVzcwAHBJxaZXJvIGFkZHJlc3MgY2Fubm90IGJlIHVzZWQgYXMgYSBtaW50ZXIEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu/QwMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IEBFQAATRQQ2FudEZpbmREZXBvc2l0T3duZXIAAASITmZ0IHBhbGxldCBkaWRuJ3QgcmV0dXJuIGFuIG93bmVyLnBJbnN1ZmZpY2llbnRYeWtTaGFyZXNCYWxhbmNlAAEE1EFjY291bnQgYmFsYW5jZSBvZiBYWUsgcG9vbCBzaGFyZXMgaXMgbm90IHN1ZmZpY2llbnQuSFh5a1Bvb2xEb2VzbnRFeGlzdAACBFxYWUsgcG9vbCBkb2VzIG5vdCBleGlzdDxOb3REZXBvc2l0T3duZXIAAwR0QWNjb3VudCBpcyBub3QgZGVwb3NpdCBvd25lci5AQ2FudEdldFh5a0Fzc2V0cwAEBKxYWUsgZGlkIG5vdCByZXR1cm4gYXNzZXRzIGZvciBnaXZlbiBwb29sIGlkTERlcG9zaXREYXRhTm90Rm91bmQABQRYRGVwb3NpdCBkYXRhIG5vdCBmb3VuZEhaZXJvQ2xhaW1lZFJld2FyZHMABgSAQ2FsY3VsYXRlZCByZXdhcmQgdG8gY2xhaW0gaXMgMC5MQXNzZXROb3RJbkFzc2V0UGFpcgAHBIBBc3NldCBpcyBub3QgaW4gdGhlIGBBc3NldFBhaXJgLkBJbnZhbGlkQXNzZXRQYWlyAAgEwFByb3ZpZGVkIGBBc3NldFBhaXJgIGlzIG5vdCB1c2VkIGJ5IHRoZSBkZXBvc2l0LkhBc3NldE5vdFJlZ2lzdGVyZWQACQSoQXNzZXQgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkuOEZhaWxUb0dldFBvdElkAAoEkEZhaWxlZCB0byBjYWxjdWxhdGUgYHBvdGAncyBhY2NvdW50LkBOb0Zhcm1zU3BlY2lmaWVkAAsEzE5vIGdsb2JhbCBmYXJtIC0geWllbGQgZmFybSBwYWlycyBzcGVjaWZpZWQgdG8gam9pbkxGYWlsZWRUb1ZhbHVlU2hhcmVzAAwEnEZhaWxlZCB0byBjYWxjdWxhdGUgdmFsdWUgb2YgeHlrIHNoYXJlcwSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4BDQxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM4R2xvYmFsRmFybURhdGEIBFQABEkAAEgBCGlkKAEwR2xvYmFsRmFybUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAASh1cGRhdGVkX2F0KAEsUGVyaW9kT2Y8VD4AATh0b3RhbF9zaGFyZXNfekABHEJhbGFuY2UAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATxyZXdhcmRfY3VycmVuY3koAShUOjpBc3NldElkAAE8cGVuZGluZ19yZXdhcmRzQAEcQmFsYW5jZQABYGFjY3VtdWxhdGVkX3BhaWRfcmV3YXJkc0ABHEJhbGFuY2UAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzKAEsUGVyaW9kT2Y8VD4AAURibG9ja3NfcGVyX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAFIaW5jZW50aXZpemVkX2Fzc2V0KAEoVDo6QXNzZXRJZAABVG1heF9yZXdhcmRfcGVyX3BlcmlvZEABHEJhbGFuY2UAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVhsaXZlX3lpZWxkX2Zhcm1zX2NvdW50KAEMdTMyAAFcdG90YWxfeWllbGRfZmFybXNfY291bnQoAQx1MzIAAUBwcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAEUc3RhdGWFCwEkRmFybVN0YXRlAAAFDQAABAwAKCgACQ0MXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzNFlpZWxkRmFybURhdGEIBFQABEkAADABCGlkKAEYRmFybUlkAAEodXBkYXRlZF9hdCgBLFBlcmlvZE9mPFQ+AAEwdG90YWxfc2hhcmVzQAEcQmFsYW5jZQABTHRvdGFsX3ZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIAARRzdGF0ZYULASRGYXJtU3RhdGUAATRlbnRyaWVzX2NvdW50GAEMdTY0AAFIbGVmdF90b19kaXN0cmlidXRlQAEcQmFsYW5jZQABNHRvdGFsX3N0b3BwZWQoASxQZXJpb2RPZjxUPgAADQ0MXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzLERlcG9zaXREYXRhCARUAARJAAAMARhzaGFyZXNAARxCYWxhbmNlAAEsYW1tX3Bvb2xfaWQAATBUOjpBbW1Qb29sSWQAAUh5aWVsZF9mYXJtX2VudHJpZXMRDQH0Qm91bmRlZFZlYzxZaWVsZEZhcm1FbnRyeTxULCBJPiwgVDo6TWF4RmFybUVudHJpZXNQZXJEZXBvc2l0PgAAEQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEVDQRTAAAEABkNARhWZWM8VD4AABUNDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczhZaWVsZEZhcm1FbnRyeQgEVAAESQAAIAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAATR2YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAAWxhY2N1bXVsYXRlZF9jbGFpbWVkX3Jld2FyZHNAARxCYWxhbmNlAAEoZW50ZXJlZF9hdCgBLFBlcmlvZE9mPFQ+AAEodXBkYXRlZF9hdCgBLFBlcmlvZE9mPFQ+AAFMc3RvcHBlZF9hdF9jcmVhdGlvbigBLFBlcmlvZE9mPFQ+AAAZDQAAAhUNAB0NDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IIBFQABEkAAXRIR2xvYmFsRmFybU5vdEZvdW5kAAAEbEdsb2JhbCBmYXJtIGRvZXMgbm90IGV4aXN0LkRZaWVsZEZhcm1Ob3RGb3VuZAABBGhZaWVsZCBmYXJtIGRvZXMgbm90IGV4aXN0LkxEb3VibGVDbGFpbUluUGVyaW9kAAIEyE11bHRpcGxlIGNsYWltcyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgbm90IGFsbG93ZWQuXExpcXVpZGl0eU1pbmluZ0NhbmNlbGVkAAMEdExpcXVpZGl0eSBtaW5pbmcgaXMgY2FuY2VsZWQuXExpcXVpZGl0eU1pbmluZ0lzQWN0aXZlAAQEhExpcXVpZGl0eSBtaW5pbmcgaXMgbm90IGNhbmNlbGVkLmxMaXF1aWRpdHlNaW5pbmdJc05vdFN0b3BwZWQABQRVAUxpcXVpZGl0eSBtaW5pbmcgaXMgaW4gYGFjdGl2ZWAgb3IgYHRlcm1pbmF0ZWRgIHN0YXRlIGFuZCBhY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZC4kRm9yYmlkZGVuAAYEpEFjY291bnQgaXMgbm90IGFsbG93ZWQgdG8gcGVyZm9ybSBhY3Rpb24uREludmFsaWRNdWx0aXBsaWVyAAcEhFlpZWxkIGZhcm0gbXVsdGlwbGllciBjYW4ndCBiZSAwLlhZaWVsZEZhcm1BbHJlYWR5RXhpc3RzAAgECQFZaWVsZCBmYXJtIHdpdGggZ2l2ZW4gYGFtbV9wb29sX2lkYCBhbHJlYWR5IGV4aXN0cyBpbiBnbG9iYWwgZmFybS54SW52YWxpZEluaXRpYWxSZXdhcmRQZXJjZW50YWdlAAkEPQFMb3lhbHR5IGN1cnZlJ3MgaW5pdGlhbCByZXdhcmQgcGVyY2VudGFnZSBpcyBub3QgdmFsaWQuIFZhbGlkIHJhbmdlIGlzOiBbMCwgMSkuUEdsb2JhbEZhcm1Jc05vdEVtcHR5AAoEtE9uZSBvciBtb3JlIHlpZWxkIGZhcm1zIGV4aXN0IGluIGdsb2JhbCBmYXJtLmBNaXNzaW5nSW5jZW50aXZpemVkQXNzZXQACwT4RmFybSdzIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGlzIG1pc3NpbmcgaW4gcHJvdmlkZWQgYXNzZXQgcGFpci6ESW5zdWZmaWNpZW50UmV3YXJkQ3VycmVuY3lCYWxhbmNlAAwEqFJld2FyZCBjdXJyZW5jeSBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LlhJbnZhbGlkQmxvY2tzUGVyUGVyaW9kAA0EdEJsb2NrcyBwZXIgcGVyaW9kIGNhbid0IGJlIDAuVEludmFsaWRZaWVsZFBlclBlcmlvZAAOBHBZaWVsZCBwZXIgcGVyaW9kIGNhbid0IGJlIDAuTEludmFsaWRUb3RhbFJld2FyZHMADwTEVG90YWwgcmV3YXJkcyBpcyBsZXNzIHRoYW4gYE1pblRvdGFsRmFybVJld2FyZHNgLnRJbnZhbGlkUGxhbm5lZFlpZWxkaW5nUGVyaW9kcwAQBAkBUGxhbm5lZCB5aWVsZGluZyBwZXJpb2RzIGlzIGxlc3MgdGhhbiBgTWluUGxhbm5lZFlpZWxkaW5nUGVyaW9kc2AuUE1heEVudHJpZXNQZXJEZXBvc2l0ABEEsE1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHJlYWNoZWQgZm9yIGRlcG9zaXQuKERvdWJsZUxvY2sAEgTgVHJ5aW5nIHRvIGxvY2sgTFAgc2hhcmVzIGludG8gYWxyZWFkeSBsb2NrZWQgeWllbGQgZmFybS5YWWllbGRGYXJtRW50cnlOb3RGb3VuZAATBMRZaWVsZCBmYXJtIGVudHJ5IGRvZXNuJ3QgZXhpc3QgZm9yIGdpdmVuIGRlcG9zaXQuQEdsb2JhbEZhcm1Jc0Z1bGwAFAhJAU1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgaW4gZ2xvYmFsIGZhcm0gd2FzIHJlYWNoZWQuIEdsb2JhbCBmYXJtIGNhbid0IGFjY2VwdCBuZXf4eWllbGQgZmFybXMgdW50aWwgc29tZSB5aWVsZCBmYXJtIGlzIG5vdCByZW1vdmVkIGZyb20gc3RvcmFnZS5ESW52YWxpZE1pbkRlcG9zaXQAFQS0SW52YWxpZCBtaW4uIGRlcG9zaXQgd2FzIHNldCBmb3IgZ2xvYmFsIGZhcm0uWEludmFsaWRQcmljZUFkanVzdG1lbnQAFgScUHJpY2UgYWRqdXN0bWVudCBtdWx0aXBsaWVyIGNhbid0IGJlIDAuREVycm9yR2V0QWNjb3VudElkABcEgEFjY291bnQgY3JlYXRpb24gZnJvbSBpZCBmYWlsZWQuVEluY29ycmVjdFZhbHVlZFNoYXJlcwAYBCUBVmFsdWUgb2YgZGVwb3NpdGVkIHNoYXJlcyBhbW91bnQgaW4gcmV3YXJkIGN1cnJlbmN5IGlzIGJlbGxvdyBtaW4uIGxpbWl0LmxSZXdhcmRDdXJyZW5jeU5vdFJlZ2lzdGVyZWQAGQTYYHJld2FyZF9jdXJyZW5jeWAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkueEluY2VudGl2aXplZEFzc2V0Tm90UmVnaXN0ZXJlZAAaBORgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeS5EQW1tUG9vbElkTWlzbWF0Y2gAGwT0UHJvdmlkZWQgYGFtbV9wb29sX2lkYCBkb2Vzbid0IG1hdGNoIGRlcG9zaXQncyBgYW1tX3Bvb2xfaWRgLkRJbmNvbnNpc3RlbnRTdGF0ZQQApQsBWEluY29uc2lzdGVudFN0YXRlRXJyb3IAHAhlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4hDQxYcGFsbGV0X3JlbGF5Y2hhaW5faW5mbxhwYWxsZXQURXJyb3IEBFQAAQAEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuJQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEoBFMAAAQAtQIBGFZlYzxUPgAAKQ0MNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJjZW50AAAEAAgBCHU4AAAtDQwocGFsbGV0X2RjYRhwYWxsZXQURXJyb3IEBFQAAVBAU2NoZWR1bGVOb3RGb3VuZAAABEhTY2hlZHVsZSBub3QgZXhpc3RgTWluVHJhZGVBbW91bnROb3RSZWFjaGVkAAEEjFRoZSBtaW4gdHJhZGUgYW1vdW50IGlzIG5vdCByZWFjaGVkJEZvcmJpZGRlbgACBNhGb3JiaWRkZW4gYXMgdGhlIHVzZXIgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgc2NoZWR1bGVgQmxvY2tOdW1iZXJJc05vdEluRnV0dXJlAAME0FRoZSBuZXh0IGV4ZWN1dGlvbiBibG9jayBudW1iZXIgaXMgbm90IGluIHRoZSBmdXR1cmU0UHJpY2VVbnN0YWJsZQAEBDUBUHJpY2UgaXMgdW5zdGFibGUgYXMgcHJpY2UgY2hhbmdlIGZyb20gb3JhY2xlIGRhdGEgaXMgYmlnZ2VyIHRoYW4gbWF4IGFsbG93ZWQYQnVtcGVkAAUEsE9yZGVyIHdhcyByYW5kb21seSByZXNjaGVkdWxlZCB0byBuZXh0IGJsb2NrVENhbGN1bGF0aW5nUHJpY2VFcnJvcgAGBJRFcnJvciBvY2N1cnJlZCB3aGVuIGNhbGN1bGF0aW5nIHByaWNlhFRvdGFsQW1vdW50SXNTbWFsbGVyVGhhbk1pbkJ1ZGdldAAHBOhUaGUgdG90YWwgYW1vdW50IHRvIGJlIHJlc2VydmVkIGlzIHNtYWxsZXIgdGhhbiBtaW4gYnVkZ2V0MEJ1ZGdldFRvb0xvdwAIBNxUaGUgYnVkZ2V0IGlzIHRvbyBsb3cgZm9yIGV4ZWN1dGluZyBhdCBsZWFzdCB0d28gb3JkZXJzQE5vRnJlZUJsb2NrRm91bmQACQTIVGhlcmUgaXMgbm8gZnJlZSBibG9jayBmb3VuZCB0byBwbGFuIERDQSBleGVjdXRpb25ITWFudWFsbHlUZXJtaW5hdGVkAAoEtFRoZSBEQ0Egc2NoZWR1bGUgaGFzIGJlZW4gbWFudWFsbHkgdGVybWluYXRlZDxNYXhSZXRyeVJlYWNoZWQACwSoTWF4IG51bWJlciBvZiByZXRyaWVzIHJlYWNoZWQgZm9yIHNjaGVkdWxlRFRyYWRlTGltaXRSZWFjaGVkAAwEwEFic29sdXRlbHkgdHJhZGUgbGltaXQgcmVhY2hlZCwgbGVhZGluZyB0byByZXRyeVBTbGlwcGFnZUxpbWl0UmVhY2hlZAANBAkBU2xpcHBhZ2UgbGltaXQgY2FsY3VsYXRlZCBmcm9tIG9yYWNsZSBpcyByZWFjaGVkLCBsZWFkaW5nIHRvIHJldHJ5RE5vUGFyZW50SGFzaEZvdW5kAA4EuE5vIHBhcmVudCBoYXNoIGhhcyBiZWVuIGZvdW5kIGZyb20gcmVsYXkgY2hhaW4wSW52YWxpZFN0YXRlAA8EhQFFcnJvciB0aGF0IHNob3VsZCBub3QgcmVhbGx5IGhhcHBlbiBvbmx5IGluIGNhc2Ugb2YgaW52YWxpZCBzdGF0ZSBvZiB0aGUgc2NoZWR1bGUgc3RvcmFnZSBlbnRyaWVzOFBlcmlvZFRvb1Nob3J0ABAElFBlcmlvZCBzaG91bGQgYmUgbG9uZ2VyIHRoYW4gNSBibG9ja3NkU3RhYmlsaXR5VGhyZXNob2xkVG9vSGlnaAARBFkBU3RhYmlsaXR5IHRocmVzaG9sZCBjYW5ub3QgYmUgaGlnaGVyIHRoYW4gYE1heENvbmZpZ3VyYWJsZVByaWNlRGlmZmVyZW5jZUJldHdlZW5CbG9ja2BISGFzQWN0aXZlU2NoZWR1bGVzABIE+FVzZXIgc3RpbGwgaGFzIGFjdGl2ZSBEQ0Egc2NoZWR1bGVzIGFuZCBjYW5ub3QgdW5sb2NrIHJlc2VydmVzQE5vUmVzZXJ2ZXNMb2NrZWQAEwTcTm8gcmVzZXJ2ZXMgYXJlIGxvY2tlZCBmb3IgdGhlIHVzZXIgZm9yIHRoZSBnaXZlbiBhc3NldASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4xDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATUNBFMAAAQAPQ0BGFZlYzxUPgAANQ0EGE9wdGlvbgQEVAE5DQEIEE5vbmUAAAAQU29tZQQAOQ0AAAEAADkNCEBwYWxsZXRfc2NoZWR1bGVyJFNjaGVkdWxlZBQQTmFtZQEEEENhbGwBqQEsQmxvY2tOdW1iZXIBKDRQYWxsZXRzT3JpZ2luAYQkQWNjb3VudElkAQAAFAEgbWF5YmVfaWTxBgEwT3B0aW9uPE5hbWU+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsqQEBEENhbGwAAThtYXliZV9wZXJpb2RpY9ECAZRPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlcj4+AAEYb3JpZ2luhAE0UGFsbGV0c09yaWdpbgAAPQ0AAAI1DQBBDQhAcGFsbGV0X3NjaGVkdWxlcixSZXRyeUNvbmZpZwQYUGVyaW9kASgADAE0dG90YWxfcmV0cmllcwgBCHU4AAEkcmVtYWluaW5nCAEIdTgAARhwZXJpb2QoARhQZXJpb2QAAEUNDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFcnJvcgQEVAABFEBGYWlsZWRUb1NjaGVkdWxlAAAEZEZhaWxlZCB0byBzY2hlZHVsZSBhIGNhbGwgTm90Rm91bmQAAQR8Q2Fubm90IGZpbmQgdGhlIHNjaGVkdWxlZCBjYWxsLlxUYXJnZXRCbG9ja051bWJlckluUGFzdAACBKRHaXZlbiB0YXJnZXQgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LkhSZXNjaGVkdWxlTm9DaGFuZ2UAAwTwUmVzY2hlZHVsZSBmYWlsZWQgYmVjYXVzZSBpdCBkb2VzIG5vdCBjaGFuZ2Ugc2NoZWR1bGVkIHRpbWUuFE5hbWVkAAQE0EF0dGVtcHQgdG8gdXNlIGEgbm9uLW5hbWVkIGZ1bmN0aW9uIG9uIGEgbmFtZWQgdGFzay4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuSQ0AAAJNDQBNDQx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBLAAMATh1c2VkX2JhbmR3aWR0aFENATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2jFAQEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsZQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABRDQx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudCgBDHUzMgABPHVtcF90b3RhbF9ieXRlcygBDHUzMgABNGhybXBfb3V0Z29pbmdVDQGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AAFUNBCBCVHJlZU1hcAgESwHgBFYBWQ0ABABdDQAAAFkNDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudERIcm1wQ2hhbm5lbFVwZGF0ZQAACAEkbXNnX2NvdW50KAEMdTMyAAEsdG90YWxfYnl0ZXMoAQx1MzIAAF0NAAACYQ0AYQ0AAAQI4FkNAGUNBBhPcHRpb24EBFQBaQ0BCBBOb25lAAAAEFNvbWUEAGkNAAABAABpDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODhVcGdyYWRlR29BaGVhZAABCBRBYm9ydAAAABxHb0FoZWFkAAEAAG0NDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDhTZWdtZW50VHJhY2tlcgQESAEsAAwBOHVzZWRfYmFuZHdpZHRoUQ0BNFVzZWRCYW5kd2lkdGgAAThocm1wX3dhdGVybWFya3QBgE9wdGlvbjxyZWxheV9jaGFpbjo6QmxvY2tOdW1iZXI+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsZQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABxDQQYT3B0aW9uBARUAXUNAQgQTm9uZQAAABBTb21lBAB1DQAAAQAAdQ0MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAAeQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3RYTWVzc2FnaW5nU3RhdGVTbmFwc2hvdAAAEAEwZG1xX21xY19oZWFkLAFEcmVsYXlfY2hhaW46Okhhc2gAAZxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHl9DQGMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAUBpbmdyZXNzX2NoYW5uZWxzgQ0BiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AATxlZ3Jlc3NfY2hhbm5lbHOBDQGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgAAfQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3SMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAAgBPHJlbWFpbmluZ19jb3VudCgBDHUzMgABOHJlbWFpbmluZ19zaXplKAEMdTMyAACBDQAAAoUNAIUNAAAECOCJDQCJDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OExBYnJpZGdlZEhybXBDaGFubmVsAAAYATBtYXhfY2FwYWNpdHkoAQx1MzIAAThtYXhfdG90YWxfc2l6ZSgBDHUzMgABQG1heF9tZXNzYWdlX3NpemUoAQx1MzIAASRtc2dfY291bnQoAQx1MzIAASh0b3RhbF9zaXplKAEMdTMyAAEgbXFjX2hlYWTFAQEwT3B0aW9uPEhhc2g+AACNDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OGRBYnJpZGdlZEhvc3RDb25maWd1cmF0aW9uAAAoATRtYXhfY29kZV9zaXplKAEMdTMyAAFIbWF4X2hlYWRfZGF0YV9zaXplKAEMdTMyAAFYbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudCgBDHUzMgABVG1heF91cHdhcmRfcXVldWVfc2l6ZSgBDHUzMgABXG1heF91cHdhcmRfbWVzc2FnZV9zaXplKAEMdTMyAAGQbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlKAEMdTMyAAGIaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZSgBDHUzMgABbHZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bigBLEJsb2NrTnVtYmVyAAFgdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5KAEsQmxvY2tOdW1iZXIAAVBhc3luY19iYWNraW5nX3BhcmFtc5ENAUhBc3luY0JhY2tpbmdQYXJhbXMAAJENEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmdIQXN5bmNCYWNraW5nUGFyYW1zAAAIAUxtYXhfY2FuZGlkYXRlX2RlcHRoKAEMdTMyAAFQYWxsb3dlZF9hbmNlc3RyeV9sZW4oAQx1MzIAAJUNCJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50RE1lc3NhZ2VRdWV1ZUNoYWluAAAEACwBJFJlbGF5SGFzaAAAmQ0EIEJUcmVlTWFwCARLAeAEVgGVDQAEAJ0NAAAAnQ0AAAKhDQChDQAABAjglQ0ApQ0AAAKpDQCpDQhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAeAACAEkcmVjaXBpZW504AEISWQAARBkYXRhFAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAArQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEYTE92ZXJsYXBwaW5nVXBncmFkZXMAAAQZAUF0dGVtcHQgdG8gdXBncmFkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdoaWxlIGV4aXN0aW5nIHVwZ3JhZGUgcGVuZGluZy5QUHJvaGliaXRlZEJ5UG9sa2Fkb3QAAQRNAVBvbGthZG90IGN1cnJlbnRseSBwcm9oaWJpdHMgdGhpcyBwYXJhY2hhaW4gZnJvbSB1cGdyYWRpbmcgaXRzIHZhbGlkYXRpb24gZnVuY3Rpb24uGFRvb0JpZwACCEUBVGhlIHN1cHBsaWVkIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGNvbXBpbGVkIGludG8gYSBibG9iIGxhcmdlciB0aGFuIFBvbGthZG90IGlzPHdpbGxpbmcgdG8gcnVuLmhWYWxpZGF0aW9uRGF0YU5vdEF2YWlsYWJsZQADBB0BVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWxpZGF0aW9uIGRhdGEgZGlkIG5vdCBydW4gdGhpcyBibG9jay50SG9zdENvbmZpZ3VyYXRpb25Ob3RBdmFpbGFibGUABAQpAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgaG9zdCBjb25maWd1cmF0aW9uIGRpZCBub3QgcnVuIHRoaXMgYmxvY2suME5vdFNjaGVkdWxlZAAFBNhObyB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVwZ3JhZGUgaXMgY3VycmVudGx5IHNjaGVkdWxlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQusQ0MKHBhbGxldF94Y20YcGFsbGV0LFF1ZXJ5U3RhdHVzBCxCbG9ja051bWJlcgEoAQwcUGVuZGluZxABJHJlc3BvbmRlcq0EAURWZXJzaW9uZWRMb2NhdGlvbgABTG1heWJlX21hdGNoX3F1ZXJpZXK1DQFkT3B0aW9uPFZlcnNpb25lZExvY2F0aW9uPgABMG1heWJlX25vdGlmebkNAUBPcHRpb248KHU4LCB1OCk+AAEcdGltZW91dCgBLEJsb2NrTnVtYmVyAAAAPFZlcnNpb25Ob3RpZmllcggBGG9yaWdpbq0EAURWZXJzaW9uZWRMb2NhdGlvbgABJGlzX2FjdGl2ZUQBEGJvb2wAAQAUUmVhZHkIASByZXNwb25zZcENAURWZXJzaW9uZWRSZXNwb25zZQABCGF0KAEsQmxvY2tOdW1iZXIAAgAAtQ0EGE9wdGlvbgQEVAGtBAEIEE5vbmUAAAAQU29tZQQArQQAAAEAALkNBBhPcHRpb24EBFQBvQ0BCBBOb25lAAAAEFNvbWUEAL0NAAABAAC9DQAABAgICADBDQgMeGNtRFZlcnNpb25lZFJlc3BvbnNlAAEMCFYzBAAhBQEwdjM6OlJlc3BvbnNlAAMACFY0BACNBQEwdjQ6OlJlc3BvbnNlAAQACFY1BADZBQEwdjU6OlJlc3BvbnNlAAUAAMUNAAAECCitBADJDQAABAwY5CgAzQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHRDQRTAAAEANUNARhWZWM8VD4AANENAAAECK0EKADVDQAAAtENANkNDChwYWxsZXRfeGNtGHBhbGxldFRWZXJzaW9uTWlncmF0aW9uU3RhZ2UAARBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAABcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQBQTm90aWZ5Q3VycmVudFRhcmdldHMEAJEGATxPcHRpb248VmVjPHU4Pj4AAgBoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAwAA3Q0AAAQMKABlBgDhDQwocGFsbGV0X3hjbRhwYWxsZXRoUmVtb3RlTG9ja2VkRnVuZ2libGVSZWNvcmQISENvbnN1bWVySWRlbnRpZmllcgFwME1heENvbnN1bWVycwAAEAEYYW1vdW50QAEQdTEyOAABFG93bmVyrQQBRFZlcnNpb25lZExvY2F0aW9uAAEYbG9ja2VyrQQBRFZlcnNpb25lZExvY2F0aW9uAAEkY29uc3VtZXJz5Q0B0EJvdW5kZWRWZWM8KENvbnN1bWVySWRlbnRpZmllciwgdTEyOCksIE1heENvbnN1bWVycz4AAOUNDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6Q0EUwAABADtDQEYVmVjPFQ+AADpDQAABAhwQADtDQAAAukNAPENDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB9Q0EUwAABAD5DQEYVmVjPFQ+AAD1DQAABAhArQQA+Q0AAAL1DQD9DQgocGFsbGV0X3hjbVhBdXRob3JpemVkQWxpYXNlc0VudHJ5CBhUaWNrZXQBAQ4MTUFYAQUOAAgBIGFsaWFzZXJzCQ4BeEJvdW5kZWRWZWM8T3JpZ2luQWxpYXNlciwgTUFYPgABGHRpY2tldAEOARhUaWNrZXQAAAEOEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxxzdG9yYWdlIERpc2FibGVkAAAAAAUODChwYWxsZXRfeGNtGHBhbGxldFBNYXhBdXRob3JpemVkQWxpYXNlcwAAAAAJDgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQ0OBFMAAAQAEQ4BGFZlYzxUPgAADQ4MQHhjbV9ydW50aW1lX2FwaXNIYXV0aG9yaXplZF9hbGlhc2VzNE9yaWdpbkFsaWFzZXIAAAgBIGxvY2F0aW9urQQBRFZlcnNpb25lZExvY2F0aW9uAAEYZXhwaXJ5WQMBLE9wdGlvbjx1NjQ+AAARDgAAAg0OABUODChwYWxsZXRfeGNtGHBhbGxldBRFcnJvcgQEVAABcCxVbnJlYWNoYWJsZQAACF0BVGhlIGRlc2lyZWQgZGVzdGluYXRpb24gd2FzIHVucmVhY2hhYmxlLCBnZW5lcmFsbHkgYmVjYXVzZSB0aGVyZSBpcyBhIG5vIHdheSBvZiByb3V0aW5nGHRvIGl0LixTZW5kRmFpbHVyZQABCEEBVGhlcmUgd2FzIHNvbWUgb3RoZXIgaXNzdWUgKGkuZS4gbm90IHRvIGRvIHdpdGggcm91dGluZykgaW4gc2VuZGluZyB0aGUgbWVzc2FnZS7IUGVyaGFwcyBhIGxhY2sgb2Ygc3BhY2UgZm9yIGJ1ZmZlcmluZyB0aGUgbWVzc2FnZS4gRmlsdGVyZWQAAgScVGhlIG1lc3NhZ2UgZXhlY3V0aW9uIGZhaWxzIHRoZSBmaWx0ZXIuSFVud2VpZ2hhYmxlTWVzc2FnZQADBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5gRGVzdGluYXRpb25Ob3RJbnZlcnRpYmxlAAQE3FRoZSBkZXN0aW5hdGlvbiBgTG9jYXRpb25gIHByb3ZpZGVkIGNhbm5vdCBiZSBpbnZlcnRlZC4URW1wdHkABQSAVGhlIGFzc2V0cyB0byBiZSBzZW50IGFyZSBlbXB0eS44Q2Fubm90UmVhbmNob3IABgQ1AUNvdWxkIG5vdCByZS1hbmNob3IgdGhlIGFzc2V0cyB0byBkZWNsYXJlIHRoZSBmZWVzIGZvciB0aGUgZGVzdGluYXRpb24gY2hhaW4uNFRvb01hbnlBc3NldHMABwTEVG9vIG1hbnkgYXNzZXRzIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLjRJbnZhbGlkT3JpZ2luAAgEeE9yaWdpbiBpcyBpbnZhbGlkIGZvciBzZW5kaW5nLihCYWRWZXJzaW9uAAkEIQFUaGUgdmVyc2lvbiBvZiB0aGUgYFZlcnNpb25lZGAgdmFsdWUgdXNlZCBpcyBub3QgYWJsZSB0byBiZSBpbnRlcnByZXRlZC4sQmFkTG9jYXRpb24ACghBAVRoZSBnaXZlbiBsb2NhdGlvbiBjb3VsZCBub3QgYmUgdXNlZCAoZS5nLiBiZWNhdXNlIGl0IGNhbm5vdCBiZSBleHByZXNzZWQgaW4gdGhlYGRlc2lyZWQgdmVyc2lvbiBvZiBYQ00pLjhOb1N1YnNjcmlwdGlvbgALBLxUaGUgcmVmZXJlbmNlZCBzdWJzY3JpcHRpb24gY291bGQgbm90IGJlIGZvdW5kLkRBbHJlYWR5U3Vic2NyaWJlZAAMBBEBVGhlIGxvY2F0aW9uIGlzIGludmFsaWQgc2luY2UgaXQgYWxyZWFkeSBoYXMgYSBzdWJzY3JpcHRpb24gZnJvbSB1cy5YQ2Fubm90Q2hlY2tPdXRUZWxlcG9ydAANBCkBQ291bGQgbm90IGNoZWNrLW91dCB0aGUgYXNzZXRzIGZvciB0ZWxlcG9ydGF0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4oTG93QmFsYW5jZQAOBEEBVGhlIG93bmVyIGRvZXMgbm90IG93biAoYWxsKSBvZiB0aGUgYXNzZXQgdGhhdCB0aGV5IHdpc2ggdG8gZG8gdGhlIG9wZXJhdGlvbiBvbi4wVG9vTWFueUxvY2tzAA8EwFRoZSBhc3NldCBvd25lciBoYXMgdG9vIG1hbnkgbG9ja3Mgb24gdGhlIGFzc2V0LkxBY2NvdW50Tm90U292ZXJlaWduABAEMQFUaGUgZ2l2ZW4gYWNjb3VudCBpcyBub3QgYW4gaWRlbnRpZmlhYmxlIHNvdmVyZWlnbiBhY2NvdW50IGZvciBhbnkgbG9jYXRpb24uKEZlZXNOb3RNZXQAEQQpAVRoZSBvcGVyYXRpb24gcmVxdWlyZWQgZmVlcyB0byBiZSBwYWlkIHdoaWNoIHRoZSBpbml0aWF0b3IgY291bGQgbm90IG1lZXQuMExvY2tOb3RGb3VuZAASBPRBIHJlbW90ZSBsb2NrIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBjb3VsZCBub3QgYmUgZm91bmQuFEluVXNlABMESQFUaGUgdW5sb2NrIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCBiZWNhdXNlIHRoZXJlIGFyZSBzdGlsbCBjb25zdW1lcnMgb2YgdGhlIGxvY2suaEludmFsaWRBc3NldFVua25vd25SZXNlcnZlABUE8EludmFsaWQgYXNzZXQsIHJlc2VydmUgY2hhaW4gY291bGQgbm90IGJlIGRldGVybWluZWQgZm9yIGl0LnhJbnZhbGlkQXNzZXRVbnN1cHBvcnRlZFJlc2VydmUAFgRFAUludmFsaWQgYXNzZXQsIGRvIG5vdCBzdXBwb3J0IHJlbW90ZSBhc3NldCByZXNlcnZlcyB3aXRoIGRpZmZlcmVudCBmZWVzIHJlc2VydmVzLjxUb29NYW55UmVzZXJ2ZXMAFwRJAVRvbyBtYW55IGFzc2V0cyB3aXRoIGRpZmZlcmVudCByZXNlcnZlIGxvY2F0aW9ucyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci5gTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlABgEfExvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZS5gVG9vTWFueUF1dGhvcml6ZWRBbGlhc2VzABkEuFRvbyBtYW55IGxvY2F0aW9ucyBhdXRob3JpemVkIHRvIGFsaWFzIG9yaWdpbi40RXhwaXJlc0luUGFzdAAaBIxFeHBpcnkgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LjRBbGlhc05vdEZvdW5kABsE0FRoZSBhbGlhcyB0byByZW1vdmUgYXV0aG9yaXphdGlvbiBmb3Igd2FzIG5vdCBmb3VuZC6ETG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yCAEUaW5kZXgIAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3IZDgE4RXhlY3V0aW9uRXJyb3IAHAg1AUxvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZSB3aXRoIHRoZSBhY3R1YWwgWENNIGVycm9yIGFuZCB0aGUgaW5kZXggb2YgdGhliGluc3RydWN0aW9uIHRoYXQgY2F1c2VkIHRoZSBlcnJvci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuGQ4MKHBhbGxldF94Y20YZXJyb3JzOEV4ZWN1dGlvbkVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAHQ4MTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAeAEUwAABAAhDgEsQlRyZWVTZXQ8VD4AACEOBCBCVHJlZVNldAQEVAHgAAQAJQ4AAAAlDgAAAuAAKQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEtDgRTAAAEADUOARhWZWM8VD4AAC0OCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABQBJHJlY2lwaWVudOABGFBhcmFJZAABFHN0YXRlMQ4BNE91dGJvdW5kU3RhdGUAATRzaWduYWxzX2V4aXN0RAEQYm9vbAABLGZpcnN0X2luZGV4gAEMdTE2AAEobGFzdF9pbmRleIABDHUxNgAAMQ4IZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU0T3V0Ym91bmRTdGF0ZQABCAhPawAAACRTdXNwZW5kZWQAAQAANQ4AAAItDgA5DgAABAjggAA9DgxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAEEOCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlPFF1ZXVlQ29uZmlnRGF0YQAADAFEc3VzcGVuZF90aHJlc2hvbGQoAQx1MzIAAThkcm9wX3RocmVzaG9sZCgBDHUzMgABQHJlc3VtZV90aHJlc2hvbGQoAQx1MzIAAEUODGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABFDhCYWRRdWV1ZUNvbmZpZwAABBEBU2V0dGluZyB0aGUgcXVldWUgY29uZmlnIGZhaWxlZCBzaW5jZSBvbmUgb2YgaXRzIHZhbHVlcyB3YXMgaW52YWxpZC5AQWxyZWFkeVN1c3BlbmRlZAABBIxUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgc3VzcGVuZGVkLjhBbHJlYWR5UmVzdW1lZAACBIRUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgcmVzdW1lZC50VG9vTWFueUFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMAAwSwVGhlcmUgYXJlIHRvbyBtYW55IGFjdGl2ZSBvdXRib3VuZCBjaGFubmVscy4YVG9vQmlnAAQEXFRoZSBtZXNzYWdlIGlzIHRvbyBiaWcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkOCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZSRCb29rU3RhdGUENE1lc3NhZ2VPcmlnaW4BcQYAGAEUYmVnaW4oASRQYWdlSW5kZXgAAQxlbmQoASRQYWdlSW5kZXgAARRjb3VudCgBJFBhZ2VJbmRleAABQHJlYWR5X25laWdoYm91cnNNDgGET3B0aW9uPE5laWdoYm91cnM8TWVzc2FnZU9yaWdpbj4+AAE0bWVzc2FnZV9jb3VudBgBDHU2NAABEHNpemUYAQx1NjQAAE0OBBhPcHRpb24EBFQBUQ4BCBBOb25lAAAAEFNvbWUEAFEOAAABAABRDghQcGFsbGV0X21lc3NhZ2VfcXVldWUoTmVpZ2hib3VycwQ0TWVzc2FnZU9yaWdpbgFxBgAIARBwcmV2cQYBNE1lc3NhZ2VPcmlnaW4AARBuZXh0cQYBNE1lc3NhZ2VPcmlnaW4AAFUOAAAECHEGKABZDghQcGFsbGV0X21lc3NhZ2VfcXVldWUQUGFnZQgQU2l6ZQEoIEhlYXBTaXplAAAYASRyZW1haW5pbmcoARBTaXplAAE4cmVtYWluaW5nX3NpemUoARBTaXplAAEsZmlyc3RfaW5kZXgoARBTaXplAAEUZmlyc3QoARBTaXplAAEQbGFzdCgBEFNpemUAARBoZWFwXQ4BnEJvdW5kZWRWZWM8dTgsIEludG9VMzI8SGVhcFNpemUsIFNpemU+PgAAXQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABhDgxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEVycm9yBARUAAEkLE5vdFJlYXBhYmxlAAAISQFQYWdlIGlzIG5vdCByZWFwYWJsZSBiZWNhdXNlIGl0IGhhcyBpdGVtcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIGFuZCBpcyBub3Qgb2xkHGVub3VnaC4YTm9QYWdlAAEEhFBhZ2UgdG8gYmUgcmVhcGVkIGRvZXMgbm90IGV4aXN0LiROb01lc3NhZ2UAAgSoVGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBjb3VsZCBub3QgYmUgZm91bmQuQEFscmVhZHlQcm9jZXNzZWQAAwQBAVRoZSBtZXNzYWdlIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZCBhZ2Fpbi4YUXVldWVkAAQErFRoZSBtZXNzYWdlIGlzIHF1ZXVlZCBmb3IgZnV0dXJlIGV4ZWN1dGlvbi5ISW5zdWZmaWNpZW50V2VpZ2h0AAUEGQFUaGVyZSBpcyB0ZW1wb3JhcmlseSBub3QgZW5vdWdoIHdlaWdodCB0byBjb250aW51ZSBzZXJ2aWNpbmcgbWVzc2FnZXMuYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQAGEKhUaGlzIG1lc3NhZ2UgaXMgdGVtcG9yYXJpbHkgdW5wcm9jZXNzYWJsZS4AWQFTdWNoIGVycm9ycyBhcmUgZXhwZWN0ZWQsIGJ1dCBub3QgZ3VhcmFudGVlZCwgdG8gcmVzb2x2ZSB0aGVtc2VsdmVzIGV2ZW50dWFsbHkgdGhyb3VnaCRyZXRyeWluZy4sUXVldWVQYXVzZWQABwzsVGhlIHF1ZXVlIGlzIHBhdXNlZCBhbmQgbm8gbWVzc2FnZSBjYW4gYmUgZXhlY3V0ZWQgZnJvbSBpdC4AHQFUaGlzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgYW5kIG1heSByZXNvbHZlIGluIHRoZSBmdXR1cmUgYnkgcmUtdHJ5aW5nLkxSZWN1cnNpdmVEaXNhbGxvd2VkAAgEMQFBbm90aGVyIGNhbGwgaXMgaW4gcHJvZ3Jlc3MgYW5kIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgdGhpcyBjYWxsIGNhbiBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmUODERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQURXJyb3IEBFQAAQQcT25nb2luZwAABOhUaGUgb3BlcmF0aW9uIGNhbm5vdCBjb21wbGV0ZSBzaW5jZSBzb21lIE1CTXMgYXJlIG9uZ29pbmcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmkODCBvcm1sX3hjbRhtb2R1bGUURXJyb3IEBFQAAQwsVW5yZWFjaGFibGUAAAgNAVRoZSBtZXNzYWdlIGFuZCBkZXN0aW5hdGlvbiBjb21iaW5hdGlvbiB3YXMgbm90IHJlY29nbml6ZWQgYXMgYmVpbmcocmVhY2hhYmxlLixTZW5kRmFpbHVyZQABCAUBVGhlIG1lc3NhZ2UgYW5kIGRlc3RpbmF0aW9uIHdhcyByZWNvZ25pemVkIGFzIGJlaW5nIHJlYWNoYWJsZSBidXSUdGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgY29tcGxldGVkLihCYWRWZXJzaW9uAAII7FRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlMGludGVycHJldGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5tDgwwb3JtbF94dG9rZW5zGG1vZHVsZRRFcnJvcgQEVAABUERBc3NldEhhc05vUmVzZXJ2ZQAABHhBc3NldCBoYXMgbm8gcmVzZXJ2ZSBsb2NhdGlvbi5UTm90Q3Jvc3NDaGFpblRyYW5zZmVyAAEEZE5vdCBjcm9zcy1jaGFpbiB0cmFuc2Zlci4sSW52YWxpZERlc3QAAgR0SW52YWxpZCB0cmFuc2ZlciBkZXN0aW5hdGlvbi6ETm90Q3Jvc3NDaGFpblRyYW5zZmVyYWJsZUN1cnJlbmN5AAMEpEN1cnJlbmN5IGlzIG5vdCBjcm9zcy1jaGFpbiB0cmFuc2ZlcmFibGUuSFVud2VpZ2hhYmxlTWVzc2FnZQAEBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5IWGNtRXhlY3V0aW9uRmFpbGVkAAUEVFhDTSBleGVjdXRpb24gZmFpbGVkLjhDYW5ub3RSZWFuY2hvcgAGCOhDb3VsZCBub3QgcmUtYW5jaG9yIHRoZSBhc3NldHMgdG8gZGVjbGFyZSB0aGUgZmVlcyBmb3IgdGhlSGRlc3RpbmF0aW9uIGNoYWluLjxJbnZhbGlkQW5jZXN0cnkABwTEQ291bGQgbm90IGdldCBhbmNlc3RyeSBvZiBhc3NldCByZXNlcnZlIGxvY2F0aW9uLjBJbnZhbGlkQXNzZXQACARUVGhlIEFzc2V0IGlzIGludmFsaWQuYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQAJBNxUaGUgZGVzdGluYXRpb24gYExvY2F0aW9uYCBwcm92aWRlZCBjYW5ub3QgYmUgaW52ZXJ0ZWQuKEJhZFZlcnNpb24ACgjsVGhlIHZlcnNpb24gb2YgdGhlIGBWZXJzaW9uZWRgIHZhbHVlIHVzZWQgaXMgbm90IGFibGUgdG8gYmUwaW50ZXJwcmV0ZWQudERpc3RpbmN0UmVzZXJ2ZUZvckFzc2V0QW5kRmVlAAsI/FdlIHRyaWVkIHNlbmRpbmcgZGlzdGluY3QgYXNzZXQgYW5kIGZlZSBidXQgdGhleSBoYXZlIGRpZmZlcmVudDxyZXNlcnZlIGNoYWlucy4cWmVyb0ZlZQAMBEBUaGUgZmVlIGlzIHplcm8uKFplcm9BbW91bnQADQSYVGhlIHRyYW5zZmVycmluZyBhc3NldCBhbW91bnQgaXMgemVyby5YVG9vTWFueUFzc2V0c0JlaW5nU2VudAAOBNBUaGUgbnVtYmVyIG9mIGFzc2V0cyB0byBiZSBzZW50IGlzIG92ZXIgdGhlIG1heGltdW0uVEFzc2V0SW5kZXhOb25FeGlzdGVudAAPBNhUaGUgc3BlY2lmaWVkIGluZGV4IGRvZXMgbm90IGV4aXN0IGluIGEgQXNzZXRzIHN0cnVjdC4wRmVlTm90RW5vdWdoABAESEZlZSBpcyBub3QgZW5vdWdoLlBOb3RTdXBwb3J0ZWRMb2NhdGlvbgARBFhOb3Qgc3VwcG9ydGVkIExvY2F0aW9uTE1pblhjbUZlZU5vdERlZmluZWQAEgTUTWluWGNtRmVlIG5vdCByZWdpc3RlcmVkIGZvciBjZXJ0YWluIHJlc2VydmUgbG9jYXRpb24sUmF0ZUxpbWl0ZWQAEwSkQXNzZXQgdHJhbnNmZXIgaXMgbGltaXRlZCBieSBSYXRlTGltaXRlci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQucQ4AAAQInJwAdQ4AAAQInBQAeQ4MTG9ybWxfdW5rbm93bl90b2tlbnMYbW9kdWxlFEVycm9yBARUAAEMNEJhbGFuY2VUb29Mb3cAAARcVGhlIGJhbGFuY2UgaXMgdG9vIGxvdy48QmFsYW5jZU92ZXJmbG93AAEEtFRoZSBvcGVyYXRpb24gd2lsbCBjYXVzZSBiYWxhbmNlIHRvIG92ZXJmbG93LjhVbmhhbmRsZWRBc3NldAACBEBVbmhhbmRsZWQgYXNzZXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ln0ODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBgQ4EUwAABACFDgEYVmVjPFQ+AACBDgxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQ0Q2FuZGlkYXRlSW5mbwgkQWNjb3VudElkAQAcQmFsYW5jZQFAAAgBDHdobwABJEFjY291bnRJZAABHGRlcG9zaXRAARxCYWxhbmNlAACFDgAAAoEOAIkODGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFcnJvcgQEVAABRERUb29NYW55Q2FuZGlkYXRlcwAABIxUaGUgcGFsbGV0IGhhcyB0b28gbWFueSBjYW5kaWRhdGVzLlxUb29GZXdFbGlnaWJsZUNvbGxhdG9ycwABBKxMZWF2aW5nIHdvdWxkIHJlc3VsdCBpbiB0b28gZmV3IGNhbmRpZGF0ZXMuQEFscmVhZHlDYW5kaWRhdGUAAgR8QWNjb3VudCBpcyBhbHJlYWR5IGEgY2FuZGlkYXRlLjBOb3RDYW5kaWRhdGUAAwRsQWNjb3VudCBpcyBub3QgYSBjYW5kaWRhdGUuUFRvb01hbnlJbnZ1bG5lcmFibGVzAAQEhFRoZXJlIGFyZSB0b28gbWFueSBJbnZ1bG5lcmFibGVzLkxBbHJlYWR5SW52dWxuZXJhYmxlAAUEjEFjY291bnQgaXMgYWxyZWFkeSBhbiBJbnZ1bG5lcmFibGUuPE5vdEludnVsbmVyYWJsZQAGBHxBY2NvdW50IGlzIG5vdCBhbiBJbnZ1bG5lcmFibGUuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAcEnEFjY291bnQgaGFzIG5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElELlhWYWxpZGF0b3JOb3RSZWdpc3RlcmVkAAgEjFZhbGlkYXRvciBJRCBpcyBub3QgeWV0IHJlZ2lzdGVyZWQubEluc2VydFRvQ2FuZGlkYXRlTGlzdEZhaWxlZAAJBJxDb3VsZCBub3QgaW5zZXJ0IGluIHRoZSBjYW5kaWRhdGUgbGlzdC50UmVtb3ZlRnJvbUNhbmRpZGF0ZUxpc3RGYWlsZWQACgSkQ291bGQgbm90IHJlbW92ZSBmcm9tIHRoZSBjYW5kaWRhdGUgbGlzdC40RGVwb3NpdFRvb0xvdwALBPROZXcgZGVwb3NpdCBhbW91bnQgd291bGQgYmUgYmVsb3cgdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQuZFVwZGF0ZUNhbmRpZGF0ZUxpc3RGYWlsZWQADASQQ291bGQgbm90IHVwZGF0ZSB0aGUgY2FuZGlkYXRlIGxpc3QuQEluc3VmZmljaWVudEJvbmQADQQpAURlcG9zaXQgYW1vdW50IGlzIHRvbyBsb3cgdG8gdGFrZSB0aGUgdGFyZ2V0J3Mgc2xvdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QuUFRhcmdldElzTm90Q2FuZGlkYXRlAA4ELQFUaGUgdGFyZ2V0IGFjY291bnQgdG8gYmUgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGlzIG5vdCBhIGNhbmRpZGF0ZS5ASWRlbnRpY2FsRGVwb3NpdAAPBA0BVGhlIHVwZGF0ZWQgZGVwb3NpdCBhbW91bnQgaXMgZXF1YWwgdG8gdGhlIGFtb3VudCBhbHJlYWR5IHJlc2VydmVkLkBJbnZhbGlkVW5yZXNlcnZlABAEPQFDYW5ub3QgbG93ZXIgY2FuZGlkYWN5IGJvbmQgd2hpbGUgb2NjdXB5aW5nIGEgZnV0dXJlIGNvbGxhdG9yIHNsb3QgaW4gdGhlIGxpc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lo0OAAACkQ4AkQ4AAAQIAK0GAJUOAAACmQ4AmQ4AAAQIKJ0OAJ0ODChzcF9zdGFraW5nHG9mZmVuY2U8T2ZmZW5jZVNldmVyaXR5AAAEACkDARxQZXJiaWxsAAChDgAABAilDhQApQ4MHHNwX2NvcmUYY3J5cHRvJEtleVR5cGVJZAAABAC4ARxbdTg7IDRdAACpDgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEVycm9yBARUAAEUMEludmFsaWRQcm9vZgAABGBJbnZhbGlkIG93bmVyc2hpcCBwcm9vZi5cTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQAAQScTm8gYXNzb2NpYXRlZCB2YWxpZGF0b3IgSUQgZm9yIGFjY291bnQuNER1cGxpY2F0ZWRLZXkAAgRkUmVnaXN0ZXJlZCBkdXBsaWNhdGUga2V5LhhOb0tleXMAAwSkTm8ga2V5cyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWNjb3VudC4kTm9BY2NvdW50AAQEGQFLZXkgc2V0dGluZyBhY2NvdW50IGlzIG5vdCBsaXZlLCBzbyBpdCdzIGltcG9zc2libGUgdG8gYXNzb2NpYXRlIGtleXMuBHRFcnJvciBmb3IgdGhlIHNlc3Npb24gcGFsbGV0Lq0ODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBsQYEUwAABACxDgEYVmVjPFQ+AACxDgAAArEGALUOCEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAYAQx1NjQAALkOAAAECLUOKAC9DgQgQlRyZWVNYXAIBEsBwQ4EVgHFDgAEANEOAAAAwQ4AAAQIIQGpAgDFDgxEcGFsbGV0X2VtYV9vcmFjbGUUdHlwZXMsT3JhY2xlRW50cnkELEJsb2NrTnVtYmVyASgAFAEUcHJpY2XBCAEUUHJpY2UAARh2b2x1bWXJDgE8Vm9sdW1lPEJhbGFuY2U+AAEkbGlxdWlkaXR5zQ4BSExpcXVpZGl0eTxCYWxhbmNlPgABPHNoYXJlc19pc3N1YW5jZfUBATxPcHRpb248QmFsYW5jZT4AASh1cGRhdGVkX2F0KAEsQmxvY2tOdW1iZXIAAMkODDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUYVm9sdW1lBBxCYWxhbmNlAUAAEAEQYV9pbkABHEJhbGFuY2UAARRiX291dEABHEJhbGFuY2UAARRhX291dEABHEJhbGFuY2UAARBiX2luQAEcQmFsYW5jZQAAzQ4MOGh5ZHJhZHhfdHJhaXRzGG9yYWNsZSRMaXF1aWRpdHkEHEJhbGFuY2UBQAAIAQRhQAEcQmFsYW5jZQABBGJAARxCYWxhbmNlAADRDgAAAtUOANUOAAAECMEOxQ4A2Q4AAAQMIQGpAiEDAN0OAAAECMUOKADhDgxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBwQ4EUwAABADlDgEsQlRyZWVTZXQ8VD4AAOUOBCBCVHJlZVNldAQEVAHBDgAEAOkOAAAA6Q4AAALBDgDtDgAABAwhAakCAADxDgxEcGFsbGV0X2VtYV9vcmFjbGUYcGFsbGV0FEVycm9yBARUAAEgUFRvb01hbnlVbmlxdWVFbnRyaWVzAAAAQE9uVHJhZGVWYWx1ZVplcm8AAQA4T3JhY2xlTm90Rm91bmQAAgA0QXNzZXROb3RGb3VuZAADBDxBc3NldCBub3QgZm91bmRcU291cmNlQWxyZWFkeVJlZ2lzdGVyZWQABASoVGhlIGV4dGVybmFsIHNvdXJjZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuOFNvdXJjZU5vdEZvdW5kAAUEiFRoZSBleHRlcm5hbCBzb3VyY2Ugd2FzIG5vdCBmb3VuZC40Tm90QXV0aG9yaXplZAAGBOhUaGUgY2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgZ2l2ZW4gKHNvdXJjZSwgcGFpcikuLFByaWNlSXNaZXJvAAcEXFByaWNlIG11c3Qgbm90IGJlIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvUODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB8QgEUwAABADtCAEYVmVjPFQ+AAD5DgxAcGFsbGV0X2Jyb2FkY2FzdBhwYWxsZXQURXJyb3IEBFQAAQhoRXhlY3V0aW9uQ2FsbFN0YWNrT3ZlcmZsb3cAAAT0VGhlIGV4ZWN1dGlvbiBjb250ZXh0IGNhbGwgc3RhY2sgaGFzIHJlYWNoZWQgaXRzIG1heGltdW0gc2l6ZWxFeGVjdXRpb25DYWxsU3RhY2tVbmRlcmZsb3cAAQQNAVRoZSBleGVjdXRpb24gY29udGV4dCBjYWxsIHN0YWNrIGlzIGVtcHR5LCB1bmFibGUgdG8gZGVjcmVhc2UgbGV2ZWwEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu/Q4MUHBhbGxldF9mZWVfcHJvY2Vzc29yGHBhbGxldBRFcnJvcgQEVAABFChBbHJlYWR5SGR4AAAErEFzc2V0IGlzIGFscmVhZHkgSERYLCBubyBjb252ZXJzaW9uIG5lZWRlZC5AQ29udmVyc2lvbkZhaWxlZAABBEhDb252ZXJzaW9uIGZhaWxlZC44VHJhbnNmZXJGYWlsZWQAAgRAVHJhbnNmZXIgZmFpbGVkLkRQcmljZU5vdEF2YWlsYWJsZQADBKBTcG90IHByaWNlIG5vdCBhdmFpbGFibGUgZm9yIGFzc2V0IHBhaXIuKEFyaXRobWV0aWMABAR4QXJpdGhtZXRpYyBvdmVyZmxvdy91bmRlcmZsb3cuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgEPCChzcF9ydW50aW1lWEV4dHJpbnNpY0luY2x1c2lvbk1vZGUAAQg0QWxsRXh0cmluc2ljcwAAADRPbmx5SW5oZXJlbnRzAAEAAAUPCBxzcF9jb3JlOE9wYXF1ZU1ldGFkYXRhAAAEABQBHFZlYzx1OD4AAAkPBBhPcHRpb24EBFQBBQ8BCBBOb25lAAAAEFNvbWUEAAUPAAABAAANDwQYUmVzdWx0CARUAVEHBEUBEQ8BCAhPawQAUQcAAAAADEVycgQAEQ8AAAEAABEPDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBAAVDwFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EABkPAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAFQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAE0EENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAIAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgBUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAsANFVua25vd25PcmlnaW4ADAAAGQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQACAEIdTgAAgAAHQ8IMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGEhDwGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAIQ8EIEJUcmVlTWFwCARLASEBBFYBFAAEACUPAAAAJQ8AAAIpDwApDwAABAghARQALQ8IMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2theUQBEGJvb2wAASxmYXRhbF9lcnJvckQBEGJvb2wAARhlcnJvcnMdDwEwSW5oZXJlbnREYXRhAAAxDwwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAADUPBBhSZXN1bHQIBFQBOQ8ERQERDwEICE9rBAA5DwAAAAAMRXJyBAARDwAAAQAAOQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkYAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5GAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGVEARBib29sAAA9DwQYT3B0aW9uBARUAUEPAQgQTm9uZQAAABBTb21lBABBDwAAAQAAQQ8AAAJFDwBFDwAABAgUpQ4ASQ8ISHNwX2NvbnNlbnN1c19zbG90czBTbG90RHVyYXRpb24AAAQAGAEMdTY0AABNDwhcY3VtdWx1c19wcmltaXRpdmVzX2NvcmU0Q29sbGF0aW9uSW5mbwAAGAE8dXB3YXJkX21lc3NhZ2VzJAFIVmVjPFVwd2FyZE1lc3NhZ2U+AAFMaG9yaXpvbnRhbF9tZXNzYWdlc6UNAWBWZWM8T3V0Ym91bmRIcm1wTWVzc2FnZT4AAUxuZXdfdmFsaWRhdGlvbl9jb2RlUQ8BjE9wdGlvbjxyZWxheV9jaGFpbjo6VmFsaWRhdGlvbkNvZGU+AAFscHJvY2Vzc2VkX2Rvd253YXJkX21lc3NhZ2VzKAEMdTMyAAE4aHJtcF93YXRlcm1hcmsoAWByZWxheV9jaGFpbjo6QmxvY2tOdW1iZXIAASRoZWFkX2RhdGFlBAEgSGVhZERhdGEAAFEPBBhPcHRpb24EBFQBVQ8BCBBOb25lAAAAEFNvbWUEAFUPAAABAABVDwx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAAUARxWZWM8dTg+AABZDwAABAhdD2EPAF0PDExwb2xrYWRvdF9wcmltaXRpdmVzIHZzdGFnaW5nMENvcmVTZWxlY3RvcgAABAAIAQh1OAAAYQ8MTHBvbGthZG90X3ByaW1pdGl2ZXMgdnN0YWdpbmdAQ2xhaW1RdWV1ZU9mZnNldAAABAAIAQh1OAAAZQ8IhHBhbGxldF9jdXJyZW5jaWVzX3JwY19ydW50aW1lX2FwaSxBY2NvdW50RGF0YQQcQmFsYW5jZQFAAAwBEGZyZWVAARxCYWxhbmNlAAEgcmVzZXJ2ZWRAARxCYWxhbmNlAAEYZnJvemVuQAEcQmFsYW5jZQAAaQ8AAAJtDwBtDwAABAgoZQ8AcQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzTFJ1bnRpbWVEaXNwYXRjaEluZm8IHEJhbGFuY2UBQBhXZWlnaHQB5AAMARh3ZWlnaHTkARhXZWlnaHQAARRjbGFzcxkHATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWVAARxCYWxhbmNlAAB1DwxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQFAAAgBNGluY2x1c2lvbl9mZWV5DwF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXBAARxCYWxhbmNlAAB5DwQYT3B0aW9uBARUAX0PAQgQTm9uZQAAABBTb21lBAB9DwAAAQAAfQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQFAAAwBIGJhc2VfZmVlQAEcQmFsYW5jZQABHGxlbl9mZWVAARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZUABHEJhbGFuY2UAAIEPDAxldm0cYmFja2VuZBRCYXNpYwAACAEcYmFsYW5jZWABEFUyNTYAARRub25jZWABEFUyNTYAAIUPBBhPcHRpb24EBFQB6QMBCBBOb25lAAAAEFNvbWUEAOkDAAABAACJDwQYT3B0aW9uBARUAfEDAQgQTm9uZQAAABBTb21lBADxAwAAAQAAjQ8EGFJlc3VsdAgEVAGRDwRFASEHAQgIT2sEAJEPAAAAAAxFcnIEACEHAAABAACRDwgYZnBfZXZtPEV4ZWN1dGlvbkluZm9WMgQEVAEUABQBLGV4aXRfcmVhc29uRQgBKEV4aXRSZWFzb24AARR2YWx1ZRQBBFQAASB1c2VkX2dhc5UPARxVc2VkR2FzAAEsd2VpZ2h0X2luZm+ZDwFIT3B0aW9uPFdlaWdodEluZm8+AAEQbG9nc8EMASBWZWM8TG9nPgAAlQ8IGGZwX2V2bRxVc2VkR2FzAAAIASBzdGFuZGFyZGABEFUyNTYAASRlZmZlY3RpdmVgARBVMjU2AACZDwQYT3B0aW9uBARUAZ0PAQgQTm9uZQAAABBTb21lBACdDwAAAQAAnQ8IGGZwX2V2bShXZWlnaHRJbmZvAAAQAThyZWZfdGltZV9saW1pdFkDASxPcHRpb248dTY0PgABQHByb29mX3NpemVfbGltaXRZAwEsT3B0aW9uPHU2ND4AAThyZWZfdGltZV91c2FnZVkDASxPcHRpb248dTY0PgABQHByb29mX3NpemVfdXNhZ2VZAwEsT3B0aW9uPHU2ND4AAKEPBBhSZXN1bHQIBFQBpQ8ERQEhBwEICE9rBAClDwAAAAAMRXJyBAAhBwAAAQAApQ8IGGZwX2V2bTxFeGVjdXRpb25JbmZvVjIEBFQBWAAUASxleGl0X3JlYXNvbkUIAShFeGl0UmVhc29uAAEUdmFsdWVYAQRUAAEgdXNlZF9nYXOVDwEcVXNlZEdhcwABLHdlaWdodF9pbmZvmQ8BSE9wdGlvbjxXZWlnaHRJbmZvPgABEGxvZ3PBDAEgVmVjPExvZz4AAKkPBBhPcHRpb24EBFQB1QwBCBBOb25lAAAAEFNvbWUEANUMAAABAACtDwQYT3B0aW9uBARUAekMAQgQTm9uZQAAABBTb21lBADpDAAAAQAAsQ8EGE9wdGlvbgQEVAHtDAEIEE5vbmUAAAAQU29tZQQA7QwAAAEAALUPAAAEDKkPrQ+xDwC5DwAABAipD7EPAL0PBBhSZXN1bHQIBFQBwQ8ERQHFDwEICE9rBADBDwAAAAAMRXJyBADFDwAAAQAAwQ8AAAJlBgDFDwxAeGNtX3J1bnRpbWVfYXBpcxBmZWVzFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAAMkPBBhSZXN1bHQIBFQB5ARFAcUPAQgIT2sEAOQAAAAADEVycgQAxQ8AAAEAAM0PBBhSZXN1bHQIBFQBQARFAcUPAQgIT2sEAEAAAAAADEVycgQAxQ8AAAEAANEPBBhSZXN1bHQIBFQBMQYERQHFDwEICE9rBAAxBgAAAAAMRXJyBADFDwAAAQAA1Q8EGFJlc3VsdAgEVAHZDwRFAfEPAQgIT2sEANkPAAAAAAxFcnIEAPEPAAABAADZDwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuRENhbGxEcnlSdW5FZmZlY3RzBBRFdmVudAENBwAQAUBleGVjdXRpb25fcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAE4ZW1pdHRlZF9ldmVudHPdDwEoVmVjPEV2ZW50PgABJGxvY2FsX3hjbeEPAWBPcHRpb248VmVyc2lvbmVkWGNtPCgpPj4AAThmb3J3YXJkZWRfeGNtc+UPAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA3Q8AAAINBwDhDwQYT3B0aW9uBARUAfkEAQgQTm9uZQAAABBTb21lBAD5BAAAAQAA5Q8AAALpDwDpDwAABAitBO0PAO0PAAAC+QQA8Q8MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bhRFcnJvcgABCDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAA9Q8EGFJlc3VsdAgEVAH5DwRFAfEPAQgIT2sEAPkPAAAAAAxFcnIEAPEPAAABAAD5DwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuQFhjbURyeVJ1bkVmZmVjdHMEFEV2ZW50AQ0HAAwBQGV4ZWN1dGlvbl9yZXN1bHSFCAEcT3V0Y29tZQABOGVtaXR0ZWRfZXZlbnRz3Q8BKFZlYzxFdmVudD4AAThmb3J3YXJkZWRfeGNtc+UPAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA/Q8EGFJlc3VsdAgEVAEABEUBARABCAhPawQAAAAAAAAMRXJyBAABEAAAAQAAARAMQHhjbV9ydW50aW1lX2FwaXMsY29udmVyc2lvbnMURXJyb3IAAQgsVW5zdXBwb3J0ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAAAFEAQYT3B0aW9uBARUAQkQAQgQTm9uZQAAABBTb21lBAAJEAAAAQAACRAAAAQQKCghAyEBAA0QEDxoeWRyYWR4X3J1bnRpbWUMZXZtTGFhdmVfdHJhZGVfZXhlY3V0b3IgUG9vbERhdGEEHEJhbGFuY2UBQAAQARxyZXNlcnZlKAEcQXNzZXRJZAABGGF0b2tlbigBHEFzc2V0SWQAASxsaXF1ZGl0eV9pbkABHEJhbGFuY2UAATBsaXF1ZGl0eV9vdXRAARxCYWxhbmNlAAAREAAAAg0QABUQBBhSZXN1bHQIBFQBcARFAVkIAQgIT2sEAHAAAAAADEVycgQAWQgAAAEAABkQBBhPcHRpb24EBFQBWQgBCBBOb25lAAAAEFNvbWUEAFkIAAABAAAdEAAAAlkIACEQCDxoeWRyYWR4X3J1bnRpbWUwUnVudGltZUVycm9yAAEJARhTeXN0ZW0EAC0JAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAEAIEJhbGFuY2VzBACRCQF8cGFsbGV0X2JhbGFuY2VzOjpFcnJvcjxSdW50aW1lPgAHAFxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudAQAmQkBwHBhbGxldF90cmFuc2FjdGlvbl9tdWx0aV9wYXltZW50OjpFcnJvcjxSdW50aW1lPgDLACBUcmVhc3VyeQQAsQkBfHBhbGxldF90cmVhc3VyeTo6RXJyb3I8UnVudGltZT4ACwAcVXRpbGl0eQQAtQkBeHBhbGxldF91dGlsaXR5OjpFcnJvcjxSdW50aW1lPgANACBQcmVpbWFnZQQA3QkBfHBhbGxldF9wcmVpbWFnZTo6RXJyb3I8UnVudGltZT4ADwAgSWRlbnRpdHkEAB0KAXxwYWxsZXRfaWRlbnRpdHk6OkVycm9yPFJ1bnRpbWU+ABEAJERlbW9jcmFjeQQAYQoBgHBhbGxldF9kZW1vY3JhY3k6OkVycm9yPFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAcQoB/HBhbGxldF9jb2xsZWN0aXZlOjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABRQcm94eQQAlQoBcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4AHQAgTXVsdGlzaWcEAKUKAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+AB8AHFVuaXF1ZXMEAMkKAXhwYWxsZXRfdW5pcXVlczo6RXJyb3I8UnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBACBBwGscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpFcnJvcjxSdW50aW1lPgAjAEBDb252aWN0aW9uVm90aW5nBAD9CgGgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nOjpFcnJvcjxSdW50aW1lPgAkACRSZWZlcmVuZGEEAD0LAYBwYWxsZXRfcmVmZXJlbmRhOjpFcnJvcjxSdW50aW1lPgAlACRXaGl0ZWxpc3QEAEELAYBwYWxsZXRfd2hpdGVsaXN0OjpFcnJvcjxSdW50aW1lPgAnAChEaXNwYXRjaGVyBABFCwGEcGFsbGV0X2Rpc3BhdGNoZXI6OkVycm9yPFJ1bnRpbWU+ACgANEFzc2V0UmVnaXN0cnkEAE0LAZRwYWxsZXRfYXNzZXRfcmVnaXN0cnk6OkVycm9yPFJ1bnRpbWU+ADMAGENsYWltcwQAUQsBdHBhbGxldF9jbGFpbXM6OkVycm9yPFJ1bnRpbWU+ADUAPENvbGxhdG9yUmV3YXJkcwQAXQsBnHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzOjpFcnJvcjxSdW50aW1lPgA5ACBPbW5pcG9vbAQAbQsBfHBhbGxldF9vbW5pcG9vbDo6RXJyb3I8UnVudGltZT4AOwBAVHJhbnNhY3Rpb25QYXVzZQQAeQsBoHBhbGxldF90cmFuc2FjdGlvbl9wYXVzZTo6RXJyb3I8UnVudGltZT4APAAYRHVzdGVyBAB9CwF0cGFsbGV0X2R1c3Rlcjo6RXJyb3I8UnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAoQsBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTE+AD4AXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nBACpCwHAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWU+AD8ADE9UQwQAtQsBaHBhbGxldF9vdGM6OkVycm9yPFJ1bnRpbWU+AEAAOENpcmN1aXRCcmVha2VyBADJCwGYcGFsbGV0X2NpcmN1aXRfYnJlYWtlcjo6RXJyb3I8UnVudGltZT4AQQAYUm91dGVyBADNCwGUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yOjpFcnJvcjxSdW50aW1lPgBDACxEeW5hbWljRmVlcwQA1QsBjHBhbGxldF9keW5hbWljX2ZlZXM6OkVycm9yPFJ1bnRpbWU+AEQAHFN0YWtpbmcEAP0LAXhwYWxsZXRfc3Rha2luZzo6RXJyb3I8UnVudGltZT4ARQAoU3RhYmxlc3dhcAQAHQwBhHBhbGxldF9zdGFibGVzd2FwOjpFcnJvcjxSdW50aW1lPgBGABRCb25kcwQAJQwBcHBhbGxldF9ib25kczo6RXJyb3I8UnVudGltZT4ARwA4T3RjU2V0dGxlbWVudHMEACkMAZhwYWxsZXRfb3RjX3NldHRsZW1lbnRzOjpFcnJvcjxSdW50aW1lPgBIAAxMQlAEAC0MAWhwYWxsZXRfbGJwOjpFcnJvcjxSdW50aW1lPgBJAAxYWUsEADEMAWhwYWxsZXRfeHlrOjpFcnJvcjxSdW50aW1lPgBKACRSZWZlcnJhbHMEAEEMAYBwYWxsZXRfcmVmZXJyYWxzOjpFcnJvcjxSdW50aW1lPgBLACxMaXF1aWRhdGlvbgQARQwBiHBhbGxldF9saXF1aWRhdGlvbjo6RXJyb3I8UnVudGltZT4ATAAMSFNNBABNDAFocGFsbGV0X2hzbTo6RXJyb3I8UnVudGltZT4AUgAYU2lnbmV0BABVDAF0cGFsbGV0X3NpZ25ldDo6RXJyb3I8UnVudGltZT4AVAAwRXRoRGlzcGVuc2VyBABdDAGAcGFsbGV0X2Rpc3BlbnNlcjo6RXJyb3I8UnVudGltZT4AVQAcR2lnYUhkeAQAaQwBeHBhbGxldF9naWdhaGR4OjpFcnJvcjxSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAeQwBmHBhbGxldF9naWdhaGR4X3Jld2FyZHM6OkVycm9yPFJ1bnRpbWU+AFcAGFRva2VucwQAmQwBbG9ybWxfdG9rZW5zOjpFcnJvcjxSdW50aW1lPgBNAChDdXJyZW5jaWVzBACdDAGEcGFsbGV0X2N1cnJlbmNpZXM6OkVycm9yPFJ1bnRpbWU+AE8AHFZlc3RpbmcEAKUMAXBvcm1sX3Zlc3Rpbmc6OkVycm9yPFJ1bnRpbWU+AFEADEVWTQQAsQwBaHBhbGxldF9ldm06OkVycm9yPFJ1bnRpbWU+AFoAIEV0aGVyZXVtBADxDAF8cGFsbGV0X2V0aGVyZXVtOjpFcnJvcjxSdW50aW1lPgBcACxFVk1BY2NvdW50cwQA+QwBjHBhbGxldF9ldm1fYWNjb3VudHM6OkVycm9yPFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQA/QwBrHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZT4AXwA4WFlLV2FyZWhvdXNlTE0EAB0NAUkBd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWUsIHdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjoKSW5zdGFuY2UyPgBgADhSZWxheUNoYWluSW5mbwQAIQ0BmHBhbGxldF9yZWxheWNoYWluX2luZm86OkVycm9yPFJ1bnRpbWU+AMkADERDQQQALQ0BaHBhbGxldF9kY2E6OkVycm9yPFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQARQ0BgHBhbGxldF9zY2hlZHVsZXI6OkVycm9yPFJ1bnRpbWU+AAUAPFBhcmFjaGFpblN5c3RlbQQArQ0BvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AGcALFBvbGthZG90WGNtBAAVDgFocGFsbGV0X3hjbTo6RXJyb3I8UnVudGltZT4AawAkWGNtcFF1ZXVlBABFDgGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXJyb3I8UnVudGltZT4AbwAwTWVzc2FnZVF1ZXVlBABhDgGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkVycm9yPFJ1bnRpbWU+AHIAUE11bHRpQmxvY2tNaWdyYXRpb25zBABlDgGEcGFsbGV0X21pZ3JhdGlvbnM6OkVycm9yPFJ1bnRpbWU+AHQAHE9ybWxYY20EAGkOAWBvcm1sX3hjbTo6RXJyb3I8UnVudGltZT4AhwAcWFRva2VucwQAbQ4BcG9ybWxfeHRva2Vuczo6RXJyb3I8UnVudGltZT4AiQA0VW5rbm93blRva2VucwQAeQ4BjG9ybWxfdW5rbm93bl90b2tlbnM6OkVycm9yPFJ1bnRpbWU+AIsARENvbGxhdG9yU2VsZWN0aW9uBACJDgGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXJyb3I8UnVudGltZT4AowAcU2Vzc2lvbgQAqQ4BeHBhbGxldF9zZXNzaW9uOjpFcnJvcjxSdW50aW1lPgClACRFbWFPcmFjbGUEAPEOAYRwYWxsZXRfZW1hX29yYWNsZTo6RXJyb3I8UnVudGltZT4AygAkQnJvYWRjYXN0BAD5DgGAcGFsbGV0X2Jyb2FkY2FzdDo6RXJyb3I8UnVudGltZT4AzAAwRmVlUHJvY2Vzc29yBAD9DgGQcGFsbGV0X2ZlZV9wcm9jZXNzb3I6OkVycm9yPFJ1bnRpbWU+AM8AAEEBGFN5c3RlbQEYU3lzdGVtTBxBY2NvdW50AQEEAgD1BkEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAE6CBUaGUgZnVsbCBhY2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudCBJRC4AOEV4dHJpbnNpY0NvdW50AAAoBAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay4AQEluaGVyZW50c0FwcGxpZWQBAEQEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4ALEJsb2NrV2VpZ2h0AQABBxgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay4AQEFsbEV4dHJpbnNpY3NMZW4AACgEAARBASBUb3RhbCBsZW5ndGggKGluIGJ5dGVzKSBmb3IgYWxsIGV4dHJpbnNpY3MgcHV0IHRvZ2V0aGVyLCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACRCbG9ja0hhc2gBAQQFKCyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmCBNYXAgb2YgYmxvY2sgbnVtYmVycyB0byBibG9jayBoYXNoZXMuADRFeHRyaW5zaWNEYXRhAQEEBSgUBAAEPQEgRXh0cmluc2ljcyBkYXRhIGZvciB0aGUgY3VycmVudCBibG9jayAobWFwcyBhbiBleHRyaW5zaWMncyBpbmRleCB0byBpdHMgZGF0YSkuABhOdW1iZXIBACgQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLgAoUGFyZW50SGFzaAEALIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwIEhhc2ggb2YgdGhlIHByZXZpb3VzIGJsb2NrLgAYRGlnZXN0AQCVBAQABPAgRGlnZXN0IG9mIHRoZSBjdXJyZW50IGJsb2NrLCBhbHNvIHBhcnQgb2YgdGhlIGJsb2NrIGhlYWRlci4AGEV2ZW50cwEABQcEABygIEV2ZW50cyBkZXBvc2l0ZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAdASBOT1RFOiBUaGUgaXRlbSBpcyB1bmJvdW5kIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5ldmVyIGJlIHJlYWQgb24gY2hhaW4u0CBJdCBjb3VsZCBvdGhlcndpc2UgaW5mbGF0ZSB0aGUgUG9WIHNpemUgb2YgYSBibG9jay4ALQEgRXZlbnRzIGhhdmUgYSBsYXJnZSBpbi1tZW1vcnkgc2l6ZS4gQm94IHRoZSBldmVudHMgdG8gbm90IGdvIG91dC1vZi1tZW1vcnn8IGp1c3QgaW4gY2FzZSBzb21lb25lIHN0aWxsIHJlYWRzIHRoZW0gZnJvbSB3aXRoaW4gdGhlIHJ1bnRpbWUuAChFdmVudENvdW50AQAoEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4ALEV2ZW50VG9waWNzAQEEAiytAgQAKCUBIE1hcHBpbmcgYmV0d2VlbiBhIHRvcGljIChyZXByZXNlbnRlZCBieSBUOjpIYXNoKSBhbmQgYSB2ZWN0b3Igb2YgaW5kZXhlc5Qgb2YgZXZlbnRzIGluIHRoZSBgPEV2ZW50czxUPj5gIGxpc3QuAFEBIEFsbCB0b3BpYyB2ZWN0b3JzIGhhdmUgZGV0ZXJtaW5pc3RpYyBzdG9yYWdlIGxvY2F0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHRvcGljLiBUaGlzRQEgYWxsb3dzIGxpZ2h0LWNsaWVudHMgdG8gbGV2ZXJhZ2UgdGhlIGNoYW5nZXMgdHJpZSBzdG9yYWdlIHRyYWNraW5nIG1lY2hhbmlzbSBhbmTkIGluIGNhc2Ugb2YgY2hhbmdlcyBmZXRjaCB0aGUgbGlzdCBvZiBldmVudHMgb2YgaW50ZXJlc3QuAFkBIFRoZSB2YWx1ZSBoYXMgdGhlIHR5cGUgYChCbG9ja051bWJlckZvcjxUPiwgRXZlbnRJbmRleClgIGJlY2F1c2UgaWYgd2UgdXNlZCBvbmx5IGp1c3RNASB0aGUgYEV2ZW50SW5kZXhgIHRoZW4gaW4gY2FzZSBpZiB0aGUgdG9waWMgaGFzIHRoZSBzYW1lIGNvbnRlbnRzIG9uIHRoZSBuZXh0IGJsb2NrAQEgbm8gbm90aWZpY2F0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIHRodXMgdGhlIGV2ZW50IG1pZ2h0IGJlIGxvc3QuAEhMYXN0UnVudGltZVVwZ3JhZGUAAP0IBAAEVQEgU3RvcmVzIHRoZSBgc3BlY192ZXJzaW9uYCBhbmQgYHNwZWNfbmFtZWAgb2Ygd2hlbiB0aGUgbGFzdCBydW50aW1lIHVwZ3JhZGUgaGFwcGVuZWQuAFRVcGdyYWRlZFRvVTMyUmVmQ291bnQBAEQEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuAGBVcGdyYWRlZFRvVHJpcGxlUmVmQ291bnQBAEQEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC4AOEV4ZWN1dGlvblBoYXNlAAD5CAQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suAERBdXRob3JpemVkVXBncmFkZQAAAQkEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgBgRXh0cmluc2ljV2VpZ2h0UmVjbGFpbWVkAQDkCAAAHKAgVGhlIHdlaWdodCByZWNsYWltZWQgZm9yIHRoZSBleHRyaW5zaWMuACEBIFRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIGV4dHJpbnNpYyBleGVjdXRpb24uIQEgTW9yZSBwcmVjaXNlbHkgdGhpcyBpbmZvcm1hdGlvbiBpcyByZW1vdmVkIGluIGBub3RlX2FwcGxpZWRfZXh0cmluc2ljYC4AcQEgTG9naWMgZG9pbmcgc29tZSBwb3N0IGRpc3BhdGNoIHdlaWdodCByZWR1Y3Rpb24gbXVzdCB1cGRhdGUgdGhpcyBzdG9yYWdlIHRvIGF2b2lkIGR1cGxpY2F0ZSwgcmVkdWN0aW9uLgABEAABEQcAGDBCbG9ja1dlaWdodHMFCZkBwqDnZgALACBKqdEBAgCAAgO4yf9p6bABC0havDBRARpPzwEBCwCY9z5dAQIA4AEBAAADuMn/aemwAQtI4g6bxQEaT28CAQsAIEqp0QECAIACAQcAiFJqdAIAoAADuMn/aemwAAAABNAgQmxvY2sgJiBleHRyaW5zaWNzIHdlaWdodHM6IGJhc2UgdmFsdWVzIGFuZCBsaW1pdHMuACxCbG9ja0xlbmd0aBEJMAAAPAAAAFAAAABQAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGJsb2NrIChpbiBieXRlcykuADhCbG9ja0hhc2hDb3VudCgQYAkAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4AIERiV2VpZ2h0GQlAQHh9AQAAAAAA4fUFAAAAAAQJASBUaGUgd2VpZ2h0IG9mIHJ1bnRpbWUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB0aGUgcnVudGltZSBjYW4gaW52b2tlLgAcVmVyc2lvbh0JOQUcaHlkcmFkeBxoeWRyYWR4AQAAALEBAAAAAAAAZN9qy2iZB2CbBQAAADfjl/x8kfXkAgAAAED+OtQB+JWaBgAAANK8mJfu0I8VAwAAAPeLJ4vlP0VMAgAAAKs8BXIpH+uLAQAAAN1xjVzFMmLUAQAAAOqT4/FvPWliAwAAAGlcgERriz1OAQAAAJr4Z1G3DBEtAQAAALydiZBPW5I/AQAAADfIuxNQqaKoBAAAAFgiEfZbsUuJBgAAAOZbAORs7dCqAgAAAAu2elL80ED/AQAAADSj1IgWa1pVAQAAAFQjNP5P18raAQAAAG/1LuhY5sW9AQAAANe92KJyyg1lAgAAAATnBSGg09L4AQAAAJGxyLFjKOuSAgAAAJ/7UFqnONacAQAAACtfW80kYOTwAQAAAKKytIT8uGlDAQAAAPvFd7nXR+/WAQAAAAEAAAABBIQgR2V0IHRoZSBjaGFpbidzIGluLWNvZGUgdmVyc2lvbi4AKFNTNThQcmVmaXiACAAAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgABLQkAHCxSdW50aW1lQ2FsbAwEjCBUaGUgYWdncmVnYXRlZCBgUnVudGltZUNhbGxgIHR5cGUuFE5vbmNlKARJASBUaGlzIHN0b3JlcyB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIHRyYW5zYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBzZW5kZXIgYWNjb3VudC4QSGFzaCwEmCBUaGUgb3V0cHV0IG9mIHRoZSBgSGFzaGluZ2AgZnVuY3Rpb24uHEhhc2hpbmetAQQhASBUaGUgaGFzaGluZyBzeXN0ZW0gKGFsZ29yaXRobSkgYmVpbmcgdXNlZCBpbiB0aGUgcnVudGltZSAoZS5nLiBCbGFrZTIpLiRBY2NvdW50SWQABMggVGhlIHVzZXIgYWNjb3VudCBpZGVudGlmaWVyIHR5cGUgZm9yIHRoZSBydW50aW1lLhRCbG9jazEJCGEBIFRoZSBCbG9jayB0eXBlIHVzZWQgYnkgdGhlIHJ1bnRpbWUuIFRoaXMgaXMgdXNlZCBieSBgY29uc3RydWN0X3J1bnRpbWVgIHRvIHJldHJpZXZlIHRoZcwgZXh0cmluc2ljcyBvciBvdGhlciBibG9jayBzcGVjaWZpYyBkYXRhIGFzIG5lZWRlZC4sQWNjb3VudERhdGH5BghhASBEYXRhIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCBhbiBhY2NvdW50IChvdGhlciB0aGFuIG5vbmNlL3RyYW5zYWN0aW9uIGNvdW50ZXIsIHdoaWNoIHRoaXNkIHBhbGxldCBkb2VzIHJlZ2FyZGxlc3MpLgABAAAkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAGCAAAAAAAAAAAASgIFRoZSBjdXJyZW50IHRpbWUgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAkRGlkVXBkYXRlAQBEBAAQ2CBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgaGFzIGJlZW4gdXBkYXRlZCBpbiB0aGlzIGJsb2NrLgBVASBUaGlzIHZhbHVlIGlzIHVwZGF0ZWQgdG8gYHRydWVgIHVwb24gc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uIG9mIGEgdGltZXN0YW1wIGJ5IGEgbm9kZS5FASBJdCBpcyB0aGVuIGNoZWNrZWQgYXQgdGhlIGVuZCBvZiBlYWNoIGJsb2NrIGV4ZWN1dGlvbiBpbiB0aGUgYG9uX2ZpbmFsaXplYCBob29rLgABMAAABDRNaW5pbXVtUGVyaW9kGCC4CwAAAAAAABiMIFRoZSBtaW5pbXVtIHBlcmlvZCBiZXR3ZWVuIGJsb2Nrcy4ATQEgQmUgYXdhcmUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgKmV4cGVjdGVkKiBwZXJpb2QgdGhhdCB0aGUgYmxvY2sgcHJvZHVjdGlvbkkBIGFwcGFyYXR1cyBwcm92aWRlcy4gWW91ciBjaG9zZW4gY29uc2Vuc3VzIHN5c3RlbSB3aWxsIGdlbmVyYWxseSB3b3JrIHdpdGggdGhpcyB0b2EBIGRldGVybWluZSBhIHNlbnNpYmxlIGJsb2NrIHRpbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgQXVyYSBwYWxsZXQgaXQgd2lsbCBiZSBkb3VibGUgdGhpc3AgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAAEGE1vbWVudBgEmCBUeXBlIHVzZWQgZm9yIGV4cHJlc3NpbmcgYSB0aW1lc3RhbXAuAAMAACBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBAEBAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS4AQEluYWN0aXZlSXNzdWFuY2UBAEBAAAAAAAAAAAAAAAAAAAAAAAQJASBUaGUgdG90YWwgdW5pdHMgb2Ygb3V0c3RhbmRpbmcgZGVhY3RpdmF0ZWQgYmFsYW5jZSBpbiB0aGUgc3lzdGVtLgAcQWNjb3VudAEBBAIA+QYBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4AFExvY2tzAQEEAgBJCQQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AAIFJlc2VydmVzAQEEAgBZCQQADKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAUSG9sZHMBAQQCAGUJBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLgAcRnJlZXplcwEBBAIAhQkEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgABOAABOQcAEEhFeGlzdGVudGlhbERlcG9zaXRAQAAQpdToAAAAAAAAAAAAAAAgQQEgVGhlIG1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIGtlZXAgYW4gYWNjb3VudCBvcGVuLiBNVVNUIEJFIEdSRUFURVIgVEhBTiBaRVJPIQBZASBJZiB5b3UgKnJlYWxseSogbmVlZCBpdCB0byBiZSB6ZXJvLCB5b3UgY2FuIGVuYWJsZSB0aGUgZmVhdHVyZSBgaW5zZWN1cmVfemVyb19lZGAgZm9yYQEgdGhpcyBwYWxsZXQuIEhvd2V2ZXIsIHlvdSBkbyBzbyBhdCB5b3VyIG93biByaXNrOiB0aGlzIHdpbGwgb3BlbiB1cCBhIG1ham9yIERvUyB2ZWN0b3IuWQEgSW4gY2FzZSB5b3UgaGF2ZSBtdWx0aXBsZSBzb3VyY2VzIG9mIHByb3ZpZGVyIHJlZmVyZW5jZXMsIHlvdSBtYXkgYWxzbyBnZXQgdW5leHBlY3RlZIwgYmVoYXZpb3VyIGlmIHlvdSBzZXQgdGhpcyB0byB6ZXJvLgDwIEJvdHRvbSBsaW5lOiBEbyB5b3Vyc2VsZiBhIGZhdm91ciBhbmQgbWFrZSBpdCBhdCBsZWFzdCBvbmUhACBNYXhMb2NrcygQMgAAABD0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NrcyB0aGF0IHNob3VsZCBleGlzdCBvbiBhbiBhY2NvdW50LtwgTm90IHN0cmljdGx5IGVuZm9yY2VkLCBidXQgdXNlZCBmb3Igd2VpZ2h0IGVzdGltYXRpb24uAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AALE1heFJlc2VydmVzKBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAoTWF4RnJlZXplcygQAAAAAARhASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5kaXZpZHVhbCBmcmVlemUgbG9ja3MgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4AAZEJABBEUnVudGltZUhvbGRSZWFzb25tCQR0IFRoZSBvdmVyYXJjaGluZyBob2xkIHJlYXNvbi4cQmFsYW5jZUAEbCBUaGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LkRSZXNlcnZlSWRlbnRpZmllciEBDGggVGhlIElEIHR5cGUgZm9yIHJlc2VydmVzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYEBGcmVlemVJZGVudGlmaWVycARkIFRoZSBJRCB0eXBlIGZvciBmcmVlemVzLgAHAABIVHJhbnNhY3Rpb25QYXltZW50AUhUcmFuc2FjdGlvblBheW1lbnQIRE5leHRGZWVNdWx0aXBsaWVyAQBUQAAAZKeztuANAAAAAAAAAAAAADhTdG9yYWdlVmVyc2lvbgEAlQkEAAAAAAFBBwAEYE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcggEAFRZASBBIGZlZSBtdWx0aXBsaWVyIGZvciBgT3BlcmF0aW9uYWxgIGV4dHJpbnNpY3MgdG8gY29tcHV0ZSAidmlydHVhbCB0aXAiIHRvIGJvb3N0IHRoZWlyLCBgcHJpb3JpdHlgAFEBIFRoaXMgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgYGZpbmFsX2ZlZWAgdG8gb2J0YWluIGEgInZpcnR1YWwgdGlwIiB0aGF0IGlzIGxhdGVy9CBhZGRlZCB0byBhIHRpcCBjb21wb25lbnQgaW4gcmVndWxhciBgcHJpb3JpdHlgIGNhbGN1bGF0aW9ucy5NASBJdCBtZWFucyB0aGF0IGEgYE5vcm1hbGAgdHJhbnNhY3Rpb24gY2FuIGZyb250LXJ1biBhIHNpbWlsYXJseS1zaXplZCBgT3BlcmF0aW9uYWxgQQEgZXh0cmluc2ljICh3aXRoIG5vIHRpcCksIGJ5IGluY2x1ZGluZyBhIHRpcCB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIHZpcnR1YWwgdGlwLgA8IGBgYHJ1c3QsaWdub3JlQCAvLyBGb3IgYE5vcm1hbGCMIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwKTsAVCAvLyBGb3IgYE9wZXJhdGlvbmFsYBEBIGxldCB2aXJ0dWFsX3RpcCA9IChpbmNsdXNpb25fZmVlICsgdGlwKSAqIE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcjvEIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwICsgdmlydHVhbF90aXApOxAgYGBgAFEBIE5vdGUgdGhhdCBzaW5jZSB3ZSB1c2UgYGZpbmFsX2ZlZWAgdGhlIG11bHRpcGxpZXIgYXBwbGllcyBhbHNvIHRvIHRoZSByZWd1bGFyIGB0aXBgXQEgc2VudCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4gU28sIG5vdCBvbmx5IGRvZXMgdGhlIHRyYW5zYWN0aW9uIGdldCBhIHByaW9yaXR5IGJ1bXAgYmFzZWRhASBvbiB0aGUgYGluY2x1c2lvbl9mZWVgLCBidXQgd2UgYWxzbyBhbXBsaWZ5IHRoZSBpbXBhY3Qgb2YgdGlwcyBhcHBsaWVkIHRvIGBPcGVyYXRpb25hbGA4IHRyYW5zYWN0aW9ucy4AAAAACQAAXE11bHRpVHJhbnNhY3Rpb25QYXltZW50AVxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudBBIQWNjb3VudEN1cnJlbmN5TWFwAAEEAgAoBAAEVCBBY2NvdW50IGN1cnJlbmN5IG1hcABIQWNjZXB0ZWRDdXJyZW5jaWVzAAEEBShUBAAEZQEgQ3VyYXRlZCBsaXN0IG9mIGN1cnJlbmNpZXMgd2hpY2ggZmVlcyBjYW4gYmUgcGFpZCBtYXBwZWQgdG8gY29ycmVzcG9uZGluZyBmYWxsYmFjayBwcmljZQBUQWNjZXB0ZWRDdXJyZW5jeVByaWNlAAEEBShUBAAEIQIgQXNzZXQgcHJpY2VzIGZyb20gdGhlIHNwb3QgcHJpY2UgcHJvdmlkZXIgb3IgdGhlIGZhbGxiYWNrIHByaWNlIGlmIHRoZSBwcmljZSBpcyBub3QgYXZhaWxhYmxlLiBVcGRhdGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZXZlcnkgYmxvY2suAGxUcmFuc2FjdGlvbkN1cnJlbmN5T3ZlcnJpZGUAAQQFACgEAAAAAVAAAUUHAAw0TmF0aXZlQXNzZXRJZCgQAAAAAAQ0IE5hdGl2ZSBBc3NldABUUG9sa2Fkb3ROYXRpdmVBc3NldElkKBAFAAAABHAgUG9sa2Fkb3QgTmF0aXZlIEFzc2V0IChET1QpAChFdm1Bc3NldElkKBAUAAAABCggRVZNIEFzc2V0AAGZCQAAAMsAACBUcmVhc3VyeQEgVHJlYXN1cnkcNFByb3Bvc2FsQ291bnQBACgQAAAAABBBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4ApCBOdW1iZXIgb2YgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACRQcm9wb3NhbHMAAQQFKJ0JBAAQQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuAHwgUHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuACxEZWFjdGl2YXRlZAEAQEAAAAAAAAAAAAAAAAAAAAAABPAgVGhlIGFtb3VudCB3aGljaCBoYXMgYmVlbiByZXBvcnRlZCBhcyBpbmFjdGl2ZSB0byBDdXJyZW5jeS4AJEFwcHJvdmFscwEAoQkEABBBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4A+CBQcm9wb3NhbCBpbmRpY2VzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGJ1dCBub3QgeWV0IGF3YXJkZWQuAChTcGVuZENvdW50AQAoEAAAAAAEpCBUaGUgY291bnQgb2Ygc3BlbmRzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuABhTcGVuZHMAAQQFKKUJBAAE0CBTcGVuZHMgdGhhdCBoYXZlIGJlZW4gYXBwcm92ZWQgYW5kIGJlaW5nIHByb2Nlc3NlZC4APExhc3RTcGVuZFBlcmlvZAAAKAQABNQgVGhlIGJsb2NrbnVtYmVyIGZvciB0aGUgbGFzdCB0cmlnZ2VyZWQgc3BlbmQgcGVyaW9kLgABaAgDApUBVGhlIGBzcGVuZF9sb2NhbGAgY2FsbCB3aWxsIGJlIHJlbW92ZWQgYnkgTWF5IDIwMjUuIE1pZ3JhdGUgdG8gdGhlIG5ldyBmbG93IGFuZCB1c2UgdGhlIGBzcGVuZGAgY2FsbC4ABAK1AVRoZSBgcmVtb3ZlX2FwcHJvdmFsYCBjYWxsIHdpbGwgYmUgcmVtb3ZlZCBieSBNYXkgMjAyNS4gSXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXByZWNhdGVkIGBzcGVuZF9sb2NhbGAgY2FsbC4AAUkHABgsU3BlbmRQZXJpb2QoEEA4AAAEiCBQZXJpb2QgYmV0d2VlbiBzdWNjZXNzaXZlIHNwZW5kcy4AEEJ1cm51AhAAAAAABBEBIFBlcmNlbnRhZ2Ugb2Ygc3BhcmUgZnVuZHMgKGlmIGFueSkgdGhhdCBhcmUgYnVybnQgcGVyIHNwZW5kIHBlcmlvZC4AIFBhbGxldElkrQkgcHkvdHJzcnkEGQEgVGhlIHRyZWFzdXJ5J3MgcGFsbGV0IGlkLCB1c2VkIGZvciBkZXJpdmluZyBpdHMgc292ZXJlaWduIGFjY291bnQgSUQuADBNYXhBcHByb3ZhbHMoEGQAAAAYQQEgREVQUkVDQVRFRDogYXNzb2NpYXRlZCB3aXRoIGBzcGVuZF9sb2NhbGAgY2FsbCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIE1heSAyMDI1LmkBIFJlZmVyIHRvIDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9wb2xrYWRvdC1zZGsvcHVsbC81OTYxPiBmb3IgbWlncmF0aW9uIHRvIGBzcGVuZGAuABUBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhcHByb3ZhbHMgdGhhdCBjYW4gd2FpdCBpbiB0aGUgc3BlbmRpbmcgcXVldWUuAE0BIE5PVEU6IFRoaXMgcGFyYW1ldGVyIGlzIGFsc28gdXNlZCB3aXRoaW4gdGhlIEJvdW50aWVzIFBhbGxldCBleHRlbnNpb24gaWYgZW5hYmxlZC4AMFBheW91dFBlcmlvZCgQgJcGAAQZASBUaGUgcGVyaW9kIGR1cmluZyB3aGljaCBhbiBhcHByb3ZlZCB0cmVhc3VyeSBzcGVuZCBoYXMgdG8gYmUgY2xhaW1lZC4ALHBvdF9hY2NvdW50AIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAASgIEdldHMgdGhpcyBwYWxsZXQncyBkZXJpdmVkIHBvdCBhY2NvdW50LgABsQkACCRBc3NldEtpbmRwBC0BIFR5cGUgcGFyYW1ldGVyIHJlcHJlc2VudGluZyB0aGUgYXNzZXQga2luZHMgdG8gYmUgc3BlbnQgZnJvbSB0aGUgdHJlYXN1cnkuLEJlbmVmaWNpYXJ5AARdASBUeXBlIHBhcmFtZXRlciB1c2VkIHRvIGlkZW50aWZ5IHRoZSBiZW5lZmljaWFyaWVzIGVsaWdpYmxlIHRvIHJlY2VpdmUgdHJlYXN1cnkgc3BlbmRzLgALAAAcVXRpbGl0eQABeAABTQcABExiYXRjaGVkX2NhbGxzX2xpbWl0KBCqKgAABKggVGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgYmF0Y2hlZCBjYWxscy4AAbUJAAgsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS40UGFsbGV0c09yaWdpboQE8CBUaGUgY2FsbGVyIG9yaWdpbiwgb3ZlcmFyY2hpbmcgdHlwZSBvZiBhbGwgcGFsbGV0cyBvcmlnaW5zLgANAAAgUHJlaW1hZ2UBIFByZWltYWdlDCRTdGF0dXNGb3IAAQQGLLkJBAAEkCBUaGUgcmVxdWVzdCBzdGF0dXMgb2YgYSBnaXZlbiBoYXNoLgJAUmVxdWVzdFN0YXR1c0ZvcgBAUmVxdWVzdFN0YXR1c0ZvcgABBAYsxQkEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guACxQcmVpbWFnZUZvcgABBAbVCdkJBAAAAAHoAAFVBwAAAd0JAAAADwAAIElkZW50aXR5ASBJZGVudGl0eSQoSWRlbnRpdHlPZgABBAUA4QkEABBpASBJbmZvcm1hdGlvbiB0aGF0IGlzIHBlcnRpbmVudCB0byBpZGVudGlmeSB0aGUgZW50aXR5IGJlaGluZCBhbiBhY2NvdW50LiBGaXJzdCBpdGVtIGlzIHRoZeAgcmVnaXN0cmF0aW9uLCBzZWNvbmQgaXMgdGhlIGFjY291bnQncyBwcmltYXJ5IHVzZXJuYW1lLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guAChVc2VybmFtZU9mAAEEBQChAQQABLwgSWRlbnRpZmllcyB0aGUgcHJpbWFyeSB1c2VybmFtZSBvZiBhbiBhY2NvdW50LgAcU3VwZXJPZgABBAIAiQEEAAhhASBUaGUgc3VwZXItaWRlbnRpdHkgb2YgYW4gYWx0ZXJuYXRpdmUgInN1YiIgaWRlbnRpdHkgdG9nZXRoZXIgd2l0aCBpdHMgbmFtZSwgd2l0aGluIHRoYXRRASBjb250ZXh0LiBJZiB0aGUgYWNjb3VudCBpcyBub3Qgc29tZSBvdGhlciBhY2NvdW50J3Mgc3ViLWlkZW50aXR5LCB0aGVuIGp1c3QgYE5vbmVgLgAYU3Vic09mAQEEBQDxCUQAAAAAAAAAAAAAAAAAAAAAABS4IEFsdGVybmF0aXZlICJzdWIiIGlkZW50aXRpZXMgb2YgdGhpcyBhY2NvdW50LgAdASBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgZGVwb3NpdCwgdGhlIHNlY29uZCBpcyBhIHZlY3RvciBvZiB0aGUgYWNjb3VudHMuAMAgVFdPWC1OT1RFOiBPSyDigJUgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4AKFJlZ2lzdHJhcnMBAPkJBAAQTQEgVGhlIHNldCBvZiByZWdpc3RyYXJzLiBOb3QgZXhwZWN0ZWQgdG8gZ2V0IHZlcnkgYmlnIGFzIGNhbiBvbmx5IGJlIGFkZGVkIHRocm91Z2ggYaggc3BlY2lhbCBvcmlnaW4gKGxpa2VseSBhIGNvdW5jaWwgbW90aW9uKS4AKQEgVGhlIGluZGV4IGludG8gdGhpcyBjYW4gYmUgY2FzdCB0byBgUmVnaXN0cmFySW5kZXhgIHRvIGdldCBhIHZhbGlkIHZhbHVlLgAsQXV0aG9yaXR5T2YAAQQFCQoNCgQABPQgQSBtYXAgb2YgdGhlIGFjY291bnRzIHdobyBhcmUgYXV0aG9yaXplZCB0byBncmFudCB1c2VybmFtZXMuADhVc2VybmFtZUluZm9PZgABBAKhAREKBAAYdQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0IGFuZCB0aGUgcHJvdmlkZXIgb2ZtASB0aGUgdXNlcm5hbWUuIFRoZSBgb3duZXJgIHZhbHVlIHNob3VsZCBiZSBhIGtleSBpbiB0aGUgYFVzZXJuYW1lT2ZgIG1hcCwgYnV0IGl0IG1heSBub3QgaWbwIHRoZSB1c2VyIGhhcyBjbGVhcmVkIHRoZWlyIHVzZXJuYW1lIG9yIGl0IGhhcyBiZWVuIHJlbW92ZWQuAGkBIE11bHRpcGxlIHVzZXJuYW1lcyBtYXkgbWFwIHRvIHRoZSBzYW1lIGBBY2NvdW50SWRgLCBidXQgYFVzZXJuYW1lT2ZgIHdpbGwgb25seSBtYXAgdG8gb25lSCBwcmltYXJ5IHVzZXJuYW1lLgBAUGVuZGluZ1VzZXJuYW1lcwABBAKhARkKBAAYbQEgVXNlcm5hbWVzIHRoYXQgYW4gYXV0aG9yaXR5IGhhcyBncmFudGVkLCBidXQgdGhhdCB0aGUgYWNjb3VudCBjb250cm9sbGVyIGhhcyBub3QgY29uZmlybWVkcQEgdGhhdCB0aGV5IHdhbnQgaXQuIFVzZWQgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBgQWNjb3VudElkYCBjYW5ub3QgcHJvdmlkZSBhIHNpZ25hdHVyZV0BIGJlY2F1c2UgdGhleSBhcmUgYSBwdXJlIHByb3h5LCBtdWx0aXNpZywgZXRjLiBJbiBvcmRlciB0byBjb25maXJtIGl0LCB0aGV5IHNob3VsZCBjYWxssCBbYWNjZXB0X3VzZXJuYW1lXShgQ2FsbDo6YWNjZXB0X3VzZXJuYW1lYCkuAB0BIEZpcnN0IHR1cGxlIGl0ZW0gaXMgdGhlIGFjY291bnQgYW5kIHNlY29uZCBpcyB0aGUgYWNjZXB0YW5jZSBkZWFkbGluZS4ASFVuYmluZGluZ1VzZXJuYW1lcwABBAKhASgEABBdASBVc2VybmFtZXMgZm9yIHdoaWNoIHRoZSBhdXRob3JpdHkgdGhhdCBncmFudGVkIHRoZW0gaGFzIHN0YXJ0ZWQgdGhlIHJlbW92YWwgcHJvY2VzcyBieXEBIHVuYmluZGluZyB0aGVtLiBFYWNoIHVuYmluZGluZyB1c2VybmFtZSBtYXBzIHRvIGl0cyBncmFjZSBwZXJpb2QgZXhwaXJ5LCB3aGljaCBpcyB0aGUgZmlyc3TcIGJsb2NrIGluIHdoaWNoIHRoZSB1c2VybmFtZSBjb3VsZCBiZSBkZWxldGVkIHRocm91Z2ggYcQgW3JlbW92ZV91c2VybmFtZV0oYENhbGw6OnJlbW92ZV91c2VybmFtZWApIGNhbGwuAAHwAAFZBwAoMEJhc2ljRGVwb3NpdEBAAEBjUr/GAQAAAAAAAAAAAATYIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuACxCeXRlRGVwb3NpdEBAAKByThgJAAAAAAAAAAAAAAQdASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgZW5jb2RlZCBieXRlIGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuADxVc2VybmFtZURlcG9zaXRAQABAY1K/xgEAAAAAAAAAAAAIVQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIHJlZ2lzdGVyZWQgdXNlcm5hbWUuIFRoaXMgdmFsdWUgc2hvdWxkIGNoYW5nZSBvbmx5IGlu9CBydW50aW1lIHVwZ3JhZGVzIHdpdGggcHJvcGVyIG1pZ3JhdGlvbiBvZiBleGlzdGluZyBkZXBvc2l0cy4ARFN1YkFjY291bnREZXBvc2l0QEAAQGNSv8YBAAAAAAAAAAAADGUBIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgc3ViYWNjb3VudC4gVGhpcyBzaG91bGQgYWNjb3VudCBmb3IgdGhlIGZhY3RlASB0aGF0IG9uZSBzdG9yYWdlIGl0ZW0ncyB2YWx1ZSB3aWxsIGluY3JlYXNlIGJ5IHRoZSBzaXplIG9mIGFuIGFjY291bnQgSUQsIGFuZCB0aGVyZSB3aWxsNQEgYmUgYW5vdGhlciB0cmllIGl0ZW0gd2hvc2UgdmFsdWUgaXMgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCBwbHVzIDMyIGJ5dGVzLgA4TWF4U3ViQWNjb3VudHMoEGQAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN1Yi1hY2NvdW50cyBhbGxvd2VkIHBlciBpZGVudGlmaWVkIGFjY291bnQuADRNYXhSZWdpc3RyYXJzKBAUAAAACE0BIE1heGltdW0gbnVtYmVyIG9mIHJlZ2lzdHJhcnMgYWxsb3dlZCBpbiB0aGUgc3lzdGVtLiBOZWVkZWQgdG8gYm91bmQgdGhlIGNvbXBsZXhpdHl8IG9mLCBlLmcuLCB1cGRhdGluZyBqdWRnZW1lbnRzLgBkUGVuZGluZ1VzZXJuYW1lRXhwaXJhdGlvbigQwIkBAAQVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB3aXRoaW4gd2hpY2ggYSB1c2VybmFtZSBncmFudCBtdXN0IGJlIGFjY2VwdGVkLgBMVXNlcm5hbWVHcmFjZVBlcmlvZCgQgJcGAAhZASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IG11c3QgcGFzcyB0byBlbmFibGUgdGhlIHBlcm1hbmVudCBkZWxldGlvbiBvZiBhIHVzZXJuYW1lIGJ5aCBpdHMgcmVzcGVjdGl2ZSBhdXRob3JpdHkuADxNYXhTdWZmaXhMZW5ndGgoEAcAAAAEgCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBzdWZmaXguAERNYXhVc2VybmFtZUxlbmd0aCgQIAAAAARhASBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSB1c2VybmFtZSwgaW5jbHVkaW5nIGl0cyBzdWZmaXggYW5kIGFueSBzeXN0ZW0tYWRkZWQgZGVsaW1pdGVycy4AAR0KAARET2ZmY2hhaW5TaWduYXR1cmWVAQzgIFNpZ25hdHVyZSB0eXBlIGZvciBwcmUtYXV0aG9yaXppbmcgdXNlcm5hbWVzIG9mZi1jaGFpbi4AEQEgQ2FuIHZlcmlmeSB3aGV0aGVyIGFuIGBTZWxmOjpTaWduaW5nUHVibGljS2V5YCBjcmVhdGVkIGEgc2lnbmF0dXJlLgARAAAkRGVtb2NyYWN5ASREZW1vY3JhY3kwPFB1YmxpY1Byb3BDb3VudAEAKBAAAAAABPQgVGhlIG51bWJlciBvZiAocHVibGljKSBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZSBzbyBmYXIuACxQdWJsaWNQcm9wcwEAIQoEAAQFASBUaGUgcHVibGljIHByb3Bvc2Fscy4gVW5zb3J0ZWQuIFRoZSBzZWNvbmQgaXRlbSBpcyB0aGUgcHJvcG9zYWwuACREZXBvc2l0T2YAAQQFKC0KBAAMhCBUaG9zZSB3aG8gaGF2ZSBsb2NrZWQgYSBkZXBvc2l0LgDYIFRXT1gtTk9URTogU2FmZSwgYXMgaW5jcmVhc2luZyBpbnRlZ2VyIGtleXMgYXJlIHNhZmUuADxSZWZlcmVuZHVtQ291bnQBACgQAAAAAAQxASBUaGUgbmV4dCBmcmVlIHJlZmVyZW5kdW0gaW5kZXgsIGFrYSB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBzdGFydGVkIHNvIGZhci4ANExvd2VzdFVuYmFrZWQBACgQAAAAAAglASBUaGUgbG93ZXN0IHJlZmVyZW5kdW0gaW5kZXggcmVwcmVzZW50aW5nIGFuIHVuYmFrZWQgcmVmZXJlbmR1bS4gRXF1YWwgdG/cIGBSZWZlcmVuZHVtQ291bnRgIGlmIHRoZXJlIGlzbid0IGEgdW5iYWtlZCByZWZlcmVuZHVtLgBAUmVmZXJlbmR1bUluZm9PZgABBAUoNQoEAAy0IEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgYW55IGdpdmVuIHJlZmVyZW5kdW0uAAkBIFRXT1gtTk9URTogU0FGRSBhcyBpbmRleGVzIGFyZSBub3QgdW5kZXIgYW4gYXR0YWNrZXLigJlzIGNvbnRyb2wuACBWb3RpbmdPZgEBBAUAQQrYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF0BIEFsbCB2b3RlcyBmb3IgYSBwYXJ0aWN1bGFyIHZvdGVyLiBXZSBzdG9yZSB0aGUgYmFsYW5jZSBmb3IgdGhlIG51bWJlciBvZiB2b3RlcyB0aGF0IHdlXQEgaGF2ZSByZWNvcmRlZC4gVGhlIHNlY29uZCBpdGVtIGlzIHRoZSB0b3RhbCBhbW91bnQgb2YgZGVsZWdhdGlvbnMsIHRoYXQgd2lsbCBiZSBhZGRlZC4A6CBUV09YLU5PVEU6IFNBRkUgYXMgYEFjY291bnRJZGBzIGFyZSBjcnlwdG8gaGFzaGVzIGFueXdheS4AVExhc3RUYWJsZWRXYXNFeHRlcm5hbAEARAQACFkBIFRydWUgaWYgdGhlIGxhc3QgcmVmZXJlbmR1bSB0YWJsZWQgd2FzIHN1Ym1pdHRlZCBleHRlcm5hbGx5LiBGYWxzZSBpZiBpdCB3YXMgYSBwdWJsaWMoIHByb3Bvc2FsLgAwTmV4dEV4dGVybmFsAABZCgQAEFkBIFRoZSByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCB3aGVuZXZlciBpdCB3b3VsZCBiZSB2YWxpZCB0byB0YWJsZSBhbiBleHRlcm5hbCBwcm9wb3NhbC5VASBUaGlzIGhhcHBlbnMgd2hlbiBhIHJlZmVyZW5kdW0gbmVlZHMgdG8gYmUgdGFibGVkIGFuZCBvbmUgb2YgdHdvIGNvbmRpdGlvbnMgYXJlIG1ldDqkIC0gYExhc3RUYWJsZWRXYXNFeHRlcm5hbGAgaXMgYGZhbHNlYDsgb3JoIC0gYFB1YmxpY1Byb3BzYCBpcyBlbXB0eS4AJEJsYWNrbGlzdAABBAYsXQoEAAhRASBBIHJlY29yZCBvZiB3aG8gdmV0b2VkIHdoYXQuIE1hcHMgcHJvcG9zYWwgaGFzaCB0byBhIHBvc3NpYmxlIGV4aXN0ZW50IGJsb2NrIG51bWJlcuggKHVudGlsIHdoZW4gaXQgbWF5IG5vdCBiZSByZXN1Ym1pdHRlZCkgYW5kIHdobyB2ZXRvZWQgaXQuADRDYW5jZWxsYXRpb25zAQEEBixEBAAEKQEgUmVjb3JkIG9mIGFsbCBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gc3ViamVjdCB0byBlbWVyZ2VuY3kgY2FuY2VsbGF0aW9uLgAoTWV0YWRhdGFPZgABBALBASwEABjsIEdlbmVyYWwgaW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgcHJvcG9zYWwgb3IgcmVmZXJlbmR1bS5JASBUaGUgYEhhc2hgIHJlZmVycyB0byB0aGUgcHJlaW1hZ2Ugb2YgdGhlIGBQcmVpbWFnZXNgIHByb3ZpZGVyIHdoaWNoIGNhbiBiZSBhIEpTT06IIGR1bXAgb3IgSVBGUyBoYXNoIG9mIGEgSlNPTiBmaWxlLgB1ASBDb25zaWRlciBhIGdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgYSBtZXRhZGF0YSBvZiBmaW5pc2hlZCByZWZlcmVuZHVtcyB0byBgdW5yZXF1ZXN0YCAocmVtb3ZlKUQgbGFyZ2UgcHJlaW1hZ2VzLgABpQEAAV0HADA8RW5hY3RtZW50UGVyaW9kKBBAOAAAFOggVGhlIHBlcmlvZCBiZXR3ZWVuIGEgcHJvcG9zYWwgYmVpbmcgYXBwcm92ZWQgYW5kIGVuYWN0ZWQuADEBIEl0IHNob3VsZCBnZW5lcmFsbHkgYmUgYSBsaXR0bGUgbW9yZSB0aGFuIHRoZSB1bnN0YWtlIHBlcmlvZCB0byBlbnN1cmUgdGhhdFEBIHZvdGluZyBzdGFrZXJzIGhhdmUgYW4gb3Bwb3J0dW5pdHkgdG8gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJvbSB0aGUgc3lzdGVtIGluIHRoZSBjYXNltCB3aGVyZSB0aGV5IGFyZSBvbiB0aGUgbG9zaW5nIHNpZGUgb2YgYSB2b3RlLgAwTGF1bmNoUGVyaW9kKBDAqAAABOQgSG93IG9mdGVuIChpbiBibG9ja3MpIG5ldyBwdWJsaWMgcmVmZXJlbmRhIGFyZSBsYXVuY2hlZC4AMFZvdGluZ1BlcmlvZCgQwKgAAAS4IEhvdyBvZnRlbiAoaW4gYmxvY2tzKSB0byBjaGVjayBmb3IgbmV3IHZvdGVzLgBEVm90ZUxvY2tpbmdQZXJpb2QoEIBRAQAQkCBUaGUgbWluaW11bSBwZXJpb2Qgb2Ygdm90ZSBsb2NraW5nLgBlASBJdCBzaG91bGQgYmUgbm8gc2hvcnRlciB0aGFuIGVuYWN0bWVudCBwZXJpb2QgdG8gZW5zdXJlIHRoYXQgaW4gdGhlIGNhc2Ugb2YgYW4gYXBwcm92YWwsSQEgdGhvc2Ugc3VjY2Vzc2Z1bCB2b3RlcnMgYXJlIGxvY2tlZCBpbnRvIHRoZSBjb25zZXF1ZW5jZXMgdGhhdCB0aGVpciB2b3RlcyBlbnRhaWwuADhNaW5pbXVtRGVwb3NpdEBAAACKXXhFYwEAAAAAAAAAAAQ1ASBUaGUgbWluaW11bSBhbW91bnQgdG8gYmUgdXNlZCBhcyBhIGRlcG9zaXQgZm9yIGEgcHVibGljIHJlZmVyZW5kdW0gcHJvcG9zYWwuADhJbnN0YW50QWxsb3dlZEQEAQxVASBJbmRpY2F0b3IgZm9yIHdoZXRoZXIgYW4gZW1lcmdlbmN5IG9yaWdpbiBpcyBldmVuIGFsbG93ZWQgdG8gaGFwcGVuLiBTb21lIGNoYWlucyBtYXlhASB3YW50IHRvIHNldCB0aGlzIHBlcm1hbmVudGx5IHRvIGBmYWxzZWAsIG90aGVycyBtYXkgd2FudCB0byBjb25kaXRpb24gaXQgb24gdGhpbmdzIHN1Y2igIGFzIGFuIHVwZ3JhZGUgaGF2aW5nIGhhcHBlbmVkIHJlY2VudGx5LgBURmFzdFRyYWNrVm90aW5nUGVyaW9kKBAIBwAABOwgTWluaW11bSB2b3RpbmcgcGVyaW9kIGFsbG93ZWQgZm9yIGEgZmFzdC10cmFjayByZWZlcmVuZHVtLgA0Q29vbG9mZlBlcmlvZCgQwIkBAARhASBQZXJpb2QgaW4gYmxvY2tzIHdoZXJlIGFuIGV4dGVybmFsIHByb3Bvc2FsIG1heSBub3QgYmUgcmUtc3VibWl0dGVkIGFmdGVyIGJlaW5nIHZldG9lZC4AIE1heFZvdGVzKBBkAAAAELAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGVzIGZvciBhbiBhY2NvdW50LgDUIEFsc28gdXNlZCB0byBjb21wdXRlIHdlaWdodCwgYW4gb3Zlcmx5IGJpZyB2YWx1ZSBjYW4VASBsZWFkIHRvIGV4dHJpbnNpYyB3aXRoIHZlcnkgYmlnIHdlaWdodDogc2VlIGBkZWxlZ2F0ZWAgZm9yIGluc3RhbmNlLgAwTWF4UHJvcG9zYWxzKBBkAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwdWJsaWMgcHJvcG9zYWxzIHRoYXQgY2FuIGV4aXN0IGF0IGFueSB0aW1lLgAsTWF4RGVwb3NpdHMoEGQAAAAEHQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGRlcG9zaXRzIGEgcHVibGljIHByb3Bvc2FsIG1heSBoYXZlIGF0IGFueSB0aW1lLgA4TWF4QmxhY2tsaXN0ZWQoEGQAAAAE2CBUaGUgbWF4aW11bSBudW1iZXIgb2YgaXRlbXMgd2hpY2ggY2FuIGJlIGJsYWNrbGlzdGVkLgABYQoAAAATAABIVGVjaG5pY2FsQ29tbWl0dGVlAUhUZWNobmljYWxDb21taXR0ZWUcJFByb3Bvc2FscwEAZQoEAASQIFRoZSBoYXNoZXMgb2YgdGhlIGFjdGl2ZSBwcm9wb3NhbHMuAChQcm9wb3NhbE9mAAEEBiwMBAAEzCBBY3R1YWwgcHJvcG9zYWwgZm9yIGEgZ2l2ZW4gaGFzaCwgaWYgaXQncyBjdXJyZW50LgAYQ29zdE9mAAEEBixpCgQAEAkBIENvbnNpZGVyYXRpb24gY29zdCBjcmVhdGVkIGZvciBwdWJsaXNoaW5nIGFuZCBzdG9yaW5nIGEgcHJvcG9zYWwuAHEBIERldGVybWluZWQgYnkgW0NvbmZpZzo6Q29uc2lkZXJhdGlvbl0gYW5kIG1heSBiZSBub3QgcHJlc2VudCBmb3IgY2VydGFpbiBwcm9wb3NhbHMgKGUuZy4gaWYNASB0aGUgcHJvcG9zYWwgY291bnQgYXQgdGhlIHRpbWUgb2YgY3JlYXRpb24gd2FzIGJlbG93IHRocmVzaG9sZCBOKS4AGFZvdGluZwABBAYsbQoEAAS0IFZvdGVzIG9uIGEgZ2l2ZW4gcHJvcG9zYWwsIGlmIGl0IGlzIG9uZ29pbmcuADRQcm9wb3NhbENvdW50AQAoEAAAAAAESCBQcm9wb3NhbHMgc28gZmFyLgAcTWVtYmVycwEASAQABDkBIFRoZSBjdXJyZW50IG1lbWJlcnMgb2YgdGhlIGNvbGxlY3RpdmUuIFRoaXMgaXMgc3RvcmVkIHNvcnRlZCAoanVzdCBieSB2YWx1ZSkuABRQcmltZQAAAAQABGEBIFRoZSBwcmltZSBtZW1iZXIgdGhhdCBoZWxwcyBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgdm90ZSBiZWhhdmlvciBpbiBjYXNlIG9mIGFic3RlbnRpb25zLgAByQEAAWUHAARETWF4UHJvcG9zYWxXZWlnaHTkKAcAEKXU6AIAQAEEJQEgVGhlIG1heGltdW0gd2VpZ2h0IG9mIGEgZGlzcGF0Y2ggY2FsbCB0aGF0IGNhbiBiZSBwcm9wb3NlZCBhbmQgZXhlY3V0ZWQuAAFxCgAEIFByb3Bvc2FsDASAIFRoZSBydW50aW1lIGNhbGwgZGlzcGF0Y2ggdHlwZS4AGQAAFFByb3h5ARRQcm94eQgcUHJveGllcwEBBAUAdQpEAAAAAAAAAAAAAAAAAAAAAAAIRQEgVGhlIHNldCBvZiBhY2NvdW50IHByb3hpZXMuIE1hcHMgdGhlIGFjY291bnQgd2hpY2ggaGFzIGRlbGVnYXRlZCB0byB0aGUgYWNjb3VudHMhASB3aGljaCBhcmUgYmVpbmcgZGVsZWdhdGVkIHRvLCB0b2dldGhlciB3aXRoIHRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0LgA0QW5ub3VuY2VtZW50cwEBBAUAhQpEAAAAAAAAAAAAAAAAAAAAAAAErCBUaGUgYW5ub3VuY2VtZW50cyBtYWRlIGJ5IHRoZSBwcm94eSAoa2V5KS4AAdEBAAFpBwAYQFByb3h5RGVwb3NpdEJhc2VAQADgEQIetgAAAAAAAAAAAAAQEQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIHByb3h5LgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMlASBgc2l6ZW9mKEJhbGFuY2UpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXMgYHNpemVvZihBY2NvdW50SWQpYCBieXRlcy4ASFByb3h5RGVwb3NpdEZhY3RvckBAACyZgOYAAAAAAAAAAAAAABS8IFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBwcm94eSBhZGRlZC4ANQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgcGx1cyBhbiBpbnN0YW5jZSBvZiBgUHJveHlUeXBlYCBtb3JlIGludG8gYWEBIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLiBUaHVzLCB3aGVuIGNvbmZpZ3VyaW5nIGBQcm94eURlcG9zaXRGYWN0b3JgIG9uZSBzaG91bGQgdGFrZfQgaW50byBhY2NvdW50IGAzMiArIHByb3h5X3R5cGUuZW5jb2RlKCkubGVuKClgIGJ5dGVzIG9mIGRhdGEuAChNYXhQcm94aWVzKBAgAAAABPAgVGhlIG1heGltdW0gYW1vdW50IG9mIHByb3hpZXMgYWxsb3dlZCBmb3IgYSBzaW5nbGUgYWNjb3VudC4AKE1heFBlbmRpbmcoECAAAAAERQEgVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUtZGVsYXllZCBhbm5vdW5jZW1lbnRzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgcGVuZGluZy4AXEFubm91bmNlbWVudERlcG9zaXRCYXNlQEAA4BECHrYAAAAAAAAAAAAAEDEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYW4gYW5ub3VuY2VtZW50LgBJASBUaGlzIGlzIGhlbGQgd2hlbiBhIG5ldyBzdG9yYWdlIGl0ZW0gaG9sZGluZyBhIGBCYWxhbmNlYCBpcyBjcmVhdGVkICh0eXBpY2FsbHkgMTYgIGJ5dGVzKS4AZEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JAQABYMgHNAQAAAAAAAAAAAAAQ1CBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgYW5ub3VuY2VtZW50IG1hZGUuAFkBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIGFuIGBBY2NvdW50SWRgLCBgSGFzaGAgYW5kIGBCbG9ja051bWJlcmAgKHR5cGljYWxseSA2OCBieXRlcymMIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4AAZUKAAgsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4kUHJveHlUeXBl2QEQVQEgQSBraW5kIG9mIHByb3h5OyBzcGVjaWZpZWQgd2l0aCB0aGUgcHJveHkgYW5kIHBhc3NlZCBpbiB0byB0aGUgYElzUHJveHlhYmxlYCBmaWx0ZXIuUQEgVGhlIGluc3RhbmNlIGZpbHRlciBkZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBjYWxsIG1heSBiZSBwcm94aWVkIHVuZGVyIHRoaXMgdHlwZS4ATQEgSU1QT1JUQU5UOiBgRGVmYXVsdGAgbXVzdCBiZSBwcm92aWRlZCBhbmQgTVVTVCBCRSB0aGUgdGhlICptb3N0IHBlcm1pc3NpdmUqIHZhbHVlLggYCdeDRnJ6DvWMD6A7r6Mjy8UUiNkqGqcTewO/tQ78F0RjaGVja19wZXJtaXNzaW9ucwgQY2FsbAwocHJveHlfdHlwZdkBRAT0IENoZWNrIGlmIGEgYFJ1bnRpbWVDYWxsYCBpcyBhbGxvd2VkIGZvciBhIGdpdmVuIGBQcm94eVR5cGVgLgAYCdeDRnJ6DvWMD6A7r6MjFxSwYH1irwo7OwrSxdVcWCxpc19zdXBlcnNldAggdG9fY2hlY2vZARxhZ2FpbnN02QFEBPQgQ2hlY2sgaWYgb25lIGBQcm94eVR5cGVgIGlzIGEgc3Vic2V0IG9mIGFub3RoZXIgYFByb3h5VHlwZWAuAB0AACBNdWx0aXNpZwEgTXVsdGlzaWcEJE11bHRpc2lncwABCAUCmQqdCgQABJQgVGhlIHNldCBvZiBvcGVuIG11bHRpc2lnIG9wZXJhdGlvbnMuAAHdAQABcQcADCxEZXBvc2l0QmFzZUBAAKA3zUy4AAAAAAAAAAAAABhZASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgbXVsdGlzaWcgZXhlY3V0aW9uIG9yIHRvhCBzdG9yZSBhIGRpc3BhdGNoIGNhbGwgZm9yIGxhdGVyLgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMxASBgNCArIHNpemVvZigoQmxvY2tOdW1iZXIsIEJhbGFuY2UsIEFjY291bnRJZCkpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXOAIGAzMiArIHNpemVvZihBY2NvdW50SWQpYCBieXRlcy4ANERlcG9zaXRGYWN0b3JAQACAdYTfAAAAAAAAAAAAAAAMVQEgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHVuaXQgdGhyZXNob2xkIHdoZW4gY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24uACUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIG1vcmUgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLgA4TWF4U2lnbmF0b3JpZXMoEGQAAAAE7CBUaGUgbWF4aW11bSBhbW91bnQgb2Ygc2lnbmF0b3JpZXMgYWxsb3dlZCBpbiB0aGUgbXVsdGlzaWcuAAGlCgAELFJ1bnRpbWVDYWxsDARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuAB8AABxVbmlxdWVzARxVbmlxdWVzKBRDbGFzcwABBAJAqQoEAARkIERldGFpbHMgb2YgYSBjb2xsZWN0aW9uLgBMT3duZXJzaGlwQWNjZXB0YW5jZQABBAIAQAQABCkBIFRoZSBjb2xsZWN0aW9uLCBpZiBhbnksIG9mIHdoaWNoIGFuIGFjY291bnQgaXMgd2lsbGluZyB0byB0YWtlIG93bmVyc2hpcC4AHEFjY291bnQAAQwCAgKtCnAEAAhZASBUaGUgaXRlbXMgaGVsZCBieSBhbnkgZ2l2ZW4gYWNjb3VudDsgc2V0IG91dCB0aGlzIHdheSBzbyB0aGF0IGl0ZW1zIG93bmVkIGJ5IGEgc2luZ2xlbCBhY2NvdW50IGNhbiBiZSBlbnVtZXJhdGVkLgAwQ2xhc3NBY2NvdW50AAEIAgK9CXAEAAhpASBUaGUgY29sbGVjdGlvbnMgb3duZWQgYnkgYW55IGdpdmVuIGFjY291bnQ7IHNldCBvdXQgdGhpcyB3YXkgc28gdGhhdCBjb2xsZWN0aW9ucyBvd25lZCBieZAgYSBzaW5nbGUgYWNjb3VudCBjYW4gYmUgZW51bWVyYXRlZC4AFEFzc2V0AAEIAgJ9ArEKBAAE0CBUaGUgaXRlbXMgaW4gZXhpc3RlbmNlIGFuZCB0aGVpciBvd25lcnNoaXAgZGV0YWlscy4APENsYXNzTWV0YWRhdGFPZgABBAJAtQoEAARoIE1ldGFkYXRhIG9mIGEgY29sbGVjdGlvbi4ASEluc3RhbmNlTWV0YWRhdGFPZgABCAICfQK5CgQABFQgTWV0YWRhdGEgb2YgYW4gaXRlbS4AJEF0dHJpYnV0ZQABDAICAr0KwQoEAARwIEF0dHJpYnV0ZXMgb2YgYSBjb2xsZWN0aW9uLgAsSXRlbVByaWNlT2YAAQgCAn0CxQoEAARwIFByaWNlIG9mIGFuIGFzc2V0IGluc3RhbmNlLgBMQ29sbGVjdGlvbk1heFN1cHBseQABBAJAKAQABPAgS2VlcHMgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gbWlnaHQgaGF2ZS4AAekBAAF1BwAgRENvbGxlY3Rpb25EZXBvc2l0QEAAAAAAAAAAAAAAAAAAAAAABAEBIFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBjb2xsZWN0aW9uLgAsSXRlbURlcG9zaXRAQAAAAAAAAAAAAAAAAAAAAAAE9CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gaXRlbS4ATE1ldGFkYXRhRGVwb3NpdEJhc2VAQACAxqR+jQMAAAAAAAAAAAAETQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgbWV0YWRhdGEgdG8geW91ciBpdGVtLgBQQXR0cmlidXRlRGVwb3NpdEJhc2VAQAAQpdToAAAAAAAAAAAAAAAEVQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgYW4gYXR0cmlidXRlIHRvIGFuIGl0ZW0uADhEZXBvc2l0UGVyQnl0ZUBAABCl1OgAAAAAAAAAAAAAAAhZASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgc3RvcmUgaW4gbWV0YWRhdGEswCBlaXRoZXIgIm5vcm1hbCIgbWV0YWRhdGEgb3IgYXR0cmlidXRlIG1ldGFkYXRhLgAsU3RyaW5nTGltaXQoEEgAAAAEsCBUaGUgbWF4aW11bSBsZW5ndGggb2YgZGF0YSBzdG9yZWQgb24tY2hhaW4uACBLZXlMaW1pdCgQAAEAAASgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUga2V5LgAoVmFsdWVMaW1pdCgQAAQAAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUgdmFsdWUuAAHJCgAIMENvbGxlY3Rpb25JZEAEnCBJZGVudGlmaWVyIGZvciB0aGUgY29sbGVjdGlvbiBvZiBpdGVtLhhJdGVtSWRABPQgVGhlIHR5cGUgdXNlZCB0byBpZGVudGlmeSBhIHVuaXF1ZSBpdGVtIHdpdGhpbiBhIGNvbGxlY3Rpb24uACAAAEhTdGF0ZVRyaWVNaWdyYXRpb24BSFN0YXRlVHJpZU1pZ3JhdGlvbgxATWlncmF0aW9uUHJvY2VzcwEAEQI4AAAAAAAAAAAAAAAAAAAQUCBNaWdyYXRpb24gcHJvZ3Jlc3MuAF0BIFRoaXMgc3RvcmVzIHRoZSBzbmFwc2hvdCBvZiB0aGUgbGFzdCBtaWdyYXRlZCBrZXlzLiBJdCBjYW4gYmUgc2V0IGludG8gbW90aW9uIGFuZCBtb3Zl1CBmb3J3YXJkIGJ5IGFueSBvZiB0aGUgbWVhbnMgcHJvdmlkZWQgYnkgdGhpcyBwYWxsZXQuAChBdXRvTGltaXRzAQAJAgQADNQgVGhlIGxpbWl0cyB0aGF0IGFyZSBpbXBvc2VkIG9uIGF1dG9tYXRpYyBtaWdyYXRpb25zLgDUIElmIHNldCB0byBOb25lLCB0aGVuIG5vIGF1dG9tYXRpYyBtaWdyYXRpb24gaGFwcGVucy4AYFNpZ25lZE1pZ3JhdGlvbk1heExpbWl0cwAADQIEAAzgIFRoZSBtYXhpbXVtIGxpbWl0cyB0aGF0IHRoZSBzaWduZWQgbWlncmF0aW9uIGNvdWxkIHVzZS4AtCBJZiBub3Qgc2V0LCBubyBzaWduZWQgc3VibWlzc2lvbiBpcyBhbGxvd2VkLgABBQIAAXkHAAQkTWF4S2V5TGVuKBAAAgAAVLQgTWF4aW1hbCBudW1iZXIgb2YgYnl0ZXMgdGhhdCBhIGtleSBjYW4gaGF2ZS4AsCBGUkFNRSBpdHNlbGYgZG9lcyBub3QgbGltaXQgdGhlIGtleSBsZW5ndGguAQEgVGhlIGNvbmNyZXRlIHZhbHVlIG11c3QgdGhlcmVmb3JlIGRlcGVuZCBvbiB5b3VyIHN0b3JhZ2UgdXNhZ2UuWQEgQSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VOTWFwYF0gZm9yIGV4YW1wbGUgY2FuIGhhdmUgYW4gYXJiaXRyYXJ5IG51bWJlciBvZkUBIGtleXMgd2hpY2ggYXJlIHRoZW4gaGFzaGVkIGFuZCBjb25jYXRlbmF0ZWQsIHJlc3VsdGluZyBpbiBhcmJpdHJhcmlseSBsb25nIGtleXMuAEEBIFVzZSB0aGUgKnN0YXRlIG1pZ3JhdGlvbiBSUEMqIHRvIHJldHJpZXZlIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3Qga2V5IGluIHlvdXIBASBzdG9yYWdlOiA8aHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL2lzc3Vlcy8xMTY0Mj4AKQEgVGhlIG1pZ3JhdGlvbiB3aWxsIGhhbHQgd2l0aCBhIGBIYWx0ZWRgIGV2ZW50IGlmIHRoaXMgdmFsdWUgaXMgdG9vIHNtYWxsLkkBIFNpbmNlIHRoZXJlIGlzIG5vIHJlYWwgcGVuYWx0eSBmcm9tIG92ZXItZXN0aW1hdGluZywgaXQgaXMgYWR2aXNlZCB0byB1c2UgYSBsYXJnZYAgdmFsdWUuIFRoZSBkZWZhdWx0IGlzIDUxMiBieXRlLgCAIFNvbWUga2V5IGxlbmd0aHMgZm9yIHJlZmVyZW5jZTrQIC0gW2BmcmFtZV9zdXBwb3J0OjpzdG9yYWdlOjpTdG9yYWdlVmFsdWVgXTogMzIgYnl0ZcggLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VNYXBgXTogNjQgYnl0ZeAgLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VEb3VibGVNYXBgXTogOTYgYnl0ZQBIIEZvciBtb3JlIGluZm8gc2VlSQEgPGh0dHBzOi8vd3d3LnNoYXdudGFicml6aS5jb20vYmxvZy9zdWJzdHJhdGUvcXVlcnlpbmctc3Vic3RyYXRlLXN0b3JhZ2UtdmlhLXJwYy8+AAGBBwAAACMAAEBDb252aWN0aW9uVm90aW5nAUBDb252aWN0aW9uVm90aW5nCCRWb3RpbmdGb3IBAQgFBc0K0QrYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHUBIEFsbCB2b3RpbmcgZm9yIGEgcGFydGljdWxhciB2b3RlciBpbiBhIHBhcnRpY3VsYXIgdm90aW5nIGNsYXNzLiBXZSBzdG9yZSB0aGUgYmFsYW5jZSBmb3IgdGhlnCBudW1iZXIgb2Ygdm90ZXMgdGhhdCB3ZSBoYXZlIHJlY29yZGVkLgA0Q2xhc3NMb2Nrc0ZvcgEBBAUA8QoEAAxpASBUaGUgdm90aW5nIGNsYXNzZXMgd2hpY2ggaGF2ZSBhIG5vbi16ZXJvIGxvY2sgcmVxdWlyZW1lbnQgYW5kIHRoZSBsb2NrIGFtb3VudHMgd2hpY2ggdGhleW0BIHJlcXVpcmUuIFRoZSBhY3R1YWwgYW1vdW50IGxvY2tlZCBvbiBiZWhhbGYgb2YgdGhpcyBwYWxsZXQgc2hvdWxkIGFsd2F5cyBiZSB0aGUgbWF4aW11bSBvZiwgdGhpcyBsaXN0LgABHQIAAYUHAAggTWF4Vm90ZXMoEBkAAAAQ8CBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCB2b3RlcyBhbiBhY2NvdW50IG1heSBoYXZlLgBVASBBbHNvIHVzZWQgdG8gY29tcHV0ZSB3ZWlnaHQsIGFuIG92ZXJseSBsYXJnZSB2YWx1ZSBjYW4gbGVhZCB0byBleHRyaW5zaWNzIHdpdGggbGFyZ2XAIHdlaWdodCBlc3RpbWF0aW9uOiBzZWUgYGRlbGVnYXRlYCBmb3IgaW5zdGFuY2UuAERWb3RlTG9ja2luZ1BlcmlvZCgQwIkBABCQIFRoZSBtaW5pbXVtIHBlcmlvZCBvZiB2b3RlIGxvY2tpbmcuAGUBIEl0IHNob3VsZCBiZSBubyBzaG9ydGVyIHRoYW4gZW5hY3RtZW50IHBlcmlvZCB0byBlbnN1cmUgdGhhdCBpbiB0aGUgY2FzZSBvZiBhbiBhcHByb3ZhbCxJASB0aG9zZSBzdWNjZXNzZnVsIHZvdGVycyBhcmUgbG9ja2VkIGludG8gdGhlIGNvbnNlcXVlbmNlcyB0aGF0IHRoZWlyIHZvdGVzIGVudGFpbC4AAf0KAAAAJAAAJFJlZmVyZW5kYQEkUmVmZXJlbmRhFDxSZWZlcmVuZHVtQ291bnQBACgQAAAAAAQxASBUaGUgbmV4dCBmcmVlIHJlZmVyZW5kdW0gaW5kZXgsIGFrYSB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBzdGFydGVkIHNvIGZhci4ARFJlZmVyZW5kdW1JbmZvRm9yAAEEAigBCwQABLQgSW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgZ2l2ZW4gcmVmZXJlbmR1bS4AKFRyYWNrUXVldWUBAQQFgCELBAAQXQEgVGhlIHNvcnRlZCBsaXN0IG9mIHJlZmVyZW5kYSByZWFkeSB0byBiZSBkZWNpZGVkIGJ1dCBub3QgeWV0IGJlaW5nIGRlY2lkZWQsIG9yZGVyZWQgYnl8IGNvbnZpY3Rpb24td2VpZ2h0ZWQgYXBwcm92YWxzLgBBASBUaGlzIHNob3VsZCBiZSBlbXB0eSBpZiBgRGVjaWRpbmdDb3VudGAgaXMgbGVzcyB0aGFuIGBUcmFja0luZm86Om1heF9kZWNpZGluZ2AuADREZWNpZGluZ0NvdW50AQEEBYAoEAAAAAAExCBUaGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBiZWluZyBkZWNpZGVkIGN1cnJlbnRseS4AKE1ldGFkYXRhT2YAAQQCKCwEABgFASBUaGUgbWV0YWRhdGEgaXMgYSBnZW5lcmFsIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcgdGhlIHJlZmVyZW5kdW0uSQEgVGhlIGBIYXNoYCByZWZlcnMgdG8gdGhlIHByZWltYWdlIG9mIHRoZSBgUHJlaW1hZ2VzYCBwcm92aWRlciB3aGljaCBjYW4gYmUgYSBKU09OiCBkdW1wIG9yIElQRlMgaGFzaCBvZiBhIEpTT04gZmlsZS4AdQEgQ29uc2lkZXIgYSBnYXJiYWdlIGNvbGxlY3Rpb24gZm9yIGEgbWV0YWRhdGEgb2YgZmluaXNoZWQgcmVmZXJlbmR1bXMgdG8gYHVucmVxdWVzdGAgKHJlbW92ZSlEIGxhcmdlIHByZWltYWdlcy4AATECAAGJBwAURFN1Ym1pc3Npb25EZXBvc2l0QEAAQHoQ81oAAAAAAAAAAAAABDUBIFRoZSBtaW5pbXVtIGFtb3VudCB0byBiZSB1c2VkIGFzIGEgZGVwb3NpdCBmb3IgYSBwdWJsaWMgcmVmZXJlbmR1bSBwcm9wb3NhbC4AJE1heFF1ZXVlZCgQZAAAAATkIE1heGltdW0gc2l6ZSBvZiB0aGUgcmVmZXJlbmR1bSBxdWV1ZSBmb3IgYSBzaW5nbGUgdHJhY2suAERVbmRlY2lkaW5nVGltZW91dCgQgHAAAAhVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBhZnRlciBzdWJtaXNzaW9uIHRoYXQgYSByZWZlcmVuZHVtIG11c3QgYmVnaW4gYmVpbmcgZGVjaWRlZCBieS7kIE9uY2UgdGhpcyBwYXNzZXMsIHRoZW4gYW55b25lIG1heSBjYW5jZWwgdGhlIHJlZmVyZW5kdW0uADRBbGFybUludGVydmFsKBABAAAADF0BIFF1YW50aXphdGlvbiBsZXZlbCBmb3IgdGhlIHJlZmVyZW5kdW0gd2FrZXVwIHNjaGVkdWxlci4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgcmVzdWx0IGluXQEgZmV3ZXIgc3RvcmFnZSByZWFkcy93cml0ZXMgbmVlZGVkIGZvciBzbWFsbGVyIHZvdGVycywgYnV0IGFsc28gcmVzdWx0IGluIGRlbGF5cyB0byB0aGVVASBhdXRvbWF0aWMgcmVmZXJlbmR1bSBzdGF0dXMgY2hhbmdlcy4gRXhwbGljaXQgc2VydmljaW5nIGluc3RydWN0aW9ucyBhcmUgdW5hZmZlY3RlZC4AGFRyYWNrcyULhRAoAABkcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAGSns7bgDQAAAAAAAAAAWAIAAMCJAQAgHAAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAKnUVAQBkd2hpdGVsaXN0ZWRfY2FsbGVyAAAAAAAAAAMAAAAAAMUuvKKxAAAAAAAAAAAAZAAAAMCoAABgCQAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAC38cFAAAAAACiCAwAAAAAAExmKwEAAAAAAgBkcmVmZXJlbmR1bV9jYW5jZWxsZXIAAAAAAAMAAAAAANnprC14AwAAAAAAAAAAWAIAAMCoAABYAgAAZAAAAADbTg8iAGXNHQDKmjsCHex6AAAAAABSIk4BAAAAADS2h///////AwBkcmVmZXJlbmR1bV9raWxsZXIAAAAAAAAAAAMAAAAAAIu9BoloCgAAAAAAAAAAWAIAAMCoAABYAgAAZAAAAADbTg8iAGXNHQDKmjsCHex6AAAAAABSIk4BAAAAADS2h///////BABkZ2VuZXJhbF9hZG1pbgAAAAAAAAAAAAAAAAMAAAAAANnprC14AwAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAACGA7HAQAAAADLwJUEAAAAAOpyWf7/////BQBkdHJlYXN1cmVyAAAAAAAAAAAAAAAAAAAAAAMAAAAAAIu9BoloCgAAAAAAAAAAWAIAAMCJAQAgHAAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAlboKBgBkc3BlbmRlcgAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAIpdeEVjAQAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAAAAypo7AGXNHQDKmjsCGA7HAQAAAADLwJUEAAAAAOpyWf7/////BwBkdGlwcGVyAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAMFv8oYjAAAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAADbTg8iAGXNHQDKmjsCHex6AAAAAABSIk4BAAAAADS2h///////CABkb21uaXBvb2xfYWRtaW4AAAAAAAAAAAAAAAMAAAAAANnprC14AwAAAAAAAAAAWAIAAMCJAQAIBwAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAACGA7HAQAAAADLwJUEAAAAAOpyWf7/////CQBkZWNvbm9taWNfcGFyYW1ldGVycwAAAAAAAAMAAAAAAIu9BoloCgAAAAAAAAAAWAIAAMCJAQAgHAAAZAAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAlboKDEggQSBsaXN0IG9mIHRyYWNrcy4AXQEgTm90ZTogaWYgdGhlIHRyYWNrcyBhcmUgZHluYW1pYywgdGhlIHZhbHVlIGluIHRoZSBzdGF0aWMgbWV0YWRhdGEgbWlnaHQgYmUgaW5hY2N1cmF0ZS4AAT0LAAwsUnVudGltZUNhbGwMABRWb3Rlc0AEzCBUaGUgY291bnRpbmcgdHlwZSBmb3Igdm90ZXMuIFVzdWFsbHkganVzdCBiYWxhbmNlLhRUYWxseY0HBEwgVGhlIHRhbGx5aW5nIHR5cGUuACUAABxPcmlnaW5zAAAAAAAAACYAACRXaGl0ZWxpc3QBJFdoaXRlbGlzdAQ8V2hpdGVsaXN0ZWRDYWxsAAEEBSxwBAAAAAE5AgABkQcAAAFBCwAELFJ1bnRpbWVDYWxsDARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuACcAAChEaXNwYXRjaGVyAShEaXNwYXRjaGVyDEhBYXZlTWFuYWdlckFjY291bnQBAACAqn4AAAAAAAAAAAAAAAAAAAAKp+AAAAAAAAAAAAAAAAAAACBFeHRyYUdhcwEAGCAAAAAAAAAAAAAAVExhc3RFdm1DYWxsRXhpdFJlYXNvbgAARQgEAAAAAT0CAAGhBwAAAUULAAQsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AKAAANEFzc2V0UmVnaXN0cnkBNEFzc2V0UmVnaXN0cnkcGEFzc2V0cwABBAIoSQsEAARUIERldGFpbHMgb2YgYW4gYXNzZXQuACxOZXh0QXNzZXRJZAEAKBABAAAABF0BIE5leHQgYXZhaWxhYmxlIGFzc2V0IGlkLiBUaGlzIGlzIHNlcXVlbnRpYWwgaWQgYXNzaWduZWQgZm9yIGVhY2ggbmV3IHJlZ2lzdGVyZWQgYXNzZXQuACBBc3NldElkcwABBAJJAigEAASkIE1hcHBpbmcgYmV0d2VlbiBhc3NldCBuYW1lIGFuZCBhc3NldCBpZC4AOEFzc2V0TG9jYXRpb25zAAEEAihZAgQABHQgTmF0aXZlIGxvY2F0aW9uIG9mIGFuIGFzc2V0LgAwQmFubmVkQXNzZXRzAAEEAihwBAAEsCBOb24tbmF0aXZlIGFzc2V0cyB3aGljaCB0cmFuc2ZlciBpcyBiYW5uZWQuADhMb2NhdGlvbkFzc2V0cwABBAJZAigEAASEIExvY2FsIGFzc2V0IGZvciBuYXRpdmUgbG9jYXRpb24uAGRFeGlzdGVudGlhbERlcG9zaXRDb3VudGVyAQBAQAAAAAAAAAAAAAAAAAAAAAAILQEgTnVtYmVyIG9mIGFjY291bnRzIHRoYXQgcGFpZCBleGlzdGVudGlhbCBkZXBvc2l0cyBmb3IgaW5zdWZmaWNpZW50IGFzc2V0cy6wIFRoaXMgc3RvcmFnZSBpcyB1c2VkIGJ5IGBTdWZmaWNpZW5jeUNoZWNrYC4AAUECAAGlBwAQTFNlcXVlbnRpYWxJZFN0YXJ0QXQoEEBCDwAAACxTdHJpbmdMaW1pdCgQIAAAAATgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi4AOE1pblN0cmluZ0xpbWl0KBADAAAABNAgVGhlIG1pbiBsZW5ndGggb2YgYSBuYW1lIG9yIHN5bWJvbCBzdG9yZWQgb24tY2hhaW4uAGxSZWdFeHRlcm5hbFdlaWdodE11bHRpcGxpZXIYIAoAAAAAAAAABNAgV2VpZ2h0IG11bHRpcGxpZXIgZm9yIGByZWdpc3Rlcl9leHRlcm5hbGAgZXh0cmluc2ljAAFNCwAIHEFzc2V0SWQoBCwgQXNzZXQgdHlwZUxBc3NldE5hdGl2ZUxvY2F0aW9uWQIEUCBBc3NldCBsb2NhdGlvbiB0eXBlADMAABhDbGFpbXMBGENsYWltcwQYQ2xhaW1zAQEEAq0HQEAAAAAAAAAAAAAAAAAAAAAABJwgQXNzZXQgaWQgc3RvcmFnZSBmb3IgZWFjaCBzaGFyZWQgdG9rZW4AAWUCAAGpBwAAAVELAAAANQAAOEdlbmVzaXNIaXN0b3J5AThHZW5lc2lzSGlzdG9yeQQ0UHJldmlvdXNDaGFpbgEAVQsBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtAgAAAAAAADcAADxDb2xsYXRvclJld2FyZHMBPENvbGxhdG9yUmV3YXJkcwQkQ29sbGF0b3JzAQEEBShZCwQABKggU3RvcmVzIHRoZSBjb2xsYXRvcnMgcGVyIHNlc3Npb24gKGluZGV4KS4AAAGxBwAMRFJld2FyZFBlckNvbGxhdG9yQEB4+ot1KJ4BAAAAAAAAAAAABIAgUmV3YXJkIGFtb3VudCBwZXIgb25lIGNvbGxhdG9yLgBAUmV3YXJkQ3VycmVuY3lJZCgQAAAAAARAIFJld2FyZCBBc3NldCBJZAAoUmV3YXJkc0JhZwCAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdCwAIHEJhbGFuY2VABDQgQmFsYW5jZSB0eXBlKEN1cnJlbmN5SWQoAAA5AABAQ29sbGF0b3JSb3RhdGlvbgAAAbUHAAAAAAA6AAAgT21uaXBvb2wBIE9tbmlwb29sHBhBc3NldHMAAQQCKGELBAAEiCBTdGF0ZSBvZiBhbiBhc3NldCBpbiB0aGUgb21uaXBvb2wATEh1YkFzc2V0VHJhZGFiaWxpdHkBAHkCBAEEdCBUcmFkYWJsZSBzdGF0ZSBvZiBodWIgYXNzZXQuACRQb3NpdGlvbnMAAQQCQGULBAAE9CBMUCBwb3NpdGlvbnMuIE1hcHMgTkZUIGluc3RhbmNlIGlkIHRvIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24AOE5leHRQb3NpdGlvbklkAQBAQAAAAAAAAAAAAAAAAAAAAAAEXCBQb3NpdGlvbiBpZHMgc2VxdWVuY2VyABxTbGlwRmVlAACFAgQADHwgR2xvYmFsIHNsaXAgZmVlIGNvbmZpZ3VyYXRpb24uBQEgYE5vbmVgID0gc2xpcCBmZWVzIGRpc2FibGVkIChkZWZhdWx0KS4gYFNvbWUoY29uZmlnKWAgPSBlbmFibGVkLrwgU2V0IHZpYSBgc2V0X3NsaXBfZmVlYCBleHRyaW5zaWMgKGdvdmVybmFuY2UpLgB0U2xpcEZlZUh1YlJlc2VydmVBdEJsb2NrU3RhcnQAAQQCKEAEAAghASBTbmFwc2hvdCBvZiBlYWNoIGFzc2V0J3MgaHViX3Jlc2VydmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGJsb2NrLjUBIExhemlseSBwb3B1bGF0ZWQgb24gZmlyc3QgdHJhZGUgcGVyIGFzc2V0IHBlciBibG9jaywgY2xlYXJlZCBpbiBvbl9maW5hbGl6ZS4AMFNsaXBGZWVEZWx0YQEBBAIoaQtEAAAAAAAAAAAAAAAAAAAAAAAM/CBDdW11bGF0aXZlIG5ldCBodWIgYXNzZXQgZGVsdGEgcGVyIGFzc2V0IGluIHRoZSBjdXJyZW50IGJsb2NrLg0BIE5lZ2F0aXZlID0gbmV0IGh1YiBhc3NldCBvdXRmbG93LCBwb3NpdGl2ZSA9IG5ldCBodWIgYXNzZXQgaW5mbG93LmAgQ2xlYXJlZCBpbiBvbl9maW5hbGl6ZS4AAXECAAG5BwAkKEhkeEFzc2V0SWQoEAAAAAAEQCBOYXRpdmUgQXNzZXQgSUQAKEh1YkFzc2V0SWQoEAEAAAAENCBIdWIgQXNzZXQgSUQAQE1pbldpdGhkcmF3YWxGZWV1AhBkAAAABFwgTWluaW11bSB3aXRoZHJhd2FsIGZlZQBMTWluaW11bVRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAARYIE1pbmltdW0gdHJhZGluZyBsaW1pdABQTWluaW11bVBvb2xMaXF1aWRpdHlAQEBCDwAAAAAAAAAAAAAAAAAEqCBNaW5pbXVtIHBvb2wgbGlxdWlkaXR5IHdoaWNoIGNhbiBiZSBhZGRlZAAoTWF4SW5SYXRpb0BAAwAAAAAAAAAAAAAAAAAAAATwIE1heCBmcmFjdGlvbiBvZiBhc3NldCByZXNlcnZlIHRvIHNlbGwgaW4gc2luZ2xlIHRyYW5zYWN0aW9uACxNYXhPdXRSYXRpb0BAAwAAAAAAAAAAAAAAAAAAAATsIE1heCBmcmFjdGlvbiBvZiBhc3NldCByZXNlcnZlIHRvIGJ1eSBpbiBzaW5nbGUgdHJhbnNhY3Rpb24APE5GVENvbGxlY3Rpb25JZEBAOQUAAAAAAAAAAAAAAAAAAARYIE5vbiBmdW5naWJsZSBjbGFzcyBpZAA8QnVyblByb3RvY29sRmVldQIQAAAAAAAAAW0LAAwcQXNzZXRJZCgEMCBBc3NldCB0eXBlLjhQb3NpdGlvbkl0ZW1JZEAEZCBQb3NpdGlvbiBpZGVudGlmaWVyIHR5cGUwQ29sbGVjdGlvbklkQARMIENvbGxlY3Rpb24gaWQgdHlwZQA7AABAVHJhbnNhY3Rpb25QYXVzZQFAVHJhbnNhY3Rpb25QYXVzZQRIUGF1c2VkVHJhbnNhY3Rpb25zAAEEBXELcAQADGwgVGhlIHBhdXNlZCB0cmFuc2FjdGlvbiBtYXAA3CBtYXAgKFBhbGxldE5hbWVCeXRlcywgRnVuY3Rpb25OYW1lQnl0ZXMpID0+IE9wdGlvbjwoKT4AAYkCAAG9BwAAAXkLAAAAPAAAGER1c3RlcgEYRHVzdGVyBEBBY2NvdW50V2hpdGVsaXN0AAEEAgBwBAAEgCBBY2NvdW50cyBleGNsdWRlZCBmcm9tIGR1c3RpbmcuAAGNAgABwQcABERUcmVhc3VyeUFjY291bnRJZACAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAErCBUcmVhc3VyeSBhY2NvdW50LCB3aGljaCByZWNlaXZlcyB0aGUgZHVzdC4AAX0LAAQcQXNzZXRJZCgELCBBc3NldCB0eXBlAD0AAExPbW5pcG9vbFdhcmVob3VzZUxNAUxPbW5pcG9vbFdhcmVob3VzZUxNGDRGYXJtU2VxdWVuY2VyAQAoEAAAAAAEvCBJZCBzZXF1ZW5jZXIgZm9yIGBHbG9iYWxGYXJtYCBhbmQgYFlpZWxkRmFybWAuAEBEZXBvc2l0U2VxdWVuY2VyAQBAQAAAAAAAAAAAAAAAAAAAAAAAAChHbG9iYWxGYXJtAAEEAiiBCwQAAAAkWWllbGRGYXJtAAEMAgICiQuNCwQABFAgWWllbGQgZmFybSBkZXRhaWxzLgAcRGVwb3NpdAABBAVAkQsEAAREIERlcG9zaXQgZGV0YWlscy4APEFjdGl2ZVlpZWxkRmFybQABCAICqQIoBAAE+CBBY3RpdmUoZmFybXMgYWJsZSB0byByZWNlaXZlIExQIHNoYXJlcyBkZXBvc2l0cykgeWllbGQgZmFybXMuAAGRAgABxQcAGCBQYWxsZXRJZK0JIE9tbmlXaExNBCwgUGFsbGV0IGlkLgBEVHJlYXN1cnlBY2NvdW50SWQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABOggVHJlYXN1cnkgYWNjb3VudCB0byByZWNlaXZlIGNsYWltZWQgcmV3YXJkcyBsb3dlciB0aGFuIEVEAExNaW5Ub3RhbEZhcm1SZXdhcmRzQEAAEKXU6AAAAAAAAAAAAAAABDkBIE1pbmltdW0gdG90YWwgcmV3YXJkcyB0byBkaXN0cmlidXRlIGZyb20gZ2xvYmFsIGZhcm0gZHVyaW5nIGxpcXVpZGl0eSBtaW5pbmcuAGRNaW5QbGFubmVkWWllbGRpbmdQZXJpb2RzKBBoOAAABOwgTWluaW11bSBudW1iZXIgb2YgcGVyaW9kcyB0byBydW4gbGlxdWlkaXR5IG1pbmluZyBwcm9ncmFtLgBgTWF4RmFybUVudHJpZXNQZXJEZXBvc2l0KBAFAAAACGUBIE1heGltdW0gbnVtYmVyIG9mIHlpZWxkIGZhcm1zIHNhbWUgTFAgc2hhcmVzIGNhbiBiZSByZS9kZXBvc2l0ZWQgaW50by4gVGhpcyB2YWx1ZSBhbHdheXNcIE1VU1QgQkUgPj0gMS4gICAgICAgICAAaE1heFlpZWxkRmFybXNQZXJHbG9iYWxGYXJtKBAyAAAACE0BIE1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgY2FuIGV4aXN0IGluIGdsb2JhbCBmYXJtLiBUaGlzIGluY2x1ZGVzIGFsbCBmYXJtcyBpbiB0aGWYIHN0b3JhZ2UoYWN0aXZlLCBzdG9wcGVkLCB0ZXJtaW5hdGVkKS4AAaELAAgcQXNzZXRJZCgEMCBBc3NldCB0eXBlLiRBbW1Qb29sSWQoBOQgSWQgdXNlZCB0byBpZGVudGlmeSBhbW0gcG9vbCBpbiBsaXF1aWRpdHkgbWluaW5nIHBhbGxldC4APgAAXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nAVxPbW5pcG9vbExpcXVpZGl0eU1pbmluZwQ4T21uaVBvc2l0aW9uSWQAAQQCQEAEAATQIE1hcCBvZiBvbW5pcG9vbCBwb3NpdGlvbidzIGlkcyB0byBMTSdzIGRlcG9zaXQgaWRzLgABlQIAAckHAAw8TkZUQ29sbGVjdGlvbklkQEAYCgAAAAAAAAAAAAAAAAAABNwgTkZUIGNvbGxlY3Rpb24gaWQgZm9yIGxpcXVpZGl0eSBtaW5pbmcncyBkZXBvc2l0IG5mdHMuADBPcmFjbGVTb3VyY2UhASBvbW5pcG9vbASEIElkZW50aWZpZXIgb2Ygb3JhY2xlIGRhdGEgc29ydWNlADBPcmFjbGVQZXJpb2QhAwQCBIwgT3JhY2xlJ3MgcHJpY2UgYWdncmVnYXRpb24gcGVyaW9kLgABqQsAAAA/AAAMT1RDAQxPVEMILE5leHRPcmRlcklkAQAoEAAAAAAEYCBJRCBzZXF1ZW5jZXIgZm9yIE9yZGVycwAYT3JkZXJzAAEEAiixCwQAAAAByQIAAc0HAAxwRXhpc3RlbnRpYWxEZXBvc2l0TXVsdGlwbGllcggEBQRBASBNdWx0aXBsaWVyIHVzZWQgdG8gY29tcHV0ZSBtaW5pbWFsIGFtb3VudHMgb2YgYXNzZXRfaW4gYW5kIGFzc2V0X291dCBpbiBhbiBPVEMuAAxGZWV1AhDoAwAABHggRmVlIGRlZHVjdGVkIGZyb20gYW1vdW50X291dC4ALEZlZVJlY2VpdmVyAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAQ4IEZlZSByZWNlaXZlci4AAbULAAQcQXNzZXRJZCgEjCBJZGVudGlmaWVyIGZvciB0aGUgY2xhc3Mgb2YgYXNzZXQuAEAAADhDaXJjdWl0QnJlYWtlcgE4Q2lyY3VpdEJyZWFrZXI4YFRyYWRlVm9sdW1lTGltaXRQZXJBc3NldAEBBAIoqQIgiBMAABAnAAAI9CBUcmFkZSB2b2x1bWUgbGltaXRzIG9mIGFzc2V0cyBzZXQgYnkgc2V0X3RyYWRlX3ZvbHVtZV9saW1pdC6cIElmIG5vdCBzZXQsIHJldHVybnMgdGhlIGRlZmF1bHQgbGltaXQuAHxBbGxvd2VkVHJhZGVWb2x1bWVMaW1pdFBlckFzc2V0AAEEAii5CwQABGAgVHJhZGUgdm9sdW1lcyBwZXIgYXNzZXQAZExpcXVpZGl0eUFkZExpbWl0UGVyQXNzZXQBAQQCKNECJAH0AQAAECcAAAjEIExpcXVpZGl0eSBsaW1pdHMgb2YgYXNzZXRzIGZvciBhZGRpbmcgbGlxdWlkaXR5LpwgSWYgbm90IHNldCwgcmV0dXJucyB0aGUgZGVmYXVsdCBsaW1pdC4AhEFsbG93ZWRBZGRMaXF1aWRpdHlBbW91bnRQZXJBc3NldAABBAIovQsEAASAIEFkZCBsaXF1aWRpdHkgdm9sdW1lcyBwZXIgYXNzZXQASEFzc2V0TG9ja2Rvd25TdGF0ZQABBAIowQsEAAAAcExpcXVpZGl0eVJlbW92ZUxpbWl0UGVyQXNzZXQBAQQCKNECJAH0AQAAECcAAAjMIExpcXVpZGl0eSBsaW1pdHMgb2YgYXNzZXRzIGZvciByZW1vdmluZyBsaXF1aWRpdHkunCBJZiBub3Qgc2V0LCByZXR1cm5zIHRoZSBkZWZhdWx0IGxpbWl0LgCQQWxsb3dlZFJlbW92ZUxpcXVpZGl0eUFtb3VudFBlckFzc2V0AAEEAii9CwQABIwgUmVtb3ZlIGxpcXVpZGl0eSB2b2x1bWVzIHBlciBhc3NldABkR2xvYmFsV2l0aGRyYXdMaW1pdENvbmZpZwAA1QIEAASwIENvbmZpZ3VyZWQgZ2xvYmFsIHdpdGhkcmF3IGxpbWl0IHBhcmFtZXRlcnMAYFdpdGhkcmF3TGltaXRBY2N1bXVsYXRvcgEAxQtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEBIFR1cGxlIG9mIChjdXJyZW50X2FjY3VtdWxhdG9yX2luX3JlZiwgbGFzdF91cGRhdGVfdGltZXN0YW1wX21zKQBUV2l0aGRyYXdMb2NrZG93blVudGlsAAAYBAAE5CBJZiBzb21lLCBnbG9iYWwgbG9ja2Rvd24gaXMgYWN0aXZlIHVudGlsIHRoaXMgdGltZXN0YW1wLgA4RWdyZXNzQWNjb3VudHMAAQQCAHAEAATQIEEgbWFwIG9mIGFjY291bnRzIHRoYXQgYXJlIGNvbnNpZGVyZWQgZWdyZXNzIHNpbmtzLgBMSWdub3JlV2l0aGRyYXdMaW1pdAEARAQABMAgV2hlbiBzZXQgdG8gdHJ1ZSwgZWdyZXNzIGFjY291bnRpbmcgaXMgc2tpcHBlZC4AUEdsb2JhbEFzc2V0T3ZlcnJpZGVzAAEEAijdAgQABKwgT3ZlcnJpZGVzIGZvciBnbG9iYWwgYXNzZXQgY2F0ZWdvcml6YXRpb24uADxYY21FZ3Jlc3NCdWZmZXIAAH0CBAAI6CBQZXItWENNLW1lc3NhZ2UgYnVmZmVyIG9mICh3aXRoZHJhd25faGR4LCBkZXBvc2l0ZWRfaGR4KS4NASBOb25lIG1lYW5zIGJ1ZmZlciBpcyBpbmFjdGl2ZSAobm90IGluc2lkZSBYQ00gbWVzc2FnZSBwcm9jZXNzaW5nKS4AAc0CAAHRBwAMlERlZmF1bHRNYXhOZXRUcmFkZVZvbHVtZUxpbWl0UGVyQmxvY2upAiCIEwAAECcAAAgxASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSB0cmFkZWQgaW4gYSBibG9jay51ASBSZXByZXNlbnRlZCBhcyBhIG5vbi16ZXJvIGZyYWN0aW9uIChub21pbmF0b3IsIGRlbm9taW5hdG9yKSB3aXRoIHRoZSBtYXggdmFsdWUgYmVpbmcgMTBfMDAwLgCMRGVmYXVsdE1heEFkZExpcXVpZGl0eUxpbWl0UGVyQmxvY2vRAiQB9AEAABAnAAAMLQEgVGhlIG1heGltdW0gcGVyY2VudGFnZSBvZiBhIHBvb2wncyBsaXF1aWRpdHkgdGhhdCBjYW4gYmUgYWRkZWQgaW4gYSBibG9jay6dASBSZXByZXNlbnRlZCBhcyBhbiBvcHRpb25hbCBub24temVybyBmcmFjdGlvbiAobm9taW5hdG9yLCBkZW5vbWluYXRvcikgd2l0aCB0aGUgbWF4IHZhbHVlIGJlaW5nIDEwXzAwMC60IElmIHNldCB0byBOb25lLCB0aGUgbGltaXRzIGFyZSBub3QgZW5mb3JjZWQuAJhEZWZhdWx0TWF4UmVtb3ZlTGlxdWlkaXR5TGltaXRQZXJCbG9ja9ECJAH0AQAAECcAAAw1ASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSByZW1vdmVkIGluIGEgYmxvY2sunQEgUmVwcmVzZW50ZWQgYXMgYW4gb3B0aW9uYWwgbm9uLXplcm8gZnJhY3Rpb24gKG5vbWluYXRvciwgZGVub21pbmF0b3IpIHdpdGggdGhlIG1heCB2YWx1ZSBiZWluZyAxMF8wMDAutCBJZiBzZXQgdG8gTm9uZSwgdGhlIGxpbWl0cyBhcmUgbm90IGVuZm9yY2VkLgAByQsACBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC4cQmFsYW5jZUAEOCBCYWxhbmNlIHR5cGUuAEEAABhSb3V0ZXIBGFJvdXRlcgQYUm91dGVzAAEEAvUC5QIEAAR8IFN0b3Jpbmcgcm91dGVzIGZvciBhc3NldCBwYWlycwAB4QIAAdUHAAg0TmF0aXZlQXNzZXRJZCgQAAAAAARAIE5hdGl2ZSBBc3NldCBJZAAwT3JhY2xlUGVyaW9kIQMEAgSMIE9yYWNsZSdzIHByaWNlIGFnZ3JlZ2F0aW9uIHBlcmlvZC4AAc0LAAgcQXNzZXRJZCgEOCBBc3NldCBpZCB0eXBlHEJhbGFuY2VABDQgQmFsYW5jZSB0eXBlAEMAACxEeW5hbWljRmVlcwEsRHluYW1pY0ZlZXMIIEFzc2V0RmVlAAEEBSjRCwQACEkBIFN0b3JlcyBsYXN0IGNhbGN1bGF0ZWQgZmVlIG9mIGFuIGFzc2V0IGFuZCBibG9jayBudW1iZXIgaW4gd2hpY2ggaXQgd2FzIGNoYW5nZWQuLsggU3RvcmVkIGFzIChBc3NldCBmZWUsIFByb3RvY29sIGZlZSwgQmxvY2sgbnVtYmVyKQBUQXNzZXRGZWVDb25maWd1cmF0aW9uAAEEBSj9AgQABNggU3RvcmVzIHBlci1hc3NldCBmZWUgY29uZmlndXJhdGlvbiAoRml4ZWQgb3IgRHluYW1pYykAAfkCAAHZBwAISEFzc2V0RmVlUGFyYW1ldGVycwEDoMQJAABQwwAAACA9iHktAAAAAAAAAAAAAAAAyE5nbcEbAAAAAAAAAAAAAFRQcm90b2NvbEZlZVBhcmFtZXRlcnMBA6D0AQAAxAkAAACQHsS8FgAAAAAAAAAAAAAAAGSns7bgDQAAAAAAAAAAAAAB1QsACAxGZWV1AgRIIEZlZSBQZXJUaGluZyB0eXBlHEFzc2V0SWQoBDggQXNzZXQgaWQgdHlwZQBEAAAcU3Rha2luZwEcU3Rha2luZyAcU3Rha2luZwEA2QvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFggR2xvYmFsIHN0YWtpbmcgc3RhdGUuACRQb3NpdGlvbnMAAQQCQN0LBAAEXCBVc2VyJ3MgcG9zaXRpb24gc3RhdGUuADhOZXh0UG9zaXRpb25JZAEAQEAAAAAAAAAAAAAAAAAAAAAABGAgUG9zaXRpb24gaWRzIHNlcXVlbmNlci4AFFZvdGVzAQEEAkDhCwQABGAgTGlzdCBvZiBwb3NpdGlvbiB2b3Rlcy4ANFZvdGVzUmV3YXJkZWQAAQgCAvkL7QsEAASdASBMaXN0IG9mIHByb2Nlc3NlZCB2b3RlLiBVc2VkIHRvIGRldGVybWluZSBpZiB0aGUgdm90ZSBzaG91bGQgYmUgbG9ja2VkIGluIGNhc2Ugb2Ygdm90aW5nIG5vdCBpbiBmYXZvci4ANFBvc2l0aW9uVm90ZXMBAQQCQOELBAAEaQEgTGVnYWN5IHN0b3JhZ2UhIC0gVXNlZCB0byBoYW5kbGUgZGVtb2NyYWN5IHZvdGVzIHVudGlsIGRlbW9jcmFjeSBwYWxsZXQgaXMgZnVsbHkgcmVtb3ZlZC4AOFByb2Nlc3NlZFZvdGVzAAEIAgL5C+0LBAAEkQEgTGVnYWN5IHN0b3JhZ2UhIC0gVXNlZCB0byBoYW5kbGUgZGVtb2NyYWN5IHByb2Nlc3NlZCB2b3RlcyB1bnRpbCBkZW1vY3JhY3kgcGFsbGV0IGlzIGZ1bGx5IHJlbW92ZWQuAERTaXhTZWNCbG9ja3NTaW5jZQEAKBD/////BMAgQmxvY2sgbnVtYmVyIHdoZW4gd2Ugc3dpdGNoZWQgdG8gNiBzZWMuIGJsb2Nrcy4AAQUDAAHdBwAsMFBlcmlvZExlbmd0aCgQIBwAAASEIFN0YWtpbmcgcGVyaW9kIGxlbmd0aCBpbiBibG9ja3MuACBQYWxsZXRJZK0JIHN0YWtpbmcjBCwgUGFsbGV0IGlkLgA0TmF0aXZlQXNzZXRJZCgQAAAAAAREIE5hdGl2ZSBBc3NldCBJRC4AIE1pblN0YWtlQEAAgMakfo0DAAAAAAAAAAAABHAgTWluIGFtb3VudCB1c2VyIG11c3Qgc3Rha2UuAEBUaW1lUG9pbnRzV2VpZ2h0dQIQQEIPAATgIFdlaWdodCBvZiB0aGUgdGltZSBwb2ludHMgaW4gdG90YWwgcG9pbnRzIGNhbGN1bGF0aW9ucy4ASEFjdGlvblBvaW50c1dlaWdodCkDEADC6wsE6CBXZWlnaHQgb2YgdGhlIGFjdGlvbiBwb2ludHMgaW4gdG90YWwgcG9pbnRzIGNhbGN1bGF0aW9ucy4ATFRpbWVQb2ludHNQZXJQZXJpb2QIBAEE1CBOdW1iZXIgb2YgdGltZSBwb2ludHMgdXNlcnMgcmVjZWl2ZSBmb3IgZWFjaCBwZXJpb2QuAEhVbmNsYWltYWJsZVBlcmlvZHNAQAEAAAAAAAAAAAAAAAAAAAAIdQEgTnVtYmVyIG9mIHBlcmlvZHMgdXNlciBjYW4ndCBjbGFpbSByZXdhcmRzIGZvci4gVXNlciBjYW4gZXhpdCBidXQgd29uJ3QgcmVjZWl2ZSBhbnkgcmV3YXJkcy5xASBJZiBoZSBzdGF5IGxvbmdlciB0aGFuIGBVbmNsYWltYWJsZVBlcmlvZHNgIGhlIHdpbGwgcmVjZWl2ZSByZXdhcmRzIGFsc28gZm9yIHRoZXNlIHBlcmlvZHMuAEhDdXJyZW50U3Rha2VXZWlnaHQIBAIEsQEgV2VpZ2h0IG9mIHRoZSBhY3R1YWwgc3Rha2UgaW4gc2xhc2ggcG9pbnRzIGNhbGN1bGF0aW9uLiBCaWdnZXIgdGhlIHZhbHVlIGxvd2VyIHRoZSBjYWxjdWxhdGVkIHNsYXNoIHBvaW50cy4AIE1heFZvdGVzKBAZAAAABMwgTWF4IGFtb3VudCBvZiB2b3RlcyB0aGUgdXNlciBjYW4gaGF2ZSBhdCBhbnkgdGltZS4APE5GVENvbGxlY3Rpb25JZEBArggAAAAAAAAAAAAAAAAAAARMIE5GVCBjb2xsZWN0aW9uIGlkLgAB/QsADBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC44UG9zaXRpb25JdGVtSWRABGggUG9zaXRpb24gaWRlbnRpZmllciB0eXBlLjBDb2xsZWN0aW9uSWRABFAgQ29sbGVjdGlvbiBpZCB0eXBlLgBFAAAoU3RhYmxlc3dhcAEoU3RhYmxlc3dhcBgUUG9vbHMAAQQCKAUMBAAEPCBFeGlzdGluZyBwb29scwAgUG9vbFBlZ3MAAQQCKO0HBAAEPCBQb29sIHBlZyBpbmZvLgBAQXNzZXRUcmFkYWJpbGl0eQEBCAICqQIRAwQPBIggVHJhZGFiaWxpdHkgc3RhdGUgb2YgcG9vbCBhc3NldHMuADRQb29sU25hcHNob3RzAAEEAigJDAQABDkBIFRlbXBvcmFyeSBwb29sIHN0YXRlIHN0b3JhZ2UuIFVzZWQgdG8gc2F2ZSBhIHN0YXRlIG9mIHBvb2wgaW4gYSBzaW5nbGUgYmxvY2suACBCbG9ja0ZlZQABBAIodQIEAAS4IFRlbXBvcmFyeSBwb29sJ3MgdHJhZGUgZmVlIGZvciBjdXJyZW50IGJsb2NrLgA0U2hhcmVJc3N1YW5jZQEBBAIoQEAAAAAAAAAAAAAAAAAAAAAADA0BIFBhbGxldC10cmFja2VkIGlzc3VhbmNlIG9mIHBvb2wgc2hhcmUgdG9rZW5zICgidmlydHVhbCBpc3N1YW5jZSIpLikBIFVwZGF0ZWQgb25seSB3aGVuIHRoaXMgcGFsbGV0IG1pbnRzL2J1cm5zIHNoYXJlcywgc28gZXh0ZXJuYWwgbWludHMvYnVybnO8IG9mIHRoZSBzaGFyZSB0b2tlbiBjYW5ub3QgaW5mbHVlbmNlIHBvb2wgbWF0aC4AAQkDAAHhBwAMQE1pblBvb2xMaXF1aWRpdHlAQEBCDwAAAAAAAAAAAAAAAAAEXCBNaW5pbXVtIHBvb2wgbGlxdWlkaXR5ADxNaW5UcmFkaW5nTGltaXRAQOgDAAAAAAAAAAAAAAAAAAAEXCBNaW5pbXVtIHRyYWRpbmcgYW1vdW50AEhBbXBsaWZpY2F0aW9uUmFuZ2UZDBACABAnBD0BIEFtcGxpZmljYXRpb24gaW5jbHVzaXZlIHJhbmdlLiBQb29sJ3MgYW1wIGNhbiBiZSBzZWxlY3RlZCBmcm9tIHRoZSByYW5nZSBvbmx5LgABHQwABBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC4ARgAAFEJvbmRzARRCb25kcwgcQm9uZElkcwABBAIhDCgEAAhUIFJlZ2lzdGVyZWQgYm9uZCBpZHMuwCBNYXBzICh1bmRlcmx5aW5nIGFzc2V0IElELCBtYXR1cml0eSkgLT4gYm9uZCBJRAAUQm9uZHMAAQQCKCEMBAAISCBSZWdpc3RlcmVkIGJvbmRzLsAgTWFwcyBib25kIElEIC0+ICh1bmRlcmx5aW5nIGFzc2V0IElELCBtYXR1cml0eSkAAS0DAAH5BwAIIFBhbGxldElkrQkgcGx0Ym9uZHME7CBUaGUgcGFsbGV0IGlkLCB1c2VkIGZvciBkZXJpdmluZyBpdHMgc292ZXJlaWduIGFjY291bnQgSUQuADRJc3N1ZXJBY2NvdW50AIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAARZASBBY2NvdW50IHRoYXQgcGF5cyB0aGUgdW5kZXJseWluZyBhc3NldCBhbmQgcmVjZWl2ZXMgdGhlIGJvbmRzIHdoZW4gYGlzc3VlYCBpcyBjYWxsZWQuAAElDAAEHEJhbGFuY2VABDggQmFsYW5jZSB0eXBlLgBHAAA4T3RjU2V0dGxlbWVudHMAATEDAAH9BwAUOFByb2ZpdFJlY2VpdmVyAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAASEIEFjY291bnQgd2hvIHJlY2VpdmVzIHRoZSBwcm9maXQuAExNaW5Qcm9maXRQZXJjZW50YWdlKQMQECcAAAScIE1pbmltdW0gcHJvZml0IGluIHRlcm1zIG9mIHBlcmNlbnRhZ2UuADhQcmljZVByZWNpc2lvblRAAADBb/KGIwAAAAAAAAAAAATQIERldGVybWluZXMgd2hlbiB3ZSBjb25zaWRlciBhbiBhcmJpdHJhZ2UgYXMgY2xvc2VkLgA8TWluVHJhZGluZ0xpbWl0QEDoAwAAAAAAAAAAAAAAAAAABFwgTWluaW11bSB0cmFkaW5nIGxpbWl0LgA0TWF4SXRlcmF0aW9ucygQKAAAAARtASBNYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIHVzZWQgaW4gdGhlIGJpbmFyeSBzZWFyY2ggYWxnb3JpdGhtIHRvIGZpbmQgdGhlIHRyYWRlIGFtb3VudC4AASkMAAAASAAADExCUAEMTEJQCCBQb29sRGF0YQABBAIABQgEAARMIERldGFpbHMgb2YgYSBwb29sLgBURmVlQ29sbGVjdG9yV2l0aEFzc2V0AQEIAgL5C0QEAAjIIFN0b3JhZ2UgdXNlZCBmb3IgdHJhY2tpbmcgZXhpc3RpbmcgZmVlIGNvbGxlY3RvcnPMIE5vdCBtb3JlIHRoYW4gb25lIGZlZSBjb2xsZWN0b3IgcGVyIGFzc2V0IHBvc3NpYmxlAAE1AwABAQgAFDxNaW5UcmFkaW5nTGltaXRAQOgDAAAAAAAAAAAAAAAAAAAEIQEgTWluaW11bSB0cmFkaW5nIGxpbWl0LCBzb2xlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBrZWVwIHRoZSBtYXRoIHdvcmtpbmcAQE1pblBvb2xMaXF1aWRpdHlAQEBCDwAAAAAAAAAAAAAAAAAEJQEgTWluaW11bSBwb29sIGxpcXVpZGl0eSwgc29sZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8ga2VlcCB0aGUgbWF0aCB3b3JraW5nAChNYXhJblJhdGlvQEADAAAAAAAAAAAAAAAAAAAABMwgTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gc2VsbCBpbiBzaW5nbGUgdHJhbnNhY3Rpb24ALE1heE91dFJhdGlvQEADAAAAAAAAAAAAAAAAAAAABMggTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gYnV5IGluIHNpbmdsZSB0cmFuc2FjdGlvbgAkcmVwYXlfZmVlqQIgAgAAAAoAAAAAAAEtDAAAAEkAAAxYWUsBDFhZSwwoU2hhcmVUb2tlbgEBBAIAKBAAAAAABKAgQXNzZXQgaWQgc3RvcmFnZSBmb3Igc2hhcmVkIHBvb2wgdG9rZW5zADhUb3RhbExpcXVpZGl0eQEBBAIAQEAAAAAAAAAAAAAAAAAAAAAABGwgVG90YWwgbGlxdWlkaXR5IGluIGEgcG9vbC4AKFBvb2xBc3NldHMAAQQCAKkCBAAEWCBBc3NldCBwYWlyIGluIGEgcG9vbC4AAUEDAAEJCAAcNE5hdGl2ZUFzc2V0SWQoEAAAAAAEQCBOYXRpdmUgQXNzZXQgSWQAOEdldEV4Y2hhbmdlRmVlqQIgAwAAAOgDAAAERCBUcmFkaW5nIGZlZSByYXRlADxNaW5UcmFkaW5nTGltaXRAQOgDAAAAAAAAAAAAAAAAAAAEWCBNaW5pbXVtIHRyYWRpbmcgbGltaXQAQE1pblBvb2xMaXF1aWRpdHlAQEBCDwAAAAAAAAAAAAAAAAAEXCBNaW5pbXVtIHBvb2wgbGlxdWlkaXR5AChNYXhJblJhdGlvQEADAAAAAAAAAAAAAAAAAAAABMwgTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gc2VsbCBpbiBzaW5nbGUgdHJhbnNhY3Rpb24ALE1heE91dFJhdGlvQEADAAAAAAAAAAAAAAAAAAAABMggTWF4IGZyYWN0aW9uIG9mIHBvb2wgdG8gYnV5IGluIHNpbmdsZSB0cmFuc2FjdGlvbgAwT3JhY2xlU291cmNlIQEgaHlkcmF4eWsEqCBPcmFjbGUgc291cmNlIGlkZW50aWZpZXIgZm9yIHRoaXMgcGFsbGV0LgABMQwAAABKAAAkUmVmZXJyYWxzASRSZWZlcnJhbHMoNFJlZmVycmFsQ29kZXMAAQQCSQMABAAIPCBSZWZlcnJhbCBjb2Rlc5AgTWFwcyBhIHJlZmVycmFsIGNvZGUgdG8gYW4gYWNjb3VudC4AQFJlZmVycmFsQWNjb3VudHMAAQQCAEkDBAAISCBSZWZlcnJhbCBhY2NvdW50c5AgTWFwcyBhbiBhY2NvdW50IHRvIGEgcmVmZXJyYWwgY29kZS4AOExpbmtlZEFjY291bnRzAAEEAgAABAAIRCBMaW5rZWQgYWNjb3VudHMunCBNYXBzIGFuIGFjY291bnQgdG8gYSByZWZlcnJhbCBhY2NvdW50LgA4UmVmZXJyZXJTaGFyZXMBAQQCAEBAAAAAAAAAAAAAAAAAAAAAAAR0IFNoYXJlcyBvZiBhIHJlZmVycmFsIGFjY291bnQAMFRyYWRlclNoYXJlcwEBBAIAQEAAAAAAAAAAAAAAAAAAAAAABGwgU2hhcmVzIG9mIGEgdHJhZGVyIGFjY291bnQALFRvdGFsU2hhcmVzAQBAQAAAAAAAAAAAAAAAAAAAAAAEWCBUb3RhbCBzaGFyZSBpc3N1YW5jZS4AIFJlZmVycmVyAAEEAgA1DAQADNwgUmVmZXJlciBsZXZlbCBhbmQgdG90YWwgYWNjdW11bGF0ZWQgcmV3YXJkcyBvdmVyIHRpbWUu1QEgTWFwcyByZWZlcnJlciBhY2NvdW50IHRvIChMZXZlbCwgQmFsYW5jZSkuIExldmVsIGluZGljYXRlcyBjdXJyZW50IHJld2FyZHMgYW5kIEJhbGFuY2UgaXMgdXNlZCB0byB1bmxvY2sgbmV4dCBsZXZlbC65ASBEZXYgbm90ZTogd2UgdXNlIE9wdGlvblF1ZXJ5IGhlcmUgYmVjYXVzZSB0aGlzIGhlbHBzIHRvIGVhc2lseSBkZXRlcm1pbmUgdGhhdCBhbiBhY2NvdW50IGlmIHJlZmVycmVyIGFjY291bnQuADBBc3NldFJld2FyZHMAAQgCAjkMUQMEAAiwIEFzc2V0IGZlZSBkaXN0cmlidXRpb24gcmV3YXJkcyBpbmZvcm1hdGlvbi7QIE1hcHMgKGFzc2V0X2lkLCBsZXZlbCkgdG8gYXNzZXQgcmV3YXJkIHBlcmNlbnRhZ2VzLgBIUGVuZGluZ0NvbnZlcnNpb25zAAEEAihwBAAIAQEgSW5mb3JtYXRpb24gYWJvdXQgYXNzZXRzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB0aGUgcmV3YXJkcyBwb3QuDQEgVXNlZCB0byBlYXNpbHkgZGV0ZXJtaW5lIGxpc3Qgb2YgYXNzZXRzIHRoYXQgbmVlZCB0byBiZSBjb252ZXJ0ZWQuAHBDb3VudGVyRm9yUGVuZGluZ0NvbnZlcnNpb25zAQAoEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAAAUUDAAENCAAYLFJld2FyZEFzc2V0KBAAAAAABNggSUQgb2YgYW4gYXNzZXQgdGhhdCBpcyB1c2VkIHRvIGRpc3RyaWJ1dGUgcmV3YXJkcyBpbi4AIFBhbGxldElkrQkgcmVmZXJyYWwERQEgUGFsbGV0IGlkLiBEZXRlcm1pbmVzIGFjY291bnQgd2hpY2ggaG9sZHMgYWNjdW11bGF0ZWQgcmV3YXJkcyBpbiB2YXJpb3VzIGFzc2V0cy4APFJlZ2lzdHJhdGlvbkZlZT0M0AAAAAAA4CNn6MkAAAAAAAAAAAAAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAIaCBSZWdpc3RyYXRpb24gZmVlIGRldGFpbHMuJQEgKElEIG9mIGFuIGFzc2V0IHdoaWNoIGZlZSBpcyB0byBiZSBwYWlkIGluLCBBbW91bnQsIEJlbmVmaWNpYXJ5IGFjY291bnQpAChDb2RlTGVuZ3RoKBAKAAAABHggTWF4aW11bSByZWZlcnJhbCBjb2RlIGxlbmd0aC4ANE1pbkNvZGVMZW5ndGgoEAQAAAAEeCBNaW5pbXVtIHJlZmVycmFsIGNvZGUgbGVuZ3RoLgBAU2VlZE5hdGl2ZUFtb3VudEBAAKByThgJAAAAAAAAAAAAAAS0IFNlZWQgYW1vdW50IHRoYXQgd2FzIHNlbnQgdG8gdGhlIHJld2FyZCBwb3QuAAFBDAAAAEsAACxMaXF1aWRhdGlvbgEsTGlxdWlkYXRpb24EREJvcnJvd2luZ0NvbnRyYWN0AQBYUBsC4FFoO1z6xZKcJehK2ybs+Hs4BIggQm9ycm93aW5nIG1hcmtldCBjb250cmFjdCBhZGRyZXNzAAFVAwABFQgADCBHYXNMaW1pdBggAAk9AAAAAAAE5CBUaGUgZ2FzIGxpbWl0IGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBsaXF1aWRhdGlvbiBjYWxsLgA4UHJvZml0UmVjZWl2ZXIAgEVUSADlJWf/BqzWy+e6lNx3ejEm4YC22QAAAAAAAAAABIQgQWNjb3VudCB3aG8gcmVjZWl2ZXMgdGhlIHByb2ZpdC4AIEhvbGxhcklkKBDeAAAABEwgQXNzZXQgSUQgb2YgSG9sbGFyAAFFDAAAAEwAAAxIU00BDEhTTQwsQ29sbGF0ZXJhbHMAAQQCKEkMBAAU6CBMaXN0IG9mIGFwcHJvdmVkIGFzc2V0cyB0aGF0IEhvbGxhciBjYW4gYmUgcHVyY2hhc2VkIHdpdGgALQEgVGhpcyBzdG9yYWdlIG1hcHMgYXNzZXQgSURzIHRvIHRoZWlyIGNvbGxhdGVyYWwgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi4pASBPbmx5IGFzc2V0cyBpbiB0aGlzIG1hcCBjYW4gYmUgdXNlZCB0byBtaW50IG9yIHJlZGVlbSBIb2xsYXIgdGhyb3VnaCBIU00uUQEgRWFjaCBjb2xsYXRlcmFsIGhhcyBzcGVjaWZpYyBwYXJhbWV0ZXJzIGNvbnRyb2xsaW5nIGl0cyB1c2FnZSBpbiB0aGUgSFNNIG1lY2hhbmlzbS4AUEhvbGxhckFtb3VudFJlY2VpdmVkAQEEAihAQAAAAAAAAAAAAAAAAAAAAAAU4CBBbW91bnQgb2YgSG9sbGFyIGJvdWdodCB3aXRoIGFuIGFzc2V0IGluIGEgc2luZ2xlIGJsb2NrAFEBIFRoaXMgc3RvcmFnZSB0cmFja3MgaG93IG11Y2ggSG9sbGFyIGhhcyBiZWVuIGJvdWdodCBiYWNrIGJ5IEhTTSBmb3IgZWFjaCBjb2xsYXRlcmFsdQEgYXNzZXQgd2l0aGluIHRoZSBjdXJyZW50IGJsb2NrLiBUaGlzIGlzIHVzZWQgdG8gZW5mb3JjZSByYXRlIGxpbWl0aW5nIG9uIEhvbGxhciByZWRlbXB0aW9ucy4JASBWYWx1ZXMgYXJlIHJlc2V0IHRvIHplcm8gYXQgdGhlIGVuZCBvZiBlYWNoIGJsb2NrIGluIG9uX2ZpbmFsaXplLgAsRmxhc2hNaW50ZXIAAFgEAASQIEFkZHJlc3Mgb2YgdGhlIGZsYXNoIGxvYW4gcmVjZWl2ZXIuAAFdAwABGQgAFCBIb2xsYXJJZCgQ3gAAAARMIEFzc2V0IElEIG9mIEhvbGxhcgAgUGFsbGV0SWStCSBweS9oc21vZASMIFBhbGxldCBJRCB0byBkZXRlcm1pbmUgSFNNIGFjY291bnQASE1pbkFyYml0cmFnZUFtb3VudEBAAABkp7O24A0AAAAAAAAAAAAAREZsYXNoTG9hblJlY2VpdmVyWFAAAAAAAAAAAAAAAAAAAAAAAAAJCgAAIEdhc0xpbWl0GCCAGgYAAAAAAAS0IFRoZSBnYXMgbGltaXQgZm9yIHRoZSBleGVjdXRpb24gb2YgRVZNIGNhbGxzAAFNDAAAAFIAAChQYXJhbWV0ZXJzAShQYXJhbWV0ZXJzCCRJc1Rlc3RuZXQBAEQEAAAAZFJlbGF5UGFyZW50T2Zmc2V0T3ZlcnJpZGUBAEQEAAAAAAAAAAAAUwAAGFNpZ25ldAEYU2lnbmV0BDBTaWduZXRDb25maWcAAFEMBAAMsCBHbG9iYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNpZ25ldCBwYWxsZXQuABkBIElmIGBOb25lYCwgdGhlIHBhbGxldCBoYXMgbm90IGJlZW4gY29uZmlndXJlZCB5ZXQgYW5kIGNhbm5vdCBiZSB1c2VkLgABeQMAAR0IAAQgUGFsbGV0SWStCSBweS9zaWdudATAIFRoZSBwYWxsZXQncyB1bmlxdWUgSUQgZm9yIGRlcml2aW5nIGl0cyBhY2NvdW50AAFVDAAAAFQAADBFdGhEaXNwZW5zZXIBMEV0aERpc3BlbnNlcgg8RGlzcGVuc2VyQ29uZmlnAABZDAQADKAgR2xvYmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBkaXNwZW5zZXIuAC0BIElmIGBOb25lYCwgdGhlIHBhbGxldCBoYXMgbm90IGJlZW4gY29uZmlndXJlZCBhbmQgY2Fubm90IHByb2Nlc3MgcmVxdWVzdHMuADhVc2VkUmVxdWVzdElkcwABBAIEcAQADKQgUmVxdWVzdCBJRHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiB1c2VkLgAlASBUaGlzIHByZXZlbnRzIGFjY2lkZW50YWwgb3IgbWFsaWNpb3VzIHJlLXN1Ym1pc3Npb24gb2YgdGhlIHNhbWUgcmVxdWVzdC4AAbkDAAEhCAAQIEZlZUFzc2V0KBAAAAAACMAgQXNzZXQgSUQgdXNlZCB0byBjaGFyZ2UgdGhlIGZhdWNldCByZXF1ZXN0IGZlZS4oIChIRFggLSAwKQAsRmF1Y2V0QXNzZXQoEBQAAAAI+CBBc3NldCBJRCBkZWR1Y3RlZCB0byByZWNlaXZlIGZhdWNldCBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uMCAoV0VUSCAtIDIwKQA4RmVlRGVzdGluYXRpb24AgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABBUBIEFjY291bnQgdGhhdCByZWNlaXZlcyB0aGUgY29sbGVjdGVkIGRpc3BlbnNlciBmZWVzIGFuZCBmYXVjZXQgYXNzZXQuACBQYWxsZXRJZK0JIHB5L2Z1Y2V0BOQgUGFsbGV0IElEIHVzZWQgdG8gZGVyaXZlIHRoZSBwYWxsZXQncyBzb3ZlcmVpZ24gYWNjb3VudC4AAV0MAAAAVQAAHEdpZ2FIZHgBHEdpZ2FIZHgQGFN0YWtlcwABBAIAYQwEAAgRASBQZXItYWNjb3VudCBzdGFrZSByZWNvcmQuIEFic2VudCBpZiB0aGUgYWNjb3VudCBoYXMgbmV2ZXIgc3Rha2VkIG9yUCBoYXMgZnVsbHkgdW5zdGFrZWQuACxUb3RhbExvY2tlZAEAQEAAAAAAAAAAAAAAAAAAAAAABHAgU3VtIG9mIGFsbCBgU3Rha2VzW2FdLmhkeGAuAExHaWdhSGR4UG9vbENvbnRyYWN0AABYBAAM5CBBYXZlIFYzIFBvb2wgY29udHJhY3QgYWRkcmVzcy4gTXVzdCBiZSBzZXQgZXhwbGljaXRseSBieRUBIGBBdXRob3JpdHlPcmlnaW5gIGJlZm9yZSBhbnkgc3Rha2UvdW5zdGFrZSDigJQgdGhlIHBhbGxldCByZWZ1c2VzIHRvmCBzaWxlbnRseSBkZWZhdWx0IHRvIHRoZSB6ZXJvIGFkZHJlc3MuADxQZW5kaW5nVW5zdGFrZXMAAQgCBfkLZQwEAAwRASBQZW5kaW5nIHVuc3Rha2UgcG9zaXRpb25zLCBrZXllZCBieSBgKGFjY291bnQsIG9yaWdpbmF0aW5nX2Jsb2NrKWAuBQEgU2FtZS1ibG9jayB1bnN0YWtlcyBieSB0aGUgc2FtZSBhY2NvdW50IGNvbXBvdW5kIGludG8gb25lIGVudHJ5LuwgUGVyLWFjY291bnQgY291bnQgYm91bmRlZCBieSBgQ29uZmlnOjpNYXhQZW5kaW5nVW5zdGFrZXNgLgABwQMAASUIABgwU3RIZHhBc3NldElkKBCeAgAAAAAgUGFsbGV0SWStCSBnaWdhaGR4IQj8IFBhbGxldCBhY2NvdW50IGlkIHVzZWQgYXMgdGhlIGdpZ2Fwb3QgKHlpZWxkKSBhY2NvdW50LiBEZXJpdmVkpCB2aWEgYFBhbGxldElkOjppbnRvX2FjY291bnRfdHJ1bmNhdGluZ2AuABhMb2NrSWQhASBnaGR4bG9jawjwIExvY2tJZGVudGlmaWVyIHVuZGVyIHdoaWNoIHVzZXIgSERYIChhY3RpdmUgc3Rha2UgKyBwZW5kaW5nUCB1bnN0YWtlKSBpcyBsb2NrZWQuACBNaW5TdGFrZUBAABCl1OgAAAAAAAAAAAAAAATgIE1pbmltdW0gSERYIHRoYXQgY2FuIGJlIHN0YWtlZCBpbiBvbmUgY2FsbCAoYW50aS1kdXN0KS4AOENvb2xkb3duUGVyaW9kKBAAJwYACOwgQ29vbGRvd24gcGVyaW9kIChpbiBibG9ja3MpIGJldHdlZW4gYGdpZ2FfdW5zdGFrZWAgYW5kIHRoZWAgbWF0Y2hpbmcgYHVubG9ja2AgY2FsbC4ASE1heFBlbmRpbmdVbnN0YWtlcygQCgAAAAQRASBNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHBlbmRpbmctdW5zdGFrZSBwb3NpdGlvbnMgcGVyIGFjY291bnQuAAFpDAAAAFYAADhHaWdhSGR4UmV3YXJkcwE4R2lnYUhkeFJld2FyZHMYbFJlZmVyZW5kYVRvdGFsV2VpZ2h0ZWRWb3RlcwABBAIobQwEAAgZASBMaXZlIHRhbGx5IG1haW50YWluZWQgZHVyaW5nIHRoZSB2b3RpbmcgcGVyaW9kLiBEZWxldGVkIGF0IGFsbG9jYXRpb27IIHRpbWU7IHRoZSB2YWx1ZXMgbW92ZSBpbnRvIGBSZWZlcmVuZGFSZXdhcmRQb29sYC4AQFJlZmVyZW5kdW1UcmFja3MAAQQCKIAEAAgFASBUcmFjayBpZCBjYWNoZWQgYXQgdm90ZSB0aW1lLiBEZWxldGVkIGF0IGFsbG9jYXRpb247IGxpdmVzIG9uIGlulCBgUmVmZXJlbmRhUmV3YXJkUG9vbFtyZWZdLnRyYWNrX2lkYC4ATFJlZmVyZW5kYVJld2FyZFBvb2wAAQQCKHEMBAAIEQEgUGVyLXJlZmVyZW5kdW0gZnJvemVuIHNuYXBzaG90LiBQcmVzZW5jZSBkb3VibGVzIGFzICJhbGxvY2F0aW9uIGhhc9ggcnVuLiIgRGVsZXRlZCB3aGVuIHRoZSBsYXN0IHZvdGVyIGNsYWltcyB0aGVpciBzaGFyZS4APFVzZXJWb3RlUmVjb3JkcwABCAIC+Qt1DAQACBEBIFBlciAodXNlciwgcmVmZXJlbmR1bSkgc25hcHNob3Qgb2YgdGhlIGVsaWdpYmxlIHZvdGUgd2VpZ2h0IGF0IGNhc3TgIHRpbWUuIFVwZGF0ZWQgb24gdm90ZSBlZGl0czsgdGFrZW4gb24gYG9uX3JlbW92ZV92b3RlYC4ANFVzZXJWb3RlQ291bnQBAQQCACgQAAAAABAhASBOdW1iZXIgb2YgYFVzZXJWb3RlUmVjb3Jkc2AgZW50cmllcyBoZWxkIGJ5IGB3aG9gLCBtYWludGFpbmVkIG9uIGluc2VydBkBIGFuZCByZW1vdmFsLiBMZXRzIHRoZSBnaWdhaGR4IGxpcXVpZGF0aW9uIGNoYXJnZSBleGFjdCB3ZWlnaHQgZm9yIHRoZR0BIHZvdGUtY2xlYXJhbmNlIGxvb3AgZnJvbSB0aGUgYm9ycm93ZXIncyBjb3VudCwgd2l0aG91dCBhbiBPKG4pIHNjYW4gYXRkIHdlaWdodC1jYWxjdWxhdGlvbiB0aW1lLgA4UGVuZGluZ1Jld2FyZHMBAQQCAEBAAAAAAAAAAAAAAAAAAAAAAAQFASBSdW5uaW5nIHN1bSBvZiBIRFggb3dlZCB0byBgd2hvYCBhY3Jvc3MgYWxsIGNvbXBsZXRlZCByZWZlcmVuZGEuAAHFAwABKQgABERSZXdhcmRQb3RQYWxsZXRJZK0JIGdpZ2Fyd2QhDPQgUGFsbGV0SWQgb2YgdGhlIGV4dGVybmFsbHktZnVuZGVkIGFjY3VtdWxhdG9yIHBvdC4gU291cmNlIG9m+CBldmVyeSBwZXItcmVmZXJlbmR1bSBhbGxvY2F0aW9uLiBUaGUgYWxsb2NhdGVkLXJld2FyZHMgcG90IGlz3CBkZXJpdmVkIGRldGVybWluaXN0aWNhbGx5IGFzIGEgc3ViLWFjY291bnQgb2YgdGhpcyBpZC4AAXkMAAQcVHJhY2tJZIAAAFcAABhUb2tlbnMBGFRva2VucxA0VG90YWxJc3N1YW5jZQEBBAUoQEAAAAAAAAAAAAAAAAAAAAAABJAgVGhlIHRvdGFsIGlzc3VhbmNlIG9mIGEgdG9rZW4gdHlwZS4AFExvY2tzAQEIAgX5C30MBAAI2CBBbnkgbGlxdWlkaXR5IGxvY2tzIG9mIGEgdG9rZW4gdHlwZSB1bmRlciBhbiBhY2NvdW50LiUBIE5PVEU6IFNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHdoZW4gc2V0dGluZywgY2hhbmdpbmcgYW5kIGZyZWVpbmcgYSBsb2NrLgAgQWNjb3VudHMBAQgCBfkLiQzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLggVGhlIGJhbGFuY2Ugb2YgYSB0b2tlbiB0eXBlIHVuZGVyIGFuIGFjY291bnQuAPwgTk9URTogSWYgdGhlIHRvdGFsIGlzIGV2ZXIgemVybywgZGVjcmVhc2UgYWNjb3VudCByZWYgYWNjb3VudC4AGQEgTk9URTogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIG1vZHVsZSBpcyB1c2VkIHRvIHN0b3JlKCBiYWxhbmNlcy4AIFJlc2VydmVzAQEIAgX5C40MBAAEpCBOYW1lZCByZXNlcnZlcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuAAHJAwABLQgACCBNYXhMb2NrcygQMgAAAAAALE1heFJlc2VydmVzKBAyAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgABmQwADBhBbW91bnTRAwTcIFRoZSBhbW91bnQgdHlwZSwgc2hvdWxkIGJlIHNpZ25lZCB2ZXJzaW9uIG9mIGBCYWxhbmNlYChDdXJyZW5jeUlkKARUIFRoZSBjdXJyZW5jeSBJRCB0eXBlRFJlc2VydmVJZGVudGlmaWVyIQEEgCBUaGUgaWQgdHlwZSBmb3IgbmFtZWQgcmVzZXJ2ZXMuAE0AAChDdXJyZW5jaWVzAAHNAwABMQgACDhSZXNlcnZlQWNjb3VudACAbW9kbGN1cnJlc2VyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExHZXROYXRpdmVDdXJyZW5jeUlkKBAAAAAAAAABnQwAAABPAAAcVmVzdGluZwEcVmVzdGluZwRAVmVzdGluZ1NjaGVkdWxlcwEBBAIAoQwEAAyEIFZlc3Rpbmcgc2NoZWR1bGVzIG9mIGFuIGFjY291bnQuAOAgVmVzdGluZ1NjaGVkdWxlczogbWFwIEFjY291bnRJZCA9PiBWZWM8VmVzdGluZ1NjaGVkdWxlPgAB1QMAATUIAARETWluVmVzdGVkVHJhbnNmZXJAQGQAAAAAAAAAAAAAAAAAAAAE6CBUaGUgbWluaW11bSBhbW91bnQgdHJhbnNmZXJyZWQgdG8gY2FsbCBgdmVzdGVkX3RyYW5zZmVyYC4AAaUMAAAAUQAADEVWTQEMRVZNDDBBY2NvdW50Q29kZXMBAQQCWBQEAAAAUEFjY291bnRDb2Rlc01ldGFkYXRhAAEEAlipDAQAAAA8QWNjb3VudFN0b3JhZ2VzAQEIAgKtDCyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHhAwABOQgAAAGxDAAAAFoAAChFVk1DaGFpbklkAShFVk1DaGFpbklkBBxDaGFpbklkAQAYIAAAAAAAAAAABEggVGhlIEVWTSBjaGFpbiBJRC4AAAAAAAAAWwAAIEV0aGVyZXVtASBFdGhlcmV1bRgcUGVuZGluZwABBAYotQwEAAQ1ASBNYXBwaW5nIGZyb20gdHJhbnNhY3Rpb24gaW5kZXggdG8gdHJhbnNhY3Rpb24gaW4gdGhlIGN1cnJlbnQgYnVpbGRpbmcgYmxvY2suAERDb3VudGVyRm9yUGVuZGluZwEAKBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwADBDdXJyZW50QmxvY2sAANUMBAAEcCBUaGUgY3VycmVudCBFdGhlcmV1bSBibG9jay4APEN1cnJlbnRSZWNlaXB0cwAA6QwEAAR8IFRoZSBjdXJyZW50IEV0aGVyZXVtIHJlY2VpcHRzLgBoQ3VycmVudFRyYW5zYWN0aW9uU3RhdHVzZXMAAO0MBAAEiCBUaGUgY3VycmVudCB0cmFuc2FjdGlvbiBzdGF0dXNlcy4AJEJsb2NrSGFzaAEBBAVgLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf0DAAFBCAAAAfEMAAAAXAAALEVWTUFjY291bnRzASxFVk1BY2NvdW50cxhAQWNjb3VudEV4dGVuc2lvbgABBAJYMQEEAAQFASBNYXBzIGFuIEVWTSBhZGRyZXNzIHRvIHRoZSBsYXN0IDEyIGJ5dGVzIG9mIGEgc3Vic3RyYXRlIGFjY291bnQuAEBDb250cmFjdERlcGxveWVyAAEEAlhwBAAECQEgV2hpdGVsaXN0ZWQgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHNtYXJ0IGNvbnRyYWN0cy4AQEFwcHJvdmVkQ29udHJhY3QAAQQCWHAEAAQZASBXaGl0ZWxpc3RlZCBjb250cmFjdHMgdGhhdCBhcmUgYWxsb3dlZCB0byBtYW5hZ2UgYmFsYW5jZXMgYW5kIHRva2Vucy4ARE1hcmtlZEV2bUFjY291bnRzAAEEAgBwBAAU3CBUcmFja3MgYWNjb3VudHMgdGhhdCBoYXZlIGJlZW4gbWFya2VkIGFzIEVWTSBhY2NvdW50cy4dASBBbiBhY2NvdW50IGlzIG1hcmtlZCBhcyBFVk0gYWNjb3VudCByaWdodCBiZWZvcmUgd2UgY2hhcmdlIHRoZSBldm0gZmVlAQEgVGhpcyBpcyB1c2VkIHRvIGF2b2lkIHJlc2V0dGluZyBmcmFtZSBzeXN0ZW0gbm9uY2Ugb2YgYWNjb3VudHMuRQEgV2hlbiB3ZSBtYXJrIGFjY291bnQgYXMgRVZNIGFjY291bnQsIHdlIGluY3JlYXNlIGl0cyBzdWZmaWNpZW50cyBjb3VudGVyIGJ5IG9uZS5dASBXZSBuZXZlciBkZWNyZWFzZSB0aGlzIHN1ZmZpY2llbnRzLCBzbyBzaWRlIGVmZmVjdCBpcyB0aGF0IGFjY291bnQgY2FuIG5ldmVyIGJlIHJlYXBlZAAoQWxsb3dhbmNlcwEBDAICAvUMQEAAAAAAAAAAAAAAAAAAAAAACAUBIEVSQzIwLXN0eWxlIGFsbG93YW5jZXMgc3RvcmFnZSBmb3IgdGhlIE11bHRpQ3VycmVuY3kgcHJlY29tcGlsZTqgIChhc3NldF9pZCwgb3duZXIsIHNwZW5kZXIpIC0+IGFsbG93YW5jZQAoTnR0TWludGVycwABBAIoWAQACEkBIE5UVCBzcG9rZSBtYW5hZ2VyIGFsbG93ZWQgdG8gbWludC9idXJuIGFuIGFzc2V0IHZpYSB0aGUgTXVsdGlDdXJyZW5jeSBwcmVjb21waWxlLmggYXNzZXRfaWQgLT4gbWludGVyIChIMTYwKQABLQQAAWUIAAQ0RmVlTXVsdGlwbGllcigQMgAAAAS0IEZlZSBtdWx0aXBsaWVyIGZvciB0aGUgYmluZGluZyBvZiBhZGRyZXNzZXMuAAH5DAAEHEFzc2V0SWQoBDwgQXNzZXQgaWQgdHlwZS4AXQAANER5bmFtaWNFdm1GZWUBNER5bmFtaWNFdm1GZWUENEJhc2VGZWVQZXJHYXMBAGCAwOHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERCBCYXNlIGZlZSBwZXIgZ2FzAAAABCxXZXRoQXNzZXRJZCgQFAAAAAQ4IFdFVEggQXNzZXQgSWQAAAQcQXNzZXRJZCgEjCBJZGVudGlmaWVyIGZvciB0aGUgY2xhc3Mgb2YgYXNzZXQuAF4AAEhYWUtMaXF1aWRpdHlNaW5pbmcAATEEAAFpCAAMPE5GVENvbGxlY3Rpb25JZEBADRUAAAAAAAAAAAAAAAAAAATcIE5GVCBjb2xsZWN0aW9uIGlkIGZvciBsaXF1aWRpdHkgbWluaW5nJ3MgZGVwb3NpdCBuZnRzLgAwT3JhY2xlU291cmNlIQEgaHlkcmF4eWsEqCBPcmFjbGUgc291cmNlIGlkZW50aWZpZXIgZm9yIHRoaXMgcGFsbGV0LgAwT3JhY2xlUGVyaW9kIQMEAgScIE9yYWNsZSdzIGxpcXVpZGl0eSBhZ2dyZWdhdGlvbiBwZXJpb2QuAAH9DAAAAF8AADhYWUtXYXJlaG91c2VMTQE4WFlLV2FyZWhvdXNlTE0YNEZhcm1TZXF1ZW5jZXIBACgQAAAAAAS8IElkIHNlcXVlbmNlciBmb3IgYEdsb2JhbEZhcm1gIGFuZCBgWWllbGRGYXJtYC4AQERlcG9zaXRTZXF1ZW5jZXIBAEBAAAAAAAAAAAAAAAAAAAAAAAAAKEdsb2JhbEZhcm0AAQQCKAENBAAAACRZaWVsZEZhcm0AAQwCAgIFDQkNBAAEUCBZaWVsZCBmYXJtIGRldGFpbHMuABxEZXBvc2l0AAEEBUANDQQABEQgRGVwb3NpdCBkZXRhaWxzLgA8QWN0aXZlWWllbGRGYXJtAAEIAgL5CygEAAT4IEFjdGl2ZShmYXJtcyBhYmxlIHRvIHJlY2VpdmUgTFAgc2hhcmVzIGRlcG9zaXRzKSB5aWVsZCBmYXJtcy4AAUEEAAFtCAAYIFBhbGxldElkrQkgeHlrTE1wSUQELCBQYWxsZXQgaWQuAERUcmVhc3VyeUFjY291bnRJZACAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAE6CBUcmVhc3VyeSBhY2NvdW50IHRvIHJlY2VpdmUgY2xhaW1lZCByZXdhcmRzIGxvd2VyIHRoYW4gRUQATE1pblRvdGFsRmFybVJld2FyZHNAQAAQpdToAAAAAAAAAAAAAAAEOQEgTWluaW11bSB0b3RhbCByZXdhcmRzIHRvIGRpc3RyaWJ1dGUgZnJvbSBnbG9iYWwgZmFybSBkdXJpbmcgbGlxdWlkaXR5IG1pbmluZy4AZE1pblBsYW5uZWRZaWVsZGluZ1BlcmlvZHMoEGg4AAAE7CBNaW5pbXVtIG51bWJlciBvZiBwZXJpb2RzIHRvIHJ1biBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0uAGBNYXhGYXJtRW50cmllc1BlckRlcG9zaXQoEAUAAAAIZQEgTWF4aW11bSBudW1iZXIgb2YgeWllbGQgZmFybXMgc2FtZSBMUCBzaGFyZXMgY2FuIGJlIHJlL2RlcG9zaXRlZCBpbnRvLiBUaGlzIHZhbHVlIGFsd2F5c1wgTVVTVCBCRSA+PSAxLiAgICAgICAgIABoTWF4WWllbGRGYXJtc1Blckdsb2JhbEZhcm0oEDIAAAAITQEgTWF4IG51bWJlciBvZiB5aWVsZCBmYXJtcyBjYW4gZXhpc3QgaW4gZ2xvYmFsIGZhcm0uIFRoaXMgaW5jbHVkZXMgYWxsIGZhcm1zIGluIHRoZZggc3RvcmFnZShhY3RpdmUsIHN0b3BwZWQsIHRlcm1pbmF0ZWQpLgABHQ0ACBxBc3NldElkKAQwIEFzc2V0IHR5cGUuJEFtbVBvb2xJZAAE5CBJZCB1c2VkIHRvIGlkZW50aWZ5IGFtbSBwb29sIGluIGxpcXVpZGl0eSBtaW5pbmcgcGFsbGV0LgBgAAA4UmVsYXlDaGFpbkluZm8AAUUEAAFxCAAAASENAAAAyQAADERDQQEMRENBIExTY2hlZHVsZUlkU2VxdWVuY2VyAQAoEAAAAAAEbCBJZCBzZXF1ZW5jZXIgZm9yIHNjaGVkdWxlcwAkU2NoZWR1bGVzAAEEAihNBAQABGQgU3RvcmluZyBzY2hlZHVsZSBkZXRhaWxzAERTY2hlZHVsZU93bmVyc2hpcAABCAIF+QtwBAAEbCBTdG9yaW5nIHNjaGVkdWxlIG93bmVyc2hpcABAUmVtYWluaW5nQW1vdW50cwABBAIoQAQABPwgS2VlcCB0cmFja2luZyB0aGUgcmVtYWluaW5nIGFtb3VudHMgdG8gc3BlbmQgZm9yIERDQSBzY2hlZHVsZXMAOFJldHJpZXNPbkVycm9yAQEEAigIBAAE4CBLZWVwIHRyYWNraW5nIHRoZSByZXRyeSBvbiBlcnJvciBmbGFnIGZvciBEQ0Egc2NoZWR1bGVzAFhTY2hlZHVsZUV4ZWN1dGlvbkJsb2NrAAEEAigoBAAEKQEgS2VlcCB0cmFja2luZyB0aGUgYmxvY2tudW1iZXIgd2hlbiB0aGUgc2NoZWR1bGUgaXMgcGxhbm5lZCB0byBiZSBleGVjdXRlZABMU2NoZWR1bGVJZHNQZXJCbG9jawEBBAIoJQ0EAAT4IEtlZXAgdHJhY2tpbmcgb2YgdGhlIHNjaGVkdWxlIGlkcyB0byBiZSBleGVjdXRlZCBpbiB0aGUgYmxvY2sAQFNjaGVkdWxlRXh0cmFHYXMBAQQCKBggAAAAAAAAAAAM2CBTdG9yZXMgdGhlIGN1cnJlbnQgZXh0cmEgZ2FzIHZhbHVlIGZvciBlYWNoIHNjaGVkdWxlLkkBIEluaXRpYWxpemVkIHRvIDAsIGluY3JlbWVudHMgb24gRXZtT3V0T2ZHYXMsIHBlcnNpc3RzIGFmdGVyIHN1Y2Nlc3NmdWwgZXhlY3V0aW9uLsggQ2xlYW5lZCB1cCB3aGVuIHNjaGVkdWxlIHRlcm1pbmF0ZXMgb3IgY29tcGxldGVzLgABSQQAAXUIADB8TWF4UHJpY2VEaWZmZXJlbmNlQmV0d2VlbkJsb2Nrc3UCEJg6AAAErE1heCBwcmljZSBkaWZmZXJlbmNlIGFsbG93ZWQgYmV0d2VlbiBibG9ja3MArE1heENvbmZpZ3VyYWJsZVByaWNlRGlmZmVyZW5jZUJldHdlZW5CbG9ja3N1AhBQwwAABOBNYXggY29uZmlndXJhYmxlIHByaWNlIGRpZmZlcmVuY2UgYWxsb3dlZCBiZXR3ZWVuIGJsb2NrcwBMTWF4U2NoZWR1bGVQZXJCbG9jaygQBgAAAATQVGhlIG51bWJlciBvZiBtYXggc2NoZWR1bGVzIHRvIGJlIGV4ZWN1dGVkIHBlciBibG9jawBkTWF4TnVtYmVyT2ZSZXRyaWVzT25FcnJvcggEAwTYVGhlIG51bWJlciBvZiBtYXggcmV0cmllcyBpbiBjYXNlIG9mIHRyYWRlIGxpbWl0IGVycm9yADRNaW5pbWFsUGVyaW9kKBAFAAAABIRNaW5pbWFsIHBlcmlvZCBiZXR3ZWVuIGV4ZWN1dGlvbnMAKEJ1bXBDaGFuY2UpDQQRBIRDaGFuY2Ugb2YgdGhlIHJhbmRvbSByZXNjaGVkdWxpbmcATE1pbmltdW1UcmFkaW5nTGltaXRAQOgDAAAAAAAAAAAAAAAAAAAEpCBNaW5pbXVtIHRyYWRpbmcgbGltaXQgZm9yIGEgc2luZ2xlIHRyYWRlADROYXRpdmVBc3NldElkKBAAAAAABEAgTmF0aXZlIEFzc2V0IElkAFRQb2xrYWRvdE5hdGl2ZUFzc2V0SWQoEAUAAAAEfCBQb2xrYWRvdCBOYXRpdmUgQXNzZXQgSWQgKERPVCkAZE1pbkJ1ZGdldEluTmF0aXZlQ3VycmVuY3lAQACAxqR+jQMAAAAAAAAAAAAEJQFNaW5pbXVtIGJ1ZGdldCB0byBiZSBhYmxlIHRvIHNjaGVkdWxlIGEgRENBLCBzcGVjaWZpZWQgaW4gbmF0aXZlIGN1cnJlbmN5ACxGZWVSZWNlaXZlcgCAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAElFRoZSBmZWUgcmVjZWl2ZXIgZm9yIHRyYW5zYWN0aW9uIGZlZXMAOE5hbWVkUmVzZXJ2ZUlkIQEgZGNhb3JkZXIEKQEgTmFtZWQgcmVzZXJ2ZSBpZGVudGlmaWVyIHRvIHN0b3JlIG5hbWVkIHJlc2VydmVzIGZvciBvcmRlcnMgb2YgZWFjaCB1c2VycwABLQ0ABBxBc3NldElkKAQ4IEFzc2V0IGlkIHR5cGUAQgAAJFNjaGVkdWxlcgEkU2NoZWR1bGVyEDxJbmNvbXBsZXRlU2luY2UAACgEAAT0IEJsb2NrIG51bWJlciBhdCB3aGljaCB0aGUgYWdlbmRhIGJlZ2FuIGluY29tcGxldGUgZXhlY3V0aW9uLgAYQWdlbmRhAQEEBSgxDQQABE0BIEl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRoZSBibG9jayBudW1iZXIgdGhhdCB0aGV5IHNob3VsZCBiZSBleGVjdXRlZCBvbi4AHFJldHJpZXMAAQQCqQJBDQQABCEBIFJldHJ5IGNvbmZpZ3VyYXRpb25zIGZvciBpdGVtcyB0byBiZSBleGVjdXRlZCwgaW5kZXhlZCBieSB0YXNrIGFkZHJlc3MuABhMb29rdXAAAQQFBKkCBAAQ+CBMb29rdXAgZnJvbSBhIG5hbWUgdG8gdGhlIGJsb2NrIG51bWJlciBhbmQgaW5kZXggb2YgdGhlIHRhc2suAFkBIEZvciB2MyAtPiB2NCB0aGUgcHJldmlvdXNseSB1bmJvdW5kZWQgaWRlbnRpdGllcyBhcmUgQmxha2UyLTI1NiBoYXNoZWQgdG8gZm9ybSB0aGUgdjQwIGlkZW50aXRpZXMuAAFVBAABeQgACDRNYXhpbXVtV2VpZ2h05CwLAIBuh3QBAgAAAgQpASBUaGUgbWF4aW11bSB3ZWlnaHQgdGhhdCBtYXkgYmUgc2NoZWR1bGVkIHBlciBibG9jayBmb3IgYW55IGRpc3BhdGNoYWJsZXMuAFBNYXhTY2hlZHVsZWRQZXJCbG9jaygQMgAAABQdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2NoZWR1bGVkIGNhbGxzIGluIHRoZSBxdWV1ZSBmb3IgYSBzaW5nbGUgYmxvY2suABggTk9URTpRASArIERlcGVuZGVudCBwYWxsZXRzJyBiZW5jaG1hcmtzIG1pZ2h0IHJlcXVpcmUgYSBoaWdoZXIgbGltaXQgZm9yIHRoZSBzZXR0aW5nLiBTZXQgYcQgaGlnaGVyIGxpbWl0IHVuZGVyIGBydW50aW1lLWJlbmNobWFya3NgIGZlYXR1cmUuAAFFDQAELFJ1bnRpbWVDYWxsDARoIFRoZSBhZ2dyZWdhdGVkIGNhbGwgdHlwZS4ABQAAPFBhcmFjaGFpblN5c3RlbQE8UGFyYWNoYWluU3lzdGVtYERVbmluY2x1ZGVkU2VnbWVudAEASQ0EABhJASBMYXRlc3QgaW5jbHVkZWQgYmxvY2sgZGVzY2VuZGFudHMgdGhlIHJ1bnRpbWUgYWNjZXB0ZWQuIEluIG90aGVyIHdvcmRzLCB0aGVzZSBhcmVhASBhbmNlc3RvcnMgb2YgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgYmxvY2sgd2hpY2ggaGF2ZSBub3QgYmVlbiBpbmNsdWRlZCBpbiB0aGUgb2JzZXJ2ZWRMIHJlbGF5LWNoYWluIHN0YXRlLgB1ASBUaGUgc2VnbWVudCBsZW5ndGggaXMgbGltaXRlZCBieSB0aGUgY2FwYWNpdHkgcmV0dXJuZWQgZnJvbSB0aGUgW2BDb25zZW5zdXNIb29rYF0gY29uZmlndXJlZDwgaW4gdGhlIHBhbGxldC4AbEFnZ3JlZ2F0ZWRVbmluY2x1ZGVkU2VnbWVudAAAbQ0EAAxpASBTdG9yYWdlIGZpZWxkIHRoYXQga2VlcHMgdHJhY2sgb2YgYmFuZHdpZHRoIHVzZWQgYnkgdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBhbG9uZyB3aXRoIHRoZS0BIGxhdGVzdCBIUk1QIHdhdGVybWFyay4gVXNlZCBmb3IgbGltaXRpbmcgdGhlIGFjY2VwdGFuY2Ugb2YgbmV3IGJsb2NrcyB3aXRokCByZXNwZWN0IHRvIHJlbGF5IGNoYWluIGNvbnN0cmFpbnRzLgBUUGVuZGluZ1ZhbGlkYXRpb25Db2RlAQAUBAAYWQEgSW4gY2FzZSBvZiBhIHNjaGVkdWxlZCB1cGdyYWRlLCB0aGlzIHN0b3JhZ2UgZmllbGQgY29udGFpbnMgdGhlIHZhbGlkYXRpb24gY29kZSB0byBiZSQgYXBwbGllZC4APQEgQXMgc29vbiBhcyB0aGUgcmVsYXkgY2hhaW4gZ2l2ZXMgdXMgdGhlIGdvLWFoZWFkIHNpZ25hbCwgd2Ugd2lsbCBvdmVyd3JpdGUgdGhlcQEgW2A6Y29kZWBdW3NwX2NvcmU6OnN0b3JhZ2U6OndlbGxfa25vd25fa2V5czo6Q09ERV0gd2hpY2ggd2lsbCByZXN1bHQgdGhlIG5leHQgYmxvY2sgcHJvY2VzcwkBIHdpdGggdGhlIG5ldyB2YWxpZGF0aW9uIGNvZGUuIFRoaXMgY29uY2x1ZGVzIHRoZSB1cGdyYWRlIHByb2Nlc3MuAEROZXdWYWxpZGF0aW9uQ29kZQAAFAQAFF0BIFZhbGlkYXRpb24gY29kZSB0aGF0IGlzIHNldCBieSB0aGUgcGFyYWNoYWluIGFuZCBpcyB0byBiZSBjb21tdW5pY2F0ZWQgdG8gY29sbGF0b3IgYW5keCBjb25zZXF1ZW50bHkgdGhlIHJlbGF5LWNoYWluLgBlASBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2sgaWYgbm8gb3RoZXIgcGFsbGV0IGFscmVhZHkgc2V0LCB0aGUgdmFsdWUuADhWYWxpZGF0aW9uRGF0YQAAYQQEAAzQIFRoZSBbYFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhYF0gc2V0IGZvciB0aGlzIGJsb2NrLi0BIFRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgc2V0IG9ubHkgb25jZSBwZXIgYmxvY2sgYW5kIGl0J3MgbmV2ZXIgc3RvcmVkNCBpbiB0aGUgdHJpZS4AUERpZFNldFZhbGlkYXRpb25Db2RlAQBEBAAE4CBXZXJlIHRoZSB2YWxpZGF0aW9uIGRhdGEgc2V0IHRvIG5vdGlmeSB0aGUgcmVsYXkgY2hhaW4/AGRMYXN0UmVsYXlDaGFpbkJsb2NrTnVtYmVyAQAoEAAAAAAMHQEgVGhlIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIGxhc3QgcGFyYWNoYWluIGJsb2NrLgCIIFRoaXMgaXMgdXBkYXRlZCBpbiBgb25fZmluYWxpemVgLgBgVXBncmFkZVJlc3RyaWN0aW9uU2lnbmFsAQBxDQQAHHUBIEFuIG9wdGlvbiB3aGljaCBpbmRpY2F0ZXMgaWYgdGhlIHJlbGF5LWNoYWluIHJlc3RyaWN0cyBzaWduYWxsaW5nIGEgdmFsaWRhdGlvbiBjb2RlIHVwZ3JhZGUuYQEgSW4gb3RoZXIgd29yZHMsIGlmIHRoaXMgaXMgYFNvbWVgIGFuZCBbYE5ld1ZhbGlkYXRpb25Db2RlYF0gaXMgYFNvbWVgIHRoZW4gdGhlIHByb2R1Y2VkbCBjYW5kaWRhdGUgd2lsbCBiZSBpbnZhbGlkLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LgA4VXBncmFkZUdvQWhlYWQBAGUNBAAU3CBPcHRpb25hbCB1cGdyYWRlIGdvLWFoZWFkIHNpZ25hbCBmcm9tIHRoZSByZWxheS1jaGFpbi4AcQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgYSBtaXJyb3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZm9yIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBmcm9tIHRoZW0BIHJlbGF5LWNoYWluLiBUaGlzIHZhbHVlIGlzIGVwaGVtZXJhbCB3aGljaCBtZWFucyBpdCBkb2Vzbid0IGhpdCB0aGUgc3RvcmFnZS4gVGhpcyB2YWx1ZSBpc2Agc2V0IGFmdGVyIHRoZSBpbmhlcmVudC4APFJlbGF5U3RhdGVQcm9vZgAAaQQEABjEIFRoZSBzdGF0ZSBwcm9vZiBmb3IgdGhlIGxhc3QgcmVsYXkgcGFyZW50IGJsb2NrLgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuAFhSZWxldmFudE1lc3NhZ2luZ1N0YXRlAAB5DQQAHGUBIFRoZSBzbmFwc2hvdCBvZiBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gbWVzc2FnaW5nIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBhcyBwZXJIIHRoZSByZWxheSBwYXJlbnQuAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AREhvc3RDb25maWd1cmF0aW9uAACNDQQAGCkBIFRoZSBwYXJhY2hhaW4gaG9zdCBjb25maWd1cmF0aW9uIHRoYXQgd2FzIG9idGFpbmVkIGZyb20gdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgA4TGFzdERtcU1xY0hlYWQBAJUNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPQgVGhlIGxhc3QgZG93bndhcmQgbWVzc2FnZSBxdWV1ZSBjaGFpbiBoZWFkIHdlIGhhdmUgb2JzZXJ2ZWQuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAEBMYXN0SHJtcE1xY0hlYWRzAQCZDQQAEEkBIFRoZSBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWRzIHdlIGhhdmUgb2JzZXJ2ZWQgcGVyIGVhY2ggY2hhbm5lbCBpbmNvbWluZyBjaGFubmVsLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LgBkUHJvY2Vzc2VkRG93bndhcmRNZXNzYWdlcwEAKBAAAAAADMggTnVtYmVyIG9mIGRvd253YXJkIG1lc3NhZ2VzIHByb2Nlc3NlZCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4ANEhybXBXYXRlcm1hcmsBACgQAAAAAAygIEhSTVAgd2F0ZXJtYXJrIHRoYXQgd2FzIHNldCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AUEhybXBPdXRib3VuZE1lc3NhZ2VzAQClDQQADKQgSFJNUCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDsIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBvZiBlYWNoIG5ldyBibG9jay4AOFVwd2FyZE1lc3NhZ2VzAQAkBAAMrCBVcHdhcmQgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suAFRQZW5kaW5nVXB3YXJkTWVzc2FnZXMBACQEAAQxASBVcHdhcmQgbWVzc2FnZXMgdGhhdCBhcmUgc3RpbGwgcGVuZGluZyBhbmQgbm90IHlldCBzZW5kIHRvIHRoZSByZWxheSBjaGFpbi4AXFVwd2FyZERlbGl2ZXJ5RmVlRmFjdG9yAQBUQAAAZKeztuANAAAAAAAAAAAE5CBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieSBmb3IgVU1QLgCEQW5ub3VuY2VkSHJtcE1lc3NhZ2VzUGVyQ2FuZGlkYXRlAQAoEAAAAAAIZQEgVGhlIG51bWJlciBvZiBIUk1QIG1lc3NhZ2VzIHdlIG9ic2VydmVkIGluIGBvbl9pbml0aWFsaXplYCBhbmQgdGh1cyB1c2VkIHRoYXQgbnVtYmVyIGZvcvAgYW5ub3VuY2luZyB0aGUgd2VpZ2h0IG9mIGBvbl9pbml0aWFsaXplYCBhbmQgYG9uX2ZpbmFsaXplYC4AaFJlc2VydmVkWGNtcFdlaWdodE92ZXJyaWRlAADkBAAIXQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIFhDTVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LgBkUmVzZXJ2ZWREbXBXZWlnaHRPdmVycmlkZQAA5AQACFkBIFRoZSB3ZWlnaHQgd2UgcmVzZXJ2ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jayBmb3IgcHJvY2Vzc2luZyBETVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LgBgQ3VzdG9tVmFsaWRhdGlvbkhlYWREYXRhAAAUBAAMKQEgQSBjdXN0b20gaGVhZCBkYXRhIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIGFzIHJlc3VsdCBvZiBgdmFsaWRhdGVfYmxvY2tgLgARASBTZWUgYFBhbGxldDo6c2V0X2N1c3RvbV92YWxpZGF0aW9uX2hlYWRfZGF0YWAgZm9yIG1vcmUgaW5mb3JtYXRpb24uAAFZBAABfQgABChTZWxmUGFyYUlk4BDyBwAABLggUmV0dXJucyB0aGUgcGFyYWNoYWluIElEIHdlIGFyZSBydW5uaW5nIHdpdGguAAGtDQAAAGcAADRQYXJhY2hhaW5JbmZvATRQYXJhY2hhaW5JbmZvBCxQYXJhY2hhaW5JZAEA4BBkAAAAAAABpQQAAAAAAABpAAAsUG9sa2Fkb3RYY20BLFBvbGthZG90WGNtPDBRdWVyeUNvdW50ZXIBABggAAAAAAAAAAAEiCBUaGUgbGF0ZXN0IGF2YWlsYWJsZSBxdWVyeSBpbmRleC4AHFF1ZXJpZXMAAQQCGLENBAAEVCBUaGUgb25nb2luZyBxdWVyaWVzLgAoQXNzZXRUcmFwcwEBBAYsKBAAAAAAEGggVGhlIGV4aXN0aW5nIGFzc2V0IHRyYXBzLgBhASBLZXkgaXMgdGhlIGJsYWtlMiAyNTYgaGFzaCBvZiAob3JpZ2luLCB2ZXJzaW9uZWQgYEFzc2V0c2ApIHBhaXIuIFZhbHVlIGlzIHRoZSBudW1iZXIgb2YdASB0aW1lcyB0aGlzIHBhaXIgaGFzIGJlZW4gdHJhcHBlZCAodXN1YWxseSBqdXN0IDEgaWYgaXQgZXhpc3RzIGF0IGFsbCkuADhTYWZlWGNtVmVyc2lvbgAAKAQACGEBIERlZmF1bHQgdmVyc2lvbiB0byBlbmNvZGUgWENNIHdoZW4gbGF0ZXN0IHZlcnNpb24gb2YgZGVzdGluYXRpb24gaXMgdW5rbm93bi4gSWYgYE5vbmVgLD0BIHRoZW4gdGhlIGRlc3RpbmF0aW9ucyB3aG9zZSBYQ00gdmVyc2lvbiBpcyB1bmtub3duIGFyZSBjb25zaWRlcmVkIHVucmVhY2hhYmxlLgBAU3VwcG9ydGVkVmVyc2lvbgABCAUCxQ0oBAAE8CBUaGUgTGF0ZXN0IHZlcnNpb25zIHRoYXQgd2Uga25vdyB2YXJpb3VzIGxvY2F0aW9ucyBzdXBwb3J0LgBAVmVyc2lvbk5vdGlmaWVycwABCAUCxQ0YBAAEBQEgQWxsIGxvY2F0aW9ucyB0aGF0IHdlIGhhdmUgcmVxdWVzdGVkIHZlcnNpb24gbm90aWZpY2F0aW9ucyBmcm9tLgBQVmVyc2lvbk5vdGlmeVRhcmdldHMAAQgFAsUNyQ0EAAhxASBUaGUgdGFyZ2V0IGxvY2F0aW9ucyB0aGF0IGFyZSBzdWJzY3JpYmVkIHRvIG91ciB2ZXJzaW9uIGNoYW5nZXMsIGFzIHdlbGwgYXMgdGhlIG1vc3QgcmVjZW50lCBvZiBvdXIgdmVyc2lvbnMgd2UgaW5mb3JtZWQgdGhlbSBvZi4AVFZlcnNpb25EaXNjb3ZlcnlRdWV1ZQEAzQ0EAAxlASBEZXN0aW5hdGlvbnMgd2hvc2UgbGF0ZXN0IFhDTSB2ZXJzaW9uIHdlIHdvdWxkIGxpa2UgdG8ga25vdy4gRHVwbGljYXRlcyBub3QgYWxsb3dlZCwgYW5kcQEgdGhlIGB1MzJgIGNvdW50ZXIgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IGEgc2VuZCB0byB0aGUgZGVzdGluYXRpb24gaGFzIGJlZW4gYXR0ZW1wdGVkLIwgd2hpY2ggaXMgdXNlZCBhcyBhIHByaW9yaXRpemF0aW9uLgBAQ3VycmVudE1pZ3JhdGlvbgAA2Q0EAAScIFRoZSBjdXJyZW50IG1pZ3JhdGlvbidzIHN0YWdlLCBpZiBhbnkuAFRSZW1vdGVMb2NrZWRGdW5naWJsZXMAAQwFAgLdDeENBAAE8CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIGEgcmVtb3RlIGNoYWluLgA8TG9ja2VkRnVuZ2libGVzAAEEAgDxDQQABOAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiB0aGlzIGNoYWluLgBUWGNtRXhlY3V0aW9uU3VzcGVuZGVkAQBEBAAEtCBHbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgA8U2hvdWxkUmVjb3JkWGNtAQBEBAAcWQEgV2hldGhlciBvciBub3QgaW5jb21pbmcgWENNcyAoYm90aCBleGVjdXRlZCBsb2NhbGx5IGFuZCByZWNlaXZlZCkgc2hvdWxkIGJlIHJlY29yZGVkLsQgT25seSBvbmUgWENNIHByb2dyYW0gd2lsbCBiZSByZWNvcmRlZCBhdCBhIHRpbWUuKQEgVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGluIHJ1bnRpbWUgQVBJcywgYW5kIGl0J3MgYWR2aXNlZCBpdCBzdGF5cyBmYWxzZQ0BIGZvciBhbGwgb3RoZXIgdXNlIGNhc2VzLCBzbyBhcyB0byBub3QgZGVncmFkZSByZWd1bGFyIHBlcmZvcm1hbmNlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uACxSZWNvcmRlZFhjbQAAtQUEABhJASBJZiBbYFNob3VsZFJlY29yZFhjbWBdIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoZSBsYXN0IFhDTSBwcm9ncmFtIGV4ZWN1dGVkIGxvY2FsbHlUIHdpbGwgYmUgc3RvcmVkIGhlcmUuKQEgUnVudGltZSBBUElzIGNhbiBmZXRjaCB0aGUgWENNIHRoYXQgd2FzIGV4ZWN1dGVkIGJ5IGFjY2Vzc2luZyB0aGlzIHZhbHVlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uAERBdXRob3JpemVkQWxpYXNlcwABBAKtBP0NBAAMZQEgTWFwIG9mIGF1dGhvcml6ZWQgYWxpYXNlcnMgb2YgbG9jYWwgb3JpZ2lucy4gRWFjaCBsb2NhbCBsb2NhdGlvbiBjYW4gYXV0aG9yaXplIGEgbGlzdCBvZlkBIG90aGVyIGxvY2F0aW9ucyB0byBhbGlhcyBpbnRvIGl0LiBFYWNoIGFsaWFzZXIgaXMgb25seSB2YWxpZCB1bnRpbCBpdHMgaW5uZXIgYGV4cGlyeWA4IGJsb2NrIG51bWJlci4AAakECAECuQFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAACAtkBVGhpcyBleHRyaW5zaWMgdXNlcyBgV2VpZ2h0TGltaXQ6OlVubGltaXRlZGAsIHBsZWFzZSBtaWdyYXRlIHRvIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBvciBgdHJhbnNmZXJfYXNzZXRzYAABgQgAEERVbml2ZXJzYWxMb2NhdGlvbqAYAgkCAMkfBIQgVGhpcyBjaGFpbidzIFVuaXZlcnNhbCBMb2NhdGlvbi4AUEFkdmVydGlzZWRYY21WZXJzaW9uKBAFAAAACCUBIFRoZSBsYXRlc3Qgc3VwcG9ydGVkIHZlcnNpb24gdGhhdCB3ZSBhZHZlcnRpc2UuIEdlbmVyYWxseSBqdXN0IHNldCBpdCB0b4QgYHBhbGxldF94Y206OkN1cnJlbnRYY21WZXJzaW9uYC4AKE1heExvY2tlcnMoEAgAAAAEGQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2FsIFhDTSBsb2NrcyB0aGF0IGEgc2luZ2xlIGFjY291bnQgbWF5IGhhdmUuAFhNYXhSZW1vdGVMb2NrQ29uc3VtZXJzKBAAAAAABPwgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnN1bWVycyBhIHNpbmdsZSByZW1vdGUgbG9jayBtYXkgaGF2ZS4AARUOBBgCvFVzZSBgTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yYCBpbnN0ZWFkARgyMC4wLjAILFJ1bnRpbWVDYWxsDARkIFRoZSBydW50aW1lIGBDYWxsYCB0eXBlLnBSZW1vdGVMb2NrQ29uc3VtZXJJZGVudGlmaWVycATEIFRoZSBJRCB0eXBlIGZvciBsb2NhbCBjb25zdW1lcnMgb2YgcmVtb3RlIGxvY2tzLgBrAAAoQ3VtdWx1c1hjbQABaQYAAZEIAAAAAABtAAAkWGNtcFF1ZXVlASRYY21wUXVldWUcUEluYm91bmRYY21wU3VzcGVuZGVkAQAdDgQAIA0BIFRoZSBzdXNwZW5kZWQgaW5ib3VuZCBYQ01QIGNoYW5uZWxzLiBBbGwgb3RoZXJzIGFyZSBub3Qgc3VzcGVuZGVkLgBxASBUaGlzIGlzIGEgYFN0b3JhZ2VWYWx1ZWAgaW5zdGVhZCBvZiBhIGBTdG9yYWdlTWFwYCBzaW5jZSB3ZSBleHBlY3QgbXVsdGlwbGUgcmVhZHMgcGVyIGJsb2NraQEgdG8gZGlmZmVyZW50IGtleXMgd2l0aCBhIG9uZSBieXRlIHBheWxvYWQuIFRoZSBhY2Nlc3MgdG8gYEJvdW5kZWRCVHJlZVNldGAgd2lsbCBiZSBjYWNoZWQVASB3aXRoaW4gdGhlIGJsb2NrIGFuZCB0aGVyZWZvcmUgb25seSBpbmNsdWRlZCBvbmNlIGluIHRoZSBwcm9vZiBzaXplLgBlASBOT1RFOiBUaGUgUG9WIGJlbmNobWFya2luZyBjYW5ub3Qga25vdyB0aGlzIGFuZCB3aWxsIG92ZXItZXN0aW1hdGUsIGJ1dCB0aGUgYWN0dWFsIHByb29mRCB3aWxsIGJlIHNtYWxsZXIuAEhPdXRib3VuZFhjbXBTdGF0dXMBACkOBAAYXQEgVGhlIG5vbi1lbXB0eSBYQ01QIGNoYW5uZWxzIGluIG9yZGVyIG9mIGJlY29taW5nIG5vbi1lbXB0eSwgYW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3RRASBhbmQgbGFzdCBvdXRib3VuZCBtZXNzYWdlLiBJZiB0aGUgdHdvIGluZGljZXMgYXJlIGVxdWFsLCB0aGVuIGl0IGluZGljYXRlcyBhbiBlbXB0eVkBIHF1ZXVlIGFuZCB0aGVyZSBtdXN0IGJlIGEgbm9uLWBPa2AgYE91dGJvdW5kU3RhdHVzYC4gV2UgYXNzdW1lIHF1ZXVlcyBncm93IG5vIGdyZWF0ZXJZASB0aGFuIDY1NTM1IGl0ZW1zLiBRdWV1ZSBpbmRpY2VzIGZvciBub3JtYWwgbWVzc2FnZXMgYmVnaW4gYXQgb25lOyB6ZXJvIGlzIHJlc2VydmVkIGluEQEgY2FzZSBvZiB0aGUgbmVlZCB0byBzZW5kIGEgaGlnaC1wcmlvcml0eSBzaWduYWwgbWVzc2FnZSB0aGlzIGJsb2NrLgkBIFRoZSBib29sIGlzIHRydWUgaWYgdGhlcmUgaXMgYSBzaWduYWwgbWVzc2FnZSB3YWl0aW5nIHRvIGJlIHNlbnQuAFBPdXRib3VuZFhjbXBNZXNzYWdlcwEBCAIFOQ49DgQABLwgVGhlIG1lc3NhZ2VzIG91dGJvdW5kIGluIGEgZ2l2ZW4gWENNUCBjaGFubmVsLgA4U2lnbmFsTWVzc2FnZXMBAQQC4D0OBAAEoCBBbnkgc2lnbmFsIG1lc3NhZ2VzIHdhaXRpbmcgdG8gYmUgc2VudC4ALFF1ZXVlQ29uZmlnAQBBDjAgAAAAMAAAAAgAAAAEFQEgVGhlIGNvbmZpZ3VyYXRpb24gd2hpY2ggY29udHJvbHMgdGhlIGR5bmFtaWNzIG9mIHRoZSBvdXRib3VuZCBxdWV1ZS4AOFF1ZXVlU3VzcGVuZGVkAQBEBAAEQQEgV2hldGhlciBvciBub3QgdGhlIFhDTVAgcXVldWUgaXMgc3VzcGVuZGVkIGZyb20gZXhlY3V0aW5nIGluY29taW5nIFhDTXMgb3Igbm90LgBERGVsaXZlcnlGZWVGYWN0b3IBAQQF4FRAAABkp7O24A0AAAAAAAAAAATEIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5LgAAAZUIAAxMTWF4SW5ib3VuZFN1c3BlbmRlZCgQ6AMAABRJASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5ib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGJlIHN1c3BlbmRlZCBzaW11bHRhbmVvdXNseS4AXQEgQW55IGZ1cnRoZXIgY2hhbm5lbCBzdXNwZW5zaW9ucyB3aWxsIGZhaWwgYW5kIG1lc3NhZ2VzIG1heSBnZXQgZHJvcHBlZCB3aXRob3V0IGZ1cnRoZXJFASBub3RpY2UuIENob29zaW5nIGEgaGlnaCB2YWx1ZSAoMTAwMCkgaXMgb2theTsgdGhlIHRyYWRlLW9mZiB0aGF0IGlzIGRlc2NyaWJlZCBpbtggW2BJbmJvdW5kWGNtcFN1c3BlbmRlZGBdIHN0aWxsIGFwcGxpZXMgYXQgdGhhdCBzY2FsZS4AZE1heEFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMoEIAAAAAgZQEgTWF4aW1hbCBudW1iZXIgb2Ygb3V0Ym91bmQgWENNUCBjaGFubmVscyB0aGF0IGNhbiBoYXZlIG1lc3NhZ2VzIHF1ZXVlZCBhdCB0aGUgc2FtZSB0aW1lLgBVASBJZiB0aGlzIGlzIHJlYWNoZWQsIHRoZW4gbm8gZnVydGhlciBtZXNzYWdlcyBjYW4gYmUgc2VudCB0byBjaGFubmVscyB0aGF0IGRvIG5vdCB5ZXRdASBoYXZlIGEgbWVzc2FnZSBxdWV1ZWQuIFRoaXMgc2hvdWxkIGJlIHNldCB0byB0aGUgZXhwZWN0ZWQgbWF4aW11bSBvZiBvdXRib3VuZCBjaGFubmVsc2EBIHdoaWNoIGlzIGRldGVybWluZWQgYnkgW2BTZWxmOjpDaGFubmVsSW5mb2BdLiBJdCBpcyBpbXBvcnRhbnQgdG8gc2V0IHRoaXMgbGFyZ2UgZW5vdWdoLF0BIHNpbmNlIG90aGVyd2lzZSB0aGUgY29uZ2VzdGlvbiBjb250cm9sIHByb3RvY29sIHdpbGwgbm90IHdvcmsgYXMgaW50ZW5kZWQgYW5kIG1lc3NhZ2VzUQEgbWF5IGJlIGRyb3BwZWQuIFRoaXMgdmFsdWUgaW5jcmVhc2VzIHRoZSBQb1YgYW5kIHNob3VsZCB0aGVyZWZvcmUgbm90IGJlIHBpY2tlZCB0b29NASBoaWdoLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIHBheSBhdHRlbnRpb24gdG8gbm90IG9wZW4gbW9yZSBjaGFubmVscyB0aGFuIHRoaXMgdmFsdWUuACxNYXhQYWdlU2l6ZSgQAAACABS4IFRoZSBtYXhpbWFsIHBhZ2Ugc2l6ZSBmb3IgSFJNUCBtZXNzYWdlIHBhZ2VzLgBhASBBIGxvd2VyIGxpbWl0IGNhbiBiZSBzZXQgZHluYW1pY2FsbHksIGJ1dCB0aGlzIGlzIHRoZSBoYXJkLWxpbWl0IGZvciB0aGUgUG9WIHdvcnN0IGNhc2VVASBiZW5jaG1hcmtpbmcuIFRoZSBsaW1pdCBmb3IgdGhlIHNpemUgb2YgYSBtZXNzYWdlIGlzIHNsaWdodGx5IGJlbG93IHRoaXMsIHNpbmNlIHNvbWW4IG92ZXJoZWFkIGlzIGluY3VycmVkIGZvciBlbmNvZGluZyB0aGUgZm9ybWF0LgABRQ4AAABvAAAwTWVzc2FnZVF1ZXVlATBNZXNzYWdlUXVldWUMMEJvb2tTdGF0ZUZvcgEBBAVxBkkOdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMwgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBhbmQgbGFzdCAobm9uLWVtcHR5KSBwYWdlcy4ALFNlcnZpY2VIZWFkAABxBgQABLwgVGhlIG9yaWdpbiBhdCB3aGljaCB3ZSBzaG91bGQgYmVnaW4gc2VydmljaW5nLgAUUGFnZXMAAQgFBVUOWQ4EAASIIFRoZSBtYXAgb2YgcGFnZSBpbmRpY2VzIHRvIHBhZ2VzLgABbQYAAZkIABAgSGVhcFNpemUoEAAMAgAUPQEgVGhlIHNpemUgb2YgdGhlIHBhZ2U7IHRoaXMgaW1wbGllcyB0aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgd2hpY2ggY2FuIGJlIHNlbnQuAFkBIEEgZ29vZCB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBleHBlY3RlZCBtZXNzYWdlIHNpemVzLCB0aGVpciB3ZWlnaHRzLCB0aGUgd2VpZ2h0IHRoYXQgaXNdASBhdmFpbGFibGUgZm9yIHByb2Nlc3NpbmcgdGhlbSBhbmQgdGhlIG1heGltYWwgbmVlZGVkIG1lc3NhZ2Ugc2l6ZS4gVGhlIG1heGltYWwgbWVzc2FnZREBIHNpemUgaXMgc2xpZ2h0bHkgbG93ZXIgdGhhbiB0aGlzIGFzIGRlZmluZWQgYnkgW2BNYXhNZXNzYWdlTGVuT2ZgXS4AIE1heFN0YWxlKBAIAAAADF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdGFsZSBwYWdlcyAoaS5lLiBvZiBvdmVyd2VpZ2h0IG1lc3NhZ2VzKSBhbGxvd2VkIGJlZm9yZSBjdWxsaW5nUQEgY2FuIGhhcHBlbi4gT25jZSB0aGVyZSBhcmUgbW9yZSBzdGFsZSBwYWdlcyB0aGFuIHRoaXMsIHRoZW4gaGlzdG9yaWNhbCBwYWdlcyBtYXkgYmX8IGRyb3BwZWQsIGV2ZW4gaWYgdGhleSBjb250YWluIHVucHJvY2Vzc2VkIG92ZXJ3ZWlnaHQgbWVzc2FnZXMuADRTZXJ2aWNlV2VpZ2h0/QUsAQcAoNshXQIAgAAYQQEgVGhlIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgd2hpY2ggc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvcqggc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pbml0aWFsaXplYC4A/CBUaGlzIG1heSBiZSBsZWdpdGltYXRlbHkgYE5vbmVgIGluIHRoZSBjYXNlIHRoYXQgeW91IHdpbGwgY2FsbF0BIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgbWFudWFsbHkgb3Igc2V0IFtgU2VsZjo6SWRsZU1heFNlcnZpY2VXZWlnaHRgXSB0byBoYXZlVCBpdCBydW4gaW4gYG9uX2lkbGVgLgBQSWRsZU1heFNlcnZpY2VXZWlnaHT9BQQAFF0BIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgdG8gYmUgdXNlZCBmcm9tIHJlbWFpbmluZyB3ZWlnaHQgYG9uX2lkbGVgIHdoaWNoQQEgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvciBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2lkbGVgLj0BIFVzZWZ1bCBmb3IgcGFyYWNoYWlucyB0byBwcm9jZXNzIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIGJsb2NrIHRoZXkgYXJlIHJlY2VpdmVkLgApASBJZiBgTm9uZWAsIGl0IHdpbGwgbm90IGNhbGwgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBpbiBgb25faWRsZWAuAAFhDgAEEFNpemUoBFQgUGFnZS9oZWFwIHNpemUgdHlwZS4AcgAANFdlaWdodFJlY2xhaW0AAAAAAAAAcwiBASBQYWxsZXQgdG8gdXNlIGFsb25nc2lkZSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtgU3RvcmFnZVdlaWdodFJlY2xhaW1gXSwgdGhlIHBhbGxldCBwcm92aWRlc4wgd2VpZ2h0IGluZm9ybWF0aW9uIGFuZCBiZW5jaG1hcmtzLgBQTXVsdGlCbG9ja01pZ3JhdGlvbnMBUE11bHRpQmxvY2tNaWdyYXRpb25zCBhDdXJzb3IAAH0GBAAM2CBUaGUgY3VycmVudGx5IGFjdGl2ZSBtaWdyYXRpb24gdG8gcnVuIGFuZCBpdHMgY3Vyc29yLgC8IGBOb25lYCBpbmRpY2F0ZXMgdGhhdCBubyBtaWdyYXRpb24gaXMgcnVubmluZy4AIEhpc3RvcmljAAEEBX0DcAQAELQgU2V0IG9mIGFsbCBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQgbWlncmF0aW9ucy4AcQEgVGhpcyBpcyB1c2VkIGFzIGJsYWNrbGlzdCwgdG8gbm90IHJlLWV4ZWN1dGUgbWlncmF0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gcmVtb3ZlZCBmcm9tIHRoZTEBIGNvZGViYXNlIHlldC4gR292ZXJuYW5jZSBjYW4gcmVndWxhcmx5IGNsZWFyIHRoaXMgb3V0IHZpYSBgY2xlYXJfaGlzdG9yaWNgLgABdQYAAaEIAAgwQ3Vyc29yTWF4TGVuKBAAAAEAEKQgVGhlIG1heGltYWwgbGVuZ3RoIG9mIGFuIGVuY29kZWQgY3Vyc29yLgBlASBBIGdvb2QgZGVmYXVsdCBuZWVkcyB0byBzZWxlY3RlZCBzdWNoIHRoYXQgbm8gbWlncmF0aW9uIHdpbGwgZXZlciBoYXZlIGEgY3Vyc29yIHdpdGggTUVMCQEgYWJvdmUgdGhpcyBsaW1pdC4gVGhpcyBpcyBzdGF0aWNhbGx5IGNoZWNrZWQgaW4gYGludGVncml0eV90ZXN0YC4AQElkZW50aWZpZXJNYXhMZW4oEAABAAAQtCBUaGUgbWF4aW1hbCBsZW5ndGggb2YgYW4gZW5jb2RlZCBpZGVudGlmaWVyLgBVASBBIGdvb2QgZGVmYXVsdCBuZWVkcyB0byBzZWxlY3RlZCBzdWNoIHRoYXQgbm8gbWlncmF0aW9uIHdpbGwgZXZlciBoYXZlIGFuIGlkZW50aWZpZXItASB3aXRoIE1FTCBhYm92ZSB0aGlzIGxpbWl0LiBUaGlzIGlzIHN0YXRpY2FsbHkgY2hlY2tlZCBpbiBgaW50ZWdyaXR5X3Rlc3RgLgABZQ4AAAB0AAAcT3JtbFhjbQABlQYAAaUIAAABaQ4AAACHAAAcWFRva2VucwABmQYAAakIAAwwU2VsZkxvY2F0aW9unBQBAQDJHwRUIFNlbGYgY2hhaW4gbG9jYXRpb24uADRCYXNlWGNtV2VpZ2h05BQChNcXABBEIEJhc2UgWENNIHdlaWdodC4A+CBUaGUgYWN0dWFsbHkgd2VpZ2h0IGZvciBhbiBYQ00gbWVzc2FnZSBpcyBgVDo6QmFzZVhjbVdlaWdodCArbCBUOjpXZWlnaGVyOjp3ZWlnaHQoJm1zZylgLgA0UmF0ZUxpbWl0ZXJJZHAABGwgVGhlIGlkIG9mIHRoZSBSYXRlTGltaXRlci4AAW0OAAgcQmFsYW5jZUAESCBUaGUgYmFsYW5jZSB0eXBlLihDdXJyZW5jeUlkKAQ0IEN1cnJlbmN5IElkLgCJAAA0VW5rbm93blRva2VucwE0VW5rbm93blRva2VucwhgQ29uY3JldGVGdW5naWJsZUJhbGFuY2VzAQEIAgJxDkBAAAAAAAAAAAAAAAAAAAAAABAFASBDb25jcmV0ZSBmdW5naWJsZSBiYWxhbmNlcyB1bmRlciBhIGdpdmVuIGxvY2F0aW9uIGFuZCBhIGNvbmNyZXRlNCBmdW5naWJsZSBpZC4AiCBkb3VibGVfbWFwOiB3aG8sIGFzc2V0X2lkID0+IHUxMjgAYEFic3RyYWN0RnVuZ2libGVCYWxhbmNlcwEBCAICdQ5AQAAAAAAAAAAAAAAAAAAAAAAQBQEgQWJzdHJhY3QgZnVuZ2libGUgYmFsYW5jZXMgdW5kZXIgYSBnaXZlbiBsb2NhdGlvbiBhbmQgYSBhYnN0cmFjdDQgZnVuZ2libGUgaWQuAIggZG91YmxlX21hcDogd2hvLCBhc3NldF9pZCA9PiB1MTI4AAABrQgAAAF5DgAAAIsAAChBdXRob3JzaGlwAShBdXRob3JzaGlwBBhBdXRob3IAAAAEAARkIEF1dGhvciBvZiBjdXJyZW50IGJsb2NrLgAAAAAAAAChAABEQ29sbGF0b3JTZWxlY3Rpb24BRENvbGxhdG9yU2VsZWN0aW9uFDRJbnZ1bG5lcmFibGVzAQBZCwQABBEBIFRoZSBpbnZ1bG5lcmFibGUsIHBlcm1pc3Npb25lZCBjb2xsYXRvcnMuIFRoaXMgbGlzdCBtdXN0IGJlIHNvcnRlZC4ANENhbmRpZGF0ZUxpc3QBAH0OBAAUaQEgVGhlIChjb21tdW5pdHksIGxpbWl0ZWQpIGNvbGxhdGlvbiBjYW5kaWRhdGVzLiBgQ2FuZGlkYXRlc2AgYW5kIGBJbnZ1bG5lcmFibGVzYCBzaG91bGQgYmVQIG11dHVhbGx5IGV4Y2x1c2l2ZS4AdQEgVGhpcyBsaXN0IGlzIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYnkgZGVwb3NpdCBhbmQgd2hlbiB0aGUgZGVwb3NpdHMgYXJlIGVxdWFsLCB0aGUgbGVhc3SgIHJlY2VudGx5IHVwZGF0ZWQgaXMgY29uc2lkZXJlZCBncmVhdGVyLgBETGFzdEF1dGhvcmVkQmxvY2sBAQQFACgQAAAAAASEIExhc3QgYmxvY2sgYXV0aG9yZWQgYnkgY29sbGF0b3IuAEREZXNpcmVkQ2FuZGlkYXRlcwEAKBAAAAAADHggRGVzaXJlZCBudW1iZXIgb2YgY2FuZGlkYXRlcy4AdQEgVGhpcyBzaG91bGQgaWRlYWxseSBhbHdheXMgYmUgbGVzcyB0aGFuIFtgQ29uZmlnOjpNYXhDYW5kaWRhdGVzYF0gZm9yIHdlaWdodHMgdG8gYmUgY29ycmVjdC4ANENhbmRpZGFjeUJvbmQBAEBAAAAAAAAAAAAAAAAAAAAAAAy4IEZpeGVkIGFtb3VudCB0byBkZXBvc2l0IHRvIGJlY29tZSBhIGNvbGxhdG9yLgBBASBXaGVuIGEgY29sbGF0b3IgY2FsbHMgYGxlYXZlX2ludGVudGAgdGhleSBpbW1lZGlhdGVseSByZWNlaXZlIHRoZSBkZXBvc2l0IGJhY2suAAGlBgABsQgAGBRQb3RJZK0JIFBvdFN0YWtlBPQgQWNjb3VudCBJZGVudGlmaWVyIGZyb20gd2hpY2ggdGhlIGludGVybmFsIFBvdCBpcyBnZW5lcmF0ZWQuADRNYXhDYW5kaWRhdGVzKBAAAAAADMggTWF4aW11bSBudW1iZXIgb2YgY2FuZGlkYXRlcyB0aGF0IHdlIHNob3VsZCBoYXZlLgDMIFRoaXMgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIGludnVsbmVyYWJsZXMuAFBNaW5FbGlnaWJsZUNvbGxhdG9ycygQBAAAAAxVASBNaW5pbXVtIG51bWJlciBlbGlnaWJsZSBjb2xsYXRvcnMuIFNob3VsZCBhbHdheXMgYmUgZ3JlYXRlciB0aGFuIHplcm8uIFRoaXMgaW5jbHVkZXNRASBJbnZ1bG5lcmFibGUgY29sbGF0b3JzLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBvbmUgY29sbGF0b3Igd2hvIGNhbkQgcHJvZHVjZSBhIGJsb2NrLgBATWF4SW52dWxuZXJhYmxlcygQMgAAAASEIE1heGltdW0gbnVtYmVyIG9mIGludnVsbmVyYWJsZXMuADRLaWNrVGhyZXNob2xkKBBgCQAAAAAscG90X2FjY291bnQAgG1vZGxQb3RTdGFrZQAAAAAAAAAAAAAAAAAAAAAAAAAABKAgR2V0cyB0aGlzIHBhbGxldCdzIGRlcml2ZWQgcG90IGFjY291bnQuAAGJDgAELFZhbGlkYXRvcklkAAR0IEEgc3RhYmxlIElEIGZvciBhIHZhbGlkYXRvci4AowAAHFNlc3Npb24BHFNlc3Npb24cKFZhbGlkYXRvcnMBAEgEAAR8IFRoZSBjdXJyZW50IHNldCBvZiB2YWxpZGF0b3JzLgAwQ3VycmVudEluZGV4AQAoEAAAAAAEeCBDdXJyZW50IGluZGV4IG9mIHRoZSBzZXNzaW9uLgA0UXVldWVkQ2hhbmdlZAEARAQACDkBIFRydWUgaWYgdGhlIHVuZGVybHlpbmcgZWNvbm9taWMgaWRlbnRpdGllcyBvciB3ZWlnaHRpbmcgYmVoaW5kIHRoZSB2YWxpZGF0b3JzpCBoYXMgY2hhbmdlZCBpbiB0aGUgcXVldWVkIHZhbGlkYXRvciBzZXQuAChRdWV1ZWRLZXlzAQCNDgQACD0BIFRoZSBxdWV1ZWQga2V5cyBmb3IgdGhlIG5leHQgc2Vzc2lvbi4gV2hlbiB0aGUgbmV4dCBzZXNzaW9uIGJlZ2lucywgdGhlc2Uga2V5c+Agd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdmFsaWRhdG9yJ3Mgc2Vzc2lvbiBrZXlzLgBIRGlzYWJsZWRWYWxpZGF0b3JzAQCVDgQAFIAgSW5kaWNlcyBvZiBkaXNhYmxlZCB2YWxpZGF0b3JzLgA9ASBUaGUgdmVjIGlzIGFsd2F5cyBrZXB0IHNvcnRlZCBzbyB0aGF0IHdlIGNhbiBmaW5kIHdoZXRoZXIgYSBnaXZlbiB2YWxpZGF0b3IgaXM9ASBkaXNhYmxlZCB1c2luZyBiaW5hcnkgc2VhcmNoLiBJdCBnZXRzIGNsZWFyZWQgd2hlbiBgb25fc2Vzc2lvbl9lbmRpbmdgIHJldHVybnNkIGEgbmV3IHNldCBvZiBpZGVudGl0aWVzLgAgTmV4dEtleXMAAQQFAK0GBAAEnCBUaGUgbmV4dCBzZXNzaW9uIGtleXMgZm9yIGEgdmFsaWRhdG9yLgAgS2V5T3duZXIAAQQFoQ4ABAAECQEgVGhlIG93bmVyIG9mIGEga2V5LiBUaGUga2V5IGlzIHRoZSBgS2V5VHlwZUlkYCArIHRoZSBlbmNvZGVkIGtleS4AAakGAAG1CAAAAakOAAgsVmFsaWRhdG9ySWQABHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLhBLZXlzrQYEKCBUaGUga2V5cy4ApQAAEEF1cmEBEEF1cmEILEF1dGhvcml0aWVzAQCtDgQABGwgVGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4ALEN1cnJlbnRTbG90AQC1DiAAAAAAAAAAAAyAIFRoZSBjdXJyZW50IHNsb3Qgb2YgdGhpcyBibG9jay4AlCBUaGlzIHdpbGwgYmUgc2V0IGluIGBvbl9pbml0aWFsaXplYC4AAAAEMFNsb3REdXJhdGlvbhggcBcAAAAAAAAQDQEgVGhlIHNsb3QgZHVyYXRpb24gQXVyYSBzaG91bGQgcnVuIHdpdGgsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMuPQEgVGhlIGVmZmVjdGl2ZSB2YWx1ZSBvZiB0aGlzIHR5cGUgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hpbGUgdGhlIGNoYWluIGlzIHJ1bm5pbmcuADUBIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBlaXRoZXIgdXNlIFtgTWluaW11bVBlcmlvZFRpbWVzVHdvYF0gb3IgYSBjb25zdC4AAAQsQXV0aG9yaXR5SWSxBgSYIFRoZSBpZGVudGlmaWVyIHR5cGUgZm9yIGFuIGF1dGhvcml0eS4ApwAAHEF1cmFFeHQBHEF1cmFFeHQILEF1dGhvcml0aWVzAQCtDgQAFJQgU2VydmVzIGFzIGNhY2hlIGZvciB0aGUgYXV0aG9yaXRpZXMuAHEBIFRoZSBhdXRob3JpdGllcyBpbiBBdVJhIGFyZSBvdmVyd3JpdHRlbiBpbiBgb25faW5pdGlhbGl6ZWAgd2hlbiB3ZSBzd2l0Y2ggdG8gYSBuZXcgc2Vzc2lvbixdASBidXQgd2UgcmVxdWlyZSB0aGUgb2xkIGF1dGhvcml0aWVzIHRvIHZlcmlmeSB0aGUgc2VhbCB3aGVuIHZhbGlkYXRpbmcgYSBQb1YuIFRoaXMgd2lsbA0BIGFsd2F5cyBiZSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgQXVSYSBhdXRob3JpdGllcyBpbiBgb25fZmluYWxpemVgLgA0UmVsYXlTbG90SW5mbwAAuQ4EABAJASBDdXJyZW50IHJlbGF5IGNoYWluIHNsb3QgcGFpcmVkIHdpdGggYSBudW1iZXIgb2YgYXV0aG9yZWQgYmxvY2tzLgBlASBUaGlzIGlzIHVwZGF0ZWQgaW4gW2BGaXhlZFZlbG9jaXR5Q29uc2Vuc3VzSG9vazo6b25fc3RhdGVfcHJvb2ZgXSB3aXRoIHRoZSBjdXJyZW50IHJlbGF53CBjaGFpbiBzbG90IGFzIHByb3ZpZGVkIGJ5IHRoZSByZWxheSBjaGFpbiBzdGF0ZSBwcm9vZi4AAAAAAAAAqQAAJEVtYU9yYWNsZQEkRW1hT3JhY2xlFCxBY2N1bXVsYXRvcgEAvQ4EAARxASBBY2N1bXVsYXRvciBmb3Igb3JhY2xlIGRhdGEgaW4gY3VycmVudCBibG9jayB0aGF0IHdpbGwgYmUgcmVjb3JkZWQgYXQgdGhlIGVuZCBvZiB0aGUgYmxvY2suABxPcmFjbGVzAAEMBQUF2Q7dDgQADHUBIE9yYWNsZSBzdG9yYWdlIGtleWVkIGJ5IGRhdGEgc291cmNlLCBpbnZvbHZlZCBhc3NldCBpZHMgYW5kIHRoZSBwZXJpb2QgbGVuZ3RoIG9mIHRoZSBvcmFjbGUuAGUBIFN0b3JlcyB0aGUgZGF0YSBlbnRyeSBhcyB3ZWxsIGFzIHRoZSBibG9jayBudW1iZXIgd2hlbiB0aGUgb3JhY2xlIHdhcyBmaXJzdCBpbml0aWFsaXplZC4ARFdoaXRlbGlzdGVkQXNzZXRzAQDhDgQABNwgQXNzZXRzIHRoYXQgYXJlIHdoaXRlbGlzdGVkIGFuZCB0cmFja2VkIGJ5IHRoZSBwYWxsZXQuADxFeHRlcm5hbFNvdXJjZXMAAQQFIQFwBAAEkCBSZWdpc3RlcmVkIGV4dGVybmFsIG9yYWNsZSBzb3VyY2VzLgBIQXV0aG9yaXplZEFjY291bnRzAAEMBQUF7Q5wBAAU+CBBdXRob3JpemVkIGFjY291bnRzIHBlciAoZXh0ZXJuYWwgb3JhY2xlIHNvdXJjZSwgYXNzZXQgcGFpcikuAE0BIEF1dGhvcml6YXRpb24gaXMgc2NvcGVkIHBlci1wYWlyIHNvIHRoYXQgYSBjb21wcm9taXNlZCBleHRlcm5hbCBvcmFjbGUgYWNjb3VudCBjYW5JASBvbmx5IHVwZGF0ZSB0aGUgc3BlY2lmaWMgcGFpcnMgaXQgd2FzIGF1dGhvcml6ZWQgZm9yLCBsaW1pdGluZyBERG9TIGJsYXN0IHJhZGl1cy7EIFRoZSBhc3NldCBwYWlyIGlzIHN0b3JlZCBpbiBgb3JkZXJlZF9wYWlyYCBmb3JtLgABtQYEAgLZAVVzZSBgc2V0X2V4dGVybmFsX29yYWNsZWAgaW5zdGVhZC4gS2VwdCBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggYmlmcm9zdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUAAbkIAARATWF4VW5pcXVlRW50cmllcygQKAAAAAT8IE1heGltdW0gbnVtYmVyIG9mIHVuaXF1ZSBvcmFjbGUgZW50cmllcyBleHBlY3RlZCBpbiBvbmUgYmxvY2suAAHxDgAAAMoAACRCcm9hZGNhc3QBJEJyb2FkY2FzdAw0SW5jcmVtZW50YWxJZAEAKBAAAAAABHggTmV4dCBhdmFpbGFibGUgaW5jcmVtZW50YWwgSUQAQEV4ZWN1dGlvbkNvbnRleHQBAPUOBAAEDQEgRXhlY3V0aW9uIGNvbnRleHQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGUgdHJhZGUgaXMgb3JpZ2luYXRlZCBmcm9tABxTd2FwcGVyAAAABAAEpQFJZiBmaWxsZWQsIHdlIG92ZXJ3cml0ZSB0aGUgb3JpZ2luYWwgc3dhcHBlci4gTWFpbmx5IHVzZWQgaW4gcm91dGVyIHRvIG5vdCB0byB1c2UgdGVtcG9yYXJ5IHRyYWRlIGFjY291bnQAAbkGAAHNCAAAAfkOAAAAzAAAMEZlZVByb2Nlc3NvcgEwRmVlUHJvY2Vzc29yDEhQZW5kaW5nQ29udmVyc2lvbnMAAQQCKHAEAASIIEFzc2V0cyBwZW5kaW5nIGNvbnZlcnNpb24gdG8gSERYLgBwQ291bnRlckZvclBlbmRpbmdDb252ZXJzaW9ucwEAKBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwACBIZWxkRmVlcwEBBAIAQEAAAAAAAAAAAAAAAAAAAAAAECkBIEhEWCBoZWxkIGluIHRoZSBwb3QgZm9yIGEgYGhvbGRfdW50aWxfZWRgIHJlY2VpdmVyIHdob3NlIGFjY291bnQgaXMgc3RpbGzsIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LiBUaGUgSERYIHBoeXNpY2FsbHkgbGl2ZXMgaW4pASBgcG90X2FjY291bnRfaWQoKWA7IHRoaXMgbWFwIG9ubHkgZWFybWFya3MgaG93IG11Y2ggb2YgaXQgYmVsb25ncyB0byBlYWNoOQEgZGVzdGluYXRpb24uIEZsdXNoZWQgdG8gdGhlIGRlc3RpbmF0aW9uIG9uY2UgYGJhbGFuY2UgKyBoZWxkICsgc2xpY2Ug4omlIEVEYC4AAb0GAAH1CAAQIFBhbGxldElkrQkgZmVlcHJvYy8EsCBQYWxsZXQgSUQgZm9yIHRoZSBmZWUgYWNjdW11bGF0aW9uIGFjY291bnQuAChIZHhBc3NldElkKBAAAAAABLQgSERYIGFzc2V0IElEICh0YXJnZXQgYXNzZXQgZm9yIGNvbnZlcnNpb25zKS4ALExybmFBc3NldElkKBABAAAABNQgTFJOQSBhc3NldCBJRCAoaHViIGFzc2V0LCBmZWVzIGluIExSTkEgYXJlIHNraXBwZWQpLgBYTWF4Q29udmVyc2lvbnNQZXJCbG9jaygQBQAAAASYIE1heGltdW0gY29udmVyc2lvbnMgcGVyIG9uX2lkbGUgY2FsbC4AAf0OAAQcQXNzZXRJZCgEPCBBc3NldCBJRCB0eXBlLgDPAAAIBAUADJUBBAAsAAQIDBAUGBwgJCgsSENoZWNrTm9uWmVyb1NlbmRlcsEGcEBDaGVja1NwZWNWZXJzaW9uxQYoOENoZWNrVHhWZXJzaW9uyQYoMENoZWNrR2VuZXNpc80GLDhDaGVja01vcnRhbGl0edEGLChDaGVja05vbmNl2QZwLENoZWNrV2VpZ2h03QZwYENoYXJnZVRyYW5zYWN0aW9uUGF5bWVudOEGcDRWYWxpZGF0ZUNsYWlt5QZwRENoZWNrTWV0YWRhdGFIYXNo6QbxBlBTdG9yYWdlV2VpZ2h0UmVjbGFpbXBwZBBDb3JlDBx2ZXJzaW9uAB0JBJAgUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVudGltZS4ANGV4ZWN1dGVfYmxvY2sEFGJsb2NrMQlwBGQgRXhlY3V0ZSB0aGUgZ2l2ZW4gYmxvY2suAEBpbml0aWFsaXplX2Jsb2NrBBhoZWFkZXKRBAEPBEEBIEluaXRpYWxpemUgYSBibG9jayB3aXRoIHRoZSBnaXZlbiBoZWFkZXIgYW5kIHJldHVybiB0aGUgcnVudGltZSBleGVjdXRpdmUgbW9kZS4ABCEBIFRoZSBgQ29yZWAgcnVudGltZSBhcGkgdGhhdCBldmVyeSBTdWJzdHJhdGUgcnVudGltZSBuZWVkcyB0byBpbXBsZW1lbnQuFAAgTWV0YWRhdGEMIG1ldGFkYXRhAAUPBIwgUmV0dXJucyB0aGUgbWV0YWRhdGEgb2YgYSBydW50aW1lLgBMbWV0YWRhdGFfYXRfdmVyc2lvbgQcdmVyc2lvbigJDxCkIFJldHVybnMgdGhlIG1ldGFkYXRhIGF0IGEgZ2l2ZW4gdmVyc2lvbi4ABQEgSWYgdGhlIGdpdmVuIGB2ZXJzaW9uYCBpc24ndCBzdXBwb3J0ZWQsIHRoaXMgd2lsbCByZXR1cm4gYE5vbmVgLnUBIFVzZSBbYFNlbGY6Om1ldGFkYXRhX3ZlcnNpb25zYF0gdG8gZmluZCBvdXQgYWJvdXQgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuAERtZXRhZGF0YV92ZXJzaW9ucwC1AgykIFJldHVybnMgdGhlIHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9ucy4AwCBUaGlzIGNhbiBiZSB1c2VkIHRvIGNhbGwgYG1ldGFkYXRhX2F0X3ZlcnNpb25gLgAEAQEgVGhlIGBNZXRhZGF0YWAgYXBpIHRyYWl0IHRoYXQgcmV0dXJucyBtZXRhZGF0YSBmb3IgdGhlIHJ1bnRpbWUuCAAwQmxvY2tCdWlsZGVyEDxhcHBseV9leHRyaW5zaWMEJGV4dHJpbnNpYzUJDQ8QbCBBcHBseSB0aGUgZ2l2ZW4gZXh0cmluc2ljLgA5ASBSZXR1cm5zIGFuIGluY2x1c2lvbiBvdXRjb21lIHdoaWNoIHNwZWNpZmllcyBpZiB0aGlzIGV4dHJpbnNpYyBpcyBpbmNsdWRlZCBpbkwgdGhpcyBibG9jayBvciBub3QuADhmaW5hbGl6ZV9ibG9jawCRBARoIEZpbmlzaCB0aGUgY3VycmVudCBibG9jay4ATGluaGVyZW50X2V4dHJpbnNpY3MEIGluaGVyZW50HQ9FCQQ9ASBHZW5lcmF0ZSBpbmhlcmVudCBleHRyaW5zaWNzLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi4APGNoZWNrX2luaGVyZW50cwgUYmxvY2sxCRBkYXRhHQ8tDwRVASBDaGVjayB0aGF0IHRoZSBpbmhlcmVudHMgYXJlIHZhbGlkLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi4ABHEBIFRoZSBgQmxvY2tCdWlsZGVyYCBhcGkgdHJhaXQgdGhhdCBwcm92aWRlcyB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eSBmb3IgYnVpbGRpbmcgYSBibG9jay4YAFhUYWdnZWRUcmFuc2FjdGlvblF1ZXVlBFB2YWxpZGF0ZV90cmFuc2FjdGlvbgwYc291cmNlMQ8IdHg1CShibG9ja19oYXNoLDUPJGggVmFsaWRhdGUgdGhlIHRyYW5zYWN0aW9uLgBlASBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiBwb29sIHRvIGxlYXJuIGRldGFpbHMgYWJvdXQgZ2l2ZW4gdHJhbnNhY3Rpb24uRQEgVGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCBtYWtlIHN1cmUgdG8gdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdHJhbnNhY3Rpb25NASBhZ2FpbnN0IGN1cnJlbnQgc3RhdGUuIFRoZSBnaXZlbiBgYmxvY2tfaGFzaGAgY29ycmVzcG9uZHMgdG8gdGhlIGhhc2ggb2YgdGhlIGJsb2NrfCB0aGF0IGlzIHVzZWQgYXMgY3VycmVudCBzdGF0ZS4ARQEgTm90ZSB0aGF0IHRoaXMgY2FsbCBtYXkgYmUgcGVyZm9ybWVkIGJ5IHRoZSBwb29sIG11bHRpcGxlIHRpbWVzIGFuZCB0cmFuc2FjdGlvbnOkIG1pZ2h0IGJlIHZlcmlmaWVkIGluIGFueSBwb3NzaWJsZSBvcmRlci4ABE0BIFRoZSBgVGFnZ2VkVHJhbnNhY3Rpb25RdWV1ZWAgYXBpIHRyYWl0IGZvciBpbnRlcmZlcmluZyB3aXRoIHRoZSB0cmFuc2FjdGlvbiBxdWV1ZS4MAERPZmZjaGFpbldvcmtlckFwaQQ8b2ZmY2hhaW5fd29ya2VyBBhoZWFkZXKRBHAEyCBTdGFydHMgdGhlIG9mZi1jaGFpbiB0YXNrIGZvciBnaXZlbiBibG9jayBoZWFkZXIuAARkIFRoZSBvZmZjaGFpbiB3b3JrZXIgYXBpLggALFNlc3Npb25LZXlzCFRnZW5lcmF0ZV9zZXNzaW9uX2tleXMEEHNlZWSRBhQcFQEgR2VuZXJhdGUgYSBzZXQgb2Ygc2Vzc2lvbiBrZXlzIHdpdGggb3B0aW9uYWxseSB1c2luZyB0aGUgZ2l2ZW4gc2VlZC4JASBUaGUga2V5cyBzaG91bGQgYmUgc3RvcmVkIHdpdGhpbiB0aGUga2V5c3RvcmUgZXhwb3NlZCB2aWEgcnVudGltZTwgZXh0ZXJuYWxpdGllcy4AsCBUaGUgc2VlZCBuZWVkcyB0byBiZSBhIHZhbGlkIGB1dGY4YCBzdHJpbmcuANAgUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIFNDQUxFIGVuY29kZWQgcHVibGljIGtleXMuAExkZWNvZGVfc2Vzc2lvbl9rZXlzBBxlbmNvZGVkFD0PDJggRGVjb2RlIHRoZSBnaXZlbiBwdWJsaWMgc2Vzc2lvbiBrZXlzLgDcIFJldHVybnMgdGhlIGxpc3Qgb2YgcHVibGljIHJhdyBwdWJsaWMga2V5cyArIGtleSB0eXBlLgAEaCBTZXNzaW9uIGtleXMgcnVudGltZSBhcGkuBAAcQXVyYUFwaQg0c2xvdF9kdXJhdGlvbgBJDwyQIFJldHVybnMgdGhlIHNsb3QgZHVyYXRpb24gZm9yIEF1cmEuACUBIEN1cnJlbnRseSwgb25seSB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhpcyB0eXBlIGF0IGdlbmVzaXMgd2lsbCBiZSB1c2VkLgAsYXV0aG9yaXRpZXMAsQ4EnCBSZXR1cm4gdGhlIGN1cnJlbnQgc2V0IG9mIGF1dGhvcml0aWVzLgAEuCBBUEkgbmVjZXNzYXJ5IGZvciBibG9jayBhdXRob3JzaGlwIHdpdGggYXVyYS4EAFBDb2xsZWN0Q29sbGF0aW9uSW5mbwRYY29sbGVjdF9jb2xsYXRpb25faW5mbwQYaGVhZGVykQRNDxCcIENvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uAPQgVGhlIGdpdmVuIGBoZWFkZXJgIGlzIHRoZSBoZWFkZXIgb2YgdGhlIGJ1aWx0IGJsb2NrIGZvciB0aGF0qCB3ZSBhcmUgY29sbGVjdGluZyB0aGUgY29sbGF0aW9uIGluZm8gZm9yLgAU2CBSdW50aW1lIGFwaSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgBEIFZlcnNpb24gaGlzdG9yeToBASAtIFZlcnNpb24gMjogQ2hhbmdlZCBbYFNlbGY6OmNvbGxlY3RfY29sbGF0aW9uX2luZm9gXSBzaWduYXR1cmU1ASAtIFZlcnNpb24gMzogU2lnbmFscyB0byB0aGUgbm9kZSB0byB1c2UgdmVyc2lvbiAxIG9mIFtgUGFyYWNoYWluQmxvY2tEYXRhYF0uDABIR2V0Q29yZVNlbGVjdG9yQXBpBDRjb3JlX3NlbGVjdG9yAFkPBAkBIFJldHJpZXZlIGNvcmUgc2VsZWN0b3IgYW5kIGNsYWltIHF1ZXVlIG9mZnNldCBmb3IgdGhlIG5leHQgYmxvY2suAAQxASBSdW50aW1lIGFwaSB1c2VkIHRvIHNlbGVjdCB0aGUgY29yZSBmb3Igd2hpY2ggdGhlIG5leHQgYmxvY2sgd2lsbCBiZSBidWlsdC4EADRDdXJyZW5jaWVzQXBpEBxhY2NvdW50CCBhc3NldF9pZCgMd2hvAGUPAAAgYWNjb3VudHMEDHdobwBpDwAAMGZyZWVfYmFsYW5jZQggYXNzZXRfaWQoDHdobwBAAAA8bWluaW11bV9iYWxhbmNlBCBhc3NldF9pZChAAAAABAA8QWNjb3VudE5vbmNlQXBpBDRhY2NvdW50X25vbmNlBBxhY2NvdW50ACgEwCBHZXQgY3VycmVudCBhY2NvdW50IG5vbmNlIG9mIGdpdmVuIGBBY2NvdW50SWRgLgAEgCBUaGUgQVBJIHRvIHF1ZXJ5IGFjY291bnQgbm9uY2UuBABUVHJhbnNhY3Rpb25QYXltZW50QXBpEChxdWVyeV9pbmZvCAx1eHQ1CQxsZW4ocQ8AAERxdWVyeV9mZWVfZGV0YWlscwgMdXh0NQkMbGVuKHUPAABMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h05EAAAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGgoQAAAABAAVEV0aGVyZXVtUnVudGltZVJQQ0FwaUQgY2hhaW5faWQAGAS0IFJldHVybnMgcnVudGltZSBkZWZpbmVkIHBhbGxldF9ldm06OkNoYWluSWQuADRhY2NvdW50X2Jhc2ljBBxhZGRyZXNzWIEPBKQgUmV0dXJucyBwYWxsZXRfZXZtOjpBY2NvdW50cyBieSBhZGRyZXNzLgAkZ2FzX3ByaWNlAGAElCBSZXR1cm5zIEZpeGVkR2FzUHJpY2U6Om1pbl9nYXNfcHJpY2UAPGFjY291bnRfY29kZV9hdAQcYWRkcmVzc1gUBPwgRm9yIGEgZ2l2ZW4gYWNjb3VudCBhZGRyZXNzLCByZXR1cm5zIHBhbGxldF9ldm06OkFjY291bnRDb2Rlcy4AGGF1dGhvcgBYBPAgUmV0dXJucyB0aGUgY29udmVydGVkIEZpbmRBdXRob3I6OmZpbmRfYXV0aG9yIGF1dGhvcml0eSBpZC4AKHN0b3JhZ2VfYXQIHGFkZHJlc3NYFGluZGV4YCwEMQEgRm9yIGEgZ2l2ZW4gYWNjb3VudCBhZGRyZXNzIGFuZCBpbmRleCwgcmV0dXJucyBwYWxsZXRfZXZtOjpBY2NvdW50U3RvcmFnZXMuABBjYWxsLBBmcm9tWAh0b1gQZGF0YRQUdmFsdWVgJGdhc19saW1pdGA8bWF4X2ZlZV9wZXJfZ2Fz5QNgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz5QMUbm9uY2XlAyBlc3RpbWF0ZUQsYWNjZXNzX2xpc3SFD0hhdXRob3JpemF0aW9uX2xpc3SJD40PAAAYY3JlYXRlKBBmcm9tWBBkYXRhFBR2YWx1ZWAkZ2FzX2xpbWl0YDxtYXhfZmVlX3Blcl9nYXPlA2BtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXPlAxRub25jZeUDIGVzdGltYXRlRCxhY2Nlc3NfbGlzdIUPSGF1dGhvcml6YXRpb25fbGlzdIkPoQ8AADRjdXJyZW50X2Jsb2NrAKkPBGggUmV0dXJuIHRoZSBjdXJyZW50IGJsb2NrLgBAY3VycmVudF9yZWNlaXB0cwCtDwRwIFJldHVybiB0aGUgY3VycmVudCByZWNlaXB0LgBwY3VycmVudF90cmFuc2FjdGlvbl9zdGF0dXNlcwCxDwScIFJldHVybiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBzdGF0dXMuACxjdXJyZW50X2FsbAC1DwAAQGV4dHJpbnNpY19maWx0ZXIEDHh0c0UJ4QwENQEgUmVjZWl2ZXMgYSBgVmVjPE9wYXF1ZUV4dHJpbnNpYz5gIGFuZCBmaWx0ZXJzIGFsbCB0aGUgZXRoZXJldW0gdHJhbnNhY3Rpb25zLgAoZWxhc3RpY2l0eQBhAwSIIFJldHVybiB0aGUgZWxhc3RpY2l0eSBtdWx0aXBsaWVyLgBwZ2FzX2xpbWl0X211bHRpcGxpZXJfc3VwcG9ydABwCHUBIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIGdhcyBsaW1pdCBtdWx0aXBsaWVyIGZvciBub24tdHJhbnNhY3Rpb25hbCBjYWxscyAoZXRoX2NhbGwvZXN0aW1hdGVHYXMpOCBpcyBzdXBwb3J0ZWQuADRwZW5kaW5nX2Jsb2NrBAx4dHNFCbkPBGggUmV0dXJuIHRoZSBwZW5kaW5nIGJsb2NrLgBgaW5pdGlhbGl6ZV9wZW5kaW5nX2Jsb2NrBBhoZWFkZXKRBHAUeCBJbml0aWFsaXplIHRoZSBwZW5kaW5nIGJsb2NrLjUBIFRoZSBiZWhhdmlvciBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHJ1bnRpbWUgYXBpIENvcmVfaW5pdGlhbGl6ZV9ibG9jayBidXRcIGZvciBhICJwZW5kaW5nIiBibG9jay5hASBJZiB5b3VyIHByb2plY3QgZG9uJ3QgbmVlZCB0byBoYXZlIGEgZGlmZmVyZW50IGJlaGF2aW9yIHRvIGluaXRpYWxpemUgInBlbmRpbmciIGJsb2NrcyzgIHlvdSBjYW4gY29weSB5b3VyIENvcmVfaW5pdGlhbGl6ZV9ibG9jayBpbXBsZW1lbnRhdGlvbi4ABMAgQVBJIG5lY2Vzc2FyeSBmb3IgRXRoZXJldW0tY29tcGF0aWJpbGl0eSBsYXllci4YAHBDb252ZXJ0VHJhbnNhY3Rpb25SdW50aW1lQXBpBExjb252ZXJ0X3RyYW5zYWN0aW9uBCx0cmFuc2FjdGlvbgEENQkAAAAIADhFdm1BY2NvdW50c0FwaQwsZXZtX2FkZHJlc3MEKGFjY291bnRfaWQAWATAIGdldCB0aGUgRVZNIGFkZHJlc3MgZnJvbSB0aGUgc3Vic3RyYXRlIGFkZHJlc3MuAEBib3VuZF9hY2NvdW50X2lkBCxldm1fYWRkcmVzc1jNAQRVASBSZXR1cm4gdGhlIFN1YnN0cmF0ZSBhZGRyZXNzIGJvdW5kIHRvIHRoZSBFVk0gYWNjb3VudC4gSWYgbm90IGJvdW5kLCByZXR1cm5zIGBOb25lYC4AKGFjY291bnRfaWQELGV2bV9hZGRyZXNzWAAIwCBHZXQgdGhlIFN1YnN0cmF0ZSBhZGRyZXNzIGZyb20gdGhlIEVWTSBhZGRyZXNzLiUBIFJldHVybnMgdGhlIHRydW5jYXRlZCB2ZXJzaW9uIG9mIHRoZSBhZGRyZXNzIGlmIHRoZSBhZGRyZXNzIHdhc24ndCBiaW5kLgAEqCBUaGUgQVBJIHRvIHF1ZXJ5IEVWTSBhY2NvdW50IGNvbnZlcnNpb25zLgQAJER1c3RlckFwaQQ4aXNfd2hpdGVsaXN0ZWQEHGFjY291bnQARAj0IENoZWNrIGlmIGFuIGFjY291bnQgaXMgd2hpdGVsaXN0ZWQgKHByb3RlY3RlZCBmcm9tIGR1c3RpbmcpLvQgUmV0dXJucyB0cnVlIGlmIHRoZSBhY2NvdW50IGlzIHdoaXRlbGlzdGVkLCBmYWxzZSBvdGhlcndpc2UuAASMIFJ1bnRpbWUgQVBJIGZvciB0aGUgZHVzdGVyIHBhbGxldC4EADxFcmMyME1hcHBpbmdBcGkINGFzc2V0X2FkZHJlc3MEIGFzc2V0X2lkKFgEiCBHZXQgdGhlIEVWTSBhZGRyZXNzIG9mIHRoZSBhc3NldC4AQGFkZHJlc3NfdG9fYXNzZXQEHGFkZHJlc3NYdAQ1ASBHZXQgdGhlIGFzc2V0IGlkIGNvcnJlc3BvbmRpbmcgdG8gRVZNIGFkZHJlc3MuIElmIG5vdCBmb3VuZCwgcmV0dXJucyBgTm9uZWAuAATYIFRoZSBBUEkgdG8gcXVlcnkgQXNzZXRJZCA8LT4gRVZNIGFkZHJlc3MgY29udmVyc2lvbnMuBAA0WGNtUGF5bWVudEFwaRB8cXVlcnlfYWNjZXB0YWJsZV9wYXltZW50X2Fzc2V0cwQseGNtX3ZlcnNpb24ovQ8UtCBSZXR1cm5zIGEgbGlzdCBvZiBhY2NlcHRhYmxlIHBheW1lbnQgYXNzZXRzLgAwICMgQXJndW1lbnRzAGggKiBgeGNtX3ZlcnNpb25gOiBWZXJzaW9uLgBAcXVlcnlfeGNtX3dlaWdodAQcbWVzc2FnZfkEyQ8UqCBSZXR1cm5zIGEgd2VpZ2h0IG5lZWRlZCB0byBleGVjdXRlIGEgWENNLgAwICMgQXJndW1lbnRzAHQgKiBgbWVzc2FnZWA6IGBWZXJzaW9uZWRYY21gLgBkcXVlcnlfd2VpZ2h0X3RvX2Fzc2V0X2ZlZQgYd2VpZ2h05BRhc3NldGUGzQ8Y6CBDb252ZXJ0cyBhIHdlaWdodCBpbnRvIGEgZmVlIGZvciB0aGUgc3BlY2lmaWVkIGBBc3NldElkYC4AMCAjIEFyZ3VtZW50cwCIICogYHdlaWdodGA6IGNvbnZlcnRpYmxlIGBXZWlnaHRgLnwgKiBgYXNzZXRgOiBgVmVyc2lvbmVkQXNzZXRJZGAuAExxdWVyeV9kZWxpdmVyeV9mZWVzCCxkZXN0aW5hdGlvbq0EHG1lc3NhZ2X5BNEPIB0BIEdldCBkZWxpdmVyeSBmZWVzIGZvciBzZW5kaW5nIGEgc3BlY2lmaWMgYG1lc3NhZ2VgIHRvIGEgYGRlc3RpbmF0aW9uYC70IFRoZXNlIGFsd2F5cyBjb21lIGluIGEgc3BlY2lmaWMgYXNzZXQsIGRlZmluZWQgYnkgdGhlIGNoYWluLgAwICMgQXJndW1lbnRzgQEgKiBgbWVzc2FnZWA6IFRoZSBtZXNzYWdlIHRoYXQnbGwgYmUgc2VudCwgbmVjZXNzYXJ5IGJlY2F1c2UgbW9zdCBkZWxpdmVyeSBmZWVzIGFyZSBiYXNlZCBvbiB0aGVcICAgc2l6ZSBvZiB0aGUgbWVzc2FnZS5hASAqIGBkZXN0aW5hdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0byBzZW5kIHRoZSBtZXNzYWdlIHRvLiBEaWZmZXJlbnQgZGVzdGluYXRpb25zIG1heSB1c2XAICAgZGlmZmVyZW50IHNlbmRlcnMgdGhhdCBjaGFyZ2UgZGlmZmVyZW50IGZlZXMuACxwIEEgdHJhaXQgb2YgWENNIHBheW1lbnQgQVBJLgCoIEFQSSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciBvYnRhaW5pbmc6AMQgKiB0aGUgd2VpZ2h0IHJlcXVpcmVkIHRvIGV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UsBQEgKiBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBgQXNzZXRJZGBzIGZvciBtZXNzYWdlIGV4ZWN1dGlvbiBwYXltZW50LAEBICogdGhlIGNvc3Qgb2YgdGhlIHdlaWdodCBpbiB0aGUgc3BlY2lmaWVkIGFjY2VwdGFibGUgYEFzc2V0SWRgLqAgKiB0aGUgZmVlcyBmb3IgYW4gWENNIG1lc3NhZ2UgZGVsaXZlcnkuAPAgVG8gZGV0ZXJtaW5lIHRoZSBleGVjdXRpb24gd2VpZ2h0IG9mIHRoZSBjYWxscyByZXF1aXJlZCBmb3J1ASBbYHhjbTo6bGF0ZXN0OjpJbnN0cnVjdGlvbjo6VHJhbnNhY3RgXSBpbnN0cnVjdGlvbiwgYFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGlgIGNhbiBiZSB1c2VkLgQAYEF1cmFVbmluY2x1ZGVkU2VnbWVudEFwaQQ4Y2FuX2J1aWxkX3Vwb24INGluY2x1ZGVkX2hhc2gsEHNsb3S1DkQoOQEgV2hldGhlciBpdCBpcyBsZWdhbCB0byBleHRlbmQgdGhlIGNoYWluLCBhc3N1bWluZyB0aGUgZ2l2ZW4gYmxvY2sgaXMgdGhlIG1vc3Q1ASByZWNlbnRseSBpbmNsdWRlZCBvbmUgYXMtb2YgdGhlIHJlbGF5IHBhcmVudCB0aGF0IHdpbGwgYmUgYnVpbHQgYWdhaW5zdCwgYW5kcCB0aGUgZ2l2ZW4gcmVsYXkgY2hhaW4gc2xvdC4AUQEgVGhpcyBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2dpYyB0aGUgcnVudGltZSB1c2VzIHdoZW4gdmFsaWRhdGluZyBibG9ja3MgdG84IGF2b2lkIGlzc3Vlcy4AYQEgV2hlbiB0aGUgdW5pbmNsdWRlZCBzZWdtZW50IGlzIGVtcHR5LCBpLmUuIGBpbmNsdWRlZF9oYXNoID09IGF0YCwgd2hlcmUgYXQgaXMgdGhlIGJsb2NrYQEgd2hvc2Ugc3RhdGUgd2UgYXJlIHF1ZXJ5aW5nIGFnYWluc3QsIHRoaXMgbXVzdCBhbHdheXMgcmV0dXJuIGB0cnVlYCBhcyBsb25nIGFzIHRoZSBzbG90vCBpcyBtb3JlIHJlY2VudCB0aGFuIHRoZSBpbmNsdWRlZCBibG9jayBpdHNlbGYuADQ1ASBUaGlzIHJ1bnRpbWUgQVBJIGlzIHVzZWQgdG8gaW5mb3JtIHBvdGVudGlhbCBibG9jayBhdXRob3JzIHdoZXRoZXIgdGhleSB3aWxsJQEgaGF2ZSB0aGUgcmlnaHQgdG8gYXV0aG9yIGF0IGEgc2xvdCwgYXNzdW1pbmcgdGhleSBoYXZlIGNsYWltZWQgdGhlIHNsb3QuAHUBIEluIHBhcnRpY3VsYXIsIHRoaXMgQVBJIGFsbG93cyBBdXJhLWJhc2VkIHBhcmFjaGFpbnMgdG8gcmVndWxhdGUgdGhlaXIgInVuaW5jbHVkZWQgc2VnbWVudCIsbQEgd2hpY2ggaXMgdGhlIHNlY3Rpb24gb2YgdGhlIGhlYWQgb2YgdGhlIGNoYWluIHdoaWNoIGhhcyBub3QgeWV0IGJlZW4gbWFkZSBhdmFpbGFibGUgaW4gdGhlNCByZWxheSBjaGFpbi4AYQEgV2hlbiB0aGUgdW5pbmNsdWRlZCBzZWdtZW50IGlzIHNob3J0LCBBdXJhIGNoYWlucyB3aWxsIGFsbG93IGF1dGhvcnMgdG8gY3JlYXRlIG11bHRpcGxlXQEgYmxvY2tzIHBlciBzbG90IGluIG9yZGVyIHRvIGJ1aWxkIGEgYmFja2xvZy4gV2hlbiBpdCBpcyBzYXR1cmF0ZWQsIHRoaXMgQVBJIHdpbGwgbGltaXSoIHRoZSBhbW91bnQgb2YgYmxvY2tzIHRoYXQgY2FuIGJlIGNyZWF0ZWQuACQgQ2hhbmdlczqRASAtIFZlcnNpb24gMjogVXBkYXRlIHRvIGBjYW5fYnVpbGRfdXBvbmAgdG8gdGFrZSBhIHJlbGF5IGNoYWluIGBTbG90YCBpbnN0ZWFkIG9mIGEgcGFyYWNoYWluIGBTbG90YC4IAFBSZWxheVBhcmVudE9mZnNldEFwaQRMcmVsYXlfcGFyZW50X29mZnNldAAoBPQgRmV0Y2ggdGhlIHNsb3Qgb2Zmc2V0IHRoYXQgaXMgZXhwZWN0ZWQgZnJvbSB0aGUgcmVsYXkgY2hhaW4uABAFASBBUEkgdG8gdGVsbCB0aGUgbm9kZSBzaWRlIGhvdyB0aGUgcmVsYXkgcGFyZW50IHNob3VsZCBiZSBjaG9zZW4uAGkBIEEgbGFyZ2VyIG9mZnNldCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVsYXkgcGFyZW50IHNob3VsZCBub3QgYmUgdGhlIHRpcCBvZiB0aGUgcmVsYXkgY2hhaW4sMQEgYnV0IGBOYCBibG9ja3MgYmVoaW5kIHRoZSB0aXAuIFRoaXMgb2Zmc2V0IGlzIHRoZW4gZW5mb3JjZWQgYnkgdGhlIHJ1bnRpbWUuBAAkRHJ5UnVuQXBpCDBkcnlfcnVuX2NhbGwMGG9yaWdpboQQY2FsbAxMcmVzdWx0X3hjbXNfdmVyc2lvbijVDwREIERyeSBydW4gY2FsbCBWMi4ALGRyeV9ydW5feGNtCDxvcmlnaW5fbG9jYXRpb26tBAx4Y201BvUPBFAgRHJ5IHJ1biBYQ00gcHJvZ3JhbQAksQEgQVBJIGZvciBkcnktcnVubmluZyBleHRyaW5zaWNzIGFuZCBYQ00gcHJvZ3JhbXMgdG8gZ2V0IHRoZSBwcm9ncmFtcyB0aGF0IG5lZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSBmZWVzIEFQSS4AgQEgQWxsIGNhbGxzIHJldHVybiBhIHZlY3RvciBvZiB0dXBsZXMgKGxvY2F0aW9uLCB4Y20pIHdoZXJlIGVhY2ggInhjbSIgaXMgZXhlY3V0ZWQgaW4gImxvY2F0aW9uIi7kIElmIHRoZXJlJ3MgbG9jYWwgZXhlY3V0aW9uLCB0aGUgbG9jYXRpb24gd2lsbCBiZSAiSGVyZSIuHQEgVGhpcyB2ZWN0b3IgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGJvdGggZXhlY3V0aW9uIGFuZCBkZWxpdmVyeSBmZWVzLgCZASBDYWxscyBvciBYQ01zIG1pZ2h0IGZhaWwgd2hlbiBleGVjdXRlZCwgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHJlc3VsdCBvZiB0aGVzZSBjYWxscyB3aWxsIGJlIGFuIGBFcnJgLmUBIEluIHRob3NlIGNhc2VzLCB0aGVyZSBtaWdodCBzdGlsbCBiZSBhIHZhbGlkIHJlc3VsdCwgd2l0aCB0aGUgZXhlY3V0aW9uIGVycm9yIGluc2lkZSBpdC5lASBUaGUgb25seSByZWFzb25zIHdoeSB0aGVzZSBjYWxscyBtaWdodCByZXR1cm4gYW4gZXJyb3IgYXJlIGxpc3RlZCBpbiB0aGUgW2BFcnJvcmBdIGVudW0uCABQTG9jYXRpb25Ub0FjY291bnRBcGkEQGNvbnZlcnRfbG9jYXRpb24EIGxvY2F0aW9urQT9DwSQIENvbnZlcnRzIGBMb2NhdGlvbmAgdG8gYEFjY291bnRJZGAuAAQNASBBUEkgZm9yIHVzZWZ1bCBjb252ZXJzaW9ucyBiZXR3ZWVuIFhDTSBgTG9jYXRpb25gIGFuZCBgQWNjb3VudElkYC4EAExDaGFpbmxpbmtBZGFwdGVyQXBpCFRlbmNvZGVfb3JhY2xlX2FkZHJlc3MQKGFzc2V0X2lkX2EoKGFzc2V0X2lkX2IoGHBlcmlvZCEDGHNvdXJjZSEBWAAAVGRlY29kZV9vcmFjbGVfYWRkcmVzcwQ4b3JhY2xlX2FkZHJlc3NYBRAAAASoIFRoZSBBUEkgdG8gcXVlcnkgRVZNIGFjY291bnQgY29udmVyc2lvbnMuBABEQWF2ZVRyYWRlRXhlY3V0b3IQFHBhaXJzAK0CAAA8bGlxdWlkaXR5X2RlcHRoCCBhc3NldF9pbigkYXNzZXRfb3V0KPUBAAAQcG9vbAgccmVzZXJ2ZSgYYXRva2VuKA0QAAAUcG9vbHMAERAAAAAEADhHZW5lc2lzQnVpbGRlcgwsYnVpbGRfc3RhdGUEEGpzb24UFRAoZQEgQnVpbGQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIGEgSlNPTiBibG9iIG5vdCB1c2luZyBhbnkgZGVmYXVsdHMgYW5kIHN0b3JlIGl0IGluIHRoZSQgc3RvcmFnZS4AKQEgSW4gdGhlIGNhc2Ugb2YgYSBGUkFNRS1iYXNlZCBydW50aW1lLCB0aGlzIGZ1bmN0aW9uIGRlc2VyaWFsaXplcyB0aGUgZnVsbFUBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBibG9iIGFuZCBwdXRzIGl0IGludG8gdGhlIHN0b3JhZ2UuIElmIHRoZVUBIHByb3ZpZGVkIEpTT04gYmxvYiBpcyBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSBvciB0aGUgZGVzZXJpYWxpemF0aW9uIGZhaWxzLCBhbiBlcnJvcjQgaXMgcmV0dXJuZWQuAF0BIFBsZWFzZSBub3RlIHRoYXQgcHJvdmlkZWQgSlNPTiBibG9iIG11c3QgY29udGFpbiBhbGwgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmaWVsZHMsIG5vXCBkZWZhdWx0cyB3aWxsIGJlIHVzZWQuAChnZXRfcHJlc2V0BAhpZBkQkQY4YQEgUmV0dXJucyBhIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVpbHQtaW4gYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBpZGVudGlmaWVkIGJ5GCBgaWRgLgBVASBJZiBgaWRgIGlzIGBOb25lYCB0aGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlZmF1bHRJASBgUnVudGltZUdlbmVzaXNDb25maWdgIHN0cnVjdCBvZiB0aGUgcnVudGltZS4gSW1wbGVtZW50YXRpb24gbXVzdCBwcm92aWRlIGRlZmF1bHRgIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AuACEBIE90aGVyd2lzZSBmdW5jdGlvbiByZXR1cm5zIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVpbHQtaW4sIG5hbWVkUQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBwcmVzZXQgaWRlbnRpZmllZCBieSBgaWRgLCBvciBgTm9uZWAgaWYgc3VjaCBwcmVzZXQgZG9lcyBub3RhASBleGlzdC4gUmV0dXJuZWQgYFZlYzx1OD5gIGNvbnRhaW5zIGJ5dGVzIG9mIEpTT04gYmxvYiAocGF0Y2gpIHdoaWNoIGNvbXByaXNlcyBhIGxpc3Qgb2ZNASAocG90ZW50aWFsbHkgbmVzdGVkKSBrZXktdmFsdWUgcGFpcnMgdGhhdCBhcmUgaW50ZW5kZWQgZm9yIGN1c3RvbWl6aW5nIHRoZSBkZWZhdWx0ZQEgcnVudGltZSBnZW5lc2lzIGNvbmZpZy4gVGhlIHBhdGNoIHNoYWxsIGJlIG1lcmdlZCAocmZjNzM4Nikgd2l0aCB0aGUgSlNPTiByZXByZXNlbnRhdGlvbmEBIG9mIHRoZSBkZWZhdWx0IGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBnZW5lc2lzIGNvbmZpZyB0aGF0IGNhboQgYmUgdXNlZCBpbiBgYnVpbGRfc3RhdGVgIG1ldGhvZC4AMHByZXNldF9uYW1lcwAdEBBRASBSZXR1cm5zIGEgbGlzdCBvZiBpZGVudGlmaWVycyBmb3IgYXZhaWxhYmxlIGJ1aWx0aW4gYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBwcmVzZXRzLgBhASBUaGUgcHJlc2V0cyBmcm9tIHRoZSBsaXN0IGNhbiBiZSBxdWVyaWVkIHdpdGggW2BHZW5lc2lzQnVpbGRlcjo6Z2V0X3ByZXNldGBdIG1ldGhvZC4gSWYBASBubyBuYW1lZCBwcmVzZXRzIGFyZSBwcm92aWRlZCBieSB0aGUgcnVudGltZSB0aGUgbGlzdCBpcyBlbXB0eS4ABPAgQVBJIHRvIGludGVyYWN0IHdpdGggYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmb3IgdGhlIHJ1bnRpbWUEAAwNByEQAA==";
|
|
2
|
+
|
|
3
|
+
export { binMeta as default };
|