@d9-network/spec 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"d9_metadata-KHMVPHO2-CTHNW2Z9.cjs","names":[],"sources":["../../../node_modules/.bun/@polkadot-api+descriptors@file+packages+spec+.papi+descriptors+d79ebbef3c6d76c9/node_modules/@polkadot-api/descriptors/dist/d9_metadata-KHMVPHO2.mjs"],"sourcesContent":["// .papi/descriptors/src/d9_metadata.ts\nvar binMeta = \"bWV0YQ7xAwAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEEBFMAAAQAFAEYVmVjPFQ+AAAEEERzcF9jb25zZW5zdXNfYXVyYRxzcjI1NTE5LGFwcF9zcjI1NTE5GFB1YmxpYwAABAAIATxzcjI1NTE5OjpQdWJsaWMAAAgMHHNwX2NvcmUcc3IyNTUxORhQdWJsaWMAAAQADAEgW3U4OyAzMl0AAAwAAAMgAAAAEAAQAAAFAwAUAAACBAAYCEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAcAQx1NjQAABwAAAUGACAAAAUFACQMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAwBIFt1ODsgMzJdAAAoDEhwYWxsZXRfZDlfcmVmZXJyYWwYcGFsbGV0EENhbGwIBFQABEkAAQRUY2hhbmdlX3JlZmVycmFsX2RlcHRoBAEkbmV3X2RlcHRoIAEMdTMyAAAABCUBQ29udGFpbnMgb25lIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSB0aGF0IGNhbiBiZSBjYWxsZWQgYnkgYW4gZXh0cmluc2ljLiwMSHBhbGxldF9kOV9yZWZlcnJhbBhwYWxsZXQURXZlbnQIBFQABEkAAQx4TmV3UmVmZXJyYWxSZWxhdGlvbnNoaXBDcmVhdGVkCAAkATBUOjpBY2NvdW50SWQAACQBMFQ6OkFjY291bnRJZAAAAExOZXdSZWZlcnJhbERlcHRoU2V0BAAgAQx1MzIAAQBMTmV3RGVmYXVsdFBhcmVudFNldAQAJAEwVDo6QWNjb3VudElkAAIABKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQkwDEhwYWxsZXRfZDlfcmVmZXJyYWwYcGFsbGV0FEVycm9yCARUAARJAAEEXE5vUmVmZXJyYWxBY2NvdW50UmVjb3JkAAAABLUBCgkJCUN1c3RvbSBbZGlzcGF0Y2ggZXJyb3JzXShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykKCQkJb2YgdGhpcyBwYWxsZXQuCgkJCTQEGE9wdGlvbgQEVAEkAQgQTm9uZQAAABBTb21lBAAkAAABAAA4DEhwYWxsZXRfZDlfdHJlYXN1cnkYcGFsbGV0EENhbGwIBFQABEkAAQQ0bmV3X3RyZWFzdXJlcgQBNG5ld190cmVhc3VyZXIkATBUOjpBY2NvdW50SWQAAAAEJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMuPAxIcGFsbGV0X2Q5X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABBDBOZXdUcmVhc3VyZXIEACQBMFQ6OkFjY291bnRJZAAAAAShAQoJCQlUaGUgW2V2ZW50XShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykgZW1pdHRlZAoJCQlieSB0aGlzIHBhbGxldC4KCQkJQAxIcGFsbGV0X2Q5X3RyZWFzdXJ5GHBhbGxldBRFcnJvcggEVAAESQABCFhPbmx5VHJlYXN1cmVyQ2FuRG9UaGlzAAAAOE5vVHJlYXN1cmVyU2V0AAEABHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC5EDFRwYWxsZXRfZDlfbm9kZV92b3RpbmcUdHlwZXM4Vm90aW5nSW50ZXJlc3QAAAgBFHRvdGFsSAEMdTY0AAEkZGVsZWdhdGVkSAEMdTY0AABIAAAGHABMAAAECCQkAFAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEkBFMAAAQAVAEYVmVjPFQ+AABUAAACJABYDFRwYWxsZXRfZDlfbm9kZV92b3RpbmcUdHlwZXNIVmFsaWRhdG9yVm90ZVN0YXRzBARUAAAQAShhY2NvdW50X2lkJAEwVDo6QWNjb3VudElkAAEsdG90YWxfdm90ZXMcAQx1NjQAAShzZWxmX3ZvdGVzHAEMdTY0AAE8ZGVsZWdhdGVkX3ZvdGVzHAEMdTY0AABcDFRwYWxsZXRfZDlfbm9kZV92b3RpbmcUdHlwZXNITm9kZU1ldGFkYXRhU3RydWN0AAAMARBuYW1lYAF0Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MTI4Pj4AATxzaGFyaW5nX3BlcmNlbnQQAQh1OAABcGluZGV4X29mX2xhc3RfcGVyY2VudF9jaGFuZ2UgAQx1MzIAAGAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAZAEYVmVjPFQ+AABkAAACEABoDFRwYWxsZXRfZDlfbm9kZV92b3RpbmcYcGFsbGV0EENhbGwEBFQAASRAc3VibWl0X2NhbmRpZGFjeQQBSGNhbmRpZGF0ZV9tZXRhZGF0YVwBSE5vZGVNZXRhZGF0YVN0cnVjdAAAAExhZGRfdm90aW5nX2ludGVyZXN0EAFEYmVuZWZpY2lhcnlfdm90ZXIkATBUOjpBY2NvdW50SWQAASRtYWluX3Bvb2wkATBUOjpBY2NvdW50SWQAAThhbW91bnRfdG9fYnVybmwBMEJhbGFuY2VPZjxUPgABNGJ1cm5fY29udHJhY3QkATBUOjpBY2NvdW50SWQAAQA4ZGVsZWdhdGVfdm90ZXMEASxkZWxlZ2F0aW9uc3ABcFZlYzxWYWxpZGF0b3JEZWxlZ2F0aW9uczxUPj4AAgBAcmVtb3ZlX2NhbmRpZGFjeQADAHx0cnlfcmVtb3ZlX3ZvdGVzX2Zyb21fY2FuZGlkYXRlCAEkY2FuZGlkYXRlJAEwVDo6QWNjb3VudElkAAEUdm90ZXMcAQx1NjQABABIcmVkaXN0cmlidXRlX3ZvdGVzCAEQZnJvbSQBMFQ6OkFjY291bnRJZAABCHRvJAEwVDo6QWNjb3VudElkAAUAVGNoYW5nZV9jYW5kaWRhdGVfbmFtZQQBEG5hbWVgAXRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjwxMjg+PgAGAIBjaGFuZ2VfY2FuZGlkYXRlX3N1cHBvcnRlcl9zaGFyZQQBPHNoYXJpbmdfcGVyY2VudBABCHU4AAcAQHNldF9wYWxsZXRfYWRtaW4EASRuZXdfYWRtaW4kATBUOjpBY2NvdW50SWQACAAEJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMubAAABQcAcAAAAnQAdAxUcGFsbGV0X2Q5X25vZGVfdm90aW5nFHR5cGVzUFZhbGlkYXRvckRlbGVnYXRpb25zBARUAAAIASRjYW5kaWRhdGUkATBUOjpBY2NvdW50SWQAARR2b3Rlc0gBDHU2NAAAeAxUcGFsbGV0X2Q5X25vZGVfdm90aW5nGHBhbGxldBRFdmVudAQEVAABDEhDYW5kaWRhY3lTdWJtaXR0ZWQEACQBMFQ6OkFjY291bnRJZAAAAEBWb3Rlc0RlbGVnYXRlZEJ5BAAkATBUOjpBY2NvdW50SWQAAQBAQ2FuZGlkYWN5UmVtb3ZlZAQAJAEwVDo6QWNjb3VudElkAAIABKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQl8DFRwYWxsZXRfZDlfbm9kZV92b3RpbmcYcGFsbGV0FEVycm9yBARUAAFAOEhleERlY29kZUVycm9yAAAATEVtcHR5RGVsZWdhdGlvbkxpc3QAAQBYRGVsZWdhdGlvbkxpc3RUb29MYXJnZQACAHBEZWxlZ2F0b3JIYXNOb1ZvdGluZ0NhcGFjaXR5AAMAcERlbGVnYXRvckhhc05vQXZhaWxhYmxlVm90ZXMABAB0RGVsZWdhdG9ySGFzSW5zdWZmaWNpZW50Vm90ZXMABQCgQXR0ZW1wdGluZ1RvUmVtb3ZlTW9yZVZvdGVzVGhhbkRlbGVnYXRlZAAGAFRDYW5kaWRhdGVEb2VzTm90RXhpc3QABwBYQ2FuZGlkYXRlQWxyZWFkeUV4aXN0cwAIAGBFcnJvckdldHRpbmdOb2RlTWV0YWRhdGEACQCEVm90ZXJEaWRudERlbGVnYXRlVG9UaGlzQ2FuZGlkYXRlAAoASE5vdEFjdGl2ZVZhbGlkYXRvcgALAGxBdE1heGltdW1OdW1iZXJPZkNhbmRpZGF0ZXMADAB4QnVybkFtb3VudE11c3RCZUdyZWF0ZXJUaGFuMTAwAA0AYFN1cHBvcnRlclNoYXJlT3V0T2ZSYW5nZQAOAKxDdXJyZW50VmFsaWRhdG9yQ2FuTm90Q2hhbmdlU2hhcmVQZXJjZW50YWdlAA8ABLUBCgkJCUN1c3RvbSBbZGlzcGF0Y2ggZXJyb3JzXShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykKCQkJb2YgdGhpcyBwYWxsZXQuCgkJCYAMWHBhbGxldF9kOV9ub2RlX3Jld2FyZHMYcGFsbGV0EENhbGwEBFQAAQhAc2V0X3BhbGxldF9hZG1pbgQBJG5ld19hZG1pbiQBMFQ6OkFjY291bnRJZAAAAGBzZXRfbm9kZV9yZXdhcmRfY29udHJhY3QEATBuZXdfY29udHJhY3QkATBUOjpBY2NvdW50SWQAAQAEJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMuhAxYcGFsbGV0X2Q5X25vZGVfcmV3YXJkcxhwYWxsZXQURXZlbnQEBFQAAQhMRXJyb3JJc3N1aW5nUmV3YXJkcwAAADRDb250cmFjdEVycm9yBACIATREaXNwYXRjaEVycm9yAAEABKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQmICChzcF9ydW50aW1lNERpc3BhdGNoRXJyb3IAATQUT3RoZXIAAAAwQ2Fubm90TG9va3VwAAEAJEJhZE9yaWdpbgACABhNb2R1bGUEAIwBLE1vZHVsZUVycm9yAAMARENvbnN1bWVyUmVtYWluaW5nAAQALE5vUHJvdmlkZXJzAAUAQFRvb01hbnlDb25zdW1lcnMABgAUVG9rZW4EAJQBKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQAmAE8QXJpdGhtZXRpY0Vycm9yAAgANFRyYW5zYWN0aW9uYWwEAJwBSFRyYW5zYWN0aW9uYWxFcnJvcgAJACRFeGhhdXN0ZWQACgAoQ29ycnVwdGlvbgALACxVbmF2YWlsYWJsZQAMAACMCChzcF9ydW50aW1lLE1vZHVsZUVycm9yAAAIARRpbmRleBABCHU4AAEUZXJyb3KQAYxbdTg7IE1BWF9NT0RVTEVfRVJST1JfRU5DT0RFRF9TSVpFXQAAkAAAAwQAAAAQAJQIKHNwX3J1bnRpbWUoVG9rZW5FcnJvcgABJEBGdW5kc1VuYXZhaWxhYmxlAAAAME9ubHlQcm92aWRlcgABADBCZWxvd01pbmltdW0AAgAwQ2Fubm90Q3JlYXRlAAMAMFVua25vd25Bc3NldAAEABhGcm96ZW4ABQAsVW5zdXBwb3J0ZWQABgBAQ2Fubm90Q3JlYXRlSG9sZAAHADROb3RFeHBlbmRhYmxlAAgAAJgINHNwX2FyaXRobWV0aWM8QXJpdGhtZXRpY0Vycm9yAAEMJFVuZGVyZmxvdwAAACBPdmVyZmxvdwABADhEaXZpc2lvbkJ5WmVybwACAACcCChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAACgCDRmcmFtZV9zdXBwb3J0IFBhbGxldElkAAAEAKQBHFt1ODsgOF0AAKQAAAMIAAAAEACoDFhwYWxsZXRfZDlfbm9kZV9yZXdhcmRzGHBhbGxldBRFcnJvcgQEVAABDEBSZXN0cmljdGVkQWNjZXNzAAAAYE5vZGVSZXdhcmRDb250cmFjdE5vdFNldAABAHxFcnJvclVwZGF0aW5nTm9kZVJld2FyZENvbnRyYWN0AAIABLUBCgkJCUN1c3RvbSBbZGlzcGF0Y2ggZXJyb3JzXShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykKCQkJb2YgdGhpcyBwYWxsZXQuCgkJCawMSHBhbGxldF9kOV9iYWxhbmNlcxR0eXBlcyxBY2NvdW50RGF0YQQcQmFsYW5jZQFsABABEGZyZWVsARxCYWxhbmNlAAEgcmVzZXJ2ZWRsARxCYWxhbmNlAAEYZnJvemVubAEcQmFsYW5jZQABFGZsYWdzsAEoRXh0cmFGbGFncwAAsAxIcGFsbGV0X2Q5X2JhbGFuY2VzFHR5cGVzKEV4dHJhRmxhZ3MAAAQAbAEQdTEyOAAAtAxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAbgEUwAABADAARhWZWM8VD4AALgMSHBhbGxldF9kOV9iYWxhbmNlcxR0eXBlcyxCYWxhbmNlTG9jawQcQmFsYW5jZQFsAAwBCGlkpAE4TG9ja0lkZW50aWZpZXIAARhhbW91bnRsARxCYWxhbmNlAAEccmVhc29uc7wBHFJlYXNvbnMAALwMSHBhbGxldF9kOV9iYWxhbmNlcxR0eXBlcxxSZWFzb25zAAEMDEZlZQAAABBNaXNjAAEADEFsbAACAADAAAACuADEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQByARTAAAEANABGFZlYzxUPgAAyAxIcGFsbGV0X2Q5X2JhbGFuY2VzFHR5cGVzLFJlc2VydmVEYXRhCERSZXNlcnZlSWRlbnRpZmllcgHMHEJhbGFuY2UBbAAIAQhpZMwBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50bAEcQmFsYW5jZQAAzAAABAAA0AAAAsgA1AxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAdgEUwAABADcARhWZWM8VD4AANgMSHBhbGxldF9kOV9iYWxhbmNlcxR0eXBlcyBJZEFtb3VudAgISWQBzBxCYWxhbmNlAWwACAEIaWTMAQhJZAABGGFtb3VudGwBHEJhbGFuY2UAANwAAALYAOAMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHYBFMAAAQA3AEYVmVjPFQ+AADkDEhwYWxsZXRfZDlfYmFsYW5jZXMYcGFsbGV0EENhbGwIBFQABEkAASRQdHJhbnNmZXJfYWxsb3dfZGVhdGgIARBkZXN06AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZfQBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci5Yc2V0X2JhbGFuY2VfZGVwcmVjYXRlZAwBDHdob+gBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgbmV3X2ZyZWX0AShUOjpCYWxhbmNlAAEwb2xkX3Jlc2VydmVk9AEoVDo6QmFsYW5jZQABGFUBU2V0IHRoZSByZWd1bGFyIGJhbGFuY2Ugb2YgYSBnaXZlbiBhY2NvdW50OyBpdCBhbHNvIHRha2VzIGEgcmVzZXJ2ZWQgYmFsYW5jZSBidXQgdGhpc+xtdXN0IGJlIHRoZSBzYW1lIGFzIHRoZSBhY2NvdW50J3MgY3VycmVudCByZXNlcnZlZCBiYWxhbmNlLgCwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIGlzIGByb290YC4ACQFXQVJOSU5HOiBUaGlzIGNhbGwgaXMgREVQUkVDQVRFRCEgVXNlIGBmb3JjZV9zZXRfYmFsYW5jZWAgaW5zdGVhZC44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2XoAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRlc3ToAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVl9AEoVDo6QmFsYW5jZQACCGEBRXhhY3RseSBhcyBgdHJhbnNmZXJfYWxsb3dfZGVhdGhgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2UgYWNjb3VudERtYXkgYmUgc3BlY2lmaWVkLkx0cmFuc2Zlcl9rZWVwX2FsaXZlCAEQZGVzdOgBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWX0AShUOjpCYWxhbmNlAAMYWQFTYW1lIGFzIHRoZSBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gY2FsbCwgYnV0IHdpdGggYSBjaGVjayB0aGF0IHRoZSB0cmFuc2ZlciB3aWxsIG5vdGBraWxsIHRoZSBvcmlnaW4gYWNjb3VudC4A6Dk5JSBvZiB0aGUgdGltZSB5b3Ugd2FudCBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gaW5zdGVhZC4A8FtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXTogc3RydWN0LlBhbGxldC5odG1sI21ldGhvZC50cmFuc2ZlcjB0cmFuc2Zlcl9hbGwIARBkZXN06AFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShrZWVwX2FsaXZl+AEQYm9vbAAEPAUBVHJhbnNmZXIgdGhlIGVudGlyZSB0cmFuc2ZlcmFibGUgYmFsYW5jZSBmcm9tIHRoZSBjYWxsZXIgYWNjb3VudC4AWQFOT1RFOiBUaGlzIGZ1bmN0aW9uIG9ubHkgYXR0ZW1wdHMgdG8gdHJhbnNmZXIgX3RyYW5zZmVyYWJsZV8gYmFsYW5jZXMuIFRoaXMgbWVhbnMgdGhhdGEBYW55IGxvY2tlZCwgcmVzZXJ2ZWQsIG9yIGV4aXN0ZW50aWFsIGRlcG9zaXRzICh3aGVuIGBrZWVwX2FsaXZlYCBpcyBgdHJ1ZWApLCB3aWxsIG5vdCBiZV0BdHJhbnNmZXJyZWQgYnkgdGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVkIGFjY291bnQsRQF5b3UgbWlnaHQgbmVlZCB0byBwcmVwYXJlIHRoZSBhY2NvdW50IGJ5IHJlbW92aW5nIGFueSByZWZlcmVuY2UgY291bnRlcnMsIHN0b3JhZ2VAZGVwb3NpdHMsIGV0Yy4uLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBTaWduZWQuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIuWQEtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbE0BICBvZiB0aGUgZnVuZHMgdGhlIGFjY291bnQgaGFzLCBjYXVzaW5nIHRoZSBzZW5kZXIgYWNjb3VudCB0byBiZSBraWxsZWQgKGZhbHNlKSwgb3JZASAgdHJhbnNmZXIgZXZlcnl0aGluZyBleGNlcHQgYXQgbGVhc3QgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQsIHdoaWNoIHdpbGwgZ3VhcmFudGVlIHRvnCAga2VlcCB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUgKHRydWUpLjxmb3JjZV91bnJlc2VydmUIAQx3aG/oAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudGwBKFQ6OkJhbGFuY2UABQywVW5yZXNlcnZlIHNvbWUgYmFsYW5jZSBmcm9tIGEgdXNlciBieSBmb3JjZS4AbENhbiBvbmx5IGJlIGNhbGxlZCBieSBST09ULkB1cGdyYWRlX2FjY291bnRzBAEMd2hvVAFEVmVjPFQ6OkFjY291bnRJZD4ABiBwVXBncmFkZSBhIHNwZWNpZmllZCBhY2NvdW50LgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC6QLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdXBncmFkZWQuAFUBVGhpcyB3aWxsIHdhaXZlIHRoZSB0cmFuc2FjdGlvbiBmZWUgaWYgYXQgbGVhc3QgYWxsIGJ1dCAxMCUgb2YgdGhlIGFjY291bnRzIG5lZWRlZCB0b0EBYmUgdXBncmFkZWQuIChXZSBsZXQgc29tZSBub3QgaGF2ZSB0byBiZSB1cGdyYWRlZCBqdXN0IGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGVccG9zc2liaWxpbHR5IG9mIGNodXJuKS4gdHJhbnNmZXIIARBkZXN06AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZfQBKFQ6OkJhbGFuY2UABwwxAUFsaWFzIGZvciBgdHJhbnNmZXJfYWxsb3dfZGVhdGhgLCBwcm92aWRlZCBvbmx5IGZvciBuYW1lLXdpc2UgY29tcGF0aWJpbGl0eS4AAQFXQVJOSU5HOiBERVBSRUNBVEVEISBXaWxsIGJlIHJlbGVhc2VkIGluIGFwcHJveGltYXRlbHkgMyBtb250aHMuRGZvcmNlX3NldF9iYWxhbmNlCAEMd2hv6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZfQBKFQ6OkJhbGFuY2UACAysU2V0IHRoZSByZWd1bGFyIGJhbGFuY2Ugb2YgYSBnaXZlbiBhY2NvdW50LgCwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIGlzIGByb290YC4EJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMu6Awoc3BfcnVudGltZTBtdWx0aWFkZHJlc3MwTXVsdGlBZGRyZXNzCCRBY2NvdW50SWQBJDBBY2NvdW50SW5kZXgBzAEUCElkBAAkASRBY2NvdW50SWQAAAAUSW5kZXgEAOwBMEFjY291bnRJbmRleAABAAxSYXcEAGQBHFZlYzx1OD4AAgAkQWRkcmVzczMyBAAMASBbdTg7IDMyXQADACRBZGRyZXNzMjAEAPABIFt1ODsgMjBdAAQAAOwAAAbMAPAAAAMUAAAAEAD0AAAGbAD4AAAFAAD8DEhwYWxsZXRfZDlfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAFUHEVuZG93ZWQIARxhY2NvdW50JAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlbAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudCQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbSQBMFQ6OkFjY291bnRJZAABCHRvJAEwVDo6QWNjb3VudElkAAEYYW1vdW50bAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8kATBUOjpBY2NvdW50SWQAARBmcmVlbAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tJAEwVDo6QWNjb3VudElkAAEIdG8kATBUOjpBY2NvdW50SWQAARhhbW91bnRsAShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzAQEBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8kATBUOjpBY2NvdW50SWQAARhhbW91bnRsAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8kATBUOjpBY2NvdW50SWQAARhhbW91bnRsAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuGEJ1cm5lZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UACwScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuJFN1c3BlbmRlZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UADAQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UADQSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8kATBUOjpBY2NvdW50SWQADgRgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudGwBKFQ6OkJhbGFuY2UADwQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnRsAShUOjpCYWxhbmNlABAEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobyQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UAEQRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvJAEwVDo6QWNjb3VudElkAAEYYW1vdW50bAEoVDo6QmFsYW5jZQASBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8kATBUOjpBY2NvdW50SWQAARhhbW91bnRsAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8kATBUOjpBY2NvdW50SWQAARhhbW91bnRsAShUOjpCYWxhbmNlABQEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLgShAQoJCQlUaGUgW2V2ZW50XShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykgZW1pdHRlZAoJCQlieSB0aGlzIHBhbGxldC4KCQkJAQEUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjNEJhbGFuY2VTdGF0dXMAAQgQRnJlZQAAACBSZXNlcnZlZAABAAAFAQxIcGFsbGV0X2Q5X2JhbGFuY2VzGHBhbGxldBRFcnJvcggEVAAESQABKDhWZXN0aW5nQmFsYW5jZQAABJxWZXN0aW5nIGJhbGFuY2UgdG9vIGhpZ2ggdG8gc2VuZCB2YWx1ZS5UTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAEEyEFjY291bnQgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBwcmV2ZW50IHdpdGhkcmF3YWwuTEluc3VmZmljaWVudEJhbGFuY2UAAgR4QmFsYW5jZSB0b28gbG93IHRvIHNlbmQgdmFsdWUuSEV4aXN0ZW50aWFsRGVwb3NpdAADBOxWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LjRFeHBlbmRhYmlsaXR5AAQEkFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50LlxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQAFBMxBIHZlc3Rpbmcgc2NoZWR1bGUgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgYWNjb3VudC4sRGVhZEFjY291bnQABgSMQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdC48VG9vTWFueVJlc2VydmVzAAcEuE51bWJlciBvZiBuYW1lZCByZXNlcnZlcyBleGNlZWQgYE1heFJlc2VydmVzYC4wVG9vTWFueUhvbGRzAAgEiE51bWJlciBvZiBob2xkcyBleGNlZWQgYE1heEhvbGRzYC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC4EtQEKCQkJQ3VzdG9tIFtkaXNwYXRjaCBlcnJvcnNdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKQoJCQlvZiB0aGlzIHBhbGxldC4KCQkJCQEIOHBhbGxldF9ncmFuZHBhLFN0b3JlZFN0YXRlBAROASABEBBMaXZlAAAAMFBlbmRpbmdQYXVzZQgBMHNjaGVkdWxlZF9hdCABBE4AARRkZWxheSABBE4AAQAYUGF1c2VkAAIANFBlbmRpbmdSZXN1bWUIATBzY2hlZHVsZWRfYXQgAQROAAEUZGVsYXkgAQROAAMAAA0BCDhwYWxsZXRfZ3JhbmRwYUxTdG9yZWRQZW5kaW5nQ2hhbmdlCAROASAUTGltaXQAABABMHNjaGVkdWxlZF9hdCABBE4AARRkZWxheSABBE4AAUBuZXh0X2F1dGhvcml0aWVzEQEBbEJvdW5kZWRBdXRob3JpdHlMaXN0PExpbWl0PgABGGZvcmNlZCUBASRPcHRpb248Tj4AABEBDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBFQEEUwAABAAhAQEYVmVjPFQ+AAAVAQAABAgZARwAGQEMUHNwX2NvbnNlbnN1c19ncmFuZHBhDGFwcBhQdWJsaWMAAAQAHQEBPGVkMjU1MTk6OlB1YmxpYwAAHQEMHHNwX2NvcmUcZWQyNTUxORhQdWJsaWMAAAQADAEgW3U4OyAzMl0AACEBAAACFQEAJQEEGE9wdGlvbgQEVAEgAQgQTm9uZQAAABBTb21lBAAgAAABAAApAQAABAggIAAtAQw4cGFsbGV0X2dyYW5kcGEYcGFsbGV0EENhbGwEBFQAAQxMcmVwb3J0X2VxdWl2b2NhdGlvbggBSGVxdWl2b2NhdGlvbl9wcm9vZjEBAbxCb3g8RXF1aXZvY2F0aW9uUHJvb2Y8VDo6SGFzaCwgVDo6QmxvY2tOdW1iZXI+PgABPGtleV9vd25lcl9wcm9vZmEBAUBUOjpLZXlPd25lclByb29mAAAQCQFSZXBvcnQgdm90ZXIgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGX0ZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZvhhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZUR3aWxsIGJlIHJlcG9ydGVkLnByZXBvcnRfZXF1aXZvY2F0aW9uX3Vuc2lnbmVkCAFIZXF1aXZvY2F0aW9uX3Byb29mMQEBvEJveDxFcXVpdm9jYXRpb25Qcm9vZjxUOjpIYXNoLCBUOjpCbG9ja051bWJlcj4+AAE8a2V5X293bmVyX3Byb29mYQEBQFQ6OktleU93bmVyUHJvb2YAASQJAVJlcG9ydCB2b3RlciBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZfRlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29m+GFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlRHdpbGwgYmUgcmVwb3J0ZWQuAA0BVGhpcyBleHRyaW5zaWMgbXVzdCBiZSBjYWxsZWQgdW5zaWduZWQgYW5kIGl0IGlzIGV4cGVjdGVkIHRoYXQgb25seRUBYmxvY2sgYXV0aG9ycyB3aWxsIGNhbGwgaXQgKHZhbGlkYXRlZCBpbiBgVmFsaWRhdGVVbnNpZ25lZGApLCBhcyBzdWNoFQFpZiB0aGUgYmxvY2sgYXV0aG9yIGlzIGRlZmluZWQgaXQgd2lsbCBiZSBkZWZpbmVkIGFzIHRoZSBlcXVpdm9jYXRpb24kcmVwb3J0ZXIuMG5vdGVfc3RhbGxlZAgBFGRlbGF5IAE4VDo6QmxvY2tOdW1iZXIAAWxiZXN0X2ZpbmFsaXplZF9ibG9ja19udW1iZXIgAThUOjpCbG9ja051bWJlcgACMD0BTm90ZSB0aGF0IHRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQgb2YgdGhlIEdSQU5EUEEgZmluYWxpdHkgZ2FkZ2V0IGhhcyBzdGFsbGVkLgBhAVRoaXMgd2lsbCB0cmlnZ2VyIGEgZm9yY2VkIGF1dGhvcml0eSBzZXQgY2hhbmdlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgc2Vzc2lvbiwgdG9hAWJlIGVuYWN0ZWQgYGRlbGF5YCBibG9ja3MgYWZ0ZXIgdGhhdC4gVGhlIGBkZWxheWAgc2hvdWxkIGJlIGhpZ2ggZW5vdWdoIHRvIHNhZmVseSBhc3N1bWVJAXRoYXQgdGhlIGJsb2NrIHNpZ25hbGxpbmcgdGhlIGZvcmNlZCBjaGFuZ2Ugd2lsbCBub3QgYmUgcmUtb3JnZWQgZS5nLiAxMDAwIGJsb2Nrcy5dAVRoZSBibG9jayBwcm9kdWN0aW9uIHJhdGUgKHdoaWNoIG1heSBiZSBzbG93ZWQgZG93biBiZWNhdXNlIG9mIGZpbmFsaXR5IGxhZ2dpbmcpIHNob3VsZFEBYmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gY2hvb3NpbmcgdGhlIGBkZWxheWAuIFRoZSBHUkFORFBBIHZvdGVycyBiYXNlZCBvbiB0aGUgbmV3VQFhdXRob3JpdHkgd2lsbCBzdGFydCB2b3Rpbmcgb24gdG9wIG9mIGBiZXN0X2ZpbmFsaXplZF9ibG9ja19udW1iZXJgIGZvciBuZXcgZmluYWxpemVkTQFibG9ja3MuIGBiZXN0X2ZpbmFsaXplZF9ibG9ja19udW1iZXJgIHNob3VsZCBiZSB0aGUgaGlnaGVzdCBvZiB0aGUgbGF0ZXN0IGZpbmFsaXplZMRibG9jayBvZiBhbGwgdmFsaWRhdG9ycyBvZiB0aGUgbmV3IGF1dGhvcml0eSBzZXQuAFhPbmx5IGNhbGxhYmxlIGJ5IHJvb3QuBCUBQ29udGFpbnMgb25lIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSB0aGF0IGNhbiBiZSBjYWxsZWQgYnkgYW4gZXh0cmluc2ljLjEBCFBzcF9jb25zZW5zdXNfZ3JhbmRwYURFcXVpdm9jYXRpb25Qcm9vZggESAE1AQROASAACAEYc2V0X2lkHAEUU2V0SWQAATBlcXVpdm9jYXRpb245AQFIRXF1aXZvY2F0aW9uPEgsIE4+AAA1AQg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQADAEgW3U4OyAzMl0AADkBCFBzcF9jb25zZW5zdXNfZ3JhbmRwYTBFcXVpdm9jYXRpb24IBEgBNQEETgEgAQgcUHJldm90ZQQAPQEBOQFncmFuZHBhOjpFcXVpdm9jYXRpb248QXV0aG9yaXR5SWQsIGdyYW5kcGE6OlByZXZvdGU8SCwgTj4sCkF1dGhvcml0eVNpZ25hdHVyZT4AAAAkUHJlY29tbWl0BABVAQFBAWdyYW5kcGE6OkVxdWl2b2NhdGlvbjxBdXRob3JpdHlJZCwgZ3JhbmRwYTo6UHJlY29tbWl0PEgsIE4+LApBdXRob3JpdHlTaWduYXR1cmU+AAEAAD0BCEBmaW5hbGl0eV9ncmFuZHBhMEVxdWl2b2NhdGlvbgwISWQBGQEEVgFBAQRTAUUBABABMHJvdW5kX251bWJlchwBDHU2NAABIGlkZW50aXR5GQEBCElkAAEUZmlyc3RRAQEYKFYsIFMpAAEYc2Vjb25kUQEBGChWLCBTKQAAQQEIQGZpbmFsaXR5X2dyYW5kcGEcUHJldm90ZQgESAE1AQROASAACAEsdGFyZ2V0X2hhc2g1AQEESAABNHRhcmdldF9udW1iZXIgAQROAABFAQxQc3BfY29uc2Vuc3VzX2dyYW5kcGEMYXBwJFNpZ25hdHVyZQAABABJAQFIZWQyNTUxOTo6U2lnbmF0dXJlAABJAQwcc3BfY29yZRxlZDI1NTE5JFNpZ25hdHVyZQAABABNAQEgW3U4OyA2NF0AAE0BAAADQAAAABAAUQEAAAQIQQFFAQBVAQhAZmluYWxpdHlfZ3JhbmRwYTBFcXVpdm9jYXRpb24MCElkARkBBFYBWQEEUwFFAQAQATByb3VuZF9udW1iZXIcAQx1NjQAASBpZGVudGl0eRkBAQhJZAABFGZpcnN0XQEBGChWLCBTKQABGHNlY29uZF0BARgoViwgUykAAFkBCEBmaW5hbGl0eV9ncmFuZHBhJFByZWNvbW1pdAgESAE1AQROASAACAEsdGFyZ2V0X2hhc2g1AQEESAABNHRhcmdldF9udW1iZXIgAQROAABdAQAABAhZAUUBAGEBCBxzcF9jb3JlEFZvaWQAAQAAZQEMOHBhbGxldF9ncmFuZHBhGHBhbGxldBRFdmVudAABDDhOZXdBdXRob3JpdGllcwQBNGF1dGhvcml0eV9zZXQhAQE0QXV0aG9yaXR5TGlzdAAABIxOZXcgYXV0aG9yaXR5IHNldCBoYXMgYmVlbiBhcHBsaWVkLhhQYXVzZWQAAQSYQ3VycmVudCBhdXRob3JpdHkgc2V0IGhhcyBiZWVuIHBhdXNlZC4cUmVzdW1lZAACBJxDdXJyZW50IGF1dGhvcml0eSBzZXQgaGFzIGJlZW4gcmVzdW1lZC4EoQEKCQkJVGhlIFtldmVudF0oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pIGVtaXR0ZWQKCQkJYnkgdGhpcyBwYWxsZXQuCgkJCWkBDDhwYWxsZXRfZ3JhbmRwYRhwYWxsZXQURXJyb3IEBFQAARwsUGF1c2VGYWlsZWQAAAgFAUF0dGVtcHQgdG8gc2lnbmFsIEdSQU5EUEEgcGF1c2Ugd2hlbiB0aGUgYXV0aG9yaXR5IHNldCBpc24ndCBsaXZlpChlaXRoZXIgcGF1c2VkIG9yIGFscmVhZHkgcGVuZGluZyBwYXVzZSkuMFJlc3VtZUZhaWxlZAABCBEBQXR0ZW1wdCB0byBzaWduYWwgR1JBTkRQQSByZXN1bWUgd2hlbiB0aGUgYXV0aG9yaXR5IHNldCBpc24ndCBwYXVzZWSgKGVpdGhlciBsaXZlIG9yIGFscmVhZHkgcGVuZGluZyByZXN1bWUpLjRDaGFuZ2VQZW5kaW5nAAIE6EF0dGVtcHQgdG8gc2lnbmFsIEdSQU5EUEEgY2hhbmdlIHdpdGggb25lIGFscmVhZHkgcGVuZGluZy4cVG9vU29vbgADBLxDYW5ub3Qgc2lnbmFsIGZvcmNlZCBjaGFuZ2Ugc28gc29vbiBhZnRlciBsYXN0LmBJbnZhbGlkS2V5T3duZXJzaGlwUHJvb2YABAQxAUEga2V5IG93bmVyc2hpcCBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5gSW52YWxpZEVxdWl2b2NhdGlvblByb29mAAUEMQFBbiBlcXVpdm9jYXRpb24gcHJvb2YgcHJvdmlkZWQgYXMgcGFydCBvZiBhbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIGludmFsaWQuWER1cGxpY2F0ZU9mZmVuY2VSZXBvcnQABgQVAUEgZ2l2ZW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyB2YWxpZCBidXQgYWxyZWFkeSBwcmV2aW91c2x5IHJlcG9ydGVkLgS1AQoJCQlDdXN0b20gW2Rpc3BhdGNoIGVycm9yc10oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pCgkJCW9mIHRoaXMgcGFsbGV0LgoJCQltAQwscGFsbGV0X3N1ZG8YcGFsbGV0EENhbGwEBFQAARAQc3VkbwQBEGNhbGxxAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAAGDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuVHN1ZG9fdW5jaGVja2VkX3dlaWdodAgBEGNhbGxxAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodJUBARhXZWlnaHQAASA1AUF1dGhlbnRpY2F0ZXMgdGhlIHN1ZG8ga2V5IGFuZCBkaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGBSb290YCBvcmlnaW4uLQFUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwsIGFuZCBpbnN0ZWFkIGFsbG93cyB0aGWwU3VkbyB1c2VyIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuHHNldF9rZXkEAQxuZXfoAVBBY2NvdW50SWRMb29rdXBPZjxUPgACHF0BQXV0aGVudGljYXRlcyB0aGUgY3VycmVudCBzdWRvIGtleSBhbmQgc2V0cyB0aGUgZ2l2ZW4gQWNjb3VudElkIChgbmV3YCkgYXMgdGhlIG5ldyBzdWRvEGtleS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuHHN1ZG9fYXMIAQx3aG/oAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGNhbGxxAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADHE0BQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFNpZ25lZGAgb3JpZ2luIGZyb21AYSBnaXZlbiBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uADQjIyBDb21wbGV4aXR5HC0gTygxKS4EJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMucQEIPGQ5X25vZGVfcnVudGltZSxSdW50aW1lQ2FsbAABRChEOVJlZmVycmFsBAAoAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEQ5UmVmZXJyYWwsIFJ1bnRpbWU+AAEAKEQ5VHJlYXN1cnkEADgBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RDlUcmVhc3VyeSwgUnVudGltZT4AAgAwRDlOb2RlVm90aW5nBABoAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEQ5Tm9kZVZvdGluZywgUnVudGltZT4AAwA0RDlOb2RlUmV3YXJkcwQAgAHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEOU5vZGVSZXdhcmRzLCBSdW50aW1lPgAEACBCYWxhbmNlcwQA5AG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ABQAcR3JhbmRwYQQALQEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8R3JhbmRwYSwgUnVudGltZT4ABgAQU3VkbwQAbQEBpQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3VkbywgUnVudGltZT4ABwAYU3lzdGVtBAB1AQGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAgAJFRpbWVzdGFtcAQAhQEBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgAJABhBc3NldHMEAIkBAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEFzc2V0cywgUnVudGltZT4ACwAoQ29sbGVjdGl2ZQQAkQEBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29sbGVjdGl2ZSwgUnVudGltZT4ADQAkQ29udHJhY3RzBACZAQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb250cmFjdHMsIFJ1bnRpbWU+AA4AIEltT25saW5lBAClAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJbU9ubGluZSwgUnVudGltZT4AEAAcU2Vzc2lvbgQAxQEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2Vzc2lvbiwgUnVudGltZT4AEgAgVHJlYXN1cnkEANUBAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgATACxDb3VuY2lsTG9jawQA2QEBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q291bmNpbExvY2ssIFJ1bnRpbWU+ABQAKEQ5TXVsdGlTaWcEAN0BAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEQ5TXVsdGlTaWcsIFJ1bnRpbWU+ABUAAHUBDDBmcmFtZV9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAASAYcmVtYXJrBAEYcmVtYXJrZAEcVmVjPHU4PgAAEGhNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLgA0IyMgQ29tcGxleGl0eSAtIGBPKDEpYDhzZXRfaGVhcF9wYWdlcwQBFHBhZ2VzHAEMdTY0AAEE+FNldCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBXZWJBc3NlbWJseSBlbnZpcm9ubWVudCdzIGhlYXAuIHNldF9jb2RlBAEQY29kZWQBHFZlYzx1OD4AAhBkU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlLgA0IyMgQ29tcGxleGl0eTEBLSBgTyhDICsgUylgIHdoZXJlIGBDYCBsZW5ndGggb2YgYGNvZGVgIGFuZCBgU2AgY29tcGxleGl0eSBvZiBgY2FuX3NldF9jb2RlYFxzZXRfY29kZV93aXRob3V0X2NoZWNrcwQBEGNvZGVkARxWZWM8dTg+AAMQGQFTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUgd2l0aG91dCBkb2luZyBhbnkgY2hlY2tzIG9mIHRoZSBnaXZlbiBgY29kZWAuADQjIyBDb21wbGV4aXR5jC0gYE8oQylgIHdoZXJlIGBDYCBsZW5ndGggb2YgYGNvZGVgLHNldF9zdG9yYWdlBAEUaXRlbXN5AQE0VmVjPEtleVZhbHVlPgAEBGhTZXQgc29tZSBpdGVtcyBvZiBzdG9yYWdlLjBraWxsX3N0b3JhZ2UEARBrZXlzgQEBIFZlYzxLZXk+AAUEdEtpbGwgc29tZSBpdGVtcyBmcm9tIHN0b3JhZ2UuLGtpbGxfcHJlZml4CAEYcHJlZml4ZAEMS2V5AAEcc3Via2V5cyABDHUzMgAGEBEBS2lsbCBhbGwgc3RvcmFnZSBpdGVtcyB3aXRoIGEga2V5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHByZWZpeC4AOQEqKk5PVEU6KiogV2UgcmVseSBvbiB0aGUgUm9vdCBvcmlnaW4gdG8gcHJvdmlkZSB1cyB0aGUgbnVtYmVyIG9mIHN1YmtleXMgdW5kZXI9AXRoZSBwcmVmaXggd2UgYXJlIHJlbW92aW5nIHRvIGFjY3VyYXRlbHkgY2FsY3VsYXRlIHRoZSB3ZWlnaHQgb2YgdGhpcyBmdW5jdGlvbi5EcmVtYXJrX3dpdGhfZXZlbnQEARhyZW1hcmtkARxWZWM8dTg+AAcEpE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsgYW5kIGVtaXQgZXZlbnQuBCUBQ29udGFpbnMgb25lIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSB0aGF0IGNhbiBiZSBjYWxsZWQgYnkgYW4gZXh0cmluc2ljLnkBAAACfQEAfQEAAAQIZGQAgQEAAAJkAIUBDEBwYWxsZXRfdGltZXN0YW1wGHBhbGxldBBDYWxsBARUAAEEDHNldAQBDG5vd0gBJFQ6Ok1vbWVudAAAPFRTZXQgdGhlIGN1cnJlbnQgdGltZS4AVQFUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u1HBoYXNlLCBpZiB0aGlzIGNhbGwgaGFzbid0IGJlZW4gaW52b2tlZCBieSB0aGF0IHRpbWUuAEEBVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnlAYE1pbmltdW1QZXJpb2RgLgDUVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYEluaGVyZW50YC4ANCMjIENvbXBsZXhpdHkxAS0gYE8oMSlgIChOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBPblRpbWVzdGFtcFNldGAgbXVzdCBhbHNvIGJlIGBPKDEpYClhAS0gMSBzdG9yYWdlIHJlYWQgYW5kIDEgc3RvcmFnZSBtdXRhdGlvbiAoY29kZWMgYE8oMSlgKS4gKGJlY2F1c2Ugb2YgYERpZFVwZGF0ZTo6dGFrZWAgaW5AICBgb25fZmluYWxpemVgKdQtIDEgZXZlbnQgaGFuZGxlciBgb25fdGltZXN0YW1wX3NldGAuIE11c3QgYmUgYE8oMSlgLgQlAUNvbnRhaW5zIG9uZSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IGFuIGV4dHJpbnNpYy6JAQw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQQQ2FsbAgEVAAESQABdBhjcmVhdGUMAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUYWRtaW7oAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1pbl9iYWxhbmNlbAEoVDo6QmFsYW5jZQAATOhJc3N1ZSBhIG5ldyBjbGFzcyBvZiBmdW5naWJsZSBhc3NldHMgZnJvbSBhIHB1YmxpYyBvcmlnaW4uACUBVGhpcyBuZXcgYXNzZXQgY2xhc3MgaGFzIG5vIGFzc2V0cyBpbml0aWFsbHkgYW5kIGl0cyBvd25lciBpcyB0aGUgb3JpZ2luLgBhAVRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIHRoZSBjb25maWd1cmVkIGBDcmVhdGVPcmlnaW5gIGFuZCBoYXZlIHN1ZmZpY2llbnQgZnVuZHMgZnJlZS4AvEZ1bmRzIG9mIHNlbmRlciBhcmUgcmVzZXJ2ZWQgYnkgYEFzc2V0RGVwb3NpdGAuACxQYXJhbWV0ZXJzOlkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0LiBUaGlzIG11c3Qgbm90IGJlIGN1cnJlbnRseSBpbiB1c2UgdG8gaWRlbnRpZnlIYW4gZXhpc3RpbmcgYXNzZXQuWQEtIGBhZG1pbmA6IFRoZSBhZG1pbiBvZiB0aGlzIGNsYXNzIG9mIGFzc2V0cy4gVGhlIGFkbWluIGlzIHRoZSBpbml0aWFsIGFkZHJlc3Mgb2YgZWFjaJxtZW1iZXIgb2YgdGhlIGFzc2V0IGNsYXNzJ3MgYWRtaW4gdGVhbS5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uAJhFbWl0cyBgQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAwZm9yY2VfY3JlYXRlEAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVy6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AATRpc19zdWZmaWNpZW50+AEQYm9vbAABLG1pbl9iYWxhbmNl9AEoVDo6QmFsYW5jZQABTPhJc3N1ZSBhIG5ldyBjbGFzcyBvZiBmdW5naWJsZSBhc3NldHMgZnJvbSBhIHByaXZpbGVnZWQgb3JpZ2luLgC0VGhpcyBuZXcgYXNzZXQgY2xhc3MgaGFzIG5vIGFzc2V0cyBpbml0aWFsbHkuAKRUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gLgCcVW5saWtlIGBjcmVhdGVgLCBubyBmdW5kcyBhcmUgcmVzZXJ2ZWQuAFkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0LiBUaGlzIG11c3Qgbm90IGJlIGN1cnJlbnRseSBpbiB1c2UgdG8gaWRlbnRpZnlIYW4gZXhpc3RpbmcgYXNzZXQuWQEtIGBvd25lcmA6IFRoZSBvd25lciBvZiB0aGlzIGNsYXNzIG9mIGFzc2V0cy4gVGhlIG93bmVyIGhhcyBmdWxsIHN1cGVydXNlciBwZXJtaXNzaW9ucyUBb3ZlciB0aGlzIGFzc2V0LCBidXQgbWF5IGxhdGVyIGNoYW5nZSBhbmQgY29uZmlndXJlIHRoZSBwZXJtaXNzaW9ucyB1c2luZ5BgdHJhbnNmZXJfb3duZXJzaGlwYCBhbmQgYHNldF90ZWFtYC5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uAKxFbWl0cyBgRm9yY2VDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYDRzdGFydF9kZXN0cm95BAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgACLNxTdGFydCB0aGUgcHJvY2VzcyBvZiBkZXN0cm95aW5nIGEgZnVuZ2libGUgYXNzZXQgY2xhc3MuAFkBYHN0YXJ0X2Rlc3Ryb3lgIGlzIHRoZSBmaXJzdCBpbiBhIHNlcmllcyBvZiBleHRyaW5zaWNzIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCwgdG8gYWxsb3d4ZGVzdHJ1Y3Rpb24gb2YgYW4gYXNzZXQgY2xhc3MuAFEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSBhc3NldCdzIGBvd25lcmAuAE0BLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZGVzdHJveWVkLiBUaGlzIG11c3QgaWRlbnRpZnkgYW4gZXhpc3RpbmcgICBhc3NldC4A+FRoZSBhc3NldCBjbGFzcyBtdXN0IGJlIGZyb3plbiBiZWZvcmUgY2FsbGluZyBgc3RhcnRfZGVzdHJveWAuQGRlc3Ryb3lfYWNjb3VudHMEAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAMwzERlc3Ryb3kgYWxsIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFzc2V0LgBdAWBkZXN0cm95X2FjY291bnRzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHkxAWRlc3Ryb3kgYWxsIGFjY291bnRzLiBJdCB3aWxsIGRlc3Ryb3kgYFJlbW92ZUl0ZW1zTGltaXRgIGFjY291bnRzIGF0IGEgdGltZS4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDURWFjaCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZEFjY291bnRzYCBldmVudC5EZGVzdHJveV9hcHByb3ZhbHMEAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAQwYQFEZXN0cm95IGFsbCBhcHByb3ZhbHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYXNzZXQgdXAgdG8gdGhlIG1heCAoVDo6UmVtb3ZlSXRlbXNMaW1pdCkuAGEBYGRlc3Ryb3lfYXBwcm92YWxzYCBzaG91bGQgb25seSBiZSBjYWxsZWQgYWZ0ZXIgYHN0YXJ0X2Rlc3Ryb3lgIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHRoZYRhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4AXQFEdWUgdG8gd2VpZ2h0IHJlc3RyaWN0aW9ucywgdGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gZnVsbHk5AWRlc3Ryb3kgYWxsIGFwcHJvdmFscy4gSXQgd2lsbCBkZXN0cm95IGBSZW1vdmVJdGVtc0xpbWl0YCBhcHByb3ZhbHMgYXQgYSB0aW1lLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuANhFYWNoIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkQXBwcm92YWxzYCBldmVudC44ZmluaXNoX2Rlc3Ryb3kEAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAUoxENvbXBsZXRlIGRlc3Ryb3lpbmcgYXNzZXQgYW5kIHVucmVzZXJ2ZSBjdXJyZW5jeS4AVQFgZmluaXNoX2Rlc3Ryb3lgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlWQFhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4gQWxsIGFjY291bnRzIG9yIGFwcHJvdmFscyBzaG91bGQgYmUgZGVzdHJveWVkIGJlZm9yZRRoYW5kLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAOBFYWNoIHN1Y2Nlc3NmdWwgY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRgIGV2ZW50LhBtaW50DAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABLGJlbmVmaWNpYXJ56AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnT0AShUOjpCYWxhbmNlAAYwiE1pbnQgYXNzZXRzIG9mIGEgcGFydGljdWxhciBjbGFzcy4AOQFUaGUgb3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIElzc3VlciBvZiB0aGUgYXNzZXQgYGlkYC4A/C0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgbWludGVkLg0BLSBgYmVuZWZpY2lhcnlgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZCB3aXRoIHRoZSBtaW50ZWQgYXNzZXRzLsQtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIHRoZSBhc3NldCB0byBiZSBtaW50ZWQuAJRFbWl0cyBgSXNzdWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhXZWlnaHQ6IGBPKDEpYFUBTW9kZXM6IFByZS1leGlzdGluZyBiYWxhbmNlIG9mIGBiZW5lZmljaWFyeWA7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiBgYmVuZWZpY2lhcnlgLhBidXJuDAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABDHdob+gBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW509AEoVDo6QmFsYW5jZQAHPEUBUmVkdWNlIHRoZSBiYWxhbmNlIG9mIGB3aG9gIGJ5IGFzIG11Y2ggYXMgcG9zc2libGUgdXAgdG8gYGFtb3VudGAgYXNzZXRzIG9mIGBpZGAuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgTWFuYWdlciBvZiB0aGUgYXNzZXQgYGlkYC4A0EJhaWxzIHdpdGggYE5vQWNjb3VudGAgaWYgdGhlIGB3aG9gIGlzIGFscmVhZHkgZGVhZC4A/C0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgYnVybmVkLqAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBkZWJpdGVkIGZyb20uKQEtIGBhbW91bnRgOiBUaGUgbWF4aW11bSBhbW91bnQgYnkgd2hpY2ggYHdob2AncyBiYWxhbmNlIHNob3VsZCBiZSByZWR1Y2VkLgBRAUVtaXRzIGBCdXJuZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgYnVybmVkLiBJZiB0aGlzIHRha2VzIHRoZSBiYWxhbmNlIHRvIGJlbG93IHRoZTkBbWluaW11bSBmb3IgdGhlIGFzc2V0LCB0aGVuIHRoZSBhbW91bnQgYnVybmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYAkBTW9kZXM6IFBvc3QtZXhpc3RlbmNlIG9mIGB3aG9gOyBQcmUgJiBwb3N0IFpvbWJpZS1zdGF0dXMgb2YgYHdob2AuIHRyYW5zZmVyDAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHRhcmdldOgBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW509AEoVDo6QmFsYW5jZQAISNBNb3ZlIHNvbWUgYXNzZXRzIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIuAFhPcmlnaW4gbXVzdCBiZSBTaWduZWQuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6cLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuUQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBzZW5kZXIncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRhAWB0YXJnZXRgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5dAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBzZW5kZXIgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dCBiZWxvd7x0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGB0YXJnZXRgOyBQb3N0LWV4aXN0ZW5jZSBvZiBzZW5kZXI7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiRgdGFyZ2V0YC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQwBCGlkjQEBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARh0YXJnZXToAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudPQBKFQ6OkJhbGFuY2UACUhZAU1vdmUgc29tZSBhc3NldHMgZnJvbSB0aGUgc2VuZGVyIGFjY291bnQgdG8gYW5vdGhlciwga2VlcGluZyB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUuAFhPcmlnaW4gbXVzdCBiZSBTaWduZWQuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6cLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuUQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBzZW5kZXIncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRhAWB0YXJnZXRgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5dAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBzZW5kZXIgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dCBiZWxvd7x0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGB0YXJnZXRgOyBQb3N0LWV4aXN0ZW5jZSBvZiBzZW5kZXI7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiRgdGFyZ2V0YC44Zm9yY2VfdHJhbnNmZXIQAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYc291cmNl6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN06AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnT0AShUOjpCYWxhbmNlAApMtE1vdmUgc29tZSBhc3NldHMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEFkbWluIG9mIHRoZSBhc3NldCBgaWRgLgARAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGhhdmUgc29tZSBhbW91bnQgdHJhbnNmZXJyZWQumC0gYHNvdXJjZWA6IFRoZSBhY2NvdW50IHRvIGJlIGRlYml0ZWQulC0gYGRlc3RgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5ZAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGBzb3VyY2VgJ3MgYmFsYW5jZSBvZiBhc3NldHMgc2hvdWxkIGJlIHJlZHVjZWQgYW5kWQFgZGVzdGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbk0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIGBzb3VyY2VgIGJhbGFuY2UgYWJvdmUgemVybyBidXTUYmVsb3cgdGhlIG1pbmltdW0gYmFsYW5jZS4gTXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4AYQFFbWl0cyBgVHJhbnNmZXJyZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgdHJhbnNmZXJyZWQuIElmIHRoaXMgdGFrZXMgdGhlIHNvdXJjZSBiYWxhbmNlXQF0byBiZWxvdyB0aGUgbWluaW11bSBmb3IgdGhlIGFzc2V0LCB0aGVuIHRoZSBhbW91bnQgdHJhbnNmZXJyZWQgaXMgaW5jcmVhc2VkIHRvIHRha2UgaXQgdG8gemVyby4AOFdlaWdodDogYE8oMSlgUQFNb2RlczogUHJlLWV4aXN0ZW5jZSBvZiBgZGVzdGA7IFBvc3QtZXhpc3RlbmNlIG9mIGBzb3VyY2VgOyBBY2NvdW50IHByZS1leGlzdGVuY2Ugb2YcYGRlc3RgLhhmcmVlemUIAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hv6AFQQWNjb3VudElkTG9va3VwT2Y8VD4ACyjgRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZyb20gYW4gYWNjb3VudC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLogtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgEHRoYXcIAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hv6AFQQWNjb3VudElkTG9va3VwT2Y8VD4ADCjMQWxsb3cgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmcm9tIGFuIGFjY291bnQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4ukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVuZnJvemVuLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYDBmcmVlemVfYXNzZXQEAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAA0k8ERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBmb3IgdGhlIGFzc2V0IGNsYXNzLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgKHRoYXdfYXNzZXQEAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAA4kxEFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgZm9yIHRoZSBhc3NldCBhZ2Fpbi4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIHRoYXdlZC4APEVtaXRzIGBUaGF3ZWRgLgA4V2VpZ2h0OiBgTygxKWBIdHJhbnNmZXJfb3duZXJzaGlwCAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVy6AFQQWNjb3VudElkTG9va3VwT2Y8VD4ADyh0Q2hhbmdlIHRoZSBPd25lciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC4AVEVtaXRzIGBPd25lckNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWAgc2V0X3RlYW0QAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEYaXNzdWVy6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbugBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcugBUEFjY291bnRJZExvb2t1cE9mPFQ+ABAwxENoYW5nZSB0aGUgSXNzdWVyLCBBZG1pbiBhbmQgRnJlZXplciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC4AUEVtaXRzIGBUZWFtQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYDBzZXRfbWV0YWRhdGEQAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZWQBHFZlYzx1OD4AARhzeW1ib2xkARxWZWM8dTg+AAEgZGVjaW1hbHMQAQh1OAARQHhTZXQgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4A2EZ1bmRzIG9mIHNlbmRlciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOlEBYE1ldGFkYXRhRGVwb3NpdEJhc2UgKyBNZXRhZGF0YURlcG9zaXRQZXJCeXRlICogKG5hbWUubGVuICsgc3ltYm9sLmxlbilgIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuALgtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byB1cGRhdGUuTQEtIGBuYW1lYDogVGhlIHVzZXIgZnJpZW5kbHkgbmFtZSBvZiB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLk0BLSBgc3ltYm9sYDogVGhlIGV4Y2hhbmdlIHN5bWJvbCBmb3IgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC4tAS0gYGRlY2ltYWxzYDogVGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGlzIGFzc2V0IHVzZXMgdG8gcmVwcmVzZW50IG9uZSB1bml0LgBQRW1pdHMgYE1ldGFkYXRhU2V0YC4AOFdlaWdodDogYE8oMSlgOGNsZWFyX21ldGFkYXRhBAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgASLIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgCkQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBhc3NldCBvd25lci4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9zZXRfbWV0YWRhdGEUAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQbmFtZWQBHFZlYzx1OD4AARhzeW1ib2xkARxWZWM8dTg+AAEgZGVjaW1hbHMQAQh1OAABJGlzX2Zyb3plbvgBEGJvb2wAEzi4Rm9yY2UgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldCB0byBzb21lIHZhbHVlLgBsT3JpZ2luIG11c3QgYmUgRm9yY2VPcmlnaW4uAGhBbnkgZGVwb3NpdCBpcyBsZWZ0IGFsb25lLgC4LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gdXBkYXRlLk0BLSBgbmFtZWA6IFRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC5NAS0gYHN5bWJvbGA6IFRoZSBleGNoYW5nZSBzeW1ib2wgZm9yIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuLQEtIGBkZWNpbWFsc2A6IFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhpcyBhc3NldCB1c2VzIHRvIHJlcHJlc2VudCBvbmUgdW5pdC4AUEVtaXRzIGBNZXRhZGF0YVNldGAuAFEBV2VpZ2h0OiBgTyhOICsgUylgIHdoZXJlIE4gYW5kIFMgYXJlIHRoZSBsZW5ndGggb2YgdGhlIG5hbWUgYW5kIHN5bWJvbCByZXNwZWN0aXZlbHkuUGZvcmNlX2NsZWFyX21ldGFkYXRhBAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgAULIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgBsT3JpZ2luIG11c3QgYmUgRm9yY2VPcmlnaW4uAGBBbnkgZGVwb3NpdCBpcyByZXR1cm5lZC4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9hc3NldF9zdGF0dXMgAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXLoAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGlzc3VlcugBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUYWRtaW7oAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGZyZWV6ZXLoAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1pbl9iYWxhbmNl9AEoVDo6QmFsYW5jZQABNGlzX3N1ZmZpY2llbnT4ARBib29sAAEkaXNfZnJvemVu+AEQYm9vbAAVWJhBbHRlciB0aGUgYXR0cmlidXRlcyBvZiBhIGdpdmVuIGFzc2V0LgB0T3JpZ2luIG11c3QgYmUgYEZvcmNlT3JpZ2luYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uUQEtIGBpc19zdWZmaWNpZW50YDogV2hldGhlciBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhpcyBhc3NldCBpcyBkZXBvc2l0IG9mIHN1ZmZpY2llbnRNAXZhbHVlIHRvIGFjY291bnQgZm9yIHRoZSBzdGF0ZSBibG9hdCBhc3NvY2lhdGVkIHdpdGggaXRzIGJhbGFuY2Ugc3RvcmFnZS4gSWYgc2V0IHRvVQFgdHJ1ZWAsIHRoZW4gbm9uLXplcm8gYmFsYW5jZXMgbWF5IGJlIHN0b3JlZCB3aXRob3V0IGEgYGNvbnN1bWVyYCByZWZlcmVuY2UgKGFuZCB0aHVzTQFhbiBFRCBpbiB0aGUgQmFsYW5jZXMgcGFsbGV0IG9yIHdoYXRldmVyIGVsc2UgaXMgdXNlZCB0byBjb250cm9sIHVzZXItYWNjb3VudCBzdGF0ZSBncm93dGgpLj0BLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGlzIGFzc2V0IGNsYXNzIGlzIGZyb3plbiBleGNlcHQgZm9yIHBlcm1pc3Npb25lZC9hZG1pbjRpbnN0cnVjdGlvbnMuAOhFbWl0cyBgQXNzZXRTdGF0dXNDaGFuZ2VkYCB3aXRoIHRoZSBpZGVudGl0eSBvZiB0aGUgYXNzZXQuADhXZWlnaHQ6IGBPKDEpYEBhcHByb3ZlX3RyYW5zZmVyDAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRl6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnT0AShUOjpCYWxhbmNlABZQLQFBcHByb3ZlIGFuIGFtb3VudCBvZiBhc3NldCBmb3IgdHJhbnNmZXIgYnkgYSBkZWxlZ2F0ZWQgdGhpcmQtcGFydHkgYWNjb3VudC4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4ATQFFbnN1cmVzIHRoYXQgYEFwcHJvdmFsRGVwb3NpdGAgd29ydGggb2YgYEN1cnJlbmN5YCBpcyByZXNlcnZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudFUBZm9yIHRoZSBwdXJwb3NlIG9mIGhvbGRpbmcgdGhlIGFwcHJvdmFsLiBJZiBzb21lIG5vbi16ZXJvIGFtb3VudCBvZiBhc3NldHMgaXMgYWxyZWFkeUkBYXBwcm92ZWQgZnJvbSBzaWduaW5nIGFjY291bnQgdG8gYGRlbGVnYXRlYCwgdGhlbiBpdCBpcyB0b3BwZWQgdXAgb3IgdW5yZXNlcnZlZCB0b1RtZWV0IHRoZSByaWdodCB2YWx1ZS4ARQFOT1RFOiBUaGUgc2lnbmluZyBhY2NvdW50IGRvZXMgbm90IG5lZWQgdG8gb3duIGBhbW91bnRgIG9mIGFzc2V0cyBhdCB0aGUgcG9pbnQgb2ZEbWFraW5nIHRoaXMgY2FsbC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0Lg0BLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0byBkZWxlZ2F0ZSBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LkkBLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBhc3NldCB0aGF0IG1heSBiZSB0cmFuc2ZlcnJlZCBieSBgZGVsZWdhdGVgLiBJZiB0aGVyZSBpc+BhbHJlYWR5IGFuIGFwcHJvdmFsIGluIHBsYWNlLCB0aGVuIHRoaXMgYWN0cyBhZGRpdGl2ZWx5LgCQRW1pdHMgYEFwcHJvdmVkVHJhbnNmZXJgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYDxjYW5jZWxfYXBwcm92YWwIAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEgZGVsZWdhdGXoAVBBY2NvdW50SWRMb29rdXBPZjxUPgAXNEkBQ2FuY2VsIGFsbCBvZiBzb21lIGFzc2V0IGFwcHJvdmVkIGZvciBkZWxlZ2F0ZWQgdHJhbnNmZXIgYnkgYSB0aGlyZC1wYXJ0eSBhY2NvdW50LgA9AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlcmUgbXVzdCBiZSBhbiBhcHByb3ZhbCBpbiBwbGFjZSBiZXR3ZWVuIHNpZ25lciBhbmQsYGRlbGVnYXRlYC4ASQFVbnJlc2VydmVzIGFueSBkZXBvc2l0IHByZXZpb3VzbHkgcmVzZXJ2ZWQgYnkgYGFwcHJvdmVfdHJhbnNmZXJgIGZvciB0aGUgYXBwcm92YWwuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC4FAS0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgZGVsZWdhdGVkIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuAJRFbWl0cyBgQXBwcm92YWxDYW5jZWxsZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYFRmb3JjZV9jYW5jZWxfYXBwcm92YWwMAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXLoAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIGRlbGVnYXRl6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AGDRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgRm9yY2VPcmlnaW4gb3IgU2lnbmVkIG9yaWdpbiB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluaGFjY291bnQgb2YgdGhlIGFzc2V0IGBpZGAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBEdHJhbnNmZXJfYXBwcm92ZWQQAQhpZI0BAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXLoAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLGRlc3RpbmF0aW9u6AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnT0AShUOjpCYWxhbmNlABlITQFUcmFuc2ZlciBzb21lIGFzc2V0IGJhbGFuY2UgZnJvbSBhIHByZXZpb3VzbHkgZGVsZWdhdGVkIGFjY291bnQgdG8gc29tZSB0aGlyZC1wYXJ0eSBhY2NvdW50LgBJAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlcmUgbXVzdCBiZSBhbiBhcHByb3ZhbCBpbiBwbGFjZSBieSB0aGUgYG93bmVyYCB0byB0aGUcc2lnbmVyLgBZAUlmIHRoZSBlbnRpcmUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2ZlciBpcyB0cmFuc2ZlcnJlZCwgdGhlbiBhbnkgZGVwb3NpdCBwcmV2aW91c2x5tHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBpcyB1bnJlc2VydmVkLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuYQEtIGBvd25lcmA6IFRoZSBhY2NvdW50IHdoaWNoIHByZXZpb3VzbHkgYXBwcm92ZWQgZm9yIGEgdHJhbnNmZXIgb2YgYXQgbGVhc3QgYGFtb3VudGAgYW5kvGZyb20gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugd2lsbCBiZSB3aXRoZHJhd24uYQEtIGBkZXN0aW5hdGlvbmA6IFRoZSBhY2NvdW50IHRvIHdoaWNoIHRoZSBhc3NldCBiYWxhbmNlIG9mIGBhbW91bnRgIHdpbGwgYmUgdHJhbnNmZXJyZWQutC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgYXNzZXRzIHRvIHRyYW5zZmVyLgCcRW1pdHMgYFRyYW5zZmVycmVkQXBwcm92ZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYBR0b3VjaAQBCGlkjQEBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAGiTAQ3JlYXRlIGFuIGFzc2V0IGFjY291bnQgZm9yIG5vbi1wcm92aWRlciBhc3NldHMuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi4JAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4YcmVmdW5kCAEIaWSNAQFMVDo6QXNzZXRJZFBhcmFtZXRlcgABKGFsbG93X2J1cm74ARBib29sABsgwFJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhbiBhc3NldCBhY2NvdW50LgBoVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZC4ACQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZC5dAS0gYGFsbG93X2J1cm5gOiBJZiBgdHJ1ZWAgdGhlbiBhc3NldHMgbWF5IGJlIGRlc3Ryb3llZCBpbiBvcmRlciB0byBjb21wbGV0ZSB0aGUgcmVmdW5kLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHNldF9taW5fYmFsYW5jZQgBCGlkjQEBTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASxtaW5fYmFsYW5jZWwBKFQ6OkJhbGFuY2UAHDCUU2V0cyB0aGUgbWluaW11bSBiYWxhbmNlIG9mIGFuIGFzc2V0LgAhAU9ubHkgd29ya3MgaWYgdGhlcmUgYXJlbid0IGFueSBhY2NvdW50cyB0aGF0IGFyZSBob2xkaW5nIHRoZSBhc3NldCBvciBpZuB0aGUgbmV3IHZhbHVlIG9mIGBtaW5fYmFsYW5jZWAgaXMgbGVzcyB0aGFuIHRoZSBvbGQgb25lLgD8T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIGhhcyB0byBiZSB0aGUgT3duZXIgb2YgdGhlLGFzc2V0IGBpZGAuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC7ALSBgbWluX2JhbGFuY2VgOiBUaGUgbmV3IHZhbHVlIG9mIGBtaW5fYmFsYW5jZWAuANRFbWl0cyBgQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgQlAUNvbnRhaW5zIG9uZSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IGFuIGV4dHJpbnNpYy6NAQAABiAAkQEMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBBDYWxsCARUAARJAAEYLHNldF9tZW1iZXJzDAEsbmV3X21lbWJlcnNUAURWZWM8VDo6QWNjb3VudElkPgABFHByaW1lNAFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRvbGRfY291bnQgASxNZW1iZXJDb3VudAAAYIBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwLgBFAS0gYG5ld19tZW1iZXJzYDogVGhlIG5ldyBtZW1iZXIgbGlzdC4gQmUgbmljZSB0byB0aGUgY2hhaW4gYW5kIHByb3ZpZGUgaXQgc29ydGVkLuAtIGBwcmltZWA6IFRoZSBwcmltZSBtZW1iZXIgd2hvc2Ugdm90ZSBzZXRzIHRoZSBkZWZhdWx0LlkBLSBgb2xkX2NvdW50YDogVGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgcHJldmlvdXMgbnVtYmVyIG9mIG1lbWJlcnMgaW4gc3RvcmFnZS4gVXNlZCBmb3JQICB3ZWlnaHQgZXN0aW1hdGlvbi4A1FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgU2V0TWVtYmVyc09yaWdpbmAuAFEBTk9URTogRG9lcyBub3QgZW5mb3JjZSB0aGUgZXhwZWN0ZWQgYE1heE1lbWJlcnNgIGxpbWl0IG9uIHRoZSBhbW91bnQgb2YgbWVtYmVycywgYnV0IQEgICAgICB0aGUgd2VpZ2h0IGVzdGltYXRpb25zIHJlbHkgb24gaXQgdG8gZXN0aW1hdGUgZGlzcGF0Y2hhYmxlIHdlaWdodC4AKCMgV0FSTklORzoAWQFUaGUgYHBhbGxldC1jb2xsZWN0aXZlYCBjYW4gYWxzbyBiZSBtYW5hZ2VkIGJ5IGxvZ2ljIG91dHNpZGUgb2YgdGhlIHBhbGxldCB0aHJvdWdoIHRoZbhpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhaXQgW2BDaGFuZ2VNZW1iZXJzYF0uVQFBbnkgY2FsbCB0byBgc2V0X21lbWJlcnNgIG11c3QgYmUgY2FyZWZ1bCB0aGF0IHRoZSBtZW1iZXIgc2V0IGRvZXNuJ3QgZ2V0IG91dCBvZiBzeW5jpHdpdGggb3RoZXIgbG9naWMgbWFuYWdpbmcgdGhlIG1lbWJlciBzZXQuADgjIyBDb21wbGV4aXR5OlAtIGBPKE1QICsgTilgIHdoZXJlOuAgIC0gYE1gIG9sZC1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKeAgIC0gYE5gIG5ldy1tZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKZggIC0gYFBgIHByb3Bvc2Fscy1jb3VudCAoY29kZS1ib3VuZGVkKRxleGVjdXRlCAEgcHJvcG9zYWxxAQF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZI0BAQx1MzIAASTwRGlzcGF0Y2ggYSBwcm9wb3NhbCBmcm9tIGEgbWVtYmVyIHVzaW5nIHRoZSBgTWVtYmVyYCBvcmlnaW4uAKhPcmlnaW4gbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgY29sbGVjdGl2ZS4AOCMjIENvbXBsZXhpdHk6XC0gYE8oQiArIE0gKyBQKWAgd2hlcmU62C0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKYgtIGBNYCBtZW1iZXJzLWNvdW50IChjb2RlLWJvdW5kZWQpqC0gYFBgIGNvbXBsZXhpdHkgb2YgZGlzcGF0Y2hpbmcgYHByb3Bvc2FsYBxwcm9wb3NlDAEkdGhyZXNob2xkjQEBLE1lbWJlckNvdW50AAEgcHJvcG9zYWxxAQF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZI0BAQx1MzIAAjj4QWRkIGEgbmV3IHByb3Bvc2FsIHRvIGVpdGhlciBiZSB2b3RlZCBvbiBvciBleGVjdXRlZCBkaXJlY3RseS4AhFJlcXVpcmVzIHRoZSBzZW5kZXIgdG8gYmUgbWVtYmVyLgBBAWB0aHJlc2hvbGRgIGRldGVybWluZXMgd2hldGhlciBgcHJvcG9zYWxgIGlzIGV4ZWN1dGVkIGRpcmVjdGx5IChgdGhyZXNob2xkIDwgMmApVG9yIHB1dCB1cCBmb3Igdm90aW5nLgA0IyMgQ29tcGxleGl0eawtIGBPKEIgKyBNICsgUDEpYCBvciBgTyhCICsgTSArIFAyKWAgd2hlcmU64CAgLSBgQmAgaXMgYHByb3Bvc2FsYCBzaXplIGluIGJ5dGVzIChsZW5ndGgtZmVlLWJvdW5kZWQp3CAgLSBgTWAgaXMgbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCnEICAtIGJyYW5jaGluZyBpcyBpbmZsdWVuY2VkIGJ5IGB0aHJlc2hvbGRgIHdoZXJlOvQgICAgLSBgUDFgIGlzIHByb3Bvc2FsIGV4ZWN1dGlvbiBjb21wbGV4aXR5IChgdGhyZXNob2xkIDwgMmAp/CAgICAtIGBQMmAgaXMgcHJvcG9zYWxzLWNvdW50IChjb2RlLWJvdW5kZWQpIChgdGhyZXNob2xkID49IDJgKRB2b3RlDAEgcHJvcG9zYWw1AQEcVDo6SGFzaAABFGluZGV4jQEBNFByb3Bvc2FsSW5kZXgAARxhcHByb3Zl+AEQYm9vbAADJPBBZGQgYW4gYXllIG9yIG5heSB2b3RlIGZvciB0aGUgc2VuZGVyIHRvIHRoZSBnaXZlbiBwcm9wb3NhbC4AjFJlcXVpcmVzIHRoZSBzZW5kZXIgdG8gYmUgYSBtZW1iZXIuAEkBVHJhbnNhY3Rpb24gZmVlcyB3aWxsIGJlIHdhaXZlZCBpZiB0aGUgbWVtYmVyIGlzIHZvdGluZyBvbiBhbnkgcGFydGljdWxhciBwcm9wb3NhbFEBZm9yIHRoZSBmaXJzdCB0aW1lIGFuZCB0aGUgY2FsbCBpcyBzdWNjZXNzZnVsLiBTdWJzZXF1ZW50IHZvdGUgY2hhbmdlcyB3aWxsIGNoYXJnZSBhEGZlZS40IyMgQ29tcGxleGl0eQkBLSBgTyhNKWAgd2hlcmUgYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpTGRpc2FwcHJvdmVfcHJvcG9zYWwEATRwcm9wb3NhbF9oYXNoNQEBHFQ6Okhhc2gABShZAURpc2FwcHJvdmUgYSBwcm9wb3NhbCwgY2xvc2UsIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgc3lzdGVtLCByZWdhcmRsZXNzIG9mIGl0cyBjdXJyZW50GHN0YXRlLgCITXVzdCBiZSBjYWxsZWQgYnkgdGhlIFJvb3Qgb3JpZ2luLgAsUGFyYW1ldGVyczodASogYHByb3Bvc2FsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgcHJvcG9zYWwgdGhhdCBzaG91bGQgYmUgZGlzYXBwcm92ZWQuADQjIyBDb21wbGV4aXR5rE8oUCkgd2hlcmUgUCBpcyB0aGUgbnVtYmVyIG9mIG1heCBwcm9wb3NhbHMUY2xvc2UQATRwcm9wb3NhbF9oYXNoNQEBHFQ6Okhhc2gAARRpbmRleI0BATRQcm9wb3NhbEluZGV4AAFUcHJvcG9zYWxfd2VpZ2h0X2JvdW5klQEBGFdlaWdodAABMGxlbmd0aF9ib3VuZI0BAQx1MzIABmBNAUNsb3NlIGEgdm90ZSB0aGF0IGlzIGVpdGhlciBhcHByb3ZlZCwgZGlzYXBwcm92ZWQgb3Igd2hvc2Ugdm90aW5nIHBlcmlvZCBoYXMgZW5kZWQuAFUBTWF5IGJlIGNhbGxlZCBieSBhbnkgc2lnbmVkIGFjY291bnQgaW4gb3JkZXIgdG8gZmluaXNoIHZvdGluZyBhbmQgY2xvc2UgdGhlIHByb3Bvc2FsLgBJAUlmIGNhbGxlZCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgdm90aW5nIHBlcmlvZCBpdCB3aWxsIG9ubHkgY2xvc2UgdGhlIHZvdGUgaWYgaXQgaXO8aGFzIGVub3VnaCB2b3RlcyB0byBiZSBhcHByb3ZlZCBvciBkaXNhcHByb3ZlZC4ASQFJZiBjYWxsZWQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgdm90aW5nIHBlcmlvZCBhYnN0ZW50aW9ucyBhcmUgY291bnRlZCBhcyByZWplY3Rpb25zJQF1bmxlc3MgdGhlcmUgaXMgYSBwcmltZSBtZW1iZXIgc2V0IGFuZCB0aGUgcHJpbWUgbWVtYmVyIGNhc3QgYW4gYXBwcm92YWwuAGEBSWYgdGhlIGNsb3NlIG9wZXJhdGlvbiBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5IHdpdGggZGlzYXBwcm92YWwsIHRoZSB0cmFuc2FjdGlvbiBmZWUgd2lsbF0BYmUgd2FpdmVkLiBPdGhlcndpc2UgZXhlY3V0aW9uIG9mIHRoZSBhcHByb3ZlZCBvcGVyYXRpb24gd2lsbCBiZSBjaGFyZ2VkIHRvIHRoZSBjYWxsZXIuAGEBKyBgcHJvcG9zYWxfd2VpZ2h0X2JvdW5kYDogVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCBjb25zdW1lZCBieSBleGVjdXRpbmcgdGhlIGNsb3NlZCRwcm9wb3NhbC5hASsgYGxlbmd0aF9ib3VuZGA6IFRoZSB1cHBlciBib3VuZCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgcHJvcG9zYWwgaW4gc3RvcmFnZS4gQ2hlY2tlZCB2aWE1AWBzdG9yYWdlOjpyZWFkYCBzbyBpdCBpcyBgc2l6ZV9vZjo6PHUzMj4oKSA9PSA0YCBsYXJnZXIgdGhhbiB0aGUgcHVyZSBsZW5ndGguADQjIyBDb21wbGV4aXR5dC0gYE8oQiArIE0gKyBQMSArIFAyKWAgd2hlcmU64CAgLSBgQmAgaXMgYHByb3Bvc2FsYCBzaXplIGluIGJ5dGVzIChsZW5ndGgtZmVlLWJvdW5kZWQp3CAgLSBgTWAgaXMgbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCnIICAtIGBQMWAgaXMgdGhlIGNvbXBsZXhpdHkgb2YgYHByb3Bvc2FsYCBwcmVpbWFnZS6kICAtIGBQMmAgaXMgcHJvcG9zYWwtY291bnQgKGNvZGUtYm91bmRlZCkEJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMulQEMKHNwX3dlaWdodHMkd2VpZ2h0X3YyGFdlaWdodAAACAEgcmVmX3RpbWVIAQx1NjQAAShwcm9vZl9zaXplSAEMdTY0AACZAQxAcGFsbGV0X2NvbnRyYWN0cxhwYWxsZXQQQ2FsbAQEVAABJDxjYWxsX29sZF93ZWlnaHQUARBkZXN06AFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZfQBMEJhbGFuY2VPZjxUPgABJGdhc19saW1pdEgBJE9sZFdlaWdodAABVHN0b3JhZ2VfZGVwb3NpdF9saW1pdJ0BAcRPcHRpb248PEJhbGFuY2VPZjxUPiBhcyBjb2RlYzo6SGFzQ29tcGFjdD46OlR5cGU+AAEQZGF0YWQBHFZlYzx1OD4AAAQVAURlcHJlY2F0ZWQgdmVyc2lvbiBpZiBbYFNlbGY6OmNhbGxgXSBmb3IgdXNlIGluIGFuIGluLXN0b3JhZ2UgYENhbGxgLoBpbnN0YW50aWF0ZV93aXRoX2NvZGVfb2xkX3dlaWdodBgBFHZhbHVl9AEwQmFsYW5jZU9mPFQ+AAEkZ2FzX2xpbWl0SAEkT2xkV2VpZ2h0AAFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0nQEBxE9wdGlvbjw8QmFsYW5jZU9mPFQ+IGFzIGNvZGVjOjpIYXNDb21wYWN0Pjo6VHlwZT4AARBjb2RlZAEcVmVjPHU4PgABEGRhdGFkARxWZWM8dTg+AAEQc2FsdGQBHFZlYzx1OD4AAQRZAURlcHJlY2F0ZWQgdmVyc2lvbiBpZiBbYFNlbGY6Omluc3RhbnRpYXRlX3dpdGhfY29kZWBdIGZvciB1c2UgaW4gYW4gaW4tc3RvcmFnZSBgQ2FsbGAuWGluc3RhbnRpYXRlX29sZF93ZWlnaHQYARR2YWx1ZfQBMEJhbGFuY2VPZjxUPgABJGdhc19saW1pdEgBJE9sZFdlaWdodAABVHN0b3JhZ2VfZGVwb3NpdF9saW1pdJ0BAcRPcHRpb248PEJhbGFuY2VPZjxUPiBhcyBjb2RlYzo6SGFzQ29tcGFjdD46OlR5cGU+AAEkY29kZV9oYXNoNQEBLENvZGVIYXNoPFQ+AAEQZGF0YWQBHFZlYzx1OD4AARBzYWx0ZAEcVmVjPHU4PgACBDEBRGVwcmVjYXRlZCB2ZXJzaW9uIGlmIFtgU2VsZjo6aW5zdGFudGlhdGVgXSBmb3IgdXNlIGluIGFuIGluLXN0b3JhZ2UgYENhbGxgLix1cGxvYWRfY29kZQwBEGNvZGVkARxWZWM8dTg+AAFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0nQEBxE9wdGlvbjw8QmFsYW5jZU9mPFQ+IGFzIGNvZGVjOjpIYXNDb21wYWN0Pjo6VHlwZT4AASxkZXRlcm1pbmlzbaEBASxEZXRlcm1pbmlzbQADUOxVcGxvYWQgbmV3IGBjb2RlYCB3aXRob3V0IGluc3RhbnRpYXRpbmcgYSBjb250cmFjdCBmcm9tIGl0LgAhAUlmIHRoZSBjb2RlIGRvZXMgbm90IGFscmVhZHkgZXhpc3QgYSBkZXBvc2l0IGlzIHJlc2VydmVkIGZyb20gdGhlIGNhbGxlckUBYW5kIHVucmVzZXJ2ZWQgb25seSB3aGVuIFtgU2VsZjo6cmVtb3ZlX2NvZGVgXSBpcyBjYWxsZWQuIFRoZSBzaXplIG9mIHRoZSByZXNlcnZl8GRlcGVuZHMgb24gdGhlIGluc3RydW1lbnRlZCBzaXplIG9mIHRoZSB0aGUgc3VwcGxpZWQgYGNvZGVgLgAxAUlmIHRoZSBjb2RlIGFscmVhZHkgZXhpc3RzIGluIHN0b3JhZ2UgaXQgd2lsbCBzdGlsbCByZXR1cm4gYE9rYCBhbmQgdXBncmFkZXOUdGhlIGluIHN0b3JhZ2UgdmVyc2lvbiB0byB0aGUgY3VycmVudNBbYEluc3RydWN0aW9uV2VpZ2h0czo6dmVyc2lvbmBdKEluc3RydWN0aW9uV2VpZ2h0cykuAFUBLSBgZGV0ZXJtaW5pc21gOiBJZiB0aGlzIGlzIHNldCB0byBhbnkgb3RoZXIgdmFsdWUgYnV0IFtgRGV0ZXJtaW5pc206OkVuZm9yY2VkYF0gdGhlbl0BICB0aGUgb25seSB3YXkgdG8gdXNlIHRoaXMgY29kZSBpcyB0byBkZWxlZ2F0ZSBjYWxsIGludG8gaXQgZnJvbSBhbiBvZmZjaGFpbiBleGVjdXRpb24uvCAgU2V0IHRvIFtgRGV0ZXJtaW5pc206OkVuZm9yY2VkYF0gaWYgaW4gZG91YnQuABgjIE5vdGUAWQFBbnlvbmUgY2FuIGluc3RhbnRpYXRlIGEgY29udHJhY3QgZnJvbSBhbnkgdXBsb2FkZWQgY29kZSBhbmQgdGh1cyBwcmV2ZW50IGl0cyByZW1vdmFsLkEBVG8gYXZvaWQgdGhpcyBzaXR1YXRpb24gYSBjb25zdHJ1Y3RvciBjb3VsZCBlbXBsb3kgYWNjZXNzIGNvbnRyb2wgc28gdGhhdCBpdCBjYW45AW9ubHkgYmUgaW5zdGFudGlhdGVkIGJ5IHBlcm1pc3Npb25lZCBlbnRpdGllcy4gVGhlIHNhbWUgaXMgdHJ1ZSB3aGVuIHVwbG9hZGluZ6B0aHJvdWdoIFtgU2VsZjo6aW5zdGFudGlhdGVfd2l0aF9jb2RlYF0uLHJlbW92ZV9jb2RlBAEkY29kZV9oYXNoNQEBLENvZGVIYXNoPFQ+AAQQNQFSZW1vdmUgdGhlIGNvZGUgc3RvcmVkIHVuZGVyIGBjb2RlX2hhc2hgIGFuZCByZWZ1bmQgdGhlIGRlcG9zaXQgdG8gaXRzIG93bmVyLgBFAUEgY29kZSBjYW4gb25seSBiZSByZW1vdmVkIGJ5IGl0cyBvcmlnaW5hbCB1cGxvYWRlciAoaXRzIG93bmVyKSBhbmQgb25seSBpZiBpdCBpc2Rub3QgdXNlZCBieSBhbnkgY29udHJhY3QuIHNldF9jb2RlCAEQZGVzdOgBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY29kZV9oYXNoNQEBLENvZGVIYXNoPFQ+AAUoCQFQcml2aWxlZ2VkIGZ1bmN0aW9uIHRoYXQgY2hhbmdlcyB0aGUgY29kZSBvZiBhbiBleGlzdGluZyBjb250cmFjdC4ARQFUaGlzIHRha2VzIGNhcmUgb2YgdXBkYXRpbmcgcmVmY291bnRzIGFuZCBhbGwgb3RoZXIgbmVjZXNzYXJ5IG9wZXJhdGlvbnMuIFJldHVybnPoYW4gZXJyb3IgaWYgZWl0aGVyIHRoZSBgY29kZV9oYXNoYCBvciBgZGVzdGAgZG8gbm90IGV4aXN0LgAYIyBOb3RlADEBVGhpcyBkb2VzICoqbm90KiogY2hhbmdlIHRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCBpbiBxdWVzdGlvbi4gVGhpcyBtZWFucz0BdGhhdCB0aGUgY29udHJhY3QgYWRkcmVzcyBpcyBubyBsb25nZXIgZGVyaXZlZCBmcm9tIGl0cyBjb2RlIGhhc2ggYWZ0ZXIgY2FsbGluZ0h0aGlzIGRpc3BhdGNoYWJsZS4QY2FsbBQBEGRlc3ToAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVl9AEwQmFsYW5jZU9mPFQ+AAEkZ2FzX2xpbWl0lQEBGFdlaWdodAABVHN0b3JhZ2VfZGVwb3NpdF9saW1pdJ0BAcRPcHRpb248PEJhbGFuY2VPZjxUPiBhcyBjb2RlYzo6SGFzQ29tcGFjdD46OlR5cGU+AAEQZGF0YWQBHFZlYzx1OD4ABkAFAU1ha2VzIGEgY2FsbCB0byBhbiBhY2NvdW50LCBvcHRpb25hbGx5IHRyYW5zZmVycmluZyBzb21lIGJhbGFuY2UuADAjIFBhcmFtZXRlcnMAqCogYGRlc3RgOiBBZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byBjYWxsLvwqIGB2YWx1ZWA6IFRoZSBiYWxhbmNlIHRvIHRyYW5zZmVyIGZyb20gdGhlIGBvcmlnaW5gIHRvIGBkZXN0YC4VASogYGdhc19saW1pdGA6IFRoZSBnYXMgbGltaXQgZW5mb3JjZWQgd2hlbiBleGVjdXRpbmcgdGhlIGNvbnN0cnVjdG9yLlUBKiBgc3RvcmFnZV9kZXBvc2l0X2xpbWl0YDogVGhlIG1heGltdW0gYW1vdW50IG9mIGJhbGFuY2UgdGhhdCBjYW4gYmUgY2hhcmdlZCBmcm9tIHRoZaQgIGNhbGxlciB0byBwYXkgZm9yIHRoZSBzdG9yYWdlIGNvbnN1bWVkLsQqIGBkYXRhYDogVGhlIGlucHV0IGRhdGEgdG8gcGFzcyB0byB0aGUgY29udHJhY3QuACUBKiBJZiB0aGUgYWNjb3VudCBpcyBhIHNtYXJ0LWNvbnRyYWN0IGFjY291bnQsIHRoZSBhc3NvY2lhdGVkIGNvZGUgd2lsbCBiZaxleGVjdXRlZCBhbmQgYW55IHZhbHVlIHdpbGwgYmUgdHJhbnNmZXJyZWQuFQEqIElmIHRoZSBhY2NvdW50IGlzIGEgcmVndWxhciBhY2NvdW50LCBhbnkgdmFsdWUgd2lsbCBiZSB0cmFuc2ZlcnJlZC5FASogSWYgbm8gYWNjb3VudCBleGlzdHMgYW5kIHRoZSBjYWxsIHZhbHVlIGlzIG5vdCBsZXNzIHRoYW4gYGV4aXN0ZW50aWFsX2RlcG9zaXRgLBEBYSByZWd1bGFyIGFjY291bnQgd2lsbCBiZSBjcmVhdGVkIGFuZCBhbnkgdmFsdWUgd2lsbCBiZSB0cmFuc2ZlcnJlZC5UaW5zdGFudGlhdGVfd2l0aF9jb2RlGAEUdmFsdWX0ATBCYWxhbmNlT2Y8VD4AASRnYXNfbGltaXSVAQEYV2VpZ2h0AAFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0nQEBxE9wdGlvbjw8QmFsYW5jZU9mPFQ+IGFzIGNvZGVjOjpIYXNDb21wYWN0Pjo6VHlwZT4AARBjb2RlZAEcVmVjPHU4PgABEGRhdGFkARxWZWM8dTg+AAEQc2FsdGQBHFZlYzx1OD4AB2gxAUluc3RhbnRpYXRlcyBhIG5ldyBjb250cmFjdCBmcm9tIHRoZSBzdXBwbGllZCBgY29kZWAgb3B0aW9uYWxseSB0cmFuc2ZlcnJpbmc0c29tZSBiYWxhbmNlLgAhAVRoaXMgZGlzcGF0Y2hhYmxlIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgY2FsbGluZyBbYFNlbGY6OnVwbG9hZF9jb2RlYF0gKz0BW2BTZWxmOjppbnN0YW50aWF0ZWBdLiBCdW5kbGluZyB0aGVtIHRvZ2V0aGVyIHByb3ZpZGVzIGVmZmljaWVuY3kgZ2FpbnMuIFBsZWFzZdhhbHNvIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uIG9mIFtgU2VsZjo6dXBsb2FkX2NvZGVgXS4AMCMgUGFyYW1ldGVycwBNASogYHZhbHVlYDogVGhlIGJhbGFuY2UgdG8gdHJhbnNmZXIgZnJvbSB0aGUgYG9yaWdpbmAgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgY29udHJhY3QuFQEqIGBnYXNfbGltaXRgOiBUaGUgZ2FzIGxpbWl0IGVuZm9yY2VkIHdoZW4gZXhlY3V0aW5nIHRoZSBjb25zdHJ1Y3Rvci5VASogYHN0b3JhZ2VfZGVwb3NpdF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiBiYWxhbmNlIHRoYXQgY2FuIGJlIGNoYXJnZWQvcmVzZXJ2ZWTIICBmcm9tIHRoZSBjYWxsZXIgdG8gcGF5IGZvciB0aGUgc3RvcmFnZSBjb25zdW1lZC7MKiBgY29kZWA6IFRoZSBjb250cmFjdCBjb2RlIHRvIGRlcGxveSBpbiByYXcgYnl0ZXMu9CogYGRhdGFgOiBUaGUgaW5wdXQgZGF0YSB0byBwYXNzIHRvIHRoZSBjb250cmFjdCBjb25zdHJ1Y3Rvci4xASogYHNhbHRgOiBVc2VkIGZvciB0aGUgYWRkcmVzcyBkZXJpdmF0aW9uLiBTZWUgW2BQYWxsZXQ6OmNvbnRyYWN0X2FkZHJlc3NgXS4AlEluc3RhbnRpYXRpb24gaXMgZXhlY3V0ZWQgYXMgZm9sbG93czoAWQEtIFRoZSBzdXBwbGllZCBgY29kZWAgaXMgaW5zdHJ1bWVudGVkLCBkZXBsb3llZCwgYW5kIGEgYGNvZGVfaGFzaGAgaXMgY3JlYXRlZCBmb3IgdGhhdBwgIGNvZGUuWQEtIElmIHRoZSBgY29kZV9oYXNoYCBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgY2hhaW4gdGhlIHVuZGVybHlpbmcgYGNvZGVgIHdpbGwgYmUgc2hhcmVkLkkBLSBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBpcyBjb21wdXRlZCBiYXNlZCBvbiB0aGUgc2VuZGVyLCBjb2RlX2hhc2ggYW5kIHRoZSBzYWx0LgEBLSBUaGUgc21hcnQtY29udHJhY3QgYWNjb3VudCBpcyBjcmVhdGVkIGF0IHRoZSBjb21wdXRlZCBhZGRyZXNzLsAtIFRoZSBgdmFsdWVgIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgYWNjb3VudC5BAS0gVGhlIGBkZXBsb3lgIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGluIHRoZSBjb250ZXh0IG9mIHRoZSBuZXdseS1jcmVhdGVkIGFjY291bnQuLGluc3RhbnRpYXRlGAEUdmFsdWX0ATBCYWxhbmNlT2Y8VD4AASRnYXNfbGltaXSVAQEYV2VpZ2h0AAFUc3RvcmFnZV9kZXBvc2l0X2xpbWl0nQEBxE9wdGlvbjw8QmFsYW5jZU9mPFQ+IGFzIGNvZGVjOjpIYXNDb21wYWN0Pjo6VHlwZT4AASRjb2RlX2hhc2g1AQEsQ29kZUhhc2g8VD4AARBkYXRhZAEcVmVjPHU4PgABEHNhbHRkARxWZWM8dTg+AAgU/Eluc3RhbnRpYXRlcyBhIGNvbnRyYWN0IGZyb20gYSBwcmV2aW91c2x5IGRlcGxveWVkIHdhc20gYmluYXJ5LgA1AVRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvIFtgU2VsZjo6aW5zdGFudGlhdGVfd2l0aF9jb2RlYF0gYnV0IHdpdGhvdXQgdGhlSQFjb2RlIGRlcGxveW1lbnQgc3RlcC4gSW5zdGVhZCwgdGhlIGBjb2RlX2hhc2hgIG9mIGFuIG9uLWNoYWluIGRlcGxveWVkIHdhc20gYmluYXJ5RG11c3QgYmUgc3VwcGxpZWQuBCUBQ29udGFpbnMgb25lIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSB0aGF0IGNhbiBiZSBjYWxsZWQgYnkgYW4gZXh0cmluc2ljLp0BBBhPcHRpb24EBFQB9AEIEE5vbmUAAAAQU29tZQQA9AAAAQAAoQEMQHBhbGxldF9jb250cmFjdHMQd2FzbSxEZXRlcm1pbmlzbQABCCBFbmZvcmNlZAAAABxSZWxheGVkAAEAAKUBDEBwYWxsZXRfaW1fb25saW5lGHBhbGxldBBDYWxsBARUAAEEJGhlYXJ0YmVhdAgBJGhlYXJ0YmVhdKkBAWRIZWFydGJlYXQ8VDo6QmxvY2tOdW1iZXI+AAEkc2lnbmF0dXJlvQEBvDxUOjpBdXRob3JpdHlJZCBhcyBSdW50aW1lQXBwUHVibGljPjo6U2lnbmF0dXJlAAAUOCMjIENvbXBsZXhpdHk6WQEtIGBPKEsgKyBFKWAgd2hlcmUgSyBpcyBsZW5ndGggb2YgYEtleXNgIChoZWFydGJlYXQudmFsaWRhdG9yc19sZW4pIGFuZCBFIGlzIGxlbmd0aCBvZrAgIGBoZWFydGJlYXQubmV0d29ya19zdGF0ZS5leHRlcm5hbF9hZGRyZXNzYIggIC0gYE8oSylgOiBkZWNvZGluZyBvZiBsZW5ndGggYEtgrCAgLSBgTyhFKWA6IGRlY29kaW5nL2VuY29kaW5nIG9mIGxlbmd0aCBgRWAEJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMuqQEIQHBhbGxldF9pbV9vbmxpbmUkSGVhcnRiZWF0BCxCbG9ja051bWJlcgEgABQBMGJsb2NrX251bWJlciABLEJsb2NrTnVtYmVyAAE0bmV0d29ya19zdGF0Za0BAUhPcGFxdWVOZXR3b3JrU3RhdGUAATRzZXNzaW9uX2luZGV4IAEwU2Vzc2lvbkluZGV4AAE8YXV0aG9yaXR5X2luZGV4IAEkQXV0aEluZGV4AAE4dmFsaWRhdG9yc19sZW4gAQx1MzIAAK0BDBxzcF9jb3JlIG9mZmNoYWluSE9wYXF1ZU5ldHdvcmtTdGF0ZQAACAEccGVlcl9pZLEBATBPcGFxdWVQZWVySWQAAUhleHRlcm5hbF9hZGRyZXNzZXO1AQFQVmVjPE9wYXF1ZU11bHRpYWRkcj4AALEBCBxzcF9jb3JlME9wYXF1ZVBlZXJJZAAABABkARxWZWM8dTg+AAC1AQAAArkBALkBDBxzcF9jb3JlIG9mZmNoYWluPE9wYXF1ZU11bHRpYWRkcgAABABkARxWZWM8dTg+AAC9ARBAcGFsbGV0X2ltX29ubGluZRxzcjI1NTE5LGFwcF9zcjI1NTE5JFNpZ25hdHVyZQAABADBAQFIc3IyNTUxOTo6U2lnbmF0dXJlAADBAQwcc3BfY29yZRxzcjI1NTE5JFNpZ25hdHVyZQAABABNAQEgW3U4OyA2NF0AAMUBDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQQQ2FsbAQEVAABCCBzZXRfa2V5cwgBEGtleXPJAQEcVDo6S2V5cwABFHByb29mZAEcVmVjPHU4PgAAJORTZXRzIHRoZSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyIHRvIGBrZXlzYC4dAUFsbG93cyBhbiBhY2NvdW50IHRvIHNldCBpdHMgc2Vzc2lvbiBrZXkgcHJpb3IgdG8gYmVjb21pbmcgYSB2YWxpZGF0b3IuwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2lnbmVkLgA0IyMgQ29tcGxleGl0eVkBLSBgTygxKWAuIEFjdHVhbCBjb3N0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBsZW5ndGggb2YgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgICBmaXhlZC4ocHVyZ2Vfa2V5cwABMMhSZW1vdmVzIGFueSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyLgDAVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgYWNjb3VudCBtdXN0IGJlIGVpdGhlciBiZV0BY29udmVydGlibGUgdG8gYSB2YWxpZGF0b3IgSUQgdXNpbmcgdGhlIGNoYWluJ3MgdHlwaWNhbCBhZGRyZXNzaW5nIHN5c3RlbSAodGhpcyB1c3VhbGx5UQFtZWFucyBiZWluZyBhIGNvbnRyb2xsZXIgYWNjb3VudCkgb3IgZGlyZWN0bHkgY29udmVydGlibGUgaW50byBhIHZhbGlkYXRvciBJRCAod2hpY2iUdXN1YWxseSBtZWFucyBiZWluZyBhIHN0YXNoIGFjY291bnQpLgA0IyMgQ29tcGxleGl0eT0BLSBgTygxKWAgaW4gbnVtYmVyIG9mIGtleSB0eXBlcy4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZpggIGBUOjpLZXlzOjprZXlfaWRzKClgIHdoaWNoIGlzIGZpeGVkLgQlAUNvbnRhaW5zIG9uZSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IGFuIGV4dHJpbnNpYy7JAQw8ZDlfbm9kZV9ydW50aW1lGG9wYXF1ZSxTZXNzaW9uS2V5cwAAEAEQYXVyYQQBxDxBdXJhIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAARxncmFuZHBhGQEB0DxHcmFuZHBhIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAASRpbV9vbmxpbmXNAQHUPEltT25saW5lIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAAUxhdXRob3JpdHlfZGlzY292ZXJ50QEB/DxBdXRob3JpdHlEaXNjb3ZlcnkgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAAzQEQQHBhbGxldF9pbV9vbmxpbmUcc3IyNTUxOSxhcHBfc3IyNTUxORhQdWJsaWMAAAQACAE8c3IyNTUxOTo6UHVibGljAADRAQxYc3BfYXV0aG9yaXR5X2Rpc2NvdmVyeQxhcHAYUHVibGljAAAEAAgBPHNyMjU1MTk6OlB1YmxpYwAA1QEMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQQQ2FsbAgEVAAESQABFDRwcm9wb3NlX3NwZW5kCAEUdmFsdWX0ATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeegBUEFjY291bnRJZExvb2t1cE9mPFQ+AAAYKQFQdXQgZm9yd2FyZCBhIHN1Z2dlc3Rpb24gZm9yIHNwZW5kaW5nLiBBIGRlcG9zaXQgcHJvcG9ydGlvbmFsIHRvIHRoZSB2YWx1ZTEBaXMgcmVzZXJ2ZWQgYW5kIHNsYXNoZWQgaWYgdGhlIHByb3Bvc2FsIGlzIHJlamVjdGVkLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoZVBwcm9wb3NhbCBpcyBhd2FyZGVkLgA0IyMgQ29tcGxleGl0eRgtIE8oMSk8cmVqZWN0X3Byb3Bvc2FsBAEscHJvcG9zYWxfaWSNAQE0UHJvcG9zYWxJbmRleAABGPhSZWplY3QgYSBwcm9wb3NlZCBzcGVuZC4gVGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBiZSBzbGFzaGVkLgCoTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFQ6OlJlamVjdE9yaWdpbmAuADQjIyBDb21wbGV4aXR5GC0gTygxKUBhcHByb3ZlX3Byb3Bvc2FsBAEscHJvcG9zYWxfaWSNAQE0UHJvcG9zYWxJbmRleAACHFkBQXBwcm92ZSBhIHByb3Bvc2FsLiBBdCBhIGxhdGVyIHRpbWUsIHRoZSBwcm9wb3NhbCB3aWxsIGJlIGFsbG9jYXRlZCB0byB0aGUgYmVuZWZpY2lhcnmoYW5kIHRoZSBvcmlnaW5hbCBkZXBvc2l0IHdpbGwgYmUgcmV0dXJuZWQuAKxNYXkgb25seSBiZSBjYWxsZWQgZnJvbSBgVDo6QXBwcm92ZU9yaWdpbmAuADQjIyBDb21wbGV4aXR5ICAtIE8oMSkuFHNwZW5kCAEYYW1vdW509AE8QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnnoAVBBY2NvdW50SWRMb29rdXBPZjxUPgADILhQcm9wb3NlIGFuZCBhcHByb3ZlIGEgc3BlbmQgb2YgdHJlYXN1cnkgZnVuZHMuAE0BLSBgb3JpZ2luYDogTXVzdCBiZSBgU3BlbmRPcmlnaW5gIHdpdGggdGhlIGBTdWNjZXNzYCB2YWx1ZSBiZWluZyBhdCBsZWFzdCBgYW1vdW50YC5BAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAu6C0gYGJlbmVmaWNpYXJ5YDogVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSB0cmFuc2Zlci4ARQFOT1RFOiBGb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMsIHRoZSBwcm9wb3NlciBpcyBkZWVtZWQgdG8gYmUgZXF1aXZhbGVudCB0byB0aGUwYmVuZWZpY2lhcnkuPHJlbW92ZV9hcHByb3ZhbAQBLHByb3Bvc2FsX2lkjQEBNFByb3Bvc2FsSW5kZXgABDQtAUZvcmNlIGEgcHJldmlvdXNseSBhcHByb3ZlZCBwcm9wb3NhbCB0byBiZSByZW1vdmVkIGZyb20gdGhlIGFwcHJvdmFsIHF1ZXVlLsBUaGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIG5vIGxvbmdlciBiZSByZXR1cm5lZC4AqE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBUOjpSZWplY3RPcmlnaW5gLqAtIGBwcm9wb3NhbF9pZGA6IFRoZSBpbmRleCBvZiBhIHByb3Bvc2FsADQjIyBDb21wbGV4aXR5rC0gTyhBKSB3aGVyZSBgQWAgaXMgdGhlIG51bWJlciBvZiBhcHByb3ZhbHMAHEVycm9yczphAS0gYFByb3Bvc2FsTm90QXBwcm92ZWRgOiBUaGUgYHByb3Bvc2FsX2lkYCBzdXBwbGllZCB3YXMgbm90IGZvdW5kIGluIHRoZSBhcHByb3ZhbCBxdWV1ZSxRAWkuZS4sIHRoZSBwcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuIFRoaXMgY291bGQgYWxzbyBtZWFuIHRoZSBwcm9wb3NhbCBkb2VzIG5vdFkBZXhpc3QgYWx0b2dldGhlciwgdGh1cyB0aGVyZSBpcyBubyB3YXkgaXQgd291bGQgaGF2ZSBiZWVuIGFwcHJvdmVkIGluIHRoZSBmaXJzdCBwbGFjZS4EJQFDb250YWlucyBvbmUgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCBieSBhbiBleHRyaW5zaWMu2QEMWHBhbGxldF9kOV9jb3VuY2lsX2xvY2sYcGFsbGV0EENhbGwEBFQAASRAc2V0X3BhbGxldF9hZG1pbgQBJG5ld19hZG1pbiQBMFQ6OkFjY291bnRJZAAAAGBzZXRfbWluaW5nX3Bvb2xfY29udHJhY3QEATBuZXdfY29udHJhY3QkATBUOjpBY2NvdW50SWQAAQAwcHJvcG9zZV9sb2NrCAE8YWNjb3VudF90b19sb2NrJAEwVDo6QWNjb3VudElkAAEwcHJvcG9zYWxfZmVlbAEwQmFsYW5jZU9mPFQ+AAIAOHByb3Bvc2VfdW5sb2NrCAFEYWNjb3VudF90b191bmxvY2skATBUOjpBY2NvdW50SWQAATBwcm9wb3NhbF9mZWVsATBCYWxhbmNlT2Y8VD4AAwBIdm90ZV9pbl9yZWZlcmVuZHVtCAE4bG9ja19jYW5kaWRhdGUkATBUOjpBY2NvdW50SWQAAUhhc3NlbnRfb25fZGVjaXNpb274ARBib29sAAQAQHNldF9wcm9wb3NhbF9mZWUEARxuZXdfZmVlbAEwQmFsYW5jZU9mPFQ+AAUATGFkbWluX2xvY2tfYWNjb3VudHMIAUBhY2NvdW50c190b19sb2NrVAFEVmVjPFQ6OkFjY291bnRJZD4AASBwcm9wb3NlciQBMFQ6OkFjY291bnRJZAAGAFRhZG1pbl91bmxvY2tfYWNjb3VudHMEAUhhY2NvdW50c190b191bmxvY2tUAURWZWM8VDo6QWNjb3VudElkPgAHAFRhZG1pbl9yZW1vdmVfcHJvcG9zYWwEAUBwcm9wb3NlZF9hY2NvdW50JAEwVDo6QWNjb3VudElkAAgABCUBQ29udGFpbnMgb25lIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSB0aGF0IGNhbiBiZSBjYWxsZWQgYnkgYW4gZXh0cmluc2ljLt0BDExwYWxsZXRfZDlfbXVsdGlfc2lnGHBhbGxldBBDYWxsBARUAAEgYGNyZWF0ZV9tdWx0aV9zaWdfYWNjb3VudAwBLHNpZ25hdG9yaWVzVAFEVmVjPFQ6OkFjY291bnRJZD4AASxhdXRob3JzX29wdOEBAWRPcHRpb248VmVjPFQ6OkFjY291bnRJZD4+AAFkbWluX2FwcHJvdmluZ19zaWduYXRvcmllcyABDHUzMgAAKJBjcmVhdGUgYSBuZXcgbXVsdGkgc2lnbmF0dXJlIGFjY291bnQAzHNpZ25hdG9yaWVzIG11c3QgaGF2ZSBjYXJkaW5hbGl0eSBvZiBhdCBsZWFzdCAyIGFuZNhsZXNzIHRoYW4gVDo6TWF4U2lnbmF0b3JpZXMsIHdpdGggYWxsIHVuaXF1ZSBlbGVtZW50cy7Yb3JpZ2luIG11c3QgYmUgYW4gZWxlbWVudCBvZiBzaWduYXRvcmllcyBhbmQgYXV0aG9ycyBhWHN1YnNldCBvZiBzaWduYXRvcmllcy4sUGFyYW1ldGVyczqgLSBgc2lnbmF0b3JpZXNgOiB0aGUgbGlzdCBvZiBzaWduYXRvcmllcyUBLSBgYXV0aG9yc19vcHRgOiB0aGUgbGlzdCBvZiBhdXRob3JzLCBpZiBOb25lIGFsbCBzaWduYXRvcmllcyBhcmUgYXV0aG9yc20BLSBgbWluX2FwcHJvdmluZ19zaWduYXRvcmllc2A6IHRoZSBtaW5pbXVtIG51bWJlciBvZiBzaWduYXRvcmllcyByZXF1aXJlZCB0byBhcHByb3ZlIGEgY2FsbDRhdXRob3JfYV9jYWxsCAFEbXVsdGlfc2lnX2FjY291bnQkATBUOjpBY2NvdW50SWQAARBjYWxscQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AARhcY3JlYXRlIGEgY2FsbCBmb3IgYSBtc2EAdG9ubHkgYXV0aG9ycyBjYW4gY3JlYXRlIGNhbGxzLFBhcmFtZXRlcnM6yC0gYG11bHRpX3NpZ19hY2NvdW50YDogdGhlIG11bHRpIHNpZ25hdHVyZSBhY2NvdW50UQEtIGBjYWxsYDogdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQgKHJ1bnRpbWUgY2FsbC4gdGhlIGpzIHBvbGthZG90IGNhbiBoZWxwIGNyZWF0ZSBpdClEYWRkX2NhbGxfYXBwcm92YWwIAURtdWx0aV9zaWdfYWNjb3VudCQBMFQ6OkFjY291bnRJZAABHGNhbGxfaWQMASBbdTg7IDMyXQACFGhzaWduYXRvcmllcyBhcHByb3ZlIGEgY2FsbAAsUGFyYW1ldGVyczrILSBgbXVsdGlfc2lnX2FjY291bnRgOiB0aGUgbXVsdGkgc2lnbmF0dXJlIGFjY291bnSQLSBgY2FsbF9pZGA6IHRoZSBjYWxsIHRvIGJlIGFwcHJvdmVkUHJlbW92ZV9jYWxsX2FwcHJvdmFsCAFEbXVsdGlfc2lnX2FjY291bnQkATBUOjpBY2NvdW50SWQAARxjYWxsX2lkDAEgW3U4OyAzMl0AAxRocmVtb3ZlIGFwcHJvdmFsIGZvciBhIGNhbGwALFBhcmFtZXRlcnM6yC0gYG11bHRpX3NpZ19hY2NvdW50YDogdGhlIG11bHRpIHNpZ25hdHVyZSBhY2NvdW50kC0gYGNhbGxfaWRgOiB0aGUgY2FsbCB0byBiZSBhcHByb3ZlZGBwcm9wb3NhbF9tc2FfbmV3X21pbmltdW0IASxtc2FfYWRkcmVzcyQBMFQ6OkFjY291bnRJZAABRG5ld19taW5fYXBwcm92YWxzIAEMdTMyAAQU9HByb3Bvc2UgYSBuZXcgbWluaW11bSBhcHByb3ZhbHMgZm9yIGEgbXVsdGkgc2lnbmF0dXJlIGFjY291bnQALFBhcmFtZXRlcnM6sC0gYG1zYV9hZGRyZXNzYDogdGhlIG11bHRpIHNpZ25hdHVyZSBhY2NvdW50wC0gYG5ld19taW5fYXBwcm92YWxzYDogdGhlIG5ldyBtaW5pbXVtIGFwcHJvdmFsc1xhcHByb3ZlX21zYV9uZXdfbWluaW11bQQBLG1zYV9hZGRyZXNzJAEwVDo6QWNjb3VudElkAAUAjHJldm9rZV9hcHByb3ZhbF9mb3JfbXNhX25ld19taW5pbXVtBAEsbXNhX2FkZHJlc3MkATBUOjpBY2NvdW50SWQABgAscmVtb3ZlX2NhbGwIAURtdWx0aV9zaWdfYWNjb3VudCQBMFQ6OkFjY291bnRJZAABHGNhbGxfaWQMASBbdTg7IDMyXQAHAAQlAUNvbnRhaW5zIG9uZSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IGFuIGV4dHJpbnNpYy7hAQQYT3B0aW9uBARUAVQBCBBOb25lAAAAEFNvbWUEAFQAAAEAAOUBDCxwYWxsZXRfc3VkbxhwYWxsZXQURXZlbnQEBFQAAQwUU3VkaWQEASxzdWRvX3Jlc3VsdOkBAThEaXNwYXRjaFJlc3VsdAAABIhBIHN1ZG8ganVzdCB0b29rIHBsYWNlLiBcW3Jlc3VsdFxdKEtleUNoYW5nZWQEAShvbGRfc3Vkb2VyNAFQT3B0aW9uPFQ6OkFjY291bnRJZD4AAQQ5AVRoZSBcW3N1ZG9lclxdIGp1c3Qgc3dpdGNoZWQgaWRlbnRpdHk7IHRoZSBvbGQga2V5IGlzIHN1cHBsaWVkIGlmIG9uZSBleGlzdGVkLihTdWRvQXNEb25lBAEsc3Vkb19yZXN1bHTpAQE4RGlzcGF0Y2hSZXN1bHQAAgSIQSBzdWRvIGp1c3QgdG9vayBwbGFjZS4gXFtyZXN1bHRcXQShAQoJCQlUaGUgW2V2ZW50XShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykgZW1pdHRlZAoJCQlieSB0aGlzIHBhbGxldC4KCQkJ6QEEGFJlc3VsdAgEVAHMBEUBiAEICE9rBADMAAAAAAxFcnIEAIgAAAEAAO0BDCxwYWxsZXRfc3VkbxhwYWxsZXQURXJyb3IEBFQAAQQsUmVxdWlyZVN1ZG8AAAR8U2VuZGVyIG11c3QgYmUgdGhlIFN1ZG8gYWNjb3VudARkRXJyb3IgZm9yIHRoZSBTdWRvIHBhbGxldPEBCDBmcmFtZV9zeXN0ZW0sQWNjb3VudEluZm8IFEluZGV4ASAsQWNjb3VudERhdGEBrAAUARRub25jZSABFEluZGV4AAEkY29uc3VtZXJzIAEgUmVmQ291bnQAASRwcm92aWRlcnMgASBSZWZDb3VudAABLHN1ZmZpY2llbnRzIAEgUmVmQ291bnQAARBkYXRhrAEsQWNjb3VudERhdGEAAPUBDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBlQEADAEYbm9ybWFslQEBBFQAASxvcGVyYXRpb25hbJUBAQRUAAEkbWFuZGF0b3J5lQEBBFQAAPkBEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0GERpZ2VzdAAABAEQbG9nc/0BATxWZWM8RGlnZXN0SXRlbT4AAP0BAAACAQIAAQIQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QoRGlnZXN0SXRlbQABFChQcmVSdW50aW1lCACQAURDb25zZW5zdXNFbmdpbmVJZAAAZAEcVmVjPHU4PgAGACRDb25zZW5zdXMIAJABRENvbnNlbnN1c0VuZ2luZUlkAABkARxWZWM8dTg+AAQAEFNlYWwIAJABRENvbnNlbnN1c0VuZ2luZUlkAABkARxWZWM8dTg+AAUAFE90aGVyBABkARxWZWM8dTg+AAAAZFJ1bnRpbWVFbnZpcm9ubWVudFVwZGF0ZWQACAAABQIAAAIJAgAJAggwZnJhbWVfc3lzdGVtLEV2ZW50UmVjb3JkCARFAQ0CBFQBNQEADAEUcGhhc2VVAgEUUGhhc2UAARRldmVudA0CAQRFAAEYdG9waWNzWQIBGFZlYzxUPgAADQIIPGQ5X25vZGVfcnVudGltZTBSdW50aW1lRXZlbnQAAUQoRDlSZWZlcnJhbAQALAGIcGFsbGV0X2Q5X3JlZmVycmFsOjpFdmVudDxSdW50aW1lPgABAChEOVRyZWFzdXJ5BAA8AYhwYWxsZXRfZDlfdHJlYXN1cnk6OkV2ZW50PFJ1bnRpbWU+AAIAMEQ5Tm9kZVZvdGluZwQAeAGUcGFsbGV0X2Q5X25vZGVfdm90aW5nOjpFdmVudDxSdW50aW1lPgADADREOU5vZGVSZXdhcmRzBACEAZhwYWxsZXRfZDlfbm9kZV9yZXdhcmRzOjpFdmVudDxSdW50aW1lPgAEACBCYWxhbmNlcwQA/AGIcGFsbGV0X2Q5X2JhbGFuY2VzOjpFdmVudDxSdW50aW1lPgAFABxHcmFuZHBhBABlAQFUcGFsbGV0X2dyYW5kcGE6OkV2ZW50AAYAEFN1ZG8EAOUBAWxwYWxsZXRfc3Vkbzo6RXZlbnQ8UnVudGltZT4ABwAYU3lzdGVtBAARAgFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgAIAEhUcmFuc2FjdGlvblBheW1lbnQEACECAahwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudDo6RXZlbnQ8UnVudGltZT4ACgAYQXNzZXRzBAAlAgF0cGFsbGV0X2Fzc2V0czo6RXZlbnQ8UnVudGltZT4ACwAoQ29sbGVjdGl2ZQQAKQIBhHBhbGxldF9jb2xsZWN0aXZlOjpFdmVudDxSdW50aW1lPgANACRDb250cmFjdHMEAC0CAYBwYWxsZXRfY29udHJhY3RzOjpFdmVudDxSdW50aW1lPgAOACBJbU9ubGluZQQAMQIBgHBhbGxldF9pbV9vbmxpbmU6OkV2ZW50PFJ1bnRpbWU+ABAAHFNlc3Npb24EAD0CAVRwYWxsZXRfc2Vzc2lvbjo6RXZlbnQAEgAgVHJlYXN1cnkEAEECAXxwYWxsZXRfdHJlYXN1cnk6OkV2ZW50PFJ1bnRpbWU+ABMALENvdW5jaWxMb2NrBABFAgGYcGFsbGV0X2Q5X2NvdW5jaWxfbG9jazo6RXZlbnQ8UnVudGltZT4AFAAoRDlNdWx0aVNpZwQAUQIBjHBhbGxldF9kOV9tdWx0aV9zaWc6OkV2ZW50PFJ1bnRpbWU+ABUAABECDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEYQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvFQIBMERpc3BhdGNoSW5mbwAABJBBbiBleHRyaW5zaWMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS48RXh0cmluc2ljRmFpbGVkCAE4ZGlzcGF0Y2hfZXJyb3KIATREaXNwYXRjaEVycm9yAAE0ZGlzcGF0Y2hfaW5mbxUCATBEaXNwYXRjaEluZm8AAQRQQW4gZXh0cmluc2ljIGZhaWxlZC4sQ29kZVVwZGF0ZWQAAgRQYDpjb2RlYCB3YXMgdXBkYXRlZC4oTmV3QWNjb3VudAQBHGFjY291bnQkATBUOjpBY2NvdW50SWQAAwRoQSBuZXcgYWNjb3VudCB3YXMgY3JlYXRlZC40S2lsbGVkQWNjb3VudAQBHGFjY291bnQkATBUOjpBY2NvdW50SWQABARYQW4gYWNjb3VudCB3YXMgcmVhcGVkLiBSZW1hcmtlZAgBGHNlbmRlciQBMFQ6OkFjY291bnRJZAABEGhhc2g1AQEcVDo6SGFzaAAFBHBPbiBvbi1jaGFpbiByZW1hcmsgaGFwcGVuZWQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuFQIMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gwRGlzcGF0Y2hJbmZvAAAMARh3ZWlnaHSVAQEYV2VpZ2h0AAEUY2xhc3MZAgE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlHQIBEFBheXMAABkCDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoNERpc3BhdGNoQ2xhc3MAAQwYTm9ybWFsAAAALE9wZXJhdGlvbmFsAAEAJE1hbmRhdG9yeQACAAAdAgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAAAhAgxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEESFRyYW5zYWN0aW9uRmVlUGFpZAwBDHdobyQBMFQ6OkFjY291bnRJZAABKGFjdHVhbF9mZWVsATBCYWxhbmNlT2Y8VD4AAQx0aXBsATBCYWxhbmNlT2Y8VD4AAAhZAUEgdHJhbnNhY3Rpb24gZmVlIGBhY3R1YWxfZmVlYCwgb2Ygd2hpY2ggYHRpcGAgd2FzIGFkZGVkIHRvIHRoZSBtaW5pbXVtIGluY2x1c2lvbiBmZWUsXGhhcyBiZWVuIHBhaWQgYnkgYHdob2AuBKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQklAgw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQURXZlbnQIBFQABEkAAVgcQ3JlYXRlZAwBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABHGNyZWF0b3IkATBUOjpBY2NvdW50SWQAARRvd25lciQBMFQ6OkFjY291bnRJZAAABHRTb21lIGFzc2V0IGNsYXNzIHdhcyBjcmVhdGVkLhhJc3N1ZWQMASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAARRvd25lciQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UAAQRgU29tZSBhc3NldHMgd2VyZSBpc3N1ZWQuLFRyYW5zZmVycmVkEAEgYXNzZXRfaWQgAShUOjpBc3NldElkAAEQZnJvbSQBMFQ6OkFjY291bnRJZAABCHRvJAEwVDo6QWNjb3VudElkAAEYYW1vdW50bAEoVDo6QmFsYW5jZQACBHRTb21lIGFzc2V0cyB3ZXJlIHRyYW5zZmVycmVkLhhCdXJuZWQMASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAARRvd25lciQBMFQ6OkFjY291bnRJZAABHGJhbGFuY2VsAShUOjpCYWxhbmNlAAMEbFNvbWUgYXNzZXRzIHdlcmUgZGVzdHJveWVkLixUZWFtQ2hhbmdlZBABIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABGGlzc3VlciQBMFQ6OkFjY291bnRJZAABFGFkbWluJAEwVDo6QWNjb3VudElkAAEcZnJlZXplciQBMFQ6OkFjY291bnRJZAAEBHBUaGUgbWFuYWdlbWVudCB0ZWFtIGNoYW5nZWQuME93bmVyQ2hhbmdlZAgBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABFG93bmVyJAEwVDo6QWNjb3VudElkAAUESFRoZSBvd25lciBjaGFuZ2VkLhhGcm96ZW4IASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAAQx3aG8kATBUOjpBY2NvdW50SWQABgR4U29tZSBhY2NvdW50IGB3aG9gIHdhcyBmcm96ZW4uGFRoYXdlZAgBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABDHdobyQBMFQ6OkFjY291bnRJZAAHBHhTb21lIGFjY291bnQgYHdob2Agd2FzIHRoYXdlZC4sQXNzZXRGcm96ZW4EASBhc3NldF9pZCABKFQ6OkFzc2V0SWQACASEU29tZSBhc3NldCBgYXNzZXRfaWRgIHdhcyBmcm96ZW4uLEFzc2V0VGhhd2VkBAEgYXNzZXRfaWQgAShUOjpBc3NldElkAAkEhFNvbWUgYXNzZXQgYGFzc2V0X2lkYCB3YXMgdGhhd2VkLkRBY2NvdW50c0Rlc3Ryb3llZAwBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABSGFjY291bnRzX2Rlc3Ryb3llZCABDHUzMgABSGFjY291bnRzX3JlbWFpbmluZyABDHUzMgAKBKBBY2NvdW50cyB3ZXJlIGRlc3Ryb3llZCBmb3IgZ2l2ZW4gYXNzZXQuSEFwcHJvdmFsc0Rlc3Ryb3llZAwBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABTGFwcHJvdmFsc19kZXN0cm95ZWQgAQx1MzIAAUxhcHByb3ZhbHNfcmVtYWluaW5nIAEMdTMyAAsEpEFwcHJvdmFscyB3ZXJlIGRlc3Ryb3llZCBmb3IgZ2l2ZW4gYXNzZXQuSERlc3RydWN0aW9uU3RhcnRlZAQBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAAMBNBBbiBhc3NldCBjbGFzcyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBkZXN0cm95ZWQuJERlc3Ryb3llZAQBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAANBHRBbiBhc3NldCBjbGFzcyB3YXMgZGVzdHJveWVkLjBGb3JjZUNyZWF0ZWQIASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAARRvd25lciQBMFQ6OkFjY291bnRJZAAOBIxTb21lIGFzc2V0IGNsYXNzIHdhcyBmb3JjZS1jcmVhdGVkLixNZXRhZGF0YVNldBQBIGFzc2V0X2lkIAEoVDo6QXNzZXRJZAABEG5hbWVkARxWZWM8dTg+AAEYc3ltYm9sZAEcVmVjPHU4PgABIGRlY2ltYWxzEAEIdTgAASRpc19mcm96ZW74ARBib29sAA8EnE5ldyBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGFuIGFzc2V0LjxNZXRhZGF0YUNsZWFyZWQEASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAEAScTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gYXNzZXQuQEFwcHJvdmVkVHJhbnNmZXIQASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAARhzb3VyY2UkATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZSQBMFQ6OkFjY291bnRJZAABGGFtb3VudGwBKFQ6OkJhbGFuY2UAEQQxAShBZGRpdGlvbmFsKSBmdW5kcyBoYXZlIGJlZW4gYXBwcm92ZWQgZm9yIHRyYW5zZmVyIHRvIGEgZGVzdGluYXRpb24gYWNjb3VudC5EQXBwcm92YWxDYW5jZWxsZWQMASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAARRvd25lciQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlJAEwVDo6QWNjb3VudElkABIE8EFuIGFwcHJvdmFsIGZvciBhY2NvdW50IGBkZWxlZ2F0ZWAgd2FzIGNhbmNlbGxlZCBieSBgb3duZXJgLkxUcmFuc2ZlcnJlZEFwcHJvdmVkFAEgYXNzZXRfaWQgAShUOjpBc3NldElkAAEUb3duZXIkATBUOjpBY2NvdW50SWQAASBkZWxlZ2F0ZSQBMFQ6OkFjY291bnRJZAABLGRlc3RpbmF0aW9uJAEwVDo6QWNjb3VudElkAAEYYW1vdW50bAEoVDo6QmFsYW5jZQATCDEBQW4gYGFtb3VudGAgd2FzIHRyYW5zZmVycmVkIGluIGl0cyBlbnRpcmV0eSBmcm9tIGBvd25lcmAgdG8gYGRlc3RpbmF0aW9uYCBieWB0aGUgYXBwcm92ZWQgYGRlbGVnYXRlYC5IQXNzZXRTdGF0dXNDaGFuZ2VkBAEgYXNzZXRfaWQgAShUOjpBc3NldElkABQE+EFuIGFzc2V0IGhhcyBoYWQgaXRzIGF0dHJpYnV0ZXMgY2hhbmdlZCBieSB0aGUgYEZvcmNlYCBvcmlnaW4uWEFzc2V0TWluQmFsYW5jZUNoYW5nZWQIASBhc3NldF9pZCABKFQ6OkFzc2V0SWQAATxuZXdfbWluX2JhbGFuY2VsAShUOjpCYWxhbmNlABUEAQFUaGUgbWluX2JhbGFuY2Ugb2YgYW4gYXNzZXQgaGFzIGJlZW4gdXBkYXRlZCBieSB0aGUgYXNzZXQgb3duZXIuBKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQkpAgxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0FEV2ZW50CARUAARJAAEcIFByb3Bvc2VkEAEcYWNjb3VudCQBMFQ6OkFjY291bnRJZAABOHByb3Bvc2FsX2luZGV4IAE0UHJvcG9zYWxJbmRleAABNHByb3Bvc2FsX2hhc2g1AQEcVDo6SGFzaAABJHRocmVzaG9sZCABLE1lbWJlckNvdW50AAAISQFBIG1vdGlvbiAoZ2l2ZW4gaGFzaCkgaGFzIGJlZW4gcHJvcG9zZWQgKGJ5IGdpdmVuIGFjY291bnQpIHdpdGggYSB0aHJlc2hvbGQgKGdpdmVuPGBNZW1iZXJDb3VudGApLhRWb3RlZBQBHGFjY291bnQkATBUOjpBY2NvdW50SWQAATRwcm9wb3NhbF9oYXNoNQEBHFQ6Okhhc2gAARR2b3RlZPgBEGJvb2wAAQx5ZXMgASxNZW1iZXJDb3VudAABCG5vIAEsTWVtYmVyQ291bnQAAQgFAUEgbW90aW9uIChnaXZlbiBoYXNoKSBoYXMgYmVlbiB2b3RlZCBvbiBieSBnaXZlbiBhY2NvdW50LCBsZWF2aW5nFQFhIHRhbGx5ICh5ZXMgdm90ZXMgYW5kIG5vIHZvdGVzIGdpdmVuIHJlc3BlY3RpdmVseSBhcyBgTWVtYmVyQ291bnRgKS4gQXBwcm92ZWQEATRwcm9wb3NhbF9oYXNoNQEBHFQ6Okhhc2gAAgTAQSBtb3Rpb24gd2FzIGFwcHJvdmVkIGJ5IHRoZSByZXF1aXJlZCB0aHJlc2hvbGQuLERpc2FwcHJvdmVkBAE0cHJvcG9zYWxfaGFzaDUBARxUOjpIYXNoAAME0EEgbW90aW9uIHdhcyBub3QgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4gRXhlY3V0ZWQIATRwcm9wb3NhbF9oYXNoNQEBHFQ6Okhhc2gAARhyZXN1bHTpAQE4RGlzcGF0Y2hSZXN1bHQABAQhAUEgbW90aW9uIHdhcyBleGVjdXRlZDsgcmVzdWx0IHdpbGwgYmUgYE9rYCBpZiBpdCByZXR1cm5lZCB3aXRob3V0IGVycm9yLjhNZW1iZXJFeGVjdXRlZAgBNHByb3Bvc2FsX2hhc2g1AQEcVDo6SGFzaAABGHJlc3VsdOkBAThEaXNwYXRjaFJlc3VsdAAFBEkBQSBzaW5nbGUgbWVtYmVyIGRpZCBzb21lIGFjdGlvbjsgcmVzdWx0IHdpbGwgYmUgYE9rYCBpZiBpdCByZXR1cm5lZCB3aXRob3V0IGVycm9yLhhDbG9zZWQMATRwcm9wb3NhbF9oYXNoNQEBHFQ6Okhhc2gAAQx5ZXMgASxNZW1iZXJDb3VudAABCG5vIAEsTWVtYmVyQ291bnQABgRVAUEgcHJvcG9zYWwgd2FzIGNsb3NlZCBiZWNhdXNlIGl0cyB0aHJlc2hvbGQgd2FzIHJlYWNoZWQgb3IgYWZ0ZXIgaXRzIGR1cmF0aW9uIHdhcyB1cC4EoQEKCQkJVGhlIFtldmVudF0oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pIGVtaXR0ZWQKCQkJYnkgdGhpcyBwYWxsZXQuCgkJCS0CDEBwYWxsZXRfY29udHJhY3RzGHBhbGxldBRFdmVudAQEVAABIDBJbnN0YW50aWF0ZWQIASBkZXBsb3llciQBMFQ6OkFjY291bnRJZAABIGNvbnRyYWN0JAEwVDo6QWNjb3VudElkAAAE2ENvbnRyYWN0IGRlcGxveWVkIGJ5IGFkZHJlc3MgYXQgdGhlIHNwZWNpZmllZCBhZGRyZXNzLihUZXJtaW5hdGVkCAEgY29udHJhY3QkATBUOjpBY2NvdW50SWQEhFRoZSBjb250cmFjdCB0aGF0IHdhcyB0ZXJtaW5hdGVkLgEsYmVuZWZpY2lhcnkkATBUOjpBY2NvdW50SWQE5FRoZSBhY2NvdW50IHRoYXQgcmVjZWl2ZWQgdGhlIGNvbnRyYWN0cyByZW1haW5pbmcgYmFsYW5jZQEYaENvbnRyYWN0IGhhcyBiZWVuIHJlbW92ZWQuABgjIE5vdGUAPQFUaGUgb25seSB3YXkgZm9yIGEgY29udHJhY3QgdG8gYmUgcmVtb3ZlZCBhbmQgZW1pdHRpbmcgdGhpcyBldmVudCBpcyBieSBjYWxsaW5nRGBzZWFsX3Rlcm1pbmF0ZWAuKENvZGVTdG9yZWQEASRjb2RlX2hhc2g1AQEcVDo6SGFzaAACBLRDb2RlIHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIGhhcyBiZWVuIHN0b3JlZC48Q29udHJhY3RFbWl0dGVkCAEgY29udHJhY3QkATBUOjpBY2NvdW50SWQEkFRoZSBjb250cmFjdCB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LgEQZGF0YWQBHFZlYzx1OD4INQFEYXRhIHN1cHBsaWVkIGJ5IHRoZSBjb250cmFjdC4gTWV0YWRhdGEgZ2VuZXJhdGVkIGR1cmluZyBjb250cmFjdCBjb21waWxhdGlvblxpcyBuZWVkZWQgdG8gZGVjb2RlIGl0LgMEnEEgY3VzdG9tIGV2ZW50IGVtaXR0ZWQgYnkgdGhlIGNvbnRyYWN0LixDb2RlUmVtb3ZlZAQBJGNvZGVfaGFzaDUBARxUOjpIYXNoAAQErEEgY29kZSB3aXRoIHRoZSBzcGVjaWZpZWQgaGFzaCB3YXMgcmVtb3ZlZC5MQ29udHJhY3RDb2RlVXBkYXRlZAwBIGNvbnRyYWN0JAEwVDo6QWNjb3VudElkBIxUaGUgY29udHJhY3QgdGhhdCBoYXMgYmVlbiB1cGRhdGVkLgE0bmV3X2NvZGVfaGFzaDUBARxUOjpIYXNoBLBOZXcgY29kZSBoYXNoIHRoYXQgd2FzIHNldCBmb3IgdGhlIGNvbnRyYWN0LgE0b2xkX2NvZGVfaGFzaDUBARxUOjpIYXNoBIxQcmV2aW91cyBjb2RlIGhhc2ggb2YgdGhlIGNvbnRyYWN0LgUEeEEgY29udHJhY3QncyBjb2RlIHdhcyB1cGRhdGVkLhhDYWxsZWQIARhjYWxsZXIkATBUOjpBY2NvdW50SWQEnFRoZSBhY2NvdW50IHRoYXQgY2FsbGVkIHRoZSBgY29udHJhY3RgLgEgY29udHJhY3QkATBUOjpBY2NvdW50SWQEdFRoZSBjb250cmFjdCB0aGF0IHdhcyBjYWxsZWQuBhwRAUEgY29udHJhY3Qgd2FzIGNhbGxlZCBlaXRoZXIgYnkgYSBwbGFpbiBhY2NvdW50IG9yIGFub3RoZXIgY29udHJhY3QuABgjIE5vdGUAMQFQbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgbGlrZSBhbGwgZXZlbnRzIHRoaXMgaXMgb25seSBlbWl0dGVkIGZvciBzdWNjZXNzZnVsKQFjYWxscy4gVGhpcyBpcyBiZWNhdXNlIG9uIGZhaWx1cmUgYWxsIHN0b3JhZ2UgY2hhbmdlcyBpbmNsdWRpbmcgZXZlbnRzIGFyZTByb2xsZWQgYmFjay44RGVsZWdhdGVDYWxsZWQIASBjb250cmFjdCQBMFQ6OkFjY291bnRJZAghAVRoZSBjb250cmFjdCB0aGF0IHBlcmZvcm1lZCB0aGUgZGVsZWdhdGUgY2FsbCBhbmQgaGVuY2UgaW4gd2hvc2UgY29udGV4dHB0aGUgYGNvZGVfaGFzaGAgaXMgZXhlY3V0ZWQuASRjb2RlX2hhc2g1AQEsQ29kZUhhc2g8VD4EnFRoZSBjb2RlIGhhc2ggdGhhdCB3YXMgZGVsZWdhdGUgY2FsbGVkLgccnEEgY29udHJhY3QgZGVsZWdhdGUgY2FsbGVkIGEgY29kZSBoYXNoLgAYIyBOb3RlADEBUGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGxpa2UgYWxsIGV2ZW50cyB0aGlzIGlzIG9ubHkgZW1pdHRlZCBmb3Igc3VjY2Vzc2Z1bCkBY2FsbHMuIFRoaXMgaXMgYmVjYXVzZSBvbiBmYWlsdXJlIGFsbCBzdG9yYWdlIGNoYW5nZXMgaW5jbHVkaW5nIGV2ZW50cyBhcmUwcm9sbGVkIGJhY2suBKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQkxAgxAcGFsbGV0X2ltX29ubGluZRhwYWxsZXQURXZlbnQEBFQAAQxESGVhcnRiZWF0UmVjZWl2ZWQEATBhdXRob3JpdHlfaWTNAQE4VDo6QXV0aG9yaXR5SWQAAATAQSBuZXcgaGVhcnRiZWF0IHdhcyByZWNlaXZlZCBmcm9tIGBBdXRob3JpdHlJZGAuHEFsbEdvb2QAAQTQQXQgdGhlIGVuZCBvZiB0aGUgc2Vzc2lvbiwgbm8gb2ZmZW5jZSB3YXMgY29tbWl0dGVkLixTb21lT2ZmbGluZQQBHG9mZmxpbmU1AgFsVmVjPElkZW50aWZpY2F0aW9uVHVwbGU8VD4+AAIEKQFBdCB0aGUgZW5kIG9mIHRoZSBzZXNzaW9uLCBhdCBsZWFzdCBvbmUgdmFsaWRhdG9yIHdhcyBmb3VuZCB0byBiZSBvZmZsaW5lLgShAQoJCQlUaGUgW2V2ZW50XShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykgZW1pdHRlZAoJCQlieSB0aGlzIHBhbGxldC4KCQkJNQIAAAI5AgA5AgAABAgkWAA9Agw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50AAEEKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4IAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuBKEBCgkJCVRoZSBbZXZlbnRdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKSBlbWl0dGVkCgkJCWJ5IHRoaXMgcGFsbGV0LgoJCQlBAgw8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABJCBQcm9wb3NlZAQBOHByb3Bvc2FsX2luZGV4IAE0UHJvcG9zYWxJbmRleAAABDROZXcgcHJvcG9zYWwuIFNwZW5kaW5nBAFAYnVkZ2V0X3JlbWFpbmluZ2wBPEJhbGFuY2VPZjxULCBJPgABBORXZSBoYXZlIGVuZGVkIGEgc3BlbmQgcGVyaW9kIGFuZCB3aWxsIG5vdyBhbGxvY2F0ZSBmdW5kcy4cQXdhcmRlZAwBOHByb3Bvc2FsX2luZGV4IAE0UHJvcG9zYWxJbmRleAABFGF3YXJkbAE8QmFsYW5jZU9mPFQsIEk+AAEcYWNjb3VudCQBMFQ6OkFjY291bnRJZAACBHxTb21lIGZ1bmRzIGhhdmUgYmVlbiBhbGxvY2F0ZWQuIFJlamVjdGVkCAE4cHJvcG9zYWxfaW5kZXggATRQcm9wb3NhbEluZGV4AAEcc2xhc2hlZGwBPEJhbGFuY2VPZjxULCBJPgADBLBBIHByb3Bvc2FsIHdhcyByZWplY3RlZDsgZnVuZHMgd2VyZSBzbGFzaGVkLhRCdXJudAQBLGJ1cm50X2Z1bmRzbAE8QmFsYW5jZU9mPFQsIEk+AAQEiFNvbWUgb2Ygb3VyIGZ1bmRzIGhhdmUgYmVlbiBidXJudC4gUm9sbG92ZXIEAUByb2xsb3Zlcl9iYWxhbmNlbAE8QmFsYW5jZU9mPFQsIEk+AAUELQFTcGVuZGluZyBoYXMgZmluaXNoZWQ7IHRoaXMgaXMgdGhlIGFtb3VudCB0aGF0IHJvbGxzIG92ZXIgdW50aWwgbmV4dCBzcGVuZC4cRGVwb3NpdAQBFHZhbHVlbAE8QmFsYW5jZU9mPFQsIEk+AAYEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGRlcG9zaXRlZC40U3BlbmRBcHByb3ZlZAwBOHByb3Bvc2FsX2luZGV4IAE0UHJvcG9zYWxJbmRleAABGGFtb3VudGwBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5JAEwVDo6QWNjb3VudElkAAcEnEEgbmV3IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLjxVcGRhdGVkSW5hY3RpdmUIASxyZWFjdGl2YXRlZGwBPEJhbGFuY2VPZjxULCBJPgABLGRlYWN0aXZhdGVkbAE8QmFsYW5jZU9mPFQsIEk+AAgEzFRoZSBpbmFjdGl2ZSBmdW5kcyBvZiB0aGUgcGFsbGV0IGhhdmUgYmVlbiB1cGRhdGVkLgShAQoJCQlUaGUgW2V2ZW50XShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykgZW1pdHRlZAoJCQlieSB0aGlzIHBhbGxldC4KCQkJRQIMWHBhbGxldF9kOV9jb3VuY2lsX2xvY2sYcGFsbGV0FEV2ZW50BARUAAEgXEFjY291bnROb21pbmF0ZWRGb3JMb2NrBAAkATBUOjpBY2NvdW50SWQAAAA8UHJvcG9zYWxGZWVQYWlkCAAkATBUOjpBY2NvdW50SWQAAGwBMEJhbGFuY2VPZjxUPgABADBWb3RlUmVjb3JkZWQQACQBMFQ6OkFjY291bnRJZAAAJAEwVDo6QWNjb3VudElkAABJAgFAQWNjb3VudExvY2tTdGF0ZQAA+AEQYm9vbAACBLB2b3RlciwgcHJvcG9zZWQgYWNjb3VudCBsb2NrIHN0YXRlLCBkZWNpc2lvbjRBY2NvdW50TG9ja2VkBAAkATBUOjpBY2NvdW50SWQAAwA8QWNjb3VudFVubG9ja2VkBAAkATBUOjpBY2NvdW50SWQABABkQWNjb3VudE5vbWluYXRlZEZvclVubG9jawQAJAEwVDo6QWNjb3VudElkAAUALFZvdGVTdGFydGVkAAYAJFZvdGVFbmRlZAgAJAEwVDo6QWNjb3VudElkAABNAgEoVm90ZVJlc3VsdAAHAAShAQoJCQlUaGUgW2V2ZW50XShodHRwczovL2RvY3Muc3Vic3RyYXRlLmlvL21haW4tZG9jcy9idWlsZC9ldmVudHMtZXJyb3JzLykgZW1pdHRlZAoJCQlieSB0aGlzIHBhbGxldC4KCQkJSQIMWHBhbGxldF9kOV9jb3VuY2lsX2xvY2sUdHlwZXNAQWNjb3VudExvY2tTdGF0ZQABCBhMb2NrZWQAAAAgVW5sb2NrZWQAAQAATQIMWHBhbGxldF9kOV9jb3VuY2lsX2xvY2sUdHlwZXMoVm90ZVJlc3VsdAABDBhQYXNzZWQAAAAgUmVqZWN0ZWQAAQAwSW5jb25jbHVzaXZlCAAgAQx1MzIAACABDHUzMgACAABRAgxMcGFsbGV0X2Q5X211bHRpX3NpZxhwYWxsZXQURXZlbnQEBFQAARxwTXVsdGlTaWduYXR1cmVBY2NvdW50Q3JlYXRlZAgAJAEwVDo6QWNjb3VudElkAAAkATBUOjpBY2NvdW50SWQAAARIKGNyZWF0b3IsIGNyZWF0ZWQpcE11bHRpU2lnbmF0dXJlQWNjb3VudFVwZGF0ZWQIACQBMFQ6OkFjY291bnRJZAAAJAEwVDo6QWNjb3VudElkAAEESCh1cGRhdGVyLCB1cGRhdGVkKTxOZXdDYWxsQXV0aG9yZWQIACQBMFQ6OkFjY291bnRJZAAADAEgW3U4OyAzMl0AAgSkbmV3IHRyYW5zYWN0aW9uIGF1dGhvcnMgKGF1dGhvciwgY2FsbF9pZCk0QXBwcm92YWxBZGRlZAgAJAEwVDo6QWNjb3VudElkAAAkATBUOjpBY2NvdW50SWQAAwT8YWRkIGFwcHJvdmFsIHRvIHRyYW5zYWN0aW9uIChtdWx0aSBzaWduYXR1cmUgYWNjb3VudCwgYXBwcm92ZXIpPEFwcHJvdmFsUmVtb3ZlZAgAJAEwVDo6QWNjb3VudElkAAAkATBUOjpBY2NvdW50SWQABAQRAXJlbW92ZSBhcHByb3ZhbCBmcm9tIHRyYW5zYWN0aW9uIChtdWx0aSBzaWduYXR1cmUgYWNjb3VudCwgYXBwcm92ZXIpMENhbGxFeGVjdXRlZAQADAEgW3U4OyAzMl0ABQQoKGV4ZWN1dG9yKUxNaW5BcHByb3ZhbHNDaGFuZ2VkCAAkATBUOjpBY2NvdW50SWQAACABDHUzMgAGBBEBbXNhIHNldCBuZXcgbWluaW11bSBhcHByb3ZhbHMgKG11bHRpIHNpZ25hdHVyZSBhY2NvdW50LCBuZXcgbWluaW11bSkEoQEKCQkJVGhlIFtldmVudF0oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pIGVtaXR0ZWQKCQkJYnkgdGhpcyBwYWxsZXQuCgkJCVUCCDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEACABDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAAWQIAAAI1AQBdAgAAAikBAGECCDBmcmFtZV9zeXN0ZW1YTGFzdFJ1bnRpbWVVcGdyYWRlSW5mbwAACAEwc3BlY192ZXJzaW9ujQEBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWVlAgFkc3BfcnVudGltZTo6UnVudGltZVN0cmluZwAAZQIAAAUCAGkCDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9ja5UBARhXZWlnaHQAASRtYXhfYmxvY2uVAQEYV2VpZ2h0AAEkcGVyX2NsYXNzbQIBhFBlckRpc3BhdGNoQ2xhc3M8V2VpZ2h0c1BlckNsYXNzPgAAbQIMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAFxAgAMARhub3JtYWxxAgEEVAABLG9wZXJhdGlvbmFscQIBBFQAASRtYW5kYXRvcnlxAgEEVAAAcQIMMGZyYW1lX3N5c3RlbRhsaW1pdHM8V2VpZ2h0c1BlckNsYXNzAAAQAThiYXNlX2V4dHJpbnNpY5UBARhXZWlnaHQAATRtYXhfZXh0cmluc2ljdQIBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFsdQIBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWR1AgE4T3B0aW9uPFdlaWdodD4AAHUCBBhPcHRpb24EBFQBlQEBCBBOb25lAAAAEFNvbWUEAJUBAAABAAB5AgwwZnJhbWVfc3lzdGVtGGxpbWl0cyxCbG9ja0xlbmd0aAAABAEMbWF4fQIBVFBlckRpc3BhdGNoQ2xhc3M8dTMyPgAAfQIMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEgAAwBGG5vcm1hbCABBFQAASxvcGVyYXRpb25hbCABBFQAASRtYW5kYXRvcnkgAQRUAACBAggoc3Bfd2VpZ2h0czxSdW50aW1lRGJXZWlnaHQAAAgBEHJlYWQcAQx1NjQAARR3cml0ZRwBDHU2NAAAhQIIKHNwX3ZlcnNpb244UnVudGltZVZlcnNpb24AACABJHNwZWNfbmFtZWUCATRSdW50aW1lU3RyaW5nAAEkaW1wbF9uYW1lZQIBNFJ1bnRpbWVTdHJpbmcAAURhdXRob3JpbmdfdmVyc2lvbiABDHUzMgABMHNwZWNfdmVyc2lvbiABDHUzMgABMGltcGxfdmVyc2lvbiABDHUzMgABEGFwaXOJAgEcQXBpc1ZlYwABTHRyYW5zYWN0aW9uX3ZlcnNpb24gAQx1MzIAATRzdGF0ZV92ZXJzaW9uEAEIdTgAAIkCBAxDb3cEBFQBjQIABACNAgAAAI0CAAACkQIAkQIAAAQIpCAAlQIAAAUEAJkCDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEYPEludmFsaWRTcGVjTmFtZQAACBEBVGhlIG5hbWUgb2Ygc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBtYXRjaCBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS5oU3BlY1ZlcnNpb25OZWVkc1RvSW5jcmVhc2UAAQhBAVRoZSBzcGVjaWZpY2F0aW9uIHZlcnNpb24gaXMgbm90IGFsbG93ZWQgdG8gZGVjcmVhc2UgYmV0d2VlbiB0aGUgY3VycmVudCBydW50aW1lUGFuZCB0aGUgbmV3IHJ1bnRpbWUudEZhaWxlZFRvRXh0cmFjdFJ1bnRpbWVWZXJzaW9uAAIM7EZhaWxlZCB0byBleHRyYWN0IHRoZSBydW50aW1lIHZlcnNpb24gZnJvbSB0aGUgbmV3IHJ1bnRpbWUuAAkBRWl0aGVyIGNhbGxpbmcgYENvcmVfdmVyc2lvbmAgb3IgZGVjb2RpbmcgYFJ1bnRpbWVWZXJzaW9uYCBmYWlsZWQuTE5vbkRlZmF1bHRDb21wb3NpdGUAAwT8U3VpY2lkZSBjYWxsZWQgd2hlbiB0aGUgYWNjb3VudCBoYXMgbm9uLWRlZmF1bHQgY29tcG9zaXRlIGRhdGEuPE5vblplcm9SZWZDb3VudAAEBDUBVGhlcmUgaXMgYSBub24temVybyByZWZlcmVuY2UgY291bnQgcHJldmVudGluZyB0aGUgYWNjb3VudCBmcm9tIGJlaW5nIHB1cmdlZC4wQ2FsbEZpbHRlcmVkAAUE0FRoZSBvcmlnaW4gZmlsdGVyIHByZXZlbnQgdGhlIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4EbEVycm9yIGZvciB0aGUgU3lzdGVtIHBhbGxldJ0CDDRzcF9hcml0aG1ldGljLGZpeGVkX3BvaW50JEZpeGVkVTEyOAAABABsARB1MTI4AAChAghocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQgUmVsZWFzZXMAAQgkVjFBbmNpZW50AAAACFYyAAEAAKUCDDRwYWxsZXRfYXNzZXRzFHR5cGVzMEFzc2V0RGV0YWlscwwcQmFsYW5jZQFsJEFjY291bnRJZAEkOERlcG9zaXRCYWxhbmNlAWwAMAEUb3duZXIkASRBY2NvdW50SWQAARhpc3N1ZXIkASRBY2NvdW50SWQAARRhZG1pbiQBJEFjY291bnRJZAABHGZyZWV6ZXIkASRBY2NvdW50SWQAARhzdXBwbHlsARxCYWxhbmNlAAEcZGVwb3NpdGwBOERlcG9zaXRCYWxhbmNlAAEsbWluX2JhbGFuY2VsARxCYWxhbmNlAAE0aXNfc3VmZmljaWVudPgBEGJvb2wAASBhY2NvdW50cyABDHUzMgABLHN1ZmZpY2llbnRzIAEMdTMyAAEkYXBwcm92YWxzIAEMdTMyAAEYc3RhdHVzqQIBLEFzc2V0U3RhdHVzAACpAgw0cGFsbGV0X2Fzc2V0cxR0eXBlcyxBc3NldFN0YXR1cwABDBBMaXZlAAAAGEZyb3plbgABAChEZXN0cm95aW5nAAIAAK0CAAAECCAkALECDDRwYWxsZXRfYXNzZXRzFHR5cGVzMEFzc2V0QWNjb3VudAwcQmFsYW5jZQFsOERlcG9zaXRCYWxhbmNlAWwURXh0cmEBzAAQARxiYWxhbmNlbAEcQmFsYW5jZQABJGlzX2Zyb3plbvgBEGJvb2wAARhyZWFzb261AgF8RXhpc3RlbmNlUmVhc29uPERlcG9zaXRCYWxhbmNlPgABFGV4dHJhzAEURXh0cmEAALUCDDRwYWxsZXRfYXNzZXRzFHR5cGVzPEV4aXN0ZW5jZVJlYXNvbgQcQmFsYW5jZQFsARAgQ29uc3VtZXIAAAAoU3VmZmljaWVudAABACxEZXBvc2l0SGVsZAQAbAEcQmFsYW5jZQACADxEZXBvc2l0UmVmdW5kZWQAAwAAuQIAAAQMICQkAL0CDDRwYWxsZXRfYXNzZXRzFHR5cGVzIEFwcHJvdmFsCBxCYWxhbmNlAWw4RGVwb3NpdEJhbGFuY2UBbAAIARhhbW91bnRsARxCYWxhbmNlAAEcZGVwb3NpdGwBOERlcG9zaXRCYWxhbmNlAADBAgw0cGFsbGV0X2Fzc2V0cxR0eXBlczRBc3NldE1ldGFkYXRhCDhEZXBvc2l0QmFsYW5jZQFsNEJvdW5kZWRTdHJpbmcBxQIAFAEcZGVwb3NpdGwBOERlcG9zaXRCYWxhbmNlAAEQbmFtZcUCATRCb3VuZGVkU3RyaW5nAAEYc3ltYm9sxQIBNEJvdW5kZWRTdHJpbmcAASBkZWNpbWFscxABCHU4AAEkaXNfZnJvemVu+AEQYm9vbAAAxQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAZAEYVmVjPFQ+AADJAgw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQURXJyb3IIBFQABEkAAVAoQmFsYW5jZUxvdwAABBUBQWNjb3VudCBiYWxhbmNlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0cmFuc2ZlciBhbW91bnQuJE5vQWNjb3VudAABBJBUaGUgYWNjb3VudCB0byBhbHRlciBkb2VzIG5vdCBleGlzdC4wTm9QZXJtaXNzaW9uAAIE6FRoZSBzaWduaW5nIGFjY291bnQgaGFzIG5vIHBlcm1pc3Npb24gdG8gZG8gdGhlIG9wZXJhdGlvbi4cVW5rbm93bgADBHhUaGUgZ2l2ZW4gYXNzZXQgSUQgaXMgdW5rbm93bi4YRnJvemVuAAQEdFRoZSBvcmlnaW4gYWNjb3VudCBpcyBmcm96ZW4uFEluVXNlAAUEeFRoZSBhc3NldCBJRCBpcyBhbHJlYWR5IHRha2VuLihCYWRXaXRuZXNzAAYEbEludmFsaWQgd2l0bmVzcyBkYXRhIGdpdmVuLjhNaW5CYWxhbmNlWmVybwAHBIxNaW5pbXVtIGJhbGFuY2Ugc2hvdWxkIGJlIG5vbi16ZXJvLkxVbmF2YWlsYWJsZUNvbnN1bWVyAAgMWQFVbmFibGUgdG8gaW5jcmVtZW50IHRoZSBjb25zdW1lciByZWZlcmVuY2UgY291bnRlcnMgb24gdGhlIGFjY291bnQuIEVpdGhlciBubyBwcm92aWRlck0BcmVmZXJlbmNlIGV4aXN0cyB0byBhbGxvdyBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgYSBub24tc2VsZi1zdWZmaWNpZW50IGFzc2V0LCBvciBvbmXwZmV3ZXIgdGhlbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29uc3VtZXJzIGhhcyBiZWVuIHJlYWNoZWQuLEJhZE1ldGFkYXRhAAkEXEludmFsaWQgbWV0YWRhdGEgZ2l2ZW4uKFVuYXBwcm92ZWQACgTETm8gYXBwcm92YWwgZXhpc3RzIHRoYXQgd291bGQgYWxsb3cgdGhlIHRyYW5zZmVyLiBXb3VsZERpZQALBDUBVGhlIHNvdXJjZSBhY2NvdW50IHdvdWxkIG5vdCBzdXJ2aXZlIHRoZSB0cmFuc2ZlciBhbmQgaXQgbmVlZHMgdG8gc3RheSBhbGl2ZS40QWxyZWFkeUV4aXN0cwAMBIRUaGUgYXNzZXQtYWNjb3VudCBhbHJlYWR5IGV4aXN0cy4kTm9EZXBvc2l0AA0E1FRoZSBhc3NldC1hY2NvdW50IGRvZXNuJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIGRlcG9zaXQuJFdvdWxkQnVybgAOBMRUaGUgb3BlcmF0aW9uIHdvdWxkIHJlc3VsdCBpbiBmdW5kcyBiZWluZyBidXJuZWQuJExpdmVBc3NldAAPCFkBVGhlIGFzc2V0IGlzIGEgbGl2ZSBhc3NldCBhbmQgaXMgYWN0aXZlbHkgYmVpbmcgdXNlZC4gVXN1YWxseSBlbWl0IGZvciBvcGVyYXRpb25zIHN1Y2gdAWFzIGBzdGFydF9kZXN0cm95YCB3aGljaCByZXF1aXJlIHRoZSBhc3NldCB0byBiZSBpbiBhIGRlc3Ryb3lpbmcgc3RhdGUuMEFzc2V0Tm90TGl2ZQAQBMhUaGUgYXNzZXQgaXMgbm90IGxpdmUsIGFuZCBsaWtlbHkgYmVpbmcgZGVzdHJveWVkLjxJbmNvcnJlY3RTdGF0dXMAEQSwVGhlIGFzc2V0IHN0YXR1cyBpcyBub3QgdGhlIGV4cGVjdGVkIHN0YXR1cy4kTm90RnJvemVuABIE2FRoZSBhc3NldCBzaG91bGQgYmUgZnJvemVuIGJlZm9yZSB0aGUgZ2l2ZW4gb3BlcmF0aW9uLjhDYWxsYmFja0ZhaWxlZAATBIRDYWxsYmFjayBhY3Rpb24gcmVzdWx0ZWQgaW4gZXJyb3IEtQEKCQkJQ3VzdG9tIFtkaXNwYXRjaCBlcnJvcnNdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKQoJCQlvZiB0aGlzIHBhbGxldC4KCQkJzQIMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAHRAQRTAAAEANECARhWZWM8VD4AANECAAAC0QEA1QIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE1AQRTAAAEAFkCARhWZWM8VD4AANkCCERwYWxsZXRfY29sbGVjdGl2ZRRWb3RlcwgkQWNjb3VudElkASQsQmxvY2tOdW1iZXIBIAAUARRpbmRleCABNFByb3Bvc2FsSW5kZXgAASR0aHJlc2hvbGQgASxNZW1iZXJDb3VudAABEGF5ZXNUAThWZWM8QWNjb3VudElkPgABEG5heXNUAThWZWM8QWNjb3VudElkPgABDGVuZCABLEJsb2NrTnVtYmVyAADdAgxEcGFsbGV0X2NvbGxlY3RpdmUYcGFsbGV0FEVycm9yCARUAARJAAEoJE5vdE1lbWJlcgAABFxBY2NvdW50IGlzIG5vdCBhIG1lbWJlckREdXBsaWNhdGVQcm9wb3NhbAABBHxEdXBsaWNhdGUgcHJvcG9zYWxzIG5vdCBhbGxvd2VkPFByb3Bvc2FsTWlzc2luZwACBExQcm9wb3NhbCBtdXN0IGV4aXN0KFdyb25nSW5kZXgAAwRATWlzbWF0Y2hlZCBpbmRleDREdXBsaWNhdGVWb3RlAAQEWER1cGxpY2F0ZSB2b3RlIGlnbm9yZWRIQWxyZWFkeUluaXRpYWxpemVkAAUEgE1lbWJlcnMgYXJlIGFscmVhZHkgaW5pdGlhbGl6ZWQhIFRvb0Vhcmx5AAYEAQFUaGUgY2xvc2UgY2FsbCB3YXMgbWFkZSB0b28gZWFybHksIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB2b3RpbmcuQFRvb01hbnlQcm9wb3NhbHMABwT8VGhlcmUgY2FuIG9ubHkgYmUgYSBtYXhpbXVtIG9mIGBNYXhQcm9wb3NhbHNgIGFjdGl2ZSBwcm9wb3NhbHMuTFdyb25nUHJvcG9zYWxXZWlnaHQACATQVGhlIGdpdmVuIHdlaWdodCBib3VuZCBmb3IgdGhlIHByb3Bvc2FsIHdhcyB0b28gbG93LkxXcm9uZ1Byb3Bvc2FsTGVuZ3RoAAkE0FRoZSBnaXZlbiBsZW5ndGggYm91bmQgZm9yIHRoZSBwcm9wb3NhbCB3YXMgdG9vIGxvdy4EtQEKCQkJQ3VzdG9tIFtkaXNwYXRjaCBlcnJvcnNdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKQoJCQlvZiB0aGlzIHBhbGxldC4KCQkJ4QIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAZAEYVmVjPFQ+AADlAgxAcGFsbGV0X2NvbnRyYWN0cxB3YXNtQFByZWZhYldhc21Nb2R1bGUEBFQAABQBbGluc3RydWN0aW9uX3dlaWdodHNfdmVyc2lvbo0BAQx1MzIAARxpbml0aWFsjQEBDHUzMgABHG1heGltdW2NAQEMdTMyAAEQY29kZekCAURSZWxheGVkQ29kZVZlYzxUPgABLGRldGVybWluaXNtoQEBLERldGVybWluaXNtAADpAgxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUARAEUwAABABkARhWZWM8VD4AAO0CDEBwYWxsZXRfY29udHJhY3RzEHdhc20kT3duZXJJbmZvBARUAAAMARRvd25lciQBOEFjY291bnRJZE9mPFQ+AAEcZGVwb3NpdPQBMEJhbGFuY2VPZjxUPgABIHJlZmNvdW50SAEMdTY0AADxAgxAcGFsbGV0X2NvbnRyYWN0cxxzdG9yYWdlMENvbnRyYWN0SW5mbwQEVAAAIAEcdHJpZV9pZGABGFRyaWVJZAABPGRlcG9zaXRfYWNjb3VudPUCAUREZXBvc2l0QWNjb3VudDxUPgABJGNvZGVfaGFzaDUBASxDb2RlSGFzaDxUPgABNHN0b3JhZ2VfYnl0ZXMgAQx1MzIAATRzdG9yYWdlX2l0ZW1zIAEMdTMyAAFQc3RvcmFnZV9ieXRlX2RlcG9zaXRsATBCYWxhbmNlT2Y8VD4AAVBzdG9yYWdlX2l0ZW1fZGVwb3NpdGwBMEJhbGFuY2VPZjxUPgABUHN0b3JhZ2VfYmFzZV9kZXBvc2l0bAEwQmFsYW5jZU9mPFQ+AAD1AgxAcGFsbGV0X2NvbnRyYWN0cxxzdG9yYWdlOERlcG9zaXRBY2NvdW50BARUAAAEACQBOEFjY291bnRJZE9mPFQ+AAD5AgxAcGFsbGV0X2NvbnRyYWN0cxxzdG9yYWdlUERlbGV0aW9uUXVldWVNYW5hZ2VyBARUAAAIAThpbnNlcnRfY291bnRlciABDHUzMgABOGRlbGV0ZV9jb3VudGVyIAEMdTMyAAD9AgxAcGFsbGV0X2NvbnRyYWN0cyBzY2hlZHVsZSBTY2hlZHVsZQQEVAAADAEYbGltaXRzAQMBGExpbWl0cwABTGluc3RydWN0aW9uX3dlaWdodHMFAwFUSW5zdHJ1Y3Rpb25XZWlnaHRzPFQ+AAE8aG9zdF9mbl93ZWlnaHRzCQMBQEhvc3RGbldlaWdodHM8VD4AAAEDDEBwYWxsZXRfY29udHJhY3RzIHNjaGVkdWxlGExpbWl0cwAAKAEwZXZlbnRfdG9waWNzIAEMdTMyAAEcZ2xvYmFscyABDHUzMgABGGxvY2FscyABDHUzMgABKHBhcmFtZXRlcnMgAQx1MzIAATBtZW1vcnlfcGFnZXMgAQx1MzIAASh0YWJsZV9zaXplIAEMdTMyAAE0YnJfdGFibGVfc2l6ZSABDHUzMgABLHN1YmplY3RfbGVuIAEMdTMyAAEscGF5bG9hZF9sZW4gAQx1MzIAAThydW50aW1lX21lbW9yeSABDHUzMgAABQMMQHBhbGxldF9jb250cmFjdHMgc2NoZWR1bGVISW5zdHJ1Y3Rpb25XZWlnaHRzBARUAADUARx2ZXJzaW9uIAEMdTMyAAEgZmFsbGJhY2sgAQx1MzIAASBpNjRjb25zdCABDHUzMgABHGk2NGxvYWQgAQx1MzIAASBpNjRzdG9yZSABDHUzMgABGHNlbGVjdCABDHUzMgABEHIjaWYgAQx1MzIAAQhiciABDHUzMgABFGJyX2lmIAEMdTMyAAEgYnJfdGFibGUgAQx1MzIAAUhicl90YWJsZV9wZXJfZW50cnkgAQx1MzIAARBjYWxsIAEMdTMyAAE0Y2FsbF9pbmRpcmVjdCABDHUzMgABOGNhbGxfcGVyX2xvY2FsIAEMdTMyAAEkbG9jYWxfZ2V0IAEMdTMyAAEkbG9jYWxfc2V0IAEMdTMyAAEkbG9jYWxfdGVlIAEMdTMyAAEoZ2xvYmFsX2dldCABDHUzMgABKGdsb2JhbF9zZXQgAQx1MzIAAThtZW1vcnlfY3VycmVudCABDHUzMgABLG1lbW9yeV9ncm93IAEMdTMyAAEYaTY0Y2x6IAEMdTMyAAEYaTY0Y3R6IAEMdTMyAAEkaTY0cG9wY250IAEMdTMyAAEYaTY0ZXF6IAEMdTMyAAE0aTY0ZXh0ZW5kc2kzMiABDHUzMgABNGk2NGV4dGVuZHVpMzIgAQx1MzIAAShpMzJ3cmFwaTY0IAEMdTMyAAEUaTY0ZXEgAQx1MzIAARRpNjRuZSABDHUzMgABGGk2NGx0cyABDHUzMgABGGk2NGx0dSABDHUzMgABGGk2NGd0cyABDHUzMgABGGk2NGd0dSABDHUzMgABGGk2NGxlcyABDHUzMgABGGk2NGxldSABDHUzMgABGGk2NGdlcyABDHUzMgABGGk2NGdldSABDHUzMgABGGk2NGFkZCABDHUzMgABGGk2NHN1YiABDHUzMgABGGk2NG11bCABDHUzMgABHGk2NGRpdnMgAQx1MzIAARxpNjRkaXZ1IAEMdTMyAAEcaTY0cmVtcyABDHUzMgABHGk2NHJlbXUgAQx1MzIAARhpNjRhbmQgAQx1MzIAARRpNjRvciABDHUzMgABGGk2NHhvciABDHUzMgABGGk2NHNobCABDHUzMgABHGk2NHNocnMgAQx1MzIAARxpNjRzaHJ1IAEMdTMyAAEcaTY0cm90bCABDHUzMgABHGk2NHJvdHIgAQx1MzIAAAkDDEBwYWxsZXRfY29udHJhY3RzIHNjaGVkdWxlNEhvc3RGbldlaWdodHMEBFQAAPQBGGNhbGxlcpUBARhXZWlnaHQAASxpc19jb250cmFjdJUBARhXZWlnaHQAASRjb2RlX2hhc2iVAQEYV2VpZ2h0AAE0b3duX2NvZGVfaGFzaJUBARhXZWlnaHQAAUBjYWxsZXJfaXNfb3JpZ2lulQEBGFdlaWdodAABHGFkZHJlc3OVAQEYV2VpZ2h0AAEgZ2FzX2xlZnSVAQEYV2VpZ2h0AAEcYmFsYW5jZZUBARhXZWlnaHQAAUR2YWx1ZV90cmFuc2ZlcnJlZJUBARhXZWlnaHQAATxtaW5pbXVtX2JhbGFuY2WVAQEYV2VpZ2h0AAEwYmxvY2tfbnVtYmVylQEBGFdlaWdodAABDG5vd5UBARhXZWlnaHQAATR3ZWlnaHRfdG9fZmVllQEBGFdlaWdodAABDGdhc5UBARhXZWlnaHQAARRpbnB1dJUBARhXZWlnaHQAAThpbnB1dF9wZXJfYnl0ZZUBARhXZWlnaHQAASByI3JldHVybpUBARhXZWlnaHQAATxyZXR1cm5fcGVyX2J5dGWVAQEYV2VpZ2h0AAEkdGVybWluYXRllQEBGFdlaWdodAABGHJhbmRvbZUBARhXZWlnaHQAATRkZXBvc2l0X2V2ZW50lQEBGFdlaWdodAABXGRlcG9zaXRfZXZlbnRfcGVyX3RvcGljlQEBGFdlaWdodAABWGRlcG9zaXRfZXZlbnRfcGVyX2J5dGWVAQEYV2VpZ2h0AAE0ZGVidWdfbWVzc2FnZZUBARhXZWlnaHQAAVhkZWJ1Z19tZXNzYWdlX3Blcl9ieXRllQEBGFdlaWdodAABLHNldF9zdG9yYWdllQEBGFdlaWdodAABYHNldF9zdG9yYWdlX3Blcl9uZXdfYnl0ZZUBARhXZWlnaHQAAWBzZXRfc3RvcmFnZV9wZXJfb2xkX2J5dGWVAQEYV2VpZ2h0AAE0c2V0X2NvZGVfaGFzaJUBARhXZWlnaHQAATRjbGVhcl9zdG9yYWdllQEBGFdlaWdodAABWGNsZWFyX3N0b3JhZ2VfcGVyX2J5dGWVAQEYV2VpZ2h0AAFAY29udGFpbnNfc3RvcmFnZZUBARhXZWlnaHQAAWRjb250YWluc19zdG9yYWdlX3Blcl9ieXRllQEBGFdlaWdodAABLGdldF9zdG9yYWdllQEBGFdlaWdodAABUGdldF9zdG9yYWdlX3Blcl9ieXRllQEBGFdlaWdodAABMHRha2Vfc3RvcmFnZZUBARhXZWlnaHQAAVR0YWtlX3N0b3JhZ2VfcGVyX2J5dGWVAQEYV2VpZ2h0AAEgdHJhbnNmZXKVAQEYV2VpZ2h0AAEQY2FsbJUBARhXZWlnaHQAATRkZWxlZ2F0ZV9jYWxslQEBGFdlaWdodAABXGNhbGxfdHJhbnNmZXJfc3VyY2hhcmdllQEBGFdlaWdodAABUGNhbGxfcGVyX2Nsb25lZF9ieXRllQEBGFdlaWdodAABLGluc3RhbnRpYXRllQEBGFdlaWdodAABeGluc3RhbnRpYXRlX3RyYW5zZmVyX3N1cmNoYXJnZZUBARhXZWlnaHQAAWhpbnN0YW50aWF0ZV9wZXJfaW5wdXRfYnl0ZZUBARhXZWlnaHQAAWRpbnN0YW50aWF0ZV9wZXJfc2FsdF9ieXRllQEBGFdlaWdodAABNGhhc2hfc2hhMl8yNTaVAQEYV2VpZ2h0AAFYaGFzaF9zaGEyXzI1Nl9wZXJfYnl0ZZUBARhXZWlnaHQAATxoYXNoX2tlY2Nha18yNTaVAQEYV2VpZ2h0AAFgaGFzaF9rZWNjYWtfMjU2X3Blcl9ieXRllQEBGFdlaWdodAABPGhhc2hfYmxha2UyXzI1NpUBARhXZWlnaHQAAWBoYXNoX2JsYWtlMl8yNTZfcGVyX2J5dGWVAQEYV2VpZ2h0AAE8aGFzaF9ibGFrZTJfMTI4lQEBGFdlaWdodAABYGhhc2hfYmxha2UyXzEyOF9wZXJfYnl0ZZUBARhXZWlnaHQAATRlY2RzYV9yZWNvdmVylQEBGFdlaWdodAABUGVjZHNhX3RvX2V0aF9hZGRyZXNzlQEBGFdlaWdodAABOHNyMjU1MTlfdmVyaWZ5lQEBGFdlaWdodAABXHNyMjU1MTlfdmVyaWZ5X3Blcl9ieXRllQEBGFdlaWdodAABQHJlZW50cmFuY2VfY291bnSVAQEYV2VpZ2h0AAFgYWNjb3VudF9yZWVudHJhbmNlX2NvdW50lQEBGFdlaWdodAABTGluc3RhbnRpYXRpb25fbm9uY2WVAQEYV2VpZ2h0AAANAwxAcGFsbGV0X2NvbnRyYWN0cxhwYWxsZXQURXJyb3IEBFQAAWxYSW52YWxpZFNjaGVkdWxlVmVyc2lvbgAABAEBQSBuZXcgc2NoZWR1bGUgbXVzdCBoYXZlIGEgZ3JlYXRlciB2ZXJzaW9uIHRoYW4gdGhlIGN1cnJlbnQgb25lLkBJbnZhbGlkQ2FsbEZsYWdzAAEENQFJbnZhbGlkIGNvbWJpbmF0aW9uIG9mIGZsYWdzIHN1cHBsaWVkIHRvIGBzZWFsX2NhbGxgIG9yIGBzZWFsX2RlbGVnYXRlX2NhbGxgLiBPdXRPZkdhcwACBLhUaGUgZXhlY3V0ZWQgY29udHJhY3QgZXhoYXVzdGVkIGl0cyBnYXMgbGltaXQuUE91dHB1dEJ1ZmZlclRvb1NtYWxsAAMEAQFUaGUgb3V0cHV0IGJ1ZmZlciBzdXBwbGllZCB0byBhIGNvbnRyYWN0IEFQSSBjYWxsIHdhcyB0b28gc21hbGwuOFRyYW5zZmVyRmFpbGVkAAQINQFQZXJmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgdHJhbnNmZXIgZmFpbGVkLiBQcm9iYWJseSBiZWNhdXNlIHRoZXJlIGlzbid0IGVub3VnaJRmcmVlIGJhbGFuY2UgaW4gdGhlIHNlbmRlcidzIGFjY291bnQuTE1heENhbGxEZXB0aFJlYWNoZWQABQghAVBlcmZvcm1pbmcgYSBjYWxsIHdhcyBkZW5pZWQgYmVjYXVzZSB0aGUgY2FsbGluZyBkZXB0aCByZWFjaGVkIHRoZSBsaW1pdJRvZiB3aGF0IGlzIHNwZWNpZmllZCBpbiB0aGUgc2NoZWR1bGUuQENvbnRyYWN0Tm90Rm91bmQABgS8Tm8gY29udHJhY3Qgd2FzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgYWRkcmVzcy4wQ29kZVRvb0xhcmdlAAcIPQFUaGUgY29kZSBzdXBwbGllZCB0byBgaW5zdGFudGlhdGVfd2l0aF9jb2RlYCBleGNlZWRzIHRoZSBsaW1pdCBzcGVjaWZpZWQgaW4gdGhlRGN1cnJlbnQgc2NoZWR1bGUuMENvZGVOb3RGb3VuZAAIBMRObyBjb2RlIGNvdWxkIGJlIGZvdW5kIGF0IHRoZSBzdXBwbGllZCBjb2RlIGhhc2guLE91dE9mQm91bmRzAAkEJQFBIGJ1ZmZlciBvdXRzaWRlIG9mIHNhbmRib3ggbWVtb3J5IHdhcyBwYXNzZWQgdG8gYSBjb250cmFjdCBBUEkgZnVuY3Rpb24uOERlY29kaW5nRmFpbGVkAAoEKQFJbnB1dCBwYXNzZWQgdG8gYSBjb250cmFjdCBBUEkgZnVuY3Rpb24gZmFpbGVkIHRvIGRlY29kZSBhcyBleHBlY3RlZCB0eXBlLjxDb250cmFjdFRyYXBwZWQACwSIQ29udHJhY3QgdHJhcHBlZCBkdXJpbmcgZXhlY3V0aW9uLjRWYWx1ZVRvb0xhcmdlAAwEzFRoZSBzaXplIGRlZmluZWQgaW4gYFQ6Ok1heFZhbHVlU2l6ZWAgd2FzIGV4Y2VlZGVkLmBUZXJtaW5hdGVkV2hpbGVSZWVudHJhbnQADQgZAVRlcm1pbmF0aW9uIG9mIGEgY29udHJhY3QgaXMgbm90IGFsbG93ZWQgd2hpbGUgdGhlIGNvbnRyYWN0IGlzIGFscmVhZHngb24gdGhlIGNhbGwgc3RhY2suIENhbiBiZSB0cmlnZ2VyZWQgYnkgYHNlYWxfdGVybWluYXRlYC44SW5wdXRGb3J3YXJkZWQADgRBAWBzZWFsX2NhbGxgIGZvcndhcmRlZCB0aGlzIGNvbnRyYWN0cyBpbnB1dC4gSXQgdGhlcmVmb3JlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuUFJhbmRvbVN1YmplY3RUb29Mb25nAA8E2FRoZSBzdWJqZWN0IHBhc3NlZCB0byBgc2VhbF9yYW5kb21gIGV4Y2VlZHMgdGhlIGxpbWl0LjRUb29NYW55VG9waWNzABAEHQFUaGUgYW1vdW50IG9mIHRvcGljcyBwYXNzZWQgdG8gYHNlYWxfZGVwb3NpdF9ldmVudHNgIGV4Y2VlZHMgdGhlIGxpbWl0LkBOb0NoYWluRXh0ZW5zaW9uABEMRQFUaGUgY2hhaW4gZG9lcyBub3QgcHJvdmlkZSBhIGNoYWluIGV4dGVuc2lvbi4gQ2FsbGluZyB0aGUgY2hhaW4gZXh0ZW5zaW9uIHJlc3VsdHNNAWluIHRoaXMgZXJyb3IuIE5vdGUgdGhhdCB0aGlzIHVzdWFsbHkgIHNob3VsZG4ndCBoYXBwZW4gYXMgZGVwbG95aW5nIHN1Y2ggY29udHJhY3RzMGlzIHJlamVjdGVkLkREdXBsaWNhdGVDb250cmFjdAASBMhBIGNvbnRyYWN0IHdpdGggdGhlIHNhbWUgQWNjb3VudElkIGFscmVhZHkgZXhpc3RzLlxUZXJtaW5hdGVkSW5Db25zdHJ1Y3RvcgATDLhBIGNvbnRyYWN0IHNlbGYgZGVzdHJ1Y3RlZCBpbiBpdHMgY29uc3RydWN0b3IuANBUaGlzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgYSBjYWxsIHRvIGBzZWFsX3Rlcm1pbmF0ZWAuQFJlZW50cmFuY2VEZW5pZWQAFBANAUEgY2FsbCB0cmllZCB0byBpbnZva2UgYSBjb250cmFjdCB0aGF0IGlzIGZsYWdnZWQgYXMgbm9uLXJlZW50cmFudC5dAVRoZSBvbmx5IG90aGVyIGNhdXNlIGlzIHRoYXQgYSBjYWxsIGZyb20gYSBjb250cmFjdCBpbnRvIHRoZSBydW50aW1lIHRyaWVkIHRvIGNhbGwgYmFja0kBaW50byBgcGFsbGV0LWNvbnRyYWN0c2AuIFRoaXMgd291bGQgbWFrZSB0aGUgd2hvbGUgcGFsbGV0IHJlZW50cmFudCB3aXRoIHJlZ2FyZCB0b7xjb250cmFjdCBjb2RlIGV4ZWN1dGlvbiB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLnBTdG9yYWdlRGVwb3NpdE5vdEVub3VnaEZ1bmRzABUEIQFPcmlnaW4gZG9lc24ndCBoYXZlIGVub3VnaCBiYWxhbmNlIHRvIHBheSB0aGUgcmVxdWlyZWQgc3RvcmFnZSBkZXBvc2l0cy5wU3RvcmFnZURlcG9zaXRMaW1pdEV4aGF1c3RlZAAWBA0BTW9yZSBzdG9yYWdlIHdhcyBjcmVhdGVkIHRoYW4gYWxsb3dlZCBieSB0aGUgc3RvcmFnZSBkZXBvc2l0IGxpbWl0LiRDb2RlSW5Vc2UAFwRJAUNvZGUgcmVtb3ZhbCB3YXMgZGVuaWVkIGJlY2F1c2UgdGhlIGNvZGUgaXMgc3RpbGwgaW4gdXNlIGJ5IGF0IGxlYXN0IG9uZSBjb250cmFjdC5AQ29udHJhY3RSZXZlcnRlZAAYECUBVGhlIGNvbnRyYWN0IHJhbiB0byBjb21wbGV0aW9uIGJ1dCBkZWNpZGVkIHRvIHJldmVydCBpdHMgc3RvcmFnZSBjaGFuZ2VzLkkBUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGVycm9yIGlzIG9ubHkgcmV0dXJuZWQgZnJvbSBleHRyaW5zaWNzLiBXaGVuIGNhbGxlZCBkaXJlY3RseV0Bb3IgdmlhIFJQQyBhbiBgT2tgIHdpbGwgYmUgcmV0dXJuZWQuIEluIHRoaXMgY2FzZSB0aGUgY2FsbGVyIG5lZWRzIHRvIGluc3BlY3QgdGhlIGZsYWdzxHRvIGRldGVybWluZSB3aGV0aGVyIGEgcmV2ZXJzaW9uIGhhcyB0YWtlbiBwbGFjZS4wQ29kZVJlamVjdGVkABkgRQFUaGUgY29udHJhY3QncyBjb2RlIHdhcyBmb3VuZCB0byBiZSBpbnZhbGlkIGR1cmluZyB2YWxpZGF0aW9uIG9yIGluc3RydW1lbnRhdGlvbi4ATQFUaGUgbW9zdCBsaWtlbHkgY2F1c2Ugb2YgdGhpcyBpcyB0aGF0IGFuIEFQSSB3YXMgdXNlZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZVEBbm9kZS4gVGhpcyBoYXBwZW5zIGlmIGFuIG9sZGVyIG5vZGUgaXMgdXNlZCB3aXRoIGEgbmV3IHZlcnNpb24gb2YgaW5rIS4gVHJ5IHVwZGF0aW5nqHlvdXIgbm9kZSB0byB0aGUgbmV3ZXN0IGF2YWlsYWJsZSB2ZXJzaW9uLgBRAUEgbW9yZSBkZXRhaWxlZCBlcnJvciBjYW4gYmUgZm91bmQgb24gdGhlIG5vZGUgY29uc29sZSBpZiBkZWJ1ZyBtZXNzYWdlcyBhcmUgZW5hYmxlZKhieSBzdXBwbHlpbmcgYC1scnVudGltZTo6Y29udHJhY3RzPWRlYnVnYC48SW5kZXRlcm1pbmlzdGljABoEIQFBbiBpbmRldGVybWlzdGljIGNvZGUgd2FzIHVzZWQgaW4gYSBjb250ZXh0IHdoZXJlIHRoaXMgaXMgbm90IHBlcm1pdHRlZC4EtQEKCQkJQ3VzdG9tIFtkaXNwYXRjaCBlcnJvcnNdKGh0dHBzOi8vZG9jcy5zdWJzdHJhdGUuaW8vbWFpbi1kb2NzL2J1aWxkL2V2ZW50cy1lcnJvcnMvKQoJCQlvZiB0aGlzIHBhbGxldC4KCQkJEQMAAAQINQEgABUDDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBzQEEUwAABAAZAwEYVmVjPFQ+AAAZAwAAAs0BAB0DEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxBtaXNjNFdyYXBwZXJPcGFxdWUEBFQBIQMACACNAQAAACEDAQRUAAAhAwhAcGFsbGV0X2ltX29ubGluZWRCb3VuZGVkT3BhcXVlTmV0d29ya1N0YXRlDExQZWVySWRFbmNvZGluZ0xpbWl0AFhNdWx0aUFkZHJFbmNvZGluZ0xpbWl0ADhBZGRyZXNzZXNMaW1pdAAACAEccGVlcl9pZCUDAZxXZWFrQm91bmRlZFZlYzx1OCwgUGVlcklkRW5jb2RpbmdMaW1pdD4AAUhleHRlcm5hbF9hZGRyZXNzZXMpAwEpAVdlYWtCb3VuZGVkVmVjPFdlYWtCb3VuZGVkVmVjPHU4LCBNdWx0aUFkZHJFbmNvZGluZ0xpbWl0PiwKQWRkcmVzc2VzTGltaXQ+AAAlAwxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUARAEUwAABABkARhWZWM8VD4AACkDDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBJQMEUwAABAAtAwEYVmVjPFQ+AAAtAwAAAiUDADEDDEBwYWxsZXRfaW1fb25saW5lGHBhbGxldBRFcnJvcgQEVAABCChJbnZhbGlkS2V5AAAEYE5vbiBleGlzdGVudCBwdWJsaWMga2V5LkxEdXBsaWNhdGVkSGVhcnRiZWF0AAEEVER1cGxpY2F0ZWQgaGVhcnRiZWF0LgS1AQoJCQlDdXN0b20gW2Rpc3BhdGNoIGVycm9yc10oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pCgkJCW9mIHRoaXMgcGFsbGV0LgoJCQk1AwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATUBBFMAAAQAWQIBGFZlYzxUPgAAOQMAAAI9AwA9AwAABAgkyQEAQQMAAAIgAEUDAAAECEkDZABJAwwcc3BfY29yZRhjcnlwdG8kS2V5VHlwZUlkAAAEAJABHFt1ODsgNF0AAE0DDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQURXJyb3IEBFQAARQwSW52YWxpZFByb29mAAAEYEludmFsaWQgb3duZXJzaGlwIHByb29mLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAABBJxObyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRCBmb3IgYWNjb3VudC40RHVwbGljYXRlZEtleQACBGRSZWdpc3RlcmVkIGR1cGxpY2F0ZSBrZXkuGE5vS2V5cwADBKRObyBrZXlzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY2NvdW50LiROb0FjY291bnQABAQZAUtleSBzZXR0aW5nIGFjY291bnQgaXMgbm90IGxpdmUsIHNvIGl0J3MgaW1wb3NzaWJsZSB0byBhc3NvY2lhdGUga2V5cy4EdEVycm9yIGZvciB0aGUgc2Vzc2lvbiBwYWxsZXQuUQMIPHBhbGxldF90cmVhc3VyeSBQcm9wb3NhbAgkQWNjb3VudElkASQcQmFsYW5jZQFsABABIHByb3Bvc2VyJAEkQWNjb3VudElkAAEUdmFsdWVsARxCYWxhbmNlAAEsYmVuZWZpY2lhcnkkASRBY2NvdW50SWQAARBib25kbAEcQmFsYW5jZQAAVQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEgBFMAAAQAQQMBGFZlYzxUPgAAWQMMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJtaWxsAAAEACABDHUzMgAAXQMEGE9wdGlvbgQEVAFsAQgQTm9uZQAAABBTb21lBABsAAABAABhAww8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFcnJvcggEVAAESQABFHBJbnN1ZmZpY2llbnRQcm9wb3NlcnNCYWxhbmNlAAAEeFByb3Bvc2VyJ3MgYmFsYW5jZSBpcyB0b28gbG93LjBJbnZhbGlkSW5kZXgAAQSQTm8gcHJvcG9zYWwgb3IgYm91bnR5IGF0IHRoYXQgaW5kZXguQFRvb01hbnlBcHByb3ZhbHMAAgSAVG9vIG1hbnkgYXBwcm92YWxzIGluIHRoZSBxdWV1ZS5YSW5zdWZmaWNpZW50UGVybWlzc2lvbgADCEUBVGhlIHNwZW5kIG9yaWdpbiBpcyB2YWxpZCBidXQgdGhlIGFtb3VudCBpdCBpcyBhbGxvd2VkIHRvIHNwZW5kIGlzIGxvd2VyIHRoYW4gdGhlTGFtb3VudCB0byBiZSBzcGVudC5MUHJvcG9zYWxOb3RBcHByb3ZlZAAEBHxQcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuBHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC5lAwxYcGFsbGV0X2Q5X2NvdW5jaWxfbG9jaxR0eXBlcyBQcm9wb3NhbAQEVAFpAwAYAUBwcm9wb3NlZF9hY2NvdW50JAEwVDo6QWNjb3VudElkAAE0c2Vzc2lvbl9pbmRleCABMFNlc3Npb25JbmRleAABJG5vbWluYXRvciQBMFQ6OkFjY291bnRJZAABJGNoYW5nZV90b0kCAUBBY2NvdW50TG9ja1N0YXRlAAE0Y3JlYXRpb25fdGltZRwBLE1vbWVudE9mPFQ+AAFwZXN0aW1hdGVkX3RpbWVfdG9fcmVmZXJlbmR1bW0DAUxPcHRpb248TW9tZW50T2Y8VD4+AABpAwg8ZDlfbm9kZV9ydW50aW1lHFJ1bnRpbWUAAAAAbQMEGE9wdGlvbgQEVAEcAQgQTm9uZQAAABBTb21lBAAcAAABAABxAwxYcGFsbGV0X2Q5X2NvdW5jaWxfbG9jaxR0eXBlczhMb2NrUmVmZXJlbmR1bQQEVAAAIAEkbm9taW5hdG9yJAEwVDo6QWNjb3VudElkAAFAcHJvcG9zZWRfYWNjb3VudCQBMFQ6OkFjY291bnRJZAABRGluZGV4X29mX3Byb3Bvc2FsIAEwU2Vzc2lvbkluZGV4AAEkY2hhbmdlX3RvSQIBQEFjY291bnRMb2NrU3RhdGUAAUBhc3NlbnRpbmdfdm90ZXJzdQMB0EJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpBc3NlbnRpbmdWb3Rlc1RocmVzaG9sZD4AAURkaXNzZW50aW5nX3ZvdGVyc3kDAdRCb3VuZGVkVmVjPFQ6OkFjY291bnRJZCwgVDo6RGlzc2VudGluZ1ZvdGVzVGhyZXNob2xkPgABKHN0YXJ0X3RpbWUcASxNb21lbnRPZjxUPgABSGVzdGltYXRlZF9lbmRfdGltZRwBLE1vbWVudE9mPFQ+AAB1AwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASQEUwAABABUARhWZWM8VD4AAHkDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBJARTAAAEAFQBGFZlYzxUPgAAfQMMWHBhbGxldF9kOV9jb3VuY2lsX2xvY2sUdHlwZXMoUmVzb2x1dGlvbgQEVAFpAwAgASRub21pbmF0b3IkATBUOjpBY2NvdW50SWQAAUBwcm9wb3NlZF9hY2NvdW50JAEwVDo6QWNjb3VudElkAAFEaW5kZXhfb2ZfcHJvcG9zYWwgATBTZXNzaW9uSW5kZXgAAShjaGFuZ2VkX3RvSQIBQEFjY291bnRMb2NrU3RhdGUAAUBhc3NlbnRpbmdfdm90ZXJzdQMB0EJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpBc3NlbnRpbmdWb3Rlc1RocmVzaG9sZD4AAURkaXNzZW50aW5nX3ZvdGVyc3kDAdRCb3VuZGVkVmVjPFQ6OkFjY291bnRJZCwgVDo6RGlzc2VudGluZ1ZvdGVzVGhyZXNob2xkPgABGHJlc3VsdE0CAShWb3RlUmVzdWx0AAEgZW5kX3RpbWUcASxNb21lbnRPZjxUPgAAgQMMWHBhbGxldF9kOV9jb3VuY2lsX2xvY2sUdHlwZXMsQWNjb3VudExvY2sEBFQBaQMADAEcYWNjb3VudCQBMFQ6OkFjY291bnRJZAABJG5vbWluYXRvciQBMFQ6OkFjY291bnRJZAABKGxvY2tfaW5kZXggATBTZXNzaW9uSW5kZXgAAIUDDFhwYWxsZXRfZDlfY291bmNpbF9sb2NrGHBhbGxldBRFcnJvcgQEVAABQEROb3RWYWxpZE5vbWluYXRvcgAAAFxQcm9wb3NhbEZlZUluc3VmZmljaWVudAABAGBNaW5pbmdQb29sQ29udHJhY3ROb3RTZXQAAgBcRXJyb3JHZXR0aW5nUmFua2VkTm9kZXMAAwBQQWNjb3VudEFscmVhZHlMb2NrZWQABABAQWNjb3VudE5vdExvY2tlZAAFAFRQcm9wb3NhbEFscmVhZHlFeGlzdHMABgBoQWNjb3VudEFscmVhZHlJblJlZmVyZW5kdW0ABwBYQWRtaW5DYW5ub3RCZU5vbWluYXRlZAAIAJBMb2NrQ2FuZGlkYXRlc05vdFBlcm1pdHRlZFRvSW50ZXJhY3QACQCQTG9ja2VkQWNjb3VudHNOb3RQZXJtaXR0ZWRUb0ludGVyYWN0AAoAXExvY2tlZEFjY291bnRDYW5ub3RWb3RlAAsAWFJlZmVyZW5kdW1Eb2VzTm90RXhpc3QADABUTm90VmFsaWRDb3VuY2lsTWVtYmVyAA0AVEVycm9yQ2FsY3VsYXRpbmdWb3RlcwAOAERWb3RlckFscmVhZHlWb3RlZAAPAAS1AQoJCQlDdXN0b20gW2Rpc3BhdGNoIGVycm9yc10oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pCgkJCW9mIHRoaXMgcGFsbGV0LgoJCQmJAxBMcGFsbGV0X2Q5X211bHRpX3NpZxR0eXBlc1xtdWx0aV9zaWduYXR1cmVfYWNjb3VudFRNdWx0aVNpZ25hdHVyZUFjY291bnQEBFQAABQBHGFkZHJlc3MkATBUOjpBY2NvdW50SWQAARxhdXRob3JzjQMBzE9wdGlvbjxCb3VuZGVkVmVjPFQ6OkFjY291bnRJZCwgVDo6TWF4U2lnbmF0b3JpZXM+PgABLHNpZ25hdG9yaWVzkQMBrEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhTaWduYXRvcmllcz4AAUxtaW5pbXVtX3NpZ25hdG9yaWVzIAEMdTMyAAE0cGVuZGluZ19jYWxsc5UDAbhCb3VuZGVkVmVjPFBlbmRpbmdDYWxsPFQ+LCBUOjpNYXhQZW5kaW5nQ2FsbHM+AACNAwQYT3B0aW9uBARUAZEDAQgQTm9uZQAAABBTb21lBACRAwAAAQAAkQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEkBFMAAAQAVAEYVmVjPFQ+AACVAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZkDBFMAAAQAqQMBGFZlYzxUPgAAmQMQTHBhbGxldF9kOV9tdWx0aV9zaWcUdHlwZXMwcGVuZGluZ19jYWxsLFBlbmRpbmdDYWxsBARUAAAMAQhpZAwBIFt1ODsgMzJdAAEQY2FsbJ0DAUBCb3VuZGVkQ2FsbE9mPFQ+AAEkYXBwcm92YWxzoQMBwEJvdW5kZWRCVHJlZVNldDxUOjpBY2NvdW50SWQsIFQ6Ok1heFNpZ25hdG9yaWVzPgAAnQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAZAEYVmVjPFQ+AAChAwxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBJARTAAAEAKUDASxCVHJlZVNldDxUPgAApQMEIEJUcmVlU2V0BARUASQABABUAAAAqQMAAAKZAwCtAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASQEUwAABABUARhWZWM8VD4AALEDEExwYWxsZXRfZDlfbXVsdGlfc2lnFHR5cGVzVG1pbl9hcHByb3ZhbF9wcm9wb3NhbFxNaW5pbXVtQXBwcm92YWxQcm9wb3NhbAQEVAAAFAEsbXNhX2FkZHJlc3MkATBUOjpBY2NvdW50SWQAASxuZXdfbWluaW11bSABDHUzMgABIHByb3Bvc2VyJAEwVDo6QWNjb3VudElkAAEkYXBwcm92YWxzkQMBrEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhTaWduYXRvcmllcz4AAUBwYXNzX3JlcXVpcmVtZW50IAEMdTMyAAC1AwxMcGFsbGV0X2Q5X211bHRpX3NpZxhwYWxsZXQURXJyb3IEBFQAAWhARHVwbGljYXRlc0luTGlzdAAABIBTaWduZXJzIGxpc3QgY29udGFpbnMgZHVwbGljYXRlc0hDYWxsZXJOb3RTaWduYXRvcnkAAQRkQ2FsbGVyIG5vdCBpbiBzaWduYXRvcmllc0BNU0FBbHJlYWR5RXhpc3RzAAIEgE11bHRpLXNpZyBhY2NvdW50IGFscmVhZHkgZXhpc3RzLE1TQU5vdEZvdW5kAAMEbE11bHRpLXNpZyBhY2NvdW50IG5vdCBmb3VuZExTaWduYXRvcmllc1Rvb1Nob3J0AAQEcE11c3QgaGF2ZSBhdCBsZWFzdCAyIHNpZ25lcnNIU2lnbmF0b3JpZXNUb29Mb25nAAUEQFRvbyBtYW55IHNpZ25lcnM4QXBwcm92YWxFeGlzdHMABgRcYXBwcm92YWwgYWxyZWFkeSBleGlzdHNMQXBwcm92YWxEb2VzbnRFeGlzdAAHBKRhdHRlbXB0aW5nIHRvIHJlbW92ZSBub25leGlzdGVudCBhcHByb3ZhbFRNaW5BcHByb3ZhbE91dE9mUmFuZ2UACASETWluaW11bSBhcHByb3ZhbHMgaXMgb3V0IG9mIHJhbmdleE5ld01pbmltdW1FcXVhbHNDdXJyZW50TWluaW11bQAJBJRQcm9wb3NhbCBhcHByb3ZhbCBlcXVhbHMgZXhpc3Rpbmcgb25lUEFjY291bnRBbHJlYWR5QXV0aG9yAAoEcEFjY291bnQgaXMgYWxyZWFkeSBhbiBhdXRob3JYT25seU1TQUl0c2VsZkNhbkRvVGhpcwALBJhvbmx5IHRoZSBtc2EgYXV0aG9yIGV4ZWN1dGUgdGhpcyBjYWxsc0BBdXRob3JWZWNUb29Mb25nAAwEVEF1dGhvcnMgbGlzdCB0b28gbG9uZ0BBY2NvdW50Tm90QXV0aG9yAA0ENE5vdCBhbiBhdXRob3JMQWNjb3VudE5vdFNpZ25hdG9yeQAOBDxOb3QgYSBzaWduYXRvcnlYQWNjb3VudEVycm9yTWF4QXV0aG9ycwAPBHBSZWFjaGVkIG1heCBwb3NzaWJsZSBhdXRob3JzJENhbGxMaW1pdAAQBGxQZW5kaW5nIGNhbGxzIGxpbWl0IHJlYWNoZWRUQXBwcm92YWxzTGltaXRSZWFjaGVkABEEXEFwcHJvdmFscyBsaW1pdCByZWFjaGVkTENhbGxFbmNvZGluZ0ZhaWx1cmUAEgRURmFpbGVkIHRvIGVuY29kZSBjYWxsWEFjY291bnRBdE11bHRpU2lnTGltaXQAEwSQVGhpcyBhY2NvdW50IGhpdCBpdHMgbXVsdGktc2lnIGxpbWl0ZEZhaWxlZFRvQ3JlYXRlUGVuZGluZ0NhbGwAFAR0RmFpbGVkIHRvIGNyZWF0ZSBwZW5kaW5nIGNhbGwwQ2FsbE5vdEZvdW5kABUEcENhbGwgbm90IGZvdW5kIGZvciBtdWx0aS1zaWdMRmFpbHVyZURlY29kaW5nQ2FsbAAWBFRGYWlsZWQgdG8gZGVjb2RlIGNhbGxcRmFpbGVkVG9CdWlsZEJvdW5kZWRWZWMAFwRsZmFpbHVyZSBidWlsZGluZyBCb3VuZGVkVmVjQFByb3Bvc2FsTm90Rm91bmQAGAR8TWluIGFwcHJvdmFsIHByb3Bvc2FsIG5vdCBmb3VuZFhQcm9wb3NhbEFscmVhZHlQZW5kaW5nABkEYHByb3Bvc2FsIGFscmVhZHkgcGVuZGluZwS1AQoJCQlDdXN0b20gW2Rpc3BhdGNoIGVycm9yc10oaHR0cHM6Ly9kb2NzLnN1YnN0cmF0ZS5pby9tYWluLWRvY3MvYnVpbGQvZXZlbnRzLWVycm9ycy8pCgkJCW9mIHRoaXMgcGFsbGV0LgoJCQm5AxAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAegQQ2FsbAFxASRTaWduYXR1cmUBvQMURXh0cmEByQMABABkAAAAvQMIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAAQwcRWQyNTUxOQQASQEBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BADBAQFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBADBAwFAZWNkc2E6OlNpZ25hdHVyZQACAADBAwwcc3BfY29yZRRlY2RzYSRTaWduYXR1cmUAAAQAxQMBIFt1ODsgNjVdAADFAwAAA0EAAAAQAMkDAAAEIM0D0QPVA9kD3QPlA+kD7QMAzQMQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zVGNoZWNrX25vbl96ZXJvX3NlbmRlckhDaGVja05vblplcm9TZW5kZXIEBFQAAAAA0QMQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zSGNoZWNrX3NwZWNfdmVyc2lvbkBDaGVja1NwZWNWZXJzaW9uBARUAAAAANUDEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0BjaGVja190eF92ZXJzaW9uOENoZWNrVHhWZXJzaW9uBARUAAAAANkDEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczRjaGVja19nZW5lc2lzMENoZWNrR2VuZXNpcwQEVAAAAADdAxAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM8Y2hlY2tfbW9ydGFsaXR5OENoZWNrTW9ydGFsaXR5BARUAAAEAOEDAQxFcmEAAOEDEChzcF9ydW50aW1lHGdlbmVyaWMMZXJhDEVyYQABAQQgSW1tb3J0YWwAAAAcTW9ydGFsMQQAEAAAAQAcTW9ydGFsMgQAEAAAAgAcTW9ydGFsMwQAEAAAAwAcTW9ydGFsNAQAEAAABAAcTW9ydGFsNQQAEAAABQAcTW9ydGFsNgQAEAAABgAcTW9ydGFsNwQAEAAABwAcTW9ydGFsOAQAEAAACAAcTW9ydGFsOQQAEAAACQAgTW9ydGFsMTAEABAAAAoAIE1vcnRhbDExBAAQAAALACBNb3J0YWwxMgQAEAAADAAgTW9ydGFsMTMEABAAAA0AIE1vcnRhbDE0BAAQAAAOACBNb3J0YWwxNQQAEAAADwAgTW9ydGFsMTYEABAAABAAIE1vcnRhbDE3BAAQAAARACBNb3J0YWwxOAQAEAAAEgAgTW9ydGFsMTkEABAAABMAIE1vcnRhbDIwBAAQAAAUACBNb3J0YWwyMQQAEAAAFQAgTW9ydGFsMjIEABAAABYAIE1vcnRhbDIzBAAQAAAXACBNb3J0YWwyNAQAEAAAGAAgTW9ydGFsMjUEABAAABkAIE1vcnRhbDI2BAAQAAAaACBNb3J0YWwyNwQAEAAAGwAgTW9ydGFsMjgEABAAABwAIE1vcnRhbDI5BAAQAAAdACBNb3J0YWwzMAQAEAAAHgAgTW9ydGFsMzEEABAAAB8AIE1vcnRhbDMyBAAQAAAgACBNb3J0YWwzMwQAEAAAIQAgTW9ydGFsMzQEABAAACIAIE1vcnRhbDM1BAAQAAAjACBNb3J0YWwzNgQAEAAAJAAgTW9ydGFsMzcEABAAACUAIE1vcnRhbDM4BAAQAAAmACBNb3J0YWwzOQQAEAAAJwAgTW9ydGFsNDAEABAAACgAIE1vcnRhbDQxBAAQAAApACBNb3J0YWw0MgQAEAAAKgAgTW9ydGFsNDMEABAAACsAIE1vcnRhbDQ0BAAQAAAsACBNb3J0YWw0NQQAEAAALQAgTW9ydGFsNDYEABAAAC4AIE1vcnRhbDQ3BAAQAAAvACBNb3J0YWw0OAQAEAAAMAAgTW9ydGFsNDkEABAAADEAIE1vcnRhbDUwBAAQAAAyACBNb3J0YWw1MQQAEAAAMwAgTW9ydGFsNTIEABAAADQAIE1vcnRhbDUzBAAQAAA1ACBNb3J0YWw1NAQAEAAANgAgTW9ydGFsNTUEABAAADcAIE1vcnRhbDU2BAAQAAA4ACBNb3J0YWw1NwQAEAAAOQAgTW9ydGFsNTgEABAAADoAIE1vcnRhbDU5BAAQAAA7ACBNb3J0YWw2MAQAEAAAPAAgTW9ydGFsNjEEABAAAD0AIE1vcnRhbDYyBAAQAAA+ACBNb3J0YWw2MwQAEAAAPwAgTW9ydGFsNjQEABAAAEAAIE1vcnRhbDY1BAAQAABBACBNb3J0YWw2NgQAEAAAQgAgTW9ydGFsNjcEABAAAEMAIE1vcnRhbDY4BAAQAABEACBNb3J0YWw2OQQAEAAARQAgTW9ydGFsNzAEABAAAEYAIE1vcnRhbDcxBAAQAABHACBNb3J0YWw3MgQAEAAASAAgTW9ydGFsNzMEABAAAEkAIE1vcnRhbDc0BAAQAABKACBNb3J0YWw3NQQAEAAASwAgTW9ydGFsNzYEABAAAEwAIE1vcnRhbDc3BAAQAABNACBNb3J0YWw3OAQAEAAATgAgTW9ydGFsNzkEABAAAE8AIE1vcnRhbDgwBAAQAABQACBNb3J0YWw4MQQAEAAAUQAgTW9ydGFsODIEABAAAFIAIE1vcnRhbDgzBAAQAABTACBNb3J0YWw4NAQAEAAAVAAgTW9ydGFsODUEABAAAFUAIE1vcnRhbDg2BAAQAABWACBNb3J0YWw4NwQAEAAAVwAgTW9ydGFsODgEABAAAFgAIE1vcnRhbDg5BAAQAABZACBNb3J0YWw5MAQAEAAAWgAgTW9ydGFsOTEEABAAAFsAIE1vcnRhbDkyBAAQAABcACBNb3J0YWw5MwQAEAAAXQAgTW9ydGFsOTQEABAAAF4AIE1vcnRhbDk1BAAQAABfACBNb3J0YWw5NgQAEAAAYAAgTW9ydGFsOTcEABAAAGEAIE1vcnRhbDk4BAAQAABiACBNb3J0YWw5OQQAEAAAYwAkTW9ydGFsMTAwBAAQAABkACRNb3J0YWwxMDEEABAAAGUAJE1vcnRhbDEwMgQAEAAAZgAkTW9ydGFsMTAzBAAQAABnACRNb3J0YWwxMDQEABAAAGgAJE1vcnRhbDEwNQQAEAAAaQAkTW9ydGFsMTA2BAAQAABqACRNb3J0YWwxMDcEABAAAGsAJE1vcnRhbDEwOAQAEAAAbAAkTW9ydGFsMTA5BAAQAABtACRNb3J0YWwxMTAEABAAAG4AJE1vcnRhbDExMQQAEAAAbwAkTW9ydGFsMTEyBAAQAABwACRNb3J0YWwxMTMEABAAAHEAJE1vcnRhbDExNAQAEAAAcgAkTW9ydGFsMTE1BAAQAABzACRNb3J0YWwxMTYEABAAAHQAJE1vcnRhbDExNwQAEAAAdQAkTW9ydGFsMTE4BAAQAAB2ACRNb3J0YWwxMTkEABAAAHcAJE1vcnRhbDEyMAQAEAAAeAAkTW9ydGFsMTIxBAAQAAB5ACRNb3J0YWwxMjIEABAAAHoAJE1vcnRhbDEyMwQAEAAAewAkTW9ydGFsMTI0BAAQAAB8ACRNb3J0YWwxMjUEABAAAH0AJE1vcnRhbDEyNgQAEAAAfgAkTW9ydGFsMTI3BAAQAAB/ACRNb3J0YWwxMjgEABAAAIAAJE1vcnRhbDEyOQQAEAAAgQAkTW9ydGFsMTMwBAAQAACCACRNb3J0YWwxMzEEABAAAIMAJE1vcnRhbDEzMgQAEAAAhAAkTW9ydGFsMTMzBAAQAACFACRNb3J0YWwxMzQEABAAAIYAJE1vcnRhbDEzNQQAEAAAhwAkTW9ydGFsMTM2BAAQAACIACRNb3J0YWwxMzcEABAAAIkAJE1vcnRhbDEzOAQAEAAAigAkTW9ydGFsMTM5BAAQAACLACRNb3J0YWwxNDAEABAAAIwAJE1vcnRhbDE0MQQAEAAAjQAkTW9ydGFsMTQyBAAQAACOACRNb3J0YWwxNDMEABAAAI8AJE1vcnRhbDE0NAQAEAAAkAAkTW9ydGFsMTQ1BAAQAACRACRNb3J0YWwxNDYEABAAAJIAJE1vcnRhbDE0NwQAEAAAkwAkTW9ydGFsMTQ4BAAQAACUACRNb3J0YWwxNDkEABAAAJUAJE1vcnRhbDE1MAQAEAAAlgAkTW9ydGFsMTUxBAAQAACXACRNb3J0YWwxNTIEABAAAJgAJE1vcnRhbDE1MwQAEAAAmQAkTW9ydGFsMTU0BAAQAACaACRNb3J0YWwxNTUEABAAAJsAJE1vcnRhbDE1NgQAEAAAnAAkTW9ydGFsMTU3BAAQAACdACRNb3J0YWwxNTgEABAAAJ4AJE1vcnRhbDE1OQQAEAAAnwAkTW9ydGFsMTYwBAAQAACgACRNb3J0YWwxNjEEABAAAKEAJE1vcnRhbDE2MgQAEAAAogAkTW9ydGFsMTYzBAAQAACjACRNb3J0YWwxNjQEABAAAKQAJE1vcnRhbDE2NQQAEAAApQAkTW9ydGFsMTY2BAAQAACmACRNb3J0YWwxNjcEABAAAKcAJE1vcnRhbDE2OAQAEAAAqAAkTW9ydGFsMTY5BAAQAACpACRNb3J0YWwxNzAEABAAAKoAJE1vcnRhbDE3MQQAEAAAqwAkTW9ydGFsMTcyBAAQAACsACRNb3J0YWwxNzMEABAAAK0AJE1vcnRhbDE3NAQAEAAArgAkTW9ydGFsMTc1BAAQAACvACRNb3J0YWwxNzYEABAAALAAJE1vcnRhbDE3NwQAEAAAsQAkTW9ydGFsMTc4BAAQAACyACRNb3J0YWwxNzkEABAAALMAJE1vcnRhbDE4MAQAEAAAtAAkTW9ydGFsMTgxBAAQAAC1ACRNb3J0YWwxODIEABAAALYAJE1vcnRhbDE4MwQAEAAAtwAkTW9ydGFsMTg0BAAQAAC4ACRNb3J0YWwxODUEABAAALkAJE1vcnRhbDE4NgQAEAAAugAkTW9ydGFsMTg3BAAQAAC7ACRNb3J0YWwxODgEABAAALwAJE1vcnRhbDE4OQQAEAAAvQAkTW9ydGFsMTkwBAAQAAC+ACRNb3J0YWwxOTEEABAAAL8AJE1vcnRhbDE5MgQAEAAAwAAkTW9ydGFsMTkzBAAQAADBACRNb3J0YWwxOTQEABAAAMIAJE1vcnRhbDE5NQQAEAAAwwAkTW9ydGFsMTk2BAAQAADEACRNb3J0YWwxOTcEABAAAMUAJE1vcnRhbDE5OAQAEAAAxgAkTW9ydGFsMTk5BAAQAADHACRNb3J0YWwyMDAEABAAAMgAJE1vcnRhbDIwMQQAEAAAyQAkTW9ydGFsMjAyBAAQAADKACRNb3J0YWwyMDMEABAAAMsAJE1vcnRhbDIwNAQAEAAAzAAkTW9ydGFsMjA1BAAQAADNACRNb3J0YWwyMDYEABAAAM4AJE1vcnRhbDIwNwQAEAAAzwAkTW9ydGFsMjA4BAAQAADQACRNb3J0YWwyMDkEABAAANEAJE1vcnRhbDIxMAQAEAAA0gAkTW9ydGFsMjExBAAQAADTACRNb3J0YWwyMTIEABAAANQAJE1vcnRhbDIxMwQAEAAA1QAkTW9ydGFsMjE0BAAQAADWACRNb3J0YWwyMTUEABAAANcAJE1vcnRhbDIxNgQAEAAA2AAkTW9ydGFsMjE3BAAQAADZACRNb3J0YWwyMTgEABAAANoAJE1vcnRhbDIxOQQAEAAA2wAkTW9ydGFsMjIwBAAQAADcACRNb3J0YWwyMjEEABAAAN0AJE1vcnRhbDIyMgQAEAAA3gAkTW9ydGFsMjIzBAAQAADfACRNb3J0YWwyMjQEABAAAOAAJE1vcnRhbDIyNQQAEAAA4QAkTW9ydGFsMjI2BAAQAADiACRNb3J0YWwyMjcEABAAAOMAJE1vcnRhbDIyOAQAEAAA5AAkTW9ydGFsMjI5BAAQAADlACRNb3J0YWwyMzAEABAAAOYAJE1vcnRhbDIzMQQAEAAA5wAkTW9ydGFsMjMyBAAQAADoACRNb3J0YWwyMzMEABAAAOkAJE1vcnRhbDIzNAQAEAAA6gAkTW9ydGFsMjM1BAAQAADrACRNb3J0YWwyMzYEABAAAOwAJE1vcnRhbDIzNwQAEAAA7QAkTW9ydGFsMjM4BAAQAADuACRNb3J0YWwyMzkEABAAAO8AJE1vcnRhbDI0MAQAEAAA8AAkTW9ydGFsMjQxBAAQAADxACRNb3J0YWwyNDIEABAAAPIAJE1vcnRhbDI0MwQAEAAA8wAkTW9ydGFsMjQ0BAAQAAD0ACRNb3J0YWwyNDUEABAAAPUAJE1vcnRhbDI0NgQAEAAA9gAkTW9ydGFsMjQ3BAAQAAD3ACRNb3J0YWwyNDgEABAAAPgAJE1vcnRhbDI0OQQAEAAA+QAkTW9ydGFsMjUwBAAQAAD6ACRNb3J0YWwyNTEEABAAAPsAJE1vcnRhbDI1MgQAEAAA/AAkTW9ydGFsMjUzBAAQAAD9ACRNb3J0YWwyNTQEABAAAP4AJE1vcnRhbDI1NQQAEAAA/wAA5QMQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zLGNoZWNrX25vbmNlKENoZWNrTm9uY2UEBFQAAAQAjQEBIFQ6OkluZGV4AADpAxAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMwY2hlY2tfd2VpZ2h0LENoZWNrV2VpZ2h0BARUAAAAAO0DCGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudGBDaGFyZ2VUcmFuc2FjdGlvblBheW1lbnQEBFQAAAQA9AEwQmFsYW5jZU9mPFQ+AABYEEF1cmEBEEF1cmEILEF1dGhvcml0aWVzAQAABAAEbCBUaGUgY3VycmVudCBhdXRob3JpdHkgc2V0LixDdXJyZW50U2xvdAEAGCAAAAAAAAAAAAyAIFRoZSBjdXJyZW50IHNsb3Qgb2YgdGhpcyBibG9jay4AlCBUaGlzIHdpbGwgYmUgc2V0IGluIGBvbl9pbml0aWFsaXplYC4AAAAAAChEOVJlZmVycmFsAShEOVJlZmVycmFsDEBNYXhSZWZlcnJhbERlcHRoAQAgEAAAAAAY1CBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBhIG5vZGUgaW4gdGhlIHJlZmVycmFsIHRyZWUs2CB0aGUgTWF4UmVmZXJyYWxEZXB0aCBpcyB0aGUgbGFyZ2VzdCBOdGggYW5jZXN0b3Igbm9kZeAgVGhpcyBhc3NvY2lhdGVkIHR5cGUgaXMgb25seSBuZWNlc3NhcnkgZm9yIGZpcnN0IHJ1biBvZtggdGhlIGNoYWluIGFzIGl0IHdpbGwgZGVmaW5lIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUhASBNYXhSZWZlcnJhbERlcHRoIHN0b3JhZ2UgaXRlbS4gVGhpcyB2YWx1ZSBjYW4gYmUgY2hhbmdlZCBkdXJpbmcgcnVudGltZWwgdGhyb3VnaCBhbiBleHRyaW5zaWMgY2FsbC5UUmVmZXJyYWxSZWxhdGlvbnNoaXBzAAEEAiQkBAAE/CAoY2hpbGQgLT4gcGFyZW50KSByZWZlcnJhbCByZWxhdGlvbnNoaXAgQWNjb3VudElkIC0+IEFjY291bnRJZFBEaXJlY3RSZWZlcnJhbHNDb3VudAEBBAIkIBAAAAAAAAEoASwAATABKEQ5VHJlYXN1cnkBKEQ5VHJlYXN1cnkEJFRyZWFzdXJlcgAANAQABKQgTnVtYmVyIG9mIHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLgE4ATwAAUACMEQ5Tm9kZVZvdGluZwEwRDlOb2RlVm90aW5nKFBVc2Vyc1ZvdGluZ0ludGVyZXN0cwABBAIkRAQABIwgZGVmaW5lcyB0aGUgdm90aW5nIHBvd2VyIG9mIGEgdXNlclRVc2VyVG9Ob2RlVm90ZXNUb3RhbHMBAQgCAkwcIAAAAAAAAAAAEOggZGVmaW5lcyB0aGUgdm90ZSBkaXN0cmlidXRpb24gb2YgYSB1c2VyIHRvIHNvbWUgY2FuZGlkYXRlAGwgdXNlciAtPiBjYW5kaWRhdGUgLT4gdm90ZXO8IFVzZXJUb05vZGVWb3Rlc1RvdGFscyA9PSBOb2RlVG9Vc2VyVm90ZXNUb3RhbHNUTm9kZVRvVXNlclZvdGVzVG90YWxzAQEIAgJMHCAAAAAAAAAAABCYIGRlZmluZXMgdGhlIHN1cHBvcnRlcnMgb2YgYSBjYW5kaWRhdGUAgCBjYW5kaWRhdGUgLT4gc3VwcG9ydGVyIC0+IHZvdGVzvCBVc2VyVG9Ob2RlVm90ZXNUb3RhbHMgPT0gTm9kZVRvVXNlclZvdGVzVG90YWxzVE5vZGVBY2N1bXVsYXRpdmVWb3RlcwABBAIkHAQADJQgZ3JhbmQgdG90YWwgb2Ygdm90ZXMgZm9yIGEgY2FuZGlkYXRlALQgdGhpcyBNYXAgY2FuIGJlIG5vIGxhcmdlciB0aGFuIE1heENhbmRpZGF0ZXN4Q3VycmVudE51bWJlck9mQ2FuZGlkYXRlc05vZGVzAQAgEAAAAAAAPFNlc3Npb25Ob2RlTGlzdAABBAIgUAQAAExDdXJyZW50U2Vzc2lvbkluZGV4AQAgEAAAAAAAZEN1cnJlbnRWYWxpZGF0b3JWb3RlU3RhdHMAAQQCJFgEAAAwTm9kZU1ldGFkYXRhAAEEAiRcBAAALFBhbGxldEFkbWluAAAkBAAAAWgBeAABfAM0RDlOb2RlUmV3YXJkcwE0RDlOb2RlUmV3YXJkcwhITm9kZVJld2FyZENvbnRyYWN0AAAkBAAALFBhbGxldEFkbWluAAAkBAAAAYABhAQgUGFsbGV0SWSgIG5kZS9yd3JkAAGoBCBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBAGxAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS5ASW5hY3RpdmVJc3N1YW5jZQEAbEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uHEFjY291bnQBAQQCJKwBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4UTG9ja3MBAQQCJLQEAAi4IEFueSBsaXF1aWRpdHkgbG9ja3Mgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLiUBIE5PVEU6IFNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHdoZW4gc2V0dGluZywgY2hhbmdpbmcgYW5kIGZyZWVpbmcgYSBsb2NrLiBSZXNlcnZlcwEBBAIkxAQABKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLhRIb2xkcwEBBAIk1AQABGwgSG9sZHMgb24gYWNjb3VudCBiYWxhbmNlcy4cRnJlZXplcwEBBAIk4AQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuAeQB/BRIRXhpc3RlbnRpYWxEZXBvc2l0bEDoAwAAAAAAAAAAAAAAAAAAIEEBIFRoZSBtaW5pbXVtIGFtb3VudCByZXF1aXJlZCB0byBrZWVwIGFuIGFjY291bnQgb3Blbi4gTVVTVCBCRSBHUkVBVEVSIFRIQU4gWkVSTyEAWQEgSWYgeW91ICpyZWFsbHkqIG5lZWQgaXQgdG8gYmUgemVybywgeW91IGNhbiBlbmFibGUgdGhlIGZlYXR1cmUgYGluc2VjdXJlX3plcm9fZWRgIGZvcmEBIHRoaXMgcGFsbGV0LiBIb3dldmVyLCB5b3UgZG8gc28gYXQgeW91ciBvd24gcmlzazogdGhpcyB3aWxsIG9wZW4gdXAgYSBtYWpvciBEb1MgdmVjdG9yLlkBIEluIGNhc2UgeW91IGhhdmUgbXVsdGlwbGUgc291cmNlcyBvZiBwcm92aWRlciByZWZlcmVuY2VzLCB5b3UgbWF5IGFsc28gZ2V0IHVuZXhwZWN0ZWSMIGJlaGF2aW91ciBpZiB5b3Ugc2V0IHRoaXMgdG8gemVyby4A8CBCb3R0b20gbGluZTogRG8geW91cnNlbGYgYSBmYXZvdXIgYW5kIG1ha2UgaXQgYXQgbGVhc3Qgb25lISBNYXhMb2NrcyAQMgAAAAj0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NrcyB0aGF0IHNob3VsZCBleGlzdCBvbiBhbiBhY2NvdW50LtwgTm90IHN0cmljdGx5IGVuZm9yY2VkLCBidXQgdXNlZCBmb3Igd2VpZ2h0IGVzdGltYXRpb24uLE1heFJlc2VydmVzIBAyAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LiBNYXhIb2xkcyAQMgAAAAQZASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaG9sZHMgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4oTWF4RnJlZXplcyAQMgAAAARhASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5kaXZpZHVhbCBmcmVlemUgbG9ja3MgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4BBQEFHEdyYW5kcGEBHEdyYW5kcGEYFFN0YXRlAQAJAQQABJAgU3RhdGUgb2YgdGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC40UGVuZGluZ0NoYW5nZQAADQEEAATEIFBlbmRpbmcgY2hhbmdlOiAoc2lnbmFsZWQgYXQsIHNjaGVkdWxlZCBjaGFuZ2UpLihOZXh0Rm9yY2VkAAAgBAAEvCBuZXh0IGJsb2NrIG51bWJlciB3aGVyZSB3ZSBjYW4gZm9yY2UgYSBjaGFuZ2UuHFN0YWxsZWQAACkBBAAEkCBgdHJ1ZWAgaWYgd2UgYXJlIGN1cnJlbnRseSBzdGFsbGVkLjBDdXJyZW50U2V0SWQBABwgAAAAAAAAAAAIXQEgVGhlIG51bWJlciBvZiBjaGFuZ2VzIChib3RoIGluIHRlcm1zIG9mIGtleXMgYW5kIHVuZGVybHlpbmcgZWNvbm9taWMgcmVzcG9uc2liaWxpdGllcynEIGluIHRoZSAic2V0IiBvZiBHcmFuZHBhIHZhbGlkYXRvcnMgZnJvbSBnZW5lc2lzLjBTZXRJZFNlc3Npb24AAQQFHCAEAChZASBBIG1hcHBpbmcgZnJvbSBncmFuZHBhIHNldCBJRCB0byB0aGUgaW5kZXggb2YgdGhlICptb3N0IHJlY2VudCogc2Vzc2lvbiBmb3Igd2hpY2ggaXRzaCBtZW1iZXJzIHdlcmUgcmVzcG9uc2libGUuAEUBIFRoaXMgaXMgb25seSB1c2VkIGZvciB2YWxpZGF0aW5nIGVxdWl2b2NhdGlvbiBwcm9vZnMuIEFuIGVxdWl2b2NhdGlvbiBwcm9vZiBtdXN0TQEgY29udGFpbnMgYSBrZXktb3duZXJzaGlwIHByb29mIGZvciBhIGdpdmVuIHNlc3Npb24sIHRoZXJlZm9yZSB3ZSBuZWVkIGEgd2F5IHRvIHRpZUUBIHRvZ2V0aGVyIHNlc3Npb25zIGFuZCBHUkFORFBBIHNldCBpZHMsIGkuZS4gd2UgbmVlZCB0byB2YWxpZGF0ZSB0aGF0IGEgdmFsaWRhdG9yQQEgd2FzIHRoZSBvd25lciBvZiBhIGdpdmVuIGtleSBvbiBhIGdpdmVuIHNlc3Npb24sIGFuZCB3aGF0IHRoZSBhY3RpdmUgc2V0IElEIHdhc1QgZHVyaW5nIHRoYXQgc2Vzc2lvbi4AuCBUV09YLU5PVEU6IGBTZXRJZGAgaXMgbm90IHVuZGVyIHVzZXIgY29udHJvbC4BLQEBZQEIOE1heEF1dGhvcml0aWVzIBAbAAAABFwgTWF4IEF1dGhvcml0aWVzIGluIHVzZVhNYXhTZXRJZFNlc3Npb25FbnRyaWVzHCAAAAAAAAAAABg5ASBUaGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyB0byBrZWVwIGluIHRoZSBzZXQgaWQgdG8gc2Vzc2lvbiBpbmRleCBtYXBwaW5nLgAxASBTaW5jZSB0aGUgYFNldElkU2Vzc2lvbmAgbWFwIGlzIG9ubHkgdXNlZCBmb3IgdmFsaWRhdGluZyBlcXVpdm9jYXRpb25zIHRoaXMpASB2YWx1ZSBzaG91bGQgcmVsYXRlIHRvIHRoZSBib25kaW5nIGR1cmF0aW9uIG9mIHdoYXRldmVyIHN0YWtpbmcgc3lzdGVtIGlzNQEgYmVpbmcgdXNlZCAoaWYgYW55KS4gSWYgZXF1aXZvY2F0aW9uIGhhbmRsaW5nIGlzIG5vdCBlbmFibGVkIHRoZW4gdGhpcyB2YWx1ZTQgY2FuIGJlIHplcm8uAWkBBhBTdWRvARBTdWRvBAxLZXkAACQEAASEIFRoZSBgQWNjb3VudElkYCBvZiB0aGUgc3VkbyBrZXkuAW0BAeUBAAHtAQcYU3lzdGVtARhTeXN0ZW1AHEFjY291bnQBAQQCJPEBQQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAToIFRoZSBmdWxsIGFjY291bnQgaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxhciBhY2NvdW50IElELjhFeHRyaW5zaWNDb3VudAAAIAQABLggVG90YWwgZXh0cmluc2ljcyBjb3VudCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suLEJsb2NrV2VpZ2h0AQD1ARgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay5AQWxsRXh0cmluc2ljc0xlbgAAIAQABEEBIFRvdGFsIGxlbmd0aCAoaW4gYnl0ZXMpIGZvciBhbGwgZXh0cmluc2ljcyBwdXQgdG9nZXRoZXIsIGZvciB0aGUgY3VycmVudCBibG9jay4kQmxvY2tIYXNoAQEEBSA1AYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy40RXh0cmluc2ljRGF0YQEBBAUgZAQABD0BIEV4dHJpbnNpY3MgZGF0YSBmb3IgdGhlIGN1cnJlbnQgYmxvY2sgKG1hcHMgYW4gZXh0cmluc2ljJ3MgaW5kZXggdG8gaXRzIGRhdGEpLhhOdW1iZXIBACAQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLihQYXJlbnRIYXNoAQA1AYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwIEhhc2ggb2YgdGhlIHByZXZpb3VzIGJsb2NrLhhEaWdlc3QBAPkBBAAE8CBEaWdlc3Qgb2YgdGhlIGN1cnJlbnQgYmxvY2ssIGFsc28gcGFydCBvZiB0aGUgYmxvY2sgaGVhZGVyLhhFdmVudHMBAAUCBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLihFdmVudENvdW50AQAgEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4sRXZlbnRUb3BpY3MBAQQCNQFdAgQAKCUBIE1hcHBpbmcgYmV0d2VlbiBhIHRvcGljIChyZXByZXNlbnRlZCBieSBUOjpIYXNoKSBhbmQgYSB2ZWN0b3Igb2YgaW5kZXhlc5Qgb2YgZXZlbnRzIGluIHRoZSBgPEV2ZW50czxUPj5gIGxpc3QuAFEBIEFsbCB0b3BpYyB2ZWN0b3JzIGhhdmUgZGV0ZXJtaW5pc3RpYyBzdG9yYWdlIGxvY2F0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHRvcGljLiBUaGlzRQEgYWxsb3dzIGxpZ2h0LWNsaWVudHMgdG8gbGV2ZXJhZ2UgdGhlIGNoYW5nZXMgdHJpZSBzdG9yYWdlIHRyYWNraW5nIG1lY2hhbmlzbSBhbmTkIGluIGNhc2Ugb2YgY2hhbmdlcyBmZXRjaCB0aGUgbGlzdCBvZiBldmVudHMgb2YgaW50ZXJlc3QuAE0BIFRoZSB2YWx1ZSBoYXMgdGhlIHR5cGUgYChUOjpCbG9ja051bWJlciwgRXZlbnRJbmRleClgIGJlY2F1c2UgaWYgd2UgdXNlZCBvbmx5IGp1c3RNASB0aGUgYEV2ZW50SW5kZXhgIHRoZW4gaW4gY2FzZSBpZiB0aGUgdG9waWMgaGFzIHRoZSBzYW1lIGNvbnRlbnRzIG9uIHRoZSBuZXh0IGJsb2NrAQEgbm8gbm90aWZpY2F0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIHRodXMgdGhlIGV2ZW50IG1pZ2h0IGJlIGxvc3QuSExhc3RSdW50aW1lVXBncmFkZQAAYQIEAARVASBTdG9yZXMgdGhlIGBzcGVjX3ZlcnNpb25gIGFuZCBgc3BlY19uYW1lYCBvZiB3aGVuIHRoZSBsYXN0IHJ1bnRpbWUgdXBncmFkZSBoYXBwZW5lZC5UVXBncmFkZWRUb1UzMlJlZkNvdW50AQD4BAAETQEgVHJ1ZSBpZiB3ZSBoYXZlIHVwZ3JhZGVkIHNvIHRoYXQgYHR5cGUgUmVmQ291bnRgIGlzIGB1MzJgLiBGYWxzZSAoZGVmYXVsdCkgaWYgbm90LmBVcGdyYWRlZFRvVHJpcGxlUmVmQ291bnQBAPgEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC44RXhlY3V0aW9uUGhhc2UAAFUCBAAEiCBUaGUgZXhlY3V0aW9uIHBoYXNlIG9mIHRoZSBibG9jay4BdQEBEQIYMEJsb2NrV2VpZ2h0c2kC+QECA4FdAAsAIEqp0QET///////////C6RcbAAELkM1Dpy4BE2ZmZmZmZmamAQsAmPc+XQET/////////78BAADC6RcbAAELkFWWEaMBE2ZmZmZmZmbmAQsAIEqp0QET//////////8BBwCIUmp0EwAAAAAAAABAwukXGwAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4sQmxvY2tMZW5ndGh5AjAAADwAAABQAAAAUAAEqCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBibG9jayAoaW4gYnl0ZXMpLjhCbG9ja0hhc2hDb3VudCAQYAkAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4gRGJXZWlnaHSBAkBAeH0BAAAAAADh9QUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuHFZlcnNpb26FAgEDCGQ5CGQ5AQAAANcAAAABAAAAON9qy2iZB2CbBAAAADfjl/x8kfXkAgAAAED+OtQB+JWaBgAAANK8mJfu0I8VAwAAAPeLJ4vlP0VMAgAAAN1xjVzFMmLUAQAAAKs8BXIpH+uLAQAAAO2ZxayyXu31AwAAALydiZBPW5I/AQAAADfIuxNQqaKoBAAAAPP/FNWrUnBZAwAAAGi2a6EiyT+nAgAAAKIv2ttprus/AQAAAJ3sdxo8CifgAQAAAAEAAAABBIQgR2V0IHRoZSBjaGFpbidzIGN1cnJlbnQgdmVyc2lvbi4oU1M1OFByZWZpeJUCCAkAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgGZAggkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAHCAAAAAAAAAAAASQIEN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suJERpZFVwZGF0ZQEA+AQABLQgRGlkIHRoZSB0aW1lc3RhbXAgZ2V0IHVwZGF0ZWQgaW4gdGhpcyBibG9jaz8BhQEABDRNaW5pbXVtUGVyaW9kHCDcBQAAAAAAABBNASBUaGUgbWluaW11bSBwZXJpb2QgYmV0d2VlbiBibG9ja3MuIEJld2FyZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IHRvIHRoZSAqZXhwZWN0ZWQqXQEgcGVyaW9kIHRoYXQgdGhlIGJsb2NrIHByb2R1Y3Rpb24gYXBwYXJhdHVzIHByb3ZpZGVzLiBZb3VyIGNob3NlbiBjb25zZW5zdXMgc3lzdGVtIHdpbGxdASBnZW5lcmFsbHkgd29yayB3aXRoIHRoaXMgdG8gZGV0ZXJtaW5lIGEgc2Vuc2libGUgYmxvY2sgdGltZS4gZS5nLiBGb3IgQXVyYSwgaXQgd2lsbCBiZaAgZG91YmxlIHRoaXMgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAlIVHJhbnNhY3Rpb25QYXltZW50AUhUcmFuc2FjdGlvblBheW1lbnQIRE5leHRGZWVNdWx0aXBsaWVyAQCdAkAAAGSns7bgDQAAAAAAAAAAADhTdG9yYWdlVmVyc2lvbgEAoQIEAAAAASECBGBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXIQBAVUWQEgQSBmZWUgbXVsaXRwbGllciBmb3IgYE9wZXJhdGlvbmFsYCBleHRyaW5zaWNzIHRvIGNvbXB1dGUgInZpcnR1YWwgdGlwIiB0byBib29zdCB0aGVpciwgYHByaW9yaXR5YABNASBUaGlzIHZhbHVlIGlzIG11bHRpcGxlZCBieSB0aGUgYGZpbmFsX2ZlZWAgdG8gb2J0YWluIGEgInZpcnR1YWwgdGlwIiB0aGF0IGlzIGxhdGVy9CBhZGRlZCB0byBhIHRpcCBjb21wb25lbnQgaW4gcmVndWxhciBgcHJpb3JpdHlgIGNhbGN1bGF0aW9ucy5NASBJdCBtZWFucyB0aGF0IGEgYE5vcm1hbGAgdHJhbnNhY3Rpb24gY2FuIGZyb250LXJ1biBhIHNpbWlsYXJseS1zaXplZCBgT3BlcmF0aW9uYWxgQQEgZXh0cmluc2ljICh3aXRoIG5vIHRpcCksIGJ5IGluY2x1ZGluZyBhIHRpcCB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIHZpcnR1YWwgdGlwLgA8IGBgYHJ1c3QsaWdub3JlQCAvLyBGb3IgYE5vcm1hbGCMIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwKTsAVCAvLyBGb3IgYE9wZXJhdGlvbmFsYBEBIGxldCB2aXJ0dWFsX3RpcCA9IChpbmNsdXNpb25fZmVlICsgdGlwKSAqIE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcjvEIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwICsgdmlydHVhbF90aXApOxAgYGBgAFEBIE5vdGUgdGhhdCBzaW5jZSB3ZSB1c2UgYGZpbmFsX2ZlZWAgdGhlIG11bHRpcGxpZXIgYXBwbGllcyBhbHNvIHRvIHRoZSByZWd1bGFyIGB0aXBgXQEgc2VudCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4gU28sIG5vdCBvbmx5IGRvZXMgdGhlIHRyYW5zYWN0aW9uIGdldCBhIHByaW9yaXR5IGJ1bXAgYmFzZWRhASBvbiB0aGUgYGluY2x1c2lvbl9mZWVgLCBidXQgd2UgYWxzbyBhbXBsaWZ5IHRoZSBpbXBhY3Qgb2YgdGlwcyBhcHBsaWVkIHRvIGBPcGVyYXRpb25hbGA4IHRyYW5zYWN0aW9ucy4AChhBc3NldHMBGEFzc2V0cxAUQXNzZXQAAQQCIKUCBAAEVCBEZXRhaWxzIG9mIGFuIGFzc2V0LhxBY2NvdW50AAEIAgKtArECBAAE5CBUaGUgaG9sZGluZ3Mgb2YgYSBzcGVjaWZpYyBhY2NvdW50IGZvciBhIHNwZWNpZmljIGFzc2V0LiRBcHByb3ZhbHMAAQwCAgK5Ar0CBAAMWQEgQXBwcm92ZWQgYmFsYW5jZSB0cmFuc2ZlcnMuIEZpcnN0IGJhbGFuY2UgaXMgdGhlIGFtb3VudCBhcHByb3ZlZCBmb3IgdHJhbnNmZXIuIFNlY29uZOggaXMgdGhlIGFtb3VudCBvZiBgVDo6Q3VycmVuY3lgIHJlc2VydmVkIGZvciBzdG9yaW5nIHRoaXMuSQEgRmlyc3Qga2V5IGlzIHRoZSBhc3NldCBJRCwgc2Vjb25kIGtleSBpcyB0aGUgb3duZXIgYW5kIHRoaXJkIGtleSBpcyB0aGUgZGVsZWdhdGUuIE1ldGFkYXRhAQEEAiDBAlAAAAAAAAAAAAAAAAAAAAAAAAAAAARYIE1ldGFkYXRhIG9mIGFuIGFzc2V0LgGJAQElAhxAUmVtb3ZlSXRlbXNMaW1pdCAQ6AMAAAxRASBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIGRlc3Ryb3kgcGVyIGBkZXN0cm95X2FjY291bnRzYCBhbmQgYGRlc3Ryb3lfYXBwcm92YWxzYCBjYWxsLgA5ASBNdXN0IGJlIGNvbmZpZ3VyZWQgdG8gcmVzdWx0IGluIGEgd2VpZ2h0IHRoYXQgbWFrZXMgZWFjaCBjYWxsIGZpdCBpbiBhIGJsb2NrLjBBc3NldERlcG9zaXRsQAAA6IkEI8eKAAAAAAAAAAAE+CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gYXNzZXQuTEFzc2V0QWNjb3VudERlcG9zaXRsQAAQpdToAAAAAAAAAAAAAAAIRQEgVGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGEgbm9uLXByb3ZpZGVyIGFzc2V0IGFjY291bnQgdG8gYmUwIG1haW50YWluZWQuTE1ldGFkYXRhRGVwb3NpdEJhc2VsQAAAwW/yhiMAAAAAAAAAAAAEUQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBhZGRpbmcgbWV0YWRhdGEgdG8geW91ciBhc3NldC5YTWV0YWRhdGFEZXBvc2l0UGVyQnl0ZWxAAIDGpH6NAwAAAAAAAAAAAAhVASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgeW91IHN0b3JlIGluIHlvdXIoIG1ldGFkYXRhLjxBcHByb3ZhbERlcG9zaXRsQAAQpdToAAAAAAAAAAAAAAAEIQEgVGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgd2hlbiBjcmVhdGluZyBhIG5ldyBhcHByb3ZhbC4sU3RyaW5nTGltaXQgEBQAAAAE4CBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBuYW1lIG9yIHN5bWJvbCBzdG9yZWQgb24tY2hhaW4uAckCC0hBdXRob3JpdHlEaXNjb3ZlcnkBSEF1dGhvcml0eURpc2NvdmVyeQgQS2V5cwEAzQIEAASMIEtleXMgb2YgdGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4gTmV4dEtleXMBAM0CBAAEgCBLZXlzIG9mIHRoZSBuZXh0IGF1dGhvcml0eSBzZXQuAAAAAAwoQ29sbGVjdGl2ZQEoQ29sbGVjdGl2ZRgkUHJvcG9zYWxzAQDVAgQABJAgVGhlIGhhc2hlcyBvZiB0aGUgYWN0aXZlIHByb3Bvc2Fscy4oUHJvcG9zYWxPZgABBAY1AXEBBAAEzCBBY3R1YWwgcHJvcG9zYWwgZm9yIGEgZ2l2ZW4gaGFzaCwgaWYgaXQncyBjdXJyZW50LhhWb3RpbmcAAQQGNQHZAgQABLQgVm90ZXMgb24gYSBnaXZlbiBwcm9wb3NhbCwgaWYgaXQgaXMgb25nb2luZy40UHJvcG9zYWxDb3VudAEAIBAAAAAABEggUHJvcG9zYWxzIHNvIGZhci4cTWVtYmVycwEAVAQABDkBIFRoZSBjdXJyZW50IG1lbWJlcnMgb2YgdGhlIGNvbGxlY3RpdmUuIFRoaXMgaXMgc3RvcmVkIHNvcnRlZCAoanVzdCBieSB2YWx1ZSkuFFByaW1lAAAkBAAEZQEgVGhlIHByaW1lIG1lbWJlciB0aGF0IGhlbHBzIGRldGVybWluZSB0aGUgZGVmYXVsdCB2b3RlIGJlaGF2aW9yIGluIGNhc2Ugb2YgYWJzZW50YXRpb25zLgGRAQEpAgRETWF4UHJvcG9zYWxXZWlnaHSVAQgAAAQlASBUaGUgbWF4aW11bSB3ZWlnaHQgb2YgYSBkaXNwYXRjaCBjYWxsIHRoYXQgY2FuIGJlIHByb3Bvc2VkIGFuZCBleGVjdXRlZC4B3QINJENvbnRyYWN0cwEkQ29udHJhY3RzHDBQcmlzdGluZUNvZGUAAQQGNQHhAgQABGUBIEEgbWFwcGluZyBmcm9tIGFuIG9yaWdpbmFsIGNvZGUgaGFzaCB0byB0aGUgb3JpZ2luYWwgY29kZSwgdW50b3VjaGVkIGJ5IGluc3RydW1lbnRhdGlvbi4sQ29kZVN0b3JhZ2UAAQQGNQHlAgQABGUBIEEgbWFwcGluZyBiZXR3ZWVuIGFuIG9yaWdpbmFsIGNvZGUgaGFzaCBhbmQgaW5zdHJ1bWVudGVkIHdhc20gY29kZSwgcmVhZHkgZm9yIGV4ZWN1dGlvbi4sT3duZXJJbmZvT2YAAQQGNQHtAgQABA0BIEEgbWFwcGluZyBiZXR3ZWVuIGFuIG9yaWdpbmFsIGNvZGUgaGFzaCBhbmQgaXRzIG93bmVyIGluZm9ybWF0aW9uLhROb25jZQEAHCAAAAAAAAAAAFgdASBUaGlzIGlzIGEgKiptb25vdG9uaWMqKiBjb3VudGVyIGluY3JlbWVudGVkIG9uIGNvbnRyYWN0IGluc3RhbnRpYXRpb24uAAUBIFRoaXMgaXMgdXNlZCBpbiBvcmRlciB0byBnZW5lcmF0ZSB1bmlxdWUgdHJpZSBpZHMgZm9yIGNvbnRyYWN0cy4pASBUaGUgdHJpZSBpZCBvZiBhIG5ldyBjb250cmFjdCBpcyBjYWxjdWxhdGVkIGZyb20gaGFzaChhY2NvdW50X2lkLCBub25jZSkuNQEgVGhlIG5vbmNlIGlzIHJlcXVpcmVkIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugd291bGQgbGVhZCB0b4QgYSBwb3NzaWJsZSBjb2xsaXNpb24gb2Ygc3RvcmFnZToAaCAxLiBDcmVhdGUgYSBuZXcgY29udHJhY3QubCAyLiBUZXJtaW5hdGUgdGhlIGNvbnRyYWN0LvwgMy4gSW1tZWRpYXRlbHkgcmVjcmVhdGUgdGhlIGNvbnRyYWN0IHdpdGggdGhlIHNhbWUgYWNjb3VudF9pZC4ARQEgVGhpcyBpcyBiYWQgYmVjYXVzZSB0aGUgY29udGVudHMgb2YgYSB0cmllIGFyZSBkZWxldGVkIGxhemlseSBhbmQgdGhlcmUgbWlnaHQgYmVZASBzdG9yYWdlIG9mIHRoZSBvbGQgaW5zdGFudGlhdGlvbiBzdGlsbCBpbiBpdCB3aGVuIHRoZSBuZXcgY29udHJhY3QgaXMgY3JlYXRlZC4gUGxlYXNlWQEgbm90ZSB0aGF0IHdlIGNhbid0IHJlcGxhY2UgdGhlIGNvdW50ZXIgYnkgdGhlIGJsb2NrIG51bWJlciBiZWNhdXNlIHRoZSBzZXF1ZW5jZSBhYm92ZVEBIGNhbiBoYXBwZW4gaW4gdGhlIHNhbWUgYmxvY2suIFdlIGFsc28gY2FuJ3Qga2VlcCB0aGUgYWNjb3VudCBjb3VudGVyIGluIG1lbW9yeSBvbmx5SQEgYmVjYXVzZSBzdG9yYWdlIGlzIHRoZSBvbmx5IHdheSB0byBjb21tdW5pY2F0ZSBhY3Jvc3MgZGlmZmVyZW50IGV4dHJpbnNpY3MgaW4gdGhlMCBzYW1lIGJsb2NrLgAcICMgTm90ZQA9ASBEbyBub3QgdXNlIGl0IHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIGNvbnRyYWN0cy4gSXQgd29uJ3QgYmUgZGVjcmVtZW50ZWQgaWZkIGEgY29udHJhY3QgaXMgZGVzdHJveWVkLjhDb250cmFjdEluZm9PZgABBAUk8QIEAAyoIFRoZSBjb2RlIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFjY291bnQuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guNERlbGV0aW9uUXVldWUAAQQFIGAEABDIIEV2aWN0ZWQgY29udHJhY3RzIHRoYXQgYXdhaXQgY2hpbGQgdHJpZSBkZWxldGlvbi4ASQEgQ2hpbGQgdHJpZSBkZWxldGlvbiBpcyBhIGhlYXZ5IG9wZXJhdGlvbiBkZXBlbmRpbmcgb24gdGhlIGFtb3VudCBvZiBzdG9yYWdlIGl0ZW1zQQEgc3RvcmVkIGluIHNhaWQgdHJpZS4gVGhlcmVmb3JlIHRoaXMgb3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBsYXppbHkgaW4gYG9uX2lkbGVgLlBEZWxldGlvblF1ZXVlQ291bnRlcgEA+QIgAAAAAAAAAAAITQEgQSBwYWlyIG9mIG1vbm90b25pYyBjb3VudGVycyB1c2VkIHRvIHRyYWNrIHRoZSBsYXRlc3QgY29udHJhY3QgbWFya2VkIGZvciBkZWxldGlvbqggYW5kIHRoZSBsYXRlc3QgZGVsZXRlZCBjb250cmFjdCBpbiBxdWV1ZS4BmQEBLQIgIFNjaGVkdWxl/QJpCAQAAAAAAQAAAAQAAIAAAAAQAAAAABAAAAABAAAgAAAAAEAAAAAAAAgEAAAAAAAAALwFAABJDQAABQwAAPEHAADhFwAANQYAAH8JAAC+EgAAKgAAAG8+AABZTwAA2wQAANQDAABdCAAAiwMAAPMaAAC/HAAA5wgAALsgyQB2AwAAHgMAAB0DAADUAgAAlgMAAGgDAAD+AgAAEgYAAPwFAAAdBgAAHAYAAKEFAACKBgAAIgYAAHoGAAAGBgAAJgYAAKUFAACfBgAASQUAABEdAABEGAAAyB4AAMAYAADcBAAAQAUAAMAFAACiBQAAqgYAAKgFAAAyBgAApwUAACa/FAAYFjzBBm0qshDyBn0qDgUZABj+HgoADA5IFAAYDhMUABj+eVgAGN4iFAAYVtETABiiBhUAGK4IFAAY1qRRACieJwgAAJpQEAAYLQkA9shpALTFAgBKluf8lXmGHGwAKCrR0wAoLnJRHjEnHQkANg4OABxtCwAO7DsflQRpBgBsBMK/rUZJMMK/Mh+FBCkBBHrGEweFBI0BBNbhIwelBDULBCLPRR+lBG0KBOrGLiZhJ/62iG2xKtbwylQxKJLz4kOJUD0JALb2X+xVUWoTRzkpKeURAI0UACLuIgAg0TwA3sosACDdMAB+OhkAIDEOAAYJGQAgPQ4AwgnCCDUBoqkwAqjy3FQLwQFVSQSuwQkADJbeDwCgOnIIAAwEaCBDb3N0IHNjaGVkdWxlIGFuZCBsaW1pdHMuOERlcG9zaXRQZXJCeXRlbEDoAwAAAAAAAAAAAAAAAAAAFBEBIFRoZSBhbW91bnQgb2YgYmFsYW5jZSBhIGNhbGxlciBoYXMgdG8gcGF5IGZvciBlYWNoIGJ5dGUgb2Ygc3RvcmFnZS4AHCAjIE5vdGUAKQEgQ2hhbmdpbmcgdGhpcyB2YWx1ZSBmb3IgYW4gZXhpc3RpbmcgY2hhaW4gbWlnaHQgbmVlZCBhIHN0b3JhZ2UgbWlncmF0aW9uLkxEZWZhdWx0RGVwb3NpdExpbWl0bEAAMO99ugIAAAAAAAAAAAAABEUBIEZhbGxiYWNrIHZhbHVlIHRvIGxpbWl0IHRoZSBzdG9yYWdlIGRlcG9zaXQgaWYgaXQncyBub3QgYmVpbmcgc2V0IGJ5IHRoZSBjYWxsZXIuOERlcG9zaXRQZXJJdGVtbEDoAwAAAAAAAAAAAAAAAAAAFAUBIFRoZSBhbW91bnQgb2YgYmFsYW5jZSBhIGNhbGxlciBoYXMgdG8gcGF5IGZvciBlYWNoIHN0b3JhZ2UgaXRlbS4AHCAjIE5vdGUAKQEgQ2hhbmdpbmcgdGhpcyB2YWx1ZSBmb3IgYW4gZXhpc3RpbmcgY2hhaW4gbWlnaHQgbmVlZCBhIHN0b3JhZ2UgbWlncmF0aW9uLihNYXhDb2RlTGVuIBAA0AcAHF0BIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbnRyYWN0IGNvZGUgaW4gYnl0ZXMuIFRoaXMgbGltaXQgYXBwbGllcyB0byB0aGUgaW5zdHJ1bWVudGVkUQEgdmVyc2lvbiBvZiB0aGUgY29kZS4gVGhlcmVmb3JlIGBpbnN0YW50aWF0ZV93aXRoX2NvZGVgIGNhbiBmYWlsIGV2ZW4gd2hlbiBzdXBwbHlpbmecIGEgd2FzbSBiaW5hcnkgYmVsb3cgdGhpcyBtYXhpbXVtIHNpemUuAFkBIFRoZSB2YWx1ZSBzaG91bGQgYmUgY2hvc2VuIGNhcmVmdWxseSB0YWtpbmcgaW50byB0aGUgYWNjb3VudCB0aGUgb3ZlcmFsbCBtZW1vcnkgbGltaXTwIHlvdXIgcnVudGltZSBoYXMsIGFzIHdlbGwgYXMgdGhlIFttYXhpbXVtIGFsbG93ZWQgY2FsbHN0YWNrXQEgZGVwdGhdKCNhc3NvY2lhdGVkdHlwZS5DYWxsU3RhY2spLiBMb29rIGludG8gdGhlIGBpbnRlZ3JpdHlfdGVzdCgpYCBmb3Igc29tZSBpbnNpZ2h0cy5ATWF4U3RvcmFnZUtleUxlbiAQgAAAAATgIFRoZSBtYXhpbXVtIGFsbG93YWJsZSBsZW5ndGggaW4gYnl0ZXMgZm9yIHN0b3JhZ2Uga2V5cy5cVW5zYWZlVW5zdGFibGVJbnRlcmZhY2X4BAAkEQEgTWFrZSBjb250cmFjdCBjYWxsYWJsZSBmdW5jdGlvbnMgbWFya2VkIGFzIGAjW3Vuc3RhYmxlXWAgYXZhaWxhYmxlLgA9ASBDb250cmFjdHMgdGhhdCB1c2UgYCNbdW5zdGFibGVdYCBmdW5jdGlvbnMgd29uJ3QgYmUgYWJsZSB0byBiZSB1cGxvYWRlZCB1bmxlc3NFASB0aGlzIGlzIHNldCB0byBgdHJ1ZWAuIFRoaXMgaXMgb25seSBtZWFudCBmb3IgdGVzdG5ldHMgYW5kIGRldiBub2RlcyBpbiBvcmRlciB0b3ggZXhwZXJpbWVudCB3aXRoIG5ldyBmZWF0dXJlcy4AKCAjIFdhcm5pbmcAwCBEbyAqKm5vdCoqIHNldCB0byBgdHJ1ZWAgb24gcHJvZHVjdGlvbnMgY2hhaW5zLkRNYXhEZWJ1Z0J1ZmZlckxlbiAQAAAgAATEIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgZGVidWcgYnVmZmVyIGluIGJ5dGVzLgENAw4oSGlzdG9yaWNhbAEoSGlzdG9yaWNhbAhISGlzdG9yaWNhbFNlc3Npb25zAAEEBSARAwQABF0BIE1hcHBpbmcgZnJvbSBoaXN0b3JpY2FsIHNlc3Npb24gaW5kaWNlcyB0byBzZXNzaW9uLWRhdGEgcm9vdCBoYXNoIGFuZCB2YWxpZGF0b3IgY291bnQuLFN0b3JlZFJhbmdlAAApAQQABOQgVGhlIHJhbmdlIG9mIGhpc3RvcmljYWwgc2Vzc2lvbnMgd2Ugc3RvcmUuIFtmaXJzdCwgbGFzdCkAAAAADyBJbU9ubGluZQEgSW1PbmxpbmUQOEhlYXJ0YmVhdEFmdGVyAQAgEAAAAAAsHQEgVGhlIGJsb2NrIG51bWJlciBhZnRlciB3aGljaCBpdCdzIG9rIHRvIHNlbmQgaGVhcnRiZWF0cyBpbiB0aGUgY3VycmVudCQgc2Vzc2lvbi4AJQEgQXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHNlc3Npb24gd2Ugc2V0IHRoaXMgdG8gYSB2YWx1ZSB0aGF0IHNob3VsZCBmYWxsNQEgcm91Z2hseSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzZXNzaW9uIGR1cmF0aW9uLiBUaGUgaWRlYSBpcyB0byBmaXJzdCB3YWl0IGZvchkBIHRoZSB2YWxpZGF0b3JzIHRvIHByb2R1Y2UgYSBibG9jayBpbiB0aGUgY3VycmVudCBzZXNzaW9uLCBzbyB0aGF0IHRoZaggaGVhcnRiZWF0IGxhdGVyIG9uIHdpbGwgbm90IGJlIG5lY2Vzc2FyeS4AOQEgVGhpcyB2YWx1ZSB3aWxsIG9ubHkgYmUgdXNlZCBhcyBhIGZhbGxiYWNrIGlmIHdlIGZhaWwgdG8gZ2V0IGEgcHJvcGVyIHNlc3Npb24tASBwcm9ncmVzcyBlc3RpbWF0ZSBmcm9tIGBOZXh0U2Vzc2lvblJvdGF0aW9uYCwgYXMgdGhvc2UgZXN0aW1hdGVzIHNob3VsZCBiZQEBIG1vcmUgYWNjdXJhdGUgdGhlbiB0aGUgdmFsdWUgd2UgY2FsY3VsYXRlIGZvciBgSGVhcnRiZWF0QWZ0ZXJgLhBLZXlzAQAVAwQABNAgVGhlIGN1cnJlbnQgc2V0IG9mIGtleXMgdGhhdCBtYXkgaXNzdWUgYSBoZWFydGJlYXQuSFJlY2VpdmVkSGVhcnRiZWF0cwABCAUFKQEdAwQACD0BIEZvciBlYWNoIHNlc3Npb24gaW5kZXgsIHdlIGtlZXAgYSBtYXBwaW5nIG9mIGBTZXNzaW9uSW5kZXhgIGFuZCBgQXV0aEluZGV4YCB0b7AgYFdyYXBwZXJPcGFxdWU8Qm91bmRlZE9wYXF1ZU5ldHdvcmtTdGF0ZT5gLjhBdXRob3JlZEJsb2NrcwEBCAUFrQIgEAAAAAAIFQEgRm9yIGVhY2ggc2Vzc2lvbiBpbmRleCwgd2Uga2VlcCBhIG1hcHBpbmcgb2YgYFZhbGlkYXRvcklkPFQ+YCB0byB0aGXIIG51bWJlciBvZiBibG9ja3MgYXV0aG9yZWQgYnkgdGhlIGdpdmVuIGF1dGhvcml0eS4BpQEBMQIEQFVuc2lnbmVkUHJpb3JpdHkcIP//////////EPAgQSBjb25maWd1cmF0aW9uIGZvciBiYXNlIHByaW9yaXR5IG9mIHVuc2lnbmVkIHRyYW5zYWN0aW9ucy4AFQEgVGhpcyBpcyBleHBvc2VkIHNvIHRoYXQgaXQgY2FuIGJlIHR1bmVkIGZvciBwYXJ0aWN1bGFyIHJ1bnRpbWUsIHdoZW60IG11bHRpcGxlIHBhbGxldHMgc2VuZCB1bnNpZ25lZCB0cmFuc2FjdGlvbnMuATEDEGBSYW5kb21uZXNzQ29sbGVjdGl2ZUZsaXABYFJhbmRvbW5lc3NDb2xsZWN0aXZlRmxpcAQ4UmFuZG9tTWF0ZXJpYWwBADUDBAAMYQEgU2VyaWVzIG9mIGJsb2NrIGhlYWRlcnMgZnJvbSB0aGUgbGFzdCA4MSBibG9ja3MgdGhhdCBhY3RzIGFzIHJhbmRvbSBzZWVkIG1hdGVyaWFsLiBUaGlzYQEgaXMgYXJyYW5nZWQgYXMgYSByaW5nIGJ1ZmZlciB3aXRoIGBibG9ja19udW1iZXIgJSA4MWAgYmVpbmcgdGhlIGluZGV4IGludG8gdGhlIGBWZWNgIG9mRCB0aGUgb2xkZXN0IGhhc2guAAAAABEcU2Vzc2lvbgEcU2Vzc2lvbhwoVmFsaWRhdG9ycwEAVAQABHwgVGhlIGN1cnJlbnQgc2V0IG9mIHZhbGlkYXRvcnMuMEN1cnJlbnRJbmRleAEAIBAAAAAABHggQ3VycmVudCBpbmRleCBvZiB0aGUgc2Vzc2lvbi40UXVldWVkQ2hhbmdlZAEA+AQACDkBIFRydWUgaWYgdGhlIHVuZGVybHlpbmcgZWNvbm9taWMgaWRlbnRpdGllcyBvciB3ZWlnaHRpbmcgYmVoaW5kIHRoZSB2YWxpZGF0b3JzpCBoYXMgY2hhbmdlZCBpbiB0aGUgcXVldWVkIHZhbGlkYXRvciBzZXQuKFF1ZXVlZEtleXMBADkDBAAIPQEgVGhlIHF1ZXVlZCBrZXlzIGZvciB0aGUgbmV4dCBzZXNzaW9uLiBXaGVuIHRoZSBuZXh0IHNlc3Npb24gYmVnaW5zLCB0aGVzZSBrZXlz4CB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZGF0b3IncyBzZXNzaW9uIGtleXMuSERpc2FibGVkVmFsaWRhdG9ycwEAQQMEABSAIEluZGljZXMgb2YgZGlzYWJsZWQgdmFsaWRhdG9ycy4APQEgVGhlIHZlYyBpcyBhbHdheXMga2VwdCBzb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZmluZCB3aGV0aGVyIGEgZ2l2ZW4gdmFsaWRhdG9yIGlzPQEgZGlzYWJsZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC4gSXQgZ2V0cyBjbGVhcmVkIHdoZW4gYG9uX3Nlc3Npb25fZW5kaW5nYCByZXR1cm5zZCBhIG5ldyBzZXQgb2YgaWRlbnRpdGllcy4gTmV4dEtleXMAAQQFJMkBBAAEnCBUaGUgbmV4dCBzZXNzaW9uIGtleXMgZm9yIGEgdmFsaWRhdG9yLiBLZXlPd25lcgABBAVFAyQEAAQJASBUaGUgb3duZXIgb2YgYSBrZXkuIFRoZSBrZXkgaXMgdGhlIGBLZXlUeXBlSWRgICsgdGhlIGVuY29kZWQga2V5LgHFAQE9AgABTQMSIFRyZWFzdXJ5ASBUcmVhc3VyeRA0UHJvcG9zYWxDb3VudAEAIBAAAAAABKQgTnVtYmVyIG9mIHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLiRQcm9wb3NhbHMAAQQFIFEDBAAEfCBQcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4sRGVhY3RpdmF0ZWQBAGxAAAAAAAAAAAAAAAAAAAAAAATwIFRoZSBhbW91bnQgd2hpY2ggaGFzIGJlZW4gcmVwb3J0ZWQgYXMgaW5hY3RpdmUgdG8gQ3VycmVuY3kuJEFwcHJvdmFscwEAVQMEAAT4IFByb3Bvc2FsIGluZGljZXMgdGhhdCBoYXZlIGJlZW4gYXBwcm92ZWQgYnV0IG5vdCB5ZXQgYXdhcmRlZC4B1QEBQQIcMFByb3Bvc2FsQm9uZFkDEKCGAQAIVQEgRnJhY3Rpb24gb2YgYSBwcm9wb3NhbCdzIHZhbHVlIHRoYXQgc2hvdWxkIGJlIGJvbmRlZCBpbiBvcmRlciB0byBwbGFjZSB0aGUgcHJvcG9zYWwuEQEgQW4gYWNjZXB0ZWQgcHJvcG9zYWwgZ2V0cyB0aGVzZSBiYWNrLiBBIHJlamVjdGVkIHByb3Bvc2FsIGRvZXMgbm90LkxQcm9wb3NhbEJvbmRNaW5pbXVtbEAAgMakfo0DAAAAAAAAAAAABEkBIE1pbmltdW0gYW1vdW50IG9mIGZ1bmRzIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiBhIGRlcG9zaXQgZm9yIG1ha2luZyBhIHByb3Bvc2FsLkxQcm9wb3NhbEJvbmRNYXhpbXVtXQMEAARJASBNYXhpbXVtIGFtb3VudCBvZiBmdW5kcyB0aGF0IHNob3VsZCBiZSBwbGFjZWQgaW4gYSBkZXBvc2l0IGZvciBtYWtpbmcgYSBwcm9wb3NhbC4sU3BlbmRQZXJpb2QgEAEAAAAEiCBQZXJpb2QgYmV0d2VlbiBzdWNjZXNzaXZlIHNwZW5kcy4QQnVyblkDEAAAAAAEEQEgUGVyY2VudGFnZSBvZiBzcGFyZSBmdW5kcyAoaWYgYW55KSB0aGF0IGFyZSBidXJudCBwZXIgc3BlbmQgcGVyaW9kLiBQYWxsZXRJZKAgdHJlYXN1cnkEGQEgVGhlIHRyZWFzdXJ5J3MgcGFsbGV0IGlkLCB1c2VkIGZvciBkZXJpdmluZyBpdHMgc292ZXJlaWduIGFjY291bnQgSUQuME1heEFwcHJvdmFscyAQAAAAAAwVASBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXBwcm92YWxzIHRoYXQgY2FuIHdhaXQgaW4gdGhlIHNwZW5kaW5nIHF1ZXVlLgBNASBOT1RFOiBUaGlzIHBhcmFtZXRlciBpcyBhbHNvIHVzZWQgd2l0aGluIHRoZSBCb3VudGllcyBQYWxsZXQgZXh0ZW5zaW9uIGlmIGVuYWJsZWQuAWEDEyxDb3VuY2lsTG9jawEsQ291bmNpbExvY2scLFBhbGxldEFkbWluAAAkBAAALFByb3Bvc2FsRmVlAQBsQAAAAAAAAAAAAAAAAAAAAAAE7CBmZWUgdG8gcHJvcG9zYWwgYSBsb2NrIG9uIGFuIGFjY291bnQuIHBhaWQgYnkgdGhlIHByb3Bvc2VySE1pbmluZ1Bvb2xDb250cmFjdAAAJAQAACRQcm9wb3NhbHMAAQQCJGUDBAAALFJlZmVyZW5kdW1zAAEEAiRxAwQAACxSZXNvbHV0aW9ucwABCAICrQJ9AwQAADhMb2NrZWRBY2NvdW50cwABBAIkgQMEAAAB2QEBRQIEPENvdW5jaWxQYWxsZXRJZKAgY291bmNpbC8AAYUDFChEOU11bHRpU2lnAShEOU11bHRpU2lnDFhNdWx0aVNpZ25hdHVyZUFjY291bnRzAAEEAiSJAwQADJggdGhlIGV4aXN0ZW50IG11bHRpIHNpZ25hdHVyZSBhY2NvdW50cwARASBrZXk6IG11bHRpIHNpZ25hdHVyZSBhY2NvdW50IGFkZHJlc3MgdmFsdWU6IG11bHRpIHNpZ25hdHVyZSBhY2NvdW50UFVzZXJNdWx0aVNpZ0FjY291bnRzAAEEAiStAwQABGEBIGtleTogbm9ybWFsIGFjY291bnRzIHZhbHVlOiB2ZWMgb2YgbXVsdGkgc2lnbmF0dXJlIGFjY291bnQgaWRzIHRoYXQgdXNlciBpcyBhIG1lbWJlciBvZlBNaW5BcHByb3ZhbFByb3Bvc2FscwABBAIksQMEAARwIChtc2FfYWRkcmVzcywgcHJvcG9zYWwpICAgIAHdAQFRAgABtQMVuQMEIEhDaGVja05vblplcm9TZW5kZXLNA8xAQ2hlY2tTcGVjVmVyc2lvbtEDIDhDaGVja1R4VmVyc2lvbtUDIDBDaGVja0dlbmVzaXPZAzUBOENoZWNrTW9ydGFsaXR53QM1AShDaGVja05vbmNl5QPMLENoZWNrV2VpZ2h06QPMYENoYXJnZVRyYW5zYWN0aW9uUGF5bWVudO0DzGkD\";\nvar d9_metadata_default = binMeta;\nexport {\n d9_metadata_default as default\n};\n"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,sBADU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptors-KKD7UFMX-BQkrqfg1.mjs","names":[],"sources":["../../../node_modules/.bun/@polkadot-api+descriptors@file+packages+spec+.papi+descriptors+d79ebbef3c6d76c9/node_modules/@polkadot-api/descriptors/dist/descriptors-KKD7UFMX.mjs"],"sourcesContent":["// .papi/descriptors/src/descriptors.ts\nvar [minified, commonTrees, tokens] = JSON.parse(`[{\"d9\":{\"storage\":{\"0\":{\"Authorities\":0,\"CurrentSlot\":1},\"1\":{\"MaxReferralDepth\":2,\"ReferralRelationships\":3,\"DirectReferralsCount\":4},\"2\":{\"Treasurer\":10},\"4\":{\"3\":18,\"UsersVotingInterests\":12,\"UserToNodeVotesTotals\":13,\"NodeToUserVotesTotals\":13,\"NodeAccumulativeVotes\":14,\"CurrentNumberOfCandidatesNodes\":2,\"SessionNodeList\":15,\"CurrentSessionIndex\":2,\"CurrentValidatorVoteStats\":16,\"NodeMetadata\":17},\"5\":{\"3\":18,\"NodeRewardContract\":18},\"7\":{\"6\":32,\"TotalIssuance\":1,\"InactiveIssuance\":1,\"Locks\":33,\"Reserves\":34,\"Holds\":34,\"Freezes\":34},\"8\":{\"State\":50,\"PendingChange\":51,\"NextForced\":2,\"Stalled\":52,\"CurrentSetId\":1,\"SetIdSession\":53},\"9\":{\"Key\":18},\"10\":{\"6\":63,\"ExtrinsicCount\":2,\"BlockWeight\":64,\"AllExtrinsicsLen\":2,\"BlockHash\":65,\"ExtrinsicData\":66,\"Number\":2,\"ParentHash\":67,\"Digest\":68,\"Events\":69,\"EventCount\":2,\"EventTopics\":70,\"LastRuntimeUpgrade\":71,\"UpgradedToU32RefCount\":72,\"UpgradedToTripleRefCount\":72,\"ExecutionPhase\":73},\"11\":{\"Now\":1,\"DidUpdate\":72},\"12\":{\"NextFeeMultiplier\":1,\"StorageVersion\":89},\"14\":{\"6\":92,\"13\":93,\"Asset\":91,\"Metadata\":94},\"17\":{\"15\":0,\"16\":0},\"20\":{\"18\":0,\"19\":2,\"ProposalOf\":129,\"Voting\":130,\"Members\":131,\"Prime\":18},\"21\":{\"PristineCode\":144,\"CodeStorage\":145,\"OwnerInfoOf\":146,\"Nonce\":1,\"ContractInfoOf\":147,\"DeletionQueue\":66,\"DeletionQueueCounter\":148},\"22\":{\"HistoricalSessions\":166,\"StoredRange\":52},\"23\":{\"15\":0,\"HeartbeatAfter\":2,\"ReceivedHeartbeats\":167,\"AuthoredBlocks\":168},\"24\":{\"RandomMaterial\":0},\"25\":{\"16\":174,\"Validators\":131,\"CurrentIndex\":2,\"QueuedChanged\":72,\"QueuedKeys\":172,\"DisabledValidators\":173,\"KeyOwner\":175},\"26\":{\"13\":173,\"18\":178,\"19\":2,\"Deactivated\":1},\"27\":{\"3\":18,\"18\":192,\"ProposalFee\":1,\"MiningPoolContract\":18,\"Referendums\":193,\"Resolutions\":194,\"LockedAccounts\":195},\"28\":{\"MultiSignatureAccounts\":206,\"UserMultiSigAccounts\":207,\"MinApprovalProposals\":208}},\"tx\":{\"0\":0,\"1\":{\"change_referral_depth\":5},\"2\":{\"new_treasurer\":11},\"4\":{\"29\":27,\"submit_candidacy\":19,\"add_voting_interest\":20,\"delegate_votes\":21,\"remove_candidacy\":22,\"try_remove_votes_from_candidate\":23,\"redistribute_votes\":24,\"change_candidate_name\":25,\"change_candidate_supporter_share\":26},\"5\":{\"29\":27,\"set_node_reward_contract\":29},\"7\":{\"30\":37,\"31\":35,\"32\":35,\"transfer_allow_death\":35,\"set_balance_deprecated\":36,\"transfer_all\":38,\"force_unreserve\":39,\"upgrade_accounts\":40,\"force_set_balance\":41},\"8\":{\"report_equivocation\":54,\"report_equivocation_unsigned\":54,\"note_stalled\":55},\"9\":{\"sudo\":57,\"sudo_unchecked_weight\":58,\"set_key\":59,\"sudo_as\":60},\"10\":{\"33\":80,\"remark\":78,\"set_heap_pages\":79,\"set_code_without_checks\":80,\"set_storage\":81,\"kill_storage\":82,\"kill_prefix\":83,\"remark_with_event\":78},\"11\":{\"set\":88},\"12\":0,\"14\":{\"30\":101,\"31\":100,\"32\":100,\"create\":95,\"force_create\":96,\"start_destroy\":97,\"destroy_accounts\":97,\"destroy_approvals\":97,\"finish_destroy\":97,\"mint\":98,\"burn\":99,\"freeze\":102,\"thaw\":102,\"freeze_asset\":97,\"thaw_asset\":97,\"transfer_ownership\":103,\"set_team\":104,\"set_metadata\":105,\"clear_metadata\":97,\"force_set_metadata\":106,\"force_clear_metadata\":97,\"force_asset_status\":107,\"approve_transfer\":108,\"cancel_approval\":109,\"force_cancel_approval\":110,\"transfer_approved\":111,\"touch\":97,\"refund\":112,\"set_min_balance\":113},\"17\":0,\"20\":{\"set_members\":133,\"execute\":134,\"propose\":135,\"vote\":136,\"disapprove_proposal\":137,\"close\":138},\"21\":{\"33\":155,\"call_old_weight\":150,\"instantiate_with_code_old_weight\":151,\"instantiate_old_weight\":152,\"upload_code\":153,\"remove_code\":154,\"call\":156,\"instantiate_with_code\":157,\"instantiate\":158},\"22\":0,\"23\":{\"heartbeat\":169},\"24\":0,\"25\":{\"set_keys\":176,\"purge_keys\":22},\"26\":{\"propose_spend\":180,\"reject_proposal\":181,\"approve_proposal\":181,\"spend\":182,\"remove_approval\":181},\"27\":{\"29\":27,\"set_mining_pool_contract\":29,\"propose_lock\":196,\"propose_unlock\":197,\"vote_in_referendum\":198,\"set_proposal_fee\":199,\"admin_lock_accounts\":200,\"admin_unlock_accounts\":201,\"admin_remove_proposal\":202},\"28\":{\"create_multi_sig_account\":209,\"author_a_call\":210,\"add_call_approval\":211,\"remove_call_approval\":211,\"proposal_msa_new_minimum\":212,\"approve_msa_new_minimum\":213,\"revoke_approval_for_msa_new_minimum\":213,\"remove_call\":211}},\"events\":{\"0\":0,\"1\":{\"NewReferralRelationshipCreated\":6,\"NewReferralDepthSet\":7,\"NewDefaultParentSet\":8},\"2\":{\"NewTreasurer\":8},\"4\":{\"CandidacySubmitted\":8,\"VotesDelegatedBy\":8,\"CandidacyRemoved\":8},\"5\":{\"ErrorIssuingRewards\":30,\"ContractError\":31},\"7\":{\"34\":46,\"35\":46,\"36\":49,\"37\":46,\"38\":46,\"Endowed\":42,\"DustLost\":43,\"Transfer\":44,\"BalanceSet\":45,\"Reserved\":46,\"Unreserved\":46,\"ReserveRepatriated\":47,\"Withdraw\":46,\"Slashed\":46,\"Minted\":46,\"Suspended\":46,\"Restored\":46,\"Upgraded\":48,\"Rescinded\":49,\"Locked\":46,\"Unlocked\":46},\"8\":{\"NewAuthorities\":56,\"Paused\":30,\"Resumed\":30},\"9\":{\"Sudid\":61,\"KeyChanged\":62,\"SudoAsDone\":61},\"10\":{\"ExtrinsicSuccess\":84,\"ExtrinsicFailed\":85,\"CodeUpdated\":30,\"NewAccount\":86,\"KilledAccount\":86,\"Remarked\":87},\"11\":0,\"12\":{\"TransactionFeePaid\":90},\"14\":{\"35\":117,\"36\":115,\"37\":120,\"38\":120,\"Created\":114,\"Transferred\":116,\"TeamChanged\":118,\"OwnerChanged\":119,\"AssetFrozen\":121,\"AssetThawed\":121,\"AccountsDestroyed\":122,\"ApprovalsDestroyed\":123,\"DestructionStarted\":121,\"Destroyed\":121,\"ForceCreated\":119,\"MetadataSet\":124,\"MetadataCleared\":121,\"ApprovedTransfer\":125,\"ApprovalCancelled\":126,\"TransferredApproved\":127,\"AssetStatusChanged\":121,\"AssetMinBalanceChanged\":128},\"17\":0,\"20\":{\"39\":139,\"Voted\":140,\"Approved\":141,\"Disapproved\":141,\"Executed\":142,\"MemberExecuted\":142,\"Closed\":143},\"21\":{\"Instantiated\":159,\"Terminated\":160,\"CodeStored\":161,\"ContractEmitted\":162,\"CodeRemoved\":161,\"ContractCodeUpdated\":163,\"Called\":164,\"DelegateCalled\":165},\"22\":0,\"23\":{\"HeartbeatReceived\":170,\"AllGood\":30,\"SomeOffline\":171},\"24\":0,\"25\":{\"NewSession\":177},\"26\":{\"34\":189,\"39\":183,\"Spending\":184,\"Awarded\":185,\"Rejected\":186,\"Burnt\":187,\"Rollover\":188,\"SpendApproved\":190,\"UpdatedInactive\":191},\"27\":{\"AccountNominatedForLock\":8,\"ProposalFeePaid\":203,\"VoteRecorded\":204,\"AccountLocked\":8,\"AccountUnlocked\":8,\"AccountNominatedForUnlock\":8,\"VoteStarted\":30,\"VoteEnded\":205},\"28\":{\"MultiSignatureAccountCreated\":6,\"MultiSignatureAccountUpdated\":6,\"NewCallAuthored\":214,\"ApprovalAdded\":6,\"ApprovalRemoved\":6,\"CallExecuted\":215,\"MinApprovalsChanged\":216}},\"constants\":{\"0\":0,\"1\":0,\"2\":0,\"4\":0,\"5\":{\"40\":28},\"7\":{\"ExistentialDeposit\":1,\"MaxLocks\":2,\"MaxReserves\":2,\"MaxHolds\":2,\"MaxFreezes\":2},\"8\":{\"MaxAuthorities\":2,\"MaxSetIdSessionEntries\":1},\"9\":0,\"10\":{\"BlockWeights\":74,\"BlockLength\":75,\"BlockHashCount\":2,\"DbWeight\":76,\"Version\":77,\"SS58Prefix\":2},\"11\":{\"MinimumPeriod\":1},\"12\":{\"OperationalFeeMultiplier\":2},\"14\":{\"RemoveItemsLimit\":2,\"AssetDeposit\":1,\"AssetAccountDeposit\":1,\"MetadataDepositBase\":1,\"MetadataDepositPerByte\":1,\"ApprovalDeposit\":1,\"StringLimit\":2},\"17\":0,\"20\":{\"MaxProposalWeight\":132},\"21\":{\"Schedule\":149,\"DepositPerByte\":1,\"DefaultDepositLimit\":1,\"DepositPerItem\":1,\"MaxCodeLen\":2,\"MaxStorageKeyLen\":2,\"UnsafeUnstableInterface\":72,\"MaxDebugBufferLen\":2},\"22\":0,\"23\":{\"UnsignedPriority\":1},\"24\":0,\"25\":0,\"26\":{\"40\":28,\"ProposalBond\":2,\"ProposalBondMinimum\":1,\"ProposalBondMaximum\":179,\"SpendPeriod\":2,\"Burn\":2,\"MaxApprovals\":2},\"27\":{\"CouncilPalletId\":28},\"28\":0},\"viewFns\":{\"0\":0,\"1\":0,\"2\":0,\"4\":0,\"5\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"14\":0,\"17\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0},\"apis\":{}}},[{}],[\"Aura\",\"D9Referral\",\"D9Treasury\",\"PalletAdmin\",\"D9NodeVoting\",\"D9NodeRewards\",\"Account\",\"Balances\",\"Grandpa\",\"Sudo\",\"System\",\"Timestamp\",\"TransactionPayment\",\"Approvals\",\"Assets\",\"Keys\",\"NextKeys\",\"AuthorityDiscovery\",\"Proposals\",\"ProposalCount\",\"Collective\",\"Contracts\",\"Historical\",\"ImOnline\",\"RandomnessCollectiveFlip\",\"Session\",\"Treasury\",\"CouncilLock\",\"D9MultiSig\",\"set_pallet_admin\",\"force_transfer\",\"transfer_keep_alive\",\"transfer\",\"set_code\",\"Deposit\",\"Burned\",\"Issued\",\"Frozen\",\"Thawed\",\"Proposed\",\"PalletId\"]]`);\nvar replaceTokens = (obj) => Object.fromEntries(\n Object.entries(obj).map(([key, value]) => {\n const unwrappedValue = typeof value === \"object\" ? replaceTokens(value) : value;\n const numericKey = Number(key);\n if (Number.isNaN(numericKey)) {\n return [key, unwrappedValue];\n }\n return [tokens[numericKey], unwrappedValue];\n })\n);\nvar tokenizedCommonTrees = commonTrees.map(replaceTokens);\nvar unwrap = (obj, depth) => depth === 0 ? obj : Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n key,\n unwrap(\n typeof value === \"object\" ? value : tokenizedCommonTrees[value],\n depth - 1\n )\n ])\n);\nvar getChainDescriptors = (key) => unwrap(replaceTokens(minified[key]), 2);\nvar D9 = getChainDescriptors(\"d9\");\nexport {\n D9\n};\n"],"x_google_ignoreList":[0],"mappings":";AACA,IAAI,CAAC,UAAU,aAAa,UAAU,KAAK,MAAM,2qPAA2qP;AAC5tP,IAAI,iBAAiB,QAAQ,OAAO,YAClC,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW;CACxC,MAAM,iBAAiB,OAAO,UAAU,WAAW,cAAc,MAAM,GAAG;CAC1E,MAAM,aAAa,OAAO,IAAI;AAC9B,KAAI,OAAO,MAAM,WAAW,CAC1B,QAAO,CAAC,KAAK,eAAe;AAE9B,QAAO,CAAC,OAAO,aAAa,eAAe;EAC3C,CACH;AACD,IAAI,uBAAuB,YAAY,IAAI,cAAc;AACzD,IAAI,UAAU,KAAK,UAAU,UAAU,IAAI,MAAM,OAAO,YACtD,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CACxC,KACA,OACE,OAAO,UAAU,WAAW,QAAQ,qBAAqB,QACzD,QAAQ,EACT,CACF,CAAC,CACH;AACD,IAAI,uBAAuB,QAAQ,OAAO,cAAc,SAAS,KAAK,EAAE,EAAE;AAC1E,IAAI,KAAK,oBAAoB,KAAK"}
@@ -1,17 +0,0 @@
1
-
2
- //#region ../../node_modules/.bun/@polkadot-api+descriptors@file+packages+spec+.papi+descriptors+d79ebbef3c6d76c9/node_modules/@polkadot-api/descriptors/dist/descriptors-KKD7UFMX.mjs
3
- var [minified, commonTrees, tokens] = JSON.parse(`[{"d9":{"storage":{"0":{"Authorities":0,"CurrentSlot":1},"1":{"MaxReferralDepth":2,"ReferralRelationships":3,"DirectReferralsCount":4},"2":{"Treasurer":10},"4":{"3":18,"UsersVotingInterests":12,"UserToNodeVotesTotals":13,"NodeToUserVotesTotals":13,"NodeAccumulativeVotes":14,"CurrentNumberOfCandidatesNodes":2,"SessionNodeList":15,"CurrentSessionIndex":2,"CurrentValidatorVoteStats":16,"NodeMetadata":17},"5":{"3":18,"NodeRewardContract":18},"7":{"6":32,"TotalIssuance":1,"InactiveIssuance":1,"Locks":33,"Reserves":34,"Holds":34,"Freezes":34},"8":{"State":50,"PendingChange":51,"NextForced":2,"Stalled":52,"CurrentSetId":1,"SetIdSession":53},"9":{"Key":18},"10":{"6":63,"ExtrinsicCount":2,"BlockWeight":64,"AllExtrinsicsLen":2,"BlockHash":65,"ExtrinsicData":66,"Number":2,"ParentHash":67,"Digest":68,"Events":69,"EventCount":2,"EventTopics":70,"LastRuntimeUpgrade":71,"UpgradedToU32RefCount":72,"UpgradedToTripleRefCount":72,"ExecutionPhase":73},"11":{"Now":1,"DidUpdate":72},"12":{"NextFeeMultiplier":1,"StorageVersion":89},"14":{"6":92,"13":93,"Asset":91,"Metadata":94},"17":{"15":0,"16":0},"20":{"18":0,"19":2,"ProposalOf":129,"Voting":130,"Members":131,"Prime":18},"21":{"PristineCode":144,"CodeStorage":145,"OwnerInfoOf":146,"Nonce":1,"ContractInfoOf":147,"DeletionQueue":66,"DeletionQueueCounter":148},"22":{"HistoricalSessions":166,"StoredRange":52},"23":{"15":0,"HeartbeatAfter":2,"ReceivedHeartbeats":167,"AuthoredBlocks":168},"24":{"RandomMaterial":0},"25":{"16":174,"Validators":131,"CurrentIndex":2,"QueuedChanged":72,"QueuedKeys":172,"DisabledValidators":173,"KeyOwner":175},"26":{"13":173,"18":178,"19":2,"Deactivated":1},"27":{"3":18,"18":192,"ProposalFee":1,"MiningPoolContract":18,"Referendums":193,"Resolutions":194,"LockedAccounts":195},"28":{"MultiSignatureAccounts":206,"UserMultiSigAccounts":207,"MinApprovalProposals":208}},"tx":{"0":0,"1":{"change_referral_depth":5},"2":{"new_treasurer":11},"4":{"29":27,"submit_candidacy":19,"add_voting_interest":20,"delegate_votes":21,"remove_candidacy":22,"try_remove_votes_from_candidate":23,"redistribute_votes":24,"change_candidate_name":25,"change_candidate_supporter_share":26},"5":{"29":27,"set_node_reward_contract":29},"7":{"30":37,"31":35,"32":35,"transfer_allow_death":35,"set_balance_deprecated":36,"transfer_all":38,"force_unreserve":39,"upgrade_accounts":40,"force_set_balance":41},"8":{"report_equivocation":54,"report_equivocation_unsigned":54,"note_stalled":55},"9":{"sudo":57,"sudo_unchecked_weight":58,"set_key":59,"sudo_as":60},"10":{"33":80,"remark":78,"set_heap_pages":79,"set_code_without_checks":80,"set_storage":81,"kill_storage":82,"kill_prefix":83,"remark_with_event":78},"11":{"set":88},"12":0,"14":{"30":101,"31":100,"32":100,"create":95,"force_create":96,"start_destroy":97,"destroy_accounts":97,"destroy_approvals":97,"finish_destroy":97,"mint":98,"burn":99,"freeze":102,"thaw":102,"freeze_asset":97,"thaw_asset":97,"transfer_ownership":103,"set_team":104,"set_metadata":105,"clear_metadata":97,"force_set_metadata":106,"force_clear_metadata":97,"force_asset_status":107,"approve_transfer":108,"cancel_approval":109,"force_cancel_approval":110,"transfer_approved":111,"touch":97,"refund":112,"set_min_balance":113},"17":0,"20":{"set_members":133,"execute":134,"propose":135,"vote":136,"disapprove_proposal":137,"close":138},"21":{"33":155,"call_old_weight":150,"instantiate_with_code_old_weight":151,"instantiate_old_weight":152,"upload_code":153,"remove_code":154,"call":156,"instantiate_with_code":157,"instantiate":158},"22":0,"23":{"heartbeat":169},"24":0,"25":{"set_keys":176,"purge_keys":22},"26":{"propose_spend":180,"reject_proposal":181,"approve_proposal":181,"spend":182,"remove_approval":181},"27":{"29":27,"set_mining_pool_contract":29,"propose_lock":196,"propose_unlock":197,"vote_in_referendum":198,"set_proposal_fee":199,"admin_lock_accounts":200,"admin_unlock_accounts":201,"admin_remove_proposal":202},"28":{"create_multi_sig_account":209,"author_a_call":210,"add_call_approval":211,"remove_call_approval":211,"proposal_msa_new_minimum":212,"approve_msa_new_minimum":213,"revoke_approval_for_msa_new_minimum":213,"remove_call":211}},"events":{"0":0,"1":{"NewReferralRelationshipCreated":6,"NewReferralDepthSet":7,"NewDefaultParentSet":8},"2":{"NewTreasurer":8},"4":{"CandidacySubmitted":8,"VotesDelegatedBy":8,"CandidacyRemoved":8},"5":{"ErrorIssuingRewards":30,"ContractError":31},"7":{"34":46,"35":46,"36":49,"37":46,"38":46,"Endowed":42,"DustLost":43,"Transfer":44,"BalanceSet":45,"Reserved":46,"Unreserved":46,"ReserveRepatriated":47,"Withdraw":46,"Slashed":46,"Minted":46,"Suspended":46,"Restored":46,"Upgraded":48,"Rescinded":49,"Locked":46,"Unlocked":46},"8":{"NewAuthorities":56,"Paused":30,"Resumed":30},"9":{"Sudid":61,"KeyChanged":62,"SudoAsDone":61},"10":{"ExtrinsicSuccess":84,"ExtrinsicFailed":85,"CodeUpdated":30,"NewAccount":86,"KilledAccount":86,"Remarked":87},"11":0,"12":{"TransactionFeePaid":90},"14":{"35":117,"36":115,"37":120,"38":120,"Created":114,"Transferred":116,"TeamChanged":118,"OwnerChanged":119,"AssetFrozen":121,"AssetThawed":121,"AccountsDestroyed":122,"ApprovalsDestroyed":123,"DestructionStarted":121,"Destroyed":121,"ForceCreated":119,"MetadataSet":124,"MetadataCleared":121,"ApprovedTransfer":125,"ApprovalCancelled":126,"TransferredApproved":127,"AssetStatusChanged":121,"AssetMinBalanceChanged":128},"17":0,"20":{"39":139,"Voted":140,"Approved":141,"Disapproved":141,"Executed":142,"MemberExecuted":142,"Closed":143},"21":{"Instantiated":159,"Terminated":160,"CodeStored":161,"ContractEmitted":162,"CodeRemoved":161,"ContractCodeUpdated":163,"Called":164,"DelegateCalled":165},"22":0,"23":{"HeartbeatReceived":170,"AllGood":30,"SomeOffline":171},"24":0,"25":{"NewSession":177},"26":{"34":189,"39":183,"Spending":184,"Awarded":185,"Rejected":186,"Burnt":187,"Rollover":188,"SpendApproved":190,"UpdatedInactive":191},"27":{"AccountNominatedForLock":8,"ProposalFeePaid":203,"VoteRecorded":204,"AccountLocked":8,"AccountUnlocked":8,"AccountNominatedForUnlock":8,"VoteStarted":30,"VoteEnded":205},"28":{"MultiSignatureAccountCreated":6,"MultiSignatureAccountUpdated":6,"NewCallAuthored":214,"ApprovalAdded":6,"ApprovalRemoved":6,"CallExecuted":215,"MinApprovalsChanged":216}},"constants":{"0":0,"1":0,"2":0,"4":0,"5":{"40":28},"7":{"ExistentialDeposit":1,"MaxLocks":2,"MaxReserves":2,"MaxHolds":2,"MaxFreezes":2},"8":{"MaxAuthorities":2,"MaxSetIdSessionEntries":1},"9":0,"10":{"BlockWeights":74,"BlockLength":75,"BlockHashCount":2,"DbWeight":76,"Version":77,"SS58Prefix":2},"11":{"MinimumPeriod":1},"12":{"OperationalFeeMultiplier":2},"14":{"RemoveItemsLimit":2,"AssetDeposit":1,"AssetAccountDeposit":1,"MetadataDepositBase":1,"MetadataDepositPerByte":1,"ApprovalDeposit":1,"StringLimit":2},"17":0,"20":{"MaxProposalWeight":132},"21":{"Schedule":149,"DepositPerByte":1,"DefaultDepositLimit":1,"DepositPerItem":1,"MaxCodeLen":2,"MaxStorageKeyLen":2,"UnsafeUnstableInterface":72,"MaxDebugBufferLen":2},"22":0,"23":{"UnsignedPriority":1},"24":0,"25":0,"26":{"40":28,"ProposalBond":2,"ProposalBondMinimum":1,"ProposalBondMaximum":179,"SpendPeriod":2,"Burn":2,"MaxApprovals":2},"27":{"CouncilPalletId":28},"28":0},"viewFns":{"0":0,"1":0,"2":0,"4":0,"5":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"14":0,"17":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0},"apis":{}}},[{}],["Aura","D9Referral","D9Treasury","PalletAdmin","D9NodeVoting","D9NodeRewards","Account","Balances","Grandpa","Sudo","System","Timestamp","TransactionPayment","Approvals","Assets","Keys","NextKeys","AuthorityDiscovery","Proposals","ProposalCount","Collective","Contracts","Historical","ImOnline","RandomnessCollectiveFlip","Session","Treasury","CouncilLock","D9MultiSig","set_pallet_admin","force_transfer","transfer_keep_alive","transfer","set_code","Deposit","Burned","Issued","Frozen","Thawed","Proposed","PalletId"]]`);
4
- var replaceTokens = (obj) => Object.fromEntries(Object.entries(obj).map(([key, value]) => {
5
- const unwrappedValue = typeof value === "object" ? replaceTokens(value) : value;
6
- const numericKey = Number(key);
7
- if (Number.isNaN(numericKey)) return [key, unwrappedValue];
8
- return [tokens[numericKey], unwrappedValue];
9
- }));
10
- var tokenizedCommonTrees = commonTrees.map(replaceTokens);
11
- var unwrap = (obj, depth) => depth === 0 ? obj : Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, unwrap(typeof value === "object" ? value : tokenizedCommonTrees[value], depth - 1)]));
12
- var getChainDescriptors = (key) => unwrap(replaceTokens(minified[key]), 2);
13
- var D9 = getChainDescriptors("d9");
14
-
15
- //#endregion
16
- exports.D9 = D9;
17
- //# sourceMappingURL=descriptors-KKD7UFMX-DBUb__c-.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptors-KKD7UFMX-DBUb__c-.cjs","names":[],"sources":["../../../node_modules/.bun/@polkadot-api+descriptors@file+packages+spec+.papi+descriptors+d79ebbef3c6d76c9/node_modules/@polkadot-api/descriptors/dist/descriptors-KKD7UFMX.mjs"],"sourcesContent":["// .papi/descriptors/src/descriptors.ts\nvar [minified, commonTrees, tokens] = JSON.parse(`[{\"d9\":{\"storage\":{\"0\":{\"Authorities\":0,\"CurrentSlot\":1},\"1\":{\"MaxReferralDepth\":2,\"ReferralRelationships\":3,\"DirectReferralsCount\":4},\"2\":{\"Treasurer\":10},\"4\":{\"3\":18,\"UsersVotingInterests\":12,\"UserToNodeVotesTotals\":13,\"NodeToUserVotesTotals\":13,\"NodeAccumulativeVotes\":14,\"CurrentNumberOfCandidatesNodes\":2,\"SessionNodeList\":15,\"CurrentSessionIndex\":2,\"CurrentValidatorVoteStats\":16,\"NodeMetadata\":17},\"5\":{\"3\":18,\"NodeRewardContract\":18},\"7\":{\"6\":32,\"TotalIssuance\":1,\"InactiveIssuance\":1,\"Locks\":33,\"Reserves\":34,\"Holds\":34,\"Freezes\":34},\"8\":{\"State\":50,\"PendingChange\":51,\"NextForced\":2,\"Stalled\":52,\"CurrentSetId\":1,\"SetIdSession\":53},\"9\":{\"Key\":18},\"10\":{\"6\":63,\"ExtrinsicCount\":2,\"BlockWeight\":64,\"AllExtrinsicsLen\":2,\"BlockHash\":65,\"ExtrinsicData\":66,\"Number\":2,\"ParentHash\":67,\"Digest\":68,\"Events\":69,\"EventCount\":2,\"EventTopics\":70,\"LastRuntimeUpgrade\":71,\"UpgradedToU32RefCount\":72,\"UpgradedToTripleRefCount\":72,\"ExecutionPhase\":73},\"11\":{\"Now\":1,\"DidUpdate\":72},\"12\":{\"NextFeeMultiplier\":1,\"StorageVersion\":89},\"14\":{\"6\":92,\"13\":93,\"Asset\":91,\"Metadata\":94},\"17\":{\"15\":0,\"16\":0},\"20\":{\"18\":0,\"19\":2,\"ProposalOf\":129,\"Voting\":130,\"Members\":131,\"Prime\":18},\"21\":{\"PristineCode\":144,\"CodeStorage\":145,\"OwnerInfoOf\":146,\"Nonce\":1,\"ContractInfoOf\":147,\"DeletionQueue\":66,\"DeletionQueueCounter\":148},\"22\":{\"HistoricalSessions\":166,\"StoredRange\":52},\"23\":{\"15\":0,\"HeartbeatAfter\":2,\"ReceivedHeartbeats\":167,\"AuthoredBlocks\":168},\"24\":{\"RandomMaterial\":0},\"25\":{\"16\":174,\"Validators\":131,\"CurrentIndex\":2,\"QueuedChanged\":72,\"QueuedKeys\":172,\"DisabledValidators\":173,\"KeyOwner\":175},\"26\":{\"13\":173,\"18\":178,\"19\":2,\"Deactivated\":1},\"27\":{\"3\":18,\"18\":192,\"ProposalFee\":1,\"MiningPoolContract\":18,\"Referendums\":193,\"Resolutions\":194,\"LockedAccounts\":195},\"28\":{\"MultiSignatureAccounts\":206,\"UserMultiSigAccounts\":207,\"MinApprovalProposals\":208}},\"tx\":{\"0\":0,\"1\":{\"change_referral_depth\":5},\"2\":{\"new_treasurer\":11},\"4\":{\"29\":27,\"submit_candidacy\":19,\"add_voting_interest\":20,\"delegate_votes\":21,\"remove_candidacy\":22,\"try_remove_votes_from_candidate\":23,\"redistribute_votes\":24,\"change_candidate_name\":25,\"change_candidate_supporter_share\":26},\"5\":{\"29\":27,\"set_node_reward_contract\":29},\"7\":{\"30\":37,\"31\":35,\"32\":35,\"transfer_allow_death\":35,\"set_balance_deprecated\":36,\"transfer_all\":38,\"force_unreserve\":39,\"upgrade_accounts\":40,\"force_set_balance\":41},\"8\":{\"report_equivocation\":54,\"report_equivocation_unsigned\":54,\"note_stalled\":55},\"9\":{\"sudo\":57,\"sudo_unchecked_weight\":58,\"set_key\":59,\"sudo_as\":60},\"10\":{\"33\":80,\"remark\":78,\"set_heap_pages\":79,\"set_code_without_checks\":80,\"set_storage\":81,\"kill_storage\":82,\"kill_prefix\":83,\"remark_with_event\":78},\"11\":{\"set\":88},\"12\":0,\"14\":{\"30\":101,\"31\":100,\"32\":100,\"create\":95,\"force_create\":96,\"start_destroy\":97,\"destroy_accounts\":97,\"destroy_approvals\":97,\"finish_destroy\":97,\"mint\":98,\"burn\":99,\"freeze\":102,\"thaw\":102,\"freeze_asset\":97,\"thaw_asset\":97,\"transfer_ownership\":103,\"set_team\":104,\"set_metadata\":105,\"clear_metadata\":97,\"force_set_metadata\":106,\"force_clear_metadata\":97,\"force_asset_status\":107,\"approve_transfer\":108,\"cancel_approval\":109,\"force_cancel_approval\":110,\"transfer_approved\":111,\"touch\":97,\"refund\":112,\"set_min_balance\":113},\"17\":0,\"20\":{\"set_members\":133,\"execute\":134,\"propose\":135,\"vote\":136,\"disapprove_proposal\":137,\"close\":138},\"21\":{\"33\":155,\"call_old_weight\":150,\"instantiate_with_code_old_weight\":151,\"instantiate_old_weight\":152,\"upload_code\":153,\"remove_code\":154,\"call\":156,\"instantiate_with_code\":157,\"instantiate\":158},\"22\":0,\"23\":{\"heartbeat\":169},\"24\":0,\"25\":{\"set_keys\":176,\"purge_keys\":22},\"26\":{\"propose_spend\":180,\"reject_proposal\":181,\"approve_proposal\":181,\"spend\":182,\"remove_approval\":181},\"27\":{\"29\":27,\"set_mining_pool_contract\":29,\"propose_lock\":196,\"propose_unlock\":197,\"vote_in_referendum\":198,\"set_proposal_fee\":199,\"admin_lock_accounts\":200,\"admin_unlock_accounts\":201,\"admin_remove_proposal\":202},\"28\":{\"create_multi_sig_account\":209,\"author_a_call\":210,\"add_call_approval\":211,\"remove_call_approval\":211,\"proposal_msa_new_minimum\":212,\"approve_msa_new_minimum\":213,\"revoke_approval_for_msa_new_minimum\":213,\"remove_call\":211}},\"events\":{\"0\":0,\"1\":{\"NewReferralRelationshipCreated\":6,\"NewReferralDepthSet\":7,\"NewDefaultParentSet\":8},\"2\":{\"NewTreasurer\":8},\"4\":{\"CandidacySubmitted\":8,\"VotesDelegatedBy\":8,\"CandidacyRemoved\":8},\"5\":{\"ErrorIssuingRewards\":30,\"ContractError\":31},\"7\":{\"34\":46,\"35\":46,\"36\":49,\"37\":46,\"38\":46,\"Endowed\":42,\"DustLost\":43,\"Transfer\":44,\"BalanceSet\":45,\"Reserved\":46,\"Unreserved\":46,\"ReserveRepatriated\":47,\"Withdraw\":46,\"Slashed\":46,\"Minted\":46,\"Suspended\":46,\"Restored\":46,\"Upgraded\":48,\"Rescinded\":49,\"Locked\":46,\"Unlocked\":46},\"8\":{\"NewAuthorities\":56,\"Paused\":30,\"Resumed\":30},\"9\":{\"Sudid\":61,\"KeyChanged\":62,\"SudoAsDone\":61},\"10\":{\"ExtrinsicSuccess\":84,\"ExtrinsicFailed\":85,\"CodeUpdated\":30,\"NewAccount\":86,\"KilledAccount\":86,\"Remarked\":87},\"11\":0,\"12\":{\"TransactionFeePaid\":90},\"14\":{\"35\":117,\"36\":115,\"37\":120,\"38\":120,\"Created\":114,\"Transferred\":116,\"TeamChanged\":118,\"OwnerChanged\":119,\"AssetFrozen\":121,\"AssetThawed\":121,\"AccountsDestroyed\":122,\"ApprovalsDestroyed\":123,\"DestructionStarted\":121,\"Destroyed\":121,\"ForceCreated\":119,\"MetadataSet\":124,\"MetadataCleared\":121,\"ApprovedTransfer\":125,\"ApprovalCancelled\":126,\"TransferredApproved\":127,\"AssetStatusChanged\":121,\"AssetMinBalanceChanged\":128},\"17\":0,\"20\":{\"39\":139,\"Voted\":140,\"Approved\":141,\"Disapproved\":141,\"Executed\":142,\"MemberExecuted\":142,\"Closed\":143},\"21\":{\"Instantiated\":159,\"Terminated\":160,\"CodeStored\":161,\"ContractEmitted\":162,\"CodeRemoved\":161,\"ContractCodeUpdated\":163,\"Called\":164,\"DelegateCalled\":165},\"22\":0,\"23\":{\"HeartbeatReceived\":170,\"AllGood\":30,\"SomeOffline\":171},\"24\":0,\"25\":{\"NewSession\":177},\"26\":{\"34\":189,\"39\":183,\"Spending\":184,\"Awarded\":185,\"Rejected\":186,\"Burnt\":187,\"Rollover\":188,\"SpendApproved\":190,\"UpdatedInactive\":191},\"27\":{\"AccountNominatedForLock\":8,\"ProposalFeePaid\":203,\"VoteRecorded\":204,\"AccountLocked\":8,\"AccountUnlocked\":8,\"AccountNominatedForUnlock\":8,\"VoteStarted\":30,\"VoteEnded\":205},\"28\":{\"MultiSignatureAccountCreated\":6,\"MultiSignatureAccountUpdated\":6,\"NewCallAuthored\":214,\"ApprovalAdded\":6,\"ApprovalRemoved\":6,\"CallExecuted\":215,\"MinApprovalsChanged\":216}},\"constants\":{\"0\":0,\"1\":0,\"2\":0,\"4\":0,\"5\":{\"40\":28},\"7\":{\"ExistentialDeposit\":1,\"MaxLocks\":2,\"MaxReserves\":2,\"MaxHolds\":2,\"MaxFreezes\":2},\"8\":{\"MaxAuthorities\":2,\"MaxSetIdSessionEntries\":1},\"9\":0,\"10\":{\"BlockWeights\":74,\"BlockLength\":75,\"BlockHashCount\":2,\"DbWeight\":76,\"Version\":77,\"SS58Prefix\":2},\"11\":{\"MinimumPeriod\":1},\"12\":{\"OperationalFeeMultiplier\":2},\"14\":{\"RemoveItemsLimit\":2,\"AssetDeposit\":1,\"AssetAccountDeposit\":1,\"MetadataDepositBase\":1,\"MetadataDepositPerByte\":1,\"ApprovalDeposit\":1,\"StringLimit\":2},\"17\":0,\"20\":{\"MaxProposalWeight\":132},\"21\":{\"Schedule\":149,\"DepositPerByte\":1,\"DefaultDepositLimit\":1,\"DepositPerItem\":1,\"MaxCodeLen\":2,\"MaxStorageKeyLen\":2,\"UnsafeUnstableInterface\":72,\"MaxDebugBufferLen\":2},\"22\":0,\"23\":{\"UnsignedPriority\":1},\"24\":0,\"25\":0,\"26\":{\"40\":28,\"ProposalBond\":2,\"ProposalBondMinimum\":1,\"ProposalBondMaximum\":179,\"SpendPeriod\":2,\"Burn\":2,\"MaxApprovals\":2},\"27\":{\"CouncilPalletId\":28},\"28\":0},\"viewFns\":{\"0\":0,\"1\":0,\"2\":0,\"4\":0,\"5\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"14\":0,\"17\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0},\"apis\":{}}},[{}],[\"Aura\",\"D9Referral\",\"D9Treasury\",\"PalletAdmin\",\"D9NodeVoting\",\"D9NodeRewards\",\"Account\",\"Balances\",\"Grandpa\",\"Sudo\",\"System\",\"Timestamp\",\"TransactionPayment\",\"Approvals\",\"Assets\",\"Keys\",\"NextKeys\",\"AuthorityDiscovery\",\"Proposals\",\"ProposalCount\",\"Collective\",\"Contracts\",\"Historical\",\"ImOnline\",\"RandomnessCollectiveFlip\",\"Session\",\"Treasury\",\"CouncilLock\",\"D9MultiSig\",\"set_pallet_admin\",\"force_transfer\",\"transfer_keep_alive\",\"transfer\",\"set_code\",\"Deposit\",\"Burned\",\"Issued\",\"Frozen\",\"Thawed\",\"Proposed\",\"PalletId\"]]`);\nvar replaceTokens = (obj) => Object.fromEntries(\n Object.entries(obj).map(([key, value]) => {\n const unwrappedValue = typeof value === \"object\" ? replaceTokens(value) : value;\n const numericKey = Number(key);\n if (Number.isNaN(numericKey)) {\n return [key, unwrappedValue];\n }\n return [tokens[numericKey], unwrappedValue];\n })\n);\nvar tokenizedCommonTrees = commonTrees.map(replaceTokens);\nvar unwrap = (obj, depth) => depth === 0 ? obj : Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n key,\n unwrap(\n typeof value === \"object\" ? value : tokenizedCommonTrees[value],\n depth - 1\n )\n ])\n);\nvar getChainDescriptors = (key) => unwrap(replaceTokens(minified[key]), 2);\nvar D9 = getChainDescriptors(\"d9\");\nexport {\n D9\n};\n"],"x_google_ignoreList":[0],"mappings":";;AACA,IAAI,CAAC,UAAU,aAAa,UAAU,KAAK,MAAM,2qPAA2qP;AAC5tP,IAAI,iBAAiB,QAAQ,OAAO,YAClC,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW;CACxC,MAAM,iBAAiB,OAAO,UAAU,WAAW,cAAc,MAAM,GAAG;CAC1E,MAAM,aAAa,OAAO,IAAI;AAC9B,KAAI,OAAO,MAAM,WAAW,CAC1B,QAAO,CAAC,KAAK,eAAe;AAE9B,QAAO,CAAC,OAAO,aAAa,eAAe;EAC3C,CACH;AACD,IAAI,uBAAuB,YAAY,IAAI,cAAc;AACzD,IAAI,UAAU,KAAK,UAAU,UAAU,IAAI,MAAM,OAAO,YACtD,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CACxC,KACA,OACE,OAAO,UAAU,WAAW,QAAQ,qBAAqB,QACzD,QAAQ,EACT,CACF,CAAC,CACH;AACD,IAAI,uBAAuB,QAAQ,OAAO,cAAc,SAAS,KAAK,EAAE,EAAE;AAC1E,IAAI,KAAK,oBAAoB,KAAK"}