Name: series-workflowv42ph Phase: Failed StartedAt: 2026-09-06 08:19:22 +0000 UTC FinishedAt: 2026-09-06 08:43:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv42ph[0] Phase: Succeeded StartedAt: 2026-09-06 08:19:22 +0000 UTC FinishedAt: 2026-09-06 08:43:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv42ph[0].run-triage Phase: Succeeded StartedAt: 2026-09-06 08:19:22 +0000 UTC FinishedAt: 2026-09-06 08:43:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udGFpbnMgb25seSBzcGVsbGluZyBhbmQgdHlwbyBmaXhlcyBpbiBjb21tZW50cywgbG9nL2RlYnVnIG1lc3NhZ2Ugc3RyaW5ncywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUuIE5vIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgYXNzZXJ0aW9ucywgb3IgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmYzI5MGY4NjJlMjExZDlkYmQwYWM2MzZlYzg1MTU2NmFkYWFjNTllXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgNiAwODo0MjozNCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXG5pbmRleCAyYjIxZDk2OWVjZTdiLi44MTRmM2I5NGNmY2QzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXG5AQCAtMTkwNCw3ICYjNDM7MTkwNCw3IEBAIHN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xuIFx0dTE2IGFkaG9jOiAxO1xuIFx0dTE2IGFkaG9jX21hc3RlcjogMTtcbiBcdHUxNiBtZXNoOiAxO1xuLVx0dTE2IG1vbml0ZXI6IDE7XG4mIzQzO1x0dTE2IG1vbml0b3I6IDE7XG4gXHR1MTYgcDJwX2RldmljZTogMTtcbiBcdHUxNiBwMnBfZ2M6IDE7XG4gXHR1MTYgcDJwX2dvOiAxO1xuQEAgLTM5MjUsNyAmIzQzOzM5MjUsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfY2VsbCB7XG4gc3RydWN0IHJ0dzg5X2J0Y19mZGRyX3Jlc3VsdCB7XG4gXHR1OCB3bF9yeF9saW1pdDtcbiBcdHU4IHdsX3J4X2xpbWl0X3N0ZXBbNl07IC8qIHJlY29yZCBzZWFyY2ggcHJvY2VzcyAqL1xuLVx0dTggc2VhcmNoX2NudDsgLyogdGhlIHJ4LWxpbWl0IHNlcmFjaCBjb3VudCAqL1xuJiM0MztcdHU4IHNlYXJjaF9jbnQ7IC8qIHRoZSByeC1saW1pdCBzZWFyY2ggY291bnQgKi9cbiBcdHUzMiB3bF90cDtcbiBcdHUzMiB3bF90cF9zdGVwWzZdOyAvKiByZWNvcmQgc2VhcmNoIHByb2Nlc3MgKi9cbiB9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggMDA5OWM1YzAzZTdhNi4uZWNlZGZkNmY2NGEzZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzA2LDcgJiM0MzszMDYsNyBAQCBzdGF0aWMgaW50IF9fcGFyc2VfZm9ybWF0dGVkX21zc2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRpZiAobXNzX2hkci1cdTAwM2VkZWZlbilcbiBcdFx0XHRybXBfdGJsX3NpemUgJiM0Mzs9IEZXRExfTVNTX1BPT0xfREVGS0VZU0VUU19TSVpFO1xuIFx0fSBlbHNlIHtcbi1cdFx0cnR3ODlfZXJyKHJ0d2RldiwgXCYjMzQ7W0VSUl0gTVNTIEtleSBQb29sIFJlbWFwIFRhYmxlIEZvcm1hdCBVbnN1cHBvcnQ6JVhcXG5cJiMzNDssXG4mIzQzO1x0XHRydHc4OV9lcnIocnR3ZGV2LCBcJiMzNDtbRVJSXSBNU1MgS2V5IFBvb2wgUmVtYXAgVGFibGUgRm9ybWF0IFVuc3VwcG9ydGVkOiVYXFxuXCYjMzQ7LFxuIFx0XHRcdCAgbXNzX2hkci1cdTAwM2VybXBmbXQpO1xuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbkBAIC0xMTIxNCw3ICYjNDM7MTEyMTQsNyBAQCBpbnQgcnR3ODlfZndfaDJjX3dvd19yZXF1ZXN0X2FvYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuIFxuIFx0c2tiX3B1dChza2IsIGxlbik7XG4gXG4tXHQvKiBUaGlzIEgyQyBvbmx5IG5vZml0eSBmaXJtd2FyZSB0byBnZW5lcmF0ZSBBT0FDIHJlcG9ydCBDMkgsXG4mIzQzO1x0LyogVGhpcyBIMkMgb25seSBub3RpZnkgZmlybXdhcmUgdG8gZ2VuZXJhdGUgQU9BQyByZXBvcnQgQzJILFxuIFx0ICogbm8gbmVlZCBhbnkgcGFyYW1ldGVyLlxuIFx0ICovXG4gXHRydHc4OV9oMmNfcGt0X3NldF9oZHIocnR3ZGV2LCBza2IsIEZXQ01EX1RZUEVfSDJDLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jXG5pbmRleCBjNzgxMDdlOTIyMDYzLi40M2IzNTUyZjVhOTZjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xuQEAgLTUyNSw3ICYjNDM7NTI1LDcgQEAgdm9pZCBydHc4OV9waHlfcmFfdXBkYXRlX3N0YV9saW5rKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcdFx0cmEtXHUwMDNldXBkX2J3X25zc19tYXNrID0gMTtcbiBcbiBcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JBLFxuLVx0XHQgICAgXCYjMzQ7cmEgdXBkYXQ6IG1hY2lkID0gJWQsIGJ3ID0gJWQsIG5zcyA9ICVkLCBnaSA9ICVkICVkXCYjMzQ7LFxuJiM0MztcdFx0ICAgIFwmIzM0O3JhIHVwZGF0ZTogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcJiMzNDssXG4gXHRcdCAgICByYS1cdTAwM2VtYWNpZCxcbiBcdFx0ICAgIHJhLVx1MDAzZWJ3X2NhcCxcbiBcdFx0ICAgIHJhLVx1MDAzZXNzX251bSxcbkBAIC02NTksNyAmIzQzOzY1OSw3IEBAIHZvaWQgX19ydHc4OV9waHlfcmF0ZV9wYXR0ZXJuX3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4gXHRcdFx0XHRcdCAgMCwgdHJ1ZSkpXG4gXHRcdFx0Z290byBvdXQ7XG4gXG4tXHQvKiBsYWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kXG4mIzQzO1x0LyogbGVnYWN5IGNhbm5vdCBiZSBlbXB0eSBmb3Igbmw4MDIxMV9wYXJzZV90eF9iaXRyYXRlX21hc2ssIGFuZFxuIFx0ICogcmVxdWlyZSBhdCBsZWFzdCBvbmUgYmFzaWMgcmF0ZSBmb3IgaWVlZTgwMjExX3NldF9iaXRyYXRlX21hc2ssXG4gXHQgKiBzbyB0aGUgZGVjaXNpb24ganVzdCBkZXBlbmRzIG9uIGlmIGFsbCBiaXRyYXRlcyBhcmUgc2V0IG9yIG5vdC5cbiBcdCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvbnRhaW5zIG9ubHkgc3BlbGxpbmcgYW5kIHR5cG8gZml4ZXMgaW4gY29tbWVudHMsIGxvZy9kZWJ1ZyBtZXNzYWdlIHN0cmluZ3MsIGFuZCBhIHN0cnVjdCBmaWVsZCBuYW1lLiBObyBleGVjdXRhYmxlIGxvZ2ljLCBjb250cm9sIGZsb3csIGFzc2VydGlvbnMsIG9yIGRhdGEgc3RydWN0dXJlcyB3ZXJlIGFsdGVyZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmMyOTBmODYyZTIxMWQ5ZGJkMGFjNjM2ZWM4NTE1NjZhZGFhYzU5ZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gU2VwIDYgMDg6NDI6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oCmluZGV4IDJiMjFkOTY5ZWNlN2IuLjgxNGYzYjk0Y2ZjZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oCkBAIC0xOTA0LDcgJiM0MzsxOTA0LDcgQEAgc3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7CiAJdTE2IGFkaG9jOiAxOwogCXUxNiBhZGhvY19tYXN0ZXI6IDE7CiAJdTE2IG1lc2g6IDE7Ci0JdTE2IG1vbml0ZXI6IDE7CiYjNDM7CXUxNiBtb25pdG9yOiAxOwogCXUxNiBwMnBfZGV2aWNlOiAxOwogCXUxNiBwMnBfZ2M6IDE7CiAJdTE2IHAycF9nbzogMTsKQEAgLTM5MjUsNyAmIzQzOzM5MjUsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfY2VsbCB7CiBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfcmVzdWx0IHsKIAl1OCB3bF9yeF9saW1pdDsKIAl1OCB3bF9yeF9saW1pdF9zdGVwWzZdOyAvKiByZWNvcmQgc2VhcmNoIHByb2Nlc3MgKi8KLQl1OCBzZWFyY2hfY250OyAvKiB0aGUgcngtbGltaXQgc2VyYWNoIGNvdW50ICovCiYjNDM7CXU4IHNlYXJjaF9jbnQ7IC8qIHRoZSByeC1saW1pdCBzZWFyY2ggY291bnQgKi8KIAl1MzIgd2xfdHA7CiAJdTMyIHdsX3RwX3N0ZXBbNl07IC8qIHJlY29yZCBzZWFyY2ggcHJvY2VzcyAqLwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYwppbmRleCAwMDk5YzVjMDNlN2E2Li5lY2VkZmQ2ZjY0YTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jCkBAIC0zMDYsNyAmIzQzOzMwNiw3IEBAIHN0YXRpYyBpbnQgX19wYXJzZV9mb3JtYXR0ZWRfbXNzYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsCiAJCWlmIChtc3NfaGRyLSZndDtkZWZlbikKIAkJCXJtcF90Ymxfc2l6ZSAmIzQzOz0gRldETF9NU1NfUE9PTF9ERUZLRVlTRVRTX1NJWkU7CiAJfSBlbHNlIHsKLQkJcnR3ODlfZXJyKHJ0d2RldiwgJiMzNDtbRVJSXSBNU1MgS2V5IFBvb2wgUmVtYXAgVGFibGUgRm9ybWF0IFVuc3VwcG9ydDolWFxuJiMzNDssCiYjNDM7CQlydHc4OV9lcnIocnR3ZGV2LCAmIzM0O1tFUlJdIE1TUyBLZXkgUG9vbCBSZW1hcCBUYWJsZSBGb3JtYXQgVW5zdXBwb3J0ZWQ6JVhcbiYjMzQ7LAogCQkJICBtc3NfaGRyLSZndDtybXBmbXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMTIxNCw3ICYjNDM7MTEyMTQsNyBAQCBpbnQgcnR3ODlfZndfaDJjX3dvd19yZXF1ZXN0X2FvYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KQogCiAJc2tiX3B1dChza2IsIGxlbik7CiAKLQkvKiBUaGlzIEgyQyBvbmx5IG5vZml0eSBmaXJtd2FyZSB0byBnZW5lcmF0ZSBBT0FDIHJlcG9ydCBDMkgsCiYjNDM7CS8qIFRoaXMgSDJDIG9ubHkgbm90aWZ5IGZpcm13YXJlIHRvIGdlbmVyYXRlIEFPQUMgcmVwb3J0IEMySCwKIAkgKiBubyBuZWVkIGFueSBwYXJhbWV0ZXIuCiAJICovCiAJcnR3ODlfaDJjX3BrdF9zZXRfaGRyKHJ0d2Rldiwgc2tiLCBGV0NNRF9UWVBFX0gyQywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jCmluZGV4IGM3ODEwN2U5MjIwNjMuLjQzYjM1NTJmNWE5NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYwpAQCAtNTI1LDcgJiM0Mzs1MjUsNyBAQCB2b2lkIHJ0dzg5X3BoeV9yYV91cGRhdGVfc3RhX2xpbmsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAogCQlyYS0mZ3Q7dXBkX2J3X25zc19tYXNrID0gMTsKIAogCXJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JBLAotCQkgICAgJiMzNDtyYSB1cGRhdDogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWQmIzM0OywKJiM0MzsJCSAgICAmIzM0O3JhIHVwZGF0ZTogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWQmIzM0OywKIAkJICAgIHJhLSZndDttYWNpZCwKIAkJICAgIHJhLSZndDtid19jYXAsCiAJCSAgICByYS0mZ3Q7c3NfbnVtLApAQCAtNjU5LDcgJiM0Mzs2NTksNyBAQCB2b2lkIF9fcnR3ODlfcGh5X3JhdGVfcGF0dGVybl92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAogCQkJCQkgIDAsIHRydWUpKQogCQkJZ290byBvdXQ7CiAKLQkvKiBsYWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kCiYjNDM7CS8qIGxlZ2FjeSBjYW5ub3QgYmUgZW1wdHkgZm9yIG5sODAyMTFfcGFyc2VfdHhfYml0cmF0ZV9tYXNrLCBhbmQKIAkgKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBiYXNpYyByYXRlIGZvciBpZWVlODAyMTFfc2V0X2JpdHJhdGVfbWFzaywKIAkgKiBzbyB0aGUgZGVjaXNpb24ganVzdCBkZXBlbmRzIG9uIGlmIGFsbCBiaXRyYXRlcyBhcmUgc2V0IG9yIG5vdC4KIAkgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk1MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTdWJ0bGUgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGRpZmYuIEZpcnN0LCBhIHF1aWNrIG92ZXJ2aWV3OiB3ZSYjMzk7cmUgbG9va2luZyBhdCBzb21lIGFkanVzdG1lbnRzIHRvIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYHJ0dzg5YCBkaXJlY3RvcnkuIEl0JiMzOTtzIGEgc21hbGwgcGF0Y2gsIGJ1dCB3ZSBuZWVkIHRvIGVuc3VyZSBldmVyeXRoaW5nJiMzOTtzIGNsZWFuLgoKSSYjMzk7bSBzZWVpbmcgY2hhbmdlcyBpbiBgY29yZS5oYCwgYGZ3LmNgLCBhbmQgYHBoeS5jYC4gVGhlIGZpcnN0IGNoYW5nZSwgYSBzaW1wbGUgdHlwbyBjb3JyZWN0aW9uLCBpcyB0aGUgbW9zdCBvYnZpb3VzLiBSZXBsYWNpbmcgYG1vbml0ZXJgIHdpdGggYG1vbml0b3JgIGluIGBjb3JlLmhgLiAgSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBzdHJ1Y3QgbWVtYmVyIGlzbiYjMzk7dCByZWZlcmVuY2VkIGFueXdoZXJlIHVzaW5nIHRoZSBpbmNvcnJlY3Qgc3BlbGxpbmcuIEl0JiMzOTtzIGdvb2QgcHJhY3RpY2UgdG8gZ3JlcCBmb3IgYG1vbml0ZXJgIHdpdGhpbiB0aGUgY29kZWJhc2UsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgbm8gb25lIGlzIGluYWR2ZXJ0ZW50bHkgdXNpbmcgaXQuCgpNb3Zpbmcgb24sIHRoZSBvdGhlciBjaGFuZ2VzIGFyZSBtaW5vciBjb21tZW50IHR5cG8gZml4ZXMuICBJbiBgZncuY2AsIHdlIHNlZSBhIHN0cmluZyBjb3JyZWN0aW9uIGFuZCBpbiB0aGUgc2FtZSBmaWxlLCB0aGUgY29ycmVjdGlvbiBvZiBgbm9maXR5YCB0byBgbm90aWZ5YC4gIFNhbWUgZm9yIHRoZSBgcGh5LmNgIHdpdGggdGhlIGByYSB1cGRhdGAgdG8gYHJhIHVwZGF0ZWAgYW5kIGBsYWdhY3lgIHRvIGBsZWdhY3lgIHR5cG8gZml4ZXMuICBUaGVzZSBhcmUgZWFzeSwgYnV0IGl0JiMzOTtzIGltcG9ydGFudCB0byBrZWVwIHRoZSBjb2RlIGJhc2UgY2xlYW4gYW5kIHJlYWRhYmxlLgoKVWx0aW1hdGVseSwgdGhlc2Ugc2VlbSBsaWtlIG1pbm9yIGNvc21ldGljIGZpeGVzLiAgSG93ZXZlciwgdGhhdCBzcGVsbGluZyBjb3JyZWN0aW9uIHJlcXVpcmVzIGEgcXVpY2sgZ3JlcCBhY3Jvc3MgdGhlIHByb2plY3QgdG8gZW5zdXJlIG5vIG9sZCByZWZlcmVuY2VzIG9yIGJ1Z3MgYXJlIGhpZGluZyBpbiBwbGFpbiBzaWdodC4gVGhhdCYjMzk7cyB0aGUgcHJpb3JpdHkgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0Oyhtb25pdGVyfG1vbml0b3IpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01MjE9dm9pZCBydHc4OV9jaGlwX3Jma19jaGFubmVsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01MjQtXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LVx1MDAzZWNoaXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1MjU6XHRib29sIG1vbiA9ICEhcnR3ZGV2LVx1MDAzZXB1cmVfbW9uaXRvcl9tb2RlX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyNi1cdGJvb2wgcHJlaGRsX2xpbmsgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01NTI9c3RhdGljIHZvaWQgcnR3ODlfY2hpcF9yZmtfY2hhbm5lbF9mb3JfcHVyZV9tb25fdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTU1Olx0c3RydWN0IHJ0dzg5X3ZpZiAqcnR3dmlmID0gcnR3ZGV2LVx1MDAzZXB1cmVfbW9uaXRvcl9tb2RlX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1Ni1cdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9Mzc5Mj1zdGF0aWMgdm9pZCBydHc4OV9jb3JlX3VwZGF0ZV9yYWRpb3RhcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMzgwMS1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzozODAyOlx0ICogQXQgdHJhbnNpZW50IGFkZGluZyBhIG1vbml0b3IgdmlmIGZyb20gYSBzdGF0aW9uIHZpZiwgdGhlIGhlYWRyb29tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0zODAzLVx0ICogbWlnaHQgbm90IGluY2x1ZGUgcmFkaW90YXAuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTUwMz1zdGF0aWMgdm9pZCBydHc4OV90cmFja193b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1MjktXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NTMwOlx0cnR3ODlfbWFjX2JmX21vbml0b3JfdHJhY2socnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1MzEtXHRydHc4OV9jb3JlX2Jjbl90cmFjayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTUzMi1cdHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NTMzOlx0cnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTM0LVx0cnR3ODlfcGh5X2RpZyhydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU4MTg9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzY29ubmVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTgyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4MjY6XHRydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjKHJ0d2RldiwgcnR3c3RhX2xpbmssIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTgyNy1cdHJ0dzg5X21hY19iZl9kaXNhc3NvYyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTg3OD1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19hc3NvYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTkzNi1cdHJ0dzg5X21hY19iZl9hc3NvYyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1OTM3Olx0cnR3ODlfbWFjX2JmX21vbml0b3JfY2FsYyhydHdkZXYsIHJ0d3N0YV9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01OTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE4OTk9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwNi1cdHUxNiBtZXNoOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkwNzpcdHUxNiBtb25pdG9yOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwOC1cdHUxNiBwMnBfZGV2aWNlOiAxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTcwNjU9c3RydWN0IHJ0dzg5X25obV9yZXBvcnQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTcwNzMtI2RlZmluZSBSVFc4OV9JRlNfQ0xNX05VTSA0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDo3MDc0OnN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTcwNzUtXHR1OCBjY3hfd2F0Y2hkb2dfcmVzdWx0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTc1NTE9c3RydWN0IHJ0dzg5X2RldiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtNzY0Ny1cdFx0ZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDo3NjQ4Olx0XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyBlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2NDktXHRcdHN0cnVjdCBydHc4OV9kaWdfaW5mbyBkaWc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtNzY5Mi1cdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzICpkZWJ1Z2ZzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6NzY5MzpcdHN0cnVjdCBydHc4OV92aWYgKnB1cmVfbW9uaXRvcl9tb2RlX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2OTQtXHRzdHJ1Y3QgcnR3ODlfbGVkIGxlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NzA9c3RydWN0IHJ0dzg5X2RlYnVnZnMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy05Ni1cdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgZGlhZ19yZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo5NzpcdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgbW9uaXRvcl9vcHRzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTk4LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTU1MDk9c3RhdGljIHNzaXplX3RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NTEwOnJ0dzg5X2RlYnVnX3ByaXZfbW9uaXRvcl9vcHRzX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTUxMS1cdFx0XHRcdCAgc3RydWN0IHJ0dzg5X2RlYnVnZnNfcHJpdiAqZGVidWdmc19wcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz01NTMzPXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NTUzNDpydHc4OV9kZWJ1Z19wcml2X21vbml0b3Jfb3B0c19zZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTU1MzUtXHRcdFx0XHQgIHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgKmRlYnVnZnNfcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTU5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2RlYnVnZnMgcnR3ODlfZGVidWdmc190ZW1wbCA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTYyMS1cdC5kaWFnX3JmID0gcnR3ODlfZGVidWdfcHJpdl9zZXRfYW5kX2dldChkaWFnX3JmLCBSV0xPQ0spLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjU2MjI6XHQubW9uaXRvcl9vcHRzID0gcnR3ODlfZGVidWdfcHJpdl9zZXRfYW5kX2dldChtb25pdG9yX29wdHMsIFJXTE9DSyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTYyMy19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz01NjcxPXZvaWQgcnR3ODlfZGVidWdmc19hZGRfc2VjMihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfdG9wZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy01Njc5LVx0cnR3ODlfZGVidWdmc19hZGRfcncoZGlhZ19yZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NTY4MDpcdHJ0dzg5X2RlYnVnZnNfYWRkX3J3KG1vbml0b3Jfb3B0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTY4MS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYz02OTE0PXZvaWQgcnR3ODlfbWFjX2JmX3NldF9naWRfdGFibGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk1NTpzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk1Ni1cdHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jPTY5NjE9c3RhdGljXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NjI6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NjQ6XHRzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhICppdGVyX2RhdGEgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo2OTY1Olx0XHRcdFx0KHN0cnVjdCBydHc4OV9tYWNfYmZfbW9uaXRvcl9pdGVyX2RhdGEgKilkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTY2LVx0c3RydWN0IHJ0dzg5X3N0YV9saW5rICpkb3duX3J0d3N0YV9saW5rID0gaXRlcl9kYXRhLVx1MDAzZWRvd25fcnR3c3RhX2xpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo2OTkzOnZvaWQgcnR3ODlfbWFjX2JmX21vbml0b3JfY2FsYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5OTQtXHRcdFx0ICAgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTk2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk5NzpcdHN0cnVjdCBydHc4OV9tYWNfYmZfbW9uaXRvcl9pdGVyX2RhdGEgZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk5OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMDItXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocnR3ZGV2LVx1MDAzZWh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo3MDAzOlx0XHRcdFx0XHQgIHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGNfaXRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNzAwNC1cdFx0XHRcdFx0ICBcdTAwMjZkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjcwMTM6dm9pZCBfcnR3ODlfbWFjX2JmX21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy03MDE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oPTE1NTA9dm9pZCBydHc4OV9tYWNfYmZfc2V0X2dpZF90YWJsZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NTEtXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg6MTU1Mjp2b2lkIHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTUzLVx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3ODlfc3RhX2xpbmsgKnJ0d3N0YV9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTU0LVx0XHRcdCAgICAgICBib29sIGRpc2Nvbm5lY3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaDoxNTU1OnZvaWQgX3J0dzg5X21hY19iZl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NTYtdm9pZCBydHc4OV9tYWNfYmZlZV9jdHJsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggbWFjX2lkeCwgYm9vbCBlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaD0xNTYxPWludCBydHc4OV9tYWNfc2V0X21hY2lkX3BhdXNlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggbWFjaWQsIGJvb2wgcGF1c2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaDoxNTYzOnN0YXRpYyBpbmxpbmUgdm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NjQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg6MTU3MTpcdF9ydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTcyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM9MTY5PXN0YXRpYyBpbnQgcnR3ODlfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYzoyMjc6XHRydHdkZXYtXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmID0gdmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTU9OSVRPUiA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMjI4LVx0XHRcdFx0XHRydHd2aWYgOiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYz0yNDM9c3RhdGljIHZvaWQgcnR3ODlfb3BzX3JlbW92ZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTI3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYzoyNzY6XHRydHdkZXYtXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYy0yNzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jPTE5NjY9c3RhdGljIGludCBydHc4OV9vcHNfZ2V0X3N1cnZleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IGlkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMTk4MS1cdHJ0dzg5X2Zvcl9lYWNoX2FjdGl2ZV9iYihydHdkZXYsIGJiKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM6MTk4MjpcdFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTE5ODMtXHRcdHN0cnVjdCBydHc4OV9uaG1fcmVwb3J0ICpycHQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02MjY4PXN0YXRpYyB1MTYgcnR3ODlfcGh5X2NjeF91c190b19pZHgoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYyNzE6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYyNzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02Mjc2PXN0YXRpYyB1MzIgcnR3ODlfcGh5X2NjeF9pZHhfdG9fdXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYyNzk6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYyODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02Mjg0PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9jY3hfdG9wX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Mjg3LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2Mjg4Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Mjg5LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjMwNj1zdGF0aWMgdTE2IHJ0dzg5X3BoeV9jY3hfZ2V0X3JlcG9ydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzA5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjMxMDpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjMxMS1cdHUzMiBudW1lciA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02MzUwPXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9jY3hfcmFjaW5nX3JlbGVhc2Uoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM1Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYzNTM6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYzNTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02MzYzPXN0YXRpYyBib29sIHJ0dzg5X3BoeV9pZnNfY2xtX3RoX3VwZGF0ZV9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzY2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjM2NzpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM2OC1cdGJvb2wgaXNfdXBkYXRlID0gZW52LVx1MDAzZWlmc19jbG1fYXBwICE9IHBhcmEtXHUwMDNlaWZzX2NsbV9hcHA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NDE4PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9pZnNfY2xtX3NldF90aF9yZWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQyMS1cdGNvbnN0IHN0cnVjdCBydHc4OV9waHlfZ2VuX2RlZiAqcGh5ID0gcnR3ZGV2LVx1MDAzZWNoaXAtXHUwMDNlcGh5X2RlZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjQyMjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQyMy1cdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVx1MDAzZWNjeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY0NTA9c3RhdGljIHZvaWQgX19ydHc4OV9waHlfbmhtX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NDUzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NDU0Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NDU1LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjQ3OD1zdGF0aWMgdm9pZCBydHc4OV9waHlfaWZzX2NsbV9zZXR0aW5nX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ4MS1cdGNvbnN0IHN0cnVjdCBydHc4OV9waHlfZ2VuX2RlZiAqcGh5ID0gcnR3ZGV2LVx1MDAzZWNoaXAtXHUwMDNlcGh5X2RlZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjQ4MjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ4My1cdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVx1MDAzZWNjeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY1MDU9c3RhdGljIGludCBydHc4OV9waHlfY2N4X3JhY2luZ19jdHJsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY1MDgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NTA5Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTEwLVx0aW50IHJldCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NTM4PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9jY3hfdHJpZ2dlcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTQxLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NTQyOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTQzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjU2ND1zdGF0aWMgdm9pZCBydHc4OV9waHlfaWZzX2NsbV9nZXRfdXRpbGl0eShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTY2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjU2NzpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjU2OC1cdHU4IGkgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjYzMD1zdGF0aWMgdTggcnR3ODlfbmhtX3dlaWdodGVkX2F2ZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9iYl9jdHggKmJiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NjMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjYzMjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjYzMy1cdHU4IG5obV93ZWlnaHRbUlRXODlfTkhNX1JQVF9OVU1dO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjY3Mj1zdGF0aWMgdm9pZCBfX3J0dzg5X3BoeV9uaG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Njc2LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2Njc3Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Njc4LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cdTAwM2VjaGlwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9Njc0OT1zdGF0aWMgYm9vbCBydHc4OV9waHlfaWZzX2NsbV9nZXRfcmVzdWx0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY3NTItXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cdTAwM2VjaGlwLVx1MDAzZXBoeV9kZWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY3NTM6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY3NTQtXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cdTAwM2VjY3g7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02ODUwPXN0YXRpYyBib29sIHJ0dzg5X3BoeV9lZGNjYV9jbG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02ODUzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2ODU0Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02ODU1LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9Njg3Mz1zdGF0aWMgdm9pZCBydHc4OV9waHlfbmhtX3RoX3VwZGF0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02ODc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6Njg3NjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg3Ny1cdHN0YXRpYyBjb25zdCB1OCBuaG1fdGhfMTFrW1JUVzg5X05ITV9SUFRfTlVNXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY4OTk9c3RhdGljIGludCBydHc4OV9waHlfbmhtX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTAzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2OTA0Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTA1LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9Njk3ND1zdGF0aWMgaW50IHJ0dzg5X3BoeV9pZnNfY2xtX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTc4LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2OTc5Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTgwLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzAxOTpzdGF0aWMgdm9pZCBfX3J0dzg5X3BoeV9lbnZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjAtXHRcdFx0XHRcdCAgc3RydWN0IHJ0dzg5X2JiX2N0eCAqYmIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MDIyOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MDIzLVx0c3RydWN0IHJ0dzg5X2NjeF9wYXJhX2luZm8gcGFyYSA9IHt9O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAzMy1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1BIWV9UUkFDSyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzAzNDpcdFx0ICAgIFwmIzM0O0JCLSVkIGVudl9tb25pdG9yIHRyYWNrXFxuXCYjMzQ7LCBiYi1cdTAwM2VwaHlfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAzNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcwNTg6dm9pZCBydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MDU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNjItXHRydHc4OV9mb3JfZWFjaF9hY3RpdmVfYmIocnR3ZGV2LCBiYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzA2MzpcdFx0X19ydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2socnR3ZGV2LCBiYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNjQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NzE1Nz1zdGF0aWMgdm9pZCBfX3J0dzg5X3BoeXN0c19wYXJzaW5nX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2MS1cdGNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXHUwMDNlY2hpcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE2MjpcdHUzMiBtb25pdG9yX21vZGVfbXVfaWVzID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE2MzpcdHUzMiBtb25pdG9yX21vZGVfc3VfaWVzID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2NC1cdHUzMiB2YWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTY3LVx0aWYgKHJ0d2Rldi1cdTAwM2Vody1cdTAwM2Vjb25mLmZsYWdzIFx1MDAyNiBJRUVFODAyMTFfQ09ORl9NT05JVE9SKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcxNjg6XHRcdG1vbml0b3JfbW9kZV9tdV9pZXMgPSBCSVQoUlRXODlfUEhZU1RTX0lFMDlfRlRSXzApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTY5LVx0XHRpZiAocGh5LVx1MDAzZXBoeXN0X2dlbiBcdTAwM2MgMilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE3MDpcdFx0XHRtb25pdG9yX21vZGVfbXVfaWVzIHw9IEJJVChSVFc4OV9QSFlTVFNfSUUxMF9GVFJfUExDUF9FWFQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTcyOlx0XHRtb25pdG9yX21vZGVfc3VfaWVzID0gQklUKFJUVzg5X1BIWVNUU19JRTA5X0ZUUl8wKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE3My1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcxODctXHRcdFx0dmFsIHw9IEJJVChSVFc4OV9QSFlTVFNfSUUxM19ETF9NVV9ERUYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTg4Olx0XHRcdHZhbCB8PSBtb25pdG9yX21vZGVfbXVfaWVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTg5LVx0XHR9IGVsc2UgaWYgKGkgPT0gUlRXODlfVFJJR19CQVNFX1BQRFUpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcyMDItXHRcdGlmIChpID09IFJUVzg5X0hFX1BLVCB8fCBpID09IFJUVzg5X1ZIVF9QS1QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcyMDM6XHRcdFx0dmFsIHw9IG1vbml0b3JfbW9kZV9zdV9pZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcyMDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz03NDU5PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9kaWdfaWdpX29mZnNldF9ieV9lbnYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzQ2Mi1cdHN0cnVjdCBydHc4OV9kaWdfaW5mbyAqZGlnID0gXHUwMDI2YmItXHUwMDNlZGlnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3NDYzOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03NDY0LVx0ZW51bSBydHc4OV9kaWdfbm9pc3lfbGV2ZWwgbm9pc3lfbHY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MTU0PXZvaWQgcnR3ODlfcGh5X2FudGRpdl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTc1OnN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X2Vudl9tb25pdG9yX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc2LVx0XHRcdFx0XHQgc3RydWN0IHJ0dzg5X2JiX2N0eCAqYmIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc4LVx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUEhZX1RSQUNLLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTc5Olx0XHQgICAgXCYjMzQ7QkItJWQgZW52X21vbml0b3IgaW5pdFxcblwmIzM0OywgYmItXHUwMDNlcGh5X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgxODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTg1OnN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTg5LVx0cnR3ODlfZm9yX2VhY2hfY2FwYWJfYmIocnR3ZGV2LCBiYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODE5MDpcdFx0X19ydHc4OV9waHlfZW52X21vbml0b3JfaW5pdChydHdkZXYsIGJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE5MS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MjM1PXZvaWQgcnR3ODlfcGh5X2RtX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODI0MS1cdHJ0dzg5X3BoeV9kaWFnX2luaXQocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI0MjpcdHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNDMtXHRydHc4OV9waHlfbmhtX3NldHRpbmdfaW5pdChydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODI2Mz12b2lkIHJ0dzg5X3BoeV9kbV9yZWluaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjY0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI2NTpcdHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNjYtXHRydHc4OV9waHlzdHNfcGFyc2luZ19pbml0KHJ0d2Rldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MjY5PXN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X2RtX2luaXRfZGF0YShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9iYl9jdHggKmJiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjcwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI3MTpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODI3Mi1cdGNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXHUwMDNlY2hpcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTg4MjU9c3RhdGljIHZvaWQgcnR3ODlfcGh5X2VkY2NhX2RpYWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTg4MjgtI2RlZmluZSBSVFc4OV9ESUFHX0JCX0VEQ0NBX1RYX1RIIDEwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjg4Mjk6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTg4MzAtXHRzdHJ1Y3QgcnR3ODlfdHJhZmZpY19zdGF0cyAqc3RhdHMgPSBcdTAwMjZydHdkZXYtXHUwMDNlc3RhdHM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaD0yMDE9ZW51bSBydHc4OV9waHlfYzJoX2NsYXNzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5oLTIxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5Lmg6MjEyOmVudW0gcnR3ODlfZW52X21vbml0b3JfcmVzdWx0X2xldmVsIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmgtMjEzLVx0UlRXODlfUEhZX0VOVl9NT05fQ0NYX0ZBSUwgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5Lmg9MTIwND12b2lkIHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5oOjEyMDU6dm9pZCBydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmgtMTIwNi12b2lkIHJ0dzg5X3BoeV9zZXRfcGh5X3JlZ3Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkciwgdTMyIG1hc2ssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYz02Mjg9c3RhdGljIHZvaWQgcnR3ODlfdGFzX2hpc3RvcnlfdXBkYXRlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3Nhci5jLTYzMC1cdHN0cnVjdCBydHc4OV9iYl9jdHggKmJiID0gcnR3ODlfZ2V0X2JiX2N0eChydHdkZXYsIFJUVzg5X1BIWV8wKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvc2FyLmM6NjMxOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYy02MzItXHRzdHJ1Y3QgcnR3ODlfdGFzX2luZm8gKnRhcyA9IFx1MDAyNnJ0d2Rldi1cdTAwM2V0YXM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU2ODEKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgdGhlIFJvbGUgSW5mbyoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYC4gVGhhdCYjMzk7cyBhIGNyaXRpY2FsIGJpdCBvZiBpbmZvcm1hdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gdGhlIEJsdWV0b290aC9XaS1GaSByb2xlIG1hbmFnZW1lbnQuIEdpdmVuIHRoZSBuYW1pbmcgY29udmVudGlvbiwgaXQmIzM5O3MgcHJvYmFibHkgYSBiaXQgcG9zaXRpb24gZGVmaW5pdGlvbiB3aXRoaW4gYSBsYXJnZXIgc3RydWN0dXJlLiBUbyBnZXQgYSBwcmVjaXNlIHVuZGVyc3RhbmRpbmcgb2YgaXRzIG1lYW5pbmcgYW5kIGNvbnRleHQsIEkmIzM5O2xsIG5lZWQgdG8gdXNlIGByZWFkLWZpbGVgIGFuZCBsb2NhdGUgaXQgaW4gYGNvcmUuaGAuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQg4oCTIGBjb3JlLmhgIHVzdWFsbHkgaG9sZHMgdGhlIGZ1bmRhbWVudGFsIGRlZmluaXRpb25zIGZvciB0aGlzIGtpbmQgb2YgbG93LWxldmVsIGludGVyYWN0aW9uLiBPbmNlIEkgaGF2ZSB0aGUgZmlsZSBsb2FkZWQsIEkgY2FuIHRyYWNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiBhbmQgc2VlIHByZWNpc2VseSB3aGF0IG90aGVyIGJpdHMgYXJlIHJlbGF0ZWQgdG8gdGhhdCBzcGVjaWZpYyByb2xlIHNldHRpbmcuIFVuZGVyc3RhbmRpbmcgdGhpcyByZWxhdGlvbnNoaXAgaXMga2V5IHRvIGRlYnVnZ2luZyBvciBtb2RpZnlpbmcgYW55IHJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4gVGhpcyB3aWxsIGhvcGVmdWxseSBwcm92aWRlIHRoZSBjb250ZXh0IEkgbmVlZCB0byBtb3ZlIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4OTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTg5ODpcdFxuMTg5OTpcdHN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xuMTkwMDpcdFx0dTE2IG5vbmU6IDE7XG4xOTAxOlx0XHR1MTYgc3RhdGlvbjogMTtcbjE5MDI6XHRcdHUxNiBhcDogMTtcbjE5MDM6XHRcdHUxNiB2YXA6IDE7XG4xOTA0Olx0XHR1MTYgYWRob2M6IDE7XG4xOTA1Olx0XHR1MTYgYWRob2NfbWFzdGVyOiAxO1xuMTkwNjpcdFx0dTE2IG1lc2g6IDE7XG4xOTA3Olx0XHR1MTYgbW9uaXRvcjogMTtcbjE5MDg6XHRcdHUxNiBwMnBfZGV2aWNlOiAxO1xuMTkwOTpcdFx0dTE2IHAycF9nYzogMTtcbjE5MTA6XHRcdHUxNiBwMnBfZ286IDE7XG4xOTExOlx0XHR1MTYgbmFuOiAxO1xuMTkxMjpcdH07XG4xOTEzOlx0XG4xOTE0Olx0c3RydWN0IHJ0dzg5X2J0Y19lc2xvdF9jdHJsIHtcbjE5MTU6XHRcdHU4IGVuOyAgLyogMTogdG9nZ2xlIHR4LWZsb3ctY3RybCAobnVsbCAwLzEpLCB0eC1wYXVzZSBieSBFeHQtc2xvdCAqL1xuMTkxNjpcdFx0dTggbnVsbHR4X3JvbGUxO1xuMTkxNzpcdFx0dTggbnVsbHR4X3JvbGUyO1xuMTkxODpcdFx0dTggbnVsbHR4X3ByZV90aW1lOyAvKiBudWxsLXR4IHRpbWUgcHJpb3IgdG8gRUJULXN0YXJ0IChmcm9tIEUyRy1lbmQpICovXG4xOTE5Olx0fTtcbjE5MjA6XHRcbjE5MjE6XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCB7XG4xOTIyOlx0XHR1MTYgdmFsO1xuMTkyMzpcdFx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyByb2xlO1xuMTkyNDpcdH07XG4xOTI1Olx0XG4xOTI2Olx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjAgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuMTkyNzpcdFx0dTggY29ubmVjdF9jbnQ7XG4xOTI4Olx0XHR1OCBsaW5rX21vZGU7XG4xOTI5Olx0XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbjE5MzA6XHRcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGUgYWN0aXZlX3JvbGVbUlRXODlfUE9SVF9OVU1dO1xuMTkzMTpcdH07XG4xOTMyOlx0XG4xOTMzOlx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuMTkzNDpcdFx0dTggY29ubmVjdF9jbnQ7XG4xOTM1Olx0XHR1OCBsaW5rX21vZGU7XG4xOTM2Olx0XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbjE5Mzc6XHRcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2NzA0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBWYXJpYWJsZSBVc2FnZSBpbiB0aGUgQ29kZWJhc2UqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlc2UgdmFyaWFibGVzLCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYCBhbmQgYHJvbGVfbWFwYCwgYXJlIGFjdHVhbGx5IGJlaW5nIHVzZWQuIEl0JiMzOTtzIGEgZmFpcmx5IHN0YW5kYXJkIGRlYnVnZ2luZyBzdGVwLCByZWFsbHkuIEkgd2FudCB0byB1bmRlcnN0YW5kIHRoZWlyIGltcGFjdCBhbmQsIHBvdGVudGlhbGx5LCBpZiB0aGV5IGNhbiBiZSBvcHRpbWl6ZWQgb3IgaWYgdGhlcmUgYXJlIHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zIGludm9sdmluZyB0aGVtLiBJJiMzOTtsbCBuZWVkIHRvIHJ1biBhIHF1aWNrIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlIHRvIGlkZW50aWZ5IGFsbCB0aGUgaW5zdGFuY2VzIHdoZXJlIHRoZXkmIzM5O3JlIHJlZmVyZW5jZWQuIFRoYXQgd2lsbCBwcm92aWRlIG1lIHdpdGggYSBsaXN0IG9mIGNvbnRleHRzIGluIHdoaWNoIHRoZXkgcGxheSBhIHJvbGUsIHRoZWlyIHNjb3BlLCBhbmQgaG93IHRoZXkgY29udHJpYnV0ZSB0byB0aGUgc3lzdGVtJiMzOTtzIGJlaGF2aW9yLiBUaW1lIHRvIGRlbHZlIGludG8gdGhlIGNvZGUgYW5kIHNlZSB3aGF0IEkgY2FuIGZpbmQhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cm9sZV9tYXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTQ3NjE9dm9pZCBydHc4OV9idGNfc2V0X3BvbGljeShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUxNiBwb2xpY3lfdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy00OTM5LVx0XHQqdCA9IHRfZGVmW0NYVERfUEZJWF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo0OTQwOlx0XHRpZiAoYnRjLVx1MDAzZWN4LndsLnJvbGVfaW5mby5yb2xlX21hcCAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfQVApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNDk0MS1cdFx0XHRfdGRtYV9zZXRfZmxjdHJsKGJ0YywgQ1hGTENfUU9TTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM9NzUyND1zdGF0aWMgdm9pZCBfbW9kaWZ5X3JvbGVfbGlua19tb2RlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggaHdfYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTMwLVx0dTggKmxpbmtfbW9kZSA9IFx1MDAyNndsX3JpbmZvLVx1MDAzZWxpbmtfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1MzE6XHR1MzIgcm9sZV9tYXAgPSB3bF9yaW5mby1cdTAwM2Vyb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1MzItXHR1OCBub2FfZXhpc3QgPSB3bC1cdTAwM2Vub2FfZXhpc3Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzNi1cdFx0KmxpbmtfbW9kZSA9IHdsX3JpbmZvLVx1MDAzZWxpbmtfbW9kZV9oYjE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTM3Olx0XHRyb2xlX21hcCA9IHdsX3JpbmZvLVx1MDAzZXJvbGVfbWFwX2hiMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1MzgtXHRcdGdvX2NsZWludF9leGlzdCA9IHdsLVx1MDAzZWdvX2NsaWVudF9leGlzdF9oYjE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzU0MS1cdC8qIGlmIG5vIGNsaWVudF9qb2luZWQsIGRvbiYjMzk7dCBjYXJlIFAyUC1HTy9BUCByb2xlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTQyOlx0aWYgKCgocm9sZV9tYXAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfUDJQX0dPKSkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NDM6XHQgICAgICAocm9sZV9tYXAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfQVApKSkgXHUwMDI2XHUwMDI2ICFnb19jbGVpbnRfZXhpc3QpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NDQtXHRcdGlmICgqbGlua19tb2RlID09IEJUQ19XTElOS19TQ0MpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTU1LVx0ICAgICAqbGlua19tb2RlID09IEJUQ19XTElOS19EQl9NQ0MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NTY6XHRcdGlmICgocm9sZV9tYXAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfUDJQX0dPKSkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NTc6XHRcdCAgICAgKHJvbGVfbWFwIFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX0FQKSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NTgtXHRcdFx0aWYgKG5vYV9leGlzdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTYxLVx0XHRcdFx0bXJvbGUgPSBCVENfV0xNUk9MRV9TVEFfR087XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTYyOlx0XHR9IGVsc2UgaWYgKHJvbGVfbWFwIFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX1AyUF9DTElFTlQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTYzLVx0XHRcdGlmIChub2FfZXhpc3QpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM9NzU4Nz1zdGF0aWMgdm9pZCBfdXBkYXRlX3dsX2luZm8oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfYnRjX3dsX2xpbmtfaW5mbyAqd2xfbGluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzU5OC1cdHU4IGksIGxpbmtfbW9kZV9vcmk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTk5Olx0dTMyIHJvbGVfbWFwID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2MDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc2NDc6XHRcdHJvbGVfbWFwIHw9IEJJVChybGluay1cdTAwM2Vyb2xlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2NDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY3OS1cdFx0d2xfcmluZm8tXHUwMDNlcDJwX2V4aXN0ID0gcDJwX2V4aXN0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzY4MDpcdFx0d2xfcmluZm8tXHUwMDNlcm9sZV9tYXAgPSByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODEtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODctXHRcdHdsX3JpbmZvLVx1MDAzZXAycF9leGlzdF9oYjEgPSBwMnBfZXhpc3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3Njg4Olx0XHR3bF9yaW5mby1cdTAwM2Vyb2xlX21hcF9oYjEgPSByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODktXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTkyNj1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MCB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyOC1cdHU4IGxpbmtfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5Mjk6XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MzAtXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlIGFjdGl2ZV9yb2xlW1JUVzg5X1BPUlRfTlVNXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTMzPXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YxIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM1LVx0dTggbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkzNjpcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzNy1cdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5NDg9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjIgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTAtXHR1OCBsaW5rX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTUxOlx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTUyLVx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MiBhY3RpdmVfcm9sZV92MltSVFc4OV9QT1JUX05VTV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MjAwMz1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192NyB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwMTE6XHRfX2xlMzIgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0yMDEyLVx0X19sZTMyIG1yb2xlX3R5cGU7IC8qIGJ0Y193bF9tcm9sZV90eXBlICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MjAxOT1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192OCB7IC8qIEgyQyBpbmZvLCBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDMyOlx0X19sZTMyIHJvbGVfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAzMy1cdF9fbGUzMiBtcm9sZV90eXBlOyAvKiBidGNfd2xfbXJvbGVfdHlwZSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwMzc9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEwIHsgLyogSDJDIGluZm8sIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjA0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwNDk6XHRfX2xlMzIgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDUwOlx0X19sZTMyIHJvbGVfbWFwX2hiMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwNTEtXHRfX2xlMzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGU6IFszMToxNl06YmFuZDEsIFsxNTowXTpiYW5kMCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwODY9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm8geyAvKiBMb2dpYyBkeW5hbWljIHVzaW5nICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjA5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwOTg6XHR1MzIgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDk5Olx0dTMyIHJvbGVfbWFwX2hiMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIxMDAtXHR1MzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGU6IFszMToxNl06YmFuZDEsIFsxNTowXTpiYW5kMCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02MDU4PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTYwNjUtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYwNjY6XHR1MzIgcm1hcCA9IHItXHUwMDNlcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjA2Ny1cdHU4IG9mZnNldCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYxNDA9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjE0Ny1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjE0ODpcdHUzMiBybWFwID0gci1cdTAwM2Vyb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MTQ5LVx0dTggKmNtZCwgb2Zmc2V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02MjI5PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MTAxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjI1My1cdGgyYy1cdTAwM2VsaW5rX21vZGUgPSByb2xlX2luZm8tXHUwMDNlbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYyNTQ6XHRoMmMtXHUwMDNlcm9sZV9tYXAgPSBjcHVfdG9fbGUxNihyb2xlX2luZm8tXHUwMDNlcm9sZV9tYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTYyNTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYzMTQ9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3YyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjMyMS1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjMyMjpcdHUzMiBybWFwID0gci1cdTAwM2Vyb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MzIzLVx0dTMyIGxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9NjM5OT1pbnQgcnR3ODlfZndfaDJjX2N4ZHJ2X3JvbGVfdjcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02NDQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY0NDQ6XHRybSA9IGNwdV90b19sZTMyKHItXHUwMDNlcm9sZV9tYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY0NDU6XHRtZW1jcHkoXHUwMDI2aDJjLVx1MDAzZXIucm9sZV9tYXAsIFx1MDAyNnJtLCBzaXplb2YoaDJjLVx1MDAzZXIucm9sZV9tYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02NDQ2LVx0aDJjLVx1MDAzZXIubXJvbGVfdHlwZSA9IGNwdV90b19sZTMyKHItXHUwMDNlbXJvbGVfdHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTY0NzA9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3Y4KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjUyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTIxOlx0cm0gPSBjcHVfdG9fbGUzMihyLVx1MDAzZXJvbGVfbWFwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTIyOlx0bWVtY3B5KFx1MDAyNmgyYy1cdTAwM2VyLnJvbGVfbWFwLCBcdTAwMjZybSwgc2l6ZW9mKGgyYy1cdTAwM2VyLnJvbGVfbWFwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjUyMy1cdGgyYy1cdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVx1MDAzZW1yb2xlX3R5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02NTQ0PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MTAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02NTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTc6XHRybSA9IGNwdV90b19sZTMyKHItXHUwMDNlcm9sZV9tYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTg6XHRtZW1jcHkoXHUwMDI2aDJjLVx1MDAzZXIucm9sZV9tYXAsIFx1MDAyNnJtLCBzaXplb2YoaDJjLVx1MDAzZXIucm9sZV9tYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTk5Olx0cm0gPSBjcHVfdG9fbGUzMihyLVx1MDAzZXJvbGVfbWFwX2hiMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjYwMDpcdG1lbWNweShcdTAwMjZoMmMtXHUwMDNlci5yb2xlX21hcF9oYjEsIFx1MDAyNnJtLCBzaXplb2YoaDJjLVx1MDAzZXIucm9sZV9tYXBfaGIxKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjYwMS1cdGgyYy1cdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVx1MDAzZW1yb2xlX3R5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaD0yNjQ5PXN0cnVjdCBydHc4OV9oMmNfY3hyb2xlX3YxMDEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC0yNjUyLVx0dTggbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjI2NTM6XHRfX2xlMTYgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtMjY1NC1cdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEwMSBhY3Rfcm9sZVtSVFc4OV9QT1JUX05VTV07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEzNjMKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA4NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGFuIGV4cGVydCBpbiB0aGlzIGFyZWE6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIERhdGEgU3RydWN0dXJlIFVzYWdlKioKCk9rYXksIHNvIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgc2NvcGUgb2YgdGhlc2UgdHdvIHZhcmlhYmxlcywgYHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwYCBhbmQgYHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvc2AuIEkgc3VzcGVjdCB0aGVyZSBtaWdodCBiZSBzb21lIGludGVycGxheSBiZXR3ZWVuIHRoZW0uIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHNlZSBob3cgdGhleSBhcmUgYWN0dWFsbHkgYmVpbmcgdXNlZCB3aXRoaW4gdGhlIGNvZGViYXNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGVzZSBzdHJ1Y3R1cmVzIGFyZSBkZWZpbmVkLCBpbml0aWFsaXplZCwgYW5kIGFjY2Vzc2VkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlaXIgcHVycG9zZS4gSSBpbW1lZGlhdGVseSB3YW50IHRvIGNvbmZpcm0gaWYgdGhlIGxhdHRlciwgYHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvc2AsIGlzIHVuaXF1ZSB0byBhIHNwZWNpZmljIGFyZWEgb3IgaWYgaXQmIzM5O3MgdXRpbGl6ZWQgbW9yZSBicm9hZGx5LiBUaGVuIEkmIzM5O2xsIGV4cGFuZCBteSBzZWFyY2guCgpNeSBuZXh0IHN0ZXAgaXMgdG8gcGVyZm9ybSBhIHRhcmdldGVkIHNlYXJjaC4gSSYjMzk7bGwgdXNlIGBncmVwYCAob3IgbXkgcHJlZmVycmVkIHNlYXJjaCB0b29sKSBhbmQgbG9vayBmb3Igb2NjdXJyZW5jZXMgb2YgYHJvbGVfaW5mb19icG9zYCAqYW5kKiBgcm9sZV9pbmZvX21hcGAuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyB0aGVzZSBzdHJ1Y3R1cmVzIGFyZSBlbXBsb3llZC4gVGhpcyB3aWxsIGhlbHAgbWUgdHJhY2UgdGhlIGRhdGEgZmxvdyBhbmQgdW5kZXJzdGFuZCB0aGUgbG9naWMgYXJvdW5kIHRoZXNlIHZhcmlhYmxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7KHJvbGVfaW5mb19icG9zfHJvbGVfaW5mb19tYXApJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xODgyPXN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjcge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE4OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxODk5OnN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwMC1cdHUxNiBub25lOiAxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MTQ9c3RydWN0IHJ0dzg5X2J0Y19lc2xvdF9jdHJsIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkyMTp1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTIyLVx0dTE2IHZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5MjM6XHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zIHJvbGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTI0LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTkyNj1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MCB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyOC1cdHU4IGxpbmtfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5Mjk6XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MzAtXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlIGFjdGl2ZV9yb2xlW1JUVzg5X1BPUlRfTlVNXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTMzPXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YxIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM1LVx0dTggbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkzNjpcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzNy1cdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5NDg9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjIgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTAtXHR1OCBsaW5rX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTUxOlx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTUyLVx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MiBhY3RpdmVfcm9sZV92MltSVFc4OV9QT1JUX05VTV07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNjU1CgkJCQkJCQlvdXRwdXQ6IDY5CgkJCQkJCQl0aG91Z2h0czogOTg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBhdGNoIEFuYWx5c2lzOiBTcGVsbGluZyBhbmQgQ29tbWVudCBGaXhlcyAtIFdvcnRoRnV6emluZz1mYWxzZSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYCBqdXN0IGhhZCBhIG1pbm9yIGZpZWxkIG5hbWUgY2hhbmdlIChgbW9uaXRlcmAgdG8gYG1vbml0b3JgKSB3aXRoaW4gYSBzdHJ1Y3QgZGVmaW5pdGlvbi4gQnV0LCB0aGUgY29kZSBkb2VzbiYjMzk7dCBhY3R1YWxseSBhY2Nlc3MgdGhlIGZpZWxkIGJ5IG5hbWU7IGl0IHVzZXMgZWl0aGVyIGAudmFsYCBvciB0cmVhdHMgYHJvbGVfbWFwYCBhcyBhIGJpdG1hc2sgd2l0aGluIGEgdW5pb24uIFNvLCB0aGUgaW1wYWN0IG9mIHRoYXQgc3BlY2lmaWMgY2hhbmdlIGFwcGVhcnMgbmVnbGlnaWJsZS4KCk5vdywgbGV0JiMzOTtzIHN0ZXAgdGhyb3VnaCBlYWNoIGZpbGUgdG91Y2hlZCBpbiB0aGUgcGF0Y2ggbW9yZSBjYXJlZnVsbHk6CgoxLiAgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oYDogV2UmIzM5O3JlIHNlZWluZyB0aGUgYHUxNiBtb25pdGVyOiAxO2AgYmVjb21pbmcgYHUxNiBtb25pdG9yOiAxO2AuIFRoYXQmIzM5O3MgYSBzaW1wbGUgc3BlbGxpbmcgY29ycmVjdGlvbiBpbiBhIHN0cnVjdCBmaWVsZCBuYW1lLiBUaGVyZSYjMzk7cyBhbHNvIGEgY29tbWVudCB0eXBvIGZpeDogJiMzNDtzZXJhY2gmIzM0OyB0byAmIzM0O3NlYXJjaCYjMzQ7LgoKMi4gIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgOiBUd28gbW9yZSB0eXBvIGZpeGVzOiBvbmUgaW4gYW4gZXJyb3IgbG9nIHN0cmluZyAoJiMzNDtVbnN1cHBvcnQmIzM0OyB0byAmIzM0O1Vuc3VwcG9ydGVkJiMzNDspIGFuZCBhbm90aGVyIGluIGEgY29tbWVudCAoJiMzNDtub2ZpdHkmIzM0OyB0byAmIzM0O25vdGlmeSYjMzQ7KS4KCjMuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY2A6IEFnYWluLCB0eXBvIGZpeGVzLiBPbmUgaW4gYSBkZWJ1ZyBsb2cgc3RyaW5nICgmIzM0O3VwZGF0JiMzNDsgdG8gJiMzNDt1cGRhdGUmIzM0OykgYW5kIGFub3RoZXIgaW4gYSBjb21tZW50ICgmIzM0O2xhZ2FjeSYjMzQ7IHRvICYjMzQ7bGVnYWN5JiMzNDspLgoKQWxyaWdodCwgbGV0JiMzOTtzIGRvdWJsZS1jaGVjayB0aGUgJiMzNDtXaGVuIHRvIFJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBndWlkZWxpbmVzLiBNeSBtZW50YWwgY2hlY2tsaXN0IGZvciB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYSBpczoKCiogICBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzPyBDaGVjay4KKiAgIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbiwgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzPyBDaGVjay4KKiAgIFVzZXItc3BhY2UgY2hhbmdlcyB0aGF0IGRvbiYjMzk7dCBhZmZlY3QgdGhlIGtlcm5lbCBpbWFnZT8gTm90IGFwcGxpY2FibGUgaGVyZS4KKiAgIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgdGhhdCBkb2VzbiYjMzk7dCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzPyBDaGVjay4KKiAgIEJ1aWxkIHN5c3RlbS9LY29uZmlnIGNoYW5nZXMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYz8gTm90IGFwcGxpY2FibGUgaGVyZS4KCkFuYWx5emluZyBlYWNoIGNoYW5nZSBhZ2FpbjoKCjEuICBTdHJ1Y3QgZmllbGQgbmFtZSAoYG1vbml0ZXJgIHRvIGBtb25pdG9yYCk6IFNwZWxsaW5nIGZpeCBpbiBhbiB1bnVzZWQgZmllbGQuIFRoaXMgZG9lc24mIzM5O3QgY2hhbmdlIGJpbmFyeSBsYXlvdXQsIGRhdGEgc3RydWN0dXJlIHNpemUsIG9yIGNvbnRyb2wgZmxvdy4gSXQmIzM5O3Mgc2FmZSB0byBhc3N1bWUgYSBjb21waWxlciBoYW5kbGVzIHRoaXMgd2l0aG91dCBpc3N1ZS4KMi4gIENvbW1lbnQgc3BlbGxpbmcgZml4OiAmIzM0O3NlcmFjaCYjMzQ7IHRvICYjMzQ7c2VhcmNoJiMzNDsuCjMuICBMb2dnaW5nIGZpeDogJiMzNDtVbnN1cHBvcnQmIzM0OyB0byAmIzM0O1Vuc3VwcG9ydGVkJiMzNDsgLSBwdXJlbHkgZGVjb3JhdGl2ZSBhbmQgZG9lc24mIzM5O3QgYWZmZWN0IG9wZXJhdGlvbi4KNC4gIENvbW1lbnQgZml4OiAmIzM0O25vZml0eSYjMzQ7IHRvICYjMzQ7bm90aWZ5JiMzNDsgLSBwdXJlbHkgY29zbWV0aWMuCjUuICBMb2dnaW5nIGZpeDogJiMzNDt1cGRhdCYjMzQ7IHRvICYjMzQ7dXBkYXRlJiMzNDsgLSBhbm90aGVyIG1pbm9yIGNvcnJlY3Rpb24uCjYuICBDb21tZW50IGZpeDogJiMzNDtsYWdhY3kmIzM0OyB0byAmIzM0O2xlZ2FjeSYjMzQ7IC0gYSBiaXQgb2YgcG9saXNoLgoKRWFjaCBjaGFuZ2UgY2xlYXJseSBmYWxscyB1bmRlciB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYS4gTm90aGluZyB0b3VjaGVzIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgZGF0YSBzdHJ1Y3R1cmUgc2l6ZS9sYXlvdXQsIG9yIGFzc2VydGlvbnMuIEV2ZW4gaWYgd2UgaGFkIGhhcmR3YXJlLCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgaXQgd291bGQgcmVxdWlyZSBhIHBoeXNpY2FsIHJhZGlvLCBvciBod3NpbSwgYW5kIHRoaXMgd291bGQgc3RpbGwgYmUgdGhlIGNhc2UuIEkgd291bGQgc3RpbGwgZGVlbSB0aGlzIGEgY29zbWV0aWMgcGF0Y2guCgpHaXZlbiB0aGlzIHRob3JvdWdoIHJldmlldyBhbmQgbXkgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIHRoZXNlIHdpcmVsZXNzIGRyaXZlcnMsIEkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgdGhlIHJlc3VsdHMuCgpIZXJlJiMzOTtzIHdoYXQgSSYjMzk7bGwgc2V0OgoKKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgCiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAgKEJlY2F1c2UgdGhlcmUgaXMgbm8gZm9jdXMuKQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChCZWNhdXNlIHRoZXJlIGlzIG5vIGNvbmZpZyB0byBlbmFibGUuKQoqICAgYFJlYXNvbmluZ2A6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29uc2lzdHMgb2Ygc3BlbGxpbmcgZml4ZXMgaW4gY29tbWVudHMsIGxvZyBtZXNzYWdlcywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUsIHdpdGggbm8gZnVuY3Rpb25hbCBvciBsb2dpYyBjaGFuZ2VzLiYjMzQ7CgpUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjb250YWlucyBvbmx5IHNwZWxsaW5nIGFuZCB0eXBvIGZpeGVzIGluIGNvbW1lbnRzLCBsb2cvZGVidWcgbWVzc2FnZSBzdHJpbmdzLCBhbmQgYSBzdHJ1Y3QgZmllbGQgbmFtZS4gTm8gZXhlY3V0YWJsZSBsb2dpYywgY29udHJvbCBmbG93LCBhc3NlcnRpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgd2VyZSBhbHRlcmVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udGFpbnMgb25seSBzcGVsbGluZyBhbmQgdHlwbyBmaXhlcyBpbiBjb21tZW50cywgbG9nL2RlYnVnIG1lc3NhZ2Ugc3RyaW5ncywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUuIE5vIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgYXNzZXJ0aW9ucywgb3IgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNS42OTIxNTIwODJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDUyMzk0NzQ0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNvbnRhaW5zIG9ubHkgc3BlbGxpbmcgYW5kIHR5cG8gZml4ZXMgaW4gY29tbWVudHMsIGxvZy9kZWJ1ZyBtZXNzYWdlIHN0cmluZ3MsIGFuZCBhIHN0cnVjdCBmaWVsZCBuYW1lLiBObyBleGVjdXRhYmxlIGxvZ2ljLCBjb250cm9sIGZsb3csIGFzc2VydGlvbnMsIG9yIGRhdGEgc3RydWN0dXJlcyB3ZXJlIGFsdGVyZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNS42OTIxNTc3MjJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3OTAyNzgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGZjMjkwZjg2MmUyMTFkOWRiZDBhYzYzNmVjODUxNTY2YWRhYWM1OWVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgNiAwODo0MjozNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXFxuaW5kZXggMmIyMWQ5NjllY2U3Yi4uODE0ZjNiOTRjZmNkMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXFxuQEAgLTE5MDQsNyArMTkwNCw3IEBAIHN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xcbiBcXHR1MTYgYWRob2M6IDE7XFxuIFxcdHUxNiBhZGhvY19tYXN0ZXI6IDE7XFxuIFxcdHUxNiBtZXNoOiAxO1xcbi1cXHR1MTYgbW9uaXRlcjogMTtcXG4rXFx0dTE2IG1vbml0b3I6IDE7XFxuIFxcdHUxNiBwMnBfZGV2aWNlOiAxO1xcbiBcXHR1MTYgcDJwX2djOiAxO1xcbiBcXHR1MTYgcDJwX2dvOiAxO1xcbkBAIC0zOTI1LDcgKzM5MjUsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfY2VsbCB7XFxuIHN0cnVjdCBydHc4OV9idGNfZmRkcl9yZXN1bHQge1xcbiBcXHR1OCB3bF9yeF9saW1pdDtcXG4gXFx0dTggd2xfcnhfbGltaXRfc3RlcFs2XTsgLyogcmVjb3JkIHNlYXJjaCBwcm9jZXNzICovXFxuLVxcdHU4IHNlYXJjaF9jbnQ7IC8qIHRoZSByeC1saW1pdCBzZXJhY2ggY291bnQgKi9cXG4rXFx0dTggc2VhcmNoX2NudDsgLyogdGhlIHJ4LWxpbWl0IHNlYXJjaCBjb3VudCAqL1xcbiBcXHR1MzIgd2xfdHA7XFxuIFxcdHUzMiB3bF90cF9zdGVwWzZdOyAvKiByZWNvcmQgc2VhcmNoIHByb2Nlc3MgKi9cXG4gfTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXFxuaW5kZXggMDA5OWM1YzAzZTdhNi4uZWNlZGZkNmY2NGEzZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcXG5AQCAtMzA2LDcgKzMwNiw3IEBAIHN0YXRpYyBpbnQgX19wYXJzZV9mb3JtYXR0ZWRfbXNzYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuIFxcdFxcdGlmIChtc3NfaGRyLVxcdTAwM2VkZWZlbilcXG4gXFx0XFx0XFx0cm1wX3RibF9zaXplICs9IEZXRExfTVNTX1BPT0xfREVGS0VZU0VUU19TSVpFO1xcbiBcXHR9IGVsc2Uge1xcbi1cXHRcXHRydHc4OV9lcnIocnR3ZGV2LCBcXFwiW0VSUl0gTVNTIEtleSBQb29sIFJlbWFwIFRhYmxlIEZvcm1hdCBVbnN1cHBvcnQ6JVhcXFxcblxcXCIsXFxuK1xcdFxcdHJ0dzg5X2VycihydHdkZXYsIFxcXCJbRVJSXSBNU1MgS2V5IFBvb2wgUmVtYXAgVGFibGUgRm9ybWF0IFVuc3VwcG9ydGVkOiVYXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgIG1zc19oZHItXFx1MDAzZXJtcGZtdCk7XFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHR9XFxuQEAgLTExMjE0LDcgKzExMjE0LDcgQEAgaW50IHJ0dzg5X2Z3X2gyY193b3dfcmVxdWVzdF9hb2FjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4gXFxuIFxcdHNrYl9wdXQoc2tiLCBsZW4pO1xcbiBcXG4tXFx0LyogVGhpcyBIMkMgb25seSBub2ZpdHkgZmlybXdhcmUgdG8gZ2VuZXJhdGUgQU9BQyByZXBvcnQgQzJILFxcbitcXHQvKiBUaGlzIEgyQyBvbmx5IG5vdGlmeSBmaXJtd2FyZSB0byBnZW5lcmF0ZSBBT0FDIHJlcG9ydCBDMkgsXFxuIFxcdCAqIG5vIG5lZWQgYW55IHBhcmFtZXRlci5cXG4gXFx0ICovXFxuIFxcdHJ0dzg5X2gyY19wa3Rfc2V0X2hkcihydHdkZXYsIHNrYiwgRldDTURfVFlQRV9IMkMsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jXFxuaW5kZXggYzc4MTA3ZTkyMjA2My4uNDNiMzU1MmY1YTk2YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xcbkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBydHc4OV9waHlfcmFfdXBkYXRlX3N0YV9saW5rKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4gXFx0XFx0cmEtXFx1MDAzZXVwZF9id19uc3NfbWFzayA9IDE7XFxuIFxcbiBcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SQSxcXG4tXFx0XFx0ICAgIFxcXCJyYSB1cGRhdDogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcXFwiLFxcbitcXHRcXHQgICAgXFxcInJhIHVwZGF0ZTogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcXFwiLFxcbiBcXHRcXHQgICAgcmEtXFx1MDAzZW1hY2lkLFxcbiBcXHRcXHQgICAgcmEtXFx1MDAzZWJ3X2NhcCxcXG4gXFx0XFx0ICAgIHJhLVxcdTAwM2Vzc19udW0sXFxuQEAgLTY1OSw3ICs2NTksNyBAQCB2b2lkIF9fcnR3ODlfcGh5X3JhdGVfcGF0dGVybl92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHQgIDAsIHRydWUpKVxcbiBcXHRcXHRcXHRnb3RvIG91dDtcXG4gXFxuLVxcdC8qIGxhZ2FjeSBjYW5ub3QgYmUgZW1wdHkgZm9yIG5sODAyMTFfcGFyc2VfdHhfYml0cmF0ZV9tYXNrLCBhbmRcXG4rXFx0LyogbGVnYWN5IGNhbm5vdCBiZSBlbXB0eSBmb3Igbmw4MDIxMV9wYXJzZV90eF9iaXRyYXRlX21hc2ssIGFuZFxcbiBcXHQgKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBiYXNpYyByYXRlIGZvciBpZWVlODAyMTFfc2V0X2JpdHJhdGVfbWFzayxcXG4gXFx0ICogc28gdGhlIGRlY2lzaW9uIGp1c3QgZGVwZW5kcyBvbiBpZiBhbGwgYml0cmF0ZXMgYXJlIHNldCBvciBub3QuXFxuIFxcdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNi4yNzE4NTE3MzRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjIzOTQ0MjMxNTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb250YWlucyBvbmx5IHNwZWxsaW5nIGFuZCB0eXBvIGZpeGVzIGluIGNvbW1lbnRzLCBsb2cvZGVidWcgbWVzc2FnZSBzdHJpbmdzLCBhbmQgYSBzdHJ1Y3QgZmllbGQgbmFtZS4gTm8gZXhlY3V0YWJsZSBsb2dpYywgY29udHJvbCBmbG93LCBhc3NlcnRpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgd2VyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmYzI5MGY4NjJlMjExZDlkYmQwYWM2MzZlYzg1MTU2NmFkYWFjNTllXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgNiAwODo0MjozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhcbmluZGV4IDJiMjFkOTY5ZWNlN2IuLjgxNGYzYjk0Y2ZjZDMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhcbkBAIC0xOTA0LDcgKzE5MDQsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zIHtcbiBcdHUxNiBhZGhvYzogMTtcbiBcdHUxNiBhZGhvY19tYXN0ZXI6IDE7XG4gXHR1MTYgbWVzaDogMTtcbi1cdHUxNiBtb25pdGVyOiAxO1xuK1x0dTE2IG1vbml0b3I6IDE7XG4gXHR1MTYgcDJwX2RldmljZTogMTtcbiBcdHUxNiBwMnBfZ2M6IDE7XG4gXHR1MTYgcDJwX2dvOiAxO1xuQEAgLTM5MjUsNyArMzkyNSw3IEBAIHN0cnVjdCBydHc4OV9idGNfZmRkcl9jZWxsIHtcbiBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfcmVzdWx0IHtcbiBcdHU4IHdsX3J4X2xpbWl0O1xuIFx0dTggd2xfcnhfbGltaXRfc3RlcFs2XTsgLyogcmVjb3JkIHNlYXJjaCBwcm9jZXNzICovXG4tXHR1OCBzZWFyY2hfY250OyAvKiB0aGUgcngtbGltaXQgc2VyYWNoIGNvdW50ICovXG4rXHR1OCBzZWFyY2hfY250OyAvKiB0aGUgcngtbGltaXQgc2VhcmNoIGNvdW50ICovXG4gXHR1MzIgd2xfdHA7XG4gXHR1MzIgd2xfdHBfc3RlcFs2XTsgLyogcmVjb3JkIHNlYXJjaCBwcm9jZXNzICovXG4gfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcbmluZGV4IDAwOTljNWMwM2U3YTYuLmVjZWRmZDZmNjRhM2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgaW50IF9fcGFyc2VfZm9ybWF0dGVkX21zc2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRpZiAobXNzX2hkci1cdTAwM2VkZWZlbilcbiBcdFx0XHRybXBfdGJsX3NpemUgKz0gRldETF9NU1NfUE9PTF9ERUZLRVlTRVRTX1NJWkU7XG4gXHR9IGVsc2Uge1xuLVx0XHRydHc4OV9lcnIocnR3ZGV2LCBcIltFUlJdIE1TUyBLZXkgUG9vbCBSZW1hcCBUYWJsZSBGb3JtYXQgVW5zdXBwb3J0OiVYXFxuXCIsXG4rXHRcdHJ0dzg5X2VycihydHdkZXYsIFwiW0VSUl0gTVNTIEtleSBQb29sIFJlbWFwIFRhYmxlIEZvcm1hdCBVbnN1cHBvcnRlZDolWFxcblwiLFxuIFx0XHRcdCAgbXNzX2hkci1cdTAwM2VybXBmbXQpO1xuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbkBAIC0xMTIxNCw3ICsxMTIxNCw3IEBAIGludCBydHc4OV9md19oMmNfd293X3JlcXVlc3RfYW9hYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4gXG4gXHRza2JfcHV0KHNrYiwgbGVuKTtcbiBcbi1cdC8qIFRoaXMgSDJDIG9ubHkgbm9maXR5IGZpcm13YXJlIHRvIGdlbmVyYXRlIEFPQUMgcmVwb3J0IEMySCxcbitcdC8qIFRoaXMgSDJDIG9ubHkgbm90aWZ5IGZpcm13YXJlIHRvIGdlbmVyYXRlIEFPQUMgcmVwb3J0IEMySCxcbiBcdCAqIG5vIG5lZWQgYW55IHBhcmFtZXRlci5cbiBcdCAqL1xuIFx0cnR3ODlfaDJjX3BrdF9zZXRfaGRyKHJ0d2Rldiwgc2tiLCBGV0NNRF9UWVBFX0gyQyxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xuaW5kZXggYzc4MTA3ZTkyMjA2My4uNDNiMzU1MmY1YTk2YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmNcbkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBydHc4OV9waHlfcmFfdXBkYXRlX3N0YV9saW5rKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcdFx0cmEtXHUwMDNldXBkX2J3X25zc19tYXNrID0gMTtcbiBcbiBcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JBLFxuLVx0XHQgICAgXCJyYSB1cGRhdDogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcIixcbitcdFx0ICAgIFwicmEgdXBkYXRlOiBtYWNpZCA9ICVkLCBidyA9ICVkLCBuc3MgPSAlZCwgZ2kgPSAlZCAlZFwiLFxuIFx0XHQgICAgcmEtXHUwMDNlbWFjaWQsXG4gXHRcdCAgICByYS1cdTAwM2Vid19jYXAsXG4gXHRcdCAgICByYS1cdTAwM2Vzc19udW0sXG5AQCAtNjU5LDcgKzY1OSw3IEBAIHZvaWQgX19ydHc4OV9waHlfcmF0ZV9wYXR0ZXJuX3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4gXHRcdFx0XHRcdCAgMCwgdHJ1ZSkpXG4gXHRcdFx0Z290byBvdXQ7XG4gXG4tXHQvKiBsYWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kXG4rXHQvKiBsZWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kXG4gXHQgKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBiYXNpYyByYXRlIGZvciBpZWVlODAyMTFfc2V0X2JpdHJhdGVfbWFzayxcbiBcdCAqIHNvIHRoZSBkZWNpc2lvbiBqdXN0IGRlcGVuZHMgb24gaWYgYWxsIGJpdHJhdGVzIGFyZSBzZXQgb3Igbm90LlxuIFx0ICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNi4yNzE4OTY5MzRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo5NTE3OTk1NjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFN1YnRsZSBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGRpZmYuIEZpcnN0LCBhIHF1aWNrIG92ZXJ2aWV3OiB3ZSdyZSBsb29raW5nIGF0IHNvbWUgYWRqdXN0bWVudHMgdG8gdGhlIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgcnR3ODlgIGRpcmVjdG9yeS4gSXQncyBhIHNtYWxsIHBhdGNoLCBidXQgd2UgbmVlZCB0byBlbnN1cmUgZXZlcnl0aGluZydzIGNsZWFuLlxuXG5JJ20gc2VlaW5nIGNoYW5nZXMgaW4gYGNvcmUuaGAsIGBmdy5jYCwgYW5kIGBwaHkuY2AuIFRoZSBmaXJzdCBjaGFuZ2UsIGEgc2ltcGxlIHR5cG8gY29ycmVjdGlvbiwgaXMgdGhlIG1vc3Qgb2J2aW91cy4gUmVwbGFjaW5nIGBtb25pdGVyYCB3aXRoIGBtb25pdG9yYCBpbiBgY29yZS5oYC4gIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBzdHJ1Y3QgbWVtYmVyIGlzbid0IHJlZmVyZW5jZWQgYW55d2hlcmUgdXNpbmcgdGhlIGluY29ycmVjdCBzcGVsbGluZy4gSXQncyBnb29kIHByYWN0aWNlIHRvIGdyZXAgZm9yIGBtb25pdGVyYCB3aXRoaW4gdGhlIGNvZGViYXNlLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IG5vIG9uZSBpcyBpbmFkdmVydGVudGx5IHVzaW5nIGl0LlxuXG5Nb3Zpbmcgb24sIHRoZSBvdGhlciBjaGFuZ2VzIGFyZSBtaW5vciBjb21tZW50IHR5cG8gZml4ZXMuICBJbiBgZncuY2AsIHdlIHNlZSBhIHN0cmluZyBjb3JyZWN0aW9uIGFuZCBpbiB0aGUgc2FtZSBmaWxlLCB0aGUgY29ycmVjdGlvbiBvZiBgbm9maXR5YCB0byBgbm90aWZ5YC4gIFNhbWUgZm9yIHRoZSBgcGh5LmNgIHdpdGggdGhlIGByYSB1cGRhdGAgdG8gYHJhIHVwZGF0ZWAgYW5kIGBsYWdhY3lgIHRvIGBsZWdhY3lgIHR5cG8gZml4ZXMuICBUaGVzZSBhcmUgZWFzeSwgYnV0IGl0J3MgaW1wb3J0YW50IHRvIGtlZXAgdGhlIGNvZGUgYmFzZSBjbGVhbiBhbmQgcmVhZGFibGUuXG5cblVsdGltYXRlbHksIHRoZXNlIHNlZW0gbGlrZSBtaW5vciBjb3NtZXRpYyBmaXhlcy4gIEhvd2V2ZXIsIHRoYXQgc3BlbGxpbmcgY29ycmVjdGlvbiByZXF1aXJlcyBhIHF1aWNrIGdyZXAgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIGVuc3VyZSBubyBvbGQgcmVmZXJlbmNlcyBvciBidWdzIGFyZSBoaWRpbmcgaW4gcGxhaW4gc2lnaHQuIFRoYXQncyB0aGUgcHJpb3JpdHkgbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTUzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6NDI6NDUuNzg5ODk1Mzk1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMjMxNzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIihtb25pdGVyfG1vbml0b3IpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTIxPXZvaWQgcnR3ODlfY2hpcF9yZmtfY2hhbm5lbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01MjQtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1MjU6XFx0Ym9vbCBtb24gPSAhIXJ0d2Rldi1cXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyNi1cXHRib29sIHByZWhkbF9saW5rID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01NTI9c3RhdGljIHZvaWQgcnR3ODlfY2hpcF9yZmtfY2hhbm5lbF9mb3JfcHVyZV9tb25fdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTU1OlxcdHN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZiA9IHJ0d2Rldi1cXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1Ni1cXHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9Mzc5Mj1zdGF0aWMgdm9pZCBydHc4OV9jb3JlX3VwZGF0ZV9yYWRpb3RhcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0zODAxLVxcdC8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MzgwMjpcXHQgKiBBdCB0cmFuc2llbnQgYWRkaW5nIGEgbW9uaXRvciB2aWYgZnJvbSBhIHN0YXRpb24gdmlmLCB0aGUgaGVhZHJvb21cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0zODAzLVxcdCAqIG1pZ2h0IG5vdCBpbmNsdWRlIHJhZGlvdGFwLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTUwMz1zdGF0aWMgdm9pZCBydHc4OV90cmFja193b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTUyOS1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTUzMDpcXHRydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1MzEtXFx0cnR3ODlfY29yZV9iY25fdHJhY2socnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTMyLVxcdHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTUzMzpcXHRydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2socnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTM0LVxcdHJ0dzg5X3BoeV9kaWcocnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU4MTg9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzY29ubmVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4MjY6XFx0cnR3ODlfbWFjX2JmX21vbml0b3JfY2FsYyhydHdkZXYsIHJ0d3N0YV9saW5rLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODI3LVxcdHJ0dzg5X21hY19iZl9kaXNhc3NvYyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01ODc4PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU5MzYtXFx0cnR3ODlfbWFjX2JmX2Fzc29jKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1OTM3OlxcdHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGMocnR3ZGV2LCBydHdzdGFfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU5MzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xODk5PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwNi1cXHR1MTYgbWVzaDogMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTA3OlxcdHUxNiBtb25pdG9yOiAxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MDgtXFx0dTE2IHAycF9kZXZpY2U6IDE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD03MDY1PXN0cnVjdCBydHc4OV9uaG1fcmVwb3J0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTcwNzMtI2RlZmluZSBSVFc4OV9JRlNfQ0xNX05VTSA0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6NzA3NDpzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtNzA3NS1cXHR1OCBjY3hfd2F0Y2hkb2dfcmVzdWx0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9NzU1MT1zdHJ1Y3QgcnR3ODlfZGV2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2NDctXFx0XFx0ZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6NzY0ODpcXHRcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyBlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC03NjQ5LVxcdFxcdHN0cnVjdCBydHc4OV9kaWdfaW5mbyBkaWc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC03NjkyLVxcdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzICpkZWJ1Z2ZzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjc2OTM6XFx0c3RydWN0IHJ0dzg5X3ZpZiAqcHVyZV9tb25pdG9yX21vZGVfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2OTQtXFx0c3RydWN0IHJ0dzg5X2xlZCBsZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NzA9c3RydWN0IHJ0dzg5X2RlYnVnZnMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTk2LVxcdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgZGlhZ19yZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6OTc6XFx0c3RydWN0IHJ0dzg5X2RlYnVnZnNfcHJpdiBtb25pdG9yX29wdHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTk4LX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTUwOT1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NTEwOnJ0dzg5X2RlYnVnX3ByaXZfbW9uaXRvcl9vcHRzX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTU1MTEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3ODlfZGVidWdmc19wcml2ICpkZWJ1Z2ZzX3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTUzMz1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NTM0OnJ0dzg5X2RlYnVnX3ByaXZfbW9uaXRvcl9vcHRzX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTU1MzUtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3ODlfZGVidWdmc19wcml2ICpkZWJ1Z2ZzX3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTU5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2RlYnVnZnMgcnR3ODlfZGVidWdmc190ZW1wbCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy01NjIxLVxcdC5kaWFnX3JmID0gcnR3ODlfZGVidWdfcHJpdl9zZXRfYW5kX2dldChkaWFnX3JmLCBSV0xPQ0spLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NjIyOlxcdC5tb25pdG9yX29wdHMgPSBydHc4OV9kZWJ1Z19wcml2X3NldF9hbmRfZ2V0KG1vbml0b3Jfb3B0cywgUldMT0NLKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTYyMy19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTU2NzE9dm9pZCBydHc4OV9kZWJ1Z2ZzX2FkZF9zZWMyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IGRlbnRyeSAqZGVidWdmc190b3BkaXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTY3OS1cXHRydHc4OV9kZWJ1Z2ZzX2FkZF9ydyhkaWFnX3JmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NTY4MDpcXHRydHc4OV9kZWJ1Z2ZzX2FkZF9ydyhtb25pdG9yX29wdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy01NjgxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM9NjkxND12b2lkIHJ0dzg5X21hY19iZl9zZXRfZ2lkX3RhYmxlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NTU6c3RydWN0IHJ0dzg5X21hY19iZl9tb25pdG9yX2l0ZXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTU2LVxcdHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM9Njk2MT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NjI6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5NjMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk2NDpcXHRzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhICppdGVyX2RhdGEgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk2NTpcXHRcXHRcXHRcXHQoc3RydWN0IHJ0dzg5X21hY19iZl9tb25pdG9yX2l0ZXJfZGF0YSAqKWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTY2LVxcdHN0cnVjdCBydHc4OV9zdGFfbGluayAqZG93bl9ydHdzdGFfbGluayA9IGl0ZXJfZGF0YS1cXHUwMDNlZG93bl9ydHdzdGFfbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5OTM6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5OTQtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5OTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk5NzpcXHRzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy03MDAyLVxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhydHdkZXYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6NzAwMzpcXHRcXHRcXHRcXHRcXHQgIHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGNfaXRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMDQtXFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2ZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo3MDEzOnZvaWQgX3J0dzg5X21hY19iZl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaD0xNTUwPXZvaWQgcnR3ODlfbWFjX2JmX3NldF9naWRfdGFibGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU1MS1cXHRcXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oOjE1NTI6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NTMtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTU0LVxcdFxcdFxcdCAgICAgICBib29sIGRpc2Nvbm5lY3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg6MTU1NTp2b2lkIF9ydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU1Ni12b2lkIHJ0dzg5X21hY19iZmVlX2N0cmwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBtYWNfaWR4LCBib29sIGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg9MTU2MT1pbnQgcnR3ODlfbWFjX3NldF9tYWNpZF9wYXVzZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IG1hY2lkLCBib29sIHBhdXNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaDoxNTYzOnN0YXRpYyBpbmxpbmUgdm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTY0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oOjE1NzE6XFx0X3J0dzg5X21hY19iZl9tb25pdG9yX3RyYWNrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTcyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYz0xNjk9c3RhdGljIGludCBydHc4OV9vcHNfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jOjIyNzpcXHRydHdkZXYtXFx1MDAzZXB1cmVfbW9uaXRvcl9tb2RlX3ZpZiA9IHZpZi1cXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SID9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMjI4LVxcdFxcdFxcdFxcdFxcdHJ0d3ZpZiA6IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM9MjQzPXN0YXRpYyB2b2lkIHJ0dzg5X29wc19yZW1vdmVfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTI3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM6Mjc2OlxcdHJ0d2Rldi1cXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMjc3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jPTE5NjY9c3RhdGljIGludCBydHc4OV9vcHNfZ2V0X3N1cnZleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IGlkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYy0xOTgxLVxcdHJ0dzg5X2Zvcl9lYWNoX2FjdGl2ZV9iYihydHdkZXYsIGJiKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jOjE5ODI6XFx0XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTE5ODMtXFx0XFx0c3RydWN0IHJ0dzg5X25obV9yZXBvcnQgKnJwdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjI2OD1zdGF0aWMgdTE2IHJ0dzg5X3BoeV9jY3hfdXNfdG9faWR4KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2MjcxOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjI3Nj1zdGF0aWMgdTMyIHJ0dzg5X3BoeV9jY3hfaWR4X3RvX3VzKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2Mjc5OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjI4ND1zdGF0aWMgdm9pZCBydHc4OV9waHlfY2N4X3RvcF9zZXR0aW5nX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Mjg3LVxcdGNvbnN0IHN0cnVjdCBydHc4OV9waHlfZ2VuX2RlZiAqcGh5ID0gcnR3ZGV2LVxcdTAwM2VjaGlwLVxcdTAwM2VwaHlfZGVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjI4ODpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYyODktXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXFx1MDAzZWNjeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjMwNj1zdGF0aWMgdTE2IHJ0dzg5X3BoeV9jY3hfZ2V0X3JlcG9ydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYzMDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjMxMDpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYzMTEtXFx0dTMyIG51bWVyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjM1MD1zdGF0aWMgdm9pZCBydHc4OV9waHlfY2N4X3JhY2luZ19yZWxlYXNlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM1Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2MzUzOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjM2Mz1zdGF0aWMgYm9vbCBydHc4OV9waHlfaWZzX2NsbV90aF91cGRhdGVfY2hlY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzY2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYzNjc6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzY4LVxcdGJvb2wgaXNfdXBkYXRlID0gZW52LVxcdTAwM2VpZnNfY2xtX2FwcCAhPSBwYXJhLVxcdTAwM2VpZnNfY2xtX2FwcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjQxOD1zdGF0aWMgdm9pZCBydHc4OV9waHlfaWZzX2NsbV9zZXRfdGhfcmVnKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQyMS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY0MjI6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NDIzLVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVxcdTAwM2VjY3g7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY0NTA9c3RhdGljIHZvaWQgX19ydHc4OV9waHlfbmhtX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY0NTMtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NDU0OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ1NS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NDc4PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9pZnNfY2xtX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY0ODEtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NDgyOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ4My1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NTA1PXN0YXRpYyBpbnQgcnR3ODlfcGh5X2NjeF9yYWNpbmdfY3RybChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY1MDgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjUwOTpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY1MTAtXFx0aW50IHJldCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY1Mzg9c3RhdGljIHZvaWQgcnR3ODlfcGh5X2NjeF90cmlnZ2VyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjU0MS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY1NDI6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTQzLVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVxcdTAwM2VjY3g7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY1NjQ9c3RhdGljIHZvaWQgcnR3ODlfcGh5X2lmc19jbG1fZ2V0X3V0aWxpdHkoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTY2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY1Njc6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTY4LVxcdHU4IGkgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NjMwPXN0YXRpYyB1OCBydHc4OV9uaG1fd2VpZ2h0ZWRfYXZnKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X2JiX2N0eCAqYmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NjMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY2MzI6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NjMzLVxcdHU4IG5obV93ZWlnaHRbUlRXODlfTkhNX1JQVF9OVU1dO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NjcyPXN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X25obV9nZXRfcmVzdWx0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjY3Ni1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY2Nzc6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Njc4LVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXFx1MDAzZWNoaXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY3NDk9c3RhdGljIGJvb2wgcnR3ODlfcGh5X2lmc19jbG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY3NTItXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NzUzOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjc1NC1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02ODUwPXN0YXRpYyBib29sIHJ0dzg5X3BoeV9lZGNjYV9jbG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY4NTMtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2ODU0OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg1NS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02ODczPXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9uaG1fdGhfdXBkYXRlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg3NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2ODc2OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg3Ny1cXHRzdGF0aWMgY29uc3QgdTggbmhtX3RoXzExa1tSVFc4OV9OSE1fUlBUX05VTV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY4OTk9c3RhdGljIGludCBydHc4OV9waHlfbmhtX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY5MDMtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2OTA0OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjkwNS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02OTc0PXN0YXRpYyBpbnQgcnR3ODlfcGh5X2lmc19jbG1fc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjk3OC1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY5Nzk6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTgwLVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVxcdTAwM2VjY3g7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MDE5OnN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjAtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzAyMjpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjMtXFx0c3RydWN0IHJ0dzg5X2NjeF9wYXJhX2luZm8gcGFyYSA9IHt9O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MDMzLVxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1BIWV9UUkFDSyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcwMzQ6XFx0XFx0ICAgIFxcXCJCQi0lZCBlbnZfbW9uaXRvciB0cmFja1xcXFxuXFxcIiwgYmItXFx1MDAzZXBoeV9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAzNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzA1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcwNTg6dm9pZCBydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzA1OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNjItXFx0cnR3ODlfZm9yX2VhY2hfYWN0aXZlX2JiKHJ0d2RldiwgYmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MDYzOlxcdFxcdF9fcnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHJ0d2RldiwgYmIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzA2NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTcxNTc9c3RhdGljIHZvaWQgX19ydHc4OV9waHlzdHNfcGFyc2luZ19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2MS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LVxcdTAwM2VjaGlwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE2MjpcXHR1MzIgbW9uaXRvcl9tb2RlX211X2llcyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTYzOlxcdHUzMiBtb25pdG9yX21vZGVfc3VfaWVzID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcxNjQtXFx0dTMyIHZhbDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2Ny1cXHRpZiAocnR3ZGV2LVxcdTAwM2Vody1cXHUwMDNlY29uZi5mbGFncyBcXHUwMDI2IElFRUU4MDIxMV9DT05GX01PTklUT1IpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcxNjg6XFx0XFx0bW9uaXRvcl9tb2RlX211X2llcyA9IEJJVChSVFc4OV9QSFlTVFNfSUUwOV9GVFJfMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTY5LVxcdFxcdGlmIChwaHktXFx1MDAzZXBoeXN0X2dlbiBcXHUwMDNjIDIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTcwOlxcdFxcdFxcdG1vbml0b3JfbW9kZV9tdV9pZXMgfD0gQklUKFJUVzg5X1BIWVNUU19JRTEwX0ZUUl9QTENQX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE3MjpcXHRcXHRtb25pdG9yX21vZGVfc3VfaWVzID0gQklUKFJUVzg5X1BIWVNUU19JRTA5X0ZUUl8wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcxNzMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTg3LVxcdFxcdFxcdHZhbCB8PSBCSVQoUlRXODlfUEhZU1RTX0lFMTNfRExfTVVfREVGKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcxODg6XFx0XFx0XFx0dmFsIHw9IG1vbml0b3JfbW9kZV9tdV9pZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTg5LVxcdFxcdH0gZWxzZSBpZiAoaSA9PSBSVFc4OV9UUklHX0JBU0VfUFBEVSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MjAyLVxcdFxcdGlmIChpID09IFJUVzg5X0hFX1BLVCB8fCBpID09IFJUVzg5X1ZIVF9QS1QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MjAzOlxcdFxcdFxcdHZhbCB8PSBtb25pdG9yX21vZGVfc3VfaWVzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzIwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NzQ1OT1zdGF0aWMgdm9pZCBydHc4OV9waHlfZGlnX2lnaV9vZmZzZXRfYnlfZW52KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzQ2Mi1cXHRzdHJ1Y3QgcnR3ODlfZGlnX2luZm8gKmRpZyA9IFxcdTAwMjZiYi1cXHUwMDNlZGlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzQ2MzpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTc0NjQtXFx0ZW51bSBydHc4OV9kaWdfbm9pc3lfbGV2ZWwgbm9pc3lfbHY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTgxNTQ9dm9pZCBydHc4OV9waHlfYW50ZGl2X3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgxNzU6c3RhdGljIHZvaWQgX19ydHc4OV9waHlfZW52X21vbml0b3JfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc2LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE3OC1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19QSFlfVFJBQ0ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTc5OlxcdFxcdCAgICBcXFwiQkItJWQgZW52X21vbml0b3IgaW5pdFxcXFxuXFxcIiwgYmItXFx1MDAzZXBoeV9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgxODU6c3RhdGljIHZvaWQgcnR3ODlfcGh5X2Vudl9tb25pdG9yX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgxODktXFx0cnR3ODlfZm9yX2VhY2hfY2FwYWJfYmIocnR3ZGV2LCBiYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgxOTA6XFx0XFx0X19ydHc4OV9waHlfZW52X21vbml0b3JfaW5pdChydHdkZXYsIGJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgxOTEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MjM1PXZvaWQgcnR3ODlfcGh5X2RtX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjQxLVxcdHJ0dzg5X3BoeV9kaWFnX2luaXQocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgyNDI6XFx0cnR3ODlfcGh5X2Vudl9tb25pdG9yX2luaXQocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNDMtXFx0cnR3ODlfcGh5X25obV9zZXR0aW5nX2luaXQocnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODI2Mz12b2lkIHJ0dzg5X3BoeV9kbV9yZWluaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODI2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MjY1OlxcdHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjY2LVxcdHJ0dzg5X3BoeXN0c19wYXJzaW5nX2luaXQocnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODI2OT1zdGF0aWMgdm9pZCBfX3J0dzg5X3BoeV9kbV9pbml0X2RhdGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNzAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI3MTpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNzItXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODgyNT1zdGF0aWMgdm9pZCBydHc4OV9waHlfZWRjY2FfZGlhZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9iYl9jdHggKmJiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04ODI4LSNkZWZpbmUgUlRXODlfRElBR19CQl9FRENDQV9UWF9USCAxMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODgyOTpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTg4MzAtXFx0c3RydWN0IHJ0dzg5X3RyYWZmaWNfc3RhdHMgKnN0YXRzID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNlc3RhdHM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5oPTIwMT1lbnVtIHJ0dzg5X3BoeV9jMmhfY2xhc3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaC0yMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaDoyMTI6ZW51bSBydHc4OV9lbnZfbW9uaXRvcl9yZXN1bHRfbGV2ZWwge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmgtMjEzLVxcdFJUVzg5X1BIWV9FTlZfTU9OX0NDWF9GQUlMID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5Lmg9MTIwND12b2lkIHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaDoxMjA1OnZvaWQgcnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaC0xMjA2LXZvaWQgcnR3ODlfcGh5X3NldF9waHlfcmVncyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBhZGRyLCB1MzIgbWFzayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvc2FyLmM9NjI4PXN0YXRpYyB2b2lkIHJ0dzg5X3Rhc19oaXN0b3J5X3VwZGF0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3Nhci5jLTYzMC1cXHRzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYiA9IHJ0dzg5X2dldF9iYl9jdHgocnR3ZGV2LCBSVFc4OV9QSFlfMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYzo2MzE6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYy02MzItXFx0c3RydWN0IHJ0dzg5X3Rhc19pbmZvICp0YXMgPSBcXHUwMDI2cnR3ZGV2LVxcdTAwM2V0YXM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjQ1Ljg1MTEzNTY4NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIxNjM0ODY2NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIHRoZSBSb2xlIEluZm8qKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHdoYXQncyBnb2luZyBvbiB3aXRoIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgLiBUaGF0J3MgYSBjcml0aWNhbCBiaXQgb2YgaW5mb3JtYXRpb24sIGxpa2VseSByZWxhdGVkIHRvIHRoZSBCbHVldG9vdGgvV2ktRmkgcm9sZSBtYW5hZ2VtZW50LiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgcHJvYmFibHkgYSBiaXQgcG9zaXRpb24gZGVmaW5pdGlvbiB3aXRoaW4gYSBsYXJnZXIgc3RydWN0dXJlLiBUbyBnZXQgYSBwcmVjaXNlIHVuZGVyc3RhbmRpbmcgb2YgaXRzIG1lYW5pbmcgYW5kIGNvbnRleHQsIEknbGwgbmVlZCB0byB1c2UgYHJlYWQtZmlsZWAgYW5kIGxvY2F0ZSBpdCBpbiBgY29yZS5oYC4gVGhhdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IOKAkyBgY29yZS5oYCB1c3VhbGx5IGhvbGRzIHRoZSBmdW5kYW1lbnRhbCBkZWZpbml0aW9ucyBmb3IgdGhpcyBraW5kIG9mIGxvdy1sZXZlbCBpbnRlcmFjdGlvbi4gT25jZSBJIGhhdmUgdGhlIGZpbGUgbG9hZGVkLCBJIGNhbiB0cmFjZSB0aGUgc3RydWN0dXJlIGRlZmluaXRpb24gYW5kIHNlZSBwcmVjaXNlbHkgd2hhdCBvdGhlciBiaXRzIGFyZSByZWxhdGVkIHRvIHRoYXQgc3BlY2lmaWMgcm9sZSBzZXR0aW5nLiBVbmRlcnN0YW5kaW5nIHRoaXMgcmVsYXRpb25zaGlwIGlzIGtleSB0byBkZWJ1Z2dpbmcgb3IgbW9kaWZ5aW5nIGFueSByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuIFRoaXMgd2lsbCBob3BlZnVsbHkgcHJvdmlkZSB0aGUgY29udGV4dCBJIG5lZWQgdG8gbW92ZSBmb3J3YXJkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTY4MSwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjQ4LjAxNDYyNTE5N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1ODQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaFwiLFxuICBcIkZpcnN0TGluZVwiOiAxODk4LFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxODk4OlxcdFxcbjE4OTk6XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7XFxuMTkwMDpcXHRcXHR1MTYgbm9uZTogMTtcXG4xOTAxOlxcdFxcdHUxNiBzdGF0aW9uOiAxO1xcbjE5MDI6XFx0XFx0dTE2IGFwOiAxO1xcbjE5MDM6XFx0XFx0dTE2IHZhcDogMTtcXG4xOTA0OlxcdFxcdHUxNiBhZGhvYzogMTtcXG4xOTA1OlxcdFxcdHUxNiBhZGhvY19tYXN0ZXI6IDE7XFxuMTkwNjpcXHRcXHR1MTYgbWVzaDogMTtcXG4xOTA3OlxcdFxcdHUxNiBtb25pdG9yOiAxO1xcbjE5MDg6XFx0XFx0dTE2IHAycF9kZXZpY2U6IDE7XFxuMTkwOTpcXHRcXHR1MTYgcDJwX2djOiAxO1xcbjE5MTA6XFx0XFx0dTE2IHAycF9nbzogMTtcXG4xOTExOlxcdFxcdHUxNiBuYW46IDE7XFxuMTkxMjpcXHR9O1xcbjE5MTM6XFx0XFxuMTkxNDpcXHRzdHJ1Y3QgcnR3ODlfYnRjX2VzbG90X2N0cmwge1xcbjE5MTU6XFx0XFx0dTggZW47ICAvKiAxOiB0b2dnbGUgdHgtZmxvdy1jdHJsIChudWxsIDAvMSksIHR4LXBhdXNlIGJ5IEV4dC1zbG90ICovXFxuMTkxNjpcXHRcXHR1OCBudWxsdHhfcm9sZTE7XFxuMTkxNzpcXHRcXHR1OCBudWxsdHhfcm9sZTI7XFxuMTkxODpcXHRcXHR1OCBudWxsdHhfcHJlX3RpbWU7IC8qIG51bGwtdHggdGltZSBwcmlvciB0byBFQlQtc3RhcnQgKGZyb20gRTJHLWVuZCkgKi9cXG4xOTE5OlxcdH07XFxuMTkyMDpcXHRcXG4xOTIxOlxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHtcXG4xOTIyOlxcdFxcdHUxNiB2YWw7XFxuMTkyMzpcXHRcXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zIHJvbGU7XFxuMTkyNDpcXHR9O1xcbjE5MjU6XFx0XFxuMTkyNjpcXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MCB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuMTkyNzpcXHRcXHR1OCBjb25uZWN0X2NudDtcXG4xOTI4OlxcdFxcdHU4IGxpbmtfbW9kZTtcXG4xOTI5OlxcdFxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbjE5MzA6XFx0XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZSBhY3RpdmVfcm9sZVtSVFc4OV9QT1JUX05VTV07XFxuMTkzMTpcXHR9O1xcbjE5MzI6XFx0XFxuMTkzMzpcXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MSB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuMTkzNDpcXHRcXHR1OCBjb25uZWN0X2NudDtcXG4xOTM1OlxcdFxcdHU4IGxpbmtfbW9kZTtcXG4xOTM2OlxcdFxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbjE5Mzc6XFx0XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MSBhY3RpdmVfcm9sZV92MVtSVFc4OV9QT1JUX05VTV07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjQ4LjAxNDg4NjA1N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIyMjU0MzIxNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBWYXJpYWJsZSBVc2FnZSBpbiB0aGUgQ29kZWJhc2UqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGVzZSB2YXJpYWJsZXMsIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgIGFuZCBgcm9sZV9tYXBgLCBhcmUgYWN0dWFsbHkgYmVpbmcgdXNlZC4gSXQncyBhIGZhaXJseSBzdGFuZGFyZCBkZWJ1Z2dpbmcgc3RlcCwgcmVhbGx5LiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGVpciBpbXBhY3QgYW5kLCBwb3RlbnRpYWxseSwgaWYgdGhleSBjYW4gYmUgb3B0aW1pemVkIG9yIGlmIHRoZXJlIGFyZSB1bmV4cGVjdGVkIGludGVyYWN0aW9ucyBpbnZvbHZpbmcgdGhlbS4gSSdsbCBuZWVkIHRvIHJ1biBhIHF1aWNrIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlIHRvIGlkZW50aWZ5IGFsbCB0aGUgaW5zdGFuY2VzIHdoZXJlIHRoZXkncmUgcmVmZXJlbmNlZC4gVGhhdCB3aWxsIHByb3ZpZGUgbWUgd2l0aCBhIGxpc3Qgb2YgY29udGV4dHMgaW4gd2hpY2ggdGhleSBwbGF5IGEgcm9sZSwgdGhlaXIgc2NvcGUsIGFuZCBob3cgdGhleSBjb250cmlidXRlIHRvIHRoZSBzeXN0ZW0ncyBiZWhhdmlvci4gVGltZSB0byBkZWx2ZSBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgd2hhdCBJIGNhbiBmaW5kIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjcwNCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6NDI6NTAuMjQwMzIxNDA5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMjUxNzk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJvbGVfbWFwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM9NDc2MT12b2lkIHJ0dzg5X2J0Y19zZXRfcG9saWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTE2IHBvbGljeV90eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNDkzOS1cXHRcXHQqdCA9IHRfZGVmW0NYVERfUEZJWF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NDk0MDpcXHRcXHRpZiAoYnRjLVxcdTAwM2VjeC53bC5yb2xlX2luZm8ucm9sZV9tYXAgIFxcdTAwMjYgQklUKFJUVzg5X1dJRklfUk9MRV9BUCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNDk0MS1cXHRcXHRcXHRfdGRtYV9zZXRfZmxjdHJsKGJ0YywgQ1hGTENfUU9TTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYz03NTI0PXN0YXRpYyB2b2lkIF9tb2RpZnlfcm9sZV9saW5rX21vZGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBod19iYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzMC1cXHR1OCAqbGlua19tb2RlID0gXFx1MDAyNndsX3JpbmZvLVxcdTAwM2VsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzUzMTpcXHR1MzIgcm9sZV9tYXAgPSB3bF9yaW5mby1cXHUwMDNlcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzMi1cXHR1OCBub2FfZXhpc3QgPSB3bC1cXHUwMDNlbm9hX2V4aXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzNi1cXHRcXHQqbGlua19tb2RlID0gd2xfcmluZm8tXFx1MDAzZWxpbmtfbW9kZV9oYjE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzUzNzpcXHRcXHRyb2xlX21hcCA9IHdsX3JpbmZvLVxcdTAwM2Vyb2xlX21hcF9oYjE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzOC1cXHRcXHRnb19jbGVpbnRfZXhpc3QgPSB3bC1cXHUwMDNlZ29fY2xpZW50X2V4aXN0X2hiMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NDEtXFx0LyogaWYgbm8gY2xpZW50X2pvaW5lZCwgZG9uJ3QgY2FyZSBQMlAtR08vQVAgcm9sZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NDI6XFx0aWYgKCgocm9sZV9tYXAgXFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX1AyUF9HTykpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzU0MzpcXHQgICAgICAocm9sZV9tYXAgXFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX0FQKSkpIFxcdTAwMjZcXHUwMDI2ICFnb19jbGVpbnRfZXhpc3QpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTQ0LVxcdFxcdGlmICgqbGlua19tb2RlID09IEJUQ19XTElOS19TQ0MpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NTUtXFx0ICAgICAqbGlua19tb2RlID09IEJUQ19XTElOS19EQl9NQ0MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTU2OlxcdFxcdGlmICgocm9sZV9tYXAgXFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX1AyUF9HTykpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzU1NzpcXHRcXHQgICAgIChyb2xlX21hcCBcXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfQVApKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NTgtXFx0XFx0XFx0aWYgKG5vYV9leGlzdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NjEtXFx0XFx0XFx0XFx0bXJvbGUgPSBCVENfV0xNUk9MRV9TVEFfR087XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzU2MjpcXHRcXHR9IGVsc2UgaWYgKHJvbGVfbWFwIFxcdTAwMjYgQklUKFJUVzg5X1dJRklfUk9MRV9QMlBfQ0xJRU5UKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NjMtXFx0XFx0XFx0aWYgKG5vYV9leGlzdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTc1ODc9c3RhdGljIHZvaWQgX3VwZGF0ZV93bF9pbmZvKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X2J0Y193bF9saW5rX2luZm8gKndsX2xpbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzU5OC1cXHR1OCBpLCBsaW5rX21vZGVfb3JpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1OTk6XFx0dTMyIHJvbGVfbWFwID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NjAwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NjQ3OlxcdFxcdHJvbGVfbWFwIHw9IEJJVChybGluay1cXHUwMDNlcm9sZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2NzktXFx0XFx0d2xfcmluZm8tXFx1MDAzZXAycF9leGlzdCA9IHAycF9leGlzdDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NjgwOlxcdFxcdHdsX3JpbmZvLVxcdTAwM2Vyb2xlX21hcCA9IHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODEtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODctXFx0XFx0d2xfcmluZm8tXFx1MDAzZXAycF9leGlzdF9oYjEgPSBwMnBfZXhpc3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzY4ODpcXHRcXHR3bF9yaW5mby1cXHUwMDNlcm9sZV9tYXBfaGIxID0gcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY4OS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTI2PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YwIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MjgtXFx0dTggbGlua19tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5Mjk6XFx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzMC1cXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlIGFjdGl2ZV9yb2xlW1JUVzg5X1BPUlRfTlVNXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MzM9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzNS1cXHR1OCBsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkzNjpcXHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM3LVxcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTk0OD1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MiB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTUwLVxcdHU4IGxpbmtfbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTUxOlxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTItXFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MiBhY3RpdmVfcm9sZV92MltSVFc4OV9QT1JUX05VTV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0yMDAzPXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3Y3IHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MjAxMTpcXHRfX2xlMzIgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAxMi1cXHRfX2xlMzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwMTk9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjggeyAvKiBIMkMgaW5mbywgc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MjAzMjpcXHRfX2xlMzIgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAzMy1cXHRfX2xlMzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwMzc9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEwIHsgLyogSDJDIGluZm8sIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0yMDQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwNDk6XFx0X19sZTMyIHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwNTA6XFx0X19sZTMyIHJvbGVfbWFwX2hiMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0yMDUxLVxcdF9fbGUzMiBtcm9sZV90eXBlOyAvKiBidGNfd2xfbXJvbGVfdHlwZTogWzMxOjE2XTpiYW5kMSwgWzE1OjBdOmJhbmQwICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0yMDg2PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvIHsgLyogTG9naWMgZHluYW1pYyB1c2luZyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjA5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDk4OlxcdHUzMiByb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDk5OlxcdHUzMiByb2xlX21hcF9oYjE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjEwMC1cXHR1MzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGU6IFszMToxNl06YmFuZDEsIFsxNTowXTpiYW5kMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYwNTg9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MDY1LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYwNjY6XFx0dTMyIHJtYXAgPSByLVxcdTAwM2Vyb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjA2Ny1cXHR1OCBvZmZzZXQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYxNDA9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MTQ3LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYxNDg6XFx0dTMyIHJtYXAgPSByLVxcdTAwM2Vyb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjE0OS1cXHR1OCAqY21kLCBvZmZzZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9NjIyOT1pbnQgcnR3ODlfZndfaDJjX2N4ZHJ2X3JvbGVfdjEwMShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjI1My1cXHRoMmMtXFx1MDAzZWxpbmtfbW9kZSA9IHJvbGVfaW5mby1cXHUwMDNlbGlua19tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2MjU0OlxcdGgyYy1cXHUwMDNlcm9sZV9tYXAgPSBjcHVfdG9fbGUxNihyb2xlX2luZm8tXFx1MDAzZXJvbGVfbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02MzE0PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjMyMS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2MzIyOlxcdHUzMiBybWFwID0gci1cXHUwMDNlcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTYzMjMtXFx0dTMyIGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02Mzk5PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92NyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjQ0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjQ0NDpcXHRybSA9IGNwdV90b19sZTMyKHItXFx1MDAzZXJvbGVfbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjQ0NTpcXHRtZW1jcHkoXFx1MDAyNmgyYy1cXHUwMDNlci5yb2xlX21hcCwgXFx1MDAyNnJtLCBzaXplb2YoaDJjLVxcdTAwM2VyLnJvbGVfbWFwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTY0NDYtXFx0aDJjLVxcdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVxcdTAwM2Vtcm9sZV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02NDcwPWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92OChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjUyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjUyMTpcXHRybSA9IGNwdV90b19sZTMyKHItXFx1MDAzZXJvbGVfbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjUyMjpcXHRtZW1jcHkoXFx1MDAyNmgyYy1cXHUwMDNlci5yb2xlX21hcCwgXFx1MDAyNnJtLCBzaXplb2YoaDJjLVxcdTAwM2VyLnJvbGVfbWFwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTY1MjMtXFx0aDJjLVxcdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVxcdTAwM2Vtcm9sZV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02NTQ0PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MTAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTY1OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTc6XFx0cm0gPSBjcHVfdG9fbGUzMihyLVxcdTAwM2Vyb2xlX21hcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTg6XFx0bWVtY3B5KFxcdTAwMjZoMmMtXFx1MDAzZXIucm9sZV9tYXAsIFxcdTAwMjZybSwgc2l6ZW9mKGgyYy1cXHUwMDNlci5yb2xlX21hcCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTk5OlxcdHJtID0gY3B1X3RvX2xlMzIoci1cXHUwMDNlcm9sZV9tYXBfaGIxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjYwMDpcXHRtZW1jcHkoXFx1MDAyNmgyYy1cXHUwMDNlci5yb2xlX21hcF9oYjEsIFxcdTAwMjZybSwgc2l6ZW9mKGgyYy1cXHUwMDNlci5yb2xlX21hcF9oYjEpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjYwMS1cXHRoMmMtXFx1MDAzZXIubXJvbGVfdHlwZSA9IGNwdV90b19sZTMyKHItXFx1MDAzZW1yb2xlX3R5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTI2NDk9c3RydWN0IHJ0dzg5X2gyY19jeHJvbGVfdjEwMSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtMjY1Mi1cXHR1OCBsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjI2NTM6XFx0X19sZTE2IHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC0yNjU0LVxcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEwMSBhY3Rfcm9sZVtSVFc4OV9QT1JUX05VTV07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjUwLjI5MDU3NzcyOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0Nzg5OTg3MDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGFuIGV4cGVydCBpbiB0aGlzIGFyZWE6XG5cbioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgRGF0YSBTdHJ1Y3R1cmUgVXNhZ2UqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHNjb3BlIG9mIHRoZXNlIHR3byB2YXJpYWJsZXMsIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcGAgYW5kIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgLiBJIHN1c3BlY3QgdGhlcmUgbWlnaHQgYmUgc29tZSBpbnRlcnBsYXkgYmV0d2VlbiB0aGVtLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZWUgaG93IHRoZXkgYXJlIGFjdHVhbGx5IGJlaW5nIHVzZWQgd2l0aGluIHRoZSBjb2RlYmFzZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhlc2Ugc3RydWN0dXJlcyBhcmUgZGVmaW5lZCwgaW5pdGlhbGl6ZWQsIGFuZCBhY2Nlc3NlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZWlyIHB1cnBvc2UuIEkgaW1tZWRpYXRlbHkgd2FudCB0byBjb25maXJtIGlmIHRoZSBsYXR0ZXIsIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgLCBpcyB1bmlxdWUgdG8gYSBzcGVjaWZpYyBhcmVhIG9yIGlmIGl0J3MgdXRpbGl6ZWQgbW9yZSBicm9hZGx5LiBUaGVuIEknbGwgZXhwYW5kIG15IHNlYXJjaC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIHBlcmZvcm0gYSB0YXJnZXRlZCBzZWFyY2guIEknbGwgdXNlIGBncmVwYCAob3IgbXkgcHJlZmVycmVkIHNlYXJjaCB0b29sKSBhbmQgbG9vayBmb3Igb2NjdXJyZW5jZXMgb2YgYHJvbGVfaW5mb19icG9zYCAqYW5kKiBgcm9sZV9pbmZvX21hcGAuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyB0aGVzZSBzdHJ1Y3R1cmVzIGFyZSBlbXBsb3llZC4gVGhpcyB3aWxsIGhlbHAgbWUgdHJhY2UgdGhlIGRhdGEgZmxvdyBhbmQgdW5kZXJzdGFuZCB0aGUgbG9naWMgYXJvdW5kIHRoZXNlIHZhcmlhYmxlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEzNjMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0Mjo1Mi43Njk1Nzk1NzdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNzY3NDE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIihyb2xlX2luZm9fYnBvc3xyb2xlX2luZm9fbWFwKVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE4ODI9c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92NyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xODk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE4OTk6c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwMC1cXHR1MTYgbm9uZTogMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MTQ9c3RydWN0IHJ0dzg5X2J0Y19lc2xvdF9jdHJsIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkyMTp1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyMi1cXHR1MTYgdmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5MjM6XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyByb2xlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MjQtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MjY9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjAgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyOC1cXHR1OCBsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkyOTpcXHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTMwLVxcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGUgYWN0aXZlX3JvbGVbUlRXODlfUE9SVF9OVU1dO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTkzMz1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MSB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM1LVxcdHU4IGxpbmtfbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTM2OlxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MzctXFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MSBhY3RpdmVfcm9sZV92MVtSVFc4OV9QT1JUX05VTV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTQ4PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YyIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTAtXFx0dTggbGlua19tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5NTE6XFx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTk1Mi1cXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlX3YyIGFjdGl2ZV9yb2xlX3YyW1JUVzg5X1BPUlRfTlVNXTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6NDI6NTIuODIzMzUyNzg2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjczOTI2OTM5MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUGF0Y2ggQW5hbHlzaXM6IFNwZWxsaW5nIGFuZCBDb21tZW50IEZpeGVzIC0gV29ydGhGdXp6aW5nPWZhbHNlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYCBqdXN0IGhhZCBhIG1pbm9yIGZpZWxkIG5hbWUgY2hhbmdlIChgbW9uaXRlcmAgdG8gYG1vbml0b3JgKSB3aXRoaW4gYSBzdHJ1Y3QgZGVmaW5pdGlvbi4gQnV0LCB0aGUgY29kZSBkb2Vzbid0IGFjdHVhbGx5IGFjY2VzcyB0aGUgZmllbGQgYnkgbmFtZTsgaXQgdXNlcyBlaXRoZXIgYC52YWxgIG9yIHRyZWF0cyBgcm9sZV9tYXBgIGFzIGEgYml0bWFzayB3aXRoaW4gYSB1bmlvbi4gU28sIHRoZSBpbXBhY3Qgb2YgdGhhdCBzcGVjaWZpYyBjaGFuZ2UgYXBwZWFycyBuZWdsaWdpYmxlLlxuXG5Ob3csIGxldCdzIHN0ZXAgdGhyb3VnaCBlYWNoIGZpbGUgdG91Y2hlZCBpbiB0aGUgcGF0Y2ggbW9yZSBjYXJlZnVsbHk6XG5cbjEuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhgOiBXZSdyZSBzZWVpbmcgdGhlIGB1MTYgbW9uaXRlcjogMTtgIGJlY29taW5nIGB1MTYgbW9uaXRvcjogMTtgLiBUaGF0J3MgYSBzaW1wbGUgc3BlbGxpbmcgY29ycmVjdGlvbiBpbiBhIHN0cnVjdCBmaWVsZCBuYW1lLiBUaGVyZSdzIGFsc28gYSBjb21tZW50IHR5cG8gZml4OiBcInNlcmFjaFwiIHRvIFwic2VhcmNoXCIuXG5cbjIuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jYDogVHdvIG1vcmUgdHlwbyBmaXhlczogb25lIGluIGFuIGVycm9yIGxvZyBzdHJpbmcgKFwiVW5zdXBwb3J0XCIgdG8gXCJVbnN1cHBvcnRlZFwiKSBhbmQgYW5vdGhlciBpbiBhIGNvbW1lbnQgKFwibm9maXR5XCIgdG8gXCJub3RpZnlcIikuXG5cbjMuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY2A6IEFnYWluLCB0eXBvIGZpeGVzLiBPbmUgaW4gYSBkZWJ1ZyBsb2cgc3RyaW5nIChcInVwZGF0XCIgdG8gXCJ1cGRhdGVcIikgYW5kIGFub3RoZXIgaW4gYSBjb21tZW50IChcImxhZ2FjeVwiIHRvIFwibGVnYWN5XCIpLlxuXG5BbHJpZ2h0LCBsZXQncyBkb3VibGUtY2hlY2sgdGhlIFwiV2hlbiB0byBSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlXCIgZ3VpZGVsaW5lcy4gTXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgdGhvc2UgbmVnYXRpdmUgY3JpdGVyaWEgaXM6XG5cbiogICBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzPyBDaGVjay5cbiogICBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcz8gQ2hlY2suXG4qICAgVXNlci1zcGFjZSBjaGFuZ2VzIHRoYXQgZG9uJ3QgYWZmZWN0IHRoZSBrZXJuZWwgaW1hZ2U/IE5vdCBhcHBsaWNhYmxlIGhlcmUuXG4qICAgUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyB0aGF0IGRvZXNuJ3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcz8gQ2hlY2suXG4qICAgQnVpbGQgc3lzdGVtL0tjb25maWcgY2hhbmdlcyB0aGF0IGRvbid0IGFsdGVyIGNvbXBpbGVkIEMgbG9naWM/IE5vdCBhcHBsaWNhYmxlIGhlcmUuXG5cbkFuYWx5emluZyBlYWNoIGNoYW5nZSBhZ2FpbjpcblxuMS4gIFN0cnVjdCBmaWVsZCBuYW1lIChgbW9uaXRlcmAgdG8gYG1vbml0b3JgKTogU3BlbGxpbmcgZml4IGluIGFuIHVudXNlZCBmaWVsZC4gVGhpcyBkb2Vzbid0IGNoYW5nZSBiaW5hcnkgbGF5b3V0LCBkYXRhIHN0cnVjdHVyZSBzaXplLCBvciBjb250cm9sIGZsb3cuIEl0J3Mgc2FmZSB0byBhc3N1bWUgYSBjb21waWxlciBoYW5kbGVzIHRoaXMgd2l0aG91dCBpc3N1ZS5cbjIuICBDb21tZW50IHNwZWxsaW5nIGZpeDogXCJzZXJhY2hcIiB0byBcInNlYXJjaFwiLlxuMy4gIExvZ2dpbmcgZml4OiBcIlVuc3VwcG9ydFwiIHRvIFwiVW5zdXBwb3J0ZWRcIiAtIHB1cmVseSBkZWNvcmF0aXZlIGFuZCBkb2Vzbid0IGFmZmVjdCBvcGVyYXRpb24uXG40LiAgQ29tbWVudCBmaXg6IFwibm9maXR5XCIgdG8gXCJub3RpZnlcIiAtIHB1cmVseSBjb3NtZXRpYy5cbjUuICBMb2dnaW5nIGZpeDogXCJ1cGRhdFwiIHRvIFwidXBkYXRlXCIgLSBhbm90aGVyIG1pbm9yIGNvcnJlY3Rpb24uXG42LiAgQ29tbWVudCBmaXg6IFwibGFnYWN5XCIgdG8gXCJsZWdhY3lcIiAtIGEgYml0IG9mIHBvbGlzaC5cblxuRWFjaCBjaGFuZ2UgY2xlYXJseSBmYWxscyB1bmRlciB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYS4gTm90aGluZyB0b3VjaGVzIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgZGF0YSBzdHJ1Y3R1cmUgc2l6ZS9sYXlvdXQsIG9yIGFzc2VydGlvbnMuIEV2ZW4gaWYgd2UgaGFkIGhhcmR3YXJlLCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgaXQgd291bGQgcmVxdWlyZSBhIHBoeXNpY2FsIHJhZGlvLCBvciBod3NpbSwgYW5kIHRoaXMgd291bGQgc3RpbGwgYmUgdGhlIGNhc2UuIEkgd291bGQgc3RpbGwgZGVlbSB0aGlzIGEgY29zbWV0aWMgcGF0Y2guXG5cbkdpdmVuIHRoaXMgdGhvcm91Z2ggcmV2aWV3IGFuZCBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgdGhlc2Ugd2lyZWxlc3MgZHJpdmVycywgSSdtIGNvbmZpZGVudCBpbiBzZXR0aW5nIHRoZSByZXN1bHRzLlxuXG5IZXJlJ3Mgd2hhdCBJJ2xsIHNldDpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgXG4qICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgIChCZWNhdXNlIHRoZXJlIGlzIG5vIGZvY3VzLilcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKEJlY2F1c2UgdGhlcmUgaXMgbm8gY29uZmlnIHRvIGVuYWJsZS4pXG4qICAgYFJlYXNvbmluZ2A6IFwiVGhlIHBhdGNoIG9ubHkgY29uc2lzdHMgb2Ygc3BlbGxpbmcgZml4ZXMgaW4gY29tbWVudHMsIGxvZyBtZXNzYWdlcywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUsIHdpdGggbm8gZnVuY3Rpb25hbCBvciBsb2dpYyBjaGFuZ2VzLlwiXG5cblRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjY1NSwiT3V0cHV0VG9rZW5zIjo2OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MzowMC4yMTYwNTE1NjRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTU1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb250YWlucyBvbmx5IHNwZWxsaW5nIGFuZCB0eXBvIGZpeGVzIGluIGNvbW1lbnRzLCBsb2cvZGVidWcgbWVzc2FnZSBzdHJpbmdzLCBhbmQgYSBzdHJ1Y3QgZmllbGQgbmFtZS4gTm8gZXhlY3V0YWJsZSBsb2dpYywgY29udHJvbCBmbG93LCBhc3NlcnRpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgd2VyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29udGFpbnMgb25seSBzcGVsbGluZyBhbmQgdHlwbyBmaXhlcyBpbiBjb21tZW50cywgbG9nL2RlYnVnIG1lc3NhZ2Ugc3RyaW5ncywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUuIE5vIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgYXNzZXJ0aW9ucywgb3IgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgYWx0ZXJlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQzOjAwLjIxNjA4NTk3NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowv42ph[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-06 08:19:22 +0000 UTC FinishedAt: 2026-09-06 08:43:01 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udGFpbnMgb25seSBzcGVsbGluZyBhbmQgdHlwbyBmaXhlcyBpbiBjb21tZW50cywgbG9nL2RlYnVnIG1lc3NhZ2Ugc3RyaW5ncywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUuIE5vIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgYXNzZXJ0aW9ucywgb3IgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmYzI5MGY4NjJlMjExZDlkYmQwYWM2MzZlYzg1MTU2NmFkYWFjNTllXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgNiAwODo0MjozNCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXG5pbmRleCAyYjIxZDk2OWVjZTdiLi44MTRmM2I5NGNmY2QzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXG5AQCAtMTkwNCw3ICYjNDM7MTkwNCw3IEBAIHN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xuIFx0dTE2IGFkaG9jOiAxO1xuIFx0dTE2IGFkaG9jX21hc3RlcjogMTtcbiBcdHUxNiBtZXNoOiAxO1xuLVx0dTE2IG1vbml0ZXI6IDE7XG4mIzQzO1x0dTE2IG1vbml0b3I6IDE7XG4gXHR1MTYgcDJwX2RldmljZTogMTtcbiBcdHUxNiBwMnBfZ2M6IDE7XG4gXHR1MTYgcDJwX2dvOiAxO1xuQEAgLTM5MjUsNyAmIzQzOzM5MjUsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfY2VsbCB7XG4gc3RydWN0IHJ0dzg5X2J0Y19mZGRyX3Jlc3VsdCB7XG4gXHR1OCB3bF9yeF9saW1pdDtcbiBcdHU4IHdsX3J4X2xpbWl0X3N0ZXBbNl07IC8qIHJlY29yZCBzZWFyY2ggcHJvY2VzcyAqL1xuLVx0dTggc2VhcmNoX2NudDsgLyogdGhlIHJ4LWxpbWl0IHNlcmFjaCBjb3VudCAqL1xuJiM0MztcdHU4IHNlYXJjaF9jbnQ7IC8qIHRoZSByeC1saW1pdCBzZWFyY2ggY291bnQgKi9cbiBcdHUzMiB3bF90cDtcbiBcdHUzMiB3bF90cF9zdGVwWzZdOyAvKiByZWNvcmQgc2VhcmNoIHByb2Nlc3MgKi9cbiB9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuaW5kZXggMDA5OWM1YzAzZTdhNi4uZWNlZGZkNmY2NGEzZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXG5AQCAtMzA2LDcgJiM0MzszMDYsNyBAQCBzdGF0aWMgaW50IF9fcGFyc2VfZm9ybWF0dGVkX21zc2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRpZiAobXNzX2hkci1cdTAwM2VkZWZlbilcbiBcdFx0XHRybXBfdGJsX3NpemUgJiM0Mzs9IEZXRExfTVNTX1BPT0xfREVGS0VZU0VUU19TSVpFO1xuIFx0fSBlbHNlIHtcbi1cdFx0cnR3ODlfZXJyKHJ0d2RldiwgXCYjMzQ7W0VSUl0gTVNTIEtleSBQb29sIFJlbWFwIFRhYmxlIEZvcm1hdCBVbnN1cHBvcnQ6JVhcXG5cJiMzNDssXG4mIzQzO1x0XHRydHc4OV9lcnIocnR3ZGV2LCBcJiMzNDtbRVJSXSBNU1MgS2V5IFBvb2wgUmVtYXAgVGFibGUgRm9ybWF0IFVuc3VwcG9ydGVkOiVYXFxuXCYjMzQ7LFxuIFx0XHRcdCAgbXNzX2hkci1cdTAwM2VybXBmbXQpO1xuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbkBAIC0xMTIxNCw3ICYjNDM7MTEyMTQsNyBAQCBpbnQgcnR3ODlfZndfaDJjX3dvd19yZXF1ZXN0X2FvYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuIFxuIFx0c2tiX3B1dChza2IsIGxlbik7XG4gXG4tXHQvKiBUaGlzIEgyQyBvbmx5IG5vZml0eSBmaXJtd2FyZSB0byBnZW5lcmF0ZSBBT0FDIHJlcG9ydCBDMkgsXG4mIzQzO1x0LyogVGhpcyBIMkMgb25seSBub3RpZnkgZmlybXdhcmUgdG8gZ2VuZXJhdGUgQU9BQyByZXBvcnQgQzJILFxuIFx0ICogbm8gbmVlZCBhbnkgcGFyYW1ldGVyLlxuIFx0ICovXG4gXHRydHc4OV9oMmNfcGt0X3NldF9oZHIocnR3ZGV2LCBza2IsIEZXQ01EX1RZUEVfSDJDLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jXG5pbmRleCBjNzgxMDdlOTIyMDYzLi40M2IzNTUyZjVhOTZjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xuQEAgLTUyNSw3ICYjNDM7NTI1LDcgQEAgdm9pZCBydHc4OV9waHlfcmFfdXBkYXRlX3N0YV9saW5rKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcdFx0cmEtXHUwMDNldXBkX2J3X25zc19tYXNrID0gMTtcbiBcbiBcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JBLFxuLVx0XHQgICAgXCYjMzQ7cmEgdXBkYXQ6IG1hY2lkID0gJWQsIGJ3ID0gJWQsIG5zcyA9ICVkLCBnaSA9ICVkICVkXCYjMzQ7LFxuJiM0MztcdFx0ICAgIFwmIzM0O3JhIHVwZGF0ZTogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcJiMzNDssXG4gXHRcdCAgICByYS1cdTAwM2VtYWNpZCxcbiBcdFx0ICAgIHJhLVx1MDAzZWJ3X2NhcCxcbiBcdFx0ICAgIHJhLVx1MDAzZXNzX251bSxcbkBAIC02NTksNyAmIzQzOzY1OSw3IEBAIHZvaWQgX19ydHc4OV9waHlfcmF0ZV9wYXR0ZXJuX3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4gXHRcdFx0XHRcdCAgMCwgdHJ1ZSkpXG4gXHRcdFx0Z290byBvdXQ7XG4gXG4tXHQvKiBsYWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kXG4mIzQzO1x0LyogbGVnYWN5IGNhbm5vdCBiZSBlbXB0eSBmb3Igbmw4MDIxMV9wYXJzZV90eF9iaXRyYXRlX21hc2ssIGFuZFxuIFx0ICogcmVxdWlyZSBhdCBsZWFzdCBvbmUgYmFzaWMgcmF0ZSBmb3IgaWVlZTgwMjExX3NldF9iaXRyYXRlX21hc2ssXG4gXHQgKiBzbyB0aGUgZGVjaXNpb24ganVzdCBkZXBlbmRzIG9uIGlmIGFsbCBiaXRyYXRlcyBhcmUgc2V0IG9yIG5vdC5cbiBcdCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNvbnRhaW5zIG9ubHkgc3BlbGxpbmcgYW5kIHR5cG8gZml4ZXMgaW4gY29tbWVudHMsIGxvZy9kZWJ1ZyBtZXNzYWdlIHN0cmluZ3MsIGFuZCBhIHN0cnVjdCBmaWVsZCBuYW1lLiBObyBleGVjdXRhYmxlIGxvZ2ljLCBjb250cm9sIGZsb3csIGFzc2VydGlvbnMsIG9yIGRhdGEgc3RydWN0dXJlcyB3ZXJlIGFsdGVyZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmMyOTBmODYyZTIxMWQ5ZGJkMGFjNjM2ZWM4NTE1NjZhZGFhYzU5ZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gU2VwIDYgMDg6NDI6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oCmluZGV4IDJiMjFkOTY5ZWNlN2IuLjgxNGYzYjk0Y2ZjZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oCkBAIC0xOTA0LDcgJiM0MzsxOTA0LDcgQEAgc3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7CiAJdTE2IGFkaG9jOiAxOwogCXUxNiBhZGhvY19tYXN0ZXI6IDE7CiAJdTE2IG1lc2g6IDE7Ci0JdTE2IG1vbml0ZXI6IDE7CiYjNDM7CXUxNiBtb25pdG9yOiAxOwogCXUxNiBwMnBfZGV2aWNlOiAxOwogCXUxNiBwMnBfZ2M6IDE7CiAJdTE2IHAycF9nbzogMTsKQEAgLTM5MjUsNyAmIzQzOzM5MjUsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfY2VsbCB7CiBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfcmVzdWx0IHsKIAl1OCB3bF9yeF9saW1pdDsKIAl1OCB3bF9yeF9saW1pdF9zdGVwWzZdOyAvKiByZWNvcmQgc2VhcmNoIHByb2Nlc3MgKi8KLQl1OCBzZWFyY2hfY250OyAvKiB0aGUgcngtbGltaXQgc2VyYWNoIGNvdW50ICovCiYjNDM7CXU4IHNlYXJjaF9jbnQ7IC8qIHRoZSByeC1saW1pdCBzZWFyY2ggY291bnQgKi8KIAl1MzIgd2xfdHA7CiAJdTMyIHdsX3RwX3N0ZXBbNl07IC8qIHJlY29yZCBzZWFyY2ggcHJvY2VzcyAqLwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYwppbmRleCAwMDk5YzVjMDNlN2E2Li5lY2VkZmQ2ZjY0YTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jCkBAIC0zMDYsNyAmIzQzOzMwNiw3IEBAIHN0YXRpYyBpbnQgX19wYXJzZV9mb3JtYXR0ZWRfbXNzYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsCiAJCWlmIChtc3NfaGRyLSZndDtkZWZlbikKIAkJCXJtcF90Ymxfc2l6ZSAmIzQzOz0gRldETF9NU1NfUE9PTF9ERUZLRVlTRVRTX1NJWkU7CiAJfSBlbHNlIHsKLQkJcnR3ODlfZXJyKHJ0d2RldiwgJiMzNDtbRVJSXSBNU1MgS2V5IFBvb2wgUmVtYXAgVGFibGUgRm9ybWF0IFVuc3VwcG9ydDolWFxuJiMzNDssCiYjNDM7CQlydHc4OV9lcnIocnR3ZGV2LCAmIzM0O1tFUlJdIE1TUyBLZXkgUG9vbCBSZW1hcCBUYWJsZSBGb3JtYXQgVW5zdXBwb3J0ZWQ6JVhcbiYjMzQ7LAogCQkJICBtc3NfaGRyLSZndDtybXBmbXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMTIxNCw3ICYjNDM7MTEyMTQsNyBAQCBpbnQgcnR3ODlfZndfaDJjX3dvd19yZXF1ZXN0X2FvYWMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KQogCiAJc2tiX3B1dChza2IsIGxlbik7CiAKLQkvKiBUaGlzIEgyQyBvbmx5IG5vZml0eSBmaXJtd2FyZSB0byBnZW5lcmF0ZSBBT0FDIHJlcG9ydCBDMkgsCiYjNDM7CS8qIFRoaXMgSDJDIG9ubHkgbm90aWZ5IGZpcm13YXJlIHRvIGdlbmVyYXRlIEFPQUMgcmVwb3J0IEMySCwKIAkgKiBubyBuZWVkIGFueSBwYXJhbWV0ZXIuCiAJICovCiAJcnR3ODlfaDJjX3BrdF9zZXRfaGRyKHJ0d2Rldiwgc2tiLCBGV0NNRF9UWVBFX0gyQywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jCmluZGV4IGM3ODEwN2U5MjIwNjMuLjQzYjM1NTJmNWE5NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYwpAQCAtNTI1LDcgJiM0Mzs1MjUsNyBAQCB2b2lkIHJ0dzg5X3BoeV9yYV91cGRhdGVfc3RhX2xpbmsoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAogCQlyYS0mZ3Q7dXBkX2J3X25zc19tYXNrID0gMTsKIAogCXJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JBLAotCQkgICAgJiMzNDtyYSB1cGRhdDogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWQmIzM0OywKJiM0MzsJCSAgICAmIzM0O3JhIHVwZGF0ZTogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWQmIzM0OywKIAkJICAgIHJhLSZndDttYWNpZCwKIAkJICAgIHJhLSZndDtid19jYXAsCiAJCSAgICByYS0mZ3Q7c3NfbnVtLApAQCAtNjU5LDcgJiM0Mzs2NTksNyBAQCB2b2lkIF9fcnR3ODlfcGh5X3JhdGVfcGF0dGVybl92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LAogCQkJCQkgIDAsIHRydWUpKQogCQkJZ290byBvdXQ7CiAKLQkvKiBsYWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kCiYjNDM7CS8qIGxlZ2FjeSBjYW5ub3QgYmUgZW1wdHkgZm9yIG5sODAyMTFfcGFyc2VfdHhfYml0cmF0ZV9tYXNrLCBhbmQKIAkgKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBiYXNpYyByYXRlIGZvciBpZWVlODAyMTFfc2V0X2JpdHJhdGVfbWFzaywKIAkgKiBzbyB0aGUgZGVjaXNpb24ganVzdCBkZXBlbmRzIG9uIGlmIGFsbCBiaXRyYXRlcyBhcmUgc2V0IG9yIG5vdC4KIAkgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk1MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBTdWJ0bGUgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGRpZmYuIEZpcnN0LCBhIHF1aWNrIG92ZXJ2aWV3OiB3ZSYjMzk7cmUgbG9va2luZyBhdCBzb21lIGFkanVzdG1lbnRzIHRvIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYHJ0dzg5YCBkaXJlY3RvcnkuIEl0JiMzOTtzIGEgc21hbGwgcGF0Y2gsIGJ1dCB3ZSBuZWVkIHRvIGVuc3VyZSBldmVyeXRoaW5nJiMzOTtzIGNsZWFuLgoKSSYjMzk7bSBzZWVpbmcgY2hhbmdlcyBpbiBgY29yZS5oYCwgYGZ3LmNgLCBhbmQgYHBoeS5jYC4gVGhlIGZpcnN0IGNoYW5nZSwgYSBzaW1wbGUgdHlwbyBjb3JyZWN0aW9uLCBpcyB0aGUgbW9zdCBvYnZpb3VzLiBSZXBsYWNpbmcgYG1vbml0ZXJgIHdpdGggYG1vbml0b3JgIGluIGBjb3JlLmhgLiAgSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBzdHJ1Y3QgbWVtYmVyIGlzbiYjMzk7dCByZWZlcmVuY2VkIGFueXdoZXJlIHVzaW5nIHRoZSBpbmNvcnJlY3Qgc3BlbGxpbmcuIEl0JiMzOTtzIGdvb2QgcHJhY3RpY2UgdG8gZ3JlcCBmb3IgYG1vbml0ZXJgIHdpdGhpbiB0aGUgY29kZWJhc2UsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgbm8gb25lIGlzIGluYWR2ZXJ0ZW50bHkgdXNpbmcgaXQuCgpNb3Zpbmcgb24sIHRoZSBvdGhlciBjaGFuZ2VzIGFyZSBtaW5vciBjb21tZW50IHR5cG8gZml4ZXMuICBJbiBgZncuY2AsIHdlIHNlZSBhIHN0cmluZyBjb3JyZWN0aW9uIGFuZCBpbiB0aGUgc2FtZSBmaWxlLCB0aGUgY29ycmVjdGlvbiBvZiBgbm9maXR5YCB0byBgbm90aWZ5YC4gIFNhbWUgZm9yIHRoZSBgcGh5LmNgIHdpdGggdGhlIGByYSB1cGRhdGAgdG8gYHJhIHVwZGF0ZWAgYW5kIGBsYWdhY3lgIHRvIGBsZWdhY3lgIHR5cG8gZml4ZXMuICBUaGVzZSBhcmUgZWFzeSwgYnV0IGl0JiMzOTtzIGltcG9ydGFudCB0byBrZWVwIHRoZSBjb2RlIGJhc2UgY2xlYW4gYW5kIHJlYWRhYmxlLgoKVWx0aW1hdGVseSwgdGhlc2Ugc2VlbSBsaWtlIG1pbm9yIGNvc21ldGljIGZpeGVzLiAgSG93ZXZlciwgdGhhdCBzcGVsbGluZyBjb3JyZWN0aW9uIHJlcXVpcmVzIGEgcXVpY2sgZ3JlcCBhY3Jvc3MgdGhlIHByb2plY3QgdG8gZW5zdXJlIG5vIG9sZCByZWZlcmVuY2VzIG9yIGJ1Z3MgYXJlIGhpZGluZyBpbiBwbGFpbiBzaWdodC4gVGhhdCYjMzk7cyB0aGUgcHJpb3JpdHkgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0Oyhtb25pdGVyfG1vbml0b3IpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01MjE9dm9pZCBydHc4OV9jaGlwX3Jma19jaGFubmVsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01MjQtXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LVx1MDAzZWNoaXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1MjU6XHRib29sIG1vbiA9ICEhcnR3ZGV2LVx1MDAzZXB1cmVfbW9uaXRvcl9tb2RlX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyNi1cdGJvb2wgcHJlaGRsX2xpbmsgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01NTI9c3RhdGljIHZvaWQgcnR3ODlfY2hpcF9yZmtfY2hhbm5lbF9mb3JfcHVyZV9tb25fdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTU1Olx0c3RydWN0IHJ0dzg5X3ZpZiAqcnR3dmlmID0gcnR3ZGV2LVx1MDAzZXB1cmVfbW9uaXRvcl9tb2RlX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1Ni1cdHN0cnVjdCBydHc4OV92aWZfbGluayAqcnR3dmlmX2xpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9Mzc5Mj1zdGF0aWMgdm9pZCBydHc4OV9jb3JlX3VwZGF0ZV9yYWRpb3RhcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtMzgwMS1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzozODAyOlx0ICogQXQgdHJhbnNpZW50IGFkZGluZyBhIG1vbml0b3IgdmlmIGZyb20gYSBzdGF0aW9uIHZpZiwgdGhlIGhlYWRyb29tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0zODAzLVx0ICogbWlnaHQgbm90IGluY2x1ZGUgcmFkaW90YXAuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTUwMz1zdGF0aWMgdm9pZCBydHc4OV90cmFja193b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1MjktXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NTMwOlx0cnR3ODlfbWFjX2JmX21vbml0b3JfdHJhY2socnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1MzEtXHRydHc4OV9jb3JlX2Jjbl90cmFjayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTUzMi1cdHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1NTMzOlx0cnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTM0LVx0cnR3ODlfcGh5X2RpZyhydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU4MTg9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzY29ubmVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTgyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4MjY6XHRydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjKHJ0d2RldiwgcnR3c3RhX2xpbmssIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTgyNy1cdHJ0dzg5X21hY19iZl9kaXNhc3NvYyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTg3OD1pbnQgcnR3ODlfY29yZV9zdGFfbGlua19hc3NvYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTkzNi1cdHJ0dzg5X21hY19iZl9hc3NvYyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1OTM3Olx0cnR3ODlfbWFjX2JmX21vbml0b3JfY2FsYyhydHdkZXYsIHJ0d3N0YV9saW5rLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01OTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE4OTk9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwNi1cdHUxNiBtZXNoOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkwNzpcdHUxNiBtb25pdG9yOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwOC1cdHUxNiBwMnBfZGV2aWNlOiAxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTcwNjU9c3RydWN0IHJ0dzg5X25obV9yZXBvcnQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTcwNzMtI2RlZmluZSBSVFc4OV9JRlNfQ0xNX05VTSA0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDo3MDc0OnN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTcwNzUtXHR1OCBjY3hfd2F0Y2hkb2dfcmVzdWx0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTc1NTE9c3RydWN0IHJ0dzg5X2RldiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtNzY0Ny1cdFx0ZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDo3NjQ4Olx0XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyBlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2NDktXHRcdHN0cnVjdCBydHc4OV9kaWdfaW5mbyBkaWc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtNzY5Mi1cdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzICpkZWJ1Z2ZzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6NzY5MzpcdHN0cnVjdCBydHc4OV92aWYgKnB1cmVfbW9uaXRvcl9tb2RlX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2OTQtXHRzdHJ1Y3QgcnR3ODlfbGVkIGxlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NzA9c3RydWN0IHJ0dzg5X2RlYnVnZnMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy05Ni1cdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgZGlhZ19yZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo5NzpcdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgbW9uaXRvcl9vcHRzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTk4LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTU1MDk9c3RhdGljIHNzaXplX3RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NTEwOnJ0dzg5X2RlYnVnX3ByaXZfbW9uaXRvcl9vcHRzX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTUxMS1cdFx0XHRcdCAgc3RydWN0IHJ0dzg5X2RlYnVnZnNfcHJpdiAqZGVidWdmc19wcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz01NTMzPXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NTUzNDpydHc4OV9kZWJ1Z19wcml2X21vbml0b3Jfb3B0c19zZXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTU1MzUtXHRcdFx0XHQgIHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgKmRlYnVnZnNfcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTU5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2RlYnVnZnMgcnR3ODlfZGVidWdmc190ZW1wbCA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTYyMS1cdC5kaWFnX3JmID0gcnR3ODlfZGVidWdfcHJpdl9zZXRfYW5kX2dldChkaWFnX3JmLCBSV0xPQ0spLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jOjU2MjI6XHQubW9uaXRvcl9vcHRzID0gcnR3ODlfZGVidWdfcHJpdl9zZXRfYW5kX2dldChtb25pdG9yX29wdHMsIFJXTE9DSyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTYyMy19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYz01NjcxPXZvaWQgcnR3ODlfZGVidWdmc19hZGRfc2VjMihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfdG9wZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy01Njc5LVx0cnR3ODlfZGVidWdmc19hZGRfcncoZGlhZ19yZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NTY4MDpcdHJ0dzg5X2RlYnVnZnNfYWRkX3J3KG1vbml0b3Jfb3B0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTY4MS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYz02OTE0PXZvaWQgcnR3ODlfbWFjX2JmX3NldF9naWRfdGFibGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk1NTpzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk1Ni1cdHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jPTY5NjE9c3RhdGljXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NjI6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NjQ6XHRzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhICppdGVyX2RhdGEgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo2OTY1Olx0XHRcdFx0KHN0cnVjdCBydHc4OV9tYWNfYmZfbW9uaXRvcl9pdGVyX2RhdGEgKilkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTY2LVx0c3RydWN0IHJ0dzg5X3N0YV9saW5rICpkb3duX3J0d3N0YV9saW5rID0gaXRlcl9kYXRhLVx1MDAzZWRvd25fcnR3c3RhX2xpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo2OTkzOnZvaWQgcnR3ODlfbWFjX2JmX21vbml0b3JfY2FsYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5OTQtXHRcdFx0ICAgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTk2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk5NzpcdHN0cnVjdCBydHc4OV9tYWNfYmZfbW9uaXRvcl9pdGVyX2RhdGEgZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk5OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMDItXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocnR3ZGV2LVx1MDAzZWh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo3MDAzOlx0XHRcdFx0XHQgIHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGNfaXRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNzAwNC1cdFx0XHRcdFx0ICBcdTAwMjZkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjcwMTM6dm9pZCBfcnR3ODlfbWFjX2JmX21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy03MDE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oPTE1NTA9dm9pZCBydHc4OV9tYWNfYmZfc2V0X2dpZF90YWJsZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NTEtXHRcdFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg6MTU1Mjp2b2lkIHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTUzLVx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3ODlfc3RhX2xpbmsgKnJ0d3N0YV9saW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTU0LVx0XHRcdCAgICAgICBib29sIGRpc2Nvbm5lY3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaDoxNTU1OnZvaWQgX3J0dzg5X21hY19iZl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NTYtdm9pZCBydHc4OV9tYWNfYmZlZV9jdHJsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggbWFjX2lkeCwgYm9vbCBlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaD0xNTYxPWludCBydHc4OV9tYWNfc2V0X21hY2lkX3BhdXNlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggbWFjaWQsIGJvb2wgcGF1c2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaDoxNTYzOnN0YXRpYyBpbmxpbmUgdm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NjQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg6MTU3MTpcdF9ydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTcyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM9MTY5PXN0YXRpYyBpbnQgcnR3ODlfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYzoyMjc6XHRydHdkZXYtXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmID0gdmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTU9OSVRPUiA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMjI4LVx0XHRcdFx0XHRydHd2aWYgOiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYz0yNDM9c3RhdGljIHZvaWQgcnR3ODlfb3BzX3JlbW92ZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTI3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYzoyNzY6XHRydHdkZXYtXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYy0yNzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jPTE5NjY9c3RhdGljIGludCBydHc4OV9vcHNfZ2V0X3N1cnZleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IGlkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMTk4MS1cdHJ0dzg5X2Zvcl9lYWNoX2FjdGl2ZV9iYihydHdkZXYsIGJiKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM6MTk4MjpcdFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTE5ODMtXHRcdHN0cnVjdCBydHc4OV9uaG1fcmVwb3J0ICpycHQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02MjY4PXN0YXRpYyB1MTYgcnR3ODlfcGh5X2NjeF91c190b19pZHgoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYyNzE6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYyNzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02Mjc2PXN0YXRpYyB1MzIgcnR3ODlfcGh5X2NjeF9pZHhfdG9fdXMoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYyNzk6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYyODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02Mjg0PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9jY3hfdG9wX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Mjg3LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2Mjg4Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Mjg5LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjMwNj1zdGF0aWMgdTE2IHJ0dzg5X3BoeV9jY3hfZ2V0X3JlcG9ydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzA5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjMxMDpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjMxMS1cdHUzMiBudW1lciA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02MzUwPXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9jY3hfcmFjaW5nX3JlbGVhc2Uoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM1Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYzNTM6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYzNTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02MzYzPXN0YXRpYyBib29sIHJ0dzg5X3BoeV9pZnNfY2xtX3RoX3VwZGF0ZV9jaGVjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzY2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjM2NzpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM2OC1cdGJvb2wgaXNfdXBkYXRlID0gZW52LVx1MDAzZWlmc19jbG1fYXBwICE9IHBhcmEtXHUwMDNlaWZzX2NsbV9hcHA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NDE4PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9pZnNfY2xtX3NldF90aF9yZWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQyMS1cdGNvbnN0IHN0cnVjdCBydHc4OV9waHlfZ2VuX2RlZiAqcGh5ID0gcnR3ZGV2LVx1MDAzZWNoaXAtXHUwMDNlcGh5X2RlZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjQyMjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQyMy1cdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVx1MDAzZWNjeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY0NTA9c3RhdGljIHZvaWQgX19ydHc4OV9waHlfbmhtX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NDUzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NDU0Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NDU1LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjQ3OD1zdGF0aWMgdm9pZCBydHc4OV9waHlfaWZzX2NsbV9zZXR0aW5nX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ4MS1cdGNvbnN0IHN0cnVjdCBydHc4OV9waHlfZ2VuX2RlZiAqcGh5ID0gcnR3ZGV2LVx1MDAzZWNoaXAtXHUwMDNlcGh5X2RlZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjQ4MjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ4My1cdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVx1MDAzZWNjeDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY1MDU9c3RhdGljIGludCBydHc4OV9waHlfY2N4X3JhY2luZ19jdHJsKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY1MDgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NTA5Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTEwLVx0aW50IHJldCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NTM4PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9jY3hfdHJpZ2dlcihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTQxLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NTQyOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTQzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjU2ND1zdGF0aWMgdm9pZCBydHc4OV9waHlfaWZzX2NsbV9nZXRfdXRpbGl0eShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTY2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjU2NzpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjU2OC1cdHU4IGkgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjYzMD1zdGF0aWMgdTggcnR3ODlfbmhtX3dlaWdodGVkX2F2ZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9iYl9jdHggKmJiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NjMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjYzMjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjYzMy1cdHU4IG5obV93ZWlnaHRbUlRXODlfTkhNX1JQVF9OVU1dO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjY3Mj1zdGF0aWMgdm9pZCBfX3J0dzg5X3BoeV9uaG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Njc2LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2Njc3Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Njc4LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cdTAwM2VjaGlwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9Njc0OT1zdGF0aWMgYm9vbCBydHc4OV9waHlfaWZzX2NsbV9nZXRfcmVzdWx0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY3NTItXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cdTAwM2VjaGlwLVx1MDAzZXBoeV9kZWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY3NTM6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY3NTQtXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cdTAwM2VjY3g7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02ODUwPXN0YXRpYyBib29sIHJ0dzg5X3BoeV9lZGNjYV9jbG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02ODUzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2ODU0Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02ODU1LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9Njg3Mz1zdGF0aWMgdm9pZCBydHc4OV9waHlfbmhtX3RoX3VwZGF0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02ODc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6Njg3NjpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg3Ny1cdHN0YXRpYyBjb25zdCB1OCBuaG1fdGhfMTFrW1JUVzg5X05ITV9SUFRfTlVNXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY4OTk9c3RhdGljIGludCBydHc4OV9waHlfbmhtX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTAzLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2OTA0Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTA1LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9Njk3ND1zdGF0aWMgaW50IHJ0dzg5X3BoeV9pZnNfY2xtX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTc4LVx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXHUwMDNlY2hpcC1cdTAwM2VwaHlfZGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2OTc5Olx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTgwLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXHUwMDNlY2N4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAxOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzAxOTpzdGF0aWMgdm9pZCBfX3J0dzg5X3BoeV9lbnZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjAtXHRcdFx0XHRcdCAgc3RydWN0IHJ0dzg5X2JiX2N0eCAqYmIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MDIyOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MDIzLVx0c3RydWN0IHJ0dzg5X2NjeF9wYXJhX2luZm8gcGFyYSA9IHt9O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAzMy1cdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1BIWV9UUkFDSyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzAzNDpcdFx0ICAgIFwmIzM0O0JCLSVkIGVudl9tb25pdG9yIHRyYWNrXFxuXCYjMzQ7LCBiYi1cdTAwM2VwaHlfaWR4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAzNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcwNTg6dm9pZCBydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MDU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNjItXHRydHc4OV9mb3JfZWFjaF9hY3RpdmVfYmIocnR3ZGV2LCBiYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzA2MzpcdFx0X19ydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2socnR3ZGV2LCBiYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNjQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NzE1Nz1zdGF0aWMgdm9pZCBfX3J0dzg5X3BoeXN0c19wYXJzaW5nX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2MS1cdGNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXHUwMDNlY2hpcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE2MjpcdHUzMiBtb25pdG9yX21vZGVfbXVfaWVzID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE2MzpcdHUzMiBtb25pdG9yX21vZGVfc3VfaWVzID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2NC1cdHUzMiB2YWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTY3LVx0aWYgKHJ0d2Rldi1cdTAwM2Vody1cdTAwM2Vjb25mLmZsYWdzIFx1MDAyNiBJRUVFODAyMTFfQ09ORl9NT05JVE9SKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcxNjg6XHRcdG1vbml0b3JfbW9kZV9tdV9pZXMgPSBCSVQoUlRXODlfUEhZU1RTX0lFMDlfRlRSXzApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTY5LVx0XHRpZiAocGh5LVx1MDAzZXBoeXN0X2dlbiBcdTAwM2MgMilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE3MDpcdFx0XHRtb25pdG9yX21vZGVfbXVfaWVzIHw9IEJJVChSVFc4OV9QSFlTVFNfSUUxMF9GVFJfUExDUF9FWFQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTcyOlx0XHRtb25pdG9yX21vZGVfc3VfaWVzID0gQklUKFJUVzg5X1BIWVNUU19JRTA5X0ZUUl8wKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE3My1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcxODctXHRcdFx0dmFsIHw9IEJJVChSVFc4OV9QSFlTVFNfSUUxM19ETF9NVV9ERUYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTg4Olx0XHRcdHZhbCB8PSBtb25pdG9yX21vZGVfbXVfaWVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTg5LVx0XHR9IGVsc2UgaWYgKGkgPT0gUlRXODlfVFJJR19CQVNFX1BQRFUpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcyMDItXHRcdGlmIChpID09IFJUVzg5X0hFX1BLVCB8fCBpID09IFJUVzg5X1ZIVF9QS1QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcyMDM6XHRcdFx0dmFsIHw9IG1vbml0b3JfbW9kZV9zdV9pZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcyMDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz03NDU5PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9kaWdfaWdpX29mZnNldF9ieV9lbnYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzQ2Mi1cdHN0cnVjdCBydHc4OV9kaWdfaW5mbyAqZGlnID0gXHUwMDI2YmItXHUwMDNlZGlnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3NDYzOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03NDY0LVx0ZW51bSBydHc4OV9kaWdfbm9pc3lfbGV2ZWwgbm9pc3lfbHY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MTU0PXZvaWQgcnR3ODlfcGh5X2FudGRpdl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTc1OnN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X2Vudl9tb25pdG9yX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc2LVx0XHRcdFx0XHQgc3RydWN0IHJ0dzg5X2JiX2N0eCAqYmIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc4LVx0cnR3ODlfZGVidWcocnR3ZGV2LCBSVFc4OV9EQkdfUEhZX1RSQUNLLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTc5Olx0XHQgICAgXCYjMzQ7QkItJWQgZW52X21vbml0b3IgaW5pdFxcblwmIzM0OywgYmItXHUwMDNlcGh5X2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgxODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTg1OnN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTg5LVx0cnR3ODlfZm9yX2VhY2hfY2FwYWJfYmIocnR3ZGV2LCBiYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODE5MDpcdFx0X19ydHc4OV9waHlfZW52X21vbml0b3JfaW5pdChydHdkZXYsIGJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE5MS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MjM1PXZvaWQgcnR3ODlfcGh5X2RtX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODI0MS1cdHJ0dzg5X3BoeV9kaWFnX2luaXQocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI0MjpcdHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNDMtXHRydHc4OV9waHlfbmhtX3NldHRpbmdfaW5pdChydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODI2Mz12b2lkIHJ0dzg5X3BoeV9kbV9yZWluaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjY0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI2NTpcdHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNjYtXHRydHc4OV9waHlzdHNfcGFyc2luZ19pbml0KHJ0d2Rldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MjY5PXN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X2RtX2luaXRfZGF0YShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9iYl9jdHggKmJiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjcwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI3MTpcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcdTAwMjZiYi1cdTAwM2VlbnZfbW9uaXRvcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODI3Mi1cdGNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXHUwMDNlY2hpcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTg4MjU9c3RhdGljIHZvaWQgcnR3ODlfcGh5X2VkY2NhX2RpYWcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTg4MjgtI2RlZmluZSBSVFc4OV9ESUFHX0JCX0VEQ0NBX1RYX1RIIDEwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjg4Mjk6XHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXHUwMDI2YmItXHUwMDNlZW52X21vbml0b3I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTg4MzAtXHRzdHJ1Y3QgcnR3ODlfdHJhZmZpY19zdGF0cyAqc3RhdHMgPSBcdTAwMjZydHdkZXYtXHUwMDNlc3RhdHM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaD0yMDE9ZW51bSBydHc4OV9waHlfYzJoX2NsYXNzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5oLTIxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5Lmg6MjEyOmVudW0gcnR3ODlfZW52X21vbml0b3JfcmVzdWx0X2xldmVsIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmgtMjEzLVx0UlRXODlfUEhZX0VOVl9NT05fQ0NYX0ZBSUwgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5Lmg9MTIwND12b2lkIHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5oOjEyMDU6dm9pZCBydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmgtMTIwNi12b2lkIHJ0dzg5X3BoeV9zZXRfcGh5X3JlZ3Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1MzIgYWRkciwgdTMyIG1hc2ssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYz02Mjg9c3RhdGljIHZvaWQgcnR3ODlfdGFzX2hpc3RvcnlfdXBkYXRlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3Nhci5jLTYzMC1cdHN0cnVjdCBydHc4OV9iYl9jdHggKmJiID0gcnR3ODlfZ2V0X2JiX2N0eChydHdkZXYsIFJUVzg5X1BIWV8wKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvc2FyLmM6NjMxOlx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFx1MDAyNmJiLVx1MDAzZWVudl9tb25pdG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYy02MzItXHRzdHJ1Y3QgcnR3ODlfdGFzX2luZm8gKnRhcyA9IFx1MDAyNnJ0d2Rldi1cdTAwM2V0YXM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU2ODEKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgdGhlIFJvbGUgSW5mbyoqCgpBbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYC4gVGhhdCYjMzk7cyBhIGNyaXRpY2FsIGJpdCBvZiBpbmZvcm1hdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gdGhlIEJsdWV0b290aC9XaS1GaSByb2xlIG1hbmFnZW1lbnQuIEdpdmVuIHRoZSBuYW1pbmcgY29udmVudGlvbiwgaXQmIzM5O3MgcHJvYmFibHkgYSBiaXQgcG9zaXRpb24gZGVmaW5pdGlvbiB3aXRoaW4gYSBsYXJnZXIgc3RydWN0dXJlLiBUbyBnZXQgYSBwcmVjaXNlIHVuZGVyc3RhbmRpbmcgb2YgaXRzIG1lYW5pbmcgYW5kIGNvbnRleHQsIEkmIzM5O2xsIG5lZWQgdG8gdXNlIGByZWFkLWZpbGVgIGFuZCBsb2NhdGUgaXQgaW4gYGNvcmUuaGAuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQg4oCTIGBjb3JlLmhgIHVzdWFsbHkgaG9sZHMgdGhlIGZ1bmRhbWVudGFsIGRlZmluaXRpb25zIGZvciB0aGlzIGtpbmQgb2YgbG93LWxldmVsIGludGVyYWN0aW9uLiBPbmNlIEkgaGF2ZSB0aGUgZmlsZSBsb2FkZWQsIEkgY2FuIHRyYWNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiBhbmQgc2VlIHByZWNpc2VseSB3aGF0IG90aGVyIGJpdHMgYXJlIHJlbGF0ZWQgdG8gdGhhdCBzcGVjaWZpYyByb2xlIHNldHRpbmcuIFVuZGVyc3RhbmRpbmcgdGhpcyByZWxhdGlvbnNoaXAgaXMga2V5IHRvIGRlYnVnZ2luZyBvciBtb2RpZnlpbmcgYW55IHJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4gVGhpcyB3aWxsIGhvcGVmdWxseSBwcm92aWRlIHRoZSBjb250ZXh0IEkgbmVlZCB0byBtb3ZlIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4OTgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTg5ODpcdFxuMTg5OTpcdHN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xuMTkwMDpcdFx0dTE2IG5vbmU6IDE7XG4xOTAxOlx0XHR1MTYgc3RhdGlvbjogMTtcbjE5MDI6XHRcdHUxNiBhcDogMTtcbjE5MDM6XHRcdHUxNiB2YXA6IDE7XG4xOTA0Olx0XHR1MTYgYWRob2M6IDE7XG4xOTA1Olx0XHR1MTYgYWRob2NfbWFzdGVyOiAxO1xuMTkwNjpcdFx0dTE2IG1lc2g6IDE7XG4xOTA3Olx0XHR1MTYgbW9uaXRvcjogMTtcbjE5MDg6XHRcdHUxNiBwMnBfZGV2aWNlOiAxO1xuMTkwOTpcdFx0dTE2IHAycF9nYzogMTtcbjE5MTA6XHRcdHUxNiBwMnBfZ286IDE7XG4xOTExOlx0XHR1MTYgbmFuOiAxO1xuMTkxMjpcdH07XG4xOTEzOlx0XG4xOTE0Olx0c3RydWN0IHJ0dzg5X2J0Y19lc2xvdF9jdHJsIHtcbjE5MTU6XHRcdHU4IGVuOyAgLyogMTogdG9nZ2xlIHR4LWZsb3ctY3RybCAobnVsbCAwLzEpLCB0eC1wYXVzZSBieSBFeHQtc2xvdCAqL1xuMTkxNjpcdFx0dTggbnVsbHR4X3JvbGUxO1xuMTkxNzpcdFx0dTggbnVsbHR4X3JvbGUyO1xuMTkxODpcdFx0dTggbnVsbHR4X3ByZV90aW1lOyAvKiBudWxsLXR4IHRpbWUgcHJpb3IgdG8gRUJULXN0YXJ0IChmcm9tIEUyRy1lbmQpICovXG4xOTE5Olx0fTtcbjE5MjA6XHRcbjE5MjE6XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCB7XG4xOTIyOlx0XHR1MTYgdmFsO1xuMTkyMzpcdFx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyByb2xlO1xuMTkyNDpcdH07XG4xOTI1Olx0XG4xOTI2Olx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjAgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuMTkyNzpcdFx0dTggY29ubmVjdF9jbnQ7XG4xOTI4Olx0XHR1OCBsaW5rX21vZGU7XG4xOTI5Olx0XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbjE5MzA6XHRcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGUgYWN0aXZlX3JvbGVbUlRXODlfUE9SVF9OVU1dO1xuMTkzMTpcdH07XG4xOTMyOlx0XG4xOTMzOlx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuMTkzNDpcdFx0dTggY29ubmVjdF9jbnQ7XG4xOTM1Olx0XHR1OCBsaW5rX21vZGU7XG4xOTM2Olx0XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbjE5Mzc6XHRcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2NzA0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBWYXJpYWJsZSBVc2FnZSBpbiB0aGUgQ29kZWJhc2UqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlc2UgdmFyaWFibGVzLCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYCBhbmQgYHJvbGVfbWFwYCwgYXJlIGFjdHVhbGx5IGJlaW5nIHVzZWQuIEl0JiMzOTtzIGEgZmFpcmx5IHN0YW5kYXJkIGRlYnVnZ2luZyBzdGVwLCByZWFsbHkuIEkgd2FudCB0byB1bmRlcnN0YW5kIHRoZWlyIGltcGFjdCBhbmQsIHBvdGVudGlhbGx5LCBpZiB0aGV5IGNhbiBiZSBvcHRpbWl6ZWQgb3IgaWYgdGhlcmUgYXJlIHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zIGludm9sdmluZyB0aGVtLiBJJiMzOTtsbCBuZWVkIHRvIHJ1biBhIHF1aWNrIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlIHRvIGlkZW50aWZ5IGFsbCB0aGUgaW5zdGFuY2VzIHdoZXJlIHRoZXkmIzM5O3JlIHJlZmVyZW5jZWQuIFRoYXQgd2lsbCBwcm92aWRlIG1lIHdpdGggYSBsaXN0IG9mIGNvbnRleHRzIGluIHdoaWNoIHRoZXkgcGxheSBhIHJvbGUsIHRoZWlyIHNjb3BlLCBhbmQgaG93IHRoZXkgY29udHJpYnV0ZSB0byB0aGUgc3lzdGVtJiMzOTtzIGJlaGF2aW9yLiBUaW1lIHRvIGRlbHZlIGludG8gdGhlIGNvZGUgYW5kIHNlZSB3aGF0IEkgY2FuIGZpbmQhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cm9sZV9tYXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTQ3NjE9dm9pZCBydHc4OV9idGNfc2V0X3BvbGljeShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUxNiBwb2xpY3lfdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy00OTM5LVx0XHQqdCA9IHRfZGVmW0NYVERfUEZJWF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo0OTQwOlx0XHRpZiAoYnRjLVx1MDAzZWN4LndsLnJvbGVfaW5mby5yb2xlX21hcCAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfQVApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNDk0MS1cdFx0XHRfdGRtYV9zZXRfZmxjdHJsKGJ0YywgQ1hGTENfUU9TTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM9NzUyND1zdGF0aWMgdm9pZCBfbW9kaWZ5X3JvbGVfbGlua19tb2RlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggaHdfYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTMwLVx0dTggKmxpbmtfbW9kZSA9IFx1MDAyNndsX3JpbmZvLVx1MDAzZWxpbmtfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1MzE6XHR1MzIgcm9sZV9tYXAgPSB3bF9yaW5mby1cdTAwM2Vyb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1MzItXHR1OCBub2FfZXhpc3QgPSB3bC1cdTAwM2Vub2FfZXhpc3Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzNi1cdFx0KmxpbmtfbW9kZSA9IHdsX3JpbmZvLVx1MDAzZWxpbmtfbW9kZV9oYjE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTM3Olx0XHRyb2xlX21hcCA9IHdsX3JpbmZvLVx1MDAzZXJvbGVfbWFwX2hiMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1MzgtXHRcdGdvX2NsZWludF9leGlzdCA9IHdsLVx1MDAzZWdvX2NsaWVudF9leGlzdF9oYjE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzU0MS1cdC8qIGlmIG5vIGNsaWVudF9qb2luZWQsIGRvbiYjMzk7dCBjYXJlIFAyUC1HTy9BUCByb2xlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTQyOlx0aWYgKCgocm9sZV9tYXAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfUDJQX0dPKSkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NDM6XHQgICAgICAocm9sZV9tYXAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfQVApKSkgXHUwMDI2XHUwMDI2ICFnb19jbGVpbnRfZXhpc3QpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NDQtXHRcdGlmICgqbGlua19tb2RlID09IEJUQ19XTElOS19TQ0MpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTU1LVx0ICAgICAqbGlua19tb2RlID09IEJUQ19XTElOS19EQl9NQ0MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NTY6XHRcdGlmICgocm9sZV9tYXAgXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfUDJQX0dPKSkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NTc6XHRcdCAgICAgKHJvbGVfbWFwIFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX0FQKSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NTgtXHRcdFx0aWYgKG5vYV9leGlzdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTYxLVx0XHRcdFx0bXJvbGUgPSBCVENfV0xNUk9MRV9TVEFfR087XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTYyOlx0XHR9IGVsc2UgaWYgKHJvbGVfbWFwIFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX1AyUF9DTElFTlQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTYzLVx0XHRcdGlmIChub2FfZXhpc3QpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM9NzU4Nz1zdGF0aWMgdm9pZCBfdXBkYXRlX3dsX2luZm8oc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfYnRjX3dsX2xpbmtfaW5mbyAqd2xfbGluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzU5OC1cdHU4IGksIGxpbmtfbW9kZV9vcmk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTk5Olx0dTMyIHJvbGVfbWFwID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2MDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc2NDc6XHRcdHJvbGVfbWFwIHw9IEJJVChybGluay1cdTAwM2Vyb2xlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2NDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY3OS1cdFx0d2xfcmluZm8tXHUwMDNlcDJwX2V4aXN0ID0gcDJwX2V4aXN0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzY4MDpcdFx0d2xfcmluZm8tXHUwMDNlcm9sZV9tYXAgPSByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODEtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODctXHRcdHdsX3JpbmZvLVx1MDAzZXAycF9leGlzdF9oYjEgPSBwMnBfZXhpc3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3Njg4Olx0XHR3bF9yaW5mby1cdTAwM2Vyb2xlX21hcF9oYjEgPSByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODktXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTkyNj1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MCB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyOC1cdHU4IGxpbmtfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5Mjk6XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MzAtXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlIGFjdGl2ZV9yb2xlW1JUVzg5X1BPUlRfTlVNXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTMzPXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YxIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM1LVx0dTggbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkzNjpcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzNy1cdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5NDg9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjIgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTAtXHR1OCBsaW5rX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTUxOlx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTUyLVx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MiBhY3RpdmVfcm9sZV92MltSVFc4OV9QT1JUX05VTV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MjAwMz1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192NyB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAxMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwMTE6XHRfX2xlMzIgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0yMDEyLVx0X19sZTMyIG1yb2xlX3R5cGU7IC8qIGJ0Y193bF9tcm9sZV90eXBlICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MjAxOT1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192OCB7IC8qIEgyQyBpbmZvLCBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDMyOlx0X19sZTMyIHJvbGVfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAzMy1cdF9fbGUzMiBtcm9sZV90eXBlOyAvKiBidGNfd2xfbXJvbGVfdHlwZSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwMzc9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEwIHsgLyogSDJDIGluZm8sIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjA0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwNDk6XHRfX2xlMzIgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDUwOlx0X19sZTMyIHJvbGVfbWFwX2hiMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwNTEtXHRfX2xlMzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGU6IFszMToxNl06YmFuZDEsIFsxNTowXTpiYW5kMCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwODY9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm8geyAvKiBMb2dpYyBkeW5hbWljIHVzaW5nICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjA5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwOTg6XHR1MzIgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDk5Olx0dTMyIHJvbGVfbWFwX2hiMTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIxMDAtXHR1MzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGU6IFszMToxNl06YmFuZDEsIFsxNTowXTpiYW5kMCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02MDU4PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTYwNjUtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYwNjY6XHR1MzIgcm1hcCA9IHItXHUwMDNlcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjA2Ny1cdHU4IG9mZnNldCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYxNDA9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjE0Ny1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjE0ODpcdHUzMiBybWFwID0gci1cdTAwM2Vyb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MTQ5LVx0dTggKmNtZCwgb2Zmc2V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02MjI5PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MTAxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjI1My1cdGgyYy1cdTAwM2VsaW5rX21vZGUgPSByb2xlX2luZm8tXHUwMDNlbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYyNTQ6XHRoMmMtXHUwMDNlcm9sZV9tYXAgPSBjcHVfdG9fbGUxNihyb2xlX2luZm8tXHUwMDNlcm9sZV9tYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTYyNTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYzMTQ9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3YyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjMyMS1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjMyMjpcdHUzMiBybWFwID0gci1cdTAwM2Vyb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MzIzLVx0dTMyIGxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9NjM5OT1pbnQgcnR3ODlfZndfaDJjX2N4ZHJ2X3JvbGVfdjcoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02NDQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY0NDQ6XHRybSA9IGNwdV90b19sZTMyKHItXHUwMDNlcm9sZV9tYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY0NDU6XHRtZW1jcHkoXHUwMDI2aDJjLVx1MDAzZXIucm9sZV9tYXAsIFx1MDAyNnJtLCBzaXplb2YoaDJjLVx1MDAzZXIucm9sZV9tYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02NDQ2LVx0aDJjLVx1MDAzZXIubXJvbGVfdHlwZSA9IGNwdV90b19sZTMyKHItXHUwMDNlbXJvbGVfdHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTY0NzA9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3Y4KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjUyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTIxOlx0cm0gPSBjcHVfdG9fbGUzMihyLVx1MDAzZXJvbGVfbWFwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTIyOlx0bWVtY3B5KFx1MDAyNmgyYy1cdTAwM2VyLnJvbGVfbWFwLCBcdTAwMjZybSwgc2l6ZW9mKGgyYy1cdTAwM2VyLnJvbGVfbWFwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjUyMy1cdGgyYy1cdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVx1MDAzZW1yb2xlX3R5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02NTQ0PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MTAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02NTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTc6XHRybSA9IGNwdV90b19sZTMyKHItXHUwMDNlcm9sZV9tYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTg6XHRtZW1jcHkoXHUwMDI2aDJjLVx1MDAzZXIucm9sZV9tYXAsIFx1MDAyNnJtLCBzaXplb2YoaDJjLVx1MDAzZXIucm9sZV9tYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTk5Olx0cm0gPSBjcHVfdG9fbGUzMihyLVx1MDAzZXJvbGVfbWFwX2hiMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjYwMDpcdG1lbWNweShcdTAwMjZoMmMtXHUwMDNlci5yb2xlX21hcF9oYjEsIFx1MDAyNnJtLCBzaXplb2YoaDJjLVx1MDAzZXIucm9sZV9tYXBfaGIxKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjYwMS1cdGgyYy1cdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVx1MDAzZW1yb2xlX3R5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaD0yNjQ5PXN0cnVjdCBydHc4OV9oMmNfY3hyb2xlX3YxMDEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC0yNjUyLVx0dTggbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjI2NTM6XHRfX2xlMTYgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtMjY1NC1cdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEwMSBhY3Rfcm9sZVtSVFc4OV9QT1JUX05VTV07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEzNjMKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA4NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGFuIGV4cGVydCBpbiB0aGlzIGFyZWE6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIERhdGEgU3RydWN0dXJlIFVzYWdlKioKCk9rYXksIHNvIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgc2NvcGUgb2YgdGhlc2UgdHdvIHZhcmlhYmxlcywgYHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwYCBhbmQgYHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvc2AuIEkgc3VzcGVjdCB0aGVyZSBtaWdodCBiZSBzb21lIGludGVycGxheSBiZXR3ZWVuIHRoZW0uIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHNlZSBob3cgdGhleSBhcmUgYWN0dWFsbHkgYmVpbmcgdXNlZCB3aXRoaW4gdGhlIGNvZGViYXNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGVzZSBzdHJ1Y3R1cmVzIGFyZSBkZWZpbmVkLCBpbml0aWFsaXplZCwgYW5kIGFjY2Vzc2VkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlaXIgcHVycG9zZS4gSSBpbW1lZGlhdGVseSB3YW50IHRvIGNvbmZpcm0gaWYgdGhlIGxhdHRlciwgYHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvc2AsIGlzIHVuaXF1ZSB0byBhIHNwZWNpZmljIGFyZWEgb3IgaWYgaXQmIzM5O3MgdXRpbGl6ZWQgbW9yZSBicm9hZGx5LiBUaGVuIEkmIzM5O2xsIGV4cGFuZCBteSBzZWFyY2guCgpNeSBuZXh0IHN0ZXAgaXMgdG8gcGVyZm9ybSBhIHRhcmdldGVkIHNlYXJjaC4gSSYjMzk7bGwgdXNlIGBncmVwYCAob3IgbXkgcHJlZmVycmVkIHNlYXJjaCB0b29sKSBhbmQgbG9vayBmb3Igb2NjdXJyZW5jZXMgb2YgYHJvbGVfaW5mb19icG9zYCAqYW5kKiBgcm9sZV9pbmZvX21hcGAuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyB0aGVzZSBzdHJ1Y3R1cmVzIGFyZSBlbXBsb3llZC4gVGhpcyB3aWxsIGhlbHAgbWUgdHJhY2UgdGhlIGRhdGEgZmxvdyBhbmQgdW5kZXJzdGFuZCB0aGUgbG9naWMgYXJvdW5kIHRoZXNlIHZhcmlhYmxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7KHJvbGVfaW5mb19icG9zfHJvbGVfaW5mb19tYXApJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xODgyPXN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjcge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE4OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxODk5OnN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwMC1cdHUxNiBub25lOiAxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MTQ9c3RydWN0IHJ0dzg5X2J0Y19lc2xvdF9jdHJsIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkyMTp1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTIyLVx0dTE2IHZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5MjM6XHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zIHJvbGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTI0LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTkyNj1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MCB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyOC1cdHU4IGxpbmtfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5Mjk6XHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MzAtXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlIGFjdGl2ZV9yb2xlW1JUVzg5X1BPUlRfTlVNXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTMzPXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YxIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM1LVx0dTggbGlua19tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkzNjpcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzNy1cdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5NDg9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjIgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTAtXHR1OCBsaW5rX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTUxOlx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTUyLVx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MiBhY3RpdmVfcm9sZV92MltSVFc4OV9QT1JUX05VTV07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNjU1CgkJCQkJCQlvdXRwdXQ6IDY5CgkJCQkJCQl0aG91Z2h0czogOTg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBhdGNoIEFuYWx5c2lzOiBTcGVsbGluZyBhbmQgQ29tbWVudCBGaXhlcyAtIFdvcnRoRnV6emluZz1mYWxzZSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYCBqdXN0IGhhZCBhIG1pbm9yIGZpZWxkIG5hbWUgY2hhbmdlIChgbW9uaXRlcmAgdG8gYG1vbml0b3JgKSB3aXRoaW4gYSBzdHJ1Y3QgZGVmaW5pdGlvbi4gQnV0LCB0aGUgY29kZSBkb2VzbiYjMzk7dCBhY3R1YWxseSBhY2Nlc3MgdGhlIGZpZWxkIGJ5IG5hbWU7IGl0IHVzZXMgZWl0aGVyIGAudmFsYCBvciB0cmVhdHMgYHJvbGVfbWFwYCBhcyBhIGJpdG1hc2sgd2l0aGluIGEgdW5pb24uIFNvLCB0aGUgaW1wYWN0IG9mIHRoYXQgc3BlY2lmaWMgY2hhbmdlIGFwcGVhcnMgbmVnbGlnaWJsZS4KCk5vdywgbGV0JiMzOTtzIHN0ZXAgdGhyb3VnaCBlYWNoIGZpbGUgdG91Y2hlZCBpbiB0aGUgcGF0Y2ggbW9yZSBjYXJlZnVsbHk6CgoxLiAgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oYDogV2UmIzM5O3JlIHNlZWluZyB0aGUgYHUxNiBtb25pdGVyOiAxO2AgYmVjb21pbmcgYHUxNiBtb25pdG9yOiAxO2AuIFRoYXQmIzM5O3MgYSBzaW1wbGUgc3BlbGxpbmcgY29ycmVjdGlvbiBpbiBhIHN0cnVjdCBmaWVsZCBuYW1lLiBUaGVyZSYjMzk7cyBhbHNvIGEgY29tbWVudCB0eXBvIGZpeDogJiMzNDtzZXJhY2gmIzM0OyB0byAmIzM0O3NlYXJjaCYjMzQ7LgoKMi4gIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNgOiBUd28gbW9yZSB0eXBvIGZpeGVzOiBvbmUgaW4gYW4gZXJyb3IgbG9nIHN0cmluZyAoJiMzNDtVbnN1cHBvcnQmIzM0OyB0byAmIzM0O1Vuc3VwcG9ydGVkJiMzNDspIGFuZCBhbm90aGVyIGluIGEgY29tbWVudCAoJiMzNDtub2ZpdHkmIzM0OyB0byAmIzM0O25vdGlmeSYjMzQ7KS4KCjMuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY2A6IEFnYWluLCB0eXBvIGZpeGVzLiBPbmUgaW4gYSBkZWJ1ZyBsb2cgc3RyaW5nICgmIzM0O3VwZGF0JiMzNDsgdG8gJiMzNDt1cGRhdGUmIzM0OykgYW5kIGFub3RoZXIgaW4gYSBjb21tZW50ICgmIzM0O2xhZ2FjeSYjMzQ7IHRvICYjMzQ7bGVnYWN5JiMzNDspLgoKQWxyaWdodCwgbGV0JiMzOTtzIGRvdWJsZS1jaGVjayB0aGUgJiMzNDtXaGVuIHRvIFJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBndWlkZWxpbmVzLiBNeSBtZW50YWwgY2hlY2tsaXN0IGZvciB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYSBpczoKCiogICBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzPyBDaGVjay4KKiAgIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbiwgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzPyBDaGVjay4KKiAgIFVzZXItc3BhY2UgY2hhbmdlcyB0aGF0IGRvbiYjMzk7dCBhZmZlY3QgdGhlIGtlcm5lbCBpbWFnZT8gTm90IGFwcGxpY2FibGUgaGVyZS4KKiAgIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgdGhhdCBkb2VzbiYjMzk7dCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzPyBDaGVjay4KKiAgIEJ1aWxkIHN5c3RlbS9LY29uZmlnIGNoYW5nZXMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYz8gTm90IGFwcGxpY2FibGUgaGVyZS4KCkFuYWx5emluZyBlYWNoIGNoYW5nZSBhZ2FpbjoKCjEuICBTdHJ1Y3QgZmllbGQgbmFtZSAoYG1vbml0ZXJgIHRvIGBtb25pdG9yYCk6IFNwZWxsaW5nIGZpeCBpbiBhbiB1bnVzZWQgZmllbGQuIFRoaXMgZG9lc24mIzM5O3QgY2hhbmdlIGJpbmFyeSBsYXlvdXQsIGRhdGEgc3RydWN0dXJlIHNpemUsIG9yIGNvbnRyb2wgZmxvdy4gSXQmIzM5O3Mgc2FmZSB0byBhc3N1bWUgYSBjb21waWxlciBoYW5kbGVzIHRoaXMgd2l0aG91dCBpc3N1ZS4KMi4gIENvbW1lbnQgc3BlbGxpbmcgZml4OiAmIzM0O3NlcmFjaCYjMzQ7IHRvICYjMzQ7c2VhcmNoJiMzNDsuCjMuICBMb2dnaW5nIGZpeDogJiMzNDtVbnN1cHBvcnQmIzM0OyB0byAmIzM0O1Vuc3VwcG9ydGVkJiMzNDsgLSBwdXJlbHkgZGVjb3JhdGl2ZSBhbmQgZG9lc24mIzM5O3QgYWZmZWN0IG9wZXJhdGlvbi4KNC4gIENvbW1lbnQgZml4OiAmIzM0O25vZml0eSYjMzQ7IHRvICYjMzQ7bm90aWZ5JiMzNDsgLSBwdXJlbHkgY29zbWV0aWMuCjUuICBMb2dnaW5nIGZpeDogJiMzNDt1cGRhdCYjMzQ7IHRvICYjMzQ7dXBkYXRlJiMzNDsgLSBhbm90aGVyIG1pbm9yIGNvcnJlY3Rpb24uCjYuICBDb21tZW50IGZpeDogJiMzNDtsYWdhY3kmIzM0OyB0byAmIzM0O2xlZ2FjeSYjMzQ7IC0gYSBiaXQgb2YgcG9saXNoLgoKRWFjaCBjaGFuZ2UgY2xlYXJseSBmYWxscyB1bmRlciB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYS4gTm90aGluZyB0b3VjaGVzIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgZGF0YSBzdHJ1Y3R1cmUgc2l6ZS9sYXlvdXQsIG9yIGFzc2VydGlvbnMuIEV2ZW4gaWYgd2UgaGFkIGhhcmR3YXJlLCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgaXQgd291bGQgcmVxdWlyZSBhIHBoeXNpY2FsIHJhZGlvLCBvciBod3NpbSwgYW5kIHRoaXMgd291bGQgc3RpbGwgYmUgdGhlIGNhc2UuIEkgd291bGQgc3RpbGwgZGVlbSB0aGlzIGEgY29zbWV0aWMgcGF0Y2guCgpHaXZlbiB0aGlzIHRob3JvdWdoIHJldmlldyBhbmQgbXkgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIHRoZXNlIHdpcmVsZXNzIGRyaXZlcnMsIEkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgdGhlIHJlc3VsdHMuCgpIZXJlJiMzOTtzIHdoYXQgSSYjMzk7bGwgc2V0OgoKKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgCiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAgKEJlY2F1c2UgdGhlcmUgaXMgbm8gZm9jdXMuKQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChCZWNhdXNlIHRoZXJlIGlzIG5vIGNvbmZpZyB0byBlbmFibGUuKQoqICAgYFJlYXNvbmluZ2A6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgY29uc2lzdHMgb2Ygc3BlbGxpbmcgZml4ZXMgaW4gY29tbWVudHMsIGxvZyBtZXNzYWdlcywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUsIHdpdGggbm8gZnVuY3Rpb25hbCBvciBsb2dpYyBjaGFuZ2VzLiYjMzQ7CgpUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjb250YWlucyBvbmx5IHNwZWxsaW5nIGFuZCB0eXBvIGZpeGVzIGluIGNvbW1lbnRzLCBsb2cvZGVidWcgbWVzc2FnZSBzdHJpbmdzLCBhbmQgYSBzdHJ1Y3QgZmllbGQgbmFtZS4gTm8gZXhlY3V0YWJsZSBsb2dpYywgY29udHJvbCBmbG93LCBhc3NlcnRpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgd2VyZSBhbHRlcmVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggY29udGFpbnMgb25seSBzcGVsbGluZyBhbmQgdHlwbyBmaXhlcyBpbiBjb21tZW50cywgbG9nL2RlYnVnIG1lc3NhZ2Ugc3RyaW5ncywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUuIE5vIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgYXNzZXJ0aW9ucywgb3IgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgYWx0ZXJlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjQzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNS42OTIxNTIwODJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDUyMzk0NzQ0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNvbnRhaW5zIG9ubHkgc3BlbGxpbmcgYW5kIHR5cG8gZml4ZXMgaW4gY29tbWVudHMsIGxvZy9kZWJ1ZyBtZXNzYWdlIHN0cmluZ3MsIGFuZCBhIHN0cnVjdCBmaWVsZCBuYW1lLiBObyBleGVjdXRhYmxlIGxvZ2ljLCBjb250cm9sIGZsb3csIGFzc2VydGlvbnMsIG9yIGRhdGEgc3RydWN0dXJlcyB3ZXJlIGFsdGVyZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNS42OTIxNTc3MjJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3OTAyNzgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGZjMjkwZjg2MmUyMTFkOWRiZDBhYzYzNmVjODUxNTY2YWRhYWM1OWVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgNiAwODo0MjozNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXFxuaW5kZXggMmIyMWQ5NjllY2U3Yi4uODE0ZjNiOTRjZmNkMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oXFxuQEAgLTE5MDQsNyArMTkwNCw3IEBAIHN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xcbiBcXHR1MTYgYWRob2M6IDE7XFxuIFxcdHUxNiBhZGhvY19tYXN0ZXI6IDE7XFxuIFxcdHUxNiBtZXNoOiAxO1xcbi1cXHR1MTYgbW9uaXRlcjogMTtcXG4rXFx0dTE2IG1vbml0b3I6IDE7XFxuIFxcdHUxNiBwMnBfZGV2aWNlOiAxO1xcbiBcXHR1MTYgcDJwX2djOiAxO1xcbiBcXHR1MTYgcDJwX2dvOiAxO1xcbkBAIC0zOTI1LDcgKzM5MjUsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfY2VsbCB7XFxuIHN0cnVjdCBydHc4OV9idGNfZmRkcl9yZXN1bHQge1xcbiBcXHR1OCB3bF9yeF9saW1pdDtcXG4gXFx0dTggd2xfcnhfbGltaXRfc3RlcFs2XTsgLyogcmVjb3JkIHNlYXJjaCBwcm9jZXNzICovXFxuLVxcdHU4IHNlYXJjaF9jbnQ7IC8qIHRoZSByeC1saW1pdCBzZXJhY2ggY291bnQgKi9cXG4rXFx0dTggc2VhcmNoX2NudDsgLyogdGhlIHJ4LWxpbWl0IHNlYXJjaCBjb3VudCAqL1xcbiBcXHR1MzIgd2xfdHA7XFxuIFxcdHUzMiB3bF90cF9zdGVwWzZdOyAvKiByZWNvcmQgc2VhcmNoIHByb2Nlc3MgKi9cXG4gfTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jXFxuaW5kZXggMDA5OWM1YzAzZTdhNi4uZWNlZGZkNmY2NGEzZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcXG5AQCAtMzA2LDcgKzMwNiw3IEBAIHN0YXRpYyBpbnQgX19wYXJzZV9mb3JtYXR0ZWRfbXNzYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuIFxcdFxcdGlmIChtc3NfaGRyLVxcdTAwM2VkZWZlbilcXG4gXFx0XFx0XFx0cm1wX3RibF9zaXplICs9IEZXRExfTVNTX1BPT0xfREVGS0VZU0VUU19TSVpFO1xcbiBcXHR9IGVsc2Uge1xcbi1cXHRcXHRydHc4OV9lcnIocnR3ZGV2LCBcXFwiW0VSUl0gTVNTIEtleSBQb29sIFJlbWFwIFRhYmxlIEZvcm1hdCBVbnN1cHBvcnQ6JVhcXFxcblxcXCIsXFxuK1xcdFxcdHJ0dzg5X2VycihydHdkZXYsIFxcXCJbRVJSXSBNU1MgS2V5IFBvb2wgUmVtYXAgVGFibGUgRm9ybWF0IFVuc3VwcG9ydGVkOiVYXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgIG1zc19oZHItXFx1MDAzZXJtcGZtdCk7XFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHR9XFxuQEAgLTExMjE0LDcgKzExMjE0LDcgQEAgaW50IHJ0dzg5X2Z3X2gyY193b3dfcmVxdWVzdF9hb2FjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4gXFxuIFxcdHNrYl9wdXQoc2tiLCBsZW4pO1xcbiBcXG4tXFx0LyogVGhpcyBIMkMgb25seSBub2ZpdHkgZmlybXdhcmUgdG8gZ2VuZXJhdGUgQU9BQyByZXBvcnQgQzJILFxcbitcXHQvKiBUaGlzIEgyQyBvbmx5IG5vdGlmeSBmaXJtd2FyZSB0byBnZW5lcmF0ZSBBT0FDIHJlcG9ydCBDMkgsXFxuIFxcdCAqIG5vIG5lZWQgYW55IHBhcmFtZXRlci5cXG4gXFx0ICovXFxuIFxcdHJ0dzg5X2gyY19wa3Rfc2V0X2hkcihydHdkZXYsIHNrYiwgRldDTURfVFlQRV9IMkMsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jXFxuaW5kZXggYzc4MTA3ZTkyMjA2My4uNDNiMzU1MmY1YTk2YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xcbkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBydHc4OV9waHlfcmFfdXBkYXRlX3N0YV9saW5rKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4gXFx0XFx0cmEtXFx1MDAzZXVwZF9id19uc3NfbWFzayA9IDE7XFxuIFxcbiBcXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19SQSxcXG4tXFx0XFx0ICAgIFxcXCJyYSB1cGRhdDogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcXFwiLFxcbitcXHRcXHQgICAgXFxcInJhIHVwZGF0ZTogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcXFwiLFxcbiBcXHRcXHQgICAgcmEtXFx1MDAzZW1hY2lkLFxcbiBcXHRcXHQgICAgcmEtXFx1MDAzZWJ3X2NhcCxcXG4gXFx0XFx0ICAgIHJhLVxcdTAwM2Vzc19udW0sXFxuQEAgLTY1OSw3ICs2NTksNyBAQCB2b2lkIF9fcnR3ODlfcGh5X3JhdGVfcGF0dGVybl92aWYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHQgIDAsIHRydWUpKVxcbiBcXHRcXHRcXHRnb3RvIG91dDtcXG4gXFxuLVxcdC8qIGxhZ2FjeSBjYW5ub3QgYmUgZW1wdHkgZm9yIG5sODAyMTFfcGFyc2VfdHhfYml0cmF0ZV9tYXNrLCBhbmRcXG4rXFx0LyogbGVnYWN5IGNhbm5vdCBiZSBlbXB0eSBmb3Igbmw4MDIxMV9wYXJzZV90eF9iaXRyYXRlX21hc2ssIGFuZFxcbiBcXHQgKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBiYXNpYyByYXRlIGZvciBpZWVlODAyMTFfc2V0X2JpdHJhdGVfbWFzayxcXG4gXFx0ICogc28gdGhlIGRlY2lzaW9uIGp1c3QgZGVwZW5kcyBvbiBpZiBhbGwgYml0cmF0ZXMgYXJlIHNldCBvciBub3QuXFxuIFxcdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNi4yNzE4NTE3MzRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjIzOTQ0MjMxNTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb250YWlucyBvbmx5IHNwZWxsaW5nIGFuZCB0eXBvIGZpeGVzIGluIGNvbW1lbnRzLCBsb2cvZGVidWcgbWVzc2FnZSBzdHJpbmdzLCBhbmQgYSBzdHJ1Y3QgZmllbGQgbmFtZS4gTm8gZXhlY3V0YWJsZSBsb2dpYywgY29udHJvbCBmbG93LCBhc3NlcnRpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgd2VyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmYzI5MGY4NjJlMjExZDlkYmQwYWM2MzZlYzg1MTU2NmFkYWFjNTllXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgNiAwODo0MjozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhcbmluZGV4IDJiMjFkOTY5ZWNlN2IuLjgxNGYzYjk0Y2ZjZDMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhcbkBAIC0xOTA0LDcgKzE5MDQsNyBAQCBzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zIHtcbiBcdHUxNiBhZGhvYzogMTtcbiBcdHUxNiBhZGhvY19tYXN0ZXI6IDE7XG4gXHR1MTYgbWVzaDogMTtcbi1cdHUxNiBtb25pdGVyOiAxO1xuK1x0dTE2IG1vbml0b3I6IDE7XG4gXHR1MTYgcDJwX2RldmljZTogMTtcbiBcdHUxNiBwMnBfZ2M6IDE7XG4gXHR1MTYgcDJwX2dvOiAxO1xuQEAgLTM5MjUsNyArMzkyNSw3IEBAIHN0cnVjdCBydHc4OV9idGNfZmRkcl9jZWxsIHtcbiBzdHJ1Y3QgcnR3ODlfYnRjX2ZkZHJfcmVzdWx0IHtcbiBcdHU4IHdsX3J4X2xpbWl0O1xuIFx0dTggd2xfcnhfbGltaXRfc3RlcFs2XTsgLyogcmVjb3JkIHNlYXJjaCBwcm9jZXNzICovXG4tXHR1OCBzZWFyY2hfY250OyAvKiB0aGUgcngtbGltaXQgc2VyYWNoIGNvdW50ICovXG4rXHR1OCBzZWFyY2hfY250OyAvKiB0aGUgcngtbGltaXQgc2VhcmNoIGNvdW50ICovXG4gXHR1MzIgd2xfdHA7XG4gXHR1MzIgd2xfdHBfc3RlcFs2XTsgLyogcmVjb3JkIHNlYXJjaCBwcm9jZXNzICovXG4gfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcbmluZGV4IDAwOTljNWMwM2U3YTYuLmVjZWRmZDZmNjRhM2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuY1xuQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgaW50IF9fcGFyc2VfZm9ybWF0dGVkX21zc2Moc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxuIFx0XHRpZiAobXNzX2hkci1cdTAwM2VkZWZlbilcbiBcdFx0XHRybXBfdGJsX3NpemUgKz0gRldETF9NU1NfUE9PTF9ERUZLRVlTRVRTX1NJWkU7XG4gXHR9IGVsc2Uge1xuLVx0XHRydHc4OV9lcnIocnR3ZGV2LCBcIltFUlJdIE1TUyBLZXkgUG9vbCBSZW1hcCBUYWJsZSBGb3JtYXQgVW5zdXBwb3J0OiVYXFxuXCIsXG4rXHRcdHJ0dzg5X2VycihydHdkZXYsIFwiW0VSUl0gTVNTIEtleSBQb29sIFJlbWFwIFRhYmxlIEZvcm1hdCBVbnN1cHBvcnRlZDolWFxcblwiLFxuIFx0XHRcdCAgbXNzX2hkci1cdTAwM2VybXBmbXQpO1xuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbkBAIC0xMTIxNCw3ICsxMTIxNCw3IEBAIGludCBydHc4OV9md19oMmNfd293X3JlcXVlc3RfYW9hYyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4gXG4gXHRza2JfcHV0KHNrYiwgbGVuKTtcbiBcbi1cdC8qIFRoaXMgSDJDIG9ubHkgbm9maXR5IGZpcm13YXJlIHRvIGdlbmVyYXRlIEFPQUMgcmVwb3J0IEMySCxcbitcdC8qIFRoaXMgSDJDIG9ubHkgbm90aWZ5IGZpcm13YXJlIHRvIGdlbmVyYXRlIEFPQUMgcmVwb3J0IEMySCxcbiBcdCAqIG5vIG5lZWQgYW55IHBhcmFtZXRlci5cbiBcdCAqL1xuIFx0cnR3ODlfaDJjX3BrdF9zZXRfaGRyKHJ0d2Rldiwgc2tiLCBGV0NNRF9UWVBFX0gyQyxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY1xuaW5kZXggYzc4MTA3ZTkyMjA2My4uNDNiMzU1MmY1YTk2YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmNcbkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBydHc4OV9waHlfcmFfdXBkYXRlX3N0YV9saW5rKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcbiBcdFx0cmEtXHUwMDNldXBkX2J3X25zc19tYXNrID0gMTtcbiBcbiBcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1JBLFxuLVx0XHQgICAgXCJyYSB1cGRhdDogbWFjaWQgPSAlZCwgYncgPSAlZCwgbnNzID0gJWQsIGdpID0gJWQgJWRcIixcbitcdFx0ICAgIFwicmEgdXBkYXRlOiBtYWNpZCA9ICVkLCBidyA9ICVkLCBuc3MgPSAlZCwgZ2kgPSAlZCAlZFwiLFxuIFx0XHQgICAgcmEtXHUwMDNlbWFjaWQsXG4gXHRcdCAgICByYS1cdTAwM2Vid19jYXAsXG4gXHRcdCAgICByYS1cdTAwM2Vzc19udW0sXG5AQCAtNjU5LDcgKzY1OSw3IEBAIHZvaWQgX19ydHc4OV9waHlfcmF0ZV9wYXR0ZXJuX3ZpZihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXG4gXHRcdFx0XHRcdCAgMCwgdHJ1ZSkpXG4gXHRcdFx0Z290byBvdXQ7XG4gXG4tXHQvKiBsYWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kXG4rXHQvKiBsZWdhY3kgY2Fubm90IGJlIGVtcHR5IGZvciBubDgwMjExX3BhcnNlX3R4X2JpdHJhdGVfbWFzaywgYW5kXG4gXHQgKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBiYXNpYyByYXRlIGZvciBpZWVlODAyMTFfc2V0X2JpdHJhdGVfbWFzayxcbiBcdCAqIHNvIHRoZSBkZWNpc2lvbiBqdXN0IGRlcGVuZHMgb24gaWYgYWxsIGJpdHJhdGVzIGFyZSBzZXQgb3Igbm90LlxuIFx0ICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MjozNi4yNzE4OTY5MzRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo5NTE3OTk1NjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFN1YnRsZSBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGRpZmYuIEZpcnN0LCBhIHF1aWNrIG92ZXJ2aWV3OiB3ZSdyZSBsb29raW5nIGF0IHNvbWUgYWRqdXN0bWVudHMgdG8gdGhlIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgcnR3ODlgIGRpcmVjdG9yeS4gSXQncyBhIHNtYWxsIHBhdGNoLCBidXQgd2UgbmVlZCB0byBlbnN1cmUgZXZlcnl0aGluZydzIGNsZWFuLlxuXG5JJ20gc2VlaW5nIGNoYW5nZXMgaW4gYGNvcmUuaGAsIGBmdy5jYCwgYW5kIGBwaHkuY2AuIFRoZSBmaXJzdCBjaGFuZ2UsIGEgc2ltcGxlIHR5cG8gY29ycmVjdGlvbiwgaXMgdGhlIG1vc3Qgb2J2aW91cy4gUmVwbGFjaW5nIGBtb25pdGVyYCB3aXRoIGBtb25pdG9yYCBpbiBgY29yZS5oYC4gIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBzdHJ1Y3QgbWVtYmVyIGlzbid0IHJlZmVyZW5jZWQgYW55d2hlcmUgdXNpbmcgdGhlIGluY29ycmVjdCBzcGVsbGluZy4gSXQncyBnb29kIHByYWN0aWNlIHRvIGdyZXAgZm9yIGBtb25pdGVyYCB3aXRoaW4gdGhlIGNvZGViYXNlLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IG5vIG9uZSBpcyBpbmFkdmVydGVudGx5IHVzaW5nIGl0LlxuXG5Nb3Zpbmcgb24sIHRoZSBvdGhlciBjaGFuZ2VzIGFyZSBtaW5vciBjb21tZW50IHR5cG8gZml4ZXMuICBJbiBgZncuY2AsIHdlIHNlZSBhIHN0cmluZyBjb3JyZWN0aW9uIGFuZCBpbiB0aGUgc2FtZSBmaWxlLCB0aGUgY29ycmVjdGlvbiBvZiBgbm9maXR5YCB0byBgbm90aWZ5YC4gIFNhbWUgZm9yIHRoZSBgcGh5LmNgIHdpdGggdGhlIGByYSB1cGRhdGAgdG8gYHJhIHVwZGF0ZWAgYW5kIGBsYWdhY3lgIHRvIGBsZWdhY3lgIHR5cG8gZml4ZXMuICBUaGVzZSBhcmUgZWFzeSwgYnV0IGl0J3MgaW1wb3J0YW50IHRvIGtlZXAgdGhlIGNvZGUgYmFzZSBjbGVhbiBhbmQgcmVhZGFibGUuXG5cblVsdGltYXRlbHksIHRoZXNlIHNlZW0gbGlrZSBtaW5vciBjb3NtZXRpYyBmaXhlcy4gIEhvd2V2ZXIsIHRoYXQgc3BlbGxpbmcgY29ycmVjdGlvbiByZXF1aXJlcyBhIHF1aWNrIGdyZXAgYWNyb3NzIHRoZSBwcm9qZWN0IHRvIGVuc3VyZSBubyBvbGQgcmVmZXJlbmNlcyBvciBidWdzIGFyZSBoaWRpbmcgaW4gcGxhaW4gc2lnaHQuIFRoYXQncyB0aGUgcHJpb3JpdHkgbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTUzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6NDI6NDUuNzg5ODk1Mzk1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMjMxNzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIihtb25pdGVyfG1vbml0b3IpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTIxPXZvaWQgcnR3ODlfY2hpcF9yZmtfY2hhbm5lbChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01MjQtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1MjU6XFx0Ym9vbCBtb24gPSAhIXJ0d2Rldi1cXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTUyNi1cXHRib29sIHByZWhkbF9saW5rID0gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01NTI9c3RhdGljIHZvaWQgcnR3ODlfY2hpcF9yZmtfY2hhbm5lbF9mb3JfcHVyZV9tb25fdmlmKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTU1OlxcdHN0cnVjdCBydHc4OV92aWYgKnJ0d3ZpZiA9IHJ0d2Rldi1cXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1Ni1cXHRzdHJ1Y3QgcnR3ODlfdmlmX2xpbmsgKnJ0d3ZpZl9saW5rO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9Mzc5Mj1zdGF0aWMgdm9pZCBydHc4OV9jb3JlX3VwZGF0ZV9yYWRpb3RhcChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0zODAxLVxcdC8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6MzgwMjpcXHQgKiBBdCB0cmFuc2llbnQgYWRkaW5nIGEgbW9uaXRvciB2aWYgZnJvbSBhIHN0YXRpb24gdmlmLCB0aGUgaGVhZHJvb21cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy0zODAzLVxcdCAqIG1pZ2h0IG5vdCBpbmNsdWRlIHJhZGlvdGFwLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM9NTUwMz1zdGF0aWMgdm9pZCBydHc4OV90cmFja193b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmMtNTUyOS1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTUzMDpcXHRydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU1MzEtXFx0cnR3ODlfY29yZV9iY25fdHJhY2socnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTMyLVxcdHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmM6NTUzMzpcXHRydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2socnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01NTM0LVxcdHJ0dzg5X3BoeV9kaWcocnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jPTU4MTg9aW50IHJ0dzg5X2NvcmVfc3RhX2xpbmtfZGlzY29ubmVjdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jOjU4MjY6XFx0cnR3ODlfbWFjX2JmX21vbml0b3JfY2FsYyhydHdkZXYsIHJ0d3N0YV9saW5rLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYy01ODI3LVxcdHJ0dzg5X21hY19iZl9kaXNhc3NvYyhydHdkZXYsIHJ0d3ZpZl9saW5rLCBydHdzdGFfbGluayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYz01ODc4PWludCBydHc4OV9jb3JlX3N0YV9saW5rX2Fzc29jKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU5MzYtXFx0cnR3ODlfbWFjX2JmX2Fzc29jKHJ0d2RldiwgcnR3dmlmX2xpbmssIHJ0d3N0YV9saW5rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuYzo1OTM3OlxcdHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGMocnR3ZGV2LCBydHdzdGFfbGluaywgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5jLTU5MzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xODk5PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwNi1cXHR1MTYgbWVzaDogMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTA3OlxcdHUxNiBtb25pdG9yOiAxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MDgtXFx0dTE2IHAycF9kZXZpY2U6IDE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD03MDY1PXN0cnVjdCBydHc4OV9uaG1fcmVwb3J0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTcwNzMtI2RlZmluZSBSVFc4OV9JRlNfQ0xNX05VTSA0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6NzA3NDpzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtNzA3NS1cXHR1OCBjY3hfd2F0Y2hkb2dfcmVzdWx0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9NzU1MT1zdHJ1Y3QgcnR3ODlfZGV2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2NDctXFx0XFx0ZW51bSBydHc4OV9waHlfaWR4IHBoeV9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6NzY0ODpcXHRcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyBlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC03NjQ5LVxcdFxcdHN0cnVjdCBydHc4OV9kaWdfaW5mbyBkaWc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC03NjkyLVxcdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzICpkZWJ1Z2ZzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjc2OTM6XFx0c3RydWN0IHJ0dzg5X3ZpZiAqcHVyZV9tb25pdG9yX21vZGVfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTc2OTQtXFx0c3RydWN0IHJ0dzg5X2xlZCBsZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NzA9c3RydWN0IHJ0dzg5X2RlYnVnZnMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTk2LVxcdHN0cnVjdCBydHc4OV9kZWJ1Z2ZzX3ByaXYgZGlhZ19yZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6OTc6XFx0c3RydWN0IHJ0dzg5X2RlYnVnZnNfcHJpdiBtb25pdG9yX29wdHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTk4LX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTUwOT1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NTEwOnJ0dzg5X2RlYnVnX3ByaXZfbW9uaXRvcl9vcHRzX2dldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTU1MTEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3ODlfZGVidWdmc19wcml2ICpkZWJ1Z2ZzX3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTUzMz1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NTM0OnJ0dzg5X2RlYnVnX3ByaXZfbW9uaXRvcl9vcHRzX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jLTU1MzUtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3ODlfZGVidWdmc19wcml2ICpkZWJ1Z2ZzX3ByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM9NTU5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0dzg5X2RlYnVnZnMgcnR3ODlfZGVidWdmc190ZW1wbCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy01NjIxLVxcdC5kaWFnX3JmID0gcnR3ODlfZGVidWdfcHJpdl9zZXRfYW5kX2dldChkaWFnX3JmLCBSV0xPQ0spLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYzo1NjIyOlxcdC5tb25pdG9yX29wdHMgPSBydHc4OV9kZWJ1Z19wcml2X3NldF9hbmRfZ2V0KG1vbml0b3Jfb3B0cywgUldMT0NLKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTYyMy19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9kZWJ1Zy5jPTU2NzE9dm9pZCBydHc4OV9kZWJ1Z2ZzX2FkZF9zZWMyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IGRlbnRyeSAqZGVidWdmc190b3BkaXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmMtNTY3OS1cXHRydHc4OV9kZWJ1Z2ZzX2FkZF9ydyhkaWFnX3JmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2RlYnVnLmM6NTY4MDpcXHRydHc4OV9kZWJ1Z2ZzX2FkZF9ydyhtb25pdG9yX29wdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZGVidWcuYy01NjgxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM9NjkxND12b2lkIHJ0dzg5X21hY19iZl9zZXRfZ2lkX3RhYmxlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NTU6c3RydWN0IHJ0dzg5X21hY19iZl9tb25pdG9yX2l0ZXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTU2LVxcdHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM9Njk2MT1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5NjI6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5NjMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk2NDpcXHRzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhICppdGVyX2RhdGEgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk2NTpcXHRcXHRcXHRcXHQoc3RydWN0IHJ0dzg5X21hY19iZl9tb25pdG9yX2l0ZXJfZGF0YSAqKWRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTY2LVxcdHN0cnVjdCBydHc4OV9zdGFfbGluayAqZG93bl9ydHdzdGFfbGluayA9IGl0ZXJfZGF0YS1cXHUwMDNlZG93bl9ydHdzdGFfbGluaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMtNjk5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jOjY5OTM6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5OTQtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTY5OTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6Njk5NzpcXHRzdHJ1Y3QgcnR3ODlfbWFjX2JmX21vbml0b3JfaXRlcl9kYXRhIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy02OTk4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYy03MDAyLVxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhydHdkZXYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmM6NzAwMzpcXHRcXHRcXHRcXHRcXHQgIHJ0dzg5X21hY19iZl9tb25pdG9yX2NhbGNfaXRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMDQtXFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2ZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuYzo3MDEzOnZvaWQgX3J0dzg5X21hY19iZl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jLTcwMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaD0xNTUwPXZvaWQgcnR3ODlfbWFjX2JmX3NldF9naWRfdGFibGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU1MS1cXHRcXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oOjE1NTI6dm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl9jYWxjKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NTMtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHc4OV9zdGFfbGluayAqcnR3c3RhX2xpbmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTU0LVxcdFxcdFxcdCAgICAgICBib29sIGRpc2Nvbm5lY3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg6MTU1NTp2b2lkIF9ydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU1Ni12b2lkIHJ0dzg5X21hY19iZmVlX2N0cmwoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBtYWNfaWR4LCBib29sIGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmg9MTU2MT1pbnQgcnR3ODlfbWFjX3NldF9tYWNpZF9wYXVzZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IG1hY2lkLCBib29sIHBhdXNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oLTE1NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaDoxNTYzOnN0YXRpYyBpbmxpbmUgdm9pZCBydHc4OV9tYWNfYmZfbW9uaXRvcl90cmFjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTY0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmgtMTU3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5oOjE1NzE6XFx0X3J0dzg5X21hY19iZl9tb25pdG9yX3RyYWNrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWMuaC0xNTcyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYz0xNjk9c3RhdGljIGludCBydHc4OV9vcHNfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jOjIyNzpcXHRydHdkZXYtXFx1MDAzZXB1cmVfbW9uaXRvcl9tb2RlX3ZpZiA9IHZpZi1cXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SID9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMjI4LVxcdFxcdFxcdFxcdFxcdHJ0d3ZpZiA6IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM9MjQzPXN0YXRpYyB2b2lkIHJ0dzg5X29wc19yZW1vdmVfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTI3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmM6Mjc2OlxcdHJ0d2Rldi1cXHUwMDNlcHVyZV9tb25pdG9yX21vZGVfdmlmID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYzgwMjExLmMtMjc3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jPTE5NjY9c3RhdGljIGludCBydHc4OV9vcHNfZ2V0X3N1cnZleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IGlkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjODAyMTEuYy0xOTgxLVxcdHJ0dzg5X2Zvcl9lYWNoX2FjdGl2ZV9iYihydHdkZXYsIGJiKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jOjE5ODI6XFx0XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9tYWM4MDIxMS5jLTE5ODMtXFx0XFx0c3RydWN0IHJ0dzg5X25obV9yZXBvcnQgKnJwdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjI2OD1zdGF0aWMgdTE2IHJ0dzg5X3BoeV9jY3hfdXNfdG9faWR4KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2MjcxOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjI3Nj1zdGF0aWMgdTMyIHJ0dzg5X3BoeV9jY3hfaWR4X3RvX3VzKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2Mjc5OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjI4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjI4ND1zdGF0aWMgdm9pZCBydHc4OV9waHlfY2N4X3RvcF9zZXR0aW5nX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Mjg3LVxcdGNvbnN0IHN0cnVjdCBydHc4OV9waHlfZ2VuX2RlZiAqcGh5ID0gcnR3ZGV2LVxcdTAwM2VjaGlwLVxcdTAwM2VwaHlfZGVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjI4ODpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYyODktXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NjeF9yZWdzICpjY3ggPSBwaHktXFx1MDAzZWNjeDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjMwNj1zdGF0aWMgdTE2IHJ0dzg5X3BoeV9jY3hfZ2V0X3JlcG9ydChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYzMDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjMxMDpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTYzMTEtXFx0dTMyIG51bWVyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjM1MD1zdGF0aWMgdm9pZCBydHc4OV9waHlfY2N4X3JhY2luZ19yZWxlYXNlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM1Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2MzUzOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjM1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjM2Mz1zdGF0aWMgYm9vbCBydHc4OV9waHlfaWZzX2NsbV90aF91cGRhdGVfY2hlY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzY2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjYzNjc6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02MzY4LVxcdGJvb2wgaXNfdXBkYXRlID0gZW52LVxcdTAwM2VpZnNfY2xtX2FwcCAhPSBwYXJhLVxcdTAwM2VpZnNfY2xtX2FwcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NjQxOD1zdGF0aWMgdm9pZCBydHc4OV9waHlfaWZzX2NsbV9zZXRfdGhfcmVnKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQyMS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY0MjI6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NDIzLVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVxcdTAwM2VjY3g7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY0NTA9c3RhdGljIHZvaWQgX19ydHc4OV9waHlfbmhtX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY0NTMtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NDU0OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ1NS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NDc4PXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9pZnNfY2xtX3NldHRpbmdfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY0ODEtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NDgyOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjQ4My1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NTA1PXN0YXRpYyBpbnQgcnR3ODlfcGh5X2NjeF9yYWNpbmdfY3RybChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY1MDgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NjUwOTpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY1MTAtXFx0aW50IHJldCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY1Mzg9c3RhdGljIHZvaWQgcnR3ODlfcGh5X2NjeF90cmlnZ2VyKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjU0MS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY1NDI6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTQzLVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVxcdTAwM2VjY3g7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY1NjQ9c3RhdGljIHZvaWQgcnR3ODlfcGh5X2lmc19jbG1fZ2V0X3V0aWxpdHkoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTY2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY1Njc6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NTY4LVxcdHU4IGkgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NjMwPXN0YXRpYyB1OCBydHc4OV9uaG1fd2VpZ2h0ZWRfYXZnKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X2JiX2N0eCAqYmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NjMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY2MzI6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02NjMzLVxcdHU4IG5obV93ZWlnaHRbUlRXODlfTkhNX1JQVF9OVU1dO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02NjcyPXN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X25obV9nZXRfcmVzdWx0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjY3Ni1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY2Nzc6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02Njc4LVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXFx1MDAzZWNoaXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY3NDk9c3RhdGljIGJvb2wgcnR3ODlfcGh5X2lmc19jbG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY3NTItXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2NzUzOlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjc1NC1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02ODUwPXN0YXRpYyBib29sIHJ0dzg5X3BoeV9lZGNjYV9jbG1fZ2V0X3Jlc3VsdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY4NTMtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2ODU0OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg1NS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02ODczPXN0YXRpYyB2b2lkIHJ0dzg5X3BoeV9uaG1fdGhfdXBkYXRlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg3NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2ODc2OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjg3Ny1cXHRzdGF0aWMgY29uc3QgdTggbmhtX3RoXzExa1tSVFc4OV9OSE1fUlBUX05VTV0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTY4OTk9c3RhdGljIGludCBydHc4OV9waHlfbmhtX3NldChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTY5MDMtXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X3BoeV9nZW5fZGVmICpwaHkgPSBydHdkZXYtXFx1MDAzZWNoaXAtXFx1MDAzZXBoeV9kZWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo2OTA0OlxcdHN0cnVjdCBydHc4OV9lbnZfbW9uaXRvcl9pbmZvICplbnYgPSBcXHUwMDI2YmItXFx1MDAzZWVudl9tb25pdG9yO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjkwNS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2N4X3JlZ3MgKmNjeCA9IHBoeS1cXHUwMDNlY2N4O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz02OTc0PXN0YXRpYyBpbnQgcnR3ODlfcGh5X2lmc19jbG1fc2V0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNjk3OC1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfcGh5X2dlbl9kZWYgKnBoeSA9IHJ0d2Rldi1cXHUwMDNlY2hpcC1cXHUwMDNlcGh5X2RlZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjY5Nzk6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy02OTgwLVxcdGNvbnN0IHN0cnVjdCBydHc4OV9jY3hfcmVncyAqY2N4ID0gcGh5LVxcdTAwM2VjY3g7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MDE5OnN0YXRpYyB2b2lkIF9fcnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjAtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzAyMjpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwMjMtXFx0c3RydWN0IHJ0dzg5X2NjeF9wYXJhX2luZm8gcGFyYSA9IHt9O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MDMzLVxcdHJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX1BIWV9UUkFDSyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcwMzQ6XFx0XFx0ICAgIFxcXCJCQi0lZCBlbnZfbW9uaXRvciB0cmFja1xcXFxuXFxcIiwgYmItXFx1MDAzZXBoeV9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzAzNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzA1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcwNTg6dm9pZCBydHc4OV9waHlfZW52X21vbml0b3JfdHJhY2soc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzA1OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcwNjItXFx0cnR3ODlfZm9yX2VhY2hfYWN0aXZlX2JiKHJ0d2RldiwgYmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MDYzOlxcdFxcdF9fcnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHJ0d2RldiwgYmIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzA2NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTcxNTc9c3RhdGljIHZvaWQgX19ydHc4OV9waHlzdHNfcGFyc2luZ19pbml0KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2MS1cXHRjb25zdCBzdHJ1Y3QgcnR3ODlfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LVxcdTAwM2VjaGlwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE2MjpcXHR1MzIgbW9uaXRvcl9tb2RlX211X2llcyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTYzOlxcdHUzMiBtb25pdG9yX21vZGVfc3VfaWVzID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcxNjQtXFx0dTMyIHZhbDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzE2Ny1cXHRpZiAocnR3ZGV2LVxcdTAwM2Vody1cXHUwMDNlY29uZi5mbGFncyBcXHUwMDI2IElFRUU4MDIxMV9DT05GX01PTklUT1IpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcxNjg6XFx0XFx0bW9uaXRvcl9tb2RlX211X2llcyA9IEJJVChSVFc4OV9QSFlTVFNfSUUwOV9GVFJfMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTY5LVxcdFxcdGlmIChwaHktXFx1MDAzZXBoeXN0X2dlbiBcXHUwMDNjIDIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MTcwOlxcdFxcdFxcdG1vbml0b3JfbW9kZV9tdV9pZXMgfD0gQklUKFJUVzg5X1BIWVNUU19JRTEwX0ZUUl9QTENQX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzE3MjpcXHRcXHRtb25pdG9yX21vZGVfc3VfaWVzID0gQklUKFJUVzg5X1BIWVNUU19JRTA5X0ZUUl8wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTcxNzMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTg3LVxcdFxcdFxcdHZhbCB8PSBCSVQoUlRXODlfUEhZU1RTX0lFMTNfRExfTVVfREVGKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjcxODg6XFx0XFx0XFx0dmFsIHw9IG1vbml0b3JfbW9kZV9tdV9pZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MTg5LVxcdFxcdH0gZWxzZSBpZiAoaSA9PSBSVFc4OV9UUklHX0JBU0VfUFBEVSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy03MjAyLVxcdFxcdGlmIChpID09IFJUVzg5X0hFX1BLVCB8fCBpID09IFJUVzg5X1ZIVF9QS1QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo3MjAzOlxcdFxcdFxcdHZhbCB8PSBtb25pdG9yX21vZGVfc3VfaWVzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzIwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9NzQ1OT1zdGF0aWMgdm9pZCBydHc4OV9waHlfZGlnX2lnaV9vZmZzZXRfYnlfZW52KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtNzQ2Mi1cXHRzdHJ1Y3QgcnR3ODlfZGlnX2luZm8gKmRpZyA9IFxcdTAwMjZiYi1cXHUwMDNlZGlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6NzQ2MzpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTc0NjQtXFx0ZW51bSBydHc4OV9kaWdfbm9pc3lfbGV2ZWwgbm9pc3lfbHY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jPTgxNTQ9dm9pZCBydHc4OV9waHlfYW50ZGl2X3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgxNzU6c3RhdGljIHZvaWQgX19ydHc4OV9waHlfZW52X21vbml0b3JfaW5pdChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MTc2LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE3OC1cXHRydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19QSFlfVFJBQ0ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MTc5OlxcdFxcdCAgICBcXFwiQkItJWQgZW52X21vbml0b3IgaW5pdFxcXFxuXFxcIiwgYmItXFx1MDAzZXBoeV9pZHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgxODU6c3RhdGljIHZvaWQgcnR3ODlfcGh5X2Vudl9tb25pdG9yX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODE4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgxODktXFx0cnR3ODlfZm9yX2VhY2hfY2FwYWJfYmIocnR3ZGV2LCBiYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgxOTA6XFx0XFx0X19ydHc4OV9waHlfZW52X21vbml0b3JfaW5pdChydHdkZXYsIGJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgxOTEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYz04MjM1PXZvaWQgcnR3ODlfcGh5X2RtX2luaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjQxLVxcdHJ0dzg5X3BoeV9kaWFnX2luaXQocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jOjgyNDI6XFx0cnR3ODlfcGh5X2Vudl9tb25pdG9yX2luaXQocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNDMtXFx0cnR3ODlfcGh5X25obV9zZXR0aW5nX2luaXQocnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODI2Mz12b2lkIHJ0dzg5X3BoeV9kbV9yZWluaXQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmMtODI2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYzo4MjY1OlxcdHJ0dzg5X3BoeV9lbnZfbW9uaXRvcl9pbml0KHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04MjY2LVxcdHJ0dzg5X3BoeXN0c19wYXJzaW5nX2luaXQocnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODI2OT1zdGF0aWMgdm9pZCBfX3J0dzg5X3BoeV9kbV9pbml0X2RhdGEoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNzAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODI3MTpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTgyNzItXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM9ODgyNT1zdGF0aWMgdm9pZCBydHc4OV9waHlfZWRjY2FfZGlhZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBydHc4OV9iYl9jdHggKmJiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuYy04ODI4LSNkZWZpbmUgUlRXODlfRElBR19CQl9FRENDQV9UWF9USCAxMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmM6ODgyOTpcXHRzdHJ1Y3QgcnR3ODlfZW52X21vbml0b3JfaW5mbyAqZW52ID0gXFx1MDAyNmJiLVxcdTAwM2VlbnZfbW9uaXRvcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5jLTg4MzAtXFx0c3RydWN0IHJ0dzg5X3RyYWZmaWNfc3RhdHMgKnN0YXRzID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNlc3RhdHM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3BoeS5oPTIwMT1lbnVtIHJ0dzg5X3BoeV9jMmhfY2xhc3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaC0yMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaDoyMTI6ZW51bSBydHc4OV9lbnZfbW9uaXRvcl9yZXN1bHRfbGV2ZWwge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5LmgtMjEzLVxcdFJUVzg5X1BIWV9FTlZfTU9OX0NDWF9GQUlMID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcGh5Lmg9MTIwND12b2lkIHJ0dzg5X3BoeV9zdGF0X3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaDoxMjA1OnZvaWQgcnR3ODlfcGh5X2Vudl9tb25pdG9yX3RyYWNrKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuaC0xMjA2LXZvaWQgcnR3ODlfcGh5X3NldF9waHlfcmVncyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHUzMiBhZGRyLCB1MzIgbWFzayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvc2FyLmM9NjI4PXN0YXRpYyB2b2lkIHJ0dzg5X3Rhc19oaXN0b3J5X3VwZGF0ZShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3Nhci5jLTYzMC1cXHRzdHJ1Y3QgcnR3ODlfYmJfY3R4ICpiYiA9IHJ0dzg5X2dldF9iYl9jdHgocnR3ZGV2LCBSVFc4OV9QSFlfMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYzo2MzE6XFx0c3RydWN0IHJ0dzg5X2Vudl9tb25pdG9yX2luZm8gKmVudiA9IFxcdTAwMjZiYi1cXHUwMDNlZW52X21vbml0b3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9zYXIuYy02MzItXFx0c3RydWN0IHJ0dzg5X3Rhc19pbmZvICp0YXMgPSBcXHUwMDI2cnR3ZGV2LVxcdTAwM2V0YXM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjQ1Ljg1MTEzNTY4NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIxNjM0ODY2NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIHRoZSBSb2xlIEluZm8qKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGRpZyBpbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gdmVyaWZ5IHdoYXQncyBnb2luZyBvbiB3aXRoIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgLiBUaGF0J3MgYSBjcml0aWNhbCBiaXQgb2YgaW5mb3JtYXRpb24sIGxpa2VseSByZWxhdGVkIHRvIHRoZSBCbHVldG9vdGgvV2ktRmkgcm9sZSBtYW5hZ2VtZW50LiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgcHJvYmFibHkgYSBiaXQgcG9zaXRpb24gZGVmaW5pdGlvbiB3aXRoaW4gYSBsYXJnZXIgc3RydWN0dXJlLiBUbyBnZXQgYSBwcmVjaXNlIHVuZGVyc3RhbmRpbmcgb2YgaXRzIG1lYW5pbmcgYW5kIGNvbnRleHQsIEknbGwgbmVlZCB0byB1c2UgYHJlYWQtZmlsZWAgYW5kIGxvY2F0ZSBpdCBpbiBgY29yZS5oYC4gVGhhdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IOKAkyBgY29yZS5oYCB1c3VhbGx5IGhvbGRzIHRoZSBmdW5kYW1lbnRhbCBkZWZpbml0aW9ucyBmb3IgdGhpcyBraW5kIG9mIGxvdy1sZXZlbCBpbnRlcmFjdGlvbi4gT25jZSBJIGhhdmUgdGhlIGZpbGUgbG9hZGVkLCBJIGNhbiB0cmFjZSB0aGUgc3RydWN0dXJlIGRlZmluaXRpb24gYW5kIHNlZSBwcmVjaXNlbHkgd2hhdCBvdGhlciBiaXRzIGFyZSByZWxhdGVkIHRvIHRoYXQgc3BlY2lmaWMgcm9sZSBzZXR0aW5nLiBVbmRlcnN0YW5kaW5nIHRoaXMgcmVsYXRpb25zaGlwIGlzIGtleSB0byBkZWJ1Z2dpbmcgb3IgbW9kaWZ5aW5nIGFueSByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuIFRoaXMgd2lsbCBob3BlZnVsbHkgcHJvdmlkZSB0aGUgY29udGV4dCBJIG5lZWQgdG8gbW92ZSBmb3J3YXJkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTY4MSwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjQ4LjAxNDYyNTE5N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1ODQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaFwiLFxuICBcIkZpcnN0TGluZVwiOiAxODk4LFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxODk4OlxcdFxcbjE4OTk6XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7XFxuMTkwMDpcXHRcXHR1MTYgbm9uZTogMTtcXG4xOTAxOlxcdFxcdHUxNiBzdGF0aW9uOiAxO1xcbjE5MDI6XFx0XFx0dTE2IGFwOiAxO1xcbjE5MDM6XFx0XFx0dTE2IHZhcDogMTtcXG4xOTA0OlxcdFxcdHUxNiBhZGhvYzogMTtcXG4xOTA1OlxcdFxcdHUxNiBhZGhvY19tYXN0ZXI6IDE7XFxuMTkwNjpcXHRcXHR1MTYgbWVzaDogMTtcXG4xOTA3OlxcdFxcdHUxNiBtb25pdG9yOiAxO1xcbjE5MDg6XFx0XFx0dTE2IHAycF9kZXZpY2U6IDE7XFxuMTkwOTpcXHRcXHR1MTYgcDJwX2djOiAxO1xcbjE5MTA6XFx0XFx0dTE2IHAycF9nbzogMTtcXG4xOTExOlxcdFxcdHUxNiBuYW46IDE7XFxuMTkxMjpcXHR9O1xcbjE5MTM6XFx0XFxuMTkxNDpcXHRzdHJ1Y3QgcnR3ODlfYnRjX2VzbG90X2N0cmwge1xcbjE5MTU6XFx0XFx0dTggZW47ICAvKiAxOiB0b2dnbGUgdHgtZmxvdy1jdHJsIChudWxsIDAvMSksIHR4LXBhdXNlIGJ5IEV4dC1zbG90ICovXFxuMTkxNjpcXHRcXHR1OCBudWxsdHhfcm9sZTE7XFxuMTkxNzpcXHRcXHR1OCBudWxsdHhfcm9sZTI7XFxuMTkxODpcXHRcXHR1OCBudWxsdHhfcHJlX3RpbWU7IC8qIG51bGwtdHggdGltZSBwcmlvciB0byBFQlQtc3RhcnQgKGZyb20gRTJHLWVuZCkgKi9cXG4xOTE5OlxcdH07XFxuMTkyMDpcXHRcXG4xOTIxOlxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHtcXG4xOTIyOlxcdFxcdHUxNiB2YWw7XFxuMTkyMzpcXHRcXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zIHJvbGU7XFxuMTkyNDpcXHR9O1xcbjE5MjU6XFx0XFxuMTkyNjpcXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MCB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuMTkyNzpcXHRcXHR1OCBjb25uZWN0X2NudDtcXG4xOTI4OlxcdFxcdHU4IGxpbmtfbW9kZTtcXG4xOTI5OlxcdFxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbjE5MzA6XFx0XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZSBhY3RpdmVfcm9sZVtSVFc4OV9QT1JUX05VTV07XFxuMTkzMTpcXHR9O1xcbjE5MzI6XFx0XFxuMTkzMzpcXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MSB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuMTkzNDpcXHRcXHR1OCBjb25uZWN0X2NudDtcXG4xOTM1OlxcdFxcdHU4IGxpbmtfbW9kZTtcXG4xOTM2OlxcdFxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbjE5Mzc6XFx0XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MSBhY3RpdmVfcm9sZV92MVtSVFc4OV9QT1JUX05VTV07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjQ4LjAxNDg4NjA1N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIyMjU0MzIxNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBWYXJpYWJsZSBVc2FnZSBpbiB0aGUgQ29kZWJhc2UqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGVzZSB2YXJpYWJsZXMsIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgIGFuZCBgcm9sZV9tYXBgLCBhcmUgYWN0dWFsbHkgYmVpbmcgdXNlZC4gSXQncyBhIGZhaXJseSBzdGFuZGFyZCBkZWJ1Z2dpbmcgc3RlcCwgcmVhbGx5LiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGVpciBpbXBhY3QgYW5kLCBwb3RlbnRpYWxseSwgaWYgdGhleSBjYW4gYmUgb3B0aW1pemVkIG9yIGlmIHRoZXJlIGFyZSB1bmV4cGVjdGVkIGludGVyYWN0aW9ucyBpbnZvbHZpbmcgdGhlbS4gSSdsbCBuZWVkIHRvIHJ1biBhIHF1aWNrIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlIHRvIGlkZW50aWZ5IGFsbCB0aGUgaW5zdGFuY2VzIHdoZXJlIHRoZXkncmUgcmVmZXJlbmNlZC4gVGhhdCB3aWxsIHByb3ZpZGUgbWUgd2l0aCBhIGxpc3Qgb2YgY29udGV4dHMgaW4gd2hpY2ggdGhleSBwbGF5IGEgcm9sZSwgdGhlaXIgc2NvcGUsIGFuZCBob3cgdGhleSBjb250cmlidXRlIHRvIHRoZSBzeXN0ZW0ncyBiZWhhdmlvci4gVGltZSB0byBkZWx2ZSBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgd2hhdCBJIGNhbiBmaW5kIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjcwNCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6NDI6NTAuMjQwMzIxNDA5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMjUxNzk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJvbGVfbWFwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM9NDc2MT12b2lkIHJ0dzg5X2J0Y19zZXRfcG9saWN5KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTE2IHBvbGljeV90eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNDkzOS1cXHRcXHQqdCA9IHRfZGVmW0NYVERfUEZJWF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NDk0MDpcXHRcXHRpZiAoYnRjLVxcdTAwM2VjeC53bC5yb2xlX2luZm8ucm9sZV9tYXAgIFxcdTAwMjYgQklUKFJUVzg5X1dJRklfUk9MRV9BUCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNDk0MS1cXHRcXHRcXHRfdGRtYV9zZXRfZmxjdHJsKGJ0YywgQ1hGTENfUU9TTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYz03NTI0PXN0YXRpYyB2b2lkIF9tb2RpZnlfcm9sZV9saW5rX21vZGUoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCBod19iYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzMC1cXHR1OCAqbGlua19tb2RlID0gXFx1MDAyNndsX3JpbmZvLVxcdTAwM2VsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzUzMTpcXHR1MzIgcm9sZV9tYXAgPSB3bF9yaW5mby1cXHUwMDNlcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzMi1cXHR1OCBub2FfZXhpc3QgPSB3bC1cXHUwMDNlbm9hX2V4aXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzNi1cXHRcXHQqbGlua19tb2RlID0gd2xfcmluZm8tXFx1MDAzZWxpbmtfbW9kZV9oYjE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzUzNzpcXHRcXHRyb2xlX21hcCA9IHdsX3JpbmZvLVxcdTAwM2Vyb2xlX21hcF9oYjE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzUzOC1cXHRcXHRnb19jbGVpbnRfZXhpc3QgPSB3bC1cXHUwMDNlZ29fY2xpZW50X2V4aXN0X2hiMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NDEtXFx0LyogaWYgbm8gY2xpZW50X2pvaW5lZCwgZG9uJ3QgY2FyZSBQMlAtR08vQVAgcm9sZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1NDI6XFx0aWYgKCgocm9sZV9tYXAgXFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX1AyUF9HTykpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzU0MzpcXHQgICAgICAocm9sZV9tYXAgXFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX0FQKSkpIFxcdTAwMjZcXHUwMDI2ICFnb19jbGVpbnRfZXhpc3QpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NTQ0LVxcdFxcdGlmICgqbGlua19tb2RlID09IEJUQ19XTElOS19TQ0MpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NTUtXFx0ICAgICAqbGlua19tb2RlID09IEJUQ19XTElOS19EQl9NQ0MpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NTU2OlxcdFxcdGlmICgocm9sZV9tYXAgXFx1MDAyNiBCSVQoUlRXODlfV0lGSV9ST0xFX1AyUF9HTykpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzU1NzpcXHRcXHQgICAgIChyb2xlX21hcCBcXHUwMDI2IEJJVChSVFc4OV9XSUZJX1JPTEVfQVApKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NTgtXFx0XFx0XFx0aWYgKG5vYV9leGlzdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NjEtXFx0XFx0XFx0XFx0bXJvbGUgPSBCVENfV0xNUk9MRV9TVEFfR087XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzU2MjpcXHRcXHR9IGVsc2UgaWYgKHJvbGVfbWFwIFxcdTAwMjYgQklUKFJUVzg5X1dJRklfUk9MRV9QMlBfQ0xJRU5UKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc1NjMtXFx0XFx0XFx0aWYgKG5vYV9leGlzdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jPTc1ODc9c3RhdGljIHZvaWQgX3VwZGF0ZV93bF9pbmZvKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0dzg5X2J0Y193bF9saW5rX2luZm8gKndsX2xpbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzU5OC1cXHR1OCBpLCBsaW5rX21vZGVfb3JpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jOjc1OTk6XFx0dTMyIHJvbGVfbWFwID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYy03NjAwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NjQ3OlxcdFxcdHJvbGVfbWFwIHw9IEJJVChybGluay1cXHUwMDNlcm9sZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2NzktXFx0XFx0d2xfcmluZm8tXFx1MDAzZXAycF9leGlzdCA9IHAycF9leGlzdDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvZXguYzo3NjgwOlxcdFxcdHdsX3JpbmZvLVxcdTAwM2Vyb2xlX21hcCA9IHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODEtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29leC5jLTc2ODctXFx0XFx0d2xfcmluZm8tXFx1MDAzZXAycF9leGlzdF9oYjEgPSBwMnBfZXhpc3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmM6NzY4ODpcXHRcXHR3bF9yaW5mby1cXHUwMDNlcm9sZV9tYXBfaGIxID0gcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb2V4LmMtNzY4OS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTI2PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YwIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MjgtXFx0dTggbGlua19tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5Mjk6XFx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzMC1cXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlIGFjdGl2ZV9yb2xlW1JUVzg5X1BPUlRfTlVNXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MzM9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkzNS1cXHR1OCBsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkzNjpcXHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM3LVxcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEgYWN0aXZlX3JvbGVfdjFbUlRXODlfUE9SVF9OVU1dO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTk0OD1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MiB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTUwLVxcdHU4IGxpbmtfbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTUxOlxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTItXFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MiBhY3RpdmVfcm9sZV92MltSVFc4OV9QT1JUX05VTV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0yMDAzPXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3Y3IHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MjAxMTpcXHRfX2xlMzIgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAxMi1cXHRfX2xlMzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwMTk9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjggeyAvKiBIMkMgaW5mbywgc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTIwMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MjAzMjpcXHRfX2xlMzIgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjAzMy1cXHRfX2xlMzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTIwMzc9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjEwIHsgLyogSDJDIGluZm8sIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0yMDQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwNDk6XFx0X19sZTMyIHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjIwNTA6XFx0X19sZTMyIHJvbGVfbWFwX2hiMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0yMDUxLVxcdF9fbGUzMiBtcm9sZV90eXBlOyAvKiBidGNfd2xfbXJvbGVfdHlwZTogWzMxOjE2XTpiYW5kMSwgWzE1OjBdOmJhbmQwICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0yMDg2PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvIHsgLyogTG9naWMgZHluYW1pYyB1c2luZyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjA5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDk4OlxcdHUzMiByb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoyMDk5OlxcdHUzMiByb2xlX21hcF9oYjE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMjEwMC1cXHR1MzIgbXJvbGVfdHlwZTsgLyogYnRjX3dsX21yb2xlX3R5cGU6IFszMToxNl06YmFuZDEsIFsxNTowXTpiYW5kMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYwNTg9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MDY1LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYwNjY6XFx0dTMyIHJtYXAgPSByLVxcdTAwM2Vyb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjA2Ny1cXHR1OCBvZmZzZXQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jPTYxNDA9aW50IHJ0dzg5X2Z3X2gyY19jeGRydl9yb2xlX3YxKHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldiwgdTggdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYy02MTQ3LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjYxNDg6XFx0dTMyIHJtYXAgPSByLVxcdTAwM2Vyb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjE0OS1cXHR1OCAqY21kLCBvZmZzZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM9NjIyOT1pbnQgcnR3ODlfZndfaDJjX2N4ZHJ2X3JvbGVfdjEwMShzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjI1My1cXHRoMmMtXFx1MDAzZWxpbmtfbW9kZSA9IHJvbGVfaW5mby1cXHUwMDNlbGlua19tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2MjU0OlxcdGgyYy1cXHUwMDNlcm9sZV9tYXAgPSBjcHVfdG9fbGUxNihyb2xlX2luZm8tXFx1MDAzZXJvbGVfbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02MzE0PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjMyMS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2MzIyOlxcdHUzMiBybWFwID0gci1cXHUwMDNlcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTYzMjMtXFx0dTMyIGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02Mzk5PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92NyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjQ0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjQ0NDpcXHRybSA9IGNwdV90b19sZTMyKHItXFx1MDAzZXJvbGVfbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjQ0NTpcXHRtZW1jcHkoXFx1MDAyNmgyYy1cXHUwMDNlci5yb2xlX21hcCwgXFx1MDAyNnJtLCBzaXplb2YoaDJjLVxcdTAwM2VyLnJvbGVfbWFwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTY0NDYtXFx0aDJjLVxcdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVxcdTAwM2Vtcm9sZV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02NDcwPWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92OChzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHU4IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjUyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjUyMTpcXHRybSA9IGNwdV90b19sZTMyKHItXFx1MDAzZXJvbGVfbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjUyMjpcXHRtZW1jcHkoXFx1MDAyNmgyYy1cXHUwMDNlci5yb2xlX21hcCwgXFx1MDAyNnJtLCBzaXplb2YoaDJjLVxcdTAwM2VyLnJvbGVfbWFwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTY1MjMtXFx0aDJjLVxcdTAwM2VyLm1yb2xlX3R5cGUgPSBjcHVfdG9fbGUzMihyLVxcdTAwM2Vtcm9sZV90eXBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYz02NTQ0PWludCBydHc4OV9md19oMmNfY3hkcnZfcm9sZV92MTAoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCB1OCB0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jLTY1OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTc6XFx0cm0gPSBjcHVfdG9fbGUzMihyLVxcdTAwM2Vyb2xlX21hcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jOjY1OTg6XFx0bWVtY3B5KFxcdTAwMjZoMmMtXFx1MDAzZXIucm9sZV9tYXAsIFxcdTAwMjZybSwgc2l6ZW9mKGgyYy1cXHUwMDNlci5yb2xlX21hcCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuYzo2NTk5OlxcdHJtID0gY3B1X3RvX2xlMzIoci1cXHUwMDNlcm9sZV9tYXBfaGIxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmM6NjYwMDpcXHRtZW1jcHkoXFx1MDAyNmgyYy1cXHUwMDNlci5yb2xlX21hcF9oYjEsIFxcdTAwMjZybSwgc2l6ZW9mKGgyYy1cXHUwMDNlci5yb2xlX21hcF9oYjEpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMtNjYwMS1cXHRoMmMtXFx1MDAzZXIubXJvbGVfdHlwZSA9IGNwdV90b19sZTMyKHItXFx1MDAzZW1yb2xlX3R5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oPTI2NDk9c3RydWN0IHJ0dzg5X2gyY19jeHJvbGVfdjEwMSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmgtMjY1Mi1cXHR1OCBsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oOjI2NTM6XFx0X19sZTE2IHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvZncuaC0yNjU0LVxcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGVfdjEwMSBhY3Rfcm9sZVtSVFc4OV9QT1JUX05VTV07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQyOjUwLjI5MDU3NzcyOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0Nzg5OTg3MDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGFuIGV4cGVydCBpbiB0aGlzIGFyZWE6XG5cbioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgRGF0YSBTdHJ1Y3R1cmUgVXNhZ2UqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHNjb3BlIG9mIHRoZXNlIHR3byB2YXJpYWJsZXMsIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcGAgYW5kIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgLiBJIHN1c3BlY3QgdGhlcmUgbWlnaHQgYmUgc29tZSBpbnRlcnBsYXkgYmV0d2VlbiB0aGVtLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZWUgaG93IHRoZXkgYXJlIGFjdHVhbGx5IGJlaW5nIHVzZWQgd2l0aGluIHRoZSBjb2RlYmFzZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhlc2Ugc3RydWN0dXJlcyBhcmUgZGVmaW5lZCwgaW5pdGlhbGl6ZWQsIGFuZCBhY2Nlc3NlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZWlyIHB1cnBvc2UuIEkgaW1tZWRpYXRlbHkgd2FudCB0byBjb25maXJtIGlmIHRoZSBsYXR0ZXIsIGBydHc4OV9idGNfd2xfcm9sZV9pbmZvX2Jwb3NgLCBpcyB1bmlxdWUgdG8gYSBzcGVjaWZpYyBhcmVhIG9yIGlmIGl0J3MgdXRpbGl6ZWQgbW9yZSBicm9hZGx5LiBUaGVuIEknbGwgZXhwYW5kIG15IHNlYXJjaC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIHBlcmZvcm0gYSB0YXJnZXRlZCBzZWFyY2guIEknbGwgdXNlIGBncmVwYCAob3IgbXkgcHJlZmVycmVkIHNlYXJjaCB0b29sKSBhbmQgbG9vayBmb3Igb2NjdXJyZW5jZXMgb2YgYHJvbGVfaW5mb19icG9zYCAqYW5kKiBgcm9sZV9pbmZvX21hcGAuIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGhvdyB0aGVzZSBzdHJ1Y3R1cmVzIGFyZSBlbXBsb3llZC4gVGhpcyB3aWxsIGhlbHAgbWUgdHJhY2UgdGhlIGRhdGEgZmxvdyBhbmQgdW5kZXJzdGFuZCB0aGUgbG9naWMgYXJvdW5kIHRoZXNlIHZhcmlhYmxlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEzNjMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0Mjo1Mi43Njk1Nzk1NzdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNzY3NDE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIihyb2xlX2luZm9fYnBvc3xyb2xlX2luZm9fbWFwKVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE4ODI9c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92NyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xODk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE4OTk6c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkwMC1cXHR1MTYgbm9uZTogMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MTQ9c3RydWN0IHJ0dzg5X2J0Y19lc2xvdF9jdHJsIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkyMTp1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyMi1cXHR1MTYgdmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5MjM6XFx0c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fYnBvcyByb2xlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MjQtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oPTE5MjY9c3RydWN0IHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fdjAgeyAvKiBzdHJ1Y3Qgc2l6ZSBtdXN0IGJlIG4qNCBieXRlcyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTkyOC1cXHR1OCBsaW5rX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg6MTkyOTpcXHR1bmlvbiBydHc4OV9idGNfd2xfcm9sZV9pbmZvX21hcCByb2xlX21hcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTMwLVxcdHN0cnVjdCBydHc4OV9idGNfd2xfYWN0aXZlX3JvbGUgYWN0aXZlX3JvbGVbUlRXODlfUE9SVF9OVU1dO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmg9MTkzMz1zdHJ1Y3QgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb192MSB7IC8qIHN0cnVjdCBzaXplIG11c3QgYmUgbio0IGJ5dGVzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaC0xOTM1LVxcdHU4IGxpbmtfbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaDoxOTM2OlxcdHVuaW9uIHJ0dzg5X2J0Y193bF9yb2xlX2luZm9fbWFwIHJvbGVfbWFwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5MzctXFx0c3RydWN0IHJ0dzg5X2J0Y193bF9hY3RpdmVfcm9sZV92MSBhY3RpdmVfcm9sZV92MVtSVFc4OV9QT1JUX05VTV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2NvcmUuaD0xOTQ4PXN0cnVjdCBydHc4OV9idGNfd2xfcm9sZV9pbmZvX3YyIHsgLyogc3RydWN0IHNpemUgbXVzdCBiZSBuKjQgYnl0ZXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oLTE5NTAtXFx0dTggbGlua19tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvY29yZS5oOjE5NTE6XFx0dW5pb24gcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19tYXAgcm9sZV9tYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmgtMTk1Mi1cXHRzdHJ1Y3QgcnR3ODlfYnRjX3dsX2FjdGl2ZV9yb2xlX3YyIGFjdGl2ZV9yb2xlX3YyW1JUVzg5X1BPUlRfTlVNXTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6NDI6NTIuODIzMzUyNzg2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjczOTI2OTM5MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUGF0Y2ggQW5hbHlzaXM6IFNwZWxsaW5nIGFuZCBDb21tZW50IEZpeGVzIC0gV29ydGhGdXp6aW5nPWZhbHNlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBgcnR3ODlfYnRjX3dsX3JvbGVfaW5mb19icG9zYCBqdXN0IGhhZCBhIG1pbm9yIGZpZWxkIG5hbWUgY2hhbmdlIChgbW9uaXRlcmAgdG8gYG1vbml0b3JgKSB3aXRoaW4gYSBzdHJ1Y3QgZGVmaW5pdGlvbi4gQnV0LCB0aGUgY29kZSBkb2Vzbid0IGFjdHVhbGx5IGFjY2VzcyB0aGUgZmllbGQgYnkgbmFtZTsgaXQgdXNlcyBlaXRoZXIgYC52YWxgIG9yIHRyZWF0cyBgcm9sZV9tYXBgIGFzIGEgYml0bWFzayB3aXRoaW4gYSB1bmlvbi4gU28sIHRoZSBpbXBhY3Qgb2YgdGhhdCBzcGVjaWZpYyBjaGFuZ2UgYXBwZWFycyBuZWdsaWdpYmxlLlxuXG5Ob3csIGxldCdzIHN0ZXAgdGhyb3VnaCBlYWNoIGZpbGUgdG91Y2hlZCBpbiB0aGUgcGF0Y2ggbW9yZSBjYXJlZnVsbHk6XG5cbjEuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9jb3JlLmhgOiBXZSdyZSBzZWVpbmcgdGhlIGB1MTYgbW9uaXRlcjogMTtgIGJlY29taW5nIGB1MTYgbW9uaXRvcjogMTtgLiBUaGF0J3MgYSBzaW1wbGUgc3BlbGxpbmcgY29ycmVjdGlvbiBpbiBhIHN0cnVjdCBmaWVsZCBuYW1lLiBUaGVyZSdzIGFsc28gYSBjb21tZW50IHR5cG8gZml4OiBcInNlcmFjaFwiIHRvIFwic2VhcmNoXCIuXG5cbjIuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jYDogVHdvIG1vcmUgdHlwbyBmaXhlczogb25lIGluIGFuIGVycm9yIGxvZyBzdHJpbmcgKFwiVW5zdXBwb3J0XCIgdG8gXCJVbnN1cHBvcnRlZFwiKSBhbmQgYW5vdGhlciBpbiBhIGNvbW1lbnQgKFwibm9maXR5XCIgdG8gXCJub3RpZnlcIikuXG5cbjMuICBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9waHkuY2A6IEFnYWluLCB0eXBvIGZpeGVzLiBPbmUgaW4gYSBkZWJ1ZyBsb2cgc3RyaW5nIChcInVwZGF0XCIgdG8gXCJ1cGRhdGVcIikgYW5kIGFub3RoZXIgaW4gYSBjb21tZW50IChcImxhZ2FjeVwiIHRvIFwibGVnYWN5XCIpLlxuXG5BbHJpZ2h0LCBsZXQncyBkb3VibGUtY2hlY2sgdGhlIFwiV2hlbiB0byBSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlXCIgZ3VpZGVsaW5lcy4gTXkgbWVudGFsIGNoZWNrbGlzdCBmb3IgdGhvc2UgbmVnYXRpdmUgY3JpdGVyaWEgaXM6XG5cbiogICBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzPyBDaGVjay5cbiogICBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcz8gQ2hlY2suXG4qICAgVXNlci1zcGFjZSBjaGFuZ2VzIHRoYXQgZG9uJ3QgYWZmZWN0IHRoZSBrZXJuZWwgaW1hZ2U/IE5vdCBhcHBsaWNhYmxlIGhlcmUuXG4qICAgUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyB0aGF0IGRvZXNuJ3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcz8gQ2hlY2suXG4qICAgQnVpbGQgc3lzdGVtL0tjb25maWcgY2hhbmdlcyB0aGF0IGRvbid0IGFsdGVyIGNvbXBpbGVkIEMgbG9naWM/IE5vdCBhcHBsaWNhYmxlIGhlcmUuXG5cbkFuYWx5emluZyBlYWNoIGNoYW5nZSBhZ2FpbjpcblxuMS4gIFN0cnVjdCBmaWVsZCBuYW1lIChgbW9uaXRlcmAgdG8gYG1vbml0b3JgKTogU3BlbGxpbmcgZml4IGluIGFuIHVudXNlZCBmaWVsZC4gVGhpcyBkb2Vzbid0IGNoYW5nZSBiaW5hcnkgbGF5b3V0LCBkYXRhIHN0cnVjdHVyZSBzaXplLCBvciBjb250cm9sIGZsb3cuIEl0J3Mgc2FmZSB0byBhc3N1bWUgYSBjb21waWxlciBoYW5kbGVzIHRoaXMgd2l0aG91dCBpc3N1ZS5cbjIuICBDb21tZW50IHNwZWxsaW5nIGZpeDogXCJzZXJhY2hcIiB0byBcInNlYXJjaFwiLlxuMy4gIExvZ2dpbmcgZml4OiBcIlVuc3VwcG9ydFwiIHRvIFwiVW5zdXBwb3J0ZWRcIiAtIHB1cmVseSBkZWNvcmF0aXZlIGFuZCBkb2Vzbid0IGFmZmVjdCBvcGVyYXRpb24uXG40LiAgQ29tbWVudCBmaXg6IFwibm9maXR5XCIgdG8gXCJub3RpZnlcIiAtIHB1cmVseSBjb3NtZXRpYy5cbjUuICBMb2dnaW5nIGZpeDogXCJ1cGRhdFwiIHRvIFwidXBkYXRlXCIgLSBhbm90aGVyIG1pbm9yIGNvcnJlY3Rpb24uXG42LiAgQ29tbWVudCBmaXg6IFwibGFnYWN5XCIgdG8gXCJsZWdhY3lcIiAtIGEgYml0IG9mIHBvbGlzaC5cblxuRWFjaCBjaGFuZ2UgY2xlYXJseSBmYWxscyB1bmRlciB0aG9zZSBuZWdhdGl2ZSBjcml0ZXJpYS4gTm90aGluZyB0b3VjaGVzIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgZGF0YSBzdHJ1Y3R1cmUgc2l6ZS9sYXlvdXQsIG9yIGFzc2VydGlvbnMuIEV2ZW4gaWYgd2UgaGFkIGhhcmR3YXJlLCBnaXZlbiB0aGF0IHRoaXMgaXMgYSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgaXQgd291bGQgcmVxdWlyZSBhIHBoeXNpY2FsIHJhZGlvLCBvciBod3NpbSwgYW5kIHRoaXMgd291bGQgc3RpbGwgYmUgdGhlIGNhc2UuIEkgd291bGQgc3RpbGwgZGVlbSB0aGlzIGEgY29zbWV0aWMgcGF0Y2guXG5cbkdpdmVuIHRoaXMgdGhvcm91Z2ggcmV2aWV3IGFuZCBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgdGhlc2Ugd2lyZWxlc3MgZHJpdmVycywgSSdtIGNvbmZpZGVudCBpbiBzZXR0aW5nIHRoZSByZXN1bHRzLlxuXG5IZXJlJ3Mgd2hhdCBJJ2xsIHNldDpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgXG4qICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgIChCZWNhdXNlIHRoZXJlIGlzIG5vIGZvY3VzLilcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKEJlY2F1c2UgdGhlcmUgaXMgbm8gY29uZmlnIHRvIGVuYWJsZS4pXG4qICAgYFJlYXNvbmluZ2A6IFwiVGhlIHBhdGNoIG9ubHkgY29uc2lzdHMgb2Ygc3BlbGxpbmcgZml4ZXMgaW4gY29tbWVudHMsIGxvZyBtZXNzYWdlcywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUsIHdpdGggbm8gZnVuY3Rpb25hbCBvciBsb2dpYyBjaGFuZ2VzLlwiXG5cblRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjY1NSwiT3V0cHV0VG9rZW5zIjo2OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODo0MzowMC4yMTYwNTE1NjRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTU1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjb250YWlucyBvbmx5IHNwZWxsaW5nIGFuZCB0eXBvIGZpeGVzIGluIGNvbW1lbnRzLCBsb2cvZGVidWcgbWVzc2FnZSBzdHJpbmdzLCBhbmQgYSBzdHJ1Y3QgZmllbGQgbmFtZS4gTm8gZXhlY3V0YWJsZSBsb2dpYywgY29udHJvbCBmbG93LCBhc3NlcnRpb25zLCBvciBkYXRhIHN0cnVjdHVyZXMgd2VyZSBhbHRlcmVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggY29udGFpbnMgb25seSBzcGVsbGluZyBhbmQgdHlwbyBmaXhlcyBpbiBjb21tZW50cywgbG9nL2RlYnVnIG1lc3NhZ2Ugc3RyaW5ncywgYW5kIGEgc3RydWN0IGZpZWxkIG5hbWUuIE5vIGV4ZWN1dGFibGUgbG9naWMsIGNvbnRyb2wgZmxvdywgYXNzZXJ0aW9ucywgb3IgZGF0YSBzdHJ1Y3R1cmVzIHdlcmUgYWx0ZXJlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjQzOjAwLjIxNjA4NTk3NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowv42ph[1] Phase: Running StartedAt: 2026-09-06 08:43:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowv42ph[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-06 08:43:44 +0000 UTC FinishedAt: 2026-09-06 08:43:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}