Name: series-workflow2g2xp Phase: Succeeded StartedAt: 2026-08-22 21:51:15 +0000 UTC FinishedAt: 2026-08-23 02:15:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[0] Phase: Succeeded StartedAt: 2026-08-22 21:51:15 +0000 UTC FinishedAt: 2026-08-22 22:35:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[0].run-triage Phase: Succeeded StartedAt: 2026-08-22 21:51:15 +0000 UTC FinishedAt: 2026-08-22 22:35:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "878ca6f9739ab460a185fd1f0e64c8ef026057e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_DEFRAG_IPV6" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "878ca6f9739ab460a185fd1f0e64c8ef026057e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_DEFRAG_IPV6" ], "series_id": "087c8238-a443-4a5f-9362-13e9b3301aca" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_ct_frag6_gather" ], "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+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0RFRlJBR19JUFY2JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfY3RfZnJhZzZfZ2F0aGVyJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYnVnIGluIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYyBieSBjaGFuZ2luZyB0aGUgdHlwZSBvZiBwcmV2X25ob2ZmIGZyb20gdTggdG8gaW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJjZGEzZGI5ZjZiNjAyNmU5NDRiNWU1MzFkOWIzYjVjNWZmMWRhYjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyMiAyMjozMjoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuQEAgLTM5OCw3ICYjNDM7Mzk4LDcgQEAgZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxuIHtcbiBcdHU4IG5leHRoZHIgPSBpcHY2X2hkcihza2IpLVx1MDAzZW5leHRoZHI7XG4gXHRjb25zdCBpbnQgbmV0b2ZmID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7XG4tXHR1OCBwcmV2X25ob2ZmID0gbmV0b2ZmICYjNDM7IG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcbiYjNDM7XHRpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XG4gXHRpbnQgc3RhcnQgPSBuZXRvZmYgJiM0Mzsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcbiBcdGludCBsZW4gPSBza2ItXHUwMDNlbGVuIC0gc3RhcnQ7XG4gXHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORl9ERUZSQUdfSVBWNiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2N0X2ZyYWc2X2dhdGhlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYmNkYTNkYjlmNmI2MDI2ZTk0NGI1ZTUzMWQ5YjNiNWM1ZmYxZGFiOQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDIyIDIyOjMyOjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKQEAgLTM5OCw3ICYjNDM7Mzk4LDcgQEAgZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKQogewogCXU4IG5leHRoZHIgPSBpcHY2X2hkcihza2IpLSZndDtuZXh0aGRyOwogCWNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKLQl1OCBwcmV2X25ob2ZmID0gbmV0b2ZmICYjNDM7IG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTsKJiM0MzsJaW50IHByZXZfbmhvZmYgPSBuZXRvZmYgJiM0Mzsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpOwogCWludCBzdGFydCA9IG5ldG9mZiAmIzQzOyBzaXplb2Yoc3RydWN0IGlwdjZoZHIpOwogCWludCBsZW4gPSBza2ItJmd0O2xlbiAtIHN0YXJ0OwogCXU4IHByZXZoZHIgPSBORVhUSERSX0lQVjY7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwODIKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgTmV0ZmlsdGVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBzZWVtcyBsaWtlIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBjaGFuZ2UsIGJ1dCBpdOKAmXMgdGFyZ2V0aW5nIGEgcG90ZW50aWFsbHkgbmFzdHkgcHJvYmxlbSBpbiBgbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jYC4gVGhleSYjMzk7cmUgY2hhbmdpbmcgdGhlIHR5cGUgb2YgYHByZXZfbmhvZmZgIGluIGBmaW5kX3ByZXZfZmhkcmAgZnJvbSBgdThgIHRvIGBpbnRgLiBUaGUganVzdGlmaWNhdGlvbiBpcyB0aGUgcG9zc2liaWxpdHkgb2YgYW4gb3ZlcmZsb3cgb3IgdHJ1bmNhdGlvbiBpc3N1ZS4gU3BlY2lmaWNhbGx5LCB0aGUgY2FsY3VsYXRpb24gYG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcilgIGNvdWxkLCB3aXRoIGEgc3VmZmljaWVudGx5IGxhcmdlIGBuZXRvZmZgIHZhbHVlLCBleGNlZWQgdGhlIG1heGltdW0gdmFsdWUgcmVwcmVzZW50YWJsZSBieSBhIGB1OGAgKDI1NSkuIFRoYXQgbWVhbnMgd2UgY291bGQgYmUgbG9zaW5nIGNydWNpYWwgZGF0YSBpbiBhIHJlYXNzZW1ibHkgY29udGV4dC4gVGhpcyBpcyB0aGUga2luZCBvZiBzdWJ0bGUgYnVnIHRoYXQgY291bGQgbGVhZCB0byBwYWNrZXQgY29ycnVwdGlvbiBvciwgd29yc2UsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgbmVlZHMgdG8gYmUgdGhvcm91Z2hseSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGUgZml4IGlzIGNvcnJlY3QsIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zLiBMZXQmIzM5O3MgZGlnIGludG8gdGhhdCBgZmluZF9wcmV2X2ZoZHJgIGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCB0aGUgaW1wbGljYXRpb25zIGFyZSBvZiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmaW5kX3ByZXZfZmhkciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM9Mzk2PXN0YXRpYyBpbnRcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzozOTc6ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTM5OC17XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTQ0Nj1pbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2Mi1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NjM6XHRpZiAoZmluZF9wcmV2X2ZoZHIoc2tiLCBcdTAwMjZwcmV2aGRyLCBcdTAwMjZuaG9mZiwgXHUwMDI2ZmhvZmYpIFx1MDAzYyAwKVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2NC1cdFx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3MgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRmxvdyBvZiBJUHY2IEZyYWdtZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkgc2VlIGBmaW5kX3ByZXZfZmhkcmAgYmVpbmcgY2FsbGVkIGJ5IGBuZl9jdF9mcmFnNl9nYXRoZXJgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBidXQgbm90IHRoZSB3aG9sZSBwaWN0dXJlLiBJIGtub3cgYG5mX2N0X2ZyYWc2X2dhdGhlcmAgaXMgZWl0aGVyIGV4cG9ydGVkIG9yIGdsb2JhbGx5IGFjY2Vzc2libGUsIG1lYW5pbmcgaXQmIzM5O3MgYSBrZXkgZnVuY3Rpb24gZm9yIHNvbWV0aGluZy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2hlcmUgKmVsc2UqIGlzIHRoaXMgZnVuY3Rpb24gdXNlZD8mIzM0OyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dCB3aXRoaW4gdGhlIGxhcmdlciBJUHY2IGZyYWdtZW50IHByb2Nlc3NpbmcgZnJhbWV3b3JrLiBQaW5wb2ludGluZyB0aGUgY2FsbCBzaXRlcyBvZiBgbmZfY3RfZnJhZzZfZ2F0aGVyYCBpcyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuIFRoYXQmIzM5O2xsIHByb3ZpZGUgaW5zaWdodCBpbnRvIGl0cyByb2xlIGFuZCBwdXJwb3NlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2N0X2ZyYWc2X2dhdGhlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9uZXRmaWx0ZXIvaXB2Ni9uZl9kZWZyYWdfaXB2Ni5oPTEyPXZvaWQgbmZfY3RfZnJhZzZfY2xlYW51cCh2b2lkKTtcbmluY2x1ZGUvbmV0L25ldGZpbHRlci9pcHY2L25mX2RlZnJhZ19pcHY2Lmg6MTM6aW50IG5mX2N0X2ZyYWc2X2dhdGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKTtcbmluY2x1ZGUvbmV0L25ldGZpbHRlci9pcHY2L25mX2RlZnJhZ19pcHY2LmgtMTQtXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jPTE3ND1zdGF0aWMgdW5zaWduZWQgaW50IG5mX2N0X2JyX2RlZnJhZzYoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmMtMTg5LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jOjE5MDpcdGVyciA9IG5mX2N0X2ZyYWc2X2dhdGhlcihzdGF0ZS1cdTAwM2VuZXQsIHNrYixcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19icmlkZ2UuYy0xOTEtXHRcdFx0XHQgSVBfREVGUkFHX0NPTk5UUkFDS19CUklER0VfSU4gJiM0Mzsgem9uZV9pZCk7XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTM5Nz1maW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ0NS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NDY6aW50IG5mX2N0X2ZyYWc2X2dhdGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ0Ny17XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTUwMi19XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6NTAzOkVYUE9SVF9TWU1CT0xfR1BMKG5mX2N0X2ZyYWc2X2dhdGhlcik7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNTA0LVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9kZWZyYWdfaXB2Nl9ob29rcy5jPTUyPXN0YXRpYyB1bnNpZ25lZCBpbnQgaXB2Nl9kZWZyYWcodm9pZCAqcHJpdixcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfZGVmcmFnX2lwdjZfaG9va3MuYy02Ni1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9kZWZyYWdfaXB2Nl9ob29rcy5jOjY3Olx0ZXJyID0gbmZfY3RfZnJhZzZfZ2F0aGVyKHN0YXRlLVx1MDAzZW5ldCwgc2tiLFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmMtNjgtXHRcdFx0XHQgbmZfY3Q2X2RlZnJhZ191c2VyKHN0YXRlLVx1MDAzZWhvb2ssIHNrYikpO1xuLS1cbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX292cy5jPTE1MT1pbnQgbmZfY3RfaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfb3ZzLmMtMTcxLVx0XHRtZW1zZXQoSVA2Q0Ioc2tiKSwgMCwgc2l6ZW9mKHN0cnVjdCBpbmV0Nl9za2JfcGFybSkpO1xubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfb3ZzLmM6MTcyOlx0XHRlcnIgPSBuZl9jdF9mcmFnNl9nYXRoZXIobmV0LCBza2IsIHVzZXIpO1xubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfb3ZzLmMtMTczLVx0XHRpZiAoZXJyKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzgzMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJIHdlcmUgdGhpbmtpbmcgdGhyb3VnaCB0aGUgcHJvYmxlbToKCioqRXhhbWluaW5nIElQdjYgTmV0ZmlsdGVyIENvbm5lY3Rpb24gVHJhY2tpbmcgRGVmcmFnbWVudGF0aW9uKioKCkFscmlnaHQsIHRoZSByZWxldmFudCBjb2RlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jYC4gVGhhdCB0ZWxscyBtZSByaWdodCBhd2F5IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIElQdjYgbmV0ZmlsdGVyJiMzOTtzIGNvbm5lY3Rpb24gdHJhY2tpbmcsIHNwZWNpZmljYWxseSB0aGUgZGVmcmFnbWVudGF0aW9uIGFzcGVjdC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcywgSSBuZWVkIHRvIGtub3cgdW5kZXIgd2hhdCBjb25kaXRpb25zIHRoaXMgY29kZSBpcyBlbmFibGVkLiBLbm93aW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbCBhbGxvdyBtZSB0byB1bmRlcnN0YW5kIHdoaWNoIGZlYXR1cmVzIGRlcGVuZCBvbiB0aGlzIHBhcnQgb2YgdGhlIGNvZGUuIFRoaXMgd2lsbCBpbmZvcm0gbXkgaW52ZXN0aWdhdGlvbiBieSBzZXR0aW5nIHRoZSBzdGFnZSBmb3Igd2hlcmUgYW5kIHdoeSB0aGlzIGNvZGUgcGF0aCB3b3VsZCBiZSByZWFjaGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2Nvbm50cmFja19yZWFzbSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvTWFrZWZpbGU9MTI9b2JqLSQoQ09ORklHX0lQNl9ORl9OQVQpICYjNDM7PSBpcDZ0YWJsZV9uYXQub1xuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZS0xNC0jIGRlZnJhZ1xubmV0L2lwdjYvbmV0ZmlsdGVyL01ha2VmaWxlOjE1Om5mX2RlZnJhZ19pcHY2LXkgOj0gbmZfZGVmcmFnX2lwdjZfaG9va3MubyBuZl9jb25udHJhY2tfcmVhc20ub1xubmV0L2lwdjYvbmV0ZmlsdGVyL01ha2VmaWxlLTE2LW9iai0kKENPTkZJR19ORl9ERUZSQUdfSVBWNikgJiM0Mzs9IG5mX2RlZnJhZ19pcHY2Lm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjIzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRnJhZ21lbnRhdGlvbiBCdWcgRml4KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZml4aW5nIHNvbWV0aGluZyByZWxhdGVkIHRvIElQdjYgZGVmcmFnbWVudGF0aW9uIHdpdGhpbiB0aGUgY29ubmVjdGlvbiB0cmFja2luZyBjb2RlLiBTcGVjaWZpY2FsbHksIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgQ09ORklHX05GX0RFRlJBR19JUFY2YCBpcyBhIGhhcmQgcmVxdWlyZW1lbnQgZm9yIHRoaXMgY2hhbmdlLCBtZWFuaW5nIGl0JiMzOTtzIG9ubHkgcmVsZXZhbnQgaWYgSVB2NiBkZWZyYWcgaXMgZW5hYmxlZC4gVGhlIGVudHJ5IHBvaW50IGZvciB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgdGhlIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGZ1bmN0aW9uLiBUaGUgY29kZSBtZW50aW9ucyBhIGZpeCBmb3IgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgaW4gYHByZXZfbmhvZmZgIHdoZW4gZGVhbGluZyB3aXRoIGEgbGFyZ2UgYG5ldG9mZmAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBhIGZ1bmN0aW9uYWwgYnVnLCBzb21ldGhpbmcgdGhhdCBjb3VsZCBpbXBhY3QgcmVhbC13b3JsZCB0cmFmZmljLCBzbyB0aGlzIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBNeSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBgbmZfY3RfZnJhZzZfZ2F0aGVyYCBzeW1ib2wsIGFzIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvcmUgbG9naWMgcmVzaWRlcy4gQmVmb3JlIEkgZGl2ZSBpbnRvIHRoZSBjb2RlIGl0c2VsZiwgSSBzaG91bGQgZG91YmxlLWNoZWNrIGFuZCBtYWtlIHN1cmUgYE5GX0RFRlJBR19JUFY2YCBkb2VzbiYjMzk7dCBoYXZlIGFueSBoaWRkZW4gZGVwZW5kZW5jaWVzIG9yIHByZXJlcXVpc2l0ZXMgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBjYXNjYWRpbmcgaW1wbGljYXRpb25zIHRvIGNvbnNpZGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTkZfREVGUkFHX0lQVjYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0zMDA9ZW5kbWVudVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMzAxLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MzAyOmNvbmZpZyBORl9ERUZSQUdfSVBWNlxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMzAzLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY5NgoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHRyaXN0YXRlIG9wdGlvbiwgYW5kIGl0JiMzOTtzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgc2VlbXMgc2VsZi1jb250YWluZWQg4oCTIG5vIG9idmlvdXMgZGVwZW5kZW5jaWVzIGF0IGZpcnN0IGdsYW5jZS4gQnV0IHRoZSBsb2NhdGlvbiwgdHVja2VkIGF3YXkgaW4gYG5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnYCwgaXMgbWFraW5nIG1lIHBhdXNlLiBUaGF0IHN1Z2dlc3RzIGl0IG1pZ2h0IGhhdmUgYSBjb3VwbGUgb2YgaW1wbGllZCBkZXBlbmRlbmNpZXMuIEl0JiMzOTtzIGFsbW9zdCBjZXJ0YWluIGl0IG5lZWRzIGBJUFY2YCwgYnV0IGBORVRGSUxURVJgIGZlZWxzIGxpa2VseSB0b28sIGdpdmVuIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLiBKdXN0IHRvIGJlIGNvbXBsZXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IG9wZW4gdXAgYG5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnYCBhbmQgdGFrZSBhIGxvb2sgZm9yIGFueSBgZGVwZW5kcyBvbmAgc3RhdGVtZW50cyBhdCB0aGUgZmlsZSBsZXZlbC4gQSBxdWljayBzY2FuIHdpbGwgY29uZmlybSBvciBjbGFyaWZ5IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIG9wdGlvbi4gSSBuZWVkIHRvIGJlIHN1cmUgYmVmb3JlIEkgbWFrZSBhbnkgYXNzdW1wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz02PW1lbnUgXCYjMzQ7SVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb25cJiMzNDtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjc6XHRkZXBlbmRzIG9uIElORVQgXHUwMDI2XHUwMDI2IElQVjYgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUlxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctOC1cbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMD1jb25maWcgSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTEtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgSVA2IHRhYmxlcyBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxMjpcdGRlcGVuZHMgb24gSU5FVCBcdTAwMjZcdTAwMjYgSVBWNiBcdTAwMjZcdTAwMjYgTkVURklMVEVSX1hUQUJMRVNfTEVHQUNZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxMzpcdGRlcGVuZHMgb24gTkVURklMVEVSX1hUQUJMRVNcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE0LVx0ZGVmYXVsdFx0bSBpZiBORVRGSUxURVJfWFRBQkxFU19MRUdBQ1lcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz00Mz1jb25maWcgTkZUX0RVUF9JUFY2XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy00NC1cdHRyaXN0YXRlIFwmIzM0O0lQdjYgbmZfdGFibGVzIHBhY2tldCBkdXBsaWNhdGlvbiBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo0NTpcdGRlcGVuZHMgb24gIU5GX0NPTk5UUkFDSyB8fCBORl9DT05OVFJBQ0tcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTQ2LVx0c2VsZWN0IE5GX0RVUF9JUFY2XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9NjE9Y29uZmlnIE5GX0RVUF9JUFY2XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy02Mi1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBJUHY2IHBhY2tldCBkdXBsaWNhdGlvbiB0byBhbHRlcm5hdGUgZGVzdGluYXRpb25cJiMzNDtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjYzOlx0ZGVwZW5kcyBvbiAhTkZfQ09OTlRSQUNLIHx8IE5GX0NPTk5UUkFDS1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctNjQtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9ODA9Y29uZmlnIElQNl9ORl9JUFRBQkxFU1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtJUDYgdGFibGVzIHN1cHBvcnQgKHJlcXVpcmVkIGZvciBmaWx0ZXJpbmcpXCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo4MjpcdGRlcGVuZHMgb24gSU5FVCBcdTAwMjZcdTAwMjYgSVBWNlxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctODMtXHRzZWxlY3QgTkVURklMVEVSX1hUQUJMRVNcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz05Nj1jb25maWcgSVA2X05GX01BVENIX0FIXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy05Ny1cdHRyaXN0YXRlICYjMzk7XCYjMzQ7YWhcJiMzNDsgbWF0Y2ggc3VwcG9ydCYjMzk7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo5ODpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy05OS1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMDQ9Y29uZmlnIElQNl9ORl9NQVRDSF9FVUk2NFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTA1LVx0dHJpc3RhdGUgJiMzOTtcJiMzNDtldWk2NFwmIzM0OyBhZGRyZXNzIGNoZWNrJiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjEwNjpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMDctXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTE0PWNvbmZpZyBJUDZfTkZfTUFUQ0hfRlJBR1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTE1LVx0dHJpc3RhdGUgJiMzOTtcJiMzNDtmcmFnXCYjMzQ7IEZyYWdtZW50YXRpb24gaGVhZGVyIG1hdGNoIHN1cHBvcnQmIzM5O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTE2Olx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTExNy1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMjM9Y29uZmlnIElQNl9ORl9NQVRDSF9PUFRTXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMjQtXHR0cmlzdGF0ZSAmIzM5O1wmIzM0O2hiaFwmIzM0OyBob3AtYnktaG9wIGFuZCBcJiMzNDtkc3RcJiMzNDsgb3B0cyBoZWFkZXIgbWF0Y2ggc3VwcG9ydCYjMzk7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxMjU6XHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTI2LVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTEzMj1jb25maWcgSVA2X05GX01BVENIX0hMXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMzMtXHR0cmlzdGF0ZSAmIzM5O1wmIzM0O2hsXCYjMzQ7IGhvcGxpbWl0IG1hdGNoIHN1cHBvcnQmIzM5O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTM0Olx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEzNS1cdHNlbGVjdCBORVRGSUxURVJfWFRfTUFUQ0hfSExcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xNTA9Y29uZmlnIElQNl9ORl9NQVRDSF9NSFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTUxLVx0dHJpc3RhdGUgJiMzOTtcJiMzNDttaFwmIzM0OyBtYXRjaCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE1MjpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNTMtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTU4PWNvbmZpZyBJUDZfTkZfTUFUQ0hfUlBGSUxURVJcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1OS1cdHRyaXN0YXRlICYjMzk7XCYjMzQ7cnBmaWx0ZXJcJiMzNDsgcmV2ZXJzZSBwYXRoIGZpbHRlciBtYXRjaCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE2MDpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxNjE6XHRkZXBlbmRzIG9uIElQNl9ORl9NQU5HTEUgfHwgSVA2X05GX1JBVyB8fCBORlRfQ09NUEFUXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNjItXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTY5PWNvbmZpZyBJUDZfTkZfTUFUQ0hfUlRcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE3MC1cdHRyaXN0YXRlICYjMzk7XCYjMzQ7cnRcJiMzNDsgUm91dGluZyBoZWFkZXIgbWF0Y2ggc3VwcG9ydCYjMzk7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxNzE6XHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTcyLVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTE3OD1jb25maWcgSVA2X05GX01BVENIX1NSSFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTc5LVx0dHJpc3RhdGUgJiMzOTtcJiMzNDtzcmhcJiMzNDsgU2VnbWVudCBSb3V0aW5nIGhlYWRlciBtYXRjaCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE4MDpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xODEtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTg4PWNvbmZpZyBJUDZfTkZfVEFSR0VUX0hMXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xODktXHR0cmlzdGF0ZSAmIzM5O1wmIzM0O0hMXCYjMzQ7IGhvcGxpbWl0IHRhcmdldCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE5MDpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEIFx1MDAyNlx1MDAyNiBJUDZfTkZfTUFOR0xFXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xOTEtXHRzZWxlY3QgTkVURklMVEVSX1hUX1RBUkdFVF9ITFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTE5Nz1jb25maWcgSVA2X05GX0ZJTFRFUlxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE5OS1cdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9biB8fCBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMDA6XHRkZXBlbmRzIG9uIElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIwMS1cdHRyaXN0YXRlXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjA5PWNvbmZpZyBJUDZfTkZfVEFSR0VUX1JFSkVDVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEwLVx0dHJpc3RhdGUgXCYjMzQ7UkVKRUNUIHRhcmdldCBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMTE6XHRkZXBlbmRzIG9uIElQNl9ORl9GSUxURVIgfHwgTkZUX0NPTVBBVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEyLVx0c2VsZWN0IE5GX1JFSkVDVF9JUFY2XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjIxPWNvbmZpZyBJUDZfTkZfVEFSR0VUX1NZTlBST1hZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yMjItXHR0cmlzdGF0ZSBcJiMzNDtTWU5QUk9YWSB0YXJnZXQgc3VwcG9ydFwmIzM0O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjIzOlx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUl9BRFZBTkNFRFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjI0LVx0c2VsZWN0IE5FVEZJTFRFUl9TWU5QUk9YWVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTIzND1jb25maWcgSVA2X05GX01BTkdMRVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIzNi1cdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9biB8fCBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMzc6XHRkZXBlbmRzIG9uIElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIzOC1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yNDU9Y29uZmlnIElQNl9ORl9SQVdcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTI0Ni1cdHRyaXN0YXRlICAmIzM5O3JhdyB0YWJsZSBzdXBwb3J0IChyZXF1aXJlZCBmb3IgVFJBQ0UpJiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI0NzpcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjQ4LVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI1Nz1jb25maWcgSVA2X05GX1NFQ1VSSVRZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yNTgtXHR0cmlzdGF0ZSBcJiMzNDtTZWN1cml0eSB0YWJsZVwmIzM0O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjU5Olx0ZGVwZW5kcyBvbiBTRUNVUklUWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjYwOlx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI2MTpcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjYyLVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI2OD1jb25maWcgSVA2X05GX05BVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjY5LVx0dHJpc3RhdGUgXCYjMzQ7aXA2dGFibGVzIE5BVCBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyNzA6XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcxOlx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI3MjpcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjczLVx0c2VsZWN0IE5GX05BVFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI4Mj1jb25maWcgSVA2X05GX1RBUkdFVF9NQVNRVUVSQURFXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjg0LVx0c2VsZWN0IE5FVEZJTFRFUl9YVF9UQVJHRVRfTUFTUVVFUkFERVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6Mjg1Olx0ZGVwZW5kcyBvbiBJUDZfTkZfTkFUXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yODYtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjkwPWNvbmZpZyBJUDZfTkZfVEFSR0VUX05QVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjkxLVx0dHJpc3RhdGUgXCYjMzQ7TlBUIChOZXR3b3JrIFByZWZpeCB0cmFuc2xhdGlvbikgdGFyZ2V0IHN1cHBvcnRcJiMzNDtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI5MjpcdGRlcGVuZHMgb24gSVA2X05GX05BVCB8fCBORlRfQ09NUEFUXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yOTMtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc1NzgKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIGBORl9ERUZSQUdfSVBWNmAgRGVwZW5kZW5jeSBhbmQgRnVuY3Rpb24gQ2FsbGVycyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYE5GX0RFRlJBR19JUFY2YCBhbmQgd2hlcmUgaXQgbGl2ZXMsIHdoaWNoIGlzIGluIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBkZXBlbmRlbmN5OiBgSU5FVCAmYW1wOyZhbXA7IElQVjYgJmFtcDsmYW1wOyBORVRGSUxURVJgLiBObyBzdXJwcmlzZXMgdGhlcmU7IHN0YW5kYXJkIHN0dWZmLCByZWFsbHkuIFNvLCBJIG5lZWQgdG8gYmUgc3VyZSB0byBsaXN0IGBORl9ERUZSQUdfSVBWNmAgYXMgYSByZXF1aXJlZCBjb25maWd1cmF0aW9uIG9wdGlvbi4gVGhhdCBwYXJ0IGlzIHN0cmFpZ2h0Zm9yd2FyZC4KCk5vdywgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIGBmaW5kX3ByZXZfZmhkcmAuIEl0JiMzOTtzIGEgYHN0YXRpY2AgZnVuY3Rpb24sIHNvIHRoZSBjb21waWxlciBpcyBwcm9iYWJseSBnb2luZyB0byB0cnkgYW5kIGlubGluZSBpdCB0byBvcHRpbWl6ZS4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLiBUaGUgZGVjbGFyYXRpb24gaXRzZWxmIGlzOgoKYGBgYwpzdGF0aWMgaW50CmZpbmRfcHJldl9maGRyKHN0cnVjdCBza19idWZmICpza2IsIHU4ICpwcmV2aGRycCwgaW50ICpwcmV2aG9mZiwgaW50ICpmaG9mZikKYGBgCgpUaGUgY3J1Y2lhbCB0aGluZyBoZXJlIGlzLCB3aG8gKmNhbGxzKiB0aGlzIHN0YXRpYyBmdW5jdGlvbj8gTG9va2luZyBhdCB0aGUgY29kZSwgaXQmIzM5O3MgY2FsbGVkIGJ5IGBuZl9jdF9mcmFnNl9nYXRoZXJgLiBBbmQsIG9mIGNvdXJzZSwgYG5mX2N0X2ZyYWc2X2dhdGhlcmAgaXMgKmV4cG9ydGVkKiBtZWFuaW5nIGl0JiMzOTtzIHZpc2libGUgb3V0c2lkZSB0aGUgbG9jYWwgbW9kdWxlIGFuZCB0aGUga2VybmVsIGlzICpkZXBlbmRpbmcqIG9uIGl0LiBJdCYjMzk7cyBzYWZlIHRvIHNheSwgdGhhdCYjMzk7cyB0aGUga2V5IHN5bWJvbCB0byBsb29rIGF0IGhlcmUsIGJlY2F1c2UgaWYgd2UmIzM5O3JlIHdvcnJpZWQgYWJvdXQgaW5saW5pbmcsIHdlIHNob3VsZCBiZSBtb3N0IHdvcnJpZWQgYWJvdXQgaXQmIzM5O3MgY2FsbHMuCgpTdGlsbCwgbGV0JiMzOTtzIGp1c3QgbWFrZSAqY2VydGFpbiogdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgY2FsbGVycy4gQWx3YXlzIGEgZ29vZCBwcmFjdGljZSB0byBkb3VibGUtY2hlY2sgdGhlc2UgYXNzdW1wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZpbmRfcHJldl9maGRyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTY9c3RhdGljIGludFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjM5NzpmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtMzk4LXtcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM9NDQ2PWludCBuZl9jdF9mcmFnNl9nYXRoZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcilcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDYyLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjQ2MzpcdGlmIChmaW5kX3ByZXZfZmhkcihza2IsIFx1MDAyNnByZXZoZHIsIFx1MDAyNm5ob2ZmLCBcdTAwMjZmaG9mZikgXHUwMDNjIDApXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDY0LVx0XHRyZXR1cm4gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODUwMQoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldCoqCgpPa2F5LCBzbyB0aGUgY29kZSBjaGFuZ2Ugc2VlbXMgZm9jdXNlZCBvbiBqdXN0IG9uZSBmdW5jdGlvbjogYG5mX2N0X2ZyYWc2X2dhdGhlcmAuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBhY3R1YWxseSB3b3J0aCBmb2N1c2luZyBvbiBmb3IgZnV6emluZy4gR2l2ZW4gdGhhdCBpdCBoYW5kbGVzIElQdjYgZnJhZ21lbnRzIHdpdGhpbiBuZXRmaWx0ZXIsIGl0JiMzOTtzIG5vdCBhIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb24sIGJ1dCBpdCYjMzk7cyAqc3BlY2lmaWMqIHRvIElQdjYgZnJhZ21lbnRhdGlvbiBpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbS4gVGhhdCBtYWtlcyBpdCBhIHNvbGlkIGNhbmRpZGF0ZS4KCk5vdywgd2hhdCBkZXBlbmRlbmNpZXMgZG9lcyB0aGlzIGZ1bmN0aW9uIGhhdmU/IExldCBtZSBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuLi5BaCwgaXQgbG9va3MgbGlrZSBgTkZfREVGUkFHX0lQVjZgIGlzIHRoZSBrZXkuIFRoYXQgc2hvdWxkIGJlIGFsbCBJIG5lZWQuCgpBbHJpZ2h0LCBoZXJl4oCZcyBteSBzdW1tYXJ5OiBUaGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcuIEl0IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gdGhlIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYywgYSBjcml0aWNhbCBjb3JlIG5ldHdvcmsgZnVuY3Rpb25hbGl0eS4gVGhlIGZvY3VzIHN5bWJvbCBpcyBgbmZfY3RfZnJhZzZfZ2F0aGVyYCwgYW5kIEkgc2hvdWxkIGVuYWJsZSBgTkZfREVGUkFHX0lQVjZgLiBUaGUgY2hhbmdlIGlzIGZ1bmN0aW9uYWwgYW5kIGRpcmVjdGx5IGltcGFjdHMgcmVhY2hhYmxlIG5ldHdvcmsgbG9naWMsIG1ha2luZyBpdCBoaWdoLXByaW9yaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfREVGUkFHX0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9jdF9mcmFnNl9nYXRoZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYnVnIGluIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYyBieSBjaGFuZ2luZyB0aGUgdHlwZSBvZiBwcmV2X25ob2ZmIGZyb20gdTggdG8gaW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfREVGUkFHX0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9jdF9mcmFnNl9nYXRoZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYnVnIGluIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYyBieSBjaGFuZ2luZyB0aGUgdHlwZSBvZiBwcmV2X25ob2ZmIGZyb20gdTggdG8gaW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIHRydW5jYXRpb24gYnVnIHdoZXJlIGBwcmV2X25ob2ZmYCB3YXMgZGVjbGFyZWQgYXMgYSBgdThgIGluc3RlYWQgb2YgYW4gYGludGAuIFdoZW4gcGFyc2luZyBJUHY2IGV4dGVuc2lvbiBoZWFkZXJzLCB0aGUgb2Zmc2V0IG9mIHRoZSBwcmV2aW91cyBoZWFkZXIgY291bGQgZXhjZWVkIDI1NSwgY2F1c2luZyBgcHJldl9uaG9mZmAgdG8gd3JhcCBhcm91bmQuIFRoaXMgdHJ1bmNhdGlvbiB3b3VsZCByZXN1bHQgaW4gYW4gaW5jb3JyZWN0IG9mZnNldCBiZWluZyByZXR1cm5lZCBhbmQgdXNlZCBsYXRlciwgcG90ZW50aWFsbHkgbGVhZGluZyB0byBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcyB3aGVuIGFjY2Vzc2luZyB0aGUgcGFja2V0IGRhdGEuIFRoaXMgaXMgYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaXNzdWUsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IGRldGVjdGVkIGJ5IEtBU0FOLiBJdCBkb2VzIG5vdCBpbnZvbHZlIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgb3IgbGVha2luZyB1bmluaXRpYWxpemVkIGtlcm5lbCBtZW1vcnkgdG8gdXNlciBzcGFjZSwgc28gS01TQU4gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeQplcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZApkZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpCmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLgoKQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46Ci0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZQogIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTgogIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVAKICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLgotIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLAogIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy4KClJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sCkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuCkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFkKc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3MKdGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi4KCkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0CnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLAphIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXMKdGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmcKdW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sCmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSwKY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuCgpTZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6CjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiCiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzCiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuCjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKICAgb3Igc3RydWN0IGZpZWxkcy4KMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcwogICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLgo0LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2VzcwogICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuCgpTZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjoKLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlcgogIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodAogIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS4KLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZAogIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC4KLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuCgpVc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlCmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiY2RhM2RiOWY2YjYwMjZlOTQ0YjVlNTMxZDliM2I1YzVmZjFkYWI5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMjIgMjI6MzI6MTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKaW5kZXggNTk5YzQ5YmYwYTBhZi4uYmU3MmM0MzQ2ZjhiNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYwpAQCAtMzk4LDcgJiM0MzszOTgsNyBAQCBmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpCiB7CiAJdTggbmV4dGhkciA9IGlwdjZfaGRyKHNrYiktJmd0O25leHRoZHI7CiAJY29uc3QgaW50IG5ldG9mZiA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpOwotCXU4IHByZXZfbmhvZmYgPSBuZXRvZmYgJiM0Mzsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpOwomIzQzOwlpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7CiAJaW50IHN0YXJ0ID0gbmV0b2ZmICYjNDM7IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7CiAJaW50IGxlbiA9IHNrYi0mZ3Q7bGVuIC0gc3RhcnQ7CiAJdTggcHJldmhkciA9IE5FWFRIRFJfSVBWNjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNzkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBQYWNrZXQgUmVhc3NlbWJseSBCdWcgRml4KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBtYWtpbmcgYSBzZWVtaW5nbHkgc21hbGwsIGJ1dCBwb3RlbnRpYWxseSBjcnVjaWFsLCBjaGFuZ2Ugd2l0aGluIHRoZSBJUHY2IG5ldGZpbHRlciBjb2RlLiBTcGVjaWZpY2FsbHksIHRoZSBgcHJldl9uaG9mZmAgdmFyaWFibGUgaW4gdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gd2l0aGluIGBuZl9jb25udHJhY2tfcmVhc20uY2AgaXMgYmVpbmcgc3dpdGNoZWQgZnJvbSBhIGB1OGAgdG8gYW4gYGludGAuIFJpZ2h0IGF3YXksIHRoaXMgc2NyZWFtcyBpbnRlZ2VyIG92ZXJmbG93IG9yIHRydW5jYXRpb24gaXNzdWUuIE15IGd1dCBmZWVsaW5nIGlzIHRoYXQgdGhpcyBpcyB0aGUgZml4IGZvciBleGFjdGx5IHRoYXQuCgpUaGUgZGVzY3JpcHRpb24gbWVudGlvbnMgdGhhdCBgcHJldl9uaG9mZmAgaXMgY2FsY3VsYXRlZCBhcyB0aGUgc3VtIG9mIGBuZXRvZmZgIGFuZCB0aGUgYG9mZnNldG9mYCBvZiB0aGUgYG5leHRoZHJgIGZpZWxkIHdpdGhpbiB0aGUgYGlwdjZoZHJgIHN0cnVjdHVyZS4gSWYgYG5ldG9mZmAgZ2V0cyBzdWZmaWNpZW50bHkgbGFyZ2UsIHRoZSByZXN1bHQgb2YgdGhhdCBhZGRpdGlvbiwgaWYgc3RvcmVkIGluIGFuIGB1OGAsIGNvdWxkIHdyYXAgYXJvdW5kLiBUaGF0IHdyYXBhcm91bmQgd291bGQgdGhlbiBsZWFkIHRvIGFuIGluY29ycmVjdCBvZmZzZXQgY2FsY3VsYXRpb24sIHJlc3VsdGluZyBpbiBlaXRoZXIgYW4gb3V0LW9mLWJvdW5kcyByZWFkIG9yIHdyaXRlLCBvciBhdCB0aGUgdmVyeSBsZWFzdCBhIHNlcmlvdXMgbG9naWMgZXJyb3IgaW4gcGFja2V0IHByb2Nlc3NpbmcuIFRoYW5rZnVsbHksIGl0JiMzOTtzIG5vdCBzaW1wbHkgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWUsIHRob3NlIGFyZSBmYXIgbW9yZSBjaGFsbGVuZ2luZyB0byB0cmFjayBkb3duIQoKTm93LCBiZWZvcmUgSSBzaWduIG9mZiBvbiB0aGlzLCBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlIGxvb2sgYXQgdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqZXhhY3RseSogaG93IGBwcmV2X25ob2ZmYCBpcyB1c2VkIGRvd25zdHJlYW0gdG8gYmUgY29tcGxldGVseSBzdXJlIG9mIHRoZSBzY29wZSBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLiBJIHdhbnQgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc2Vzc21lbnQgb2YgdGhlIHByb2JsZW0gYW5kIGVuc3VyZSB0aGlzIHNvbHZlcyB0aGUgcHJvYmxlbSwgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgbmV3IG9uZXMuIEkmIzM5O2xsIGNoZWNrIGhvdyBpdCYjMzk7cyB1c2VkIHRvIGlkZW50aWZ5IGZyYWdtZW50ZWQgaGVhZGVycyBhbmQgZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IG9mZnNldCBmb3IgcmVhc3NlbWJseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmluZF9wcmV2X2ZoZHImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTM5Nj1zdGF0aWMgaW50XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6Mzk3OmZpbmRfcHJldl9maGRyKHN0cnVjdCBza19idWZmICpza2IsIHU4ICpwcmV2aGRycCwgaW50ICpwcmV2aG9mZiwgaW50ICpmaG9mZilcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy0zOTgte1xuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz00NDY9aW50IG5mX2N0X2ZyYWc2X2dhdGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy00NjItXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6NDYzOlx0aWYgKGZpbmRfcHJldl9maGRyKHNrYiwgXHUwMDI2cHJldmhkciwgXHUwMDI2bmhvZmYsIFx1MDAyNmZob2ZmKSBcdTAwM2MgMClcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy00NjQtXHRcdHJldHVybiAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTI2CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkFuYWx5emluZyB0aGUgYGZpbmRfcHJldl9maGRyYCBGdW5jdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYGZpbmRfcHJldl9maGRyYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2Ugd2l0aGluIHRoZSBicm9hZGVyIGNvbnRleHQuIFdoYXQmIzM5O3MgaXQgbG9va2luZyBmb3I/IFByZXN1bWFibHksIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBzb21lIGRhdGEgc3RydWN0dXJlIHRoYXQgaW52b2x2ZXMgaGVhZGVycyDigJMgbGlrZWx5IHNvbWUga2luZCBvZiBmaWxlIGZvcm1hdCBvciBkYXRhIHN0cmVhbSB3aXRoIGEgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbi4gVGhlICYjMzQ7cHJldiYjMzQ7IGluIHRoZSBuYW1lIHN1Z2dlc3RzIGl0JiMzOTtzIHNlYXJjaGluZyBmb3IgYSBwcmV2aW91cywgb3IgcHJlY2VkaW5nLCBoZWFkZXIuIEkmIzM5O2xsIG5lZWQgdG8gaW1tZWRpYXRlbHkgc3RhcnQgY29uc2lkZXJpbmcgcG9zc2libGUgZWRnZSBjYXNlczogV2hhdCBoYXBwZW5zIGlmIHRoZXJlICppc24mIzM5O3QqIGEgcHJldmlvdXMgaGVhZGVyPyBJcyB0aGVyZSBhIGRlc2lnbmF0ZWQgJiMzNDtzdGFydCYjMzQ7IG9yICYjMzQ7ZW5kJiMzNDsgbWFya2VyLCBvciBkb2VzIGl0IHJlbHkgb24gb2Zmc2V0cyBvciBzcGVjaWZpYyBieXRlIHNlcXVlbmNlcz8gQXJlIHRoZXJlIHBvdGVudGlhbCBlcnJvciBjb25kaXRpb25zPyBUaGlua2luZyBhaGVhZCwgSSBuZWVkIHRvIGtub3cgaG93IGl0IGhhbmRsZXMgdGhlbS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGZvciBhbnkgcmV0dXJuIHZhbHVlcyB0aGF0IG1pZ2h0IGluZGljYXRlIHN1Y2Nlc3MsIGZhaWx1cmUsIG9yIGEgc3BlY2lhbCAmIzM0O25vdCBmb3VuZCYjMzQ7IHNjZW5hcmlvLiBJIGFsc28gbmVlZCB0byBjb25zaWRlciBwb3RlbnRpYWwgY29uY3VycmVuY3kgaXNzdWVzLiBJcyB0aGUgZnVuY3Rpb24gdGhyZWFkLXNhZmU/IERvZXMgaXQgYXNzdW1lIHNpbmdsZS10aHJlYWRlZCBhY2Nlc3MsIG9yIGRvZXMgaXQgaGF2ZSBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcz8gQSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGlzIGNydWNpYWwuIEFyZSB0aGV5IHBvaW50ZXJzLCByZWZlcmVuY2VzLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gV2hhdCBkYXRhIHR5cGVzIGFyZSBpbnZvbHZlZD8gQXJlIHRoZXJlIGFueSBpbnZhcmlhbnRzIG9yIGFzc3VtcHRpb25zIGFib3V0IHRoZSBpbnB1dCBkYXRhIHRoYXQgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBJJiMzOTtsbCBwcm9iYWJseSBiZSBhYmxlIHRvIGRldGVybWluZSBhbGwgb2YgdGhpcyBqdXN0IGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCB0aGUgZnVuY3Rpb24gZG9lcy4gSSYjMzk7bSBrZWVuIHRvIGdldCB0byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscywgSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgYXJndW1lbnRzIGFuZCByZXR1cm4gdG8gdGhvc2UgY29uc2lkZXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzk2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzOTY6XHRzdGF0aWMgaW50XG4gMzk3Olx0ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxuIDM5ODpcdHtcbiAzOTk6XHRcdHU4IG5leHRoZHIgPSBpcHY2X2hkcihza2IpLVx1MDAzZW5leHRoZHI7XG4gNDAwOlx0XHRjb25zdCBpbnQgbmV0b2ZmID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7XG4gNDAxOlx0XHRpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XG4gNDAyOlx0XHRpbnQgc3RhcnQgPSBuZXRvZmYgJiM0Mzsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcbiA0MDM6XHRcdGludCBsZW4gPSBza2ItXHUwMDNlbGVuIC0gc3RhcnQ7XG4gNDA0Olx0XHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xuIDQwNTpcdFxuIDQwNjpcdFx0d2hpbGUgKG5leHRoZHIgIT0gTkVYVEhEUl9GUkFHTUVOVCkge1xuIDQwNzpcdFx0XHRzdHJ1Y3QgaXB2Nl9vcHRfaGRyIGhkcjtcbiA0MDg6XHRcdFx0aW50IGhkcmxlbjtcbiA0MDk6XHRcbiA0MTA6XHRcdFx0aWYgKCFpcHY2X2V4dF9oZHIobmV4dGhkcikpIHtcbiA0MTE6XHRcdFx0XHRyZXR1cm4gLTE7XG4gNDEyOlx0XHRcdH1cbiA0MTM6XHRcdFx0aWYgKG5leHRoZHIgPT0gTkVYVEhEUl9OT05FKSB7XG4gNDE0Olx0XHRcdFx0cHJfZGVidWcoXCYjMzQ7bmV4dCBoZWFkZXIgaXMgbm9uZVxcblwmIzM0Oyk7XG4gNDE1Olx0XHRcdFx0cmV0dXJuIC0xO1xuIDQxNjpcdFx0XHR9XG4gNDE3Olx0XHRcdGlmIChsZW4gXHUwMDNjIChpbnQpc2l6ZW9mKHN0cnVjdCBpcHY2X29wdF9oZHIpKSB7XG4gNDE4Olx0XHRcdFx0cHJfZGVidWcoXCYjMzQ7dG9vIHNob3J0XFxuXCYjMzQ7KTtcbiA0MTk6XHRcdFx0XHRyZXR1cm4gLTE7XG4gNDIwOlx0XHRcdH1cbiA0MjE6XHRcdFx0aWYgKHNrYl9jb3B5X2JpdHMoc2tiLCBzdGFydCwgXHUwMDI2aGRyLCBzaXplb2YoaGRyKSkpXG4gNDIyOlx0XHRcdFx0cmV0dXJuIC0xO1xuIDQyMzpcdFx0XHRpZiAobmV4dGhkciA9PSBORVhUSERSX0FVVEgpXG4gNDI0Olx0XHRcdFx0aGRybGVuID0gaXB2Nl9hdXRobGVuKFx1MDAyNmhkcik7XG4gNDI1Olx0XHRcdGVsc2VcbiA0MjY6XHRcdFx0XHRoZHJsZW4gPSBpcHY2X29wdGxlbihcdTAwMjZoZHIpO1xuIDQyNzpcdFxuIDQyODpcdFx0XHRwcmV2aGRyID0gbmV4dGhkcjtcbiA0Mjk6XHRcdFx0cHJldl9uaG9mZiA9IHN0YXJ0O1xuIDQzMDpcdFxuIDQzMTpcdFx0XHRuZXh0aGRyID0gaGRyLm5leHRoZHI7XG4gNDMyOlx0XHRcdGxlbiAtPSBoZHJsZW47XG4gNDMzOlx0XHRcdHN0YXJ0ICYjNDM7PSBoZHJsZW47XG4gNDM0Olx0XHR9XG4gNDM1Olx0XG4gNDM2Olx0XHRpZiAobGVuIFx1MDAzYyAwKVxuIDQzNzpcdFx0XHRyZXR1cm4gLTE7XG4gNDM4Olx0XG4gNDM5Olx0XHQqcHJldmhkcnAgPSBwcmV2aGRyO1xuIDQ0MDpcdFx0KnByZXZob2ZmID0gcHJldl9uaG9mZjtcbiA0NDE6XHRcdCpmaG9mZiA9IHN0YXJ0O1xuIDQ0MjpcdFxuIDQ0MzpcdFx0cmV0dXJuIDA7XG4gNDQ0Olx0fVxuIDQ0NTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDUwCgkJCQkJCQlvdXRwdXQ6IDE2MQoJCQkJCQkJdGhvdWdodHM6IDE1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQnVnKioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIGRlYWwuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgaXNzdWUgYm9pbHMgZG93biB0byBhIGNsYXNzaWMgaW50ZWdlciB0cnVuY2F0aW9uIHByb2JsZW0uIEkgc2VlIHRoYXQgb24gbGluZSA0MjksIGBwcmV2X25ob2ZmYCwgYSBgdThgLCBpcyBiZWluZyBhc3NpZ25lZCBhIHZhbHVlIGZyb20gYHN0YXJ0YCwgd2hpY2ggaXMgYW4gYGludGAuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHByb2JsZW0gYmVnaW5zLiBTaW5jZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGRpZmZlcmVudCBpbnRlZ2VyIHNpemVzLCB0aGUgYXNzaWdubWVudCBjYXVzZXMgYHN0YXJ0YCB0byBiZSB0cnVuY2F0ZWQgZG93biB0byA4IGJpdHMuCgpUaGVuLCB0aGF0IHRydW5jYXRlZCB2YWx1ZSBpcyBkaXJlY3RseSBhc3NpZ25lZCB0byBgKnByZXZob2ZmYCBsYXRlciBvbi4gVGhlIHRyb3VibGUgaXMsIHRoYXQgaW5jb3JyZWN0IG9mZnNldCBpcyB0aGVuIHVzZWQgZG93bnN0cmVhbS4gVGhpcyBtZWFucyBhbnkgc3Vic2VxdWVudCBvcGVyYXRpb25zIHVzaW5nIGAqcHJldmhvZmZgIHRvIGFjY2VzcyBhIHByZXZpb3VzIGhlYWRlciBhcmUgbGlrZWx5IHRvIGdvIGNvbXBsZXRlbHkgaGF5d2lyZSwgcmVzdWx0aW5nIGluIG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzLiBUaGlzIGlzIG5vdCBhYm91dCB1bmluaXRpYWxpemVkIG1lbW9yeSBidXQgcmF0aGVyIGEgY2xlYXIgaW50ZWdlciB0cnVuY2F0aW9uIGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBJJiMzOTtkIGV4cGVjdCBLQVNBTiB0byBmbGFnIHRoaXMgd2l0aCBhbiBlcnJvciBhcyBpdCBzaG91bGQgYmUgYWJsZSB0byBkZXRlY3QgdGhlIHJlc3VsdGluZyBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gQmFzZWQgb24gdGhpcywgSSYjMzk7bSBjb25maWRlbnQgd2UgY2FuIGNsYXNzaWZ5IHRoaXMgYXMgYSBmYWxzZSBwb3NpdGl2ZSBmb3IgTmVlZHNLTVNBTi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgdHJ1bmNhdGlvbiBidWcgd2hlcmUgYHByZXZfbmhvZmZgIHdhcyBkZWNsYXJlZCBhcyBhIGB1OGAgaW5zdGVhZCBvZiBhbiBgaW50YC4gV2hlbiBwYXJzaW5nIElQdjYgZXh0ZW5zaW9uIGhlYWRlcnMsIHRoZSBvZmZzZXQgb2YgdGhlIHByZXZpb3VzIGhlYWRlciBjb3VsZCBleGNlZWQgMjU1LCBjYXVzaW5nIGBwcmV2X25ob2ZmYCB0byB3cmFwIGFyb3VuZC4gVGhpcyB0cnVuY2F0aW9uIHdvdWxkIHJlc3VsdCBpbiBhbiBpbmNvcnJlY3Qgb2Zmc2V0IGJlaW5nIHJldHVybmVkIGFuZCB1c2VkIGxhdGVyLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzIHdoZW4gYWNjZXNzaW5nIHRoZSBwYWNrZXQgZGF0YS4gVGhpcyBpcyBhbiBvdXQtb2YtYm91bmRzIGFjY2VzcyBpc3N1ZSwgd2hpY2ggaXMgZWZmZWN0aXZlbHkgZGV0ZWN0ZWQgYnkgS0FTQU4uIEl0IGRvZXMgbm90IGludm9sdmUgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSBvciBsZWFraW5nIHVuaW5pdGlhbGl6ZWQga2VybmVsIG1lbW9yeSB0byB1c2VyIHNwYWNlLCBzbyBLTVNBTiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMyOjExLjg2NjAyMDQyNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MzAzMDg1OTY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9ERUZSQUdfSVBWNlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2N0X2ZyYWc2X2dhdGhlclwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjoxMS44NjYwMjc3MjRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNDk1Njg0MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiY2RhM2RiOWY2YjYwMjZlOTQ0YjVlNTMxZDliM2I1YzVmZjFkYWI5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDIyIDIyOjMyOjEwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xcbmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0XFxuLS0tIGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXFxuKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXFxuQEAgLTM5OCw3ICszOTgsNyBAQCBmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXFxuIHtcXG4gXFx0dTggbmV4dGhkciA9IGlwdjZfaGRyKHNrYiktXFx1MDAzZW5leHRoZHI7XFxuIFxcdGNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTtcXG4tXFx0dTggcHJldl9uaG9mZiA9IG5ldG9mZiArIG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcXG4rXFx0aW50IHByZXZfbmhvZmYgPSBuZXRvZmYgKyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XFxuIFxcdGludCBzdGFydCA9IG5ldG9mZiArIHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7XFxuIFxcdGludCBsZW4gPSBza2ItXFx1MDAzZWxlbiAtIHN0YXJ0O1xcbiBcXHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjoxMy4yMTYzOTMwNDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMzgwNjE5ODAzOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfREVGUkFHX0lQVjZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jdF9mcmFnNl9nYXRoZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBiY2RhM2RiOWY2YjYwMjZlOTQ0YjVlNTMxZDliM2I1YzVmZjFkYWI5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjIgMjI6MzI6MTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbisrKyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuQEAgLTM5OCw3ICszOTgsNyBAQCBmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXG4ge1xuIFx0dTggbmV4dGhkciA9IGlwdjZfaGRyKHNrYiktXHUwMDNlbmV4dGhkcjtcbiBcdGNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTtcbi1cdHU4IHByZXZfbmhvZmYgPSBuZXRvZmYgKyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XG4rXHRpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiArIG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcbiBcdGludCBzdGFydCA9IG5ldG9mZiArIHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7XG4gXHRpbnQgbGVuID0gc2tiLVx1MDAzZWxlbiAtIHN0YXJ0O1xuIFx0dTggcHJldmhkciA9IE5FWFRIRFJfSVBWNjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMyOjEzLjIxNjM5NTcxOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNTE3ODk2MDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIENyaXRpY2FsIE5ldGZpbHRlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2guIEl0IHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgYnV0IGl04oCZcyB0YXJnZXRpbmcgYSBwb3RlbnRpYWxseSBuYXN0eSBwcm9ibGVtIGluIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNgLiBUaGV5J3JlIGNoYW5naW5nIHRoZSB0eXBlIG9mIGBwcmV2X25ob2ZmYCBpbiBgZmluZF9wcmV2X2ZoZHJgIGZyb20gYHU4YCB0byBgaW50YC4gVGhlIGp1c3RpZmljYXRpb24gaXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFuIG92ZXJmbG93IG9yIHRydW5jYXRpb24gaXNzdWUuIFNwZWNpZmljYWxseSwgdGhlIGNhbGN1bGF0aW9uIGBuZXRvZmYgKyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcilgIGNvdWxkLCB3aXRoIGEgc3VmZmljaWVudGx5IGxhcmdlIGBuZXRvZmZgIHZhbHVlLCBleGNlZWQgdGhlIG1heGltdW0gdmFsdWUgcmVwcmVzZW50YWJsZSBieSBhIGB1OGAgKDI1NSkuIFRoYXQgbWVhbnMgd2UgY291bGQgYmUgbG9zaW5nIGNydWNpYWwgZGF0YSBpbiBhIHJlYXNzZW1ibHkgY29udGV4dC4gVGhpcyBpcyB0aGUga2luZCBvZiBzdWJ0bGUgYnVnIHRoYXQgY291bGQgbGVhZCB0byBwYWNrZXQgY29ycnVwdGlvbiBvciwgd29yc2UsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgbmVlZHMgdG8gYmUgdGhvcm91Z2hseSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGUgZml4IGlzIGNvcnJlY3QsIGFuZCBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMuIExldCdzIGRpZyBpbnRvIHRoYXQgYGZpbmRfcHJldl9maGRyYCBmdW5jdGlvbiBhbmQgc2VlIHdoYXQgdGhlIGltcGxpY2F0aW9ucyBhcmUgb2YgdGhpcyBjaGFuZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwODIsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjoyNS43MzQyOTU2ODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA0ODQzMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmluZF9wcmV2X2ZoZHJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTY9c3RhdGljIGludFxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzozOTc6ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy0zOTgte1xcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTQ0Nj1pbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDYyLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NjM6XFx0aWYgKGZpbmRfcHJldl9maGRyKHNrYiwgXFx1MDAyNnByZXZoZHIsIFxcdTAwMjZuaG9mZiwgXFx1MDAyNmZob2ZmKSBcXHUwMDNjIDApXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2NC1cXHRcXHRyZXR1cm4gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzI6MjUuODE0Nzg0NDI5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkxNzEyOTg3NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGbG93IG9mIElQdjYgRnJhZ21lbnQgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBJIHNlZSBgZmluZF9wcmV2X2ZoZHJgIGJlaW5nIGNhbGxlZCBieSBgbmZfY3RfZnJhZzZfZ2F0aGVyYC4gVGhhdCdzIGludGVyZXN0aW5nLCBidXQgbm90IHRoZSB3aG9sZSBwaWN0dXJlLiBJIGtub3cgYG5mX2N0X2ZyYWc2X2dhdGhlcmAgaXMgZWl0aGVyIGV4cG9ydGVkIG9yIGdsb2JhbGx5IGFjY2Vzc2libGUsIG1lYW5pbmcgaXQncyBhIGtleSBmdW5jdGlvbiBmb3Igc29tZXRoaW5nLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJXaGVyZSAqZWxzZSogaXMgdGhpcyBmdW5jdGlvbiB1c2VkP1wiIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0IHdpdGhpbiB0aGUgbGFyZ2VyIElQdjYgZnJhZ21lbnQgcHJvY2Vzc2luZyBmcmFtZXdvcmsuIFBpbnBvaW50aW5nIHRoZSBjYWxsIHNpdGVzIG9mIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGlzIHRoZSBsb2dpY2FsIG5leHQgc3RlcC4gVGhhdCdsbCBwcm92aWRlIGluc2lnaHQgaW50byBpdHMgcm9sZSBhbmQgcHVycG9zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3MiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMyOjU0Ljk4NjA4NTIxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODE2NjgzNDA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2N0X2ZyYWc2X2dhdGhlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL2lwdjYvbmZfZGVmcmFnX2lwdjYuaD0xMj12b2lkIG5mX2N0X2ZyYWc2X2NsZWFudXAodm9pZCk7XFxuaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL2lwdjYvbmZfZGVmcmFnX2lwdjYuaDoxMzppbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpO1xcbmluY2x1ZGUvbmV0L25ldGZpbHRlci9pcHY2L25mX2RlZnJhZ19pcHY2LmgtMTQtXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmM9MTc0PXN0YXRpYyB1bnNpZ25lZCBpbnQgbmZfY3RfYnJfZGVmcmFnNihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jLTE4OS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmM6MTkwOlxcdGVyciA9IG5mX2N0X2ZyYWc2X2dhdGhlcihzdGF0ZS1cXHUwMDNlbmV0LCBza2IsXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jLTE5MS1cXHRcXHRcXHRcXHQgSVBfREVGUkFHX0NPTk5UUkFDS19CUklER0VfSU4gKyB6b25lX2lkKTtcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTc9ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ0NS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6NDQ2OmludCBuZl9jdF9mcmFnNl9nYXRoZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcilcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDQ3LXtcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy01MDItfVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo1MDM6RVhQT1JUX1NZTUJPTF9HUEwobmZfY3RfZnJhZzZfZ2F0aGVyKTtcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNTA0LVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmM9NTI9c3RhdGljIHVuc2lnbmVkIGludCBpcHY2X2RlZnJhZyh2b2lkICpwcml2LFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmMtNjYtXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmM6Njc6XFx0ZXJyID0gbmZfY3RfZnJhZzZfZ2F0aGVyKHN0YXRlLVxcdTAwM2VuZXQsIHNrYixcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfZGVmcmFnX2lwdjZfaG9va3MuYy02OC1cXHRcXHRcXHRcXHQgbmZfY3Q2X2RlZnJhZ191c2VyKHN0YXRlLVxcdTAwM2Vob29rLCBza2IpKTtcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX292cy5jPTE1MT1pbnQgbmZfY3RfaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19vdnMuYy0xNzEtXFx0XFx0bWVtc2V0KElQNkNCKHNrYiksIDAsIHNpemVvZihzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0pKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19vdnMuYzoxNzI6XFx0XFx0ZXJyID0gbmZfY3RfZnJhZzZfZ2F0aGVyKG5ldCwgc2tiLCB1c2VyKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19vdnMuYy0xNzMtXFx0XFx0aWYgKGVycikge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjo1Ny44MDI3NzI1NThaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTQzOTI5MjgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkgd2VyZSB0aGlua2luZyB0aHJvdWdoIHRoZSBwcm9ibGVtOlxuXG4qKkV4YW1pbmluZyBJUHY2IE5ldGZpbHRlciBDb25uZWN0aW9uIFRyYWNraW5nIERlZnJhZ21lbnRhdGlvbioqXG5cbkFscmlnaHQsIHRoZSByZWxldmFudCBjb2RlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jYC4gVGhhdCB0ZWxscyBtZSByaWdodCBhd2F5IHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgSVB2NiBuZXRmaWx0ZXIncyBjb25uZWN0aW9uIHRyYWNraW5nLCBzcGVjaWZpY2FsbHkgdGhlIGRlZnJhZ21lbnRhdGlvbiBhc3BlY3QuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMsIEkgbmVlZCB0byBrbm93IHVuZGVyIHdoYXQgY29uZGl0aW9ucyB0aGlzIGNvZGUgaXMgZW5hYmxlZC4gS25vd2luZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpbGwgYWxsb3cgbWUgdG8gdW5kZXJzdGFuZCB3aGljaCBmZWF0dXJlcyBkZXBlbmQgb24gdGhpcyBwYXJ0IG9mIHRoZSBjb2RlLiBUaGlzIHdpbGwgaW5mb3JtIG15IGludmVzdGlnYXRpb24gYnkgc2V0dGluZyB0aGUgc3RhZ2UgZm9yIHdoZXJlIGFuZCB3aHkgdGhpcyBjb2RlIHBhdGggd291bGQgYmUgcmVhY2hlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgzMywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjAxLjM0NjcxNDMzMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDkxNDI2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9jb25udHJhY2tfcmVhc21cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZT0xMj1vYmotJChDT05GSUdfSVA2X05GX05BVCkgKz0gaXA2dGFibGVfbmF0Lm9cXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZS0xNC0jIGRlZnJhZ1xcbm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZToxNTpuZl9kZWZyYWdfaXB2Ni15IDo9IG5mX2RlZnJhZ19pcHY2X2hvb2tzLm8gbmZfY29ubnRyYWNrX3JlYXNtLm9cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvTWFrZWZpbGUtMTYtb2JqLSQoQ09ORklHX05GX0RFRlJBR19JUFY2KSArPSBuZl9kZWZyYWdfaXB2Ni5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjAxLjQxMTYzMjQ4OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NzQyNTg2NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0d29yayBGcmFnbWVudGF0aW9uIEJ1ZyBGaXgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGZpeGluZyBzb21ldGhpbmcgcmVsYXRlZCB0byBJUHY2IGRlZnJhZ21lbnRhdGlvbiB3aXRoaW4gdGhlIGNvbm5lY3Rpb24gdHJhY2tpbmcgY29kZS4gU3BlY2lmaWNhbGx5LCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gYENPTkZJR19ORl9ERUZSQUdfSVBWNmAgaXMgYSBoYXJkIHJlcXVpcmVtZW50IGZvciB0aGlzIGNoYW5nZSwgbWVhbmluZyBpdCdzIG9ubHkgcmVsZXZhbnQgaWYgSVB2NiBkZWZyYWcgaXMgZW5hYmxlZC4gVGhlIGVudHJ5IHBvaW50IGZvciB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgdGhlIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGZ1bmN0aW9uLiBUaGUgY29kZSBtZW50aW9ucyBhIGZpeCBmb3IgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgaW4gYHByZXZfbmhvZmZgIHdoZW4gZGVhbGluZyB3aXRoIGEgbGFyZ2UgYG5ldG9mZmAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBhIGZ1bmN0aW9uYWwgYnVnLCBzb21ldGhpbmcgdGhhdCBjb3VsZCBpbXBhY3QgcmVhbC13b3JsZCB0cmFmZmljLCBzbyB0aGlzIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBNeSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBgbmZfY3RfZnJhZzZfZ2F0aGVyYCBzeW1ib2wsIGFzIHRoYXQncyB3aGVyZSB0aGUgY29yZSBsb2dpYyByZXNpZGVzLiBCZWZvcmUgSSBkaXZlIGludG8gdGhlIGNvZGUgaXRzZWxmLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgYW5kIG1ha2Ugc3VyZSBgTkZfREVGUkFHX0lQVjZgIGRvZXNuJ3QgaGF2ZSBhbnkgaGlkZGVuIGRlcGVuZGVuY2llcyBvciBwcmVyZXF1aXNpdGVzIHRoYXQgSSBuZWVkIHRvIGJlIGF3YXJlIG9mLiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBjYXNjYWRpbmcgaW1wbGljYXRpb25zIHRvIGNvbnNpZGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjIzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjA1LjI4NTg5NDMxM1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MDc3MjYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORl9ERUZSQUdfSVBWNlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0zMDA9ZW5kbWVudVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTMwMS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzozMDI6Y29uZmlnIE5GX0RFRlJBR19JUFY2XFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMzAzLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjA1LjM4OTk3NjI0NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODk4MTg2NDkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyB0cmlzdGF0ZSBvcHRpb24sIGFuZCBpdCdzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgc2VlbXMgc2VsZi1jb250YWluZWQg4oCTIG5vIG9idmlvdXMgZGVwZW5kZW5jaWVzIGF0IGZpcnN0IGdsYW5jZS4gQnV0IHRoZSBsb2NhdGlvbiwgdHVja2VkIGF3YXkgaW4gYG5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnYCwgaXMgbWFraW5nIG1lIHBhdXNlLiBUaGF0IHN1Z2dlc3RzIGl0IG1pZ2h0IGhhdmUgYSBjb3VwbGUgb2YgaW1wbGllZCBkZXBlbmRlbmNpZXMuIEl0J3MgYWxtb3N0IGNlcnRhaW4gaXQgbmVlZHMgYElQVjZgLCBidXQgYE5FVEZJTFRFUmAgZmVlbHMgbGlrZWx5IHRvbywgZ2l2ZW4gdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuIEp1c3QgdG8gYmUgY29tcGxldGVseSBzdXJlLCBJJ20gZ29pbmcgdG8gcXVpY2tseSBvcGVuIHVwIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ2AgYW5kIHRha2UgYSBsb29rIGZvciBhbnkgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMgYXQgdGhlIGZpbGUgbGV2ZWwuIEEgcXVpY2sgc2NhbiB3aWxsIGNvbmZpcm0gb3IgY2xhcmlmeSB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBvcHRpb24uIEkgbmVlZCB0byBiZSBzdXJlIGJlZm9yZSBJIG1ha2UgYW55IGFzc3VtcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Njk2LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzM6MTUuMjg4MTY1NDI1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDg5ODM0NjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz02PW1lbnUgXFxcIklQdjY6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uXFxcIlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjc6XFx0ZGVwZW5kcyBvbiBJTkVUIFxcdTAwMjZcXHUwMDI2IElQVjYgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctOC1cXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTEwPWNvbmZpZyBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTEtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBJUDYgdGFibGVzIHN1cHBvcnRcXFwiXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTI6XFx0ZGVwZW5kcyBvbiBJTkVUIFxcdTAwMjZcXHUwMDI2IElQVjYgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSX1hUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTM6XFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfWFRBQkxFU1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE0LVxcdGRlZmF1bHRcXHRtIGlmIE5FVEZJTFRFUl9YVEFCTEVTX0xFR0FDWVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9NDM9Y29uZmlnIE5GVF9EVVBfSVBWNlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTQ0LVxcdHRyaXN0YXRlIFxcXCJJUHY2IG5mX3RhYmxlcyBwYWNrZXQgZHVwbGljYXRpb24gc3VwcG9ydFxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo0NTpcXHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgTkZfQ09OTlRSQUNLXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctNDYtXFx0c2VsZWN0IE5GX0RVUF9JUFY2XFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz02MT1jb25maWcgTkZfRFVQX0lQVjZcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy02Mi1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIElQdjYgcGFja2V0IGR1cGxpY2F0aW9uIHRvIGFsdGVybmF0ZSBkZXN0aW5hdGlvblxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo2MzpcXHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgTkZfQ09OTlRSQUNLXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctNjQtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9ODA9Y29uZmlnIElQNl9ORl9JUFRBQkxFU1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJJUDYgdGFibGVzIHN1cHBvcnQgKHJlcXVpcmVkIGZvciBmaWx0ZXJpbmcpXFxcIlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjgyOlxcdGRlcGVuZHMgb24gSU5FVCBcXHUwMDI2XFx1MDAyNiBJUFY2XFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctODMtXFx0c2VsZWN0IE5FVEZJTFRFUl9YVEFCTEVTXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz05Nj1jb25maWcgSVA2X05GX01BVENIX0FIXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctOTctXFx0dHJpc3RhdGUgJ1xcXCJhaFxcXCIgbWF0Y2ggc3VwcG9ydCdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo5ODpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTk5LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTEwND1jb25maWcgSVA2X05GX01BVENIX0VVSTY0XFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTA1LVxcdHRyaXN0YXRlICdcXFwiZXVpNjRcXFwiIGFkZHJlc3MgY2hlY2snXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTA2OlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTA3LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTExND1jb25maWcgSVA2X05GX01BVENIX0ZSQUdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXFx0dHJpc3RhdGUgJ1xcXCJmcmFnXFxcIiBGcmFnbWVudGF0aW9uIGhlYWRlciBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjExNjpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTExNy1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMjM9Y29uZmlnIElQNl9ORl9NQVRDSF9PUFRTXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTI0LVxcdHRyaXN0YXRlICdcXFwiaGJoXFxcIiBob3AtYnktaG9wIGFuZCBcXFwiZHN0XFxcIiBvcHRzIGhlYWRlciBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjEyNTpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEyNi1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMzI9Y29uZmlnIElQNl9ORl9NQVRDSF9ITFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEzMy1cXHR0cmlzdGF0ZSAnXFxcImhsXFxcIiBob3BsaW1pdCBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjEzNDpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEzNS1cXHRzZWxlY3QgTkVURklMVEVSX1hUX01BVENIX0hMXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xNTA9Y29uZmlnIElQNl9ORl9NQVRDSF9NSFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1MS1cXHR0cmlzdGF0ZSAnXFxcIm1oXFxcIiBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE1MjpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1My1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xNTg9Y29uZmlnIElQNl9ORl9NQVRDSF9SUEZJTFRFUlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1OS1cXHR0cmlzdGF0ZSAnXFxcInJwZmlsdGVyXFxcIiByZXZlcnNlIHBhdGggZmlsdGVyIG1hdGNoIHN1cHBvcnQnXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTYwOlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTYxOlxcdGRlcGVuZHMgb24gSVA2X05GX01BTkdMRSB8fCBJUDZfTkZfUkFXIHx8IE5GVF9DT01QQVRcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNjItXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTY5PWNvbmZpZyBJUDZfTkZfTUFUQ0hfUlRcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNzAtXFx0dHJpc3RhdGUgJ1xcXCJydFxcXCIgUm91dGluZyBoZWFkZXIgbWF0Y2ggc3VwcG9ydCdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxNzE6XFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNzItXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTc4PWNvbmZpZyBJUDZfTkZfTUFUQ0hfU1JIXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTc5LVxcdHRyaXN0YXRlICdcXFwic3JoXFxcIiBTZWdtZW50IFJvdXRpbmcgaGVhZGVyIG1hdGNoIHN1cHBvcnQnXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTgwOlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTgxLVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTE4OD1jb25maWcgSVA2X05GX1RBUkdFVF9ITFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE4OS1cXHR0cmlzdGF0ZSAnXFxcIkhMXFxcIiBob3BsaW1pdCB0YXJnZXQgc3VwcG9ydCdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxOTA6XFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRUQgXFx1MDAyNlxcdTAwMjYgSVA2X05GX01BTkdMRVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE5MS1cXHRzZWxlY3QgTkVURklMVEVSX1hUX1RBUkdFVF9ITFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTk3PWNvbmZpZyBJUDZfTkZfRklMVEVSXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xOTktXFx0ZGVmYXVsdCBtIGlmIE5FVEZJTFRFUl9BRFZBTkNFRD1uIHx8IElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMDA6XFx0ZGVwZW5kcyBvbiBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjAxLVxcdHRyaXN0YXRlXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yMDk9Y29uZmlnIElQNl9ORl9UQVJHRVRfUkVKRUNUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEwLVxcdHRyaXN0YXRlIFxcXCJSRUpFQ1QgdGFyZ2V0IHN1cHBvcnRcXFwiXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjExOlxcdGRlcGVuZHMgb24gSVA2X05GX0ZJTFRFUiB8fCBORlRfQ09NUEFUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEyLVxcdHNlbGVjdCBORl9SRUpFQ1RfSVBWNlxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjIxPWNvbmZpZyBJUDZfTkZfVEFSR0VUX1NZTlBST1hZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjIyLVxcdHRyaXN0YXRlIFxcXCJTWU5QUk9YWSB0YXJnZXQgc3VwcG9ydFxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMjM6XFx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjI0LVxcdHNlbGVjdCBORVRGSUxURVJfU1lOUFJPWFlcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTIzND1jb25maWcgSVA2X05GX01BTkdMRVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjM2LVxcdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9biB8fCBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjM3OlxcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIzOC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yNDU9Y29uZmlnIElQNl9ORl9SQVdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yNDYtXFx0dHJpc3RhdGUgICdyYXcgdGFibGUgc3VwcG9ydCAocmVxdWlyZWQgZm9yIFRSQUNFKSdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyNDc6XFx0ZGVwZW5kcyBvbiBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjQ4LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI1Nz1jb25maWcgSVA2X05GX1NFQ1VSSVRZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjU4LVxcdHRyaXN0YXRlIFxcXCJTZWN1cml0eSB0YWJsZVxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyNTk6XFx0ZGVwZW5kcyBvbiBTRUNVUklUWVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI2MDpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI2MTpcXHRkZXBlbmRzIG9uIElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yNjItXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjY4PWNvbmZpZyBJUDZfTkZfTkFUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjY5LVxcdHRyaXN0YXRlIFxcXCJpcDZ0YWJsZXMgTkFUIHN1cHBvcnRcXFwiXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcwOlxcdGRlcGVuZHMgb24gTkZfQ09OTlRSQUNLXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcxOlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcyOlxcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTI3My1cXHRzZWxlY3QgTkZfTkFUXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yODI9Y29uZmlnIElQNl9ORl9UQVJHRVRfTUFTUVVFUkFERVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjg0LVxcdHNlbGVjdCBORVRGSUxURVJfWFRfVEFSR0VUX01BU1FVRVJBREVcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyODU6XFx0ZGVwZW5kcyBvbiBJUDZfTkZfTkFUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjg2LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI5MD1jb25maWcgSVA2X05GX1RBUkdFVF9OUFRcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yOTEtXFx0dHJpc3RhdGUgXFxcIk5QVCAoTmV0d29yayBQcmVmaXggdHJhbnNsYXRpb24pIHRhcmdldCBzdXBwb3J0XFxcIlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI5MjpcXHRkZXBlbmRzIG9uIElQNl9ORl9OQVQgfHwgTkZUX0NPTVBBVFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTI5My1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjE2LjA5NzE1MzMxNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODQxNTg2NDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgYE5GX0RFRlJBR19JUFY2YCBEZXBlbmRlbmN5IGFuZCBGdW5jdGlvbiBDYWxsZXJzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYE5GX0RFRlJBR19JUFY2YCBhbmQgd2hlcmUgaXQgbGl2ZXMsIHdoaWNoIGlzIGluIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBkZXBlbmRlbmN5OiBgSU5FVCBcdTAwMjZcdTAwMjYgSVBWNiBcdTAwMjZcdTAwMjYgTkVURklMVEVSYC4gTm8gc3VycHJpc2VzIHRoZXJlOyBzdGFuZGFyZCBzdHVmZiwgcmVhbGx5LiBTbywgSSBuZWVkIHRvIGJlIHN1cmUgdG8gbGlzdCBgTkZfREVGUkFHX0lQVjZgIGFzIGEgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBvcHRpb24uIFRoYXQgcGFydCBpcyBzdHJhaWdodGZvcndhcmQuXG5cbk5vdywgbGV0J3MgY2lyY2xlIGJhY2sgdG8gYGZpbmRfcHJldl9maGRyYC4gSXQncyBhIGBzdGF0aWNgIGZ1bmN0aW9uLCBzbyB0aGUgY29tcGlsZXIgaXMgcHJvYmFibHkgZ29pbmcgdG8gdHJ5IGFuZCBpbmxpbmUgaXQgdG8gb3B0aW1pemUuIEkgbmVlZCB0byBrZWVwIHRoYXQgaW4gbWluZC4gVGhlIGRlY2xhcmF0aW9uIGl0c2VsZiBpczpcblxuYGBgY1xuc3RhdGljIGludFxuZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxuYGBgXG5cblRoZSBjcnVjaWFsIHRoaW5nIGhlcmUgaXMsIHdobyAqY2FsbHMqIHRoaXMgc3RhdGljIGZ1bmN0aW9uPyBMb29raW5nIGF0IHRoZSBjb2RlLCBpdCdzIGNhbGxlZCBieSBgbmZfY3RfZnJhZzZfZ2F0aGVyYC4gQW5kLCBvZiBjb3Vyc2UsIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGlzICpleHBvcnRlZCogbWVhbmluZyBpdCdzIHZpc2libGUgb3V0c2lkZSB0aGUgbG9jYWwgbW9kdWxlIGFuZCB0aGUga2VybmVsIGlzICpkZXBlbmRpbmcqIG9uIGl0LiBJdCdzIHNhZmUgdG8gc2F5LCB0aGF0J3MgdGhlIGtleSBzeW1ib2wgdG8gbG9vayBhdCBoZXJlLCBiZWNhdXNlIGlmIHdlJ3JlIHdvcnJpZWQgYWJvdXQgaW5saW5pbmcsIHdlIHNob3VsZCBiZSBtb3N0IHdvcnJpZWQgYWJvdXQgaXQncyBjYWxscy5cblxuU3RpbGwsIGxldCdzIGp1c3QgbWFrZSAqY2VydGFpbiogdGhlcmUgYXJlbid0IGFueSBvdGhlciBjYWxsZXJzLiBBbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIGRvdWJsZS1jaGVjayB0aGVzZSBhc3N1bXB0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzU3OCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNDoyNC41MTMwMjAwMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM2OTEwNjMyNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmaW5kX3ByZXZfZmhkclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTM5Nj1zdGF0aWMgaW50XFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjM5NzpmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTM5OC17XFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM9NDQ2PWludCBuZl9jdF9mcmFnNl9nYXRoZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcilcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy00NjItXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjQ2MzpcXHRpZiAoZmluZF9wcmV2X2ZoZHIoc2tiLCBcXHUwMDI2cHJldmhkciwgXFx1MDAyNm5ob2ZmLCBcXHUwMDI2ZmhvZmYpIFxcdTAwM2MgMClcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDY0LVxcdFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNDoyNS44ODIxNDAxMTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI1MDc0ODUzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldCoqXG5cbk9rYXksIHNvIHRoZSBjb2RlIGNoYW5nZSBzZWVtcyBmb2N1c2VkIG9uIGp1c3Qgb25lIGZ1bmN0aW9uOiBgbmZfY3RfZnJhZzZfZ2F0aGVyYC4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBhY3R1YWxseSB3b3J0aCBmb2N1c2luZyBvbiBmb3IgZnV6emluZy4gR2l2ZW4gdGhhdCBpdCBoYW5kbGVzIElQdjYgZnJhZ21lbnRzIHdpdGhpbiBuZXRmaWx0ZXIsIGl0J3Mgbm90IGEgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbiwgYnV0IGl0J3MgKnNwZWNpZmljKiB0byBJUHY2IGZyYWdtZW50YXRpb24gaW4gdGhlIG5ldGZpbHRlciBzdWJzeXN0ZW0uIFRoYXQgbWFrZXMgaXQgYSBzb2xpZCBjYW5kaWRhdGUuXG5cbk5vdywgd2hhdCBkZXBlbmRlbmNpZXMgZG9lcyB0aGlzIGZ1bmN0aW9uIGhhdmU/IExldCBtZSBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuLi5BaCwgaXQgbG9va3MgbGlrZSBgTkZfREVGUkFHX0lQVjZgIGlzIHRoZSBrZXkuIFRoYXQgc2hvdWxkIGJlIGFsbCBJIG5lZWQuXG5cbkFscmlnaHQsIGhlcmXigJlzIG15IHN1bW1hcnk6IFRoaXMgcGF0Y2ggaXMgd29ydGggZnV6emluZy4gSXQgYWRkcmVzc2VzIGEgcG90ZW50aWFsIG92ZXJmbG93IGJ1ZyBpbiB0aGUgSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljLCBhIGNyaXRpY2FsIGNvcmUgbmV0d29yayBmdW5jdGlvbmFsaXR5LiBUaGUgZm9jdXMgc3ltYm9sIGlzIGBuZl9jdF9mcmFnNl9nYXRoZXJgLCBhbmQgSSBzaG91bGQgZW5hYmxlIGBORl9ERUZSQUdfSVBWNmAuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCBhbmQgZGlyZWN0bHkgaW1wYWN0cyByZWFjaGFibGUgbmV0d29yayBsb2dpYywgbWFraW5nIGl0IGhpZ2gtcHJpb3JpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg1MDEsIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzEuMTMyODkxNTA5WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1NDc3NTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9ERUZSQUdfSVBWNlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2N0X2ZyYWc2X2dhdGhlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG92ZXJmbG93IGJ1ZyBpbiBJUHY2IG5ldGZpbHRlciBkZWZyYWdtZW50YXRpb24gbG9naWMgYnkgY2hhbmdpbmcgdGhlIHR5cGUgb2YgcHJldl9uaG9mZiBmcm9tIHU4IHRvIGludC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfREVGUkFHX0lQVjZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jdF9mcmFnNl9nYXRoZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNDozMS4yNzgzNzg3NzdaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNjE4NDkyODEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzEuMjgxMjg1Mjc3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMzNjE1NTgyMjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIHRydW5jYXRpb24gYnVnIHdoZXJlIGBwcmV2X25ob2ZmYCB3YXMgZGVjbGFyZWQgYXMgYSBgdThgIGluc3RlYWQgb2YgYW4gYGludGAuIFdoZW4gcGFyc2luZyBJUHY2IGV4dGVuc2lvbiBoZWFkZXJzLCB0aGUgb2Zmc2V0IG9mIHRoZSBwcmV2aW91cyBoZWFkZXIgY291bGQgZXhjZWVkIDI1NSwgY2F1c2luZyBgcHJldl9uaG9mZmAgdG8gd3JhcCBhcm91bmQuIFRoaXMgdHJ1bmNhdGlvbiB3b3VsZCByZXN1bHQgaW4gYW4gaW5jb3JyZWN0IG9mZnNldCBiZWluZyByZXR1cm5lZCBhbmQgdXNlZCBsYXRlciwgcG90ZW50aWFsbHkgbGVhZGluZyB0byBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcyB3aGVuIGFjY2Vzc2luZyB0aGUgcGFja2V0IGRhdGEuIFRoaXMgaXMgYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaXNzdWUsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IGRldGVjdGVkIGJ5IEtBU0FOLiBJdCBkb2VzIG5vdCBpbnZvbHZlIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgb3IgbGVha2luZyB1bmluaXRpYWxpemVkIGtlcm5lbCBtZW1vcnkgdG8gdXNlciBzcGFjZSwgc28gS01TQU4gaXMgbm90IHJlcXVpcmVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJjZGEzZGI5ZjZiNjAyNmU5NDRiNWU1MzFkOWIzYjVjNWZmMWRhYjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyMiAyMjozMjoxMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuaW5kZXggNTk5YzQ5YmYwYTBhZi4uYmU3MmM0MzQ2ZjhiNyAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXG5AQCAtMzk4LDcgKzM5OCw3IEBAIGZpbmRfcHJldl9maGRyKHN0cnVjdCBza19idWZmICpza2IsIHU4ICpwcmV2aGRycCwgaW50ICpwcmV2aG9mZiwgaW50ICpmaG9mZilcbiB7XG4gXHR1OCBuZXh0aGRyID0gaXB2Nl9oZHIoc2tiKS1cdTAwM2VuZXh0aGRyO1xuIFx0Y29uc3QgaW50IG5ldG9mZiA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpO1xuLVx0dTggcHJldl9uaG9mZiA9IG5ldG9mZiArIG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcbitcdGludCBwcmV2X25ob2ZmID0gbmV0b2ZmICsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpO1xuIFx0aW50IHN0YXJ0ID0gbmV0b2ZmICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcbiBcdGludCBsZW4gPSBza2ItXHUwMDNlbGVuIC0gc3RhcnQ7XG4gXHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzEuMjgxMjg3MjE3WiIsIlNlcSI6MTksIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxNDI1NjA4NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0d29yayBQYWNrZXQgUmVhc3NlbWJseSBCdWcgRml4KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtYWtpbmcgYSBzZWVtaW5nbHkgc21hbGwsIGJ1dCBwb3RlbnRpYWxseSBjcnVjaWFsLCBjaGFuZ2Ugd2l0aGluIHRoZSBJUHY2IG5ldGZpbHRlciBjb2RlLiBTcGVjaWZpY2FsbHksIHRoZSBgcHJldl9uaG9mZmAgdmFyaWFibGUgaW4gdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gd2l0aGluIGBuZl9jb25udHJhY2tfcmVhc20uY2AgaXMgYmVpbmcgc3dpdGNoZWQgZnJvbSBhIGB1OGAgdG8gYW4gYGludGAuIFJpZ2h0IGF3YXksIHRoaXMgc2NyZWFtcyBpbnRlZ2VyIG92ZXJmbG93IG9yIHRydW5jYXRpb24gaXNzdWUuIE15IGd1dCBmZWVsaW5nIGlzIHRoYXQgdGhpcyBpcyB0aGUgZml4IGZvciBleGFjdGx5IHRoYXQuXG5cblRoZSBkZXNjcmlwdGlvbiBtZW50aW9ucyB0aGF0IGBwcmV2X25ob2ZmYCBpcyBjYWxjdWxhdGVkIGFzIHRoZSBzdW0gb2YgYG5ldG9mZmAgYW5kIHRoZSBgb2Zmc2V0b2ZgIG9mIHRoZSBgbmV4dGhkcmAgZmllbGQgd2l0aGluIHRoZSBgaXB2NmhkcmAgc3RydWN0dXJlLiBJZiBgbmV0b2ZmYCBnZXRzIHN1ZmZpY2llbnRseSBsYXJnZSwgdGhlIHJlc3VsdCBvZiB0aGF0IGFkZGl0aW9uLCBpZiBzdG9yZWQgaW4gYW4gYHU4YCwgY291bGQgd3JhcCBhcm91bmQuIFRoYXQgd3JhcGFyb3VuZCB3b3VsZCB0aGVuIGxlYWQgdG8gYW4gaW5jb3JyZWN0IG9mZnNldCBjYWxjdWxhdGlvbiwgcmVzdWx0aW5nIGluIGVpdGhlciBhbiBvdXQtb2YtYm91bmRzIHJlYWQgb3Igd3JpdGUsIG9yIGF0IHRoZSB2ZXJ5IGxlYXN0IGEgc2VyaW91cyBsb2dpYyBlcnJvciBpbiBwYWNrZXQgcHJvY2Vzc2luZy4gVGhhbmtmdWxseSwgaXQncyBub3Qgc2ltcGx5IGFuIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3VlLCB0aG9zZSBhcmUgZmFyIG1vcmUgY2hhbGxlbmdpbmcgdG8gdHJhY2sgZG93biFcblxuTm93LCBiZWZvcmUgSSBzaWduIG9mZiBvbiB0aGlzLCBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlIGxvb2sgYXQgdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqZXhhY3RseSogaG93IGBwcmV2X25ob2ZmYCBpcyB1c2VkIGRvd25zdHJlYW0gdG8gYmUgY29tcGxldGVseSBzdXJlIG9mIHRoZSBzY29wZSBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLiBJIHdhbnQgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc2Vzc21lbnQgb2YgdGhlIHByb2JsZW0gYW5kIGVuc3VyZSB0aGlzIHNvbHZlcyB0aGUgcHJvYmxlbSwgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgb25lcy4gSSdsbCBjaGVjayBob3cgaXQncyB1c2VkIHRvIGlkZW50aWZ5IGZyYWdtZW50ZWQgaGVhZGVycyBhbmQgZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IG9mZnNldCBmb3IgcmVhc3NlbWJseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA3OSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjM0OjM4LjQyMzg1MTUwMVoiLCJTZXEiOjIwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc3MDYyOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmluZF9wcmV2X2ZoZHJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTY9c3RhdGljIGludFxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzozOTc6ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy0zOTgte1xcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTQ0Nj1pbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDYyLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NjM6XFx0aWYgKGZpbmRfcHJldl9maGRyKHNrYiwgXFx1MDAyNnByZXZoZHIsIFxcdTAwMjZuaG9mZiwgXFx1MDAyNmZob2ZmKSBcXHUwMDNjIDApXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2NC1cXHRcXHRyZXR1cm4gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzguNDkxNTcxMTVaIiwiU2VxIjoyMSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTMxOTc2MTA2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkFuYWx5emluZyB0aGUgYGZpbmRfcHJldl9maGRyYCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIGl0cyBwdXJwb3NlIHdpdGhpbiB0aGUgYnJvYWRlciBjb250ZXh0LiBXaGF0J3MgaXQgbG9va2luZyBmb3I/IFByZXN1bWFibHksIGl0J3MgZGVhbGluZyB3aXRoIHNvbWUgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBpbnZvbHZlcyBoZWFkZXJzIOKAkyBsaWtlbHkgc29tZSBraW5kIG9mIGZpbGUgZm9ybWF0IG9yIGRhdGEgc3RyZWFtIHdpdGggYSBoaWVyYXJjaGljYWwgb3JnYW5pemF0aW9uLiBUaGUgXCJwcmV2XCIgaW4gdGhlIG5hbWUgc3VnZ2VzdHMgaXQncyBzZWFyY2hpbmcgZm9yIGEgcHJldmlvdXMsIG9yIHByZWNlZGluZywgaGVhZGVyLiBJJ2xsIG5lZWQgdG8gaW1tZWRpYXRlbHkgc3RhcnQgY29uc2lkZXJpbmcgcG9zc2libGUgZWRnZSBjYXNlczogV2hhdCBoYXBwZW5zIGlmIHRoZXJlICppc24ndCogYSBwcmV2aW91cyBoZWFkZXI/IElzIHRoZXJlIGEgZGVzaWduYXRlZCBcInN0YXJ0XCIgb3IgXCJlbmRcIiBtYXJrZXIsIG9yIGRvZXMgaXQgcmVseSBvbiBvZmZzZXRzIG9yIHNwZWNpZmljIGJ5dGUgc2VxdWVuY2VzPyBBcmUgdGhlcmUgcG90ZW50aWFsIGVycm9yIGNvbmRpdGlvbnM/IFRoaW5raW5nIGFoZWFkLCBJIG5lZWQgdG8ga25vdyBob3cgaXQgaGFuZGxlcyB0aGVtLiBJJ2xsIG5lZWQgdG8gbG9vayBmb3IgYW55IHJldHVybiB2YWx1ZXMgdGhhdCBtaWdodCBpbmRpY2F0ZSBzdWNjZXNzLCBmYWlsdXJlLCBvciBhIHNwZWNpYWwgXCJub3QgZm91bmRcIiBzY2VuYXJpby4gSSBhbHNvIG5lZWQgdG8gY29uc2lkZXIgcG90ZW50aWFsIGNvbmN1cnJlbmN5IGlzc3Vlcy4gSXMgdGhlIGZ1bmN0aW9uIHRocmVhZC1zYWZlPyBEb2VzIGl0IGFzc3VtZSBzaW5nbGUtdGhyZWFkZWQgYWNjZXNzLCBvciBkb2VzIGl0IGhhdmUgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbXM/IEEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW5wdXQgcGFyYW1ldGVycyBpcyBjcnVjaWFsLiBBcmUgdGhleSBwb2ludGVycywgcmVmZXJlbmNlcywgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFdoYXQgZGF0YSB0eXBlcyBhcmUgaW52b2x2ZWQ/IEFyZSB0aGVyZSBhbnkgaW52YXJpYW50cyBvciBhc3N1bXB0aW9ucyBhYm91dCB0aGUgaW5wdXQgZGF0YSB0aGF0IEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gSSdsbCBwcm9iYWJseSBiZSBhYmxlIHRvIGRldGVybWluZSBhbGwgb2YgdGhpcyBqdXN0IGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCB0aGUgZnVuY3Rpb24gZG9lcy4gSSdtIGtlZW4gdG8gZ2V0IHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCBJJ2xsIHN0YXJ0IHdpdGggdGhlIGFyZ3VtZW50cyBhbmQgcmV0dXJuIHRvIHRob3NlIGNvbnNpZGVyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTI2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6NDMuODExMzM0MjJaIiwiU2VxIjoyMiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM2OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM5NixcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDM5NjpcXHRzdGF0aWMgaW50XFxuIDM5NzpcXHRmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXFxuIDM5ODpcXHR7XFxuIDM5OTpcXHRcXHR1OCBuZXh0aGRyID0gaXB2Nl9oZHIoc2tiKS1cXHUwMDNlbmV4dGhkcjtcXG4gNDAwOlxcdFxcdGNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTtcXG4gNDAxOlxcdFxcdGludCBwcmV2X25ob2ZmID0gbmV0b2ZmICsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpO1xcbiA0MDI6XFx0XFx0aW50IHN0YXJ0ID0gbmV0b2ZmICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcXG4gNDAzOlxcdFxcdGludCBsZW4gPSBza2ItXFx1MDAzZWxlbiAtIHN0YXJ0O1xcbiA0MDQ6XFx0XFx0dTggcHJldmhkciA9IE5FWFRIRFJfSVBWNjtcXG4gNDA1OlxcdFxcbiA0MDY6XFx0XFx0d2hpbGUgKG5leHRoZHIgIT0gTkVYVEhEUl9GUkFHTUVOVCkge1xcbiA0MDc6XFx0XFx0XFx0c3RydWN0IGlwdjZfb3B0X2hkciBoZHI7XFxuIDQwODpcXHRcXHRcXHRpbnQgaGRybGVuO1xcbiA0MDk6XFx0XFxuIDQxMDpcXHRcXHRcXHRpZiAoIWlwdjZfZXh0X2hkcihuZXh0aGRyKSkge1xcbiA0MTE6XFx0XFx0XFx0XFx0cmV0dXJuIC0xO1xcbiA0MTI6XFx0XFx0XFx0fVxcbiA0MTM6XFx0XFx0XFx0aWYgKG5leHRoZHIgPT0gTkVYVEhEUl9OT05FKSB7XFxuIDQxNDpcXHRcXHRcXHRcXHRwcl9kZWJ1ZyhcXFwibmV4dCBoZWFkZXIgaXMgbm9uZVxcXFxuXFxcIik7XFxuIDQxNTpcXHRcXHRcXHRcXHRyZXR1cm4gLTE7XFxuIDQxNjpcXHRcXHRcXHR9XFxuIDQxNzpcXHRcXHRcXHRpZiAobGVuIFxcdTAwM2MgKGludClzaXplb2Yoc3RydWN0IGlwdjZfb3B0X2hkcikpIHtcXG4gNDE4OlxcdFxcdFxcdFxcdHByX2RlYnVnKFxcXCJ0b28gc2hvcnRcXFxcblxcXCIpO1xcbiA0MTk6XFx0XFx0XFx0XFx0cmV0dXJuIC0xO1xcbiA0MjA6XFx0XFx0XFx0fVxcbiA0MjE6XFx0XFx0XFx0aWYgKHNrYl9jb3B5X2JpdHMoc2tiLCBzdGFydCwgXFx1MDAyNmhkciwgc2l6ZW9mKGhkcikpKVxcbiA0MjI6XFx0XFx0XFx0XFx0cmV0dXJuIC0xO1xcbiA0MjM6XFx0XFx0XFx0aWYgKG5leHRoZHIgPT0gTkVYVEhEUl9BVVRIKVxcbiA0MjQ6XFx0XFx0XFx0XFx0aGRybGVuID0gaXB2Nl9hdXRobGVuKFxcdTAwMjZoZHIpO1xcbiA0MjU6XFx0XFx0XFx0ZWxzZVxcbiA0MjY6XFx0XFx0XFx0XFx0aGRybGVuID0gaXB2Nl9vcHRsZW4oXFx1MDAyNmhkcik7XFxuIDQyNzpcXHRcXG4gNDI4OlxcdFxcdFxcdHByZXZoZHIgPSBuZXh0aGRyO1xcbiA0Mjk6XFx0XFx0XFx0cHJldl9uaG9mZiA9IHN0YXJ0O1xcbiA0MzA6XFx0XFxuIDQzMTpcXHRcXHRcXHRuZXh0aGRyID0gaGRyLm5leHRoZHI7XFxuIDQzMjpcXHRcXHRcXHRsZW4gLT0gaGRybGVuO1xcbiA0MzM6XFx0XFx0XFx0c3RhcnQgKz0gaGRybGVuO1xcbiA0MzQ6XFx0XFx0fVxcbiA0MzU6XFx0XFxuIDQzNjpcXHRcXHRpZiAobGVuIFxcdTAwM2MgMClcXG4gNDM3OlxcdFxcdFxcdHJldHVybiAtMTtcXG4gNDM4OlxcdFxcbiA0Mzk6XFx0XFx0KnByZXZoZHJwID0gcHJldmhkcjtcXG4gNDQwOlxcdFxcdCpwcmV2aG9mZiA9IHByZXZfbmhvZmY7XFxuIDQ0MTpcXHRcXHQqZmhvZmYgPSBzdGFydDtcXG4gNDQyOlxcdFxcbiA0NDM6XFx0XFx0cmV0dXJuIDA7XFxuIDQ0NDpcXHR9XFxuIDQ0NTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6NDMuODExNDE5NDlaIiwiU2VxIjoyMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEwODU0MjcwMDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEJ1ZyoqXG5cbk9rYXksIHNvIGhlcmUncyB0aGUgZGVhbC4gSXQgbG9va3MgbGlrZSB0aGUgY29yZSBpc3N1ZSBib2lscyBkb3duIHRvIGEgY2xhc3NpYyBpbnRlZ2VyIHRydW5jYXRpb24gcHJvYmxlbS4gSSBzZWUgdGhhdCBvbiBsaW5lIDQyOSwgYHByZXZfbmhvZmZgLCBhIGB1OGAsIGlzIGJlaW5nIGFzc2lnbmVkIGEgdmFsdWUgZnJvbSBgc3RhcnRgLCB3aGljaCBpcyBhbiBgaW50YC4gVGhhdCdzIHdoZXJlIHRoZSBwcm9ibGVtIGJlZ2lucy4gU2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGRpZmZlcmVudCBpbnRlZ2VyIHNpemVzLCB0aGUgYXNzaWdubWVudCBjYXVzZXMgYHN0YXJ0YCB0byBiZSB0cnVuY2F0ZWQgZG93biB0byA4IGJpdHMuXG5cblRoZW4sIHRoYXQgdHJ1bmNhdGVkIHZhbHVlIGlzIGRpcmVjdGx5IGFzc2lnbmVkIHRvIGAqcHJldmhvZmZgIGxhdGVyIG9uLiBUaGUgdHJvdWJsZSBpcywgdGhhdCBpbmNvcnJlY3Qgb2Zmc2V0IGlzIHRoZW4gdXNlZCBkb3duc3RyZWFtLiBUaGlzIG1lYW5zIGFueSBzdWJzZXF1ZW50IG9wZXJhdGlvbnMgdXNpbmcgYCpwcmV2aG9mZmAgdG8gYWNjZXNzIGEgcHJldmlvdXMgaGVhZGVyIGFyZSBsaWtlbHkgdG8gZ28gY29tcGxldGVseSBoYXl3aXJlLCByZXN1bHRpbmcgaW4gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMuIFRoaXMgaXMgbm90IGFib3V0IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJ1dCByYXRoZXIgYSBjbGVhciBpbnRlZ2VyIHRydW5jYXRpb24gbGVhZGluZyB0byBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MuIEknZCBleHBlY3QgS0FTQU4gdG8gZmxhZyB0aGlzIHdpdGggYW4gZXJyb3IgYXMgaXQgc2hvdWxkIGJlIGFibGUgdG8gZGV0ZWN0IHRoZSByZXN1bHRpbmcgb3V0LW9mLWJvdW5kcyBhY2Nlc3MuIEJhc2VkIG9uIHRoaXMsIEknbSBjb25maWRlbnQgd2UgY2FuIGNsYXNzaWZ5IHRoaXMgYXMgYSBmYWxzZSBwb3NpdGl2ZSBmb3IgTmVlZHNLTVNBTi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1MCwiT3V0cHV0VG9rZW5zIjoxNjEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNTowNC44OTY4NDkzOTlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgdHJ1bmNhdGlvbiBidWcgd2hlcmUgYHByZXZfbmhvZmZgIHdhcyBkZWNsYXJlZCBhcyBhIGB1OGAgaW5zdGVhZCBvZiBhbiBgaW50YC4gV2hlbiBwYXJzaW5nIElQdjYgZXh0ZW5zaW9uIGhlYWRlcnMsIHRoZSBvZmZzZXQgb2YgdGhlIHByZXZpb3VzIGhlYWRlciBjb3VsZCBleGNlZWQgMjU1LCBjYXVzaW5nIGBwcmV2X25ob2ZmYCB0byB3cmFwIGFyb3VuZC4gVGhpcyB0cnVuY2F0aW9uIHdvdWxkIHJlc3VsdCBpbiBhbiBpbmNvcnJlY3Qgb2Zmc2V0IGJlaW5nIHJldHVybmVkIGFuZCB1c2VkIGxhdGVyLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzIHdoZW4gYWNjZXNzaW5nIHRoZSBwYWNrZXQgZGF0YS4gVGhpcyBpcyBhbiBvdXQtb2YtYm91bmRzIGFjY2VzcyBpc3N1ZSwgd2hpY2ggaXMgZWZmZWN0aXZlbHkgZGV0ZWN0ZWQgYnkgS0FTQU4uIEl0IGRvZXMgbm90IGludm9sdmUgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSBvciBsZWFraW5nIHVuaW5pdGlhbGl6ZWQga2VybmVsIG1lbW9yeSB0byB1c2VyIHNwYWNlLCBzbyBLTVNBTiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow2g2xp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-22 21:51:15 +0000 UTC FinishedAt: 2026-08-22 22:35:05 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "878ca6f9739ab460a185fd1f0e64c8ef026057e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_DEFRAG_IPV6" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "878ca6f9739ab460a185fd1f0e64c8ef026057e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_DEFRAG_IPV6" ], "series_id": "087c8238-a443-4a5f-9362-13e9b3301aca" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_ct_frag6_gather" ], "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+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0RFRlJBR19JUFY2JiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfY3RfZnJhZzZfZ2F0aGVyJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYnVnIGluIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYyBieSBjaGFuZ2luZyB0aGUgdHlwZSBvZiBwcmV2X25ob2ZmIGZyb20gdTggdG8gaW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJjZGEzZGI5ZjZiNjAyNmU5NDRiNWU1MzFkOWIzYjVjNWZmMWRhYjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyMiAyMjozMjoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuQEAgLTM5OCw3ICYjNDM7Mzk4LDcgQEAgZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxuIHtcbiBcdHU4IG5leHRoZHIgPSBpcHY2X2hkcihza2IpLVx1MDAzZW5leHRoZHI7XG4gXHRjb25zdCBpbnQgbmV0b2ZmID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7XG4tXHR1OCBwcmV2X25ob2ZmID0gbmV0b2ZmICYjNDM7IG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcbiYjNDM7XHRpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XG4gXHRpbnQgc3RhcnQgPSBuZXRvZmYgJiM0Mzsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcbiBcdGludCBsZW4gPSBza2ItXHUwMDNlbGVuIC0gc3RhcnQ7XG4gXHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORl9ERUZSQUdfSVBWNiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2N0X2ZyYWc2X2dhdGhlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYmNkYTNkYjlmNmI2MDI2ZTk0NGI1ZTUzMWQ5YjNiNWM1ZmYxZGFiOQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDIyIDIyOjMyOjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKQEAgLTM5OCw3ICYjNDM7Mzk4LDcgQEAgZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKQogewogCXU4IG5leHRoZHIgPSBpcHY2X2hkcihza2IpLSZndDtuZXh0aGRyOwogCWNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKLQl1OCBwcmV2X25ob2ZmID0gbmV0b2ZmICYjNDM7IG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTsKJiM0MzsJaW50IHByZXZfbmhvZmYgPSBuZXRvZmYgJiM0Mzsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpOwogCWludCBzdGFydCA9IG5ldG9mZiAmIzQzOyBzaXplb2Yoc3RydWN0IGlwdjZoZHIpOwogCWludCBsZW4gPSBza2ItJmd0O2xlbiAtIHN0YXJ0OwogCXU4IHByZXZoZHIgPSBORVhUSERSX0lQVjY7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwODIKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgTmV0ZmlsdGVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCBzZWVtcyBsaWtlIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBjaGFuZ2UsIGJ1dCBpdOKAmXMgdGFyZ2V0aW5nIGEgcG90ZW50aWFsbHkgbmFzdHkgcHJvYmxlbSBpbiBgbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jYC4gVGhleSYjMzk7cmUgY2hhbmdpbmcgdGhlIHR5cGUgb2YgYHByZXZfbmhvZmZgIGluIGBmaW5kX3ByZXZfZmhkcmAgZnJvbSBgdThgIHRvIGBpbnRgLiBUaGUganVzdGlmaWNhdGlvbiBpcyB0aGUgcG9zc2liaWxpdHkgb2YgYW4gb3ZlcmZsb3cgb3IgdHJ1bmNhdGlvbiBpc3N1ZS4gU3BlY2lmaWNhbGx5LCB0aGUgY2FsY3VsYXRpb24gYG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcilgIGNvdWxkLCB3aXRoIGEgc3VmZmljaWVudGx5IGxhcmdlIGBuZXRvZmZgIHZhbHVlLCBleGNlZWQgdGhlIG1heGltdW0gdmFsdWUgcmVwcmVzZW50YWJsZSBieSBhIGB1OGAgKDI1NSkuIFRoYXQgbWVhbnMgd2UgY291bGQgYmUgbG9zaW5nIGNydWNpYWwgZGF0YSBpbiBhIHJlYXNzZW1ibHkgY29udGV4dC4gVGhpcyBpcyB0aGUga2luZCBvZiBzdWJ0bGUgYnVnIHRoYXQgY291bGQgbGVhZCB0byBwYWNrZXQgY29ycnVwdGlvbiBvciwgd29yc2UsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgbmVlZHMgdG8gYmUgdGhvcm91Z2hseSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGUgZml4IGlzIGNvcnJlY3QsIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zLiBMZXQmIzM5O3MgZGlnIGludG8gdGhhdCBgZmluZF9wcmV2X2ZoZHJgIGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCB0aGUgaW1wbGljYXRpb25zIGFyZSBvZiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmaW5kX3ByZXZfZmhkciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM9Mzk2PXN0YXRpYyBpbnRcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzozOTc6ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTM5OC17XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTQ0Nj1pbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2Mi1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NjM6XHRpZiAoZmluZF9wcmV2X2ZoZHIoc2tiLCBcdTAwMjZwcmV2aGRyLCBcdTAwMjZuaG9mZiwgXHUwMDI2ZmhvZmYpIFx1MDAzYyAwKVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2NC1cdFx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3MgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRmxvdyBvZiBJUHY2IEZyYWdtZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkgc2VlIGBmaW5kX3ByZXZfZmhkcmAgYmVpbmcgY2FsbGVkIGJ5IGBuZl9jdF9mcmFnNl9nYXRoZXJgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBidXQgbm90IHRoZSB3aG9sZSBwaWN0dXJlLiBJIGtub3cgYG5mX2N0X2ZyYWc2X2dhdGhlcmAgaXMgZWl0aGVyIGV4cG9ydGVkIG9yIGdsb2JhbGx5IGFjY2Vzc2libGUsIG1lYW5pbmcgaXQmIzM5O3MgYSBrZXkgZnVuY3Rpb24gZm9yIHNvbWV0aGluZy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2hlcmUgKmVsc2UqIGlzIHRoaXMgZnVuY3Rpb24gdXNlZD8mIzM0OyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dCB3aXRoaW4gdGhlIGxhcmdlciBJUHY2IGZyYWdtZW50IHByb2Nlc3NpbmcgZnJhbWV3b3JrLiBQaW5wb2ludGluZyB0aGUgY2FsbCBzaXRlcyBvZiBgbmZfY3RfZnJhZzZfZ2F0aGVyYCBpcyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuIFRoYXQmIzM5O2xsIHByb3ZpZGUgaW5zaWdodCBpbnRvIGl0cyByb2xlIGFuZCBwdXJwb3NlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2N0X2ZyYWc2X2dhdGhlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9uZXRmaWx0ZXIvaXB2Ni9uZl9kZWZyYWdfaXB2Ni5oPTEyPXZvaWQgbmZfY3RfZnJhZzZfY2xlYW51cCh2b2lkKTtcbmluY2x1ZGUvbmV0L25ldGZpbHRlci9pcHY2L25mX2RlZnJhZ19pcHY2Lmg6MTM6aW50IG5mX2N0X2ZyYWc2X2dhdGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKTtcbmluY2x1ZGUvbmV0L25ldGZpbHRlci9pcHY2L25mX2RlZnJhZ19pcHY2LmgtMTQtXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jPTE3ND1zdGF0aWMgdW5zaWduZWQgaW50IG5mX2N0X2JyX2RlZnJhZzYoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmMtMTg5LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jOjE5MDpcdGVyciA9IG5mX2N0X2ZyYWc2X2dhdGhlcihzdGF0ZS1cdTAwM2VuZXQsIHNrYixcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19icmlkZ2UuYy0xOTEtXHRcdFx0XHQgSVBfREVGUkFHX0NPTk5UUkFDS19CUklER0VfSU4gJiM0Mzsgem9uZV9pZCk7XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTM5Nz1maW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ0NS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NDY6aW50IG5mX2N0X2ZyYWc2X2dhdGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ0Ny17XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTUwMi19XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6NTAzOkVYUE9SVF9TWU1CT0xfR1BMKG5mX2N0X2ZyYWc2X2dhdGhlcik7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNTA0LVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9kZWZyYWdfaXB2Nl9ob29rcy5jPTUyPXN0YXRpYyB1bnNpZ25lZCBpbnQgaXB2Nl9kZWZyYWcodm9pZCAqcHJpdixcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfZGVmcmFnX2lwdjZfaG9va3MuYy02Ni1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9kZWZyYWdfaXB2Nl9ob29rcy5jOjY3Olx0ZXJyID0gbmZfY3RfZnJhZzZfZ2F0aGVyKHN0YXRlLVx1MDAzZW5ldCwgc2tiLFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmMtNjgtXHRcdFx0XHQgbmZfY3Q2X2RlZnJhZ191c2VyKHN0YXRlLVx1MDAzZWhvb2ssIHNrYikpO1xuLS1cbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX292cy5jPTE1MT1pbnQgbmZfY3RfaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfb3ZzLmMtMTcxLVx0XHRtZW1zZXQoSVA2Q0Ioc2tiKSwgMCwgc2l6ZW9mKHN0cnVjdCBpbmV0Nl9za2JfcGFybSkpO1xubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfb3ZzLmM6MTcyOlx0XHRlcnIgPSBuZl9jdF9mcmFnNl9nYXRoZXIobmV0LCBza2IsIHVzZXIpO1xubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfb3ZzLmMtMTczLVx0XHRpZiAoZXJyKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzgzMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJIHdlcmUgdGhpbmtpbmcgdGhyb3VnaCB0aGUgcHJvYmxlbToKCioqRXhhbWluaW5nIElQdjYgTmV0ZmlsdGVyIENvbm5lY3Rpb24gVHJhY2tpbmcgRGVmcmFnbWVudGF0aW9uKioKCkFscmlnaHQsIHRoZSByZWxldmFudCBjb2RlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jYC4gVGhhdCB0ZWxscyBtZSByaWdodCBhd2F5IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIElQdjYgbmV0ZmlsdGVyJiMzOTtzIGNvbm5lY3Rpb24gdHJhY2tpbmcsIHNwZWNpZmljYWxseSB0aGUgZGVmcmFnbWVudGF0aW9uIGFzcGVjdC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcywgSSBuZWVkIHRvIGtub3cgdW5kZXIgd2hhdCBjb25kaXRpb25zIHRoaXMgY29kZSBpcyBlbmFibGVkLiBLbm93aW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbCBhbGxvdyBtZSB0byB1bmRlcnN0YW5kIHdoaWNoIGZlYXR1cmVzIGRlcGVuZCBvbiB0aGlzIHBhcnQgb2YgdGhlIGNvZGUuIFRoaXMgd2lsbCBpbmZvcm0gbXkgaW52ZXN0aWdhdGlvbiBieSBzZXR0aW5nIHRoZSBzdGFnZSBmb3Igd2hlcmUgYW5kIHdoeSB0aGlzIGNvZGUgcGF0aCB3b3VsZCBiZSByZWFjaGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2Nvbm50cmFja19yZWFzbSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvTWFrZWZpbGU9MTI9b2JqLSQoQ09ORklHX0lQNl9ORl9OQVQpICYjNDM7PSBpcDZ0YWJsZV9uYXQub1xuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZS0xNC0jIGRlZnJhZ1xubmV0L2lwdjYvbmV0ZmlsdGVyL01ha2VmaWxlOjE1Om5mX2RlZnJhZ19pcHY2LXkgOj0gbmZfZGVmcmFnX2lwdjZfaG9va3MubyBuZl9jb25udHJhY2tfcmVhc20ub1xubmV0L2lwdjYvbmV0ZmlsdGVyL01ha2VmaWxlLTE2LW9iai0kKENPTkZJR19ORl9ERUZSQUdfSVBWNikgJiM0Mzs9IG5mX2RlZnJhZ19pcHY2Lm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjIzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRnJhZ21lbnRhdGlvbiBCdWcgRml4KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZml4aW5nIHNvbWV0aGluZyByZWxhdGVkIHRvIElQdjYgZGVmcmFnbWVudGF0aW9uIHdpdGhpbiB0aGUgY29ubmVjdGlvbiB0cmFja2luZyBjb2RlLiBTcGVjaWZpY2FsbHksIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgQ09ORklHX05GX0RFRlJBR19JUFY2YCBpcyBhIGhhcmQgcmVxdWlyZW1lbnQgZm9yIHRoaXMgY2hhbmdlLCBtZWFuaW5nIGl0JiMzOTtzIG9ubHkgcmVsZXZhbnQgaWYgSVB2NiBkZWZyYWcgaXMgZW5hYmxlZC4gVGhlIGVudHJ5IHBvaW50IGZvciB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgdGhlIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGZ1bmN0aW9uLiBUaGUgY29kZSBtZW50aW9ucyBhIGZpeCBmb3IgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgaW4gYHByZXZfbmhvZmZgIHdoZW4gZGVhbGluZyB3aXRoIGEgbGFyZ2UgYG5ldG9mZmAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBhIGZ1bmN0aW9uYWwgYnVnLCBzb21ldGhpbmcgdGhhdCBjb3VsZCBpbXBhY3QgcmVhbC13b3JsZCB0cmFmZmljLCBzbyB0aGlzIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBNeSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBgbmZfY3RfZnJhZzZfZ2F0aGVyYCBzeW1ib2wsIGFzIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvcmUgbG9naWMgcmVzaWRlcy4gQmVmb3JlIEkgZGl2ZSBpbnRvIHRoZSBjb2RlIGl0c2VsZiwgSSBzaG91bGQgZG91YmxlLWNoZWNrIGFuZCBtYWtlIHN1cmUgYE5GX0RFRlJBR19JUFY2YCBkb2VzbiYjMzk7dCBoYXZlIGFueSBoaWRkZW4gZGVwZW5kZW5jaWVzIG9yIHByZXJlcXVpc2l0ZXMgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBjYXNjYWRpbmcgaW1wbGljYXRpb25zIHRvIGNvbnNpZGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTkZfREVGUkFHX0lQVjYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0zMDA9ZW5kbWVudVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMzAxLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MzAyOmNvbmZpZyBORl9ERUZSQUdfSVBWNlxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMzAzLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY5NgoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHRyaXN0YXRlIG9wdGlvbiwgYW5kIGl0JiMzOTtzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgc2VlbXMgc2VsZi1jb250YWluZWQg4oCTIG5vIG9idmlvdXMgZGVwZW5kZW5jaWVzIGF0IGZpcnN0IGdsYW5jZS4gQnV0IHRoZSBsb2NhdGlvbiwgdHVja2VkIGF3YXkgaW4gYG5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnYCwgaXMgbWFraW5nIG1lIHBhdXNlLiBUaGF0IHN1Z2dlc3RzIGl0IG1pZ2h0IGhhdmUgYSBjb3VwbGUgb2YgaW1wbGllZCBkZXBlbmRlbmNpZXMuIEl0JiMzOTtzIGFsbW9zdCBjZXJ0YWluIGl0IG5lZWRzIGBJUFY2YCwgYnV0IGBORVRGSUxURVJgIGZlZWxzIGxpa2VseSB0b28sIGdpdmVuIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlLiBKdXN0IHRvIGJlIGNvbXBsZXRlbHkgc3VyZSwgSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IG9wZW4gdXAgYG5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnYCBhbmQgdGFrZSBhIGxvb2sgZm9yIGFueSBgZGVwZW5kcyBvbmAgc3RhdGVtZW50cyBhdCB0aGUgZmlsZSBsZXZlbC4gQSBxdWljayBzY2FuIHdpbGwgY29uZmlybSBvciBjbGFyaWZ5IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIG9wdGlvbi4gSSBuZWVkIHRvIGJlIHN1cmUgYmVmb3JlIEkgbWFrZSBhbnkgYXNzdW1wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz02PW1lbnUgXCYjMzQ7SVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb25cJiMzNDtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjc6XHRkZXBlbmRzIG9uIElORVQgXHUwMDI2XHUwMDI2IElQVjYgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUlxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctOC1cbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMD1jb25maWcgSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTEtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgSVA2IHRhYmxlcyBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxMjpcdGRlcGVuZHMgb24gSU5FVCBcdTAwMjZcdTAwMjYgSVBWNiBcdTAwMjZcdTAwMjYgTkVURklMVEVSX1hUQUJMRVNfTEVHQUNZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxMzpcdGRlcGVuZHMgb24gTkVURklMVEVSX1hUQUJMRVNcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE0LVx0ZGVmYXVsdFx0bSBpZiBORVRGSUxURVJfWFRBQkxFU19MRUdBQ1lcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz00Mz1jb25maWcgTkZUX0RVUF9JUFY2XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy00NC1cdHRyaXN0YXRlIFwmIzM0O0lQdjYgbmZfdGFibGVzIHBhY2tldCBkdXBsaWNhdGlvbiBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo0NTpcdGRlcGVuZHMgb24gIU5GX0NPTk5UUkFDSyB8fCBORl9DT05OVFJBQ0tcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTQ2LVx0c2VsZWN0IE5GX0RVUF9JUFY2XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9NjE9Y29uZmlnIE5GX0RVUF9JUFY2XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy02Mi1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBJUHY2IHBhY2tldCBkdXBsaWNhdGlvbiB0byBhbHRlcm5hdGUgZGVzdGluYXRpb25cJiMzNDtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjYzOlx0ZGVwZW5kcyBvbiAhTkZfQ09OTlRSQUNLIHx8IE5GX0NPTk5UUkFDS1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctNjQtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9ODA9Y29uZmlnIElQNl9ORl9JUFRBQkxFU1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtJUDYgdGFibGVzIHN1cHBvcnQgKHJlcXVpcmVkIGZvciBmaWx0ZXJpbmcpXCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo4MjpcdGRlcGVuZHMgb24gSU5FVCBcdTAwMjZcdTAwMjYgSVBWNlxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctODMtXHRzZWxlY3QgTkVURklMVEVSX1hUQUJMRVNcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz05Nj1jb25maWcgSVA2X05GX01BVENIX0FIXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy05Ny1cdHRyaXN0YXRlICYjMzk7XCYjMzQ7YWhcJiMzNDsgbWF0Y2ggc3VwcG9ydCYjMzk7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo5ODpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy05OS1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMDQ9Y29uZmlnIElQNl9ORl9NQVRDSF9FVUk2NFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTA1LVx0dHJpc3RhdGUgJiMzOTtcJiMzNDtldWk2NFwmIzM0OyBhZGRyZXNzIGNoZWNrJiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjEwNjpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMDctXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTE0PWNvbmZpZyBJUDZfTkZfTUFUQ0hfRlJBR1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTE1LVx0dHJpc3RhdGUgJiMzOTtcJiMzNDtmcmFnXCYjMzQ7IEZyYWdtZW50YXRpb24gaGVhZGVyIG1hdGNoIHN1cHBvcnQmIzM5O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTE2Olx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTExNy1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMjM9Y29uZmlnIElQNl9ORl9NQVRDSF9PUFRTXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMjQtXHR0cmlzdGF0ZSAmIzM5O1wmIzM0O2hiaFwmIzM0OyBob3AtYnktaG9wIGFuZCBcJiMzNDtkc3RcJiMzNDsgb3B0cyBoZWFkZXIgbWF0Y2ggc3VwcG9ydCYjMzk7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxMjU6XHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTI2LVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTEzMj1jb25maWcgSVA2X05GX01BVENIX0hMXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMzMtXHR0cmlzdGF0ZSAmIzM5O1wmIzM0O2hsXCYjMzQ7IGhvcGxpbWl0IG1hdGNoIHN1cHBvcnQmIzM5O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTM0Olx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEzNS1cdHNlbGVjdCBORVRGSUxURVJfWFRfTUFUQ0hfSExcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xNTA9Y29uZmlnIElQNl9ORl9NQVRDSF9NSFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTUxLVx0dHJpc3RhdGUgJiMzOTtcJiMzNDttaFwmIzM0OyBtYXRjaCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE1MjpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNTMtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTU4PWNvbmZpZyBJUDZfTkZfTUFUQ0hfUlBGSUxURVJcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1OS1cdHRyaXN0YXRlICYjMzk7XCYjMzQ7cnBmaWx0ZXJcJiMzNDsgcmV2ZXJzZSBwYXRoIGZpbHRlciBtYXRjaCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE2MDpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxNjE6XHRkZXBlbmRzIG9uIElQNl9ORl9NQU5HTEUgfHwgSVA2X05GX1JBVyB8fCBORlRfQ09NUEFUXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNjItXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTY5PWNvbmZpZyBJUDZfTkZfTUFUQ0hfUlRcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE3MC1cdHRyaXN0YXRlICYjMzk7XCYjMzQ7cnRcJiMzNDsgUm91dGluZyBoZWFkZXIgbWF0Y2ggc3VwcG9ydCYjMzk7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxNzE6XHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTcyLVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTE3OD1jb25maWcgSVA2X05GX01BVENIX1NSSFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTc5LVx0dHJpc3RhdGUgJiMzOTtcJiMzNDtzcmhcJiMzNDsgU2VnbWVudCBSb3V0aW5nIGhlYWRlciBtYXRjaCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE4MDpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xODEtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTg4PWNvbmZpZyBJUDZfTkZfVEFSR0VUX0hMXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xODktXHR0cmlzdGF0ZSAmIzM5O1wmIzM0O0hMXCYjMzQ7IGhvcGxpbWl0IHRhcmdldCBzdXBwb3J0JiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE5MDpcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEIFx1MDAyNlx1MDAyNiBJUDZfTkZfTUFOR0xFXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xOTEtXHRzZWxlY3QgTkVURklMVEVSX1hUX1RBUkdFVF9ITFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTE5Nz1jb25maWcgSVA2X05GX0ZJTFRFUlxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE5OS1cdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9biB8fCBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMDA6XHRkZXBlbmRzIG9uIElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIwMS1cdHRyaXN0YXRlXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjA5PWNvbmZpZyBJUDZfTkZfVEFSR0VUX1JFSkVDVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEwLVx0dHJpc3RhdGUgXCYjMzQ7UkVKRUNUIHRhcmdldCBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMTE6XHRkZXBlbmRzIG9uIElQNl9ORl9GSUxURVIgfHwgTkZUX0NPTVBBVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEyLVx0c2VsZWN0IE5GX1JFSkVDVF9JUFY2XG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjIxPWNvbmZpZyBJUDZfTkZfVEFSR0VUX1NZTlBST1hZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yMjItXHR0cmlzdGF0ZSBcJiMzNDtTWU5QUk9YWSB0YXJnZXQgc3VwcG9ydFwmIzM0O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjIzOlx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUl9BRFZBTkNFRFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjI0LVx0c2VsZWN0IE5FVEZJTFRFUl9TWU5QUk9YWVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTIzND1jb25maWcgSVA2X05GX01BTkdMRVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIzNi1cdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9biB8fCBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMzc6XHRkZXBlbmRzIG9uIElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIzOC1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yNDU9Y29uZmlnIElQNl9ORl9SQVdcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTI0Ni1cdHRyaXN0YXRlICAmIzM5O3JhdyB0YWJsZSBzdXBwb3J0IChyZXF1aXJlZCBmb3IgVFJBQ0UpJiMzOTtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI0NzpcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjQ4LVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI1Nz1jb25maWcgSVA2X05GX1NFQ1VSSVRZXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yNTgtXHR0cmlzdGF0ZSBcJiMzNDtTZWN1cml0eSB0YWJsZVwmIzM0O1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjU5Olx0ZGVwZW5kcyBvbiBTRUNVUklUWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjYwOlx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI2MTpcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjYyLVx0aGVscFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI2OD1jb25maWcgSVA2X05GX05BVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjY5LVx0dHJpc3RhdGUgXCYjMzQ7aXA2dGFibGVzIE5BVCBzdXBwb3J0XCYjMzQ7XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyNzA6XHRkZXBlbmRzIG9uIE5GX0NPTk5UUkFDS1xubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcxOlx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI3MjpcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjczLVx0c2VsZWN0IE5GX05BVFxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI4Mj1jb25maWcgSVA2X05GX1RBUkdFVF9NQVNRVUVSQURFXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjg0LVx0c2VsZWN0IE5FVEZJTFRFUl9YVF9UQVJHRVRfTUFTUVVFUkFERVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6Mjg1Olx0ZGVwZW5kcyBvbiBJUDZfTkZfTkFUXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yODYtXHRoZWxwXG4tLVxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjkwPWNvbmZpZyBJUDZfTkZfVEFSR0VUX05QVFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjkxLVx0dHJpc3RhdGUgXCYjMzQ7TlBUIChOZXR3b3JrIFByZWZpeCB0cmFuc2xhdGlvbikgdGFyZ2V0IHN1cHBvcnRcJiMzNDtcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI5MjpcdGRlcGVuZHMgb24gSVA2X05GX05BVCB8fCBORlRfQ09NUEFUXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yOTMtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc1NzgKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIGBORl9ERUZSQUdfSVBWNmAgRGVwZW5kZW5jeSBhbmQgRnVuY3Rpb24gQ2FsbGVycyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYE5GX0RFRlJBR19JUFY2YCBhbmQgd2hlcmUgaXQgbGl2ZXMsIHdoaWNoIGlzIGluIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBkZXBlbmRlbmN5OiBgSU5FVCAmYW1wOyZhbXA7IElQVjYgJmFtcDsmYW1wOyBORVRGSUxURVJgLiBObyBzdXJwcmlzZXMgdGhlcmU7IHN0YW5kYXJkIHN0dWZmLCByZWFsbHkuIFNvLCBJIG5lZWQgdG8gYmUgc3VyZSB0byBsaXN0IGBORl9ERUZSQUdfSVBWNmAgYXMgYSByZXF1aXJlZCBjb25maWd1cmF0aW9uIG9wdGlvbi4gVGhhdCBwYXJ0IGlzIHN0cmFpZ2h0Zm9yd2FyZC4KCk5vdywgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIGBmaW5kX3ByZXZfZmhkcmAuIEl0JiMzOTtzIGEgYHN0YXRpY2AgZnVuY3Rpb24sIHNvIHRoZSBjb21waWxlciBpcyBwcm9iYWJseSBnb2luZyB0byB0cnkgYW5kIGlubGluZSBpdCB0byBvcHRpbWl6ZS4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLiBUaGUgZGVjbGFyYXRpb24gaXRzZWxmIGlzOgoKYGBgYwpzdGF0aWMgaW50CmZpbmRfcHJldl9maGRyKHN0cnVjdCBza19idWZmICpza2IsIHU4ICpwcmV2aGRycCwgaW50ICpwcmV2aG9mZiwgaW50ICpmaG9mZikKYGBgCgpUaGUgY3J1Y2lhbCB0aGluZyBoZXJlIGlzLCB3aG8gKmNhbGxzKiB0aGlzIHN0YXRpYyBmdW5jdGlvbj8gTG9va2luZyBhdCB0aGUgY29kZSwgaXQmIzM5O3MgY2FsbGVkIGJ5IGBuZl9jdF9mcmFnNl9nYXRoZXJgLiBBbmQsIG9mIGNvdXJzZSwgYG5mX2N0X2ZyYWc2X2dhdGhlcmAgaXMgKmV4cG9ydGVkKiBtZWFuaW5nIGl0JiMzOTtzIHZpc2libGUgb3V0c2lkZSB0aGUgbG9jYWwgbW9kdWxlIGFuZCB0aGUga2VybmVsIGlzICpkZXBlbmRpbmcqIG9uIGl0LiBJdCYjMzk7cyBzYWZlIHRvIHNheSwgdGhhdCYjMzk7cyB0aGUga2V5IHN5bWJvbCB0byBsb29rIGF0IGhlcmUsIGJlY2F1c2UgaWYgd2UmIzM5O3JlIHdvcnJpZWQgYWJvdXQgaW5saW5pbmcsIHdlIHNob3VsZCBiZSBtb3N0IHdvcnJpZWQgYWJvdXQgaXQmIzM5O3MgY2FsbHMuCgpTdGlsbCwgbGV0JiMzOTtzIGp1c3QgbWFrZSAqY2VydGFpbiogdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgY2FsbGVycy4gQWx3YXlzIGEgZ29vZCBwcmFjdGljZSB0byBkb3VibGUtY2hlY2sgdGhlc2UgYXNzdW1wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZpbmRfcHJldl9maGRyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTY9c3RhdGljIGludFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjM5NzpmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtMzk4LXtcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM9NDQ2PWludCBuZl9jdF9mcmFnNl9nYXRoZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcilcbi0tXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDYyLVxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjQ2MzpcdGlmIChmaW5kX3ByZXZfZmhkcihza2IsIFx1MDAyNnByZXZoZHIsIFx1MDAyNm5ob2ZmLCBcdTAwMjZmaG9mZikgXHUwMDNjIDApXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDY0LVx0XHRyZXR1cm4gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODUwMQoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldCoqCgpPa2F5LCBzbyB0aGUgY29kZSBjaGFuZ2Ugc2VlbXMgZm9jdXNlZCBvbiBqdXN0IG9uZSBmdW5jdGlvbjogYG5mX2N0X2ZyYWc2X2dhdGhlcmAuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBhY3R1YWxseSB3b3J0aCBmb2N1c2luZyBvbiBmb3IgZnV6emluZy4gR2l2ZW4gdGhhdCBpdCBoYW5kbGVzIElQdjYgZnJhZ21lbnRzIHdpdGhpbiBuZXRmaWx0ZXIsIGl0JiMzOTtzIG5vdCBhIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb24sIGJ1dCBpdCYjMzk7cyAqc3BlY2lmaWMqIHRvIElQdjYgZnJhZ21lbnRhdGlvbiBpbiB0aGUgbmV0ZmlsdGVyIHN1YnN5c3RlbS4gVGhhdCBtYWtlcyBpdCBhIHNvbGlkIGNhbmRpZGF0ZS4KCk5vdywgd2hhdCBkZXBlbmRlbmNpZXMgZG9lcyB0aGlzIGZ1bmN0aW9uIGhhdmU/IExldCBtZSBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuLi5BaCwgaXQgbG9va3MgbGlrZSBgTkZfREVGUkFHX0lQVjZgIGlzIHRoZSBrZXkuIFRoYXQgc2hvdWxkIGJlIGFsbCBJIG5lZWQuCgpBbHJpZ2h0LCBoZXJl4oCZcyBteSBzdW1tYXJ5OiBUaGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcuIEl0IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gdGhlIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYywgYSBjcml0aWNhbCBjb3JlIG5ldHdvcmsgZnVuY3Rpb25hbGl0eS4gVGhlIGZvY3VzIHN5bWJvbCBpcyBgbmZfY3RfZnJhZzZfZ2F0aGVyYCwgYW5kIEkgc2hvdWxkIGVuYWJsZSBgTkZfREVGUkFHX0lQVjZgLiBUaGUgY2hhbmdlIGlzIGZ1bmN0aW9uYWwgYW5kIGRpcmVjdGx5IGltcGFjdHMgcmVhY2hhYmxlIG5ldHdvcmsgbG9naWMsIG1ha2luZyBpdCBoaWdoLXByaW9yaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfREVGUkFHX0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9jdF9mcmFnNl9nYXRoZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYnVnIGluIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYyBieSBjaGFuZ2luZyB0aGUgdHlwZSBvZiBwcmV2X25ob2ZmIGZyb20gdTggdG8gaW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfREVGUkFHX0lQVjYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9jdF9mcmFnNl9nYXRoZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgYnVnIGluIElQdjYgbmV0ZmlsdGVyIGRlZnJhZ21lbnRhdGlvbiBsb2dpYyBieSBjaGFuZ2luZyB0aGUgdHlwZSBvZiBwcmV2X25ob2ZmIGZyb20gdTggdG8gaW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIHRydW5jYXRpb24gYnVnIHdoZXJlIGBwcmV2X25ob2ZmYCB3YXMgZGVjbGFyZWQgYXMgYSBgdThgIGluc3RlYWQgb2YgYW4gYGludGAuIFdoZW4gcGFyc2luZyBJUHY2IGV4dGVuc2lvbiBoZWFkZXJzLCB0aGUgb2Zmc2V0IG9mIHRoZSBwcmV2aW91cyBoZWFkZXIgY291bGQgZXhjZWVkIDI1NSwgY2F1c2luZyBgcHJldl9uaG9mZmAgdG8gd3JhcCBhcm91bmQuIFRoaXMgdHJ1bmNhdGlvbiB3b3VsZCByZXN1bHQgaW4gYW4gaW5jb3JyZWN0IG9mZnNldCBiZWluZyByZXR1cm5lZCBhbmQgdXNlZCBsYXRlciwgcG90ZW50aWFsbHkgbGVhZGluZyB0byBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcyB3aGVuIGFjY2Vzc2luZyB0aGUgcGFja2V0IGRhdGEuIFRoaXMgaXMgYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaXNzdWUsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IGRldGVjdGVkIGJ5IEtBU0FOLiBJdCBkb2VzIG5vdCBpbnZvbHZlIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgb3IgbGVha2luZyB1bmluaXRpYWxpemVkIGtlcm5lbCBtZW1vcnkgdG8gdXNlciBzcGFjZSwgc28gS01TQU4gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeQplcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZApkZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpCmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLgoKQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46Ci0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZQogIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTgogIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVAKICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLgotIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLAogIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy4KClJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sCkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuCkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFkKc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3MKdGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi4KCkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0CnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLAphIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXMKdGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmcKdW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sCmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSwKY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuCgpTZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6CjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiCiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzCiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuCjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKICAgb3Igc3RydWN0IGZpZWxkcy4KMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcwogICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLgo0LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2VzcwogICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuCgpTZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjoKLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlcgogIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodAogIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS4KLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZAogIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC4KLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuCgpVc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlCmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiY2RhM2RiOWY2YjYwMjZlOTQ0YjVlNTMxZDliM2I1YzVmZjFkYWI5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMjIgMjI6MzI6MTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKaW5kZXggNTk5YzQ5YmYwYTBhZi4uYmU3MmM0MzQ2ZjhiNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYwpAQCAtMzk4LDcgJiM0MzszOTgsNyBAQCBmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpCiB7CiAJdTggbmV4dGhkciA9IGlwdjZfaGRyKHNrYiktJmd0O25leHRoZHI7CiAJY29uc3QgaW50IG5ldG9mZiA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpOwotCXU4IHByZXZfbmhvZmYgPSBuZXRvZmYgJiM0Mzsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpOwomIzQzOwlpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7CiAJaW50IHN0YXJ0ID0gbmV0b2ZmICYjNDM7IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7CiAJaW50IGxlbiA9IHNrYi0mZ3Q7bGVuIC0gc3RhcnQ7CiAJdTggcHJldmhkciA9IE5FWFRIRFJfSVBWNjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNzkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBQYWNrZXQgUmVhc3NlbWJseSBCdWcgRml4KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBtYWtpbmcgYSBzZWVtaW5nbHkgc21hbGwsIGJ1dCBwb3RlbnRpYWxseSBjcnVjaWFsLCBjaGFuZ2Ugd2l0aGluIHRoZSBJUHY2IG5ldGZpbHRlciBjb2RlLiBTcGVjaWZpY2FsbHksIHRoZSBgcHJldl9uaG9mZmAgdmFyaWFibGUgaW4gdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gd2l0aGluIGBuZl9jb25udHJhY2tfcmVhc20uY2AgaXMgYmVpbmcgc3dpdGNoZWQgZnJvbSBhIGB1OGAgdG8gYW4gYGludGAuIFJpZ2h0IGF3YXksIHRoaXMgc2NyZWFtcyBpbnRlZ2VyIG92ZXJmbG93IG9yIHRydW5jYXRpb24gaXNzdWUuIE15IGd1dCBmZWVsaW5nIGlzIHRoYXQgdGhpcyBpcyB0aGUgZml4IGZvciBleGFjdGx5IHRoYXQuCgpUaGUgZGVzY3JpcHRpb24gbWVudGlvbnMgdGhhdCBgcHJldl9uaG9mZmAgaXMgY2FsY3VsYXRlZCBhcyB0aGUgc3VtIG9mIGBuZXRvZmZgIGFuZCB0aGUgYG9mZnNldG9mYCBvZiB0aGUgYG5leHRoZHJgIGZpZWxkIHdpdGhpbiB0aGUgYGlwdjZoZHJgIHN0cnVjdHVyZS4gSWYgYG5ldG9mZmAgZ2V0cyBzdWZmaWNpZW50bHkgbGFyZ2UsIHRoZSByZXN1bHQgb2YgdGhhdCBhZGRpdGlvbiwgaWYgc3RvcmVkIGluIGFuIGB1OGAsIGNvdWxkIHdyYXAgYXJvdW5kLiBUaGF0IHdyYXBhcm91bmQgd291bGQgdGhlbiBsZWFkIHRvIGFuIGluY29ycmVjdCBvZmZzZXQgY2FsY3VsYXRpb24sIHJlc3VsdGluZyBpbiBlaXRoZXIgYW4gb3V0LW9mLWJvdW5kcyByZWFkIG9yIHdyaXRlLCBvciBhdCB0aGUgdmVyeSBsZWFzdCBhIHNlcmlvdXMgbG9naWMgZXJyb3IgaW4gcGFja2V0IHByb2Nlc3NpbmcuIFRoYW5rZnVsbHksIGl0JiMzOTtzIG5vdCBzaW1wbHkgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWUsIHRob3NlIGFyZSBmYXIgbW9yZSBjaGFsbGVuZ2luZyB0byB0cmFjayBkb3duIQoKTm93LCBiZWZvcmUgSSBzaWduIG9mZiBvbiB0aGlzLCBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlIGxvb2sgYXQgdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqZXhhY3RseSogaG93IGBwcmV2X25ob2ZmYCBpcyB1c2VkIGRvd25zdHJlYW0gdG8gYmUgY29tcGxldGVseSBzdXJlIG9mIHRoZSBzY29wZSBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLiBJIHdhbnQgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc2Vzc21lbnQgb2YgdGhlIHByb2JsZW0gYW5kIGVuc3VyZSB0aGlzIHNvbHZlcyB0aGUgcHJvYmxlbSwgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgbmV3IG9uZXMuIEkmIzM5O2xsIGNoZWNrIGhvdyBpdCYjMzk7cyB1c2VkIHRvIGlkZW50aWZ5IGZyYWdtZW50ZWQgaGVhZGVycyBhbmQgZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IG9mZnNldCBmb3IgcmVhc3NlbWJseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmluZF9wcmV2X2ZoZHImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTM5Nj1zdGF0aWMgaW50XG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6Mzk3OmZpbmRfcHJldl9maGRyKHN0cnVjdCBza19idWZmICpza2IsIHU4ICpwcmV2aGRycCwgaW50ICpwcmV2aG9mZiwgaW50ICpmaG9mZilcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy0zOTgte1xuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz00NDY9aW50IG5mX2N0X2ZyYWc2X2dhdGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKVxuLS1cbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy00NjItXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6NDYzOlx0aWYgKGZpbmRfcHJldl9maGRyKHNrYiwgXHUwMDI2cHJldmhkciwgXHUwMDI2bmhvZmYsIFx1MDAyNmZob2ZmKSBcdTAwM2MgMClcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy00NjQtXHRcdHJldHVybiAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTI2CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkFuYWx5emluZyB0aGUgYGZpbmRfcHJldl9maGRyYCBGdW5jdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYGZpbmRfcHJldl9maGRyYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2Ugd2l0aGluIHRoZSBicm9hZGVyIGNvbnRleHQuIFdoYXQmIzM5O3MgaXQgbG9va2luZyBmb3I/IFByZXN1bWFibHksIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBzb21lIGRhdGEgc3RydWN0dXJlIHRoYXQgaW52b2x2ZXMgaGVhZGVycyDigJMgbGlrZWx5IHNvbWUga2luZCBvZiBmaWxlIGZvcm1hdCBvciBkYXRhIHN0cmVhbSB3aXRoIGEgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbi4gVGhlICYjMzQ7cHJldiYjMzQ7IGluIHRoZSBuYW1lIHN1Z2dlc3RzIGl0JiMzOTtzIHNlYXJjaGluZyBmb3IgYSBwcmV2aW91cywgb3IgcHJlY2VkaW5nLCBoZWFkZXIuIEkmIzM5O2xsIG5lZWQgdG8gaW1tZWRpYXRlbHkgc3RhcnQgY29uc2lkZXJpbmcgcG9zc2libGUgZWRnZSBjYXNlczogV2hhdCBoYXBwZW5zIGlmIHRoZXJlICppc24mIzM5O3QqIGEgcHJldmlvdXMgaGVhZGVyPyBJcyB0aGVyZSBhIGRlc2lnbmF0ZWQgJiMzNDtzdGFydCYjMzQ7IG9yICYjMzQ7ZW5kJiMzNDsgbWFya2VyLCBvciBkb2VzIGl0IHJlbHkgb24gb2Zmc2V0cyBvciBzcGVjaWZpYyBieXRlIHNlcXVlbmNlcz8gQXJlIHRoZXJlIHBvdGVudGlhbCBlcnJvciBjb25kaXRpb25zPyBUaGlua2luZyBhaGVhZCwgSSBuZWVkIHRvIGtub3cgaG93IGl0IGhhbmRsZXMgdGhlbS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGZvciBhbnkgcmV0dXJuIHZhbHVlcyB0aGF0IG1pZ2h0IGluZGljYXRlIHN1Y2Nlc3MsIGZhaWx1cmUsIG9yIGEgc3BlY2lhbCAmIzM0O25vdCBmb3VuZCYjMzQ7IHNjZW5hcmlvLiBJIGFsc28gbmVlZCB0byBjb25zaWRlciBwb3RlbnRpYWwgY29uY3VycmVuY3kgaXNzdWVzLiBJcyB0aGUgZnVuY3Rpb24gdGhyZWFkLXNhZmU/IERvZXMgaXQgYXNzdW1lIHNpbmdsZS10aHJlYWRlZCBhY2Nlc3MsIG9yIGRvZXMgaXQgaGF2ZSBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcz8gQSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGlzIGNydWNpYWwuIEFyZSB0aGV5IHBvaW50ZXJzLCByZWZlcmVuY2VzLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gV2hhdCBkYXRhIHR5cGVzIGFyZSBpbnZvbHZlZD8gQXJlIHRoZXJlIGFueSBpbnZhcmlhbnRzIG9yIGFzc3VtcHRpb25zIGFib3V0IHRoZSBpbnB1dCBkYXRhIHRoYXQgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBJJiMzOTtsbCBwcm9iYWJseSBiZSBhYmxlIHRvIGRldGVybWluZSBhbGwgb2YgdGhpcyBqdXN0IGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCB0aGUgZnVuY3Rpb24gZG9lcy4gSSYjMzk7bSBrZWVuIHRvIGdldCB0byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscywgSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgYXJndW1lbnRzIGFuZCByZXR1cm4gdG8gdGhvc2UgY29uc2lkZXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIyIDIyOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzk2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzOTY6XHRzdGF0aWMgaW50XG4gMzk3Olx0ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxuIDM5ODpcdHtcbiAzOTk6XHRcdHU4IG5leHRoZHIgPSBpcHY2X2hkcihza2IpLVx1MDAzZW5leHRoZHI7XG4gNDAwOlx0XHRjb25zdCBpbnQgbmV0b2ZmID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7XG4gNDAxOlx0XHRpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiAmIzQzOyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XG4gNDAyOlx0XHRpbnQgc3RhcnQgPSBuZXRvZmYgJiM0Mzsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcbiA0MDM6XHRcdGludCBsZW4gPSBza2ItXHUwMDNlbGVuIC0gc3RhcnQ7XG4gNDA0Olx0XHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xuIDQwNTpcdFxuIDQwNjpcdFx0d2hpbGUgKG5leHRoZHIgIT0gTkVYVEhEUl9GUkFHTUVOVCkge1xuIDQwNzpcdFx0XHRzdHJ1Y3QgaXB2Nl9vcHRfaGRyIGhkcjtcbiA0MDg6XHRcdFx0aW50IGhkcmxlbjtcbiA0MDk6XHRcbiA0MTA6XHRcdFx0aWYgKCFpcHY2X2V4dF9oZHIobmV4dGhkcikpIHtcbiA0MTE6XHRcdFx0XHRyZXR1cm4gLTE7XG4gNDEyOlx0XHRcdH1cbiA0MTM6XHRcdFx0aWYgKG5leHRoZHIgPT0gTkVYVEhEUl9OT05FKSB7XG4gNDE0Olx0XHRcdFx0cHJfZGVidWcoXCYjMzQ7bmV4dCBoZWFkZXIgaXMgbm9uZVxcblwmIzM0Oyk7XG4gNDE1Olx0XHRcdFx0cmV0dXJuIC0xO1xuIDQxNjpcdFx0XHR9XG4gNDE3Olx0XHRcdGlmIChsZW4gXHUwMDNjIChpbnQpc2l6ZW9mKHN0cnVjdCBpcHY2X29wdF9oZHIpKSB7XG4gNDE4Olx0XHRcdFx0cHJfZGVidWcoXCYjMzQ7dG9vIHNob3J0XFxuXCYjMzQ7KTtcbiA0MTk6XHRcdFx0XHRyZXR1cm4gLTE7XG4gNDIwOlx0XHRcdH1cbiA0MjE6XHRcdFx0aWYgKHNrYl9jb3B5X2JpdHMoc2tiLCBzdGFydCwgXHUwMDI2aGRyLCBzaXplb2YoaGRyKSkpXG4gNDIyOlx0XHRcdFx0cmV0dXJuIC0xO1xuIDQyMzpcdFx0XHRpZiAobmV4dGhkciA9PSBORVhUSERSX0FVVEgpXG4gNDI0Olx0XHRcdFx0aGRybGVuID0gaXB2Nl9hdXRobGVuKFx1MDAyNmhkcik7XG4gNDI1Olx0XHRcdGVsc2VcbiA0MjY6XHRcdFx0XHRoZHJsZW4gPSBpcHY2X29wdGxlbihcdTAwMjZoZHIpO1xuIDQyNzpcdFxuIDQyODpcdFx0XHRwcmV2aGRyID0gbmV4dGhkcjtcbiA0Mjk6XHRcdFx0cHJldl9uaG9mZiA9IHN0YXJ0O1xuIDQzMDpcdFxuIDQzMTpcdFx0XHRuZXh0aGRyID0gaGRyLm5leHRoZHI7XG4gNDMyOlx0XHRcdGxlbiAtPSBoZHJsZW47XG4gNDMzOlx0XHRcdHN0YXJ0ICYjNDM7PSBoZHJsZW47XG4gNDM0Olx0XHR9XG4gNDM1Olx0XG4gNDM2Olx0XHRpZiAobGVuIFx1MDAzYyAwKVxuIDQzNzpcdFx0XHRyZXR1cm4gLTE7XG4gNDM4Olx0XG4gNDM5Olx0XHQqcHJldmhkcnAgPSBwcmV2aGRyO1xuIDQ0MDpcdFx0KnByZXZob2ZmID0gcHJldl9uaG9mZjtcbiA0NDE6XHRcdCpmaG9mZiA9IHN0YXJ0O1xuIDQ0MjpcdFxuIDQ0MzpcdFx0cmV0dXJuIDA7XG4gNDQ0Olx0fVxuIDQ0NTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMiAyMjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDUwCgkJCQkJCQlvdXRwdXQ6IDE2MQoJCQkJCQkJdGhvdWdodHM6IDE1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQnVnKioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIGRlYWwuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgaXNzdWUgYm9pbHMgZG93biB0byBhIGNsYXNzaWMgaW50ZWdlciB0cnVuY2F0aW9uIHByb2JsZW0uIEkgc2VlIHRoYXQgb24gbGluZSA0MjksIGBwcmV2X25ob2ZmYCwgYSBgdThgLCBpcyBiZWluZyBhc3NpZ25lZCBhIHZhbHVlIGZyb20gYHN0YXJ0YCwgd2hpY2ggaXMgYW4gYGludGAuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHByb2JsZW0gYmVnaW5zLiBTaW5jZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGRpZmZlcmVudCBpbnRlZ2VyIHNpemVzLCB0aGUgYXNzaWdubWVudCBjYXVzZXMgYHN0YXJ0YCB0byBiZSB0cnVuY2F0ZWQgZG93biB0byA4IGJpdHMuCgpUaGVuLCB0aGF0IHRydW5jYXRlZCB2YWx1ZSBpcyBkaXJlY3RseSBhc3NpZ25lZCB0byBgKnByZXZob2ZmYCBsYXRlciBvbi4gVGhlIHRyb3VibGUgaXMsIHRoYXQgaW5jb3JyZWN0IG9mZnNldCBpcyB0aGVuIHVzZWQgZG93bnN0cmVhbS4gVGhpcyBtZWFucyBhbnkgc3Vic2VxdWVudCBvcGVyYXRpb25zIHVzaW5nIGAqcHJldmhvZmZgIHRvIGFjY2VzcyBhIHByZXZpb3VzIGhlYWRlciBhcmUgbGlrZWx5IHRvIGdvIGNvbXBsZXRlbHkgaGF5d2lyZSwgcmVzdWx0aW5nIGluIG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzLiBUaGlzIGlzIG5vdCBhYm91dCB1bmluaXRpYWxpemVkIG1lbW9yeSBidXQgcmF0aGVyIGEgY2xlYXIgaW50ZWdlciB0cnVuY2F0aW9uIGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzLiBJJiMzOTtkIGV4cGVjdCBLQVNBTiB0byBmbGFnIHRoaXMgd2l0aCBhbiBlcnJvciBhcyBpdCBzaG91bGQgYmUgYWJsZSB0byBkZXRlY3QgdGhlIHJlc3VsdGluZyBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gQmFzZWQgb24gdGhpcywgSSYjMzk7bSBjb25maWRlbnQgd2UgY2FuIGNsYXNzaWZ5IHRoaXMgYXMgYSBmYWxzZSBwb3NpdGl2ZSBmb3IgTmVlZHNLTVNBTi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjIgMjI6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgdHJ1bmNhdGlvbiBidWcgd2hlcmUgYHByZXZfbmhvZmZgIHdhcyBkZWNsYXJlZCBhcyBhIGB1OGAgaW5zdGVhZCBvZiBhbiBgaW50YC4gV2hlbiBwYXJzaW5nIElQdjYgZXh0ZW5zaW9uIGhlYWRlcnMsIHRoZSBvZmZzZXQgb2YgdGhlIHByZXZpb3VzIGhlYWRlciBjb3VsZCBleGNlZWQgMjU1LCBjYXVzaW5nIGBwcmV2X25ob2ZmYCB0byB3cmFwIGFyb3VuZC4gVGhpcyB0cnVuY2F0aW9uIHdvdWxkIHJlc3VsdCBpbiBhbiBpbmNvcnJlY3Qgb2Zmc2V0IGJlaW5nIHJldHVybmVkIGFuZCB1c2VkIGxhdGVyLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzIHdoZW4gYWNjZXNzaW5nIHRoZSBwYWNrZXQgZGF0YS4gVGhpcyBpcyBhbiBvdXQtb2YtYm91bmRzIGFjY2VzcyBpc3N1ZSwgd2hpY2ggaXMgZWZmZWN0aXZlbHkgZGV0ZWN0ZWQgYnkgS0FTQU4uIEl0IGRvZXMgbm90IGludm9sdmUgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSBvciBsZWFraW5nIHVuaW5pdGlhbGl6ZWQga2VybmVsIG1lbW9yeSB0byB1c2VyIHNwYWNlLCBzbyBLTVNBTiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMyOjExLjg2NjAyMDQyNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MzAzMDg1OTY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9ERUZSQUdfSVBWNlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2N0X2ZyYWc2X2dhdGhlclwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjoxMS44NjYwMjc3MjRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNDk1Njg0MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiY2RhM2RiOWY2YjYwMjZlOTQ0YjVlNTMxZDliM2I1YzVmZjFkYWI5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDIyIDIyOjMyOjEwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xcbmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0XFxuLS0tIGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXFxuKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXFxuQEAgLTM5OCw3ICszOTgsNyBAQCBmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXFxuIHtcXG4gXFx0dTggbmV4dGhkciA9IGlwdjZfaGRyKHNrYiktXFx1MDAzZW5leHRoZHI7XFxuIFxcdGNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTtcXG4tXFx0dTggcHJldl9uaG9mZiA9IG5ldG9mZiArIG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcXG4rXFx0aW50IHByZXZfbmhvZmYgPSBuZXRvZmYgKyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XFxuIFxcdGludCBzdGFydCA9IG5ldG9mZiArIHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7XFxuIFxcdGludCBsZW4gPSBza2ItXFx1MDAzZWxlbiAtIHN0YXJ0O1xcbiBcXHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjoxMy4yMTYzOTMwNDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMzgwNjE5ODAzOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfREVGUkFHX0lQVjZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jdF9mcmFnNl9nYXRoZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBiY2RhM2RiOWY2YjYwMjZlOTQ0YjVlNTMxZDliM2I1YzVmZjFkYWI5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMjIgMjI6MzI6MTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbmluZGV4IDU5OWM0OWJmMGEwYWYuLmJlNzJjNDM0NmY4YjcgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcbisrKyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuQEAgLTM5OCw3ICszOTgsNyBAQCBmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXG4ge1xuIFx0dTggbmV4dGhkciA9IGlwdjZfaGRyKHNrYiktXHUwMDNlbmV4dGhkcjtcbiBcdGNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTtcbi1cdHU4IHByZXZfbmhvZmYgPSBuZXRvZmYgKyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcik7XG4rXHRpbnQgcHJldl9uaG9mZiA9IG5ldG9mZiArIG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcbiBcdGludCBzdGFydCA9IG5ldG9mZiArIHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7XG4gXHRpbnQgbGVuID0gc2tiLVx1MDAzZWxlbiAtIHN0YXJ0O1xuIFx0dTggcHJldmhkciA9IE5FWFRIRFJfSVBWNjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMyOjEzLjIxNjM5NTcxOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNTE3ODk2MDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIENyaXRpY2FsIE5ldGZpbHRlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2guIEl0IHNlZW1zIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgYnV0IGl04oCZcyB0YXJnZXRpbmcgYSBwb3RlbnRpYWxseSBuYXN0eSBwcm9ibGVtIGluIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNgLiBUaGV5J3JlIGNoYW5naW5nIHRoZSB0eXBlIG9mIGBwcmV2X25ob2ZmYCBpbiBgZmluZF9wcmV2X2ZoZHJgIGZyb20gYHU4YCB0byBgaW50YC4gVGhlIGp1c3RpZmljYXRpb24gaXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFuIG92ZXJmbG93IG9yIHRydW5jYXRpb24gaXNzdWUuIFNwZWNpZmljYWxseSwgdGhlIGNhbGN1bGF0aW9uIGBuZXRvZmYgKyBvZmZzZXRvZihzdHJ1Y3QgaXB2NmhkciwgbmV4dGhkcilgIGNvdWxkLCB3aXRoIGEgc3VmZmljaWVudGx5IGxhcmdlIGBuZXRvZmZgIHZhbHVlLCBleGNlZWQgdGhlIG1heGltdW0gdmFsdWUgcmVwcmVzZW50YWJsZSBieSBhIGB1OGAgKDI1NSkuIFRoYXQgbWVhbnMgd2UgY291bGQgYmUgbG9zaW5nIGNydWNpYWwgZGF0YSBpbiBhIHJlYXNzZW1ibHkgY29udGV4dC4gVGhpcyBpcyB0aGUga2luZCBvZiBzdWJ0bGUgYnVnIHRoYXQgY291bGQgbGVhZCB0byBwYWNrZXQgY29ycnVwdGlvbiBvciwgd29yc2UsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgbmVlZHMgdG8gYmUgdGhvcm91Z2hseSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGUgZml4IGlzIGNvcnJlY3QsIGFuZCBkb2Vzbid0IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMuIExldCdzIGRpZyBpbnRvIHRoYXQgYGZpbmRfcHJldl9maGRyYCBmdW5jdGlvbiBhbmQgc2VlIHdoYXQgdGhlIGltcGxpY2F0aW9ucyBhcmUgb2YgdGhpcyBjaGFuZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwODIsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjoyNS43MzQyOTU2ODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA0ODQzMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmluZF9wcmV2X2ZoZHJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTY9c3RhdGljIGludFxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzozOTc6ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy0zOTgte1xcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTQ0Nj1pbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDYyLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NjM6XFx0aWYgKGZpbmRfcHJldl9maGRyKHNrYiwgXFx1MDAyNnByZXZoZHIsIFxcdTAwMjZuaG9mZiwgXFx1MDAyNmZob2ZmKSBcXHUwMDNjIDApXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2NC1cXHRcXHRyZXR1cm4gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzI6MjUuODE0Nzg0NDI5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkxNzEyOTg3NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGbG93IG9mIElQdjYgRnJhZ21lbnQgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBJIHNlZSBgZmluZF9wcmV2X2ZoZHJgIGJlaW5nIGNhbGxlZCBieSBgbmZfY3RfZnJhZzZfZ2F0aGVyYC4gVGhhdCdzIGludGVyZXN0aW5nLCBidXQgbm90IHRoZSB3aG9sZSBwaWN0dXJlLiBJIGtub3cgYG5mX2N0X2ZyYWc2X2dhdGhlcmAgaXMgZWl0aGVyIGV4cG9ydGVkIG9yIGdsb2JhbGx5IGFjY2Vzc2libGUsIG1lYW5pbmcgaXQncyBhIGtleSBmdW5jdGlvbiBmb3Igc29tZXRoaW5nLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJXaGVyZSAqZWxzZSogaXMgdGhpcyBmdW5jdGlvbiB1c2VkP1wiIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0IHdpdGhpbiB0aGUgbGFyZ2VyIElQdjYgZnJhZ21lbnQgcHJvY2Vzc2luZyBmcmFtZXdvcmsuIFBpbnBvaW50aW5nIHRoZSBjYWxsIHNpdGVzIG9mIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGlzIHRoZSBsb2dpY2FsIG5leHQgc3RlcC4gVGhhdCdsbCBwcm92aWRlIGluc2lnaHQgaW50byBpdHMgcm9sZSBhbmQgcHVycG9zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3MiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMyOjU0Ljk4NjA4NTIxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODE2NjgzNDA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2N0X2ZyYWc2X2dhdGhlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL2lwdjYvbmZfZGVmcmFnX2lwdjYuaD0xMj12b2lkIG5mX2N0X2ZyYWc2X2NsZWFudXAodm9pZCk7XFxuaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL2lwdjYvbmZfZGVmcmFnX2lwdjYuaDoxMzppbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpO1xcbmluY2x1ZGUvbmV0L25ldGZpbHRlci9pcHY2L25mX2RlZnJhZ19pcHY2LmgtMTQtXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmM9MTc0PXN0YXRpYyB1bnNpZ25lZCBpbnQgbmZfY3RfYnJfZGVmcmFnNihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jLTE4OS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9uZl9jb25udHJhY2tfYnJpZGdlLmM6MTkwOlxcdGVyciA9IG5mX2N0X2ZyYWc2X2dhdGhlcihzdGF0ZS1cXHUwMDNlbmV0LCBza2IsXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2JyaWRnZS5jLTE5MS1cXHRcXHRcXHRcXHQgSVBfREVGUkFHX0NPTk5UUkFDS19CUklER0VfSU4gKyB6b25lX2lkKTtcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTc9ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ0NS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM6NDQ2OmludCBuZl9jdF9mcmFnNl9nYXRoZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcilcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDQ3LXtcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy01MDItfVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo1MDM6RVhQT1JUX1NZTUJPTF9HUEwobmZfY3RfZnJhZzZfZ2F0aGVyKTtcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNTA0LVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmM9NTI9c3RhdGljIHVuc2lnbmVkIGludCBpcHY2X2RlZnJhZyh2b2lkICpwcml2LFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmMtNjYtXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2RlZnJhZ19pcHY2X2hvb2tzLmM6Njc6XFx0ZXJyID0gbmZfY3RfZnJhZzZfZ2F0aGVyKHN0YXRlLVxcdTAwM2VuZXQsIHNrYixcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfZGVmcmFnX2lwdjZfaG9va3MuYy02OC1cXHRcXHRcXHRcXHQgbmZfY3Q2X2RlZnJhZ191c2VyKHN0YXRlLVxcdTAwM2Vob29rLCBza2IpKTtcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX292cy5jPTE1MT1pbnQgbmZfY3RfaGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19vdnMuYy0xNzEtXFx0XFx0bWVtc2V0KElQNkNCKHNrYiksIDAsIHNpemVvZihzdHJ1Y3QgaW5ldDZfc2tiX3Bhcm0pKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19vdnMuYzoxNzI6XFx0XFx0ZXJyID0gbmZfY3RfZnJhZzZfZ2F0aGVyKG5ldCwgc2tiLCB1c2VyKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19vdnMuYy0xNzMtXFx0XFx0aWYgKGVycikge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozMjo1Ny44MDI3NzI1NThaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTQzOTI5MjgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkgd2VyZSB0aGlua2luZyB0aHJvdWdoIHRoZSBwcm9ibGVtOlxuXG4qKkV4YW1pbmluZyBJUHY2IE5ldGZpbHRlciBDb25uZWN0aW9uIFRyYWNraW5nIERlZnJhZ21lbnRhdGlvbioqXG5cbkFscmlnaHQsIHRoZSByZWxldmFudCBjb2RlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jYC4gVGhhdCB0ZWxscyBtZSByaWdodCBhd2F5IHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgSVB2NiBuZXRmaWx0ZXIncyBjb25uZWN0aW9uIHRyYWNraW5nLCBzcGVjaWZpY2FsbHkgdGhlIGRlZnJhZ21lbnRhdGlvbiBhc3BlY3QuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMsIEkgbmVlZCB0byBrbm93IHVuZGVyIHdoYXQgY29uZGl0aW9ucyB0aGlzIGNvZGUgaXMgZW5hYmxlZC4gS25vd2luZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpbGwgYWxsb3cgbWUgdG8gdW5kZXJzdGFuZCB3aGljaCBmZWF0dXJlcyBkZXBlbmQgb24gdGhpcyBwYXJ0IG9mIHRoZSBjb2RlLiBUaGlzIHdpbGwgaW5mb3JtIG15IGludmVzdGlnYXRpb24gYnkgc2V0dGluZyB0aGUgc3RhZ2UgZm9yIHdoZXJlIGFuZCB3aHkgdGhpcyBjb2RlIHBhdGggd291bGQgYmUgcmVhY2hlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgzMywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjAxLjM0NjcxNDMzMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDkxNDI2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9jb25udHJhY2tfcmVhc21cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZT0xMj1vYmotJChDT05GSUdfSVA2X05GX05BVCkgKz0gaXA2dGFibGVfbmF0Lm9cXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZS0xNC0jIGRlZnJhZ1xcbm5ldC9pcHY2L25ldGZpbHRlci9NYWtlZmlsZToxNTpuZl9kZWZyYWdfaXB2Ni15IDo9IG5mX2RlZnJhZ19pcHY2X2hvb2tzLm8gbmZfY29ubnRyYWNrX3JlYXNtLm9cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvTWFrZWZpbGUtMTYtb2JqLSQoQ09ORklHX05GX0RFRlJBR19JUFY2KSArPSBuZl9kZWZyYWdfaXB2Ni5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjAxLjQxMTYzMjQ4OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NzQyNTg2NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0d29yayBGcmFnbWVudGF0aW9uIEJ1ZyBGaXgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGZpeGluZyBzb21ldGhpbmcgcmVsYXRlZCB0byBJUHY2IGRlZnJhZ21lbnRhdGlvbiB3aXRoaW4gdGhlIGNvbm5lY3Rpb24gdHJhY2tpbmcgY29kZS4gU3BlY2lmaWNhbGx5LCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gYENPTkZJR19ORl9ERUZSQUdfSVBWNmAgaXMgYSBoYXJkIHJlcXVpcmVtZW50IGZvciB0aGlzIGNoYW5nZSwgbWVhbmluZyBpdCdzIG9ubHkgcmVsZXZhbnQgaWYgSVB2NiBkZWZyYWcgaXMgZW5hYmxlZC4gVGhlIGVudHJ5IHBvaW50IGZvciB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgdGhlIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGZ1bmN0aW9uLiBUaGUgY29kZSBtZW50aW9ucyBhIGZpeCBmb3IgYSBwb3RlbnRpYWwgb3ZlcmZsb3cgaW4gYHByZXZfbmhvZmZgIHdoZW4gZGVhbGluZyB3aXRoIGEgbGFyZ2UgYG5ldG9mZmAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBhIGZ1bmN0aW9uYWwgYnVnLCBzb21ldGhpbmcgdGhhdCBjb3VsZCBpbXBhY3QgcmVhbC13b3JsZCB0cmFmZmljLCBzbyB0aGlzIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBNeSBmb2N1cyB3aWxsIGJlIG9uIHRoZSBgbmZfY3RfZnJhZzZfZ2F0aGVyYCBzeW1ib2wsIGFzIHRoYXQncyB3aGVyZSB0aGUgY29yZSBsb2dpYyByZXNpZGVzLiBCZWZvcmUgSSBkaXZlIGludG8gdGhlIGNvZGUgaXRzZWxmLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgYW5kIG1ha2Ugc3VyZSBgTkZfREVGUkFHX0lQVjZgIGRvZXNuJ3QgaGF2ZSBhbnkgaGlkZGVuIGRlcGVuZGVuY2llcyBvciBwcmVyZXF1aXNpdGVzIHRoYXQgSSBuZWVkIHRvIGJlIGF3YXJlIG9mLiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBjYXNjYWRpbmcgaW1wbGljYXRpb25zIHRvIGNvbnNpZGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjIzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjA1LjI4NTg5NDMxM1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MDc3MjYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBORl9ERUZSQUdfSVBWNlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0zMDA9ZW5kbWVudVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTMwMS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzozMDI6Y29uZmlnIE5GX0RFRlJBR19JUFY2XFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMzAzLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjA1LjM4OTk3NjI0NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODk4MTg2NDkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyB0cmlzdGF0ZSBvcHRpb24sIGFuZCBpdCdzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgc2VlbXMgc2VsZi1jb250YWluZWQg4oCTIG5vIG9idmlvdXMgZGVwZW5kZW5jaWVzIGF0IGZpcnN0IGdsYW5jZS4gQnV0IHRoZSBsb2NhdGlvbiwgdHVja2VkIGF3YXkgaW4gYG5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnYCwgaXMgbWFraW5nIG1lIHBhdXNlLiBUaGF0IHN1Z2dlc3RzIGl0IG1pZ2h0IGhhdmUgYSBjb3VwbGUgb2YgaW1wbGllZCBkZXBlbmRlbmNpZXMuIEl0J3MgYWxtb3N0IGNlcnRhaW4gaXQgbmVlZHMgYElQVjZgLCBidXQgYE5FVEZJTFRFUmAgZmVlbHMgbGlrZWx5IHRvbywgZ2l2ZW4gdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuIEp1c3QgdG8gYmUgY29tcGxldGVseSBzdXJlLCBJJ20gZ29pbmcgdG8gcXVpY2tseSBvcGVuIHVwIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ2AgYW5kIHRha2UgYSBsb29rIGZvciBhbnkgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMgYXQgdGhlIGZpbGUgbGV2ZWwuIEEgcXVpY2sgc2NhbiB3aWxsIGNvbmZpcm0gb3IgY2xhcmlmeSB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBvcHRpb24uIEkgbmVlZCB0byBiZSBzdXJlIGJlZm9yZSBJIG1ha2UgYW55IGFzc3VtcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Njk2LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzM6MTUuMjg4MTY1NDI1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDg5ODM0NjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz02PW1lbnUgXFxcIklQdjY6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uXFxcIlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjc6XFx0ZGVwZW5kcyBvbiBJTkVUIFxcdTAwMjZcXHUwMDI2IElQVjYgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctOC1cXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTEwPWNvbmZpZyBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTEtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBJUDYgdGFibGVzIHN1cHBvcnRcXFwiXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTI6XFx0ZGVwZW5kcyBvbiBJTkVUIFxcdTAwMjZcXHUwMDI2IElQVjYgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSX1hUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTM6XFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfWFRBQkxFU1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE0LVxcdGRlZmF1bHRcXHRtIGlmIE5FVEZJTFRFUl9YVEFCTEVTX0xFR0FDWVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9NDM9Y29uZmlnIE5GVF9EVVBfSVBWNlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTQ0LVxcdHRyaXN0YXRlIFxcXCJJUHY2IG5mX3RhYmxlcyBwYWNrZXQgZHVwbGljYXRpb24gc3VwcG9ydFxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo0NTpcXHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgTkZfQ09OTlRSQUNLXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctNDYtXFx0c2VsZWN0IE5GX0RVUF9JUFY2XFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz02MT1jb25maWcgTkZfRFVQX0lQVjZcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy02Mi1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIElQdjYgcGFja2V0IGR1cGxpY2F0aW9uIHRvIGFsdGVybmF0ZSBkZXN0aW5hdGlvblxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo2MzpcXHRkZXBlbmRzIG9uICFORl9DT05OVFJBQ0sgfHwgTkZfQ09OTlRSQUNLXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctNjQtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9ODA9Y29uZmlnIElQNl9ORl9JUFRBQkxFU1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJJUDYgdGFibGVzIHN1cHBvcnQgKHJlcXVpcmVkIGZvciBmaWx0ZXJpbmcpXFxcIlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjgyOlxcdGRlcGVuZHMgb24gSU5FVCBcXHUwMDI2XFx1MDAyNiBJUFY2XFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctODMtXFx0c2VsZWN0IE5FVEZJTFRFUl9YVEFCTEVTXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz05Nj1jb25maWcgSVA2X05GX01BVENIX0FIXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctOTctXFx0dHJpc3RhdGUgJ1xcXCJhaFxcXCIgbWF0Y2ggc3VwcG9ydCdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzo5ODpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTk5LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTEwND1jb25maWcgSVA2X05GX01BVENIX0VVSTY0XFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTA1LVxcdHRyaXN0YXRlICdcXFwiZXVpNjRcXFwiIGFkZHJlc3MgY2hlY2snXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTA2OlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTA3LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTExND1jb25maWcgSVA2X05GX01BVENIX0ZSQUdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXFx0dHJpc3RhdGUgJ1xcXCJmcmFnXFxcIiBGcmFnbWVudGF0aW9uIGhlYWRlciBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjExNjpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTExNy1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMjM9Y29uZmlnIElQNl9ORl9NQVRDSF9PUFRTXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTI0LVxcdHRyaXN0YXRlICdcXFwiaGJoXFxcIiBob3AtYnktaG9wIGFuZCBcXFwiZHN0XFxcIiBvcHRzIGhlYWRlciBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjEyNTpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEyNi1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xMzI9Y29uZmlnIElQNl9ORl9NQVRDSF9ITFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEzMy1cXHR0cmlzdGF0ZSAnXFxcImhsXFxcIiBob3BsaW1pdCBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjEzNDpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTEzNS1cXHRzZWxlY3QgTkVURklMVEVSX1hUX01BVENIX0hMXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xNTA9Y29uZmlnIElQNl9ORl9NQVRDSF9NSFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1MS1cXHR0cmlzdGF0ZSAnXFxcIm1oXFxcIiBtYXRjaCBzdXBwb3J0J1xcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjE1MjpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1My1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0xNTg9Y29uZmlnIElQNl9ORl9NQVRDSF9SUEZJTFRFUlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE1OS1cXHR0cmlzdGF0ZSAnXFxcInJwZmlsdGVyXFxcIiByZXZlcnNlIHBhdGggZmlsdGVyIG1hdGNoIHN1cHBvcnQnXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTYwOlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTYxOlxcdGRlcGVuZHMgb24gSVA2X05GX01BTkdMRSB8fCBJUDZfTkZfUkFXIHx8IE5GVF9DT01QQVRcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNjItXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTY5PWNvbmZpZyBJUDZfTkZfTUFUQ0hfUlRcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNzAtXFx0dHJpc3RhdGUgJ1xcXCJydFxcXCIgUm91dGluZyBoZWFkZXIgbWF0Y2ggc3VwcG9ydCdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxNzE6XFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xNzItXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTc4PWNvbmZpZyBJUDZfTkZfTUFUQ0hfU1JIXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTc5LVxcdHRyaXN0YXRlICdcXFwic3JoXFxcIiBTZWdtZW50IFJvdXRpbmcgaGVhZGVyIG1hdGNoIHN1cHBvcnQnXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MTgwOlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMTgxLVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTE4OD1jb25maWcgSVA2X05GX1RBUkdFVF9ITFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE4OS1cXHR0cmlzdGF0ZSAnXFxcIkhMXFxcIiBob3BsaW1pdCB0YXJnZXQgc3VwcG9ydCdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoxOTA6XFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRUQgXFx1MDAyNlxcdTAwMjYgSVA2X05GX01BTkdMRVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTE5MS1cXHRzZWxlY3QgTkVURklMVEVSX1hUX1RBUkdFVF9ITFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MTk3PWNvbmZpZyBJUDZfTkZfRklMVEVSXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0xOTktXFx0ZGVmYXVsdCBtIGlmIE5FVEZJTFRFUl9BRFZBTkNFRD1uIHx8IElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMDA6XFx0ZGVwZW5kcyBvbiBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjAxLVxcdHRyaXN0YXRlXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yMDk9Y29uZmlnIElQNl9ORl9UQVJHRVRfUkVKRUNUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEwLVxcdHRyaXN0YXRlIFxcXCJSRUpFQ1QgdGFyZ2V0IHN1cHBvcnRcXFwiXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjExOlxcdGRlcGVuZHMgb24gSVA2X05GX0ZJTFRFUiB8fCBORlRfQ09NUEFUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjEyLVxcdHNlbGVjdCBORl9SRUpFQ1RfSVBWNlxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjIxPWNvbmZpZyBJUDZfTkZfVEFSR0VUX1NZTlBST1hZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjIyLVxcdHRyaXN0YXRlIFxcXCJTWU5QUk9YWSB0YXJnZXQgc3VwcG9ydFxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyMjM6XFx0ZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjI0LVxcdHNlbGVjdCBORVRGSUxURVJfU1lOUFJPWFlcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTIzND1jb25maWcgSVA2X05GX01BTkdMRVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjM2LVxcdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9biB8fCBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjM3OlxcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTIzOC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yNDU9Y29uZmlnIElQNl9ORl9SQVdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yNDYtXFx0dHJpc3RhdGUgICdyYXcgdGFibGUgc3VwcG9ydCAocmVxdWlyZWQgZm9yIFRSQUNFKSdcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyNDc6XFx0ZGVwZW5kcyBvbiBJUDZfTkZfSVBUQUJMRVNfTEVHQUNZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjQ4LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI1Nz1jb25maWcgSVA2X05GX1NFQ1VSSVRZXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjU4LVxcdHRyaXN0YXRlIFxcXCJTZWN1cml0eSB0YWJsZVxcXCJcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyNTk6XFx0ZGVwZW5kcyBvbiBTRUNVUklUWVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI2MDpcXHRkZXBlbmRzIG9uIE5FVEZJTFRFUl9BRFZBTkNFRFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI2MTpcXHRkZXBlbmRzIG9uIElQNl9ORl9JUFRBQkxFU19MRUdBQ1lcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yNjItXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc9MjY4PWNvbmZpZyBJUDZfTkZfTkFUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjY5LVxcdHRyaXN0YXRlIFxcXCJpcDZ0YWJsZXMgTkFUIHN1cHBvcnRcXFwiXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcwOlxcdGRlcGVuZHMgb24gTkZfQ09OTlRSQUNLXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcxOlxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWc6MjcyOlxcdGRlcGVuZHMgb24gSVA2X05GX0lQVEFCTEVTX0xFR0FDWVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTI3My1cXHRzZWxlY3QgTkZfTkFUXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZz0yODI9Y29uZmlnIElQNl9ORl9UQVJHRVRfTUFTUVVFUkFERVxcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjg0LVxcdHNlbGVjdCBORVRGSUxURVJfWFRfVEFSR0VUX01BU1FVRVJBREVcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZzoyODU6XFx0ZGVwZW5kcyBvbiBJUDZfTkZfTkFUXFxubmV0L2lwdjYvbmV0ZmlsdGVyL0tjb25maWctMjg2LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnPTI5MD1jb25maWcgSVA2X05GX1RBUkdFVF9OUFRcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZy0yOTEtXFx0dHJpc3RhdGUgXFxcIk5QVCAoTmV0d29yayBQcmVmaXggdHJhbnNsYXRpb24pIHRhcmdldCBzdXBwb3J0XFxcIlxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnOjI5MjpcXHRkZXBlbmRzIG9uIElQNl9ORl9OQVQgfHwgTkZUX0NPTVBBVFxcbm5ldC9pcHY2L25ldGZpbHRlci9LY29uZmlnLTI5My1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjMzOjE2LjA5NzE1MzMxNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODQxNTg2NDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgYE5GX0RFRlJBR19JUFY2YCBEZXBlbmRlbmN5IGFuZCBGdW5jdGlvbiBDYWxsZXJzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYE5GX0RFRlJBR19JUFY2YCBhbmQgd2hlcmUgaXQgbGl2ZXMsIHdoaWNoIGlzIGluIGBuZXQvaXB2Ni9uZXRmaWx0ZXIvS2NvbmZpZ2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBkZXBlbmRlbmN5OiBgSU5FVCBcdTAwMjZcdTAwMjYgSVBWNiBcdTAwMjZcdTAwMjYgTkVURklMVEVSYC4gTm8gc3VycHJpc2VzIHRoZXJlOyBzdGFuZGFyZCBzdHVmZiwgcmVhbGx5LiBTbywgSSBuZWVkIHRvIGJlIHN1cmUgdG8gbGlzdCBgTkZfREVGUkFHX0lQVjZgIGFzIGEgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBvcHRpb24uIFRoYXQgcGFydCBpcyBzdHJhaWdodGZvcndhcmQuXG5cbk5vdywgbGV0J3MgY2lyY2xlIGJhY2sgdG8gYGZpbmRfcHJldl9maGRyYC4gSXQncyBhIGBzdGF0aWNgIGZ1bmN0aW9uLCBzbyB0aGUgY29tcGlsZXIgaXMgcHJvYmFibHkgZ29pbmcgdG8gdHJ5IGFuZCBpbmxpbmUgaXQgdG8gb3B0aW1pemUuIEkgbmVlZCB0byBrZWVwIHRoYXQgaW4gbWluZC4gVGhlIGRlY2xhcmF0aW9uIGl0c2VsZiBpczpcblxuYGBgY1xuc3RhdGljIGludFxuZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxuYGBgXG5cblRoZSBjcnVjaWFsIHRoaW5nIGhlcmUgaXMsIHdobyAqY2FsbHMqIHRoaXMgc3RhdGljIGZ1bmN0aW9uPyBMb29raW5nIGF0IHRoZSBjb2RlLCBpdCdzIGNhbGxlZCBieSBgbmZfY3RfZnJhZzZfZ2F0aGVyYC4gQW5kLCBvZiBjb3Vyc2UsIGBuZl9jdF9mcmFnNl9nYXRoZXJgIGlzICpleHBvcnRlZCogbWVhbmluZyBpdCdzIHZpc2libGUgb3V0c2lkZSB0aGUgbG9jYWwgbW9kdWxlIGFuZCB0aGUga2VybmVsIGlzICpkZXBlbmRpbmcqIG9uIGl0LiBJdCdzIHNhZmUgdG8gc2F5LCB0aGF0J3MgdGhlIGtleSBzeW1ib2wgdG8gbG9vayBhdCBoZXJlLCBiZWNhdXNlIGlmIHdlJ3JlIHdvcnJpZWQgYWJvdXQgaW5saW5pbmcsIHdlIHNob3VsZCBiZSBtb3N0IHdvcnJpZWQgYWJvdXQgaXQncyBjYWxscy5cblxuU3RpbGwsIGxldCdzIGp1c3QgbWFrZSAqY2VydGFpbiogdGhlcmUgYXJlbid0IGFueSBvdGhlciBjYWxsZXJzLiBBbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIGRvdWJsZS1jaGVjayB0aGVzZSBhc3N1bXB0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzU3OCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNDoyNC41MTMwMjAwMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM2OTEwNjMyNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmaW5kX3ByZXZfZmhkclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTM5Nj1zdGF0aWMgaW50XFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjM5NzpmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTM5OC17XFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmM9NDQ2PWludCBuZl9jdF9mcmFnNl9nYXRoZXIoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcilcXG4tLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy00NjItXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jOjQ2MzpcXHRpZiAoZmluZF9wcmV2X2ZoZHIoc2tiLCBcXHUwMDI2cHJldmhkciwgXFx1MDAyNm5ob2ZmLCBcXHUwMDI2ZmhvZmYpIFxcdTAwM2MgMClcXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDY0LVxcdFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNDoyNS44ODIxNDAxMTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI1MDc0ODUzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldCoqXG5cbk9rYXksIHNvIHRoZSBjb2RlIGNoYW5nZSBzZWVtcyBmb2N1c2VkIG9uIGp1c3Qgb25lIGZ1bmN0aW9uOiBgbmZfY3RfZnJhZzZfZ2F0aGVyYC4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQncyBhY3R1YWxseSB3b3J0aCBmb2N1c2luZyBvbiBmb3IgZnV6emluZy4gR2l2ZW4gdGhhdCBpdCBoYW5kbGVzIElQdjYgZnJhZ21lbnRzIHdpdGhpbiBuZXRmaWx0ZXIsIGl0J3Mgbm90IGEgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbiwgYnV0IGl0J3MgKnNwZWNpZmljKiB0byBJUHY2IGZyYWdtZW50YXRpb24gaW4gdGhlIG5ldGZpbHRlciBzdWJzeXN0ZW0uIFRoYXQgbWFrZXMgaXQgYSBzb2xpZCBjYW5kaWRhdGUuXG5cbk5vdywgd2hhdCBkZXBlbmRlbmNpZXMgZG9lcyB0aGlzIGZ1bmN0aW9uIGhhdmU/IExldCBtZSBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuLi5BaCwgaXQgbG9va3MgbGlrZSBgTkZfREVGUkFHX0lQVjZgIGlzIHRoZSBrZXkuIFRoYXQgc2hvdWxkIGJlIGFsbCBJIG5lZWQuXG5cbkFscmlnaHQsIGhlcmXigJlzIG15IHN1bW1hcnk6IFRoaXMgcGF0Y2ggaXMgd29ydGggZnV6emluZy4gSXQgYWRkcmVzc2VzIGEgcG90ZW50aWFsIG92ZXJmbG93IGJ1ZyBpbiB0aGUgSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljLCBhIGNyaXRpY2FsIGNvcmUgbmV0d29yayBmdW5jdGlvbmFsaXR5LiBUaGUgZm9jdXMgc3ltYm9sIGlzIGBuZl9jdF9mcmFnNl9nYXRoZXJgLCBhbmQgSSBzaG91bGQgZW5hYmxlIGBORl9ERUZSQUdfSVBWNmAuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCBhbmQgZGlyZWN0bHkgaW1wYWN0cyByZWFjaGFibGUgbmV0d29yayBsb2dpYywgbWFraW5nIGl0IGhpZ2gtcHJpb3JpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg1MDEsIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzEuMTMyODkxNTA5WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1NDc3NTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9ERUZSQUdfSVBWNlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2N0X2ZyYWc2X2dhdGhlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG92ZXJmbG93IGJ1ZyBpbiBJUHY2IG5ldGZpbHRlciBkZWZyYWdtZW50YXRpb24gbG9naWMgYnkgY2hhbmdpbmcgdGhlIHR5cGUgb2YgcHJldl9uaG9mZiBmcm9tIHU4IHRvIGludC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfREVGUkFHX0lQVjZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jdF9mcmFnNl9nYXRoZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdmVyZmxvdyBidWcgaW4gSVB2NiBuZXRmaWx0ZXIgZGVmcmFnbWVudGF0aW9uIGxvZ2ljIGJ5IGNoYW5naW5nIHRoZSB0eXBlIG9mIHByZXZfbmhvZmYgZnJvbSB1OCB0byBpbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNDozMS4yNzgzNzg3NzdaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNjE4NDkyODEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzEuMjgxMjg1Mjc3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMzNjE1NTgyMjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIHRydW5jYXRpb24gYnVnIHdoZXJlIGBwcmV2X25ob2ZmYCB3YXMgZGVjbGFyZWQgYXMgYSBgdThgIGluc3RlYWQgb2YgYW4gYGludGAuIFdoZW4gcGFyc2luZyBJUHY2IGV4dGVuc2lvbiBoZWFkZXJzLCB0aGUgb2Zmc2V0IG9mIHRoZSBwcmV2aW91cyBoZWFkZXIgY291bGQgZXhjZWVkIDI1NSwgY2F1c2luZyBgcHJldl9uaG9mZmAgdG8gd3JhcCBhcm91bmQuIFRoaXMgdHJ1bmNhdGlvbiB3b3VsZCByZXN1bHQgaW4gYW4gaW5jb3JyZWN0IG9mZnNldCBiZWluZyByZXR1cm5lZCBhbmQgdXNlZCBsYXRlciwgcG90ZW50aWFsbHkgbGVhZGluZyB0byBvdXQtb2YtYm91bmRzIHJlYWRzIG9yIHdyaXRlcyB3aGVuIGFjY2Vzc2luZyB0aGUgcGFja2V0IGRhdGEuIFRoaXMgaXMgYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaXNzdWUsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IGRldGVjdGVkIGJ5IEtBU0FOLiBJdCBkb2VzIG5vdCBpbnZvbHZlIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnkgb3IgbGVha2luZyB1bmluaXRpYWxpemVkIGtlcm5lbCBtZW1vcnkgdG8gdXNlciBzcGFjZSwgc28gS01TQU4gaXMgbm90IHJlcXVpcmVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJjZGEzZGI5ZjZiNjAyNmU5NDRiNWU1MzFkOWIzYjVjNWZmMWRhYjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyMiAyMjozMjoxMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuaW5kZXggNTk5YzQ5YmYwYTBhZi4uYmU3MmM0MzQ2ZjhiNyAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uY1xuKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXG5AQCAtMzk4LDcgKzM5OCw3IEBAIGZpbmRfcHJldl9maGRyKHN0cnVjdCBza19idWZmICpza2IsIHU4ICpwcmV2aGRycCwgaW50ICpwcmV2aG9mZiwgaW50ICpmaG9mZilcbiB7XG4gXHR1OCBuZXh0aGRyID0gaXB2Nl9oZHIoc2tiKS1cdTAwM2VuZXh0aGRyO1xuIFx0Y29uc3QgaW50IG5ldG9mZiA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpO1xuLVx0dTggcHJldl9uaG9mZiA9IG5ldG9mZiArIG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTtcbitcdGludCBwcmV2X25ob2ZmID0gbmV0b2ZmICsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpO1xuIFx0aW50IHN0YXJ0ID0gbmV0b2ZmICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcbiBcdGludCBsZW4gPSBza2ItXHUwMDNlbGVuIC0gc3RhcnQ7XG4gXHR1OCBwcmV2aGRyID0gTkVYVEhEUl9JUFY2O1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzEuMjgxMjg3MjE3WiIsIlNlcSI6MTksIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxNDI1NjA4NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0d29yayBQYWNrZXQgUmVhc3NlbWJseSBCdWcgRml4KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtYWtpbmcgYSBzZWVtaW5nbHkgc21hbGwsIGJ1dCBwb3RlbnRpYWxseSBjcnVjaWFsLCBjaGFuZ2Ugd2l0aGluIHRoZSBJUHY2IG5ldGZpbHRlciBjb2RlLiBTcGVjaWZpY2FsbHksIHRoZSBgcHJldl9uaG9mZmAgdmFyaWFibGUgaW4gdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gd2l0aGluIGBuZl9jb25udHJhY2tfcmVhc20uY2AgaXMgYmVpbmcgc3dpdGNoZWQgZnJvbSBhIGB1OGAgdG8gYW4gYGludGAuIFJpZ2h0IGF3YXksIHRoaXMgc2NyZWFtcyBpbnRlZ2VyIG92ZXJmbG93IG9yIHRydW5jYXRpb24gaXNzdWUuIE15IGd1dCBmZWVsaW5nIGlzIHRoYXQgdGhpcyBpcyB0aGUgZml4IGZvciBleGFjdGx5IHRoYXQuXG5cblRoZSBkZXNjcmlwdGlvbiBtZW50aW9ucyB0aGF0IGBwcmV2X25ob2ZmYCBpcyBjYWxjdWxhdGVkIGFzIHRoZSBzdW0gb2YgYG5ldG9mZmAgYW5kIHRoZSBgb2Zmc2V0b2ZgIG9mIHRoZSBgbmV4dGhkcmAgZmllbGQgd2l0aGluIHRoZSBgaXB2NmhkcmAgc3RydWN0dXJlLiBJZiBgbmV0b2ZmYCBnZXRzIHN1ZmZpY2llbnRseSBsYXJnZSwgdGhlIHJlc3VsdCBvZiB0aGF0IGFkZGl0aW9uLCBpZiBzdG9yZWQgaW4gYW4gYHU4YCwgY291bGQgd3JhcCBhcm91bmQuIFRoYXQgd3JhcGFyb3VuZCB3b3VsZCB0aGVuIGxlYWQgdG8gYW4gaW5jb3JyZWN0IG9mZnNldCBjYWxjdWxhdGlvbiwgcmVzdWx0aW5nIGluIGVpdGhlciBhbiBvdXQtb2YtYm91bmRzIHJlYWQgb3Igd3JpdGUsIG9yIGF0IHRoZSB2ZXJ5IGxlYXN0IGEgc2VyaW91cyBsb2dpYyBlcnJvciBpbiBwYWNrZXQgcHJvY2Vzc2luZy4gVGhhbmtmdWxseSwgaXQncyBub3Qgc2ltcGx5IGFuIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGlzc3VlLCB0aG9zZSBhcmUgZmFyIG1vcmUgY2hhbGxlbmdpbmcgdG8gdHJhY2sgZG93biFcblxuTm93LCBiZWZvcmUgSSBzaWduIG9mZiBvbiB0aGlzLCBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlIGxvb2sgYXQgdGhlIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24gaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCAqZXhhY3RseSogaG93IGBwcmV2X25ob2ZmYCBpcyB1c2VkIGRvd25zdHJlYW0gdG8gYmUgY29tcGxldGVseSBzdXJlIG9mIHRoZSBzY29wZSBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgY2hhbmdlLiBJIHdhbnQgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc2Vzc21lbnQgb2YgdGhlIHByb2JsZW0gYW5kIGVuc3VyZSB0aGlzIHNvbHZlcyB0aGUgcHJvYmxlbSwgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgb25lcy4gSSdsbCBjaGVjayBob3cgaXQncyB1c2VkIHRvIGlkZW50aWZ5IGZyYWdtZW50ZWQgaGVhZGVycyBhbmQgZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IG9mZnNldCBmb3IgcmVhc3NlbWJseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA3OSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIyVDIyOjM0OjM4LjQyMzg1MTUwMVoiLCJTZXEiOjIwLCJOZXN0aW5nIjozLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc3MDYyOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmluZF9wcmV2X2ZoZHJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYz0zOTY9c3RhdGljIGludFxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzozOTc6ZmluZF9wcmV2X2ZoZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKnByZXZoZHJwLCBpbnQgKnByZXZob2ZmLCBpbnQgKmZob2ZmKVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYy0zOTgte1xcbi0tXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jPTQ0Nj1pbnQgbmZfY3RfZnJhZzZfZ2F0aGVyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHVzZXIpXFxuLS1cXG5uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMtNDYyLVxcbm5ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYzo0NjM6XFx0aWYgKGZpbmRfcHJldl9maGRyKHNrYiwgXFx1MDAyNnByZXZoZHIsIFxcdTAwMjZuaG9mZiwgXFx1MDAyNmZob2ZmKSBcXHUwMDNjIDApXFxubmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jLTQ2NC1cXHRcXHRyZXR1cm4gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6MzguNDkxNTcxMTVaIiwiU2VxIjoyMSwiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTMxOTc2MTA2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkFuYWx5emluZyB0aGUgYGZpbmRfcHJldl9maGRyYCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzIGBmaW5kX3ByZXZfZmhkcmAgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIGl0cyBwdXJwb3NlIHdpdGhpbiB0aGUgYnJvYWRlciBjb250ZXh0LiBXaGF0J3MgaXQgbG9va2luZyBmb3I/IFByZXN1bWFibHksIGl0J3MgZGVhbGluZyB3aXRoIHNvbWUgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBpbnZvbHZlcyBoZWFkZXJzIOKAkyBsaWtlbHkgc29tZSBraW5kIG9mIGZpbGUgZm9ybWF0IG9yIGRhdGEgc3RyZWFtIHdpdGggYSBoaWVyYXJjaGljYWwgb3JnYW5pemF0aW9uLiBUaGUgXCJwcmV2XCIgaW4gdGhlIG5hbWUgc3VnZ2VzdHMgaXQncyBzZWFyY2hpbmcgZm9yIGEgcHJldmlvdXMsIG9yIHByZWNlZGluZywgaGVhZGVyLiBJJ2xsIG5lZWQgdG8gaW1tZWRpYXRlbHkgc3RhcnQgY29uc2lkZXJpbmcgcG9zc2libGUgZWRnZSBjYXNlczogV2hhdCBoYXBwZW5zIGlmIHRoZXJlICppc24ndCogYSBwcmV2aW91cyBoZWFkZXI/IElzIHRoZXJlIGEgZGVzaWduYXRlZCBcInN0YXJ0XCIgb3IgXCJlbmRcIiBtYXJrZXIsIG9yIGRvZXMgaXQgcmVseSBvbiBvZmZzZXRzIG9yIHNwZWNpZmljIGJ5dGUgc2VxdWVuY2VzPyBBcmUgdGhlcmUgcG90ZW50aWFsIGVycm9yIGNvbmRpdGlvbnM/IFRoaW5raW5nIGFoZWFkLCBJIG5lZWQgdG8ga25vdyBob3cgaXQgaGFuZGxlcyB0aGVtLiBJJ2xsIG5lZWQgdG8gbG9vayBmb3IgYW55IHJldHVybiB2YWx1ZXMgdGhhdCBtaWdodCBpbmRpY2F0ZSBzdWNjZXNzLCBmYWlsdXJlLCBvciBhIHNwZWNpYWwgXCJub3QgZm91bmRcIiBzY2VuYXJpby4gSSBhbHNvIG5lZWQgdG8gY29uc2lkZXIgcG90ZW50aWFsIGNvbmN1cnJlbmN5IGlzc3Vlcy4gSXMgdGhlIGZ1bmN0aW9uIHRocmVhZC1zYWZlPyBEb2VzIGl0IGFzc3VtZSBzaW5nbGUtdGhyZWFkZWQgYWNjZXNzLCBvciBkb2VzIGl0IGhhdmUgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbXM/IEEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgaW5wdXQgcGFyYW1ldGVycyBpcyBjcnVjaWFsLiBBcmUgdGhleSBwb2ludGVycywgcmVmZXJlbmNlcywgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFdoYXQgZGF0YSB0eXBlcyBhcmUgaW52b2x2ZWQ/IEFyZSB0aGVyZSBhbnkgaW52YXJpYW50cyBvciBhc3N1bXB0aW9ucyBhYm91dCB0aGUgaW5wdXQgZGF0YSB0aGF0IEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gSSdsbCBwcm9iYWJseSBiZSBhYmxlIHRvIGRldGVybWluZSBhbGwgb2YgdGhpcyBqdXN0IGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCB0aGUgZnVuY3Rpb24gZG9lcy4gSSdtIGtlZW4gdG8gZ2V0IHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCBJJ2xsIHN0YXJ0IHdpdGggdGhlIGFyZ3VtZW50cyBhbmQgcmV0dXJuIHRvIHRob3NlIGNvbnNpZGVyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTI2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6NDMuODExMzM0MjJaIiwiU2VxIjoyMiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM2OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM5NixcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDM5NjpcXHRzdGF0aWMgaW50XFxuIDM5NzpcXHRmaW5kX3ByZXZfZmhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJldmhkcnAsIGludCAqcHJldmhvZmYsIGludCAqZmhvZmYpXFxuIDM5ODpcXHR7XFxuIDM5OTpcXHRcXHR1OCBuZXh0aGRyID0gaXB2Nl9oZHIoc2tiKS1cXHUwMDNlbmV4dGhkcjtcXG4gNDAwOlxcdFxcdGNvbnN0IGludCBuZXRvZmYgPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTtcXG4gNDAxOlxcdFxcdGludCBwcmV2X25ob2ZmID0gbmV0b2ZmICsgb2Zmc2V0b2Yoc3RydWN0IGlwdjZoZHIsIG5leHRoZHIpO1xcbiA0MDI6XFx0XFx0aW50IHN0YXJ0ID0gbmV0b2ZmICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTtcXG4gNDAzOlxcdFxcdGludCBsZW4gPSBza2ItXFx1MDAzZWxlbiAtIHN0YXJ0O1xcbiA0MDQ6XFx0XFx0dTggcHJldmhkciA9IE5FWFRIRFJfSVBWNjtcXG4gNDA1OlxcdFxcbiA0MDY6XFx0XFx0d2hpbGUgKG5leHRoZHIgIT0gTkVYVEhEUl9GUkFHTUVOVCkge1xcbiA0MDc6XFx0XFx0XFx0c3RydWN0IGlwdjZfb3B0X2hkciBoZHI7XFxuIDQwODpcXHRcXHRcXHRpbnQgaGRybGVuO1xcbiA0MDk6XFx0XFxuIDQxMDpcXHRcXHRcXHRpZiAoIWlwdjZfZXh0X2hkcihuZXh0aGRyKSkge1xcbiA0MTE6XFx0XFx0XFx0XFx0cmV0dXJuIC0xO1xcbiA0MTI6XFx0XFx0XFx0fVxcbiA0MTM6XFx0XFx0XFx0aWYgKG5leHRoZHIgPT0gTkVYVEhEUl9OT05FKSB7XFxuIDQxNDpcXHRcXHRcXHRcXHRwcl9kZWJ1ZyhcXFwibmV4dCBoZWFkZXIgaXMgbm9uZVxcXFxuXFxcIik7XFxuIDQxNTpcXHRcXHRcXHRcXHRyZXR1cm4gLTE7XFxuIDQxNjpcXHRcXHRcXHR9XFxuIDQxNzpcXHRcXHRcXHRpZiAobGVuIFxcdTAwM2MgKGludClzaXplb2Yoc3RydWN0IGlwdjZfb3B0X2hkcikpIHtcXG4gNDE4OlxcdFxcdFxcdFxcdHByX2RlYnVnKFxcXCJ0b28gc2hvcnRcXFxcblxcXCIpO1xcbiA0MTk6XFx0XFx0XFx0XFx0cmV0dXJuIC0xO1xcbiA0MjA6XFx0XFx0XFx0fVxcbiA0MjE6XFx0XFx0XFx0aWYgKHNrYl9jb3B5X2JpdHMoc2tiLCBzdGFydCwgXFx1MDAyNmhkciwgc2l6ZW9mKGhkcikpKVxcbiA0MjI6XFx0XFx0XFx0XFx0cmV0dXJuIC0xO1xcbiA0MjM6XFx0XFx0XFx0aWYgKG5leHRoZHIgPT0gTkVYVEhEUl9BVVRIKVxcbiA0MjQ6XFx0XFx0XFx0XFx0aGRybGVuID0gaXB2Nl9hdXRobGVuKFxcdTAwMjZoZHIpO1xcbiA0MjU6XFx0XFx0XFx0ZWxzZVxcbiA0MjY6XFx0XFx0XFx0XFx0aGRybGVuID0gaXB2Nl9vcHRsZW4oXFx1MDAyNmhkcik7XFxuIDQyNzpcXHRcXG4gNDI4OlxcdFxcdFxcdHByZXZoZHIgPSBuZXh0aGRyO1xcbiA0Mjk6XFx0XFx0XFx0cHJldl9uaG9mZiA9IHN0YXJ0O1xcbiA0MzA6XFx0XFxuIDQzMTpcXHRcXHRcXHRuZXh0aGRyID0gaGRyLm5leHRoZHI7XFxuIDQzMjpcXHRcXHRcXHRsZW4gLT0gaGRybGVuO1xcbiA0MzM6XFx0XFx0XFx0c3RhcnQgKz0gaGRybGVuO1xcbiA0MzQ6XFx0XFx0fVxcbiA0MzU6XFx0XFxuIDQzNjpcXHRcXHRpZiAobGVuIFxcdTAwM2MgMClcXG4gNDM3OlxcdFxcdFxcdHJldHVybiAtMTtcXG4gNDM4OlxcdFxcbiA0Mzk6XFx0XFx0KnByZXZoZHJwID0gcHJldmhkcjtcXG4gNDQwOlxcdFxcdCpwcmV2aG9mZiA9IHByZXZfbmhvZmY7XFxuIDQ0MTpcXHRcXHQqZmhvZmYgPSBzdGFydDtcXG4gNDQyOlxcdFxcbiA0NDM6XFx0XFx0cmV0dXJuIDA7XFxuIDQ0NDpcXHR9XFxuIDQ0NTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjJUMjI6MzQ6NDMuODExNDE5NDlaIiwiU2VxIjoyMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEwODU0MjcwMDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEJ1ZyoqXG5cbk9rYXksIHNvIGhlcmUncyB0aGUgZGVhbC4gSXQgbG9va3MgbGlrZSB0aGUgY29yZSBpc3N1ZSBib2lscyBkb3duIHRvIGEgY2xhc3NpYyBpbnRlZ2VyIHRydW5jYXRpb24gcHJvYmxlbS4gSSBzZWUgdGhhdCBvbiBsaW5lIDQyOSwgYHByZXZfbmhvZmZgLCBhIGB1OGAsIGlzIGJlaW5nIGFzc2lnbmVkIGEgdmFsdWUgZnJvbSBgc3RhcnRgLCB3aGljaCBpcyBhbiBgaW50YC4gVGhhdCdzIHdoZXJlIHRoZSBwcm9ibGVtIGJlZ2lucy4gU2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGRpZmZlcmVudCBpbnRlZ2VyIHNpemVzLCB0aGUgYXNzaWdubWVudCBjYXVzZXMgYHN0YXJ0YCB0byBiZSB0cnVuY2F0ZWQgZG93biB0byA4IGJpdHMuXG5cblRoZW4sIHRoYXQgdHJ1bmNhdGVkIHZhbHVlIGlzIGRpcmVjdGx5IGFzc2lnbmVkIHRvIGAqcHJldmhvZmZgIGxhdGVyIG9uLiBUaGUgdHJvdWJsZSBpcywgdGhhdCBpbmNvcnJlY3Qgb2Zmc2V0IGlzIHRoZW4gdXNlZCBkb3duc3RyZWFtLiBUaGlzIG1lYW5zIGFueSBzdWJzZXF1ZW50IG9wZXJhdGlvbnMgdXNpbmcgYCpwcmV2aG9mZmAgdG8gYWNjZXNzIGEgcHJldmlvdXMgaGVhZGVyIGFyZSBsaWtlbHkgdG8gZ28gY29tcGxldGVseSBoYXl3aXJlLCByZXN1bHRpbmcgaW4gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMuIFRoaXMgaXMgbm90IGFib3V0IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJ1dCByYXRoZXIgYSBjbGVhciBpbnRlZ2VyIHRydW5jYXRpb24gbGVhZGluZyB0byBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MuIEknZCBleHBlY3QgS0FTQU4gdG8gZmxhZyB0aGlzIHdpdGggYW4gZXJyb3IgYXMgaXQgc2hvdWxkIGJlIGFibGUgdG8gZGV0ZWN0IHRoZSByZXN1bHRpbmcgb3V0LW9mLWJvdW5kcyBhY2Nlc3MuIEJhc2VkIG9uIHRoaXMsIEknbSBjb25maWRlbnQgd2UgY2FuIGNsYXNzaWZ5IHRoaXMgYXMgYSBmYWxzZSBwb3NpdGl2ZSBmb3IgTmVlZHNLTVNBTi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1MCwiT3V0cHV0VG9rZW5zIjoxNjEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMlQyMjozNTowNC44OTY4NDkzOTlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgdHJ1bmNhdGlvbiBidWcgd2hlcmUgYHByZXZfbmhvZmZgIHdhcyBkZWNsYXJlZCBhcyBhIGB1OGAgaW5zdGVhZCBvZiBhbiBgaW50YC4gV2hlbiBwYXJzaW5nIElQdjYgZXh0ZW5zaW9uIGhlYWRlcnMsIHRoZSBvZmZzZXQgb2YgdGhlIHByZXZpb3VzIGhlYWRlciBjb3VsZCBleGNlZWQgMjU1LCBjYXVzaW5nIGBwcmV2X25ob2ZmYCB0byB3cmFwIGFyb3VuZC4gVGhpcyB0cnVuY2F0aW9uIHdvdWxkIHJlc3VsdCBpbiBhbiBpbmNvcnJlY3Qgb2Zmc2V0IGJlaW5nIHJldHVybmVkIGFuZCB1c2VkIGxhdGVyLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIG91dC1vZi1ib3VuZHMgcmVhZHMgb3Igd3JpdGVzIHdoZW4gYWNjZXNzaW5nIHRoZSBwYWNrZXQgZGF0YS4gVGhpcyBpcyBhbiBvdXQtb2YtYm91bmRzIGFjY2VzcyBpc3N1ZSwgd2hpY2ggaXMgZWZmZWN0aXZlbHkgZGV0ZWN0ZWQgYnkgS0FTQU4uIEl0IGRvZXMgbm90IGludm9sdmUgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSBvciBsZWFraW5nIHVuaW5pdGlhbGl6ZWQga2VybmVsIG1lbW9yeSB0byB1c2VyIHNwYWNlLCBzbyBLTVNBTiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciB0cnVuY2F0aW9uIGJ1ZyB3aGVyZSBgcHJldl9uaG9mZmAgd2FzIGRlY2xhcmVkIGFzIGEgYHU4YCBpbnN0ZWFkIG9mIGFuIGBpbnRgLiBXaGVuIHBhcnNpbmcgSVB2NiBleHRlbnNpb24gaGVhZGVycywgdGhlIG9mZnNldCBvZiB0aGUgcHJldmlvdXMgaGVhZGVyIGNvdWxkIGV4Y2VlZCAyNTUsIGNhdXNpbmcgYHByZXZfbmhvZmZgIHRvIHdyYXAgYXJvdW5kLiBUaGlzIHRydW5jYXRpb24gd291bGQgcmVzdWx0IGluIGFuIGluY29ycmVjdCBvZmZzZXQgYmVpbmcgcmV0dXJuZWQgYW5kIHVzZWQgbGF0ZXIsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gb3V0LW9mLWJvdW5kcyByZWFkcyBvciB3cml0ZXMgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhY2tldCBkYXRhLiBUaGlzIGlzIGFuIG91dC1vZi1ib3VuZHMgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBlZmZlY3RpdmVseSBkZXRlY3RlZCBieSBLQVNBTi4gSXQgZG9lcyBub3QgaW52b2x2ZSByZWFkaW5nIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IG9yIGxlYWtpbmcgdW5pbml0aWFsaXplZCBrZXJuZWwgbWVtb3J5IHRvIHVzZXIgc3BhY2UsIHNvIEtNU0FOIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow2g2xp[1] Phase: Succeeded StartedAt: 2026-08-22 22:35:15 +0000 UTC FinishedAt: 2026-08-22 22:35:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-22 22:35:15 +0000 UTC FinishedAt: 2026-08-22 22:35:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2] Phase: Succeeded StartedAt: 2026-08-22 22:35:15 +0000 UTC FinishedAt: 2026-08-23 02:15:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-22 22:35:15 +0000 UTC FinishedAt: 2026-08-23 02:15:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-22 22:35:15 +0000 UTC FinishedAt: 2026-08-22 22:35:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-22 22:35:15 +0000 UTC FinishedAt: 2026-08-22 22:35:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},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-workflow2g2xp/series-workflow2g2xp-convert-artifact-3759930204/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-22 22:35:25 +0000 UTC FinishedAt: 2026-08-22 22:51:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-22 22:35:25 +0000 UTC FinishedAt: 2026-08-22 22:51:48 +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:*bfea1dd0-79ca-404e-a664-7e91951809e7,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-workflow2g2xp/series-workflow2g2xp-convert-artifact-3759930204/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": "b0ed0479-5f86-488c-9713-c63d1d85e59e", "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-workflow2g2xp/series-workflow2g2xp-build-action-787361418/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-22 22:35:25 +0000 UTC FinishedAt: 2026-08-22 22:51:38 +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:*bfea1dd0-79ca-404e-a664-7e91951809e7,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-workflow2g2xp/series-workflow2g2xp-convert-artifact-3759930204/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": "b0ed0479-5f86-488c-9713-c63d1d85e59e", "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-workflow2g2xp/series-workflow2g2xp-build-action-787361418/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-22 22:51:48 +0000 UTC FinishedAt: 2026-08-22 22:51:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-22 22:51:48 +0000 UTC FinishedAt: 2026-08-22 22:51:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-22 22:51:48 +0000 UTC FinishedAt: 2026-08-22 22:51:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-22 22:51:48 +0000 UTC FinishedAt: 2026-08-22 22:51:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},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-workflow2g2xp/series-workflow2g2xp-convert-artifact-1710054555/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-22 22:51:58 +0000 UTC FinishedAt: 2026-08-22 22:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-22 22:51:58 +0000 UTC FinishedAt: 2026-08-22 22:53:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b0ed0479-5f86-488c-9713-c63d1d85e59e,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-workflow2g2xp/series-workflow2g2xp-build-action-787361418/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-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-22 22:54:00 +0000 UTC FinishedAt: 2026-08-22 22:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-22 22:54:00 +0000 UTC FinishedAt: 2026-08-22 22:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-22 22:54:00 +0000 UTC FinishedAt: 2026-08-22 23:10:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-22 22:54:00 +0000 UTC FinishedAt: 2026-08-22 23:10:36 +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:*bfea1dd0-79ca-404e-a664-7e91951809e7,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-workflow2g2xp/series-workflow2g2xp-convert-artifact-1710054555/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": "eac079bc-bebd-49b7-be1f-1fe6bd0bcd70", "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-workflow2g2xp/series-workflow2g2xp-build-action-3359426623/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-22 22:54:00 +0000 UTC FinishedAt: 2026-08-22 23:10:26 +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:*bfea1dd0-79ca-404e-a664-7e91951809e7,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-workflow2g2xp/series-workflow2g2xp-convert-artifact-1710054555/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": "eac079bc-bebd-49b7-be1f-1fe6bd0bcd70", "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-workflow2g2xp/series-workflow2g2xp-build-action-3359426623/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-22 23:10:36 +0000 UTC FinishedAt: 2026-08-22 23:10:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-22 23:10:36 +0000 UTC FinishedAt: 2026-08-22 23:10:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-22 23:10:36 +0000 UTC FinishedAt: 2026-08-22 23:12:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-22 23:10:36 +0000 UTC FinishedAt: 2026-08-22 23:12:22 +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:*eac079bc-bebd-49b7-be1f-1fe6bd0bcd70,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-workflow2g2xp/series-workflow2g2xp-build-action-3359426623/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-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-22 23:12:31 +0000 UTC FinishedAt: 2026-08-23 02:15:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-22 23:12:31 +0000 UTC FinishedAt: 2026-08-23 02:15:47 +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":["nf_ct_frag6_gather"],"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:*b0ed0479-5f86-488c-9713-c63d1d85e59e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*eac079bc-bebd-49b7-be1f-1fe6bd0bcd70,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-workflow2g2xp/series-workflow2g2xp-build-action-787361418/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-workflow2g2xp/series-workflow2g2xp-build-action-3359426623/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-22 23:12:31 +0000 UTC FinishedAt: 2026-08-22 23:12:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-22 23:12:31 +0000 UTC FinishedAt: 2026-08-22 23:12:35 +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":["nf_ct_frag6_gather"],"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-workflow2g2xp/series-workflow2g2xp-convert-artifact-405087124/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-22 23:12:31 +0000 UTC FinishedAt: 2026-08-22 23:12:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-22 23:12:31 +0000 UTC FinishedAt: 2026-08-22 23:12:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-22 23:12:32 +0000 UTC FinishedAt: 2026-08-22 23:12:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-22 23:12:42 +0000 UTC FinishedAt: 2026-08-23 02:15:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2g2xp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_ct_frag6_gather"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"878ca6f9739ab460a185fd1f0e64c8ef026057e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_DEFRAG_IPV6"],"series_id":"087c8238-a443-4a5f-9362-13e9b3301aca","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-22 23:12:42 +0000 UTC FinishedAt: 2026-08-23 02:15:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b0ed0479-5f86-488c-9713-c63d1d85e59e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*eac079bc-bebd-49b7-be1f-1fe6bd0bcd70,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-workflow2g2xp/series-workflow2g2xp-build-action-787361418/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-workflow2g2xp/series-workflow2g2xp-build-action-3359426623/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-workflow2g2xp/series-workflow2g2xp-convert-artifact-405087124/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,}