Name: series-workflow8rmxq Phase: Succeeded StartedAt: 2026-07-15 14:29:21 +0000 UTC FinishedAt: 2026-07-15 17:17:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[0] Phase: Succeeded StartedAt: 2026-07-15 14:29:21 +0000 UTC FinishedAt: 2026-07-15 14:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 14:29:21 +0000 UTC FinishedAt: 2026-07-15 14:48:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "I40EVF" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "I40EVF" ], "series_id": "7359f35d-abea-488d-8ed4-f52847331c94" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "iavf_free_adminq_asq", "iavf_remove" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0k0MEVWRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lhdmZfZnJlZV9hZG1pbnFfYXNxJiMzNDssCiAgICAmIzM0O2lhdmZfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBzdWJzeXN0ZW0sIHdoaWNoIGNhbiBzaW11bGF0ZSBQQ0kgZGV2aWNlIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGNkYzJjMDFjZDNmODEyY2I1ZDc5NzI3YjhhMzNiMTgzYWQzOTZlMDRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxNDo0Njo0MyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmNcbmluZGV4IDY5MzdiN2RkNDRjYmI2Li40MGY3NmY5NTA3ZjRiYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXG5AQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxuICAqKi9cbiBzdGF0aWMgdm9pZCBpYXZmX2ZyZWVfYWRtaW5xX2FzcShzdHJ1Y3QgaWF2Zl9odyAqaHcpXG4ge1xuJiM0MztcdGlhdmZfZnJlZV92aXJ0X21lbShodywgXHUwMDI2aHctXHUwMDNlYXEuYXNxLmNtZF9idWYpO1xuIFx0aWF2Zl9mcmVlX2RtYV9tZW0oaHcsIFx1MDAyNmh3LVx1MDAzZWFxLmFzcS5kZXNjX2J1Zik7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5pbmRleCAyOWI4NDAzYTA2NmJjOC4uYzdmNjlhOTA0MDU4ODggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5AQCAtNTU4OSw2ICYjNDM7NTU4OSw3IEBAIHN0YXRpYyB2b2lkIGlhdmZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0aW91bm1hcChody1cdTAwM2Vod19hZGRyKTtcbiBcdHBjaV9yZWxlYXNlX3JlZ2lvbnMocGRldik7XG4gXHRrZnJlZShhZGFwdGVyLVx1MDAzZXZmX3Jlcyk7XG4mIzQzO1x0a2ZyZWUoYWRhcHRlci1cdTAwM2Vxb3NfY2Fwcyk7XG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2YWRhcHRlci1cdTAwM2VtYWNfdmxhbl9saXN0X2xvY2spO1xuIFx0LyogSWYgd2UgZ290IHJlbW92ZWQgYmVmb3JlIGFuIHVwL2Rvd24gc2VxdWVuY2UsIHdlJiMzOTt2ZSBnb3QgYSBmaWx0ZXJcbiBcdCAqIGhhbmdpbmcgb3V0IHRoZXJlIHRoYXQgd2UgbmVlZCB0byBnZXQgcmlkIG9mLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0k0MEVWRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lhdmZfZnJlZV9hZG1pbnFfYXNxJiMzNDssCiAgICAmIzM0O2lhdmZfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBzdWJzeXN0ZW0sIHdoaWNoIGNhbiBzaW11bGF0ZSBQQ0kgZGV2aWNlIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgY2RjMmMwMWNkM2Y4MTJjYjVkNzk3MjdiOGEzM2IxODNhZDM5NmUwNApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDE0OjQ2OjQzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jCmluZGV4IDY5MzdiN2RkNDRjYmI2Li40MGY3NmY5NTA3ZjRiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYwpAQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KQogICoqLwogc3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KQogewomIzQzOwlpYXZmX2ZyZWVfdmlydF9tZW0oaHcsICZhbXA7aHctJmd0O2FxLmFzcS5jbWRfYnVmKTsKIAlpYXZmX2ZyZWVfZG1hX21lbShodywgJmFtcDtody0mZ3Q7YXEuYXNxLmRlc2NfYnVmKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMKaW5kZXggMjliODQwM2EwNjZiYzguLmM3ZjY5YTkwNDA1ODg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMKQEAgLTU1ODksNiAmIzQzOzU1ODksNyBAQCBzdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlpb3VubWFwKGh3LSZndDtod19hZGRyKTsKIAlwY2lfcmVsZWFzZV9yZWdpb25zKHBkZXYpOwogCWtmcmVlKGFkYXB0ZXItJmd0O3ZmX3Jlcyk7CiYjNDM7CWtmcmVlKGFkYXB0ZXItJmd0O3Fvc19jYXBzKTsKIAlzcGluX2xvY2tfYmgoJmFtcDthZGFwdGVyLSZndDttYWNfdmxhbl9saXN0X2xvY2spOwogCS8qIElmIHdlIGdvdCByZW1vdmVkIGJlZm9yZSBhbiB1cC9kb3duIHNlcXVlbmNlLCB3ZSYjMzk7dmUgZ290IGEgZmlsdGVyCiAJICogaGFuZ2luZyBvdXQgdGhlcmUgdGhhdCB3ZSBuZWVkIHRvIGdldCByaWQgb2YuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMzkKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYW4gSUFWRiBEcml2ZXIgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgaWF2Zl9hZG1pbnEuY2AgYW5kIGBpYXZmX21haW4uY2Ag4oCTIHNwZWNpZmljYWxseSwgdHdvIGxpbmVzIGFkZGVkIHRvIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEhtbSwgdGhpcyBpcyB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3Qgd2l0aCBQQ0kgZHJpdmVycyBpcyBhbHdheXMgY2F1dGlvbjsgdGhleSYjMzk7cmUgZ2VuZXJhbGx5IHRyaWNreSB0byBmdXp6IHVubGVzcyB5b3UgaGF2ZSBlbXVsYXRpb24gb3IgYSB2aXJ0dWFsIHNldHVwLiBCdXQgd2FpdOKApiAqaWF2ZiogaXMgYSBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlciEgVGhhdCBjaGFuZ2VzIHRoaW5ncy4gSXQgbmVlZHMgYSBQaHlzaWNhbCBGdW5jdGlvbiBkcml2ZXIgbGlrZSBgaWNlYCBvciBgaTQwZWAgdG8gZ2V0IGNyZWF0ZWQsIG9yIGNhbiBiZSBwcm9iZWQgd2l0aCBhIFZGIHBhc3NlZCB0aHJvdWdoLgoKT2theSwgc28gdGhlIGZhY3QgaXQmIzM5O3MgYSBWRiBpcyBrZXkgaGVyZS4gVGhhdCBvcGVucyB0aGUgZG9vciB0byBwb3RlbnRpYWwuIEkga25vdyBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enppbmcgc3Vic3lzdGVtOyB0aGUgYHZoY2kvcGNpYCBzZXR1cCwgcmlnaHQ/IFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBjYW4gd2UgbGV2ZXJhZ2UgdGhhdCB3aXRoIGBpYXZmYD8KCkxldCYjMzk7cyBzZWXigKYgdGhpcyBwYXRjaCwgYXQgZmFjZSB2YWx1ZSwgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRyZXNzaW5nIG1lbW9yeSBsZWFrcyBpbiBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLiBUaGlzIGlzIGludGVyZXN0aW5nOyBmaXhpbmcgbWVtb3J5IGVycm9ycyBpcyBvZnRlbiBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgYXMgaXQgaW5jcmVhc2VzIHRoZSBjaGFuY2VzIG9mIHRyaWdnZXJpbmcgbW9yZSB2YXJpZWQgY29kZSBwYXRocy4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aG9zZSBmdW5jdGlvbnMgbW9yZSBjbG9zZWx5LiBJJiMzOTtsbCBzZWFyY2ggZm9yIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAgYW5kIHNlZSB3aGF0IHRoZXkmIzM5O3JlIGRvaW5nLiBUaGlzIGNvdWxkIGJlIHByb21pc2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpYXZmX2ZyZWVfYWRtaW5xX2FzcSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYz00MT1zdGF0aWMgZW51bSBpYXZmX3N0YXR1cyBpYXZmX2FsbG9jX2FkbWlucV9hcnFfcmluZyhzdHJ1Y3QgaWF2Zl9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU0LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjU1OiAqICBpYXZmX2ZyZWVfYWRtaW5xX2FzcSAtIEZyZWUgQWRtaW4gUXVldWUgc2VuZCByaW5nc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU2LSAqICBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy02MC0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NjE6c3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTYyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9MzA0PXN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfaW5pdF9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy0zNDktaW5pdF9hZG1pbnFfZnJlZV9yaW5nczpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzozNTA6XHRpYXZmX2ZyZWVfYWRtaW5xX2FzcShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtMzUxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNTkKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKklBVkYgUmVtb3ZhbDogQSBRdWljayBDaGVjayoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHplcm8gaW4gb24gYGlhdmZfcmVtb3ZlYC4gVGhhdCBmdW5jdGlvbiBjYWxsIGltbWVkaWF0ZWx5IHJhaXNlcyBhIGZldyBxdWVzdGlvbnMsIGRvZXNuJiMzOTt0IGl0PyBNeSBicmFpbiBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBydW5uaW5nIHRocm91Z2ggdGhlIGltcGxpY2F0aW9ucy4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgY29udGV4dCDigJMgd2hhdCYjMzk7cyBiZWluZyByZW1vdmVkPyBJcyBpdCBhIGRldmljZSwgYSBWTEFOLCBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZz8gQW5kIG1vcmUgaW1wb3J0YW50bHksICp3aHkqIGFyZSB3ZSByZW1vdmluZyBpdD8gV2hhdCYjMzk7cyB0aGUgdHJpZ2dlcmluZyBldmVudD8gSXMgdGhlcmUgYW4gZXJyb3IgY29uZGl0aW9uIG9yIGFyZSB3ZSBzaW1wbHkgcmVjb25maWd1cmluZz8gVGhpcyBuZWVkcyBpbW1lZGlhdGUgdmFsaWRhdGlvbiB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyBkb3duIHRoZSBsaW5lLiBXZSBjYW4gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgd2l0aCBzdGF0dXMgb3IgZXJyb3JzIHRvIGRldGVybWluZSBhIHBsYW4gb2YgYWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2lhdmZfcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yODQ5PXN0YXRpYyBpbnQgaWF2Zl93YXRjaGRvZ19zdGVwKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODc4LVx0XHRcdC8qIERvIG5vdCB1cGRhdGUgdGhlIHN0YXRlIGFuZCBkbyBub3QgcmVzY2hlZHVsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzoyODc5Olx0XHRcdCAqIHdhdGNoZG9nIHRhc2ssIGlhdmZfcmVtb3ZlIHNob3VsZCBoYW5kbGUgdGhpcyBzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODgwLVx0XHRcdCAqIGFzIGl0IGNhbiBsb29wIGZvcmV2ZXJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTU0NjE9c3RhdGljIGludCBpYXZmX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZfZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTItLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjU0OTM6ICogaWF2Zl9yZW1vdmUgLSBEZXZpY2UgUmVtb3ZhbCBSb3V0aW5lXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTQtICogQHBkZXY6IFBDSSBkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTUtICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTQ5NjogKiBpYXZmX3JlbW92ZSBpcyBjYWxsZWQgYnkgdGhlIFBDSSBzdWJzeXN0ZW0gdG8gYWxlcnQgdGhlIGRyaXZlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NDk3LSAqIHRoYXQgaXQgc2hvdWxkIHJlbGVhc2UgYSBQQ0kgZGV2aWNlLiAgVGhlIGNvdWxkIGJlIGNhdXNlZCBieSBhXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NTAwLSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTUwMTpzdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTUwMi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NjQ0PXN0YXRpYyB2b2lkIGlhdmZfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NjQ2Olx0aWF2Zl9yZW1vdmUocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NjU0PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpYXZmX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NTctXHQucHJvYmUgICAgID0gaWF2Zl9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTY1ODpcdC5yZW1vdmUgICAgPSBpYXZmX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTY1OS1cdC5kcml2ZXIucG0gPSBwbV9zbGVlcF9wdHIoXHUwMDI2aWF2Zl9wbV9vcHMpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNTQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQQ0kgRHJpdmVyIGZvciBQb3RlbnRpYWwgTWVtb3J5IExlYWsgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggc2VlbXMgZm9jdXNlZCBvbiBmaXhpbmcgbWVtb3J5IGxlYWtzLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgIGZ1bmN0aW9ucy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGdpdmVuIHRoYXQgdGhpcyByZWxhdGVzIHRvIGEgZHJpdmVyLCB0aGF0IHdlIHNob3VsZCB0aGluayBhYm91dCBmdXp6aW5nIGl0LiBBbmQgc2luY2UgaXQgaXMgZGVhbGluZyB3aXRoIGhhcmR3YXJlIGl0IGlzLCBtb3JlIHRoYW4gbGlrZWx5LCBhIFBDSSBkcml2ZXIuIElmIHNvLCBzeXprYWxsZXImIzM5O3MgUENJIGZ1enppbmcgc3Vic3lzdGVtIHNob3VsZCBiZSBhcHBsaWNhYmxlIGhlcmUsIHdoaWNoIGlzIGdyZWF0LiBMZXQmIzM5O3MgY29uZmlybSB0aGF0IGBpYXZmYCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBZZXAsIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHNvdXJjZSByZXZlYWxzIGBpYXZmX2RyaXZlcmAgaXMgZGVmaW5lZCBhcyBhIGBwY2lfZHJpdmVyYC4gRXhjZWxsZW50LiBOb3csIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24sIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBgaWF2ZmAgbW9kdWxlLiBUaGF0JiMzOTtsbCBwcm92aWRlIHVzZWZ1bCBjb250ZXh0IGZvciB3aGVyZSB0aGlzIG1vZHVsZSBzaXRzIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElBVkYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNTA9Y29uZmlnIEk0MEVfRENCXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNjEtIyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjYyOmNvbmZpZyBJQVZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI2My1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4OQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgSUFWRiBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkgc2VlIHRoaXMgYGNvbmZpZyBJQVZGYCBlbnRyeSBhbmQgaW1tZWRpYXRlbHkgbXkgZXhwZXJ0IGJyYWluIGZsYWdzIGl0IGFzIGEgdHJpc3RhdGUuICBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gZmlndXJlIG91dCB3aGF0IGNvbnRyb2xzIGl0LiBJcyBpdCBlbmFibGVkLCBkaXNhYmxlZCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzZWxlY3Rpb24gbG9naWMuIFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IEkmIzM5O20gZ29pbmcgdG8gZGlnIGludG8gdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHNlZSB3aGF0IHNlbGVjdHMgaXQsIG9yIHNldHMgdGhlIGNvbmRpdGlvbnMgZm9yIGl0IHRvIGJlIGFjdGl2ZS4gVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yIGluIHRoZSBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0lBVkYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc9MjUwPWNvbmZpZyBJNDBFX0RDQlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNjA6IyB0aGlzIGlzIGhlcmUgdG8gYWxsb3cgc2VhbWxlc3MgbWlncmF0aW9uIGZyb20gSTQwRVZGIC0tXHUwMDNlIElBVkYgbmFtZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNjE6IyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjYyOmNvbmZpZyBJQVZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI2My1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNjg9Y29uZmlnIEk0MEVWRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNjktXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbChSKSBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjcwOlx0c2VsZWN0IElBVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjcxLVx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNDIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSUFWRiBEcml2ZXIgQ29uZmlndXJhdGlvbiBEZWVwIERpdmUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4gTXkgbWVudGFsIG1hcCBpbW1lZGlhdGVseSBjb25uZWN0cyB0aGUgZG90cy4gYGNvbmZpZyBJNDBFVkZgIC0gdGhhdCBpbXBsaWVzIHdlJiMzOTtyZSBjaG9vc2luZyBgSUFWRmAuIEZpbmUsIG1ha2VzIHNlbnNlLCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gd2UgYXJlIGRlYWxpbmcgd2l0aCBoZXJlIHRvIGVuYWJsZSBpcyBgSTQwRVZGYC4KCkJlZm9yZSBqdW1waW5nIHRvIGNvbmNsdXNpb25zIHRob3VnaCwgYmVzdCBwcmFjdGljZSBkaWN0YXRlcyBhIHF1aWNrIGRvdWJsZSBjaGVjay4gSSBuZWVkIHRvIHZlcmlmeSBob3cgYEk0MEVWRmAgaXMgYmVpbmcgdXNlZCBhbmQgY29uZmlndXJlZC4gVGhlIHJlbGV2YW50IE1ha2VmaWxlIGlzIGNsZWFybHkgZ29pbmcgdG8gYmUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGVgLiBJJiMzOTtsbCBkaWcgaW50byB0aGF0IHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0IGFuZCBjb250cm9sbGVkLiBUaGF0JiMzOTtzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhlc2UgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7SUFWRiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZT0xMD1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZS0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0lBVkYpICYjNDM7PSBpYXZmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGUtMTMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MTEKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4KCioqSW52ZXN0aWdhdGluZyB0aGUgSW50ZWwgVkYgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIGBDT05GSUdfSUFWRmAgaXMgdGhlIG1vZHVsZSYjMzk7cyBwcmltYXJ5IGlkZW50aWZpZXIuIEl0JiMzOTtzIGNsZWFybHkgc2VsZWN0ZWQgYnkgYENPTkZJR19JNDBFVkZgLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBhIHNoaWZ0IGluIHRoZSBrZXJuZWwgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgSSBoYXZlIGEgZmVlbGluZyB0aGF0IGluIG1vcmUgcmVjZW50IGtlcm5lbCB2ZXJzaW9ucywgcGVyaGFwcyBgSTQwRVZGYCB3YXMgZWl0aGVyIHJlbmFtZWQgdG8gYElBVkZgIG9yIHBlcmhhcHMgYElBVkZgIGl0c2VsZiBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBub3cuIFRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBhbmQgY29uZmlybSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgdHdvIG9wdGlvbnMsIHRoZSBtb3N0IGVmZmljaWVudCBwYXRoIGlzIHRvIHJldmlzaXQgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlLiBJIHNob3VsZCByZS1leGFtaW5lIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnYCB0byBnZXQgYSBkZWZpbml0aXZlIGFuc3dlciBhbmQgY29uZmlybSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI1MDpcdGNvbmZpZyBJNDBFX0RDQlxuIDI1MTpcdFx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBTdXBwb3J0XCYjMzQ7XG4gMjUyOlx0XHRkZWZhdWx0IG5cbiAyNTM6XHRcdGRlcGVuZHMgb24gSTQwRSBcdTAwMjZcdTAwMjYgRENCXG4gMjU0Olx0XHRoZWxwXG4gMjU1Olx0XHQgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIERhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIGluIHRoZVxuIDI1NjpcdFx0ICBkcml2ZXIuXG4gMjU3Olx0XG4gMjU4Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gMjU5Olx0XG4gMjYwOlx0IyB0aGlzIGlzIGhlcmUgdG8gYWxsb3cgc2VhbWxlc3MgbWlncmF0aW9uIGZyb20gSTQwRVZGIC0tXHUwMDNlIElBVkYgbmFtZVxuIDI2MTpcdCMgc28gdGhhdCBDT05GSUdfSUFWRiBzeW1ib2wgd2lsbCBhbHdheXMgbWlycm9yIHRoZSBzdGF0ZSBvZiBDT05GSUdfSTQwRVZGXG4gMjYyOlx0Y29uZmlnIElBVkZcbiAyNjM6XHRcdHRyaXN0YXRlXG4gMjY0Olx0XHRzZWxlY3QgTElCSUVcbiAyNjU6XHRcdHNlbGVjdCBMSUJJRV9BRE1JTlFcbiAyNjY6XHRcdHNlbGVjdCBORVRfU0hBUEVSXG4gMjY3Olx0XG4gMjY4Olx0Y29uZmlnIEk0MEVWRlxuIDI2OTpcdFx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwoUikgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBzdXBwb3J0XCYjMzQ7XG4gMjcwOlx0XHRzZWxlY3QgSUFWRlxuIDI3MTpcdFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4gMjcyOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gMjczOlx0XHRoZWxwXG4gMjc0Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHZpcnR1YWwgZnVuY3Rpb25zIGZvciBJbnRlbCBYTDcxMCxcbiAyNzU6XHRcdCAgWDcxMCwgWDcyMiwgWFhWNzEwLCBhbmQgYWxsIGRldmljZXMgYWR2ZXJ0aXNpbmcgc3VwcG9ydCBmb3JcbiAyNzY6XHRcdCAgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBkZXZpY2VzLiBGb3IgbW9yZVxuIDI3NzpcdFx0ICBpbmZvcm1hdGlvbiBvbiBob3cgdG8gaWRlbnRpZnkgeW91ciBhZGFwdGVyLCBnbyB0byB0aGUgQWRhcHRlclxuIDI3ODpcdFx0ICBcdTAwMjYgRHJpdmVyIElEIEd1aWRlIHRoYXQgY2FuIGJlIGxvY2F0ZWQgYXQ6XG4gMjc5Olx0XG4gMjgwOlx0XHQgIFx1MDAzY2h0dHBzOi8vc3VwcG9ydC5pbnRlbC5jb21cdTAwM2VcbiAyODE6XHRcbiAyODI6XHRcdCAgVGhpcyBkcml2ZXIgd2FzIGZvcm1lcmx5IG5hbWVkIGk0MGV2Zi5cbiAyODM6XHRcbiAyODQ6XHRcdCAgTW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBvbiBjb25maWd1cmluZyB0aGUgZHJpdmVyIGlzIGluXG4gMjg1Olx0XHQgIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ludGVsL2lhdmYucnN0XHUwMDNlLlxuIDI4NjpcdFxuIDI4NzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXG4gMjg4Olx0XHQgIHdpbGwgYmUgY2FsbGVkIGlhdmYuICBNU0ktWCBpbnRlcnJ1cHQgc3VwcG9ydCBpcyByZXF1aXJlZFxuIDI4OTpcdFx0ICBmb3IgdGhpcyBkcml2ZXIgdG8gd29yayBjb3JyZWN0bHkuXG4gMjkwOlx0XG4gMjkxOlx0Y29uZmlnIElDRVxuIDI5MjpcdFx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwoUikgRXRoZXJuZXQgQ29ubmVjdGlvbiBFODAwIFNlcmllcyBTdXBwb3J0XCYjMzQ7XG4gMjkzOlx0XHRkZWZhdWx0IG5cbiAyOTQ6XHRcdGRlcGVuZHMgb24gUENJX01TSVxuIDI5NTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxuIDI5NjpcdFx0ZGVwZW5kcyBvbiBHTlNTIHx8IEdOU1MgPSBuXG4gMjk3Olx0XHRzZWxlY3QgQVVYSUxJQVJZX0JVU1xuIDI5ODpcdFx0c2VsZWN0IERJTUxJQlxuIDI5OTpcdFx0c2VsZWN0IExJQkVUSF9YRFBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU1MwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBJNDBFVkYgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgd2hlbiBhIHVzZXIgc2VsZWN0cyB0aGUgYEk0MEVWRmAgY29uZmlndXJhdGlvbiwgaXQgYXV0b21hdGljYWxseSBzZXRzIHVwIGBJQVZGYC4gU28sIGxvZ2ljYWxseSwgSSBuZWVkIHRvIGluY2x1ZGUgYEk0MEVWRmAgaW4gdGhlIGBFbmFibGVDb25maWdzYCBsaXN0LiBObyBicmFpbmVyIHRoZXJlLgoKTm93LCB0aGUgZnV6emluZyBxdWVzdGlvbi4gWWVzLCBhYnNvbHV0ZWx5LCBpdCYjMzk7cyB3b3J0aCBpdC4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIFBDSSBkcml2ZXIgaGVyZSwgYW5kIHN5emthbGxlciBoYXMgdGhhdCBuaWZ0eSBQQ0kgZnV6emluZyBzdWJzeXN0ZW0uIEl0IGNhbiBlc3NlbnRpYWxseSBzaW11bGF0ZSBQQ0kgZGV2aWNlcywgd2hpY2ggc2hvdWxkIGJlIHBlcmZlY3QgZm9yIHRyaWdnZXJpbmcgdGhvc2UgcHJvYmUgYW5kIHJlbW92ZSBwYXRocy4gVGhpcyBpcyBpZGVhbCBmb3IgZXhlcmNpc2luZyB0aGUgZHJpdmVyIGluIGRpdmVyc2Ugd2F5cy4KClRoZSBwYXRjaCBpdHNlbGYgZm9jdXNlcyBvbiBtZW1vcnkgbGVha3MgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYC4gYGlhdmZfcmVtb3ZlYCwgdGhhdCYjMzk7cyB0aGUgUENJIHJlbW92ZSBmdW5jdGlvbi4gVGhhdCYjMzk7cyAqZGVmaW5pdGVseSogcmVhY2hhYmxlIGR1cmluZyBkZXZpY2UgdW5iaW5kaW5nIG9yIHdoZW4gdGhlIG1vZHVsZSB1bmxvYWRzIOKAkyBjcml0aWNhbC4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBpcyBjYWxsZWQgZHVyaW5nIGVpdGhlciBpbml0aWFsaXphdGlvbiBmYWlsdXJlIG9yIGR1cmluZyBzaHV0ZG93bi4gVGhpcyBtZWFucyB0aGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIG5vcm1hbCBvcGVyYXRpb24gb2YgdGhlIGRyaXZlci4KClNvIHRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgY2xlYXI6IGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEFuZCwgYXMgSSBzYWlkLCB3ZSYjMzk7cmUgZW5hYmxpbmcgZnV6emluZyB1c2luZyB0aGUgYEk0MEVWRmAgY29uZmlnLgoKSnVzdCBhIHF1aWNrIHNhbml0eSBjaGVjazogSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRoYXQgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBpc24mIzM5O3QgY2FsbGVkIGZyb20gYW55IG90aGVyIHVuZXhwZWN0ZWQgcGxhY2VzLiBHb3R0YSBtYWtlIHN1cmUgd2UmIzM5O3JlIGNvdmVyaW5nIGFsbCBiYXNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWF2Zl9mcmVlX2FkbWlucV9hc3EmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9NDE9c3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01NC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo1NTogKiAgaWF2Zl9mcmVlX2FkbWlucV9hc3EgLSBGcmVlIEFkbWluIFF1ZXVlIHNlbmQgcmluZ3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01Ni0gKiAgQGh3OiBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNjAtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjYxOnN0YXRpYyB2b2lkIGlhdmZfZnJlZV9hZG1pbnFfYXNxKHN0cnVjdCBpYXZmX2h3ICpodylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy02Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jPTMwND1zdGF0aWMgZW51bSBpYXZmX3N0YXR1cyBpYXZmX2luaXRfYXNxKHN0cnVjdCBpYXZmX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtMzQ5LWluaXRfYWRtaW5xX2ZyZWVfcmluZ3M6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6MzUwOlx0aWF2Zl9mcmVlX2FkbWlucV9hc3EoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTM1MS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzU3NQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIFVzYWdlKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBmb2xsb3dpbmcgdGhlIGNvZGUgY29ycmVjdGx5LiBJdCBsb29rcyBsaWtlIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgaXMgKmFsc28qIGNhbGxlZCBmcm9tIGBpYXZmX3NodXRkb3duX2FkbWlucWAuIFRoYXQmIzM5O3MgYSBwb2ludCBJIGhhZG4mIzM5O3QgZXhwbGljaXRseSBjb25zaWRlcmVkLiAgSSBuZWVkIHRvIHJldmlzaXQgdGhlIHBvdGVudGlhbCBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRob3NlIGZ1bmN0aW9ucyBub3cuIEkgc2hvdWxkIGRvdWJsZSBjaGVjayBgaWF2Zl9hZG1pbnEuY2AgdG8gYmUgY29tcGxldGVseSBzdXJlIGFib3V0IGhvdyB0aGF0IGxvZ2ljIGlzIGhhbmRsZWQsIGJlY2F1c2UgaXQgc2VlbXMgSSBoYXZlIGEgbWlzc2luZyBwaWVjZSB0byB0aGlzIHB1enpsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWF2Zl9zaHV0ZG93bl9hZG1pbnEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9NDk5PWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FkbWlucShzdHJ1Y3QgaWF2Zl9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzNi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo1Mzc6ICogIGlhdmZfc2h1dGRvd25fYWRtaW5xIC0gc2h1dGRvd24gcm91dGluZSBmb3IgdGhlIEFkbWluIFF1ZXVlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNTM4LSAqICBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHN0cnVjdHVyZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzOS0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NTQwOmVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9zaHV0ZG93bl9hZG1pbnEoc3RydWN0IGlhdmZfaHcgKmh3KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yMzEzPXN0YXRpYyB2b2lkIGlhdmZfc3RhcnR1cChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjM0NS1cdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7VW5hYmxlIHRvIHNlbmQgdG8gUEYgKCVkKVxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM0NjpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzQ3LVx0XHRnb3RvIGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTIzNjM9c3RhdGljIHZvaWQgaWF2Zl9pbml0X3ZlcnNpb25fY2hlY2soc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTIzNzItXHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O0FkbWluIHF1ZXVlIGNvbW1hbmQgbmV2ZXIgY29tcGxldGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM3MzpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzc0LVx0XHRpYXZmX2NoYW5nZV9zdGF0ZShhZGFwdGVyLCBfX0lBVkZfU1RBUlRVUCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yNDY0PXN0YXRpYyB2b2lkIGlhdmZfaW5pdF9nZXRfcmVzb3VyY2VzKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDg4LVx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjQ4OTpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDkwLVx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtVbmFibGUgdG8gZ2V0IFZGIGNvbmZpZyBkdWUgdG8gUEYgZXJyb3IgY29uZGl0aW9uLCBub3QgcmV0cnlpbmdcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9Mjg0OT1zdGF0aWMgaW50IGlhdmZfd2F0Y2hkb2dfc3RlcChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjg4Ny1cdFx0XHRhZGFwdGVyLVx1MDAzZWZsYWdzIHw9IElBVkZfRkxBR19QRl9DT01NU19GQUlMRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjI4ODg6XHRcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODg5LVx0XHRcdHJldHVybiA1MDAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9Mjk5MT1zdGF0aWMgdm9pZCBpYXZmX2Rpc2FibGVfdmYoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMwNDUtXHRtZW1zZXQoYWRhcHRlci1cdTAwM2V2Zl9yZXMsIDAsIElBVkZfVklSVENITkxfVkZfUkVTT1VSQ0VfU0laRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjMwNDY6XHRpYXZmX3NodXRkb3duX2FkbWlucShcdTAwMjZhZGFwdGVyLVx1MDAzZWh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMzA0Ny1cdGFkYXB0ZXItXHUwMDNlZmxhZ3MgXHUwMDI2PSB+SUFWRl9GTEFHX1JFU0VUX1BFTkRJTkc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0zMDg2PXZvaWQgaWF2Zl9yZXNldF9zdGVwKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA1LVx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MzEwNjpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA3LVx0XHRpYXZmX2luaXRfYWRtaW5xKGh3KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxNDgtXHRpZiAoYWRhcHRlci1cdTAwM2VzdGF0ZSBcdTAwM2M9IF9fSUFWRl9JTklUX0ZBSUxFRCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzozMTQ5Olx0XHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxNTAtXHRcdGlhdmZfY2hhbmdlX3N0YXRlKGFkYXB0ZXIsIF9fSUFWRl9TVEFSVFVQKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxODMtXHQvKiBraWxsIGFuZCByZWluaXQgdGhlIGFkbWluIHF1ZXVlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjMxODQ6XHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxODUtXHRhZGFwdGVyLVx1MDAzZWN1cnJlbnRfb3AgPSBWSVJUQ0hOTF9PUF9VTktOT1dOO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9NTUwMT1zdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU1ODEtXHRpZiAoaHctXHUwMDNlYXEuYXNxLmNvdW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NTgyOlx0XHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU1ODMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oPTE5PWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FkbWlucShzdHJ1Y3QgaWF2Zl9odyAqaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oOjIwOmVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9zaHV0ZG93bl9hZG1pbnEoc3RydWN0IGlhdmZfaHcgKmh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9wcm90b3R5cGUuaC0yMS1lbnVtIGlhdmZfc3RhdHVzIGlhdmZfY2xlYW5fYXJxX2VsZW1lbnQoc3RydWN0IGlhdmZfaHcgKmh3LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NTQ1CgkJCQkJCQlvdXRwdXQ6IDE0OQoJCQkJCQkJdGhvdWdodHM6IDU4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgSUFWRiBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBkaWdnaW5nIGludG8gdGhpcyBwYXRjaC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBpbiB0aGUgbWVtb3J5IGxlYWsgZml4ZXMuIFRoZSBjb2RlJiMzOTtzIGFkZGluZyBmaXhlcyB0byBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLCB3aGljaCBhcmUgY2FsbGVkIGR1cmluZyBzaHV0ZG93bi9pbml0aWFsaXphdGlvbiBmYWlsdXJlIGFuZCBQQ0kgZGV2aWNlIHJlbW92YWwsIHJlc3BlY3RpdmVseS4gVGhlc2Ugc2VlbSB0byBiZSB0aGUgY3JpdGljYWwgcG9pbnRzLgoKSSYjMzk7bSBtYWtpbmcgYSBtZW50YWwgbm90ZSB0byBhZGQgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYCB0byBgRm9jdXNTeW1ib2xzYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgaGVhcnQgb2YgdGhlIGNoYW5nZXMgYXJlLgoKTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBUaGUgY29kZSBzZWVtcyBmb2N1c2VkIG9uIHRoZSBgSTQwRVZGYCBjb25maWcuIEkgYnJpZWZseSBkb3VibGUtY2hlY2tlZCBmb3Igb3RoZXIgc3BlY2lmaWMgZGVwZW5kZW5jaWVzLiAgYFBDSV9NU0lgIGFuZCBgUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxgIGFyZSByZXF1aXJlZCwgYnV0IHRob3NlIGFyZSBwcmV0dHkgZ2VuZXJpYywgc28gYEk0MEVWRmAgc2VlbXMgdG8gYmUgdGhlIGNydWNpYWwgb25lLgoKSGFuZyBvbi4uLiBJIG5lZWQgdG8gYmUgcHJlY2lzZSBoZXJlLiBgSTQwRVZGYCBzZWxlY3RzIGBJQVZGYC4gSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgYElBVkZgIGlzIGEgdHJpc3RhdGUgY29uZmlnLCBidXQgaXQgZG9lc24mIzM5O3QgaGF2ZSBhIGRpcmVjdCB1c2VyLWZhY2luZyBwcm9tcHQgaW4gYEtjb25maWdgLiAgVGhpcyBtZWFucyB0aGF0IGBJNDBFVkZgIGlzIHRoZSBjb25maWd1cmF0aW9uIHRoYXQgbXVzdCBiZSBzZXQuIFRoZXJlZm9yZSwgSSB3aWxsIGxpc3QgYEk0MEVWRmAgdW5kZXIgYEVuYWJsZUNvbmZpZ3NgLgoKSSBxdWlja2x5IHZlcmlmaWVkIHRoYXQgYm90aCBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgIGFyZSBkZWNsYXJlZCBhcyBgc3RhdGljYC4gIFRoZXJlZm9yZSwgdGhlcmUgd29uJiMzOTt0IGJlIGFueSBpc3N1ZXMgd2l0aCBuYW1lIGNvbGxpc2lvbnMuCgpTbywganVzdCB0byBiZSBjcnlzdGFsIGNsZWFyLCBteSBkZWZpbml0aXZlIGBGb2N1c1N5bWJvbHNgIGFyZToKCiogICBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgCiogICBgaWF2Zl9yZW1vdmVgCgpBbmQgdGhlIGBFbmFibGVDb25maWdzYCBhcmU6CgoqICAgYEk0MEVWRmAKClRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgZnVuY3Rpb25hbCwgYW5kIGl0IHJlc29sdmVzIG1lbW9yeSBsZWFrcywgd2hpY2ggbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSSBjb25maXJtZWQgdGhhdCBgV29ydGhGdXp6aW5nYCBpcyBzZXQgdG8gYHRydWVgLgoKTXkgb3ZlcmFsbCByZWFzb25pbmcgaXMgdGhhdCB0aGlzIHBhdGNoIGFkZHJlc3NlcyBtZW1vcnkgbGVha3MgaW4gdGhlIEludGVsIEV0aGVybmV0IEFkYXB0aXZlIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyIGJ5IGVuc3VyaW5nIHRoYXQgYGNtZF9idWZgIGFuZCBgcW9zX2NhcHNgIGFyZSBmcmVlZCBpbiB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzIOKAkyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS9zaHV0ZG93biAoYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCkgYW5kIHdoZW4gdGhlIFBDSSBkZXZpY2UgaXMgcmVtb3ZlZCAoYGlhdmZfcmVtb3ZlYCkuIFRoZSBQQ0kgZnV6emluZyBzdWJzeXN0ZW0gb2Ygc3l6a2FsbGVyIGlzIHBlcmZlY3QgZm9yIHNpbXVsYXRpbmcgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zIGFuZCwgdGhlcmVmb3JlLCB0ZXN0aW5nIHRoaXMgcGF0Y2guCgpJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0k0MEVWRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lhdmZfZnJlZV9hZG1pbnFfYXNxJiMzNDssCiAgICAmIzM0O2lhdmZfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBzdWJzeXN0ZW0sIHdoaWNoIGNhbiBzaW11bGF0ZSBQQ0kgZGV2aWNlIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7STQwRVZGJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWF2Zl9mcmVlX2FkbWlucV9hc3EmIzM0OywKICAgICYjMzQ7aWF2Zl9yZW1vdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgbWVtb3J5IGxlYWtzIGluIHRoZSBJbnRlbCBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIChpYXZmKSBkcml2ZXIgYnkgZnJlZWluZyBgY21kX2J1ZmAgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYHFvc19jYXBzYCBpbiBgaWF2Zl9yZW1vdmVgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUsIHNodXRkb3duLCBvciByZW1vdmFsLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdXNpbmcgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NDUuMDI2Mjc5MTE5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk1NTUwNzg2NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSTQwRVZGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWF2Zl9mcmVlX2FkbWlucV9hc3FcIixcbiAgICBcImlhdmZfcmVtb3ZlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWVtb3J5IGxlYWtzIGluIHRoZSBJbnRlbCBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIChpYXZmKSBkcml2ZXIgYnkgZnJlZWluZyBgY21kX2J1ZmAgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYHFvc19jYXBzYCBpbiBgaWF2Zl9yZW1vdmVgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUsIHNodXRkb3duLCBvciByZW1vdmFsLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdXNpbmcgc3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgc3Vic3lzdGVtLCB3aGljaCBjYW4gc2ltdWxhdGUgUENJIGRldmljZSBwcm9iZSBhbmQgcmVtb3ZlIG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjQ1LjAyNjI5Mzg4OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODIxNzE5NzU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgY2RjMmMwMWNkM2Y4MTJjYjVkNzk3MjdiOGEzM2IxODNhZDM5NmUwNFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAxNDo0Njo0MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmNcXG5pbmRleCA2OTM3YjdkZDQ0Y2JiNi4uNDBmNzZmOTUwN2Y0YmIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXFxuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxcbiAgKiovXFxuIHN0YXRpYyB2b2lkIGlhdmZfZnJlZV9hZG1pbnFfYXNxKHN0cnVjdCBpYXZmX2h3ICpodylcXG4ge1xcbitcXHRpYXZmX2ZyZWVfdmlydF9tZW0oaHcsIFxcdTAwMjZody1cXHUwMDNlYXEuYXNxLmNtZF9idWYpO1xcbiBcXHRpYXZmX2ZyZWVfZG1hX21lbShodywgXFx1MDAyNmh3LVxcdTAwM2VhcS5hc3EuZGVzY19idWYpO1xcbiB9XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uY1xcbmluZGV4IDI5Yjg0MDNhMDY2YmM4Li5jN2Y2OWE5MDQwNTg4OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uY1xcbkBAIC01NTg5LDYgKzU1ODksNyBAQCBzdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gXFx0aW91bm1hcChody1cXHUwMDNlaHdfYWRkcik7XFxuIFxcdHBjaV9yZWxlYXNlX3JlZ2lvbnMocGRldik7XFxuIFxcdGtmcmVlKGFkYXB0ZXItXFx1MDAzZXZmX3Jlcyk7XFxuK1xcdGtmcmVlKGFkYXB0ZXItXFx1MDAzZXFvc19jYXBzKTtcXG4gXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VtYWNfdmxhbl9saXN0X2xvY2spO1xcbiBcXHQvKiBJZiB3ZSBnb3QgcmVtb3ZlZCBiZWZvcmUgYW4gdXAvZG93biBzZXF1ZW5jZSwgd2UndmUgZ290IGEgZmlsdGVyXFxuIFxcdCAqIGhhbmdpbmcgb3V0IHRoZXJlIHRoYXQgd2UgbmVlZCB0byBnZXQgcmlkIG9mLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0Njo0NS44NDkwNDc2MzdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NzMyMzAwNzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkk0MEVWRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlhdmZfZnJlZV9hZG1pbnFfYXNxXCIsXG4gICAgXCJpYXZmX3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGNkYzJjMDFjZDNmODEyY2I1ZDc5NzI3YjhhMzNiMTgzYWQzOTZlMDRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxNDo0Njo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuY1xuaW5kZXggNjkzN2I3ZGQ0NGNiYjYuLjQwZjc2Zjk1MDdmNGJiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmNcbkBAIC02MCw2ICs2MCw3IEBAIHN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfYWxsb2NfYWRtaW5xX2FycV9yaW5nKHN0cnVjdCBpYXZmX2h3ICpodylcbiAgKiovXG4gc3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxuIHtcbitcdGlhdmZfZnJlZV92aXJ0X21lbShodywgXHUwMDI2aHctXHUwMDNlYXEuYXNxLmNtZF9idWYpO1xuIFx0aWF2Zl9mcmVlX2RtYV9tZW0oaHcsIFx1MDAyNmh3LVx1MDAzZWFxLmFzcS5kZXNjX2J1Zik7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5pbmRleCAyOWI4NDAzYTA2NmJjOC4uYzdmNjlhOTA0MDU4ODggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5AQCAtNTU4OSw2ICs1NTg5LDcgQEAgc3RhdGljIHZvaWQgaWF2Zl9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRpb3VubWFwKGh3LVx1MDAzZWh3X2FkZHIpO1xuIFx0cGNpX3JlbGVhc2VfcmVnaW9ucyhwZGV2KTtcbiBcdGtmcmVlKGFkYXB0ZXItXHUwMDNldmZfcmVzKTtcbitcdGtmcmVlKGFkYXB0ZXItXHUwMDNlcW9zX2NhcHMpO1xuIFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmFkYXB0ZXItXHUwMDNlbWFjX3ZsYW5fbGlzdF9sb2NrKTtcbiBcdC8qIElmIHdlIGdvdCByZW1vdmVkIGJlZm9yZSBhbiB1cC9kb3duIHNlcXVlbmNlLCB3ZSd2ZSBnb3QgYSBmaWx0ZXJcbiBcdCAqIGhhbmdpbmcgb3V0IHRoZXJlIHRoYXQgd2UgbmVlZCB0byBnZXQgcmlkIG9mLlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NDUuODQ5MDQ5NTA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM5NzU3ODg2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCB0byBhbiBJQVZGIERyaXZlciBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgaWF2Zl9hZG1pbnEuY2AgYW5kIGBpYXZmX21haW4uY2Ag4oCTIHNwZWNpZmljYWxseSwgdHdvIGxpbmVzIGFkZGVkIHRvIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEhtbSwgdGhpcyBpcyB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3Qgd2l0aCBQQ0kgZHJpdmVycyBpcyBhbHdheXMgY2F1dGlvbjsgdGhleSdyZSBnZW5lcmFsbHkgdHJpY2t5IHRvIGZ1enogdW5sZXNzIHlvdSBoYXZlIGVtdWxhdGlvbiBvciBhIHZpcnR1YWwgc2V0dXAuIEJ1dCB3YWl04oCmICppYXZmKiBpcyBhIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyISBUaGF0IGNoYW5nZXMgdGhpbmdzLiBJdCBuZWVkcyBhIFBoeXNpY2FsIEZ1bmN0aW9uIGRyaXZlciBsaWtlIGBpY2VgIG9yIGBpNDBlYCB0byBnZXQgY3JlYXRlZCwgb3IgY2FuIGJlIHByb2JlZCB3aXRoIGEgVkYgcGFzc2VkIHRocm91Z2guXG5cbk9rYXksIHNvIHRoZSBmYWN0IGl0J3MgYSBWRiBpcyBrZXkgaGVyZS4gVGhhdCBvcGVucyB0aGUgZG9vciB0byBwb3RlbnRpYWwuIEkga25vdyBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enppbmcgc3Vic3lzdGVtOyB0aGUgYHZoY2kvcGNpYCBzZXR1cCwgcmlnaHQ/IFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBjYW4gd2UgbGV2ZXJhZ2UgdGhhdCB3aXRoIGBpYXZmYD9cblxuTGV0J3Mgc2Vl4oCmIHRoaXMgcGF0Y2gsIGF0IGZhY2UgdmFsdWUsIGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIG1lbW9yeSBsZWFrcyBpbiBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLiBUaGlzIGlzIGludGVyZXN0aW5nOyBmaXhpbmcgbWVtb3J5IGVycm9ycyBpcyBvZnRlbiBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgYXMgaXQgaW5jcmVhc2VzIHRoZSBjaGFuY2VzIG9mIHRyaWdnZXJpbmcgbW9yZSB2YXJpZWQgY29kZSBwYXRocy4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRob3NlIGZ1bmN0aW9ucyBtb3JlIGNsb3NlbHkuIEknbGwgc2VhcmNoIGZvciBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgIGFuZCBzZWUgd2hhdCB0aGV5J3JlIGRvaW5nLiBUaGlzIGNvdWxkIGJlIHByb21pc2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEzOSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjUyLjI0NjYzMDg0MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTUzOTgxMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWF2Zl9mcmVlX2FkbWlucV9hc3FcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jPTQxPXN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfYWxsb2NfYWRtaW5xX2FycV9yaW5nKHN0cnVjdCBpYXZmX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01NC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NTU6ICogIGlhdmZfZnJlZV9hZG1pbnFfYXNxIC0gRnJlZSBBZG1pbiBRdWV1ZSBzZW5kIHJpbmdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU2LSAqICBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHN0cnVjdHVyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTYwLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NjE6c3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy02Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9MzA0PXN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfaW5pdF9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTM0OS1pbml0X2FkbWlucV9mcmVlX3JpbmdzOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzozNTA6XFx0aWF2Zl9mcmVlX2FkbWlucV9hc3EoaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy0zNTEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjUyLjM2MjAzODg4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0OTk2MzA0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCBJJ20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKklBVkYgUmVtb3ZhbDogQSBRdWljayBDaGVjayoqXG5cbkFscmlnaHQsIGxldCdzIGp1c3QgcXVpY2tseSB6ZXJvIGluIG9uIGBpYXZmX3JlbW92ZWAuIFRoYXQgZnVuY3Rpb24gY2FsbCBpbW1lZGlhdGVseSByYWlzZXMgYSBmZXcgcXVlc3Rpb25zLCBkb2Vzbid0IGl0PyBNeSBicmFpbiBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBydW5uaW5nIHRocm91Z2ggdGhlIGltcGxpY2F0aW9ucy4gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBjb250ZXh0IOKAkyB3aGF0J3MgYmVpbmcgcmVtb3ZlZD8gSXMgaXQgYSBkZXZpY2UsIGEgVkxBTiwgYSBjb25maWd1cmF0aW9uIHNldHRpbmc/IEFuZCBtb3JlIGltcG9ydGFudGx5LCAqd2h5KiBhcmUgd2UgcmVtb3ZpbmcgaXQ/IFdoYXQncyB0aGUgdHJpZ2dlcmluZyBldmVudD8gSXMgdGhlcmUgYW4gZXJyb3IgY29uZGl0aW9uIG9yIGFyZSB3ZSBzaW1wbHkgcmVjb25maWd1cmluZz8gVGhpcyBuZWVkcyBpbW1lZGlhdGUgdmFsaWRhdGlvbiB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyBkb3duIHRoZSBsaW5lLiBXZSBjYW4gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgd2l0aCBzdGF0dXMgb3IgZXJyb3JzIHRvIGRldGVybWluZSBhIHBsYW4gb2YgYWN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjU5LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NTUuOTEyMDA3NDA3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyMDA1MDAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImlhdmZfcmVtb3ZlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9Mjg0OT1zdGF0aWMgaW50IGlhdmZfd2F0Y2hkb2dfc3RlcChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODc4LVxcdFxcdFxcdC8qIERvIG5vdCB1cGRhdGUgdGhlIHN0YXRlIGFuZCBkbyBub3QgcmVzY2hlZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6Mjg3OTpcXHRcXHRcXHQgKiB3YXRjaGRvZyB0YXNrLCBpYXZmX3JlbW92ZSBzaG91bGQgaGFuZGxlIHRoaXMgc3RhdGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTI4ODAtXFx0XFx0XFx0ICogYXMgaXQgY2FuIGxvb3AgZm9yZXZlclxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NDYxPXN0YXRpYyBpbnQgaWF2Zl9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2X2QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTItLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NDkzOiAqIGlhdmZfcmVtb3ZlIC0gRGV2aWNlIFJlbW92YWwgUm91dGluZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTQ5NC0gKiBAcGRldjogUENJIGRldmljZSBpbmZvcm1hdGlvbiBzdHJ1Y3RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTUtICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjU0OTY6ICogaWF2Zl9yZW1vdmUgaXMgY2FsbGVkIGJ5IHRoZSBQQ0kgc3Vic3lzdGVtIHRvIGFsZXJ0IHRoZSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTctICogdGhhdCBpdCBzaG91bGQgcmVsZWFzZSBhIFBDSSBkZXZpY2UuICBUaGUgY291bGQgYmUgY2F1c2VkIGJ5IGFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTUwMC0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NTAxOnN0YXRpYyB2b2lkIGlhdmZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTUwMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTU2NDQ9c3RhdGljIHZvaWQgaWF2Zl9zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTY0NjpcXHRpYXZmX3JlbW92ZShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTU2NTQ9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGlhdmZfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NjU3LVxcdC5wcm9iZSAgICAgPSBpYXZmX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTY1ODpcXHQucmVtb3ZlICAgID0gaWF2Zl9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NjU5LVxcdC5kcml2ZXIucG0gPSBwbV9zbGVlcF9wdHIoXFx1MDAyNmlhdmZfcG1fb3BzKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NTUuOTk0MDI2MTI5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk3ODExMzY0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQQ0kgRHJpdmVyIGZvciBQb3RlbnRpYWwgTWVtb3J5IExlYWsgVnVsbmVyYWJpbGl0aWVzKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBzZWVtcyBmb2N1c2VkIG9uIGZpeGluZyBtZW1vcnkgbGVha3MsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAgZnVuY3Rpb25zLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgZ2l2ZW4gdGhhdCB0aGlzIHJlbGF0ZXMgdG8gYSBkcml2ZXIsIHRoYXQgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGZ1enppbmcgaXQuIEFuZCBzaW5jZSBpdCBpcyBkZWFsaW5nIHdpdGggaGFyZHdhcmUgaXQgaXMsIG1vcmUgdGhhbiBsaWtlbHksIGEgUENJIGRyaXZlci4gSWYgc28sIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSBzaG91bGQgYmUgYXBwbGljYWJsZSBoZXJlLCB3aGljaCBpcyBncmVhdC4gTGV0J3MgY29uZmlybSB0aGF0IGBpYXZmYCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBZZXAsIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHNvdXJjZSByZXZlYWxzIGBpYXZmX2RyaXZlcmAgaXMgZGVmaW5lZCBhcyBhIGBwY2lfZHJpdmVyYC4gRXhjZWxsZW50LiBOb3csIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24sIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBgaWF2ZmAgbW9kdWxlLiBUaGF0J2xsIHByb3ZpZGUgdXNlZnVsIGNvbnRleHQgZm9yIHdoZXJlIHRoaXMgbW9kdWxlIHNpdHMgd2l0aGluIHRoZSBicm9hZGVyIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjU5Ljk3MjE0MTc2NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDEzMDY4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElBVkZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc9MjUwPWNvbmZpZyBJNDBFX0RDQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNjEtIyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI2Mjpjb25maWcgSUFWRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjYzLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ3OjAwLjE3MzQ1Mzg0NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2MDQ2OTA2NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgSUFWRiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBzZWUgdGhpcyBgY29uZmlnIElBVkZgIGVudHJ5IGFuZCBpbW1lZGlhdGVseSBteSBleHBlcnQgYnJhaW4gZmxhZ3MgaXQgYXMgYSB0cmlzdGF0ZS4gIE15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byBmaWd1cmUgb3V0IHdoYXQgY29udHJvbHMgaXQuIElzIGl0IGVuYWJsZWQsIGRpc2FibGVkLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNlbGVjdGlvbiBsb2dpYy4gV2hhdCBhcmUgdGhlIGRlcGVuZGVuY2llcz8gSSdtIGdvaW5nIHRvIGRpZyBpbnRvIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBzZWUgd2hhdCBzZWxlY3RzIGl0LCBvciBzZXRzIHRoZSBjb25kaXRpb25zIGZvciBpdCB0byBiZSBhY3RpdmUuIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yIGluIHRoZSBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzowNi43NzgxNDcyMzhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODg5NTkwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJJQVZGXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNTA9Y29uZmlnIEk0MEVfRENCXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI2MDojIHRoaXMgaXMgaGVyZSB0byBhbGxvdyBzZWFtbGVzcyBtaWdyYXRpb24gZnJvbSBJNDBFVkYgLS1cXHUwMDNlIElBVkYgbmFtZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjYxOiMgc28gdGhhdCBDT05GSUdfSUFWRiBzeW1ib2wgd2lsbCBhbHdheXMgbWlycm9yIHRoZSBzdGF0ZSBvZiBDT05GSUdfSTQwRVZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNjI6Y29uZmlnIElBVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI2My1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNjg9Y29uZmlnIEk0MEVWRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjY5LVxcdHRyaXN0YXRlIFxcXCJJbnRlbChSKSBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNzA6XFx0c2VsZWN0IElBVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI3MS1cXHRkZXBlbmRzIG9uIFBDSV9NU0lcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MDcuMjc3MDQ5NTU5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNzE0ODMzMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJQVZGIERyaXZlciBDb25maWd1cmF0aW9uIERlZXAgRGl2ZSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4gTXkgbWVudGFsIG1hcCBpbW1lZGlhdGVseSBjb25uZWN0cyB0aGUgZG90cy4gYGNvbmZpZyBJNDBFVkZgIC0gdGhhdCBpbXBsaWVzIHdlJ3JlIGNob29zaW5nIGBJQVZGYC4gRmluZSwgbWFrZXMgc2Vuc2UsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGhlcmUgdG8gZW5hYmxlIGlzIGBJNDBFVkZgLlxuXG5CZWZvcmUganVtcGluZyB0byBjb25jbHVzaW9ucyB0aG91Z2gsIGJlc3QgcHJhY3RpY2UgZGljdGF0ZXMgYSBxdWljayBkb3VibGUgY2hlY2suIEkgbmVlZCB0byB2ZXJpZnkgaG93IGBJNDBFVkZgIGlzIGJlaW5nIHVzZWQgYW5kIGNvbmZpZ3VyZWQuIFRoZSByZWxldmFudCBNYWtlZmlsZSBpcyBjbGVhcmx5IGdvaW5nIHRvIGJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL01ha2VmaWxlYC4gSSdsbCBkaWcgaW50byB0aGF0IHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0IGFuZCBjb250cm9sbGVkLiBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyB0aGVzZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTQyLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTAuNTQ4NTM1NTg0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjYzMDAwODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiSUFWRlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGU9MTA9c3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGUtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfSUFWRikgKz0gaWF2Zi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZS0xMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTAuNjc0ODQyMzQxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzOTMwMjI2MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guXG5cbioqSW52ZXN0aWdhdGluZyB0aGUgSW50ZWwgVkYgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgc28gYENPTkZJR19JQVZGYCBpcyB0aGUgbW9kdWxlJ3MgcHJpbWFyeSBpZGVudGlmaWVyLiBJdCdzIGNsZWFybHkgc2VsZWN0ZWQgYnkgYENPTkZJR19JNDBFVkZgLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBhIHNoaWZ0IGluIHRoZSBrZXJuZWwgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgSSBoYXZlIGEgZmVlbGluZyB0aGF0IGluIG1vcmUgcmVjZW50IGtlcm5lbCB2ZXJzaW9ucywgcGVyaGFwcyBgSTQwRVZGYCB3YXMgZWl0aGVyIHJlbmFtZWQgdG8gYElBVkZgIG9yIHBlcmhhcHMgYElBVkZgIGl0c2VsZiBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBub3cuIFRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBhbmQgY29uZmlybSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgdHdvIG9wdGlvbnMsIHRoZSBtb3N0IGVmZmljaWVudCBwYXRoIGlzIHRvIHJldmlzaXQgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlLiBJIHNob3VsZCByZS1leGFtaW5lIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnYCB0byBnZXQgYSBkZWZpbml0aXZlIGFuc3dlciBhbmQgY29uZmlybSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTExLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTQuMDY3ODY3OTk0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI1MDpcXHRjb25maWcgSTQwRV9EQ0JcXG4gMjUxOlxcdFxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnRcXFwiXFxuIDI1MjpcXHRcXHRkZWZhdWx0IG5cXG4gMjUzOlxcdFxcdGRlcGVuZHMgb24gSTQwRSBcXHUwMDI2XFx1MDAyNiBEQ0JcXG4gMjU0OlxcdFxcdGhlbHBcXG4gMjU1OlxcdFxcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgaW4gdGhlXFxuIDI1NjpcXHRcXHQgIGRyaXZlci5cXG4gMjU3OlxcdFxcbiAyNTg6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAyNTk6XFx0XFxuIDI2MDpcXHQjIHRoaXMgaXMgaGVyZSB0byBhbGxvdyBzZWFtbGVzcyBtaWdyYXRpb24gZnJvbSBJNDBFVkYgLS1cXHUwMDNlIElBVkYgbmFtZVxcbiAyNjE6XFx0IyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcXG4gMjYyOlxcdGNvbmZpZyBJQVZGXFxuIDI2MzpcXHRcXHR0cmlzdGF0ZVxcbiAyNjQ6XFx0XFx0c2VsZWN0IExJQklFXFxuIDI2NTpcXHRcXHRzZWxlY3QgTElCSUVfQURNSU5RXFxuIDI2NjpcXHRcXHRzZWxlY3QgTkVUX1NIQVBFUlxcbiAyNjc6XFx0XFxuIDI2ODpcXHRjb25maWcgSTQwRVZGXFxuIDI2OTpcXHRcXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBzdXBwb3J0XFxcIlxcbiAyNzA6XFx0XFx0c2VsZWN0IElBVkZcXG4gMjcxOlxcdFxcdGRlcGVuZHMgb24gUENJX01TSVxcbiAyNzI6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAyNzM6XFx0XFx0aGVscFxcbiAyNzQ6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyB2aXJ0dWFsIGZ1bmN0aW9ucyBmb3IgSW50ZWwgWEw3MTAsXFxuIDI3NTpcXHRcXHQgIFg3MTAsIFg3MjIsIFhYVjcxMCwgYW5kIGFsbCBkZXZpY2VzIGFkdmVydGlzaW5nIHN1cHBvcnQgZm9yXFxuIDI3NjpcXHRcXHQgIEludGVsIEV0aGVybmV0IEFkYXB0aXZlIFZpcnR1YWwgRnVuY3Rpb24gZGV2aWNlcy4gRm9yIG1vcmVcXG4gMjc3OlxcdFxcdCAgaW5mb3JtYXRpb24gb24gaG93IHRvIGlkZW50aWZ5IHlvdXIgYWRhcHRlciwgZ28gdG8gdGhlIEFkYXB0ZXJcXG4gMjc4OlxcdFxcdCAgXFx1MDAyNiBEcml2ZXIgSUQgR3VpZGUgdGhhdCBjYW4gYmUgbG9jYXRlZCBhdDpcXG4gMjc5OlxcdFxcbiAyODA6XFx0XFx0ICBcXHUwMDNjaHR0cHM6Ly9zdXBwb3J0LmludGVsLmNvbVxcdTAwM2VcXG4gMjgxOlxcdFxcbiAyODI6XFx0XFx0ICBUaGlzIGRyaXZlciB3YXMgZm9ybWVybHkgbmFtZWQgaTQwZXZmLlxcbiAyODM6XFx0XFxuIDI4NDpcXHRcXHQgIE1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIGRyaXZlciBpcyBpblxcbiAyODU6XFx0XFx0ICBcXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW50ZWwvaWF2Zi5yc3RcXHUwMDNlLlxcbiAyODY6XFx0XFxuIDI4NzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcXG4gMjg4OlxcdFxcdCAgd2lsbCBiZSBjYWxsZWQgaWF2Zi4gIE1TSS1YIGludGVycnVwdCBzdXBwb3J0IGlzIHJlcXVpcmVkXFxuIDI4OTpcXHRcXHQgIGZvciB0aGlzIGRyaXZlciB0byB3b3JrIGNvcnJlY3RseS5cXG4gMjkwOlxcdFxcbiAyOTE6XFx0Y29uZmlnIElDRVxcbiAyOTI6XFx0XFx0dHJpc3RhdGUgXFxcIkludGVsKFIpIEV0aGVybmV0IENvbm5lY3Rpb24gRTgwMCBTZXJpZXMgU3VwcG9ydFxcXCJcXG4gMjkzOlxcdFxcdGRlZmF1bHQgblxcbiAyOTQ6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXFxuIDI5NTpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXFxuIDI5NjpcXHRcXHRkZXBlbmRzIG9uIEdOU1MgfHwgR05TUyA9IG5cXG4gMjk3OlxcdFxcdHNlbGVjdCBBVVhJTElBUllfQlVTXFxuIDI5ODpcXHRcXHRzZWxlY3QgRElNTElCXFxuIDI5OTpcXHRcXHRzZWxlY3QgTElCRVRIX1hEUFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzoxNC4wNjgxMTIwMjRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY0MjkxMjM5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBJNDBFVkYgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHdoZW4gYSB1c2VyIHNlbGVjdHMgdGhlIGBJNDBFVkZgIGNvbmZpZ3VyYXRpb24sIGl0IGF1dG9tYXRpY2FsbHkgc2V0cyB1cCBgSUFWRmAuIFNvLCBsb2dpY2FsbHksIEkgbmVlZCB0byBpbmNsdWRlIGBJNDBFVkZgIGluIHRoZSBgRW5hYmxlQ29uZmlnc2AgbGlzdC4gTm8gYnJhaW5lciB0aGVyZS5cblxuTm93LCB0aGUgZnV6emluZyBxdWVzdGlvbi4gWWVzLCBhYnNvbHV0ZWx5LCBpdCdzIHdvcnRoIGl0LiBXZSdyZSBkZWFsaW5nIHdpdGggYSBQQ0kgZHJpdmVyIGhlcmUsIGFuZCBzeXprYWxsZXIgaGFzIHRoYXQgbmlmdHkgUENJIGZ1enppbmcgc3Vic3lzdGVtLiBJdCBjYW4gZXNzZW50aWFsbHkgc2ltdWxhdGUgUENJIGRldmljZXMsIHdoaWNoIHNob3VsZCBiZSBwZXJmZWN0IGZvciB0cmlnZ2VyaW5nIHRob3NlIHByb2JlIGFuZCByZW1vdmUgcGF0aHMuIFRoaXMgaXMgaWRlYWwgZm9yIGV4ZXJjaXNpbmcgdGhlIGRyaXZlciBpbiBkaXZlcnNlIHdheXMuXG5cblRoZSBwYXRjaCBpdHNlbGYgZm9jdXNlcyBvbiBtZW1vcnkgbGVha3MgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYC4gYGlhdmZfcmVtb3ZlYCwgdGhhdCdzIHRoZSBQQ0kgcmVtb3ZlIGZ1bmN0aW9uLiBUaGF0J3MgKmRlZmluaXRlbHkqIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHVuYmluZGluZyBvciB3aGVuIHRoZSBtb2R1bGUgdW5sb2FkcyDigJMgY3JpdGljYWwuIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgaXMgY2FsbGVkIGR1cmluZyBlaXRoZXIgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBvciBkdXJpbmcgc2h1dGRvd24uIFRoaXMgbWVhbnMgdGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBub3JtYWwgb3BlcmF0aW9uIG9mIHRoZSBkcml2ZXIuXG5cblNvIHRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgY2xlYXI6IGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEFuZCwgYXMgSSBzYWlkLCB3ZSdyZSBlbmFibGluZyBmdXp6aW5nIHVzaW5nIHRoZSBgSTQwRVZGYCBjb25maWcuXG5cbkp1c3QgYSBxdWljayBzYW5pdHkgY2hlY2s6IEknbGwgZG91YmxlLWNoZWNrIHRoYXQgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBpc24ndCBjYWxsZWQgZnJvbSBhbnkgb3RoZXIgdW5leHBlY3RlZCBwbGFjZXMuIEdvdHRhIG1ha2Ugc3VyZSB3ZSdyZSBjb3ZlcmluZyBhbGwgYmFzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1NTMsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzoxOS43MTEwMjgwNDRaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NDkyMjMzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpYXZmX2ZyZWVfYWRtaW5xX2FzcVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9NDE9c3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU0LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo1NTogKiAgaWF2Zl9mcmVlX2FkbWlucV9hc3EgLSBGcmVlIEFkbWluIFF1ZXVlIHNlbmQgcmluZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNTYtICogIEBodzogcG9pbnRlciB0byB0aGUgaGFyZHdhcmUgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNjAtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo2MTpzdGF0aWMgdm9pZCBpYXZmX2ZyZWVfYWRtaW5xX2FzcShzdHJ1Y3QgaWF2Zl9odyAqaHcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYz0zMDQ9c3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FzcShzdHJ1Y3QgaWF2Zl9odyAqaHcpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtMzQ5LWluaXRfYWRtaW5xX2ZyZWVfcmluZ3M6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjM1MDpcXHRpYXZmX2ZyZWVfYWRtaW5xX2FzcShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTM1MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTkuODY1OTU2NjQ4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxODgxNzAyNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIFVzYWdlKipcblxuT2theSwgaG9sZCBvbiBhIHNlY29uZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gZm9sbG93aW5nIHRoZSBjb2RlIGNvcnJlY3RseS4gSXQgbG9va3MgbGlrZSBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGlzICphbHNvKiBjYWxsZWQgZnJvbSBgaWF2Zl9zaHV0ZG93bl9hZG1pbnFgLiBUaGF0J3MgYSBwb2ludCBJIGhhZG4ndCBleHBsaWNpdGx5IGNvbnNpZGVyZWQuICBJIG5lZWQgdG8gcmV2aXNpdCB0aGUgcG90ZW50aWFsIGludGVyYWN0aW9uIGJldHdlZW4gdGhvc2UgZnVuY3Rpb25zIG5vdy4gSSBzaG91bGQgZG91YmxlIGNoZWNrIGBpYXZmX2FkbWlucS5jYCB0byBiZSBjb21wbGV0ZWx5IHN1cmUgYWJvdXQgaG93IHRoYXQgbG9naWMgaXMgaGFuZGxlZCwgYmVjYXVzZSBpdCBzZWVtcyBJIGhhdmUgYSBtaXNzaW5nIHBpZWNlIHRvIHRoaXMgcHV6emxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NTc1LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MjQuMDU0MTI5NjkyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzExNjAwMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWF2Zl9zaHV0ZG93bl9hZG1pbnFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jPTQ5OT1lbnVtIGlhdmZfc3RhdHVzIGlhdmZfaW5pdF9hZG1pbnEoc3RydWN0IGlhdmZfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzNi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NTM3OiAqICBpYXZmX3NodXRkb3duX2FkbWlucSAtIHNodXRkb3duIHJvdXRpbmUgZm9yIHRoZSBBZG1pbiBRdWV1ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01MzgtICogIEBodzogcG9pbnRlciB0byB0aGUgaGFyZHdhcmUgc3RydWN0dXJlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzOS0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjU0MDplbnVtIGlhdmZfc3RhdHVzIGlhdmZfc2h1dGRvd25fYWRtaW5xKHN0cnVjdCBpYXZmX2h3ICpodylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9MjMxMz1zdGF0aWMgdm9pZCBpYXZmX3N0YXJ0dXAoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjM0NS1cXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJVbmFibGUgdG8gc2VuZCB0byBQRiAoJWQpXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM0NjpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzQ3LVxcdFxcdGdvdG8gZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yMzYzPXN0YXRpYyB2b2lkIGlhdmZfaW5pdF92ZXJzaW9uX2NoZWNrKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTIzNzItXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiQWRtaW4gcXVldWUgY29tbWFuZCBuZXZlciBjb21wbGV0ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM3MzpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzc0LVxcdFxcdGlhdmZfY2hhbmdlX3N0YXRlKGFkYXB0ZXIsIF9fSUFWRl9TVEFSVFVQKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9MjQ2ND1zdGF0aWMgdm9pZCBpYXZmX2luaXRfZ2V0X3Jlc291cmNlcyhzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDg4LVxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjQ4OTpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDkwLVxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIlVuYWJsZSB0byBnZXQgVkYgY29uZmlnIGR1ZSB0byBQRiBlcnJvciBjb25kaXRpb24sIG5vdCByZXRyeWluZ1xcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTI4NDk9c3RhdGljIGludCBpYXZmX3dhdGNoZG9nX3N0ZXAoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjg4Ny1cXHRcXHRcXHRhZGFwdGVyLVxcdTAwM2VmbGFncyB8PSBJQVZGX0ZMQUdfUEZfQ09NTVNfRkFJTEVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6Mjg4ODpcXHRcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODg5LVxcdFxcdFxcdHJldHVybiA1MDAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yOTkxPXN0YXRpYyB2b2lkIGlhdmZfZGlzYWJsZV92ZihzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMDQ1LVxcdG1lbXNldChhZGFwdGVyLVxcdTAwM2V2Zl9yZXMsIDAsIElBVkZfVklSVENITkxfVkZfUkVTT1VSQ0VfU0laRSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzozMDQ2OlxcdGlhdmZfc2h1dGRvd25fYWRtaW5xKFxcdTAwMjZhZGFwdGVyLVxcdTAwM2Vodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMDQ3LVxcdGFkYXB0ZXItXFx1MDAzZWZsYWdzIFxcdTAwMjY9IH5JQVZGX0ZMQUdfUkVTRVRfUEVORElORztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9MzA4Nj12b2lkIGlhdmZfcmVzZXRfc3RlcChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA1LVxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MzEwNjpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA3LVxcdFxcdGlhdmZfaW5pdF9hZG1pbnEoaHcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTQ4LVxcdGlmIChhZGFwdGVyLVxcdTAwM2VzdGF0ZSBcXHUwMDNjPSBfX0lBVkZfSU5JVF9GQUlMRUQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjMxNDk6XFx0XFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMzE1MC1cXHRcXHRpYXZmX2NoYW5nZV9zdGF0ZShhZGFwdGVyLCBfX0lBVkZfU1RBUlRVUCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxODMtXFx0Lyoga2lsbCBhbmQgcmVpbml0IHRoZSBhZG1pbiBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MzE4NDpcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTg1LVxcdGFkYXB0ZXItXFx1MDAzZWN1cnJlbnRfb3AgPSBWSVJUQ0hOTF9PUF9VTktOT1dOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NTAxPXN0YXRpYyB2b2lkIGlhdmZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NTgxLVxcdGlmIChody1cXHUwMDNlYXEuYXNxLmNvdW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTU4MjpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NTgzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oPTE5PWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FkbWlucShzdHJ1Y3QgaWF2Zl9odyAqaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9wcm90b3R5cGUuaDoyMDplbnVtIGlhdmZfc3RhdHVzIGlhdmZfc2h1dGRvd25fYWRtaW5xKHN0cnVjdCBpYXZmX2h3ICpodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oLTIxLWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9jbGVhbl9hcnFfZWxlbWVudChzdHJ1Y3QgaWF2Zl9odyAqaHcsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ3OjI0LjI4NTI5ODU2OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDEyNjI0MDkxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgSUFWRiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGtleSBmdW5jdGlvbnMgaW52b2x2ZWQgaW4gdGhlIG1lbW9yeSBsZWFrIGZpeGVzLiBUaGUgY29kZSdzIGFkZGluZyBmaXhlcyB0byBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLCB3aGljaCBhcmUgY2FsbGVkIGR1cmluZyBzaHV0ZG93bi9pbml0aWFsaXphdGlvbiBmYWlsdXJlIGFuZCBQQ0kgZGV2aWNlIHJlbW92YWwsIHJlc3BlY3RpdmVseS4gVGhlc2Ugc2VlbSB0byBiZSB0aGUgY3JpdGljYWwgcG9pbnRzLlxuXG5JJ20gbWFraW5nIGEgbWVudGFsIG5vdGUgdG8gYWRkIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAgdG8gYEZvY3VzU3ltYm9sc2AuIFRoYXQncyB3aGVyZSB0aGUgaGVhcnQgb2YgdGhlIGNoYW5nZXMgYXJlLlxuXG5Ob3csIGxldCdzIGNvbnNpZGVyIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4gVGhlIGNvZGUgc2VlbXMgZm9jdXNlZCBvbiB0aGUgYEk0MEVWRmAgY29uZmlnLiBJIGJyaWVmbHkgZG91YmxlLWNoZWNrZWQgZm9yIG90aGVyIHNwZWNpZmljIGRlcGVuZGVuY2llcy4gIGBQQ0lfTVNJYCBhbmQgYFBUUF8xNTg4X0NMT0NLX09QVElPTkFMYCBhcmUgcmVxdWlyZWQsIGJ1dCB0aG9zZSBhcmUgcHJldHR5IGdlbmVyaWMsIHNvIGBJNDBFVkZgIHNlZW1zIHRvIGJlIHRoZSBjcnVjaWFsIG9uZS5cblxuSGFuZyBvbi4uLiBJIG5lZWQgdG8gYmUgcHJlY2lzZSBoZXJlLiBgSTQwRVZGYCBzZWxlY3RzIGBJQVZGYC4gSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgYElBVkZgIGlzIGEgdHJpc3RhdGUgY29uZmlnLCBidXQgaXQgZG9lc24ndCBoYXZlIGEgZGlyZWN0IHVzZXItZmFjaW5nIHByb21wdCBpbiBgS2NvbmZpZ2AuICBUaGlzIG1lYW5zIHRoYXQgYEk0MEVWRmAgaXMgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBtdXN0IGJlIHNldC4gVGhlcmVmb3JlLCBJIHdpbGwgbGlzdCBgSTQwRVZGYCB1bmRlciBgRW5hYmxlQ29uZmlnc2AuXG5cbkkgcXVpY2tseSB2ZXJpZmllZCB0aGF0IGJvdGggYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYCBhcmUgZGVjbGFyZWQgYXMgYHN0YXRpY2AuICBUaGVyZWZvcmUsIHRoZXJlIHdvbid0IGJlIGFueSBpc3N1ZXMgd2l0aCBuYW1lIGNvbGxpc2lvbnMuXG5cblNvLCBqdXN0IHRvIGJlIGNyeXN0YWwgY2xlYXIsIG15IGRlZmluaXRpdmUgYEZvY3VzU3ltYm9sc2AgYXJlOlxuXG4qICAgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYFxuKiAgIGBpYXZmX3JlbW92ZWBcblxuQW5kIHRoZSBgRW5hYmxlQ29uZmlnc2AgYXJlOlxuXG4qICAgYEk0MEVWRmBcblxuVGhlIHBhdGNoIGl0c2VsZiBzZWVtcyBmdW5jdGlvbmFsLCBhbmQgaXQgcmVzb2x2ZXMgbWVtb3J5IGxlYWtzLCB3aGljaCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBJIGNvbmZpcm1lZCB0aGF0IGBXb3J0aEZ1enppbmdgIGlzIHNldCB0byBgdHJ1ZWAuXG5cbk15IG92ZXJhbGwgcmVhc29uaW5nIGlzIHRoYXQgdGhpcyBwYXRjaCBhZGRyZXNzZXMgbWVtb3J5IGxlYWtzIGluIHRoZSBJbnRlbCBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlciBieSBlbnN1cmluZyB0aGF0IGBjbWRfYnVmYCBhbmQgYHFvc19jYXBzYCBhcmUgZnJlZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcyDigJMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGZhaWx1cmUvc2h1dGRvd24gKGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWApIGFuZCB3aGVuIHRoZSBQQ0kgZGV2aWNlIGlzIHJlbW92ZWQgKGBpYXZmX3JlbW92ZWApLiBUaGUgUENJIGZ1enppbmcgc3Vic3lzdGVtIG9mIHN5emthbGxlciBpcyBwZXJmZWN0IGZvciBzaW11bGF0aW5nIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucyBhbmQsIHRoZXJlZm9yZSwgdGVzdGluZyB0aGlzIHBhdGNoLlxuXG5JJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NTQ1LCJPdXRwdXRUb2tlbnMiOjE0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzozNC40MTE1NDI0ODRaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk4MDA3NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkk0MEVWRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlhdmZfZnJlZV9hZG1pbnFfYXNxXCIsXG4gICAgXCJpYXZmX3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkk0MEVWRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlhdmZfZnJlZV9hZG1pbnFfYXNxXCIsXG4gICAgXCJpYXZmX3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow8rmxq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 14:29:21 +0000 UTC FinishedAt: 2026-07-15 14:47:35 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "I40EVF" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "I40EVF" ], "series_id": "7359f35d-abea-488d-8ed4-f52847331c94" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "iavf_free_adminq_asq", "iavf_remove" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0k0MEVWRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lhdmZfZnJlZV9hZG1pbnFfYXNxJiMzNDssCiAgICAmIzM0O2lhdmZfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBzdWJzeXN0ZW0sIHdoaWNoIGNhbiBzaW11bGF0ZSBQQ0kgZGV2aWNlIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGNkYzJjMDFjZDNmODEyY2I1ZDc5NzI3YjhhMzNiMTgzYWQzOTZlMDRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxNDo0Njo0MyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmNcbmluZGV4IDY5MzdiN2RkNDRjYmI2Li40MGY3NmY5NTA3ZjRiYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXG5AQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxuICAqKi9cbiBzdGF0aWMgdm9pZCBpYXZmX2ZyZWVfYWRtaW5xX2FzcShzdHJ1Y3QgaWF2Zl9odyAqaHcpXG4ge1xuJiM0MztcdGlhdmZfZnJlZV92aXJ0X21lbShodywgXHUwMDI2aHctXHUwMDNlYXEuYXNxLmNtZF9idWYpO1xuIFx0aWF2Zl9mcmVlX2RtYV9tZW0oaHcsIFx1MDAyNmh3LVx1MDAzZWFxLmFzcS5kZXNjX2J1Zik7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5pbmRleCAyOWI4NDAzYTA2NmJjOC4uYzdmNjlhOTA0MDU4ODggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5AQCAtNTU4OSw2ICYjNDM7NTU4OSw3IEBAIHN0YXRpYyB2b2lkIGlhdmZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0aW91bm1hcChody1cdTAwM2Vod19hZGRyKTtcbiBcdHBjaV9yZWxlYXNlX3JlZ2lvbnMocGRldik7XG4gXHRrZnJlZShhZGFwdGVyLVx1MDAzZXZmX3Jlcyk7XG4mIzQzO1x0a2ZyZWUoYWRhcHRlci1cdTAwM2Vxb3NfY2Fwcyk7XG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2YWRhcHRlci1cdTAwM2VtYWNfdmxhbl9saXN0X2xvY2spO1xuIFx0LyogSWYgd2UgZ290IHJlbW92ZWQgYmVmb3JlIGFuIHVwL2Rvd24gc2VxdWVuY2UsIHdlJiMzOTt2ZSBnb3QgYSBmaWx0ZXJcbiBcdCAqIGhhbmdpbmcgb3V0IHRoZXJlIHRoYXQgd2UgbmVlZCB0byBnZXQgcmlkIG9mLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0k0MEVWRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lhdmZfZnJlZV9hZG1pbnFfYXNxJiMzNDssCiAgICAmIzM0O2lhdmZfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBzdWJzeXN0ZW0sIHdoaWNoIGNhbiBzaW11bGF0ZSBQQ0kgZGV2aWNlIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgY2RjMmMwMWNkM2Y4MTJjYjVkNzk3MjdiOGEzM2IxODNhZDM5NmUwNApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDE0OjQ2OjQzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jCmluZGV4IDY5MzdiN2RkNDRjYmI2Li40MGY3NmY5NTA3ZjRiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYwpAQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KQogICoqLwogc3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KQogewomIzQzOwlpYXZmX2ZyZWVfdmlydF9tZW0oaHcsICZhbXA7aHctJmd0O2FxLmFzcS5jbWRfYnVmKTsKIAlpYXZmX2ZyZWVfZG1hX21lbShodywgJmFtcDtody0mZ3Q7YXEuYXNxLmRlc2NfYnVmKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMKaW5kZXggMjliODQwM2EwNjZiYzguLmM3ZjY5YTkwNDA1ODg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMKQEAgLTU1ODksNiAmIzQzOzU1ODksNyBAQCBzdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlpb3VubWFwKGh3LSZndDtod19hZGRyKTsKIAlwY2lfcmVsZWFzZV9yZWdpb25zKHBkZXYpOwogCWtmcmVlKGFkYXB0ZXItJmd0O3ZmX3Jlcyk7CiYjNDM7CWtmcmVlKGFkYXB0ZXItJmd0O3Fvc19jYXBzKTsKIAlzcGluX2xvY2tfYmgoJmFtcDthZGFwdGVyLSZndDttYWNfdmxhbl9saXN0X2xvY2spOwogCS8qIElmIHdlIGdvdCByZW1vdmVkIGJlZm9yZSBhbiB1cC9kb3duIHNlcXVlbmNlLCB3ZSYjMzk7dmUgZ290IGEgZmlsdGVyCiAJICogaGFuZ2luZyBvdXQgdGhlcmUgdGhhdCB3ZSBuZWVkIHRvIGdldCByaWQgb2YuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMzkKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYW4gSUFWRiBEcml2ZXIgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgaWF2Zl9hZG1pbnEuY2AgYW5kIGBpYXZmX21haW4uY2Ag4oCTIHNwZWNpZmljYWxseSwgdHdvIGxpbmVzIGFkZGVkIHRvIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEhtbSwgdGhpcyBpcyB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3Qgd2l0aCBQQ0kgZHJpdmVycyBpcyBhbHdheXMgY2F1dGlvbjsgdGhleSYjMzk7cmUgZ2VuZXJhbGx5IHRyaWNreSB0byBmdXp6IHVubGVzcyB5b3UgaGF2ZSBlbXVsYXRpb24gb3IgYSB2aXJ0dWFsIHNldHVwLiBCdXQgd2FpdOKApiAqaWF2ZiogaXMgYSBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlciEgVGhhdCBjaGFuZ2VzIHRoaW5ncy4gSXQgbmVlZHMgYSBQaHlzaWNhbCBGdW5jdGlvbiBkcml2ZXIgbGlrZSBgaWNlYCBvciBgaTQwZWAgdG8gZ2V0IGNyZWF0ZWQsIG9yIGNhbiBiZSBwcm9iZWQgd2l0aCBhIFZGIHBhc3NlZCB0aHJvdWdoLgoKT2theSwgc28gdGhlIGZhY3QgaXQmIzM5O3MgYSBWRiBpcyBrZXkgaGVyZS4gVGhhdCBvcGVucyB0aGUgZG9vciB0byBwb3RlbnRpYWwuIEkga25vdyBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enppbmcgc3Vic3lzdGVtOyB0aGUgYHZoY2kvcGNpYCBzZXR1cCwgcmlnaHQ/IFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBjYW4gd2UgbGV2ZXJhZ2UgdGhhdCB3aXRoIGBpYXZmYD8KCkxldCYjMzk7cyBzZWXigKYgdGhpcyBwYXRjaCwgYXQgZmFjZSB2YWx1ZSwgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRyZXNzaW5nIG1lbW9yeSBsZWFrcyBpbiBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLiBUaGlzIGlzIGludGVyZXN0aW5nOyBmaXhpbmcgbWVtb3J5IGVycm9ycyBpcyBvZnRlbiBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgYXMgaXQgaW5jcmVhc2VzIHRoZSBjaGFuY2VzIG9mIHRyaWdnZXJpbmcgbW9yZSB2YXJpZWQgY29kZSBwYXRocy4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aG9zZSBmdW5jdGlvbnMgbW9yZSBjbG9zZWx5LiBJJiMzOTtsbCBzZWFyY2ggZm9yIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAgYW5kIHNlZSB3aGF0IHRoZXkmIzM5O3JlIGRvaW5nLiBUaGlzIGNvdWxkIGJlIHByb21pc2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpYXZmX2ZyZWVfYWRtaW5xX2FzcSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYz00MT1zdGF0aWMgZW51bSBpYXZmX3N0YXR1cyBpYXZmX2FsbG9jX2FkbWlucV9hcnFfcmluZyhzdHJ1Y3QgaWF2Zl9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU0LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjU1OiAqICBpYXZmX2ZyZWVfYWRtaW5xX2FzcSAtIEZyZWUgQWRtaW4gUXVldWUgc2VuZCByaW5nc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU2LSAqICBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy02MC0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NjE6c3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTYyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9MzA0PXN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfaW5pdF9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy0zNDktaW5pdF9hZG1pbnFfZnJlZV9yaW5nczpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzozNTA6XHRpYXZmX2ZyZWVfYWRtaW5xX2FzcShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtMzUxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNTkKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKklBVkYgUmVtb3ZhbDogQSBRdWljayBDaGVjayoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHplcm8gaW4gb24gYGlhdmZfcmVtb3ZlYC4gVGhhdCBmdW5jdGlvbiBjYWxsIGltbWVkaWF0ZWx5IHJhaXNlcyBhIGZldyBxdWVzdGlvbnMsIGRvZXNuJiMzOTt0IGl0PyBNeSBicmFpbiBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBydW5uaW5nIHRocm91Z2ggdGhlIGltcGxpY2F0aW9ucy4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgY29udGV4dCDigJMgd2hhdCYjMzk7cyBiZWluZyByZW1vdmVkPyBJcyBpdCBhIGRldmljZSwgYSBWTEFOLCBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZz8gQW5kIG1vcmUgaW1wb3J0YW50bHksICp3aHkqIGFyZSB3ZSByZW1vdmluZyBpdD8gV2hhdCYjMzk7cyB0aGUgdHJpZ2dlcmluZyBldmVudD8gSXMgdGhlcmUgYW4gZXJyb3IgY29uZGl0aW9uIG9yIGFyZSB3ZSBzaW1wbHkgcmVjb25maWd1cmluZz8gVGhpcyBuZWVkcyBpbW1lZGlhdGUgdmFsaWRhdGlvbiB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyBkb3duIHRoZSBsaW5lLiBXZSBjYW4gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgd2l0aCBzdGF0dXMgb3IgZXJyb3JzIHRvIGRldGVybWluZSBhIHBsYW4gb2YgYWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2lhdmZfcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yODQ5PXN0YXRpYyBpbnQgaWF2Zl93YXRjaGRvZ19zdGVwKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODc4LVx0XHRcdC8qIERvIG5vdCB1cGRhdGUgdGhlIHN0YXRlIGFuZCBkbyBub3QgcmVzY2hlZHVsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzoyODc5Olx0XHRcdCAqIHdhdGNoZG9nIHRhc2ssIGlhdmZfcmVtb3ZlIHNob3VsZCBoYW5kbGUgdGhpcyBzdGF0ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODgwLVx0XHRcdCAqIGFzIGl0IGNhbiBsb29wIGZvcmV2ZXJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTU0NjE9c3RhdGljIGludCBpYXZmX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZfZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTItLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjU0OTM6ICogaWF2Zl9yZW1vdmUgLSBEZXZpY2UgUmVtb3ZhbCBSb3V0aW5lXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTQtICogQHBkZXY6IFBDSSBkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTUtICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTQ5NjogKiBpYXZmX3JlbW92ZSBpcyBjYWxsZWQgYnkgdGhlIFBDSSBzdWJzeXN0ZW0gdG8gYWxlcnQgdGhlIGRyaXZlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NDk3LSAqIHRoYXQgaXQgc2hvdWxkIHJlbGVhc2UgYSBQQ0kgZGV2aWNlLiAgVGhlIGNvdWxkIGJlIGNhdXNlZCBieSBhXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NTAwLSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTUwMTpzdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTUwMi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NjQ0PXN0YXRpYyB2b2lkIGlhdmZfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NjQ2Olx0aWF2Zl9yZW1vdmUocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NjU0PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpYXZmX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NTctXHQucHJvYmUgICAgID0gaWF2Zl9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTY1ODpcdC5yZW1vdmUgICAgPSBpYXZmX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTY1OS1cdC5kcml2ZXIucG0gPSBwbV9zbGVlcF9wdHIoXHUwMDI2aWF2Zl9wbV9vcHMpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNTQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQQ0kgRHJpdmVyIGZvciBQb3RlbnRpYWwgTWVtb3J5IExlYWsgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggc2VlbXMgZm9jdXNlZCBvbiBmaXhpbmcgbWVtb3J5IGxlYWtzLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgIGZ1bmN0aW9ucy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGdpdmVuIHRoYXQgdGhpcyByZWxhdGVzIHRvIGEgZHJpdmVyLCB0aGF0IHdlIHNob3VsZCB0aGluayBhYm91dCBmdXp6aW5nIGl0LiBBbmQgc2luY2UgaXQgaXMgZGVhbGluZyB3aXRoIGhhcmR3YXJlIGl0IGlzLCBtb3JlIHRoYW4gbGlrZWx5LCBhIFBDSSBkcml2ZXIuIElmIHNvLCBzeXprYWxsZXImIzM5O3MgUENJIGZ1enppbmcgc3Vic3lzdGVtIHNob3VsZCBiZSBhcHBsaWNhYmxlIGhlcmUsIHdoaWNoIGlzIGdyZWF0LiBMZXQmIzM5O3MgY29uZmlybSB0aGF0IGBpYXZmYCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBZZXAsIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHNvdXJjZSByZXZlYWxzIGBpYXZmX2RyaXZlcmAgaXMgZGVmaW5lZCBhcyBhIGBwY2lfZHJpdmVyYC4gRXhjZWxsZW50LiBOb3csIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24sIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBgaWF2ZmAgbW9kdWxlLiBUaGF0JiMzOTtsbCBwcm92aWRlIHVzZWZ1bCBjb250ZXh0IGZvciB3aGVyZSB0aGlzIG1vZHVsZSBzaXRzIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElBVkYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNTA9Y29uZmlnIEk0MEVfRENCXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNjEtIyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjYyOmNvbmZpZyBJQVZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI2My1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4OQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgSUFWRiBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkgc2VlIHRoaXMgYGNvbmZpZyBJQVZGYCBlbnRyeSBhbmQgaW1tZWRpYXRlbHkgbXkgZXhwZXJ0IGJyYWluIGZsYWdzIGl0IGFzIGEgdHJpc3RhdGUuICBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gZmlndXJlIG91dCB3aGF0IGNvbnRyb2xzIGl0LiBJcyBpdCBlbmFibGVkLCBkaXNhYmxlZCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzZWxlY3Rpb24gbG9naWMuIFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IEkmIzM5O20gZ29pbmcgdG8gZGlnIGludG8gdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHNlZSB3aGF0IHNlbGVjdHMgaXQsIG9yIHNldHMgdGhlIGNvbmRpdGlvbnMgZm9yIGl0IHRvIGJlIGFjdGl2ZS4gVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yIGluIHRoZSBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0lBVkYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc9MjUwPWNvbmZpZyBJNDBFX0RDQlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNjA6IyB0aGlzIGlzIGhlcmUgdG8gYWxsb3cgc2VhbWxlc3MgbWlncmF0aW9uIGZyb20gSTQwRVZGIC0tXHUwMDNlIElBVkYgbmFtZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNjE6IyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjYyOmNvbmZpZyBJQVZGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI2My1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNjg9Y29uZmlnIEk0MEVWRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNjktXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbChSKSBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjcwOlx0c2VsZWN0IElBVkZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjcxLVx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNDIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSUFWRiBEcml2ZXIgQ29uZmlndXJhdGlvbiBEZWVwIERpdmUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4gTXkgbWVudGFsIG1hcCBpbW1lZGlhdGVseSBjb25uZWN0cyB0aGUgZG90cy4gYGNvbmZpZyBJNDBFVkZgIC0gdGhhdCBpbXBsaWVzIHdlJiMzOTtyZSBjaG9vc2luZyBgSUFWRmAuIEZpbmUsIG1ha2VzIHNlbnNlLCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gd2UgYXJlIGRlYWxpbmcgd2l0aCBoZXJlIHRvIGVuYWJsZSBpcyBgSTQwRVZGYC4KCkJlZm9yZSBqdW1waW5nIHRvIGNvbmNsdXNpb25zIHRob3VnaCwgYmVzdCBwcmFjdGljZSBkaWN0YXRlcyBhIHF1aWNrIGRvdWJsZSBjaGVjay4gSSBuZWVkIHRvIHZlcmlmeSBob3cgYEk0MEVWRmAgaXMgYmVpbmcgdXNlZCBhbmQgY29uZmlndXJlZC4gVGhlIHJlbGV2YW50IE1ha2VmaWxlIGlzIGNsZWFybHkgZ29pbmcgdG8gYmUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGVgLiBJJiMzOTtsbCBkaWcgaW50byB0aGF0IHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0IGFuZCBjb250cm9sbGVkLiBUaGF0JiMzOTtzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhlc2UgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7SUFWRiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZT0xMD1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZS0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0lBVkYpICYjNDM7PSBpYXZmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGUtMTMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDE0OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MTEKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4KCioqSW52ZXN0aWdhdGluZyB0aGUgSW50ZWwgVkYgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIGBDT05GSUdfSUFWRmAgaXMgdGhlIG1vZHVsZSYjMzk7cyBwcmltYXJ5IGlkZW50aWZpZXIuIEl0JiMzOTtzIGNsZWFybHkgc2VsZWN0ZWQgYnkgYENPTkZJR19JNDBFVkZgLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBhIHNoaWZ0IGluIHRoZSBrZXJuZWwgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgSSBoYXZlIGEgZmVlbGluZyB0aGF0IGluIG1vcmUgcmVjZW50IGtlcm5lbCB2ZXJzaW9ucywgcGVyaGFwcyBgSTQwRVZGYCB3YXMgZWl0aGVyIHJlbmFtZWQgdG8gYElBVkZgIG9yIHBlcmhhcHMgYElBVkZgIGl0c2VsZiBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBub3cuIFRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBhbmQgY29uZmlybSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgdHdvIG9wdGlvbnMsIHRoZSBtb3N0IGVmZmljaWVudCBwYXRoIGlzIHRvIHJldmlzaXQgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlLiBJIHNob3VsZCByZS1leGFtaW5lIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnYCB0byBnZXQgYSBkZWZpbml0aXZlIGFuc3dlciBhbmQgY29uZmlybSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI1MDpcdGNvbmZpZyBJNDBFX0RDQlxuIDI1MTpcdFx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBTdXBwb3J0XCYjMzQ7XG4gMjUyOlx0XHRkZWZhdWx0IG5cbiAyNTM6XHRcdGRlcGVuZHMgb24gSTQwRSBcdTAwMjZcdTAwMjYgRENCXG4gMjU0Olx0XHRoZWxwXG4gMjU1Olx0XHQgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIERhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIGluIHRoZVxuIDI1NjpcdFx0ICBkcml2ZXIuXG4gMjU3Olx0XG4gMjU4Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gMjU5Olx0XG4gMjYwOlx0IyB0aGlzIGlzIGhlcmUgdG8gYWxsb3cgc2VhbWxlc3MgbWlncmF0aW9uIGZyb20gSTQwRVZGIC0tXHUwMDNlIElBVkYgbmFtZVxuIDI2MTpcdCMgc28gdGhhdCBDT05GSUdfSUFWRiBzeW1ib2wgd2lsbCBhbHdheXMgbWlycm9yIHRoZSBzdGF0ZSBvZiBDT05GSUdfSTQwRVZGXG4gMjYyOlx0Y29uZmlnIElBVkZcbiAyNjM6XHRcdHRyaXN0YXRlXG4gMjY0Olx0XHRzZWxlY3QgTElCSUVcbiAyNjU6XHRcdHNlbGVjdCBMSUJJRV9BRE1JTlFcbiAyNjY6XHRcdHNlbGVjdCBORVRfU0hBUEVSXG4gMjY3Olx0XG4gMjY4Olx0Y29uZmlnIEk0MEVWRlxuIDI2OTpcdFx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwoUikgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBzdXBwb3J0XCYjMzQ7XG4gMjcwOlx0XHRzZWxlY3QgSUFWRlxuIDI3MTpcdFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXG4gMjcyOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gMjczOlx0XHRoZWxwXG4gMjc0Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHZpcnR1YWwgZnVuY3Rpb25zIGZvciBJbnRlbCBYTDcxMCxcbiAyNzU6XHRcdCAgWDcxMCwgWDcyMiwgWFhWNzEwLCBhbmQgYWxsIGRldmljZXMgYWR2ZXJ0aXNpbmcgc3VwcG9ydCBmb3JcbiAyNzY6XHRcdCAgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBkZXZpY2VzLiBGb3IgbW9yZVxuIDI3NzpcdFx0ICBpbmZvcm1hdGlvbiBvbiBob3cgdG8gaWRlbnRpZnkgeW91ciBhZGFwdGVyLCBnbyB0byB0aGUgQWRhcHRlclxuIDI3ODpcdFx0ICBcdTAwMjYgRHJpdmVyIElEIEd1aWRlIHRoYXQgY2FuIGJlIGxvY2F0ZWQgYXQ6XG4gMjc5Olx0XG4gMjgwOlx0XHQgIFx1MDAzY2h0dHBzOi8vc3VwcG9ydC5pbnRlbC5jb21cdTAwM2VcbiAyODE6XHRcbiAyODI6XHRcdCAgVGhpcyBkcml2ZXIgd2FzIGZvcm1lcmx5IG5hbWVkIGk0MGV2Zi5cbiAyODM6XHRcbiAyODQ6XHRcdCAgTW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBvbiBjb25maWd1cmluZyB0aGUgZHJpdmVyIGlzIGluXG4gMjg1Olx0XHQgIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ludGVsL2lhdmYucnN0XHUwMDNlLlxuIDI4NjpcdFxuIDI4NzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXG4gMjg4Olx0XHQgIHdpbGwgYmUgY2FsbGVkIGlhdmYuICBNU0ktWCBpbnRlcnJ1cHQgc3VwcG9ydCBpcyByZXF1aXJlZFxuIDI4OTpcdFx0ICBmb3IgdGhpcyBkcml2ZXIgdG8gd29yayBjb3JyZWN0bHkuXG4gMjkwOlx0XG4gMjkxOlx0Y29uZmlnIElDRVxuIDI5MjpcdFx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwoUikgRXRoZXJuZXQgQ29ubmVjdGlvbiBFODAwIFNlcmllcyBTdXBwb3J0XCYjMzQ7XG4gMjkzOlx0XHRkZWZhdWx0IG5cbiAyOTQ6XHRcdGRlcGVuZHMgb24gUENJX01TSVxuIDI5NTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxuIDI5NjpcdFx0ZGVwZW5kcyBvbiBHTlNTIHx8IEdOU1MgPSBuXG4gMjk3Olx0XHRzZWxlY3QgQVVYSUxJQVJZX0JVU1xuIDI5ODpcdFx0c2VsZWN0IERJTUxJQlxuIDI5OTpcdFx0c2VsZWN0IExJQkVUSF9YRFBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU1MwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBJNDBFVkYgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgd2hlbiBhIHVzZXIgc2VsZWN0cyB0aGUgYEk0MEVWRmAgY29uZmlndXJhdGlvbiwgaXQgYXV0b21hdGljYWxseSBzZXRzIHVwIGBJQVZGYC4gU28sIGxvZ2ljYWxseSwgSSBuZWVkIHRvIGluY2x1ZGUgYEk0MEVWRmAgaW4gdGhlIGBFbmFibGVDb25maWdzYCBsaXN0LiBObyBicmFpbmVyIHRoZXJlLgoKTm93LCB0aGUgZnV6emluZyBxdWVzdGlvbi4gWWVzLCBhYnNvbHV0ZWx5LCBpdCYjMzk7cyB3b3J0aCBpdC4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIFBDSSBkcml2ZXIgaGVyZSwgYW5kIHN5emthbGxlciBoYXMgdGhhdCBuaWZ0eSBQQ0kgZnV6emluZyBzdWJzeXN0ZW0uIEl0IGNhbiBlc3NlbnRpYWxseSBzaW11bGF0ZSBQQ0kgZGV2aWNlcywgd2hpY2ggc2hvdWxkIGJlIHBlcmZlY3QgZm9yIHRyaWdnZXJpbmcgdGhvc2UgcHJvYmUgYW5kIHJlbW92ZSBwYXRocy4gVGhpcyBpcyBpZGVhbCBmb3IgZXhlcmNpc2luZyB0aGUgZHJpdmVyIGluIGRpdmVyc2Ugd2F5cy4KClRoZSBwYXRjaCBpdHNlbGYgZm9jdXNlcyBvbiBtZW1vcnkgbGVha3MgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYC4gYGlhdmZfcmVtb3ZlYCwgdGhhdCYjMzk7cyB0aGUgUENJIHJlbW92ZSBmdW5jdGlvbi4gVGhhdCYjMzk7cyAqZGVmaW5pdGVseSogcmVhY2hhYmxlIGR1cmluZyBkZXZpY2UgdW5iaW5kaW5nIG9yIHdoZW4gdGhlIG1vZHVsZSB1bmxvYWRzIOKAkyBjcml0aWNhbC4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBpcyBjYWxsZWQgZHVyaW5nIGVpdGhlciBpbml0aWFsaXphdGlvbiBmYWlsdXJlIG9yIGR1cmluZyBzaHV0ZG93bi4gVGhpcyBtZWFucyB0aGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIG5vcm1hbCBvcGVyYXRpb24gb2YgdGhlIGRyaXZlci4KClNvIHRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgY2xlYXI6IGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEFuZCwgYXMgSSBzYWlkLCB3ZSYjMzk7cmUgZW5hYmxpbmcgZnV6emluZyB1c2luZyB0aGUgYEk0MEVWRmAgY29uZmlnLgoKSnVzdCBhIHF1aWNrIHNhbml0eSBjaGVjazogSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRoYXQgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBpc24mIzM5O3QgY2FsbGVkIGZyb20gYW55IG90aGVyIHVuZXhwZWN0ZWQgcGxhY2VzLiBHb3R0YSBtYWtlIHN1cmUgd2UmIzM5O3JlIGNvdmVyaW5nIGFsbCBiYXNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWF2Zl9mcmVlX2FkbWlucV9hc3EmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9NDE9c3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01NC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo1NTogKiAgaWF2Zl9mcmVlX2FkbWlucV9hc3EgLSBGcmVlIEFkbWluIFF1ZXVlIHNlbmQgcmluZ3NcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01Ni0gKiAgQGh3OiBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNjAtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjYxOnN0YXRpYyB2b2lkIGlhdmZfZnJlZV9hZG1pbnFfYXNxKHN0cnVjdCBpYXZmX2h3ICpodylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy02Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jPTMwND1zdGF0aWMgZW51bSBpYXZmX3N0YXR1cyBpYXZmX2luaXRfYXNxKHN0cnVjdCBpYXZmX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtMzQ5LWluaXRfYWRtaW5xX2ZyZWVfcmluZ3M6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6MzUwOlx0aWF2Zl9mcmVlX2FkbWlucV9hc3EoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTM1MS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzU3NQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIFVzYWdlKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBmb2xsb3dpbmcgdGhlIGNvZGUgY29ycmVjdGx5LiBJdCBsb29rcyBsaWtlIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgaXMgKmFsc28qIGNhbGxlZCBmcm9tIGBpYXZmX3NodXRkb3duX2FkbWlucWAuIFRoYXQmIzM5O3MgYSBwb2ludCBJIGhhZG4mIzM5O3QgZXhwbGljaXRseSBjb25zaWRlcmVkLiAgSSBuZWVkIHRvIHJldmlzaXQgdGhlIHBvdGVudGlhbCBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRob3NlIGZ1bmN0aW9ucyBub3cuIEkgc2hvdWxkIGRvdWJsZSBjaGVjayBgaWF2Zl9hZG1pbnEuY2AgdG8gYmUgY29tcGxldGVseSBzdXJlIGFib3V0IGhvdyB0aGF0IGxvZ2ljIGlzIGhhbmRsZWQsIGJlY2F1c2UgaXQgc2VlbXMgSSBoYXZlIGEgbWlzc2luZyBwaWVjZSB0byB0aGlzIHB1enpsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWF2Zl9zaHV0ZG93bl9hZG1pbnEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9NDk5PWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FkbWlucShzdHJ1Y3QgaWF2Zl9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzNi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo1Mzc6ICogIGlhdmZfc2h1dGRvd25fYWRtaW5xIC0gc2h1dGRvd24gcm91dGluZSBmb3IgdGhlIEFkbWluIFF1ZXVlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNTM4LSAqICBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHN0cnVjdHVyZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzOS0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NTQwOmVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9zaHV0ZG93bl9hZG1pbnEoc3RydWN0IGlhdmZfaHcgKmh3KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yMzEzPXN0YXRpYyB2b2lkIGlhdmZfc3RhcnR1cChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjM0NS1cdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7VW5hYmxlIHRvIHNlbmQgdG8gUEYgKCVkKVxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM0NjpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzQ3LVx0XHRnb3RvIGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTIzNjM9c3RhdGljIHZvaWQgaWF2Zl9pbml0X3ZlcnNpb25fY2hlY2soc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTIzNzItXHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O0FkbWluIHF1ZXVlIGNvbW1hbmQgbmV2ZXIgY29tcGxldGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM3MzpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzc0LVx0XHRpYXZmX2NoYW5nZV9zdGF0ZShhZGFwdGVyLCBfX0lBVkZfU1RBUlRVUCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yNDY0PXN0YXRpYyB2b2lkIGlhdmZfaW5pdF9nZXRfcmVzb3VyY2VzKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDg4LVx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjQ4OTpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDkwLVx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtVbmFibGUgdG8gZ2V0IFZGIGNvbmZpZyBkdWUgdG8gUEYgZXJyb3IgY29uZGl0aW9uLCBub3QgcmV0cnlpbmdcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9Mjg0OT1zdGF0aWMgaW50IGlhdmZfd2F0Y2hkb2dfc3RlcChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjg4Ny1cdFx0XHRhZGFwdGVyLVx1MDAzZWZsYWdzIHw9IElBVkZfRkxBR19QRl9DT01NU19GQUlMRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjI4ODg6XHRcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODg5LVx0XHRcdHJldHVybiA1MDAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9Mjk5MT1zdGF0aWMgdm9pZCBpYXZmX2Rpc2FibGVfdmYoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMwNDUtXHRtZW1zZXQoYWRhcHRlci1cdTAwM2V2Zl9yZXMsIDAsIElBVkZfVklSVENITkxfVkZfUkVTT1VSQ0VfU0laRSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjMwNDY6XHRpYXZmX3NodXRkb3duX2FkbWlucShcdTAwMjZhZGFwdGVyLVx1MDAzZWh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMzA0Ny1cdGFkYXB0ZXItXHUwMDNlZmxhZ3MgXHUwMDI2PSB+SUFWRl9GTEFHX1JFU0VUX1BFTkRJTkc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0zMDg2PXZvaWQgaWF2Zl9yZXNldF9zdGVwKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA1LVx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MzEwNjpcdFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA3LVx0XHRpYXZmX2luaXRfYWRtaW5xKGh3KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxNDgtXHRpZiAoYWRhcHRlci1cdTAwM2VzdGF0ZSBcdTAwM2M9IF9fSUFWRl9JTklUX0ZBSUxFRCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzozMTQ5Olx0XHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxNTAtXHRcdGlhdmZfY2hhbmdlX3N0YXRlKGFkYXB0ZXIsIF9fSUFWRl9TVEFSVFVQKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxODMtXHQvKiBraWxsIGFuZCByZWluaXQgdGhlIGFkbWluIHF1ZXVlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjMxODQ6XHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxODUtXHRhZGFwdGVyLVx1MDAzZWN1cnJlbnRfb3AgPSBWSVJUQ0hOTF9PUF9VTktOT1dOO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9NTUwMT1zdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU1ODEtXHRpZiAoaHctXHUwMDNlYXEuYXNxLmNvdW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NTgyOlx0XHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU1ODMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oPTE5PWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FkbWlucShzdHJ1Y3QgaWF2Zl9odyAqaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oOjIwOmVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9zaHV0ZG93bl9hZG1pbnEoc3RydWN0IGlhdmZfaHcgKmh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9wcm90b3R5cGUuaC0yMS1lbnVtIGlhdmZfc3RhdHVzIGlhdmZfY2xlYW5fYXJxX2VsZW1lbnQoc3RydWN0IGlhdmZfaHcgKmh3LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxNDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NTQ1CgkJCQkJCQlvdXRwdXQ6IDE0OQoJCQkJCQkJdGhvdWdodHM6IDU4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgSUFWRiBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBkaWdnaW5nIGludG8gdGhpcyBwYXRjaC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZCBpbiB0aGUgbWVtb3J5IGxlYWsgZml4ZXMuIFRoZSBjb2RlJiMzOTtzIGFkZGluZyBmaXhlcyB0byBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLCB3aGljaCBhcmUgY2FsbGVkIGR1cmluZyBzaHV0ZG93bi9pbml0aWFsaXphdGlvbiBmYWlsdXJlIGFuZCBQQ0kgZGV2aWNlIHJlbW92YWwsIHJlc3BlY3RpdmVseS4gVGhlc2Ugc2VlbSB0byBiZSB0aGUgY3JpdGljYWwgcG9pbnRzLgoKSSYjMzk7bSBtYWtpbmcgYSBtZW50YWwgbm90ZSB0byBhZGQgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYCB0byBgRm9jdXNTeW1ib2xzYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgaGVhcnQgb2YgdGhlIGNoYW5nZXMgYXJlLgoKTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBUaGUgY29kZSBzZWVtcyBmb2N1c2VkIG9uIHRoZSBgSTQwRVZGYCBjb25maWcuIEkgYnJpZWZseSBkb3VibGUtY2hlY2tlZCBmb3Igb3RoZXIgc3BlY2lmaWMgZGVwZW5kZW5jaWVzLiAgYFBDSV9NU0lgIGFuZCBgUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxgIGFyZSByZXF1aXJlZCwgYnV0IHRob3NlIGFyZSBwcmV0dHkgZ2VuZXJpYywgc28gYEk0MEVWRmAgc2VlbXMgdG8gYmUgdGhlIGNydWNpYWwgb25lLgoKSGFuZyBvbi4uLiBJIG5lZWQgdG8gYmUgcHJlY2lzZSBoZXJlLiBgSTQwRVZGYCBzZWxlY3RzIGBJQVZGYC4gSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgYElBVkZgIGlzIGEgdHJpc3RhdGUgY29uZmlnLCBidXQgaXQgZG9lc24mIzM5O3QgaGF2ZSBhIGRpcmVjdCB1c2VyLWZhY2luZyBwcm9tcHQgaW4gYEtjb25maWdgLiAgVGhpcyBtZWFucyB0aGF0IGBJNDBFVkZgIGlzIHRoZSBjb25maWd1cmF0aW9uIHRoYXQgbXVzdCBiZSBzZXQuIFRoZXJlZm9yZSwgSSB3aWxsIGxpc3QgYEk0MEVWRmAgdW5kZXIgYEVuYWJsZUNvbmZpZ3NgLgoKSSBxdWlja2x5IHZlcmlmaWVkIHRoYXQgYm90aCBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgIGFyZSBkZWNsYXJlZCBhcyBgc3RhdGljYC4gIFRoZXJlZm9yZSwgdGhlcmUgd29uJiMzOTt0IGJlIGFueSBpc3N1ZXMgd2l0aCBuYW1lIGNvbGxpc2lvbnMuCgpTbywganVzdCB0byBiZSBjcnlzdGFsIGNsZWFyLCBteSBkZWZpbml0aXZlIGBGb2N1c1N5bWJvbHNgIGFyZToKCiogICBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgCiogICBgaWF2Zl9yZW1vdmVgCgpBbmQgdGhlIGBFbmFibGVDb25maWdzYCBhcmU6CgoqICAgYEk0MEVWRmAKClRoZSBwYXRjaCBpdHNlbGYgc2VlbXMgZnVuY3Rpb25hbCwgYW5kIGl0IHJlc29sdmVzIG1lbW9yeSBsZWFrcywgd2hpY2ggbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSSBjb25maXJtZWQgdGhhdCBgV29ydGhGdXp6aW5nYCBpcyBzZXQgdG8gYHRydWVgLgoKTXkgb3ZlcmFsbCByZWFzb25pbmcgaXMgdGhhdCB0aGlzIHBhdGNoIGFkZHJlc3NlcyBtZW1vcnkgbGVha3MgaW4gdGhlIEludGVsIEV0aGVybmV0IEFkYXB0aXZlIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyIGJ5IGVuc3VyaW5nIHRoYXQgYGNtZF9idWZgIGFuZCBgcW9zX2NhcHNgIGFyZSBmcmVlZCBpbiB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzIOKAkyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gZmFpbHVyZS9zaHV0ZG93biAoYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCkgYW5kIHdoZW4gdGhlIFBDSSBkZXZpY2UgaXMgcmVtb3ZlZCAoYGlhdmZfcmVtb3ZlYCkuIFRoZSBQQ0kgZnV6emluZyBzdWJzeXN0ZW0gb2Ygc3l6a2FsbGVyIGlzIHBlcmZlY3QgZm9yIHNpbXVsYXRpbmcgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zIGFuZCwgdGhlcmVmb3JlLCB0ZXN0aW5nIHRoaXMgcGF0Y2guCgpJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTQ6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0k0MEVWRiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2lhdmZfZnJlZV9hZG1pbnFfYXNxJiMzNDssCiAgICAmIzM0O2lhdmZfcmVtb3ZlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBzdWJzeXN0ZW0sIHdoaWNoIGNhbiBzaW11bGF0ZSBQQ0kgZGV2aWNlIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7STQwRVZGJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWF2Zl9mcmVlX2FkbWlucV9hc3EmIzM0OywKICAgICYjMzQ7aWF2Zl9yZW1vdmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgbWVtb3J5IGxlYWtzIGluIHRoZSBJbnRlbCBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIChpYXZmKSBkcml2ZXIgYnkgZnJlZWluZyBgY21kX2J1ZmAgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYHFvc19jYXBzYCBpbiBgaWF2Zl9yZW1vdmVgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUsIHNodXRkb3duLCBvciByZW1vdmFsLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdXNpbmcgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NDUuMDI2Mjc5MTE5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk1NTUwNzg2NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSTQwRVZGXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWF2Zl9mcmVlX2FkbWlucV9hc3FcIixcbiAgICBcImlhdmZfcmVtb3ZlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbWVtb3J5IGxlYWtzIGluIHRoZSBJbnRlbCBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIChpYXZmKSBkcml2ZXIgYnkgZnJlZWluZyBgY21kX2J1ZmAgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYHFvc19jYXBzYCBpbiBgaWF2Zl9yZW1vdmVgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uIGZhaWx1cmUsIHNodXRkb3duLCBvciByZW1vdmFsLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdXNpbmcgc3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgc3Vic3lzdGVtLCB3aGljaCBjYW4gc2ltdWxhdGUgUENJIGRldmljZSBwcm9iZSBhbmQgcmVtb3ZlIG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjQ1LjAyNjI5Mzg4OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODIxNzE5NzU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgY2RjMmMwMWNkM2Y4MTJjYjVkNzk3MjdiOGEzM2IxODNhZDM5NmUwNFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAxNDo0Njo0MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmNcXG5pbmRleCA2OTM3YjdkZDQ0Y2JiNi4uNDBmNzZmOTUwN2Y0YmIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXFxuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxcbiAgKiovXFxuIHN0YXRpYyB2b2lkIGlhdmZfZnJlZV9hZG1pbnFfYXNxKHN0cnVjdCBpYXZmX2h3ICpodylcXG4ge1xcbitcXHRpYXZmX2ZyZWVfdmlydF9tZW0oaHcsIFxcdTAwMjZody1cXHUwMDNlYXEuYXNxLmNtZF9idWYpO1xcbiBcXHRpYXZmX2ZyZWVfZG1hX21lbShodywgXFx1MDAyNmh3LVxcdTAwM2VhcS5hc3EuZGVzY19idWYpO1xcbiB9XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uY1xcbmluZGV4IDI5Yjg0MDNhMDY2YmM4Li5jN2Y2OWE5MDQwNTg4OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uY1xcbkBAIC01NTg5LDYgKzU1ODksNyBAQCBzdGF0aWMgdm9pZCBpYXZmX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gXFx0aW91bm1hcChody1cXHUwMDNlaHdfYWRkcik7XFxuIFxcdHBjaV9yZWxlYXNlX3JlZ2lvbnMocGRldik7XFxuIFxcdGtmcmVlKGFkYXB0ZXItXFx1MDAzZXZmX3Jlcyk7XFxuK1xcdGtmcmVlKGFkYXB0ZXItXFx1MDAzZXFvc19jYXBzKTtcXG4gXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VtYWNfdmxhbl9saXN0X2xvY2spO1xcbiBcXHQvKiBJZiB3ZSBnb3QgcmVtb3ZlZCBiZWZvcmUgYW4gdXAvZG93biBzZXF1ZW5jZSwgd2UndmUgZ290IGEgZmlsdGVyXFxuIFxcdCAqIGhhbmdpbmcgb3V0IHRoZXJlIHRoYXQgd2UgbmVlZCB0byBnZXQgcmlkIG9mLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0Njo0NS44NDkwNDc2MzdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NzMyMzAwNzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkk0MEVWRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlhdmZfZnJlZV9hZG1pbnFfYXNxXCIsXG4gICAgXCJpYXZmX3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGNkYzJjMDFjZDNmODEyY2I1ZDc5NzI3YjhhMzNiMTgzYWQzOTZlMDRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxNDo0Njo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuY1xuaW5kZXggNjkzN2I3ZGQ0NGNiYjYuLjQwZjc2Zjk1MDdmNGJiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmNcbkBAIC02MCw2ICs2MCw3IEBAIHN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfYWxsb2NfYWRtaW5xX2FycV9yaW5nKHN0cnVjdCBpYXZmX2h3ICpodylcbiAgKiovXG4gc3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxuIHtcbitcdGlhdmZfZnJlZV92aXJ0X21lbShodywgXHUwMDI2aHctXHUwMDNlYXEuYXNxLmNtZF9idWYpO1xuIFx0aWF2Zl9mcmVlX2RtYV9tZW0oaHcsIFx1MDAyNmh3LVx1MDAzZWFxLmFzcS5kZXNjX2J1Zik7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5pbmRleCAyOWI4NDAzYTA2NmJjOC4uYzdmNjlhOTA0MDU4ODggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jXG5AQCAtNTU4OSw2ICs1NTg5LDcgQEAgc3RhdGljIHZvaWQgaWF2Zl9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRpb3VubWFwKGh3LVx1MDAzZWh3X2FkZHIpO1xuIFx0cGNpX3JlbGVhc2VfcmVnaW9ucyhwZGV2KTtcbiBcdGtmcmVlKGFkYXB0ZXItXHUwMDNldmZfcmVzKTtcbitcdGtmcmVlKGFkYXB0ZXItXHUwMDNlcW9zX2NhcHMpO1xuIFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmFkYXB0ZXItXHUwMDNlbWFjX3ZsYW5fbGlzdF9sb2NrKTtcbiBcdC8qIElmIHdlIGdvdCByZW1vdmVkIGJlZm9yZSBhbiB1cC9kb3duIHNlcXVlbmNlLCB3ZSd2ZSBnb3QgYSBmaWx0ZXJcbiBcdCAqIGhhbmdpbmcgb3V0IHRoZXJlIHRoYXQgd2UgbmVlZCB0byBnZXQgcmlkIG9mLlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NDUuODQ5MDQ5NTA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjM5NzU3ODg2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCB0byBhbiBJQVZGIERyaXZlciBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgaWF2Zl9hZG1pbnEuY2AgYW5kIGBpYXZmX21haW4uY2Ag4oCTIHNwZWNpZmljYWxseSwgdHdvIGxpbmVzIGFkZGVkIHRvIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEhtbSwgdGhpcyBpcyB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3Qgd2l0aCBQQ0kgZHJpdmVycyBpcyBhbHdheXMgY2F1dGlvbjsgdGhleSdyZSBnZW5lcmFsbHkgdHJpY2t5IHRvIGZ1enogdW5sZXNzIHlvdSBoYXZlIGVtdWxhdGlvbiBvciBhIHZpcnR1YWwgc2V0dXAuIEJ1dCB3YWl04oCmICppYXZmKiBpcyBhIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyISBUaGF0IGNoYW5nZXMgdGhpbmdzLiBJdCBuZWVkcyBhIFBoeXNpY2FsIEZ1bmN0aW9uIGRyaXZlciBsaWtlIGBpY2VgIG9yIGBpNDBlYCB0byBnZXQgY3JlYXRlZCwgb3IgY2FuIGJlIHByb2JlZCB3aXRoIGEgVkYgcGFzc2VkIHRocm91Z2guXG5cbk9rYXksIHNvIHRoZSBmYWN0IGl0J3MgYSBWRiBpcyBrZXkgaGVyZS4gVGhhdCBvcGVucyB0aGUgZG9vciB0byBwb3RlbnRpYWwuIEkga25vdyBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enppbmcgc3Vic3lzdGVtOyB0aGUgYHZoY2kvcGNpYCBzZXR1cCwgcmlnaHQ/IFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBjYW4gd2UgbGV2ZXJhZ2UgdGhhdCB3aXRoIGBpYXZmYD9cblxuTGV0J3Mgc2Vl4oCmIHRoaXMgcGF0Y2gsIGF0IGZhY2UgdmFsdWUsIGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIG1lbW9yeSBsZWFrcyBpbiBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLiBUaGlzIGlzIGludGVyZXN0aW5nOyBmaXhpbmcgbWVtb3J5IGVycm9ycyBpcyBvZnRlbiBhIGdvb2Qgc2lnbiBmb3IgZnV6emluZywgYXMgaXQgaW5jcmVhc2VzIHRoZSBjaGFuY2VzIG9mIHRyaWdnZXJpbmcgbW9yZSB2YXJpZWQgY29kZSBwYXRocy4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRob3NlIGZ1bmN0aW9ucyBtb3JlIGNsb3NlbHkuIEknbGwgc2VhcmNoIGZvciBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgIGFuZCBzZWUgd2hhdCB0aGV5J3JlIGRvaW5nLiBUaGlzIGNvdWxkIGJlIHByb21pc2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEzOSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjUyLjI0NjYzMDg0MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTUzOTgxMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWF2Zl9mcmVlX2FkbWlucV9hc3FcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jPTQxPXN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfYWxsb2NfYWRtaW5xX2FycV9yaW5nKHN0cnVjdCBpYXZmX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01NC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NTU6ICogIGlhdmZfZnJlZV9hZG1pbnFfYXNxIC0gRnJlZSBBZG1pbiBRdWV1ZSBzZW5kIHJpbmdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU2LSAqICBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHN0cnVjdHVyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTYwLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NjE6c3RhdGljIHZvaWQgaWF2Zl9mcmVlX2FkbWlucV9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy02Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9MzA0PXN0YXRpYyBlbnVtIGlhdmZfc3RhdHVzIGlhdmZfaW5pdF9hc3Eoc3RydWN0IGlhdmZfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTM0OS1pbml0X2FkbWlucV9mcmVlX3JpbmdzOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzozNTA6XFx0aWF2Zl9mcmVlX2FkbWlucV9hc3EoaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy0zNTEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjUyLjM2MjAzODg4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0OTk2MzA0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCBJJ20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKklBVkYgUmVtb3ZhbDogQSBRdWljayBDaGVjayoqXG5cbkFscmlnaHQsIGxldCdzIGp1c3QgcXVpY2tseSB6ZXJvIGluIG9uIGBpYXZmX3JlbW92ZWAuIFRoYXQgZnVuY3Rpb24gY2FsbCBpbW1lZGlhdGVseSByYWlzZXMgYSBmZXcgcXVlc3Rpb25zLCBkb2Vzbid0IGl0PyBNeSBicmFpbiBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBydW5uaW5nIHRocm91Z2ggdGhlIGltcGxpY2F0aW9ucy4gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBjb250ZXh0IOKAkyB3aGF0J3MgYmVpbmcgcmVtb3ZlZD8gSXMgaXQgYSBkZXZpY2UsIGEgVkxBTiwgYSBjb25maWd1cmF0aW9uIHNldHRpbmc/IEFuZCBtb3JlIGltcG9ydGFudGx5LCAqd2h5KiBhcmUgd2UgcmVtb3ZpbmcgaXQ/IFdoYXQncyB0aGUgdHJpZ2dlcmluZyBldmVudD8gSXMgdGhlcmUgYW4gZXJyb3IgY29uZGl0aW9uIG9yIGFyZSB3ZSBzaW1wbHkgcmVjb25maWd1cmluZz8gVGhpcyBuZWVkcyBpbW1lZGlhdGUgdmFsaWRhdGlvbiB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcyBkb3duIHRoZSBsaW5lLiBXZSBjYW4gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgd2l0aCBzdGF0dXMgb3IgZXJyb3JzIHRvIGRldGVybWluZSBhIHBsYW4gb2YgYWN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjU5LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NTUuOTEyMDA3NDA3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyMDA1MDAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImlhdmZfcmVtb3ZlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9Mjg0OT1zdGF0aWMgaW50IGlhdmZfd2F0Y2hkb2dfc3RlcChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODc4LVxcdFxcdFxcdC8qIERvIG5vdCB1cGRhdGUgdGhlIHN0YXRlIGFuZCBkbyBub3QgcmVzY2hlZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6Mjg3OTpcXHRcXHRcXHQgKiB3YXRjaGRvZyB0YXNrLCBpYXZmX3JlbW92ZSBzaG91bGQgaGFuZGxlIHRoaXMgc3RhdGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTI4ODAtXFx0XFx0XFx0ICogYXMgaXQgY2FuIGxvb3AgZm9yZXZlclxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NDYxPXN0YXRpYyBpbnQgaWF2Zl9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2X2QpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTItLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NDkzOiAqIGlhdmZfcmVtb3ZlIC0gRGV2aWNlIFJlbW92YWwgUm91dGluZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTQ5NC0gKiBAcGRldjogUENJIGRldmljZSBpbmZvcm1hdGlvbiBzdHJ1Y3RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTUtICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjU0OTY6ICogaWF2Zl9yZW1vdmUgaXMgY2FsbGVkIGJ5IHRoZSBQQ0kgc3Vic3lzdGVtIHRvIGFsZXJ0IHRoZSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU0OTctICogdGhhdCBpdCBzaG91bGQgcmVsZWFzZSBhIFBDSSBkZXZpY2UuICBUaGUgY291bGQgYmUgY2F1c2VkIGJ5IGFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTUwMC0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzo1NTAxOnN0YXRpYyB2b2lkIGlhdmZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtNTUwMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTU2NDQ9c3RhdGljIHZvaWQgaWF2Zl9zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTY0NjpcXHRpYXZmX3JlbW92ZShwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTU2NDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTU2NTQ9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGlhdmZfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NjU3LVxcdC5wcm9iZSAgICAgPSBpYXZmX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTY1ODpcXHQucmVtb3ZlICAgID0gaWF2Zl9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NjU5LVxcdC5kcml2ZXIucG0gPSBwbV9zbGVlcF9wdHIoXFx1MDAyNmlhdmZfcG1fb3BzKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDY6NTUuOTk0MDI2MTI5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk3ODExMzY0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQQ0kgRHJpdmVyIGZvciBQb3RlbnRpYWwgTWVtb3J5IExlYWsgVnVsbmVyYWJpbGl0aWVzKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBzZWVtcyBmb2N1c2VkIG9uIGZpeGluZyBtZW1vcnkgbGVha3MsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAgZnVuY3Rpb25zLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgZ2l2ZW4gdGhhdCB0aGlzIHJlbGF0ZXMgdG8gYSBkcml2ZXIsIHRoYXQgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGZ1enppbmcgaXQuIEFuZCBzaW5jZSBpdCBpcyBkZWFsaW5nIHdpdGggaGFyZHdhcmUgaXQgaXMsIG1vcmUgdGhhbiBsaWtlbHksIGEgUENJIGRyaXZlci4gSWYgc28sIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSBzaG91bGQgYmUgYXBwbGljYWJsZSBoZXJlLCB3aGljaCBpcyBncmVhdC4gTGV0J3MgY29uZmlybSB0aGF0IGBpYXZmYCBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBZZXAsIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHNvdXJjZSByZXZlYWxzIGBpYXZmX2RyaXZlcmAgaXMgZGVmaW5lZCBhcyBhIGBwY2lfZHJpdmVyYC4gRXhjZWxsZW50LiBOb3csIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24sIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBgaWF2ZmAgbW9kdWxlLiBUaGF0J2xsIHByb3ZpZGUgdXNlZnVsIGNvbnRleHQgZm9yIHdoZXJlIHRoaXMgbW9kdWxlIHNpdHMgd2l0aGluIHRoZSBicm9hZGVyIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ2OjU5Ljk3MjE0MTc2NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDEzMDY4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElBVkZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc9MjUwPWNvbmZpZyBJNDBFX0RDQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNjEtIyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI2Mjpjb25maWcgSUFWRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjYzLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ3OjAwLjE3MzQ1Mzg0NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2MDQ2OTA2NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgSUFWRiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBzZWUgdGhpcyBgY29uZmlnIElBVkZgIGVudHJ5IGFuZCBpbW1lZGlhdGVseSBteSBleHBlcnQgYnJhaW4gZmxhZ3MgaXQgYXMgYSB0cmlzdGF0ZS4gIE15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byBmaWd1cmUgb3V0IHdoYXQgY29udHJvbHMgaXQuIElzIGl0IGVuYWJsZWQsIGRpc2FibGVkLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNlbGVjdGlvbiBsb2dpYy4gV2hhdCBhcmUgdGhlIGRlcGVuZGVuY2llcz8gSSdtIGdvaW5nIHRvIGRpZyBpbnRvIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBzZWUgd2hhdCBzZWxlY3RzIGl0LCBvciBzZXRzIHRoZSBjb25kaXRpb25zIGZvciBpdCB0byBiZSBhY3RpdmUuIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yIGluIHRoZSBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzowNi43NzgxNDcyMzhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODg5NTkwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJJQVZGXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNTA9Y29uZmlnIEk0MEVfRENCXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI2MDojIHRoaXMgaXMgaGVyZSB0byBhbGxvdyBzZWFtbGVzcyBtaWdyYXRpb24gZnJvbSBJNDBFVkYgLS1cXHUwMDNlIElBVkYgbmFtZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjYxOiMgc28gdGhhdCBDT05GSUdfSUFWRiBzeW1ib2wgd2lsbCBhbHdheXMgbWlycm9yIHRoZSBzdGF0ZSBvZiBDT05GSUdfSTQwRVZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNjI6Y29uZmlnIElBVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI2My1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNjg9Y29uZmlnIEk0MEVWRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjY5LVxcdHRyaXN0YXRlIFxcXCJJbnRlbChSKSBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyNzA6XFx0c2VsZWN0IElBVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI3MS1cXHRkZXBlbmRzIG9uIFBDSV9NU0lcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MDcuMjc3MDQ5NTU5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNzE0ODMzMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJQVZGIERyaXZlciBDb25maWd1cmF0aW9uIERlZXAgRGl2ZSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4gTXkgbWVudGFsIG1hcCBpbW1lZGlhdGVseSBjb25uZWN0cyB0aGUgZG90cy4gYGNvbmZpZyBJNDBFVkZgIC0gdGhhdCBpbXBsaWVzIHdlJ3JlIGNob29zaW5nIGBJQVZGYC4gRmluZSwgbWFrZXMgc2Vuc2UsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGhlcmUgdG8gZW5hYmxlIGlzIGBJNDBFVkZgLlxuXG5CZWZvcmUganVtcGluZyB0byBjb25jbHVzaW9ucyB0aG91Z2gsIGJlc3QgcHJhY3RpY2UgZGljdGF0ZXMgYSBxdWljayBkb3VibGUgY2hlY2suIEkgbmVlZCB0byB2ZXJpZnkgaG93IGBJNDBFVkZgIGlzIGJlaW5nIHVzZWQgYW5kIGNvbmZpZ3VyZWQuIFRoZSByZWxldmFudCBNYWtlZmlsZSBpcyBjbGVhcmx5IGdvaW5nIHRvIGJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL01ha2VmaWxlYC4gSSdsbCBkaWcgaW50byB0aGF0IHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIGJ1aWx0IGFuZCBjb250cm9sbGVkLiBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyB0aGVzZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTQyLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTAuNTQ4NTM1NTg0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjYzMDAwODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiSUFWRlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGU9MTA9c3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvTWFrZWZpbGUtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfSUFWRikgKz0gaWF2Zi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9NYWtlZmlsZS0xMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTAuNjc0ODQyMzQxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzOTMwMjI2MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guXG5cbioqSW52ZXN0aWdhdGluZyB0aGUgSW50ZWwgVkYgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgc28gYENPTkZJR19JQVZGYCBpcyB0aGUgbW9kdWxlJ3MgcHJpbWFyeSBpZGVudGlmaWVyLiBJdCdzIGNsZWFybHkgc2VsZWN0ZWQgYnkgYENPTkZJR19JNDBFVkZgLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBhIHNoaWZ0IGluIHRoZSBrZXJuZWwgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgSSBoYXZlIGEgZmVlbGluZyB0aGF0IGluIG1vcmUgcmVjZW50IGtlcm5lbCB2ZXJzaW9ucywgcGVyaGFwcyBgSTQwRVZGYCB3YXMgZWl0aGVyIHJlbmFtZWQgdG8gYElBVkZgIG9yIHBlcmhhcHMgYElBVkZgIGl0c2VsZiBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBub3cuIFRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBhbmQgY29uZmlybSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgdHdvIG9wdGlvbnMsIHRoZSBtb3N0IGVmZmljaWVudCBwYXRoIGlzIHRvIHJldmlzaXQgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlLiBJIHNob3VsZCByZS1leGFtaW5lIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnYCB0byBnZXQgYSBkZWZpbml0aXZlIGFuc3dlciBhbmQgY29uZmlybSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTExLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTQuMDY3ODY3OTk0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI1MDpcXHRjb25maWcgSTQwRV9EQ0JcXG4gMjUxOlxcdFxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnRcXFwiXFxuIDI1MjpcXHRcXHRkZWZhdWx0IG5cXG4gMjUzOlxcdFxcdGRlcGVuZHMgb24gSTQwRSBcXHUwMDI2XFx1MDAyNiBEQ0JcXG4gMjU0OlxcdFxcdGhlbHBcXG4gMjU1OlxcdFxcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgaW4gdGhlXFxuIDI1NjpcXHRcXHQgIGRyaXZlci5cXG4gMjU3OlxcdFxcbiAyNTg6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAyNTk6XFx0XFxuIDI2MDpcXHQjIHRoaXMgaXMgaGVyZSB0byBhbGxvdyBzZWFtbGVzcyBtaWdyYXRpb24gZnJvbSBJNDBFVkYgLS1cXHUwMDNlIElBVkYgbmFtZVxcbiAyNjE6XFx0IyBzbyB0aGF0IENPTkZJR19JQVZGIHN5bWJvbCB3aWxsIGFsd2F5cyBtaXJyb3IgdGhlIHN0YXRlIG9mIENPTkZJR19JNDBFVkZcXG4gMjYyOlxcdGNvbmZpZyBJQVZGXFxuIDI2MzpcXHRcXHR0cmlzdGF0ZVxcbiAyNjQ6XFx0XFx0c2VsZWN0IExJQklFXFxuIDI2NTpcXHRcXHRzZWxlY3QgTElCSUVfQURNSU5RXFxuIDI2NjpcXHRcXHRzZWxlY3QgTkVUX1NIQVBFUlxcbiAyNjc6XFx0XFxuIDI2ODpcXHRjb25maWcgSTQwRVZGXFxuIDI2OTpcXHRcXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiBzdXBwb3J0XFxcIlxcbiAyNzA6XFx0XFx0c2VsZWN0IElBVkZcXG4gMjcxOlxcdFxcdGRlcGVuZHMgb24gUENJX01TSVxcbiAyNzI6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAyNzM6XFx0XFx0aGVscFxcbiAyNzQ6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyB2aXJ0dWFsIGZ1bmN0aW9ucyBmb3IgSW50ZWwgWEw3MTAsXFxuIDI3NTpcXHRcXHQgIFg3MTAsIFg3MjIsIFhYVjcxMCwgYW5kIGFsbCBkZXZpY2VzIGFkdmVydGlzaW5nIHN1cHBvcnQgZm9yXFxuIDI3NjpcXHRcXHQgIEludGVsIEV0aGVybmV0IEFkYXB0aXZlIFZpcnR1YWwgRnVuY3Rpb24gZGV2aWNlcy4gRm9yIG1vcmVcXG4gMjc3OlxcdFxcdCAgaW5mb3JtYXRpb24gb24gaG93IHRvIGlkZW50aWZ5IHlvdXIgYWRhcHRlciwgZ28gdG8gdGhlIEFkYXB0ZXJcXG4gMjc4OlxcdFxcdCAgXFx1MDAyNiBEcml2ZXIgSUQgR3VpZGUgdGhhdCBjYW4gYmUgbG9jYXRlZCBhdDpcXG4gMjc5OlxcdFxcbiAyODA6XFx0XFx0ICBcXHUwMDNjaHR0cHM6Ly9zdXBwb3J0LmludGVsLmNvbVxcdTAwM2VcXG4gMjgxOlxcdFxcbiAyODI6XFx0XFx0ICBUaGlzIGRyaXZlciB3YXMgZm9ybWVybHkgbmFtZWQgaTQwZXZmLlxcbiAyODM6XFx0XFxuIDI4NDpcXHRcXHQgIE1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIGRyaXZlciBpcyBpblxcbiAyODU6XFx0XFx0ICBcXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW50ZWwvaWF2Zi5yc3RcXHUwMDNlLlxcbiAyODY6XFx0XFxuIDI4NzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcXG4gMjg4OlxcdFxcdCAgd2lsbCBiZSBjYWxsZWQgaWF2Zi4gIE1TSS1YIGludGVycnVwdCBzdXBwb3J0IGlzIHJlcXVpcmVkXFxuIDI4OTpcXHRcXHQgIGZvciB0aGlzIGRyaXZlciB0byB3b3JrIGNvcnJlY3RseS5cXG4gMjkwOlxcdFxcbiAyOTE6XFx0Y29uZmlnIElDRVxcbiAyOTI6XFx0XFx0dHJpc3RhdGUgXFxcIkludGVsKFIpIEV0aGVybmV0IENvbm5lY3Rpb24gRTgwMCBTZXJpZXMgU3VwcG9ydFxcXCJcXG4gMjkzOlxcdFxcdGRlZmF1bHQgblxcbiAyOTQ6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lfTVNJXFxuIDI5NTpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXFxuIDI5NjpcXHRcXHRkZXBlbmRzIG9uIEdOU1MgfHwgR05TUyA9IG5cXG4gMjk3OlxcdFxcdHNlbGVjdCBBVVhJTElBUllfQlVTXFxuIDI5ODpcXHRcXHRzZWxlY3QgRElNTElCXFxuIDI5OTpcXHRcXHRzZWxlY3QgTElCRVRIX1hEUFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzoxNC4wNjgxMTIwMjRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY0MjkxMjM5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBJNDBFVkYgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHdoZW4gYSB1c2VyIHNlbGVjdHMgdGhlIGBJNDBFVkZgIGNvbmZpZ3VyYXRpb24sIGl0IGF1dG9tYXRpY2FsbHkgc2V0cyB1cCBgSUFWRmAuIFNvLCBsb2dpY2FsbHksIEkgbmVlZCB0byBpbmNsdWRlIGBJNDBFVkZgIGluIHRoZSBgRW5hYmxlQ29uZmlnc2AgbGlzdC4gTm8gYnJhaW5lciB0aGVyZS5cblxuTm93LCB0aGUgZnV6emluZyBxdWVzdGlvbi4gWWVzLCBhYnNvbHV0ZWx5LCBpdCdzIHdvcnRoIGl0LiBXZSdyZSBkZWFsaW5nIHdpdGggYSBQQ0kgZHJpdmVyIGhlcmUsIGFuZCBzeXprYWxsZXIgaGFzIHRoYXQgbmlmdHkgUENJIGZ1enppbmcgc3Vic3lzdGVtLiBJdCBjYW4gZXNzZW50aWFsbHkgc2ltdWxhdGUgUENJIGRldmljZXMsIHdoaWNoIHNob3VsZCBiZSBwZXJmZWN0IGZvciB0cmlnZ2VyaW5nIHRob3NlIHByb2JlIGFuZCByZW1vdmUgcGF0aHMuIFRoaXMgaXMgaWRlYWwgZm9yIGV4ZXJjaXNpbmcgdGhlIGRyaXZlciBpbiBkaXZlcnNlIHdheXMuXG5cblRoZSBwYXRjaCBpdHNlbGYgZm9jdXNlcyBvbiBtZW1vcnkgbGVha3MgaW4gYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYC4gYGlhdmZfcmVtb3ZlYCwgdGhhdCdzIHRoZSBQQ0kgcmVtb3ZlIGZ1bmN0aW9uLiBUaGF0J3MgKmRlZmluaXRlbHkqIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHVuYmluZGluZyBvciB3aGVuIHRoZSBtb2R1bGUgdW5sb2FkcyDigJMgY3JpdGljYWwuIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgaXMgY2FsbGVkIGR1cmluZyBlaXRoZXIgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBvciBkdXJpbmcgc2h1dGRvd24uIFRoaXMgbWVhbnMgdGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBub3JtYWwgb3BlcmF0aW9uIG9mIHRoZSBkcml2ZXIuXG5cblNvIHRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgY2xlYXI6IGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAuIEFuZCwgYXMgSSBzYWlkLCB3ZSdyZSBlbmFibGluZyBmdXp6aW5nIHVzaW5nIHRoZSBgSTQwRVZGYCBjb25maWcuXG5cbkp1c3QgYSBxdWljayBzYW5pdHkgY2hlY2s6IEknbGwgZG91YmxlLWNoZWNrIHRoYXQgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBpc24ndCBjYWxsZWQgZnJvbSBhbnkgb3RoZXIgdW5leHBlY3RlZCBwbGFjZXMuIEdvdHRhIG1ha2Ugc3VyZSB3ZSdyZSBjb3ZlcmluZyBhbGwgYmFzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1NTMsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzoxOS43MTEwMjgwNDRaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NDkyMjMzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpYXZmX2ZyZWVfYWRtaW5xX2FzcVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM9NDE9c3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9hbGxvY19hZG1pbnFfYXJxX3Jpbmcoc3RydWN0IGlhdmZfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTU0LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo1NTogKiAgaWF2Zl9mcmVlX2FkbWlucV9hc3EgLSBGcmVlIEFkbWluIFF1ZXVlIHNlbmQgcmluZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNTYtICogIEBodzogcG9pbnRlciB0byB0aGUgaGFyZHdhcmUgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNjAtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYzo2MTpzdGF0aWMgdm9pZCBpYXZmX2ZyZWVfYWRtaW5xX2FzcShzdHJ1Y3QgaWF2Zl9odyAqaHcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYz0zMDQ9c3RhdGljIGVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FzcShzdHJ1Y3QgaWF2Zl9odyAqaHcpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtMzQ5LWluaXRfYWRtaW5xX2ZyZWVfcmluZ3M6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjM1MDpcXHRpYXZmX2ZyZWVfYWRtaW5xX2FzcShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTM1MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MTkuODY1OTU2NjQ4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxODgxNzAyNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIFVzYWdlKipcblxuT2theSwgaG9sZCBvbiBhIHNlY29uZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gZm9sbG93aW5nIHRoZSBjb2RlIGNvcnJlY3RseS4gSXQgbG9va3MgbGlrZSBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGlzICphbHNvKiBjYWxsZWQgZnJvbSBgaWF2Zl9zaHV0ZG93bl9hZG1pbnFgLiBUaGF0J3MgYSBwb2ludCBJIGhhZG4ndCBleHBsaWNpdGx5IGNvbnNpZGVyZWQuICBJIG5lZWQgdG8gcmV2aXNpdCB0aGUgcG90ZW50aWFsIGludGVyYWN0aW9uIGJldHdlZW4gdGhvc2UgZnVuY3Rpb25zIG5vdy4gSSBzaG91bGQgZG91YmxlIGNoZWNrIGBpYXZmX2FkbWlucS5jYCB0byBiZSBjb21wbGV0ZWx5IHN1cmUgYWJvdXQgaG93IHRoYXQgbG9naWMgaXMgaGFuZGxlZCwgYmVjYXVzZSBpdCBzZWVtcyBJIGhhdmUgYSBtaXNzaW5nIHBpZWNlIHRvIHRoaXMgcHV6emxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NTc1LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTQ6NDc6MjQuMDU0MTI5NjkyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzExNjAwMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWF2Zl9zaHV0ZG93bl9hZG1pbnFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jPTQ5OT1lbnVtIGlhdmZfc3RhdHVzIGlhdmZfaW5pdF9hZG1pbnEoc3RydWN0IGlhdmZfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzNi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmM6NTM3OiAqICBpYXZmX3NodXRkb3duX2FkbWlucSAtIHNodXRkb3duIHJvdXRpbmUgZm9yIHRoZSBBZG1pbiBRdWV1ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9hZG1pbnEuYy01MzgtICogIEBodzogcG9pbnRlciB0byB0aGUgaGFyZHdhcmUgc3RydWN0dXJlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jLTUzOS0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX2FkbWlucS5jOjU0MDplbnVtIGlhdmZfc3RhdHVzIGlhdmZfc2h1dGRvd25fYWRtaW5xKHN0cnVjdCBpYXZmX2h3ICpodylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfYWRtaW5xLmMtNTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9MjMxMz1zdGF0aWMgdm9pZCBpYXZmX3N0YXJ0dXAoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjM0NS1cXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJVbmFibGUgdG8gc2VuZCB0byBQRiAoJWQpXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM0NjpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzQ3LVxcdFxcdGdvdG8gZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yMzYzPXN0YXRpYyB2b2lkIGlhdmZfaW5pdF92ZXJzaW9uX2NoZWNrKHN0cnVjdCBpYXZmX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTIzNzItXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiQWRtaW4gcXVldWUgY29tbWFuZCBuZXZlciBjb21wbGV0ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjM3MzpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yMzc0LVxcdFxcdGlhdmZfY2hhbmdlX3N0YXRlKGFkYXB0ZXIsIF9fSUFWRl9TVEFSVFVQKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9MjQ2ND1zdGF0aWMgdm9pZCBpYXZmX2luaXRfZ2V0X3Jlc291cmNlcyhzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDg4LVxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MjQ4OTpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yNDkwLVxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIlVuYWJsZSB0byBnZXQgVkYgY29uZmlnIGR1ZSB0byBQRiBlcnJvciBjb25kaXRpb24sIG5vdCByZXRyeWluZ1xcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jPTI4NDk9c3RhdGljIGludCBpYXZmX3dhdGNoZG9nX3N0ZXAoc3RydWN0IGlhdmZfYWRhcHRlciAqYWRhcHRlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMjg4Ny1cXHRcXHRcXHRhZGFwdGVyLVxcdTAwM2VmbGFncyB8PSBJQVZGX0ZMQUdfUEZfQ09NTVNfRkFJTEVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6Mjg4ODpcXHRcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0yODg5LVxcdFxcdFxcdHJldHVybiA1MDAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz0yOTkxPXN0YXRpYyB2b2lkIGlhdmZfZGlzYWJsZV92ZihzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMDQ1LVxcdG1lbXNldChhZGFwdGVyLVxcdTAwM2V2Zl9yZXMsIDAsIElBVkZfVklSVENITkxfVkZfUkVTT1VSQ0VfU0laRSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYzozMDQ2OlxcdGlhdmZfc2h1dGRvd25fYWRtaW5xKFxcdTAwMjZhZGFwdGVyLVxcdTAwM2Vodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMDQ3LVxcdGFkYXB0ZXItXFx1MDAzZWZsYWdzIFxcdTAwMjY9IH5JQVZGX0ZMQUdfUkVTRVRfUEVORElORztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM9MzA4Nj12b2lkIGlhdmZfcmVzZXRfc3RlcChzdHJ1Y3QgaWF2Zl9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA1LVxcdFxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MzEwNjpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTA3LVxcdFxcdGlhdmZfaW5pdF9hZG1pbnEoaHcpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTQ4LVxcdGlmIChhZGFwdGVyLVxcdTAwM2VzdGF0ZSBcXHUwMDNjPSBfX0lBVkZfSU5JVF9GQUlMRUQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jOjMxNDk6XFx0XFx0aWF2Zl9zaHV0ZG93bl9hZG1pbnEoaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmMtMzE1MC1cXHRcXHRpYXZmX2NoYW5nZV9zdGF0ZShhZGFwdGVyLCBfX0lBVkZfU1RBUlRVUCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pYXZmL2lhdmZfbWFpbi5jLTMxODMtXFx0Lyoga2lsbCBhbmQgcmVpbml0IHRoZSBhZG1pbiBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6MzE4NDpcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy0zMTg1LVxcdGFkYXB0ZXItXFx1MDAzZWN1cnJlbnRfb3AgPSBWSVJUQ0hOTF9PUF9VTktOT1dOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYz01NTAxPXN0YXRpYyB2b2lkIGlhdmZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NTgxLVxcdGlmIChody1cXHUwMDNlYXEuYXNxLmNvdW50KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9tYWluLmM6NTU4MjpcXHRcXHRpYXZmX3NodXRkb3duX2FkbWlucShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX21haW4uYy01NTgzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oPTE5PWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9pbml0X2FkbWlucShzdHJ1Y3QgaWF2Zl9odyAqaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lhdmYvaWF2Zl9wcm90b3R5cGUuaDoyMDplbnVtIGlhdmZfc3RhdHVzIGlhdmZfc2h1dGRvd25fYWRtaW5xKHN0cnVjdCBpYXZmX2h3ICpodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWF2Zi9pYXZmX3Byb3RvdHlwZS5oLTIxLWVudW0gaWF2Zl9zdGF0dXMgaWF2Zl9jbGVhbl9hcnFfZWxlbWVudChzdHJ1Y3QgaWF2Zl9odyAqaHcsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDE0OjQ3OjI0LjI4NTI5ODU2OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDEyNjI0MDkxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgSUFWRiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGtleSBmdW5jdGlvbnMgaW52b2x2ZWQgaW4gdGhlIG1lbW9yeSBsZWFrIGZpeGVzLiBUaGUgY29kZSdzIGFkZGluZyBmaXhlcyB0byBgaWF2Zl9mcmVlX2FkbWlucV9hc3FgIGFuZCBgaWF2Zl9yZW1vdmVgLCB3aGljaCBhcmUgY2FsbGVkIGR1cmluZyBzaHV0ZG93bi9pbml0aWFsaXphdGlvbiBmYWlsdXJlIGFuZCBQQ0kgZGV2aWNlIHJlbW92YWwsIHJlc3BlY3RpdmVseS4gVGhlc2Ugc2VlbSB0byBiZSB0aGUgY3JpdGljYWwgcG9pbnRzLlxuXG5JJ20gbWFraW5nIGEgbWVudGFsIG5vdGUgdG8gYWRkIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBpYXZmX3JlbW92ZWAgdG8gYEZvY3VzU3ltYm9sc2AuIFRoYXQncyB3aGVyZSB0aGUgaGVhcnQgb2YgdGhlIGNoYW5nZXMgYXJlLlxuXG5Ob3csIGxldCdzIGNvbnNpZGVyIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucy4gVGhlIGNvZGUgc2VlbXMgZm9jdXNlZCBvbiB0aGUgYEk0MEVWRmAgY29uZmlnLiBJIGJyaWVmbHkgZG91YmxlLWNoZWNrZWQgZm9yIG90aGVyIHNwZWNpZmljIGRlcGVuZGVuY2llcy4gIGBQQ0lfTVNJYCBhbmQgYFBUUF8xNTg4X0NMT0NLX09QVElPTkFMYCBhcmUgcmVxdWlyZWQsIGJ1dCB0aG9zZSBhcmUgcHJldHR5IGdlbmVyaWMsIHNvIGBJNDBFVkZgIHNlZW1zIHRvIGJlIHRoZSBjcnVjaWFsIG9uZS5cblxuSGFuZyBvbi4uLiBJIG5lZWQgdG8gYmUgcHJlY2lzZSBoZXJlLiBgSTQwRVZGYCBzZWxlY3RzIGBJQVZGYC4gSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgYElBVkZgIGlzIGEgdHJpc3RhdGUgY29uZmlnLCBidXQgaXQgZG9lc24ndCBoYXZlIGEgZGlyZWN0IHVzZXItZmFjaW5nIHByb21wdCBpbiBgS2NvbmZpZ2AuICBUaGlzIG1lYW5zIHRoYXQgYEk0MEVWRmAgaXMgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBtdXN0IGJlIHNldC4gVGhlcmVmb3JlLCBJIHdpbGwgbGlzdCBgSTQwRVZGYCB1bmRlciBgRW5hYmxlQ29uZmlnc2AuXG5cbkkgcXVpY2tseSB2ZXJpZmllZCB0aGF0IGJvdGggYGlhdmZfZnJlZV9hZG1pbnFfYXNxYCBhbmQgYGlhdmZfcmVtb3ZlYCBhcmUgZGVjbGFyZWQgYXMgYHN0YXRpY2AuICBUaGVyZWZvcmUsIHRoZXJlIHdvbid0IGJlIGFueSBpc3N1ZXMgd2l0aCBuYW1lIGNvbGxpc2lvbnMuXG5cblNvLCBqdXN0IHRvIGJlIGNyeXN0YWwgY2xlYXIsIG15IGRlZmluaXRpdmUgYEZvY3VzU3ltYm9sc2AgYXJlOlxuXG4qICAgYGlhdmZfZnJlZV9hZG1pbnFfYXNxYFxuKiAgIGBpYXZmX3JlbW92ZWBcblxuQW5kIHRoZSBgRW5hYmxlQ29uZmlnc2AgYXJlOlxuXG4qICAgYEk0MEVWRmBcblxuVGhlIHBhdGNoIGl0c2VsZiBzZWVtcyBmdW5jdGlvbmFsLCBhbmQgaXQgcmVzb2x2ZXMgbWVtb3J5IGxlYWtzLCB3aGljaCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBJIGNvbmZpcm1lZCB0aGF0IGBXb3J0aEZ1enppbmdgIGlzIHNldCB0byBgdHJ1ZWAuXG5cbk15IG92ZXJhbGwgcmVhc29uaW5nIGlzIHRoYXQgdGhpcyBwYXRjaCBhZGRyZXNzZXMgbWVtb3J5IGxlYWtzIGluIHRoZSBJbnRlbCBFdGhlcm5ldCBBZGFwdGl2ZSBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlciBieSBlbnN1cmluZyB0aGF0IGBjbWRfYnVmYCBhbmQgYHFvc19jYXBzYCBhcmUgZnJlZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcyDigJMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGZhaWx1cmUvc2h1dGRvd24gKGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWApIGFuZCB3aGVuIHRoZSBQQ0kgZGV2aWNlIGlzIHJlbW92ZWQgKGBpYXZmX3JlbW92ZWApLiBUaGUgUENJIGZ1enppbmcgc3Vic3lzdGVtIG9mIHN5emthbGxlciBpcyBwZXJmZWN0IGZvciBzaW11bGF0aW5nIHByb2JlIGFuZCByZW1vdmUgb3BlcmF0aW9ucyBhbmQsIHRoZXJlZm9yZSwgdGVzdGluZyB0aGlzIHBhdGNoLlxuXG5JJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NTQ1LCJPdXRwdXRUb2tlbnMiOjE0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxNDo0NzozNC40MTE1NDI0ODRaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk4MDA3NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkk0MEVWRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlhdmZfZnJlZV9hZG1pbnFfYXNxXCIsXG4gICAgXCJpYXZmX3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkk0MEVWRlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImlhdmZfZnJlZV9hZG1pbnFfYXNxXCIsXG4gICAgXCJpYXZmX3JlbW92ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG1lbW9yeSBsZWFrcyBpbiB0aGUgSW50ZWwgRXRoZXJuZXQgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbiAoaWF2ZikgZHJpdmVyIGJ5IGZyZWVpbmcgYGNtZF9idWZgIGluIGBpYXZmX2ZyZWVfYWRtaW5xX2FzcWAgYW5kIGBxb3NfY2Fwc2AgaW4gYGlhdmZfcmVtb3ZlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLCBzaHV0ZG93biwgb3IgcmVtb3ZhbC4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHVzaW5nIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIHN1YnN5c3RlbSwgd2hpY2ggY2FuIHNpbXVsYXRlIFBDSSBkZXZpY2UgcHJvYmUgYW5kIHJlbW92ZSBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow8rmxq[1] Phase: Succeeded StartedAt: 2026-07-15 14:48:00 +0000 UTC FinishedAt: 2026-07-15 14:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-15 14:48:00 +0000 UTC FinishedAt: 2026-07-15 14:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2] Phase: Succeeded StartedAt: 2026-07-15 14:48:00 +0000 UTC FinishedAt: 2026-07-15 17:17:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-15 14:48:01 +0000 UTC FinishedAt: 2026-07-15 17:17:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-15 14:48:01 +0000 UTC FinishedAt: 2026-07-15 14:48:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-15 14:48:01 +0000 UTC FinishedAt: 2026-07-15 14:48:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-1528288501/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-15 14:48:49 +0000 UTC FinishedAt: 2026-07-15 15:30:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-15 14:48:49 +0000 UTC FinishedAt: 2026-07-15 15:30:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*96c277f0-29ab-425c-ade2-c0c4f09c856f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-1528288501/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "0e2b2c73-e60d-4b5e-a9a8-5ae464fdaf17", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-2671455963/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-15 14:48:49 +0000 UTC FinishedAt: 2026-07-15 15:29:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*96c277f0-29ab-425c-ade2-c0c4f09c856f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-1528288501/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "0e2b2c73-e60d-4b5e-a9a8-5ae464fdaf17", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-2671455963/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-15 15:30:04 +0000 UTC FinishedAt: 2026-07-15 15:30:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-15 15:30:04 +0000 UTC FinishedAt: 2026-07-15 15:30:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-15 15:30:04 +0000 UTC FinishedAt: 2026-07-15 15:30:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-15 15:30:04 +0000 UTC FinishedAt: 2026-07-15 15:30:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-2984239184/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-15 15:30:26 +0000 UTC FinishedAt: 2026-07-15 15:33:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-15 15:30:26 +0000 UTC FinishedAt: 2026-07-15 15:32:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0e2b2c73-e60d-4b5e-a9a8-5ae464fdaf17,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-2671455963/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-15 15:33:00 +0000 UTC FinishedAt: 2026-07-15 15:33:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-15 15:33:00 +0000 UTC FinishedAt: 2026-07-15 15:33:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-15 15:33:00 +0000 UTC FinishedAt: 2026-07-15 16:25:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-15 15:33:00 +0000 UTC FinishedAt: 2026-07-15 16:25:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*96c277f0-29ab-425c-ade2-c0c4f09c856f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-2984239184/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b0012f6c-e7b5-4259-8974-4cdf10dae790", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-4186217932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-15 15:33:00 +0000 UTC FinishedAt: 2026-07-15 16:25:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*96c277f0-29ab-425c-ade2-c0c4f09c856f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-2984239184/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b0012f6c-e7b5-4259-8974-4cdf10dae790", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-4186217932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-15 16:25:19 +0000 UTC FinishedAt: 2026-07-15 16:25:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-15 16:25:19 +0000 UTC FinishedAt: 2026-07-15 16:25:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-15 16:25:19 +0000 UTC FinishedAt: 2026-07-15 16:27:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-15 16:25:19 +0000 UTC FinishedAt: 2026-07-15 16:27:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b0012f6c-e7b5-4259-8974-4cdf10dae790,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-4186217932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 17:17:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 17:17:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*0e2b2c73-e60d-4b5e-a9a8-5ae464fdaf17,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b0012f6c-e7b5-4259-8974-4cdf10dae790,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-2671455963/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-4186217932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 16:27:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 16:27:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-136307785/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 16:27:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 16:27:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-15 16:27:20 +0000 UTC FinishedAt: 2026-07-15 16:27:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-15 16:27:40 +0000 UTC FinishedAt: 2026-07-15 17:17:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8rmxq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["iavf_free_adminq_asq","iavf_remove"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["I40EVF"],"series_id":"7359f35d-abea-488d-8ed4-f52847331c94","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-15 16:27:40 +0000 UTC FinishedAt: 2026-07-15 17:17:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0e2b2c73-e60d-4b5e-a9a8-5ae464fdaf17,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b0012f6c-e7b5-4259-8974-4cdf10dae790,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-2671455963/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-build-action-4186217932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8rmxq/series-workflow8rmxq-convert-artifact-136307785/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}